Шифрування: типи і алгоритми. Що це, чим відрізняються і де використовуються?

Багато хто до цих пір недооцінює важливість SSL сертифікатів, але ж їх технологія лежить в основі безпеки і конфіденційності будь-якої інформації в мережі Інтернет. Шифрування – перетворення даних в нешифруємий формат  так, що тільки авторизовані користувачі можуть отримати доступ до інформації. Процес шифрування стає можливим завдяки криптографічним ключам в поєднанні з різними математичними алгоритмами. У цій статті розглянемо два основних типи шифрування – симетричне і асиметричне, а також 5 найбільш часто використовуваних алгоритмів шифрування.

Давайте розберемося з усім по порядку.

Тип шифрування № 1: Симетричне шифрування

Метод симетричного шифрування, як і випливає з назви, використовує один криптографічний ключ для шифрування і дешифрування даних. Використання одного ключа для обох операцій робить процес простим. Давайте розберемося з процесом симетричного шифрування на простому прикладі:

Симетричне шифрування

У Києві живуть двоє близьких друзів Антон і Аліса. З якоїсь причини Аліса змушена покинути місто. Єдиний спосіб спілкуватися один з одним – поштою. Але є одна проблема: Антон і Аліса бояться, що хтось зможе прочитати їх листи.

Щоб захистити свої листи, вони вирішили шифрувати повідомлення таким чином, щоб кожна буква замінювалася буквою на сім позицій вниз за алфавітом. Замість того, щоб писати «Apple», вони будуть писати «hwwsl» (A -> H, P -> W, L -> S, E -> L). Щоб розшифрувати повідомлення, необхідно кожну букву замінити на сім позицій в алфавітному порядку назад. Таку техніку шифрування давним-давно використовував римський імператор і військовий генерал Гай Юлій Цезар, відома вона ще як «шифр Цезаря».

Що робить симетричне шифрування хорошим рішенням

Найбільш видатною особливістю симетричного шифрування є простота процесу, так як використовується один ключ як для шифрування, так і для дешифрування. Там, де необхідно зашифрувати великий шматок даних, симетричне шифрування виявляється відмінним варіантом. В результаті алгоритми симетричного шифрування:

  • Значно швидше, ніж їх аналоги асиметричного шифрування (про що ми незабаром поговоримо);
  • Потребують менше обчислювальної потужності;
  • Не знижується швидкість інтернету.

3 алгоритма симетричного типу шифрування

“Шифр Цезаря” засновано на особливій логіці шифрування даних, розгадавши яку можна легко розшифрувати інформацію. Сучасні ж методи шифрування, засновані на дуже складних математичних функціях, які зламати практично неможливо.

Існують сотні алгоритмів симетричного типу! Найбільш поширені з них – AES, RC4, DES, 3DES, RC5, RC6 і т. д. Давайте розглянемо три найбільш популярних.

  1. DES-алгоритм симетричного шифрування

DES (data encryption standard), представлено в 1976 році, є найстарішим симетричним методом шифрування. Розроблений IBM для захисту конфіденційних урядових даних і офіційно прийнятий в 1977 році для використання федеральними агентствами в США. Алгоритм шифрування DES був одним з тих, який використовували в версії 1.0 і 1.1 TLS (transport layer security).

DES перетворює 64-бітні блоки даних відкритого тексту в зашифрований текст шляхом поділу на два окремих 32-бітних блока, застосовуючи процес шифрування до кожного окремо. Включає в себе 16 циклів різних процесів – таких як розширення, перестановка, заміна або інші операції – через які будуть проходити дані в зашифрованому вигляді. В кінцевому підсумку 64-бітові блоки зашифрованого тексту створюються в якості вихідних даних.

У 2005 році DES було офіційно оголошено застарілим і замінено алгоритмом шифрування AES. Найбільшим недоліком DES була занадто маленька довжина ключа шифрування, що полегшувало злом. Протокол TLS 1.2, який широко використовується сьогодні вже не використовує метод шифрування DES.

  1. Алгоритм симетричного шифрування 3DES

