+ All Categories
Home > Documents > How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange:...

How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange:...

Date post: 19-Jul-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
84
How to prove a secret isogeny Luca De Feo Université Paris Saclay – UVSQ, France June , , CTCrypt, Svetlogorsk based on joint work with J. Burdges, S. Galbraith, S. Masson, C. Petit, A. Sanso Slides online at https://defeo.lu/docet/
Transcript
Page 1: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

How to prove a secret isogeny

Luca De Feo

Université Paris Saclay – UVSQ, France

June 4, 2019, CTCrypt, Svetlogorsk

based on joint work withJ. Burdges, S. Galbraith,

S. Masson, C. Petit, A. Sanso

Slides online at https://defeo.lu/docet/

Page 2: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Elliptic curvesLetE : y2 = x 3 + ax + b be an elliptic curve. . .

P

Q

R

P +Q

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 2 / 30

Page 3: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

What’s scalar multiplication?

[n ] : P 7! P + P + � � �+ P| {z }n times

AmapE ! E ,

a groupmorphism,with finite kernel(the torsion groupE [n ] ' (Z=nZ)2),surjective (in the algebraic closure),given by rational maps of degree n2.

(Separable) isogenies, finite subgroups:

0! H ! E�! E 0 ! 0

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 3 / 30

Page 4: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

What’s ///////scalar//////////////////multiplication an isogeny?

[n ] : P 7! P + P + � � �+ P| {z }n times

AmapE ! E ,

a groupmorphism,with finite kernel(the torsion groupE [n ] ' (Z=nZ)2),surjective (in the algebraic closure),given by rational maps of degree n2.

(Separable) isogenies, finite subgroups:

0! H ! E�! E 0 ! 0

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 3 / 30

Page 5: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

What’s ///////scalar//////////////////multiplication an isogeny?

� : P 7! �(P)

AmapE ! E ,

a groupmorphism,with finite kernel(the torsion groupE [n ] ' (Z=nZ)2),surjective (in the algebraic closure),given by rational maps of degree n2.

(Separable) isogenies, finite subgroups:

0! H ! E�! E 0 ! 0

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 3 / 30

Page 6: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

What’s ///////scalar//////////////////multiplication an isogeny?

� : P 7! �(P)

AmapE ! E//E 0,

a groupmorphism,with finite kernel(the torsion groupE [n ] ' (Z=nZ)2),surjective (in the algebraic closure),given by rational maps of degree n2.

(Separable) isogenies, finite subgroups:

0! H ! E�! E 0 ! 0

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 3 / 30

Page 7: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

What’s ///////scalar//////////////////multiplication an isogeny?

� : P 7! �(P)

AmapE ! E//E 0,

a groupmorphism,with finite kernel(////the/////////torsion////////group /////////////////////E [n ] ' (Z=nZ)2 any finite subgroupH � E ),surjective (in the algebraic closure),given by rational maps of degree n2.

(Separable) isogenies, finite subgroups:

0! H ! E�! E 0 ! 0

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 3 / 30

Page 8: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

What’s ///////scalar//////////////////multiplication an isogeny?

� : P 7! �(P)

AmapE ! E//E 0,

a groupmorphism,with finite kernel(////the/////////torsion////////group /////////////////////E [n ] ' (Z=nZ)2 any finite subgroupH � E ),surjective (in the algebraic closure),given by rational maps of degree///n2 #H .

(Separable) isogenies, finite subgroups:

0! H ! E�! E 0 ! 0

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 3 / 30

Page 9: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

What’s ///////scalar//////////////////multiplication an isogeny?

� : P 7! �(P)

AmapE ! E//E 0,

a groupmorphism,with finite kernel(////the/////////torsion////////group /////////////////////E [n ] ' (Z=nZ)2 any finite subgroupH � E ),surjective (in the algebraic closure),given by rational maps of degree///n2 #H .

(Separable) isogenies, finite subgroups:

0! H ! E�! E 0 ! 0

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 3 / 30

Page 10: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Isogenies: an example over F11

E : y2 = x 3 + x E 0 : y2 = x 3 � 4x

�(x ; y) =

x 2 + 1

x; y

x 2 � 1x 2

!

Kernel generator in red.This is a degree 2map.Analogous to x 7! x 2 in F�q .

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 4 / 30

Page 11: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Isogenies: an example over F11

E : y2 = x 3 + x E 0 : y2 = x 3 � 4x

�(x ; y) =

x 2 + 1

x; y

x 2 � 1x 2

! Kernel generator in red.This is a degree 2map.Analogous to x 7! x 2 in F�q .

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 4 / 30

Page 12: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

P

Q

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 13: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

P

Q

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 14: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

P

Q

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 15: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

P

Q

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 16: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

P

Q

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 17: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

P

Q

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 18: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

PQ

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 19: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

PQ

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 20: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

PQ

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 21: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

PQ

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 22: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

PQ

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 23: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

PQ

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 24: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

PQ

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 25: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

PQ

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 26: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

PQ

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 27: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

PQ

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 28: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

PQ

R

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 29: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

P QR

P +Q

y2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 30: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

P Q R

P +Qy2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 31: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

PQ R

P +Qy2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 32: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

PQ R

P +Qy2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 33: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Up to isomorphism

PQ R

P +Qy2 = x 3 + ax + b �! j � 1728 4a3

4a3+27b2

j = 1728

j = 287496

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 5 / 30

Page 34: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Isogeny graphsWe look at the graph of elliptic curves withisogenies up to isomorphism. We say twoisogenies �; �0 are isomorphic if:

E E 0

E 0

�0

e

Example: Finite field, ordinary case, graph of isogenies of degree 3.

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 6 / 30

Page 35: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

The graph of isogenies of prime degree ` 6= pAll graphs are undirected (dual isogeny theorem).

Ordinarycase(isogenyvolcanoes)

Nodes can have degree 0; 1; 2 or `+ 1.I For� 50% of the primes `, graphs are just isolatedpoints;

I For other� 50%, graphs are 2-regular;I other cases only happen for finitely many `’s.

Supersingularcase (Fp)

If ` = 2 nodes have degree 1, 2 or 3;For� 50% of `, graphs are isolated points;For other� 50%, graphs are 2-regular;

Supersingularcase (Fp2 )

The graph is `+ 1-regular.There is a unique (finite) connected component madeof all supersingular curves with the same number ofpoints.

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 7 / 30

Page 36: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Isogeny graphs taxonomyComplex Multiplication (CM) graphs

Ordinary / Supersingular (Fp)Superposition of isogeny cycles(one color per degree)Isomorphic to Cayley graph of aquadratic class groupLarge automorphism groupTypical sizeO(

pp)

Used in: CSIDH

Full supersingular graphs

Supersingular (Fp2 )One isogeny degree(`+ 1)-regularTiny automorphism groupSize� p=12Used in: SIDH

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 8 / 30

Page 37: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Post-quantum isogeny primitivesSIDH (Jao, De Feo 2011)

Pronounce S–I–D–H;Based on isogeny walks in the full supersingular graph over Fp2 ;Basis for the NIST KEM candidate SIKE;Better asymptotic quantum security;Short keys, slow.

CSIDH (Couveignes 1996; Rostovtsev, Stolbunov 2006; Castryck,Lange, Martindale, Panny, Renes 2018)

Pronounce Sea–Side;Based on isogeny walks in the supersingular CM graph over Fp ;Straightforward generalization of Di�ie–Hellman;More “natural” security assumption;Shorter keys, slower.

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 9 / 30

Page 38: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

CSIDH key exchangeA set of supersingular ellipticcurves over Fp ;

A group action by acommutative class groupG ;Small degree generators ofG :degree 2, degree 3, degree 5, . . .

Key exchange:

Alice picks secreta = ga2

2 ga33 ga5

5 � � � ,Bob picks secretb = gb2

2 gb33 gb5

5 � � � ,They exchangeEA = a � E1andEB = b � E1,Shared secret isEAB =(ab) � E1 = a � EB = b � EA.

g

g�1

E1

E2

E3E4

E5

E6

E7

E8E9

E10

E11

E12

E

EA

EB

EAB

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 10 / 30

Page 39: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

CSIDH key exchangeA set of supersingular ellipticcurves over Fp ;A group action by acommutative class groupG ;

Small degree generators ofG :degree 2, degree 3, degree 5, . . .

Key exchange:

Alice picks secreta = ga2

2 ga33 ga5

5 � � � ,Bob picks secretb = gb2

2 gb33 gb5

5 � � � ,They exchangeEA = a � E1andEB = b � E1,Shared secret isEAB =(ab) � E1 = a � EB = b � EA.

g

g�1

E1

E2

E3E4

E5

E6

E7

E8E9

E10

E11

E12

E

EA

EB

EAB

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 10 / 30

Page 40: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

CSIDH key exchangeA set of supersingular ellipticcurves over Fp ;A group action by acommutative class groupG ;Small degree generators ofG :degree 2, degree 3, degree 5, . . .

Key exchange:

Alice picks secreta = ga2

2 ga33 ga5

5 � � � ,Bob picks secretb = gb2

2 gb33 gb5

5 � � � ,They exchangeEA = a � E1andEB = b � E1,Shared secret isEAB =(ab) � E1 = a � EB = b � EA.

g

g�1

E1

E2

E3E4

E5

E6

E7

E8E9

E10

E11

E12

E

EA

EB

EAB

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 10 / 30

Page 41: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

CSIDH key exchangeA set of supersingular ellipticcurves over Fp ;A group action by acommutative class groupG ;Small degree generators ofG :degree 2, degree 3, degree 5, . . .

Key exchange:Alice picks secreta = ga2

2 ga33 ga5

5 � � � ,

Bob picks secretb = gb2

2 gb33 gb5

5 � � � ,They exchangeEA = a � E1andEB = b � E1,Shared secret isEAB =(ab) � E1 = a � EB = b � EA.

g

g�1

E1

E2

E3E4

E5

E6

E7

E8E9

E10

E11

E12

E

EA

EB

EAB

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 10 / 30

Page 42: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

CSIDH key exchangeA set of supersingular ellipticcurves over Fp ;A group action by acommutative class groupG ;Small degree generators ofG :degree 2, degree 3, degree 5, . . .

Key exchange:Alice picks secreta = ga2

2 ga33 ga5

5 � � � ,Bob picks secretb = gb2

2 gb33 gb5

5 � � � ,

They exchangeEA = a � E1andEB = b � E1,Shared secret isEAB =(ab) � E1 = a � EB = b � EA.

g

g�1

E1

E2

E3E4

E5

E6

E7

E8E9

E10

E11

E12

E

EA

EB

EAB

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 10 / 30

Page 43: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

CSIDH key exchangeA set of supersingular ellipticcurves over Fp ;A group action by acommutative class groupG ;Small degree generators ofG :degree 2, degree 3, degree 5, . . .

Key exchange:Alice picks secreta = ga2

2 ga33 ga5

5 � � � ,Bob picks secretb = gb2

2 gb33 gb5

5 � � � ,They exchangeEA = a � E1andEB = b � E1,

Shared secret isEAB =(ab) � E1 = a � EB = b � EA.

g

g�1

E1

E2

E3E4

E5

E6

E7

E8E9

E10

E11

E12

E

EA

EB

EAB

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 10 / 30

Page 44: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

CSIDH key exchangeA set of supersingular ellipticcurves over Fp ;A group action by acommutative class groupG ;Small degree generators ofG :degree 2, degree 3, degree 5, . . .

Key exchange:Alice picks secreta = ga2

2 ga33 ga5

5 � � � ,Bob picks secretb = gb2

2 gb33 gb5

5 � � � ,They exchangeEA = a � E1andEB = b � E1,Shared secret isEAB =(ab) � E1 = a � EB = b � EA.

g

g�1

E1

E2

E3E4

E5

E6

E7

E8E9

E10

E11

E12

E

EA

EB

EAB

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 10 / 30

Page 45: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

SIDH key exchangeGood news: there is no action of a commutative class group.Bad news: there is no action of a commutative class group.

Idea: Let Alice and Bob walk in two di�erent isogeny graphs on thesame vertex set.

Figure: 2- and 3-isogenygraphs on F972 .

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 11 / 30

Page 46: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

SIDH key exchangeGood news: there is no action of a commutative class group.Bad news: there is no action of a commutative class group.

Idea: Let Alice and Bob walk in two di�erent isogeny graphs on thesame vertex set.

Figure: 2- and 3-isogenygraphs on F972 .

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 11 / 30

Page 47: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

SIDH key exchangeGood news: there is no action of a commutative class group.Bad news: there is no action of a commutative class group.

Idea: Let Alice and Bob walk in two di�erent isogeny graphs on thesame vertex set.

Figure: 2- and 3-isogenygraphs on F972 .

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 11 / 30

Page 48: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

SIDH key exchangeFix small primes `A, `B ;No canonical labeling of the `A- and `B -isogeny graphs; however. . .

Walk of length eA=

Isogeny of degree `eAA

=Kernel hPi � E [`eA

A ]

ker� = hPi � E [`eAA ]

ker = hQi � E [`eBB ]

ker�0 = h (P)iker 0 = h�(Q)i

E E=hPi

E=hQi E=hP ;Qi

�0

0

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 12 / 30

Page 49: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Security assumptions

Isogeny walk problemInput Two isogenous elliptic curvesE ;E 0 over Fq .

Output A pathE ! E 0 in an isogeny graph.

SIDH problem (1)Input Elliptic curvesE ;E 0 over Fq , isogenous of degree `eA

A .Output The unique pathE ! E 0 of length eA in the `A-isogeny graph.

SIDH problem (2)Input Elliptic curvesE ;E 0 over Fq , isogenous of degree `eA

A ;The action of the isogeny onE [`eB

B ].Output The unique pathE ! E 0 of length eA in the `A-isogeny graph.

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 13 / 30

Page 50: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Why prove a secret isogeny?Public: CurvesE ;E 0

Secret: An isogeny walkE ! E 0

Why?For interactive identification;For signing messages;For validating public keys (esp. SIDH);More. . .

Some propertiesZero knowledge

Statistical Computational Quantum resistance SuccinctnessCSIDH X X

SIDH X X

Pairings X

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 14 / 30

Page 51: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

A�-protocol from Di�ie–Hellman1

A key pair (s ; gs);

Commit to a random element gr ;Challenge with bit b 2 f0; 1g;Respond with c = r � b � smod #G ;Verify that gc(gs)b = gr .

Zero-knowledgeDoes not leak because:

c is uniformly distributed andindependent from s .

Unlike Schnorr, compatible withgroup action Di�ie–Hellman.

g gss

gr

r r � s

1Kids, do not try this at home! Use Schnorr!Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 15 / 30

Page 52: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

A�-protocol from Di�ie–Hellman1

A key pair (s ; gs);Commit to a random element gr ;

Challenge with bit b 2 f0; 1g;Respond with c = r � b � smod #G ;Verify that gc(gs)b = gr .

Zero-knowledgeDoes not leak because:

c is uniformly distributed andindependent from s .

Unlike Schnorr, compatible withgroup action Di�ie–Hellman.

g gss

gr

r

r � s

1Kids, do not try this at home! Use Schnorr!Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 15 / 30

Page 53: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

A�-protocol from Di�ie–Hellman1

A key pair (s ; gs);Commit to a random element gr ;Challenge with bit b 2 f0; 1g;

Respond with c = r � b � smod #G ;Verify that gc(gs)b = gr .

Zero-knowledgeDoes not leak because:

c is uniformly distributed andindependent from s .

Unlike Schnorr, compatible withgroup action Di�ie–Hellman.

g gss

gr

r

r � s

1Kids, do not try this at home! Use Schnorr!Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 15 / 30

Page 54: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

A�-protocol from Di�ie–Hellman1

A key pair (s ; gs);Commit to a random element gr ;Challenge with bit b 2 f0; 1g;Respond with c = r � b � smod #G ;

Verify that gc(gs)b = gr .

Zero-knowledgeDoes not leak because:

c is uniformly distributed andindependent from s .

Unlike Schnorr, compatible withgroup action Di�ie–Hellman.

g gss

gr

r r � s

1Kids, do not try this at home! Use Schnorr!Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 15 / 30

Page 55: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

A�-protocol from Di�ie–Hellman1

A key pair (s ; gs);Commit to a random element gr ;Challenge with bit b 2 f0; 1g;Respond with c = r � b � smod #G ;Verify that gc(gs)b = gr .

Zero-knowledgeDoes not leak because:

c is uniformly distributed andindependent from s .

Unlike Schnorr, compatible withgroup action Di�ie–Hellman.

g gss

gr

r r � s

1Kids, do not try this at home! Use Schnorr!Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 15 / 30

Page 56: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

A�-protocol from Di�ie–Hellman1

A key pair (s ; gs);Commit to a random element gr ;Challenge with bit b 2 f0; 1g;Respond with c = r � b � smod #G ;Verify that gc(gs)b = gr .

Zero-knowledgeDoes not leak because:

c is uniformly distributed andindependent from s .

Unlike Schnorr, compatible withgroup action Di�ie–Hellman.

g gss

gr

r r � s

1Kids, do not try this at home! Use Schnorr!Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 15 / 30

Page 57: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

A�-protocol from Di�ie–Hellman1

A key pair (s ; gs);Commit to a random element gr ;Challenge with bit b 2 f0; 1g;Respond with c = r � b � smod #G ;Verify that gc(gs)b = gr .

Zero-knowledgeDoes not leak because:

c is uniformly distributed andindependent from s .

Unlike Schnorr, compatible withgroup action Di�ie–Hellman.

E1 Esgs

Er

gr gr�s

1Kids, do not try this at home! Use Schnorr!Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 15 / 30

Page 58: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

The trouble with groups of unknown structure

In CSIDH secrets look like:g~s = gs2

2 gs33 gs5

5 � � �the elements gi are fixed,the secret is the exponent vector~s = (s2; s3; : : : ) 2 [�B ;B ]n ,secrets must be sampled in a box[�B ;B ]n “large enough”. . .

The leakage

With~s ; ~r $ [�B ;B ]n , the distribution of~r � ~s depends on the long term secret~s !

+B

�B

+B

�B

=

+B

�B

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 16 / 30

Page 59: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

The trouble with groups of unknown structure

In CSIDH secrets look like:g~s = gs2

2 gs33 gs5

5 � � �the elements gi are fixed,the secret is the exponent vector~s = (s2; s3; : : : ) 2 [�B ;B ]n ,secrets must be sampled in a box[�B ;B ]n “large enough”. . .

The leakage

With~s ; ~r $ [�B ;B ]n , the distribution of~r � ~s depends on the long term secret~s !

+B

�B

+B

�B=

+B

�B

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 16 / 30

Page 60: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

The two fixes

Compute the group structure and stop whiningCSI-FiSh: Beullens, Kleinjung and Vercauteren 2019 (eprint:2019/498)

Already suggested by Couveignes (1996) and Stolbunov (2006).Computationally intensive (subexponential parameter generation).Decent parameters, e.g.: 263 bytes, 390ms, @NIST-1.

– Technically not post-quantum.

Do like the lattice peopleSeaSign: D. and Galbraith 2019

Use Fiat–Shamir with aborts (Lyubashevsky 2009).– Huge increase in signature size and time.Compromise signature size/time with public key size (still slow).

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 17 / 30

Page 61: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Rejection sampling

Sample long term secret~s in theusual box [�B ;B ]n ,Sample ephemeral ~r in a largerbox [�(� + 1)B ; (� + 1)B ]n ,Throw away ~r � ~s if it is out of thebox [��B ; �B ]n .

Zero-knowledgeTheorem: ~r � ~s is uniformlydistributed in [��B ; �B ]n .

Problem: set � so that rejectionprobability is low.

+(� + 1)B

�(� + 1)B

+B�B

=

+�B

��B

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 18 / 30

Page 62: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Performance

For �-bit security, protocol must be repeated � times in parallel;� = �n for a rejection probability� 1=3;Signature size� �n coe�icients2 [��B ; �B ];Sign/verify time linear in k~r � ~sk1 � �2n2B .

CSIDH instantiation (NIST-1)Parameters: � = 128;n = 74;B = 5;

PK size: 64 BSK size: 32 B

Signature: 20 KiBVerify time: 10 hoursSign time: 3� verify

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 19 / 30

Page 63: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Key/signature size compromise

One key pair (~s ;Es);Challenge b 2 f0; 1g;Reveal ~r � b~s ;

! � iterations;

! Sample r $ [��nB ; �nB ].

Compromise: t-bit challenges2t key pairs (~si ;Ei );Challenge b 2 f0; 2tg;Reveal ~r � ~sb ;

! �=t iterations;

! Sample r $ [��nB=t; �nB=t].

E1

Es

~s

E1

~s1

E2~s2

E3

~s3

E4

~s4

Er

~r

~r � ~s2

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 20 / 30

Page 64: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Key/signature size compromise

One key pair (~s ;Es);Challenge b 2 f0; 1g;Reveal ~r � b~s ;

! � iterations;

! Sample r $ [��nB ; �nB ].

Compromise: t-bit challenges2t key pairs (~si ;Ei );Challenge b 2 f0; 2tg;Reveal ~r � ~sb ;

! �=t iterations;

! Sample r $ [��nB=t; �nB=t].

E1

Es

~s

E1

~s1

E2~s2

E3

~s3

E4

~s4

Er

~r

~r � ~s2

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 20 / 30

Page 65: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Key/signature size compromise

One key pair (~s ;Es);Challenge b 2 f0; 1g;Reveal ~r � b~s ;

! � iterations;

! Sample r $ [��nB ; �nB ].

Compromise: t-bit challenges2t key pairs (~si ;Ei );Challenge b 2 f0; 2tg;Reveal ~r � ~sb ;

! �=t iterations;

! Sample r $ [��nB=t; �nB=t].

E1

Es

~s

E1

~s1

E2~s2

E3

~s3

E4

~s4

Er

~r

~r � ~s2

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 20 / 30

Page 66: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Key/signature size compromise

One key pair (~s ;Es);Challenge b 2 f0; 1g;Reveal ~r � b~s ;

! � iterations;

! Sample r $ [��nB ; �nB ].

Compromise: t-bit challenges2t key pairs (~si ;Ei );Challenge b 2 f0; 2tg;Reveal ~r � ~sb ;

! �=t iterations;

! Sample r $ [��nB=t; �nB=t].

E1

Es

~s

E1

~s1

E2~s2

E3

~s3

E4

~s4

Er

~r

~r � ~s2

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 20 / 30

Page 67: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Public key compression

E1

E1

H (E1)

E2

H (E2)

E3

H (E3)

E4

H (E4)

H (�; �)

H (�; �)

H (�; �) = pk

Construct Merkle tree on top of public keys, root is the new public key;Include Merkle proof in the signature.

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 21 / 30

Page 68: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Public key compression

E1

E1 H (E1)

E2 H (E2)

E3 H (E3)

E4 H (E4)

H (�; �)

H (�; �)

H (�; �) = pk

Construct Merkle tree on top of public keys, root is the new public key;

Include Merkle proof in the signature.

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 21 / 30

Page 69: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Public key compression

E1

E1 H (E1)

E2 H (E2)

E3 H (E3)

E4 H (E4)

H (�; �)

H (�; �)

H (�; �) = pk

Construct Merkle tree on top of public keys, root is the new public key;Include Merkle proof in the signature.

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 21 / 30

Page 70: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

SeaSign Performance (NIST-1)

t = 1 bitchallenges

t = 16 bitschallenges PK compression

Sig size 20 KiB 978 B 3136 BPK size 64 B 4 MiB 32 BSK size 32 B 16 B 1 MiBEst. keygen time 30ms 30mins 30minsEst. sign time 30 hours 6 mins 6 minsEst. verify time 10 hours 2 mins 2 minsAsymptotic sig size O(�2 log(�)) O(�t log(�)) O(�2t)

Recent speed/size compromises by Decru, Panny and VercauterenSig size 36 KiB 2 KiB —Est. sign time 30mins 80 s —Est. verify time 20mins 20 s —

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 22 / 30

Page 71: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

A�-protocol for SIDH

E E=hSi

E=hPi E=hP ;Si

?

? ?

13 -soundness

Secret � of degree `eAA .

1 Choose a random pointP 2 E [`eBB ], compute the diagram;

2 Publish the curvesE=hPi andE=hP ;Si;3 The verifier challenges to reveal one out of the 3 sides

I Isogenies ; 0 (degree `eBB ) unrelated to secret;

I Isogeny �0 conjectured to not reveal useful information on �.

Improving to 12 -soundness

Reveal ; 0 simultaneously;Reveals action of � onE [`eB

B ] ) Stronger security assumption.

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 23 / 30

Page 72: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

A�-protocol for SIDH

E E=hSi

E=hPi E=hP ;Si

?

? ?13 -soundness

Secret � of degree `eAA .

1 Choose a random pointP 2 E [`eBB ], compute the diagram;

2 Publish the curvesE=hPi andE=hP ;Si;

3 The verifier challenges to reveal one out of the 3 sides

I Isogenies ; 0 (degree `eBB ) unrelated to secret;

I Isogeny �0 conjectured to not reveal useful information on �.

Improving to 12 -soundness

Reveal ; 0 simultaneously;Reveals action of � onE [`eB

B ] ) Stronger security assumption.

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 23 / 30

Page 73: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

A�-protocol for SIDH

E E=hSi

E=hPi E=hP ;Si

?

?13 -soundness

Secret � of degree `eAA .

1 Choose a random pointP 2 E [`eBB ], compute the diagram;

2 Publish the curvesE=hPi andE=hP ;Si;3 The verifier challenges to reveal one out of the 3 sides

I Isogenies ; 0 (degree `eBB ) unrelated to secret;

I Isogeny �0 conjectured to not reveal useful information on �.

Improving to 12 -soundness

Reveal ; 0 simultaneously;Reveals action of � onE [`eB

B ] ) Stronger security assumption.

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 23 / 30

Page 74: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

A�-protocol for SIDH

E E=hSi

E=hPi E=hP ;Si

?

? 013 -soundness

Secret � of degree `eAA .

1 Choose a random pointP 2 E [`eBB ], compute the diagram;

2 Publish the curvesE=hPi andE=hP ;Si;3 The verifier challenges to reveal one out of the 3 sides

I Isogenies ; 0 (degree `eBB ) unrelated to secret;

I Isogeny �0 conjectured to not reveal useful information on �.

Improving to 12 -soundness

Reveal ; 0 simultaneously;Reveals action of � onE [`eB

B ] ) Stronger security assumption.

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 23 / 30

Page 75: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

A�-protocol for SIDH

E E=hSi

E=hPi E=hP ;Si

�0

? ?13 -soundness

Secret � of degree `eAA .

1 Choose a random pointP 2 E [`eBB ], compute the diagram;

2 Publish the curvesE=hPi andE=hP ;Si;3 The verifier challenges to reveal one out of the 3 sides

I Isogenies ; 0 (degree `eBB ) unrelated to secret;

I Isogeny �0 conjectured to not reveal useful information on �.

Improving to 12 -soundness

Reveal ; 0 simultaneously;Reveals action of � onE [`eB

B ] ) Stronger security assumption.

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 23 / 30

Page 76: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

A�-protocol for SIDH

E E=hSi

E=hPi E=hP ;Si

?

013 -soundness

Secret � of degree `eAA .

1 Choose a random pointP 2 E [`eBB ], compute the diagram;

2 Publish the curvesE=hPi andE=hP ;Si;3 The verifier challenges to reveal one out of the 3 sides

I Isogenies ; 0 (degree `eBB ) unrelated to secret;

I Isogeny �0 conjectured to not reveal useful information on �.

Improving to 12 -soundness

Reveal ; 0 simultaneously;Reveals action of � onE [`eB

B ] ) Stronger security assumption.

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 23 / 30

Page 77: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

SIDH signature performance (NIST-1)

According to Yoo, Azarderakhsh, Jalali, Jao and Vladimir Soukharev 2017:Size: � 100KB ,Time: seconds.

Galbraith, Petit and Silva 2017Concept similar to CSI-FiSh: exploits known structure ofendomorphism ring;Statistical zero knowledge (under heuristic assumptions);Based on the generic isogeny walk problem(requires special starting curve, though);Size/performance comparable to Yoo et al. (and possibly slower).

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 24 / 30

Page 78: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

SIDH signature performance (NIST-1)

According to Yoo, Azarderakhsh, Jalali, Jao and Vladimir Soukharev 2017:Size: � 100KB ,Time: seconds.

Galbraith, Petit and Silva 2017Concept similar to CSI-FiSh: exploits known structure ofendomorphism ring;Statistical zero knowledge (under heuristic assumptions);Based on the generic isogeny walk problem(requires special starting curve, though);Size/performance comparable to Yoo et al. (and possibly slower).

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 24 / 30

Page 79: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Weil pairing and isogenies

TheoremLet � : E ! E 0 be an isogeny and �̂ : E 0 ! E its dual.Let eN be the Weil pairing ofE and e 0N that ofE 0. Then, for

eN (P ; �̂(Q)) = e 0N (�(P);Q);

for anyP 2 E [N ] andQ 2 E 0[N ].

Corollary

e 0N (�(P); �(Q)) = eN (P ;Q)deg �:

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 25 / 30

Page 80: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Refresher: Boneh–Lynn–Shacham (BLS) signatures

Setup: Elliptic curveE=Fp , s.tN j#E(Fp) for a large primeN ,(Weil) pairing eN : E [N ]� E [N ]! Fpk for some smallembedding degree k ,A decompositionE [N ] = X1 �X2, withX1 = hPi.A hash functionH : f0; 1g� ! X2.

Private key: s 2 Z=NZ.Public key: sP .

Sign: m 7! sH (m).Verifiy: eN (P ; sH (m)) = eN (sP ;H (m)).

X1 �X2 X1 �X2

X1 �X2 Fpk

[s ]� 1

1� [s ] eN

eN

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 26 / 30

Page 81: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

US patent 8,250,367 (Broker, Charles and Lauter 2012)

Signatures from isogenies + pairingsReplace the secret [s ] : E ! E with an isogeny � : E ! E 0;Define decompositions

E [N ] = X1 �X2; E 0[N ] = Y1 �Y2;

s.t. �(X1) = Y1 and �(X2) = Y2;Define a hash functionH : f0; 1g� ! Y2.

X1 �Y2 Y1 �Y2

X1 �X2 Fpk

�� 1

1� �̂ e 0

N

eN

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 27 / 30

Page 82: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Pairing proofs: what for?

Non-interactive, not post-quantum, not zero knowledge;Useful for (partially) validating SIDH public keys;Succinct: proof size, verification time independent of walk length!

Application: Verifiable Delay FunctionsD., Masson, Petit and Sanso 2019 (eprint:2019/166):

Similar to time-lock puzzles;No secret: everything is public;Generating proof takes configurable sequential timeT ;Verifying proof takes time independent fromT ;Security assumptions very di�erent and new!Applications to blockchains: randomness beacons, consensusprotocols, . . .

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 28 / 30

Page 83: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Conclusion

Di�erent isogeny graphs enable di�erent styles of proofs, di�erentsecurity assumptions.Post-quantum isogeny signatures are still far from practical.Practical isogeny signatures do exists (CSI-FiSh); you can start usingthem now if you are an isogeny hippie, but they do not scale.Pairing-based proofs are usable, but not interesting for signatures:look into succinctness, instead!Tons of open questions on classical and quantum security, on securityproofs, and on constructions.Proofs can be chained easily: useful for multi-party supersingularcurve generation (work in progress with J. Burdges).The isogenista dream: a one-pass post-quantum signature schemebased on walks in isogeny graphs.

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 29 / 30

Page 84: How to prove a secret isogeny · 2019-12-04 · degree2,degree3,degree5,... Keyexchange: Alicepickssecret a = ga2 2 g a3 3 g a5 5, Bobpickssecret b = gb2 2 g b3 3 g b5 5, TheyexchangeE

Thank you

https://defeo.lu/

@luca_defeo

Luca De Feo (UVSQ) How to prove a secret isogeny https://defeo.lu/docet 30 / 30


Recommended