Смешайте сетевую реализацию с RSA в Python
Я пытаюсь реализовать Mixnet в Python. Рассмотрим пример на связанной вики-странице - A
шифрует сообщение A
открытый ключ, а затем шифрует полученный зашифрованный текст вместе с B
адрес с M
Публичный ключ.
Когда я запускаю свой код, который пытается сделать выше, я получаю ValueError: Plaintext is too long.
это потому что я не добавляю адрес B
правильный путь, и я превышаю 1024 размера RSA. Как мне сделать это с RSA?
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
from Crypto import Random
def create_rsa():
random_generator = Random.new().read
key = RSA.generate(1024, random_generator) #generate pub and priv key
publickey = key.publickey() # pub key export for exchange
return key, publickey
def encrypt(message, key):
ciphertext = PKCS1_OAEP.new(key)
return ciphertext.encrypt(message)
message = "chocolate milk"
prA, A = create_rsa()
prB, B = create_rsa()
prM, M = create_rsa()
# A sealing stuff
Kb = encrypt(message, B)
KbAddress = Kb + "B"
Km = encrypt(KbAddress, M)