University of Waterloo
200 University Ave W, Waterloo, ON, N2L 3G1
A Code-based Hybrid Signcryption Scheme
Abstract
A key encapsulation mechanism () that takes as input an arbitrary string, i.e., a tag, is known as tag-, while a scheme that combines signature and encryption is called signcryption. In this paper, we present a code-based signcryption tag- scheme. We utilize a code-based signature and an (adaptive chosen ciphertext attack) secure version of McEliece’s encryption scheme. The proposed scheme uses an equivalent subcode as a public code for the receiver, making the NP-completeness of the subcode equivalence problem be one of our main security assumptions. We then base the signcryption tag- to design a code-based hybrid signcryption scheme. A hybrid scheme deploys asymmetric- as well as symmetric-key encryption. We give security analyses of both our schemes in the standard model and prove that they are secure against (indistinguishability under adaptive chosen ciphertext attack) and (strong existential unforgeability under chosen message attack).
Keywords: Coding theory, signature scheme, public-key cryptography, code-based cryptography, signcryption.
1 Introduction
In public-key cryptography, the authentication and confidentiality of communication between a sender and a receiver are ensured by a two-step approach called signature-then-encryption. In this approach, the sender uses a digital signature scheme to sign a message and then encrypt it using an encryption algorithm. The cost of delivering a message in a secure and authenticated way using the signature-then-encryption approach is essentially the sum of the cost of a digital signature and that of encryption.
In 1997, Y. Zheng introduced a new cryptographic primitive called signcryption to provide both authentication and confidentiality in a single logical step [67]. In general, one can expect the cost of signcryption to be noticeably less than that of signature-then-encryption. Zheng’s sincryption scheme is based on the hardness of the discrete logarithm problem. Since Zheng’s work, a number of signcryption schemes based on different hard assumptions have been introduced, see for example [67, 68, 61, 63, 39, 7, 8, 28, 58, 64, 38, 66]. Of these, the most efficient ones have followed Zheng’s approach, i.e., used symmetric-key encryption as a black-box component [7, 8, 28]. It has been of interest to many researchers to study how a combination of asymmetric- and symmetric-key encryption schemes could be used to build efficient signcryption schemes in a more general setting.
To that end, Dent in 2004 proposed the first formal composition model for hybrid signcryption [25] and in 2005 developed an efficient model for signcryption s in the outsider- and the insider-secure setting [26, 27]. In the outsider-secure setting the adversary is assumed to be distinct from the sender and receiver, while in the insider-secure setting the adversary is assumed to be a second party (i.e., either sender or receiver).
In order to improve the model for the insider-secure setting in hybrid signcryption, Bjørstad and Dent in 2006 proposed a model based on encryption tag- rather than regular encryption [14]. Their model provides a simpler description of signcryption with a better generic security reduction for the signcryption tag- construction. A year after Bjørstad and Dent’s work, Yoshida and Fujiwara reported the first study of multi-user setting security of signcryption tag-s [65] which is a more suitable setting for the analysis of insider-secure schemes.
Motivation
Most of the aforementioned signcryption schemes are based on the hardness of either the discrete logarithm or the integer factorization problem and would be broken with the arrival of sufficiently large quantum computers. Therefore it is of interest to design signcryption schemes for the post-quantum era. Coding theory has some hard problems that are considered quantum-safe and in this paper, we explore the design of code-based signcryption.
The first attempt for code-based signcryption was presented in 2012 by Preetha et al. [42]. After that work, an attribute-based signcryption scheme using linear codes was introduced in 2017 by Song et al. [59]. Code-based signcryption remains an active area of research, specifically to study the design of cryptographic primitives like signcryption schemes that are quantum-safe.
Contributions
In this paper, we present a signcryption tag- scheme using a probabilistic full domain hash (FDH) like code-based signature and a CCA2 secure version of McEliece’s encryption scheme. The underlying code-based signature in our scheme is called Wave introduced by Debris-Alazard et al. [4], while the CCA2 secure version of the McEliece scheme is based on the Fujisaki-Okamoto transformation introduced by Cayrel et al. [16]. For the underlying McEliece scheme, we use a generator matrix of permuted Goppa subcodes as receivers’ public keys. With this feature, we are able to reduce the public key size of our scheme and include the subcode equivalence problem as one of your security assumptions. Because of the latter, for the key recovery attack, even if an adversary is able to distinguish whether the underlying code is a Goppa code, it has to solve the subcode equivalence problem which is NP-complete. Thus, with well-chosen parameters, the most efficient attack against our scheme will be a brute-force attack.
Based on the signcryption tag-, we design a code-based hybrid signcryption scheme. Then we give security analyses of these two schemes in the standard model assuming the insider-secure setting. Finally, we give a comparison of the hybrid signcryption with some relevant lattice-based signcryptions in terms of key and ciphertext sizes.
Organization
This paper is organized as follows. In Section 2, we first recall some basic notions of coding theory and then briefly describe relevant encryption and signature schemes that are of interest to this work. Section 3 has the definition and framework of signcryption and hybrid signcryption, and a brief review of the relevant security model. We present our sigcryption and hybrid sigcryption schemes in Section 4 and then provide security analyses of the proposed schemes in Section 5. We provide a set of parameters for the hybrid sigcryption scheme in Section 6 and then conclude in Section 7.
Notations
In this paper we use the following notations:
-
•
: finite field of size where is a prime power.
-
•
: -linear code of length .
-
•
x: a word or vector of .
-
•
: weight of x.
-
•
(resp. ): generator (resp. parity-check) matrix of linear code .
-
•
is the set of -ary vectors of length and weight .
-
•
(resp. ): sender’s (resp. receiver’s) secrete key for signcryption.
-
•
(resp. ): sender’s (resp. receiver’s) public key for signcryption.
2 Preliminaries
In this section, we recall some notions pertaining to coding theory and code-based cryptography.
2.1 Coding theory and some relevant hard problems
Let us consider the finite field . A -ary linear code of length and dimension over is a vector subspace of dimension of . It can be specified by a full rank matrix , called generator matrix of , whose rows span the code. Namely, . A linear code can also be defined by the right kernel of matrix , called parity-check matrix of , as follows:
The Hamming distance between two codewords is the number of positions (coordinates) where they differ. The minimal distance of a code is the minimal distance of all codewords.
The weight of a word or vector , denoted by is the number of its nonzero positions. Then the minimal weight of a code is the minimal weight of all nonzero codewords. In the case of linear code , its minimal distance is equal to the minimal weight of the code.
Below we recall some hard problems that are relevant to our discussions and analyses presented in this article.
Problem 1
(Binary syndrome decoding (SD) problem) Given a matrix , a vector , and an integer , find a vector such that and .
The syndrome decoding problem was proven to be NP-complete in 1978 by Berlekamp et al. [13]. It is equivalent to the following problem.
Problem 2
(General decoding (GD) problem) Given a matrix , a vector , and an integer , find two vectors and such that and .
The following problem is used in the security proof of the underlying signature that we use in this paper. It was first considered by Johansson and Jonsson in [36]. It was analyzed later by Sendrier in [57].
Problem 3
(Decoding One Out of Many (DOOM) problem) Given a matrix , a set of vector , ,…, and an integer , find a vector and an integer such that , and .
Problem 4
(Goppa code distinguishing (GCD) problem) Given a matrix , decide whether is a random binary or generator matrix of a Goppa code.
Faugère et al. [30] showed that Problem 4 can be solved in special cases of Goppa codes with high rate.
The following is one of the problems, which the security assumption of our scheme’s underlying signature mechanism relies on.
Problem 5
(Generalized () code distinguishing problem.) Given a matrix , decide whether is a parity-check matrix of a generalized ()-code.
Problem 5 was shown to be hard in the worst case by Debris-Alazard et al. [22] since it is NP-complete. Below, we recall the subcode equivalence problem which is one of the problems on which the security assumption of our scheme is based. This problem was proven to be NP-complete in 2017 by Berger et al. [10].
Problem 6
(Subcode equivalence problem [10]) Given two linear codes and of length and respective dimension and , , over the same finite field , determine whether there exists a permutation of the support such that is a subcode of .
2.2 Code-based encryption
The first code-based encryption was introduced in 1978 by R. McEliece [45]. Below (in Figure 1) we give the McEliece scheme Fujisaki-Okamoto transformation [16] which comprises three algorithms: key generation, encryption, and decryption.
1. Randomly generate a monic irreducible polynomial of degree 2. Select a uniform random set of different elements . 3. Compute a generator matrix of the binary Goppa code from and . 4. Randomly choose a full rank matrix and permutation matrix with . 5. Set and . Input: Public key of the receiver and clear text m. Output: A ciphertext c. 1. 2. Compute 3. Compute 4. Compute . 5. Parse 6. Return c Input: Receiver’s secret key , a ciphertext c and two hash functions and . Output: A clear message m. 1. Parse c into () 2. Compute 3. Compute , where is a decoding algorithm for Goppa code. 4. Compute 5. Compute 6. If 7. Return 8. Return m
The main drawback of the McEliece encryption scheme is its very large key size. To address this issue, many variants of McEliece’s scheme have been proposed, see for example [11, 12, 46, 47, 9, 52]. In order to reduce the size of both public and private keys in code-based cryptography, H. Niederreiter in 1986 introduced a new cryptosystem [49]. Niederreiter’s cryptosystem is a dual version of McEliece’s cryptosystem with some additional properties such that the ciphertext length is relatively smaller. Indeed, the public key in Niederreiter’s cryptosystem is a parity-check matrix instead of a generator matrix. In addition, ciphertexts are syndrome vectors instead of erroneous codewords. However, the McEliece and the Niederreiter schemes are equivalent from the security point of view due to the fact that Problems 1 and 2 are equivalent.
Code-based hybrid encryption: A hybrid encryption scheme is a cryptographic protocol that features both an asymmetric- and a symmetric-key encryption scheme. The first component is known as Key Encapsulation Mechanism (), while the second is called Data Encapsulation Mechanism (). The framework was first introduced in 2003 by Cramer and Shoup [21] and later the first code-based hybrid encryption was introduced in 2013 by Persichetti [53] using Niederreiter’s encryption scheme. Persichetti’s scheme was implemented in 2017 by Cayrel et al. [17]. After Persichetti’s work, some other code-based hybrid encryption schemes have been reported, e.g., [43].
2.3 Code-based signature
Designing a secure and practical code-based signature scheme is still an open problem. The first secure code-based signature scheme was introduced by Courtois et al. (CFS) [20]. It is a full domain hash (FDH) like signature with two security assumptions: the indistinguishability of random binary linear codes and the hardness of syndrome decoding problem. To address some of the drawbacks of Courtois et al.’s scheme, Dallot proposed a modified version, called mCFS, which is provably secure. Unfortunately, this scheme is not practical due to the difficulties of finding a random decodable syndrome. In addition, the assumption of the indistinguishability of random binary Goppa codes has led to the emergence of attacks as described in [30]. One of the latest code-based signature schemes of this type is called Wave [23]. It is based on generalized ()-codes. It is secure and more efficient than the CFS signature scheme. In addition, it has a smaller signature size than almost all finalist candidates in the NIST post-quantum cryptography standardization process [5].
Apart from the full domain hash approach, it is possible to design signature schemes by applying the Fiat-Shamir transformation [31] to an identification protocol. To this end, one may use a code-based identification scheme like that of Stern [62], Jain et al. [35], or Cayrel et al. [18]. This approach however leads to a signature scheme with a very large signature size. To address this issue, Lyubashevsky’s framework [40] can apparently be adapted. Unfortunately, almost all code-based signature schemes in Hamming metric designed by using this framework have been cryptanalyzed [15, 54, 55, 32, 41, 60]. The only one which has remained secure so far is a rank metric-based signature scheme proposed by Aragon et al.[1].
In Figure 2, we recall Debris-Alazard et al.’s signature scheme (Wave) which is of our interest for this work. In Wave, the secret key is a tuple of three matrices , where is an invertible matrix, is a parity-check matrix of a generalized ()-code and is a permutation matrix. The public key is a matrix , where . Steps for signature and verification processes are given in Figure 2. For additional details, the reader is referred to [24, 23].
Input: Public key , secret key , dimension of the generalized ()-code, the dimension of the code , the dimension of the code and the weight of error vectors. Output: 1. 2. 3. Compute 4. Return 1. Compute 2. Compute . 3. If : Return 4. Else: Return valid
3 Signcryption and security model
In this section, we first recall the definition of signcryption followed by the signcryption tag- framework and its security model under the insider setting.
3.1 Signcryption and its tag-KEM framework
Signcryption: A signcryption scheme is a tuple of algorithms =(, , , , ) [3] where:
-
() is the common parameter generation algorithm with , the security parameter,
-
(resp. ) is a key-pair generation algorithm for the sender (resp. receiver),
-
is the signcryption algorithm and
-
corresponds to the unsigncryption algorithm.
For more details on the design of signcryption, the reader is referred to [29] (Chap. 2, Sec. 3, p. 30).
Signcryption tag-: A signcryption tag- denoted by is a tuple of algorithms [14]:
where,
-
•
is an algorithm for generating common parameters.
-
•
(resp. ) is the sender (resp. receiver) key generation algorithm. It takes as input the global information , and returns a private/public keypair (, ) (resp. (, )) that is used to send signcrypted messages.
-
•
is a symmetric key generation algorithm. It takes as input the private key of the sender and the public key of the receiver and outputs a symmetric key together with internal state information .
-
•
takes as input the state information together with an arbitrary string , which is called a tag, and outputs an encapsulation .
-
•
is the decapsulation/verification algorithm. It takes as input the sender’s public key , the receiver’s private key , an encapsulation , and a tag . It returns either symmetric key or the unique error symbol .
Hybrid signcryption tag-+: It is simply a combination of a and a regular Data Encapsulation Mechanism ().
3.2 Insider security for signcryption tag-KEM
game in signcryption tag-: It corresponds to a game between a challenger and a probabilistic polynomial-time adversary such that the latter tries to distinguish whether a given session key is the one embedded in an encapsulation or not. During this game, has adaptive access to three oracles for the attacked user corresponding to algorithms , , and [14, 29, 65]. The game is described in Figure 3 below.
1. is the symmetric key generation oracle with input a public key , and computes (, ) = (, ). It then stores the value (hidden from the view of the adversary, and overwriting any previously stored values), and returns the symmetric key . 2. is the key encapsulation oracle. It takes an arbitrary tag as input and checks whether there exists a stored value . If there is not, it returns and terminates. Otherwise, it erases the value from storage and returns . 3. corresponds to the decapsulation/verification oracle. It takes an encapsulation , a tag , any sender’s public key as input and returns . Game for 1. 2. 3. 4. , and 5. 6. 7.
During Step 7, the adversary is restricted not to make decapsulation queries on to the decapsulation oracle. The advantage of the adversary is defined by:
A signcryption tag- is secure if, for any adversary , its advantage in the game is negligible with respect to the security parameter .
game for signcryption tag-: This game is a challenge between a challenger and a probabilistic polynomial-time adversary (i.e., a forger) . In this game, the forger tries to generate a valid encapsulation from the sender to any receiver, with adaptive access to the three oracles. The adversary is allowed to come up with the presumed secret key as part of his forgery [65]:
Game for 1. 2. 3.
The adversary wins the game if
and the encapsulation oracle never returns when he queries on the tag . The advantage of is the probability that wins the game. A signcryption tag- is secure if the winning probability of the game by is negligible.
Definition 1
A signcryption tag- is said to be secure if it is and secure.
3.3 Generic security criteria of hybrid signcryption tag-KEM+DEM
Security criteria for hybrid signcryption: The security of a hybrid signcryption tag-+ depends on those of the underlying signcryption tag- and . However, it is important to note that in the standard model a signcryption tag- is secure if it is both and secure. Therefore, the generic security criteria for hybrid signcryption tag-+ is given by the following theorem:
4 Code-based hybrid signcryption
In this section, we first design a code-based signcryption tag- scheme. Then we combine it with a one-time (OT) secure for designing a hybrid signcryption tag-+ scheme.
4.1 Code-based signcryption tag-KEM scheme
For designing our code-based signcryption tag- scheme, we use the McEliece scheme as the underlying encryption scheme. More specifically, in order to achieve the security for our schemes, we use McEliece’s scheme with the Fujisaki-Okamoto transformation [33, 16]. The authors of [16] gave an instantiation of this scheme using generalized Srivastava (GS) codes. Indeed, by using GS codes, it seems possible to choose secure parameters even for codes defined over relatively small extension fields. However, Barelli and Couvreur recently introduced an efficient structural attack [6] against some of the candidates in the NIST post-quantum cryptography standardization process. Their attack is against code-based encryption schemes using some quasi-dyadic alternant codes with extension degree . It works specifically for schemes based on GS code called DAGS [4]. Therefore, in our work, we use the Goppa code with the Classic McEliece parameters. As for the underlying signature scheme, we use the code-based Wave [23] as described earlier.
The fact that we use Wave, the sender’s secret key is a generalized ()-code over a finite field with . Its public key is a parity-check matrix of a code equivalent to the previous one. To reduce the public key size, we use a permuted Goppa subcode for the receiver’s public key. Thus, we include the subcode equivalence problem as one of the security assumptions of our scheme. In Fig. 5, we describe the algorithm which will provide common parameters for our scheme.
Input: () Output: • Parameters of sender’s generalized ()-code: code length , dimension of U, dimension of V, dimension of the generalized ()-code, weight of error vector , cardinality of the finite field . • Parameters of receiver’s Goppa code: degree of extension of , length of the Goppa code, degree of Goppa polynomial , dimension of Goppa subcode. • A cryptographic hash functions • A cryptographic hash functions where is the bit length of the symmetric encryption key. • A hash function where . • A cryptographic hash function • An encoding function where is a well chosen parameters such that and is the set of binary vectors of length and Hamming weight .
We give key generation algorithms in Figure 6, where we denote the sender key generation algorithm by and that of the receiver by . The receiver algorithm returns as signcryption public key a generator matrix of a Goppa subcode equivalent. It returns as signcryption secret key the tuple (), where and are, respectively, the support and the polynomial of a Goppa code. is a full rank matrix and a permutation matrix. The sender key generation algorithm returns as private key three matrices , and , where is an invertible matrix, a parity-check matrix of a random generalized ()-code and a permutation matrix. The sender public key is a parity-check matrix of a generalized () equivalent code given by .
Input: Integers and . Output: and . 1. Randomly generate a monic irreducible polynomial of degree 2. Select a uniform random set of different elements . 3. Compute a parity-check matrix of the binary Goppa code from and . 4. Randomly choose a full rank matrix and permutation matrix with . 5. Set and . 6. Return and . Input: Integers and . Output: and 1. Choose randomly a parity-check matrix of a code () over such that dim and dim. 2. Randomly choose a full rank matrix and a monomial matrix . 3. Set and . 4. Return and .
In Figure 7, we give the design of the symmetric key generation algorithm of our scheme. The algorithm takes as input the bit length of the symmetric encryption key. It outputs an internal state information and the session key , where is randomly chosen from , and is computed by using the hash function .
Input: The bit length of the symmetric encryption key. Output: An internal state information and a session key . 1. 2. Compute 3. Set 4. Return
Figure 8 provides a description of the encapsulation and decapsulation algorithms of our signcryption tag- scheme. We denote the encapsulation algorithm by and the decapsulation by . In the encapsulation algorithm, the sender first performs a particular Wave signature on the message , where corresponds to an internal state information and is the input tag. The signature in the Wave scheme comprises two parts: an error vector and a random binary vector y. In our scheme, z is the hash of a random coin . The sender then performs an encryption of . The encryption that we use in our scheme is the secure McEliece encryption scheme with the Fujisaki-Okamoto transformation introduced by Cayrel et al. [16]. During the encryption, the sender adaptively uses the random binary vector y as a random coin. The resulting ciphertext is denoted by c. The output is given by .
Input: (, ) with
Output: An encapsulation of the internal state information .
1.
with
2.
Compute
3.
Compute
4.
Compute
5.
Compute
6.
Compute
7.
Compute
8.
Compute , where with an constant weight encoding function.
9.
Compute .
10.
Parse
11.
Return
Input: (, , , )
Output: Session key
1.
Parse as .
2.
Compute
3.
Parse x as ()
4.
If or :
5.
Return
6.
Compute
7.
Return .
In the decapsulation algorithm , the receiver first performs recovery of the internal state information by using the algorithm and the second part of the signature of m. Then it verifies the signature and computes the session by using .
The algorithm that we use in the decapsulation algorithm of our scheme is described in Figure 9. It is similar to that described in [16] but we introduce some modifications which are:
-
•
we use an encoding function
-
•
the output is not only the clear message m, but a pair () where y is the reciprocal image the error vector by the encoding function
Input: Secrete the receiver and a ciphertext c . Output: The pair (), where . 1. Parse c into () 2. Compute , where is a decoding algorithm for Goppa code. 3. 4. Compute 5. Compute 6. If 7. Return 8. Return
Completeness of our signcryption tag-
Let be a tag, (, ) (resp. and ) be sender’s (resp. receiver’s) key pair generated by the algorithm with input . Let (, ):=(, ) be a pair of a session key and an internal state information. Let () be an encapsulation of the internal state information . Assuming that the encapsulation and decapsulation are performed by an honest user, we have:
-
•
The receiver can recover the pair ( from c and verify successfully that
Otherwise, the receiver performs a successful signature verification of message signed by an honest user using the dual version of mCFS signature.
-
•
Therefore it can compute the session key .
4.2 Code-based hybrid signcryption
Here we use the signcryption tag- described in Section 4.1 for designing a code-based hybrid signcryption. For the data encapsulation, we propose the use of a regular OT-secure symmetric encryption scheme. We denote the symmetric encryption algorithm being used by and the symmetric decryption algorithm by .
Figure 10 gives the design of our code-based hybrid signcryption tag-+. In this design, algorithms , and are the same as those of our signcrytion tag-. Algorithms and are those of our signcryption tag- in Section 4.1.
Input: A three tuple (, , m)
Output: The signcrypted message .
1.
Compute (, )=(,
2.
Compute (, m)
3.
Compute (, )
4.
Return
Input: A three tuple (, , )
Output: The clear text m
1.
If (, , c)= return
2.
Compute ()
3.
Return m
5 Security analysis
Before discussing the security of our hybrid scheme, let us consider the following assumptions for our security analysis:
Assumption 1: The advantage of probabilistic polynomial-time algorithm to solve the decoding random linear codes problem is negligible with respect to the length and dimension of the code.
Assumption 2: The advantage of probabilistic polynomial-time algorithm to solve the () distinguishing problem is negligible with respect to the length and dimension of the code.
Assumption 3: The advantage of probabilistic polynomial-time algorithm to solve the subcode equivalence problem is negligible with respect to the length and dimension of the code.
Assumption 4: The advantage of probabilistic polynomial-time algorithm to solve the decoding one out of many (DOOM) problem is negligible with respect to the length and dimension of the code.
Assumption 5: The advantage of probabilistic polynomial-time algorithm to solve the Goppa code distinguishing problem is negligible with respect to the length and dimension of the code.
5.1 Information-set decoding algorithm
In code-based cryptography, the best-known non-structural attacks rely on information-set decoding. The information-set decoding algorithm was introduced by Prange [56] for decoding cyclic codes. After the publication of Prange’s work, there have been several works studying to invert code-based encryption schemes based on information-set decoding (see [2] Section 4.1).
For a given linear code of length and dimension , the main idea behind the information-set decoding algorithm is to find a set of coordinates of a garbled vector that are error-free and such that the restriction of the code’s generator matrix to these positions is invertible. Then, the original message can be computed by multiplying the encrypted vector by the inverse of the submatrix.
Thus, those bits determine the codeword uniquely, and hence the set is called an information set. It is sometimes difficult to draw the exact resistance to this type of attack. However, they are always lower-bounded by the ratio of information sets without errors to total possible information sets, i.e.,
(1) |
where is the Hamming weight of the error vector. Therefore, well-chosen parameters can avoid these non-structural attacks. In our scheme, we use the parameters of the Wave signature [23] for the sender and those of Classic McEliece [2] for the receiver in the underlying encryption scheme.
5.2 Key recovery attack
In code-based cryptography, usually, the first step in the key recovering attack is to perform a distinguishing attack on the public code in order to identify the family of the underlying code. Once successful, the attacker can then perform any well-known attack against this family of underlying codes to recover the secret key. When the underlying code is a Goppa code, the main distinguishing attack technique consists of evaluating the square code or the square of the trace code of the corresponding public code [30, 44, 48]. Note that this technique usually works for a Goppa code with a high rate. Compared to many other code-based encryption schemes, in which the public code is equivalent to an alternant or a Goppa code, in this work the public code is a permuted Goppa subcode. Thus, in addition to the indistinguishability of Goppa codes, the subcode equivalence problem becomes one of our security assumptions. Moreover, to the best of our knowledge, there is no attack reported in the literature on distinguishing a code equivalent to a Goppa subcode. Therefore, by using the subcode equivalence problem as a security assumption, we can keep our scheme out of the purview of the distinguishing attack even though the underlying code is a Goppa code.
Throughout the rest of our analysis, we assume that the attacker knows that the family of the underlying code is a Goppa code. In our case, the key recovery attack is at two different levels: the first one is on the sender side, and the second one is on the receiver side.
On the receiver side, the key recovery attack consists of the recovery of the Goppa polynomial and the support from the public matrix. Therefore, the natural way for this is to perform a brute-force attack: one can determine the sequence from and the set , or alternatively determine from . A good choice of parameters can avoid this attack for the irreducible Goppa code the number of choices of is given by
By using the parameters of Classic McEliece, we can see that the complexity for performing a brute-force attack to find Goppa polynomial is more than for the parameters proposed in [2].
It is also important to note that if the adversary has the knowledge of the underlying Goppa code , performing the key recovery attack implies solving a computational instance of a subcode equivalence problem. Indeed, this corresponds to finding the permutation such that is a subcode of . We can see that finding the permutation is equivalent to solving the following system:
(2) |
where is a parity-check matrix of the underlying Goppa code , is the generator matrix of the public code and is the matrix of the unknown permutation . Note that solving (2) is equivalent to solving a variant of permuted kernel problem [37]. A natural way to solve (2) is to use the brute force attack and such an attack is of order . However, the adversary could use Georgiades’ technique [34] where its complexity is given in our case by
(3) |
Recently Paiva and Terada introduced in [51] a new technique for solving (2). The workfactor of their attack applied to our scheme is given by:
(4) |
From (3) and (4), we can see that a well-chosen set of parameters can avoid the attack of Georgiades as well as that of Paiva and Terada.
In the case of the sender, the key recovery attack consists of first solving the () distinguishing problem for finite fields of cardinality . Therefore under Assumption 3 and with a well-chosen set of parameters, this attack would fail.
5.3 IND-CCA and SUF-CMA security
In code-based cryptography, the main approach to a chosen-ciphertext attack against the McEliece encryption scheme consists of adding two errors to the received word. If the decryption succeeds, it means that the error vector in the resulting word has the same weight as the previous one. In our signcryption tag- scheme, this implies either recovering the session key or distinguishing encapsulation of two different session keys from . We see that the recovery of the session key corresponds to the recovery of plaintext in a secure version of McEliece’s cryptosystem (see [16] Subsection 3.2). We now have the following theorem:
Theorem 5.1
Under Assumptions 1, 3, and 5, the signcryption tag- scheme described in Subsection 4.1 is secure.
Proof
Let be a PPT adversary against the signcryption tag- scheme described in Subsection 4.1 in the signcryption tag- game. Let us denote its advantage by . For proving Theorem 5.1 we need to bound .
Game 0: This game is the normal signcryption tag- game. Let us denote by the event that the adversary wins Game 0 and the probability that it happens. Then we have
Game 1: This game corresponds to the simulation of the hash function oracle. Indeed it is the same as Game 0 except that adversary can have access to the hash function oracle: It looks for some pair such that . Then, it tries to continue by computing . We can see that it could succeed at least when the following collisions happen:
Therefore, if is the number of queries allowed and the event that wins game , then we have:
Game 2: This game is the same as Game 1 except that the error vector e in the encapsulation output is generated randomly. We can see that the best to proceed is to split c as and then try to invert either for recovering the error or for recovering directly the internal state . That means that the adversary is able either to solve the syndrome decoding problem or to invert a one-time pad function. Therefore we have:
where is the advantage of an adversary against the syndrome decoding problem, is a negligible function, and is the bit length of the symmetric encryption.
Game 3: This game is the same as Game 2. However, the change is in the key generation algorithm. Indeed, a random code is chosen as the underlying code instead of Goppa. We can see that this change is indistinguishable. In fact, distinguishing this change corresponds to solving in part the Goppa code distinguishing problem. Thus, we have
where is the advantage of a PPT adversary in the Goppa code distinguishing problem and the security parameter. If there is a PPT adversary capable of distinguishing this change, we can use it to construct an adversary to solve the Goppa code distinguishing problem as follows:
-
1.
Once receiving an instance of a generator matrix of a code in Goppa code distinguishing problem, extracts a generator matrix of a subcode of and forward it to .
-
2.
will reply by if the change has happened, i.e., the underlying code is not a Goppa code. It will reply by 0 otherwise.
-
3.
If receives from , it means that is not a Goppa code and outputs , otherwise it returns , i.e, is a Goppa code.
Game 4: This game is the same as Game 3 except that the public key is a random matrix instead of a generator matrix of a permuted subcode. We can see that this change is indistinguishable according to the subcode equivalence assumption. Thus we have:
where is the advantage of a PPT adversary in the subcode equivalence problem and is the security parameter. Moreover, we can show that if an adversary wins this game, we can use it to construct an adversary for attacking the underlying McEliece scheme in the public key encryption game (called in Appendix 0.A). For more details on the underlying McEliece encryption scheme and its security proof, the reader is referred to Appendix 0.C. We now proceed as follows:
-
•
Given the receiver public key which corresponds to a receiver public key signcryption tag-, does the following:
-
chooses randomly
-
chooses randomly
-
sends the public key and to
-
-
•
Given a tag from , :
-
sends the pair (,) to the encryption oracle of
-
forwards c received from the encryption oracle to
-
-
•
For every decryption query (, ) from :
-
if , return to , otherwise it sends to the decryption oracle of .
-
Receiving from the decryption oracle:
-
if , returns to , otherwise, it returns to
-
-
-
•
When outputs , returns 1, otherwise, it returns 0.
Let be the advantage of in the . Note that the target ciphertext c can be uniquely decrypted to . Therefore any other than cannot be a valid signcryption ciphertext unless collusion of takes place, i.e., . The correct answer to any decryption query with is . Decryption queries from are correctly answered since is decrypted by the decryption oracle of .
When outputs , it means that is embedded in otherwise is embedded. It means that the adversary wins game with the same probability as wins Game 4 when collision of has happened. Let be the event collision of has happened and the event wins the . Let us denote by the probability of the event and that of . Therefore we have:
By putting it all together, we conclude our proof.
Theorem 5.2
Under Assumptions 2 and 4, the signcryption tag- scheme described in Subsection 4.1 is secure.
Proof
Let be an adversary against our signcryption tag- in the game and its advantage. For the forgery of our signcryption, adversary needs to first find a pair such that . Then, it will try to find such that , i.e., it wins in the target pre-image free game (see Appendix 0.B) against the cryptographic hash function . We can see that finding such that corresponds to the forgery of the underlying Wave signature scheme. Let be the advantage of an adversary in the pre-image free game against a cryptographic hash function. Let be an adversary against the Wave signature in the game and its advantage. Let be the event that wins. Let be the event that the adversary is able to find a pre-image x of y by such that . We have:
Note that due to the fact that is a cryptographic hash function, is negligible and that concludes our proof.
Corollary 1
The signcryption tag- described in Subsection 4.1 is secure.
Proposition 1
Under Assumptions 1, 3, and 5, the hybrid signcryption tag- scheme described in Subsection 4.2 is .
Proof
Proposition 2
Under Assumptions 2 and 4, the hybrid signcryption tag- scheme described in Subsection 4.2 is secure.
Proof
Under Assumptions 2 and 4, the underlying signcryption tag- is secure and, therefore, according to the Theorem 3.1, the proposed hybrid signcryption tag- is secure.
6 Parameter values
For our scheme, we choose parameters such that and of the underlying Wave signature and McEliece’s encryption, respectively, satisfy . According to the sender and receiver keys, the size of our ciphertext is given by
Table 1 gives suggested values of the parameters of our scheme. These values have been derived using those of Wave [5] and Classic McEliece [2] for NIST PQC Level 1 security. According to the values given in Table 1, the ciphertext size in bits of our scheme is in the order of .
Parameter | |||||||||
---|---|---|---|---|---|---|---|---|---|
Value | 8492 | 3558 | 2047 | 7980 | 12 | 64 | 3488 | 1815 | 512 |
Table 2 provides key sizes of our scheme in terms of relevant parameters. Then in Table 3 we give a numerical comparison of key and ciphertext sizes of our scheme with some existing lattice-based hybrid signcryption schemes. The rationale behind comparing our scheme against lattice-based schemes is that no code-based hybrid signcryption scheme exists in the literature and the underlying hard problems in both codes- and lattice-based schemes are considered quantum-safe. For the lattice-based schemes in our comparison, the parameters, including plaintext size of 512 bits, are from [58, Table 2]. We can see that for post-quantum security level 1 the proposed scheme has the smallest key and ciphertext sizes.
User | Public key | Secret key |
---|---|---|
Receiver’s key size | ||
Sender’s key size |
7 Conclusion
In this paper, we have proposed a new signcryption tag- based on coding theory. The security of our scheme relies on known hard problems in coding theory. We have used the proposed signcryption scheme to design a new code-based hybrid signcryption tag-+. We have proven that the proposed schemes are and secure against any probabilistic polynomial-time adversary. The proposed scheme has a smaller ciphertext size compared to the pertinent lattice-based schemes.
References
- [1] N. Aragon, O. Blazy, P. Gaborit, A. Hauteville, and G. Zémor, “Durandal: a rank metric based signature scheme,” in Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer, 2019, pp. 728–758.
- [2] M. R. Albrecht, D. J. Bernstein et al., “Classic McEliece: conservative code-based cryptography.” Online Available: https://classic.mceliece.org/nist/mceliece-20201010.pdf
- [3] J. Baek, R. Steinfeld, and Y. Zheng, “Formal proofs for the security of signcryption,” Journal of Cryptology, vol. 20, no. 2, pp. 203–235, 2007.
- [4] G. Banegas, P. S. Barreto, B. O. Boidje, P.-L. Cayrel, G. N. Dione, K. Gaj, C. T. Gueye, R. Haeussler, J. B. Klamti, O. N’diaye et al., “Dags: Key encapsulation using dyadic gs codes,” Journal of Mathematical Cryptology, vol. 12, no. 4, pp. 221–239, 2018.
- [5] G. Banegas, T. Debris-Alazard, M. Nedeljkovic, and B. Smith, “Wavelet: Code-based postquantum signatures with fast verification on microcontrollers,” arXiv preprint arXiv:2110.13488, 2021.
- [6] E. Barelli and A. Couvreur, “An efficient structural attack on NIST submission DAGS,” in International Conference on the Theory and Application of Cryptology and Information Security. Springer, 2018, pp. 93–118
- [7] P. S. Barreto, B. Libert, N. McCullagh, and J.-J. Quisquater, “Signcryption schemes based on the Diffie–Hellman problem,” in Practical Signcryption. Springer, 2010, pp. 57–69.
- [8] P. S. Barreto, B. Libert, N. McCullagh and J. Quisquater, “Signcryption schemes based on bilinear maps,” in Practical Signcryption. Springer, 2010, pp. 71–97.
- [9] P. S. Barreto, R. Lindner, and R. Misoczki, “Monoidic codes in cryptography,” in International Workshop on Post-Quantum Cryptography. Springer, 2011, pp. 179–199.
- [10] T. P. Berger, C. T. Gueye, and J. B. Klamti, “A NP-complete problem in coding theory with application to code based cryptography,” in International Conference on Codes, Cryptology, and Information Security. Springer, 2017, pp. 230–237.
- [11] T. P. Berger and P. Loidreau, “How to mask the structure of codes for a cryptographic use,” Designs, Codes and Cryptography, vol. 35, no. 1, pp. 63–79, 2005.
- [12] T. P. Berger, P.-L. Cayrel, P. Gaborit, and A. Otmani, “Reducing key length of the McEliece cryptosystem,” in International Conference on Cryptology in Africa. Springer, 2009, pp. 77–97.
- [13] E. Berlekamp, R. McEliece, and H. Van Tilborg, “On the inherent intractability of certain coding problems (corresp.),” IEEE Transactions on Information Theory, vol. 24, no. 3, pp. 384–386, 1978.
- [14] T. E. Bjørstad and A. W. Dent, “Building better signcryption schemes with tag-s,” in International Workshop on Public Key Cryptography. Springer, 2006, pp. 491–507.
- [15] J.-F. Biasse, G. Micheli, E. Persichetti, and P. Santini, “Less is more: Code-based signatures without syndromes.” in International Conference on Cryptology in Africa. Springer, Cham, 2020. p. 45-65.
- [16] P.-L. Cayrel, G. Hoffmann, and E. Persichetti, “Efficient implementation of a CCA2-secure variant of McEliece using generalized Srivastava codes,” in International Workshop on Public Key Cryptography. Springer, 2012, pp. 138–155.
- [17] P.-L. Cayrel, C. T. Gueye, O. Ndiaye, E. Persichetti et al., “Efficient implementation of hybrid encryption from coding theory,” in International Conference on Codes, Cryptology, and Information Security. Springer, 2017, pp. 254–264.
- [18] P.-L. Cayrel, P. Véron, and S. M. E. Y. Alaoui, “A zero-knowledge identification scheme based on the q-ary syndrome decoding problem,” in International Workshop on Selected Areas in Cryptography. Springer, 2010, pp. 171–186.
- [19] D. Chiba, T. Matsuda, J. C. Schuldt, and K. Matsuura, “Efficient generic constructions of signcryption with insider security in the multi-user setting,” in International Conference on Applied Cryptography and Network Security. Springer, 2011, pp. 220–237.
- [20] N. T. Courtois, M. Finiasz, and N. Sendrier, “How to achieve a McEliece-based digital signature scheme,” in International Conference on the Theory and Application of Cryptology and Information Security. Springer, 2001, pp. 157–174.
- [21] R. Cramer and V. Shoup, “Design and analysis of practical public-key encryption schemes secure against adaptive chosen ciphertext attack,” SIAM Journal on Computing, vol. 33, no. 1, pp. 167–226, 2003.
- [22] T. Debris-Alazard, N. Sendrier, and J.-P. Tillich, “The problem with the SURF scheme,” arXiv preprint arXiv:1706.08065, 2017.
- [23] T. Debris-Alazard, N. Sendrier, and J.-P. Tillich, “Wave: A new code-based signature scheme,” Technical report, Cryptology ePrint Archive: Report 2018/996, 2018, https://eprint.iacr.org/2018/996/20181022:154324
- [24] T. Debris-Alazard, N. Sendrier, and J.-P. Tillich, “Wave: A new family of trapdoor one-way preimage sampleable functions based on codes,” in International Conference on the Theory and Application of Cryptology and Information Security. Springer, 2019, pp. 21–51.
- [25] A. W. Dent, “Hybrid cryptography,”Technical report, Cryptology ePrint Archive, Report 2004/210, 2004, https://eprint.iacr.org/2004/210.
- [26] A. W. Dent, “Hybrid signcryption schemes with insider security,” in Australasian Conference on Information Security and Privacy. Springer, 2005, pp. 253–266.
- [27] A. W. Dent, “Hybrid signcryption schemes with outsider security,” in International Conference on Information Security. Springer, 2005, pp. 203–217.
- [28] A. W. Dent and J. Malone-Lee, “Signcryption schemes based on the RSA problem,” in Practical Signcryption. Springer, 2010, pp. 99–117.
- [29] A. W. Dent and Y. Zheng, Eds., Practical signcryption, ser. Information Security and Cryptography. Springer, 2010.
- [30] J.-C. Faugere, V. Gauthier-Umana, A. Otmani, L. Perret, and J.-P. Tillich, “A distinguisher for high-rate McEliece cryptosystems,” IEEE Transactions on Information Theory, vol. 59, no. 10, pp. 6830–6844, 2013.
- [31] A. Fiat and A. Shamir, “How to prove yourself: Practical solutions to identification and signature problems,” in Conference on the theory and application of cryptographic techniques. Springer, 1986, pp. 186–194.
- [32] K. Fukushima, P. S. Roy, R. Xu, S. Kiyomoto, K. Morozov, and T. Takagi, “Racoss: Random code-based signature scheme,” Submission to NIST post-quantum standardization process, 2017.
- [33] E. Fujisaki and T. Okamoto, “Secure integration of asymmetric and symmetric encryption schemes,” in Annual International Cryptology Conference. Springer, 1999, pp. 537–554.
- [34] J. Georgiades, “Some remarks on the security of the identification scheme based on permuted kernels,” Journal of Cryptology 5(2), 133-137 (Jan 1992)
- [35] A. Jain, S. Krenn, K. Pietrzak, and A. Tentes, “Commitments and efficient zero-knowledge proofs from learning parity with noise,” in International Conference on the Theory and Application of Cryptology and Information Security. Springer, 2012, pp. 663–680.
- [36] T. Johansson and F. Jonsson, “On the complexity of some cryptographic problems based on the general decoding problem,” IEEE Transactions on Information Theory, vol. 48, no. 10, pp. 2669–2678, 2002.
- [37] R. Lampe, J. Patarin, “Analysis of some natural variants of the PKP algorithm.” In: Proceedings of the International Conference on Security and Cryptography - Volume 1: SECRYPT, (ICETE 2012). pp. 209-214. INSTICC, SciTePress (2012).
- [38] H. Q. Le, D. H. Duong, P. S. Roy, W. Susilo, K. Fukushima, S. Kiyomoto, “Lattice-based signcryption with equality test in standard model.” Computer Standards & Interfaces p.103515 (2021).
- [39] F. Li, F. T. Bin Muhaya, M. K. Khan, and T. Takagi, “Lattice-based signcryption,” Concurrency and Computation: Practice and Experience, vol. 25, no. 14, pp. 2112–2122, 2013.
- [40] V. Lyubashevsky, “Fiat-shamir with aborts: Applications to lattice and factoring-based signatures,” in International Conference on the Theory and Application of Cryptology and Information Security. Springer, 2009, pp. 598–616.
- [41] Z. Li, C. Xing, and S. L. Yeo, “A new code based signature scheme without trapdoors.” IACR Cryptol. ePrint Arch., vol. 2020, p. 1250, 2020.
- [42] K. P. Mathew, S. Vasant, and C. P. Rangan, “On provably secure code-based signature and signcryption scheme,” IACR Cryptology ePrint Archive, vol. 2012, p. 585, 2012.
- [43] K. P. Mathew, S. Vasant, and C. P. Rangan, “Efficient code-based hybrid and deterministic encryptions in the standard model,” in International Conference on Information Security and Cryptology. Springer, 2013, pp. 517–535.
- [44] I. Márquez-Corbella and R. Pellikaan, “Error-correcting pairs for a public-key cryptosystem,” CBC 2012, Code-based Cryptography Workshop, 2012. Available on http://www.win.tue.nl/~ruudp/paper/59.pdf.
- [45] R. J. McEliece, “A public-key cryptosystem based on algebraic coding theory,” DSN progress report, pp. 42–44, 1978.
- [46] R. Misoczki and P. S. Barreto, “Compact McEliece keys from Goppa codes,” in International Workshop on Selected Areas in Cryptography. Springer, 2009, pp. 376–392.
- [47] R. Misoczki, J.-P. Tillich, N. Sendrier, and P. S. Barreto, “MDPC-McEliece: New McEliece variants from moderate density parity-check codes,” in 2013 IEEE international symposium on information theory. IEEE, 2013, pp. 2069–2073.
- [48] R. Mora and J.-P. Tillich, Jean-Pierre, “On the dimension and structure of the square of the dual of a Goppa code,” WCC 2022: The Twelfth International Workshop on Coding and Cryptography March 7 - 11, 2022, Rostock (Germany). Available on https://www.wcc2022.uni-rostock.de/storages/uni-rostock/Tagungen/WCC2022/Papers/WCC_2022_paper_68.pdf
- [49] H. Niederreiter, “Knapsack-type cryptosystems and algebraic coding theory,” Prob. Control and Inf. Theory, vol. 15, no. 2, pp. 159–166, 1986.
- [50] R. Nakano and J. Shikata, “Constructions of signcryption in the multi-user setting from identity-based encryption,” in IMA International Conference on Cryptography and Coding. Springer, 2013, pp. 324–343.
- [51] T. B. Paiva, R. Terada, “Cryptanalysis of the Binary Permuted Kernel Problem,” In International Conference on Applied Cryptography and Network Security, Springer, Cham, 2021, pp. 396-423.
- [52] E. Persichetti, “Compact McEliece keys based on quasi-dyadic Srivastava codes,” Journal of Mathematical Cryptology, vol. 6, no. 2, pp. 149–169, 2012.
- [53] E. Persichetti, “Secure and anonymous hybrid encryption from coding theory,” in International Workshop on Post-Quantum Cryptography. Springer, 2013, pp. 174–187.
- [54] E. Persichetti, “Efficient one-time signatures from quasi-cyclic codes: A full treatment,” Cryptography, vol. 2, no. 4, p. 30, 2018.
- [55] E. Persichetti, “Improving the efficiency of code-based cryptography,” Ph.D. dissertation, University of Auckland, 2012.
- [56] E. Prange, “The use of information sets in decoding cyclic codes,” IRE Transactions on Information Theory, vol. 8, no. 5, pp. 5–9, 1962.
- [57] N. Sendrier, “Decoding one out of many,” in International Workshop on Post-Quantum Cryptography. Springer, 2011, pp. 51–67.
- [58] S. Sato and J. Shikata, “Lattice-based signcryption without random oracles,” in International Conference on Post-Quantum Cryptography. Springer, 2018, pp. 331–351.
- [59] Y. Song, Z. Li, Y. Li, and J. Li, “Attribute-based signcryption scheme based on linear codes,” Information Sciences, vol. 417, pp. 301–309, 2017.
- [60] Y. Song, X. Huang, Y. Mu, W. Wu, and H. Wang, “A code-based signature scheme from the Lyubashevsky framework,” Theoretical Computer Science, vol. 835, pp. 15–30, 2020.
- [61] R. Steinfeld and Y. Zheng, “A signcryption scheme based on integer factorization,” in International Workshop on Information Security. Springer, 2000, pp. 308–322.
- [62] J. Stern, “A new identification scheme based on syndrome decoding,” in Annual International Cryptology Conference. Springer, 1993, pp. 13–21.
- [63] X. Yang, H. Cao, W. Li, and H. Xuan, “Improved lattice-based signcryption in the standard model,” IEEE Access, vol. 7, pp. 155 552–155 562, 2019.
- [64] J. Yan, L. Wang, L. Wang, Y. Yang, W. Yao, “Efficient lattice-based signcryption in standard model,” Mathematical Problems in Engineering (2013).
- [65] M. Yoshida and T. Fujiwara, “On the security of tag- for signcryption,” Electronic Notes in Theoretical Computer Science, vol. 171, no. 1, pp. 83–91, 2007.
- [66] X. Zhao, X. Wang, “An efficient identity-based signcryption from lattice,” International Journal of Security and Its Applications8(2), 363–374 (2014).
- [67] Y. Zheng, “Digital signcryption or how to achieve cost (signature & encryption)<< cost (signature)+ cost (encryption),” in Annual international cryptology conference. Springer, 1997, pp. 165–179.
- [68] Y. Zheng and H. Imai, “How to construct efficient signcryption schemes on elliptic curves,” Information processing letters, vol. 68, no. 5, pp. 227–233, 1998
Appendix 0.A PKE.Game
Here we recall the game for PKE called in our scheme. The decryption oracle is denoted by .
1. Step 1: 2. Step 2: 3. Step 3: and where (resp. ) is the encryption (resp. decryption) algorithm in the PKE scheme. 4. Step 4:
In Step 4. the adversary is restricted not to make request to on the ciphertext c. Clear texts and must have the same length. wins when and its advantage corresponds to the probability that it wins this game which is denoted by .
Appendix 0.B Target Preimage-Free
Target Preimage-Free function is a special case of universal one-way function; An adversary is given (chosen at random in their domain) and then attempts to find x such that . Let be a collection of domains and . Let and . Note that is identified by the description of . Let be an adversary playing the following game.
1. Step 1: 2. Step 2: 3. Step 3: such that .
wins the game when and the advantage of is the probability that it wins for a given and . We say that is Target Preimage free with regard to when the advantage of is negligible.
Appendix 0.C Security of the McEliece encryption with Fujisaki-Okamoto transformation
For the IND-CCA security of McEliece’s scheme described in Figure 1, we need the following definition:
Definition 2
(-uniformity [16]) A public key encryption scheme is called -uniform and be the set where the randomness to be used in the (probabilistic) encryption is chosen. For a given key-pair , x be a plaintext and a string y, we define
where the notation makes the role of the randomness r explicit. We say that is -uniform if, for any key-pair , any plaintext x and any ciphertext y, for a certain .
We now can state the following lemma.
Lemma 1
The McEliece scheme with the Fujisaki-Okamoto transformation described in Figure 1 is uniform with
Proof
For any vector , either y is a word at distance from the code of generator matrix , or it isn’t. When y is not a distance of , the probability for it to be a valid ciphertext is equal to 0. Else there is only one choice for r and e such that , i.e.,
Theorem 0.C.1
Under Assumptions 1, 3, and 5 the McEliece scheme based on a subcode of Goppa code with the Fujisaki-Okamoto transformation described in Figure 1 is secure.