如何在crypto ++库的AES中找到添加轮密钥和混合列代码

时间:2014-10-22 08:24:42

标签: c++ c eclipse aes crypto++

我是C ++代码的新手,我尝试在crypt ++库中打开AES代码以添加圆键和混合列,但我不知道如何访问它们 请任何人帮助我 感谢

2 个答案:

答案 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位部分
  • abcd是当前块的32位部分

答案 1 :(得分:-1)

我认为找到AES轮次的内部代码并不容易,