3DES також відомий як TDEA (triple data encryption algorithm), як випливає з назви, є оновленою версією алгоритму DES. 3DES розроблено для подолання недоліків алгоритму DES і введено в експлуатацію в кінці 1990 року. Оновлений алгоритм застосовував цикли DES тричі до кожного блоку даних. В результаті 3DES було набагато складніше зламати, ніж його попередника DES. TDEA став широко використовуваним алгоритмом шифрування в платіжних системах та інших технологіях фінансової індустрії. Він також став частиною криптографічних протоколів, таких як TLS, SSH, IPsec і OpenVPN.

Всі алгоритми шифрування в кінцевому підсумку піддаються владі часу, і 3DES не став винятком. Уразливість Sweet32 алгоритму 3DES була виявлена ​​Картікеяном Бхаварганом і Гаетаном Леурентом. Це відкриття змусило індустрію безпеки розглянути питання про старіння алгоритму, а Національний інститут стандартів і технологій США (англ. National Institute of Standards and Technology, NIST) оголосив про це офіційно в проекті управління, опублікованому в 2019 році.

Згідно з цим проектом, використання 3DES має бути скасовано в усіх нових додатках після 2023 року. Варто також відзначити, що TLS 1.3, новітній стандарт для протоколів SSL / TLS, також припинив використання 3DES.

  1. Алгоритм симетричного шифрування AES

AES (advanced encryption system) також відомий як Rijndael, є одним з найбільш поширених алгоритмів шифрування. Був розроблений в якості альтернативи DES і після затвердження NIST в 2001 році став новим стандартом шифрування. AES – це сімейство блокових шифрів з різною довжиною ключів і різними розмірами блоків.

AES працює методами підстановки і перестановки. Спочатку незашифровані дані перетворюються в блоки, а потім шифрування застосовується з використанням ключа. Процес шифрування складається з різних процесів, таких як зсуви рядків, змішування стовпців і додавання ключів. Залежно від довжини ключа виконується 10, 12 або 14 таких трансформацій (раундів). Варто відзначити, що останній раунд відрізняється від попередніх і не включає подпроцесс мікшування.

Перевага використання алгоритму шифрування AES

Все це зводиться до того, що AES безпечний, швидкий і гнучкий. Алгоритм AES – набагато швидше DES. Варіанти з різними довжинами ключів – це найбільша перевага: чим довше ключі, тим складніше їх зламати.

На сьогоднішній день AES є найбільш популярним алгоритмом шифрування – він використовується в багатьох додатках, включаючи:

  • Бездротова безпека,
  • Безпека процесорів і шифрування файлів,
  • Протокол SSL / TLS (безпека сайтів),
  • Безпека Wi-Fi,
  • Шифрування мобільних додатків,
  • VPN (virtual private network) і т. д.

Багато урядових установ США, використовують алгоритм шифрування AES для захисту своєї конфіденційної інформації.

Симетричне і асиметричне шифрування

Тип шифрування № 2: асиметричне шифрування

Асиметричне шифрування, на відміну від симетричного, включає в себе кілька ключів для шифрування і дешифрування даних, які математично пов’язані один з одним. Один з цих ключів відомий як «відкритий ключ», а інший – як «закритий ключ». Асиметричний метод шифрування також відомий як «криптографія з відкритим ключем».

Симетричне шифрування чудово працює для обміну інформацією між нашими Алісою та Антоном. Але що, якщо Антон хоче безпечно спілкуватися з сотнями людей? Непрактично і незручно використовувати різні ключі для кожного співрозмовника.

Щоб вирішити цю проблему, Антон використовує шифрування з відкритим ключем, тобто він дає відкритий ключ кожному, хто відправляє йому інформацію, а секретний ключ він зберігає при собі. Він доручає зашифрувати інформацію за допомогою відкритого ключа, щоб дані можно було розшифрувати тільки за допомогою його особистого ключа. Це виключає ризик компрометації ключа, оскільки дані можуть бути розшифровані тільки з використанням закритого ключа, який є у Антона.

Що робить асиметричне шифрування відмінною технікою

