WO2009115824A1 - Encryption method - Google Patents

Encryption method Download PDF

Info

Publication number
WO2009115824A1
WO2009115824A1 PCT/GB2009/000761 GB2009000761W WO2009115824A1 WO 2009115824 A1 WO2009115824 A1 WO 2009115824A1 GB 2009000761 W GB2009000761 W GB 2009000761W WO 2009115824 A1 WO2009115824 A1 WO 2009115824A1
Authority
WO
WIPO (PCT)
Prior art keywords
mqqs
public key
multivariate quadratic
quasigroups
private key
Prior art date
Application number
PCT/GB2009/000761
Other languages
French (fr)
Inventor
Danilo Gligoroski
Svein Johan Knapskog
Smile Markovski
Original Assignee
Ntnu Technology Transfer As
Taylor, Adam
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ntnu Technology Transfer As, Taylor, Adam filed Critical Ntnu Technology Transfer As
Publication of WO2009115824A1 publication Critical patent/WO2009115824A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Definitions

  • the present invention relates to encryption systems and in particular to asymmetric or public key cryptography.
  • a key had to be kept absolutely secret and would be agreed upon beforehand using a secure, but non-cryptographic, method; for example, a face-to-face meeting or a trusted courier.
  • Such systems are examples of symmetric key (or secret key) cryptography since the same secret key must be used to encrypt and decrypt the message.
  • Public-key cryptography was invented to address these drawbacks. It is thought to have first been developed at the UK government's GCHQ in the early 1970s " , but was not disclosed at the time.
  • the public key paradigm was initially described by Diffe and Hellman in 1976 and this has completely changed and reshaped modern cryptography. The fruits of that change are noticeable now, 30 years after, with the boom of the Internet, digital telecommunications, the convergence of information and communication technologies. Most of the security protocols in these fields in one way or the other use the public key paradigm.
  • public-key cryptography users can communicate securely over an insecure channel without having to agree upon a shared key beforehand. This enables secure communication by radio, over the Internet, etc.
  • a user has a pair of cryptographic keys: a public key and a private key.
  • the private key is kept secret, while the public key may be widely distributed.
  • the keys are related mathematically, but the private key cannot be practically derived from the public key.
  • a message encrypted with the public key can be decrypted only with the corresponding private key.
  • Another application of public key cryptography is in the field of digital signatures, i.e. when it is desired to check that a message was sent by the claimed sender.
  • To digitally sign a message (data) it is encrypted using the signer's private key and the encrypted data (i.e. the signature) is then appended to the message when it is sent.
  • the recipient can verify the authenticity of the message by using the signer's public key to decrypt the signature and comparing it to the message.
  • the signature is formed from a "message digest" which is the result of applying a hash function, such as SHA-I, SHA-2, etc, to the message and when this signature is decrypted it is compared to a message digest created by the recipient.
  • Public key techniques are much more computationally intensive than purely symmetric algorithms. The judicious use of these techniques enables a wide variety of applications.
  • public key cryptography is used in combination with secret-key methods for efficiency reasons.
  • the sender may encrypt a message with a secret-key algorithm using a randomly generated key, and that random key is then encrypted with the recipient's public key. Using his private key, the recipient can decrypt the random key and this can then be used to decrypt the message.
  • trapdoor i.e. one that is easy to compute in one direction, yet difficult to compute in the opposite direction (finding its inverse) without special information, called the trapdoor.
  • y some secret information
  • a hash function (such as SHA-I) is first applied to the document to produce a smaller number of bits (160 bits) and then the output from the hash function is expanded (by adding bits of effectively useless data) to a length of 1024 bits before the RSA encryption proper takes place.
  • a hash function such as SHA-I
  • the output from the hash function is expanded (by adding bits of effectively useless data) to a length of 1024 bits before the RSA encryption proper takes place.
  • no public key system can be secure against an attacker that has unlimited time and computational power. Instead, these systems are designed to be impossible to break during any useful time period using any available computer.
  • the security level of a symmetric encryption system using n bits is 2" (i.e. 2" guesses are needed to be sure of decryption) then RSA using 1024 bits has a level of only 2 80 and not 2 1024 as might be expected. This is because there are known factorization algorithms that assist in the factorization process.
  • the present invention there is provided a method of public key cryptography using a trapdoor function, wherein the provision of the trapdoor function comprises the use of a plurality of multivariate quadratic quasigroups.
  • the inventors have provided a new class of MQ trapdoor functions, the generation of which is based on the theory of quasigroups and quasigroup string transformations.
  • a summary of the key concepts that are used is given in Annex 1.
  • a preferred algorithm that may be used in the invention has only one ' parameter n, which is the number of bits that are encrypted, n may be chosen to suit the application of the system, but is typically 140, 160, 180... It is possible to use a lower number of bits, such as 80 for less sensitive applications, but preferably at least 140 bits are used.
  • the security level of such preferred forms of the invention with n bits is believed to be 2 n/2 .
  • the encryption speed of the preferred forms of the invention is comparable to the speed of other multivariate quadratic public key cryptosystems (PKCs), their decryption/signature speed is as fast as a typical symmetric block cipher (i.e. in the range of 500—1000 times faster than any known public key scheme).
  • PLCs public key cryptosystems
  • the invention may be applied in any context where PKCs are employed. However, embodiments of the invention are particularly well suited for short signatures and smart card implementations.
  • the present invention at least in a preferred form, comprises a cryptographic scheme that can be expressed genetically as:
  • the present invention comprises the use of a cryptographic scheme of this form.
  • the present invention comprises the use of MQQs. These will typically be used as part of the process for creating a public key and a private key. Preferably the MQQs are generated randomly, preferably as a step in the generation of the keys. This may be done by generating a very large number of candidate data sets (e.g. matrices), most of which will not be MQQs and then testing them and only accepting suitable candidates.
  • the quasigroups can be represented as vector valued Boolean functions (v.v.b.f.) and algebraic normal form of these functions can be used to provide information about the complexity of the quasi group via the degrees of these functions.
  • the procedure MQQ(d, k) (described herein) is employed for finding MQQs of order 2 d and type Quad d - k Liri k ', (as defined herein).
  • MQQs of the latter type it is preferable to use MQQs of the latter type, but there is a trade-off with processing speed. In this (or for that matter any other) process of a random generation of
  • MQQs of type usuallythe number of quadratic polynomials is exactly d-k, and the number of linear polynomials is exactly k.
  • the invention preferably comprises the step of detecting such polynomials and omitting them from consideration.
  • MQPs multivariate quadratic polynomials
  • an algorithm P'(ri) two variants of which are described herein) is employed, and this calls the procedure MQQ(J, k) referred to above to generate two large sets of MQQs (preferably with more than 2 20 elements in each). It will be seen that the algorithm forms a multi-dimensional (e.g. 7 or 13 dimensions) vector Z that has all (e.g. 7, 13 respectively) components as linear Boolean functions.
  • the MQQs are used in the generation of public and private keys.
  • the invention provides a public key cryptosystem wherein the public key comprises a plurality of multivariate quadratic polynomials derived from MQQs. The invention extends to a corresponding method of generating such a public key and also to the use of such a key to encrypt data or to verify a signature.
  • the algorithm for encryption or verification with the public key comprises the application of the set of n multivariate polynomials P ⁇
  • the private key of the preferred embodiment comprises at least one non- singular (invertible) Boolean matrix referred to here as T (order n x ⁇ ) and a suitable plurality (preferably eight) quasigroups (referred to here as 'In some embodiments, a plurality, e.g. two, matrices are used. Thus, the private key may be regarded as a tuple. More than one Boolean matrix may be used.
  • the invention provides a public key cryptosystem wherein the private key comprises a plurality of MQQs and preferably also at least one Boolean matrix.
  • the invention extends to a corresponding method of generating such a private key and also to the use of such a key to decrypt data. It also extends to the use of such a key for signing.
  • Decryption and signing are generally similar processes as the scheme of the invention is bijective. Where Dobertin's bijection is used in encrypting/verification, its inverse is applied. The process will typically also comprise the application of the left parastrophes of the quasigroups.
  • the algorithms of preferred embodiments are described below in Tables 4 and 11. The latter describes an algorithm that is optimised for use in a digital signature scheme where a hash function is preferably applied to the message prior to encryption with a private key according to the invention.
  • the invention preferably comprises the generation of public and private keys in the manner described above, the encryption of a message using the public key and its subsequent decryption by the private key.
  • the invention applies to the . signing of a document using a private' key and also to its verification using a public key.
  • the aspects of the invention described above each represent separate and separable aspects of the invention. Plainly, it would be unusual for the same party to encrypt and decrypt or sign and verify the same message.
  • the invention thus extends to a method of generating a public key; a method of generating a private key; a method of encryption or verification using the public key and a method of decryption or signing using the private key. It extends to the , application of such methods to a "message" which is any form of encryptable data, most commonly digital data, and to a method of data transmission and a method of data reception using such encryption.
  • the invention also extends to corresponding apparatus having means arranged for carrying out the above methods.
  • Such apparatus preferably comprises a data processor, such as an electronic computer, which will normally achieve this by running suitable software.
  • the invention therefore also extends to such software (i.e. software to cause apparatus to perform the methods of the invention), whether on a data carrier (disk, etc.), or transmitted over a network (including the Internet).
  • the encrypted data may be transmitted over a data network of any sort (including the Internet), be transmitted wirelessly, etc.
  • the invention also extends to means for encrypting and transmitting and decrypting and receiving such transmissions. Embodiments of the invention will now be described, by way of example only.
  • the invention is based upon the use of multivariate quadratic quasi groups (MQQs) to provide a set of multivariate quadratic equations. Thus, it is necessary to generate suitable MQQs.
  • MQQs multivariate quadratic quasi groups
  • MQQ(J, k) is a randomized algorithm for finding MQQs of order 2 d and type it works on a trial-and-error basis. For d - 5 the average number of attempts for finding MQQs of type Quad 4 him is around 2 and for finding MQQs of type Quads Lino is around 2 !6 .
  • T ° P' ° T ⁇ 0, l ⁇ n — > ⁇ 0, l ⁇ n
  • T is a non-singular (i.e. invertible) linear transformation
  • P' is a bijective multivariate quadratic mapping on ⁇ 0, 1 ⁇ ".
  • the algorithm for the mapping P' : ⁇ 0, 1 ⁇ " ⁇ ⁇ 0, 1 ⁇ " is defined in Table 2.
  • steps 9, 15, 16 and 17 descriptive names are used for three procedures CollectLinear, CollectQuadratic and CollectLinearPositions that have a vector of multivariate Boolean expressions that are linear or quadratic as input parameter.
  • the procedure CollectLinear returns a vector with only linear expressions extracted from the input vector
  • CollectQuadratic returns only quadratic expressions
  • CollectLinearPositions is returning the positions of the corresponding linear expressions.
  • the positions of the linear and quadratic _ expressions can be deduced by the quasigroups transformations used.
  • those procedures are used just for the clarity of the presentation. That is why information is not included for the position of the linear and quadratic expressions in the private key.
  • the encryption is performed, by using the public key C which is given by the system (7) of n equations of n unknowns and where Pi are multivariate quadratic polynomials of n Boolean variables.
  • Pi are multivariate quadratic polynomials of n Boolean variables.
  • the concrete Boolean values of the variables are replaced, and the polynomials are evaluated.
  • the suitable size of the public and private key and the number of operations per byte for encryption and decryption has been considered. Since the public key consists of n multivariate quadratic equations, and they appear to be randomly generated, the size of the public key follows known rules. So, for n bit blocks the size of the public key is n x (1 + n(n+l) /2 ) bits. In the Table 5 below, we give the size of the public key for n e ⁇ 140, 160, 180, 200 ⁇ in Kbytes.
  • Table 5 Memory size in Kbytes for the public key and the private key.
  • the private key of our scheme is the tuple (T, * / , . . . , *s).
  • the corresponding memory size needed for storage of T is n 2 bits.
  • the size of the private key expressed in Kb is 896).
  • the second column of the Table 5 we give the size of the private key for ne ⁇ 140, 160, 180, 200 ⁇ in Kbytes.
  • the number of operations for encryption and decryption will now be considered.
  • the speed of encryption and decryption/signing will be expressed as the number of operations per processed byte.
  • Three widespread microprocessor architectures will be taken into account: 8-bit, 32-bit and 64-bit architectures. Since the public part of the scheme follows the typical paradigm of the MQ public key cryptosystems, its speed of encryption is the same as (or similar to) the speed of other MQ systems. That means that the encryption is done after O(n 3 ) logical AND and logical XOR operations.
  • the speed of decryption/signing in the class of multivariate quadratic PKCs is not so uniformly distributed as it is for encryption.
  • the number of operations for particular parts of the process of decryption of this scheme can be summarized in the following list: a) Two linear operation by the matrix T ⁇ ' that takes 2 «( «/Arch) operations; b) One lookup operation at the table of the Dobbertin's bijection; c) Exactly (n/5) - 1 lookup operations at the quasigroup parastrophes.
  • the total number of operations per byte can be computed by the expression
  • Table 6 Estimated operations per encrypted byte, for different n and 8, 32 or 64 bit architectures.
  • Table 7 Estimated operations per decrypted byte, for different n and 8, 32 or 64 bit architectures.
  • index set (ir, ⁇ 2 ,-, h-i) where i,- e ⁇ 1, 2, ..., 8 ⁇ , can be either public or private.
  • the security of the algorithm does not depend on the secrecy of that set.
  • mapping P' ⁇ 0; 1 ⁇ " -» ⁇ 0, 1 ⁇ " is defined by the algorithm described in Table 9:
  • Appendix 2 gives a detailed example of the process of generating the public and private key with small number of variables n - 20.
  • the algorithm for signing by the private key is defined in Table 11.
  • the size of the public key since the public key consists of n - Ln/ioj multivariate quadratic equations, and they appear to be randomly generated, the size of the public key follows the rules given in C. Wolf and B. Preneel, "Taxonomy of Public Key Schemes Based on the Problem of Multivariate Quadratic Equations", Cryptology ePrint Archive, Report 2005/077, 2005. So, for n bit blocks the size of
  • the private key of this scheme is the tuple
  • the corresponding memory size needed for storage of T and P is 2n 2 bits.
  • For the storage of particular quasigroups in memory note that it is not necessary to store 32 x 32 x 5 bits for every quasigroup, since that type of the storage has redundancy (the last row of the Latin Square is uniquely determined by the rest of the table), but in order to achieve efficient speed in the signing the full information about the parastrophes is stored.
  • the total number of operations per byte can be computed by the expression
  • MQQ-SIG The algorithm of this embodiment
  • MQQ the same performance characteristics of the previous embodiment
  • digital signing and verification by MQQ-SIG is very fast and highly parallelizable. More concretely, signing can be performed in less than 11,000 cycles (on Intel Core 2 Duo - using only one processor core), and in around 6,00O 1 cycles using two CPU cores and OpenMP 2.0 library.
  • implemented in FPGA hardware MQQ-SIG digital signature algorithm is more than 10,000 times faster.
  • a quasigroup (Q,*) is a groupoid satisfying the law
  • each Zi depends of the bits and is uniquely determined by them.
  • each z,- can be seen as a 2d-ary Boolean function where/f: strictly depends on, and is uniquely determined by, *,
  • the ANFs of the functions/ give us information about the complexity of the quasigroup (Q, *) via the degrees of the Boolean functions/. It can be observed that the degrees of the polynomials ise with the order of the quasigroup. In general, for a randomly generated quasigroup of order 2 d , d> 4, the degrees are higher than 2 (i.e. they are not quadratic). Such quasigroups are not suitable for our construction of multivariate quadratic PKC.
  • Definition 3 describes a special class of quasigroups, called multivariate quadratic quasigroups (MQQs) that can be of different types.
  • MQQs multivariate quadratic quasigroups
  • a quasigroup of order 2 is called Multivariate Quadratic Quasigroup (MQQ) of type f exactly d - k of the polynomials f, are of degree 2 (i.e., are quadratic) and k of them are of degree 1 (i.e., are linear), where 0 ⁇ k. ⁇ d.
  • MQQ Multivariate Quadratic Quasigroup
  • Table 1 A quasigroup (Q, *) of order 8.
  • MQQs The definition of MQQs implies the following theorem:
  • T is a nonsingular 20 x 20 Boolean matrix generated uniformly at random;
  • the tuple is the private key
  • P-i are multivariate quadratic polynomials of 20 Boolean variables.

