on the design of code based signatures
play

On the Design of Code-Based Signatures Ayoub Otmani - PowerPoint PPT Presentation

Code-Based Cryptography Workshop 2012 9 11 May 2012, Lyngby, Denmark On the Design of Code-Based Signatures Ayoub Otmani ayoub.otmani@unicaen.fr Outline 1. Fiat-Shamir paradigm 2. Hash-and-Sign paradigm 3. Lossy Source Coding


  1. Code-Based Cryptography Workshop 2012 9 – 11 May 2012, Lyngby, Denmark On the Design of Code-Based Signatures Ayoub Otmani ayoub.otmani@unicaen.fr

  2. Outline 1. Fiat-Shamir paradigm 2. Hash-and-Sign paradigm 3. “Lossy Source Coding” Signatures (joint work with J.P. Tillich)

  3. About this Lecture . . . ⊲ Focus on “classical” signatures • Authentication • Integrity • Non-repudiation ⊲ “Sophisticated” signatures are not treated : Ring signature, threshold ring signature, blind signature, undeniable signature, . . .

  4. Signature Scheme Definition. A signature scheme is given by three algorithms: ⊲ ( sk , pk ) ← − KeyGen ( λ ) where λ is a security parameter − Sign ( sk , m ) where m ∈ { 0 , 1 } ∗ ⊲ σ ← ⊲ b ← − Verify ( pk , m , σ ) where b ∈ { accept , reject } and such that: � � pk , m , Sign ( sk , m ) = accept Verify

  5. Security Model Terminology ⊲ Forger = Attacker ⊲ Forger’s goal • Universal Forgery (key-recovery, . . . ) • Existential Forgery ⊲ Forger’s means • No -message • Known message • Chosen message

  6. I. Fiat-Shamir Paradigm

  7. Fiat-Shamir Paradigm (’86) ⊲ Generic method for deriving a signature scheme from any 3-pass identification scheme • Replacing Verifier’s action’s by a hash function h • Secure if the identification scheme is secure against impersonation (Abdalla-An-Bellare-Namprempre ’02) ⊲ Code-based identification scheme (zero-knowledge protocol) • Stern (’93) • Veron (’96)

  8. 3-Pass Identification Scheme P V ( sk , pk ) ← KeyGen ( λ ) 1 . a = Commit ( sk , nonce ) 2 . − − − − − − − − − − − − − − − − − − − − → b = Challenge ( λ, nonce ) 3 . ← − − − − − − − − − − − − − − − − − − − − c = Response ( sk ,a,b ) 4 . − − − − − − − − − − − − − − − − − − − − → 5 . Verify ( pk , a, b, c )  a = Commit ( sk , nonce )    � � pk , a, b, c = accept if b = Challenge ( λ ) Verify   c = Response ( sk , a, b ) 

  9. Fiat-Shamir Paradigm ⊲ Signature σ is computed by means of the steps: 1. a = Commit ( sk , nonce ) 2. b = h ( a, m ) 3. c = Response ( sk , a, b ) 4. σ = ( a, c ) ⊲ Verification is done by computing b ′ = h ( a, m ) and checking: pk , a, b ′ , c � � = accept Verify ⊲ Efficiency with Stern’s protocol: • Fast operations • Large signatures O ( n log n ) bits • Large keys O ( n 2 ) ( fixed rate)

  10. II. Hash-and-Sign Paradigm

  11. Introduction � � ⊲ Deriving a signature scheme from a public-key encryption D sk , E pk ⊲ For efficiency , m should be a fixed length bit-string � Signing a hash value h ( m ) � � ⊲ Signature of m is σ = D sk h ( m ) ⊲ Verification of ( m , σ ′ ) checks if: E pk ( σ ′ ) = h ( m ) ⊲ Random Oracle Model (ROM) � h is a random function

  12. Niederreiter Cryptosystem ⊲ Public key : Parity-check matrix H of a binary Goppa code of length n and dimension k ⊲ Secret Key : t -correcting algorithm ψ ⊲ Encryption : x � y = Hx T with x of weight t ⊲ Decryption : compute ψ ( y ) and recover x Assumption. k = n − mt � H is a mt × n matrix

  13. Signing with Niederreiter Scheme ⊲ ROM implies to perform complete decoding ⊲ But probability that a randomly drawn vector in { 0 , 1 } n is at distance t from a codeword � n � n � � n t ≃ 1 t t t ! � t has to be small 2 mt � ⊲ Courtois-Finiasz-Sendrier (’01) proposed a method for producing Niederreiter signatures for any hash value: • Modifying m until it lies within distance t from a codeword • Efficiency implies to take small t ( t � 12 ) • Security implies to take large n ( n � 16 )

  14. CFS Scheme Sign ( m , ψ ) 1. s = h ( m ) ; 2. i = 0 ; 3. Repeat 4. i = i + 1 ; 5. s i = h ( s , i ) ; 6. z = ψ ( s i ) ; 7. until z � = ∅ ; 8. Return σ = ( z , i ) ;

  15. CFS Scheme � � m , ( z , i ) , H , t Verify 1. s = h ( m ) ; 2. s i = h ( s , i ) � � s i = Hz T and wt ( z ) = t 3. If then 4. Return accept ; 5. else 6. Return reject ;

  16. Performances (80-bit) Performances with n = 2 m and k = n − mt Signature Verification Length Key size (bits) t ! t 2 m 3 t 2 m tm 2 m ( m, t ) tm + log 2 t 2 41 . 6 2 11 . 0 2 28 . 7 (21 , 10) 213 . 3 2 44 . 9 2 11 . 1 2 26 . 7 (19 , 11) 212 . 4 2 47 . 7 2 11 . 0 2 22 . 4 (15 , 12) 183 . 5

  17. CFS Scheme - Alternative Way ⊲ Decoding any syndrome by increasing the number of errors t � t + δ where � n � � 2 mt t + δ ⊲ These extra δ errors found through an exhaustive search � n � � Signing time increased by δ � n � ⊲ Real gain when < t ! � generally δ � 2 δ

  18. Security ⊲ Key-Recovery Attack • Recovering the support and the Goppa polynomial • Best attack performs an exhaustive search on polynomials of degree t and applies Sendrier’s SSA algorithm Time complexity O (2 mt ) for polynomials with coefficients in F 2 m • ⊲ Existential Forgery under No-Message Attack • Syndrome Decoding Problem ⊲ Existential Forgery under Chosen Message Attack • “One-out-of-many Syndrome” Decoding Problem

  19. Existential Forgery - Algorithmic Problems Definition. (Syndrome Decoding Problem) • Input. H , a syndrome s and weight t Output. word e of weight � t such that He T = s • Definition. (“One-out-of-many Syndrome” Decoding Problem) • Input. H , a list L of syndromes and weight t Output. word e of weight � t and a syndrome s in L such that He T = s •

  20. Existing Approaches ⊲ Syndrome Decoding Problem � 2 mt/ 2 � • Information Set Decoding (ISD) algoritm � Time complexity O ⊲ “One-out-of-many Syndrome” Decoding Problem (Sendrier ’11) � 2 mt/ 2 � • onsson’s algorithm � Time complexity O Johansson and J¨ � 2 mt/ 3 � • Bleinchebacher’s Attack � Time complexity O

  21. Bleinchebacher’s Attack - Preliminaries ⊲ Based on the Generalized Birthday Paradox Problem → { 0 , 1 } r and ℓ � 1 • Input. f : E − ℓ � • Output. Finding x 1 , . . . , x ℓ in E such that f ( x i ) = 0 i =1 r � 2 � ⊲ Birthday Paradox O 2 ⊲ Wagner (’02) showed that when ℓ = 4 then time/memory complexity O (2 r/ 3 )

  22. Bleinchebacher’s Attack ⊲ Searching for words e 1 , e 2 , e 3 of weight t/ 3 and h ( m ) such that He T 1 + He T 2 + He T 3 + h ( m ) = 0 � n � 1. Build 3 lists L 0 , L 1 , L 2 of syndromes of words of weight t/ 3 t/ 3 2. New list L ′ 0 from L 0 into L 1 by XORing and keeping the resulting syndromes whose first mt/ 3 positions are zero 3. Build one (virtual) list L 3 of 2 mt/ 3 target hash values 4. Merge L 2 and L 3 into L ′ 1 by XORing and keeping the resulting syndromes whose first mt/ 3 positions are zero 5. Search for a collision between L ′ 0 and L ′ 1 over the last 2 mt/ 3 bits Remark. � n � 2 mt/ 3 � ⊲ At least one solution if t/ 3 ⊲ Time/Memory is about O (2 mt/ 3 )

  23. Parallel CFS (Finiasz ’10) ⊲ Reparation of CFS ⊲ Sign a message m twice (or i times) by means of two (or i ) different hash functions h 1 and h 2 (or . . . , h i ) ⊲ For avoiding (trivial) attacks, the two signatures has to be related � signing with second version of CFS Finding e 1 and e 2 of weight at most t + δ such that He T 1 = h 1 ( m ) and He T 2 = h 2 ( m ) ⊲ Time/memory complexity Bleinchebacher’s attack becomes O (2 2 mt/ 3 ) m t i Key size Cost Size 2 20 . 0 18 9 3 5 . 0 MB 288 2 19 . 5 19 9 2 10 . 7 MB 206 2 16 . 9 20 8 3 20 . 0 MB 294 80-bit security/ δ = 2

  24. Quasi-Dyadic CFS Signature ⊲ CFS-like scheme by Barreto-Cayrel-Misoczki-Niebhur (’11) ⊲ Based on binary Quasi-dyadic Goppa codes (Cauchy matrices) ⊲ Smaller keys than CFS scheme (reduction by a factor t )

  25. Cauchy Matrix ⊲ z = ( z 0 , . . . , z t − 1 ) ∈ F t q m ⊲ x = ( x 0 , . . . , x n − 1 ) ∈ F n q m with x i � = z j Definition. C ( z , x ) is Cauchy matrix if 1 1   · · · z 0 − x 0 z 0 − x n − 1   . . ... def  . .  C ( z , x ) = . .     1 1   · · · z t − 1 − x 0 z t − 1 − x n − 1 Proposition. The code defined by the parity-check C ( z , x ) is a Goppa code t − 1 � ( z − z i ) whose polynomial is γ ( z ) = i =0

  26. Dyadic Matrix Definition. ⊲ n = 2 ℓ for some integer ℓ � 1 ⊲ h = ( h 0 , . . . , h n − 1 ) from F n q � � def ∆ ( h ) = h i ⊕ j 0 � i � n − 1 0 � j � n − 1 ⊲ ∆ ( h ) is called a dyadic matrix Proposition. (Misoczki-Barreto ’09) ⊲ ∆ ( h ) is a Cauchy matrix if and only if F q is of characteristic 2 and 1 = 1 + 1 + 1 h i ⊕ j h j h i h 0 def def ⊲ Furthermore, for any θ ∈ F q , let z i = 1 /h i + θ and x j = 1 /h j + 1 /h 0 + θ ∆ ( h ) = C ( z , x )

  27. Quasi-Dyadic CFS - Key Generation ⊲ Choose t and let λ be the smallest integer such that t � 2 λ � ( sk , pk ) = ( f , G ) ⊲ G is a binary k × n generator matrix with n = n 0 2 λ and f ∈ F n 2 m such that: Gf T = 0 ⊲ f is “almost” the first row of a Dyadic Cauchy matrix • “ Inside-Block ” equations: 0 � a � n 0 − 1 and 0 � i, j � 2 λ − 1 1 1 1 1 = + + f a 2 λ + i ⊕ j f a 2 λ ⊕ i f a 2 λ ⊕ j f a 2 λ • “ Between-Block ” equations: 0 � a � n 0 − 1 and 0 � i � 2 λ − 1 1 f a 2 λ = 1 1 + 1 + f a 2 λ + i f i f 0

Recommend


More recommend