我是C ++代码的新手,我尝试在crypt ++库中打开AES代码以添加圆键和混合列,但我不知道如何访问它们 请任何人帮助我 感谢
答案 0 :(得分: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-box t
是密钥的32位部分a
,b
,c
,d
是当前块的32位部分答案 1 :(得分:-1)
我认为找到AES轮次的内部代码并不容易,