Abstract

A method of public key cryptography using a trapdoor function, wherein the provision of the trapdoor function comprises the use of a plurality of multivariate quadratic quasigroups (MQQs). The public key is generated using MQQs and comprises a set of multivariate quadratic polynomials derived from the MQQs. The private key is generated using MQQs and comprises at least one non-singular Boolean matrix and a plurality of MQQs. The MQQs are provided by randomly generating candidate MQQ data sets which may or may not be MQQs, testing the data sets and selecting MQQs therefrom.

Description

Encryption Method
The present invention relates to encryption systems and in particular to asymmetric or public key cryptography. ' For most of the history of cryptography, a key had to be kept absolutely secret and would be agreed upon beforehand using a secure, but non-cryptographic, method; for example, a face-to-face meeting or a trusted courier. Such systems are examples of symmetric key (or secret key) cryptography since the same secret key must be used to encrypt and decrypt the message. There are a number of significant practical difficulties in this approach to distributing keys and these problems only became more acute as modern means of long-distance communication developed.
Public-key cryptography was invented to address these drawbacks. It is thought to have first been developed at the UK government's GCHQ in the early 1970s", but was not disclosed at the time. The public key paradigm was initially described by Diffe and Hellman in 1976 and this has completely changed and reshaped modern cryptography. The fruits of that change are noticeable now, 30 years after, with the boom of the Internet, digital telecommunications, the convergence of information and communication technologies. Most of the security protocols in these fields in one way or the other use the public key paradigm. With public-key cryptography, users can communicate securely over an insecure channel without having to agree upon a shared key beforehand. This enables secure communication by radio, over the Internet, etc. In this approach, a user has a pair of cryptographic keys: a public key and a private key. The private key is kept secret, while the public key may be widely distributed. The keys are related mathematically, but the private key cannot be practically derived from the public key. A message encrypted with the public key can be decrypted only with the corresponding private key.
Another application of public key cryptography is in the field of digital signatures, i.e. when it is desired to check that a message was sent by the claimed sender. To digitally sign a message (data) it is encrypted using the signer's private key and the encrypted data (i.e. the signature) is then appended to the message when it is sent. The recipient can verify the authenticity of the message by using the signer's public key to decrypt the signature and comparing it to the message. In practice, the signature is formed from a "message digest" which is the result of applying a hash function, such as SHA-I, SHA-2, etc, to the message and when this signature is decrypted it is compared to a message digest created by the recipient. Public key techniques are much more computationally intensive than purely symmetric algorithms. The judicious use of these techniques enables a wide variety of applications. In practice, public key cryptography is used in combination with secret-key methods for efficiency reasons. The sender may encrypt a message with a secret-key algorithm using a randomly generated key, and that random key is then encrypted with the recipient's public key. Using his private key, the recipient can decrypt the random key and this can then be used to decrypt the message.
Such systems rely on a so-called "trapdoor" function, i.e. one that is easy to compute in one direction, yet difficult to compute in the opposite direction (finding its inverse) without special information, called the trapdoor. In mathematical terms, if /is a trapdoor function there exists some secret information y, such that given f(x) and y it is easy to compute x.
Perhaps the best-known public key algorithm was the "RSA algorithm" published by Rivest, Shamir and Adleman, of MIT in 1978. RSA uses exponentiation modulo a product of two large primes to encrypt and decrypt, performing both public key encryption and public key digital signature, and its security is connected to the presumed difficulty of factoring large integers, a problem for which there is no known efficient (i.e., practicably fast) general technique. Thus, whilst it is comparatively easy to multiply two known large prime numbers, it is much more difficult to factorise the result in order to identify the primes.
In the RSA algorithm, a hash function (such as SHA-I) is first applied to the document to produce a smaller number of bits (160 bits) and then the output from the hash function is expanded (by adding bits of effectively useless data) to a length of 1024 bits before the RSA encryption proper takes place. Unlike a one-time pad (secret key) system, no public key system can be secure against an attacker that has unlimited time and computational power. Instead, these systems are designed to be impossible to break during any useful time period using any available computer. If the security level of a symmetric encryption system using n bits is 2" (i.e. 2" guesses are needed to be sure of decryption) then RSA using 1024 bits has a level of only 280 and not 21024 as might be expected. This is because there are known factorization algorithms that assist in the factorization process.
Since the 1970s, a large number and variety of encryption, digital signature, key agreement, and other techniques have been developed in the field of public-key cryptography. The ElGamal cryptosystem (invented by Taher ElGamal then of Netscape) relies on the (similar, and related) difficulty of the discrete logarithm problem, as does the closely related DSA developed by the NSA and NIST. The introduction of elliptic curve cryptography by Koblitz and Miller has yielded a new family of analogous public-key algorithms. Although mathematically more complex, elliptic curves appear to provide a more efficient way to leverage the discrete logarithm problem, particularly with respect to key size. Several other ideas have been proposed during the last 30 years, such as
McEliece PKC based on error correcting codes, Rabin's digital signature method, PKCs based on lattice reduction problems and on lattice problems over rings such as NTRU5 PKCs based on braid groups.
However, there remains a need to improve the security and speed of public key systems. Compared to symmetric key algorithms, they are thousands of times slower. One approach to this problem has been based on the use of multivariate quadratic (MQ) polynomials as trapdoor 'functions, which should enable greater speed for a given level of security. A number of such functions have been proposed, such as the use of "hidden field equations" described in USA 5,790,675 (Patarin), but so far, successful attacks have been published against at least subsets of each of these.
According to the present invention there is provided a method of public key cryptography using a trapdoor function, wherein the provision of the trapdoor function comprises the use of a plurality of multivariate quadratic quasigroups. Thus, the inventors have provided a new class of MQ trapdoor functions, the generation of which is based on the theory of quasigroups and quasigroup string transformations. A summary of the key concepts that are used is given in Annex 1. By means of the present invention it is possible to provide a deterministic one-to-one mapping. In other words, unlike some alternatives to RSA, there are not multiple decrypts for one encryption that would require additional data to resolve.
It is also possible to apply the encryption system directly to a message block. Thus, there is no need for, and preferably there is not, a message expansion stage, as in RSA.
A preferred algorithm that may be used in the invention has only one ' parameter n, which is the number of bits that are encrypted, n may be chosen to suit the application of the system, but is typically 140, 160, 180... It is possible to use a lower number of bits, such as 80 for less sensitive applications, but preferably at least 140 bits are used. The security level of such preferred forms of the invention with n bits is believed to be 2n/2.
Although the encryption speed of the preferred forms of the invention is comparable to the speed of other multivariate quadratic public key cryptosystems (PKCs), their decryption/signature speed is as fast as a typical symmetric block cipher (i.e. in the range of 500—1000 times faster than any known public key scheme).
The invention may be applied in any context where PKCs are employed. However, embodiments of the invention are particularly well suited for short signatures and smart card implementations.
Prior art MQ-based cryptosystems have been based on the overall scheme described in C. Wolf and B. Preneel: Taxonomy of Public Key Schemes based on the problem of Multivariate Quadratic Equations, Cryptology ePrint Archive, Report 2005/077, 2005. Such a trapdoor function can be seen to be a composition of three bijective transformations S, P', T : {0, l}n → {0, If where S and T are (affme) linear transformations, and P' is a bijective multivariate quadratic mapping on {.0,l}n.
The present invention, at least in a preferred form, comprises a cryptographic scheme that can be expressed genetically as:
T ° P' ° T : {0, l }n → {0, l}n where T is a non-singular (i.e. invertible) linear transformation, and P' is a bijective multivariate quadratic mapping on {0, l}n. Indeed, viewed from a further aspect, the present invention comprises the use of a cryptographic scheme of this form. As noted above, the present invention comprises the use of MQQs. These will typically be used as part of the process for creating a public key and a private key. Preferably the MQQs are generated randomly, preferably as a step in the generation of the keys. This may be done by generating a very large number of candidate data sets (e.g. matrices), most of which will not be MQQs and then testing them and only accepting suitable candidates.
As will be discussed below, the quasigroups can be represented as vector valued Boolean functions (v.v.b.f.) and algebraic normal form of these functions can be used to provide information about the complexity of the quasi group via the degrees of these functions. The invention requires the use of polynomials of order no higher than 2 and in general, for a randomly generated quasigroup of order 2d, d >= 4, the degrees are higher than 2. Thus, there may be further provided a step of selecting useful quasigroups from a set of randomly generated quasigroups. In the preferred embodiments of the invention, the procedure MQQ(d, k) (described herein) is employed for finding MQQs of order 2d and type Quadd -kLirik', (as defined herein). As it works on a trial-and-error basis, for J= 5 the average number of attempts for finding MQQs of type Quad4 Linj is around 215 and for finding MQQs of type Quads Lino is around 216. It is preferable to use MQQs of the latter type, but there is a trade-off with processing speed. In this (or for that matter any other) process of a random generation of
MQQs of type usuallythe number of quadratic polynomials is exactly
Figure imgf000006_0002
d-k, and the number of linear polynomials is exactly k. However, there are rare cases when all quadratic terms can cancel each other, and the number of linear polynomials will be bigger than k while the number of quadratic polynomials will be less than d-k. Thus, the invention preferably comprises the step of detecting such polynomials and omitting them from consideration.
In preferred embodiments, in order to generate the keys, a suitable plurality (preferably eight) quasigroups (referred to herein are generated
Figure imgf000006_0001
along with a number (ή) multivariate quadratic polynomials (MQPs). These are preferably generated from an input of an integer n (where n may be 5k and k >= 28) and an input of n linear Boolean functions of n variables. In preferred embodiments, an algorithm P'(ri) (two variants of which are described herein) is employed, and this calls the procedure MQQ(J, k) referred to above to generate two large sets of MQQs (preferably with more than 220 elements in each). It will be seen that the algorithm forms a multi-dimensional (e.g. 7 or 13 dimensions) vector Z that has all (e.g. 7, 13 respectively) components as linear Boolean functions.
By using only MQQs, some of the coordinate functions will remain linear. It is therefore preferred that, in order to make a trapdoor bijective function {0, 1 }π -→{0,l }n that is multivariate quadratic in all of its coordinates, a further step is employed, such as the application of Dobbertin's bijection to vector Z.
As noted above, the MQQs are used in the generation of public and private keys. In one embodiment, the public key comprises a set of n multivariate quadratic polynomials y where y = Pι(xι, X2,.. Xn), in a more preferred form only n - k polynomials are used, thus an attacker does not have the possibility of solving the system. Thus, viewed from a further aspect, the invention provides a public key cryptosystem wherein the public key comprises a plurality of multivariate quadratic polynomials derived from MQQs. The invention extends to a corresponding method of generating such a public key and also to the use of such a key to encrypt data or to verify a signature. In the preferred embodiment, the algorithm for encryption or verification with the public key comprises the application of the set of n multivariate polynomials P ≡
Figure imgf000007_0001
The private key of the preferred embodiment comprises at least one non- singular (invertible) Boolean matrix referred to here as T (order n x ή) and a suitable plurality (preferably eight) quasigroups (referred to here as
Figure imgf000007_0002
'In some embodiments, a plurality, e.g. two, matrices are used. Thus, the private key may be regarded as a tuple. More than one Boolean matrix may be used.
Thus, viewed from a further aspect, the invention provides a public key cryptosystem wherein the private key comprises a plurality of MQQs and preferably also at least one Boolean matrix. The invention extends to a corresponding method of generating such a private key and also to the use of such a key to decrypt data. It also extends to the use of such a key for signing. Decryption and signing are generally similar processes as the scheme of the invention is bijective. Where Dobertin's bijection is used in encrypting/verification, its inverse is applied. The process will typically also comprise the application of the left parastrophes of the quasigroups. The algorithms of preferred embodiments are described below in Tables 4 and 11. The latter describes an algorithm that is optimised for use in a digital signature scheme where a hash function is preferably applied to the message prior to encryption with a private key according to the invention.
The invention preferably comprises the generation of public and private keys in the manner described above, the encryption of a message using the public key and its subsequent decryption by the private key. Likewise, the invention applies to the . signing of a document using a private' key and also to its verification using a public key. However, it will be appreciated that the aspects of the invention described above each represent separate and separable aspects of the invention. Plainly, it would be unusual for the same party to encrypt and decrypt or sign and verify the same message.
The invention thus extends to a method of generating a public key; a method of generating a private key; a method of encryption or verification using the public key and a method of decryption or signing using the private key. It extends to the , application of such methods to a "message" which is any form of encryptable data, most commonly digital data, and to a method of data transmission and a method of data reception using such encryption.
The invention also extends to corresponding apparatus having means arranged for carrying out the above methods. Such apparatus preferably comprises a data processor, such as an electronic computer, which will normally achieve this by running suitable software. The invention therefore also extends to such software (i.e. software to cause apparatus to perform the methods of the invention), whether on a data carrier (disk, etc.), or transmitted over a network (including the Internet). The encrypted data may be transmitted over a data network of any sort (including the Internet), be transmitted wirelessly, etc. The invention also extends to means for encrypting and transmitting and decrypting and receiving such transmissions. Embodiments of the invention will now be described, by way of example only.
As previously discussed, the invention is based upon the use of multivariate quadratic quasi groups (MQQs) to provide a set of multivariate quadratic equations. Thus, it is necessary to generate suitable MQQs.
With reference to Theorem 2 (described in the Annex 1), which sets out sufficient conditions for a quasigroup to be an MQQ, a procedure called MQQ(d, k) is used for producing MQQs of order 2d and typ
Figure imgf000009_0002
. This is set out in the
Figure imgf000009_0001
,0 The procedure MQQ(J, k) is a randomized algorithm for finding MQQs of order 2d and type
Figure imgf000009_0003
it works on a trial-and-error basis. For d - 5 the average number of attempts for finding MQQs of type Quad4 him is around 2 and for finding MQQs of type Quads Lino is around 2!6.
In this process of a random generation of MQQs of typ
Figure imgf000009_0004
5 usually the number of quadratic polynomials is exactly d-k, and the number of linear polynomials is exactly k. However, there are rare cases when all quadratic terms cancel each other, and then the number of linear polynomials- will be bigger than k, while the number of quadratic polynomials will be less than d~ k. Nevertheless, these cases, if they occur, can be easily detected, and quasigroups with such properties can be omitted from consideration as candidates for the private key.
Another issue is that by using only MQQs, some of the coordinate functions will remain linear. In order to make a trapdoor bijective function {0, 1 }π → {0, 1 }n that is multivariate quadratic in all of its coordinates Dobbertin's bijection (defined in Annex 1) is used, as will be discussed further below.
A generic description of the cryptographic scheme used in this embodiment can be expressed as: T ° P' ° T : {0, l}n — > {0, l}n where T is a non-singular (i.e. invertible) linear transformation, and P' is a bijective multivariate quadratic mapping on {0, 1}". The algorithm for the mapping P' : {0, 1 } " → {0, 1 }" is defined in Table 2.
Figure imgf000010_0001
The algorithm for generating the public and private key is set out in Table 3:
Figure imgf000011_0001
Table 3: Generation of Public and Private key for the MQQ scheme
The algorithm for encryption (or verification) with the public key is straightforward, being the application of the set of n multivariate polynomial
Figure imgf000011_0005
Figure imgf000011_0003
The algorithm for decryption/signing by the use of the private key
Figure imgf000011_0004
. , *g) is given in Table 4:
Figure imgf000011_0002
Table 4: Algorithm for decryption or signing An example of the creation of private and public keys, and also of signature generation, with n = 80 will now be described. This is based on a modified version of the embodiment in which an index vector / and a second non-singular matrix S are used, as will be described. Such matrices are also found in the second embodiment and their purpose will be discussed further in that context.
In order to simplify the description of the algorithm for creation of a private and a public key, a particular value n = 80 is chosen. The generalization of the procedure for different values of n = 5k is straightforward.
Let x = (xi, X2 VJ ^8o)be a vector of 80 Boolean variables. The private and the public key is created by the following procedure:
1. Generate a uniformly distributed random nonsingular 80 x 80 Boolean matrix T;
2. Set
Figure imgf000012_0002
r
3. Generate 4 multivariate quadratic quasigroups
Figure imgf000012_0003
Figure imgf000012_0004
randomly by the procedure MQQ(5, 1 );
4. Generate one multivariate quadratic quasigroup
Figure imgf000012_0005
randomly by the procedure MQQ(5, 0);
5. Represent the vector x' by chunks of 5 bits, i.e.
Figure imgf000012_0006
6. Generate an index vector of 2-bit numbers
Figure imgf000012_0007
Figure imgf000012_0009
randomly;
7. Compute such that
Figure imgf000012_0008
Figure imgf000012_0001
1, 2, ..., 15;
8. Represent
Figure imgf000012_0010
9. Set
Figure imgf000012_0011
10. Generate a nonsingular 20 x 20 matrix S in GF(2) randomly;
11. Set
Figure imgf000012_0012
12.. Represent by chunks of 5 linear expressions i.e.
Figure imgf000012_0013
Figure imgf000012_0014
W W W W
Figure imgf000012_0015
13. Compute U= Ui U2U3U4 such tha
Figure imgf000012_0017
Figure imgf000012_0016
14.. Represent
Figure imgf000013_0002
15. Set
Figure imgf000013_0003
— CollectLinear (U),
Figure imgf000013_0004
<- CollectLinearPositions(U);
16. Set <- CollectQuadmtic(Y);
Figure imgf000013_0005
17. Set ( <r- CollectQuadratic(U);
Figure imgf000013_0006
18. Set
Figure imgf000013_0007
19. Set
Figure imgf000013_0008
where
Figure imgf000013_0009
20. The public key is C given by the following system of 80 equations of 80 unknowns:
Figure imgf000013_0001
where Pi are multivariate quadratic polynomials of n Boolean variables; 21. The private key consists of the following tuple:
Figure imgf000013_0010
In steps 9, 15, 16 and 17 descriptive names are used for three procedures CollectLinear, CollectQuadratic and CollectLinearPositions that have a vector of multivariate Boolean expressions that are linear or quadratic as input parameter. The procedure CollectLinear returns a vector with only linear expressions extracted from the input vector, CollectQuadratic returns only quadratic expressions and CollectLinearPositions is returning the positions of the corresponding linear expressions. The positions of the linear and quadratic _ expressions can be deduced by the quasigroups transformations used. Here those procedures are used just for the clarity of the presentation. That is why information is not included for the position of the linear and quadratic expressions in the private key.
Since this PKC scheme is bijective, it acts in exactly the same manner whether it is used for generation of signatures or in decryption mode. By using the private key, the signature of the message is performed in a standard way by finding C'1 where C = H(M) is a given Boolean vector of 80 bits and where His a cryptographic collision free hash function of the message M. Finding the inverse image of C is performed by applying the following steps:
1. Perform a linear operation on the matrix
Figure imgf000014_0003
C where x" =
2. Set
Figure imgf000014_0004
3. Construct the vecto
Figure imgf000014_0005
g, 3) ( ) such that
Figure imgf000014_0006
4. Represent U as chunk of 5-bit words
Figure imgf000014_0007
and compute
Figure imgf000014_0008
Figure imgf000014_0001
5. Rφresent
Figure imgf000014_0009
as avector
Figure imgf000014_0010
( nd compute(zi,
Figure imgf000014_0023
6. Construct the vecto
Figure imgf000014_0011
from
Figure imgf000014_0012
and
Figure imgf000014_0013
such that
Figure imgf000014_0014
p ι
7. Represent 7 as chunk of 5-bit word
Figure imgf000014_0015
and compute
Figure imgf000014_0016
Figure imgf000014_0017
8. RepresentX
Figure imgf000014_0018
as avector
Figure imgf000014_0019
9. Finally apply yet another linear operation with the matrix
Figure imgf000014_0020
,
Figure imgf000014_0002
The encryption is performed, by using the public key C which is given by the system (7) of n equations of n unknowns and where Pi are multivariate quadratic polynomials of n Boolean variables. The concrete Boolean values of the variables
Figure imgf000014_0021
are replaced, and the polynomials
Figure imgf000014_0022
are evaluated.
The suitable size of the public and private key and the number of operations per byte for encryption and decryption has been considered. Since the public key consists of n multivariate quadratic equations, and they appear to be randomly generated, the size of the public key follows known rules. So, for n bit blocks the size of the public key is n x (1 + n(n+l) /2 ) bits. In the Table 5 below, we give the size of the public key for n e {140, 160, 180, 200} in Kbytes.
Figure imgf000015_0002
Table 5: Memory size in Kbytes for the public key and the private key.
The private key of our scheme is the tuple (T, */ , . . . , *s). The corresponding memory size needed for storage of T is n2 bits. The memory size for the quasigroups (*i, . . . , *$), (actually for their parastrophes), is 8 x 32 x 32 x 5 = 40960 bits. For the storage of the inverse table of the bijection of Dobbertin we need additional 896 bits.
In total, the size of the private key expressed in Kb is
Figure imgf000015_0001
896). In the second column of the Table 5 we give the size of the private key for ne {140, 160, 180, 200} in Kbytes. The number of operations for encryption and decryption will now be considered. In order to obtain an independent measure for the operating speed of the scheme, the speed of encryption and decryption/signing will be expressed as the number of operations per processed byte. Three widespread microprocessor architectures will be taken into account: 8-bit, 32-bit and 64-bit architectures. Since the public part of the scheme follows the typical paradigm of the MQ public key cryptosystems, its speed of encryption is the same as (or similar to) the speed of other MQ systems. That means that the encryption is done after O(n3) logical AND and logical XOR operations.
The actual speed of any multivariate quadratic PKC when encryption is performed on 32-bit or 64-bit microprocessor architectures, using internal parallelism of the modern CPUs, as well as techniques of bit slicing can result in an encryption process which is at least two orders of magnitude faster than RSA/DH or ECC encryption for systems with equivalent security levels.
If it is assumed that AND or XOR operations can be executed in one cycle (without taking into account that modern 32-bit and 64-bit CPUs actually can perform several such operations in parallel), then non-optimized encryption of any general n-bit variant of any multivariate quadratic PKC scheme have a speed of (\6ln)[nlArcK\{\ + n(n+l)/2) operations per byte where Arch = 8, 32 or 64.
The speed of decryption/signing in the class of multivariate quadratic PKCs is not so uniformly distributed as it is for encryption. The number of operations for particular parts of the process of decryption of this scheme can be summarized in the following list: a) Two linear operation by the matrix T~' that takes 2«(«/Arch) operations; b) One lookup operation at the table of the Dobbertin's bijection; c) Exactly (n/5) - 1 lookup operations at the quasigroup parastrophes. The total number of operations per byte can be computed by the expression
B,/n(2n[n/Arch] + n/5) and are given in the Table 6 and Table 7.
Figure imgf000016_0001
Table 6: Estimated operations per encrypted byte, for different n and 8, 32 or 64 bit architectures.
Figure imgf000016_0002
Table 7: Estimated operations per decrypted byte, for different n and 8, 32 or 64 bit architectures.
The security characteristics of the algorithm will now be considered, in particular, the inventors' projections of the strength of the scheme with n variables. As a general claim for our MQQ scheme with n variables its strength is said to be 2nl2. The inventors base this claim on the analysis of the power of the methods using Grobner basis to solve random multivariate quadratic systems of equations. J. C. Faugere, and A. Joux, in their paper Algebraic Cryptanalysis of Hidden Field Equation (HFE) Cryptosystems Using Grobner Bases, Advances in Cryptology, CRYPTO 2003, LNCS, Vol. 2729, 2003, pp. 44-60., give a formula for computing the upper bound for the efficiency of the Grobner basis attacks: Based on that analysis Table 8 below gives the projected complexity for solving random multivariate quadratic systems of equations by Grobner basis algorithms for different number of variables n. Based on that projection in the second row there is given the projection for the strength of this PKC scheme.
Figure imgf000017_0001
A further embodiment of the invention will now be discussed, which is optimized for use with a digital signature system. The MQQs are found as previously described. However, there are modifications to other stages. Instead of a single matrix T, two Boolean matrices S and T are used (each provided in the same manner as before). More significantly, only n - k equations are made available in the public key, which provides resistance against Groebner basis or XL attacks. An index set I is also referred to; this is merely a table which contains information about which quasigroup is used in each step of the algorithm. The definition of the index set, /= (ir, Ϊ2,-, h-i) where i,- e {1, 2, ..., 8}, can be either public or private. The security of the algorithm does not depend on the secrecy of that set.
In this embodiment, the mapping P' : {0; 1 }" -» {0, 1 }" is defined by the algorithm described in Table 9:
Figure imgf000018_0001
The algorithm for generating the public and private key is defined in Table 10:
Figure imgf000018_0002
Appendix 2 gives a detailed example of the process of generating the public and private key with small number of variables n - 20.
The algorithm for signing by the private key is defined in Table
Figure imgf000018_0003
11.
Figure imgf000019_0001
The algorithm for signature verification with the public ke
Figure imgf000019_0003
i = 1 , ..., n - Lft/ioj} is given in the Table 12.
Figure imgf000019_0002
We now consider the size of the private and the public key of this embodiment, as well as the number of operations per byte for verification and signing.
Regarding the size of the keys, since the public key consists of n - Ln/ioj multivariate quadratic equations, and they appear to be randomly generated, the size of the public key follows the rules given in C. Wolf and B. Preneel, "Taxonomy of Public Key Schemes Based on the Problem of Multivariate Quadratic Equations", Cryptology ePrint Archive, Report 2005/077, 2005. So, for n bit blocks the size of
the public key is 0.9 x n x (1 + n - -) bits. Table 13 gives the size of the
public key for n {140, 160, 180, 200} in KBytes.
Figure imgf000020_0008
Table 13. Memory size in Kbytes for the public key and the private key
The private key of this scheme is the tuple
Figure imgf000020_0007
The corresponding memory size needed for storage of T and P is 2n2 bits. The memory size for the quasigroups
Figure imgf000020_0006
(actually for their parastrophes), is 8 x 32 x 32 x 5 = 40960 bits. For the storage of particular quasigroups in memory, note that it is not necessary to store 32 x 32 x 5 bits for every quasigroup, since that type of the storage has redundancy (the last row of the Latin Square is uniquely determined by the rest of the table), but in order to achieve efficient speed in the signing the full information about the parastrophes is stored. In total, the size of the private key
expressed in The second column of the Table 13 gives the
Figure imgf000020_0001
size of the private key for n e {140, 160, 180, 200} in KB (kilo bytes).
For the storage of the inverse table of the bijection of Dobbertin an additional 213 x 13 = 106496 bits are needed, which is exactly 13KB, but those 13KB do not belong to the private key.
With regard to speed, the number of operations for particular parts of the process of signing of this scheme can be summarized in the following list:
- Two linear operations by the matrices
Figure imgf000020_0002
] and
Figure imgf000020_0003
that take operations;
Figure imgf000020_0004
- One lookup operation at the table of the bijection of Dobbertin;
- Exactly k - 1 lookup operations at the quasigroup parastrophes.
The total number of operations per byte can be computed by the expression
and give results corresponding to those already
Figure imgf000020_0005
shown in Table 7. The considerations that apply to the security of the algorithm are as previously described. However, by reducing the functionality of MQQ just for performing digital signatures by removing certain number of equations, two possible modes of attack (Groebner bases and MutantXL) hit their limits for solving systems of random multivariate quadratic equations and they are not capable to successfully attack the digital scheme MQQ-SIG.
The algorithm of this embodiment ("MQQ-SIG") has a public key consisting of n - Ln/lθJ quadratic polynomials with n variables where n = 140, 160, .... The same performance characteristics of the previous embodiment ("MQQ") are present in MQQ-SIG. That means, digital signing and verification by MQQ-SIG is very fast and highly parallelizable. More concretely, signing can be performed in less than 11,000 cycles (on Intel Core 2 Duo - using only one processor core), and in around 6,00O1 cycles using two CPU cores and OpenMP 2.0 library. However, implemented in FPGA hardware MQQ-SIG digital signature algorithm is more than 10,000 times faster.
Appendix 1 - Ouasigroups
Here we give a brief overview of some of the mathematics of quasigroups and quasigroup string transformations used in the description of the invention.
Quasigroup string transformations
Definition 1
A quasigroup (Q,*) is a groupoid satisfying the law
(
Figure imgf000022_0001
Given a quasigroup (Q, ) five new operations called parastrophes or adjoint operators can be derived from the operation . We will need only one, the left parastrophe, denoted by \* and defined by:
Figure imgf000022_0002
Then the algebra (Q, *, \) satisfies the identities:
Figure imgf000022_0003
and is a quasigroup too.
Figure imgf000022_0004
Consider an alphabet (i.e., a finite set) Q, and denote by Q+ the set of all
. nonempty words (i.e. finite strings) formed by the elements of Q. The elements of Q+ will be denoted by ai a2. . . an rather than , where t *
Figure imgf000022_0007
Figure imgf000022_0006
be a quasigroup operation on the set Q, i.e. consider a quasigroup
Figure imgf000022_0008
. For each a we define two functions set out in Definition 2 below:
Figure imgf000022_0005
Definition 2
Le Then
Figure imgf000023_0002
i.e
Figure imgf000023_0003
The functions
Figure imgf000023_0008
, and
Figure imgf000023_0009
are called the e-transformation and the d-transformation of Q+ based on the operation * with leader / respectively, and their graphical representations are shown below:
Figure imgf000023_0001
These transformations are the- basis of the following theorem:
Theorem 1
If
Figure imgf000023_0005
s a finite quasigroup, then and are mutually inverse
Figure imgf000023_0006
Figure imgf000023_0007
permutations of Q+, i.e.,
Figure imgf000023_0004
for each leader / S Q and for every string
Figure imgf000024_0001
Quasigroups as vector valued Boolean functions
We will now describe the presentation of finite quasigroups (Q, *) of order
2d by vector valued Boolean functions (v.v.b.f.). In what follows we will represent a €Ξ Q by a d-bύ' representation, i.e., a ≡ Xi X2. . . Xd (as a string of bits) or, sometimes, a ≡ (x\ , xι , . . . , Xd). Now, the binary operation * on Q can be seen as a vector valued operation *w : {0, \}2d → {0, \}d defined as:
Figure imgf000024_0002
where
Figure imgf000024_0003
are binary representations of.α, h, c.
Each Zi depends of the bits and is uniquely
Figure imgf000024_0008
determined by them. Thus, each z,- can be seen as a 2d-ary Boolean function
Figure imgf000024_0013
Figure imgf000024_0006
where/f:
Figure imgf000024_0007
strictly depends on, and is uniquely determined by, *,
We now use the fact that each fc-ary Boolean function/
Figure imgf000024_0005
can be represented in a unique way by its algebraic normal form (ANF), i.e. as a sum of products
Figure imgf000024_0004
where the coefficients α
Figure imgf000024_0012
are in the set {0, 1} and the addition and multiplication are in the field GF(2), that is, a finite field of two elements (i.e. 1 and 0). In the rest of the text we will abuse the notation and identify the Boolean function/and its ANF, i.e., we will take We say a polynomia
Figure imgf000024_0010
(
Figure imgf000024_0009
xp) when we consider the arguments of/to be indeterminate variables
Figure imgf000024_0011
The ANFs of the functions/ give us information about the complexity of the quasigroup (Q, *) via the degrees of the Boolean functions/. It can be observed that the degrees of the polynomials
Figure imgf000025_0014
ise with the order of the quasigroup. In general, for a randomly generated quasigroup of order 2d, d> 4, the degrees are higher than 2 (i.e. they are not quadratic). Such quasigroups are not suitable for our construction of multivariate quadratic PKC.
Multivariate Quadratic Ouasigroups.
Definition 3 describes a special class of quasigroups, called multivariate quadratic quasigroups (MQQs) that can be of different types.
Definition 3
A quasigroup
Figure imgf000025_0012
of order 2 is called Multivariate Quadratic Quasigroup
Figure imgf000025_0011
(MQQ) of type
Figure imgf000025_0013
f exactly d - k of the polynomials f, are of degree 2 (i.e., are quadratic) and k of them are of degree 1 (i.e., are linear), where 0 ≤ k.< d. Theorem 2 below gives us sufficient conditions for a quasigroup (Q, *) to be
MQQ.
Theorem 2
Let Ai
Figure imgf000025_0001
xd and be two d*d matrices of linear Boolean
Figure imgf000025_0007
expressions, and let be two d * \ vectors of linear or
Figure imgf000025_0008
quadratic Boolean expressions. Let the functions^- and w,- depend only on variables
Figure imgf000025_0006
( ) , and let the functions and depend only on variables
Figure imgf000025_0009
Figure imgf000025_0010
Figure imgf000025_0005
Figure imgf000025_0002
Figure imgf000025_0004
and if
Figure imgf000025_0003
then the vector valued operation *w (X/, . . . , X2d) = A1 X2 + O1 (6)
defines a quasigroup (Q, #) of order 2d that is MQQ.
This can be proved by considering the equation
Figure imgf000026_0001
where
Figure imgf000026_0003
( ) re unknown bits nd α,- , c/ are given
Figure imgf000026_0004
bits. We have the linear system in GF(2) of kind
Figure imgf000026_0002
where A'i and b'i are the valuations OfA1 and bi over the vector Since
Figure imgf000026_0005
Det(Ai) = 1, it follows that Det(A'i) = 1 too, so the linear system (7) has a unique solution
Figure imgf000026_0007
( ) ( ) In the same manner a unique solution of the equation
Figure imgf000026_0006
can be found, and *Vv is a v.v.b.f. of a quasigroup operation * on the set Q = {0, 1, . . . , 2 d-i}- The quasigroup (Q, *) is MQQ since the vector
Figure imgf000026_0008
has as elements multivariate quadratic polynomials. This can be understood more readily with reference to an example:
Example 1 Let the quasigroup (Q, *) of order 23 = 8 be given by the multiplication scheme in Table 1.
Figure imgf000027_0001
Table 1: A quasigroup (Q, *) of order 8.
The corresponding ANF representation of the operation * as a vector valued Boolean function is the following:
Figure imgf000027_0003
The corresponding matrix-vector representations of * by A^, blt A2, and b2, are the following:
Figure imgf000027_0002
It can be checked that in
Figure imgf000027_0004
The definition of MQQs implies the following theorem:
5 Theorem 3
Let
Figure imgf000027_0005
) and
Figure imgf000027_0006
be two (/-dimensional vectors of linear Boolean functions of variables
Figure imgf000027_0007
) be a multivariate quadratic quasigroup of type
Figure imgf000027_0008
then at most d - k of the polynomials g, are multivariate quadratic and at least k polynomials are 10 linear.
Dobbertin's biiection
Dobbertin proved in his paper One-to-one highly nonlinear power functions 15 on GF (2n), Appl. Algebra Eng. Commun. Comput, Vol. 9(2), 1998, pp. 139-152 that the function
Figure imgf000027_0009
a bijection in
Figure imgf000027_0010
GF(22m+l) Moreover it is also multivariate quadratic. (In the design of MQQ public key cryptosystem described herein Dobbertin's bijection for m = 3 is employed). Appendix 2 - An example of the creation of a private and a public key with n = 20 bits
This example is for n — 20. Since even with such a small example, the number of terms in some expressions will increase to more than 100, in the notation we will use horizontal lines to make a distinction between different coordinates.
We will use the simplified version of the algorithm where
Figure imgf000028_0004
be a vector of 20 Boolean variables. The private and the public key is created by the following procedure:
1) Set T =
Figure imgf000028_0001
where T is a nonsingular 20 x 20 Boolean matrix generated uniformly at random; 2) Set
Figure imgf000028_0002
*2(£l , £2 , X3 , X4, XS, X6 , X7, X8, £9, £lθ) =
Figure imgf000028_0003
*3 (xi , α;2 , xz, Xi, Xz , x&, X7, x%, xg, xio) =
Figure imgf000029_0001
3) The tuple
Figure imgf000029_0005
is the private key;
Figure imgf000029_0002
5) Represent the vector x' by chunks of 5 bits, i.e. a/ =
Figure imgf000029_0003
6) Compute
Figure imgf000029_0006
such that . The Following relations will be obtained-
Figure imgf000029_0007
Figure imgf000029_0004
Figure imgf000030_0001
7) Set a 7-dimensional vector Z that has all 7 coordinates as Boolean linear functions:
Figure imgf000030_0002
8) Transform Z by the bijection of Dobbertin: w
Figure imgf000030_0004
here
Figure imgf000030_0003
Figure imgf000031_0001
9) Set
Figure imgf000031_0004
10) Compute
Figure imgf000031_0005
11) The public key is y , given by the system of 20 equations of 20 unknowns:
Figure imgf000031_0003
where P-i are multivariate quadratic polynomials of 20 Boolean variables.
In developed form, they look like these:
Figure imgf000031_0002
31
Figure imgf000032_0001

