use of residue number system for ecc · 2016-03-14 · rns for ecc karim bigou elliptic curves...

22
RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 1/17 Use of Residue Number System for ECC Karim Bigou INRIA DGA IRISA CAIRN Journ´ ees C2 2012: 8 au 12 octobre

Upload: others

Post on 25-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

1/17

Use of Residue Number System for ECC

Karim Bigou

INRIA DGA IRISA CAIRN

Journees C2 2012: 8 au 12 octobre

Page 2: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

2/17

Context and Objectives

• Elliptic Curve Cryptography (ECC) over Fp

• Residue Number System (RNS) −→ high performances

• Efficient implementation by N. Guillermin in [2] on FPGA

• My Ph. D. objectives• Speed (parallelism)• Protections against some side-channel attacks

(randomization)

Page 3: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

3/17

Elliptic Curve Cryptography

• Elliptic curve E over Fp (p prime, 160-500 bits) :

y2 = x3 + a x + b

with −16(4a3 + 27b2) 6= 0 mod p

Figure: y2 = x3 + 4x + 20 over F1009

Page 4: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

4/17

• A group law + is defined over E : the chord-and-tangentrule

• Scalar multiplication: [k]P = P + P + . . .+ P︸ ︷︷ ︸k times

• Knowing P and [k]P, k cannot be recovered (ECDLP)

• [k]P must be fast and robust

• Required many operations at field level: +,−,× andinversions

Page 5: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

5/17

Residue Number System

mod m1

+ − × /

mod m2

+ − × /

mod m3

+ − × /

mod mn

+ − × /· · ·

−→x : 20 – 40

x : 160 – 521

• RNS Base: (m1, . . . ,mn) co-primes

• If 0 6 x <∏n

i=1mi then −→x is determined by

−→x = (x1, . . . , xn) = (x mod m1, . . . , x mod mn)

• Carry-free between blocks

• Fast Parallel Addition, Substraction, Multiplication andExact Division

• Non-positional System

• Comparison, Modular Reduction, Division are hard

Page 6: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

5/17

Residue Number System

mod m1

+ − × /

mod m2

+ − × /

mod m3

+ − × /

mod mn

+ − × /· · ·

−→x : 20 – 40

x : 160 – 521

• RNS Base: (m1, . . . ,mn) co-primes

• If 0 6 x <∏n

i=1mi then −→x is determined by

−→x = (x1, . . . , xn) = (x mod m1, . . . , x mod mn)

• Carry-free between blocks

• Fast Parallel Addition, Substraction, Multiplication andExact Division

• Non-positional System

• Comparison, Modular Reduction, Division are hard

Page 7: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

5/17

Residue Number System

mod m1

+ − × /

mod m2

+ − × /

mod m3

+ − × /

mod mn

+ − × /· · ·

−→x : 20 – 40

x : 160 – 521

• RNS Base: (m1, . . . ,mn) co-primes

• If 0 6 x <∏n

i=1mi then −→x is determined by

−→x = (x1, . . . , xn) = (x mod m1, . . . , x mod mn)

• Carry-free between blocks

• Fast Parallel Addition, Substraction, Multiplication andExact Division

• Non-positional System

• Comparison, Modular Reduction, Division are hard

Page 8: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

5/17

Residue Number System

mod m1

+ − × /

mod m2

+ − × /

mod m3

+ − × /

mod mn

+ − × /· · ·

−→x : 20 – 40

x : 160 – 521

• RNS Base: (m1, . . . ,mn) co-primes

• If 0 6 x <∏n

i=1mi then −→x is determined by

−→x = (x1, . . . , xn) = (x mod m1, . . . , x mod mn)

• Carry-free between blocks

• Fast Parallel Addition, Substraction, Multiplication andExact Division

• Non-positional System

• Comparison, Modular Reduction, Division are hard

Page 9: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

5/17

Residue Number System

mod m1

+ − × /

mod m2

+ − × /

mod m3

+ − × /

mod mn

+ − × /· · ·

−→x : 20 – 40

x : 160 – 521

• RNS Base: (m1, . . . ,mn) co-primes

• If 0 6 x <∏n

i=1mi then −→x is determined by

−→x = (x1, . . . , xn) = (x mod m1, . . . , x mod mn)

• Carry-free between blocks

• Fast Parallel Addition, Substraction, Multiplication andExact Division

• Non-positional System

• Comparison, Modular Reduction, Division are hard

Page 10: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

5/17

Residue Number System

mod m1

+ − × /

mod m2

+ − × /

mod m3

+ − × /

mod mn

+ − × /· · ·

−→x : 20 – 40

x : 160 – 521

• RNS Base: (m1, . . . ,mn) co-primes

• If 0 6 x <∏n

i=1mi then −→x is determined by