Перша (і найбільш очевидна) перевага цього типу шифрування – безпека, яку він забезпечує. У цьому методі відкритий ключ – який є загальнодоступним – використовується для шифрування даних, в той час як розшифрування даних виконується з використанням закритого ключа, який необхідно надійно зберігати. Це гарантує, що дані залишаються захищеними від атак «людина посередині» (MiTM). Для веб-серверів і серверів електронної пошти, які постійно підключаються до сотень тисяч клієнтів потрібно управляти тільки одним ключем і захищати його. Інший ключовий момент полягає в тому, що криптографія з відкритим ключем дозволяє створювати зашифроване з’єднання без необхідності зустрічатися в автономному режимі, щоб спочатку обмінятися ключами.

Друга важлива особливість, яку пропонує асиметричне шифрування, – це аутентифікація. Як ми бачили, дані, зашифровані за допомогою відкритого ключа, можуть бути розшифровані тільки за допомогою закритого ключа, пов’язаного з ним. Отже, він гарантує, що дані бачить і дешифрує тільки той об’єкт, який повинен їх отримати. Простіше кажучи, це підтверджує, що ви розмовляєте або обмінюєтеся інформацією з реальною людиною або організацією.

2 основних типи алгоритмів асиметричного шифрування

  1. Алгоритм асиметричного шифрування RSA

У 1977 році алгоритм винайшли троє вчених з Массачусетського технологічного інституту Рон Ривест, Аді Шамір і Леонард Адлеман (Ron Rivest, Adi Shamir, Leonard Adleman звідси «RSA»). На сьогоднішній день є найбільш використовуваним алгоритмом асиметричного шифрування. Його ефективність полягає в методі «первинної факторизації». По суті, обираються два різних випадкових простих числа заданого розміру (наприклад, 1024 біта кожне) і множаться, щоб створити ще одне гігантське число. Завдання полягає в тому, щоб визначити вихідні прості числа з помноженого гігантського. Виявляється, ця головоломка практично неможлива для сучасних суперкомп’ютерів, не кажучи вже про людей.

У 2010 році група добровольців провела дослідження, і їм знадобилося більше 1500 років обчислювального часу (розподіленого по сотням комп’ютерів), щоб зламати 768-бітний ключ RSA, що набагато нижче стандартного 2048-бітного, який використовується сьогодні.

Перевага використання алгоритму шифрування RSA

Великою перевагою RSA є його масштабованість, ключі можуть бути різної довжини шифрування: 768-бітний, 1024-бітний, 2048-бітний, 4096-бітний і т. д.

RSA засновано на простому математичному підході, тому його реалізація в інфраструктурі відкритих ключів (PKI) стає легкою. Адаптивність і безпека зробили RSA найбільш використовуваним алгоритмом асиметричного шифрування для різних додатків, включаючи сертифікати SSL / TLS, криптовалюти та шифрування електронної пошти.

  1. Алгоритм асиметричного шифрування ECC

У 1985 році два математика по імені Ніл Кобліц і Віктор Міллер запропонували використовувати еліптичні криві в криптографії. Майже через два десятиліття їх ідея втілилася в реальність, алгоритм ECC (Elliptic Curve Cryptography) почали використовувати в 2004-2005 роках. 

У процесі шифрування ECC еліптична крива представляє набір точок, які задовільняють математичне рівняння (y 2 = x 3 + ax + b).

Як і RSA, ECC також працює за принципом незворотності. Простіше кажучи, в ECC число, яке символізує точку на кривій, множиться на інше число і дає іншу точку на кривій. Тепер, щоб зламати цю головоломку, ви повинні з’ясувати нову точку на кривій. Математика ECC побудована таким чином, що знайти нову точку практично неможливо, навіть якщо ви знаєте вихідну точку.

Перевага використання алгоритму шифрування ECC

Не дивлячись на те, що в порівнянні з RSA, в ECC використовується коротша довжина ключа, забезпечує він більшу безпеку (від сучасних методів злому).

