C
Computer Science
@CScience19.2K подп.
1.5Kпросмотров
16.4%от подписчиков
12 января 2026 г.
Score: 1.7K
Подписи Лампорта — криптография без «магии» RSA и ECDSA держатся на сложности факторизации. А подписи Лампорта — только на хэш-функциях (например, SHA-256). Они post-quantum по умолчанию. Минимальная реализация на Python: import os import hashlib def generate_key(): private_key = [os.urandom(32) for _ in range(256 2)] public_key = [hashlib.sha256(x).digest() for x in private_key] return private_key, public_key def sign(message, private_key): h = hashlib.sha256(message).digest() signature = [] for i in range(256): bit = (h[i // 8] >> (i % 8)) & 1 signature.append(private_key[i + bit 256]) return signature def verify(message, signature, public_key): h = hashlib.sha256(message).digest() for i in range(256): bit = (h[i // 8] >> (i % 8)) & 1 computed = hashlib.sha256(signature[i]).digest() if computed != public_key[i + bit * 256]: return False return True # Пример использования priv, pub = generate_key() msg = b"Hello, Lamport!" sig = sign(msg, priv) print(verify(msg, sig, pub)) # True Ключи огромные, но принцип работает. Для реального использования берите SPHINCS+.
1.5K
просмотров
1181
символов
Нет
эмодзи
Нет
медиа

Другие посты @CScience1

Все посты канала →