А можно ли обойтись без пароля?
Как видите, применять пароль в качестве ключа шифрования не так удобно, как кажется на первый взгляд. Либо защита будет нестойкой, либо пароль трудно запомнить и ввести без ошибок. Если вы хотите построить по-настоящему надежную защиту, вместо пароля нужно использовать что-то другое.
Можно, например, хранить ключ на дискете1). Вы создаете каким-то образом (каким - обсудим позже) случайный, равновероятный и достаточно длинный ключ и записываете его на дискету. Когда программа шифрования запрашивает ключ, вы вводите ключ не с клавиатуры, а с дискеты. Вы просто вставляете дискету в дисковод, а программа считывает оттуда ключ и зашифровывает файл на этом ключе. При расшифровании файла программа просит ``Вставьте ключевую дискету в дисковод''. Вы вставляете дискету в дисковод, программа считывает оттуда ключ, проверяет его правильность и, если ключ правильный, расшифровывает файл.
Конечно, программа шифрования должна уметь работать с ключевыми дискетами.
Ключевую дискету нужно хранить в месте, недоступном для злоумышленников. Если кто-то воспользуется вашей ключевой дискетой, то он сможет прочесть все, что вы зашифровали с ее помощью. Не теряйте ключевые дискеты! Если вы потеряете такую дискету, то тем самым вы потеряете все данные, которые вы зашифровали с ее помощью.
Удобно ли пользоваться ключевыми дискетами? Нет. Но за надежность защиты приходится платить. Вообще, это общая закономерность - чем надежнее система защиты, тем труднее с ней работать. И наоборот, чем система защиты удобнее в обращении, тем она слабее. Конечно, разрабатывая систему защиты, можно наделать ошибок, и система получится и ненадежной, и неудобной. Но если система разрабатывалась на совесть, приведенное выше утверждение почти всегда верно.
Можно ли как-нибудь защитить ключ, хранящийся на дискете? Конечно! Его тоже можно зашифровать. И не нужно для этого придумывать сложный шифр - вполне хватит самого примитивного . Почему? Да потому, что ключ шифрования - текст случайный и равновероятный. На чем основан метод дешифрования шифра простой замены? На том, что открытый текст - это осмысленный текст. А в осмысленном тексте обязательно присутствуют статистические закономерности. Но в ключе никаких закономерностей нет - ключ случаен и равновероятен!
Что использовать в качестве ключа, на котором шифруется ключ? Можно использовать пароль, но, как вы уже знаете, это не очень надежно. Можно завести вторую ключевую дискету, на которой хранить ключ, необходимый для доступа к первой. Но тогда придется заводить третью дискету, чтобы защитить вторую, а потом заводить четвертую, чтобы защитить третью ...
Так как же быть? Подумайте сами. Один из возможных
вы найдете в конце главы.
Next: Где взять ключи?
Up: 6.3. Как зашифровать файл?
Previous: Какой должен быть пароль?
Contents: