Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О науке информатике.doc
Скачиваний:
258
Добавлен:
02.05.2014
Размер:
14.84 Mб
Скачать

2.3. Технология шифрования информации

Шифрование — обратимое преобразование информационных сообщений с целью сокрытия внутреннего содержания ( смысла ) сообщения от посторонних, т.е. преобразование информационного сообщения из открытой формы в закрытую .

Системам шифрования столько же лет, сколько письменному обмену информационными сообщениями. Обычный подход состоит в том , что к сообщению применяется некий метод кодирования, использующий ключ шифрования — секретную кодовую последовательность, участвующую в процессе преобразования информации.

Математически процесс шифрования сообщения М с помощью алгоритма шифрования Е выражается так:

С = Ек1(М), где (1)

С — полученное в результате шифрования сообщение,

к1 — ключ шифрования.

Процесс расшифровывания сообщения С будет тогда представляться так :

М = Дк2(С), где (2)

Д — алгоритм расшифровывания

к2 – ключ расшифровывания, к2 может быть отличным от к1.

Обычно алгоритмы шифрования не являются секретными и известны всем, а ключи — это те самые секретные элементы, которые позволяют закодировать сообщение так, чтобы никто, кроме имеющих ключи, не смог его прочитать и понять смысл.

Раньше в качестве ключа могли использоваться целые кодировочные книги или полоски бумаги с прорезями, в которых появлялись буквы сообщения (а без полоски оно воспринималось как беспорядочный набор букв).

Широко применялся метод простой замены, когда любому символу из одного алфавита кодирования ставился в соответствии уникальный символ из другого алфавита. Примером может служить рассказ Конан Дойля «Пляшущие человечки». Такие шифры неустойчивы к взлому, т.е. их быстро можно расшифровать, не имея ключа, достаточно знать, на каком языке составлено исходное сообщение.

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

Алгоритмы шифрования делятся на два вида: симметричные и асимметричные. Рассмотрим их подробнее

Алгоритмы симметричного шифрования

Эти алгоритмы используют один и тот же ключ как для шифрования, так и для расшифровывания информационного сообщения. Т.е. для формул (1) и (2) к1 = к2. Этот ключ должен храниться в тайне и передаваться способом, исключающим его перехват.

Обмен информационными сообщениями осуществляется в три этапа:

1) отправитель передает получателю ключ (в случае с несколькими получателями и отправителями у каждой пары абонентов должен быть свой ключ, отличный от ключей других пар);

2) отправитель, используя ключ, зашифровывает сообщение, которое пересылается получателю;

3) получатель получает сообщение и расшифровывает его.

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

При шифровании потока данных каждый бит исходного информационного сообщения шифруется независимо от других с помощью гаммирования.

Гаммирование — наложение на открытые данные гаммы шифра (случайной или псевдо- случайной последовательности единиц и нулей) по определенному правилу. Обычно используется «исключающее ИЛИ», называемое также «сложением по модулю 2» и реализуемое в ассемблерных программах командой XOR. Для расшифровывания та же гамма накладывается на зашифрованные данные.

При однократном использовании случайной гаммы одинакового размера с зашифрованным сообщением взлом кода невозможен, т.к. гамма не повторяется. Обмен ключами размером с шифруемое сообщение не всегда уместен. Поэтому часто используют гамму, получаемую с помощью генератора псевдослучайных чисел (ПСЧ). В этом случае ключ — порождающее число (начальное значение) для запуска генератора ПСЧ. Каждый генератор имеет период, после которого генерируемая последовательность повторяется. Очевидно, что период псевдослучайной гаммы должен превышать длину шифруемого информационного сообщения.

При блочном шифровании информационное сообщение разбивается на блоки фиксированной длины и шифруется поблочно. Блочные шифры бывают двух основных видов:

  1. шифры перестановки

  2. шифры замены

Шифры перестановок переставляют элементы открытых данных (биты, буквы, символы) в некотором новом порядке. Различают шифры горизонтальной, вертикальной, двойной перестановки, решетки, лабиринты.

Шифры замены заменяют элементы открытых данных на другие элементы по определенному правилу. Различают шифры простой, сложной, парной замены, буквенно–слоговое шифрование и шифры колонной замены.

Шифры замены делятся на две группы:

  1. моноалфавитные (код Цезаря)

  2. полиалфавитные (шифр Вигенера, цилиндр Джефферсона, диск Уотстоуна, Enigma).

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

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

Блочное шифрование можно осуществлять двояко:

  1. без обратной связи (ОС). Несколько битов (блок) исходного текста шифруются одновременно, и любой бит исходного текста влияет на любой бит шифртекста. Однако взаимного влияния блоков нет, т.е. два одинаковых блока исходного текста будут представлены одинаковым шифртекстом .Поэтому подробные алгоритмы можно использовать только для шифрования случайной последовательности битов (например, ключей).

  2. с обратной связью. Обычно ОС организуется так: предыдущий шифрованный блок складывается по модулю 2 с текущим блоком. В качестве 1–го блока в цепи ОС используется инициализирующее значение. Ошибка в одном бите влияет на 2 блока — ошибочный и следующий за ним.

В современных криптографических системах используют оба способа шифрования (замены и перестановки). Такой шифратор называют составным. Он более стойкий, чем шифратор, использующий только замены или перестановки. Кроме того, при блочном шифровании может применяться генератор ПСЧ (как при потоковом шифровании). Блочные алгоритмы в свою очередь могут использоваться для выработки гаммы. В этом случае гамма вырабатывается блоками и поблочно складывается по модулю 2 с исходным текстом.