在AES密钥计划教程中,我看到密钥计划(rotate,rcon,s-box)的操作应用于一个4字节的单词。请你解释这个单词来自哪里?我知道我从128位长的密钥中提取它。密钥保存为4x4矩阵。我怎样才能获得用于密钥计划的单词?也许这是一个容易的问题,但我不明白。谢谢。AES密钥计划
Q
AES密钥计划
2
A
回答
2
它的解释here (with some code)。它是“迄今为止”扩展键的最后4个字节。
您以128位(16字节)键开头。扩展密钥的前16个字节是那些字节。
你取最后4个字节的那个,做(rotate,rcon,s-box)舞蹈,并且得到4个字节,你用4个字节提前16个字节(所以,第一次,在密钥的开始),并将其附加到扩展密钥。
您将扩展密钥的最后4个字节(您刚刚添加的内容)与异或字节16位字节“返回”(所以第一次是字节5到8)并将结果追加到扩展密钥。
您重复3次另外2次,每次使用扩展密钥的最后4个字节。
从2开始重复,直到获得所需的总扩展长度。
所以总是使用最后附加到扩展键的4个字节。你用16个字节的“部分”来完成,其中该部分的前4个字节是使用(rotate,rcon,s-box)“初始化”的。
它也在the standard的第5.2节中有所解释,稍有不同(以及可能会更清楚地回答您的问题)。他们将它描述为始终占用最后4个字节,并且每4次用4个字节的16个字节先前PLUS来执行(旋转,rcon,s-box)舞蹈。这更清楚地表明上述步骤2和3中的xor是“相同的”。
对于较长的键,您可以调整上述的一些常量(这样您可以做更长的“节”)。
相关问题
- 1. 加密AES密钥?
- 2. AES密钥,加密
- 3. 存储AES密钥
- 4. M2Crypto的AES密钥
- 5. Byte []密钥加密C#Aes
- 6. OpenSSL密钥在aes加密?
- 7. Android AES加密密钥
- 8. AES加密密钥和IV
- 9. AES密钥包装加密
- 10. 从RSA编码的AES密钥生成AES密钥
- 11. ARM和Intel内部函数对AES使用相同的子密钥计划吗?
- 12. C#AES密钥文件
- 13. HSM AES密钥提取
- 14. OpenSSL - 查找AES密钥
- 15. 从EVP_CIPHER_CTX获取AES密钥
- 16. 何处存储AES密钥?
- 17. 改变AES密钥它
- 18. 是AES密钥随机?
- 19. Android AES crypt 192bit密钥
- 20. 安全存储AES密钥
- 21. 执行计划 - 删除密钥查找
- 22. AES密钥和iv来自RSA私钥
- 23. AES加密 - 密钥生成与OpenSSL的
- 24. 仅基于密码生成AES密钥
- 25. java.security AES加密密钥长度
- 26. AES加密和密钥存储?
- 27. 想要为AES加密创建密钥
- 28. AES自定义密码密钥
- 29. 如何传输AES加密密钥?
- 30. 加密使用base32密钥的AES
这些问题最好在crypto.stackexchange.com上提问(当然,如果不存在的话)。 –