Шифр AES, Rijndael-AES, Rijndael. Создатель: Винсент Рэймен, Йоан Даймен.
Создан: 1998 г.
Симметричные криптосистемы так называемое симметричное
шифрование или симметричные шифры — это способ шифрования, в котором для
шифрования и расшифрования используется один и тот же криптографический ключ.
Длительное время симметричное шифрование являлось единственным способом
шифрования и расшифрования информации.
Прежде чем запустить такую систему необходимо, чтобы отправитель и получатель
согласовали ключ для безопасной передачи сообщения. Безопасность симметричного
алгоритма полностью зависит от ключа, то есть нестойкий ключ позволяет
злоумышленникам шифровать и дешифровать все сообщения.
Схема симметричного алгоритма выглядит следующим образом: открытый текст
с помощью секретного ключа шифруется, в результате получается шифротекст,
который дешифруется с помощью того же ключа, после чего приходим
к первоначальному открытому тексту.
ГОСТ 28147-89. Создатель: КГБ, 8-е управление. Создан: 1989 г.
Симметричные алгоритмы подразделяются на две разновидности. Потоковые
алгоритмы посредством граммирования обрабатывают текст по битно или
по байтно. Эту разновидность симметричных алгоритмов также называют потоковыми
шифрами.
Ко второй разновидности симметричных алгоритмов относится так называемые
блочные алгоритмы или шифры, которые обрабатывают групп битов
открытого текста определенной длины, как правило 64 или 128 бит. Подстановка
и перемешивание ключа происходит в установленном порядке в несколько циклов, так
называемых раундов. Для создания подобного шифра необходимо использовать «эффект
лавины», то есть должно быть оказано сильное изменение шифроблока при 1-битном
изменении входных данных. В лучшем случае значения шифроблока должны меняться
при 1/2 бит.
Главным требованием к симметричной криптосистеме и шифру является полная
утрата всех статистических закономерностей исходного сообщения. Кроме того,
немаловажным требованием является отсутствие линейности. Если это условие
не соблюдено, то это значительно облегчает применение дифференциального
криптоанализа к шифру.
Большая часть симметричных шифров использует сложную комбинацию огромного
количества подстановок и перестановок. Создание таких шифров проходит
в несколько (до 80) продходов. Каждый проход использует «ключ прохода».
Количество «ключей прохода» для всех проходов образует так называемое
«расписание ключей» (key schedule).
Самым распространенным способом построения алгоритмов симметричного
шифрования является сеть Фейстеля. В первую очередь выстраивается алгоритм
шифрования на основе функции F(D, K), где D — это пакет данных, объем которого
в два раза меньше блока шифрования, а K — это «ключ прохода» для данного
прохода. Главным преимуществом сети Фейстеля является практически полное
совпадение дешифровки с шифрованием, что значительно облегчает и ускоряет
аппаратную реализацию. Единственное отличие дешифровки от шифрования заключается
в обратном порядке «ключей прохода» в расписании.
Процесс перестановки перемешивает биты сообщения по определенному закону.
Благодаря операции перестановки возможно осуществление «эффекта лавины».
Перестановка в аппаратных реализациях представляет собой простое перепутывание
проводников. Кроме того, операция перестановки линейна.
Обратный процесс — операция подстановки осуществляется как замена значения
определенной части сообщения с частотой в 4, 6 или 8 бит на стандартное, жестко
встроенное в алгоритм иное число посредством использования константного массива.
Процесс подстановки нелинейный.
Выбор значений в таблицах подстановки (S-блоках) определяет стойкость
алгоритма к дифференциальному криптоанализу. Нежелательным является
использование неподвижных элементов, типа S(x) = x, а также отсутствие влияния
какого-либо бита входного байта на какой-то бит результата, то есть, когда бит
результата одинаков для всех пар входных слов, которые отличаются лишь в данном
бите
Triple DES. Создатель: IBM. Опубликован: 1978 г.
Исходя из этого можно выделить необходимые параметры симметричных алгоритмов.
Прежде всего это стойкость, затем длина ключа, число раундов, длина
обрабатываемого блока и, наконец, сложность программной или аппаратной
реализации.
В настоящее время к наиболее распространенным симметричным алгоритмам
относятся:
- Американский стандарт шифрования — AES (от английского Advanced
Encryption Standard); до появления АЕS в США был распространен стандарт
шифрования DES (англ. Data Encryption Standard);
- Тройной DES — 3DES (Triple-DES);
- Российский стандарт шифрования данных — ГОСТ 28147-89;
- Шифр Ривеста — RC6;
- Twofish;
- IDEA от английского International Data Encryption Algorithm;
- Корейский стандарт шифрования данных — SEED;
- Японский стандарт шифрования — Camellia;
- По инициативе Carlisle Adams и Stafford Tavares был разработан шифр CAST;
- Один из самых простых в реализации алгоритмов является XTEA.
Относительно ассиметричных криптосистем главными достоинствами симметричного
шифрования являются:
- высокая скорость, по данным Applied Cryptography на 3 порядка выше;
- простота реализация, которая определяется несложными операциями;
- небольшая требуемая длина ключа для сопоставимой стойкости;
- хорошая изученность, поскольку симметричные криптосистемы появились гораздо
раньше, чем ассиметричные.
К основным недостаткам симметричного шифрования можно отнести сложность
в управлении ключами большой сети. Сложность состоит в том, что квадратичное
возрастание числа пар ключей затрудняет генерацию, передачу, хранение
и уничтожение их в сети. К примеру, для сети в 10 абонентов необходимо
45 ключей, для 100 4950, а для 1000 499500 и т. д.
Следует отметить, что симметричные шифры невозможно использовать с целью
подтверждения авторства, поскольку секретный ключ известен обеим сторонам.
Сложность управления обуславливает трудность обмена ключами в симметричной
криптосистеме. Надежная передача ключей каждого абонента требует выделенный
секретный канал для передачи каждого ключа обеим сторонам.
Сегодня, чтобы компенсировать недостатки симметричного шифрования стали
широко использовать комбинированную, так называемую гибридную
криптографическую схему, которая с помощью ассиметричного шифрования
передает сеансовый ключ для обмена сообщениями посредством симметричного
шифрования.