Криптография - наука о методах преобразования (шифрования) информации в целях ее защиты от незаконных пользователей. В современных криптосистемах шифр получают из исходного текста кодированием его символов, производимым на основе выбранного алгоритма шифрования и ключа, указывающего, как именно происходит сопоставление символов исходного текста с символами кода.
Надежность шифрующего алгоритма, часто называемая его стойкостью, определяется тем, насколько легко можно взломать шифр. Принято считать, что надежность шифра определяется только секретностью используемого ключа, сам же алгоритм шифрования предположительно известен противнику. Стойкость используемых в настоящее время алгоритмов шифрования обеспечивается высокой вычислительной сложностью задачи выяснения значения ключа.
Существуют симметричные алгоритмы шифрования, в которых шифрование и дешифровка производятся с помощью одного и того же ключа, и асимметричные - требующие применения разных ключей.
|
|
Симметричные шифры строятся на алгоритме замены с помощью ключевого текста. Рассмотрим, например, следующий шифр. Пусть требуется зашифровать секретное сообщение «Операция начинается в воскресенье».
Все буквы русского алфавита пронумеровывают по порядку (от 1 до 33). Затем выбирают ключевое слово, например «Вологда» и подписывают его под сообщением с повторением, как показано ниже:
операцияначинаетсяВвоскресенье ВОЛОГДАВОЛОГДАВОЛОГДАВОЛОГДАВО |
Чтобы получить шифрованный текст, номер очередной буквы сообщения складывается с номером соответствующей буквы ключа. Если полученная сумма больше числа 33, то из нее вычитается 33. В результате получают последовательность чисел, каждое из которых находится в диапазоне от 1 до 33. Вновь заменяя числа этой последовательности соответствующими буквами, получают шифрованный текст.
СЯСАДНЫЙВЭМЖМТБЗВЮОЁЖПФЪЭФХЙОЯФ |
Математически данная процедура шифрования описывается операцией сложения по модулю, обратная ей (дешифровка) - операцией вычитания по модулю.
Сформируем расширенный алфавит как список всех символов, которые могут встречаться в шифруемых сообщениях. Количество символов расширенного алфавита обозначим через N. Тогда любой передаваемый текст можно рассматривать как последовательность {аn} чисел множества А={0,1,2,...,N}. Выберем ключевую последовательность {сn} чисел множества А той же длины, что и передаваемый текст. Складывая по модулю N число аn передаваемою текста с соответствующим числом сn ключа
аn + сn º (mod N), 0 £ bn £ N-1,
получим последовательность {bn} знаков шифрованного текста. Чтобы его дешифровать, то есть получить передаваемый текст, можно воспользоваться тем же ключом:
|
|
аn º bn – сn (mod N), 0 £ an £ N-1.
У двух абонентов, находящихся в переписке, должен иметься один и тот же ключ.
Симметричные шифры обладают не очень высокой степенью стойкости, их раскрытие основано на использовании таблицы частот (буквы в естественном языке встречаются с разной частотой). Поэтому при практическом использовании подобных шифров используют многократное шифрование, модификацию ключа и случайный выбор ключевых последовательностей.
К шифрам, предназначенным для закрытия информации в ЭВМ и автоматизированных системах, предъявляется ряд требований:
достаточная стойкость (надежность закрытия);
простота шифрования и расшифровки от способа внутримашинного представления информации;
нечувствительность к небольшим ошибкам шифрования; возможность внутримашинной обработки зашифрованной информации;
незначительная избыточность информации за счет шифрования и ряд других.
В той или иной степени этим требованиям отвечают некоторые виды шифров замены, перестановки, гаммирования, а также шифры, основанные на аналитических преобразованиях шифруемых данных.
Шифрование заменой (иногда употребляется термин "подстановка") заключается в том, что символы шифруемого текста заменяются символами другого или того же алфавита в соответствии с заранее обусловленной схемой замены.
Шифрование перестановкой заключается в том, что символы шифруемого текста переставляются по какому-то правилу в пределах какого-то блока этого текста. При достаточной длине блока, в пределах которого осуществляется
перестановка, и сложном и неповторяющемся порядке перестановке можно достигнуть достаточной для практических приложений в автоматизированных системах стойкости шифрования.
Шифрование гаммированием заключается в том, что символы шифруемого текста складываются с символами некоторой случайной последовательности, именуемой гаммой. Стойкость шифрования определяется главным образом размером (длиной) неповторяющейся части гаммы. Поскольку с помощью ЭВМ можно генерировать практически бесконечную гамму, то данный способ считается одним из основных для шифрования информации в автоматизированных системах. Правда, при этом возникает ряд организационно-технических трудностей, которые, однако, не являются не преодолимыми.
Шифрование аналитическим преобразованием заключается в том, что шифруемый текст преобразуется по некоторому аналитическому правилу (формуле). Можно, например, использовать правило умножения матрицы на вектор, причем умножаемая матрица является ключом шифрования (поэтому ее размер и содержание должны сохранятся в тайне), а символы умножаемого вектора последовательно служат символы шифруемого текста.
Особенно эффективными являются комбинированные шифры, когда текст последовательно шифруется двумя или большим числом систем шифрования (например, замена и гаммирование, перестановка и гаммирование). Считается, что при этом стойкость шифрования превышает суммарную стойкость в составных шифрах.
Каждую из рассмотренных систем шифрования можно реализовать в автоматизированной системе либо программным путем, либо с помощью специальной аппаратуры. Программная реализация по сравнению с аппаратной является более гибкой и обходится дешевле. Однако аппаратное шифрование в общем случае в несколько раз производительнее. Это обстоятельство при больших объемах закрываемой информации имеет решающее значение.