diff --git a/ChangeLog b/ChangeLog index f83ad1774eb6bcefc6ac64ecf7cbabea773d9726..d797944ef7895ff73d692fff00918625612d0eb1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,30 @@ +2002-02-13 Niels M�ller <nisse@cuckoo.hack.org> + + * aes.c (aes_encrypt): Don't unroll the innerloop. + (aes_encrypt): Don't unroll the loop for the final round. + (aes_decrypt): Likewise, no loop unrolling. + + * aes-set-key.c (aes_set_key): Reversed the order of the inverted + subkeys. They are now stored in the same order as they are used. + + * aes-tables.c (itable): New bigger table, generated by aesdata.c. + + * aes.c (aes_decrypt): Rewrote to use the bigger tables. + 2002-02-12 Niels M�ller <nisse@cuckoo.hack.org> + * aes.c (aes_encrypt): Interleave computation and output in the + final round. + + * aes-internal.h (AES_SMALL): New macro. + + * aes.c (aes_encrypt): Optionally use smaller rotating inner loop. + + * aes-tables.c (dtbl): Replaced with table generated by aesdata. + + * aes.c (aes_encrypt): Rewrite, now uses larger tables in order to + avoid rotates. + * sparc/aes.asm (aes_encrypt): Strength reduced on j, getting rid of one register and one instruction in the inner loop. diff --git a/aes-tables.c b/aes-tables.c index 14208b624f2500b5ea098e93c838d1625baa5a35..fcc4a5b1f0e93a67c8a102ffb69adb098c355645 100644 --- a/aes-tables.c +++ b/aes-tables.c @@ -376,7 +376,7 @@ const uint32_t itable[_AES_TABLE_SIZE][0x100] = 0x6184cb7b,0x70b632d5,0x745c6c48,0x4257b8d0, }, #if !AES_SMALL - { + { /* Before: itable[1] */ 0xa7f45150,0x65417e53,0xa4171ac3,0x5e273a96, 0x6bab3bcb,0x459d1ff1,0x58faacab,0x03e34b93, 0xfa302055,0x6d76adf6,0x76cc8891,0x4c02f525, @@ -441,7 +441,7 @@ const uint32_t itable[_AES_TABLE_SIZE][0x100] = 0xc31d1672,0x25e2bc0c,0x493c288b,0x950dff41, 0x01a83971,0xb30c08de,0xe4b4d89c,0xc1566490, 0x84cb7b61,0xb632d570,0x5c6c4874,0x57b8d042, - },{ + },{ /* Before: itable[2] */ 0xf45150a7,0x417e5365,0x171ac3a4,0x273a965e, 0xab3bcb6b,0x9d1ff145,0xfaacab58,0xe34b9303, 0x302055fa,0x76adf66d,0xcc889176,0x02f5254c, @@ -506,7 +506,7 @@ const uint32_t itable[_AES_TABLE_SIZE][0x100] = 0x1d1672c3,0xe2bc0c25,0x3c288b49,0x0dff4195, 0xa8397101,0x0c08deb3,0xb4d89ce4,0x566490c1, 0xcb7b6184,0x32d570b6,0x6c48745c,0xb8d04257, - },{ + },{ /* Before: itable[3] */ 0x5150a7f4,0x7e536541,0x1ac3a417,0x3a965e27, 0x3bcb6bab,0x1ff1459d,0xacab58fa,0x4b9303e3, 0x2055fa30,0xadf66d76,0x889176cc,0xf5254c02,