−→x = (x1, . . . , xn) = (x mod m1, . . . , x mod mn)

• Carry-free between blocks

• Fast Parallel Addition, Substraction, Multiplication andExact Division

• Non-positional System

• Comparison, Modular Reduction, Division are hard

Page 11: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

6/17

Base Extension

• Idea for modular reduction: add redundancy using 2 bases

• B = (m1, . . . ,mn) and B′ = (m′1, . . . ,m′n) are coprime

RNS bases

• x is −→x in B and −→x ′ in B′

• The base extension (BE ) is defined by:

BE (−→x ,B,B′) = −→x ′

• Some operations become possible after a base extension• M =

∏ni=1 mi is invertible in B′

• Exact Division by M can be done easily

Page 12: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

7/17

Kawamura’s Base Extension [4]

It is based on the chinese remainder theorem (CRT) :

x = x mod M =

∣∣∣∣∣n∑

i=1

|xi ·M−1i |mi ·Mi

∣∣∣∣∣M

|x |m′i =

∣∣∣∣∣n∑

i=1

|xi ·M−1i |mi ·Mi − k ·M

∣∣∣∣∣m′i

where M =∏n

i=1mi , Mi = Mmi

and k < n.

• Sum done over each channel of B′

• Operation cost is n2 word multiplications

• Precomputations are needed (|M−1i |mi , |Mi |m′i , |M|m′i )

Page 13: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

8/17

Kawamura’s base extension [4]

x

M+ k =

n∑i=1

|xi ·M−1i |mi

mi

k =

⌊n∑

i=1

|xi ·M−1i |mi

mi

⌋= α +

⌊n∑

i=1

trunc(|xi ·M−1i |mi )

2r

• mi pseudo-Mersenne number mi = 2r − εi• trunc(y) sets the r − t last bits of y to 0

• α is a correction term

• a simple accumulator can be used in parallel

Page 14: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

9/17

Montgomery Modular Reduction

Algorithm 1: Montgomery Reduction [5]

Data: x < 4 p2 and p < R with gcd(p,R) = 1Result: MM(x ,p) = ω ≡ x · R−1 mod p, 0 6 ω < 2pbegin

q ←− (x · (−p−1)) mod Rs ←− x + q · pω ←− s · R−1

• Classical case: R = 2w to have easy division and modularreduction

• Introduce Montgomery representation

• RNS: easy reduction modulo M but division impossible inB

Page 15: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

10/17

Modular Reduction in RNS

Algorithm 2: RNS Montgomery Reduction [1]

Data: −→x , −→x ′ with x < αp2

Data: M > αp and M ′ > 2 · pResult: RNSMM(x , p, B, B′) = −→ω ≡ x ·M−1 mod p in both

bases, 0 6 ω < 2pbegin−→q ←− −→x · (−−→p −1) in base B and B′−→q ′ ←− BE (−→q ,B,B′)−→s ′ ←− −→x ′ +−→q ′−→p ′ in base B′−→ω ′ ←− −→s ′ ×

−→M−1 in base B′

−→ω ′ ←− BE (−→ω ,B′,B)

Page 16: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

11/17

Costs for RNS Modular Operations

a, b, p : n words of w bits

Operation RNS Standard

ab 2 n mult. n2 mult.

a mod p 2 n2 + 3 n mult. n2 + n mult.

ab mod p 2 n2 + 5n mult. 2 n2 + n mult.

(ab + cd) mod p 2 n2 + 7 n mult. 3 n2 + n mult.(∑ki=1 aibi

)mod p 2 n2 + (3 + 2k)n mult. (1 + k) n2 + n mult.

Factor 2 in multiplication is due to the use of 2 bases for BE .

This was implemented on FPGA by Guillermin [2] and is calledlazy reduction.

Page 17: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

12/17

Ph. D. Objectives

• Improve ECC with RNS performances• Modular Reduction• Modular Inversion

• Introduce new protections

• Use natural RNS properties against SCA• Randomization• Use redundancy with 2 bases

• Hardware implementation• Implementation of RNS arithmetic units• FPGA implementation of the new inversion• Implementation of randomization• Study costs

• Speed• Area

Page 18: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

13/17

Modular Inversion in RNS

• Comparison and Division hard −→ Euclidean Algorithmhard

• Binary Euclidean algorithm: needs for modulo reductionand division by 2

• Implemented algorithm: Fermat’s Little Theorem• very costly• a lot of wait cycles

• Proposed solution: Adaptation of Plus-Minus algorithm

Page 19: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

14/17

Algorithm 3: Plus MinusData: a, p ∈ N with gcd(a, p) = 1, k = dlog2 peResult: PM(a,p,k) = a−1 mod pbegin

(U1,U3)←− (0, p),(V1,V3)←− (1, a),α←− k , β ←− kwhile β > 0 do

