Симметричное и асимметричное шифрование. Разбор алгоритма передачи шифрованных данных между серверами

Симметричные криптосистемы

Симметри́чные криптосисте́мы (также симметричное шифрование , симметричные шифры ) - способ шифрования, в котором для шифрования и расшифровывания применяется один и тот же криптографический ключ . До изобретения схемы асимметричного шифрования единственным существовавшим способом являлось симметричное шифрование. Ключ алгоритма должен сохраняться в секрете обеими сторонами. Алгоритм шифрования выбирается сторонами до начала обмена сообщениями.

Основные сведения

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

Классическим примером таких алгоритмов являются симметричные криптографические алгоритмы , перечисленные ниже:

  • Простая перестановка
  • Одиночная перестановка по ключу
  • Двойная перестановка
  • Перестановка "Магический квадрат"

Простая перестановка

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

Одиночная перестановка по ключу

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

Двойная перестановка

Для дополнительной скрытности можно повторно шифровать сообщение, которое уже было зашифровано. Этот способ известен под названием двойная перестановка. Для этого размер второй таблицы подбирают так, чтобы длины ее строк и столбцов были другие, чем в первой таблице. Лучше всего, если они будут взаимно простыми. Кроме того, в первой таблице можно переставлять столбцы, а во второй строки. Наконец, можно заполнять таблицу зигзагом, змейкой, по спирали или каким-то другим способом. Такие способы заполнения таблицы если и не усиливают стойкость шифра, то делают процесс шифрования гораздо более занимательным.

Перестановка «Магический квадрат»

Магическими квадратами называются квадратные таблицы со вписанными в их клетки последовательными натуральными числами от 1, которые дают в сумме по каждому столбцу, каждой строке и каждой диагонали одно и то же число. Подобные квадраты широко применялись для вписывания шифруемого текста по приведенной в них нумерации. Если потом выписать содержимое таблицы по строкам, то получалась шифровка перестановкой букв. На первый взгляд кажется, будто магических квадратов очень мало. Тем не менее, их число очень быстро возрастает с увеличением размера квадрата. Так, существует лишь один магический квадрат размером 3 х 3, если не принимать во внимание его повороты. Магических квадратов 4 х 4 насчитывается уже 880, а число магических квадратов размером 5 х 5 около 250000. Поэтому магические квадраты больших размеров могли быть хорошей основой для надежной системы шифрования того времени, потому что ручной перебор всех вариантов ключа для этого шифра был немыслим.

В квадрат размером 4 на 4 вписывались числа от 1 до 16. Его магия состояла в том, что сумма чисел по строкам, столбцам и полным диагоналям равнялась одному и тому же числу - 34. Впервые эти квадраты появились в Китае, где им и была приписана некоторая «магическая сила».

После этого шифрованный текст записывается в строку (считывание производится слева направо, построчно):
.ирдзегюСжаоеянП

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

История

Требования

Полная утрата всех статистических закономерностей исходного сообщения является важным требованием к симметричному шифру. Для этого шифр должен иметь «эффект лавины » - должно происходить сильное изменение шифроблока при 1битном изменении входных данных (в идеале должны меняться значения 1/2 бит шифроблока).

Также важным требованием является отсутствие линейности (то есть условия f(a) xor f(b) == f(a xor b)), в противном случае облегчается применение дифференциального криптоанализа к шифру.

Общая схема

В настоящее время симметричные шифры - это:

  • блочные шифры . Обрабатывают информацию блоками определённой длины (обычно 64, 128 бит), применяя к блоку ключ в установленном порядке, как правило, несколькими циклами перемешивания и подстановки, называемыми раундами . Результатом повторения раундов является лавинный эффект - нарастающая потеря соответствия битов между блоками открытых и зашифрованных данных.
  • поточные шифры , в которых шифрование проводится над каждым битом либо байтом исходного (открытого) текста с использованием гаммирования . Поточный шифр может быть легко создан на основе блочного (например, ГОСТ 28147-89 в режиме гаммирования), запущенного в специальном режиме.

Большинство симметричных шифров используют сложную комбинацию большого количества подстановок и перестановок. Многие такие шифры исполняются в несколько (иногда до 80) проходов, используя на каждом проходе «ключ прохода». Множество «ключей прохода» для всех проходов называется «расписанием ключей» (key schedule). Как правило, оно создается из ключа выполнением над ним неких операций, в том числе перестановок и подстановок.

