img

Алгоритмы шифрования

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

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

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

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

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

Чтобы лучше понять, как работают симметричные алгоритмы, давайте представим, что есть два пользователя, Алиса и Сергей Алексеевич, которые хотят обеспечить конфиденциальность сообщений, которыми они обмениваются. Оба пользователя знают о Pre-Shared Key (PSK) или секретном ключе до обмена сообщениями.

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

Алиса, использующая ключ для шифрования сообщения

После того, как сообщение будет зашифровано, Алиса отправит его Сергею Алексеевичу, который будет использовать тот же PSK или секретный ключ, чтобы расшифровать сообщение и получить исходное текстовое сообщение, как показано ниже:

Сергей Алексеевич использует тот же ключ для расшифровки сообщения

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


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

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

На следующем рисунке представлен блочный шифр:

Шифрование данных с использованием блочного шифра

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

На следующем рисунке представлен потоковый шифр:

Шифрование данных с использованием потокового шифра

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

Ниже приводится список симметричных алгоритмов и их характеристики:

  • Data Encryption Standard (DES): это очень старый алгоритм симметричного шифрования, который шифрует данные с использованием блоков размером 64 бита и размером ключа 54 бита.
  • Triple Data Encryption Standard (3DES): это более новая версия DES. 3DES выполняет процесс шифрования трижды. Это означает, что первый раунд берет данные открытого текста и выполняет шифрование для создания зашифрованного текста. Он будет использовать зашифрованный текст в качестве входных данных и снова выполнит его шифрование, что является вторым этапом. Он возьмет новый зашифрованный текст из второго раунда и выполнит его шифрование, чтобы создать окончательный результат, который завершает третий раунд шифрования, отсюда и название тройной DES. 3DES использует ключи размером 112 бит и 168 бит.
  • Advanced Encryption Standard (AES): широко используется во многих современных системах передачи данных и протоколах. AES использует ключи размером 128, 192 и 256 бит. Он выполняет шифрование данных в блоках фиксированного размера: 128, 192 и 256 бит. AES считается намного более безопасным, чем алгоритмы шифрования DES и 3DES. Безопасный сетевой протокол Secure Shell (SSH) версии 2 использует алгоритм AES с режимом счетчика (AES-CRT) в качестве предпочтительного алгоритма шифрования данных.
  • Software-Optimized Encryption Algorithm (SEAL): это еще один симметричный алгоритм. SEAL - это алгоритм потокового шифрования, который использует размер ключа 160 бит.
  • Rivest Cipher (RC): это серия наборов шифров, созданных Роном Ривестом, таких как RC2, RC3, RC4, RC5 и RC6. Наиболее распространенным является RC4, потоковый шифр, использующий размер ключа до 256 бит.

Асимметричные алгоритмы шифрования

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

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

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

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

Использование другого ключа для расшифровки сообщения

Асимметричные алгоритмы используют пару ключей, известную как открытый (public) и закрытый (private) ключи. Открытый ключ предоставляется любому, кто хочет связаться с вами, отсюда и название открытый ключ. Закрытый ключ хранится у вас. Только пользователи пары ключей могут шифровать и расшифровывать данные. Никакие другие ключи не могут быть использованы для расшифровки сообщения, зашифрованного вашим закрытым ключом.

Важное примечание! Асимметричное шифрование использует размер ключа от 512 до 4096 бит. Однако рекомендуется размер ключа в 1024 бита или больше.

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

Совместное использование открытого ключа

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

На следующем рисунке показано, как Алиса отправляет Сергею Алексеевичу зашифрованное сообщение:

Сергей Алексеевич расшифровывает данные

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

Ниже приведены некоторые сетевые протоколы, использующие асимметричные алгоритмы:

  • SSH
  • Secure Sockets Layer (SSL)
  • Internet Key Exchange (IKE)
  • Pretty Good Privacy (PGP)

Ниже приведен список асимметричных алгоритмов и их функции:

  • Diffie-Hellman (DH): DH не является алгоритмом шифрования данных, а скорее используется для безопасной доставки пар ключей по незащищенной сети, такой как Интернет. Проще говоря, он позволяет Сергею Алексеевичу и Алисе согласовывать ключ, который может использоваться для шифрования сообщений, отправляемых между ними. DH использует ключи размером 512 бит, 1024 бит, 2048 бит, 3072 бит и 4096 бит. Ниже приведен список различных групп DH и их соответствующих размеров ключей: группа DH 1: 768 бит, группа 2 DH: 1024 бит, группа 5 DH: 1536 бит, группа 14 DH: 2048 бит, группа 15 DH: 3072 бит, и группа 16 DH: 4096 бит.
  • Digital Signature Standard (DSS): DSS - это асимметричный алгоритм, который используется для цифровых подписей. Алгоритм цифровой подписи (DSA) - это алгоритм с открытым ключом, который использует схему подписи ElGamal. Размеры ключей варьируются от 512 до 1024 бит.
  • Rivest-Shamir-Adleman (RSA): этот алгоритм шифрования был создан Ron Rivest, Adi Shamir, и Leonard Adleman. Он был разработан как алгоритм асимметричного шифрования, который использует пары открытого и закрытого ключей между устройствами. RSA использует ключи размером от 512 до 2048 бит.
  • EIGamal: EIGamal - еще один алгоритм асимметричного шифрования, который использует пару открытого и закрытого ключей для шифрования данных. Этот алгоритм основан на процессе согласования ключей DH. Примечательной особенностью использования этого алгоритма является то, что он принимает открытый текст (input) и преобразует его в зашифрованный текст (output), который вдвое превышает размер входного сообщения.
  • Elliptical Curve (EC): EC используется с асимметричным шифрованием. EC использует кривые вместо чисел. Поскольку мобильные устройства, такие как смартфоны, не имеют высокопроизводительного процессора и объема памяти, как компьютер, EC использует ключи меньшего размера.
Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Кибербезопасность
Скидка 10%
Основы кибербезопасности
Стань специалистом по кибербезопасности, изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Киберпреступность — это печальная реальность современности, затрагивающая как частных пользователей, так и бизнес. Ни одна компа
img
При передаче данных между системами крайне важно сохранять их целостность и конфиденциальность. Для этого существуют протоколы и
img
Основные тезисы: Шифрование – это крайне важная технология для информационной безопасности, которая обеспечивает конфиденциально
img
Испытание на возможность проникновения в систему – это критически важный компонент, который предоставляет отказоустойчивые техно
img
Распределенные атаки типа «отказ в обслуживании» (DDoS - Distributed Denial of Service) направлены на то, чтобы «отключить» орга
img
  На заре информационных технологий, у разработчиков не было никакой необходимости беспокоиться о сетях. Их главной задачей бы
21 ноября
20:00
Бесплатный вебинар
Введение в Docker