Documentation

Complexity.Crypto.Computational.Homomorphic.GSW.Security

Generated-key GSW security from the exact decision-LWE assumption #

The actual serialized key generator and encryption program satisfy chosen-message security under decision LWE for their precise centered-binomial error law. A single uniform adversary reduction has loss two; the remaining statistical error comes from the shared uniform public matrix. Every runtime premise concerns the actual serialized program on its complete input.

Main definitions #

Main results #

This is ordinary single-challenge public-key security against uniform classical strict PPT adversaries. It does not provide circular security, a quantum worst-case lattice reduction, or a bootstrappability theorem.

References #

The shared-public-matrix statistical term, with N = (n + 1) * w ciphertext rows.

Instances For

    The reduction uses the actual serialized encryption algorithm, including total decoding of arbitrary challenge words. Its hidden fair bit is not supplied to either adversary stage.

    Instances For
      theorem Cslib.Crypto.Homomorphic.GSW.publicKeyGame_uniformEnsemble (n m w : ℕ → ℕ) (adversary : Encryption.Adversary) (bit : Bool) (security : ℕ) :
      Encryption.publicKeyGame (LWE.uniformEnsemble n m w security) (fun (k : ℕ) => encryptSerialized (n k) (m k) (w k)) adversary bit security = uniformPublicGame (fun (A : Matrix (Fin (m security)) (Fin (n security + 1)) (ZMod (2 ^ w security))) => (adversary.choose security (serializePublicMatrix A)).eval) (fun (state : List Bool) (ciphertext : Ciphertext (n security) (w security)) => (adversary.guess security state (serializeCiphertext ciphertext)).eval) bit

      In the uniform-matrix experiment, serialized message selection, encryption and guessing agree with the typed adaptive hiding game, including the full saved word.

      theorem Cslib.Crypto.Homomorphic.GSW.advantage_uniformEnsemble_le (n m w : ℕ → ℕ) (adversary : Encryption.Adversary) (security : ℕ) :
      (Encryption.publicKeyGame (LWE.uniformEnsemble n m w security) (fun (k : ℕ) => encryptSerialized (n k) (m k) (w k)) adversary false security).advantage (Encryption.publicKeyGame (LWE.uniformEnsemble n m w security) (fun (k : ℕ) => encryptSerialized (n k) (m k) (w k)) adversary true security) ≤ hidingError (n security) (m security) (w security)

      The uniform public-key word gives the typed hiding theorem's full adaptive bound.

      theorem Cslib.Crypto.Homomorphic.GSW.advantage_game_le (n m w η : ℕ → ℕ) (adversary : Encryption.Adversary) (security : ℕ) :
      Game.advantage (Encryption.game (fun (k : ℕ) => keyGenSerialized (n k) (m k) (w k) (η k)) (fun (k : ℕ) => encryptSerialized (n k) (m k) (w k)) adversary false security).eval (Encryption.game (fun (k : ℕ) => keyGenSerialized (n k) (m k) (w k) (η k)) (fun (k : ℕ) => encryptSerialized (n k) (m k) (w k)) adversary true security).eval ≤ 2 * (distinguishingGame (LWE.realEnsemble n m w (fun (k : ℕ) => noiseLaw (w k) (η k)) security) (lweDistinguisher n m w adversary security)).advantage (distinguishingGame (LWE.uniformEnsemble n m w security) (lweDistinguisher n m w adversary security)) + hidingError (n security) (m security) (w security)

      One uniform reduction bounds actual chosen-message advantage by twice its exact decision-LWE advantage plus the shared-public-matrix statistical error. No efficiency is needed for this law.

      The actual encryption scheme is IND-CPA secure under its exact decision-LWE assumption, provided efficient dimensions have an eventual entropy surplus of twice the security parameter.

      The positive-noise parameter family supplies every dimension/runtime/entropy premise. Only decision LWE for its precise centered-binomial law remains a security assumption.