Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Искусство защиты и взлома информации / Скляров Д.В. Искусство защиты и взлома информации

.pdf
Скачиваний:
365
Добавлен:
02.05.2014
Размер:
2.63 Mб
Скачать

Глава 6. Криптографиядлянематематиков

71

Для того чтобы хэш не вырождался при циклическом вычислении, необходимо на каждом раунде подавать на вход хэш-функции некоторые новые данные, например номер раунда.

6.3.5. Генераторы случайныхчисел

Наверное, еще раз стоит повторить, что привычные генераторы псевдослучайных чисел, реализованные в стандартных библиотеках популярных языков программирования, не пригодны для криптографии.

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

Первый недостаток заключается в том, что невозможно точно сказать, сколько бит действительно случайных данных может быть получено из одной пары нажатий или одного движения мышью. У людей с профессиональными навыками машинописи, как правило, очень высокая ритмичность нажатия клавиш. А случайные данные должны получаться независимо от того, кто сидит за клавиатурой. Да и щелчки при нажатии кнопок могут быть легко записаны злоумышленником на магнитофон, а потом воспроизведены для повторения задержек. С мышью тоже не все понятно — данные, которые получает программа, проходят много инстанций. Мышь передает информацию о перемещении с определенной периодичностью, а не в тот момент, когда датчик перемещения получает информацию о том, что мышь была сдвинута. А драйвер мыши извещает программу о состоянии мыши со своей дискретностью. Все это приводит к тому, что программа получает далеко не полную информацию о том, что произошло с мышью, и основная часть случайных данных, на которые рассчитывала программа, может при определенной комбинации мыши, драйвера и компьютера оказаться совсем не случайной.

А второй недостаток связан с необходимостью присутствия человека для получения случайных данных, что является большой проблемой для серверных приложений.

В качестве претендентов на действительно случайные данные можно рассматривать значение хэша от содержимого экрана и от всех данных, прочитанных с диска с момента загрузки операционной системы. Однако очевидно, что пока не запущено ни одно интерактивное приложение, состояние экрана можно попытаться предугадать, а сразу после получения порции случайных данных повторный запрос может вернуть тот же самый результат.

Глава 6. Криптография для нематематиков

73

 

 

 

алгоритм, чтобы широкая криптографическая общественность попыталась найти в нем слабые места.

В общем, на настоящий момент существует достаточно много самых разнообразных криптографических алгоритмов, почти на любой вкус. Большинство популярных алгоритмов прошли проверку временем и заслужили положительные отзывы криптоаналитиков. И разработка нового алгоритма, наверное, имеет смысл только в одном из двух случаев: если новый алгоритм будет быстрее уже существующих (без потери стойкости) или если он будет более стойким.