Faster Isogeny-Based Compressed Key Agreement Gustavo H. M. Zanon, - - PowerPoint PPT Presentation

faster isogeny based compressed key agreement
SMART_READER_LITE
LIVE PREVIEW

Faster Isogeny-Based Compressed Key Agreement Gustavo H. M. Zanon, - - PowerPoint PPT Presentation

Faster Isogeny-Based Compressed Key Agreement Gustavo H. M. Zanon, Marcos A. Simplicio Jr, Geovandro C. C. F. Pereira , Javad Doliskani, and Paulo S. L. M. Barreto. 1 REVI EW : SI DH AND COMPRESSED KEYS 2 Isogeny-based Crypto n SIDH:


slide-1
SLIDE 1

Faster Isogeny-Based Compressed Key Agreement

Gustavo H. M. Zanon, Marcos A. Simplicio Jr, Geovandro C. C. F. Pereira, Javad Doliskani, and Paulo S. L. M. Barreto.

1

slide-2
SLIDE 2

REVI EW : SI DH AND COMPRESSED KEYS

2

slide-3
SLIDE 3

Isogeny-based Crypto

n SIDH: proposed replacement for DH-based elliptic

curves in a post-quantum world.

n Smallest post-quantum public keys (< 200 bytes)

¨boosted by key compression techniques ¨applications with low bandwidth requirements

n Downside:

¨≈2 order of magnitude slower than Fourℚ-based DH or

  • ther fast post-quantum KEM schemes (NewHope/ NTRU).

3

slide-4
SLIDE 4

n ! = 2$ ⋅ 3' − 1 for post-quantum sec. level ≈ 128 bits

¨ Previous: 751-bit prime for , = 372, / = 239 ¨ [ 2018] Adj et al. suggest ≈ 448-bit primes are enough

n 23/567 ∶ 9:; = <= + ?<; + < a supersingular Montgomery curve

  • f order p + 1 ; = 2;$3;'

¨ A

