Unbalanced Oil and Vinegar

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In cryptography, the Unbalanced Oil and Vinegar (UOV) scheme is a modified version of the Oil and Vinegar scheme designed by J. Patarin. Both are digital signature schemes. They belong to the group of multivariate cryptography. The security of this signature scheme is based on an NP-hard mathematical problem. To create and validate signatures a minimal quadratic equations system has to be solved. Solving m equations with n variables is an NP-hard problem, even when using a real existing quantum computer. Therefore, the signature schemes based on multivariate equations systems are considered to be quantum resistant.

Public and private key[edit]

Every asymmetric scheme has a public and a private key (public-key cryptography). In known schemes like RSA the keys are bit strings. In the UOV scheme, and in every other multivariate signature scheme the keys are more complex.

The mathematical problem is to solve m equations with n variables. The whole equations system is the public key.

To use a mathematical problem for cryptography it has to be modified. The computing of the n variables would need a lot of resources. A standard computer isn't able to compute this in an acceptable time. Therefore, a special Trapdoor gets inserted into the equations system. This trapdoor is the private key. It consists of three parts: Two affine transformations T and S and a polynomial vector \acute{P}. Both transformations are used to transform elements in certain groups. T transforms y to y_1,y_2,...,y_n. The second transformation S transforms the variable vector to the valid signature.

The third secret element \acute{P} provides certain tools for the equations creation. The equations are built with certain rules which are only known to the owner of the private key.

Creation of a signature[edit]

To create a valid signature the following equations system has to be solved

 \begin{align}
y_1 & = {f_1}^{}(x_1,\ldots,x_n) \\
y_2 & = f_2^{}(x_1,\ldots,x_n) \\
    & ~ \vdots \\
y_m & = f_m^{}(x_1,\ldots,x_n) \\
\end{align}

Here the y=(y_1,y_2,\ldots,y_m) is a given message which should be signed. The valid signature is x = (x_1,x_2,\ldots,x_n).

To sign a given y, the message must first be transformed to fit in the equations system. T is used to "split" the message to acceptable pieces y_1, y_2, ..., y_m. Then the equations have to be built. Every single equation has the same form:

y_i= \sum {\gamma_{ijk}a_j \acute {a}_k} + \sum {\lambda_{ijk} \acute{a}_j \acute{a}_k} + \sum{ \xi_{ij}a_j} + \sum{\acute{\xi}_{ij}\acute{a}_j} + \delta_i

The next steps sign a given message y and the result is a valid signature x.

  1. The coefficients (\gamma_{ijk}, \lambda_{ijk}, \xi_{ij}, \acute {\xi}_{ij}, \delta_i) must be chosen secretly.
  2. The vinegar variables (\acute{a}_j) are chosen randomly
  3. The resulting linear equations system gets solved for the oil variables (a_i)

The vinegar and oil variables build the pre-signature A = (a_1,...,a_n,\acute{a}_1,...,\acute{a}_v). Finally A gets transformed by the private transformation S to give the valid signature  x= S^{-1}(A) .

The system of equations becomes linear if the vinegar variables are fixed – no oil variable is multiplied with another oil variable in the equation. Therefore, the oil variables can be computed easily using, for example, a Gaussian reduction algorithm. The signature creation is itself fast and computationally easy.

Validation of a signature[edit]

The signature is transmitted to the communication partner. The validation of the signature is performed with the help of the public key, which is an equations system.

 \begin{align}
y_1 & = {f_1}^*(x_1, x_2, \ldots, x_n) \\
y_2 & = {f_2}^*(x_1, x_2, \ldots, x_n) \\
    & ~ \vdots \\
y_m & = {f_m}^*(x_1, x_2, \ldots,x _n ) \\
\end{align}

This system of equations is a slightly modified version of the system needed for signature creation. It is modified so that an attacker cannot get information about the secret coefficients and the special formatting of the oil and vinegar variables. Every equation of the public key has to be solved to validate the signature. The input is the signature itself. If every result y_i is equal to the corresponding part of the original message, then the verification succeeded.

Problems and advantages of the UOV scheme[edit]

A primary advantage is that the mathematical problem to be solved in the algorithm is quantum-resistant. That is, if someday a quantum computer is built that can handle enough states to break commercial signature schemes like RSA or ElGamal, the Unbalanced Oil and Vinegar signature scheme remains secure, as no algorithm currently exists that gives a quantum computer a great advantage in solving these multivariate systems of equations.

The second advantage is that the operations used in the equations are relatively simple. Signatures get created and validated only with addition and multiplication of "small" values, making this signature viable for low-resource hardware like in smart cards.

A disadvantage is that UOV uses very long key-lengths, with the public key being the entire system of m equations, which can require several kilobytes of storage. UOV is also a young digital signature scheme. While some attack methods are already known[citation needed], many more will certainly appear if UOV becomes widely used. It is not yet ready for commercial use[why?].

References[edit]