2.2 A Quarter Round on the ChaCha State (Eine Viertelrunde auf dem ChaCha-Zustand)
2.2 A Quarter Round on the ChaCha State (Eine Viertelrunde auf dem ChaCha-Zustand)
Der ChaCha-Zustand hat nicht vier ganzzahlige Zahlen: er hat 16. Die Viertelrunden-Operation arbeitet also nur mit vier davon -- daher der Name. Jede Viertelrunde operiert auf vier vorbestimmten Zahlen im ChaCha-Zustand. Wir bezeichnen mit QUARTERROUND(x, y, z, w) eine Viertelrunden-Operation auf den Zahlen an den Indizes x, y, z und w des ChaCha-Zustands, wenn er als Vektor betrachtet wird. Wenn wir beispielsweise QUARTERROUND(1, 5, 9, 13) auf einen Zustand anwenden, bedeutet dies, die Viertelrunden-Operation auf den mit einem Sternchen markierten Elementen auszuführen, während die anderen unverändert bleiben:
0 *a 2 3
4 *b 6 7
8 *c 10 11
12 *d 14 15
Beachten Sie, dass dieser Durchlauf der Viertelrunde Teil dessen ist, was als "Spaltenrunde" bezeichnet wird.
2.2.1 Test Vector for the Quarter Round on the ChaCha State (Testvektor für die Viertelrunde auf dem ChaCha-Zustand)
Für einen Testvektor verwenden wir einen zufällig generierten ChaCha-Zustand:
Sample ChaCha State (ChaCha-Zustandsbeispiel)
879531e0 c5ecf37d 516461b1 c9a62f8a
44c20ef3 3390af7f d9fc690b 2a5f714c
53372767 b00a5631 974c541a 359e9963
5c971061 3d631689 2098d9d6 91dbd320
Wir wenden die Operation QUARTERROUND(2, 7, 8, 13) auf diesen Zustand an. Aus offensichtlichen Gründen ist diese Teil dessen, was als "Diagonalrunde" bezeichnet wird:
After applying QUARTERROUND(2, 7, 8, 13) (Nach Anwendung von QUARTERROUND(2, 7, 8, 13))
879531e0 c5ecf37d *bdb886dc c9a62f8a
44c20ef3 3390af7f d9fc690b *cfacafd2
*e46bea80 b00a5631 974c541a 359e9963
5c971061 *ccc07c79 2098d9d6 91dbd320
Beachten Sie, dass sich nur die Zahlen an den Positionen 2, 7, 8 und 13 geändert haben.