Введение в криптографию
[an error occurred while processing this directive]

Удобно, красиво, но ... - часть 2


Очевидно, что если не зашифровывать текст, то сама идея использовать пароль была бы бесполезной. Любой пользователь сначала мог бы ``вытащить руками'' из файла большую часть текста, а потом перенести его в Word. В то же время, выбранная в Microsoft Word схема шифрования информации остановит только начинающего хакера []. Рассмотрим ее подробнее.

Из пароля пользователя Word вырабатывает массив длиной 16 байт, который назовем гаммой (gamma[0..15]). Далее, каждый байт открытого текста (plain_text[i]) последовательно складывается побитно (XOR) с байтом гаммы, в результате получаются знаки шифрованного текста

(cipher_text[i]),

которые мы можем видеть в файле с паролем. То есть шифрование производится согласно формуле:

cipher_text[i] := plain_text[i] XOR gamma[i mod 16] ,

где mod 16 - операция получения остатка от целочисленного деления на 16.

Перед нами типичный пример криптографической схемы гаммирования короткой гаммой. Так как каждый шестнадцатый символ шифрованного текста получается прибавлением к символу открытого текста одного и того же значения гаммы, можно считать, что мы имеем дело с 16-ю простыми заменами. Для каждой из шестнадцати позиций символа в тексте подсчитаем таблицу частот его значений, после чего выберем в каждой из них значения символа, встретившегося чаще других.

Заметим, что самый частый символ в документе Word - это пробел (его значение в кодировке ASCII есть 0x20). В этом легко убедиться, просматривая документ в шестнадцатиричном формате. Следовательно, самым частым символам в таблице частот соответствуют зашифрованные пробелы, и, складывая побитно значения этих символов с 0x20, мы получим все 16 знаков гаммы. Далее, зная гамму, расшифровываем весь текст. Не правда ли, просто!

На эту очевидную слабость многие сразу обратили внимание. Поэтому фирма Microsoft для последних версий текстового процессора Microsoft Word, начиная с Word 97, полностью изменила алгоритм шифрования файлов, встроив в него хорошо известные алгоритмы шифрования RC4 и хеширования MD5.




- Начало -  - Назад -  - Вперед -


[an error occurred while processing this directive]