Как уже упоминалось, двойной AES-256 не обеспечивает 512 бит безопасности (скорее, 256 + 1 бит сложности времени) из-за компромисса времени / пространства, который дает «атака в середине» .
Однако я не верю, что кто-то правильно ответил "что" AES-512 на самом деле, ЕСЛИ он существовал. Обратите внимание, что все текущие варианты AES имеют фиксированный размер блока 128 битов, поэтому AES-512, если он существует, также будет иметь размер блока только 128 битов (при условии, что шаблон удерживается), и, таким образом, потребует никаких изменений в MixColumns или ShiftRows подпрограммы.
Расширение системы AES для использования 512-битных размеров ключей технически поддерживается стандартом AES, ЕСЛИ вы разрешаете N_k>8
. Обратите внимание, что стандарт AES FIPS-197 имеет конструкцию, которая в основном не зависит от размера ключа. Единственное, чего не хватает - это количество раундов для N_k=16
(512 bit keys=16*'32 bit words'
). Текущий стандарт (на странице 14) определяет N_r={10,12,14}
раундов для N_k={4,6,8}
соответственно. Следуя шаблону показывает N_r=N_k+6
. Следовательно, N_r=22
, если N_k=16
... после определения N_r=22
для N_k=16
ничего больше не нужно менять, просто предварительно заполните первые 512 бит расписания ключей (как указано в разделе 5.2) указанным ключом и продолжить с алгоритмом ...
единственным ограничивающим фактором может быть слово Rcon [i], которое умножается на x (mod x^8+x^4+x^3+x+1)
для каждого N_k
слова, так как оно имеет период 51, а затем начинает повторяться. x^51=(1 mod x^8+x^4+x^3+x+1)
... однако самое большое Rcon[i]
, которое используется, это
i=(N_r+1)*N_b/N_k ; ((N_r+1)*N_b is the total size (in 4 octet words) of the key schedule)
i=(N_k+6+1)*N_b/N_k
i=(N_k+7)*4/N_k
i=4+28/N_k ; (correct... ignoring rounding issues (and probably an off by one error due to laziness))
так что это не проблема, так как меньше Rcon'ов используются при увеличении размера ключа ...