Twofish密码密钥生成

时间:2014-01-18 14:21:54

标签: encryption twofish

我正在试图弄清楚如何生成Twofish密码扩展密钥。

目前,我已经想到,首先生成密钥的一部分,并用于美白,然后在每轮中生成2x32bit的关键部分。

密钥的第一部分由3个向量Mo,Me和S组成。

Mo和Me的生成只需将主键扩展到第一个定义的长度,然后将其拆分为偶数和奇数32b的单词,然后将其放入Mo和Me向量中。

另一方面,向量S由k个字组成,其中k = N / 64,在N = 128的情况下,S包含2×32b个字。

所以,我们得到了Mo(2x32)+ Me(2x32)+ S(2x32)+ 16x2x32 = 38个32位字。缺少2个单词。为什么??

如果N = 192,或N = 256怎么办?如何扩展密钥为40个32位字而不是41个和44个字?

任何帮助都会很棒。

由于

1 个答案:

答案 0 :(得分:0)

为了回答我自己的问题,我发现向量Mo,Me和S实际上并不是扩展密钥的一部分,正如我首先想到的那样,实际上它们只是用于生成扩展密钥和密钥相关的S框。用于美白的部分键的生成方式与使用h功能的每轮中使用的部分相同,只是除了美白外,其他任何地方都不使用它们。希望这为这类问题的人们带来一些麻烦。 :)