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

Ответ

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

Принцип работы: Один и тот же ключ (secret_key) используется как для преобразования открытого текста в шифротекст, так и для обратного преобразования. Открытый текст + КлючШифротекст Шифротекст + КлючОткрытый текст

Преимущества:

  • Высокая скорость: Симметричные алгоритмы значительно быстрее асимметричных, что делает их идеальными для шифрования больших объемов данных.
  • Простота: Алгоритмы вычислительно менее сложны.

Недостаток:

  • Проблема распределения ключей: Главная сложность — безопасно передать секретный ключ от отправителя получателю. Если ключ перехвачен, вся переписка будет скомпрометирована.

Пример с использованием AES в Python (библиотека pycryptodome):

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes

# 1. Данные для шифрования
data = b'This is a secret message.'

# 2. Генерация секретного ключа (16 байт для AES-128)
key = get_random_bytes(16)

# 3. Создание объекта шифра в режиме EAX (обеспечивает конфиденциальность и аутентичность)
cipher = AES.new(key, AES.MODE_EAX)

# 4. Шифрование данных
ciphertext, tag = cipher.encrypt_and_digest(data)
nonce = cipher.nonce

# --- Передача ciphertext, tag, nonce по незащищенному каналу ---

# 5. Расшифровка на другой стороне
decipher = AES.new(key, AES.MODE_EAX, nonce=nonce)
plaintext = decipher.decrypt_and_verify(ciphertext, tag)

print(f"Расшифрованный текст: {plaintext.decode('utf-8')}")

Популярные алгоритмы: AES (современный стандарт), 3DES, Blowfish, RC4.