+ All Categories
Home > Documents > 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like...

5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like...

Date post: 20-Jul-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
31
5. Other Cryptographic Constructions Relying on Coding Theory Code-Based Digital Signatures The Courtois-Finiasz-Sendrier (CFS) Construction Attacks against the CFS Scheme Parallel-CFS Stern’s Zero-Knowledge Identification Scheme An Efficient Provably Secure One-Way Function The Fast Syndrome-Based (FSB) Hash Function 0 Matthieu Finiasz CODE-BASED CRYPTOGRAPHY
Transcript
Page 1: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

5. Other Cryptographic Constructions Relying onCoding Theory

• Code-Based Digital Signatures• The Courtois-Finiasz-Sendrier (CFS) Construction• Attacks against the CFS Scheme• Parallel-CFS• Stern’s Zero-Knowledge Identification Scheme• An Efficient Provably Secure One-Way Function• The Fast Syndrome-Based (FSB) Hash Function

0Matthieu Finiasz CODE-BASED CRYPTOGRAPHY

Page 2: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Stern’s Zero-Knowledge Identification Scheme

Identification SchemeAllows a prover to prove his identity to averifier.

Zero-Knowledge ProtocolInteractive protocol where one provesthe knowledge of something, withoutrevealing any information about it.

1

Page 3: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Stern’s Zero-Knowledge Identification Scheme

Identification SchemeAllows a prover to prove his identity to averifier.

Zero-Knowledge ProtocolInteractive protocol where one provesthe knowledge of something, withoutrevealing any information about it.

Stern’s Scheme, invented in 1993:• its security relies on the Syndrome Decoding problem• it uses a random binary matrix

_ no need to hide a trap• like other identification schemes, it can be converted

into a signature scheme

1

Page 4: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Stern’s Zero-Knowledge Identification SchemeSystem parameters:• A public n × r binary matrix H, a weight w

Key generation:• Each user picks a secret binary vector e of length n and Hamming weight w• He computes s = H × e and publishes it

Identification protocol:• The verifier knows s• The prover has to prove he knows e such that s = H × e

_ without revealing any information about e

2

Page 5: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Stern’s Zero-Knowledge Identification SchemeSystem parameters:• A public n × r binary matrix H, a weight w

Key generation:• Each user picks a secret binary vector e of length n and Hamming weight w• He computes s = H × e and publishes it

Identification protocol:• The verifier knows s• The prover has to prove he knows e such that s = H × e

_ without revealing any information about e

2

Page 6: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Stern’s Zero-Knowledge Identification SchemeSystem parameters:• A public n × r binary matrix H, a weight w

Key generation:• Each user picks a secret binary vector e of length n and Hamming weight w• He computes s = H × e and publishes it

Identification protocol:• The verifier knows s• The prover has to prove he knows e such that s = H × e

_ without revealing any information about e

2

Page 7: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Stern’s Zero-Knowledge Identification SchemeProver Verifier

Pick: y ∈ Fn2, σ perm. of [1,n]

3

Page 8: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Stern’s Zero-Knowledge Identification SchemeProver Verifier

Pick: y ∈ Fn2, σ perm. of [1,n]

Compute: c0 = Hash(σ||H × y)c1 = Hash(σ(y))c2 = Hash(σ(y ⊕ e))

c0,c1,c2−−−−−−−−−−−−−→ Store the commitments

3

Page 9: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Stern’s Zero-Knowledge Identification SchemeProver Verifier

Pick: y ∈ Fn2, σ perm. of [1,n]

Compute: c0 = Hash(σ||H × y)c1 = Hash(σ(y))c2 = Hash(σ(y ⊕ e))

c0,c1,c2−−−−−−−−−−−−−→ Store the commitmentsb←−−−−−−−−−−−−− Pick: b ∈ {0,1,2}

3

Page 10: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Stern’s Zero-Knowledge Identification SchemeProver Verifier

Pick: y ∈ Fn2, σ perm. of [1,n]

Compute: c0 = Hash(σ||H × y)c1 = Hash(σ(y))c2 = Hash(σ(y ⊕ e))

