Дифференциальный криптоанализ: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Строка 24:
На схеме изображена [[Сеть Фейстеля|''функция Фейстеля'']] . Пусть <math>X</math> и <math>X'</math> - пара входов, различающихся на <math>\Delta X</math>. Соответствующие им выходы известны и равны <math>Y</math> и <math>Y'</math>, разница между ними - <math>\Delta Y</math>. Также известны перестановка с расширением и <math>P</math>-блок, поэтому известны <math>\Delta A</math> и <math>\Delta C</math>. <math>B</math> и <math>B'</math> неизвестны, но мы знаем, что их разность равна <math>\Delta A</math>, т.к. различия <math>XOR\ K_{i}</math> c <math>A</math> и <math>A'</math> нейтрализуются. Единственные нелинейные элементы в схеме — это <math>S</math>-блоки. Для каждого <math>S</math>-блока можно хранить таблицу, строки которой — разности на входе <math>S</math>-блока, столбцы — разности на выходе, а на пересечении — число пар, имеющих данные входную и выходную разности, и где-то хранить сами эти пары.
 
Вскрытие раундового ключа основано на том факте, что для заданного <math>\Delta A</math> не все значения <math>\Delta C</math> равновероятны, а комбинация <math>\Delta A</math> и <math>\Delta C</math> позволяет предположить значения <math>A\ XOR\ K_{i}</math> и <math>A'\ XOR\ K_{i}</math>. При известных <math>A</math> и <math>A'</math> это позволяет определить <math>K_{i}</math>. За исключением <math>\Delta AC</math> вся необходимая информация для последнего раунда содержится в итоговой паре шифротекстов.
 
После определения раундового ключа для последнего цикла становится возможной частичная дешифровка шифротекстов с последующим использованием вышеописанного метода для нахождения всех раундовых ключей.