Існує два типи алгоритмів шифрування, які використовуються для шифрування даних. Це симетричні і асиметричні алгоритми. У цій статті ми детально вивчимо функції та операції симетричних алгоритмів шифрування..

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

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

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

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

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

Аліса за допомогою клавіші для шифрування повідомлення

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

Сергій Олексійович використовує той самий ключ для розшифрування повідомлення

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


СИМЕТРИЧНІ АЛГОРИТМИ

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

На наведеній нижче ілюстрації показано блоковий шифр:

Шифрування даних за допомогою блок-шифру

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

На наведеній нижче ілюстрації показано потоковий шифр:

Шифрування даних за допомогою потокового шифру

Вважається, що потокові шифри шифрують дані швидше, ніж блокують шифри, оскільки вони постійно шифрують дані на один біт або один байт за один раз.

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

  • Стандарт шифрування даних (DES): Це дуже старий симетричний алгоритм шифрування, який шифрує дані за допомогою 64-розрядних блоків і розміру ключа 54 біти.
  • Потрійний стандарт шифрування даних (3DES): це новіший варіант DES. 3DES виконує процес шифрування тричі. Це означає, що перший раунд приймає дані відкритого тексту і виконує шифрування для створення шифротексту. Він буде використовувати шифротекст як вхід і зашифрувати його знову, що є другим кроком. Він візьме новий зашифрований текст з другого раунду і зашифрує його, щоб створити кінцевий результат, який завершує третій раунд шифрування, звідси і назва потрійного DES. 3DES використовує ключі по 112 біт і 168 біт.
  • Розширений стандарт шифрування (AES): Широко використовується в багатьох сучасних системах передачі даних і протоколах. AES використовує ключі 128, 192 і 256 біт. Він шифрує дані в блоках фіксованого розміру: 128, 192 і 256 біт. AES вважається набагато безпечнішим, ніж алгоритми шифрування DES і 3DES. Secure Shell (SSH) версії 2 використовує AES з режимом лічильника (AES-CRT) як бажаний алгоритм шифрування даних.
  • Програмно оптимізований алгоритм шифрування (SEAL): Це ще один симетричний алгоритм. SEAL – це алгоритм шифрування потоку, який використовує розмір ключа 160 біт.
  • Rivest Шифр (RC): Це серія шифрів люксів, створених Рон Рівест, таких як RC2, RC3, RC4, RC5 і RC6. Найбільш поширеним є RC4, потоковий шифр, який використовує розмір ключа до 256 біт.

АСИМЕТРИЧНІ АЛГОРИТМИ ШИФРУВАННЯ

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

На наведеній нижче ілюстрації користувач Аліса використовує ключ для шифрування текстового повідомлення:

Використання асиметричного ключа для шифрування даних

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

Розшифрувати повідомлення за допомогою іншого ключа

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

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

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

Спільний доступ до відкритого ключа

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

Наступна ілюстрація показує, як Аліса надсилає зашифроване повідомлення Сергію Олексійовичу:

Сергій Олексійович розшифровує дані

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

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

  • SSH
  • Рівень захищених розеток (SSL)
  • Обмін ключами Інтернету (IKE)
  • Досить хороша конфіденційність (PGP)

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

  • Diffie-Hellman (DH): DH не є алгоритмом шифрування даних, а скоріше використовується для безпечної доставки ключових пар через незахищену мережу, таку як Інтернет. Простіше кажучи, це дозволяє Сергію Олексійовичу та Алісі домовитися про ключ, який можна використовувати для шифрування повідомлень, відправлених між ними. DH використовує ключі з 512 біт, 1024 біт, 2048 біт, 3072 біт і 4096 біт. Нижче наведено список різних груп DH та їх відповідних ключових розмірів: група DH 1: 768 біт, група DH 2: 1024 біт, група DH 5: 1536 біт, група 14 DH: 2048 біт, група 15 DH: 3072 біти та група 16 DH: 4096 біт.
  • Стандарт цифрового підпису (DSS): DSS – асиметричний алгоритм, який використовується для цифрових підписів. Алгоритм цифрового підпису (DSA) – це алгоритм відкритого ключа, який використовує схему підпису ElGamal. Розміри ключів коливаються від 512 до 1024 біт.
  • Rivest-Shamir-Adleman (RSA): Цей алгоритм шифрування був створений Роном Рівестом, Аді Шаміром і Леонардом Адлеманом. Він був розроблений як асиметричний алгоритм шифрування, який використовує публічні та приватні пари ключів між пристроями. RSA використовує ключі розміром від 512 до 2048 біт.
  • EIGamal – це ще один асиметричний алгоритм шифрування, який використовує пару відкритих і закритих ключів для шифрування даних. Цей алгоритм базується на ключовому переговорному процесі DH. Примітною особливістю використання цього алгоритму є те, що він приймає звичайний текст (вхід) і перетворює його в шифротекст (вивід), що в два рази перевищує розмір вхідного повідомлення.
  • Еліптична крива (EC): EC використовується з асиметричним шифруванням. EC використовує криві замість чисел. Оскільки мобільні пристрої, такі як смартфони, не мають високопродуктивного процесора і не мають обсягу пам’яті, як комп’ютер, EC використовує менші ключі.