if V3 ≡ 0 mod 4 thenV3 ←− V3/4, V1 := divideBy4(V1, p), β = β − 2

else if V3 ≡ 0 mod 2 thenV3 ←− V3/2, V1 := divideBy2(V1, p), β = β − 1

elseV ′3 ←− V3, V

′1 ←− V1, α

′ ←− α, β′ ←− βif U3 + V3 ≡ 0 mod 4 then

V3 ←− (V3 + U3)/4, V1 ←− divideBy4(V1 + U1, p)else

V3 ←− (V3 − U3)/4, V1 ←− divideBy4(V1 − U1, p)if β < α then

U3 ←− V ′3 , U1 ←− V ′1 , α←− β′ , β ←− α′ − 1else β ←− β − 1

if U1 < 0 then U1 ←− U1 + pif U3 = 1 then return U1 else return p − U1

Page 20: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

15/17

Algorithm 4: RNS Plus MinusData: −→a ,−→p , p > 2 with gcd(a, p) = 1begin

−→u1 ←− −→c , −→u3 ←− −→p · −→µ +−→c , −→v1 ←− −→µ +−→c , −→v3 ←− −→a · −→µ +−→c , α = β = 0

bv1 ←− 1, bu1 ←− 0, bu3 ←−−→p mod 4, bv3 ←− ComputeMod4(−→v3 )

while −→v3 6= −→µ +−→c and −→u3 6= −→µ +−→c and −→v3 6= −−→µ +−→c and −→u3 6= −−→µ +−→c dowhile bv3 mod 2 = 0 do

if bv3 = 0 then r ←− 2 else r ←− 1−→v3 ←− DivideBy2r(−→v3 , r, bv3 )−→v1 ←− DivideBy2r(−→v1 , r, bv1 )bv3 ←− ComputeMod4(−→v3 )bv1 ←− ComputeMod4(−→v1 )β ←− β + r

−→t3 ←− −→v3 ,

−→t1 ←− −→v1

if bv3 + bu3 mod 4 = 0 then−→v3 ←− DivideBy2r(−→v3 +−→u3 −−→c , 2, 0)−→v1 ←− DivideBy2r(−→v1 +−→u1 −−→c , 2, (bv1 + bu1 ) mod 4)

bv3 ←− ComputeMod4(−→v3 )bv1 ←− ComputeMod4(−→v1 )

else−→v3 ←− DivideBy2r(−→v3 −−→u3 +−→c , 2, 0)−→v1 ←− DivideBy2r(−→v1 −−→u1 +−→c , 2, (bv1 − bu1 ) mod 4)

bv3 ←− ComputeMod4(−→v3 )bv1 ←− ComputeMod4(−→v1 )

if β > α then−→u3 ←−

−→t3 , −→u1 ←−

−→t1

α←→ ββ ←− β + 1

if −→v3 = −→µ +−→c then return (−→v1 −−→c ) · (−→µ )−1 +−→p else if −→u3 = −→µ +−→c then return

(−→u1 −−→c ) · (−→µ )−1 +−→pelse if −→v3 = −−→µ +−→c then return −(−→v1 −−→c ) · (−→µ )−1 +−→p else return

−(−→u1 −−→c ) · (−→µ )−1 +−→p

Page 21: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

16/17

Fermat RNS Plus-Minus HW RNS Plus-Minus

multiplications 31104 2738 3011

additions 22464 4410 6046

Cox additions 3456 2738 3693

Comparison of the number of operations with dlog2 pe = 192 and

n = 6

Page 22: Use of Residue Number System for ECC · 2016-03-14 · RNS for ECC Karim Bigou Elliptic Curves Residue Number System Modular Arithmetic with RNS Current Work References 11/17 Costs

RNS for ECC

Karim Bigou

Elliptic Curves

ResidueNumberSystem

ModularArithmeticwith RNS

Current Work

References

17/17

References I

[1] J.-C Bajard, L.-S. Didier, and P. Kornerup.An RNS montgomery modular multiplication algorithm.IEEE Transactions on Computers, 47:234–239, July 1998.

[2] N. Guillermin.A high speed coprocessor for elliptic curve scalar multiplications over Fp .In Proc. Cryptographic Hardware and Embedded Systems (CHES), volume6225 of LNCS, pages 48–64. Springer, August 2010.

[3] D. R. Hankerson, S. A. Vanstone, and A. J. Menezes.Guide to Elliptic Curve Cryptography.Springer, 2004.

[4] S. Kawamura, M. Koike, F. Sano, and A. Shimbo.Cox-rower architecture for fast parallel montgomery multiplication.In Advances in Cryptology-EUROCRYPT, volume 1807, pages 523–538.Springer, 2000.

[5] P. L. Montgomery.Modular multiplication without trial division.Mathematics of Computation, 44(170):519–521, 1985.