SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Elliptic Curve Cryptography - An Introduction
       Marisa Paryasto
       33207002
       27 October 2011




Friday, October 28, 2011                               1
What is Elliptic Curve Cryptography?

       ‣ Originally	
  proposed	
  by	
  Victor	
  Miller	
  and	
  Neal	
  Koblitz	
  independently	
  from	
  one	
  
         another	
  in	
  1985

       ‣ ECC	
  proposed	
  an	
  alterna@ve	
  to	
  other	
  public-­‐key	
  encryp@on	
  algorithms,	
  such	
  as	
  
         RSA




Friday, October 28, 2011                                                                                                    2
Elliptic Curve

           Called	
  “ellip@c”	
  because	
  of	
  its	
  rela@onship	
  with	
  ellip@c	
  integrals,	
  which	
  are	
  
           natural	
  expressions	
  for	
  the	
  arc	
  length	
  of	
  an	
  ellipse

                                                                y2	
  =	
  x3	
  +	
  ax	
  +	
  b	
  



              Ellip@c	
  curve	
  is	
  not	
  an	
  ellipse!




Friday, October 28, 2011                                                                                                     3
y2 = x3 - x




Friday, October 28, 2011   4
y2 = x3




Friday, October 28, 2011   5
y2 = x3 - 4/3x + 16/27




Friday, October 28, 2011        6
y2 = x3 - 1/2x + 1/2




Friday, October 28, 2011      7
Elliptic Curve Cryptography

       ‣ Point	
  mul@plica@on	
  Q	
  =	
  kP


       ‣ Repeated	
  point	
  addi@on	
  and	
  doubling:
         9P	
  =	
  2(2(2P))	
  +	
  P

       ‣ Public	
  key	
  opera@on:	
  Q(x,y)	
  =	
  kP(x,y)
       	
   	
  Q	
  =	
  public	
  key
            	
  P	
  =	
  base	
  point	
  (curve	
  parameter)
            	
  k	
  =	
  private	
  key
            	
  n	
  =	
  order	
  of	
  P


       ‣ Ellip@c	
  curve	
  discrete	
  logarithm
       	
   	
  Given	
  public	
  key	
  kP,	
  find	
  private	
  key	
  k




Friday, October 28, 2011                                                      8
Elliptic Curve Addition




                                       Q
                                   P



                                           P+Q




Friday, October 28, 2011                         9
Multiplying 3P in Elliptic Curve (1)



                                         P+P = 2P




                              P




Friday, October 28, 2011                            10
Multiplying 3P in Elliptic Curve (2)



                                         P+P = 2P



                                                    Notes: 3P = 2P + P -> draw a line
                                                      that crosses point 2P and P
                                   3P
                               P




