Что такое криптография? Ключи
Охрана тайны может строиться по принципу доступа к тайне только посвященных лиц, подразумевая, что непосвященные не имеют физического доступа к ней. В другом случае охрана тайны может строиться по принципу возможного доступа посторонних лиц, но с пониманием смысла тайны только посвященных лиц. Исторически второй метод получил большее распространение, чем первый, более дорогостоящий, а иногда и просто невозможный. С появлением письменности он стал распространенным, и стал практически всеобщим: тайные карты, зашифрованные письмена. Доступно всем, но понятно только посвященным. Сегодня это основной метод скрытия тайны для хранения и передачи информации.
Зашифрованное сообщение скрывает смысл исходного (открытого) сообщения. Таким образом, процесс шифрования есть процесс скрытия смысла исходного сообщения в исходном алфавите. Зашифрованное сообщение становится нечитаемым. И только посвященные люди, которые знают некоторый секрет, могут расшифровать зашифрованное сообщение. В дальнейшем процессы шифрования и расшифровки мы будем объединять одним словом «шифрование» или оговаривать эти процессы отдельно. Вопросами построения систем шифрования занимается наука под названием криптография.
В результате применения шифрования появляется шифрованный текст, который и скрывает информационную тайну. Например, тайное послание «Завтра фирма Скотта будет продавать акции по пониженным ценам» имеет некоторый шифрованный текст в виде «?т6ifmфвщб4-!nmdавжшт». Шифрованный текст тайны доступен всем, более того, в шифрованном тексте имеется полное содержание тайны, он содержит весь смысл тайны, но тайна доступна только посвященным. Здесь необходимо сделать одно маленькое замечание и уточнение. Да, тайна легко и быстро доступна только посвященным лицам. Непосвященные лица могут проникнуть в тайну в течение более протяженного отрезка времени, затратив некоторые усилия. Успех непосвященных лиц гарантирован именно тем, что в шифрованном тексте содержится вся информация, скрывающая тайну. Для прочтения шифрованного текста необходима некоторая дополнительная информация, которая позволяет легко и быстро постигнуть смысл скрываемого от посторонних сообщения. Нас будут интересовать шифровальные системы, которые обладают одной характерной особенностью для посвященных лиц: взаимно однозначным прямым и обратным преобразованием исходный (открытый) текст единственный шифрованный текст. В дальнейшем мы покажем, что для непосвященных лиц в некоторых случаях это может быть не совсем так.
Ключи в криптографии
Что позволяет вам быстро открыть свою закрытую дверь, вам, лицу, которому это позволено? Ключ, скажете вы. Ну а при хорошем замке квартирный вор повозится некоторое время, но тоже откроет вашу дверь, не имея ключа. Чтобы квартирный вор не смог быстро открыть дверь вашей квартиры, замок должен быть достаточно хорошим. От этого зависит время незаконного вскрытия вашей квартиры. В крайнем случае, вор может воспользоваться грубой силой, пытаясь взломать саму дверь. В криптографии ситуация аналогична: дверь — это шифрованный текст, который открывает вам путь к тайне. Ключ — это та дополнительная информация, которая позволяет посвященным лицам быстро прочесть шифрованный текст. Эту дополнительную информацию мы тоже будем называть криптографическим ключом или просто ключом. Ключ от квартиры нельзя терять, его нельзя отдавать посторонним лицам, которым вы не доверяете. Криптографический ключ по этим же причинам никому нельзя отдавать. Его необходимо держать в секрете, потому что с него очень легко сделать копию, легче, чем с обыкновенного дверного ключа. Обычный ключ от квартиры имеет небольшие размеры, чтобы было удобно его хранить. Криптографический ключ из этих же соображений также должен иметь небольшой размер, хотя сегодня при использовании ЭВМ это не столь жесткое требование. А что же в криптографии играет роль замка? Это устройство или правило (алгоритм), как создавать шифрованный текст. Минуточку, подождите! Если очень легко копировать настоящий ключ, то можно самому создавать его. Да, можно, но какой создать? Количество возможных ключей очень велико.
Современные криптографические системы имеют набор возможных ключей гораздо больший, чем набор возможных ключей обыкновенного замка от вашей двери. Это число может быть соизмеримо с числом атомов нашей Вселенной (1077≈2264). Перебор всех возможных ключей эквивалентен взлому дверей, т.е. применению грубой силы. Можно сделать секретный уникальный замок, к которому типовая воровская отмычка не подойдет. В древние времена, когда монархи, удельные князья или графы создавали секретные убежища, подземные ходы, строителей обычно убивали, ослепляли, в общем, делали все, чтобы сохранить в тайне эти сооружения. А что вы будете делать с мастером вашего замка? Он же знает конструкцию замка, и, возможно, даже делал к нему ключ! Голландский военный криптограф Датчман А. Керкхоффс еще в 19 веке решил эту проблему, сформулировав в книге «Военная криптография», изданной в 1883 г., шесть основных требований к системе шифрования: система шифрования должна быть не раскрываемой, если не в теоретическом плане, то в практическом; компрометация системы не должна причинять неудобств ее пользователям; секретный ключ должен быть легко запоминаемым без его записи; криптограмма должна быть представлена в такой форме, чтобы ее можно было передать по телеграфу; аппаратура шифрования должна быть портативной и такой, чтобы ее мог обслуживать один человек; система не должна требовать запоминания длинного перечня правил и быть простой в использовании.
Несмотря на примитивизм отдельных требований с позиции сегодняшних возможностей (не забудьте о 1883 г.), этот перечень содержит важный (второй) фундаментальный пункт требований к системе сохранения тайны: конструкция замка вашей двери (правило получения шифрованного текста) может быть известно всем. Секретным должен быть только ключ к нему. Если при этом ваша система окажется надежной против взлома, можете спать спокойно. Где же взять этот секретный ключ, ключ который бы никто не знал? Ответ может быть только один: необходимо сделать его самому. Итак, для вашего полного спокойствия вы должны приобрести алгоритм создания тайны у надежной фирмы с гарантией и самому сделать секретный ключ.
В вашем РС ключ представляет собой некоторый файл, который состоит их нулей и единиц. Каждый ноль или единица представляет собой одно из двух значений единицы информации, которая называется битом. Суммарное значение нулей и единиц в файле ключа определяет его длину. Например, ключ длиной 256 бит означает, что файл ключа содержит некоторое число нулей и единиц, суммарное число которых равно 256. Сколько же всего может быть ключей? Можно построить специальную вычислительную машину для быстрого перебора ключей. Наверное, эта машина будет стоить достаточно больших денег. Гордон Э.Мур (Gordon E. Moor) заметил, что за год размеры процессоров, их стоимость и время выполнения команд уменьшаются приблизительно на 40%. Эту закономерность называют в честь этого исследователя законом Мура. Можно проиллюстрировать действие закона Мура на примере вскрытия криптографического алгоритма DES с длиной ключа равной 46 бит. На текущий отрезок времени принято, что длина ключа в 246 бит вполне приемлема для защиты от полного перебора ключевого поля. Таким образом, ключ — это секретный параметр алгоритма криптографического преобразования данных, обеспечивающий выбор только одного варианта из всех возможных вариантов данного алгоритма.
Теперь вы видите, какую важную роль играет ключ в деле стойкости системы шифрования. Поэтому канал передачи ключа должен быть абсолютно надежным, а сам ключ хорошо охраняемым от посторонних лиц. Предположим, что эти два условия соблюдены. И все-таки хакер на основе только перехваченных шифрованных текстов может, в конце концов, определить ваш секретный ключ. Это происходит потому, что шифрованные тексты большинства практических систем шифрования имеют закономерность, трудно определяемую, но все-таки закономерность. В дальнейшем процесс хакерского расшифрования сообщений без предварительного знания ключа будем называть процессом дешифрования.