Как по шифротексту определить режим шифрования?
200 сообщений зашифровали при помощи AES. Шифротексты исходных сообщений представлены в hex виде и имеют размер 32 или 48 байт (2 или 3 блока). Примеры имеющихся шифротекстов:
4d0f16f795b1030b6e7a8225b73c04298858d4105a46d0f1f252d27516250271
174c446891db6a795c6ee73c56113c50461203ed49a52b316b3e0d628fd3e1ae01483c7fbf6bb40d14066dfcde3b5445
d4764bfc460588bd889981fbf9475c73f23f8f882ef65f6f79d1883c9658dcc3
Выше приведены 3 разных шифротекста размером 32, 48, 32 байт.
Известно, что среди всех 200 сообщений лишь одно было зашифровано в режиме ECB (Electronic Codebook).
Нужно отыскать шифротекст этого сообщения среди остальных.
Я обнаружил, что среди шифротекстов есть пары полностью идентичных. Например:
4d0f16f795b1030b6e7a8225b73c04298858d4105a46d0f1f252d27516250271 и 4d0f16f795b1030b6e7a8225b73c04298858d4105a46d0f1f252d27516250271
3f1070a120005f5f9e20c91e078e8e1c0f5d7c88fa2f7e8ee6b7b4837d7f652746177a9b4ea445405cb7c326b9ec4ce8 и
3f1070a120005f5f9e20c91e078e8e1c0f5d7c88fa2f7e8ee6b7b4837d7f652746177a9b4ea445405cb7c326b9ec4ce8
Это значит что именно они зашифрованы через ECB? Ведь в ECB идентичные блоки открытого текста шифруются в идентичные блоки зашифрованного текста. Но в условии сказано, что такая строка только одна, а тут уже как минимум 4ыре насчитывается.
Вообщем как искать ответ? В какую сторону двигаться?
Ответы (1 шт):
Нет, неверно вы понимаете ECB.
Поскольку размером блока является 16 байт, вам надо искать сообщение в котором 16 байтный блок повторяется в самом сообщении хотя бы 2 раза.
ECB одинаковый кусок сообщения кодирует одинаково, CBC же смешивает с предыдущим блоком, поэтому одинаковые блоки не повторяются среди шифротекста в режиме CBC