Симетричний, асиметричний, хеш і багато іншого…

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

Це є важливим для запобігання несанкціонованому доступу до інформації.

Слово “криптографія” має коріння у грецькому слові “kryptos”, що перекладається як “прихований”. “Крипто” означає “прихований”, а “графія” означає “писання”.

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

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

Давайте розглянемо основні етапи криптографічного процесу:

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

Тепер розглянемо фундаментальні принципи криптографії.

Основні принципи криптографії

Існує чотири ключові принципи криптографії:

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

2. Цілісність: Інформація не може бути змінена під час зберігання або передачі без виявлення цих змін.

3. Невідмовність: Відправник не може заперечувати факту надсилання повідомлення.

4. Автентифікація: Підтверджує ідентичність відправника та одержувача, а також перевіряє джерело та пункт призначення інформації.

Перед тим, як продовжити, давайте розберемо базову термінологію.

Глосарій:

Слово Значення
Криптографія Це техніка захисту інформації та комунікацій за допомогою набору математичних обчислень (алгоритмів), забезпечуючи розуміння лише авторизованими особами.
Шифр Шифр – це метод або алгоритм, що використовується для шифрування та дешифрування даних.
Шифрування Процес перетворення відкритого тексту в зашифрований (ciphertext).
Відкритий текст (plaintext) Оригінальний, незашифрований формат даних або тексту.
Зашифрований текст (ciphertext) Зашифровані дані (кодована форма даних) або текст.
Дешифрування Зворотний процес перетворення зашифрованого тексту назад у відкритий текст за допомогою ключа дешифрування.
Ключ Ключ — це інформація, зазвичай послідовність бітів, що використовується для контролю процесу шифрування та дешифрування.
Обмін ключами Безпечна передача ключів шифрування між відправником та одержувачем.

Існує три основні види криптографії:

  • Симетрична криптографія з ключем
  • Асиметрична криптографія з ключем
  • Хеш-функції

Симетрична ключова криптографія

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

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

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

Симетрична криптографія

Розглянемо процес детальніше:

  • Алгоритм перетворює вихідний текст (plaintext) на зашифрований, використовуючи секретний ключ.
  • Потім відправник надсилає цей зашифрований текст одержувачу через канал зв’язку, який може бути як приватним, так і публічним.
  • Одержувач використовує той самий секретний ключ для дешифрування зашифрованого тексту та перетворення його на вихідний текст.

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

Для забезпечення конфіденційності та цілісності обидві сторони повинні безпечно керувати цим секретним ключем.

Існує два види симетричних шифрів:

  • Потоковий шифр
  • Блоковий шифр
Потоковий шифр Блоковий шифр
Шифрує дані по одному біту або байту. Шифрує дані блоками фіксованої довжини.
Шифрує дані одразу. Під час шифрування даних, система зберігає їх в пам’яті, очікуючи, доки повні блоки не будуть готові до обробки.
Використовує 8-бітовий ключ. Використовує ключ 64 біти або більше.
Складніший, ніж блоковий шифр. Простіший, ніж потоковий шифр.
Повільний, і підходить для офлайн застосунків. Використовує режими ECB та CBC.
Використовує режими CFB та OFB. Шифрування даних блоками фіксованої довжини.

Приклади алгоритмів симетричного шифрування включають:

  • AES (Advanced Encryption Standard): відомий своєю надійністю та ефективністю. Часто застосовується для захисту конфіденційних даних, таких як бездротова безпека, хмарні обчислення, банківські операції та електронна комерція.
  • DES (Data Encryption Standard): застарілий метод шифрування, замінений на AES і 3DES. Використовує 56-бітний ключ.
  • IDEA (International Data Encryption Algorithm): використовує 128-бітний ключ і застосовується в різних програмах.
  • Blowfish: алгоритм, розроблений як заміна DES або IDEA.
  • RC4 (Rivest Cipher 4): розроблений Роном Рівестом. Відомий своєю простотою та швидкістю, але має проблеми з безпекою в деяких реалізаціях.
  • RC5 (Rivest Cipher 5): розроблений як ефективний та надійний, зі змінним розміром блоку та ключа.
  • RC6 (Rivest Cipher 6): розроблений для забезпечення покращеної безпеки та продуктивності в порівнянні з попередніми версіями.

AES, DES, IDEA, Blowfish, RC5 та RC6 є блоковими шифрами.

RC4 є потоковим шифром.

Переваги симетричної ключової криптографії

  • Швидша та ефективніша, ніж асиметрична криптографія.
  • Розмір ключа невеликий, що дозволяє створювати надійніші шифри.
  • Створення надійних ключів для шифрів є відносно економічним.
  • AES є одним із безпечних алгоритмів.

