• Aucun résultat trouvé

2 Description of MQQ public key cryptosystem

In this section we give a description of the multivariate quadratic quasigroup public key cryptosystem [18]. The system is based on previous work by Glig-oroski and Markovski who introduced the use of quasigroup string processing in cryptography [24,25].

2.1 Multivariate quadratic quasigroups

We first introduce the key building block namely multivariate quadratic quasi-groups. For a detailed introduction to quasigroups in general we refer the inter-ested reader to [33].

Definition 1 A quasigroup is a set Q together with a binary operation ∗ such that for alla, b∈Qthe equations`∗a=b anda∗r=bhave unique solutions ` andr inQ. A quasigroup is said to be of order nif there aren elements in the setQ.

4 Ødeg˚ard, Perret, Faug`ere and Gligoroski

Let (Q,∗) be a quasigroup of order 2d, andβ be a bijection from the quasigroup to the set of binary strings of lengthd, i.e

β :Q→ Zd2

a 7→(x1, . . . , xd) (1)

Given such a bijection we can naturally define a vector valued Boolean function

vv: Zd2×Zd2 → Zd2

(β(a), β(b))7→β(a∗b) (2)

Now letβ(a∗b) = (x1, . . . , xd)∗vv(xd+1, . . . , x2d) = (z1, . . . , zd). Note that each zican be regarded as a 2d-ary Boolean functionzi=fi(x1, . . . , x2d), where each fi :Zd2→Z2 is determined by∗. This gives us the following lemma [18].

Lemma 1 For every quasigroup (Q,∗) of order 2d and for each bijection β : Q → Zd2 there is a unique vector valued Boolean function ∗vv and d uniquely determined2d-ary Boolean functionsf1, f2, . . . , fdsuch that for eacha, b, c∈Q:

a∗b=c m

(x1, . . . , xd)∗vv(xd+1, . . . , x2d) = (f1(x1, . . . , x2d), . . . , fd(x1, . . . , x2d)).

(3)

This leads to the following definition for multivariate quadratic quasigroups.

Definition 2 ([18]) Let(Q,∗)be a quasigroup of order2d, and letf1, . . . , fd be the uniquely determined Boolean functions under some bijection β. We say that the quasigroup is multivariate quadratic quasigroup (MQQ) of type QuaddkLink

(under β) if exactly d−k of the corresponding polynomials fi are of degree 2 andk of them are of degree 1, where0≤k≤d.

Gligoroski et al. mention [18] that quadratic terms might cancel each other.

By this we mean that some linear transformation of (fi)1in might result in polynomials where the number of linear polynomials is larger than k, while the number of quadratic polynomials is less thand−k. Later Chen et al. [10] have shown that this is more common than previously expected. In their paper they generalizes the definition of MQQ above to a family which is invariant by linear transformations inZ2[x1, . . . , x2d].

Definition 3 Let (Q,∗) be a quasigroup of order 2d, and let f1, . . . , fd be the unique Boolean functions under some bijectionβ. We say that the quasigroup is a multivariate quadratic quasigroup (MQQ) of strict type QuaddkLink (under β), denoted by QuadsdkLinsk, if there are at most d−kquadratic polynomials in (fi)1id whose linear combination do not result in a linear form.

Chen et al. also improves Theorem 2 from [18] which gives a sufficient condition for a quasigroup to be MQQ. We restate this theorem below.

Analysis of the MQQ Public Key Cryptosystem 5 Theorem 1 LetA1= [fij]d×d andA2= [gij]d×dbe twod×dmatrices of linear Boolean expressions with respect tox1, . . . , xdandxd+1, . . . , x2d respectively. Let cbe a binary column vector ofdelements. If det(A1) =det(A2) = 1and

A1·(xd+1, . . . , x2d)T+(x1, . . . , xd)T =A2·(x1, . . . , xd)T+(xd+1, . . . , x2s)T, (4) then the vector valued Boolean operation

(x1, . . . , xd)∗vv(xd+1, . . . , x2d) =B1A1·(xd+1, . . . , x2d)T+B2·(x1, . . . , xd)T+c (5) defines a quasigroup (Q,∗) of order 2d which is MQQ for any non-singular Boolean matrices B1 andB2

In addition Chen et al. proved [10] that no MQQ as in Theorem 1 can be of strict type QuadsdLins0. This result uncovered a possible weakness in [18] since the proposed scheme is using 6 quasigroups of type Quad5Lin0.

Notice that the vector valued Boolean function defining the MQQ in Theorem 1 have no terms of the formxixj withi, j≤dori, j > d. This means that if we set the first or the last half of the variables to a constant, we end up with only linear terms in the MQQ. It is still an open question if there exists MQQ that are not as in Theorem 1.

The MQQs used in this paper has been produced using the algorithm pro-vided in Appendix A. The algorithm is based on the paper [10], and produces MQQs that are more suitable for encryption since they are guaranteed to be of strict type Quadsd−kLinsk.

2.2 Dobbertin bijection

In addition to MQQs, the public key cryptosystem [18] also uses a bijection introduced by Dobbertin in [13]. Dobbertin proved that the following function, in addition to being multivariate quadratic, is a bijection inZ22r+1.

Dr:Z22r+1→ Z22r+1

x 7→x2r+1+1+x3+x (6)

2.3 Public key cryptosystem based on MQQ

We are now ready to describe the public key cryptosystem presented by Glig-oroski et al. in [18]. LetN =ndbe the desired number of variables (x1, . . . , xN), and let {∗1vv, . . . ,∗kvv} be a collection of MQQs of size 2d represented as 2d-ary vector valued Boolean functions. The public key is constructed as follows.

Algorithm MQQ public key construction.

1. SetX= [x1, . . . , xN]T. Randomly generate a N×N non-singular Boolean matrixS, and computeX←S·X.

2. Construct ann-tuple I ={i1, . . . , in}, where ij ∈ {1, . . . , k}. The tuple I will decide which MQQ,∗ivvj, to use at each point of the quasigroup trans-formation.

6 Ødeg˚ard, Perret, Faug`ere and Gligoroski

3. Represent X as a collection of vectors of length d, X = [X1, . . . , Xn]T. Compute Y = [Y1, . . . , Yn]T where Y1 = X1, Y2 = X1ivv1 X2, and Yj = Xjivvj Xj+1 forj= 1, . . . , n.

4. SetZto be the vector of all the linear terms ofY1, . . . , Yj. HereY1 will be all linear terms, while eachYj has between 1 andklinear terms depending on the type QuadsdkLinsk of MQQ used. Transform Z with one or more Dobbertin bijections of appropriate size. For example if Zis of size 27 we can use one Dobbertin bijection of dimension 27, three of dimension 9, or any other combination adding up to 27.W←Dob(Z).

5. Replace the linear terms of Y= [Y1, . . . , Yn]T with the terms inW. Ran-domly generate a N ×N non-singular Boolean matrix T, and compute Y←T·Y

6. returnthe public keyY. The private key isS,T,{∗1vv, . . . ,∗kvv} andI.