c0,c1,c2−−−−−−−−−−−−−→ Store the commitmentsb←−−−−−−−−−−−−− Pick: b ∈ {0,1,2}

If b = 0 reveal info for c1 and c2σ(y),σ(e)−−−−−−−−−−−−−→ Compute:

c′1 = Hash(σ(y))c′2 = Hash(σ(y)⊕ σ(e))

Accept if: c′1 = c1 and c′2 = c2

3

Page 11: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Stern’s Zero-Knowledge Identification SchemeProver Verifier

Pick: y ∈ Fn2, σ perm. of [1,n]

Compute: c0 = Hash(σ||H × y)c1 = Hash(σ(y))c2 = Hash(σ(y ⊕ e))

c0,c1,c2−−−−−−−−−−−−−→ Store the commitmentsb←−−−−−−−−−−−−− Pick: b ∈ {0,1,2}

If b = 1 reveal info for c0 and c2y⊕e,σ−−−−−−−−−−−−−→ Compute:

c′0 = Hash(σ||(H×(y⊕e))⊕s)c′2 = Hash(σ(y ⊕ e))

Accept if: c′0 = c0 and c′2 = c2

3

Page 12: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Stern’s Zero-Knowledge Identification SchemeProver Verifier

Pick: y ∈ Fn2, σ perm. of [1,n]

Compute: c0 = Hash(σ||H × y)c1 = Hash(σ(y))c2 = Hash(σ(y ⊕ e))

c0,c1,c2−−−−−−−−−−−−−→ Store the commitmentsb←−−−−−−−−−−−−− Pick: b ∈ {0,1,2}

If b = 2 reveal info for c0 and c1y ,σ−−−−−−−−−−−−−→ Compute:

c′0 = Hash(σ||H × y)c′1 = Hash(σ(y))

Accept if: c′0 = c0 and c′1 = c1

3

Page 13: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Stern’s Zero-Knowledge Identification SchemeProver Verifier

Pick: y ∈ Fn2, σ perm. of [1,n]

Compute: c0 = Hash(σ||H × y)c1 = Hash(σ(y))c2 = Hash(σ(y ⊕ e))

c0,c1,c2−−−−−−−−−−−−−→ Store the commitmentsb←−−−−−−−−−−−−− Pick: b ∈ {0,1,2}

If b = 2 reveal info for c0 and c1y ,σ−−−−−−−−−−−−−→ Compute:

c′0 = Hash(σ||H × y)c′1 = Hash(σ(y))

Accept if: c′0 = c0 and c′1 = c1

In all three cases, the verifier can verify 2 out of the 3 commitments.

3

Page 14: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Verification of the Zero-Knowledge PropertyWhen running the protocol, the verifier learns:• the values of the 3 commitments

_ assuming the hash function is secure, these do not leak any information

• depending on the choice of b, one of the following pairs of values:• σ(y) and σ(e)• y ⊕ e and σ• y and σ

4

Page 15: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Verification of the Zero-Knowledge PropertyWhen running the protocol, the verifier learns:• the values of the 3 commitments

_ assuming the hash function is secure, these do not leak any information• depending on the choice of b, one of the following pairs of values:• σ(y) and σ(e)• y ⊕ e and σ• y and σ

• y is random, so σ(y) gives no information• σ(e) discloses the weight of e, which is always w

4

Page 16: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Verification of the Zero-Knowledge PropertyWhen running the protocol, the verifier learns:• the values of the 3 commitments

_ assuming the hash function is secure, these do not leak any information• depending on the choice of b, one of the following pairs of values:• σ(y) and σ(e)• y ⊕ e and σ• y and σ

• y is random, so y ⊕ e gives no information• σ is random and gives no information

4

Page 17: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Verification of the Zero-Knowledge PropertyWhen running the protocol, the verifier learns:• the values of the 3 commitments

_ assuming the hash function is secure, these do not leak any information• depending on the choice of b, one of the following pairs of values:• σ(y) and σ(e)• y ⊕ e and σ• y and σ

