Введение в симметричные алгоритмы

Симметричные алгоритмы, также известные как алгоритмы секретного ключа, широко используются при шифровании объемных данных или потока данных. Это тип криптографического алгоритма, который шифрует и дешифрует данные, используя один и тот же ключ (что делает этот алгоритм симметричным). Он называется секретным ключом, поскольку используемый ключ хранится в секрете системами, которые участвуют в процессе шифрования и дешифрования. Шифрование, выполняемое этим алгоритмом, нелегко сломать, если у человека, который пытается расшифровать, нет секретного ключа, ему придется использовать передовые методы для его взлома. Эти алгоритмы, как правило, очень быстрые по своей природе, что является еще одной причиной, по которой они используются, когда требуется шифрование больших объемов данных. Рис. 1a изображает базовый симметричный ключ шифрования:

Figure1.a Шифрование с симметричным ключом

Типы симметричных алгоритмов

Широко симметричные алгоритмы подразделяются на два

  • блок
  • Ручей

Блочные алгоритмы

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

Алгоритмы потока

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

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

  • DES & Triple DES
  • RC2
  • Blowfish

DES & Triple DES

DES обозначает стандарт шифрования данных, который принимает 64-битный простой текст, шифрует его в 64-битный зашифрованный текст и расшифровывает обратно с помощью 56-битного ключа. В DES процесс шифрования начинается с начальной стадии перестановки, где он будет принимать входные данные как 64-битные данные и переставлять их предопределенным образом. За исходной перестановкой следует, что 16 раундов шифрования Фейстеля (шифр Фейстеля принимает входные данные и делит его на две части и выполняет шифрование только на одну часть), где в каждом раунде используется различный 48-битный ключ шифра. Для целей шифрования и дешифрования он использует шифр и инвертирует алгоритм шифрования. Наконец, данные проходят финальную стадию перестановки, чтобы получить зашифрованный текст. Подобно DES Triple DES - это всего лишь шифр DES, повторенный 3 раза. Fig2.a показывает общую архитектуру алгоритма DES.

Общая архитектура алгоритма DES

RC2

Это алгоритм блочного шифрования, в котором сначала данные делятся на блоки размером 8 байт, и эти блоки обрабатываются отдельно. Этот алгоритм широко использовался в 90-х годах. Шифр Rc2 использует секретный пользовательский ключ, размер которого может варьироваться от одного байта до 128 байтов. Он берет этот секретный ключ пользователя, использует алгоритм расширения ключа и шифрует данные. Этот алгоритм разработан таким образом, чтобы его можно было легко реализовать в 16-разрядных микропроцессорах. Здесь нет раундов Фейстеля, вместо этого данные подвергаются 18 раундам смешивания и затирания. На Рис. 2b показана общая архитектура алгоритма RC2.

Общая архитектура алгоритма RC2

Blowfish

Это асимметричный алгоритм, который заменяет DES. Здесь используемый размер блока составляет 64 бита, а размеры ключей варьируются от 32 до 448 бит. Шифрование с использованием Blowfish в основном состоит из двух этапов

  • Круглая функция
  • Операция вывода

Функция округления выполняет следующие шаги

  1. Отбеливание клавиш, при котором берется левая часть входных данных и выполняется исключительная операция ИЛИ.
  2. На втором шаге используются S-блоки, эти S-блоки отображают 8-битные данные в 32-битные, и вывод берется для объединения с комбинацией операций сложения и XOR.
  3. Вышеупомянутые два шага, объединенные вместе, называют F-функцией. С выводом функции F и правой стороны входных данных выполняется операция XOR.
  4. Последний шаг включает в себя обмен выходными данными.

Функция вывода распознает окончательный своп и выполняет отбеливание вывода. Результатом этой функции является зашифрованный текст Blowfish. Расшифровка с использованием blowfish включает в себя использование той же структуры, что и шифрование, так как она использует шифр Фейстеля, но круглые ключи должны использоваться в обратном порядке. Основным преимуществом этого алгоритма является то, что он доступен в открытом доступе, так что он легко доступен. Недостатки заключаются в том, что генерация ключей отнимает много времени, и если размер блока невелик, он уязвим для атак.

Приложения симметричных алгоритмов

Некоторые из мест, где используется алгоритм симметричного шифрования:

  • Карточные транзакции используются для предотвращения кражи личных данных и мошеннических транзакций.
  • Для подтверждения личности мессенджера.
  • Хеширование и генерация случайных чисел
  • Шифрование базы данных

Заключение - симметричные алгоритмы

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

Рекомендуемые статьи

Это руководство по симметричным алгоритмам. Здесь мы обсуждаем введение и типы симметричных алгоритмов вместе с DES и Triple DES. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. Что такое WebSocket?
  2. Безопасность веб-приложений
  3. Карьера в веб-разработке
  4. Карьера в веб-дизайне
  5. Режим работы блочного шифра
  6. Примеры алгоритма C ++