Hall Of Fame

Parameter SetAuthors
mayo-48Kevin Pucci

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

Category: key-recovery

approx. bit complexity:

52

n

18

m

17

o

3

k

7

mayo-52b

Category: key-recovery

approx. bit complexity:

52

n

21

m

20

o

5

k

5

mayo-52c

Category: key-recovery

approx. bit complexity:

52

n

21

m

20

o

4

k

6

mayo-55

Category: key-recovery

approx. bit complexity:

55

n

25

m

24

o

6

k

5

mayo-58

Category: key-recovery

approx. bit complexity:

58

n

21

m

20

o

3

k

8

mayo-59

Category: key-recovery

approx. bit complexity:

59

n

25

m

24

o

5

k

6

mayo-61

Category: key-recovery

approx. bit complexity:

61

n

24

m

23

o

4

k

7

mayo-63

Category: key-recovery

approx. bit complexity:

63

n

25

m

24

o

4

k

7

mayo-66

Category: key-recovery

approx. bit complexity:

66

n

26

m

25

o

4

k

8

mayo-70

Category: key-recovery

approx. bit complexity:

70

n

26

m

25

o

3

k

10

mayo-74

Category: key-recovery

approx. bit complexity:

74

n

26

m

25

o

2

k

14

mayo-76

Category: key-recovery

approx. bit complexity:

76

n

27

m

26

o

2

k

14