ћерион Ќетворкс

8 минут чтени€

≈сть два типа алгоритмов шифровани€, которые используютс€ дл€ шифровани€ данных. Ёто симметричные и асимметричные алгоритмы. ¬ этой статье мы подробно изучим функции и операции алгоритмов симметричного шифровани€.

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

’от€ алгоритмы симметричного шифровани€ обычно используютс€ во многих системах, основным недостатком €вл€етс€ то, что в случае потери или кражи секретного ключа зашифрованный текст может быть взломан. ≈сли злоумышленник сможет получить ключ, он сможет расшифровать сообщение и просмотреть его содержимое. ѕоэтому чрезвычайно важно, чтобы ключ всегда был в безопасности.

—имметричные алгоритмы используют длину ключа в диапазоне от 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 использует ключи меньшего размера.

—кидки 50% в Merion Academy

¬ыбрать курс