Типичным способом построения алгоритмов симметричного шифрования является сеть Фейстеля . Алгоритм строит схему шифрования на основе функции F(D, K), где D - порция данных, размером вдвое меньше блока шифрования, а K - «ключ прохода» для данного прохода. От функции не требуется обратимость - обратная ей функция может быть неизвестна. Достоинства сети Фейстеля - почти полное совпадение дешифровки с шифрованием (единственное отличие - обратный порядок «ключей прохода» в расписании), что сильно облегчает аппаратную реализацию.

Операция перестановки перемешивает биты сообщения по некоему закону. В аппаратных реализациях она тривиально реализуется как перепутывание проводников. Именно операции перестановки дают возможность достижения «эффекта лавины». Операция перестановки линейна - f(a) xor f(b) == f(a xor b)

Операции подстановки выполняются как замена значения некоей части сообщения (часто в 4, 6 или 8 бит) на стандартное, жестко встроенное в алгоритм иное число путем обращения к константному массиву. Операция подстановки привносит в алгоритм нелинейность.

Зачастую стойкость алгоритма, особенно к дифференциальному криптоанализу, зависит от выбора значений в таблицах подстановки (S-блоках). Как минимум считается нежелательным наличие неподвижных элементов S(x) = x, а также отсутствие влияния какого-то бита входного байта на какой-то бит результата - то есть случаи, когда бит результата одинаков для всех пар входных слов, отличающихся только в данном бите.

Параметры алгоритмов

Существует множество (не менее двух десятков) алгоритмов симметричных шифров, существенными параметрами которых являются:

  • длина ключа
  • число раундов
  • длина обрабатываемого блока
  • сложность аппаратной/программной реализации
  • сложность преобразования

Распространенные алгоритмы

  • AES (англ. Advanced Encryption Standard ) - американский стандарт шифрования
  • ГОСТ 28147-89 - отечественный стандарт шифрования данных
  • DES (англ. Data Encryption Standard ) - стандарт шифрования данных в США

Сравнение с асимметричными криптосистемами

Достоинства

  • скорость (по данным Applied Cryptography - на 3 порядка выше)
  • простота реализации (за счёт более простых операций)
  • меньшая требуемая длина ключа для сопоставимой стойкости
  • изученность (за счёт большего возраста)

Недостатки

  • сложность управления ключами в большой сети. Означает квадратичное возрастание числа пар ключей, которые надо генерировать, передавать, хранить и уничтожать в сети. Для сети в 10 абонентов требуется 45 ключей, для 100 уже 4950, для 1000 - 499500 и т. д.
  • сложность обмена ключами. Для применения необходимо решить проблему надёжной передачи ключей каждому абоненту, так как нужен секретный канал для передачи каждого ключа обеим сторонам.

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

Важным свойством симметричных шифров является невозможность их использования для подтверждения авторства, так как ключ известен каждой стороне.

Литература

  • Гатчин Ю.А., Коробейников А.Г. Основы криптографических алгоритмов. Учебное пособие. - СПб.: СПбГИТМО(ТУ), 2002.
  • Кон П. Универсальная алгебра. - М.: Мир. - 1968.
  • Коробейников А. Г. Математические основы криптографии. Учебное пособие. СПб: СПб ГИТМО (ТУ), 2002.

Ссылки

  • справочник, рассматривающий в том числе симметричное шифрование

1Симметричные системы шифрования - системы, в которых для шифрования и расшифровывания применяется один и тот же криптографический ключ. До изобретения схемы асимметричного шифрования единственным существовавшим способом являлось симметричное шифрование. Ключ алгоритма должен сохраняться в секрете обеими сторонами. Алгоритм шифрования выбирается сторонами до начала обмена сообщениями.

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

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

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

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

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

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

Схема обмена информацией следующая:

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

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

Получатель получает сообщение и расшифровывает его, используя свой секретный ключ.

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

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

4 Обычно при симметричном шифровании используется сложная и многоступенчатая комбинация подстановок и перестановок исходных данных, причем ступеней (проходов) может быть множество, при этом каждой из них должен соответствовать «ключ прохода». Операция подстановки выполняет первое требование, предъявляемое к симметричному шифру, избавляясь от любых статистических данных путем перемешивания битов сообщения по определенному заданному закону. Перестановка необходима для выполнения второго требования – придания алгоритму нелинейности. Достигается это за счет замены определенной части сообщения заданного объема на стандартное значение путем обращения к исходному массиву.

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

