Что такое подпись в криптографии
Python
Senior
Без компании
Что такое подпись в криптографии
Ответы
Подпись в криптографии — это цифровой аналог рукописной подписи, используемый для подтверждения подлинности и целостности данных. Она создается с помощью закрытого ключа и может быть проверена соответствующим открытым ключом.
Основные свойства:
- **Аутентичность** — подтверждает автора сообщения
- **Целостность** — гарантирует, что данные не изменены
- **Неотрекаемость** — автор не может отрицать подписание
Пример с использованием RSA в Python:
```
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 message"
signature = private_key.sign(
message,
padding.PSS(
mgf=padding.MGF1(hashes.SHA256()),
salt_length=padding.PSS.MAX_LENGTH
),
hashes.SHA256()
)
# Проверка подписи
try:
public_key.verify(
signature,
message,
padding.PSS(
mgf=padding.MGF1(hashes.SHA256()),
salt_length=padding.PSS.MAX_LENGTH
),
hashes.SHA256()
)
print("Подпись верна")
except:
print("Подпись недействительна")
```