Encryption Twofish密码密钥生成

Encryption Twofish密码密钥生成,encryption,twofish,Encryption,Twofish,我试图弄清楚Twofish密码扩展密钥是如何生成的 现在,我已经计算出,首先生成一部分密钥,用于增白,然后在每一轮中生成2x32位密钥 键的第一部分由3个向量组成,Mo、Me和S Mo和Me只需将主键扩展到第一个定义的长度,并将其拆分为偶数和奇数32b字,然后放入Mo和Me向量中即可生成 另一方面,向量S由k个字组成,其中k=N/64,在N=128的情况下,S包含2x32b个字 我们得到了Mo(2x32)+Me(2x32)+S(2x32)+16x2x32=38个32位字。缺少两个单词。为什么 如

我试图弄清楚Twofish密码扩展密钥是如何生成的

现在,我已经计算出,首先生成一部分密钥,用于增白,然后在每一轮中生成2x32位密钥

键的第一部分由3个向量组成,Mo、Me和S

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

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

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

如果N=192或N=256呢?扩展键如何可以是40个32位字而不是41和44

任何帮助都会很好


感谢回答我自己的问题,我发现向量Mo、Me和S实际上不是扩展密钥的一部分,正如我第一次想到的,实际上它们只是用于生成扩展密钥和依赖于密钥的S框。用于增白的部分键的生成方式与每轮中使用的部分相同,使用h函数,只是除了增白之外,它们不会在其他任何地方使用。希望这能为有这种问题的人省去一些麻烦。:)