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

Вступ

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

Ключові поняття

  • Відкритий текст - початкове повідомлення.
  • Шифротекст - зашифроване повідомлення.
  • Ключ - секретний параметр для шифрування.
  • Алгоритм шифрування - процедура для перетворення відкритого тексту в шифротекст.
  • Криптоаналіз - наука про виявлення слабкостей в системах.

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

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

Популярні алгоритми

  • AES - сучасний стандарт з 128, 192, 256 бітами ключа.
  • DES - застарілий алгоритм з 56-бітним ключем.
  • 3DES - покращена версія DES.
  • Twofish - блочний шифр з 128 бітами та ключами до 256 біт.

Режими шифрування

  • ECB - простий, не рекомендований.
  • CBC - кожен блок об'єднується з попереднім.
  • CTR - перетворює блочний шифр на потоковий.
  • GCM - забезпечує автентифікацію та конфіденційність.

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

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

Популярні алгоритми

  • RSA - базується на факторизації великих чисел.
  • ECC - використовує еліптичні криві для ефективності.
  • DSA - для цифрових підписів.
  • ElGamal - на основі дискретних логарифмів.

Хешування

Хешування перетворює дані в бітовий рядок фіксованої довжини.

Популярні алгоритми

  • MD5 - застарілий алгоритм.
  • SHA-1 - вважається небезпечним.
  • SHA-256 - частина SHA-2, широко використовується.
  • SHA-3 - новіший, стійкий до атак.
  • Blake2 - швидший за SHA-3.

Цифрові підписи

Цифровий підпис перевіряє автентичність та цілісність повідомлення.

Сертифікати та PKI

PKI забезпечує управління цифровими сертифікатами.

Компоненти PKI

  • CA - центр сертифікації.
  • RA - реєстраційний орган.
  • Сертифікати X.509 - стандартний формат сертифікатів.

TLS/SSL

TLS/SSL забезпечує безпечну передачу даних в мережі.

Процес TLS-рукостискання

  1. Клієнт надсилає ClientHello.
  2. Сервер відповідає ServerHello.
  3. Клієнт перевіряє сертифікат.
  4. Обчислюється спільний секрет.
  5. Обмінюються повідомленнями Finished.
  6. Починається шифрована передача.

Шифрування на практиці

OpenSSL

openssl genrsa -out private_key.pem 2048
openssl rsa -in private_key.pem -pubout -out public_key.pem
openssl rsautl -encrypt -inkey public_key.pem -pubin -in plaintext.txt -out encrypted.bin
openssl rsautl -decrypt -inkey private_key.pem -in encrypted.bin -out decrypted.txt

GPG

gpg --gen-key
gpg --encrypt --recipient recipient@example.com file.txt
gpg --decrypt file.txt.gpg > decrypted.txt

Найкращі практики

  • Використовуйте сучасні алгоритми (AES, RSA, SHA-256+).
  • Уникайте застарілих алгоритмів (DES, MD5).
  • Забезпечте безпечне зберігання ключів.
  • Регулярно оновлюйте ключі.