












































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
An overview of code-based public-key cryptography, focusing on algorithms, security, and applications. It covers topics such as error-correcting codes, Niederreiter public-key encryption scheme, McEliece/Niederreiter security, and syndrome decoding. The document also discusses the importance of reducing public key size and encryption/decryption speed, as well as sets of parameters for QC-MDPC-McEliece and hard structural problems like Goppa code distinguishing and reconstruction.
Typology: Lecture notes
1 / 52
This page cannot be seen from the preview
Don't miss anything!
ECRYPT-CSA Executive School on Post-Quantum Cryptography
2017 TU Eindhoven
Nicolas Sendrier
Linear Codes for Telecommunication
linear expansion data k
data? (^) decoding
codeword n > k
noisy codeword
? noisy channel
[Shannon, 1948] (for a binary symmetric channel of error rate p):
Decoding probability −→ 1 if k n
= R < 1 − h(p)
(h(p) = −p log 2 p − (1 − p) log 2 (1 − p) the binary entropy function)
Codes of rate R can correct up to λn errors (λ = h−^1 (1 − R))
For instance 11% of errors for R = 0. 5
Non constructive −→ no poly-time algorithm for decoding in general
Codes with Good Decoders Exist
Coding theory is about finding “good” codes (i.e. linear expansions)
( (^) n log n
) errors
Linear Codes for Cryptography
linear expansion plaintext k
decoding plaintext
codeword n > k
ciphertext
? intentionally add errors
Assuming that the knowledge of the linear expansion does not reveal the code structure:
Outline
I. Introduction to Codes and Code-based Cryptography
II. Instantiating McEliece
III. Security Reduction to Difficult Problems
IV. Practical Security - The Attacks
V. Other Public Key Systems
McEliece Public-key Encryption Scheme – Overview
Let F be a family of t-error correcting q-ary linear [n, k] codes
Key generation:
pick C ∈ F →
Encryption:
x 7 → xG + e
(^) with e random of weight t
Decryption:
y 7 → Φ(y)G∗
(^) where GG∗^ = 1
Proof: DΦ(EG(x)) = DΦ(xG + e) = Φ(xG + e)G∗^ = xGG∗^ = x
Niederreiter Public-key Encryption Scheme – Overview
Let F be a family of t-error correcting q-ary [n, k] codes, r = n − k
Key generation: pick C ∈ F
→
Encryption:
qr e 7 → eHT
Decryption:
s 7 → Ψ(s)
Proof: DΨ(EH (e)) = DΨ(eHT^ ) = e
In Practice
[McEliece, 1978] “A public-key cryptosystem based on algebraic coding theory”
The secret code family consisted of irreducible binary Goppa codes of length 1024, dimension 524, and correcting up to 50 errors
A bit undersized today (attacked in [Bernstein, Lange, & Peters, 08] with ≈ 260 CPU cycles)
[Niederreiter, 1986] “Knapsack-type cryptosystems and algebraic coding theory”
Several families of secret codes were proposed, among them Reed- Solomon codes, concatenated codes and Goppa codes. Only Goppa codes are secure today.
More on Goppa Codes
Goppa codes are not limited to the binary case. It is possible to define
[Bernstein, Lange, & Peters, 10]: Wild McEliece. The key size can be reduced in some case. There are limits:
Reducing the Public Key Size
In a block-circulant matrix, each (square) block is completely defined by its first row → public key size is linear instead of quadratic
g 0 , 0 g 0 , 1 g 0 , 2
g 1 , 0 g 1 , 1 g 1 , 2
Encryption/Decryption Speed
sizes cycles/byte cycles/block m, t cipher clear encrypt decrypt encrypt decrypt security 11 , 40 2048 1888 105 800 25K 189K 81 12 , 50 4096 3881 98 618 47K 300K 120
(Intel Xeon 3.4Ghz, single processor) 100 Kcycle ≈ 30 μs AES: 10-20 cycles/byte
McBits [Berstein, Chou, & Schwabe] gains a factor ≈ 5 on decoding (bit-sliced field arithmetic + algorithmic innovations for decoding). Targets key exchange mechanism based on Niederreiter.
Some Sets of Parameters for QC-MDPC-McEliece
Binary QC-MDPC [n, k] code with parity check equations of weight w correcting t errors
size in bits security∗ (n, k, w, t) cipher clear key message key (9602, 4801 , 90 , 84) 9602 4801 4801 80 79 (19714, 9857 , 142 , 134) 19714 9857 9857 128 129
∗ (^) logarithm in base 2 of the cost of the best known attack
lower bound derived from ISD, BJMM variant
The best key attack and the best message attack are both based on generic decoding