我遇到了以下任务:
一种4位OFB TEA算法的实现
但我不完全理解。
据我所知,TEA算法一次加密/解密64位。它有一个叫做“块茶”的变体,它允许多个块或多个单词,但仍然使用64位块大小(我可能在这一点上错了)。因此,我对nOFB如何与TEA一起加密任何文本数据感到困惑。
我一直在跟踪维基百科提供的TEA的实现,链接- TEA加密。还有这个- TEA变种pdf。我还在黑暗中,如何将OFB或nOFB与茶结合起来。
我所需要的只是一些指南、文本、参考资料或想法来解释上述任务的一些细节。我可以自己执行。
发布于 2019-05-07 15:10:17
首先,当你不明白一个任务,然后请问你的导师!如果导师不回答,那么你可能错过了一些重要的信息。问问周围,如果你什么都找不到,再问一遍。如果还没有得到任何答案,那么将问题升级为顾问。
你可能需要做的是实现一个玩具密码。这样一个玩具密码完全实现了一个密码原语,如TEA,但是它将缩小到人的比例,这样就更容易理解和调试。因此,有一些极小的AES和DES版本可以用来学习算法和算法实现。
对于茶,有低街 -一种在茶(或咖啡)上的文字游戏,在一个小杯子里,geddit?这也被称为简化茶的原名。这个密码在内部使用一个4位的字大小,这正是你的任务所需要的。当然,这个密码既不安全,也不兼容TEA和XTEA的完整版本。
至于OFB,嗯,OFB是输出反馈模式,很容易在维基百科上找到。唯一的问题是需要什么样的反馈大小。默认情况下,我会让自己变得很容易,并实现完整的块输出(换句话说,使用德米塔塞/简化TEA的完整16位输出),如果还有任何时间的话,留下8位OFB作为可能的选项。TEA本身的是一个分组密码,所以如果您用OFB配置它,它会将自己变成一个完整的密码,为具有(几乎)任何大小或内容的二进制消息提供机密性。
原则上,可以使用普通的TEA算法执行输出大小为4位的OFB。您只需在内部转换4位,并输出4位。当然,计算机是基于字节的,所以这有点奇怪。此外,每四位都需要一个块加密,这对性能没有真正的帮助(但是,由于TEA和CPU速度相当快,这取决于这是否是一个问题)。
https://stackoverflow.com/questions/56024622
复制相似问题