Claims

Claims
1. A method of public key cryptography using a trapdoor function, wherein the provision of the trapdoor function comprises the use of a plurality of multivariate quadratic quasigroups (MQQs).
2. A method as claimed in claim 1, wherein the public key is generated using MQQs.
3. A method as claimed in claim 2, wherein the public key comprises a set of multivariate quadratic polynomials derived from the MQQs.
4. A method as claimed in any preceding claim, wherein the private key is generated using MQQs.
5. A method as claimed in claim 4, wherein the private key comprises at least one non-singular Boolean matrix and a plurality of MQQs.
6. A method as claimed in any preceding claim, wherein the MQQs are provided by randomly generating candidate MQQ data sets which may or may not be MQQs, testing the data sets and selecting MQQs therefrom.
7. A method as claimed in claim 6, wherein, when testing the data sets, the pprroocceedduurree
Figure imgf000033_0001
ddeessccriribbeedd hheerreeiinn)) ii;s employed for finding MQQs of order 2d and type
Figure imgf000033_0002
(as defined herein).
8. A method as claimed in any preceding claim, wherein the encryption system is applied directly to a message block without use of a message expansion stage.
9. A method as claimed in any preceding claim, wherein the cryptographic scheme can be expressed as
Figure imgf000034_0004
where T is a non-singular linear transformation, and P' is a bijective multivariate quadratic mapping on {0, i}n-
5
10. A method as claimed in any of claims 1 to 9, wherein the cryptographic scheme can be expressed as: T ° P' ° S : {0, 1 }n → {0, 1 }n where T and S are non- singular linear transformation, and P' is a bijective multivariate quadratic mapping on {0, l}n.
10.
11. A method as claimed in any preceding claim, wherein the algorithm for encryption or verification with the public key comprises the application of the set of n multivariate polynomials n over a vector .
Figure imgf000034_0001
Figure imgf000034_0002
Figure imgf000034_0003
15
12. A method of transmitting data comprising the use of a method of public key cryptography according to any preceding claim.
13. A method of transmitting data, wherein the data is encrypted using a public 20 key for decryption using a private key, wherein the public key is generated using multivariate quadratic quasigroups and the encrypted data may be decrypted using a private key generated from multivariate quadratic quasigroups.
14. A method of receiving and decrypting data encrypted using a public key,
25 where the data has been encrypted using a public key generated using multivariate quadratic quasigroups, wherein the encrypted data is decrypted using a private key generated from multivariate quadratic quasigroups.
15. A method of digitally signing and/or verifying a document, comprising the use 30 of a method of public key cryptography according to any of claims 1 to 11.
16. A method of digitally signing a document comprising the steps of: generating a private key using a plurality of multivariate quadratic quasigroups (MQQs); and signing the document by encrypting it with the private key.
17. A method as claimed in claim 16, wherein the private key comprises a non- singular Boolean matrix and a plurality of MQQs.
18. A method as claimed in claim 16 or 17, wherein the signed document is a message digest of a document created using a hash function.
19. A method of digitally verifying a document comprising the steps of: generating a public key using a plurality of multivariate quadratic quasigroups (MQQs); and verifying the document by encrypting it with the public key,
20. A method as claimed in claim 19, wherein the public key comprises a set of multivariate quadratic polyamides derived from MQQs.
21. Data processing or transmission apparatus arranged to perform the method, of any preceding claim.
22. A software product arranged to cause a suitable data processing apparatus to perform the method of any of claims 1 to 20.
PCT/GB2009/000761 2008-03-20 2009-03-20 Encryption method WO2009115824A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0805271.4 2008-03-20
GB0805271A GB0805271D0 (en) 2008-03-20 2008-03-20 Encryption method

