Documentation

Cryptlib.Primitives.NIKE.X25519_montgomery_ladder

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

    The ladder takes the scalar as bytes: a clamped scalar can exceed p, so it must not be reduced modulo p.

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

          RFC 7748 X25519. Total: the ladder is defined on every u-coordinate, including twist points.

          Equations
          Instances For

            The same ladder on Field25519.Fe #

            The ladder on fixed-width limbs, with masked swaps so it does not branch on scalar bits. Tested against the ZMod ladder and RFC 7748 vectors, not yet proved equal to it.

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

                      Curve25519 small-order points, little-endian. Compared after masking the high bit of byte 31, so each also covers its +2^255 variant. See eprint.iacr.org/2017/806.

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

                          The ladder's output is never a small-order point: clamping makes every scalar a multiple of the cofactor 8.

                          Group actions by two private keys commute on any public key, not only on derived ones as in curve25519_commutes.

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

                            The ladder on Field25519 limbs, as a NIKE #

                            LadderScheme with curve25519_fe in place of curve25519. Its axioms restate the ladder's for curve25519_fe; proving curve25519_fe = curve25519 would remove them.

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