6 В данной же таблице приведены основные Характеристики составных алгоритмов шифрования

7 Инициатива в разработке AES принадлежит национальному институту стандартов США - NIST. Основная цель состояла в создании федерального стандарта США, который бы описывал алгоритм шифрования, используемый для защиты информации как в государственном, так и в частном секторе. AES представляет собой симметричный алгоритм блочного шифрования с переменной длиной блока и переменной длиной ключа.

8 IDEA (International Data Encryption Algorithm) является блочным симметричным алгоритмом шифрования, разработанным Сюдзя Лай (Xuejia Lai) и Джеймсом Массей (James Massey) из швейцарского федерального института технологий.IDEA является одним из нескольких симметричных криптографических алгоритмов, которыми первоначально предполагалось заменить DES. IDEA является блочным алгоритмом, который использует 128-битовый ключ для шифрования данных блоками по 64 бита. Целью разработки IDEA было создание относительно стойкого криптографического алгоритма с достаточно простой реализацией.

9. В нашей стране в качестве стандарта используется технология, описанная в ГОСТе 28147-89 "Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования". Этот ГОСТ был принят в 1989 году и с тех пор не изменялся. Алгоритм шифрования был разработан в КГБ в конце 70-х годов, однако, он создавался с достаточно большим "запасом прочности". По этому параметру он на порядок превосходил американский DES, который сначала заменили на тройной, а потом на AES. Таким образом, и на сегодняшний день криптостойкость российского стандарта вполне удовлетворяет всем современным требованиям.

10 Перейдем к понятию Криптографическая стойкость (или криптостойкость) - способность криптографического алгоритма противостоять криптоанализу. Стойким считается алгоритм, который для успешной атаки требует от противника недостижимых вычислительных ресурсов, недостижимого объёма перехваченных открытых и зашифрованных сообщений или же такого времени раскрытия, что по его истечении защищенная информация будет уже не актуальна, и т. д. В большинстве случаев криптостойкость нельзя математически доказать, можно только доказать уязвимости криптографического алгоритма. Существуют достаточно и абсолютно стойкие криптосистемы. Шифр Вернама (англ. Verrnam Cipher, другое название One-time pad - схема одноразовых блокнотов) - система симметричного шифрования, впервые предложенная в 1882 году Ф. Миллеро и заново изобретённая в 1917 году сотрудником AT&T Гилбертом Вернамом

Понятие шифрования

Шифрование ¾ это способ преобразования информации, применяемый для хранения важной информации в ненадёжных источниках или передачи её по незащищённым каналам связи. Согласно ГОСТ 28147-89, шифрование - процесс зашифрования или расшифрования.

Ключ шифрования - это секретная информация, используемая криптографическим алгоритмом при шифровании/расшифровке сообщений. При использовании одного и того же алгоритма результат шифрования зависит от ключа. Длина ключа является основной характеристикой криптостойкости и измеряется в битах.

В зависимости от структуры используемых ключей методы шифрования подразделяются на следующие виды:

· симметричное шифрование: для зашифрования и расшифрования используется один и тот же ключ;

· асимметричное шифрование: для зашифрования используется один ключ (открытый), а для расшифрования ¾ другой (закрытый, секретный). Данный вид шифрования также называют шифрованием с открытым ключом.

Различные виды шифрования обладают различной криптостойкостью.

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

Симметричные шифры бывают следующих видов:

· блочные шифры. Обрабатывают информацию блоками определенной длины (64, 128 бит и т.д.), применяя к блоку ключ в установленном порядке, как правило, несколькими циклами перемешивания и подстановки, называемыми раундами. Результатом повторения раундов является лавинный эффект ¾ нарастающая потеря соответствия битов между блоками открытых и зашифрованных данных.

· поточные шифры, в которых шифрование проводится над каждым битом либо байтом исходного (открытого) текста с использованием гаммирования. Поточный шифр может быть легко создан на основе блочного (например, ГОСТ 28147-89 в режиме гаммирования), запущенного в специальном режиме. Гаммирование - это процесс "наложения" определенной последовательности (гамма-последовательности) на открытый текст. Например, это может быть операция "исключающего ИЛИ". При расшифровании операция проводится повторно, в результате получается открытый текст.

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

