create_multiparty_fixed_roll_key

Engine.create_multiparty_fixed_roll_key(individual_fixed_roll_keys, level)
개인 고정 순환 키의 배열을 인자로 받아서 다자간 연산의 고정 순환에 사용되는 공용 고정 순환 키를 생성합니다.
  • 인풋:
    • individual_fixed_roll_keys: list[FixedRollKey]
    • level: int, optional
      • 지정된 경우에는 해당 최대 곱셈 횟수에 맞춰 사이즈를 줄인 키를 생성합니다.
  • 아웃풋:
    • FixedRollKey

Warning

  • 행렬 엔진은 이 연산을 아직 지원하지 않습니다.
from desilofhe import Engine

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

fixed_roll_key1 = engine.create_individual_fixed_roll_key(
    secret_key1, public_key, shift=1
)
fixed_roll_key2 = engine.create_individual_fixed_roll_key(
    secret_key2, public_key, shift=1
)

fixed_roll_key = engine.create_multiparty_fixed_roll_key(
    [fixed_roll_key1, fixed_roll_key2]
)

level_3_fixed_roll_key = engine.create_multiparty_fixed_roll_key(
    [fixed_roll_key1, fixed_roll_key2], level=3
)