Написал реализацию алгоритма AES-128. За день, без оптимизации. Как всегда, на 1С

С эмуляцией XOR-ов, сдвигов, без квадратных массивов (их там просто нет

) и т.п.
Навскидку первые впечатления: дешифрование существенно более затратно чем шифрование - и по времени и по ресурсам. Несмотря на то, что алгоритм симметричный или как это там называется.
1) Если делать замены байтов через таблицы (а не математикой), то на этапе шифрования нам нужна одна таблица 256 байт, а при дешифровании две - прямая для получения всех расширений ключа и обратная для замен в раундах.
2) При шифровании мы можем помнить только ключ текущего раунда а последующие рассчитывать на его основе. При дешифровании нам надо сразу рассчитать прямым способом все ключи раундов и помнить их, ибо используются в обратном порядке
3) При операции MixColumns при кодировании используется хитрое умножение с переносом по модулю только на 2 и на 3, что достаточно лаконично реализуется в коде, а при дешифровании - гораздо больше и на бОльшие по значению константы, что явно не способствует скорости выполнения и даже является основанием для многочисленных исследовательских работ на эту тему - как оптимизировать процедуру InvMixColumns в AES

ЗЫ я дешифрование написал сам, просто выполняя операции шифрования в обратном порядке. Хотя во всем инете, просмотренном мной за вчера, на эту тему было написано имхо явно не то, то есть приведенные алгоритмы дешифрования НЕ являлись обратным порядком шифрования

Правда, есть одна фраза, что существуют 2 алгоритма дешифрования AES - простой и эквивалентный, при последнем надо проделать InvMixColumns со всеми ключами раундов - то есть дополнительная операция, а в остальном вроде все так же, так что выигрыша нет - если я правильно понимаю.