Ell lliptic curves and is isogenies β’ Let πΉ 1 and πΉ 2 be elliptic curves defined over an extension field π . β’ An isogeny is a (non-constant) rational map π : πΉ 1 β πΉ 2 that preserves identity, i.e., π(π« πΉ 1 ) β π« πΉ 2 . Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 12
Ell lliptic curves and is isogenies β’ Let πΉ 1 and πΉ 2 be elliptic curves defined over an extension field π . β’ An isogeny is a (non-constant) rational map π : πΉ 1 β πΉ 2 that preserves identity, i.e., π(π« πΉ 1 ) β π« πΉ 2 . Relevant properties: β’ Isogenies are group homomorphisms. β’ For every finite subgroup π» β πΉ 1 , there is a unique curve πΉ 2 (up to isomorphism) and isogeny π : πΉ 1 β πΉ 2 with kernel π» . Write πΉ 2 = π πΉ 1 = πΉ 1 / π» . β’ (Separable) isogenies have deg π = # ker π . Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 12
Supersingular curves β’ An elliptic curve πΉ/π is supersingular if #πΉ(π) β‘ 1(mod π) . β’ All supersingular curves can be defined over πΎ π 2 . β’ There are ~ π/ππ isomorphism classes of supersingular curves. Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 13
Supersingular is isogeny graphs β’ Vertices: the ~ π/12 isomorphism classes of supersingular curves over πΎ π 2 . Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 14
Supersingular is isogeny graphs β’ Vertices: the ~ π/12 isomorphism classes of supersingular curves over πΎ π 2 . Same j-invariant Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 14
Supersingular is isogeny graphs β’ Vertices: the ~ π/12 isomorphism classes of supersingular curves over πΎ π 2 . β’ Edges: isogenies of a fixed prime degree π β€ π π = 2 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 14
Supersingular is isogeny graphs β’ Vertices: the ~ π/12 isomorphism classes of supersingular curves over πΎ π 2 . β’ Edges: isogenies of a fixed prime degree π β€ π π 2 π 2 π 2 π 2 π 2 π 2 π 2 π 2 π 2 π 2 π 2 π 2 π 2 π = 2 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 14
Supersingular is isogeny graphs β’ Vertices: the ~ π/12 isomorphism classes of supersingular curves over πΎ π 2 . β’ Edges: isogenies of a fixed prime degree π β€ π For any prime π β€ π , there exist (π + 1) isogenies of degree π originating from every supersingular curve. π 2 π 2 π 2 π 2 π 2 π 2 π 2 π 2 π 2 π 2 π 2 π 2 π 2 π = 2 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 14
Supersingular is isogeny graphs β’ Vertices: the ~ π/12 isomorphism classes of supersingular curves over πΎ π 2 . β’ Edges: isogenies of a fixed prime degree π β€ π For any prime π β€ π , there exist (π + 1) isogenies of degree π originating from every supersingular curve. π 3 π 2 π 2 π 2 π 3 π 3 π 2 π 3 π 2 π 3 π 3 π 2 π 3 π 3 π 2 π 2 π 3 π 2 π 3 π 2 π 3 π 3 π 2 π 2 π 3 π 2 π 3 π 3 π = 2 π = 3 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 14
SID IDH in in a nutshell Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 15
SID IDH in in a nutshell πΉ 0 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 15
SID IDH in in a nutshell πΉ π΅ πΉ 0 πΉ πΆ Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 15
SID IDH in in a nutshell πΉ π΅ πΉ πΆπ΅ πΉ 0 πΉ π΅πΆ Same j-invariant πΉ πΆ Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 15
SID IDH: : setup Set π β 2,3 , supersingular curve πΉ 0 /πΎ π 2 with a prime π = π β 2 π π΅ 3 π πΆ β 1 such that 2 π π΅ β 3 π πΆ and π small. β’ Then: πΉ 2 π π΅ , πΉ[3 π πΆ ] β πΉ 0 (πΎ π 2 ) Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 16
SID IDH: : setup Set π β 2,3 , supersingular curve πΉ 0 /πΎ π 2 with a prime π = π β 2 π π΅ 3 π πΆ β 1 such that 2 π π΅ β 3 π πΆ and π small. β’ Then: πΉ 2 π π΅ , πΉ[3 π πΆ ] β πΉ 0 (πΎ π 2 ) works over πΉ[2 π π΅ ] using 2-isogenies and linearly independent points π π΅ , π π΅ . works over πΉ[3 π πΆ ] using 3-isogenies and linearly independent points π πΆ , π πΆ . Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 16
SID IDH protocol private Alice private Bob public params E β s are isogenous curves P β s, Q β s, R β s, S β s are points πΉ 0 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 17
SID IDH protocol private Alice private Bob public params E β s are isogenous curves P β s, Q β s, R β s, S β s are points πΉ 0 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 17
SID IDH protocol private Alice private Bob public params πΉ π΅ = πΉ 0 / π΅ E β s are isogenous curves P β s, Q β s, R β s, S β s are points πΉ 0 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 17
SID IDH protocol private Alice private Bob public params πΉ π΅ = πΉ 0 / π΅ E β s are isogenous curves P β s, Q β s, R β s, S β s are points πΉ 0 πΉ πΆ = πΉ 0 / πΆ Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 17
SID IDH protocol private Alice private Bob public params πΉ π΅ = πΉ 0 / π΅ E β s are isogenous curves P β s, Q β s, R β s, S β s are points πΉ 0 πΉ πΆ = πΉ 0 / πΆ Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 17
SID IDH protocol private Alice private Bob π π΅ , π π΅ = {π π΅ π πΆ , π π΅ (π πΆ )} public params πΉ π΅ = πΉ 0 / π΅ E β s are isogenous curves P β s, Q β s, R β s, S β s are points πΉ 0 πΉ πΆ = πΉ 0 / πΆ π πΆ , π πΆ = {π πΆ π π΅ , π πΆ (π π΅ )} Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 17
SID IDH protocol private Alice private Bob π π΅ , π π΅ = {π π΅ π πΆ , π π΅ (π πΆ )} public params πΉ π΅ = πΉ 0 / π΅ E β s are isogenous curves P β s, Q β s, R β s, S β s are points πΉ 0 β² ) = π΅β² = π πΆ + [π‘ π΅ ]π πΆ πππ (π π΅ πΉ πΆπ΅ = πΉ πΆ / π΅β² β² π π΅ πΉ πΆ = πΉ 0 / πΆ π πΆ , π πΆ = {π πΆ π π΅ , π πΆ (π π΅ )} π΅β² = π πΆ π π΅ + [π‘ π΅ ]π πΆ π π΅ = π πΆ π π΅ + [π‘ π΅ ]π π΅ = π πΆ π΅ Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 17
SID IDH protocol private Alice private Bob π π΅ , π π΅ = {π π΅ π πΆ , π π΅ (π πΆ )} public params πΉ π΅ = πΉ 0 / π΅ β² π πΆ E β s are isogenous curves πΉ π΅πΆ = πΉ π΅ / πΆ β² P β s, Q β s, R β s, S β s are points β² πππ π πΆ = πΆβ² = π π΅ + [π‘ πΆ ]π π΅ πΉ 0 β² ) = π΅β² = π πΆ + [π‘ π΅ ]π πΆ πππ (π π΅ πΉ πΆπ΅ = πΉ πΆ / π΅β² β² π π΅ πΉ πΆ = πΉ 0 / πΆ π πΆ , π πΆ = {π πΆ π π΅ , π πΆ (π π΅ )} π΅β² = π πΆ π π΅ + [π‘ π΅ ]π πΆ π π΅ = π πΆ π π΅ + [π‘ π΅ ]π π΅ = π πΆ π΅ πΆ β² = π π΅ π πΆ + [π‘ πΆ ]π π΅ π πΆ = π π΅ π πΆ + [π‘ πΆ ]π πΆ = π π΅ πΆ Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 17
SID IDH protocol private Alice private Bob π π΅ , π π΅ = {π π΅ π πΆ , π π΅ (π πΆ )} public params πΉ π΅ = πΉ 0 / π΅ β² π πΆ E β s are isogenous curves πΉ π΅πΆ = πΉ π΅ / πΆ β² P β s, Q β s, R β s, S β s are points β² πππ π πΆ = πΆβ² = π π΅ + [π‘ πΆ ]π π΅ πΉ 0 β² ) = π΅β² = π πΆ + [π‘ π΅ ]π πΆ πππ (π π΅ πΉ πΆπ΅ = πΉ πΆ / π΅β² β² π π΅ πΉ πΆ = πΉ 0 / πΆ π πΆ , π πΆ = {π πΆ π π΅ , π πΆ (π π΅ )} π΅β² = π πΆ π π΅ + [π‘ π΅ ]π πΆ π π΅ = π πΆ π π΅ + [π‘ π΅ ]π π΅ = π πΆ π΅ πΆ β² = π π΅ π πΆ + [π‘ πΆ ]π π΅ π πΆ = π π΅ π πΆ + [π‘ πΆ ]π πΆ = π π΅ πΆ β² (π π΅ (πΉ 0 )) β πΉ 0 / π β² (π πΆ πΉ 0 ) πΉ π΅πΆ = π πΆ π΅ + [π‘ π΅ ]π π΅ , π πΆ + [π‘ πΆ ]π πΆ β πΉ πΆπ΅ = π π΅ Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 17
SID IDH protocol private Alice private Bob π π΅ , π π΅ = {π π΅ π πΆ , π π΅ (π πΆ )} public params πΉ π΅ = πΉ 0 / π΅ E β s are isogenous curves P β s, Q β s, R β s, S β s are points πΉ 0 πΉ 0 / π΅, πΆ πΉ πΆ = πΉ 0 / πΆ π πΆ , π πΆ = {π πΆ π π΅ , π πΆ (π π΅ )} π΅β² = π πΆ π π΅ + [π‘ π΅ ]π πΆ π π΅ = π πΆ π π΅ + [π‘ π΅ ]π π΅ = π πΆ π΅ πΆ β² = π π΅ π πΆ + [π‘ πΆ ]π π΅ π πΆ = π π΅ π πΆ + [π‘ πΆ ]π πΆ = π π΅ πΆ β² (π π΅ (πΉ 0 )) β πΉ 0 / π β² (π πΆ πΉ 0 ) πΉ π΅πΆ = π πΆ π΅ + [π‘ π΅ ]π π΅ , π πΆ + [π‘ πΆ ]π πΆ β πΉ πΆπ΅ = π π΅ Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 17
SID IDH protocol Drawback: β’ SIDH is not secure when keys are reused (Galbraith-Petit-Shani-Ti 2016) β’ Only recommended in ephemeral mode Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 18
Supersingular is isogeny key encapsulation (S (SIK IKE) β’ IND-CCA secure key encapsulation: no problem reusing keys! β’ Uses a variant of Hofheinz β HΓΆvelmanns β Kiltz (HHK) transform: IND-CPA PKE β IND-CCA KEM β’ HHK transform is secure in both the classical and quantum ROM models β’ Offline key generation gives performance boost (no perf loss SIDH β SIKE) Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 19
Supersingular is isogeny key encapsulation (S (SIK IKE) KeyGen 1. π‘ πΆ β π [0, 2 log 2 3 ππΆ ) 2. Set πππ π πΆ = π πΆ + [π‘ πΆ ]π πΆ 3. pk πΆ = {π πΆ πΉ 0 , π πΆ π π΅ , π πΆ π π΅ } 4. π‘ β π {0,1} π 5. keypair: sk πΆ = (π‘, π‘ πΆ ) , pk πΆ Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 20
Supersingular is isogeny key encapsulation (S (SIK IKE) KeyGen 1. π‘ πΆ β π [0, 2 log 2 3 ππΆ ) Encaps 2. Set πππ π πΆ = π πΆ + [π‘ πΆ ]π πΆ 3. pk πΆ = {π πΆ πΉ 0 , π πΆ π π΅ , π πΆ π π΅ } 1. message π β π 0,1 π 4. π‘ β π {0,1} π 2. π = π» π, pk πΆ mod 2 π π΅ pk πΆ 5. keypair: sk πΆ = (π‘, π‘ πΆ ) , pk πΆ 3. Set πππ π π΅ = π π΅ + [π ]π π΅ 4. pk π΅ = {π π΅ πΉ 0 , π π΅ π πΆ , π π΅ π πΆ } β² (π πΆ (πΉ 0 ))) 5. π = π πΉ π΅πΆ = π(π π΅ 6. Shared key: π‘π‘ = πΌ(π, π) Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 20
Supersingular is isogeny key encapsulation (S (SIK IKE) KeyGen 1. π‘ πΆ β π [0, 2 log 2 3 ππΆ ) Encaps 2. Set πππ π πΆ = π πΆ + [π‘ πΆ ]π πΆ 3. pk πΆ = {π πΆ πΉ 0 , π πΆ π π΅ , π πΆ π π΅ } 1. message π β π 0,1 π 4. π‘ β π {0,1} π 2. π = π» π, pk πΆ mod 2 π π΅ pk πΆ encryption 5. keypair: sk πΆ = (π‘, π‘ πΆ ) , pk πΆ 3. Set πππ π π΅ = π π΅ + [π ]π π΅ 4. pk π΅ = {π π΅ πΉ 0 , π π΅ π πΆ , π π΅ π πΆ } β² (π πΆ (πΉ 0 ))) 5. π = π πΉ π΅πΆ = π(π π΅ 6. Shared key: π‘π‘ = πΌ(π, π) Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 20
Supersingular is isogeny key encapsulation (S (SIK IKE) KeyGen 1. π‘ πΆ β π [0, 2 log 2 3 ππΆ ) Encaps 2. Set πππ π πΆ = π πΆ + [π‘ πΆ ]π πΆ 3. pk πΆ = {π πΆ πΉ 0 , π πΆ π π΅ , π πΆ π π΅ } 1. message π β π 0,1 π 4. π‘ β π {0,1} π 2. π = π» π, pk πΆ mod 2 π π΅ pk πΆ encryption 5. keypair: sk πΆ = (π‘, π‘ πΆ ) , pk πΆ 3. Set πππ π π΅ = π π΅ + [π ]π π΅ Decaps 4. pk π΅ = {π π΅ πΉ 0 , π π΅ π πΆ , π π΅ π πΆ } π = (pk π΅ , πΊ(π) β π) β² (π πΆ (πΉ 0 ))) β² (π π΅ (πΉ 0 ))) 5. π = π πΉ π΅πΆ = π(π π΅ 1. πβ² = π πΉ πΆπ΅ = π(π πΆ 6. Shared key: π‘π‘ = πΌ(π, π) 2 . π β² = πΊ(πβ²) β π[2] 3 . π β² = π» π β² , pk πΆ mod 2 π π΅ 4 . Set πππ π π΅ = π π΅ + [π β²]π π΅ β² = {π π΅ πΉ 0 , π π΅ π πΆ , π π΅ π πΆ } 5. pk π΅ β² = π[1] then 6. If pk π΅ Shared key: π‘π‘ = πΌ(π β² , π) 7 . Else π‘π‘ = πΌ(π‘, π) Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 20
Supersingular is isogeny key encapsulation (S (SIK IKE) KeyGen 1. π‘ πΆ β π [0, 2 log 2 3 ππΆ ) Encaps 2. Set πππ π πΆ = π πΆ + [π‘ πΆ ]π πΆ 3. pk πΆ = {π πΆ πΉ 0 , π πΆ π π΅ , π πΆ π π΅ } 1. message π β π 0,1 π 4. π‘ β π {0,1} π 2. π = π» π, pk πΆ mod 2 π π΅ pk πΆ encryption 5. keypair: sk πΆ = (π‘, π‘ πΆ ) , pk πΆ 3. Set πππ π π΅ = π π΅ + [π ]π π΅ Decaps 4. pk π΅ = {π π΅ πΉ 0 , π π΅ π πΆ , π π΅ π πΆ } π = (pk π΅ , πΊ(π) β π) β² (π πΆ (πΉ 0 ))) β² (π π΅ (πΉ 0 ))) 5. π = π πΉ π΅πΆ = π(π π΅ 1. πβ² = π πΉ πΆπ΅ = π(π πΆ 6. Shared key: π‘π‘ = πΌ(π, π) 2 . π β² = πΊ(πβ²) β π[2] 3 . π β² = π» π β² , pk πΆ mod 2 π π΅ decryption 4 . Set πππ π π΅ = π π΅ + [π β²]π π΅ β² = {π π΅ πΉ 0 , π π΅ π πΆ , π π΅ π πΆ } 5. pk π΅ β² = π[1] then 6. If pk π΅ Shared key: π‘π‘ = πΌ(π β² , π) 7 . Else π‘π‘ = πΌ(π‘, π) Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 20
Supersingular is isogeny key encapsulation (S (SIK IKE) KeyGen 1. π‘ πΆ β π [0, 2 log 2 3 ππΆ ) Encaps 2. Set πππ π πΆ = π πΆ + [π‘ πΆ ]π πΆ 3. pk πΆ = {π πΆ πΉ 0 , π πΆ π π΅ , π πΆ π π΅ } 1. message π β π 0,1 π 4. π‘ β π {0,1} π 2. π = π» π, pk πΆ mod 2 π π΅ pk πΆ encryption 5. keypair: sk πΆ = (π‘, π‘ πΆ ) , pk πΆ 3. Set πππ π π΅ = π π΅ + [π ]π π΅ Decaps 4. pk π΅ = {π π΅ πΉ 0 , π π΅ π πΆ , π π΅ π πΆ } π = (pk π΅ , πΊ(π) β π) β² (π πΆ (πΉ 0 ))) β² (π π΅ (πΉ 0 ))) 5. π = π πΉ π΅πΆ = π(π π΅ 1. πβ² = π πΉ πΆπ΅ = π(π πΆ 6. Shared key: π‘π‘ = πΌ(π, π) 2 . π β² = πΊ(πβ²) β π[2] 3 . π β² = π» π β² , pk πΆ mod 2 π π΅ decryption 4 . Set πππ π π΅ = π π΅ + [π β²]π π΅ β² = {π π΅ πΉ 0 , π π΅ π πΆ , π π΅ π πΆ } 5. pk π΅ β² = π[1] then partial re-encryption 6. If pk π΅ Shared key: π‘π‘ = πΌ(π β² , π) πΊ, π», πΌ instantiated with cSHAKE256. 7 . Else π‘π‘ = πΌ(π‘, π) Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 20
Computation la layers protocol SIDH, SIKE Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 21
Computation la layers protocol SIDH, SIKE high-level point and π + π‘ π , π π -degree isogenies curve arithmetic Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 21
Computation la layers protocol SIDH, SIKE high-level point and π + π‘ π , π π -degree isogenies curve arithmetic low-level point and 2 π, 3 π, π + π , π(π) curve arithmetic Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 21
Computation la layers protocol SIDH, SIKE high-level point and π + π‘ π , π π -degree isogenies curve arithmetic low-level point and 2 π, 3 π, π + π , π(π) curve arithmetic πΎ π 2 add, mul, sqr, inv extension field arithmetic Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 21
Computation la layers protocol SIDH, SIKE high-level point and π + π‘ π , π π -degree isogenies curve arithmetic low-level point and 2 π, 3 π, π + π , π(π) curve arithmetic πΎ π 2 add, mul, sqr, inv extension field arithmetic πΎ π add, mul, inv field arithmetic Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 21
Hig igh-level point and curve ari rithmetic Two main internal computations: β’ Double-scalar multiplications to construct kernels π + π‘ π β’ Smooth, πΆ π -degree isogeny computations π: πΉ 0 β πΉβ² Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 22
Computing π + π‘ π Three-point differential ladder (x-only, variable point) β’ De Feo-Jao-PlΓ»t (2014), step cost = 1DBL + 2ADD β’ Faz-HernΓ‘ndez et al. (2018), step cost = 1DBL + 1ADD Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 23
Computing π + π‘ π [F [Faz-HernΓ‘ndez β LΓ³pez β Ochoa-JimΓ©nez β RodrΓg Γguez-HenrΓquez 20 2018 18] πΊ π = πΈ πΊ π = πΉ πΊ π = πΉ β πΈ π = (πππππ) π Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 24
Computing π + π‘ π [F [Faz-HernΓ‘ndez β LΓ³pez β Ochoa-JimΓ©nez β RodrΓg Γguez-HenrΓquez 20 2018 18] πΊ π = πΈ πΊ π = πΉ πΊ π = πΉ β πΈ π = (πππππ) π π π = π π 2 π [2]π β π Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 24
Computing π + π‘ π [Faz-HernΓ‘ndez β LΓ³pez β Ochoa-JimΓ©nez β RodrΓg [F Γguez-HenrΓquez 20 2018 18] πΊ π = πΈ πΊ π = πΉ πΊ π = πΉ β πΈ π = (πππππ) π π π = π π 2 π [2]π β π π π = π π 4 π [4]π β π Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 24
Computing π + π‘ π [Faz-HernΓ‘ndez β LΓ³pez β Ochoa-JimΓ©nez β RodrΓg [F Γguez-HenrΓquez 20 2018 18] πΊ π = πΈ πΊ π = πΉ πΊ π = πΉ β πΈ π = (πππππ) π π π = π π 2 π [2]π β π π π = π π 4 π [4]π β π π π = π π + 4 π 8 π [4]π β π Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 24
Computing π + π‘ π [Faz-HernΓ‘ndez β LΓ³pez β Ochoa-JimΓ©nez β RodrΓg [F Γguez-HenrΓquez 20 2018 18] πΊ π = πΈ πΊ π = πΉ πΊ π = πΉ β πΈ π = (πππππ) π π π = π π 2 π [2]π β π π π = π π 4 π [4]π β π π π = π π + 4 π 8 π [4]π β π π π = π π + 12 π 16 π [4]π β π Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 24
Computing π + π‘ π [Faz-HernΓ‘ndez β LΓ³pez β Ochoa-JimΓ©nez β RodrΓg [F Γguez-HenrΓquez 20 2018 18] πΊ π = πΈ πΊ π = πΉ πΊ π = πΉ β πΈ π = (πππππ) π π π = π π 2 π [2]π β π π π = π π 4 π [4]π β π π π = π π + 4 π 8 π [4]π β π π π = π π + 12 π 16 π [4]π β π π π = π πΈ + ππ πΉ 32 π [20]π β π Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 24
Computing π π -degree is isogenies β’ Construct it as a composition of multiple (small, prime-degree) isogenies πΉ π΅ πΉ 0 πΉ 0 / π΅, πΆ πΉ πΆ Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 25
Computing π π -degree is isogenies β’ Construct it as a composition of multiple (small, prime-degree) isogenies πΉ π΅ πΉ 0 πΉ 0 / π΅, πΆ πΉ πΆ Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 25
Computing π π -degree is isogenies β’ Construct it as a composition of multiple (small, prime-degree) isogenies πΉ π΅ πΉ 0 πΉ 0 / π΅, πΆ πΉ πΆ π πΆ : πΉ 0 β πΉ πΆ π πΆ = π 0 β π 1 β π 2 β β― ββ π πβ1 πΉ 0 πΉ 1 πΉ 2 πΉ 3 πΉ 4 πΉ πΆ π πβ1 π 0 π 2 π 1 π 3 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 25
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) Let base point π 0 β πΉ 0 . Assume π = 4 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) Let base point π 0 β πΉ 0 . Assume π = 4 Compute 3 4 -degree isogeny: π πΆ : πΉ 0 β πΉ 4 π πΆ = π 0 β π 1 β π 2 β π 3 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 πΉ 3 πΉ 4 = πΉ 0 / π 0 π 3 πΉ 4 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 πΉ 3 πΉ 4 = πΉ 0 / π 0 π 3 β’ Iteratively compute: πΉ 4 πΉ π+1 = πΉ π / [π πβπβ1 ]π π Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 πΉ 3 πΉ 4 = πΉ 0 / π 0 π 3 β’ Iteratively compute: πΉ 4 πΉ π+1 = πΉ π / [π πβπβ1 ]π π Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 πΉ 3 πΉ 4 = πΉ 0 / π 0 π 3 β’ Iteratively compute: πΉ 4 πΉ π+1 = πΉ π / [π πβπβ1 ]π π 3 4 π 0 3 3 π 1 3 2 π 2 3 π 3 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 πΉ 3 πΉ 4 = πΉ 0 / π 0 π 3 β’ Iteratively compute: πΉ 4 πΉ π+1 = πΉ π / [π πβπβ1 ]π π 3 4 π 0 3 3 π 1 3 2 π 2 3 π 3 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 πΉ 3 πΉ 4 = πΉ 0 / π 0 π 3 β’ Iteratively compute: πΉ 4 πΉ π+1 = πΉ π / [π πβπβ1 ]π π 3 4 π 0 3 3 π 1 3 2 π 2 3 π 3 ( + ) slope: point operations Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 πΉ 3 πΉ 4 = πΉ 0 / π 0 π 3 β’ Iteratively compute: πΉ 4 πΉ π+1 = πΉ π / [π πβπβ1 ]π π 3 4 π 0 3 3 π 1 3 2 π 2 3 π 3 ( + ) slope: point operations ( β ) slope: isogeny operations Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: 3 π 0 π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 πΉ 3 πΉ 4 = πΉ 0 / π 0 π 3 πΉ 4 3 4 π 0 3 3 π 1 3 2 π 2 3 π 3 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: 3 π 0 π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 3 2 π 0 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 πΉ 3 πΉ 4 = πΉ 0 / π 0 π 3 πΉ 4 3 4 π 0 3 3 π 1 3 2 π 2 3 π 3 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: 3 π 0 π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 3 2 π 0 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 πΉ 3 πΉ 4 = πΉ 0 / π 0 3 3 π 0 π 3 πΉ 4 3 4 π 0 3 3 π 1 3 2 π 2 3 π 3 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: 3 π 0 π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 3 2 π 0 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 πΉ 3 πΉ 4 = πΉ 0 / π 0 3 3 π 0 π 3 πΉ 4 3 4 π 0 3 3 π 1 3 2 π 2 3 π 3 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: 3 π 0 π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 3 2 π 0 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 πΉ 3 πΉ 4 = πΉ 0 / π 0 3 3 π 0 π 3 πΉ 4 π 0 = πΉ 0 / 81π 0 3 4 π 0 3 3 π 1 3 2 π 2 3 π 3 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: 3 π 0 π 1 π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 3 2 π 0 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 πΉ 3 πΉ 4 = πΉ 0 / π 0 3 3 π 0 π 3 πΉ 4 π 0 = πΉ 0 / 81π 0 3 4 π 0 3 3 π 1 3 2 π 2 πΉ 1 = π 0 (πΉ 0 ) 3 π 3 π 1 = π 0 (π 0 ) Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: 3 π 0 π 1 π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 3 2 π 0 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 π 0 πΉ 3 πΉ 4 = πΉ 0 / π 0 3 3 π 0 π 0 π 3 πΉ 4 π 0 = πΉ 0 / 81π 0 3 4 π 0 3 3 π 1 3 2 π 2 πΉ 1 = π 0 (πΉ 0 ) 3 π 3 π 1 = π 0 (π 0 ) Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: 3 π 0 π 1 π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 3 2 π 0 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 π 0 πΉ 3 πΉ 4 = πΉ 0 / π 0 3 3 π 0 π 0 π 3 πΉ 4 π 1 = πΉ 1 / 27π 0 3 4 π 0 3 3 π 1 3 2 π 2 3 π 3 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: 3 π 0 π 1 π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 3 2 π 0 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 π 2 π 0 πΉ 3 πΉ 4 = πΉ 0 / π 0 3 3 π 0 π 0 π 3 πΉ 4 π 1 = πΉ 1 / 27π 0 3 4 π 0 3 3 π 1 3 2 π 2 πΉ 2 = π 1 (πΉ 1 ) 3 π 3 π 2 = π 1 (π 1 ) Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: 3 π 0 π 1 π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 3 2 π 0 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 π 2 π 0 πΉ 3 πΉ 4 = πΉ 0 / π 0 3 3 π 0 π 0 π 1 π 3 πΉ 4 π 1 = πΉ 1 / 27π 0 3 4 π 0 3 3 π 1 3 2 π 2 πΉ 2 = π 1 (πΉ 1 ) 3 π 3 π 2 = π 1 (π 1 ) Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: 3 π 0 π 1 π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 3 2 π 0 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 π 2 π 0 πΉ 3 πΉ 4 = πΉ 0 / π 0 3 3 π 0 π 0 π 1 π 3 πΉ 4 π 2 = πΉ 2 / 9π 2 3 4 π 0 3 3 π 1 3 2 π 2 3 π 3 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: 3 π 0 π 1 π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 3 2 π 0 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 π 2 π 0 πΉ 3 πΉ 4 = πΉ 0 / π 0 3 3 π 0 π 3 π 0 π 1 π 3 πΉ 4 π 2 = πΉ 2 / 9π 2 3 4 π 0 3 3 π 1 3 2 π 2 πΉ 3 = π 2 (πΉ 2 ) 3 π 3 π 3 = π 2 (π 2 ) Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: 3 π 0 π 1 π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 3 2 π 0 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 π 2 π 0 πΉ 3 πΉ 4 = πΉ 0 / π 0 3 3 π 0 3 3 π 0 π 3 π 0 π 1 π 3 πΉ 4 π 2 = πΉ 2 / 9π 2 3 4 π 0 3 3 π 1 3 2 π 2 πΉ 3 = π 2 (πΉ 2 ) 3 π 3 π 3 = π 2 (π 2 ) Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: 3 π 0 π 1 π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 3 2 π 0 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 π 2 π 0 πΉ 3 πΉ 4 = πΉ 0 / π 0 3 3 π 0 π 3 π 0 π 1 π 3 πΉ 4 π 3 = πΉ 3 / 3π 3 3 4 π 0 3 3 π 1 3 2 π 2 3 π 3 Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Computing π π -degree is isogenies β’ Example: Bob ( π = 3 ) computes πΉ πΆ = π πΆ (πΉ 0 ) πΉ 0 π 0 Let base point π 0 β πΉ 0 . Assume π = 4 π 0 πΉ 1 Compute 3 4 -degree isogeny: 3 π 0 π 1 π 1 π πΆ : πΉ 0 β πΉ 4 πΉ 2 3 2 π 0 π πΆ = π 0 β π 1 β π 2 β π 3 π 2 π 2 π 0 πΉ 3 πΉ 4 = πΉ 0 / π 0 3 3 π 0 π 3 π 0 π 1 π 3 πΉ 4 π 3 = πΉ 3 / 3π 3 3 4 π 0 3 3 π 1 3 2 π 2 πΉ 4 = π 3 (πΉ 3 ) 3 π 3 π 4 π 4 = π 3 (π 3 ) Latincrypt, Oct 2019 Patrick Longa β Practical quantum-resistant key exchange from supersingular isogenies 26
Recommend
More recommend