multiparty_decrypt_to_plaintext

Engine.multiparty_decrypt_to_plaintext(ciphertext, decrypted_shares)
다자간 연산에서 암호문을 복호화합니다. 디코딩은 하지 않고, plaintext 형태로 반환합니다.
  • 인풋:
    • Ciphertext
    • decrypted_shares: DecryptedShare의 어레이를 받습니다.
  • 아웃풋:
    • Plaintext
from desilofhe import Engine

engine = Engine(use_multiparty=True)
secret_key1 = engine.create_secret_key()
secret_key2 = engine.create_secret_key()
public_key_a = engine.create_public_key_a()
public_key_b1 = engine.create_public_key_b(secret_key1, public_key_a)
public_key_b2 = engine.create_public_key_b(secret_key2, public_key_a)

public_key = engine.create_multiparty_public_key(
    [public_key_b1, public_key_b2], public_key_a
)

message = [1, 2, 3]
ciphertext = engine.encrypt(message, public_key)
decrypted_share1 = engine.individual_decrypt(ciphertext, secret_key1)
decrypted_share2 = engine.individual_decrypt(ciphertext, secret_key2)

decrypted = engine.multiparty_decrypt_to_plaintext(
    ciphertext, [decrypted_share1, decrypted_share2]
)
decoded = engine.decode(decrypted)

실질적인 용도는 없지만, SEAL과 같은 종래의 동형암호의 API를 1:1로 동일하게 사용하고 싶은 경우에 사용할 수 있습니다.