Алгоритм с симметричным ключом

редактировать

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

СОДЕРЖАНИЕ
  • 1 Типы
  • 2 Реализации
  • 3 Использование в качестве криптографического примитива
  • 4 Построение симметричных шифров
  • 5 Безопасность симметричных шифров
  • 6 Управление ключами
  • 7 Ключевое учреждение
  • 8 Генерация ключей
  • 9 Взаимный шифр
  • 10 заметок
  • 11 Источники
Типы

Шифрование с симметричным ключом может использовать либо потоковые шифры, либо блочные шифры.

  • Потоковые шифры шифруют цифры (обычно байты ) или буквы (в замещающих шифрах) сообщения по одной за раз. Пример - ChaCha20.
  • Блочные шифры принимают несколько битов и шифруют их как единое целое, дополняя открытый текст так, чтобы он был кратен размеру блока. Advanced Encryption Standard алгоритм (AES), утвержденный NIST в декабре 2001 года, использует 128-битные блоки.
Реализации

Примеры популярных алгоритмов с симметричным ключом включают Twofish, Serpent, AES (Rijndael), Camellia, Salsa20, ChaCha20, Blowfish, CAST5, Kuznyechik, RC4, DES, 3DES, Skipjack, Safer и IDEA.

Использовать как криптографический примитив

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

Шифрование сообщения не гарантирует, что оно останется неизменным при шифровании. Следовательно, часто код аутентификации сообщения добавляется к зашифрованному тексту, чтобы гарантировать, что изменения в зашифрованном тексте будут отмечены получателем. Коды аутентификации сообщений могут быть построены из шифра AEAD (например, AES-GCM ).

Однако симметричные шифры нельзя использовать в целях предотвращения отказа от авторства, кроме как с привлечением дополнительных сторон. См. Стандарт ISO / IEC 13888-2.

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

Построение симметричных шифров
Основная статья: шифр Фейстеля

Многие современные блочные шифры основаны на конструкции, предложенной Хорстом Фейстелем. Конструкция Фейстеля позволяет строить обратимые функции из других функций, которые сами по себе не обратимы.

Безопасность симметричных шифров

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

Ключевой менеджмент
Основная статья: управление ключами
Ключевое учреждение
Основная статья: ключевое учреждение

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

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

Генерация ключей
Основная статья: генерация ключей

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

Взаимный шифр

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

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

Примеры взаимных шифров включают:

Большинство всех современных шифров можно классифицировать как потоковые шифры, в большинстве из которых используется обратный сумматор шифров XOR, или как блочные шифры, в большинстве из которых используется шифр Фейстеля или схема Лая-Месси с обратным преобразованием в каждом раунде.

Примечания
использованная литература
Последняя правка сделана 2023-03-19 11:56:53
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте