Understanding Cryptography: Chapter 9 - Elliptic Curve Cryptography
Understanding Cryptography: Chapter 9 - Elliptic Curve Cryptography
www.crypto-textbook.com
These slides were prepared by Tim Güneysu, Christof Paar and Jan Pelzl
! Some legal stuff (sorry): Terms of Use
• The slides can be used free of charge. All copyrights for the slides remain with
Christof Paar and Jan Pelzl.
• The title of the accompanying book “Understanding Cryptography” by Springer
and the author’s names must remain on each slide.
• If the slides are modified, appropriate credits to the book authors and the book
title must remain within the slides.
• It is not permitted to reproduce parts or all of the slides in printed form
whatsoever without written consent by the authors.
§ Introduction
§ Computations on Elliptic Curves
§ The Elliptic Curve Diffie-Hellman Protocol
§ Security Aspects
§ Implementation in Software and Hardware
§ Introduction
§ Computations on Elliptic Curves
§ The Elliptic Curve Diffie-Hellman Protocol
§ Security Aspects
§ Implementation in Software and Hardware
§ Problem:
Asymmetric schemes like RSA and Elgamal require exponentiations in integer rings and
fields with parameters of more than 1000 bits.
§ High computational effort on CPUs with 32-bit or 64-bit arithmetic
§ Large parameter sizes critical for storage on small and embedded
§ Motivation:
Smaller field sizes providing equivalent security are desirable
§ Solution:
Elliptic Curve Cryptography uses a group of points (instead of integers) for cryptographic
schemes with coefficient sizes of 160-256 bits, reducing significantly the computational
effort.
§ Introduction
§ Computations on Elliptic Curves
§ The Elliptic Curve Diffie-Hellman Protocol
§ Security Aspects
§ Implementation in Software and Hardware
y2 = x3 + ax + b
θ
§ Elliptic Curve are symmetric along the x-axis
§ Up to two solutions y and -y exist for each
quadratic residue x of the elliptic curve
-P
§ For each point P =(x,y), the inverse or negative
point is defined as -P =(x,-y)
where
y 2 − y1
mod p ; if P ≠ Q (point addition)
x 2 − x1
s=
3x12 + a =P+P
mod p ; if P = Q (point doubling)
2 y1
3x12 + a
s= = (2 · 1)−1(3 · 52 + 2) = 2−1 · 9 ≡ 9 · 9 ≡ 13 mod 17
2 y1
§ The points on an elliptic curve and the point at infinity θ form cyclic subgroups
§ Cryptosystems are based on the idea that d is large and kept secret and attackers
cannot compute it easily
§ If d is known, an efficient method to compute the point multiplication dP is required
to create a reasonable cryptosystem
§ Known Square-and-Multiply Method can be adapted to Elliptic Curves
§ The method for efficient point multiplication on elliptic curves: Double-and-Add Algorithm
§ Introduction
§ Computations on Elliptic Curves
§ The Elliptic Curve Diffie-Hellman Protocol
§ Security Aspects
§ Implementation in Software and Hardware
Alice Bob
Choose kPrA= a ∈ {2, 3,…, #E-1} Choose kPrB= b ∈ {2, 3,…, #E-1}
Compute kPubA= A = aP = (xA,yA) Compute kPubB= B = bP = (xB,yB)
A
B
§ Joint secret between Alice and Bob: TAB = (xAB, yAB)
§ Proof for correctness:
§ Alice computes aB=a(bP)=abP
§ Bob computes bA=b(aP)=abP since group is associative
§ One of the coordinates of the point TAB (usually the x-coordinate) can be used as session key
(often after applying a hash function)
§ The ECDH is often used to derive session keys for (symmetric) encryption
§ One of the coordinates of the point TAB (usually the x-coordinate) is taken as session key
Alice Bob
Choose kPrA= a ∈ {2, 3,…, #E-1} Choose kPrB= b ∈ {2, 3,…, #E-1}
Compute kPubA= A = aP = (xA,yA) Compute kPubB= B = bP = (xB,yB)
ECDH
A
B
encryption/decryption
Define key kAES = xT Define key kAES = xT
Symmetric
Given a message m:
c
Encrypt c = AESkAES(m) Received ciphertext c:
Decrypt m = AES-1kAES(c)
§ In some cases, a hash function (see next chapters) is used to derive the session key
§ Introduction
§ Computations on Elliptic Curves
§ The Elliptic Curve Diffie-Hellman Protocol
§ Security Aspects
§ Implementation in Software and Hardware
§ Why are parameters signficantly smaller for elliptic curves (160-256 bit) than for RSA
(1024-3076 bit)?
§ Attacks on groups of elliptic curves are weaker than available factoring algorithms or
integer DL attacks
§ Best known attacks on elliptic curves (chosen according to cryptographic criterions)
are the Baby-Step Giant-Step and Pollard-Rho method
§ Complexity of these methods: on average, roughly p steps are required before the
ECDLP can be successfully solved
§ Introduction
§ Computations on Elliptic Curves
§ The Elliptic Curve Diffie-Hellman Protocol
§ Security Aspects
§ Implementation in Software and Hardware
§ Elliptic Curve Cryptography (ECC) is based on the discrete logarithm problem.
It requires, for instance, arithmetic modulo a prime.
§ ECC can be used for key exchange, for digital signatures and for encryption.
§ ECC provides the same level of security as RSA or discrete logarithm systems
over Zp with considerably shorter operands (approximately 160–256 bit vs.
1024–3072 bit), which results in shorter ciphertexts and signatures.
§ In many cases ECC has performance advantages over other public-key
algorithms.
§ ECC is slowly gaining popularity in applications, compared to other public-key
schemes, i.e., many new applications, especially on embedded platforms,
make use of elliptic curve cryptography.