Цифровой конверт.
Симметричные алгоритмы шифрования.
На рис. 1 приведена классическая модель симметричной криптосистемы Клода Шеннона, включающая трех участников: отправителя, получатель, злоумышленника. Задача отправителя заключается в том, чтобы по открытому каналу передать некоторое сообщение в защищенном виде. Для этого он на ключе К зашифровывает открытый текст Х и передает шифрованный текст. Задача получателя заключается в том, чтобы расшифровать У и прочитать сообщение X. Ключ, сгенерированный заранее, передается получателю по надежному каналу.
Рисунок 1. – Модель симметричного шифрования
Наиболее популярным стандартным симметричным алгоритмом является DES (Data Encryption Standard), рекомендованный Национальным бюро стандартов к использованию в открытых секторах экономики. Суть этого алгоритма заключается в следующем:
Рисунок 2. – Схема шифрования по алгоритму DES.
Данные преобразуются в цифровую форму путем замены символов значениями двоичных чисел таблицы ASCII и шифруются поблочно, размер блока (В) – 64 бита, он делится пополам на левую (L) и правую (R) части по 32 бита, на место левой части результирующего блока помещается правая часть исходного блока. Правая часть блока (Р) вычисляется как:
После этого блок (S) состоящий из R и P шифруется путем побитных замен и перестановок с помощью двоичной последовательности (ключа) длинной 64 бита, из которых 56 случайны, а 8 предназначены для контроля ключа
Для повышения безопасности зашифрованного сообщения с помощью алгоритма DES, применяют его усиленный вариант, называемый "тройным DES", при этом длина ключа увеличивается с 56 бит до 168 бит, а значит, криптостойкость алгоритма повышается [1]. Но это приводит к снижению производительности, т. к. для шифрования требуется в три раза больше времени.
Существуют две основные проблемы связанные с использованием симметричных алгоритмов:
- проблема надежности канала передачи ключа второму участнику секретных переговоров;
- проблема, связанная с масштабируемостью системы, поскольку в системе с n абонентами, желающими обмениваться секретными данными по принципу "каждый с каждым", потребуется N ключей.:
N=n х (n—1)/2
То есть количество ключей пропорционально квадрату количества абонентов, что при большом числе абонентов делает задачу чрезвычайно сложной.
Применение несимметричных алгоритмов, основанных на использовании открытых ключей, снимает эти проблемы.
Несимметричные алгоритмы шифрования
В отличие от симметричных алгоритмов, в несимметричных генерируется уникальная пара ключей, таких, что текст, зашифрованный одним ключом, может быть расшифрован только с использованием второго ключа и наоборот.
Модель криптосхемы с открытым ключом фактически не отличается от модели приведенной на рис. 1 за исключением того, что получателем генерируется уникальная пара ключей: закрытый (D) и открытый (Е). Шифрование производится открытым ключом, а расшифровка ‑ закрытым.
Таким образом решается проблема масштабируемости, число ключей необходимое для общения пользователей в сети равно: N=2*n.
Т.е. квадратичная зависимость количества ключей от числа абонентов в симметричных алгоритмах заменяется линейной зависимостью. Исчезает и задача секретной доставки ключа.
В настоящее время одним из наиболее популярных криптоалгоритмов с открытым ключом является криптоалгоритм RSA.