Skip to content

create_bootstrap_key

Engine.create_bootstrap_key(secret_key, stage_count=3, size="medium")
Creates a bootstrap key for bootstrapping. Requires a secret key. The bootstrap key is internally composed of fixed rotation keys for bootstrapping.
  • Input
    • SecretKey
    • stage_count: optional
      • Specifies the number of levels used in coefficient to the slot function and the slot to coefficient function of bootstrapping algorithm. The default value is 3, and values from 3 to 5 are supported. The larger the stage count, the faster the bootstrapping, but the lower the level of the final result.
    • size: optional
      • Specifies the size of the bootstrap key. The larger the bootstrap key, the faster the bootstrap operation.
      • medium and large are supported. The default value is set to medium.
  • Output
    • BootstrapKey
from desilofhe import Engine

engine = Engine(for_bootstrap=True)
secret_key = engine.create_secret_key()
bootstrap_key = engine.create_bootstrap_key(secret_key)

medium_bootstrap_key_with_5_stages = engine.create_bootstrap_key(
    secret_key, stage_count=5
)

large_bootstrap_key = engine.create_bootstrap_key(secret_key, size="large")

large_bootstrap_key_with_4_stages = engine.create_bootstrap_key(
    secret_key, count=4, size="large"
)

Key Sizes

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

Stage counts of 3, 4, and 5 are supported by default. For sparse bootstrapping, the following values are supported.

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