Недоліки симетричної ключової криптографії

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

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

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

Асиметрична ключова криптографія

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

Цей метод підвищує цифрову безпеку, дозволяючи безпечну комунікацію без обміну секретними ключами, що є вкрай важливим у сучасному онлайн-світі.

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

Ці “алгоритми відкритого ключа” використовують пару ключів для захисту даних.

Ось спрощений опис:

Симетрична та асиметрична криптографія

  • Є два ключі: відкритий, доступний для всіх, і закритий, що зберігається в секреті.
  • Відкритий ключ використовується для шифрування або “блокування” даних.
  • Закритий ключ використовується для розшифрування або “розблокування” даних.

Важливо пам’ятати, що закритий ключ неможливо вивести з відкритого. Крім того, відкриті ключі, як правило, пов’язані з особами організацій, відомих як центри сертифікації.

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

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

Ось деякі приклади алгоритмів асиметричного шифрування:

  • RSA (Rivest-Shamir-Adleman): один із найпоширеніших алгоритмів асиметричного шифрування. Він базується на математичних властивостях великих простих чисел і часто використовується для безпечного обміну ключами та цифрових підписів.
  • Криптографія еліптичних кривих (ECC): заснована на алгебраїчній структурі еліптичних кривих над кінцевими полями. ECC забезпечує перевагу менших розмірів ключів у порівнянні з криптографією, що не є EC, яка залежить від звичайних полів Галуа. ECC в основному використовується для генерації псевдовипадкових чисел та цифрових підписів.
  • Обмін ключами Діффі-Хеллмана: цей алгоритм використовується для безпечного обміну ключами. Ключ, отриманий за допомогою цього методу, можна використовувати для шифрування за допомогою симетричного алгоритму. Основна мета Діффі-Хеллмана – надати можливість двом сторонам створити спільний секретний ключ через незахищений канал зв’язку.

Переваги асиметричної криптографії

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

Недоліки асиметричної ключової криптографії

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

Однак не варто хвилюватися. Організації та науковці працюють над переходом на квантово-стійкі криптографічні методи.

Перейдемо до наступного виду криптографії:

Хеш-функція

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

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

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

Ось покрокове пояснення:

Хеш-функція

З боку відправника:

  • Відправник використовує хеш-функцію для створення унікального хеш-значення для переданих даних.
  • Після створення хеш-значення відправник надсилає вихідне повідомлення та хеш-код одержувачу через незахищений канал.

З боку одержувача:

  • Одержувач отримує повідомлення та хеш-код.
  • Одержувач використовує той самий інструмент (хеш-функцію) для створення нового хеш-коду для отриманого повідомлення.
  • Одержувач порівнює новий хеш-код з тим, який надіслав відправник.

Результат:

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

Властивості, що роблять хеш-функції корисними:

Властивості хеш-функції:

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

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

До загальновживаних криптографічних хеш-функцій належать:

Є два широко використовуваних сімейства криптографічних хеш-функцій – сімейство MD (MD = message digest) та сімейство SHA (SHA = secure hash algorithm).

  • SHA-1 (Secure Hash Algorithm 1): була однією з популярних хеш-функцій. Однак SHA-1 зараз вважається слабкою через уразливості, що дозволяють проводити практичні атаки зіткнень. Вона більше не використовується для більшості програм безпеки.
  • MD5 (Message Digest Algorithm 5): була популярна в минулому, але зараз вважається слабкою через вразливість до зіткнень. Зазвичай не використовується для чутливих до безпеки програм.
  • SHA-3: SHA-3 — це новіше сімейство хеш-функцій, обране на конкурсі Національного інституту стандартів і технологій (NIST). Воно забезпечує надійний захист і спроектоване так, щоб бути стійким до певних видів атак.

Хоча хеш-функції не шифрують повідомлення, вони є невід’ємною частиною криптографії, оскільки відіграють важливу роль у захисті та автентифікації даних, що є ключовими цілями криптографії.

Переваги хеш-функції

  • Надійна хеш-функція забезпечує високу стійкість до колізій.
  • Два файли легко порівняти на ідентичність, використовуючи хешування.
  • Хеш-функції неймовірно швидкі та ефективні.
  • У СУБД хешування використовується для пошуку розташування даних без використання структури індексу.

Недоліки хеш-функції

  • Хеш-функції можуть працювати менш ефективно при наявності численних колізій.
  • Нульові значення не допускаються.
  • Реалізація хеш-таблиць може бути складною через їхню структуру.
  • На практиці майже неможливо повністю запобігти хеш-колізіям при роботі з великим набором потенційних ключів.

