a new encoding algorithm for a multidimensional version
play

A New Encoding Algorithm for a Multidimensional Version of the - PowerPoint PPT Presentation

A New Encoding Algorithm for a Multidimensional Version of the Montgomery Ladder Aaron Hutchinson 1 Koray Karabina 2,3 1 University of Waterloo a5hutchinson@uwaterloo.ca 2 Florida Atlantic University kkarabina@fau.edu 3 National Research Council


  1. A New Encoding Algorithm for a Multidimensional Version of the Montgomery Ladder Aaron Hutchinson 1 Koray Karabina 2,3 1 University of Waterloo a5hutchinson@uwaterloo.ca 2 Florida Atlantic University kkarabina@fau.edu 3 National Research Council Canada koray.karabina@nrc-cnrc.gc.ca July 21, 2020 Aaron Hutchinson, Koray Karabina July 21, 2020 1 / 32

  2. Background This work builds on that of two previous works: [2] A. Hutchinson and K. Karabina. Constructing Multidimensional Differential Addition Chains and Their Applications. Journal of Cryptographic Engineering , 9(1):1–19, 2019 [1] H. Hisil, A. Hutchinson, and K. Karabina. d -MUL: Optimizing and Implementing a Multidimensional Scalar Multiplication Algorithm over Elliptic Curves. 8th International Conference on Security, Privacy, and Applied Cryptography Engineering - SPACE 2018, Lecture Notes in Computer Science , 11348:198–217, 2018 In all three works the topic of interest is the multidimensional scalar multiplication algorithm d -MUL . Aaron Hutchinson, Koray Karabina Background July 21, 2020 2 / 32

  3. Scalar Multiplication Algorithms Let G be an abelian group. A d - dimensional scalar multiplication algorithm for G takes input a 1 , . . . , a d ∈ N and P 1 , . . . , P d ∈ G and outputs the element a 1 P 1 + · · · + a d P d . Such algorithms often see use in cryptography: 1 dimension: Elliptic Curve Diffie-Hellman, Elliptic Curve Digital Signature Generation, Isogeny-based cryptography 2 or 3 dimensions: Elliptic Curve Digital Signature Verification d dimensions: batch signature verification Aaron Hutchinson, Koray Karabina Background July 21, 2020 3 / 32

  4. Cryptographically Secure Scalar Multiplication For use in a cryptographic setting the following properties are desired: Uniformity: the algorithm performs the same sequence of operations during each execution Isochronous: the algorithm always takes the same amount of time to execute independent of the input Differential additions: computing P + Q can sometimes be done much more efficiently if P − Q is already known. Parallelizability of operations Aaron Hutchinson, Koray Karabina Background July 21, 2020 4 / 32

  5. Example: Montgomery Chain To compute 10 P with the Montgomery Chain: 10 = (1010) 2 = 1 · 2 3 + 0 · 2 2 + 1 · 2 1 + 0 · 2 0 . Initialize variables R 1 ← 1 P and R 0 ← 0 P = 0. If the i -th bit of a is x , replace R 1 − x with R 1 + R 0 and double the value of R x . Initial 3 2 1 0 R 1 : P 2 P → 3 P → 6 P → 11 P R 0 : 0 → 2 P → 5 P → 10 P P Montgomery Chain uses ⌈ log 2 ( a ) ⌉ iterations, each uniformly performing 1 doubling and 1 addition. Every difference is P . Total cost: ⌈ log 2 ( a ) ⌉ ( D + A ). Aaron Hutchinson, Koray Karabina Background July 21, 2020 5 / 32

  6. Example: Bernstein Chain (2006) Bernstein proposed a 2 dimensional differential addition chain. If a, b are ℓ -bit integers, the algorithm computes aP + bQ using an operation count of ℓ (2 A + D ). For every point addition, the corresponding difference is in the set { 0 , P, Q, P + Q, P − Q } . Highly parallelizable. The Bernstein Chain generalizes the Montgomery Chain to 2 dimensions. Aaron Hutchinson, Koray Karabina Background July 21, 2020 6 / 32

  7. Example: Bernstein Chain Aaron Hutchinson, Koray Karabina Background July 21, 2020 7 / 32

  8. d -MUL Overview The d -MUL algorithm generalizes the Montgomery and Bernstein Chains to d dimensions for general d ≥ 1. Based on an algorithm of Dan Brown (2006). Properties: Given a 1 , . . . , a d ∈ Z and P 1 , . . . , P d ∈ G , outputs � a i P i . Performs ℓ := max(log 2 | a i | ) iterations, each performing 1 doubling and d additions. Total cost: ℓ ( D + d A ) In each iteration, the doubling and additions are independent, so highly parallelizable. Differences are fixed in the set { � c i P i : c i ∈ { 0 , 1 , − 1 }} . Aaron Hutchinson, Koray Karabina Background July 21, 2020 8 / 32

  9. d -MUL Version 1 First version of d -MUL [2] uses state matrices to construct a differential addition chain: Definition A state matrix is a ( d + 1) × d integer-valued matrix A such that: every row A i has i − 1 odd entries. A i +1 − A i has a single nonzero entry which is ± 1. Aaron Hutchinson, Koray Karabina Background July 21, 2020 9 / 32

  10. d -MUL Version 1 First version of d -MUL [2] uses state matrices to construct a differential addition chain: Definition A state matrix is a ( d + 1) × d integer-valued matrix A such that: every row A i has i − 1 odd entries. A i +1 − A i has a single nonzero entry which is ± 1. Algorithm is a 3 step process: 1 Initialization : construct a (any) state matrix A ( ℓ ) having ( a 1 , . . . , a d ) as a row. 2 Recoding : construct a sequence of state matrices { A ( i ) } such that every row in A ( i +1) is the sum of two rows from A ( i ) . 3 Evaluation : use row relationships between consecutive A ( i ) to add points P j together. Aaron Hutchinson, Koray Karabina Background July 21, 2020 9 / 32

  11. d -MUL Version 1: Example Example: compute 10 P 1 + 14 P 2 + 9 P 3 + 11 P 4 .   10 14 10 12 10 14 10 11     10 14 9 11     10 15 9 11   11 15 9 11 Aaron Hutchinson, Koray Karabina Background July 21, 2020 10 / 32

  12. d -MUL Version 1: Example Example: compute 10 P 1 + 14 P 2 + 9 P 3 + 11 P 4 .     10 14 10 12 10 14 10 11         10 14 9 11 →      5     10 15 9 11 7 5 6    11 15 9 11 Aaron Hutchinson, Koray Karabina Background July 21, 2020 11 / 32

  13. d -MUL Version 1: Example Example: compute 10 P 1 + 14 P 2 + 9 P 3 + 11 P 4 .     10 14 10 12 10 14 10 11         10 14 9 11 →      5     10 15 9 11 7 5 6    11 15 9 11 5 7 5 5 Aaron Hutchinson, Koray Karabina Background July 21, 2020 11 / 32

  14. d -MUL Version 1: Example Example: compute 10 P 1 + 14 P 2 + 9 P 3 + 11 P 4 .     10 14 10 12 10 14 10 11         10 14 9 11 → 5 7 4 6         10 15 9 11 5 7 5 6     11 15 9 11 5 7 5 5 Aaron Hutchinson, Koray Karabina Background July 21, 2020 11 / 32

  15. d -MUL Version 1: Example Example: compute 10 P 1 + 14 P 2 + 9 P 3 + 11 P 4 .     10 14 10 12 10 14 10 11 5 8 4 6         10 14 9 11 → 5 7 4 6         10 15 9 11 5 7 5 6     11 15 9 11 5 7 5 5 Aaron Hutchinson, Koray Karabina Background July 21, 2020 11 / 32

  16. d -MUL Version 1: Example Example: compute 10 P 1 + 14 P 2 + 9 P 3 + 11 P 4 .     10 14 10 12 6 8 4 6 10 14 10 11 5 8 4 6         10 14 9 11 → 5 7 4 6         10 15 9 11 5 7 5 6     11 15 9 11 5 7 5 5 Aaron Hutchinson, Koray Karabina Background July 21, 2020 11 / 32

  17. d -MUL Version 1: Example Example: compute 10 P 1 + 14 P 2 + 9 P 3 + 11 P 4 .       10 14 10 12 6 8 4 6 2 4 2 2 10 14 10 11 5 8 4 6 2 4 2 3             10 14 9 11 → 5 7 4 6 → 3 4 2 3             10 15 9 11 5 7 5 6 3 3 2 3       11 15 9 11 5 7 5 5 3 3 3 3 A (5) A (4) A (3)     2 2 2 2 0 0 0 0 2 2 1 2 0 1 0 0         1 2 1 2 → 0 1 0 1         1 2 1 1 1 1 0 1     1 1 1 1 1 1 1 1 A (2) A (1) Aaron Hutchinson, Koray Karabina Background July 21, 2020 11 / 32

  18. d -MUL Version 1: Example Q 1   0 0 0 0 1 = 0 Q 1 0 1 0 0 2 = P 2     Q 1 0 1 0 1 3 = + P 4 = ⇒ P 2     Q 1 1 1 0 1 4 = P 1 + P 2 + P 4   Q 1 1 1 1 1 5 = P 1 + P 2 + P 3 + P 4 Aaron Hutchinson, Koray Karabina Background July 21, 2020 12 / 32

  19. d -MUL Version 1: Example Q 1   0 0 0 0 1 = 0 Q 1 0 1 0 0 2 = P 2     Q 1 0 1 0 1 3 = + P 4 = ⇒ P 2     Q 1 1 1 0 1 4 = P 1 + P 2 + P 4   Q 1 1 1 1 1 5 = P 1 + P 2 + P 3 + P 4 ↓ ↓   Q 2 1 = 2 Q 1 2 2 2 2 (= 2 P 1 + 2 P 2 + 2 P 3 + 2 P 4 ) 5 Q 2 2 = Q 1 4 + Q 1 2 2 1 2 (= 2 P 1 + 2 P 2 + 1 P 3 + 2 P 4 )   5   Q 2 3 = Q 1 3 + Q 1 1 2 1 2 = ⇒ (= 1 P 1 + 1 P 2 + 1 P 3 + 2 P 4 )   5   Q 2 4 = Q 1 2 + Q 1 1 2 1 1 (= 1 P 1 + 2 P 2 + 1 P 3 + 1 P 4 ) 5   Q 2 5 = Q 1 1 + Q 1 1 1 1 1 (= 1 P 1 + 1 P 2 + 1 P 3 + 1 P 4 ) 5 Aaron Hutchinson, Koray Karabina Background July 21, 2020 12 / 32

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend