Как найти ключ округления и код столбцов в AES библиотеки crypto ++

0

Я новичок в коде C++, я пытаюсь открыть AES-код в библиотеке crypt++, чтобы добавить круглый ключ и столбец mix, но я не знаю, как получить к ним доступ. Любая помощь мне нравится. Спасибо

  • 1
    Они, вероятно, в этом файле . В чем конкретно ваша проблема - найти источник, или распознать эти части, или что-то еще? Если вам просто нужно определение, не можете ли вы найти более простую справочную реализацию или прочитать описание алгоритма где-нибудь?
  • 0
    спасибо, но мне нужен код шифрования (круглый ключ sbox_add и столбец mix)
Показать ещё 1 комментарий
Теги:
aes
crypto++

2 ответа

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-битные части текущего блока
  • 0
    но мой вопрос, если этот код, который используется в библиотеке crypto ++
  • 0
    Да, эта ссылка на проект crytopp на SourceForge. Зачем вам конкретно нужна реализация Crypto ++?
Показать ещё 3 комментария
-2

Я думаю, что непросто найти внутренний код раундов AES,

Ещё вопросы

Сообщество Overcoder
Наверх
Меню