# Unbalanced oil and vinegar scheme

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 protocols. They are forms 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 equation system must be solved. Solving m equations with n variables is NP-hard. While the problem is easy if m is either much much larger or much much smaller than n, importantly for cryptographic purposes, the problem is thought to be difficult in the average case when m and n are nearly equal, even when using a quantum computer. Multiple signature schemes have been devised based on multivariate equations with the goal of achieving quantum resistance.
A significant drawback with UOV is that the key size can be large. Typically n, the number of variables, is chosen to be double m, the number of equations. Encoding the coefficients of all these equations in the key requires considerable space, at least 200 kilobytes for a system that would offer security comparable to the Digital Signature Algorithm or Elliptic Curve Digital Signature Algorithm.

## Signing and verification key

A signature scheme has a signing key, which is kept private, and a verification key, which is publicly revealed. For instance, in signature schemes based on RSA the keys are both exponents. 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 must 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 is inserted into the equations system. This trapdoor is the signing 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 rules known only to the owner of the signing key.

## Signature creation

To create a valid signature, the following equations system has to be solved
${\begin{aligned}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{aligned}}$
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},\ldots ,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$.
* The coefficients, $\gamma _{ijk},\lambda _{ijk},\xi _{ij},{\acute {\xi }}_{ij},\delta _{i}$, must be chosen secretly.
* The vinegar variables (${\acute {a}}_{j}$) are chosen randomly
* 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},\ldots ,a_{n},{\acute {a}}_{1},\ldots ,{\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.

## Signature validation

The signature is transmitted to the communication partner. Validation of the signature is performed with the help of the public key, which is an equations system.
${\begin{aligned}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{aligned}}$
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

A primary advantage is that the mathematical problem to be solved in the algorithm is quantum-resistant. When a quantum computer is built that can factor large composite numbers using Shor's Algorithm, this will break commercial signature schemes like RSA or ElGamal that rely upon the discrete logarithm problem being unsolvable. UOV may remain secure because no algorithm is known to give quantum computers a great advantage in solving 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 as found in smart cards.
A disadvantage is that UOV uses very long key-lengths, with the public key involving the entire system of $m$ equations, which can require several hundred kilobytes. UOV has not been used widely. While several attack methods are already known, more may appear if UOV becomes widely used. UOV is not yet ready for commercial use because its security requires more investigation.
The Rainbow cryptosystem is based on UOV and is one of three finalists in the NIST competition for a post-quantum digital signature standard, though significant concerns have recently been brought to light regarding its security as proposed in the NIST competition. A new MinRank attack against Rainbow was discovered, which reduces the security of the proposed Rainbow instantiation to a level below the requirements set out by NIST. Beullens discovered a new attack in 2022, which recovers the private key for the Rainbow L1 parameterset in a weekend. UOV itself is not affected by this attack.