Ще однією перевагою використання більш коротких ключів в ECC є більш висока продуктивність. Короткі ключі вимагають меншого мережевого навантаження і обчислювальної потужності, і це чудово підходить для пристроїв з обмеженими можливостями зберігання і обробки. Використання алгоритму ECC в сертифікатах SSL / TLS значно скорочує час, необхідний для шифрування і дешифрування, що допомагає швидше завантажувати веб-сайт. Алгоритм ECC використовується для додатків шифрування, цифрових підписів, в псевдовипадкових генераторів і т. д.

Однак проблема масового використання ECC полягає в тому, що багато серверних програм і панелей управління ще не додали підтримку сертифікатів ECC SSL / TLS. Ми сподіваємося, що це зміниться в недалекому майбутньому, а поки що RSA буде продовжувати залишатися найбільш використовуваним алгоритмом асиметричного шифрування.

Гібридне шифрування: симетричне + асиметричне шифрування

Слід одразу ж обмовитися, що гібридне шифрування не є «окремим методом», як симетричне або асиметричне, в ньому використовуються всі переваги обох методів і створюється синергія надійних систем шифрування.

Кожен з алгоритмів шифрування має свої недоліки. Наприклад, метод симетричного шифрування відмінно підходить для швидкого шифрування великих обсягів даних. Але він не забезпечує перевірку особистості, що є необхідним, коли мова заходить про безпеку в Інтернеті. З іншого боку, асиметричне шифрування надає доступ до даних передбачуваного одержувача. Однак ця перевірка робить процес шифрування занадто повільним.

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

Метод гібридного шифрування використовується в SSL / TLS сертифікатах під час послідовного зв’язку між серверами і клієнтами (веб-браузерами) в процесі, відомому як “TLS handshake”. Спочатку перевіряється особистість обох сторін з використанням закритого і відкритого ключа. Після того, як обидві сторони підтвердили свою особистість, шифрування даних відбувається за допомогою симетричного шифрування з використанням ефемерного (сеансового) ключа. Це забезпечує швидку передачу великого обсягу даних, які ми відправляємо і отримуємо в Інтернеті кожну хвилину.

Типи методів шифрування

Якщо у вас виникло питання: “То який же тип шифрування краще?”,  явного переможця не буде.

З точки зору безпеки, асиметричне шифрування, безсумнівно, краще, оскільки воно забезпечує аутентифікацію. Однак продуктивність є аспектом, який не можно ігнорувати, тому симетричне шифрування завжди буде необхідно.

Переваги симетричного і асиметричного шифрування ми зібрали в таблицю, з якою пропонуємо ознайомиться і вам:

Симетричне шифрування Асиметричне шифрування
Один ключ використовується для шифрування і дешифрування даних. Пара ключів використовується для шифрування і дешифрування. Ці ключі відомі як “відкритий ключ” і “закритий ключ”.
Простий метод шифрування, так як використовується тільки один ключ. У зв’язку з тим, що використовується пара ключів – процес складний.
Використовується для шифрування великих об’ємів даних. Забезпечує аутентифікацію.
Забезпечує високу продуктивність і вимагає менше обчислювальної потужності. Складні процеси протікають повільніше і вимагають більшої обчислювальної потужності.
Для шифрування даних використовується менша довжина ключа (128-256 біт). Використовуються довші ключі шифрування (1024-4096 біт).
Ідеально підходить для шифрування великої кількості даних. Використовується при шифруванні невеликого об’єму даних.
Стандартні алгоритми: RC4, AES, DES, 3DES і QUAD. Стандартні алгоритми: RSA, Diffie-Hellman, ECC, El Gamal і DSA.

Більшість сучасних SSL сертифікатів використовують гібридний метод: асиметричне шифрування для аутентифікації і симетричне шифрування для конфіденційності. Такий сертифікат не дає шахраям перехопити або підмінити особисті дані користувачів: контактну інформацію, номери банківських карт, логіни, паролі, адреси електронної пошти і т.д. Фахівці техпідтримки Hostpro допоможуть вибрати необхідний сертифікат, орієнтуючись на потреби вашого сайту. Також безкоштовно встановлять і налаштують роботу по HTTPS. Зв’яжіться зручним для вас способом в режимі телефонного дзвінка, on-line чату або тікет-системи 24/7.