Криптографія — це техніка захисту інформації та зв’язку за допомогою набору заснованих на правилах обчислень, які називаються алгоритмами, і деяких математичних концепцій, щоб їх могла зрозуміти лише потрібна особа.
Це корисно для запобігання несанкціонованому доступу до інформації.
Слово «криптографія» походить від грецького слова kriptos, що означає прихований. Слово «крипто» означає «прихований», а «графіка» означає «написання».
У цій статті я розповім про основи криптографії, досліджу різні типи на прикладах, обговорю виклики та подивлюся на майбутні тенденції. Я прагну надати вичерпний огляд, що охоплює як основні, так і другорядні концепції.
Криптографія захищає цифровий зв’язок та інформацію в різних системах і програмах, забезпечуючи конфіденційність і безпеку даних. Він захищає дані від несанкціонованого доступу.
Давайте подивимося, що відбувається в криптографії:
Тепер давайте розглянемо основні принципи криптографії.
Основні принципи криптографії
Існує чотири основні принципи криптографії:
#1. Конфіденційність: доступ до інформації може отримати лише призначений одержувач; воно залишається приватним для інших.
#2. Цілісність: інформація не може бути змінена під час зберігання або передачі без виявлення будь-яких змін.
#3. Невідмовність: відправник не може відмовити в надсиланні інформації пізніше.
#4. Автентифікація: підтверджує ідентичність відправника та одержувача та перевіряє джерело та призначення інформації.
Перш ніж ми продовжимо, давайте розглянемо базовий словниковий запас.
Глосарій:
СловоЗначенняКриптографіяЦе техніка захисту інформації та зв’язку за допомогою набору заснованих на правилах обчислень, які називаються алгоритмами, і деяких математичних понять, щоб лише потрібна особа могла це зрозуміти.ШифрШифр – це метод або алгоритм, який використовується для шифрування та дешифрування данихШифруванняПроцес перетворення відкритого тексту у ciphertextPlaintextOriginal, uncrypted form of data or textCiphertextEncrypted data (encoded form of data) or textDecryptionЗворотний процес перетворення зашифрованого тексту назад у відкритий текст за допомогою ключа дешифруванняKeyКлюч — це частина інформації, як правило, послідовність бітів, яка використовується для керування процес шифрування та дешифрування. Обмін ключами Безпечна передача ключів шифрування між відправником і одержувачем. Глосарій криптографії
Існує три основних типи криптографії:
Симетрична ключова криптографія
Криптографія з симетричним ключем, також відома як шифрування з одним ключем, — це техніка шифрування, яка використовує один секретний ключ як для шифрування, так і для дешифрування даних.
У цьому методі і відправник, і одержувач повинні використовувати той самий секретний ключ, щоб зрозуміти дані. Він працює шляхом зміни звичайних даних на секретний код (зашифрований текст) за допомогою секретного ключа та спеціального математичного процесу.
Коли одержувач, якому також відомий секретний ключ, отримує повідомлення з секретним кодом, він може використовувати той самий математичний процес, щоб перетворити його назад у звичайні дані. Таким чином, одержувач отримує вихідну інформацію з секретного коду.
Симетрична криптографія
Давайте зрозуміємо процес за допомогою наступних кроків:
- Алгоритм перетворює вихідний текст (відкритий текст) на зашифрований за допомогою секретного ключа.
- Потім відправник надсилає цей зашифрований текст одержувачу через канал зв’язку. Цей канал зв’язку може бути приватним або публічним.
- Одержувачі використовують той самий секретний ключ, щоб розшифрувати цей зашифрований текст і перетворити його на оригінальний текст.
Цей процес симетричного шифрування гарантує, що зв’язок між відправником і одержувачем залишається безпечним. Але секретний ключ має бути конфіденційним.
Щоб зберегти конфіденційність і цілісність, обидві сторони повинні безпечно керувати та захищати цей секретний ключ.
Існує два типи симетричних шифрів:
Потік CipherBlock CipherШифрувати дані блоками фіксованої довжини. Під час шифрування даних система зберігає їх у пам’яті, очікуючи, поки повні блоки не будуть готові до обробки. Шифрує дані по одному біту або байту. Шифрує дані блоками фіксованої довжини. Використовує 8 біт ключа. Використовує або 64. бітів або понад 64 біти ключаСкладніший, ніж блоковий шифр, Простіший, ніж потоковий шифр, Шифрування даних у блоках фіксованої довжини, Повільний і підходить для офлайн-додатків, Використовує режими CFB і OFB, Використовує режими ECB і CBC. Потоковий шифр проти блочного шифру
Деякі приклади алгоритмів симетричного шифрування включають:
- AES (Advanced Encryption Standard): він відомий своєю безпекою та ефективністю. Він зазвичай використовується для захисту конфіденційних даних, таких як бездротова безпека, хмарні обчислення, банківська справа та електронна комерція.
- DES (Стандарт шифрування даних): це старіший метод шифрування, який був замінений на AES і 3DES. Він використовує 56-бітний ключ.
- IDEA (міжнародний алгоритм шифрування даних): він використовує 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 (Рівест-Шамір-Адлеман): RSA є одним із найпоширеніших алгоритмів асиметричного шифрування. Він заснований на математичних властивостях великих простих чисел і зазвичай використовується для безпечного обміну ключами та цифрових підписів.
- Криптографія еліптичних кривих (ECC): заснована на алгебраїчній структурі еліптичних кривих над кінцевими полями. ECC пропонує перевагу менших розмірів ключів порівняно з криптографією, що не є EC, яка покладається на звичайні поля Галуа. ECC в основному використовується для генерації псевдовипадкових чисел і цифрових підписів.
- Обмін ключами Діффі-Хеллмана: цей алгоритм використовується для безпечного обміну ключами. Ключ, створений за допомогою цього методу, можна використовувати для шифрування за допомогою симетричного алгоритму. Головна мета Діффі-Хеллмана — дати можливість двом сторонам створити спільний секретний ключ через незахищений канал зв’язку.
Переваги асиметричної криптографії
- Асиметричне шифрування забезпечує сильніший захист порівняно з симетричною криптографією.
- Одержувач може перевірити особу відправника.
- Асиметричне шифрування вирішило проблему, пов’язану з розподілом ключів, про яку я згадував у недоліках криптографії з симетричним ключем.
- Одержувачі повідомлення можуть визначити, чи було повідомлення змінено під час передавання.
Недоліки криптографії з асиметричним ключем
- Асиметричне шифрування є повільнішим процесом, ніж симетрична криптографія.
- Асиметричне шифрування та дешифрування вимагає більше обчислювальних ресурсів, ніж симетрична криптографія.
- Асиметрична криптографія покладається на відкритий і закритий ключі. Безпечне керування цими ключами може бути складним і викликом, особливо у великих системах.
- Найсуттєвішим потенційним недоліком асиметричної криптографії є її вразливість для квантових комп’ютерів. Квантові комп’ютери мають потенціал для вирішення певних математичних проблем, таких як розкладання цілих чисел і дискретних логарифмів, набагато ефективніше, ніж класичні комп’ютери.
Але не варто хвилюватися. Організації та дослідники працюють над переходом на ці квантово-стійкі криптографічні методи.
Давайте перейдемо до нашого наступного типу криптографії:
Хеш-функція
Криптографічні хеш-функції відрізняються від інших типів криптографії. Вони не шифрують дані. Натомість вони використовують складну математику, щоб перетворити будь-які дані в унікальний код, що складається з літер і цифр.
Ці коди називаються хеш-кодами, хеш-значеннями або дайджестами повідомлень. Вони важливі для перевірки безпеки даних; коли дані надсилаються або зберігаються, їх хеш-код обчислюється та надсилається або зберігається разом з даними.
Одержувач може перерахувати код отриманих даних і порівняти його з надісланими. Якщо коди збігаються, це означає, що дані залишаються в безпеці під час передачі та зберігання.
Ось просте покрокове пояснення:
Хеш-функція
Сторона відправника:
Сторона приймача:
результат:
- Якщо хеш-коди збігаються, це означає, що повідомлення не було змінено під час передачі, і воно вважається безпечним.
- Якщо хеш-коди не збігаються, це означає, що повідомлення могло бути змінено, і воно вважається небезпечним.
Ось деякі з властивостей, які роблять хеш-функції корисними:
Властивості хеш-функції:
Хеш-функції мають багато застосувань у інформатиці та інформаційній безпеці, включаючи криптографію, перевірку цілісності даних, індексацію даних, відбитки даних, зберігання паролів, цифрову криміналістику та блокчейн.
До загальновживаних криптографічних хеш-функцій належать:
Існує дві широко використовувані сімейства криптографічних хеш-функцій – сімейство MD (MD = дайджест повідомлення) і сімейство SHA (SHA = безпечний хеш-алгоритм).
- SHA-1 (Secure Hash Algorithm 1): це була одна з популярних хеш-функцій. Однак SHA-1 зараз вважається слабким через уразливості, які дозволяють здійснювати практичні атаки зіткнень. Він більше не використовується для більшості програм безпеки.
- MD5 (алгоритм дайджесту повідомлень 5): MD5 був популярний у минулому, але зараз вважається слабким через вразливість до зіткнень. Зазвичай він не використовується для чутливих до безпеки програм.
- 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.