create_fixed_roll_key

Engine.create_fixed_roll_key(secret_key, shift, axis, *, level)
비밀 키를 인자로 받아서 특정 shift 만큼의 순환에 사용되는 고정 순환 키를 생성합니다.
  • 인풋:
    • SecretKey
    • shift: int. [0~slot count)의 범위로 modulo 처리되어 생성됩니다.
    • axis: int, optional. 행렬 엔진의 순환축을 지정합니다: 0 (batch) 또는 1 (row). 벡터 엔진에서는 None이어야 합니다. 2 (column) 축의 순환에는 키가 필요하지 않습니다. roll을 참고하세요.
    • level: int, optional
      • 지정된 경우에는 해당 최대 곱셈 횟수에 맞춰 사이즈를 줄인 키를 생성합니다.
  • 아웃풋:
    • FixedRollKey
from desilofhe import Engine

engine = Engine()
secret_key = engine.create_secret_key()
fixed_roll_key = engine.create_fixed_roll_key(secret_key, shift=1)

level_3_fixed_roll_key = engine.create_fixed_roll_key(
    secret_key, shift=1, level=3
)
from desilofhe import Engine

matrix_engine = Engine(form="matrix")
secret_key = matrix_engine.create_secret_key()
axis_0_fixed_roll_key = matrix_engine.create_fixed_roll_key(
    secret_key, shift=1, axis=0
)

axis_1_level_3_fixed_roll_key = matrix_engine.create_fixed_roll_key(
    secret_key, shift=1, axis=1, level=3
)