B, CB = 2(567)[2$], AH, CH = 2(567)[3']

n User private key: I ∈K ℤ/ℓNℤ for ℓ ∈ 2,3 , O ∈ {,, /} n User public key: curve RS,T and points U V , U W .

SIDH Parameter Setting

4

slide-5
SLIDE 5

n ! = 2$ ⋅ 3' − 1 for post-quantum sec. level ≈ 128 bits

¨ Previous: 751-bit prime for , = 372, / = 239 ¨ [ 2018] Adj et al. suggest ≈ 448-bit primes are enough

n 23/567 ∶ 9:; = <= + ?<; + < a supersingular Montgomery curve

  • f order p + 1 ; = 2;$3;'

¨ A

B, CB = 2(567)[2$], AH, CH = 2(567)[3']

n User private key: I ∈K ℤ/ℓNℤ for ℓ ∈ 2,3 , O ∈ {,, /} n User public key: curve RS,T and points U V , U W .

SIDH Parameter Setting

5

slide-6
SLIDE 6

n ! = 2$ ⋅ 3' − 1 for post-quantum sec. level ≈ 128 bits

¨ Previous: 751-bit prime for , = 372, / = 239 ¨ [ 2018] Adj et al. suggest ≈ 448-bit primes are enough

n 23/567 ∶ 9:; = <= + ?<; + < a supersingular Montgomery curve

  • f order p + 1 ; = 2;$3;'

¨ A

B, CB = 2(567)[2$], AH, CH = 2(567)[3']

n User private key: I ∈K ℤ/ℓNℤ for ℓ ∈ 2,3 , O ∈ {,, /} n User public key: curve RS,T = U(23) and points V W , V X ∈

2B,H.

SIDH Parameter Setting

6

slide-7
SLIDE 7

SIDH Public Key Compression

n Goal: transmit public key {"#,%, & ' , &())}

"#,%/-./: 123 = 56 + 853 + 5 & ' , & ) ∈ E;,<

7

slide-8
SLIDE 8

SIDH Public Key Compression

n [ 2011] Jao et al.’s public key representation:

!, # , $% & , $%(() ∈ +,-

  • Pub. Key size: . /01 2 bits

34,5/+,-: #89 = ;< + !;9 + ; % & , % ( ∈ E?,@

8

slide-9
SLIDE 9

SIDH Public Key Compression

n [ 2016] Azarderakhsh et al.’s key compression:

!"#,%# ← '()*,+) isomorphic curve '()*,+) )*,+/./0: 234 = 67 + 964 + 6 : ; , : < ∈ E?,@

9

slide-10
SLIDE 10

SIDH Public Key Compression

n [ 2016] Azarderakhsh et al.’s key compression:

! "#,% ∈ '(): * +,- . bits vs #, % ∈ '(): / +,- . bits

* 012 . bits saved

"#,%/'(): 567 = 9: + <97 + 9 = > , = ? ∈ EA,B

10

slide-11
SLIDE 11

SIDH Public Key Compression

n [ 2016] Azarderakhsh et al.’s key compression:

There is a canonical basis {"#, "%} such that

"#, "% = /0,1 33 Idea: express 4 5 = 6#"# + 6%"% 4 8 = 9#"# + 9%"%

:(<=,>) <=,>/ABC: EF% = GH + IG% + G 4 5 , 4 8 ∈ /0,1

11

slide-12
SLIDE 12

SIDH Public Key Compression

n [ 2016] Azarderakhsh et al.’s key compression:

There is a canonical basis {"#, "%} such that

"#, "% = /0,1 33 Idea: express 4 5 = 6#"# + 6%"% 4 8 = 9#"# + 9%"%

:(<=,>) <=,>/ABC: EF% = GH + IG% + G 4 5 , 4 8 ∈ /0,1

12

  • Internal product: pairing
  • Coeff. extraction: DLOG

Linear algebra tasks

  • Build a basis
slide-13
SLIDE 13

SIDH Public Key Compression

n [ 2016] Azarderakhsh et al.’s key compression:

Find !", !$: Expensive scalar multiplications involved %('(,)) Compression (1/ 3):

  • find a basis {!", !$}

'(,)/./0: 23$ = 56 + 85$ + 5 9 : , 9 ; ∈ =>,?

13

9 : = @"!" + @$!$ 9 ; = A"!" + A$!$

slide-14
SLIDE 14

SIDH Public Key Compression

! " = $%&% + $(&( ! ) = *%&% + *(&( + = ,-. /0, /2 +3 = ,-. /0, 4 5 +0 = ,-. /2, 4 5 +2 = ,-. /0, 4 6 +- = ,-. /2, 4 6

n [ 2016] Azarderakhsh et al.’s key compression:

7(9:,;) Compression (2/ 3):

  • prepare DLOG instances
  • Cost: 5 pairings

9:,;/>?@: BC( = DE + FD( + D ! " , ! ) ∈ HI,J

21

slide-15
SLIDE 15

SIDH Public Key Compression

n [ 2016] Azarderakhsh et al.’s key compression:

! " = $%&% + $(&( ! ) = *%&% + *(&( +, = − ./01 1, +2 = ./01 13 4, = − ./01 15 42 = ./01 12 Compression (3/ 3):

  • Compute $6’s and *6’s
  • Cost: 4 order 38 DLOGs

(Pohlig-Hellman) 9(;<,>) ;<,>/ABC: EF( = GH + IG( + G ! " , ! ) ∈ KL,M

22

slide-16
SLIDE 16

SIDH Public Key Compression

n [ 2016] Azarderakhsh et al.’s key compression:

!(#$,&) (), (*, +), +* ∈ ℤ./ #$,&/123: 567 = 9. + ;97 + 9 < = , < > ∈ ?@,A

23

slide-17
SLIDE 17

SIDH Public Key Compression

n [ 2016] Azarderakhsh et al.’s key compression:

!(#$,&) (), (*, +), +* ∈ ℤ./ 0: * 123 4 bits Vs 56 7 , 56(8) ∈ 9:;: < 123 4 bits

* =>? 4 bits saved

#$,&/A:;: CDE = 5. + H5E + 5 I J , I K ∈ LM,N

24

slide-18
SLIDE 18

SIDH Public Key Compression

n [ 2016] Azarderakhsh et al.’s key compression:

Decompression

  • Compute ⟨"#, "%⟩ = ()*,+*[3.]
  • Recover points:

0 1 ← 34"# + 36"% 0 7 ← 84"# + 86"%

  • Cost: 4 scalar muls.

9(;<,=) 34, 36, 84, 86 ;<,=/@AB: DE% = FG + HF% + F I J , I K ∈ (),+

25

slide-19
SLIDE 19

SIDH Public Key Compression

n [ 2016] Azarderakhsh et al.’s key compression:

! "#,% ∈ '(): * +,- . bits /0, /*, 10, 1* ∈ ℤ34: * +,- . bits vs #, % ∈ 5(): 6 +,- . bits 7 8(:) , 7 8 < : 6 +,- . bits

Public key size: 6 =>? . bits

  • Keys shrunk by 2× J
  • Com pression tim e > 0C× KEX L

26

slide-20
SLIDE 20

SIDH Public Key Compression

n [ 2017] Costello et al. key compression:

!/#$%: '() = +, + .+) + + / 0 , / 2 ∈ 4 Further compression

  • Bob recovers 5 6 , 5 7 to compute the kernel

8 = ⟨5 6 + :;5 7 ⟩ = => + :;?>)A> + (=)+:;?>)A)

  • wlog. assume => is invertible CDE 3G (otherwise ?> is), then

=>

H>8 =

1 + JK?>=>

H> A> + (=)=> H> + JK?)=> H>)A) = 8

L(4M,;) NO, NP, QO, QP

27

slide-21
SLIDE 21

SIDH Public Key Compression

n [ 2017] Costello et al. key compression:

!/#$%: '() = +, + .+) + + / 0 , / 2 ∈ 4 Further compression

  • After recovering 5 6 , 5 7 , Bob computes the kernel

8 = ⟨5 6 + :;5 7 ⟩ = => + :;?>)A> + (=)+:;?>)A)

  • wlog. assume => is invertible CDE 3G (otherwise ?> is), then

=>

H>8 =

1 + JK?>=>

H> A> + (=)=> H> + JK?)=> H>)A) = 8

