Как работает электронная подпись

«Как работает электронная подпись» — вопрос из категории Безопасность, который задают на 27% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Электронная подпись (ЭП) — это цифровой аналог ручной подписи, обеспечивающий целостность и подлинность данных. Работает на основе криптографии с открытым ключом:

  1. Генерация ключей: создаются приватный (для подписи) и публичный (для проверки) ключи.
  2. Создание подписи: документ хешируется, затем хеш шифруется приватным ключом — это и есть подпись.
  3. Проверка подписи: получатель расшифровывает подпись публичным ключом, сравнивает с хешем документа.

Пример на Python (библиотека cryptography):

from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import padding, rsa

# Генерация ключей
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
public_key = private_key.public_key()

# Подпись
message = b"Important document"
signature = private_key.sign(message, padding.PSS(mgf=padding.MGF1(hashes.SHA256()), padding.PSS.MAX_LENGTH))

# Проверка
try:
    public_key.verify(signature, message, padding.PSS(mgf=padding.MGF1(hashes.SHA256()), padding.PSS.MAX_LENGTH))
    print("Valid signature")
except:
    print("Invalid signature")