The paper “Gimli: a cross-platform permutation” contains the following information:

Occasionally (after rounds 24, 20, 16, etc.) Gimli adds an asymmetric constant to entry 0 of the first row. This constant has many bits set (it is essentially the golden ratio 0x9e3779b9, as used in TEA), and is not close to any of its nontrivial rotations (never fewer than 12 bits different)

What does the term “nontrivial rotation” mean? How to distinguish a “nontrivial” rotation from a “trivial” one?

  • 1
    $\begingroup$ after rotation that you got the same result? as 32 rotation in 32 bit integer? $\endgroup$ – kelalaka Nov 20 '18 at 8:29
  • $\begingroup$ @kelalaka: Then does a 32-bit integer 2863311530 have 16 trivial and 16 nontrivial rotations (assuming that the maximum is 32)? But an integer 1 will have only one trivial rotation (at 32)? And for an integer 0, all rotations are trivial? $\endgroup$ – lyrically wicked Nov 20 '18 at 8:45
  • 1
    $\begingroup$ Here instead of trivial I prefer identity rotation, if you consider the rotations as a family. I would not call anything other then the 32 rotation since other definitions relay on data as 101010...01010 or 000..000 $\endgroup$ – kelalaka Nov 20 '18 at 9:22

A trivial rotation is one where the input to the rotation is equal to the output (hence the rotation is equal to the identity function). Rotating by a multiple of $n$ is a trivial rotation for all $n$ bit values. Note that for certain values other trivial rotations may exist. See below for the values of the (right) rotations of 0x9e3779b9 ($n = 32$) and the amount of different bits for each:

0:  0x9e3779b9 (0  bits different)
1:  0xcf1bbcdc (14 bits different)
2:  0x678dde6e (22 bits different)
3:  0x33c6ef37 (18 bits different)
4:  0x99e3779b (12 bits different)
5:  0xccf1bbcd (14 bits different)
6:  0xe678dde6 (18 bits different)
7:  0x733c6ef3 (16 bits different)
8:  0xb99e3779 (14 bits different)
9:  0xdccf1bbc (12 bits different)
10: 0x6e678dde (16 bits different)
11: 0x3733c6ef (16 bits different)
12: 0x9b99e377 (16 bits different)
13: 0xcdccf1bb (14 bits different)
14: 0xe6e678dd (12 bits different)
15: 0xf3733c6e (16 bits different)
16: 0x79b99e37 (20 bits different)
17: 0xbcdccf1b (16 bits different)
18: 0xde6e678d (12 bits different)
19: 0xef3733c6 (14 bits different)
20: 0x779b99e3 (16 bits different)
21: 0xbbcdccf1 (16 bits different)
22: 0xdde6e678 (16 bits different)
23: 0x6ef3733c (12 bits different)
24: 0x3779b99e (14 bits different)
25: 0x1bbcdccf (16 bits different)
26: 0x8dde6e67 (18 bits different)
27: 0xc6ef3733 (14 bits different)
28: 0xe3779b99 (12 bits different)
29: 0xf1bbcdcc (18 bits different)
30: 0x78dde6e6 (22 bits different)
31: 0x3c6ef373 (14 bits different)
  • $\begingroup$ Does the term “asymmetric” in this context mean that for a particular $n$-bit value $X$ there will be at least 1 bit of difference between $X$ and $X$ rotated by any number in the set $\{1, 2, \ldots, n-2, n-1\}$? $\endgroup$ – lyrically wicked Nov 21 '18 at 5:18

in simple terms a rotation where a rotation is performed on a figure such that the figure maps itself back to its original position such that the rotation is greater than 0° but less than 360°.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.