• y is random and gives no information• σ is random and gives no information

4

Page 18: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Security of the ProtocolAgain, there are two ways to attack this protocol.

Recovery of the secret:• similar to decoding attacks on McEliece or signature forgery in CFS• requires to solve an instance of syndrome decoding

_ a truly random instance, with no trap: both H and e are random

Impersonation attacks:• an attacker executes the protocol with a verifier

_ tries to give answers the verifier will accept• impossible to give commitments that can be opened for

all 3 values of b

Without the knowledge of the secret e, the probability ofsuccess is at most 2

3 .

5

Page 19: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Security of the ProtocolAgain, there are two ways to attack this protocol.

Recovery of the secret:• similar to decoding attacks on McEliece or signature forgery in CFS• requires to solve an instance of syndrome decoding

_ a truly random instance, with no trap: both H and e are random

Impersonation attacks:• an attacker executes the protocol with a verifier

_ tries to give answers the verifier will accept• impossible to give commitments that can be opened for

all 3 values of b

Without the knowledge of the secret e, the probability ofsuccess is at most 2

3 .

5

Page 20: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Security of the ProtocolAgain, there are two ways to attack this protocol.

Recovery of the secret:• similar to decoding attacks on McEliece or signature forgery in CFS• requires to solve an instance of syndrome decoding

_ a truly random instance, with no trap: both H and e are random

Impersonation attacks:• an attacker executes the protocol with a verifier

_ tries to give answers the verifier will accept• impossible to give commitments that can be opened for

all 3 values of b

Without the knowledge of the secret e, the probability ofsuccess is at most 2

3 .

5

Page 21: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Impersonation AttackAn attacker can achieve a probability of impersonation of 2

3 by choosing any ofthese 3 constructions:

Choice 1:• Pick y , σ, and e′ of weight w• Send: c0 = Hash(σ||H × y), c1 = Hash(σ(y)), c2 = Hash(σ(y ⊕ e′))

If b = 0, verify c1 and c2

Send σ(y) and σ(e′)

If b = 1, verify c0 and c2

Problem!

If b = 2, verify c0 and c1

Send y and σ

6

Page 22: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Impersonation AttackAn attacker can achieve a probability of impersonation of 2

3 by choosing any ofthese 3 constructions:

Choice 1:• Pick y , σ, and e′ of weight w• Send: c0 = Hash(σ||H × y), c1 = Hash(σ(y)), c2 = Hash(σ(y ⊕ e′))

Choice 2:• Pick y ⊕ e′, σ, and e′ of weight w• Send: c0 = Hash(σ||H × (y ⊕ e′)⊕ s), c1 = Hash(σ(y)), c2 = Hash(σ(y ⊕ e′))

If b = 0, verify c1 and c2

Send σ(y) and σ(e′)

If b = 1, verify c0 and c2

Send y ⊕ e′ and σ

If b = 2, verify c0 and c1

Problem!

6

Page 23: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Impersonation AttackAn attacker can achieve a probability of impersonation of 2

3 by choosing any ofthese 3 constructions:

Choice 1:• Pick y , σ, and e′ of weight w• Send: c0 = Hash(σ||H × y), c1 = Hash(σ(y)), c2 = Hash(σ(y ⊕ e′))

Choice 2:• Pick y ⊕ e′, σ, and e′ of weight w• Send: c0 = Hash(σ||H × (y ⊕ e′)⊕ s), c1 = Hash(σ(y)), c2 = Hash(σ(y ⊕ e′))

Choice 3:• Pick y , σ, and e′ of heavy weight, such that H × e′ = s• Send: c0 = Hash(σ||H × y), c1 = Hash(σ(y)), c2 = Hash(σ(y ⊕ e′))

If b = 0, verify c1 and c2

σ(e′) is too heavy!

If b = 1, verify c0 and c2

Send y ⊕ e′ and σ

If b = 2, verify c0 and c1

Send y and σ

6

Page 24: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Reaching a High Security LevelA probability of impersonation of 2

