NUMS Elliptic Curves and Their Efficient Implementation

NUMS Elliptic Curves and Their Efficient Implementation

Fourℚ-based cryptography for high-performance and low-power applications Real World Cryptography Conference 2017 January 4-6, New York, USA Patrick Longa Microsoft Research Next-generation elliptic curves New IETF Standards • The Crypto Forum Research Group (CFRG) selected two elliptic curves: Bernstein’s Curve25519 and Hamburg’s Ed448-Goldilocks • RFC 7748: “Elliptic Curves for Security” (published on January 2016) • Curve details; generation • DH key exchange for both curves • Ongoing work: signature scheme • draft-irtf-cfrg-eddsa-08, “Edwards-curve Digital Signature Algorithm (EdDSA)” 1/23 Next-generation elliptic curves Farrel-Moriarity-Melkinov-Paterson [NIST ECC Workshop 2015]: “… the real motivation for work in CFRG is the better performance and side- channel resistance of new curves developed by academic cryptographers over the last decade.” Plus some additional requirements such as: • Rigidity in curve generation process. • Support for existing cryptographic algorithms. 2/23 Next-generation elliptic curves Farrel-Moriarity-Melkinov-Paterson [NIST ECC Workshop 2015]: “… the real motivation for work in CFRG is the better performance and side- channel resistance of new curves developed by academic cryptographers over the last decade.” Plus some additional requirements such as: • Rigidity in curve generation process. • Support for existing cryptographic algorithms. 2/23 State-of-the-art ECC: Fourℚ [Costello-L, ASIACRYPT 2015] • CM endomorphism [GLV01] and Frobenius (ℚ-curve) endomorphism [GLS09, Smi16, GI13] • Edwards form [Edw07] using efficient Edwards ℚ coordinates [BBJ+08, HCW+08] Four • Arithmetic over the Mersenne prime 푝 = 2127 −1 Features: • Support for secure implementations and top performance. • Uniqueness: only curve at the 128-bit security level with properties above. 3/23 State-of-the-art ECC: Fourℚ [Costello-L, ASIACRYPT 2015] • CM endomorphism [GLV01] and Frobenius (ℚ-curve) endomorphism [GLS09, Smi16, GI13] • Edwards form [Edw07] using efficient Edwards ℚ coordinates [BBJ+08, HCW+08] Four • Arithmetic over the Mersenne prime 푝 = 2127 −1 Features: • Support for secure implementations and top performance. • Uniqueness: only curve at the 128-bit security level with properties above. 3/23 State-of-the-art ECC: Fourℚ [Costello-L, ASIACRYPT 2015] Speed (in thousands of cycles) to compute variable-base scalar multiplication on different computer classes. Platform Fourℚ Curve25519 Speedup ratio Intel Haswell processor, desktop class 56 162 2.9x ARM Cortex-A15, smartphone class 132 315 2.4x ARM Cortex-M4, microcontroller class 531 1,424 2.7x 4/23 State-of-the-art ECC: Fourℚ [Costello-L, ASIACRYPT 2015] Speed (in thousands of cycles) to compute variable-base scalar multiplication on different computer classes. Platform Fourℚ Curve25519 Speedup ratio Intel Haswell processor, desktop class 56 162 2.9x ARM Cortex-A15, smartphone class 132 315 2.4x ARM Cortex-M4, microcontroller class 531 1,424 2.7x 4/23 State-of-the-art ECC: Fourℚ [Costello-L, ASIACRYPT 2015] 2 2 2 2 퐸/픽푝2: −푥 + 푦 = 1 + 푑푥 푦 푑 = 125317048443780598345676279555970305165푖 + 4205857648805777768770, 푝 = 2127 −1, 푖2 = −1, #퐸 = 392 ∙ 푁, where 푁 is a 246-bit prime. 5/23 State-of-the-art ECC: Fourℚ (Costello-L, ASIACRYPT 2015) 2 2 2 2 퐸/픽푝2: −푥 + 푦 = 1 + 푑푥 푦 푑 = 125317048443780598345676279555970305165푖 + 4205857648805777768770, 푝 = 2127 −1, 푖2 = −1, #퐸 = 392 ∙ 푁, where 푁 is a 246-bit prime. • Fastest (large char) ECC addition laws are complete on 퐸 • 퐸 is equipped with two endomorphisms: • 퐸 is a degree-2 ℚ-curve: endomorphism 휓 • 퐸 has CM by order of 퐷 = −40: endomorphism 휙 5/23 State-of-the-art ECC: Fourℚ (Costello-L, ASIACRYPT 2015) 2 2 2 2 퐸/픽푝2: −푥 + 푦 = 1 + 푑푥 푦 푑 = 125317048443780598345676279555970305165푖 + 4205857648805777768770, 푝 = 2127 −1, 푖2 = −1, #퐸 = 392 ∙ 푁, where 푁 is a 246-bit prime. • Fastest (large char) ECC addition laws are complete on 퐸 • 퐸 is equipped with two endomorphisms: • 퐸 is a degree-2 ℚ-curve: endomorphism 휓 • 퐸 has CM by order of 퐷 = −40: endomorphism 휙 256 • 휓 푃 = 휆 휓 푃 and 휙 푃 = 휆 휙 푃 for all 푃 ∈ 퐸[푁] and 푚 ∈ [0, 2 ) 푚 ↦ 푎1, 푎2, 푎3, 푎4 푚 푃 = 푎1 푃 + 푎2 휙 푃 + 푎3 휓 푃 + 푎4 휓(휙 푃 ) 5/23 Optimal 4-Way Scalar Decompositions 푚 ↦ 푎1, 푎2, 푎3, 푎4 256 64 .Proposition: for all 푚 ∈ [0, 2 ൿ, decomposition yields four 푎푖 ∈ [0, 2 ۧ with 푎1 odd 푚 = 42453556751700041597675664513313229052985088397396902723728803518727612539248 푎1 = 13045455764875651153 푃 푎2 = 9751504369311420685 휙 푃 푎3 = 5603607414148260372 휓 푃 휓 휙 푃 푎4 = 8360175734463666813 6/23 Optimal 4-Way Scalar Decompositions 푚 ↦ 푎1, 푎2, 푎3, 푎4 256 64 .Proposition: for all 푚 ∈ [0, 2 ൿ, decomposition yields four 푎푖 ∈ [0, 2 ۧ with 푎1 odd 푚 = 42453556751700041597675664513313229052985088397396902723728803518727612539248 푎1 = 13045455764875651153 푃 푎2 = 9751504369311420685 휙 푃 푎3 = 5603607414148260372 휓 푃 휓 휙 푃 푎4 = 8360175734463666813 6/23 Multi-Scalar Recoding Step 1: recode 푎1 to signed non-zero representation Step 2: recode 푎2, 푎3 and 푎4 by “sign-aligning” columns 푎1 = 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1 푎2 = 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1 푎3 = 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0 푎4 = 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1 푎1 = 1, 1ത, 1, 1ത, 1, 1, 1ത, 1, 1ത, 1, 1ത, 1ത, 1ത, 1ത, 1, 1ത, 1, 1ത, 1, 1, 1ത, 1ത, 1ത, 1, 1ത, 1ത, 1, 1, 1, 1ത, 1ത, 1, 1, 1ത, 1ത, 1, 1, 1, 1, 1, 1, 1ത, 1ത, 1, 1, 1, 1, 1, 1ത, 1ത, 1ത, 1ത, 1, 1ത, 1, 1ത, 1ത, 1ത, 1ത, 1, 1ത, 1, 1ത, 1ത, 1ത 푎2 = 1, 1ത, 0, 0, 0, 1, 0, 0, 1ത, 1, 0, 1ത, 1ത, 0, 1, 0, 0, 0, 1, 1, 1ത, 0, 1ത, 1, 0, 1ത, 0, 0, 1, 0, 1ത, 1, 1, 0, 1ത, 1, 0, 0, 1, 1, 1, 1ത, 1ത, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1ത, 1ത, 0, 0, 1, 1ത, 0, 0, 1ത, 1ത 푎3 = 0, 0, 1, 0, 1, 0, 1ത, 1, 0, 0, 1ത, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1ത, 1ത, 1ത, 0, 1ത, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1ത, 0, 1ത, 0, 0, 1, 1ത, 0, 0, 0, 1, 1ത, 1, 1ത, 0, 0 푎4 = 1, 1ത, 0, 1ത, 1, 1, 1ത, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1ത, 0, 0, 0, 0, 1ത, 0, 0, 1, 1ത, 0, 1, 0, 1ത, 1ത, 0, 1, 0, 0, 0, 1, 1ത, 0, 0, 0, 1, 1, 1, 1ത, 1ത, 1ത, 1ത, 0, 1ത, 1, 0, 1ത, 1ത, 0, 0, 0, 0, 0, 1ത, 1ത 7/23 Multi-Scalar Recoding Step 1: recode 푎1 to signed non-zero representation Step 2: recode 푎2, 푎3 and 푎4 by “sign-aligning” columns 푎1 = 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1 푎2 = 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1 푎3 = 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0 푎4 = 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1 푎1 = 1, 1ത, 1, 1ത, 1, 1, 1ത, 1, 1ത, 1, 1ത, 1ത, 1ത, 1ത, 1, 1ത, 1, 1ത, 1, 1, 1ത, 1ത, 1ത, 1, 1ത, 1ത, 1, 1, 1, 1ത, 1ത, 1, 1, 1ത, 1ത, 1, 1, 1, 1, 1, 1, 1ത, 1ത, 1, 1, 1, 1, 1, 1ത, 1ത, 1ത, 1ത, 1, 1ത, 1, 1ത, 1ത, 1ത, 1ത, 1, 1ത, 1, 1ത, 1ത, 1ത 푎2 = 1, 1ത, 0, 0, 0, 1, 0, 0, 1ത, 1, 0, 1ത, 1ത, 0, 1, 0, 0, 0, 1, 1, 1ത, 0, 1ത, 1, 0, 1ത, 0, 0, 1, 0, 1ത, 1, 1, 0, 1ത, 1, 0, 0, 1, 1, 1, 1ത, 1ത, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1ത, 1ത, 0, 0, 1, 1ത, 0, 0, 1ത, 1ത 푎3 = 0, 0, 1, 0, 1, 0, 1ത, 1, 0, 0, 1ത, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1ത, 1ത, 1ത, 0, 1ത, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1ത, 0, 1ത, 0, 0, 1, 1ത, 0, 0, 0, 1, 1ത, 1, 1ത, 0, 0 푎4 = 1, 1ത, 0, 1ത, 1, 1, 1ത, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1ത, 0, 0, 0, 0, 1ത, 0, 0, 1, 1ത, 0, 1, 0, 1ത, 1ത, 0, 1, 0, 0, 0, 1, 1ത, 0, 0, 0, 1, 1, 1, 1ത, 1ത, 1ത, 1ത, 0, 1ത, 1, 0, 1ത, 1ത, 0, 0, 0, 0, 0, 1ത, 1ത column + − + − + + − + − + − − − − + − + − + + − − − + − − + + + − − + + − − + + + + + + − − + + + + + − − − − + − + − − − − + − + − − − signs 푠푖 digits 푑푖 6, 6, 3, 5, 7, 6, 7, 3, 2, 2, 3, 2, 2, 1, 8, 1, 5, 1, 6, 8, 8, 3, 4, 2, 3, 6, 3, 1, 6, 5, 2, 6, 4, 5, 6, 2, 5, 1, 4, 2, 8, 6, 2, 2, 2, 8, 7, 8, 5, 7, 5, 7, 2, 5, 8, 4, 6, 5, 1, 4, 4, 3, 3, 6, 6 7/23 Regular Multi-Scalar Multiplication column + − + − + + − + − + − − − − + − + − + + − − − + − − + + + − − + + − − + + + + + + − − + + + + + − − − − + − + − − − − + − + − − − signs 푠푖 digits 푑푖 6, 6, 3, 5, 7, 6, 7, 3, 2, 2, 3, 2, 2, 1, 8, 1, 5, 1, 6, 8, 8, 3, 4, 2, 3, 6, 3, 1, 6, 5, 2, 6, 4, 5, 6, 2, 5, 1, 4, 2, 8, 6, 2, 2, 2, 8, 7, 8, 5, 7, 5, 7, 2, 5, 8, 4, 6, 5, 1, 4, 4, 3, 3, 6, 6 Execution T[1] 푃 Load 푄 = 푇 6 = 푃 + 휙 푃 + 휓 휙 푃 T[2] 푃 + 휙 푃 T[3] 푃 + 휓 푃 푄 = 2푄 − 푇[6] = 푃 + 휙 푃 + 휓 휙 푃 T[4] 푃 + 휙 푃 + 휓 푃 64 푄 = 2푄 + 푇 3 = 3푃 + 2휙 푃 + 휓 푃 + 2휓 휙 푃 T[5] 푃 + 휓 휙 푃 times T[6] 푃 + 휙 푃 + 휓 휙 푃 푄 = 2푄 − 푇[5] = 5푃 + 4휙 푃 + 2휓 푃 + 3휓 휙 푃 T[7] 푃 + 휓 푃 + 휓 휙 푃 ⋮ T[8] 푃 + 휙 푃 + 휓 푃 + 휓 휙 푃 • Regular execution (exactly 64 DBLS and 64 ADDs) facilitates protection against timing/SSCA attacks.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    59 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us