Publications (1)

Publication Number Publication Date
WO2009115824A1 true WO2009115824A1 (en) 2009-09-24

Family

ID=39386588

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2009/000761 WO2009115824A1 (en) 2008-03-20 2009-03-20 Encryption method

Country Status (2)

Country Link
GB (1) GB0805271D0 (en)
WO (1) WO2009115824A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8958560B2 (en) 2010-06-02 2015-02-17 Cisco Technology Inc. Efficient multivariate signature generation
US20150106622A1 (en) * 2012-09-25 2015-04-16 Sony Corporation Information processing device, information processing method, and program
CN105099693A (en) * 2014-05-23 2015-11-25 华为技术有限公司 Transmission method and transmission device
WO2020223691A1 (en) * 2019-05-01 2020-11-05 Baffle, Inc. System and method for adding and comparing integers encrypted with quasigroup operations in aes counter mode encryption
WO2020231762A1 (en) * 2019-05-14 2020-11-19 Baffle Inc. System and method for performing equality and less than operations on encrypted data with quasigroup operations
US11424909B1 (en) 2018-12-12 2022-08-23 Baffle, Inc. System and method for protecting data that is exported to an external entity
US11637690B1 (en) 2021-10-08 2023-04-25 Baffle, Inc. Format preserving encryption (FPE) system and method for long strings

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CHRISTOPHER WOLF, BART PRENEEL: "Equivalent Keys in Multivariate Quadratic Public Key Systems", K.U.LEUVEN, ESAT-COSIC, 22 December 2005 (2005-12-22), pages 1 - 19, XP002532413, Retrieved from the Internet <URL:http://citeseerx.ist.psu.edu/viewdoc/similar?doi=10.1.1.60.4311&type=ab> [retrieved on 20090616] *
DANILO GLIGOROSKI: "Candidate One-Way Functions and One-Way Permutations Based on Quasigroup String Transformations", INTERNET CITATION, XP002419058, Retrieved from the Internet <URL:http://eprint.iacr.org/2005/352.pdf> [retrieved on 20070208] *
FARSHID DELGOSHA ET AL: "Multivariate Signature using Algebraic Techniques", INFORMATION THEORY, 2006 IEEE INTERNATIONAL SYMPOSIUM ON, IEEE, PI, 1 July 2006 (2006-07-01), pages 917 - 921, XP031032345, ISBN: 978-1-4244-0505-3 *
KOSCIELNY C ET AL: "A quasigroup-based public-key cryptosystem", 1 January 1999, APPLIED MATHEMATICS AND COMPUTER SCIENCE, HIGHER COLLEGE OF ENGINEERING, ZIELONA GORA, PL, PAGE(S) 955 - 963, ISSN: 0867-857X, XP002205929 *
NICOLAS T. COURTOIS: "Short Signatures, Provable Security and Generic Attacks for Multivariate Polynomial Schemes such as HFE, Quartz and Sflash", 15 January 2004, AXALTO CRYPTOGRPAHIC RESEARCH & ADVANCED SECURITY, FRANCE, XP002532414 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8958560B2 (en) 2010-06-02 2015-02-17 Cisco Technology Inc. Efficient multivariate signature generation
US20150106622A1 (en) * 2012-09-25 2015-04-16 Sony Corporation Information processing device, information processing method, and program
US9577827B2 (en) * 2012-09-25 2017-02-21 Sony Corporation Information processing device, information processing method, and program
CN105099693A (en) * 2014-05-23 2015-11-25 华为技术有限公司 Transmission method and transmission device
CN105099693B (en) * 2014-05-23 2018-10-19 华为技术有限公司 A kind of transmission method and transmitting device
US11424909B1 (en) 2018-12-12 2022-08-23 Baffle, Inc. System and method for protecting data that is exported to an external entity
WO2020223691A1 (en) * 2019-05-01 2020-11-05 Baffle, Inc. System and method for adding and comparing integers encrypted with quasigroup operations in aes counter mode encryption
US11101980B2 (en) 2019-05-01 2021-08-24 Baffle, Inc. System and method for adding and comparing integers encrypted with quasigroup operations in AES counter mode encryption
WO2020231762A1 (en) * 2019-05-14 2020-11-19 Baffle Inc. System and method for performing equality and less than operations on encrypted data with quasigroup operations
US11190339B2 (en) 2019-05-14 2021-11-30 Baffle, Inc. System and method for performing equality and less than operations on encrypted data with quasigroup operations
US11637690B1 (en) 2021-10-08 2023-04-25 Baffle, Inc. Format preserving encryption (FPE) system and method for long strings

