Смешайте сетевую реализацию с RSA в Python - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь реализовать Mixnet в Python.Рассмотрим пример на связанной вики-странице: A шифрует сообщение с помощью открытого ключа A, а затем шифрует полученный шифротекст вместе с адресом B с помощью открытого ключа M.

Когда я запускаю свой код, который пытается выполнить вышеизложенное, я получаю ValueError: Plaintext is too long., потому что я не добавляю адрес B правильным образом и превышаю размер RSA 1024.Как мне сделать это с 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)

tl; dr Как мне сделать this с RSA?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...