Основы криптографии
Информация - Компьютеры, программирование
Другие материалы по предмету Компьютеры, программирование
ановки.
Математическое описание шифра замены выглядит следующим образом. Пусть X и Y - два алфавита (открытый и шифрованный соответственно). Обозначим через g: X Y взаимно однозначное отображение алфавитов X и Y.
Действие шифра замены можно представить как преобразование открытого текста (x1, x2, … xn) в шифрованный (y1, y2, … yn), причём y1 = g (x1), y2 = g (x2), … yn = g (xn).
Математическое описание шифра перестановки выглядит следующим образом.
Пусть длина отрезков, на которые разбивается открытый текст, равна n, а ? - взаимно однозначное отображение множества {1, 2, … n} в себя.
Шифр перестановки действует так: отрезок открытого текста x1, x2, … xn преобразуется в отрезок шифрованного текста x? (1), x? (2), … x? (n) .
Очень важным для развития криптографии явился вывод К. Шеннона о существовании и единственности абсолютно стойкого шифра. Таким единственным шифром является одноразовая (однократная) система шифрования, в которой открытый текст объединяется с полностью случайным ключом такой же длины.
На практике абсолютно стойкие шифры применяются в сетях связи с небольшим объёмом передаваемой информации, которые используют для передачи сообщений особой государственной важности. Это обусловлено тем, что каждый передаваемый текст должен иметь свой собственный, абсолютно случайный, единственный и неповторяемый ключ. Следовательно, перед использованием этого шифра все абоненты должны быть обеспечены остаточным количеством случайных ключей, и при этом исключена возможность их постоянного использования. Выполнение этих требований - очень трудная и дорогая задача.
Классический симметричный шифр, описанный К. Шенноном, можно представить следующим образом. Для этого шифра определены две функции - функция шифрования и функция расшифрования.
Функция шифрования осуществляет преобразование открытого текста в зашифрованный (например, F: X Y).
Функция расшифрования выполняет обратную процедуру (например, F-1: Y X). [2]
. Классические шифры
Вообще "классическими шифрами" принято называть симметричные блочные шифры. То есть те, которые для шифрования и расшифрования информации используют один и тот же ключ и шифруют информацию блоками. Длина блока обычно составляет 8 или 16 байт. Есть алгоритмы, допускающие переменную длину блока. Первым блочным шифром, широко использующимся на практике, стал DES (Data Encryption Standard), разработанный специалистами IBM в начале 70х годов прошлого века и долгое время служивший стандартом для шифрования данных в США.
Потом появилось много блочных алгоритмов - IDEA, Blowfish, советский ГОСТ28147 89 (и ныне являющийся отечественным стандартом). Оригинальный DES, к примеру, использовал ключ длиной 112 бит и блок шифрования длиной 64 бита. Но после его "анализа" специалистами NSA1 длина ключа была уменьшена до 64 бит. При этом в ключе было только 56 бит уникальных, а 8 бит - контрольных, служащих для контроля целостности ключа. Именно с ключом длиной в 56 бит DES и был утвержден в качестве Национального Стандарта. При том уровне развития вычислительной техники задача перебора 2**56 ключей за приемлемое время была или технически не выполнимой, или неоправданно дорогой. Сейчас DES с длиной ключа в 56 бит не представляется стойким алгоритмом. Большинство современных стойких симметричных алгоритмов используют ключ длиной 64-256 бит (8-32 байта). Необходимо отметить, что кроме блочных шифров существуют и активно используются поточные шифры. Они, как и блочные шифры, используют симметричный ключ, но выполняют шифрование входного потока побайтно или иногда побитно.
Идея поточного шифра состоит в том, что на основе симметричного ключа вырабатывается ключевая последовательность или гамма-последовательность, которая складывается по модулю два (операция xor) с входным потоком. Поточные шифры, как правило, более производительны, чем блочные, и используются для шифрования речи, сетевого трафика и иных данных с заранее неизвестной длиной. При достаточно частой смене ключа для выработки гаммы поточные шифры обеспечивают достаточную стойкость. Вектор инициализации, как видно из его названия, является инициализирующей двоичной посылкой длиной равной блоку алгоритма. Вектор инициализации не является секретным элементом. В частности, в мобильной связи стандартом GSM предусмотрена возможность шифрования передаваемого голосового потока на участке от телефонного аппарата до базовой станции шифром A5, который является поточным.
С алгоритмом A5 связана одна поучительная история. Изначально описание алгоритма A5 было закрытым. Но из-за юридической ошибки компании владельца алгоритма его описание попало в Интернет, и алгоритм был проанализирован. Его стойкость оказалась даже ниже стойкости DES. Осознав важность открытости алгоритмов для обеспечения их стойкости, разработчики третьего поколения сети GSM пообещали сделать предлагаемые к использованию алгоритмы шифрования голоса достоянием широкой криптографической общественности. Пример показывает важность наличия открытого описания алгоритма даже для самих его разработчиков.
На сегодняшний день алгоритмы с длиной ключа 64 и больше бит обеспечивают приемлемую стойкость. Однако зачем тогда использовать ключи длиной 512 и более бит? Ответ таков- эти ключи от другого замка!
В 1976 году была опубликована работа американских математиков У. Диффи и М. Хеллмана "Новые направления в криптографии". В этой работе была предложена и обоснована методология асимметричного шифрования, которая базируется на применен