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

Как проверять правильность ключа? - часть 2


Вы, скорее всего, подумали: а откуда злоумышленник узнает ключ, на котором шифруются эталоны паролей? Этот ключ встроен в программу шифрования, его никто не знает, даже вы его не знаете. Тем не менее, если злоумышленник достаточно квалифицирован, если он умеет пользоваться дизассемблером и отладчиком, этот ключ он узнает без труда. Обычно на решение такой задачи уходит всего несколько часов. Как это можно сделать - тема отдельной статьи. Пока поверьте на слово - имея только exe-файл, определенные навыки и много свободного времени, можно разобраться в том, что делает программа, до мельчайших подробностей.

Лучше шифровать эталон пароля сам на себе. Взять пароль в качестве открытого текста и взять тот же пароль в качестве ключа. При расшифровании файла, когда вы вводите пароль, программа пытается расшифровать только начало файла. Если в результате получилась строка, совпадающая с паролем, значит, пароль правильный, и можно расшифровывать файл дальше. А если получилось что-то другое, значит, пароль неправильный.

Некоторые программы шифрования шифруют пароли иначе. Берется какая-то строка, всегда одна и та же, шифруется на пароле и записывается в зашифрованный файл. Diskreet, например, шифрует на пароле строку ``ABCDEFGHENRIXYZ'' (эта строка завершается нулевым байтом, как принято в языке C). Когда Diskreet проверяет пароль, он берет начало зашифрованного файла (точнее, байты с 16-го по 31-й) и расшифровывает их на пароле, который ввел пользователь. Если после расшифрования получилось ``ABCDEFGHENRIXYZ'' - пароль правильный, если не получилось - неправильный.

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

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

Next: Какой должен быть пароль?

Up: 6.3. Как зашифровать файл?

Previous: Как вводить ключ?

Contents:




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


[an error occurred while processing this directive]