Friday, October 28, 2011                                                           11
Encryption Process




                                                 '1)'7+                                            '%3,/!&'7+
                    30%4',6$0%+                    &0+                                                7#&#+
                        &0+                       32,4' *+&,-,.,/,/&,01*22,0&                        8!0$%&9 *+&2/-;#.,6&.<-467<2&
       !"#$$%&       %21)', *+,-,.,/,/&,01*22,0&         21,/,3**&4******5&                                  7-21##6*&6*7<-;665&
       '%($)!                  21,/,3**&4******&&        *+&,6,1,7,3&212.,6,1&       89:                    *+&-7327-16&<3*;))37&
                                                          ,.,7,3,1&2127,.,2                                  -7;3-73*&1;1;7-71

                                   )$*+$%&'*',                 (-.+/-
      !"#$%&'(&                                                                      !0$%&+                        (5.+/5
                                                                                 12"&$!"$3#&$0%+
                                                                                  0%+32,4'




Friday, October 28, 2011                                                                                                             12
Decryption Process




    *+&2/-:#.,6&.;-467;2&   5'3,/!&$0%+
                                                        *+&,-,.,/,/&,01*22,0&
     7-21##6*&6*7;-:665&     !,03'66                     21,/,3**&4******5&     *+,-,.,/,/&,01*22,0&     !"#$$%&
    *+&-7327-16&;3*:))37&                  )&8&9       *+&,6,1,7,3&212.,6,1&     21,/,3**&4******&&
                                                                                                         '%($)!
     -7:3-73*&1:1:7-71                                  ,.,7,3,1&2127,.,2


           7+8+9(:.+/:;                  !0$%&+                (-.+/-               )$*+$%&'*',        !"#$%&'(&
                                     12"&$!"$3#&$0%+
                                      0%+32,4'




Friday, October 28, 2011                                                                                           13
Elliptic Curve y2 = x3 + x + 6 is defined over Z11

                                            Z11
                           10


                            9


                            8


                           7


                            6


                            5


                           4


                            3


                            2


                            1


                            0
                                0   2   4    6    8   10   12




Friday, October 28, 2011                                        14
An elliptic curve E:   y2   =   x 3   + x + 6 is defined over
       Z11




Friday, October 28, 2011                                              15
Calculating Quadratic Residue




Friday, October 28, 2011               16
Points on Curve




Friday, October 28, 2011   17
‣ There	
  are	
  12	
  points	
  lying	
  on	
  the	
  ellip@c	
  curve.	
  Together	
  with	
  the	
  point	
  O	
  at	
  
         infinity,	
  the	
  points	
  on	
  the	
  ellip@c	
  curve	
  form	
  a	
  group	
  with	
  n	
  =	
  13	
  elements.

       ‣ n	
  is	
  called	
  the	
  order	
  of	
  the	
  ellip@c	
  curve	
  group	
  and	
  depends	
  on	
  the	
  choice	
  of	
  
         the	
  curve	
  parameters	
  a	
  and	
  b.




Friday, October 28, 2011                                                                                                                  18
Point Addition

            P1 = (2, 4)         P2 = (5, 9)

            P1 + P2 = P3 = (x3 , y3 )

              y2 − y 1   9−4  5
           m=          =     = = 5 · 4 = 20 = 9
              x2 − x1    5−2  3
           x3 = m2 − x1 − x2 = (9)2 − 2 − 5 = 81 − 7 = 74 = 8
            y3 = m(x1 − x3 ) − y1 = 9(2 − 8) − 4 = 9(−6) − 4 = −54 − 4 = −58 = 8
            P3 = (x3 , y3 ) = (8, 8)




Friday, October 28, 2011                                                       19
Point Doubling

       ‣ Iterate the point (7, 2) lying on y_2 = x_3 + x + 6 mod 11


       ‣ Compute P2 = P * P by doubling the point P


           dy   x1 2 + b   3(7)2 + 1   147 + 1   148              ˙
        m=    =          =           =         =     = 148 · 3 = 53 = 15 = 4
           dx     2y1        2(2)         4       4

            x2 = m2 − 2x1 = (4)2 − 2(7) = 16 − 14 = 2
            y2 = m(x1 − x2 ) − y1 = 4(7 − 2) − 2 = 4(5) − 2 = 20 − 2 = 18 = 7
            P 2 = P ∗ P = (x2 , y2 ) = (2, 7)




Friday, October 28, 2011                                                        20
More point doubling

           Compute P3 = P2 * P
           P 2 = (2, 7)
            P = (7, 2)
                y2 − y 1   2−7   −5  6
             m=          =     =    = = 6 · 9 = 54 = 10
                x2 − x1    7−2    5  5
            x3 = m2 − x1 − x2 = (10)2 − 2 − 7 = 100 − 9 = 91 = 3
             y3 = m(x1 − x3 ) − y1 = 10(2 − 3) − 7 = 10(−1) − 7 = −10 − 7 = −17 =

             P 2 = P ∗ P = (x3 , y3 ) = (3, 5)




Friday, October 28, 2011                                                       21
Representing plaintext

       ‣ Let          E : y 2 ≡ x3 + bx + c(mod p)

       ‣ Message m (representated as a number) will be embedded in the x-
         coordinate of a point


       ‣ Adjoin a few bits at the end of m and adjust until we get a number x such that
         x3 + bx + c is square mod p




Friday, October 28, 2011                                                                  22
Representing plaintext (example)

         ‣ Let p = 179 and E : y 2 = x3 + 2x + 7

                              1
         ‣ If failure rate of 10   then we may take K = 10
                             2

         ‣ We need m.K + K < 179           , we need 0 ≤ m ≤ 16


         ‣ Suppose our message is m = 5. We consider x of the form
                               m.K + j = 50 + j
         ‣     The possible choices for x are 50, 51, .., 59. For x = 51 we get
                       x3 + 2x + 7 ≡ 121(mod 179)         112 = 121(mod 179)
         ‣ Thus, we represent the message m = 5 by the point (insert encryption process)
                                       Pm = (51, 11)
                                                             51 
         ‣ The message m can be recovered by          m=      10     =5




Friday, October 28, 2011                                                                   23
Basic ElGamal

           ElGamal Encryption                ElGamal Decryption


           INPUT: Elliptic curve domain      INPUT: Domain parameters,(p, E, P, n)
           parameters (p, E, P, n) ,public   private key d , ciphertext (C1 , C2 )
           key Q , plaintext m
                                             OUTPUT: Plaintext m
           OUTPUT: Ciphertext (C1 , C2 )
                                             1. Compute M = C2 − dC1 , and
           1.Represent the message m as a      extract m from M
             point M in E(Fp )               2. Return( m)
           2.Select k ∈R [1, n − 1]
           3.Compute C1 = kP
           4.Compute C2 = M + kQ
           5.Return (C1 , C2 )




Friday, October 28, 2011                                                             24
poly_prime =                                        Time of execution: 0.013889 seconds
           80000000       3                                    =====IN send_elgamal=====
           NUMBITS = 63                                        data (in send_gamal function) :
           NUMWORD = 1                                              0    123
           setting up curve                                    Base point
                                                               x: 2e7cf965 63323eab
           the curve after setting up:                         y: 730a0498 5b456f7d
           form: 1                                             Base curve
           a2: 0 2                                             form: 1
           a6: 0 1                                             a2: 0 2
                                                               a6: 0 1
           counter = 0
           inc = 1                                             random value:
           Base point                                          52d518f2 9979dd24
           x: 2e7cf965 63323eab                                Random point C1
           y: 730a0498 5b456f7d                                x: 5458cfc 12efc03c
                                                               y: 52d6eb3 a6af454b
           create side 2's private key                         counter = 0
                                                               inc = 0
           Side 2 secret:                                      raw point M (after poly_embed)
           10fc68f8 254d4d11                                   x:     0    123
                                                               y: 628f64a8 105671e3
           Generate side 2's public key                        Their_public:
                                                               x: 47a20fe7 9afa870f
           Side 2 public key                                   y: 3c871ef9 9f291729
           x: 47a20fe7 9afa870f                                hidden point (after poly_elptic_mul)
           y: 3c871ef9 9f291729                                x: 3e2ca01d e1b52870
           data =                                              y: 523fa9bd ab463883
                0   123                                        Hidden data (C2):
                                                               x: 23f5fe99 de42125d
           Hide data on curve and send from side 1 to side 2   y: 68420248 dfab3f44
                                                               Random point (C1):
           curve before send_elgamal:                          x: 5458cfc 12efc03c
           form: 1                                             y: 52d6eb3 a6af454b
           a2: 0 2                                             =====OUT send_elgamal
           a6: 0 1

           Their_public before send_elgamal:
           x: 47a20fe7 9afa870f
           y: 3c871ef9 9f291729


Friday, October 28, 2011                                                                              25
x:      0     123
                                                y: 628f64a8 105671e3
                                                raw_point.x
           AFTER send_elgamal                        0     123
           curve after send_elgamal:            raw_data (point):
           form: 1                              x: bffff5ac bffff5e8
           a2: 0 2                              y: 8fe018b1        0
           a6: 0 1                              raw_data (point):
                                                x:      0     123
           Hidden data (C2)                     y:      0     123
           x: 23f5fe99 de42125d                 raw_data (field):
           y: 68420248 dfab3f44                 bffff5ac bffff5e8
           Random point (C1)                    raw_data (field):
           x: 5458cfc 12efc03c                       0     123
           y: 52d6eb3 a6af454b                  =====OUT receive elgamal

           Recover transmitted message          sent data
                                                    0     123
           IN receive_elgamal                   received data (field)
           Base curve in receive_elgamal            0     123
           form: 1
           a2: 0 2
           a6: 0 1

           Hidden_data (in receive_elgamal) :
           x: 23f5fe99 de42125d
           y: 68420248 dfab3f44
           Random point
           x: 5458cfc 12efc03c
           y: 52d6eb3 a6af454b
           hidden_point (d*C1):
           x: 3e2ca01d e1b52870
           y: 523fa9bd ab463883
           raw_point:
Friday, October 28, 2011                                                   26

Contenu connexe

Tendances

Quasistatic Fracture using Nonliner-Nonlocal Elastostatics with an Analytic T...
Quasistatic Fracture using Nonliner-Nonlocal Elastostatics with an Analytic T...Quasistatic Fracture using Nonliner-Nonlocal Elastostatics with an Analytic T...
Quasistatic Fracture using Nonliner-Nonlocal Elastostatics with an Analytic T...
Patrick Diehl
 
Java Puzzle
Java PuzzleJava Puzzle
Java Puzzle
SFilipp
 

Tendances (13)

Quasistatic Fracture using Nonliner-Nonlocal Elastostatics with an Analytic T...
Quasistatic Fracture using Nonliner-Nonlocal Elastostatics with an Analytic T...Quasistatic Fracture using Nonliner-Nonlocal Elastostatics with an Analytic T...
Quasistatic Fracture using Nonliner-Nonlocal Elastostatics with an Analytic T...
 
Java puzzles
Java puzzlesJava puzzles
Java puzzles
 
Java Puzzle
Java PuzzleJava Puzzle
Java Puzzle
 
Lesson32 Second Order Difference Equations Slides
Lesson32   Second Order Difference Equations SlidesLesson32   Second Order Difference Equations Slides
Lesson32 Second Order Difference Equations Slides
 
The International Journal of Engineering and Science (IJES)
The International Journal of Engineering and Science (IJES)The International Journal of Engineering and Science (IJES)
The International Journal of Engineering and Science (IJES)
 
Lesson31 Higher Dimensional First Order Difference Equations Slides
Lesson31   Higher Dimensional First Order Difference Equations SlidesLesson31   Higher Dimensional First Order Difference Equations Slides
Lesson31 Higher Dimensional First Order Difference Equations Slides
 
Chapter 15
Chapter 15Chapter 15
Chapter 15
 
Lesson29 Intro To Difference Equations Slides
Lesson29   Intro To Difference Equations SlidesLesson29   Intro To Difference Equations Slides
Lesson29 Intro To Difference Equations Slides
 
Jacob's and Vlad's D.E.V. Project - 2012
Jacob's and Vlad's D.E.V. Project - 2012Jacob's and Vlad's D.E.V. Project - 2012
Jacob's and Vlad's D.E.V. Project - 2012
 
第13回数学カフェ「素数!!」二次会 LT資料「乱数!!」
第13回数学カフェ「素数!!」二次会 LT資料「乱数!!」第13回数学カフェ「素数!!」二次会 LT資料「乱数!!」
第13回数学カフェ「素数!!」二次会 LT資料「乱数!!」
 
関数型プログラミングの世界
関数型プログラミングの世界関数型プログラミングの世界
関数型プログラミングの世界
 
Java Puzzlers
Java PuzzlersJava Puzzlers
Java Puzzlers
 
Computer Aided Assessment (CAA) for mathematics
Computer Aided Assessment (CAA) for mathematicsComputer Aided Assessment (CAA) for mathematics
Computer Aided Assessment (CAA) for mathematics
 

Similaire à Ecc intro oct 2011

Design and Analysis of Algorithms - Divide and Conquer
Design and Analysis of Algorithms - Divide and ConquerDesign and Analysis of Algorithms - Divide and Conquer
Design and Analysis of Algorithms - Divide and Conquer
Seshu Chakravarthy
 
Oct 22 Integers
Oct 22 IntegersOct 22 Integers
Oct 22 Integers
spmath
 
Question bank unit ii engineering mathematics ii
Question bank unit ii engineering mathematics iiQuestion bank unit ii engineering mathematics ii
Question bank unit ii engineering mathematics ii
Shubham Vini
 
Circles Lecture - Part 1
Circles Lecture - Part 1Circles Lecture - Part 1
Circles Lecture - Part 1
Leo Crisologo
 
CS330-Lectures Statistics And Probability
CS330-Lectures Statistics And ProbabilityCS330-Lectures Statistics And Probability
CS330-Lectures Statistics And Probability
bryan111472
 
Datastructure tree
Datastructure treeDatastructure tree
Datastructure tree
rantd
 

Similaire à Ecc intro oct 2011 (20)

Ip 5 discrete mathematics
Ip 5 discrete mathematicsIp 5 discrete mathematics
Ip 5 discrete mathematics
 
Design and Analysis of Algorithms - Divide and Conquer
Design and Analysis of Algorithms - Divide and ConquerDesign and Analysis of Algorithms - Divide and Conquer
Design and Analysis of Algorithms - Divide and Conquer
 
Discrete Math IP4 - Automata Theory
Discrete Math IP4 - Automata TheoryDiscrete Math IP4 - Automata Theory
Discrete Math IP4 - Automata Theory
 
Oct 22 Integers
Oct 22 IntegersOct 22 Integers
Oct 22 Integers
 
Data Science for Folks Without (or With!) a Ph.D.
Data Science for Folks Without (or With!) a Ph.D.Data Science for Folks Without (or With!) a Ph.D.
Data Science for Folks Without (or With!) a Ph.D.
 
Application of parallel hierarchical matrices and low-rank tensors in spatial...
Application of parallel hierarchical matrices and low-rank tensors in spatial...Application of parallel hierarchical matrices and low-rank tensors in spatial...
Application of parallel hierarchical matrices and low-rank tensors in spatial...
 
08 - Complexity
08 - Complexity08 - Complexity
08 - Complexity
 
Question bank unit ii engineering mathematics ii
Question bank unit ii engineering mathematics iiQuestion bank unit ii engineering mathematics ii
Question bank unit ii engineering mathematics ii
 
Circles Lecture - Part 1
Circles Lecture - Part 1Circles Lecture - Part 1
Circles Lecture - Part 1
 
Main
MainMain
Main
 
4th Semeste Electronics and Communication Engineering (Dec-2015; Jan-2016) Qu...
4th Semeste Electronics and Communication Engineering (Dec-2015; Jan-2016) Qu...4th Semeste Electronics and Communication Engineering (Dec-2015; Jan-2016) Qu...
4th Semeste Electronics and Communication Engineering (Dec-2015; Jan-2016) Qu...
 
Lesson 15: The Chain Rule
Lesson 15: The Chain RuleLesson 15: The Chain Rule
Lesson 15: The Chain Rule
 
Daa divide-n-conquer
Daa divide-n-conquerDaa divide-n-conquer
Daa divide-n-conquer
 
Master method
Master method Master method
Master method
 
CS330-Lectures Statistics And Probability
CS330-Lectures Statistics And ProbabilityCS330-Lectures Statistics And Probability
CS330-Lectures Statistics And Probability
 
Olympus E P1
Olympus E P1Olympus E P1
Olympus E P1
 
Datastructure tree
Datastructure treeDatastructure tree
Datastructure tree
 
Integral
IntegralIntegral
Integral
 
Google Tech Talk - Agile Development with Lives At Stake
Google Tech Talk - Agile Development with Lives At StakeGoogle Tech Talk - Agile Development with Lives At Stake
Google Tech Talk - Agile Development with Lives At Stake
 
InSTEDD Google Techtalk 2010
InSTEDD Google Techtalk 2010InSTEDD Google Techtalk 2010
InSTEDD Google Techtalk 2010
 

Plus de Marisa Paryasto

Why i need to learn so much math for my phd research
Why i need to learn so much math for my phd researchWhy i need to learn so much math for my phd research
Why i need to learn so much math for my phd research
Marisa Paryasto
 
Marisa e-learning history and success story
Marisa   e-learning history and success storyMarisa   e-learning history and success story
Marisa e-learning history and success story
Marisa Paryasto
 
Chika -java_tutorial_general_ver_3.7
Chika  -java_tutorial_general_ver_3.7Chika  -java_tutorial_general_ver_3.7
Chika -java_tutorial_general_ver_3.7
Marisa Paryasto
 
Chika tutorial c++ - ver 3 2009 2
Chika   tutorial c++ - ver 3 2009 2Chika   tutorial c++ - ver 3 2009 2
Chika tutorial c++ - ver 3 2009 2
Marisa Paryasto
 
Composite Field Multiplier based on Look-Up Table for Elliptic Curve Cryptogr...
Composite Field Multiplier based on Look-Up Table for Elliptic Curve Cryptogr...Composite Field Multiplier based on Look-Up Table for Elliptic Curve Cryptogr...
Composite Field Multiplier based on Look-Up Table for Elliptic Curve Cryptogr...
Marisa Paryasto
 
Iceei2011 marisa br_fajar_intan_kuspriyanto revision 1
Iceei2011 marisa br_fajar_intan_kuspriyanto revision 1Iceei2011 marisa br_fajar_intan_kuspriyanto revision 1
Iceei2011 marisa br_fajar_intan_kuspriyanto revision 1
Marisa Paryasto
 
Marisa paryasto rancangan unit aritmetika finite field berbasis composite fie...
Marisa paryasto rancangan unit aritmetika finite field berbasis composite fie...Marisa paryasto rancangan unit aritmetika finite field berbasis composite fie...
Marisa paryasto rancangan unit aritmetika finite field berbasis composite fie...
Marisa Paryasto
 
Implementation of Polynomial – ONB I Basis Conversion - Jurnal Ilmiah Teknik ...
Implementation of Polynomial – ONB I Basis Conversion - Jurnal Ilmiah Teknik ...Implementation of Polynomial – ONB I Basis Conversion - Jurnal Ilmiah Teknik ...
Implementation of Polynomial – ONB I Basis Conversion - Jurnal Ilmiah Teknik ...
Marisa Paryasto
 
Issues in Elliptic Curve Cryptography Implementation - Internetworking Indone...
Issues in Elliptic Curve Cryptography Implementation - Internetworking Indone...Issues in Elliptic Curve Cryptography Implementation - Internetworking Indone...
Issues in Elliptic Curve Cryptography Implementation - Internetworking Indone...
Marisa Paryasto
 

Plus de Marisa Paryasto (12)

Marisa - Coding and IoT for Kids - RIoT 2017
Marisa - Coding and IoT for Kids - RIoT 2017Marisa - Coding and IoT for Kids - RIoT 2017
Marisa - Coding and IoT for Kids - RIoT 2017
 
Why i need to learn so much math for my phd research
Why i need to learn so much math for my phd researchWhy i need to learn so much math for my phd research
Why i need to learn so much math for my phd research
 
Marisa e-learning history and success story
Marisa   e-learning history and success storyMarisa   e-learning history and success story
Marisa e-learning history and success story
 
Chika -java_tutorial_general_ver_3.7
Chika  -java_tutorial_general_ver_3.7Chika  -java_tutorial_general_ver_3.7
Chika -java_tutorial_general_ver_3.7
 
Chika tutorial c++ - ver 3 2009 2
Chika   tutorial c++ - ver 3 2009 2Chika   tutorial c++ - ver 3 2009 2
Chika tutorial c++ - ver 3 2009 2
 
Programming language
Programming languageProgramming language
Programming language
 
Composite Field Multiplier based on Look-Up Table for Elliptic Curve Cryptogr...
Composite Field Multiplier based on Look-Up Table for Elliptic Curve Cryptogr...Composite Field Multiplier based on Look-Up Table for Elliptic Curve Cryptogr...
Composite Field Multiplier based on Look-Up Table for Elliptic Curve Cryptogr...
 
Iceei2011 marisa br_fajar_intan_kuspriyanto revision 1
Iceei2011 marisa br_fajar_intan_kuspriyanto revision 1Iceei2011 marisa br_fajar_intan_kuspriyanto revision 1
Iceei2011 marisa br_fajar_intan_kuspriyanto revision 1
 
Marisa paryasto rancangan unit aritmetika finite field berbasis composite fie...
Marisa paryasto rancangan unit aritmetika finite field berbasis composite fie...Marisa paryasto rancangan unit aritmetika finite field berbasis composite fie...
Marisa paryasto rancangan unit aritmetika finite field berbasis composite fie...
 
Implementation of Polynomial – ONB I Basis Conversion - Jurnal Ilmiah Teknik ...
Implementation of Polynomial – ONB I Basis Conversion - Jurnal Ilmiah Teknik ...Implementation of Polynomial – ONB I Basis Conversion - Jurnal Ilmiah Teknik ...
Implementation of Polynomial – ONB I Basis Conversion - Jurnal Ilmiah Teknik ...
 
Issues in Elliptic Curve Cryptography Implementation - Internetworking Indone...
Issues in Elliptic Curve Cryptography Implementation - Internetworking Indone...Issues in Elliptic Curve Cryptography Implementation - Internetworking Indone...
Issues in Elliptic Curve Cryptography Implementation - Internetworking Indone...
 
Marisa sidang terbuka ver 0.3
Marisa   sidang terbuka ver 0.3Marisa   sidang terbuka ver 0.3
Marisa sidang terbuka ver 0.3
 

Dernier

Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
ciinovamais
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 

Dernier (20)

Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptx
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 

Ecc intro oct 2011

  • 1. Elliptic Curve Cryptography - An Introduction Marisa Paryasto 33207002 27 October 2011 Friday, October 28, 2011 1
  • 2. What is Elliptic Curve Cryptography? ‣ Originally  proposed  by  Victor  Miller  and  Neal  Koblitz  independently  from  one   another  in  1985 ‣ ECC  proposed  an  alterna@ve  to  other  public-­‐key  encryp@on  algorithms,  such  as   RSA Friday, October 28, 2011 2
  • 3. Elliptic Curve Called  “ellip@c”  because  of  its  rela@onship  with  ellip@c  integrals,  which  are   natural  expressions  for  the  arc  length  of  an  ellipse y2  =  x3  +  ax  +  b   Ellip@c  curve  is  not  an  ellipse! Friday, October 28, 2011 3
  • 4. y2 = x3 - x Friday, October 28, 2011 4
  • 5. y2 = x3 Friday, October 28, 2011 5
  • 6. y2 = x3 - 4/3x + 16/27 Friday, October 28, 2011 6
  • 7. y2 = x3 - 1/2x + 1/2 Friday, October 28, 2011 7
  • 8. Elliptic Curve Cryptography ‣ Point  mul@plica@on  Q  =  kP ‣ Repeated  point  addi@on  and  doubling: 9P  =  2(2(2P))  +  P ‣ Public  key  opera@on:  Q(x,y)  =  kP(x,y)    Q  =  public  key  P  =  base  point  (curve  parameter)  k  =  private  key  n  =  order  of  P ‣ Ellip@c  curve  discrete  logarithm    Given  public  key  kP,  find  private  key  k Friday, October 28, 2011 8
  • 9. Elliptic Curve Addition Q P P+Q Friday, October 28, 2011 9
  • 10. Multiplying 3P in Elliptic Curve (1) P+P = 2P P Friday, October 28, 2011 10
  • 11. Multiplying 3P in Elliptic Curve (2) P+P = 2P Notes: 3P = 2P + P -> draw a line that crosses point 2P and P 3P P Friday, October 28, 2011 11
  • 12. Encryption Process '1)'7+ '%3,/!&'7+ 30%4',6$0%+ &0+ 7#&#+ &0+ 32,4' *+&,-,.,/,/&,01*22,0& 8!0$%&9 *+&2/-;#.,6&.<-467<2& !"#$$%& %21)', *+,-,.,/,/&,01*22,0& 21,/,3**&4******5& 7-21##6*&6*7<-;665& '%($)! 21,/,3**&4******&& *+&,6,1,7,3&212.,6,1& 89: *+&-7327-16&<3*;))37& ,.,7,3,1&2127,.,2 -7;3-73*&1;1;7-71 )$*+$%&'*', (-.+/- !"#$%&'(& !0$%&+ (5.+/5 12"&$!"$3#&$0%+ 0%+32,4' Friday, October 28, 2011 12
  • 13. Decryption Process *+&2/-:#.,6&.;-467;2& 5'3,/!&$0%+ *+&,-,.,/,/&,01*22,0& 7-21##6*&6*7;-:665& !,03'66 21,/,3**&4******5& *+,-,.,/,/&,01*22,0& !"#$$%& *+&-7327-16&;3*:))37& )&8&9 *+&,6,1,7,3&212.,6,1& 21,/,3**&4******&& '%($)! -7:3-73*&1:1:7-71 ,.,7,3,1&2127,.,2 7+8+9(:.+/:; !0$%&+ (-.+/- )$*+$%&'*', !"#$%&'(& 12"&$!"$3#&$0%+ 0%+32,4' Friday, October 28, 2011 13
  • 14. Elliptic Curve y2 = x3 + x + 6 is defined over Z11 Z11 10 9 8 7 6 5 4 3 2 1 0 0 2 4 6 8 10 12 Friday, October 28, 2011 14
  • 15. An elliptic curve E: y2 = x 3 + x + 6 is defined over Z11 Friday, October 28, 2011 15
  • 17. Points on Curve Friday, October 28, 2011 17
  • 18. ‣ There  are  12  points  lying  on  the  ellip@c  curve.  Together  with  the  point  O  at   infinity,  the  points  on  the  ellip@c  curve  form  a  group  with  n  =  13  elements. ‣ n  is  called  the  order  of  the  ellip@c  curve  group  and  depends  on  the  choice  of   the  curve  parameters  a  and  b. Friday, October 28, 2011 18
  • 19. Point Addition P1 = (2, 4) P2 = (5, 9) P1 + P2 = P3 = (x3 , y3 ) y2 − y 1 9−4 5 m= = = = 5 · 4 = 20 = 9 x2 − x1 5−2 3 x3 = m2 − x1 − x2 = (9)2 − 2 − 5 = 81 − 7 = 74 = 8 y3 = m(x1 − x3 ) − y1 = 9(2 − 8) − 4 = 9(−6) − 4 = −54 − 4 = −58 = 8 P3 = (x3 , y3 ) = (8, 8) Friday, October 28, 2011 19
  • 20. Point Doubling ‣ Iterate the point (7, 2) lying on y_2 = x_3 + x + 6 mod 11 ‣ Compute P2 = P * P by doubling the point P dy x1 2 + b 3(7)2 + 1 147 + 1 148 ˙ m= = = = = = 148 · 3 = 53 = 15 = 4 dx 2y1 2(2) 4 4 x2 = m2 − 2x1 = (4)2 − 2(7) = 16 − 14 = 2 y2 = m(x1 − x2 ) − y1 = 4(7 − 2) − 2 = 4(5) − 2 = 20 − 2 = 18 = 7 P 2 = P ∗ P = (x2 , y2 ) = (2, 7) Friday, October 28, 2011 20
  • 21. More point doubling Compute P3 = P2 * P P 2 = (2, 7) P = (7, 2) y2 − y 1 2−7 −5 6 m= = = = = 6 · 9 = 54 = 10 x2 − x1 7−2 5 5 x3 = m2 − x1 − x2 = (10)2 − 2 − 7 = 100 − 9 = 91 = 3 y3 = m(x1 − x3 ) − y1 = 10(2 − 3) − 7 = 10(−1) − 7 = −10 − 7 = −17 = P 2 = P ∗ P = (x3 , y3 ) = (3, 5) Friday, October 28, 2011 21
  • 22. Representing plaintext ‣ Let E : y 2 ≡ x3 + bx + c(mod p) ‣ Message m (representated as a number) will be embedded in the x- coordinate of a point ‣ Adjoin a few bits at the end of m and adjust until we get a number x such that x3 + bx + c is square mod p Friday, October 28, 2011 22
  • 23. Representing plaintext (example) ‣ Let p = 179 and E : y 2 = x3 + 2x + 7 1 ‣ If failure rate of 10 then we may take K = 10 2 ‣ We need m.K + K < 179 , we need 0 ≤ m ≤ 16 ‣ Suppose our message is m = 5. We consider x of the form m.K + j = 50 + j ‣ The possible choices for x are 50, 51, .., 59. For x = 51 we get x3 + 2x + 7 ≡ 121(mod 179) 112 = 121(mod 179) ‣ Thus, we represent the message m = 5 by the point (insert encryption process) Pm = (51, 11) 51 ‣ The message m can be recovered by m= 10 =5 Friday, October 28, 2011 23
  • 24. Basic ElGamal ElGamal Encryption ElGamal Decryption INPUT: Elliptic curve domain INPUT: Domain parameters,(p, E, P, n) parameters (p, E, P, n) ,public private key d , ciphertext (C1 , C2 ) key Q , plaintext m OUTPUT: Plaintext m OUTPUT: Ciphertext (C1 , C2 ) 1. Compute M = C2 − dC1 , and 1.Represent the message m as a extract m from M point M in E(Fp ) 2. Return( m) 2.Select k ∈R [1, n − 1] 3.Compute C1 = kP 4.Compute C2 = M + kQ 5.Return (C1 , C2 ) Friday, October 28, 2011 24
  • 25. poly_prime = Time of execution: 0.013889 seconds 80000000 3 =====IN send_elgamal===== NUMBITS = 63 data (in send_gamal function) : NUMWORD = 1 0 123 setting up curve Base point x: 2e7cf965 63323eab the curve after setting up: y: 730a0498 5b456f7d form: 1 Base curve a2: 0 2 form: 1 a6: 0 1 a2: 0 2 a6: 0 1 counter = 0 inc = 1 random value: Base point 52d518f2 9979dd24 x: 2e7cf965 63323eab Random point C1 y: 730a0498 5b456f7d x: 5458cfc 12efc03c y: 52d6eb3 a6af454b create side 2's private key counter = 0 inc = 0 Side 2 secret: raw point M (after poly_embed) 10fc68f8 254d4d11 x: 0 123 y: 628f64a8 105671e3 Generate side 2's public key Their_public: x: 47a20fe7 9afa870f Side 2 public key y: 3c871ef9 9f291729 x: 47a20fe7 9afa870f hidden point (after poly_elptic_mul) y: 3c871ef9 9f291729 x: 3e2ca01d e1b52870 data = y: 523fa9bd ab463883 0 123 Hidden data (C2): x: 23f5fe99 de42125d Hide data on curve and send from side 1 to side 2 y: 68420248 dfab3f44 Random point (C1): curve before send_elgamal: x: 5458cfc 12efc03c form: 1 y: 52d6eb3 a6af454b a2: 0 2 =====OUT send_elgamal a6: 0 1 Their_public before send_elgamal: x: 47a20fe7 9afa870f y: 3c871ef9 9f291729 Friday, October 28, 2011 25
  • 26. x: 0 123 y: 628f64a8 105671e3 raw_point.x AFTER send_elgamal 0 123 curve after send_elgamal: raw_data (point): form: 1 x: bffff5ac bffff5e8 a2: 0 2 y: 8fe018b1 0 a6: 0 1 raw_data (point): x: 0 123 Hidden data (C2) y: 0 123 x: 23f5fe99 de42125d raw_data (field): y: 68420248 dfab3f44 bffff5ac bffff5e8 Random point (C1) raw_data (field): x: 5458cfc 12efc03c 0 123 y: 52d6eb3 a6af454b =====OUT receive elgamal Recover transmitted message sent data 0 123 IN receive_elgamal received data (field) Base curve in receive_elgamal 0 123 form: 1 a2: 0 2 a6: 0 1 Hidden_data (in receive_elgamal) : x: 23f5fe99 de42125d y: 68420248 dfab3f44 Random point x: 5458cfc 12efc03c y: 52d6eb3 a6af454b hidden_point (d*C1): x: 3e2ca01d e1b52870 y: 523fa9bd ab463883 raw_point: Friday, October 28, 2011 26