Hall Of Fame

Parameter SetAuthors
mayo-76Mukesh Tiwari
mayo-74Mukesh Tiwari
mayo-70Nico Pelleriti
mayo-66Anders Nilson
mayo-63Kevin Pucci
mayo-61David Weiße, Elias Radtke
mayo-59David Weiße, Elias Radtke
mayo-58David Weiße, Elias Radtke
mayo-55David Weiße, Elias Radtke
mayo-52cDavid Weiße, Elias Radtke
mayo-52bDavid Weiße, Elias Radtke
mayo-52aDavid Weiße, Elias Radtke
mayo-48Kevin Pucci

Remark on Solved Challenges

Currently, all provided parameter sets have been solved. The attacks on the highest parameter sets all exploit the encoding of the flag into the secret key, which introduces artificial structure.

We want to stress that actual MAYO secret keys do not have this structure.

We will soon publish new parameter sets with random secret keys to address this issue.

Mayo

Mayo is a signature scheme which builds upon the Unbalanced-Oil-And-Vinegar (UOV) scheme.
We have a trapdoored multivariate-quadratic (MQ) map , i.e. where each is a homogeneous polynomial of degree 2.
Its corresponding symmetric bilinear form is defined as .

The trapdoor, called the oil space , is an -dimensional subspace of on which the map vanishes, i.e. for all .

For more information refer to the official webpage.

Parameters format

  • n : number of variables in the MQ-map
  • m : number of components in the MQ-map
  • o : dimension of the Oil-Space
  • q : number of elements of the underlying field (in our case always )

Public key format

Since the are homogeneous polynomials of degree 2, they can be described by the following matrices :

Moreover they can be chosen as upper triangular matrices:

The given public key file contains:
Always three lines, seperated by an empty line, containing , and as a list of lists where each inner list is a row of the corresponding matrix.

Flag encoded into the Oil-Space

For the key-recovery challenges, a secret flag has been embedded into the Oil-Space in the following way:

  • Encode into bytes (UTF-8).
    Each byte can be represented by two elements of .
  • Write the nibbles into an matrix from left to right, top to bottom.
    Check if has full rank.
  • Enumerate the oil-space, i.e. compute for all , and sort the vectors lexicographically.
  • The positions of the rows of (starting index 0) will be published.

If you were now able to recover a different basis of the oil-space, you can enumerate the Oil-Space, sort it lexicographically, find the vectors of the original basis via their positions and decode them into the flag.

Link to reference Sage code to extract (unembed) a secret message from a recovered private key


Challenge Parameters

mayo-48

Solved

Category: key-recovery

approx. bit complexity:

48

n

17

m

16

o

3

k

7

mayo-52a

Solved

Category: key-recovery

approx. bit complexity:

52

n

18

m

17

o

3

k

7

mayo-52b

Solved

Category: key-recovery

approx. bit complexity:

52

n

21

m

20

o

5

k

5

mayo-52c

Solved

Category: key-recovery

approx. bit complexity:

52

n

21

m

20

o

4

k

6

mayo-55

Solved

Category: key-recovery

approx. bit complexity:

55

n

25

m

24

o

6

k

5

mayo-58

Solved

Category: key-recovery

approx. bit complexity:

58

n

21

m

20

o

3

k

8

mayo-59

Solved

Category: key-recovery

approx. bit complexity:

59

n

25

m

24

o

5

k

6

mayo-61

Solved

Category: key-recovery

approx. bit complexity:

61

n

24

m

23

o

4

k

7

mayo-63

Solved

Category: key-recovery

approx. bit complexity:

63

n

25

m

24

o

4

k

7

mayo-66

Solved

Category: key-recovery

approx. bit complexity:

66

n

26

m

25

o

4

k

8

mayo-70

Solved

Category: key-recovery

approx. bit complexity:

70

n

26

m

25

o

3

k

10

mayo-74

Solved

Category: key-recovery

approx. bit complexity:

74

n

26

m

25

o

2

k

14

mayo-76

Solved

Category: key-recovery

approx. bit complexity:

76

n

27

m

26

o

2

k

14