Also Published As

Publication number Publication date
GB0805271D0 (en) 2008-04-30

Similar Documents

Publication Publication Date Title
Rodriguez-Henriquez et al. A brief introduction to modern cryptography
JP2020052393A (en) Post-quantum asymmetric key encryption system with one-to-many distributed key management based on double encapsulation of prime modulo
US20100166174A1 (en) Hash functions using elliptic curve cryptography
NZ277128A (en) Public key encryption system and mixture generator
JP7328969B2 (en) Cryptographic system and method
US8705740B2 (en) Elliptic curve-based message authentication code system and method
US20100169658A1 (en) Elliptic curve-based message authentication code
JP2012019559A (en) Custom static diffie-hellman groups
US20140317407A1 (en) Incremental mac tag generation device, method, and program, and message authentication device
WO2009115824A1 (en) Encryption method
Walia et al. Implementation of new modified MD5-512 bit algorithm for cryptography
CN112187461A (en) Weapon equipment data hybrid encryption method based on encryption algorithm
Vambol et al. McEliece and Niederreiter Cryptosystems Analysis in the Context of Post-Quantum Network Security
Heninger RSA, DH, and DSA in the Wild
Rui et al. A k-RSA algorithm
CN116094716A (en) Text encryption and decryption method, system and equipment based on elliptic curve cryptography
Schaefer An introduction to cryptography and Cryptanalysis
WO2022172041A1 (en) Asymmetric cryptographic schemes
US20130058483A1 (en) Public key cryptosystem and technique
Encinas et al. Maple implementation of the Chor-Rivest cryptosystem
CN112367159A (en) Medical data safety storage oriented hybrid encryption and decryption method and system
CA2642399C (en) Collision-resistant elliptic curve hash functions
Ariffin et al. AA β public key cryptosystem-A comparative analysis against RSA and ECC
Farik et al. The need for quantum-resistant cryptography in classical computers
Irawadi Discrete Logarithmic Improvement for ElGamal Cryptosystem Using Matrix Concepts

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09721493

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09721493

Country of ref document: EP

Kind code of ref document: A1