13 typedef unsigned long long int UINT64;
16 #define GET_KRC_VAL(index) (KeccakRoundConstants[index]) 19 0x0000000000000001ULL,
20 0x0000000000008082ULL,
21 0x800000000000808aULL,
22 0x8000000080008000ULL,
23 0x000000000000808bULL,
24 0x0000000080000001ULL,
25 0x8000000080008081ULL,
26 0x8000000000008009ULL,
27 0x000000000000008aULL,
28 0x0000000000000088ULL,
29 0x0000000080008009ULL,
30 0x000000008000000aULL,
31 0x000000008000808bULL,
32 0x800000000000008bULL,
33 0x8000000000008089ULL,
34 0x8000000000008003ULL,
35 0x8000000000008002ULL,
36 0x8000000000000080ULL,
37 0x000000000000800aULL,
38 0x800000008000000aULL,
39 0x8000000080008081ULL,
40 0x8000000000008080ULL,
41 0x0000000080000001ULL,
74 #define index(x, y) (((x)%5)+5*((y)%5)) 75 #define ROL64(a, offset) ((offset != 0) ? ((((UINT64)a) << offset) ^ (((UINT64)a) >> (64-offset))) : a) 85 C[x] ^= A[
index(x, y)];
88 D[x] =
ROL64(C[(x+1)%5], 1) ^ C[(x+4)%5];
98 for(x=0; x<5; x++)
for(y=0; y<5; y++)
107 for(x=0; x<5; x++)
for(y=0; y<5; y++)
109 for(x=0; x<5; x++)
for(y=0; y<5; y++)
110 A[
index(0*x+1*y, 2*x+3*y)] = tempA[
index(x, y)];
static UINT64 KeccakRoundConstants[nrRounds]
void kekka_coproc(UINT64 A[25])
unsigned long long int UINT64
void iota(UINT64 *A, unsigned int indexRound)
static unsigned char KeccakRhoOffsets[nrLanes]
x
Return the smallest n such that 2^n >= _x.
#define GET_KRC_VAL(index)