safecurves cryptography choosing safe curves for public
play

SafeCurves: Cryptography choosing safe curves for Public-key - PowerPoint PPT Presentation

SafeCurves: Cryptography choosing safe curves for Public-key signatures: elliptic-curve cryptography e.g., RSA, DSA, ECDSA. Daniel J. Bernstein Some uses: signed OS updates, University of Illinois at Chicago & SSL certificates,


  1. � � many smaller improvements: The clock Examples ✙ scientific papers. ② of these algorithms for reaking RSA-1024, RSA-2048: , 2 170 , CFRAC; ✙ , 2 160 , LS; ✙ ① , 2 150 , QS; ✙ 2 112 , NFS. ✙ Miller “Use of This is the curve ① 2 + ② 2 = 1. curves in cryptography”: Warning: extremely unlikely This is not an elliptic curve. an ‘index calculus’ attack “Elliptic curve” ✻ = “ellipse.” elliptic curve method ever be able to work.”

  2. � � smaller improvements: The clock Examples of points ✙ papers. ② algorithms for RSA-1024, RSA-2048: ✙ CFRAC; ✙ LS; ① ✙ QS; ✙ NFS. “Use of This is the curve ① 2 + ② 2 = 1. cryptography”: Warning: unlikely This is not an elliptic curve. calculus’ attack “Elliptic curve” ✻ = “ellipse.” curve method to work.”

  3. � � rovements: The clock Examples of points on this curve: ✙ ② for RSA-2048: ✙ ✙ ① ✙ ✙ This is the curve ① 2 + ② 2 = 1. cryptography”: Warning: This is not an elliptic curve. attack “Elliptic curve” ✻ = “ellipse.” d

  4. � � The clock Examples of points on this curve: ② ① This is the curve ① 2 + ② 2 = 1. Warning: This is not an elliptic curve. “Elliptic curve” ✻ = “ellipse.”

  5. � � The clock Examples of points on this curve: (0 ❀ 1) = “12:00”. ② ① This is the curve ① 2 + ② 2 = 1. Warning: This is not an elliptic curve. “Elliptic curve” ✻ = “ellipse.”

  6. � � The clock Examples of points on this curve: (0 ❀ 1) = “12:00”. ② (0 ❀ � 1) = “6:00”. ① This is the curve ① 2 + ② 2 = 1. Warning: This is not an elliptic curve. “Elliptic curve” ✻ = “ellipse.”

  7. � � The clock Examples of points on this curve: (0 ❀ 1) = “12:00”. ② (0 ❀ � 1) = “6:00”. (1 ❀ 0) = “3:00”. ① This is the curve ① 2 + ② 2 = 1. Warning: This is not an elliptic curve. “Elliptic curve” ✻ = “ellipse.”

  8. � � The clock Examples of points on this curve: (0 ❀ 1) = “12:00”. ② (0 ❀ � 1) = “6:00”. (1 ❀ 0) = “3:00”. ( � 1 ❀ 0) = “9:00”. ① This is the curve ① 2 + ② 2 = 1. Warning: This is not an elliptic curve. “Elliptic curve” ✻ = “ellipse.”

  9. � � The clock Examples of points on this curve: (0 ❀ 1) = “12:00”. ② (0 ❀ � 1) = “6:00”. (1 ❀ 0) = “3:00”. ( � 1 ❀ 0) = “9:00”. ♣ ( 3 ❂ 4 ❀ 1 ❂ 2) = ① This is the curve ① 2 + ② 2 = 1. Warning: This is not an elliptic curve. “Elliptic curve” ✻ = “ellipse.”

  10. � � The clock Examples of points on this curve: (0 ❀ 1) = “12:00”. ② (0 ❀ � 1) = “6:00”. (1 ❀ 0) = “3:00”. ( � 1 ❀ 0) = “9:00”. ♣ ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. ① This is the curve ① 2 + ② 2 = 1. Warning: This is not an elliptic curve. “Elliptic curve” ✻ = “ellipse.”

  11. � � The clock Examples of points on this curve: (0 ❀ 1) = “12:00”. ② (0 ❀ � 1) = “6:00”. (1 ❀ 0) = “3:00”. ( � 1 ❀ 0) = “9:00”. ♣ ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. ♣ ① (1 ❂ 2 ❀ � 3 ❂ 4) = This is the curve ① 2 + ② 2 = 1. Warning: This is not an elliptic curve. “Elliptic curve” ✻ = “ellipse.”

  12. � � The clock Examples of points on this curve: (0 ❀ 1) = “12:00”. ② (0 ❀ � 1) = “6:00”. (1 ❀ 0) = “3:00”. ( � 1 ❀ 0) = “9:00”. ♣ ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. ♣ ① (1 ❂ 2 ❀ � 3 ❂ 4) = “5:00”. ♣ ( � 1 ❂ 2 ❀ � 3 ❂ 4) = This is the curve ① 2 + ② 2 = 1. Warning: This is not an elliptic curve. “Elliptic curve” ✻ = “ellipse.”

  13. � � The clock Examples of points on this curve: (0 ❀ 1) = “12:00”. ② (0 ❀ � 1) = “6:00”. (1 ❀ 0) = “3:00”. ( � 1 ❀ 0) = “9:00”. ♣ ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. ♣ ① (1 ❂ 2 ❀ � 3 ❂ 4) = “5:00”. ♣ ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. This is the curve ① 2 + ② 2 = 1. Warning: This is not an elliptic curve. “Elliptic curve” ✻ = “ellipse.”

  14. � � The clock Examples of points on this curve: (0 ❀ 1) = “12:00”. ② (0 ❀ � 1) = “6:00”. (1 ❀ 0) = “3:00”. ( � 1 ❀ 0) = “9:00”. ♣ ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. ♣ ① (1 ❂ 2 ❀ � 3 ❂ 4) = “5:00”. ♣ ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. ♣ ♣ ( 1 ❂ 2 ❀ 1 ❂ 2) = “1:30”. This is the curve ① 2 + ② 2 = 1. (3 ❂ 5 ❀ 4 ❂ 5). ( � 3 ❂ 5 ❀ 4 ❂ 5). Warning: This is not an elliptic curve. “Elliptic curve” ✻ = “ellipse.”

  15. � � The clock Examples of points on this curve: (0 ❀ 1) = “12:00”. ② (0 ❀ � 1) = “6:00”. (1 ❀ 0) = “3:00”. ( � 1 ❀ 0) = “9:00”. ♣ ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. ♣ ① (1 ❂ 2 ❀ � 3 ❂ 4) = “5:00”. ♣ ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. ♣ ♣ ( 1 ❂ 2 ❀ 1 ❂ 2) = “1:30”. This is the curve ① 2 + ② 2 = 1. (3 ❂ 5 ❀ 4 ❂ 5). ( � 3 ❂ 5 ❀ 4 ❂ 5). (3 ❂ 5 ❀ � 4 ❂ 5). ( � 3 ❂ 5 ❀ � 4 ❂ 5). Warning: (4 ❂ 5 ❀ 3 ❂ 5). ( � 4 ❂ 5 ❀ 3 ❂ 5). This is not an elliptic curve. (4 ❂ 5 ❀ � 3 ❂ 5). ( � 4 ❂ 5 ❀ � 3 ❂ 5). “Elliptic curve” ✻ = “ellipse.” Many more.

  16. � � clock Examples of points on this curve: Addition (0 ❀ 1) = “12:00”. ② ② (0 ❀ � 1) = “6:00”. (1 ❀ 0) = “3:00”. ❀ ✎ P ① ❀ ② ( � 1 ❀ 0) = “9:00”. ✎ ☛ ♣ ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. P ① ❀ ② ✎ ♣ ① ① (1 ❂ 2 ❀ � 3 ❂ 4) = “5:00”. ♣ ✎ ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. P ① ❀ ② ♣ ♣ ( 1 ❂ 2 ❀ 1 ❂ 2) = “1:30”. the curve ① 2 + ② 2 = 1. (3 ❂ 5 ❀ 4 ❂ 5). ( � 3 ❂ 5 ❀ 4 ❂ 5). ① 2 + ② 2 (3 ❂ 5 ❀ � 4 ❂ 5). ( � 3 ❂ 5 ❀ � 4 ❂ 5). rning: ① = sin ☛ ② ☛ (4 ❂ 5 ❀ 3 ❂ 5). ( � 4 ❂ 5 ❀ 3 ❂ 5). not an elliptic curve. (4 ❂ 5 ❀ � 3 ❂ 5). ( � 4 ❂ 5 ❀ � 3 ❂ 5). “Elliptic curve” ✻ = “ellipse.” Many more.

  17. � � Examples of points on this curve: Addition on the clo (0 ❀ 1) = “12:00”. ② ② (0 ❀ � 1) = “6:00”. (1 ❀ 0) = “3:00”. neutral ❀ ✎ P ① ❀ ② ( � 1 ❀ 0) = “9:00”. ✎ ☛ 1 ✂ ♣ ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. ✂ P ① ❀ ② ✎ ✂ ✂ ✐ ✐ ✂ ✐ ♣ ✐ ① ① ✂ ✐ P (1 ❂ 2 ❀ � 3 ❂ 4) = “5:00”. P P P P ♣ ✎ ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. P ① ❀ ② ♣ ♣ ( 1 ❂ 2 ❀ 1 ❂ 2) = “1:30”. ① 2 + ② 2 = 1. (3 ❂ 5 ❀ 4 ❂ 5). ( � 3 ❂ 5 ❀ 4 ❂ 5). ① 2 + ② 2 = 1, parametrized (3 ❂ 5 ❀ � 4 ❂ 5). ( � 3 ❂ 5 ❀ � 4 ❂ 5). ① = sin ☛ , ② = cos ☛ (4 ❂ 5 ❀ 3 ❂ 5). ( � 4 ❂ 5 ❀ 3 ❂ 5). elliptic curve. (4 ❂ 5 ❀ � 3 ❂ 5). ( � 4 ❂ 5 ❀ � 3 ❂ 5). ✻ = “ellipse.” Many more.

  18. � � ✻ Examples of points on this curve: Addition on the clock: (0 ❀ 1) = “12:00”. ② ② (0 ❀ � 1) = “6:00”. (1 ❀ 0) = “3:00”. neutral = (0 ❀ ✎ P 1 = ( ① ❀ ② ( � 1 ❀ 0) = “9:00”. ✎ ☛ 1 ✂ ✂ ♣ ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. ✂ P 2 = ① ❀ ② ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ ♣ ✐ ① ① ✐ P ✂ (1 ❂ 2 ❀ � 3 ❂ 4) = “5:00”. P P P P P P ♣ ✎ ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. P 3 = ( ① ❀ ② ♣ ♣ ( 1 ❂ 2 ❀ 1 ❂ 2) = “1:30”. (3 ❂ 5 ❀ 4 ❂ 5). ( � 3 ❂ 5 ❀ 4 ❂ 5). ① ② = 1. ① 2 + ② 2 = 1, parametrized b (3 ❂ 5 ❀ � 4 ❂ 5). ( � 3 ❂ 5 ❀ � 4 ❂ 5). ① = sin ☛ , ② = cos ☛ . (4 ❂ 5 ❀ 3 ❂ 5). ( � 4 ❂ 5 ❀ 3 ❂ 5). e. (4 ❂ 5 ❀ � 3 ❂ 5). ( � 4 ❂ 5 ❀ � 3 ❂ 5). “ellipse.” Many more.

  19. � � Examples of points on this curve: Addition on the clock: (0 ❀ 1) = “12:00”. ② (0 ❀ � 1) = “6:00”. (1 ❀ 0) = “3:00”. neutral = (0 ❀ 1) ✎ P 1 = ( ① 1 ❀ ② 1 ) ( � 1 ❀ 0) = “9:00”. ✎ ☛ 1 ✂ ✂ ♣ ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. ✂ P 2 = ( ① 2 ❀ ② 2 ) ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ ♣ ✐ ① ✐ P ✂ (1 ❂ 2 ❀ � 3 ❂ 4) = “5:00”. P P P P P P ♣ ✎ ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. P 3 = ( ① 3 ❀ ② 3 ) ♣ ♣ ( 1 ❂ 2 ❀ 1 ❂ 2) = “1:30”. (3 ❂ 5 ❀ 4 ❂ 5). ( � 3 ❂ 5 ❀ 4 ❂ 5). ① 2 + ② 2 = 1, parametrized by (3 ❂ 5 ❀ � 4 ❂ 5). ( � 3 ❂ 5 ❀ � 4 ❂ 5). ① = sin ☛ , ② = cos ☛ . (4 ❂ 5 ❀ 3 ❂ 5). ( � 4 ❂ 5 ❀ 3 ❂ 5). (4 ❂ 5 ❀ � 3 ❂ 5). ( � 4 ❂ 5 ❀ � 3 ❂ 5). Many more.

  20. � � Examples of points on this curve: Addition on the clock: (0 ❀ 1) = “12:00”. ② (0 ❀ � 1) = “6:00”. (1 ❀ 0) = “3:00”. neutral = (0 ❀ 1) ✎ P 1 = ( ① 1 ❀ ② 1 ) ( � 1 ❀ 0) = “9:00”. ✎ ☛ 1 ✂ ✂ ♣ ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. ✂ P 2 = ( ① 2 ❀ ② 2 ) ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ ♣ ✐ ① ✐ ✂ P (1 ❂ 2 ❀ � 3 ❂ 4) = “5:00”. P P P P P P ♣ ✎ ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. P 3 = ( ① 3 ❀ ② 3 ) ♣ ♣ ( 1 ❂ 2 ❀ 1 ❂ 2) = “1:30”. (3 ❂ 5 ❀ 4 ❂ 5). ( � 3 ❂ 5 ❀ 4 ❂ 5). ① 2 + ② 2 = 1, parametrized by (3 ❂ 5 ❀ � 4 ❂ 5). ( � 3 ❂ 5 ❀ � 4 ❂ 5). ① = sin ☛ , ② = cos ☛ . Recall (4 ❂ 5 ❀ 3 ❂ 5). ( � 4 ❂ 5 ❀ 3 ❂ 5). (sin( ☛ 1 + ☛ 2 ) ❀ cos( ☛ 1 + ☛ 2 )) = (4 ❂ 5 ❀ � 3 ❂ 5). ( � 4 ❂ 5 ❀ � 3 ❂ 5). Many more.

  21. � � Examples of points on this curve: Addition on the clock: (0 ❀ 1) = “12:00”. ② (0 ❀ � 1) = “6:00”. (1 ❀ 0) = “3:00”. neutral = (0 ❀ 1) ✎ P 1 = ( ① 1 ❀ ② 1 ) ( � 1 ❀ 0) = “9:00”. ✎ ☛ 1 ✂ ✂ ♣ ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. ✂ P 2 = ( ① 2 ❀ ② 2 ) ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ ♣ ✐ ① ✐ ✂ P (1 ❂ 2 ❀ � 3 ❂ 4) = “5:00”. P P P P P P ♣ ✎ ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. P 3 = ( ① 3 ❀ ② 3 ) ♣ ♣ ( 1 ❂ 2 ❀ 1 ❂ 2) = “1:30”. (3 ❂ 5 ❀ 4 ❂ 5). ( � 3 ❂ 5 ❀ 4 ❂ 5). ① 2 + ② 2 = 1, parametrized by (3 ❂ 5 ❀ � 4 ❂ 5). ( � 3 ❂ 5 ❀ � 4 ❂ 5). ① = sin ☛ , ② = cos ☛ . Recall (4 ❂ 5 ❀ 3 ❂ 5). ( � 4 ❂ 5 ❀ 3 ❂ 5). (sin( ☛ 1 + ☛ 2 ) ❀ cos( ☛ 1 + ☛ 2 )) = (4 ❂ 5 ❀ � 3 ❂ 5). ( � 4 ❂ 5 ❀ � 3 ❂ 5). (sin ☛ 1 cos ☛ 2 + cos ☛ 1 sin ☛ 2 ❀ Many more.

  22. � � Examples of points on this curve: Addition on the clock: (0 ❀ 1) = “12:00”. ② (0 ❀ � 1) = “6:00”. (1 ❀ 0) = “3:00”. neutral = (0 ❀ 1) ✎ P 1 = ( ① 1 ❀ ② 1 ) ( � 1 ❀ 0) = “9:00”. ✎ ☛ 1 ✂ ✂ ♣ ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. ✂ P 2 = ( ① 2 ❀ ② 2 ) ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ ♣ ✐ ① ✐ ✂ P (1 ❂ 2 ❀ � 3 ❂ 4) = “5:00”. P P P P P P ♣ ✎ ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. P 3 = ( ① 3 ❀ ② 3 ) ♣ ♣ ( 1 ❂ 2 ❀ 1 ❂ 2) = “1:30”. (3 ❂ 5 ❀ 4 ❂ 5). ( � 3 ❂ 5 ❀ 4 ❂ 5). ① 2 + ② 2 = 1, parametrized by (3 ❂ 5 ❀ � 4 ❂ 5). ( � 3 ❂ 5 ❀ � 4 ❂ 5). ① = sin ☛ , ② = cos ☛ . Recall (4 ❂ 5 ❀ 3 ❂ 5). ( � 4 ❂ 5 ❀ 3 ❂ 5). (sin( ☛ 1 + ☛ 2 ) ❀ cos( ☛ 1 + ☛ 2 )) = (4 ❂ 5 ❀ � 3 ❂ 5). ( � 4 ❂ 5 ❀ � 3 ❂ 5). (sin ☛ 1 cos ☛ 2 + cos ☛ 1 sin ☛ 2 ❀ Many more. cos ☛ 1 cos ☛ 2 � sin ☛ 1 sin ☛ 2 ).

  23. � � Examples of points on this curve: Addition on the clock: Clock addition ❀ = “12:00”. ② ② ❀ � 1) = “6:00”. ❀ = “3:00”. neutral = (0 ❀ 1) ❀ ✎ ✎ P 1 = ( ① 1 ❀ ② 1 ) P ① ❀ ② � ❀ 0) = “9:00”. ✎ ✎ ☛ 1 ✂ ✂ ♣ ❂ ❀ 1 ❂ 2) = “2:00”. ✂ P 2 = ( ① 2 ❀ ② 2 ) P ① ❀ ② ✎ ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ ♣ ✐ ① ① ✐ ✂ P ❂ ❀ � 3 ❂ 4) = “5:00”. P P P P P P ♣ ✎ ✎ � ❂ ❀ � 3 ❂ 4) = “7:00”. P 3 = ( ① 3 ❀ ② 3 ) P ① ❀ ② ♣ ♣ ❂ ❀ 1 ❂ 2) = “1:30”. ❂ ❀ ❂ 5). ( � 3 ❂ 5 ❀ 4 ❂ 5). ① 2 + ② 2 = 1, parametrized by Use Cartesian ❂ ❀ � 4 ❂ 5). ( � 3 ❂ 5 ❀ � 4 ❂ 5). addition. ① = sin ☛ , ② = cos ☛ . Recall ❂ ❀ ❂ 5). ( � 4 ❂ 5 ❀ 3 ❂ 5). for the clo ① ② (sin( ☛ 1 + ☛ 2 ) ❀ cos( ☛ 1 + ☛ 2 )) = ❂ ❀ � 3 ❂ 5). ( � 4 ❂ 5 ❀ � 3 ❂ 5). sum of ( ① ❀ ② ① ❀ ② (sin ☛ 1 cos ☛ 2 + cos ☛ 1 sin ☛ 2 ❀ more. ( ① 1 ② 2 + ② ① ❀ ② ② � ① ① cos ☛ 1 cos ☛ 2 � sin ☛ 1 sin ☛ 2 ).

  24. � � � oints on this curve: Addition on the clock: Clock addition without ❀ “12:00”. ② ② ❀ � “6:00”. ❀ neutral = (0 ❀ 1) neutral ❀ ✎ ✎ P 1 = ( ① 1 ❀ ② 1 ) P ① ❀ ② � ❀ “9:00”. ✎ ✎ ☛ 1 ✂ ✂ ✂ ♣ “2:00”. ❂ ❀ ❂ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) P ① ❀ ② ✎ ✎ ✂ ✂ ✐ ✂ ✐ ✂ ✐ ✐ ✐ ✐ ✂ ✂ ✐ ✐ ♣ ✐ ✐ ① ① ✂ ✐ P ✂ P ✐ ❂ ❀ � ❂ “5:00”. P P P P P P P P P P ♣ ✎ ✎ � ❂ ❀ � ❂ = “7:00”. P 3 = ( ① 3 ❀ ② 3 ) P ① ❀ ② ♣ ♣ ❂ ❀ ❂ “1:30”. ❂ ❀ ❂ � ❂ 5 ❀ 4 ❂ 5). ① 2 + ② 2 = 1, parametrized by Use Cartesian coordinates ❂ ❀ � ❂ � 3 ❂ 5 ❀ � 4 ❂ 5). addition. Addition ① = sin ☛ , ② = cos ☛ . Recall ❂ ❀ ❂ � ❂ 5 ❀ 3 ❂ 5). for the clock ① 2 + ② (sin( ☛ 1 + ☛ 2 ) ❀ cos( ☛ 1 + ☛ 2 )) = ❂ ❀ � ❂ � 4 ❂ 5 ❀ � 3 ❂ 5). sum of ( ① 1 ❀ ② 1 ) and ① ❀ ② (sin ☛ 1 cos ☛ 2 + cos ☛ 1 sin ☛ 2 ❀ ( ① 1 ② 2 + ② 1 ① 2 ❀ ② 1 ② 2 � ① ① cos ☛ 1 cos ☛ 2 � sin ☛ 1 sin ☛ 2 ).

  25. � � � � this curve: Addition on the clock: Clock addition without sin, cos: ❀ ② ② ❀ � ❀ neutral = (0 ❀ 1) neutral = (0 ❀ ✎ ✎ P 1 = ( ① 1 ❀ ② 1 ) P 1 = ( ① ❀ ② � ❀ ✎ ✎ ☛ 1 ✂ ✂ ✂ ✂ ♣ ❂ ❀ ❂ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) P 2 = ① ❀ ② ✎ ✎ ✂ ✂ ✐ ✐ ✂ ✐ ✂ ✐ ✐ ✐ ✐ ✐ ✂ ✂ ✐ ✐ ♣ ✐ ✐ ① ① P ✂ ✐ ✐ ✂ P ❂ ❀ � ❂ P P P P P P P P P P P P ♣ ✎ ✎ � ❂ ❀ � ❂ “7:00”. P 3 = ( ① 3 ❀ ② 3 ) P 3 = ( ① ❀ ② ♣ ♣ ❂ ❀ ❂ ❂ ❀ ❂ � ❂ ❀ ❂ ① 2 + ② 2 = 1, parametrized by Use Cartesian coordinates fo ❂ ❀ � ❂ � ❂ ❀ � ❂ 5). addition. Addition formula ① = sin ☛ , ② = cos ☛ . Recall ❂ ❀ ❂ � ❂ ❀ ❂ for the clock ① 2 + ② 2 = 1: (sin( ☛ 1 + ☛ 2 ) ❀ cos( ☛ 1 + ☛ 2 )) = ❂ ❀ � ❂ � ❂ ❀ � ❂ 5). sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) (sin ☛ 1 cos ☛ 2 + cos ☛ 1 sin ☛ 2 ❀ ( ① 1 ② 2 + ② 1 ① 2 ❀ ② 1 ② 2 � ① 1 ① 2 ). cos ☛ 1 cos ☛ 2 � sin ☛ 1 sin ☛ 2 ).

  26. � � � � Addition on the clock: Clock addition without sin, cos: ② ② neutral = (0 ❀ 1) neutral = (0 ❀ 1) ✎ ✎ P 1 = ( ① 1 ❀ ② 1 ) P 1 = ( ① 1 ❀ ② 1 ) ✎ ✎ ☛ 1 ✂ ✂ ✂ ✂ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) P 2 = ( ① 2 ❀ ② 2 ) ✎ ✎ ✂ ✂ ✐ ✐ ✂ ✐ ✂ ✐ ✐ ✐ ✐ ✐ ✂ ✂ ✐ ✐ ✐ ✐ ① ① ✂ P ✐ ✂ P ✐ P P P P P P P P P P P P ✎ ✎ P 3 = ( ① 3 ❀ ② 3 ) P 3 = ( ① 3 ❀ ② 3 ) ① 2 + ② 2 = 1, parametrized by Use Cartesian coordinates for addition. Addition formula ① = sin ☛ , ② = cos ☛ . Recall for the clock ① 2 + ② 2 = 1: (sin( ☛ 1 + ☛ 2 ) ❀ cos( ☛ 1 + ☛ 2 )) = sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is (sin ☛ 1 cos ☛ 2 + cos ☛ 1 sin ☛ 2 ❀ ( ① 1 ② 2 + ② 1 ① 2 ❀ ② 1 ② 2 � ① 1 ① 2 ). cos ☛ 1 cos ☛ 2 � sin ☛ 1 sin ☛ 2 ).

  27. � � � � Addition on the clock: Clock addition without sin, cos: Examples “2:00” + ② ② ♣ ♣ = ( 3 ❂ 4 ❀ ❂ ❂ ❀ � ❂ ♣ = ( � 1 ❂ 2 ❀ � ❂ neutral = (0 ❀ 1) neutral = (0 ❀ 1) ✎ ✎ P 1 = ( ① 1 ❀ ② 1 ) P 1 = ( ① 1 ❀ ② 1 ) “5:00” + ✎ ✎ ☛ 1 ✂ ✂ ✂ ✂ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) P 2 = ( ① 2 ❀ ② 2 ) ♣ = (1 ❂ 2 ❀ � ❂ � ❀ ✎ ✎ ✂ ✂ ✐ ✐ ✂ ✐ ✂ ✐ ✐ ✐ ✐ ✐ ✂ ✂ ✐ ✐ ✐ ✐ ① ① P ✐ ✂ ✂ ✐ P P P ♣ = ( 3 ❂ 4 ❀ ❂ P P P P P P P P P P ✎ ✎ P 3 = ( ① 3 ❀ ② 3 ) P 3 = ( ① 3 ❀ ② 3 ) ✒ 3 ✓ ✒ ✓ 5 ❀ 4 2 ❀ 5 ② 2 = 1, parametrized by Use Cartesian coordinates for ① addition. Addition formula ① sin ☛ , ② = cos ☛ . Recall for the clock ① 2 + ② 2 = 1: ☛ + ☛ 2 ) ❀ cos( ☛ 1 + ☛ 2 )) = sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is ☛ cos ☛ 2 + cos ☛ 1 sin ☛ 2 ❀ ( ① 1 ② 2 + ② 1 ① 2 ❀ ② 1 ② 2 � ① 1 ① 2 ). ☛ cos ☛ 2 � sin ☛ 1 sin ☛ 2 ).

  28. � � � clock: Clock addition without sin, cos: Examples of clock “2:00” + “5:00” ② ② ♣ ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) + (1 ❂ ❀ � ❂ ♣ = ( � 1 ❂ 2 ❀ � 3 ❂ 4) neutral = (0 ❀ 1) neutral = (0 ❀ 1) ✎ ✎ P 1 = ( ① 1 ❀ ② 1 ) P 1 = ( ① 1 ❀ ② 1 ) “5:00” + “9:00” ✎ ✎ ☛ ✂ ✂ ✂ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) P 2 = ( ① 2 ❀ ② 2 ) ♣ = (1 ❂ 2 ❀ � 3 ❂ 4) + � ❀ ✎ ✎ ✂ ✐ ✐ ✐ ✂ ✐ ✐ ✐ ✐ ✐ ✂ ✐ ✐ ① ① ✂ P ✐ P ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. P P P P P P P P ✎ ✎ P 3 = ( ① 3 ❀ ② 3 ) P 3 = ( ① 3 ❀ ② 3 ) ✒ 3 ✓ ✒ 24 ✓ 5 ❀ 4 2 = 25 ❀ 5 Use Cartesian coordinates for ① ② rametrized by addition. Addition formula ① ☛ ② cos ☛ . Recall for the clock ① 2 + ② 2 = 1: ☛ ☛ ❀ cos( ☛ 1 + ☛ 2 )) = sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is ☛ ☛ cos ☛ 1 sin ☛ 2 ❀ ( ① 1 ② 2 + ② 1 ① 2 ❀ ② 1 ② 2 � ① 1 ① 2 ). ☛ ☛ � sin ☛ 1 sin ☛ 2 ).

  29. � � Clock addition without sin, cos: Examples of clock addition: “2:00” + “5:00” ② ② ♣ ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) + (1 ❂ 2 ❀ � 3 ❂ ♣ = ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. (0 ❀ 1) neutral = (0 ❀ 1) ✎ ✎ ( ① 1 ❀ ② 1 ) P 1 = ( ① 1 ❀ ② 1 ) P “5:00” + “9:00” ✎ ✎ ☛ ✂ ✂ ✂ P = ( ① 2 ❀ ② 2 ) P 2 = ( ① 2 ❀ ② 2 ) ♣ = (1 ❂ 2 ❀ � 3 ❂ 4) + ( � 1 ❀ 0) ✎ ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ ✐ ① ① ✐ P ✂ P ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. P P P P P ✎ ✎ P ( ① 3 ❀ ② 3 ) P 3 = ( ① 3 ❀ ② 3 ) ✒ 3 ✓ ✒ 24 ✓ 5 ❀ 4 25 ❀ 7 2 = . 5 25 Use Cartesian coordinates for ① ② by addition. Addition formula ① ☛ ② ☛ ecall for the clock ① 2 + ② 2 = 1: ☛ ☛ ❀ ☛ ☛ )) = sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is ☛ ☛ ☛ ☛ 2 ❀ ( ① 1 ② 2 + ② 1 ① 2 ❀ ② 1 ② 2 � ① 1 ① 2 ). ☛ ☛ � ☛ ☛ 2 ).

  30. � � Clock addition without sin, cos: Examples of clock addition: “2:00” + “5:00” ② ♣ ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) + (1 ❂ 2 ❀ � 3 ❂ 4) ♣ = ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. neutral = (0 ❀ 1) ✎ P 1 = ( ① 1 ❀ ② 1 ) “5:00” + “9:00” ✎ ✂ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) ♣ = (1 ❂ 2 ❀ � 3 ❂ 4) + ( � 1 ❀ 0) ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ ✐ ① P ✂ ✐ P ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. P P P P P ✎ P 3 = ( ① 3 ❀ ② 3 ) ✒ 3 ✓ ✒ 24 ✓ 5 ❀ 4 25 ❀ 7 2 = . 5 25 Use Cartesian coordinates for addition. Addition formula for the clock ① 2 + ② 2 = 1: sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is ( ① 1 ② 2 + ② 1 ① 2 ❀ ② 1 ② 2 � ① 1 ① 2 ).

  31. � � Clock addition without sin, cos: Examples of clock addition: “2:00” + “5:00” ② ♣ ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) + (1 ❂ 2 ❀ � 3 ❂ 4) ♣ = ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. neutral = (0 ❀ 1) ✎ P 1 = ( ① 1 ❀ ② 1 ) “5:00” + “9:00” ✎ ✂ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) ♣ = (1 ❂ 2 ❀ � 3 ❂ 4) + ( � 1 ❀ 0) ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ ✐ ① ✐ ✂ P P ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. P P P P P ✎ P 3 = ( ① 3 ❀ ② 3 ) ✒ 3 ✓ ✒ 24 ✓ 5 ❀ 4 25 ❀ 7 2 = . 5 25 ✒ 3 ✓ ✒ 117 ✓ 5 ❀ 4 125 ❀ � 44 Use Cartesian coordinates for 3 = . 5 125 addition. Addition formula for the clock ① 2 + ② 2 = 1: sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is ( ① 1 ② 2 + ② 1 ① 2 ❀ ② 1 ② 2 � ① 1 ① 2 ).

  32. � � Clock addition without sin, cos: Examples of clock addition: “2:00” + “5:00” ② ♣ ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) + (1 ❂ 2 ❀ � 3 ❂ 4) ♣ = ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. neutral = (0 ❀ 1) ✎ P 1 = ( ① 1 ❀ ② 1 ) “5:00” + “9:00” ✎ ✂ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) ♣ = (1 ❂ 2 ❀ � 3 ❂ 4) + ( � 1 ❀ 0) ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ ✐ ① ✐ P ✂ P ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. P P P P P ✎ P 3 = ( ① 3 ❀ ② 3 ) ✒ 3 ✓ ✒ 24 ✓ 5 ❀ 4 25 ❀ 7 2 = . 5 25 ✒ 3 ✓ ✒ 117 ✓ 5 ❀ 4 125 ❀ � 44 Use Cartesian coordinates for 3 = . 5 125 addition. Addition formula for the clock ① 2 + ② 2 = 1: ✒ 3 ✓ ✒ 336 ✓ 5 ❀ 4 625 ❀ � 527 4 = . 5 625 sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is ( ① 1 ② 2 + ② 1 ① 2 ❀ ② 1 ② 2 � ① 1 ① 2 ).

  33. � � Clock addition without sin, cos: Examples of clock addition: “2:00” + “5:00” ② ♣ ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) + (1 ❂ 2 ❀ � 3 ❂ 4) ♣ = ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. neutral = (0 ❀ 1) ✎ P 1 = ( ① 1 ❀ ② 1 ) “5:00” + “9:00” ✎ ✂ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) ♣ = (1 ❂ 2 ❀ � 3 ❂ 4) + ( � 1 ❀ 0) ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ ✐ ① ✐ ✂ P P ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. P P P P P ✎ P 3 = ( ① 3 ❀ ② 3 ) ✒ 3 ✓ ✒ 24 ✓ 5 ❀ 4 25 ❀ 7 2 = . 5 25 ✒ 3 ✓ ✒ 117 ✓ 5 ❀ 4 125 ❀ � 44 Use Cartesian coordinates for 3 = . 5 125 addition. Addition formula for the clock ① 2 + ② 2 = 1: ✒ 3 ✓ ✒ 336 ✓ 5 ❀ 4 625 ❀ � 527 4 = . 5 625 sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is ( ① 1 ❀ ② 1 ) + (0 ❀ 1) = ( ① 1 ② 2 + ② 1 ① 2 ❀ ② 1 ② 2 � ① 1 ① 2 ).

  34. � � Clock addition without sin, cos: Examples of clock addition: “2:00” + “5:00” ② ♣ ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) + (1 ❂ 2 ❀ � 3 ❂ 4) ♣ = ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. neutral = (0 ❀ 1) ✎ P 1 = ( ① 1 ❀ ② 1 ) “5:00” + “9:00” ✎ ✂ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) ♣ = (1 ❂ 2 ❀ � 3 ❂ 4) + ( � 1 ❀ 0) ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ ✐ ① ✐ ✂ P P ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. P P P P P ✎ P 3 = ( ① 3 ❀ ② 3 ) ✒ 3 ✓ ✒ 24 ✓ 5 ❀ 4 25 ❀ 7 2 = . 5 25 ✒ 3 ✓ ✒ 117 ✓ 5 ❀ 4 125 ❀ � 44 Use Cartesian coordinates for 3 = . 5 125 addition. Addition formula for the clock ① 2 + ② 2 = 1: ✒ 3 ✓ ✒ 336 ✓ 5 ❀ 4 625 ❀ � 527 4 = . 5 625 sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is ( ① 1 ❀ ② 1 ) + (0 ❀ 1) = ( ① 1 ❀ ② 1 ). ( ① 1 ② 2 + ② 1 ① 2 ❀ ② 1 ② 2 � ① 1 ① 2 ).

  35. � � Clock addition without sin, cos: Examples of clock addition: “2:00” + “5:00” ② ♣ ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) + (1 ❂ 2 ❀ � 3 ❂ 4) ♣ = ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. neutral = (0 ❀ 1) ✎ P 1 = ( ① 1 ❀ ② 1 ) “5:00” + “9:00” ✎ ✂ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) ♣ = (1 ❂ 2 ❀ � 3 ❂ 4) + ( � 1 ❀ 0) ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ ✐ ① ✂ ✐ P P ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. P P P P P ✎ P 3 = ( ① 3 ❀ ② 3 ) ✒ 3 ✓ ✒ 24 ✓ 5 ❀ 4 25 ❀ 7 2 = . 5 25 ✒ 3 ✓ ✒ 117 ✓ 5 ❀ 4 125 ❀ � 44 Use Cartesian coordinates for 3 = . 5 125 addition. Addition formula for the clock ① 2 + ② 2 = 1: ✒ 3 ✓ ✒ 336 ✓ 5 ❀ 4 625 ❀ � 527 4 = . 5 625 sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is ( ① 1 ❀ ② 1 ) + (0 ❀ 1) = ( ① 1 ❀ ② 1 ). ( ① 1 ② 2 + ② 1 ① 2 ❀ ② 1 ② 2 � ① 1 ① 2 ). ( ① 1 ❀ ② 1 ) + ( � ① 1 ❀ ② 1 ) =

  36. � � Clock addition without sin, cos: Examples of clock addition: “2:00” + “5:00” ② ♣ ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) + (1 ❂ 2 ❀ � 3 ❂ 4) ♣ = ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. neutral = (0 ❀ 1) ✎ P 1 = ( ① 1 ❀ ② 1 ) “5:00” + “9:00” ✎ ✂ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) ♣ = (1 ❂ 2 ❀ � 3 ❂ 4) + ( � 1 ❀ 0) ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ ✐ ① ✂ ✐ P P ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. P P P P P ✎ P 3 = ( ① 3 ❀ ② 3 ) ✒ 3 ✓ ✒ 24 ✓ 5 ❀ 4 25 ❀ 7 2 = . 5 25 ✒ 3 ✓ ✒ 117 ✓ 5 ❀ 4 125 ❀ � 44 Use Cartesian coordinates for 3 = . 5 125 addition. Addition formula for the clock ① 2 + ② 2 = 1: ✒ 3 ✓ ✒ 336 ✓ 5 ❀ 4 625 ❀ � 527 4 = . 5 625 sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is ( ① 1 ❀ ② 1 ) + (0 ❀ 1) = ( ① 1 ❀ ② 1 ). ( ① 1 ② 2 + ② 1 ① 2 ❀ ② 1 ② 2 � ① 1 ① 2 ). ( ① 1 ❀ ② 1 ) + ( � ① 1 ❀ ② 1 ) = (0 ❀ 1).

  37. � � addition without sin, cos: Examples of clock addition: Clocks over “2:00” + “5:00” ② ✁ ✁ ✁ ✁ ✁ ✁ ✁ ♣ ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) + (1 ❂ 2 ❀ � 3 ❂ 4) ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ♣ = ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. neutral = (0 ❀ 1) ✎ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ P 1 = ( ① 1 ❀ ② 1 ) “5:00” + “9:00” ✎ ✂ ✂ ✁ ✁ ✎ ✁ ✁ ✎ ✁ ✁ ✁ ✂ P 2 = ( ① 2 ❀ ② 2 ) ♣ = (1 ❂ 2 ❀ � 3 ❂ 4) + ( � 1 ❀ 0) ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ ✐ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ① ✂ P ✐ P ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. P P P P P ✎ ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ P 3 = ( ① 3 ❀ ② 3 ) ✒ 3 ✓ ✒ 24 ✓ 5 ❀ 4 25 ❀ 7 2 = . ✁ ✁ ✁ ✁ ✁ ✁ ✁ 5 25 Clock( F 7 ✒ 3 ✓ ✒ 117 ✓ 5 ❀ 4 125 ❀ � 44 Cartesian coordinates for 3 = . ✟ ✠ ( ①❀ ② ) ✷ ✂ ① ② 5 125 addition. Addition formula Here F 7 ❢ ❀ ❀ ❀ ❀ ❀ ❀ ❣ clock ① 2 + ② 2 = 1: ✒ 3 ✓ ✒ 336 ✓ 5 ❀ 4 625 ❀ � 527 4 = . = ❢ 0 ❀ 1 ❀ 2 ❀ ❀ � ❀ � ❀ � ❣ 5 625 of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is with arit ( ① 1 ❀ ② 1 ) + (0 ❀ 1) = ( ① 1 ❀ ② 1 ). ① ② + ② 1 ① 2 ❀ ② 1 ② 2 � ① 1 ① 2 ). e.g. 2 ✁ 5 ❂ ( ① 1 ❀ ② 1 ) + ( � ① 1 ❀ ② 1 ) = (0 ❀ 1).

  38. � without sin, cos: Examples of clock addition: Clocks over finite fields “2:00” + “5:00” ② ✁ ✁ ✁ ✁ ✁ ✁ ✁ ♣ ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) + (1 ❂ 2 ❀ � 3 ❂ 4) ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ♣ = ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. neutral = (0 ❀ 1) ✎ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ P 1 = ( ① 1 ❀ ② 1 ) “5:00” + “9:00” ✎ ✂ ✂ ✁ ✁ ✎ ✁ ✁ ✎ ✁ ✁ ✁ P 2 = ( ① 2 ❀ ② 2 ) ♣ = (1 ❂ 2 ❀ � 3 ❂ 4) + ( � 1 ❀ 0) ✎ ✐ ✐ ✐ ✐ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ① ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. P P P ✎ ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ P 3 = ( ① 3 ❀ ② 3 ) ✒ 3 ✓ ✒ 24 ✓ 5 ❀ 4 25 ❀ 7 2 = . ✁ ✁ ✁ ✁ ✁ ✁ ✁ 5 25 Clock( F 7 ) = ✒ 3 ✓ ✒ 117 ✓ 5 ❀ 4 125 ❀ � 44 ordinates for 3 = . ✟ ✠ ( ①❀ ② ) ✷ F 7 ✂ F 7 ① ② 5 125 Addition formula Here F 7 = ❢ 0 ❀ 1 ❀ 2 ❀ ❀ ❀ ❀ ❣ ① + ② 2 = 1: ✒ 3 ✓ ✒ 336 ✓ 5 ❀ 4 625 ❀ � 527 4 = . = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ � 3 ❀ � ❀ � ❣ 5 625 ① ❀ ② and ( ① 2 ❀ ② 2 ) is with arithmetic mo ( ① 1 ❀ ② 1 ) + (0 ❀ 1) = ( ① 1 ❀ ② 1 ). ② ① ❀ ② ② 2 � ① 1 ① 2 ). ① ② e.g. 2 ✁ 5 = 3 and ❂ ( ① 1 ❀ ② 1 ) + ( � ① 1 ❀ ② 1 ) = (0 ❀ 1).

  39. sin, cos: Examples of clock addition: Clocks over finite fields “2:00” + “5:00” ② ✁ ✁ ✁ ✁ ✁ ✁ ✁ ♣ ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) + (1 ❂ 2 ❀ � 3 ❂ 4) ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ♣ = ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. (0 ❀ 1) ✎ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ( ① 1 ❀ ② 1 ) P “5:00” + “9:00” ✎ ✁ ✁ ✎ ✁ ✁ ✎ ✁ ✁ ✁ P = ( ① 2 ❀ ② 2 ) ♣ = (1 ❂ 2 ❀ � 3 ❂ 4) + ( � 1 ❀ 0) ✎ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ① ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. ✎ ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ P ( ① 3 ❀ ② 3 ) ✒ 3 ✓ ✒ 24 ✓ 5 ❀ 4 25 ❀ 7 2 = . ✁ ✁ ✁ ✁ ✁ ✁ ✁ 5 25 Clock( F 7 ) = ✒ 3 ✓ ✒ 117 ✓ 5 ❀ 4 125 ❀ � 44 for 3 = . ( ①❀ ② ) ✷ F 7 ✂ F 7 : ① 2 + ② 2 ✟ ✠ 5 125 Here F 7 = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ 4 ❀ 5 ❀ 6 ❣ ✒ 3 ✓ ✒ 336 ✓ 5 ❀ 4 625 ❀ � 527 ① ② 4 = . = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ � 3 ❀ � 2 ❀ � 1 ❣ 5 625 ① ❀ ② ① ❀ ② 2 ) is with arithmetic modulo 7. ( ① 1 ❀ ② 1 ) + (0 ❀ 1) = ( ① 1 ❀ ② 1 ). ② ① ❀ ② ② � ① ① ). ① ② e.g. 2 ✁ 5 = 3 and 3 ❂ 2 = 5 in ( ① 1 ❀ ② 1 ) + ( � ① 1 ❀ ② 1 ) = (0 ❀ 1).

  40. Examples of clock addition: Clocks over finite fields “2:00” + “5:00” ✁ ✁ ✁ ✁ ✁ ✁ ✁ ♣ ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) + (1 ❂ 2 ❀ � 3 ❂ 4) ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ♣ = ( � 1 ❂ 2 ❀ � 3 ❂ 4) = “7:00”. ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ “5:00” + “9:00” ✁ ✁ ✎ ✁ ✁ ✎ ✁ ✁ ✁ ♣ = (1 ❂ 2 ❀ � 3 ❂ 4) + ( � 1 ❀ 0) ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ♣ = ( 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ✒ 3 ✓ ✒ 24 ✓ 5 ❀ 4 25 ❀ 7 2 = . ✁ ✁ ✁ ✁ ✁ ✁ ✁ 5 25 Clock( F 7 ) = ✒ 3 ✓ ✒ 117 ✓ 5 ❀ 4 125 ❀ � 44 3 = . ( ①❀ ② ) ✷ F 7 ✂ F 7 : ① 2 + ② 2 = 1 ✟ ✠ . 5 125 Here F 7 = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ 4 ❀ 5 ❀ 6 ❣ ✒ 3 ✓ ✒ 336 ✓ 5 ❀ 4 625 ❀ � 527 4 = . = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ � 3 ❀ � 2 ❀ � 1 ❣ 5 625 with arithmetic modulo 7. ( ① 1 ❀ ② 1 ) + (0 ❀ 1) = ( ① 1 ❀ ② 1 ). e.g. 2 ✁ 5 = 3 and 3 ❂ 2 = 5 in F 7 . ( ① 1 ❀ ② 1 ) + ( � ① 1 ❀ ② 1 ) = (0 ❀ 1).

  41. Examples of clock addition: Clocks over finite fields Larger exa + “5:00” Examples ✁ ✁ ✁ ✁ ✁ ✁ ✁ ♣ ♣ 3 ❂ 4 ❀ 1 ❂ 2) + (1 ❂ 2 ❀ � 3 ❂ 4) on Clock( ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ♣ � ❂ 2 ❀ � 3 ❂ 4) = “7:00”. 2(1000 ❀ 2) ❀ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ + “9:00” ✁ ✁ ✎ ✁ ✁ ✎ ✁ ✁ ✁ ♣ ❂ 2 ❀ � 3 ❂ 4) + ( � 1 ❀ 0) ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ♣ 3 ❂ 4 ❀ 1 ❂ 2) = “2:00”. ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ✒ ✓ ✒ 24 ✓ ❀ 4 25 ❀ 7 = . ✁ ✁ ✁ ✁ ✁ ✁ ✁ 5 25 Clock( F 7 ) = ✒ ✓ ✒ 117 ✓ ❀ 4 125 ❀ � 44 = . ( ①❀ ② ) ✷ F 7 ✂ F 7 : ① 2 + ② 2 = 1 ✟ ✠ . 5 125 Here F 7 = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ 4 ❀ 5 ❀ 6 ❣ ✒ ✓ ✒ 336 ✓ ❀ 4 625 ❀ � 527 = . = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ � 3 ❀ � 2 ❀ � 1 ❣ 5 625 with arithmetic modulo 7. ① ❀ ② ) + (0 ❀ 1) = ( ① 1 ❀ ② 1 ). e.g. 2 ✁ 5 = 3 and 3 ❂ 2 = 5 in F 7 . ① ❀ ② ) + ( � ① 1 ❀ ② 1 ) = (0 ❀ 1).

  42. ck addition: Clocks over finite fields Larger example: Clo Examples of addition ✁ ✁ ✁ ✁ ✁ ✁ ✁ ♣ ♣ ❂ ❀ ❂ (1 ❂ 2 ❀ � 3 ❂ 4) on Clock( F 1000003 ): ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ♣ � ❂ ❀ � ❂ 4) = “7:00”. 2(1000 ❀ 2) = (4000 ❀ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ✎ ✁ ✁ ✁ ♣ ❂ ❀ � ❂ 4) + ( � 1 ❀ 0) ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ♣ ❂ ❀ ❂ “2:00”. ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ✒ ✓ ✒ 24 ✓ 25 ❀ 7 ❀ . ✁ ✁ ✁ ✁ ✁ ✁ ✁ 25 Clock( F 7 ) = ✒ ✓ ✒ 117 ✓ 125 ❀ � 44 ❀ . ( ①❀ ② ) ✷ F 7 ✂ F 7 : ① 2 + ② 2 = 1 ✟ ✠ . 125 Here F 7 = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ 4 ❀ 5 ❀ 6 ❣ ✒ ✓ ✒ 336 ✓ 625 ❀ � 527 ❀ . = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ � 3 ❀ � 2 ❀ � 1 ❣ 625 with arithmetic modulo 7. ① ❀ ② ❀ = ( ① 1 ❀ ② 1 ). e.g. 2 ✁ 5 = 3 and 3 ❂ 2 = 5 in F 7 . ① ❀ ② � ① ❀ ② 1 ) = (0 ❀ 1).

  43. addition: Clocks over finite fields Larger example: Clock( F 1000003 Examples of addition ✁ ✁ ✁ ✁ ✁ ✁ ✁ ♣ ♣ ❂ ❀ ❂ ❂ ❀ � 3 ❂ 4) on Clock( F 1000003 ): ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ♣ � ❂ ❀ � ❂ “7:00”. 2(1000 ❀ 2) = (4000 ❀ 7). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ✎ ✁ ✁ ✁ ♣ ❂ ❀ � ❂ � ❀ 0) ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ♣ ❂ ❀ ❂ ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ✒ ✓ ✒ ✓ ❀ ❀ ✁ ✁ ✁ ✁ ✁ ✁ ✁ Clock( F 7 ) = ✒ ✓ ✒ ✓ ❀ � ❀ . ( ①❀ ② ) ✷ F 7 ✂ F 7 : ① 2 + ② 2 = 1 ✟ ✠ . Here F 7 = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ 4 ❀ 5 ❀ 6 ❣ ✒ ✓ ✒ ✓ ❀ � ❀ . = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ � 3 ❀ � 2 ❀ � 1 ❣ with arithmetic modulo 7. ① ❀ ② ❀ ① ❀ ② ). e.g. 2 ✁ 5 = 3 and 3 ❂ 2 = 5 in F 7 . ① ❀ ② � ① ❀ ② ❀ 1).

  44. Clocks over finite fields Larger example: Clock( F 1000003 ). Examples of addition ✁ ✁ ✁ ✁ ✁ ✁ ✁ on Clock( F 1000003 ): ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ 2(1000 ❀ 2) = (4000 ❀ 7). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ✁ ✁ ✁ ✁ ✁ Clock( F 7 ) = ( ①❀ ② ) ✷ F 7 ✂ F 7 : ① 2 + ② 2 = 1 ✟ ✠ . Here F 7 = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ 4 ❀ 5 ❀ 6 ❣ = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ � 3 ❀ � 2 ❀ � 1 ❣ with arithmetic modulo 7. e.g. 2 ✁ 5 = 3 and 3 ❂ 2 = 5 in F 7 .

  45. Clocks over finite fields Larger example: Clock( F 1000003 ). Examples of addition ✁ ✁ ✁ ✁ ✁ ✁ ✁ on Clock( F 1000003 ): ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ 2(1000 ❀ 2) = (4000 ❀ 7). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ 4(1000 ❀ 2) = (56000 ❀ 97). ✁ ✁ ✎ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ✁ ✁ ✁ ✁ ✁ Clock( F 7 ) = ( ①❀ ② ) ✷ F 7 ✂ F 7 : ① 2 + ② 2 = 1 ✟ ✠ . Here F 7 = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ 4 ❀ 5 ❀ 6 ❣ = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ � 3 ❀ � 2 ❀ � 1 ❣ with arithmetic modulo 7. e.g. 2 ✁ 5 = 3 and 3 ❂ 2 = 5 in F 7 .

  46. Clocks over finite fields Larger example: Clock( F 1000003 ). Examples of addition ✁ ✁ ✁ ✁ ✁ ✁ ✁ on Clock( F 1000003 ): ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ 2(1000 ❀ 2) = (4000 ❀ 7). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ 4(1000 ❀ 2) = (56000 ❀ 97). ✁ ✁ ✎ ✁ ✁ ✎ ✁ ✁ ✁ 8(1000 ❀ 2) = (863970 ❀ 18817). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ✁ ✁ ✁ ✁ ✁ Clock( F 7 ) = ( ①❀ ② ) ✷ F 7 ✂ F 7 : ① 2 + ② 2 = 1 ✟ ✠ . Here F 7 = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ 4 ❀ 5 ❀ 6 ❣ = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ � 3 ❀ � 2 ❀ � 1 ❣ with arithmetic modulo 7. e.g. 2 ✁ 5 = 3 and 3 ❂ 2 = 5 in F 7 .

  47. Clocks over finite fields Larger example: Clock( F 1000003 ). Examples of addition ✁ ✁ ✁ ✁ ✁ ✁ ✁ on Clock( F 1000003 ): ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ 2(1000 ❀ 2) = (4000 ❀ 7). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ 4(1000 ❀ 2) = (56000 ❀ 97). ✁ ✁ ✎ ✁ ✁ ✎ ✁ ✁ ✁ 8(1000 ❀ 2) = (863970 ❀ 18817). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ 16(1000 ❀ 2) = (549438 ❀ 156853). ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ ✁ ✁ ✁ ✁ ✁ Clock( F 7 ) = ( ①❀ ② ) ✷ F 7 ✂ F 7 : ① 2 + ② 2 = 1 ✟ ✠ . Here F 7 = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ 4 ❀ 5 ❀ 6 ❣ = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ � 3 ❀ � 2 ❀ � 1 ❣ with arithmetic modulo 7. e.g. 2 ✁ 5 = 3 and 3 ❂ 2 = 5 in F 7 .

  48. Clocks over finite fields Larger example: Clock( F 1000003 ). Examples of addition ✁ ✁ ✁ ✁ ✁ ✁ ✁ on Clock( F 1000003 ): ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ 2(1000 ❀ 2) = (4000 ❀ 7). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ 4(1000 ❀ 2) = (56000 ❀ 97). ✁ ✁ ✎ ✁ ✁ ✎ ✁ ✁ ✁ 8(1000 ❀ 2) = (863970 ❀ 18817). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ 16(1000 ❀ 2) = (549438 ❀ 156853). ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ 17(1000 ❀ 2) = (951405 ❀ 877356). ✁ ✁ ✁ ✁ ✁ ✁ ✁ Clock( F 7 ) = ( ①❀ ② ) ✷ F 7 ✂ F 7 : ① 2 + ② 2 = 1 ✟ ✠ . Here F 7 = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ 4 ❀ 5 ❀ 6 ❣ = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ � 3 ❀ � 2 ❀ � 1 ❣ with arithmetic modulo 7. e.g. 2 ✁ 5 = 3 and 3 ❂ 2 = 5 in F 7 .

  49. Clocks over finite fields Larger example: Clock( F 1000003 ). Examples of addition ✁ ✁ ✁ ✁ ✁ ✁ ✁ on Clock( F 1000003 ): ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ 2(1000 ❀ 2) = (4000 ❀ 7). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ 4(1000 ❀ 2) = (56000 ❀ 97). ✁ ✁ ✎ ✁ ✁ ✎ ✁ ✁ ✁ 8(1000 ❀ 2) = (863970 ❀ 18817). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ 16(1000 ❀ 2) = (549438 ❀ 156853). ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ 17(1000 ❀ 2) = (951405 ❀ 877356). ✁ ✁ ✁ ✁ ✁ ✁ ✁ “Scalar multiplication” Clock( F 7 ) = ( ①❀ ② ) ✷ F 7 ✂ F 7 : ① 2 + ② 2 = 1 on a clock: ✟ ✠ . Given integer ♥ ✕ 0 Here F 7 = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ 4 ❀ 5 ❀ 6 ❣ and clock point ( ①❀ ② ), = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ � 3 ❀ � 2 ❀ � 1 ❣ compute ♥ ( ①❀ ② ). with arithmetic modulo 7. e.g. 2 ✁ 5 = 3 and 3 ❂ 2 = 5 in F 7 .

  50. over finite fields Larger example: Clock( F 1000003 ). “Binary If ♥ is even, ♥ ①❀ ② Examples of addition ✁ ✁ ✁ ✁ ✁ ✁ ✁ by doubling ♥❂ ①❀ ② on Clock( F 1000003 ): ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ Otherwise ♥ ①❀ ② 2(1000 ❀ 2) = (4000 ❀ 7). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ by adding ①❀ ② ♥ � ①❀ ② 4(1000 ❀ 2) = (56000 ❀ 97). ✁ ✁ ✎ ✁ ✁ ✎ ✁ ✁ ✁ This is very 8(1000 ❀ 2) = (863970 ❀ 18817). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ 16(1000 ❀ 2) = (549438 ❀ 156853). ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ 17(1000 ❀ 2) = (951405 ❀ 877356). ✁ ✁ ✁ ✁ ✁ ✁ ✁ “Scalar multiplication” F 7 ) = ①❀ ② ) ✷ F 7 ✂ F 7 : ① 2 + ② 2 = 1 on a clock: ✟ ✠ . Given integer ♥ ✕ 0 7 = ❢ 0 ❀ 1 ❀ 2 ❀ 3 ❀ 4 ❀ 5 ❀ 6 ❣ and clock point ( ①❀ ② ), ❢ ❀ 1 ❀ 2 ❀ 3 ❀ � 3 ❀ � 2 ❀ � 1 ❣ compute ♥ ( ①❀ ② ). rithmetic modulo 7. ✁ 5 = 3 and 3 ❂ 2 = 5 in F 7 .

  51. ite fields Larger example: Clock( F 1000003 ). “Binary method”: If ♥ is even, compute ♥ ①❀ ② Examples of addition ✁ ✁ ✁ ✁ ✁ ✁ ✁ by doubling ( ♥❂ 2)( ①❀ ② on Clock( F 1000003 ): ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ Otherwise compute ♥ ①❀ ② 2(1000 ❀ 2) = (4000 ❀ 7). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ by adding ( ①❀ ② ) to ♥ � ①❀ ② 4(1000 ❀ 2) = (56000 ❀ 97). ✁ ✁ ✎ ✁ ✁ ✎ ✁ ✁ ✁ This is very fast. 8(1000 ❀ 2) = (863970 ❀ 18817). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ 16(1000 ❀ 2) = (549438 ❀ 156853). ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ 17(1000 ❀ 2) = (951405 ❀ 877356). ✁ ✁ ✁ ✁ ✁ ✁ ✁ “Scalar multiplication” 7 : ① 2 + ② 2 = 1 on a clock: ✟ ✠ ①❀ ② ✷ ✂ . Given integer ♥ ✕ 0 ❢ ❀ ❀ 2 ❀ 3 ❀ 4 ❀ 5 ❀ 6 ❣ and clock point ( ①❀ ② ), ❢ ❀ ❀ ❀ ❀ � ❀ � 2 ❀ � 1 ❣ compute ♥ ( ①❀ ② ). modulo 7. ✁ and 3 ❂ 2 = 5 in F 7 .

  52. Larger example: Clock( F 1000003 ). “Binary method”: If ♥ is even, compute ♥ ( ①❀ ② Examples of addition ✁ ✁ ✁ ✁ ✁ ✁ ✁ by doubling ( ♥❂ 2)( ①❀ ② ). on Clock( F 1000003 ): ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ Otherwise compute ♥ ( ①❀ ② ) 2(1000 ❀ 2) = (4000 ❀ 7). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ by adding ( ①❀ ② ) to ( ♥ � 1)( ①❀ ② 4(1000 ❀ 2) = (56000 ❀ 97). ✁ ✁ ✎ ✁ ✁ ✎ ✁ ✁ ✁ This is very fast. 8(1000 ❀ 2) = (863970 ❀ 18817). ✁ ✁ ✁ ✎ ✁ ✁ ✁ ✁ 16(1000 ❀ 2) = (549438 ❀ 156853). ✁ ✎ ✁ ✁ ✁ ✁ ✎ ✁ ✁ 17(1000 ❀ 2) = (951405 ❀ 877356). ✁ ✁ ✁ ✁ ✁ ✁ ✁ “Scalar multiplication” ② 2 = 1 on a clock: ✟ ✠ ①❀ ② ✷ ✂ ① . Given integer ♥ ✕ 0 ❢ ❀ ❀ ❀ ❀ ❀ ❀ 6 ❣ and clock point ( ①❀ ② ), ❢ ❀ ❀ ❀ ❀ � ❀ � ❀ � ❣ compute ♥ ( ①❀ ② ). ✁ ❂ in F 7 .

  53. Larger example: Clock( F 1000003 ). “Binary method”: If ♥ is even, compute ♥ ( ①❀ ② ) Examples of addition by doubling ( ♥❂ 2)( ①❀ ② ). on Clock( F 1000003 ): Otherwise compute ♥ ( ①❀ ② ) 2(1000 ❀ 2) = (4000 ❀ 7). by adding ( ①❀ ② ) to ( ♥ � 1)( ①❀ ② ). 4(1000 ❀ 2) = (56000 ❀ 97). This is very fast. 8(1000 ❀ 2) = (863970 ❀ 18817). 16(1000 ❀ 2) = (549438 ❀ 156853). 17(1000 ❀ 2) = (951405 ❀ 877356). “Scalar multiplication” on a clock: Given integer ♥ ✕ 0 and clock point ( ①❀ ② ), compute ♥ ( ①❀ ② ).

  54. Larger example: Clock( F 1000003 ). “Binary method”: If ♥ is even, compute ♥ ( ①❀ ② ) Examples of addition by doubling ( ♥❂ 2)( ①❀ ② ). on Clock( F 1000003 ): Otherwise compute ♥ ( ①❀ ② ) 2(1000 ❀ 2) = (4000 ❀ 7). by adding ( ①❀ ② ) to ( ♥ � 1)( ①❀ ② ). 4(1000 ❀ 2) = (56000 ❀ 97). This is very fast. 8(1000 ❀ 2) = (863970 ❀ 18817). 16(1000 ❀ 2) = (549438 ❀ 156853). But figuring out ♥ 17(1000 ❀ 2) = (951405 ❀ 877356). given ( ①❀ ② ) and ♥ ( ①❀ ② ) is much more difficult. “Scalar multiplication” on a clock: With 30 clock additions Given integer ♥ ✕ 0 we computed and clock point ( ①❀ ② ), ♥ (1000 ❀ 2) = (947472 ❀ 736284) compute ♥ ( ①❀ ② ). for some 6-digit ♥ . Can you figure out ♥ ?

  55. example: Clock( F 1000003 ). “Binary method”: Clock cryptography If ♥ is even, compute ♥ ( ①❀ ② ) Examples of addition Standardize ♣ by doubling ( ♥❂ 2)( ①❀ ② ). ck( F 1000003 ): and some ①❀ ② ✷ ♣ Otherwise compute ♥ ( ①❀ ② ) ❀ 2) = (4000 ❀ 7). Alice cho ❛ by adding ( ①❀ ② ) to ( ♥ � 1)( ①❀ ② ). ❀ 2) = (56000 ❀ 97). Computes ❛ ①❀ ② This is very fast. ❀ 2) = (863970 ❀ 18817). Bob cho ❜ 16(1000 ❀ 2) = (549438 ❀ 156853). But figuring out ♥ Computes ❜ ①❀ ② 17(1000 ❀ 2) = (951405 ❀ 877356). given ( ①❀ ② ) and ♥ ( ①❀ ② ) is much more difficult. Alice computes ❛ ❜ ①❀ ② r multiplication” Bob computes ❜ ❛ ①❀ ② clock: With 30 clock additions They use integer ♥ ✕ 0 we computed to encrypt clock point ( ①❀ ② ), ♥ (1000 ❀ 2) = (947472 ❀ 736284) compute ♥ ( ①❀ ② ). for some 6-digit ♥ . Warning Can you figure out ♥ ? Many choices ♣

  56. Clock( F 1000003 ). “Binary method”: Clock cryptography If ♥ is even, compute ♥ ( ①❀ ② ) addition Standardize a large ♣ by doubling ( ♥❂ 2)( ①❀ ② ). 1000003 ): and some ( ①❀ ② ) ✷ ♣ Otherwise compute ♥ ( ①❀ ② ) ❀ (4000 ❀ 7). Alice chooses big secret ❛ by adding ( ①❀ ② ) to ( ♥ � 1)( ①❀ ② ). ❀ (56000 ❀ 97). Computes her public ❛ ①❀ ② This is very fast. ❀ (863970 ❀ 18817). Bob chooses big secret ❜ ❀ (549438 ❀ 156853). But figuring out ♥ Computes his public ❜ ①❀ ② ❀ (951405 ❀ 877356). given ( ①❀ ② ) and ♥ ( ①❀ ② ) is much more difficult. Alice computes ❛ ( ❜ ①❀ ② multiplication” Bob computes ❜ ( ❛ ①❀ ② With 30 clock additions They use this shared ♥ ✕ 0 we computed to encrypt with AES-GCM ( ①❀ ② ), ♥ (1000 ❀ 2) = (947472 ❀ 736284) ♥ ①❀ ② ). for some 6-digit ♥ . Warning #1: Can you figure out ♥ ? Many choices of ♣

  57. 1000003 ). “Binary method”: Clock cryptography If ♥ is even, compute ♥ ( ①❀ ② ) Standardize a large prime ♣ by doubling ( ♥❂ 2)( ①❀ ② ). and some ( ①❀ ② ) ✷ Clock( F ♣ ). Otherwise compute ♥ ( ①❀ ② ) ❀ ❀ Alice chooses big secret ❛ . by adding ( ①❀ ② ) to ( ♥ � 1)( ①❀ ② ). ❀ ❀ Computes her public key ❛ ( ①❀ ② This is very fast. ❀ ❀ 18817). Bob chooses big secret ❜ . ❀ ❀ 156853). But figuring out ♥ Computes his public key ❜ ( ①❀ ② ❀ ❀ 877356). given ( ①❀ ② ) and ♥ ( ①❀ ② ) is much more difficult. Alice computes ❛ ( ❜ ( ①❀ ② )). Bob computes ❜ ( ❛ ( ①❀ ② )). With 30 clock additions They use this shared secret ♥ ✕ we computed to encrypt with AES-GCM etc. ♥ (1000 ❀ 2) = (947472 ❀ 736284) ①❀ ② ♥ ①❀ ② for some 6-digit ♥ . Warning #1: Can you figure out ♥ ? Many choices of ♣ are bad!

  58. “Binary method”: Clock cryptography If ♥ is even, compute ♥ ( ①❀ ② ) Standardize a large prime ♣ by doubling ( ♥❂ 2)( ①❀ ② ). and some ( ①❀ ② ) ✷ Clock( F ♣ ). Otherwise compute ♥ ( ①❀ ② ) Alice chooses big secret ❛ . by adding ( ①❀ ② ) to ( ♥ � 1)( ①❀ ② ). Computes her public key ❛ ( ①❀ ② ). This is very fast. Bob chooses big secret ❜ . But figuring out ♥ Computes his public key ❜ ( ①❀ ② ). given ( ①❀ ② ) and ♥ ( ①❀ ② ) is much more difficult. Alice computes ❛ ( ❜ ( ①❀ ② )). Bob computes ❜ ( ❛ ( ①❀ ② )). With 30 clock additions They use this shared secret we computed to encrypt with AES-GCM etc. ♥ (1000 ❀ 2) = (947472 ❀ 736284) for some 6-digit ♥ . Warning #1: Can you figure out ♥ ? Many choices of ♣ are bad!

  59. � � ry method”: Clock cryptography Alice’s secret ❛ ❜ ♥ even, compute ♥ ( ①❀ ② ) Standardize a large prime ♣ bling ( ♥❂ 2)( ①❀ ② ). and some ( ①❀ ② ) ✷ Clock( F ♣ ). Alice’s Otherwise compute ♥ ( ①❀ ② ) public Alice chooses big secret ❛ . ding ( ①❀ ② ) to ( ♥ � 1)( ①❀ ② ). ❛ ( ①❀ ② ❜ ①❀ ② Computes her public key ❛ ( ①❀ ② ). very fast. Bob chooses big secret ❜ . ❢ Alice ❀ Bob ❣ ❢ ❀ ❣ figuring out ♥ shared Computes his public key ❜ ( ①❀ ② ). ( ①❀ ② ) and ♥ ( ①❀ ② ) ❛❜ ( ①❀ ② ❜❛ ①❀ ② much more difficult. Alice computes ❛ ( ❜ ( ①❀ ② )). Bob computes ❜ ( ❛ ( ①❀ ② )). 30 clock additions They use this shared secret computed to encrypt with AES-GCM etc. ♥ (1000 ❀ 2) = (947472 ❀ 736284) ome 6-digit ♥ . Warning #1: ou figure out ♥ ? Many choices of ♣ are bad!

  60. � � d”: Clock cryptography Alice’s secret key ❛ ❜ ♥ compute ♥ ( ①❀ ② ) Standardize a large prime ♣ ♥❂ 2)( ①❀ ② ). and some ( ①❀ ② ) ✷ Clock( F ♣ ). Alice’s mpute ♥ ( ①❀ ② ) public key Alice chooses big secret ❛ . ①❀ ② to ( ♥ � 1)( ①❀ ② ). ❛ ( ①❀ ② ) ❜ ①❀ ② ▲ ▲ Computes her public key ❛ ( ①❀ ② ). ▲ fast. ▲ ▲ � rrrr ▲ Bob chooses big secret ❜ . ❢ Alice ❀ Bob ❣ ’s ❢ ❀ ❣ ♥ = shared secret Computes his public key ❜ ( ①❀ ② ). ①❀ ② ♥ ( ①❀ ② ) ❛❜ ( ①❀ ② ) ❜❛ ①❀ ② difficult. Alice computes ❛ ( ❜ ( ①❀ ② )). Bob computes ❜ ( ❛ ( ①❀ ② )). additions They use this shared secret to encrypt with AES-GCM etc. (947472 ❀ 736284) ♥ ❀ ♥ . Warning #1: out ♥ ? Many choices of ♣ are bad!

  61. � � � � Clock cryptography Alice’s Bob’s secret key ❛ secret k ❜ ♥ ♥ ①❀ ② ) Standardize a large prime ♣ ♥❂ ①❀ ② and some ( ①❀ ② ) ✷ Clock( F ♣ ). Alice’s Bob’s ♥ ①❀ ② ) public key public Alice chooses big secret ❛ . ①❀ ② ♥ � 1)( ①❀ ② ). ❛ ( ①❀ ② ) ❜ ( ①❀ ② ▲ ▲ � rrrrrrr Computes her public key ❛ ( ①❀ ② ). ▲ ▲ ▲ ▲ ▲ Bob chooses big secret ❜ . ❢ Alice ❀ Bob ❣ ’s ❢ Bob ❀ Alice ❣ ♥ = shared secret shared s Computes his public key ❜ ( ①❀ ② ). ①❀ ② ♥ ①❀ ② ❛❜ ( ①❀ ② ) ❜❛ ( ①❀ ② Alice computes ❛ ( ❜ ( ①❀ ② )). Bob computes ❜ ( ❛ ( ①❀ ② )). They use this shared secret to encrypt with AES-GCM etc. ❀ 736284) ♥ ❀ ♥ Warning #1: ♥ Many choices of ♣ are bad!

  62. � � � � � Clock cryptography Alice’s Bob’s secret key ❛ secret key ❜ Standardize a large prime ♣ and some ( ①❀ ② ) ✷ Clock( F ♣ ). Alice’s Bob’s public key public key Alice chooses big secret ❛ . ❛ ( ①❀ ② ) ❜ ( ①❀ ② ) ▲ ▲ � rrrrrrr Computes her public key ❛ ( ①❀ ② ). ▲ ▲ ▲ ▲ ▲ Bob chooses big secret ❜ . ❢ Alice ❀ Bob ❣ ’s ❢ Bob ❀ Alice ❣ ’s = shared secret shared secret Computes his public key ❜ ( ①❀ ② ). ❛❜ ( ①❀ ② ) ❜❛ ( ①❀ ② ) Alice computes ❛ ( ❜ ( ①❀ ② )). Bob computes ❜ ( ❛ ( ①❀ ② )). They use this shared secret to encrypt with AES-GCM etc. Warning #1: Many choices of ♣ are bad!

  63. � � � � � Clock cryptography Alice’s Bob’s secret key ❛ secret key ❜ Standardize a large prime ♣ and some ( ①❀ ② ) ✷ Clock( F ♣ ). Alice’s Bob’s public key public key Alice chooses big secret ❛ . ❛ ( ①❀ ② ) ❜ ( ①❀ ② ) ▲ ▲ � rrrrrrr Computes her public key ❛ ( ①❀ ② ). ▲ ▲ ▲ ▲ ▲ Bob chooses big secret ❜ . ❢ Alice ❀ Bob ❣ ’s ❢ Bob ❀ Alice ❣ ’s = shared secret shared secret Computes his public key ❜ ( ①❀ ② ). ❛❜ ( ①❀ ② ) ❜❛ ( ①❀ ② ) Alice computes ❛ ( ❜ ( ①❀ ② )). Warning #2: Bob computes ❜ ( ❛ ( ①❀ ② )). Clocks aren’t elliptic! They use this shared secret Can use index calculus to encrypt with AES-GCM etc. to attack clock cryptography. Warning #1: To match RSA-3072 security Many choices of ♣ are bad! need ♣ ✙ 2 1536 .

  64. � � � � � cryptography Timing attacks Alice’s Bob’s secret key ❛ secret key ❜ Standardize a large prime ♣ Attacker some ( ①❀ ② ) ✷ Clock( F ♣ ). ❛ ( ①❀ ② ) and ❜ ①❀ ② Alice’s Bob’s public key public key chooses big secret ❛ . Attacker ❛ ( ①❀ ② ) ❜ ( ①❀ ② ) ▲ ▲ � rrrrrrr Computes her public key ❛ ( ①❀ ② ). Alice to ❛ ❜ ①❀ ② ▲ ▲ ▲ ▲ ▲ Often attack chooses big secret ❜ . ❢ Alice ❀ Bob ❣ ’s ❢ Bob ❀ Alice ❣ ’s time for = shared secret shared secret Computes his public key ❜ ( ①❀ ② ). performed ❛❜ ( ①❀ ② ) ❜❛ ( ①❀ ② ) computes ❛ ( ❜ ( ①❀ ② )). not just Warning #2: computes ❜ ( ❛ ( ①❀ ② )). This reveals ❛ Clocks aren’t elliptic! use this shared secret Fix: constant-time Can use index calculus encrypt with AES-GCM etc. to attack clock cryptography. performing rning #1: no matter To match RSA-3072 security choices of ♣ are bad! need ♣ ✙ 2 1536 .

  65. � � � � � cryptography Timing attacks Alice’s Bob’s secret key ❛ secret key ❜ rge prime ♣ Attacker sees more ①❀ ② ✷ Clock( F ♣ ). ❛ ( ①❀ ② ) and ❜ ( ①❀ ② ). Alice’s Bob’s public key public key big secret ❛ . Attacker sees time ❛ ( ①❀ ② ) ❜ ( ①❀ ② ) ▲ ▲ � rrrrrrr public key ❛ ( ①❀ ② ). Alice to compute ❛ ❜ ①❀ ② ▲ ▲ ▲ ▲ ▲ Often attacker can secret ❜ . ❢ Alice ❀ Bob ❣ ’s ❢ Bob ❀ Alice ❣ ’s time for each operation = shared secret shared secret public key ❜ ( ①❀ ② ). performed by Alice, ❛❜ ( ①❀ ② ) ❜❛ ( ①❀ ② ) ❛ ( ❜ ( ①❀ ② )). not just total time. Warning #2: ❜ ( ❛ ( ①❀ ② )). This reveals secret ❛ Clocks aren’t elliptic! shared secret Fix: constant-time Can use index calculus AES-GCM etc. to attack clock cryptography. performing same op no matter what scala To match RSA-3072 security ♣ are bad! need ♣ ✙ 2 1536 .

  66. � � � � � Timing attacks Alice’s Bob’s secret key ❛ secret key ❜ ♣ Attacker sees more than ①❀ ② ✷ ♣ ). ❛ ( ①❀ ② ) and ❜ ( ①❀ ② ). Alice’s Bob’s public key public key ❛ . Attacker sees time for ❛ ( ①❀ ② ) ❜ ( ①❀ ② ) ▲ ▲ � rrrrrrr ❛ ( ①❀ ② ). Alice to compute ❛ ( ❜ ( ①❀ ② )). ▲ ▲ ▲ ▲ ▲ Often attacker can see ❜ ❢ Alice ❀ Bob ❣ ’s ❢ Bob ❀ Alice ❣ ’s time for each operation = shared secret shared secret ❜ ( ①❀ ② ). performed by Alice, ❛❜ ( ①❀ ② ) ❜❛ ( ①❀ ② ) ❛ ❜ ①❀ ② )). not just total time. Warning #2: ❜ ❛ ①❀ ② This reveals secret ❛ . Clocks aren’t elliptic! cret Fix: constant-time code, Can use index calculus etc. to attack clock cryptography. performing same operations no matter what scalar is. To match RSA-3072 security ad! ♣ need ♣ ✙ 2 1536 .

  67. � � � � � Timing attacks Alice’s Bob’s secret key ❛ secret key ❜ Attacker sees more than ❛ ( ①❀ ② ) and ❜ ( ①❀ ② ). Alice’s Bob’s public key public key Attacker sees time for ❛ ( ①❀ ② ) ❜ ( ①❀ ② ) ▲ ▲ � rrrrrrr Alice to compute ❛ ( ❜ ( ①❀ ② )). ▲ ▲ ▲ ▲ ▲ Often attacker can see ❢ Alice ❀ Bob ❣ ’s ❢ Bob ❀ Alice ❣ ’s time for each operation = shared secret shared secret performed by Alice, ❛❜ ( ①❀ ② ) ❜❛ ( ①❀ ② ) not just total time. Warning #2: This reveals secret ❛ . Clocks aren’t elliptic! Fix: constant-time code, Can use index calculus to attack clock cryptography. performing same operations no matter what scalar is. To match RSA-3072 security need ♣ ✙ 2 1536 .

  68. � � � � Timing attacks Addition Alice’s Bob’s secret key ❛ secret key ❜ Attacker sees more than ② ❛ ( ①❀ ② ) and ❜ ( ①❀ ② ). Alice’s Bob’s ❀ ✎ public key public key Attacker sees time for P ① ❀ ② ❛ ①❀ ② ) ❜ ( ①❀ ② ) ▲ ▲ � rrrrrrr ✎ Alice to compute ❛ ( ❜ ( ①❀ ② )). ▲ ▲ ▲ P ① ❀ ② ▲ ✎ ▲ Often attacker can see ① ✎ ❢ Alice ❀ Bob ❣ ’s ❢ Bob ❀ Alice ❣ ’s P ① ❀ ② time for each operation = red secret shared secret performed by Alice, ❛❜ ( ①❀ ② ) ❜❛ ( ①❀ ② ) not just total time. ① 2 + ② 2 � ① ② rning #2: This reveals secret ❛ . Sum of ( ① ❀ ② ① ❀ ② aren’t elliptic! (( ① 1 ② 2 + ② ① ❂ � ① ① ② ② Fix: constant-time code, use index calculus ( ② 1 ② 2 � ① ① ❂ ① ① ② ② attack clock cryptography. performing same operations no matter what scalar is. match RSA-3072 security ♣ ✙ 2 1536 .

  69. � � � � Timing attacks Addition on an elliptic Bob’s ❛ secret key ❜ Attacker sees more than ② ❛ ( ①❀ ② ) and ❜ ( ①❀ ② ). Bob’s neutral ❀ ✎ public key Attacker sees time for P ① ❀ ② ❜ ( ①❀ ② ) ❛ ①❀ ② rrrr ✎ Alice to compute ❛ ( ❜ ( ①❀ ② )). ☞ ▲ P ① ❀ ② ▲ ☞ ✎ ▲ ☞ ❢ ❢ Often attacker can see ❢ ① ❢ ❬ ☞ ❬ ❬ ❬ ✎ ❢ ❀ ❣ ❢ Bob ❀ Alice ❣ ’s P ① ❀ ② time for each operation = shared secret performed by Alice, ❛❜ ①❀ ② ❜❛ ( ①❀ ② ) not just total time. ① 2 + ② 2 = 1 � 30 ① ② This reveals secret ❛ . Sum of ( ① 1 ❀ ② 1 ) and ① ❀ ② elliptic! (( ① 1 ② 2 + ② 1 ① 2 ) ❂ (1 � ① ① ② ② Fix: constant-time code, calculus ( ② 1 ② 2 � ① 1 ① 2 ) ❂ (1+30 ① ① ② ② cryptography. performing same operations no matter what scalar is. RSA-3072 security ♣ ✙

  70. � � � � Timing attacks Addition on an elliptic curve Bob’s ❛ secret key ❜ Attacker sees more than ② ❛ ( ①❀ ② ) and ❜ ( ①❀ ② ). Bob’s neutral = (0 ❀ ✎ public key Attacker sees time for P 1 = ( ① 1 ❀ ② ❜ ①❀ ② ) ❛ ①❀ ② ✎ Alice to compute ❛ ( ❜ ( ①❀ ② )). ☞ P 2 = ( ① ❀ ② ☞ ✎ ❢ ☞ ❢ ❢ Often attacker can see ❢ ① ❢ ❬ ☞ ❬ ❬ ❬ ❬ ✎ ❬ ❢ ❀ ❣ ❢ ❀ Alice ❣ ’s P 3 = ( ① ❀ ② time for each operation secret performed by Alice, ❛❜ ①❀ ② ❜❛ ①❀ ② ) not just total time. ① 2 + ② 2 = 1 � 30 ① 2 ② 2 . This reveals secret ❛ . Sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) (( ① 1 ② 2 + ② 1 ① 2 ) ❂ (1 � 30 ① 1 ① 2 ② 1 ② Fix: constant-time code, ( ② 1 ② 2 � ① 1 ① 2 ) ❂ (1+30 ① 1 ① 2 ② 1 ② cryptography. performing same operations no matter what scalar is. security ♣ ✙

  71. � � Timing attacks Addition on an elliptic curve Attacker sees more than ② ❛ ( ①❀ ② ) and ❜ ( ①❀ ② ). neutral = (0 ❀ 1) ✎ Attacker sees time for P 1 = ( ① 1 ❀ ② 1 ) ✎ Alice to compute ❛ ( ❜ ( ①❀ ② )). ☞ P 2 = ( ① 2 ❀ ② 2 ) ☞ ✎ ❢ ☞ ❢ ❢ Often attacker can see ❢ ① ❬ ☞ ❢ ❬ ❬ ❬ ❬ ✎ ❬ P 3 = ( ① 3 ❀ ② 3 ) time for each operation performed by Alice, not just total time. ① 2 + ② 2 = 1 � 30 ① 2 ② 2 . This reveals secret ❛ . Sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is (( ① 1 ② 2 + ② 1 ① 2 ) ❂ (1 � 30 ① 1 ① 2 ② 1 ② 2 ), Fix: constant-time code, ( ② 1 ② 2 � ① 1 ① 2 ) ❂ (1+30 ① 1 ① 2 ② 1 ② 2 )). performing same operations no matter what scalar is.

  72. � � Timing attacks Addition on an elliptic curve The clock er sees more than ② ② ❛ ①❀ ② ) and ❜ ( ①❀ ② ). neutral = (0 ❀ 1) ❀ ✎ ✎ er sees time for P ① ❀ ② ✎ P 1 = ( ① 1 ❀ ② 1 ) ✎ to compute ❛ ( ❜ ( ①❀ ② )). P ① ❀ ② ☞ ✎ P 2 = ( ① 2 ❀ ② 2 ) ☞ ✎ ❢ ☞ ❢ ❢ attacker can see ❢ ① ① ❬ ❢ ☞ ❬ ❬ ❬ ❬ ✎ ❬ P 3 = ( ① 3 ❀ ② 3 ) for each operation ✎ P ① ❀ ② rmed by Alice, just total time. ① 2 + ② 2 = 1 � 30 ① 2 ② 2 . ① 2 + ② 2 reveals secret ❛ . Sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is Sum of ( ① ❀ ② ① ❀ ② (( ① 1 ② 2 + ② 1 ① 2 ) ❂ (1 � 30 ① 1 ① 2 ② 1 ② 2 ), ( ① 1 ② 2 + ② ① constant-time code, ( ② 1 ② 2 � ① 1 ① 2 ) ❂ (1+30 ① 1 ① 2 ② 1 ② 2 )). ② 1 ② 2 � ① ① rming same operations matter what scalar is.

  73. � � � Addition on an elliptic curve The clock again, fo more than ② ② ❛ ①❀ ② ❜ ①❀ ② ). neutral = (0 ❀ 1) neutral ❀ ✎ ✎ time for P ① ❀ ② ✎ P 1 = ( ① 1 ❀ ② 1 ) ✎ ✂ compute ❛ ( ❜ ( ①❀ ② )). ✂ P ① ❀ ② ☞ ✎ ✂ P 2 = ( ① 2 ❀ ② 2 ) ☞ ✂ ✎ ✐ ❢ ✐ ☞ ✂ ❢ ✐ ❢ can see ✐ ❢ ① ① ❬ ☞ ❢ ✐ ✂ P ❬ ❬ ❬ P ❬ ✎ ❬ P P P 3 = ( ① 3 ❀ ② 3 ) P eration ✎ P ① ❀ ② Alice, time. ① 2 + ② 2 = 1 � 30 ① 2 ② 2 . ① 2 + ② 2 = 1. secret ❛ . Sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is Sum of ( ① 1 ❀ ② 1 ) and ① ❀ ② (( ① 1 ② 2 + ② 1 ① 2 ) ❂ (1 � 30 ① 1 ① 2 ② 1 ② 2 ), ( ① 1 ② 2 + ② 1 ① 2 , constant-time code, ( ② 1 ② 2 � ① 1 ① 2 ) ❂ (1+30 ① 1 ① 2 ② 1 ② 2 )). ② 1 ② 2 � ① 1 ① 2 ). operations scalar is.

  74. � � � � Addition on an elliptic curve The clock again, for comparison: ② ② ❛ ①❀ ② ❜ ①❀ ② neutral = (0 ❀ 1) neutral = (0 ❀ ✎ ✎ P 1 = ( ① ❀ ② ✎ P 1 = ( ① 1 ❀ ② 1 ) ✂ ✎ ✂ ❛ ❜ ①❀ ② )). ✂ P 2 = ① ❀ ② ☞ ✎ ✂ P 2 = ( ① 2 ❀ ② 2 ) ✐ ☞ ✂ ✐ ✎ ✐ ❢ ✐ ☞ ✂ ❢ ✐ ❢ ✐ ❢ ① ① ❢ ☞ ❬ ✐ P ✂ ❬ ❬ ❬ P ❬ ✎ ❬ P P P 3 = ( ① 3 ❀ ② 3 ) P P P ✎ P 3 = ( ① ❀ ② ① 2 + ② 2 = 1 � 30 ① 2 ② 2 . ① 2 + ② 2 = 1. ❛ Sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is Sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) (( ① 1 ② 2 + ② 1 ① 2 ) ❂ (1 � 30 ① 1 ① 2 ② 1 ② 2 ), ( ① 1 ② 2 + ② 1 ① 2 , ( ② 1 ② 2 � ① 1 ① 2 ) ❂ (1+30 ① 1 ① 2 ② 1 ② 2 )). ② 1 ② 2 � ① 1 ① 2 ). erations

  75. � � � � Addition on an elliptic curve The clock again, for comparison: ② ② neutral = (0 ❀ 1) neutral = (0 ❀ 1) ✎ ✎ P 1 = ( ① 1 ❀ ② 1 ) ✎ P 1 = ( ① 1 ❀ ② 1 ) ✂ ✎ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) ☞ ✎ ✂ P 2 = ( ① 2 ❀ ② 2 ) ✐ ☞ ✂ ✐ ✎ ✐ ❢ ✐ ☞ ✂ ❢ ✐ ❢ ✐ ❢ ① ① ☞ ❬ ❢ ✂ ✐ P ❬ ❬ ❬ P ❬ ✎ ❬ P P P 3 = ( ① 3 ❀ ② 3 ) P P P ✎ P 3 = ( ① 3 ❀ ② 3 ) ① 2 + ② 2 = 1 � 30 ① 2 ② 2 . ① 2 + ② 2 = 1. Sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is Sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is (( ① 1 ② 2 + ② 1 ① 2 ) ❂ (1 � 30 ① 1 ① 2 ② 1 ② 2 ), ( ① 1 ② 2 + ② 1 ① 2 , ( ② 1 ② 2 � ① 1 ① 2 ) ❂ (1+30 ① 1 ① 2 ② 1 ② 2 )). ② 1 ② 2 � ① 1 ① 2 ).

  76. � � � � Addition on an elliptic curve The clock again, for comparison: More elliptic Choose an ♣ ② ② Choose a ❞ ✷ ♣ neutral = (0 ❀ 1) neutral = (0 ❀ 1) ✎ ✎ ❢ ( ①❀ ② ) ✷ ♣ ✂ P 1 = ( ① 1 ❀ ② 1 ) ♣ ✎ P 1 = ( ① 1 ❀ ② 1 ) ✂ ① 2 + ② ✎ ✂ ❞① ② ❣ ✂ P 2 = ( ① 2 ❀ ② 2 ) ☞ ✎ ✂ P 2 = ( ① 2 ❀ ② 2 ) ✐ ☞ ✂ ✐ ✎ ✐ ❢ ✐ ☞ ✂ ❢ ✐ ❢ is a “complete ✐ ❢ ① ① ☞ ❬ ❢ P ✐ ✂ ❬ ❬ ❬ P ❬ ✎ ❬ P P P 3 = ( ① 3 ❀ ② 3 ) P P P ✎ P 3 = ( ① 3 ❀ ② 3 ) “The Edw ( ① 1 ❀ ② 1 ) + ① ❀ ② ① ❀ ② ② 2 = 1 � 30 ① 2 ② 2 . ① 2 + ② 2 = 1. ① where of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is Sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is ① ② ② ① ① 3 = ① ② + ② 1 ① 2 ) ❂ (1 � 30 ① 1 ① 2 ② 1 ② 2 ), ( ① 1 ② 2 + ② 1 ① 2 , 1 + ❞① ① ② ② ② ② � ① 1 ① 2 ) ❂ (1+30 ① 1 ① 2 ② 1 ② 2 )). ② 1 ② 2 � ① 1 ① 2 ). ② 1 ② � ① ① ② 3 = 1 � ❞① ① ② ②

  77. � � � elliptic curve The clock again, for comparison: More elliptic curves Choose an odd prime ♣ ② ② Choose a non-squa ❞ ✷ ♣ neutral = (0 ❀ 1) neutral = (0 ❀ 1) ✎ ✎ ❢ ( ①❀ ② ) ✷ F ♣ ✂ F ♣ P 1 = ( ① 1 ❀ ② 1 ) ✎ P 1 = ( ① 1 ❀ ② 1 ) ✂ ① 2 + ② 2 = 1 + ❞① ② ❣ ✎ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) ✎ ✂ P 2 = ( ① 2 ❀ ② 2 ) ✐ ✂ ✐ ✎ ✐ ❢ ✐ ✂ ❢ ✐ is a “complete Edw ✐ ① ① ✐ P ✂ ❬ P ❬ ✎ ❬ P P P 3 = ( ① 3 ❀ ② 3 ) P P P ✎ P 3 = ( ① 3 ❀ ② 3 ) “The Edwards addition ( ① 1 ❀ ② 1 ) + ( ① 2 ❀ ② 2 ) ① ❀ ② ① 2 + ② 2 = 1. � 30 ① 2 ② 2 . ① ② where ① ❀ ② and ( ① 2 ❀ ② 2 ) is Sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is ① 1 ② 2 + ② 1 ① ① 3 = ① ② ② ① ❂ (1 � 30 ① 1 ① 2 ② 1 ② 2 ), ( ① 1 ② 2 + ② 1 ① 2 , 1 + ❞① 1 ① 2 ② 1 ② ② ② � ① ① ❂ (1+30 ① 1 ① 2 ② 1 ② 2 )). ② 1 ② 2 � ① 1 ① 2 ). ② 1 ② 2 � ① 1 ① ② 3 = 1 � ❞① 1 ① 2 ② 1 ②

  78. � � curve The clock again, for comparison: More elliptic curves Choose an odd prime ♣ . ② ② Choose a non-square ❞ ✷ F ♣ (0 ❀ 1) neutral = (0 ❀ 1) ✎ ✎ ❢ ( ①❀ ② ) ✷ F ♣ ✂ F ♣ : P 1 = ( ① 1 ❀ ② 1 ) ✎ P ① ❀ ② 1 ) ✂ ① 2 + ② 2 = 1 + ❞① 2 ② 2 ❣ ✎ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) ✎ ✂ P ( ① 2 ❀ ② 2 ) ✐ ✂ ✐ ✎ ✐ ✐ ✂ ✐ is a “complete Edwards curve”. ✐ ① ① P ✂ ✐ P ✎ P P P ( ① 3 ❀ ② 3 ) P P P ✎ P 3 = ( ① 3 ❀ ② 3 ) “The Edwards addition law”: ( ① 1 ❀ ② 1 ) + ( ① 2 ❀ ② 2 ) = ( ① 3 ❀ ② 3 ① 2 + ② 2 = 1. ① ② � ① ② where ① ❀ ② ① ❀ ② 2 ) is Sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is ① 1 ② 2 + ② 1 ① 2 ① 3 = , ① ② ② ① ❂ � ① ① ② 1 ② 2 ), ( ① 1 ② 2 + ② 1 ① 2 , 1 + ❞① 1 ① 2 ② 1 ② 2 ② ② � ① ① ❂ ① ① ② 1 ② 2 )). ② 1 ② 2 � ① 1 ① 2 ). ② 1 ② 2 � ① 1 ① 2 ② 3 = . 1 � ❞① 1 ① 2 ② 1 ② 2

  79. � � The clock again, for comparison: More elliptic curves Choose an odd prime ♣ . ② Choose a non-square ❞ ✷ F ♣ . neutral = (0 ❀ 1) ✎ ❢ ( ①❀ ② ) ✷ F ♣ ✂ F ♣ : P 1 = ( ① 1 ❀ ② 1 ) ✎ ✂ ① 2 + ② 2 = 1 + ❞① 2 ② 2 ❣ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ is a “complete Edwards curve”. ✐ ① ✐ ✂ P P P P P P P ✎ P 3 = ( ① 3 ❀ ② 3 ) “The Edwards addition law”: ( ① 1 ❀ ② 1 ) + ( ① 2 ❀ ② 2 ) = ( ① 3 ❀ ② 3 ) ① 2 + ② 2 = 1. where Sum of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is ① 1 ② 2 + ② 1 ① 2 ① 3 = , ( ① 1 ② 2 + ② 1 ① 2 , 1 + ❞① 1 ① 2 ② 1 ② 2 ② 1 ② 2 � ① 1 ① 2 ). ② 1 ② 2 � ① 1 ① 2 ② 3 = . 1 � ❞① 1 ① 2 ② 1 ② 2

  80. � � clock again, for comparison: More elliptic curves “Hey, there in the Edw Choose an odd prime ♣ . ② What if Choose a non-square ❞ ✷ F ♣ . neutral = (0 ❀ 1) ✎ ❢ ( ①❀ ② ) ✷ F ♣ ✂ F ♣ : P 1 = ( ① 1 ❀ ② 1 ) ✎ ✂ ① 2 + ② 2 = 1 + ❞① 2 ② 2 ❣ ✂ ✂ P 2 = ( ① 2 ❀ ② 2 ) ✎ ✂ ✐ ✂ ✐ ✐ ✐ ✂ ✐ is a “complete Edwards curve”. ✐ ① P ✐ ✂ P P P P P P ✎ P 3 = ( ① 3 ❀ ② 3 ) “The Edwards addition law”: ( ① 1 ❀ ② 1 ) + ( ① 2 ❀ ② 2 ) = ( ① 3 ❀ ② 3 ) ② 2 = 1. ① where of ( ① 1 ❀ ② 1 ) and ( ① 2 ❀ ② 2 ) is ① 1 ② 2 + ② 1 ① 2 ① 3 = , ① ② + ② 1 ① 2 , 1 + ❞① 1 ① 2 ② 1 ② 2 ② ② � ① 1 ① 2 ). ② 1 ② 2 � ① 1 ① 2 ② 3 = . 1 � ❞① 1 ① 2 ② 1 ② 2

  81. � again, for comparison: More elliptic curves “Hey, there are divisions in the Edwards addition Choose an odd prime ♣ . ② What if the denominato Choose a non-square ❞ ✷ F ♣ . neutral = (0 ❀ 1) ✎ ❢ ( ①❀ ② ) ✷ F ♣ ✂ F ♣ : P 1 = ( ① 1 ❀ ② 1 ) ✎ ✂ ① 2 + ② 2 = 1 + ❞① 2 ② 2 ❣ ✂ P 2 = ( ① 2 ❀ ② 2 ) ✎ ✐ ✐ ✐ ✐ is a “complete Edwards curve”. ① P P P ✎ P 3 = ( ① 3 ❀ ② 3 ) “The Edwards addition law”: ( ① 1 ❀ ② 1 ) + ( ① 2 ❀ ② 2 ) = ( ① 3 ❀ ② 3 ) ① ② where ① ❀ ② and ( ① 2 ❀ ② 2 ) is ① 1 ② 2 + ② 1 ① 2 ① 3 = , ① ② ② ① 1 + ❞① 1 ① 2 ② 1 ② 2 ② ② � ① ① ② 1 ② 2 � ① 1 ① 2 ② 3 = . 1 � ❞① 1 ① 2 ② 1 ② 2

  82. comparison: More elliptic curves “Hey, there are divisions in the Edwards addition law! Choose an odd prime ♣ . ② What if the denominators are Choose a non-square ❞ ✷ F ♣ . (0 ❀ 1) ✎ ❢ ( ①❀ ② ) ✷ F ♣ ✂ F ♣ : ( ① 1 ❀ ② 1 ) P ✎ ① 2 + ② 2 = 1 + ❞① 2 ② 2 ❣ P = ( ① 2 ❀ ② 2 ) ✎ is a “complete Edwards curve”. ① ✎ P ( ① 3 ❀ ② 3 ) “The Edwards addition law”: ( ① 1 ❀ ② 1 ) + ( ① 2 ❀ ② 2 ) = ( ① 3 ❀ ② 3 ) ① ② where ① ❀ ② ① ❀ ② 2 ) is ① 1 ② 2 + ② 1 ① 2 ① 3 = , ① ② ② ① 1 + ❞① 1 ① 2 ② 1 ② 2 ② ② � ① ① ② 1 ② 2 � ① 1 ① 2 ② 3 = . 1 � ❞① 1 ① 2 ② 1 ② 2

  83. More elliptic curves “Hey, there are divisions in the Edwards addition law! Choose an odd prime ♣ . What if the denominators are 0?” Choose a non-square ❞ ✷ F ♣ . ❢ ( ①❀ ② ) ✷ F ♣ ✂ F ♣ : ① 2 + ② 2 = 1 + ❞① 2 ② 2 ❣ is a “complete Edwards curve”. “The Edwards addition law”: ( ① 1 ❀ ② 1 ) + ( ① 2 ❀ ② 2 ) = ( ① 3 ❀ ② 3 ) where ① 1 ② 2 + ② 1 ① 2 ① 3 = , 1 + ❞① 1 ① 2 ② 1 ② 2 ② 1 ② 2 � ① 1 ① 2 ② 3 = . 1 � ❞① 1 ① 2 ② 1 ② 2

  84. More elliptic curves “Hey, there are divisions in the Edwards addition law! Choose an odd prime ♣ . What if the denominators are 0?” Choose a non-square ❞ ✷ F ♣ . Answer: Can prove that ❢ ( ①❀ ② ) ✷ F ♣ ✂ F ♣ : the denominators are never 0. ① 2 + ② 2 = 1 + ❞① 2 ② 2 ❣ Addition law is complete . is a “complete Edwards curve”. “The Edwards addition law”: ( ① 1 ❀ ② 1 ) + ( ① 2 ❀ ② 2 ) = ( ① 3 ❀ ② 3 ) where ① 1 ② 2 + ② 1 ① 2 ① 3 = , 1 + ❞① 1 ① 2 ② 1 ② 2 ② 1 ② 2 � ① 1 ① 2 ② 3 = . 1 � ❞① 1 ① 2 ② 1 ② 2

  85. More elliptic curves “Hey, there are divisions in the Edwards addition law! Choose an odd prime ♣ . What if the denominators are 0?” Choose a non-square ❞ ✷ F ♣ . Answer: Can prove that ❢ ( ①❀ ② ) ✷ F ♣ ✂ F ♣ : the denominators are never 0. ① 2 + ② 2 = 1 + ❞① 2 ② 2 ❣ Addition law is complete . is a “complete Edwards curve”. This proof relies on “The Edwards addition law”: choosing non-square ❞ . ( ① 1 ❀ ② 1 ) + ( ① 2 ❀ ② 2 ) = ( ① 3 ❀ ② 3 ) where ① 1 ② 2 + ② 1 ① 2 ① 3 = , 1 + ❞① 1 ① 2 ② 1 ② 2 ② 1 ② 2 � ① 1 ① 2 ② 3 = . 1 � ❞① 1 ① 2 ② 1 ② 2

  86. More elliptic curves “Hey, there are divisions in the Edwards addition law! Choose an odd prime ♣ . What if the denominators are 0?” Choose a non-square ❞ ✷ F ♣ . Answer: Can prove that ❢ ( ①❀ ② ) ✷ F ♣ ✂ F ♣ : the denominators are never 0. ① 2 + ② 2 = 1 + ❞① 2 ② 2 ❣ Addition law is complete . is a “complete Edwards curve”. This proof relies on “The Edwards addition law”: choosing non-square ❞ . ( ① 1 ❀ ② 1 ) + ( ① 2 ❀ ② 2 ) = ( ① 3 ❀ ② 3 ) where If we instead choose square ❞ : ① 1 ② 2 + ② 1 ① 2 curve is still elliptic, and ① 3 = , 1 + ❞① 1 ① 2 ② 1 ② 2 addition seems to work, ② 1 ② 2 � ① 1 ① 2 but there are failure cases, ② 3 = . 1 � ❞① 1 ① 2 ② 1 ② 2 often exploitable by attackers. Safe code is more complicated.

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