Примеры симметричных алгоритмов: DES (Data Encryption Standard, стандарт шифрования данных), ГОСТ 28147-89.

Сравнение с асимметричным шифрованием:



Достоинства:

· скорость (по данным Applied Cryptography - на 3 порядка выше);

· простота реализации (за счёт более простых операций);

· меньшая требуемая длина ключа для сопоставимой стойкости;

· изученность (за счёт большего возраста).

Недостатки:

· сложность управления ключами в большой сети. Означает квадратичное возрастание числа пар ключей, которые надо генерировать, передавать, хранить и уничтожать в сети. Для сети в 10 абонентов требуется 45 ключей, для 100 уже 4950, для 1000 - 499500 и т. д.;

· сложность обмена ключами. Для применения необходимо решить проблему надёжной передачи ключей каждому абоненту, так как нужен секретный канал для передачи каждого ключа обеим сторонам.

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

Важным свойством симметричных шифров является невозможность их использования для подтверждения авторства, так как ключ известен каждой стороне.

Алгоритма должен сохраняться в секрете обеими сторонами. Алгоритм шифрования выбирается сторонами до начала обмена сообщениями.

Секретная связь на основе симметричной криптосистемы.

Для организации секретной связи традиционно используются симметричные шифрсистемы. «Штатными» Действующими лицами таких протоколов секретной связи являются отправитель, адресат и посредник, обеспечивающий пользователей ключами. Для рассмотрения вопросов защиты информации следует добавить в этот список «нештатных» участников: пассивного и активного нарушителя. Задача протокола – передать секретное сообщение x от отправителя адресату. Последовательность действий выглядит следующим образом:
1. Отправитель и адресат договариваются об используемой симметричной шифрсистеме, т.е. о семействе отображений E = {}, kK.
2. Отправитель и адресат договариваются о секретном ключе связи k, т.е. об используемом отображении E.
3. Отправитель шифрует открытый текст x с помощью отображения , т.е. создаёт криптограмму y = (x).
4. Криптограмма y передаётся по линии связи адресату.
5. Адресат расшифровывает криптограмму y используя тот же ключ k и отображение ^(-1), обратное к отображению Ek и читает сообщение x= ^(-1)(y).
Шаг 2 протокола реализуется с помощью посредника, третьей стороны, которую условно можно назвать центром генерации и распределения ключей (ЦГРК) (некоторые протоколы секретной связи на основе асимметричных шифрсистем не использую посредника, в них функции ЦГРК выполняются пользователями).
Существенной особенностью протокола является секретность ключа k который передается отправителю и адресату либо в открытом виде по каналу связи, защищённому от действий криптоаналитика, либо в шифрованном виде по открытому каналу связи. Защищённый канал может иметь относительно невысокую пропускную способность, но должен надёжно защищать ключевую информацию от несанкционированного доступа. Ключ k должен оставаться в секрете до, во время и после реализации протокола, иначе нарушитель, завладев ключом, может расшифровать криптограмму и прочитать сообщение. Отправитель и адресат могут выполнить шаг 1 протокола публично (секретность шифрсистемы необязательна), но шаг 2 они должны выполнить секретно (секретность ключа обязательна).
Такая необходимость вызвана тем, что линии связи, в особенности протяжённые, уязвимы с точки зрения вмешательства пассивного и активного нарушителей. Пассивный нарушитель (криптоаналитик), желая получить доступ к сообщению x, контролирует линию связи на шаге 4 протокола. Не вмешиваясь в реализацию протокола, он перехватывает криптограмму y с целью раскрытия шифра.

Криптоанализ симметричной криптосистемы.

Разрабатывая шифрсистему, криптограф обычно исходит из следующих предположений о возможностях криптоаналитика:
1. Криптоаналитик контролирует линию связи.
2. Криптоаналитику известно устройство семейства E отображений шифра.
3. Криптоаналитику неизвестен ключ k, т.е. неизвестно отображение , использованное для получения криптограммы y.
В этих условиях криптоаналитик пытается решить следующие задачи, называемые задачами дешифрования.
1. Определить открытый текст x и использованный ключ k по перехваченной криптограмме y, т.е. построить такой алгоритм дешифрования , при котором (y)=(x,k). Данная постановка задачи предполагает использование криптоаналитиком статистических свойств открытого текста.
2. Определить использованный ключ k по известному открытому и шифрованному текстам, т.е. построить такой алгоритм дешифрования , при котором (x,y)=k. Такая постановка задачи имеет смысл, когда криптоаналитик перехватил несколько криптограмм, полученных с использование ключа k, и располагает открытыми текстами не для всех перехваченных криптограмм. В этом случае, решив задачу дешифрования второго типа, он «прочтёт» все открытые тексты, зашифрованные с использованием ключа k.
3. Определить используемый ключ k по специально подобранному открытому тексту x и соответствующему шифрованному тексту y, т.е. построить алгоритм дешифрования x такой, что x(y)=k. Подобная постановка задачи возникает тогда, когда криптоаналитик имеет возможность тестирования криптосистемы, т.е. генерирования криптограммы для специально подобранного открытого текста. Чаще такая постановка задачи возникает при анализе асимметричных систем. имеется разновидность этой задачи дешифрования, когда используется специально подобранный шифртекст.
Для решения задач дешифрования криптоаналитик использует или шифрованное сообщение y, или пару (x,y), состоящую из открытого и шифрованного сообщений, или комплект таких сообщений или пар сообщений. Эти сообщения или комплекты сообщений называют шифрматериалом. Используемым для дешифрования количеством шифрматериала называется длина этих сообщений или суммерная длина комплекта сообщений. Количество шифрматериала является важной характеристикой метода дешифрования. Расстоянием единственности шифра называется наименьшее число знаков шифрованного текста, необходимых для однозначного определения ключа. Во многих практических случаях оно равно длине ключа, если ключ и криптограмма суть слова из равномощных алфавитов. При одинаковом количестве шифрматериала дешифровальные задачи первого типа отличаются более высокой вычислительной сложностью по сравнению с задачами второго и третьего типа, наименьшую вычислительную сложность имеют задачи тестирования.
В ряде случаев криптоаналитик может решить задачу восстановления семейства E отображений шифра по известной паре (x,y) открытого и шифрованного текстов, пользуясь некоторыми дополнительными условаиями. Эта задача может быть сформулирована как «дешифровка чёрного ящика» по известным входам и соответствующим выходам.
Активный нарушитель нарушает реализацию протокола. Он может прервать связь на шаге 4, полагая, что отправитель не сможет больше ничего сообщить адресату. Он может также перехватить сообщение и заменить его своим собственным. Если бы активный нарушитель узнал ключ (контролируя шаг 2 или проникнув в криптосистему), он мог бы зашифровать своё сообщение и отправить его адресату вместо перехваченного сообщения, что не вызвало бы у последнего никаких подозрений. Не зная ключа, активный нарушитель может создать лишь случайную криптограмму, которая после расшифрования предстанет случайной последовательностью.

Требования к протоколу.

Рассмотренный протокол подразумевает доверие отправителя, адресата и третьей стороны в лице ЦГРК. Это является слабостью данного протокола. Впрочем, абсолютных гарантий безупречности того или иного протокола не существует, так как выполнение любого протокола связано с участием людей и зависит, в частности, от квалификации и надёжности персонала. Таки образом, по организации секретной связи с использованием симметричной криптосистемы можно сделать следующие выводы.
1. Протокол должен защищать открытый текст и ключ от несанкционированного доступа постороннего лица на всех этапах передачи информации от источника к получателю сообщений. Секретность ключа более важна, чем секретность нескольких сообщений, шифруемых на этом ключе. Если ключ скомпрометирован (украден, угадан, раскрыт, выкуплен), то нарушитель, имеющий ключ, может расшифровать все зашифрованные на этом ключе сообщения. Кроме того, нарушитель сможет имитировать одну из переговаривающихся сторон и генерировать фальшивые сообщения с целью ввести в заблуждение другую сторону. При частой смене ключей эта проблема сводится к минимуму.
2. Протокол не должен допускать выхода в линию связи «лишней» информации, предоставляющей криптоаналитику противника дополнительные возможности дешифрования криптограмм. Протокол должен защищать информацию не только от посторонних лиц, но и от взаимного обмана действующих лиц протокола.
3. Если допустить, что каждая пара пользователей сети связи использует отдельный ключ, то число необходимых ключей равно n*(n-1)/2 для n пользователей. Это означает, что при большом n генерация, хранение и распределение ключей становится трудоёмкой проблемой.

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

