首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Speck密码的实现

Speck密码的实现
EN

Stack Overflow用户
提问于 2020-01-08 07:26:03
回答 1查看 188关注 0票数 1

我正在尝试实现这里指定的speck密码:斑点密码。在文档的第18页,您可以找到一些我想实现的小伪代码。

看来我在理解伪码方面遇到了问题。如您所见,xy是长度为n的明文单词。l[m-2],...l[0]k[0]是关键词(对于单词,它们有长度n,对吗?)在进行键扩展时,我们将i0迭代到T-2,其中T是整数(例如34)。但是,我得到了一个IndexOutofBoundsException,因为带有l的数组只有m-2位置,而没有T-2

有人能澄清关键扩展的作用和方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-08 14:06:32

啊,我明白了困惑的所在:

代码语言:javascript
复制
l[m-2],...l[0], k[0]

这些是输入的关键词,换句话说,它们代表了关键。这些是而不是数组大小的声明,如果您是一个开发人员,您可能会想到。

然后,应该导出数组k中的子键,使用数组l作为中间值。

根据公式,取最大的i,即i_max = T - 2,可以得到i_max + m - 1 = T - 2 + m - 1 = T + m - 3数组l的最高索引,因此数组的大小为T + m - 2。毕竟,基于零的数组的大小始终是最后一个元素加一个的索引。

类似地,对于子键数组k,可以得到i_max + 1的最高索引,即T - 2 + 1T - 1。同样,数组的大小也是一个,所以在T中有k元素。如果需要T圆键,这是很有意义的:)

请注意,如果您需要最少的RAM,那么似乎可以简单地为每一轮重做子键派生。整个l数组似乎也没有必要。当然,对于软件实现来说,这一点都不重要。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59641203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档