Sobes.tech
Back to questions
Middle — Middle+
55

Каким образом осуществляется процесс цифровой подписи?

Answer from AI

sobes.tech AI

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

Процесс цифровой подписи обычно включает следующие шаги:

  1. Генерация хеша: Исходный документ пропускается через хеш-функцию (например, SHA-256), которая создает уникальное краткое представление данных.

  2. Шифрование хеша закрытым ключом: Полученный хеш шифруется с помощью закрытого ключа отправителя (часть асимметричной пары ключей). Это и есть цифровая подпись.

  3. Прикрепление подписи к документу: Подпись вместе с документом отправляется получателю.

  4. Проверка подписи:

    • Получатель генерирует хеш из полученного документа.
    • Расшифровывает цифровую подпись с помощью открытого ключа отправителя.
    • Сравнивает оба хеша. Если они совпадают, значит документ не изменён и подпись подлинная.

Пример на Python с использованием библиотеки cryptography:

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

# Генерация ключей (обычно ключи уже есть)
private_key = rsa.generate_private_key(public_exponent=65537, key_size=2048)
public_key = private_key.public_key()

data = b"Important message"

# Подпись данных
signature = private_key.sign(
    data,
    padding.PSS(
        mgf=padding.MGF1(hashes.SHA256()),
        salt_length=padding.PSS.MAX_LENGTH
    ),
    hashes.SHA256()
)

# Проверка подписи
try:
    public_key.verify(
        signature,
        data,
        padding.PSS(
            mgf=padding.MGF1(hashes.SHA256()),
            salt_length=padding.PSS.MAX_LENGTH
        ),
        hashes.SHA256()
    )
    print("Подпись верна")
except Exception:
    print("Подпись недействительна")

Таким образом, цифровая подпись обеспечивает безопасность и доверие при обмене электронными документами.