Симметричная (секретная) методология, гдеи для шифрования, и для расшифровки, отправителем и получателем применяется один и тот же ключ, об использовании которого они договорились до начала взаимодействия (риc. 2.1). Если ключ не был скомпрометирован, то при расшифровании автоматически выполняется аутентификация отправителя, так как только отправитель имеет ключ, с помощью которого можно зашифровать информацию, и только получатель имеет ключ, с помощью которого можно расшифровать информацию. Так как отправитель и получатель – единственные люди, которые знают этот симметричный ключ, при компрометации ключа будет скомпрометировано только взаимодействие этих двух пользователей.

Рис. 2.1

Алгоритмы симметричного шифрования используют ключи не очень большой длины и могут быстро шифровать большие объемы данных.

Доступными сегодня средствами, в которых используется симметричная методология, являются, например, сети банкоматов. Эти системы являются оригинальными разработками владеющих ими банков и не продаются.

Из симметричных алгоритмов шифрования широкое использование получил алгоритм шифрования DES (изобретенный фирмой IBM), который рекомендован в открытых секторах экономики США. Этот алгоритм был изначально обречен на лимитированную продолжительность жизни вследствие ограничения длинны ключа до 56 битов.

В начале 1997 г. алгоритму DES, имеющему ключ в 56 бит, был брошен вызов. 17 июня 1997 г., через 140 дней ключ был расшифрован. Это означало фактическую смерть DES как стандарта шифрования. И действительно, когда в начале 1998 г., следующее соревнование по нахождению ключа DES привело к успеху всего за 39 дней, национальный институт стандартов США (NIST) объявил конкурс на утверждение нового стандарта AES (Advanced Encryption Standard). AES стал полностью открытым симметричным алгоритмом с ключом размером 128, 192, 256 бит.

Положение усугубляется тем, что по законодательству США к экспорту в качестве программных продуктов разрешены системы шифрования с ключом не более 128 бит. То есть, покупая шифросистему с ключом 1024 или 2048 и более бит, надо знать, что при смене ключа активной (изменяющейся) частью будет часть ключа в 128 бит. Симметричные системы шифрования имеют один общий недостаток, состоящий в сложности рассылки ключей. При перехвате ключа третьей стороной такая система криптозащиты будет скомпроментирована. Так при замене ключа его надо конфиденциально переправить участникам процедур шифрования. Очевидно, что этот метод не годится в том случае, когда нужно установить защищенные соединения с тысячами и более абонентов Интернет. Основная проблема состоит в том, как сгенерировать и безопасно передать ключи участникам взаимодействия. Как установить безопасный канал передачи информации между участниками взаимодействия для передачи ключей по незащищенным каналам связи? Отсутствие безопасного метода обмена ключами ограничивает распространение симметричной методики шифрования в Интернет.

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

Открытый ключ передается по открытым каналам связи другому участнику процесса криптозащиты, но секретный ключ хранится в секрете.

Отправитель шифрует сообщение открытым ключом получателя , а расшифровать его может только владелец секретного ключа (рис. 2.2).

Рис. 2.2

Открытый ключ не нужно прятать. Неважно кому известен данный ключ, поскольку он предназначен только для шифрования данных. Этот метод пригоден для широкого применения. Если присвоить каждому пользователю в Интернет свою пару ключей и опубликовать открытые ключи как номера в телефонной книге, то практически все смогут обмениваться друг с другом шифрованными сообщениями. Это похоже на коробку с двумя дверцами с разных сторон. Каждая такая дверца имеет свой замок. В коробку кладут документ, запирают, отпирают с другой стороны ключом получателя. При этом используется теория простых чисел. Такой алгоритм криптографической защиты получил название RSA.

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

Симметричные и асимметричные системы шифрования имеют каждая свои достоинства и недостатки. Недостатки симметричной системы шифрования заключаются в сложности замены скомпрометированного ключа, а недостатки асимметричной системы – в относительно низкой скорости работы. По криптостойкости длине ключа в 128 бит симметричной системы соответствует ключ в 2304 бита асимметричной.

В настоящее время распространение получили системы шифрования, использующие комбинированный алгоритм, позволяющий при высокой скорости шифрования, присущей AES использовать открытую пересылку ключей шифрования (как в RSA).

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

Рис. 2.3

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

Рис. 2.4

Криптографические системы с открытым ключом в настоящее время широко применяются в различных сетевых протоколах, в частности, в протоколах TLS и его предшественнике SSL (лежащих в основе HTTPS), в SSH. Также используется в PGP, S/MIME.