Шифр — это обобщенное название, даваемое любой криптографической замене, при которой каждая буква заменяется другой буквой или символом. Хотя Светоний упоминает только о шифре Цезаря со сдвигом на три позиции, ясно, что осуществляя сдвиг на 1…25 позиций[6], можно создать 25 различных шифров. Если же мы не будем ограничиваться сдвигом алфавита, а будем рассматривать шифралфавит как любую возможную перестановку букв алфавита открытого текста, то мы сможем создать гораздо большее количество различных шифров. Существует свыше 400 000 000 000 000 000 000 000 000 таких перестановок и, соответственно, такое же количество отличающихся шифров. К каждому отдельному шифру применимы понятия общего метода шифрования, известные как алгоритм и ключ , которые определяют детали конкретного способа шифрования. В этом случае алгоритм заключается в замене каждой буквы в алфавите открытого текста буквой из шифралфавита, причем шифралфавит может представлять собой любую возможную перестановку алфавита открытого текста. Ключ же определяет, какой именно шифралфавит используется для конкретного способа шифрования. Связь между алгоритмом и ключом показана на рисунке 4. У противника, анализирующего перехваченное зашифрованное сообщение, могут иметься предположения об алгоритме, но точного ключа он знать не будет. Рис. 4 Чтобы зашифровать исходный текст сообщения, отправитель применяет к нему алгоритм шифрования. Алгоритм является общей системой для шифрования и должен быть точно определен путем выбора ключа. При совместном применении ключа и алгоритма к открытому тексту получается зашифрованное сообщение, или шифртекст. Разумеется, зашифрованный текст во время передачи адресату может быть перехвачен противником, но противник не сможет дешифровать это сообщение. В то же время получатель, который знает и ключ, и алгоритм, использованные отправителем, сможет преобразовать зашифрованный текст сообщения обратно в исходный вид. К примеру, он вполне может подозревать, что каждая буква в открытом тексте была заменена другой буквой в соответствии с шифралфавитом, но он не в состоянии узнать, какой именно шифралфавит был использован. Если шифралфавит — ключ — хранится отправителем и получателем в секрете, тогда противник не сможет дешифровать перехваченное сообщение. В отличие от алгоритма, важность ключа является основополагающим принципом криптографии. Он был сформулирован в 1883 году голландским лингвистом Огюстом Керкхоффом в книге «Военная криптография» («La Cryptographie militaire»); правило Керкхоффа гласит: «Стойкость криптосистемы не должна зависеть от стойкости криптоалгоритма. Она зависит только от стойкости ключа». — 13 —
|