3 is too high :)

The protocol can simply be iterated:• run the protocol ` times• if any of the ` proofs fails, abort• if all ` iterations can be verified, authentication is successful

_ the final probability of impersonation is(2

3

)`52 iterations give a probability of less than 1 in a billion.

137 iterations give a probability of 2−80.

_ around 3 000 bits are exchanged at each iteration.

7

Page 25: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Conversion to a Signature SchemeThe Fiat-Shamir transform can turn any ZK identification scheme into a signaturescheme.• choose the document D to sign

• compute the commitments for ` iterations of the protocol_ note T the “transcript” containing these ` triples (c0, c1, c2)• compute h = Hash(D||T )• use the bits of h to obtain ` values of b, tied to D and T• open the commitments corresponding to these b

_ note S the “transcript” containing the opening values• the signature of D is the full transcript T ||S

8

Page 26: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Conversion to a Signature SchemeThe Fiat-Shamir transform can turn any ZK identification scheme into a signaturescheme.• choose the document D to sign• compute the commitments for ` iterations of the protocol

_ note T the “transcript” containing these ` triples (c0, c1, c2)

• compute h = Hash(D||T )• use the bits of h to obtain ` values of b, tied to D and T• open the commitments corresponding to these b

_ note S the “transcript” containing the opening values• the signature of D is the full transcript T ||S

8

Page 27: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Conversion to a Signature SchemeThe Fiat-Shamir transform can turn any ZK identification scheme into a signaturescheme.• choose the document D to sign• compute the commitments for ` iterations of the protocol

_ note T the “transcript” containing these ` triples (c0, c1, c2)• compute h = Hash(D||T )

• use the bits of h to obtain ` values of b, tied to D and T• open the commitments corresponding to these b

_ note S the “transcript” containing the opening values• the signature of D is the full transcript T ||S

8

Page 28: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Conversion to a Signature SchemeThe Fiat-Shamir transform can turn any ZK identification scheme into a signaturescheme.• choose the document D to sign• compute the commitments for ` iterations of the protocol

_ note T the “transcript” containing these ` triples (c0, c1, c2)• compute h = Hash(D||T )• use the bits of h to obtain ` values of b, tied to D and T

• open the commitments corresponding to these b_ note S the “transcript” containing the opening values• the signature of D is the full transcript T ||S

8

Page 29: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Conversion to a Signature SchemeThe Fiat-Shamir transform can turn any ZK identification scheme into a signaturescheme.• choose the document D to sign• compute the commitments for ` iterations of the protocol

_ note T the “transcript” containing these ` triples (c0, c1, c2)• compute h = Hash(D||T )• use the bits of h to obtain ` values of b, tied to D and T• open the commitments corresponding to these b

_ note S the “transcript” containing the opening values

• the signature of D is the full transcript T ||S

8

Page 30: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

Conversion to a Signature SchemeThe Fiat-Shamir transform can turn any ZK identification scheme into a signaturescheme.• choose the document D to sign• compute the commitments for ` iterations of the protocol

_ note T the “transcript” containing these ` triples (c0, c1, c2)• compute h = Hash(D||T )• use the bits of h to obtain ` values of b, tied to D and T• open the commitments corresponding to these b

_ note S the “transcript” containing the opening values• the signature of D is the full transcript T ||S

The security of the signature is(2

3

)`The size of the signature is the full transcript size_ 50 kB for a security of 280

8

Page 31: 5. Other Cryptographic Constructions Relying on Coding Theory · _ no need to hide a trap like other identification schemes, it can be converted into a signature scheme 1. Stern’s

5. Other Cryptographic Constructions Relying onCoding Theory

• Code-Based Digital Signatures• The Courtois-Finiasz-Sendrier (CFS) Construction• Attacks against the CFS Scheme• Parallel-CFS• Stern’s Zero-Knowledge Identification Scheme• An Efficient Provably Secure One-Way Function• The Fast Syndrome-Based (FSB) Hash Function

Matthieu Finiasz CODE-BASED CRYPTOGRAPHY


Recommended