create_multiparty_rotation_key
Engine.create_multiparty_rotation_key(rotation_keys, level)
- 개인 회전 키의 어레이를 인자로 받아서 다자간 연산의 범용적인 회전에 사용되는 공용 회전 키를 생성합니다. 공용 회전 키는 내부적으로 \(2^n\) 의 공용 고정 회전 키들로 이루어져있습니다. n은
0
부터 log_coeff_count - 1
까지입니다.
- 인풋
- rotation_keys: RotationKey의 어레이를 받습니다.
- level: optional
- 지정된 경우에는 해당 최대 곱셈 횟수에 맞춰 사이즈를 줄인 키를 생성합니다.
- 아웃풋
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)
rotation_key1 = engine.create_individual_rotation_key(secret_key1, public_key)
rotation_key2 = engine.create_individual_rotation_key(secret_key2, public_key)
rotation_key = engine.create_multiparty_rotation_key([rotation_key1, rotation_key2])
level_3_rotation_key = engine.create_multiparty_rotation_key([rotation_key1, rotation_key2], level=3)