我是新的C + +代码,我尝试打开crypt ++库中的AES代码添加圆键和混合列,但我没有知道如何访问它们 任何一个可以帮助我,请 感谢我怎么才能找到加密轮密钥和密码+库的AES混合列代码
0
A
回答
-1
我认为这是不容易找到AES轮的内部代码,
1
的AES实现是rijndael.cpp。您要求提供sbox,添加轮密钥和混合操作;他们都在QUARTER_ROUND宏:
QUARTER_ROUND_FE
- 第一加密轮回QUARTER_ROUND_E
- 随后的加密轮QUARTER_ROUND_LE
- 最后加密轮回
和等效截至解密宏D
不是E
。这些被定义为
#define QUARTER_ROUND(L, T, t, a, b, c, d) \
a ^= L(T, 3, byte(t)); t >>= 8;\
b ^= L(T, 2, byte(t)); t >>= 8;\
c ^= L(T, 1, byte(t)); t >>= 8;\
d ^= L(T, 0, t);
#define TL_M(T, i, x) (*(word32 *)((byte *)T + x*8 + (i+3)%4+1))
#define QUARTER_ROUND_E(t, a, b, c, d) QUARTER_ROUND(TL_M, Te, t, a, b, c, d)
其中
TL_M
是混合宏Te
是加密的S-boxt
是关键a
的一个32位的部,b
,c
,d
是当前块的012位的32位部分
相关问题
- 1. AES加密和解密的源代码
- 2. AES加密密钥和IV
- 3. AES密钥,加密
- 4. AWS使用什么密码/密钥进行AES-256加密?
- 5. AES加密,示例代码
- 6. 仅基于密码生成AES密钥
- 7. AES自定义密码密钥
- 8. 从RSA编码的AES密钥生成AES密钥
- 9. Android AES加密密钥
- 10. Byte []密钥加密C#Aes
- 11. 密钥库更改密码
- 12. 密钥库密码丢失
- 13. AES加密和密钥存储?
- 14. 从加密和明文数据中找到AES密钥
- 15. 有密钥库密码和别名密码不同的风险
- 16. 我忘了密钥库密码
- 17. java密钥库和密码设置
- 18. 如何在AES数据库中存储AES加密密码
- 19. 密码加密/数据库层AES或应用层AES
- 20. 在OpenSSL API代码中查找主密钥的MAC密钥,加密密钥和初始化向量
- 21. 从密钥代码解析密钥
- 22. 为什么AES解密比AES加密少一轮?
- 23. Java使用AES和散列密码作为密钥对图像文件进行加密和解密
- 24. 从密码导出加密密钥
- 25. 如何将密钥密码恢复到密钥库?
- 26. AES加密 - 在Android上存储密码
- 27. 使用sha256密码AES加密
- 28. AES加密 - 密码,salt没有解决?
- 29. Android:Java:使用密钥而不是密码解密AES
- 30. 使用RijndaelManged类的AES加密:Baes64编码和解码aes加密字符串
它们可能[在此文件中](http://sourceforge.net/p/cryptopp/code/HEAD/tree/trunk/c5/rijndael.cpp)。你的问题到底是什么 - 寻找来源,或者认识到这些部分或其他东西?如果你只是想定义,你不能找到一个更简单的参考实现或读取算法描述的地方? – Rup 2014-10-22 08:53:04
谢谢,但我需要的加密代码(sbox_add轮密钥和混合列) – Mohammad 2014-10-22 09:42:43
他们不是在那个文件?它特别是您想要的Crypto ++实现吗?它是通用的可移植C实现还是汇编优化实现?他们都在那个档案里。 – Rup 2014-10-22 09:59:12