콘텐츠로 이동

create_lossy_bootstrap_key

Engine.create_lossy_bootstrap_key(secret_key, stage_count=3, size="medium")
비밀 키를 인자로 받아서 손실 부트스트랩에 사용되는 손실 부트스트랩 키를 생성합니다. 손실 부트스트랩 키는 내부적으로 부트스트랩에 필요한 고정 회전 키들로 이루어져있습니다. 14 레벨 부트스트랩 파라미터는 지원하지 않습니다.
  • 인풋
    • SecretKey
    • stage_count: optional
      • 부트스트래핑 알고리즘의 coefficient to slot, slot to coefficient 단계에서 사용될 곱셈 횟수를 지정합니다. 기본값은 3이고, 3 ~ 5를 지원합니다. 클수록 부트스트래핑이 빠르지만 최종 결과값의 곱셈 횟수가 줄어듭니다.
    • size: optional
      • 손실 부트스트랩 키의 메모리 사용량을 지칭합니다. 메모리 사용량이 많으면 더 빠르게 연산할 수 있습니다.
      • medium, large 두 값을 허용합니다. 기본값은 medium 으로 되어있습니다.
  • 아웃풋
    • LossyBootstrapKey
from desilofhe import Engine

engine = Engine(for_bootstrap=True)
secret_key = engine.create_secret_key()
lossy_bootstrap_key = engine.create_lossy_bootstrap_key(secret_key)

medium_lossy_bootstrap_key_with_5_stages = engine.create_lossy_bootstrap_key(
    secret_key, stage_count=5
)

large_lossy_bootstrap_key = engine.create_lossy_bootstrap_key(
    secret_key, size="large"
)

large_lossy_bootstrap_key_with_4_stages = engine.create_lossy_bootstrap_key(
    secret_key, stage_count=4, size="large"
)

키 크기

stage_count 3 4 5
medium 12.3 GB 9.1 GB 7.0 GB
large 15.2 GB 12.9 GB 8.9 GB

Stage Count

기본적으로 3, 4, 5를 지원합니다. 희소 부트스트랩의 경우 다음 값들을 지원합니다.

key_size slot_count 1 2 3 4 5
medium 1 ✅
medium 2 ✅
medium 3 ✅
medium 4 ✅ ✅
medium 5 ✅ ✅
medium 6 ✅
medium 7 ✅ ✅
medium 8 ✅ ✅
medium 9 ✅ ✅
medium 10 ✅ ✅ ✅
medium 11 ✅ ✅
medium 12 ✅ ✅
medium 13 ✅ ✅ ✅
medium 14 ✅ ✅ ✅
large 3 ✅
large 4 ✅
large 5 ✅
large 6 ✅
large 7 ✅
large 8 ✅
large 9 ✅ ✅
large 10 ✅ ✅
large 11 ✅
large 12 ✅ ✅
large 13 ✅ ✅
large 14 ✅ ✅