create_individual_fixed_roll_key
Engine.create_individual_fixed_roll_key(secret_key, public_key, shift, axis, *, level)- 비밀 키와 공용 공개 키를 인자로 받아서 특정 shift 만큼의 순환에 사용되는 다자간 연산의 공용 고정 순환 키 생성에 사용되는 개인 고정 순환 키를 생성합니다.
- 인풋:
SecretKeyPublicKey- shift:
int입니다.[0~slot count)의 범위로 modulo 처리되어 생성됩니다. - axis:
None, optional. 행렬 엔진은 다자간 연산을 지원하지 않으므로None이어야 합니다. - 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
)
level_3_fixed_roll_key1 = engine.create_individual_fixed_roll_key(
secret_key1, public_key, shift=1, level=3
)