diff --git a/src/liberate/fhe/ckks_engine.py b/src/liberate/fhe/ckks_engine.py index e264949..a0b3edd 100644 --- a/src/liberate/fhe/ckks_engine.py +++ b/src/liberate/fhe/ckks_engine.py @@ -30,7 +30,7 @@ def __init__(self, devices: list[int] = None, verbose: bool = False, num_scales=None, num_special_primes=2, sigma=3.2, - uniform_tenary_secret=True, + uniform_ternary_secret=True, cache_folder='cache/', security_bits=128, quantum='post_quantum', diff --git a/src/liberate/fhe/context/ckks_context.py b/src/liberate/fhe/context/ckks_context.py index c6098a0..2d1d5ea 100644 --- a/src/liberate/fhe/context/ckks_context.py +++ b/src/liberate/fhe/context/ckks_context.py @@ -157,7 +157,7 @@ def __init__( num_scales=None, num_special_primes=2, sigma=3.2, - uniform_tenary_secret=True, + uniform_ternary_secret=True, cache_folder=CACHE_FOLDER, security_bits=128, quantum="post_quantum", @@ -203,11 +203,11 @@ def __init__( self.distribution = distribution # Sampling strategy. self.sigma = sigma - self.uniform_tenary_secret = uniform_tenary_secret - if self.uniform_tenary_secret: - self.secret_key_sampling_method = "uniform tenary" + self.uniform_ternary_secret = uniform_ternary_secret + if self.uniform_ternary_secret: + self.secret_key_sampling_method = "uniform ternary" else: - self.secret_key_sampling_method = "sparse tenary" + self.secret_key_sampling_method = "sparse ternary" # dtypes. self.torch_dtype = {30: torch.int32, 62: torch.int64}[ diff --git a/src/liberate/fhe/context/security_parameters.py b/src/liberate/fhe/context/security_parameters.py index 6057eaa..ebf67f6 100644 --- a/src/liberate/fhe/context/security_parameters.py +++ b/src/liberate/fhe/context/security_parameters.py @@ -15,8 +15,8 @@ # We separate them in respective dictionaries. # # Also, there are 3 different methods of sampling the messages according to respective distributions. -# Those are uniform, error, and (-1, 1) (tenary). -# We differentiate the message distribution by dictionary keys: 'uniform', 'error', and 'tenary'. +# Those are uniform, error, and (-1, 1) (ternary). +# We differentiate the message distribution by dictionary keys: 'uniform', 'error', and 'ternary'. # This is the pre-quantum security requirements. logq_preq = {} @@ -60,7 +60,7 @@ 613, 478, ] -logq_preq["tenary"] = [ +logq_preq["ternary"] = [ 27, 19, 14, @@ -123,7 +123,7 @@ 573, 445, ] -logq_postq["tenary"] = [ +logq_postq["ternary"] = [ 25, 17, 13, @@ -158,7 +158,7 @@ def partitq(q): # Gather up. logq = {} -distributions = ["uniform", "error", "tenary"] +distributions = ["uniform", "error", "ternary"] logq["pre_quantum"] = { distributions[disti]: partitq(logq_preq[dist]) for disti, dist in enumerate(distributions) @@ -176,7 +176,7 @@ def minimum_cyclotomic_order( "pre_quantum", "post_quantum", ], "Wrong quantum security model!!!" - assert distribution in ["uniform", "error", "tenary"] + assert distribution in ["uniform", "error", "ternary"] assert security_bits in [128, 192, 256] x = logq[quantum][distribution][security_bits] @@ -192,7 +192,7 @@ def maximum_qbits( "pre_quantum", "post_quantum", ], "Wrong quantum security model!!!" - assert distribution in ["uniform", "error", "tenary"] + assert distribution in ["uniform", "error", "ternary"] assert security_bits in [128, 192, 256] x = cyclotomic_n diff --git a/src/liberate/fhe/tests/test_generate_engine.py b/src/liberate/fhe/tests/test_generate_engine.py index 0ea402a..6f5bad0 100644 --- a/src/liberate/fhe/tests/test_generate_engine.py +++ b/src/liberate/fhe/tests/test_generate_engine.py @@ -26,7 +26,7 @@ def ckks_engine( "num_special_primes": 2, "buffer_bit_length": 62, "sigma": 3.2, - "uniform_tenary_secret": True, + "uniform_ternary_secret": True, "cache_folder": "cache/", "quantum": "post_quantum", "distribution": "uniform",