首先,当你不明白作业时,请询问你的导师!如果导师没有回答,那么您可能错过了一些重要信息。四处打听,如果找不到任何东西,请再次询问。如果仍然没有答案,则将问题上报给顾问。
您可能被要求做的是实现一个玩具密码。这样的玩具密码完全实现了诸如 TEA 之类的密码原语,但是它会将所有内容缩小到人类的比例,因此更容易理解和 - 当然 - 调试。因此,可以使用小型版本的 AES 和 DES 来了解算法和算法实现。
对于 TEA,有Demitasse - 一个关于茶(或咖啡)的文字游戏,装在一个小杯子里,geddit?这也被其原始名称称为简化 TEA。该密码在内部使用 4 位字长,这正是您的作业似乎需要的。当然,这种密码既不安全,也不兼容 TEA 或 XTEA 的完整版本。
至于 OFB,好吧,OFB 是输出反馈模式,在 Wikipedia 上很容易找到。唯一的问题是需要哪种反馈大小。默认情况下,我会让自己轻松实现完整的块输出(nOFB,换句话说,使用 Demitasse / Simplified TEA 的完整 16 位输出),如果有时间的话,留下 8 位 OFB 作为可能的选项。TEA 本身是一个分组密码,因此如果您使用 OFB 对其进行配置,它会将自身变成一个完整密码,为(几乎)任何大小或内容的二进制消息提供机密性。
原则上,可以使用正常的 TEA 算法以 4 位的输出大小执行 OFB。您只需在内部移动 4 位并输出 4 位。当然,计算机非常基于字节,所以这有点奇怪。此外,您需要每四位加密一个块,这不会真正提高性能(但是,由于 TEA 和 CPU 的速度非常快,这取决于这是否是一个问题)。