L(4M,;) NO, NP, QO, QP

28

slide-22
SLIDE 22

SIDH Public Key Compression

n [ 2017] Costello et al. key compression:

!/#$%: '() = +, + .+) + + / 0 , / 2 ∈ 4 Further compression

  • After recovering 5 6 , 5 7 , Bob computes the kernel

8 = ⟨5 6 + :;5 7 ⟩ = => + :;?>)A> + (=)+:;?>)A)

  • wlog. assume => is invertible CDE 3G (otherwise ?> is), then

=>

H>8 =

1 + JK?>=>

H> A> + (=)=> H> + JK?)=> H>)A) = 8

L(4M,;) NO, NP, QO, QP

29

slide-23
SLIDE 23

SIDH Public Key Compression

n [ 2017] Costello et al.’s key compression:

!/#$%: '() = +, + .+) + + / 0 , / 2 ∈ 4 3 elements in ℤ,6 are enough: 7 = 89:9

;9 ∈ ℤ,6

< = :):9

;9 ∈ ℤ,6

= = 8):9

;9 ∈ ℤ,6

Plus 1 bit about invertibility of :9 or 89

>, ?, @ ∈ ℤ,6 A: A/B CDE F bits

30

slide-24
SLIDE 24

SIDH Public Key Compression

n 2017, Costello et al.’s key compression:

!/#$%: '() = +, + .+) + + / 0 , / 2 ∈ 4

To compress / 0 , / 2 :

  • generate basis 56, 5)
  • compute 5 pairings
  • NB: cost of 5-way Monty Inv.: 30 muls (report)
  • compute 4 DLOGs, i.e., {86, 8), 96, 9)}
  • compute ;, <, = from the quadruple above

Optimizations on steps 1, 2 and 3

  • f compression and
  • n decompression.

31

slide-25
SLIDE 25

SIDH Public Key Compression

n 2017, Costello et al.’s key compression:

