Крипточуваки - 27
Відновіть ключ із CBC за допомогою IV=Key
Візьміть свій код із вправи CBC і змініть його так, щоб він використовував ключ для шифрування CBC як IV.
Програми іноді використовують ключ як IV за умов того, що і відправник, і одержувач повинні вже знати ключ і можуть заощадити місце, використовуючи його як ключ, так і як IV.
Використання ключа як IV небезпечно; зловмисник, який може змінити зашифрований текст на льоту, може змусити одержувача розшифрувати значення, яке розкриє ключ.
Код CBC із вправи 16 шифрує рядок URL-адреси. Перевірте кожен байт відкритого тексту на відповідність ASCII (тобто шукайте значення верхньої частини ASCII). Невідповідні повідомлення мають викликати виняток або повертати помилку, яка містить розшифрований відкритий текст (це постійно трапляється в реальних системах, наскількі мені відомо).
Використовуйте свій код, щоб зашифрувати повідомлення довжиною щонайменше 3 блоки:
AES-CBC(P_1, P_2, P_3) -> C_1, C_2, C_3
Змініть повідомлення (тепер ви зловмисник):
C_1, C_2, C_3 -> C_1, 0, C_1
Розшифруйте повідомлення (тепер ви одержувач) і викликайте відповідну помилку, якщо знайдено символ із верхньої частини ASCII.
Як зловмисник, відновлюючи відкритий текст після помилки, витягніть ключ:
P'_1 XOR P'_3