create_multiparty_relinearization_key

Engine.create_multiparty_relinearization_key(relinearization_keys, level)
Creates a common relinearization key used for relinearization in multiparty computation. Requires an array of individual relinearization keys as input.
  • Input
    • relinearization_keys: an array of RelinearizationKeys
    • level: optional
      • Creates the key with a reduced size to contain only the specified multiplication levels.
  • Output
    • RelinearizationKey
from desilofhe import Engine

engine = Engine()
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)

relinearization_key1 = engine.create_individual_relinearization_key(secret_key1, public_key)
relinearization_key2 = engine.create_individual_relinearization_key(secret_key2, public_key)

relinearization_key = engine.create_multiparty_relinearization_key([relinearization_key1, relinearization_key2])

level_3_relinearization_key = engine.create_multiparty_relinearization_key([relinearization_key1, relinearization_key2], level=3)