!(#) ∈ &'(: ) *+, - bits ., 0, 1 ∈ ℤ34 3: 5/) *+, - bits 7/8'(: :;< = >3 + @>< + > A B , A C ∈ # Public key size: 5. E FGH - bits

  • Ex.: IJ = 328 bytes for I = 751 bits

Compression time ≈ R× KEX and decompression ≈ T. U× KEX

32

slide-26
SLIDE 26

n Is the current (de)compression performance acceptable?

SIDH Public Key Compression

33

slide-27
SLIDE 27

n Is the current (de)compression performance acceptable? n Current state of classical elliptic curves:

¨ CHES’2 0 1 7 * : speed records for ECDH on embedded devices using

curve Fourℚ.

n Compression = free (similar to original SIDH, send one coordinate of the point) n Decompression = 0.04x key agreement

SIDH Public Key Compression

* Liu Z, Longa P, Pereira G, Reparaz O, Seo H. FourQ on embedded devices with strong countermeasures against side-channel attacks.

34

slide-28
SLIDE 28

n Is the current (de)compression performance acceptable? n Current state of classical elliptic curves:

¨ CHES’2 0 1 7 * : speed records for ECDH on embedded devices using

curve Fourℚ.

n Compression = free (similar to original SIDH, send one coordinate of the point) n Decompression = 0.04x key agreement

n This w ork’s goal is reduce this gap

¨ Detect and improve the remaining SIDH key compression bottlenecks.

SIDH Public Key Compression

* Liu Z, Longa P, Pereira G, Reparaz O, Seo H. FourQ on embedded devices with strong countermeasures against side-channel attacks.

35

slide-29
SLIDE 29

n Most costly operations:

I.

Computing a basis !", !$

II.

Computing 5 pairings

  • III. Computing 4 discrete logs

Faster SIDH Public Key Compression

36

slide-30
SLIDE 30

n Most costly operations:

I.

Computing a basis !", !$

II.

Computing 5 pairings

  • III. Computing 4 discrete logs

n New algorithm s to address the above bottlenecks.

Faster SIDH Public Key Compression

37

slide-31
SLIDE 31

n Most costly operations:

I.

Computing a basis !", !$

I I . Com puting 5 pairings I I I . Com puting 4 discrete logs

n New algorithm s to address the above bottlenecks.

Ø Reverse basis decom position

Ø Pairings reduced to 4 instead of 5 for both sides. Ø 2 multiplications by large cofactor 3& saved in the binary case. Ø Allows for faster discrete logs.: precompute (single, shared) table offline.

Faster SIDH Public Key Compression

38

slide-32
SLIDE 32

Reverse basis decomposition

n Previous works express the public key as

! " = $%&% + $(&( ! ) = *%&% + *(&(

n or in matrix notation

!(") !()) = $% $( *% *( &% &(

n Since {! " , ! ) } also form a basis, matrix @ is invertible and changing roles:

&% &( = F% F( G% G( !(") !())

n Id

Idea: revert the process by starting from @K% and recovering @ from it? @(M( @K%

39

slide-33
SLIDE 33

Reverse basis decomposition

n Previous works express the public key as

! " = $%&% + $(&( ! ) = *%&% + *(&(

n or in matrix notation

!(") !()) = $% $( *% *( &% &(

n Since {! " , ! ) } also form a basis, matrix @ is invertible and changing roles:

&% &( = F% F( G% G( !(") !())

n Id

Idea: revert the process by starting from @K% and recovering @ from it? @(M( @K%

40

slide-34
SLIDE 34

n Express {"#, "%} in basis {' ( , '(*)}

Reverse basis decomposition

"# = -#'(() + -%'(*) "% = /#'(() + /%'(*) 0 ' ( , "# = 0('((), -#'(() + -%'(*)) = 0 '((), -#'(() ⋅ 0 '((), -%'(*) = 0 '((), '(() 23 ⋅ 0 '((), '(*) 24 = 0 '((), '(*) 24

41

slide-35
SLIDE 35

n Express {"#, "%} in basis {' ( , '(*)}

"# = -#'(() + -%'(*) "% = /#'(() + /%'(*) 0 ' ( , "# = 0('((), -#'(() + -%'(*)) = 0 '((), -#'(() ⋅ 0 '((), -%'(*) = 0 '((), '(() 23 ⋅ 0 '((), '(*) 24 = 0 '((), '(*) 24

Reverse basis decomposition

42

slide-36
SLIDE 36

n Express {"#, "%} in basis {' ( , '(*)}

"# = -#'(() + -%'(*) "% = /#'(() + /%'(*) 0 ' ( , "# = 0('((), -#'(() + -%'(*)) = 0 '((), -#'(() ⋅ 0 '((), -%'(*) = 0 '((), '(() 23 ⋅ 0 '((), '(*) 24 = 5 6(7), 6(8) 24

Reverse basis decomposition

43

slide-37
SLIDE 37

n Express {"#, "%} in basis {' ( , '(*)}

"# = -#'(() + -%'(*) "% = /#'(() + /%'(*) 0 ' ( , "# = 0('((), -#'(() + -%'(*)) = 0 '((), -#'(() ⋅ 0 '((), -%'(*) = 0 '((), '(() 23 ⋅ 0 '((), '(*) 24 = 5 6(7), 6(8) 24 9

ℎ = 5 6(7), 6(8) = 5 7, ; 6 ∘ 6(8)

Reverse basis decomposition

44

slide-38
SLIDE 38

n Express {"#, "%} in basis {' ( , '(*)}

"# = -#'(() + -%'(*) "% = /#'(() + /%'(*) 0 ' ( , "# = 0('((), -#'(() + -%'(*)) = 0 '((), -#'(() ⋅ 0 '((), -%'(*) = 0 '((), '(() 23 ⋅ 0 '((), '(*) 24 = 5 6(7), 6(8) 24 9

ℎ = 5 6(7), 6(8) = 5 7, ; 6 ∘ 6(8) = 5 7, [>5? 6]8

Reverse basis decomposition

45

slide-39
SLIDE 39

n Express {"#, "%} in basis {' ( , '(*)}

"# = -#'(() + -%'(*) "% = /#'(() + /%'(*) 0 ' ( , "# = 0('((), -#'(() + -%'(*)) = 0 '((), -#'(() ⋅ 0 '((), -%'(*) = 0 '((), '(() 23 ⋅ 0 '((), '(*) 24 = 5 6(7), 6(8) 24 9

ℎ = 5 6(7), 6(8) = 5 7, ; 6 ∘ 6(8) = 5 7, [>5? 6]8 = 5 7, 8 >5? 6

Reverse basis decomposition

46

slide-40
SLIDE 40

n Express {"#, "%} in basis {' ( , '(*)}

"# = -#'(() + -%'(*) "% = /#'(() + /%'(*) 0 ' ( , "# = 0('((), -#'(() + -%'(*)) = 0 '((), -#'(() ⋅ 0 '((), -%'(*) = 0 '((), '(() 23 ⋅ 0 '((), '(*) 24 = 5 6(7), 6(8) 24 9

ℎ = 5 6(7), 6(8) = 5 7, ; 6 ∘ 6(8) = 5 7, [>5? 6]8 = 5 7, 8 >5? 6 ℎ only depends on public information ((, *, deg '), thus can be precomputed once and for all and made available in the public parameters.

Reverse basis decomposition

47

slide-41
SLIDE 41

n Express {"#, "%} in basis {' ( , '(*)}

"# = -#'(() + -%'(*) "% = /#'(() + /%'(*) 0 = 1 2(3), 2(4) 05 = 1 2(3), 67 07 = 1 2 3 , 68 08 = 1 2 4 , 67 09 = 1 2(4), 68

  • #, -%, /#, /% = log={ℎ? , ℎ#, ℎ%, ℎ@}

fixed in the public params 4 pairings computed at runtime (NB: cost of 4-way Monty inv.: 12 muls)

Reverse basis decomposition

48

slide-42
SLIDE 42

n Express {"#, "%} in basis {' ( , '(*)}

"# = -#'(() + -%'(*) "% = /#'(() + /%'(*) 0 = 1 2(3), 2(4) 05 = 1 2(3), 67 07 = 1 2 3 , 68 08 = 1 2 4 , 67 09 = 1 2(4), 68

  • #, -%, /#, /% = log={ℎ? , ℎ#, ℎ%, ℎ@}

Reverse basis decomposition

recover AB# fixed in the public params

49

4 pairings computed at runtime (NB: cost of 4-way Monty inv.: 12 muls)

slide-43
SLIDE 43

n Reverting to ! = !#$ #$, i.e., recover &', &(, )', )(:

&' &( )' )( = 1 Δ ,- −,$ −/- /$ where Δ = det !#$ = /$,- − /-,$ (45, ℓ7)

Reverse basis decomposition

50

slide-44
SLIDE 44

n Reverting to ! = !#$ #$, i.e., recover &', &(, )', )(:

&' &( )' )( = 1 Δ ,- −,$ −/- /$ where Δ = det !#$ = /$,- − /-,$ (45, ℓ7)

n But Alice only sends (assuming 9$ invertible):

: = ;$9$

#$

< = 9-9$

#$

= = ;-9$

#$

Reverse basis decomposition

51

slide-45
SLIDE 45

n Reverting to ! = !#$ #$, i.e., recover &', &(, )', )(:

&' &( )' )( = 1 Δ ,- −,$ −/- /$ where Δ = det !#$ = /$,- − /-,$ (45, ℓ7)

n But Alice only sends (assuming 9$ invertible):

: = − /- Δ ⋅ Δ ,- = − /- ,- < = − ,$ Δ ⋅ Δ ,- = − ,$ ,- = = /$ Δ ⋅ Δ ,- = /$ ,-

Reverse basis decomposition

1 inv. + 3 muls. (45, ℓ7) Same operations as before

52

slide-46
SLIDE 46

n Swapped (reduced) Tate pairing arguments

Reverse basis decomposition

ℎ" = $ %('), *+ ℎ+ = $ % ' , *, ℎ, = $ % - , *+ ℎ. = $ %(-), *, such that [ℎ]*1

2= *1

34′ = 64′7(8) + 6:′7(;) 3:′ = <4′7(8) + <:′7(;) [=>]6?

2= 6?, => <? 2 = <?

53

slide-47
SLIDE 47

n Swapped (reduced) Tate pairing arguments n Second argument do not need to be cofactor reduced

Reverse basis decomposition

ℎ" = $ %('), *′, ℎ, = $ % ' , *′- ℎ- = $ % . , *′, ℎ/ = $ %(.), *′- such that [ℎ]*2

3= *2

45′ = 65′7(8) + 6:′7(;) 4:′ = <5′7(8) + <:′7(;) [=>]6?

3= 6?, => <? 3 = <?

54

slide-48
SLIDE 48

n Swapped (reduced) Tate pairing arguments n Second argument do not need to be cofactor reduced

Reverse basis decomposition

DLOGs are up to cofactor ℎ"# Simply post-multiply by ℎ in ℤℓ& ℎ' = ) *(,), /′# ℎ# = ) * , , /′1 ℎ1 = ) * 2 , /′# ℎ3 = ) *(2), /′1 such that [ℎ]/6

7= /6

89′ = :9′*(,) + :<′*(2) 8<′ = =9′*(,) + =<′*(2) s.t. [ℎ]>6

7= >6, ℎ ?6 7 = ?6

55

slide-49
SLIDE 49

n Swapped (reduced) Tate pairing arguments n Second argument do not need to be cofactor reduced

n Two scalar muls. by 3" saved in the binary torsion using Entangled Basis.

Reverse basis decomposition

DLOGs are up to cofactor ℎ$% Simply post-multiply by ℎ in ℤℓ( ℎ) = + ,(.), 1′% ℎ% = + , . , 1′3 ℎ3 = + , 4 , 1′% ℎ5 = + ,(4), 1′3 such that [ℎ]18

9= 18

:;′ = <;′,(.) + <>′,(4) :>′ = ?;′,(.) + ?>′,(4) s.t. [ℎ]@8

9= @8, ℎ A8 9 = A8

56

slide-50
SLIDE 50

n Most costly operations:

I .

Com puting a basis !", !$

II.

Computing 5 pairings

  • III. Computing 4 discrete logs

n New algorithm s to address the above bottlenecks.

I .

Entangled basis for the ( Alice) binary $%-torsion

Idea: generate a candidate basis {'(, ')} by “subverting Elligator 2” formulas

SIDH Public Key Compression

57

slide-51
SLIDE 51

“Entangled” basis generation

n Elligator 2 in a nutshell:

¨ Montgomery curve: E/#$%: '() = +, + .+) + + ¨ Let / ∈ #1% be a non-square. ¨ Define 2 ≔ 1/(1 + /6)) where 6 ∈ #$%. ¨ [ Thm. Bernstein et al.] If / is a non-square, then exactly one of

8 = −:;

  • r

8 = :; − : is the abscissa of a point on <.

58

slide-52
SLIDE 52

“Entangled” basis generation

n Recall: to build a basis for ![2$] we need two full order L.I. points n Getting points of order 2$ on Montgomery curves is cheaper using the 2-

descent:

¨ A point (', )) is not in the image of 2 ! iff ' is a non-square.

n Search only for non-square abscissas.

59

slide-53
SLIDE 53

“Entangled” basis generation

n The entangled basis for ![2$]:

¨ Montgomery curve: E/()*: ,-. = 01 + 30. + 0 ¨ Let 4 ∈ (6* be a non-square w here 7 = 78

9 for 78 ∈ (:9 ∖ (:.

¨ Define 2 tables <=, <? of pairs (A, B ≔

D DE7F9) that contain only H squares and non-

squares, respectively, and F ∈ (:.

¨ If 3 is square we pick candidates H from I

J such that K = −MB is non-square and

pick H from I

N otherwise.

¨ Theorem: choosing the parameters as above, the points whose abscissas are

K = −MB and K = MB − M are either both not on ! or both on !, of order multiple of 2$ and linear independent.

60

slide-54
SLIDE 54

n Entangled Basis ! 2# = ⟨[3(]*+, 3( *-⟩

¨ Find one basis point and the other is for free! ¨ Two cofactor multiplications by 3( saved on compression!

n Recall Bob can compute /-0(2 ∗ , 4′6) and still compress his key

¨ No L.I. test required!

n Previous works remove cofactors 3( and multiply both candidate points by 2#8+.

¨ Theoretical estimates and practical experiments show a 15× (!)

speedup

Faster Basis Generation

61

slide-55
SLIDE 55

n Most costly operations:

I.

Computing a basis !", !$

I I . Com puting 5 pairings

  • III. Computing 4 discrete logs

n New algorithm s to address the three above bottlenecks.

  • In addition to the reduction in number of pairings we investigated

the plain Tate pairing over W eierstrass form w ith Jacobian coordinates and notice a faster pairing computation than Costello et al.’s version based on Montgom ery-like form ulas.

  • No need to store numerators and denominators separately due to

(partial) denom inator elim ination.

  • Improvement of about 28% for binary and 22% for ternary pairings.

SIDH Public Key Compression

62

slide-56
SLIDE 56

n Most costly operations:

I.

Computing a basis !", !$

II.

Computing 5 pairings

I I I . Com puting 4 discrete logs

n New algorithm s to address the three above bottlenecks.

I I I . An optim al strategy for Pohlig-Hellm an

Ø Inspired by Shoup’s RDL method Ø Adopts Jao-De Feo-Plût’s isogeny computation to obtain optimal strategy Ø Attain % & lg & complexity which was informally conjectured by Shoup Ø Combination is non-trivial (more improvements for DL than are possible for

isogeny computation)

SIDH Public Key Compression

63

slide-57
SLIDE 57

Discrete log and optimal strategy

! ∈ #ℓ% ! = '()*(+ℓ*⋯*(%-+ℓ%-+ ' = .ℓ% /, 1 (234 !

65

slide-58
SLIDE 58

Discrete log and optimal strategy

! !ℓ#

Going to the left raises to the ℓ

! ∈ %ℓ& ! = ()*+),ℓ+⋯+)&.,ℓ&., ( = /ℓ& 0, 2 )345

66

slide-59
SLIDE 59

Discrete log and optimal strategy

!ℓ# !ℓ$%&

Element of order ℓ, thus !ℓ$%& = ()* (by Pohlig-Hellman we can recover all +,) Recover small discrete log. using brute force +- = log1ℓ$%& !ℓ$%&

! ! ∈ 3ℓ$ ! = ()*4)&ℓ4⋯4)$%&ℓ$%& ( = 6ℓ$ 7, 9 ):1;

67

slide-60
SLIDE 60

Discrete log and optimal strategy

!ℓ# !ℓ$%&

Element of order ℓ, thus !ℓ$%& = ()* (by Pohlig-Hellman we can recover all +,) Recover small discrete log. using brute force +- = log1ℓ$%& !ℓ$%& ( is fixed, use the powers (-ℓ$%&, (3ℓ$%&, ⋯ , ( ℓ53 ℓ$%& (due to RBD), so only comparisons are done in the loop instead of exponentiations.

! ! ∈ 7ℓ$ ! = ()*8)&ℓ8⋯8)$%&ℓ$%& ( = 9ℓ$ :, ; )<1=

68

slide-61
SLIDE 61

Discrete log and optimal strategy

!ℓ# !ℓ$%&

Going to the right erases the digit

! ! = ! ⋅ )*+, ! ∈ .ℓ$ ! = )+,/+&ℓ/⋯/+$%&ℓ$%& ) = 1ℓ$ 2, 4 +567

69

slide-62
SLIDE 62

Discrete log and optimal strategy

!ℓ# !ℓ$%&

Going to the right erases the digit

! ! = ! ⋅ )*+, ! ∈ .ℓ$ ! = )+,/+&ℓ/⋯/+$%&ℓ$%& ) = 1ℓ$ 2, 4 +567

Constant cost: 19 + negation (inversion is just a conjugation in .ℓ$)

70

slide-63
SLIDE 63

Discrete log and optimal strategy

! ∈ #ℓ% ! = '()*(+ℓ*⋯*(%-+ℓ%-+ ' = .ℓ% /, 1 (234

71

  • This problem reminds exactly the computation of ℓ2-degree isogenies.
  • Use Jao-De Feo-Plut algorithm to compute optimal strategy in 5(. lg .)
  • Side-product: generate opt-strategy from 5(:;) to 5(: log :)
  • One could compute the strategy “on-the-fly”
  • Possible to use windowed-DL to recover => ?@= ℓA at each leaf.
slide-64
SLIDE 64

Discrete log and optimal strategy

! ∈ #ℓ% ! = '()*(+ℓ*⋯*(%-+ℓ%-+ ' = .ℓ% /, 1 (234

72

  • This problem reminds exactly the computation of ℓ2-degree isogenies.
  • Use Jao-De Feo-Plut algorithm to compute optimal strategy in 5(. lg .)
  • Side-product: generate opt-strategy from 5(.:) to 5(. log .)
  • One could compute the strategy “on-the-fly”
  • Possible to use windowed-DL to recover <= >?< ℓ@ at each leaf.
slide-65
SLIDE 65

Discrete log and optimal strategy

  • This problem reminds exactly the computation of ℓ"-degree isogenies.
  • Use Jao-De Feo-Plut algorithm to compute optimal strategy in #(% lg %)
  • Side-product: generate opt-strategy from #(%)) to #(% log %)
  • One could compute the strategy “on-the-fly”
  • Possible to use windowed-DL to recover +, -.+ ℓ/ at each leaf.

0 ∈ 2ℓ3 0 = 567869ℓ8⋯863;9ℓ3;9 5 = %ℓ3 <, > 6"?@

73

slide-66
SLIDE 66

Discrete log and optimal strategy

Binary discrete logs: 1.7×−4× faster Ternary discrete logs: 1.8×−4.6× faster

74

slide-67
SLIDE 67

Implementation

¨ No need for isochronous methods (only public information involved). ¨ C implementation available on GitHub (fork of MSR PQCrypto-SIDH) ¨ Binary torsion

n Compression time reduced by 2×. Expect > 3× using larger %. n Decompression time reduced by 3×

75

slide-68
SLIDE 68

Implementation

¨ No need for isochronous methods (only public information involved). ¨ C implementation available on GitHub (fork of MSR PQCrypto-SIDH) ¨ Ternary torsion

n Compression 1.3× speedup. Expect > 2× using larger ' n Decompression time reduced by 1.1×. (new improvements will be available soon)

76

slide-69
SLIDE 69

Summary

¨ Improvements in all compression bottlenecks ¨ Publicly source code on top of the well-known SIDH library ¨ Other results:

n Faster point tripling: 5M+ 6S instead of 6M+ 5S by Rao et al n Slightly faster 3-torsion basis generation

¨ Future work:

n Generalize entangled basis for non-binary torsions

(seems hard)

n Improve the new bottleneck (pairings)

77

slide-70
SLIDE 70

Questions?

Geovandro C. C. F . Pereira

geovandro.pereira@uwaterloo.ca

78

slide-71
SLIDE 71

Questions?

Geovandro C. C. F . Pereira

geovandro.pereira@uwaterloo.ca

79

Thanks!

slide-72
SLIDE 72

References

n [ 2011] Jao, D. and De Feo, L. Towards quantum-resistant cryptosystems

from supersingular elliptic curve isogenies. In International Workshop on Post-Quantum Cryptography (pp. 19-34). Springer, Berlin, Heidelberg.

n [ 2016] Azarderakhsh, R., Jao, D., Kalach, K., Koziel, B. and Leonardi, C.

Key compression for isogeny-based cryptosystems. In Proceedings of the 3rd ACM International Workshop on ASIA Public-Key Cryptography (pp. 1- 10). ACM.

n [ 2017] Costello, C., Jao, D., Longa, P., Naehrig, M., Renes, J. and Urbanik,

  • D. Efficient compression of SIDH public keys. In Annual International

Conference on the Theory and Applications of Cryptographic Techniques (pp. 679-706). Springer, Cham.

80

slide-73
SLIDE 73

Appendix

SIDH Public Key Compression

81

slide-74
SLIDE 74

I MPROVED POI NT TRI PLI NG

82

slide-75
SLIDE 75

Point tripling

n New !"-only tripling algorithm for the Montgomery curve # ∶

%&' = !) + +!' + !.

n Cost: 5- + 6/ + 91 (counting any left shift as an addition). n Best previous algorithm in the literature (by S. R. S. Rao)

  • nly attains 6- + 5/ + 71.

n Given !, " , compute !), ") = 3 ⋅ !, " :

¨ 67 ← !', 6' ← "', 6) ← 67 − 6' ', ¨ 6: ← 67 + 6', 6; ← ! + " ' − 6:, ¨ 6; ← 6) ⋅ (+/2), 6@ ← 46', 6B ← 467, ¨ 6; ← 6; + 6:, 6C ← 6; ⋅ 6@, 6D ← 6; ⋅ 6B, ¨ 67 ← 6) − 6C ', 6' ← 6) − 6D ', ¨ !) ← ! ⋅ 67, ") ← " ⋅ 6'.

83

slide-76
SLIDE 76

ENTANGLED BASI S

84

slide-77
SLIDE 77

n Entangled Basis generation for ![2$]

¨ 2 -descent used to get points of full order 2$.

n

2-descent: given !/'

(: *+ = (. − 01)(. − 0+)(. − 03), then a point .′, *′ ∈ 2! iif

.7 − 01, .7 − 0+, .7 − 03 are all squares in '

(.

n

Corollary: for a Montgomery curve !8/'9:: ;*+ = .(.+ + =. + 1), a point .7, *7 ∉ 2! iif .′ is non-square in '9:.

n

Therefore, in order to find full order 2$ points, run through candidates (precomputed table of non-squares) where .′ is non-square.

Faster Basis Generation

85

slide-78
SLIDE 78

“Entangled” basis generation

n

Entangled algorithm(! , #$, #):

¨ test & =: ) + +, :

  • ← )/ + +/

0 ← - 123 /5 check 0/ = -

¨ repeat / / 6 times

lookup next entry 7, 8 = 1/ 1 + #7: from T ; ← – ! ⋅ 8 / / (NB: x nonsquare) > ← ; ⋅ ;: + ! ⋅ ; + 1 test > =: ? + @A quadraticity: B ← ?: + @: C ← B D2E /F until C: = B

¨ compute G ←

;H + ! ⋅ ;: + ; : B ← ? + C /2 J ← B D2E /F K ← @ ⋅ 2J LE G ← J: = B ? J + KA ∶ −K + JA

¨ compute basis:

PE ← (;, G), P: ← (#7:;, #$7G) / / low cost for small 7

Test ! quadraticity and select R ← R

S (T7 R U)

86

slide-79
SLIDE 79

“Entangled” basis generation

n

Entangled algorithm(! , #$, #):

¨ test ! =: ( + *+ :

, ← (. + *. / ← , 012 /4 check /. = ,

¨ repeat / / 5 tim es

lookup next entry 6, 7 = 8/ 8 + 96: from T / / free ; ← – = ⋅ 7 / / ( NB: x nonsquare) ? ← ; ⋅ ;: + = ⋅ ; + 8 test ? =: @ + AB quadraticity: C ← @: + A: D ← C E18 /F until D: = C

¨ compute G ←

HI + ! ⋅ H. + H : , ← J + / /2 L ← , 012 /4 M ← N ⋅ 2L O2 G ← L. = , ? L + M+ ∶ −M + L+

¨ compute basis:

S2 ← (H, G), S. ← (#U.H, #$UG) / / low cost for small U

Test ! quadraticity and select V ← V

W (XU V Y)

Find first candidate

  • n Z

87

slide-80
SLIDE 80

“Entangled” basis generation

n

Entangled algorithm(! , #$, #):

¨ test ! =: ( + *+ :

, ← (. + *. / ← , 012 /4 check /. = ,

¨ repeat / / 5 times

lookup next entry 6, 7 = 1/ 1 + #6. from T / / free 9 ← – ! ⋅ 7 / / (NB: x nonsquare) < ← 9 ⋅ 9. + ! ⋅ 9 + 1 test < =: = + >+ quadraticity: , ← =. + >. / ← , 012 /4 until /. = ,

¨ com pute ? ←

@A + B ⋅ @C + @ : D ← E + F /C G ← D H1I /J K ← L ⋅ CG MI ? ← GC = D ? G + KO ∶ −K + GO

¨ compute basis:

R2 ← (9, T), R. ← (#6.9, #$6T) / / low cost for small 6

Test ! quadraticity and select U ← U

V (W6 U X)

Find first candidate

  • n Y

Recover T of first candidate on Y

88

slide-81
SLIDE 81

“Entangled” basis generation

n

Entangled algorithm(! , #$, #):

¨ test ! =: ( + *+ :

, ← (. + *. / ← , 012 /4 check /. = ,

¨ repeat / / 5 times

lookup next entry 6, 7 = 1/ 1 + #6. from T / / free 9 ← – ! ⋅ 7 / / (NB: x nonsquare) < ← 9 ⋅ 9. + ! ⋅ 9 + 1 test < =: = + >+ quadraticity: , ← =. + >. / ← , 012 /4 until /. = ,

¨ com pute ? ←

@A + B ⋅ @C + @ : D ← E + F /C G ← D H1I /J K ← L ⋅ CG MI ? ← GC = D ? G + KO ∶ −K + GO

¨ compute basis:

R2 ← (9, T), R. ← (#6.9, #$6T) / / low cost for small 6

Test ! quadraticity and select U ← U

V (W6 U X)

Find first candidate

  • n Y

Recover T of first candidate on Y

Second candidate

89