Читайте також: Як захиститися від атаки Rainbow Table

Застосування криптографії в реальному житті

  • Автентифікація/цифрові підписи: автентифікація є важливим процесом підтвердження автентичності даних, перевірки джерела документа, ідентифікації відправника, точності часових міток та забезпечення легітимності комп’ютера чи користувача. Цифрові підписи використовують криптографічні методи, що включають хеш-функцію та закритий ключ для перевірки та безпечного підпису документів.
  • Шифрування хмарного сховища: криптографія використовується для захисту файлів, що зберігаються в хмарі, а також під час передачі до хмарних служб та з них.
  • Електронні гроші: електронні гроші передбачають електронні перекази коштів між сторонами, які можуть бути дебетовими або кредитними, анонімними або ідентифікованими. Шифрування, цифрові підписи та криптографія з відкритим ключем забезпечують безпеку, що дає змогу здійснювати різні види транзакцій.
  • Шифрування/дешифрування в електронній пошті: шифрування електронної пошти захищає вміст електронної пошти від несанкціонованого доступу за допомогою криптографії з відкритим ключем. Кожен користувач має пару відкритих і закритих ключів, причому відкритий ключ використовується для шифрування, і лише закритий ключ може розшифрувати повідомлення.
  • Шифрування в WhatsApp: WhatsApp використовує сигнальний протокол для шифрування, поєднуючи криптографію з симетричним та асиметричним ключем для забезпечення конфіденційності, цілісності, автентифікації та невідмовності. Для обміну ключами використовуються алгоритми на основі Curve25519.
  • Шифрування в Instagram: спілкування в Instagram шифрується за допомогою SSL/TLS через порт 443, що запобігає прослуховуванню даних між користувачами та серверами Instagram.
  • Автентифікація SIM-карток: автентифікація SIM-карток передбачає перевірку доступу SIM-картки до мережі шляхом генерації випадкового числа та застосування таких алгоритмів, як A3, із секретним ключем Ki. Шифрування базується на алгоритмі A8 і сеансовому ключі KC, який використовується з алгоритмом A5 для шифрування/дешифрування даних.

Проблеми в криптографії

  • Керування ключами залишається проблемою, оскільки безпечне розповсюдження та управління ключами шифрування є складним завданням, особливо у великих системах. Механізми зберігання та відновлення ключів мають бути надійними.
  • Симетрична криптографія може стати неефективною, якщо багатьом користувачам потрібно безпечно спілкуватися. Кожній парі користувачів потрібен унікальний ключ, що може ускладнитися зі збільшенням кількості користувачів.
  • Для асиметричної криптографії потрібні довші ключі, ніж для симетричної криптографії, щоб досягти того ж рівня безпеки. Це може призвести до сповільнення обробки та збільшення потреби в ресурсах.
  • Виявлення вразливостей у хеш-функціях може призвести до проблем із безпекою. Криптографічна спільнота повинна постійно аналізувати та адаптувати хеш-функції для зменшення таких ризиків.
  • У програмах, де для зберігання паролів використовуються хеш-функції, для запобігання атакам на райдужну таблицю потрібне правильне “солювання” паролів. Проблема полягає в тому, щоб солі були унікальними та секретними.
  • Поява квантових обчислень створює значний виклик для світу криптографії. Квантові комп’ютери неймовірно швидко розв’язують певні математичні задачі, використовуючи принципи квантової фізики для своєї обчислювальної потужності.

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

Основні принципи квантової механіки, які використовуються квантовими комп’ютерами, дійсно незвичайні, але вони дозволяють їм виконувати завдання, недоступні класичним комп’ютерам.

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

Майбутні тенденції в криптографії

  • Розробка та впровадження алгоритмів постквантової криптографії, стійких до квантових атак, буде значною тенденцією. Вивчаються такі алгоритми, як криптографія на основі решітки.
  • Хмарне шифрування та керування ключами стають все більш поширеними, особливо у фінансовій сфері. Гомоморфне шифрування дозволяє проводити обчислення на зашифрованих даних без їх дешифрування, що може покращити конфіденційність у хмарних обчисленнях та обробці даних.
  • Криптографія відіграє важливу роль у забезпеченні безпеки технології блокчейн, і в майбутньому вони будуть взаємопов’язані.
  • З посиленням правил захисту даних, таких як GDPR, токенізація все частіше використовується в охороні здоров’я, фінансових послугах і на підприємствах. Токенізація замінює фактичні дані маркером, який є марним для хакерів.

Заключні слова

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

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

Проте, є ще багато чого для відкриття.

Далі, Хмарна криптографія: Початковий посібник і приклад Google Cloud.