Documentation

CatCryptCore.Crypto.Assumptions.RSA

RSA One-Way Assumption #

This file defines the RSA one-wayness assumption at the abstract CryptoWord W level, used for the FDH signature scheme.

RSA Game #

The RSA game captures the difficulty of inverting the RSA function:

Cross-Validation #

PropertyThis fileTextbook
Game structureRSA_Game_RealBoneh-Shoup Def. 10.2
AdvantageAdvantage(Real, Ideal)Pr[RSAadv]
FormulationInversion gameStandard one-wayness

Equivalent formalizations:

References #

RSA Definition #

Abstract RSA definition, parametric over SampleableType W.

  • rsa pk xy (the RSA function under public key)
  • rsa_inv sk yx (the RSA inverse under secret key)
  • keygen(sk, pk)
  • rsa : WWW

    RSA function: (public_key, preimage) → image

  • rsa_inv : WWW

    RSA inverse: (secret_key, image) → preimage

  • keygen : Core.SPComp (W × W)

    RSA key generation: (secret_key, public_key)

  • keygen_isPure : self.keygen.IsPure

    Key generation is heap-independent

Instances For

    RSA Games #

    @[reducible, inline]

    Type of RSA adversary: receives (pk, y) and must find x with rsa(pk, x) = y.

    Equations
    Instances For

      RSA inversion game (real): adversary tries to invert rsa(pk, ·).

      Returns true if the adversary successfully inverts.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        RSA inversion game (ideal): always returns false.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          IsPure Proofs #

          theorem CatCrypt.Crypto.Assumptions.RSA_Game_Real_isPure {W : Type} [SampleableType W] (D : RSADef W) (A : RSA_Adversary W) (hA : ∀ (x y : W), (A x y).IsPure) :