From 3fbccfcb5c0d7c29c37132e894034ec04ab46199 Mon Sep 17 00:00:00 2001 From: Patrick Pelletier Date: Wed, 5 Oct 2011 01:12:08 -0700 Subject: [PATCH 1/9] support base 64 for GMP --- src/math/gmp_desc.c | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/src/math/gmp_desc.c b/src/math/gmp_desc.c index 403211b..b09aab3 100644 --- a/src/math/gmp_desc.c +++ b/src/math/gmp_desc.c @@ -138,13 +138,49 @@ static int twoexpt(void *a, int n) /* ---- conversions ---- */ +static const char rmap[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/"; + /* read ascii string */ static int read_radix(void *a, const char *b, int radix) { + int ret; LTC_ARGCHK(a != NULL); LTC_ARGCHK(b != NULL); - mpz_set_str(a, b, radix); - return CRYPT_OK; + if (radix == 64) { + /* Sadly, GMP only supports radixes up to 62, but we need 64. + * So, although this is not the most elegant or efficient way, + * let's just convert the base 64 string (6 bits per digit) to + * an octal string (3 bits per digit) that's twice as long. */ + char c, *tmp, *q; + const char *p; + int i; + tmp = XMALLOC (1 + 2 * strlen (b)); + if (tmp == NULL) { + return CRYPT_MEM; + } + p = b; + q = tmp; + while ((c = *p++) != 0) { + for (i = 0; i < 64; i++) { + if (c == rmap[i]) + break; + } + if (i == 64) { + XFREE (tmp); + // printf ("c = '%c'\n", c); + return CRYPT_ERROR; + } + *q++ = '0' + (i / 8); + *q++ = '0' + (i % 8); + } + *q = 0; + ret = mpz_set_str(a, tmp, 8); + // printf ("ret = %d for '%s'\n", ret, tmp); + XFREE (tmp); + } else { + ret = mpz_set_str(a, b, radix); + } + return (ret == 0 ? CRYPT_OK : CRYPT_ERROR); } /* write one */ From e3acd4cabe0268ed1e89b081ba3cc0956acf51c2 Mon Sep 17 00:00:00 2001 From: Patrick Pelletier Date: Wed, 5 Oct 2011 01:24:23 -0700 Subject: [PATCH 2/9] Make GMP use uppercase to match LibTomMath. --- src/math/gmp_desc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/math/gmp_desc.c b/src/math/gmp_desc.c index b09aab3..464cd93 100644 --- a/src/math/gmp_desc.c +++ b/src/math/gmp_desc.c @@ -188,6 +188,11 @@ static int write_radix(void *a, char *b, int radix) { LTC_ARGCHK(a != NULL); LTC_ARGCHK(b != NULL); + if (radix >= 11 && radix <= 36) + /* If radix is positive, GMP uses lowercase, and if negative, uppercase. + * We want it to use uppercase, to match the test vectors (presumably + * generated with LibTomMath). */ + radix = -radix; mpz_get_str(b, radix, a); return CRYPT_OK; } From 65254f65bf3af41b2eff14ed48384c98fe98b63f Mon Sep 17 00:00:00 2001 From: Patrick Pelletier Date: Wed, 5 Oct 2011 01:34:41 -0700 Subject: [PATCH 3/9] Fix camellia_keysize() to not change the keysize if it is correct. It was rounding 32 down to 24, 24 down to 16, and claiming 16 was invalid. --- src/ciphers/camellia.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ciphers/camellia.c b/src/ciphers/camellia.c index e7b172f..488998b 100644 --- a/src/ciphers/camellia.c +++ b/src/ciphers/camellia.c @@ -711,9 +711,9 @@ void camellia_done(symmetric_key *skey) {} int camellia_keysize(int *keysize) { - if (*keysize > 32) { *keysize = 32; } - else if (*keysize > 24) { *keysize = 24; } - else if (*keysize > 16) { *keysize = 16; } + if (*keysize >= 32) { *keysize = 32; } + else if (*keysize >= 24) { *keysize = 24; } + else if (*keysize >= 16) { *keysize = 16; } else return CRYPT_INVALID_KEYSIZE; return CRYPT_OK; } From 5708adb6c15c79505bf3ce1b31f26007283315d1 Mon Sep 17 00:00:00 2001 From: Patrick Pelletier Date: Wed, 5 Oct 2011 01:37:19 -0700 Subject: [PATCH 4/9] Add Camellia to the test vectors. --- demos/tv_gen.c | 3 + notes/ccm_tv.txt | 35 ++++++++++ notes/cipher_tv.txt | 158 ++++++++++++++++++++++++++++++++++++++++++++ notes/eax_tv.txt | 35 ++++++++++ notes/gcm_tv.txt | 35 ++++++++++ notes/ocb_tv.txt | 35 ++++++++++ notes/omac_tv.txt | 35 ++++++++++ notes/pmac_tv.txt | 35 ++++++++++ 8 files changed, 371 insertions(+) diff --git a/demos/tv_gen.c b/demos/tv_gen.c index 8e09e3b..fe7acdc 100644 --- a/demos/tv_gen.c +++ b/demos/tv_gen.c @@ -53,6 +53,9 @@ void reg_algs(void) #ifdef LTC_KHAZAD register_cipher (&khazad_desc); #endif +#ifdef LTC_CAMELLIA + register_cipher (&camellia_desc); +#endif #ifdef LTC_TIGER register_hash (&tiger_desc); diff --git a/notes/ccm_tv.txt b/notes/ccm_tv.txt index 3ff4b77..57969aa 100644 --- a/notes/ccm_tv.txt +++ b/notes/ccm_tv.txt @@ -212,3 +212,38 @@ CCM-anubis (16 byte key) 31: B8176469E6A0D5797ED6421A871FEECDE48ACF011E394981C43AC917E8FFD5, E9B01383DB1A32E6126BD802A6C6F47E 32: AB6A0AA29B687D05735167D78DB697BA2478BD14ECD059AE9D1239E7F2AB48FD, A560A30FD87CF28BA66F5B2638567E4B +CCM-camellia (16 byte key) + 0: , 3B53D5CC8B26A5FFC78D2E974E45A661 + 1: 5B, ED7741D8C258D56A29392A7A65CF147D + 2: 9396, AEC9E6690624A94E9ED39A0507C32277 + 3: 7D7DDB, E7D4B50F856F78EAFCCD6B91CA985AFE + 4: 1DE036A3, 4F519237C8534508140174DD3F5D5E10 + 5: 9BD3C8B888, 760CADF4D2722C52BE28D89F9F1BEAAC + 6: CA4252105A3D, 675B4D6953136E0691C3FE174381C231 + 7: EFF8ABC8F5CFA0, DDECDDF8FAE2BCAE971003D05A86024C + 8: D155E0590C4DC889, 08EFED0B6FA5C0EB64B7900229EA41DC + 9: 50AC40B4A083BEBF21, 14DABECF5CDBBB8F0AF3E7DDC034DAC6 + 10: 1C5442AF9F2D491BE911, FD19818919D55FD80BCC9EBA0A108920 + 11: 85A748561995A968CC9124, 69F769B8EA2BE927DADD209300752181 + 12: 2F0838A1C593A629C1AE9032, 4C8AB614BCF4F7988EB4B93E1DC48EE2 + 13: F19EE633F8B5E323904469D5C3, F82B28464B4BF73C39B332814E1672EF + 14: D6DBE7D82D4C99830FA1A6245125, 94D9EDF12A4A4EE357B647184EACC01B + 15: E8D02CBECEAD690DDFC1E48EE16B1F, 2D1355394CD62544D8840302715862D8 + 16: 74C395F0C833ECB858F6D09C097192C4, 9079E949C4081B348259080AA0AAD85B + 17: ECB27927C303ABE439BCD9F9D4E87D5674, 726E8E755398A30E930F2159B510DD8B + 18: 86593B1148EF7D5B446AA3AD22001CB66CB5, 63B0D269B586B9C887584498FF61D8BA + 19: 0373123872929AAF354B085FCEAB74DD2D28E4, 5FE2491F2603E474D15500DB2E32481D + 20: 3EA3D8DC013F2A6E42BFCCEE51BBFCEDD194BA40, 5667BD5212E31F02C8D8B94FAB5A9DEF + 21: 5ACC89A28DB162595FD55D63ED2C5B48976E0BA0E9, A52EDC5A3AB7B070B755DBB008D99787 + 22: 381266462C783DF3B5F3F3570611D6E0A61ABDFF7BA5, C79D371D81511D85D7B54B686AADFAFD + 23: 8819DDC964172B3BE049CCBABCF5AA7EDB50BD90E871F4, 45561AD598EB2DB8F7825878786B2CED + 24: F514E9F64E90197728E2D061443ED006F2CF2236EC2E65CF, 0C47214A73F6CEAEC1C96FE859C519E1 + 25: 3B965F16101777CF84C85AD864701BCDD617681B92944386AD, ECBE6B6BA145D10FE0D5042A5F04BB68 + 26: B573EB75A48CB8F56163A55DFB870017E06940D799ECCECE7C2C, 63A7C16D33F6ECA72B2B33C6FFF4F13D + 27: 47A3A96928BC9B28E22C3AF1999A30E271806BD3E6C8FAA4D82D62, 25E319011BA2F72BF7447C8EB36BBD01 + 28: 0E873D38B34A0857FB82BF278AE07AEF9A4B378A8300CDD96C5BDE34, 6045114D75AE7681C91E5BC508E2398B + 29: FF33B9683538014DCF4F7D78CF7126FB43448BF9883D69B824019B05FB, 28AD47D363A7F9A4653C6685F90C2971 + 30: 58005BF96E194411DF808DB3A6D405CA241986486160313AD092026A0A54, 7D8A8C8E8AB6ACE7312D82146219F37B + 31: 20C3DFE512F4EC1F17973BBB164E9F1B77CC3EB37B486119614764F4C7D0E2, 57CEB0625D34AD40935B03C54A1B8779 + 32: 913F8D366D4C2AC10ACB3196CCBDB5F436CFA92377045EB3A1C066F6ED7DE0E9, F48C8BB647E719049DB38C39EF779CE2 + diff --git a/notes/cipher_tv.txt b/notes/cipher_tv.txt index c649d26..01c3023 100644 --- a/notes/cipher_tv.txt +++ b/notes/cipher_tv.txt @@ -1965,3 +1965,161 @@ Key Size: 16 bytes 49: 0133E1745856C44C +Cipher: camellia +Key Size: 16 bytes + 0: ED18D83F3153160C5A6D01AC3717515C + 1: 1012886CCDF3FFD25E588BA10D6CE363 + 2: D25562F6943EBE3A7E0EF28D33CF091E + 3: C26FDC4539DD1E6D0330B5836AB24420 + 4: E14A50CE727B74B8CEBEB284FEF3C810 + 5: AABFD72D334F594344C617EF8E8F5741 + 6: E8D941419ABE88060835E9BD375455BB + 7: ED863784E1590139A2CA50D77450300A + 8: 545FCF42030BD764724C3EF5C139B038 + 9: 08C194E007FAA99997D855A759D10743 +10: 3899D3731500C79D2945AFC2980B4C17 +11: 2720FA4B402AB7F1B019AF6248702369 +12: 3FF6C3C90AB4141DEE5FF30EA2047F73 +13: BB5BAF7545AA774C7AA5A58568F96832 +14: 66349C52709EDE0EE34AB6501B420C7C +15: E1E93D923504A5421BAEA5F1D61D4C9A +16: 3C07DFD64B2407BB7575A905F3F31E83 +17: 0FC569AC89ED790F69BBD1E998700C97 +18: 6B6F390AFA1052BD2E8DB0DC261E4D26 +19: CBEA83ED55DA9DED95B87F2BBBEAC37D +20: CE005DECECB98F5937D5ED26FD83154E +21: 738301D76316EC4173F124A9C9D6577A +22: D00A1E40CFB5F2B8FD2C0714580FAD50 +23: 7EBF497C78B72E646EB72A326F1D5C4B +24: 7E0023900F6000D00737242DA8F2E1B1 +25: 0F7737E715BEF0DEA503E355394540A9 +26: 15452DD70DEBF45BEF39782CDB8BB086 +27: E7464917B3AF060BC763D8959DDF90C1 +28: CBE4B90FF8C66672122D53585198773B +29: B7262E6CAA2C14B18EE374DF922CDB98 +30: 01E695E3CD87A2FD4B9C49D08D032DAD +31: AA1686BA0B5C5688D0F370C6E2BFA43C +32: 9448BA348E8E904992C3F4233C226B22 +33: A1DCD1CB810DFB46BDCE6FBE3A192560 +34: 4345D200A309FA8C5A0CE9EC60EE506C +35: 54C7F64D9B411BF90B283ED62686D28F +36: E347E882EC2635081547612B1D9589D1 +37: 36D44CC101B37BB6F6AF68C3FEA3A7B7 +38: F38C2D5B921965D2AFFDBF4EC5BCEC19 +39: F7ED6BF85782F0526301BD1CD1624E67 +40: 7959C134BFC85CA176550EA689F81054 +41: A8FC96504C437F0EFD0BDF6CCEF516D2 +42: 6B88D1A06D7C8C74379FEFE2D6A7C895 +43: 39C21AA165F4A71A161971D89CA5DC32 +44: CC123C40071BF02D282DC83D2AC18226 +45: 0780A63741AE47CD03FA99A74C320E33 +46: DFB0831BA27AA0750701439603B8A805 +47: 0C783CBA4ECD9EEE1F91838259831187 +48: 1456624438B22555B08D59CA50D6E95D +49: D5F463D983A9A6FE9A0B47C245596D40 + +Key Size: 24 bytes + 0: 1D1DAF85EA5CAE19F5F5EA1DC61E5B83 + 1: DDAC7FCF2C2F275C7041E7821AAC84A3 + 2: 591091C3755816AAEB9170D5DF77A0B3 + 3: C4BC965CDC20E6FC039F07DA2CD10BE3 + 4: CD8DA54FC48524EDCFEF985C0C39C961 + 5: 14FA12F39AC3D701A958765B4499FFAC + 6: 2BBEA5F3AA140CFFED9F1EB2BC969D56 + 7: 5F73CA8BF641770D6833A43947D9A5C3 + 8: 3E872D303B882284AB02393D43137450 + 9: 01EF55D4CE182FA03216A83A5128F761 +10: 915C2F5793692A6D118D865783317C58 +11: 4368A442B61D6F12D5447F1CB8854714 +12: 3477ECB27ECFF2D7108ED1297DE80F86 +13: 89C875CB55C1CE80FF2D430921FADB05 +14: C5AAFE7A4588D4D9039E4552B3FC9B02 +15: BF1E7509405AB219B540BDD0D3DE7528 +16: 7E5CC85B6563099B902638B7E0D09728 +17: FF04D2350647F117F81DA037A9E11946 +18: EA294A53395A20B391B11AB9F97262F3 +19: 448C801307E9405F740623BA55A45639 +20: 62032AE6EB01322233FB321B2D6A8C38 +21: 79A54FFB9CA25AE315BA0E7B6E59EA99 +22: EDE7E634C396926876A49DB3C0E261E1 +23: E9DA5106B8BD33391C28407E9B3758BD +24: D8EAF9F744E060695AD1F55F85AF3D76 +25: F1E61F0F467C0785B6053332129114EA +26: 3119CACB24B012F3B96EFAD3FB856AFB +27: 97753ACDAFD6224E5D289BF76673A73A +28: 8D5912FFFD628736C64B3DE01DF1E674 +29: 8951CEDB758DF5EA5D2A78B2A08480EE +30: 3C0FC9DFD8CF79A5F9F75CC43B1A9247 +31: 4C7047481FE0849EA0416BDC00A52321 +32: 97034388AE8553570366EDFB9F6D618F +33: F16BCC0FB2B77CCBDC5EF7AB2233599D +34: 6D94D041196F43F0224B1DAC84165E7C +35: 313C6BA0AD767259860DCF8003F2F5A2 +36: C5F835DCF63D1C40E56DBAC7ADCE7F3C +37: DAFAFF6BB46EA9280562E5DDFA793BA8 +38: 5C8C0570B06C595E296DD4A9FB864FCE +39: 72B433F78D7CA638C2ADA09D99CFB769 +40: B6D7A6C47339743E9739D35D0F08A25D +41: 6CFD73F9E9781FFCE53C69AD2EF11E03 +42: B7F0BA994EF90642B80FDD798666D752 +43: DD49766125316ED4F546B246A2CFA23A +44: 8ED53D6CEF3CFB9DB0147F02656EDA35 +45: 95690401D61C84A013EC6D25CCAC5CD1 +46: 7693648B4A6CA804B6F01AE67816746C +47: F08C5898CE7970C41A5F8C05882CAB8B +48: 91EC0EC1CF839B58009E6CAAB3FD67A0 +49: 853DFA14A029EB8FB8D693B0A65306A1 + +Key Size: 32 bytes + 0: 5F77DC44E5E6701E8755C1FA176E2434 + 1: 5C1F70FC144C66D82D8F21DD2A0BA54E + 2: A98317BC656475F83E83062A69A17EF6 + 3: D5B8C0DB1095E65D49CEC82D78FD4C7E + 4: 37A537292409ABE5B922DD97EC0F6CA4 + 5: C7FD40883DE6BBC6059327DA586AD96E + 6: F4D19C443A2195B66085DACA7EFFDADF + 7: 6F12FD74B4D25C9F2856CAA1BA32461E + 8: DFC00046F41BC27684321B980BF68F6E + 9: 4A8BECB6A8D57002FCC6FE08B6D31118 +10: 859562FB3727E535BD4A914907822545 +11: EBA65EA3BD622DC044CA5384E568C65F +12: 79C16A751FBE22340F30462600724324 +13: 8F4FB71B5B3E0C1DB870B4BC81E995D0 +14: 4B82E7E8D64D8EF9D78DA944B292CED9 +15: D873F8D7125A63EBB04473F7331B1975 +16: 2FA25AF9E8D5A4DC82CAD98505E5DA60 +17: C80C24625096E6E9852A6F9EE12735BB +18: 10D4434CB795DC06E926CFA3B43D2368 +19: 070795AEA2765A443213F9CA909DF6C4 +20: 7184D2F5644306FB6DD55F1C90C111CA +21: F4FAEDF12FB40DE7CE7B08121A340557 +22: 86CE014AA863FD3030A26E6F8C178673 +23: 5A46BF2B3F14D5FEA884C3361EA87ED3 +24: 456584515D983D17ED4F3AE944BFB2C4 +25: E1E8F394691C2A9123023A8EE3FCBBEF +26: AC73E8BD1758850DEDAA3817B01E6353 +27: 15AE5395CBC3371F81A6F5B05C52671F +28: F15AA72D34C4E0EEF8DDDDA90D9A9539 +29: 3325E709043735898EA242E94D169112 +30: 044AB447754DADD4E2709FEE08D5CEA2 +31: E02DD5E86D32B3A6CC7F0016375AEC5F +32: 790278BD19E2860618E24DC69993F92B +33: F776D24FD90A43A78D000CFC1189E56A +34: A3EE4A3D121280750F7C70E55DD40FF4 +35: 32928BBBF98DF4B9E107599DFB30364F +36: B3E9296B529118B656D27AFF0F4D1A55 +37: 4668FD77100255C3406281EC813719AE +38: 16F9FF27B26F13300DB8DEE2EDD023AA +39: 9295F8435D688D12BE631A31B2531482 +40: D86917DF41ED4342C0ABF10628DBD1B4 +41: 1F5215B987C3F079769292E65D04B823 +42: F68B98BD2F12AACEBE78666AA83CA7D0 +43: 09BB635B67279F5A6B1D5C5D880A1357 +44: AE4ABBCC1D35CD8C4C254111D5F27158 +45: 5552B3E39DE67F759799A686222EE4EC +46: 1CA439434B9FD2F24561A32A0A2A79C5 +47: 0E33BE7CE3B9A5CFF00A73BD27DFE9EF +48: 6B7056FDC97983173D6B3D5BFC9B09B8 +49: DA293A4CB96FE3608CFFD89B927C9ED6 + + diff --git a/notes/eax_tv.txt b/notes/eax_tv.txt index 95cd7c1..40135dc 100644 --- a/notes/eax_tv.txt +++ b/notes/eax_tv.txt @@ -459,3 +459,38 @@ EAX-khazad (16 byte key) 15: 14DA751E5AF7E01F35B3CE74EE1ACF, 3C76AB64E1724DCE 16: A13BBC7E408D2C550634CBC64690B8FE, 3D4BBC0C76536730 +EAX-camellia (16 byte key) + 0: , 9E8CDB7237166EF9FD0605A0AD3E4070 + 1: 8A, 23F462AC7E22EB9078DAC34CB1CFFB08 + 2: EC9D, EBA9E2E3112C18CC2991FFF97EF77E6F + 3: D2A9CF, 913472F45F6D6B087D8AEB34B0FF9494 + 4: 360A7ECC, 6382103D53AB8C9263977AFB1A96AAC4 + 5: 80B52AAFE6, F855787CD6CCA56CD656A0DBC663CAD1 + 6: 0915D546F5F0, EBE17981CAB5D59E6376CFE30DE66936 + 7: 086B525B082B71, 182D76F2DE42F5D0AC252F25E7BC34CA + 8: 438DA1E9E78B9D2E, 36BA12456C3AC5ED3A0BDF851A651E82 + 9: 0F9C9890152D6AD5EC, 06F3A96F40D794552CA799006E76AE7A + 10: 7754241DCD040CC449EB, B576881B5E542A73717A6AC24E516079 + 11: BB536F70C1111BFAC4D149, DDC6043F2B5DF96418799DD13BD04726 + 12: 4B530B4F67376C4B7EC1CB29, 43A36C14092F19F168ADF0FD9F557424 + 13: 55D5D285DC88451148C7B2B143, 7C2CB43BD19808EB90F045E6D6EB70D0 + 14: B321948117659CB06E6B364D00A7, 1B30A37234E3A13A335EFE6A07B070DC + 15: BDCCAC5E956953E6D5C43D9436D453, 98F924C659F4112B1D9DAFFF711FB2F6 + 16: E0A2F28186D79A9494700E5A30351542, C604F7F47C3F18F236DDB289D287BE91 + 17: 750D6EF87E1C9E1023920D3F355B2BEED8, 96FEEAC4DA36FD36129F67C3EADA75EF + 18: E7F91687119D70793B9BB0114C7B588D32F0, A75052978F26EE6FE5D802BD4C06004D + 19: 56D7420981DC556AE0137DB0F1BD1CEC0BC945, CC024D30F19EAA3CDF66E51246FC3225 + 20: F2D61A0E214472663F5F41C9D66EDEEC2F7C824A, 9706F273AF680AE2537D02BE41A2C980 + 21: 30F76A83CF8010DF0F49F73C06435E0C5D85EDC6E3, 1F18354A73BF506D229369836855EFD5 + 22: DB9688FB58EB83AF06A579CE56FBC75D93412790924C, C9DD5350751CFF0AB1A8910AC1898E08 + 23: CBD64BAB16852F40FB00D9FEEF5365C773CA14B77EF5E2, D6A02105B1BD018A5BCF47A69803248D + 24: BDCE2AA8092D4790041750DC922F2D6AA12DB3F41A547C7E, 3DF09D758306DAE21C3AAAB3FC51623E + 25: FDFF0AFA4D94CB3019AB27234259ED225B1B3B0F2BDC32CDD0, D64E69725D638D9F0F90C44C6BF51722 + 26: A9D2CC4F7FB98D54A78293C64C2A41CA19CC1F7B9970F3437AE9, BDFC6B10DD012BA057CCCD40AE14569B + 27: 81FE813C4A6A47D34F146DD943092940ECEA77F85339A219B6134D, 5F44590AE8CDF89E13AE2BE4D32AB7DB + 28: F618779FC6E6F5B7EE3FB4E937097E6A122B979E3DF837F72A8FA3B9, 00F0A3B4C67F68590AAA0BEF2D399D1F + 29: 0A8AB66D218268C9181DB8C6EF542AA4B42E53E4623E3385723024CC3A, F28D7D86317D2F509561DD3392F3EF3C + 30: 9CD50C94ED5391BED5C8CE2A07F8955744B275B6C5E5B6F453A5E6185C03, 048E889FF70729C55582003ED6169E0C + 31: 1CFD6D8EF6F44265703544AFEB2BBA2A067BE8DAB412E071B66B70E357238A, 0A5BB055E00D42F4291CAB3813FC2946 + 32: 8E6E6433E4FF879155E0612F17EFC00AA8D5236EFAB5D9D6A912898F3124B588, EDF81BB73FF9288F315B988413432823 + diff --git a/notes/gcm_tv.txt b/notes/gcm_tv.txt index 79d3b8d..d7d46d9 100644 --- a/notes/gcm_tv.txt +++ b/notes/gcm_tv.txt @@ -212,3 +212,38 @@ GCM-anubis (16 byte key) 31: 72DFB9E91A78EAFE758B4542206A4A957B4523A58428398C11BCF2AEAE1938, 307D0B876130E82804C1167E03B69B2F 32: 7275C6EBDC2680DFCB73326A987D2FBCE83E40A9AEFE6351CFDA7251A6FE10A6, 895E6EEAA9BD88594903325A063CA45F +GCM-camellia (16 byte key) + 0: , 477650012AA6284033E1B85321EEF770 + 1: E1, 2E95EDCCAF3264B5178CD6ED0F2EDEEA + 2: 314B, B11392D89769FCEEE4B8170F8ED1F98A + 3: C7CF73, D79DF351C70A7DDA124355490EAF71D2 + 4: 3C369E92, B9345C0A6E509B10A1245F42BAC2070C + 5: 6F5634E263, D781B8F61B104158D822CD04A9FE7998 + 6: 299A167791D4, F1707A7EF00815631F79AEF3F3CF2599 + 7: 61C5184DE525F1, 615524D1CB7DDA84EE5B91647449AC8E + 8: C724705EF011DCC7, 5F78479065F8EE14C07C909F12AB9289 + 9: E1466E81002EF30043, 143651985FB01E9882D923615DA0587F + 10: E252A74713C90B153C30, 6166F77FBF04809553936EFF256593C1 + 11: FAB8BC72140D01EAF5F015, 1756C4D44B412F078B0476DAD3711DA5 + 12: 774DA96F528D758DC098157F, D169FD2BDE61020499B482786BF14046 + 13: C15708A21A56963D342CCEE9D0, 9C3416DE3CCBB7BFDEB4CCB0A0B767D2 + 14: 52EDEAE7AFC4D3C77E7ACB31B1AE, FA98CD47050F12F7A95AF55EA29BB57E + 15: 48ACDD91D755D9F8602DB17F41C1F9, 5A0CC2D372501E38ED3EC44BDE185E0B + 16: 9385B12D8EB0F0507BA643958F4EF377, 8FE23300220D1D2A8DEFF7BA69CC28E9 + 17: C31A9198E85864D8BC020B5F61FE1ED596, 9865C80843631D26B02A0369B5FCDF8D + 18: 4D159E1705839309E31C95E12A5BEA81277C, 0A8907002FEC82725530B4FC2BBC2B82 + 19: AB6B471DD358000FA8C489B06F448508AA7051, C87EEA614DEC03B4EE2724F6E1CB70A8 + 20: BFB0EA4F27CEC231815F07ED50E3AE8156172BAC, 09244CB698982CDE8C9030FC309409A9 + 21: 259FF16BCC807B01FE4870161CD0F06A92DBE886FE, 86A9D502C6BA9804D26EC4B8CA419090 + 22: 01FCE8F5DBCC4B2351A3319EC1737A84E8D3C959CE42, F337E99A62357057BB508398443E1960 + 23: 114602337E1655C3965EDB3E7BC4428F7DAD1485D5FF05, 67287E94DEB5D255D512E89508E85B47 + 24: B0B95F745C9433B741F8EB6EE36117C979CA65E6B9D8E595, BB75BABB42D9C73C4CCF8F9E1F9CCE1D + 25: 4DE486D47096B3EB1AD2C6A6F9248DA1FA2623B339E787DCAA, 7BED5402F5B5AC690488C6830D484FD8 + 26: 40C5770A6B0A5C14AD168C262BBB3BD512E12654F6F57B13280E, 3E123FB667B2187D2DEA581C1E1EAF3E + 27: CF20B534737142322FD08B2AC9602F4C447BDD91BD00FD820ADE78, EA8D30E6CA004F31CFCCCB47F0BF7A62 + 28: A61AAC29A28EAF0192E3B4646E0421D254B12C3D11F491909D18712B, 92B39BFF07D93AEDBA3AECB974859A17 + 29: 6782FAA7F0D18AC1989FAD68C5C2258742EC691ABE47F744E6E795FF74, C63AA120F2889C6996636DDFB15450A0 + 30: 79CB100D91BC41C73473723F5069B5D38C7208848B885E729A9604BB053C, 195D327AECF7F6D2BB1CFE019A0C2C0C + 31: 7753C753224B63EB00E2773D5CBA726F2B2AE54097E13A2CAAFBAFE7F53791, D344D335666E06DC87E8E30E6C141DCF + 32: F8BDD6BD3B27237424BB4E7871F9D893D204D8A4843E8AAE155B844716E2BDD7, 40806139E1038B68346931AFAAEEF1F4 + diff --git a/notes/ocb_tv.txt b/notes/ocb_tv.txt index 6429228..78195e8 100644 --- a/notes/ocb_tv.txt +++ b/notes/ocb_tv.txt @@ -459,3 +459,38 @@ OCB-khazad (16 byte key) 15: D870479780CC5B3B13A7A39029A56F, 003D3FCD31D497B5 16: A47BF1218AC86A60F6002CE004AF5E50, B4EC27091D5DCD58 +OCB-camellia (16 byte key) + 0: , 6972CC27A9711EAE6654851AB8E0C53F + 1: A2, 208D783961FD532E14376B4EE904FE52 + 2: 1177, C7CC74015F7EDD9A72F7435494D8A050 + 3: 0F8502, F1A708AA0F485A554E2E76592CD9D7F4 + 4: 9986180B, D47186A8B539F890824DEBA223861ACD + 5: C0FF4519C3, 4430A9453016E4974CFB5380A1F3E95F + 6: 2AC54E3E6A0B, 6E320BE8DAF4BA0462A57BECC574740F + 7: 846053E1A37A6A, 5B91B680B92517781DC362C2F3E144E4 + 8: CCB09ECFF76EEE2C, F91E7E245F4C8A404F3ECC7DE49261C3 + 9: E049E2AA271388106E, 8C6981A160D831F4DC57FACE5ACCF006 + 10: 761782341D52BA8AD12F, 672DC4B06DBBCED80381CE4845757F0B + 11: 92AD781DEC4549940265C6, DB04CAABC54E71FE1A9C41DF1ED5C52E + 12: D507B77EEE9BE07EAD700143, B3EFCC0B27DC85166E04E7BC39E45C58 + 13: 5AA1AD6B9CAE3001D4C1CC4048, 424D8A22F7B9ADA30AAC0C1D3D4E77F9 + 14: C69E96F7A4B9A6F0F2C7EFA72C26, 678144F802AE9DD83D11877779B48972 + 15: E2596B3FE48EF6EC50D857C8B4E3F4, DDB3BD2B8AB2FA71C7F56C8E57AFF2C2 + 16: D81664A002E03A75E08CF16EE7670E97, B56A0B0955E15E62C557C6E66782AF4C + 17: A8F2696A972A87C784FDC775439470D822, 36E3AD03CB18002A17D49E466CE64814 + 18: C2B537D807BD1ACA734AA072D9C2B836F588, 449B05D145666D1E5A92E204FC3507D7 + 19: D5418F1288BFA7D39D23B3C6ECF797397D3D44, B0CFBA612544B8AB159E9D4AD1FFB3D4 + 20: 2F9522460182291C6F264308E0363B9FE312E517, 1EE4CB38075B67463FB9DE26DF9D581C + 21: DF2881568BECA504A66E4B15BEA58AE6E99D0270E6, 3283D46803FC33098BB262FC1D2B2157 + 22: 4B0083A4CF7E166C8466A5B991AD0CDF71F9DF010EE7, 7C91D9A5DF6C76CB02D83D8C7F3D8D07 + 23: AC0457474B4193647D62906BD08D8C8EB32BE151555B68, 0A448FF3C468D7CDC945724172CEB66F + 24: E6E7786EBECDC296F072CD66C89141C700DE2A8B5DBF6549, 68ACCB5FEC04717FB21FF3B46A34BC74 + 25: 860865770047A9798D90C9365E9C9F8210CB804D785D65E2C0, A58F22FFC4CBFE3BBA451BE4B3B95723 + 26: F157588B4F98D798E6850D8F04ABF9905C1BBB2D055ADE1EA424, D6960C1EA6DAF225366374333D38EBDB + 27: DE3431977821BC861CD88E4236BCAAAFFE3C894607498FB8D68746, A3D23729464BD38338F4AC5B4D9F5C81 + 28: 3F2F0AB546E118B76B937D539806DC02D02A5D42D64926A9E1101D66, 3C0D2D23F5DAF7D36DDC0F87B4163F42 + 29: 3F9FFAE1D7BC62BB80A2FA2728FC33FF02E26CB9F52EA8D03FFE95A49A, 96B45B3F946E629ED974EFA7B66F5DDF + 30: A398B66C8425CE9E8A6BF5AB900CEA1EAE811E06AC7BC0D69A53FB2015BB, F83411C72B7DB201B254565D1DD8D1BF + 31: 9C760ED6C10A80C52F092ED20AB1D03A52427B6235F3C7FE7541033AACDD74, 8AB98FCA89D1245B177E0AC06E083024 + 32: C38F260587B3BA9919601BD0A56909FB36ABCEB8968D08DD6B74F1EF5ED7065C, E357D0D56124276790DACA38D95792BB + diff --git a/notes/omac_tv.txt b/notes/omac_tv.txt index 56d8da6..9f8f337 100644 --- a/notes/omac_tv.txt +++ b/notes/omac_tv.txt @@ -459,3 +459,38 @@ OMAC-khazad (16 byte key) 15: BCAB623CAB7AAA23 16: 9BCEAB857596E478 +OMAC-camellia (16 byte key) + 0: B5664C5148FFB45297703BCC46C19E4E + 1: 126EC31A554E8B3B635DE4617092ECE8 + 2: FD57148685F4AA85AF48017AFD72B410 + 3: 1427607464A408C1775B4036509E9659 + 4: D8F5A7112CC8A9DF28B331FE7184BF08 + 5: 0E29B0F09409DABECF645F05C4A5717C + 6: C4155442FDC29685028AF4AADEDCC266 + 7: 92356ACB98AE2EDAABE0D3ED0C90772B + 8: AA3C828618F72258D91BC391876776C3 + 9: 189458BA4D98E85802E7028E5C57A25F + 10: EE652D70328DA00D63B42A5E85D70E63 + 11: F9D1E5F8E1539F2D657A047755CD232E + 12: 56FF5979FD3DEAD90EAAAF79A9AF1DCD + 13: 7E8B39D459D5AB449A8C5917B0CD0C4E + 14: 822D9B9C434C6FF7F0E5A25281740A91 + 15: 654909D2836CCB06501CB359C717C1B9 + 16: E8996FC89D47C91543B7BA3DC1C34B73 + 17: DC29D51B2372DD7564CF56AF8702924F + 18: AD74D081197644DFE2723CABC991B1AC + 19: 26145C6DF074CA53125F6F386FBEA373 + 20: 72C6C760A70FE410FAD113D8BE711D75 + 21: 099D3B5802D7FB699B6B8F031BE10B3F + 22: A9D5DD3988A18AA7BC6F9C050BDBE8D2 + 23: F7E99E4C3C7D127FF04FF325F7B06997 + 24: E99A2F7547B5C6EDF3BC2EC2B8F05198 + 25: 46C42FF49FCCFC49FBC99FEB08FEF10A + 26: DC349D600A754F73ACE6A7D2D00D3551 + 27: FC2E5434ABBA44ABD9D724A9BB6CA2A6 + 28: BA923927BF0074AD73BA8A6914194297 + 29: 7DAB39F8D7E5CB93265568E6713C7CCD + 30: 9F60259B759B68E1C8F89CC36C7E170E + 31: 7D611F8BFEF0491CED8815C0E3D4CAFF + 32: 31E04DE5F9D1403C660E39891DE0D8DE + diff --git a/notes/pmac_tv.txt b/notes/pmac_tv.txt index 38ed683..a7b148a 100644 --- a/notes/pmac_tv.txt +++ b/notes/pmac_tv.txt @@ -459,3 +459,38 @@ PMAC-khazad (16 byte key) 15: 93098DA8A180AA35 16: BACE2F4DA8A89E32 +PMAC-camellia (16 byte key) + 0: 33C03F6AA205F3816A17DA92BEE0BAD2 + 1: AD1EC293DD032511579235B2F29CC909 + 2: E71363EAF5A311DCFB035C69BBCE5DC0 + 3: 22661D6CD3496FB5C9B3D89FC62E3981 + 4: B142A96AF9C481B61E55B7B5896847C4 + 5: A286C0769989120F8A31A8DAD7574F22 + 6: 09E711382FDB6B938C802D11A66EF657 + 7: DF9ABA4F5CF5B0647F045C3AA631BB62 + 8: 499A8F68DAEC7FE56E64DB59B0993741 + 9: AFFDA4F40A1BDF673EE9123CAE321F16 + 10: B6F2E39D0126AA85D9152C4457365235 + 11: 2922AAC2FF4F0B77DEE4B3E28EF5094F + 12: 369D18F985D18B5ADDFFFC1151DE6BBA + 13: 1B7641D1A38C4114EE829B7D25BF0EFF + 14: DEF9092BA185FD5238A25C6FCF410C52 + 15: D59FEE8047D64032329318DC7A2277B8 + 16: B4561A4A092E031F8FE998FAC87F9BFB + 17: F27EF7D0823B056F692BA369D1B2E7B4 + 18: F62C4F7B749CF31A6F5485BFDED7EEBD + 19: 22BD3AB334BE6E04C84D6197FF69CAE3 + 20: E617D108BED8E9ACBA55FAF60863F8C3 + 21: 0DB60AE0725D37855F3AF1DDF78E98EB + 22: C76DD5A075AB30AB66FC448BD19B6588 + 23: 60231366598BEB2D16D33A1A8019B9A1 + 24: 247E925C96064801490A1D062A0C1F18 + 25: 1C1081E20DE3BE26FF24BEC3DFBA9BF2 + 26: 3B16562B3CD862C00A03B7ADC99E46C5 + 27: C1E8BA560851254640D523A0CEE846AF + 28: C36E8CF324A0A4EBC6C76EA01CDFD158 + 29: EAED84E721777F5E30184E496DA2C0FA + 30: 6655CA0D8741440212AA0DB218E5C7FE + 31: D5C0143E1BA233BA5F862EE6E11A8F58 + 32: C8DAF08BD68F4AE401C6663393C257CB + From 6dc089015adfc4f66679b6b680476422bd6b6c01 Mon Sep 17 00:00:00 2001 From: Patrick Pelletier Date: Thu, 6 Oct 2011 22:43:42 -0700 Subject: [PATCH 5/9] Fix LTC's bug in PI1/PI2 of Noekeon. Add vectors from BouncyCastle. --- src/ciphers/noekeon.c | 53 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 6 deletions(-) diff --git a/src/ciphers/noekeon.c b/src/ciphers/noekeon.c index bdbcb2a..02869a7 100644 --- a/src/ciphers/noekeon.c +++ b/src/ciphers/noekeon.c @@ -59,10 +59,10 @@ static const ulong32 RC[] = { a ^= c&b; #define PI1(a, b, c, d) \ - a = ROLc(a, 1); c = ROLc(c, 5); d = ROLc(d, 2); + b = ROLc(b, 1); c = ROLc(c, 5); d = ROLc(d, 2); #define PI2(a, b, c, d) \ - a = RORc(a, 1); c = RORc(c, 5); d = RORc(d, 2); + b = RORc(b, 1); c = RORc(c, 5); d = RORc(d, 2); /** Initialize the Noekeon block cipher @@ -224,10 +224,51 @@ int noekeon_test(void) } tests[] = { { 16, - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 0x18, 0xa6, 0xec, 0xe5, 0x28, 0xaa, 0x79, 0x73, - 0x28, 0xb2, 0xc0, 0x91, 0xa0, 0x2f, 0x54, 0xc5} + { 0xAA, 0x3C, 0x8C, 0x86, 0xD9, 0x8B, 0xF8, 0xBE, 0x21, 0xE0, 0x36, 0x09, 0x78, 0xFB, 0xE4, 0x90 }, + { 0xE4, 0x96, 0x6C, 0xD3, 0x13, 0xA0, 0x6C, 0xAF, 0xD0, 0x23, 0xC9, 0xFD, 0x45, 0x32, 0x23, 0x16 }, + { 0xA6, 0xEC, 0xB8, 0xA8, 0x61, 0xFD, 0x62, 0xD9, 0x13, 0x02, 0xFE, 0x9E, 0x47, 0x01, 0x3F, 0xC3 } + }, + { + 16, + { 0xED, 0x43, 0xD1, 0x87, 0x21, 0x7E, 0xE0, 0x97, 0x3D, 0x76, 0xC3, 0x37, 0x2E, 0x7D, 0xAE, 0xD3 }, + { 0xE3, 0x38, 0x32, 0xCC, 0xF2, 0x2F, 0x2F, 0x0A, 0x4A, 0x8B, 0x8F, 0x18, 0x12, 0x20, 0x17, 0xD3 }, + { 0x94, 0xA5, 0xDF, 0xF5, 0xAE, 0x1C, 0xBB, 0x22, 0xAD, 0xEB, 0xA7, 0x0D, 0xB7, 0x82, 0x90, 0xA0 } + }, + { + 16, + { 0x6F, 0xDC, 0x23, 0x38, 0xF2, 0x10, 0xFB, 0xD3, 0xC1, 0x8C, 0x02, 0xF6, 0xB4, 0x6A, 0xD5, 0xA8 }, + { 0xDB, 0x29, 0xED, 0xB5, 0x5F, 0xB3, 0x60, 0x3A, 0x92, 0xA8, 0xEB, 0x9C, 0x6D, 0x9D, 0x3E, 0x8F }, + { 0x78, 0xF3, 0x6F, 0xF8, 0x9E, 0xBB, 0x8C, 0x6A, 0xE8, 0x10, 0xF7, 0x00, 0x22, 0x15, 0x30, 0x3D } + }, + { + 16, + { 0x2C, 0x0C, 0x02, 0xEF, 0x6B, 0xC4, 0xF2, 0x0B, 0x2E, 0xB9, 0xE0, 0xBF, 0xD9, 0x36, 0xC2, 0x4E }, + { 0x84, 0xE2, 0xFE, 0x64, 0xB1, 0xB9, 0xFE, 0x76, 0xA8, 0x3F, 0x45, 0xC7, 0x40, 0x7A, 0xAF, 0xEE }, + { 0x2A, 0x08, 0xD6, 0xA2, 0x1C, 0x63, 0x08, 0xB0, 0xF8, 0xBC, 0xB3, 0xA1, 0x66, 0xF7, 0xAE, 0xCF } + }, + { + 16, + { 0x6F, 0x30, 0xF8, 0x9F, 0xDA, 0x6E, 0xA0, 0x91, 0x04, 0x0F, 0x6C, 0x8B, 0x7D, 0xF7, 0x2A, 0x4B }, + { 0x65, 0xB6, 0xA6, 0xD0, 0x42, 0x14, 0x08, 0x60, 0x34, 0x8D, 0x37, 0x2F, 0x01, 0xF0, 0x46, 0xBE }, + { 0x66, 0xAC, 0x0B, 0x62, 0x1D, 0x68, 0x11, 0xF5, 0x27, 0xB1, 0x13, 0x5D, 0xF3, 0x2A, 0xE9, 0x18 } + }, + { + 16, + { 0xCA, 0xA4, 0x16, 0xB7, 0x1C, 0x92, 0x2E, 0xAD, 0xEB, 0xA7, 0xDB, 0x69, 0x92, 0xCB, 0x35, 0xEF }, + { 0x81, 0x6F, 0x8E, 0x4D, 0x96, 0xC6, 0xB3, 0x67, 0x83, 0xF5, 0x63, 0xC7, 0x20, 0x6D, 0x40, 0x23 }, + { 0x44, 0xF7, 0x63, 0x62, 0xF0, 0x43, 0xBB, 0x67, 0x4A, 0x75, 0x12, 0x42, 0x46, 0x29, 0x28, 0x19 } + }, + { + 16, + { 0x6B, 0xCF, 0x22, 0x2F, 0xE0, 0x1B, 0xB0, 0xAA, 0xD8, 0x3C, 0x91, 0x99, 0x18, 0xB2, 0x28, 0xE8 }, + { 0x7C, 0x37, 0xC7, 0xD0, 0xAC, 0x92, 0x29, 0xF1, 0x60, 0x82, 0x93, 0x89, 0xAA, 0x61, 0xAA, 0xA9 }, + { 0xE5, 0x89, 0x1B, 0xB3, 0xFE, 0x8B, 0x0C, 0xA1, 0xA6, 0xC7, 0xBE, 0x12, 0x73, 0x0F, 0xC1, 0x19 } + }, + { + 16, + { 0xE6, 0xD0, 0xF1, 0x03, 0x2E, 0xDE, 0x70, 0x8D, 0xD8, 0x9E, 0x36, 0x5C, 0x05, 0x52, 0xE7, 0x0D }, + { 0xE2, 0x42, 0xE7, 0x92, 0x0E, 0xF7, 0x82, 0xA2, 0xB8, 0x21, 0x8D, 0x26, 0xBA, 0x2D, 0xE6, 0x32 }, + { 0x1E, 0xDD, 0x75, 0x22, 0xB9, 0x36, 0x8A, 0x0F, 0x32, 0xFD, 0xD4, 0x48, 0x65, 0x12, 0x5A, 0x2F } } }; symmetric_key key; From 0e143a5cfecd5bca791beb6b299bfc3bde9114a9 Mon Sep 17 00:00:00 2001 From: Patrick Pelletier Date: Sat, 8 Oct 2011 03:03:01 -0700 Subject: [PATCH 6/9] EAX-noekeon vectors from BouncyCastle --- notes/eax_tv.txt | 66 ++++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/notes/eax_tv.txt b/notes/eax_tv.txt index 40135dc..02df116 100644 --- a/notes/eax_tv.txt +++ b/notes/eax_tv.txt @@ -352,39 +352,39 @@ EAX-cast5 (8 byte key) 16: 70CABBA983179106AE7FCD5F1F31D5C3, BF7F9168F4F82F56 EAX-noekeon (16 byte key) - 0: , 556805EEA595CFB9A30FAD196103D7FD - 1: F5, 0A7DAEDFB656526CEF4DDBA8087A227A - 2: 7B8C, 249895D79962D5B4D18FE07366281B72 - 3: ACFF15, DCC489D24832EB106F576AE6B6EB957A - 4: 08ADE7DB, 0D3215999E9960EDAB29B78744C7F139 - 5: 66139213F6, 505E1E7141D043E903C26EE0959EEECD - 6: 078B79F880A8, 35B7EB326A55E50332866EEDB682EC20 - 7: 2809E34D9667D4, FFDEC555F68524A09A6ABACA372077D9 - 8: 93D267DE1EC635D3, 4FF3561990A56E4B374618722EF850FF - 9: F377A4D93FF32F4A51, 91D4070423A90FC54D305169C03F49ED - 10: 6244B717E082993EB7A1, 2E3A8A354AFA9473667ED7FDD46BE9FC - 11: E917559625D25E6E5F2EDA, 19295C37A70314CC9A1D11FDE8D23C92 - 12: 1E6DF2EE112A893AB14DFA92, 12C4A89D4CD65F8116A03A135AFD3701 - 13: 47B18CD762E011770E203CF605, 434909A97E118B20D3AEDC79AFE33A9E - 14: 72D9A1A7DA6F33D5E0B927F9F32C, 779C23714FCAA2B2321EC7FB5B03E222 - 15: DA8B830FFCB3DB274807F780D33240, EDC2F1C8A401F328A53392597730B007 - 16: B53DD2BB840AD933D36A7B5FFDCCFBBB, 4EC0E6D1F916BF633869239B672B37A1 - 17: 42936BB9A936C30408660855F4F47F3314, F0DAA6DDA15585E1697ABBB4790B15B5 - 18: 00372E47F5BA016F1B2A1E680B76AB02052A, CDBF3D241BF7FF96D3DFBEDDB872E901 - 19: 8AA236B0C8BEF6F67A97C2DF90628F6E5838FF, 731DCD61F7F26004C03519F9500EA824 - 20: 55338647812FC9D86CBDDCED7120268A4D43F8BA, 0E61B3C835CAD95FD49FEF002C014E72 - 21: 435820B28E52154B47A04D5E635D8FE37FA47FC985, F6A96DCE4917E8D7C610923627E80970 - 22: 0D30C15B6FEB4A48B14DD15D41A4B25D442AA677B25C, 28E15CCB74AE992C68BDDC8D87802050 - 23: D9D701F9AD6B0E13D2CDDA15A5194E7CE8BD2C02137391, 2DB9A15884E9C996C3D6B5BDA44B9598 - 24: E2390AC5CE10CCFBC72106A52C7F180CB477E3C193CBACA8, 22D3F7DCD6947EA4E78DF57A8E1A9A59 - 25: ADEFB7D9500658D34996AF6BE6336CD78891064EA1DB8E9785, F239D67D039A15C620A7CD4BE4796B3F - 26: 89964C90ABF54A6DF9F13C3681E70C702D80A17BE79F8160F30E, 6336F729ECE1ED7368669D75B7E2DCBA - 27: 576B2813CECDA4F905BD5D58349EF070FF41B7EB6BB2B01B061B0B, 125324CBF2ACF1011A44A99A11EC8AFC - 28: 430B957481748519A60494F0B5F698F34B1A8235B00AC0D1F0A4442E, 1E80A7FCEBBB8E1E12D6831906154485 - 29: E781BFE5FCDE0BFC056CC86C4A0B9DD3B815BE8CA678204CF47289B5B5, 190D5AAA9EC1CB4CC86FACE53BF1201B - 30: 78BFAC07A9B7B2AE9329BF9F9BF18A1A49DD9587001EFCA00E9AD9752764, 4FB5ECBEEB0995C150EBC66508FA19C1 - 31: 7D6C20694109DE21F7955855A8FF832347518DD496C2A114DF142C68ACDEAA, B25D4BB34056DC091A7A3950D46C32EC - 32: 3E1E4395DEC1AFEA9212B95F37E679B6E2D14DF23C5DE49018C2C8038CC4AD45, 9A6DE7BD41A21918AD504490EF4E581D + 0: , 5CB584CC68025F830B42371B9CCE99EB + 1: 65, 69D866C00E11E4311ADCD50AE2F91D03 + 2: 80D2, DA0499598F478A7FF53324908EB4DC74 + 3: 86EFB4, 7DC1556C65F9E7CF2E3A357B38E326D1 + 4: 87387A77, 7B58F421766918A179A999520A6E3781 + 5: D18B9788C6, 924A2FF178FD06BF292A605FCB27BDD9 + 6: 0075EC03ECD1, 78F553564A25A574E6A4857778A2DB43 + 7: 5BF96EC79C2E88, C49CBD1C4F631B35D5A3B764251870D2 + 8: 70DF3B35F6D9B822, 42351BF5C947AF7A0E1F852199B5840C + 9: 2E53748525AF367861, 4986BC390AA0DA1E4E78CB2148A2C513 + 10: 05DE8BAD8C975ACECF87, 1C0F1C18FB8682D76AF9E48D3547D88E + 11: 8B2B1D70F6A74059503F42, 839EE120ADC8BF08CD9A7DF6393D1E51 + 12: 9D7F92F08953B5B300A7410E, 603A43432DAB26882797BB5AA7A75D28 + 13: 4CA551DDB4BBCFA45BF71C49DA, D2743508826E3E39151F21C0AD81C8DC + 14: BAE72091E78013369AF5D0294AC6, 3F0D391BF01C3BA116A9CAF50DC28307 + 15: B037AFB65588B95BC86E1430E0746A, 2399A4C31F55310AE2C4A2FE3379C74F + 16: 842F0B29888C43999545D29CFEFA58DD, 9B6E4FED2A6BE59DC2DFAB407D2FD124 + 17: 86F7DA57E5C9DE9C88EFC1ED0CA61F76A4, E7278F365289FD0C484A166FA9EDB801 + 18: CB94AD60C1FBDC9868DDE0D4674251A644B5, D857CE47FB963DFBE7983D183695803B + 19: 5A0B24FF167EB133808A3FBF89D9895F30BE1C, 488362E61725BE723CE892F550AF028A + 20: 60D43A8C29F1714588672847FA00DE771F2C3D36, 25D7CEF55A2A33953D9B7739F9C98C12 + 21: CC47C891FAB841800F0AC0F746A257062BE9AF49F3, 220A3EE618FB735B9E801F9B3708D4FE + 22: C8E0F9AF7A7C62B6C297B16025DA55BAF5BA13F6ABA7, FA16192047892BC2472AF1DBD95E0D6F + 23: 731BDA5BEFCBA427E715839C21E4A176D0E28F042C3089, 4CBE4BB916EEE773B9299FE2FF0BBD81 + 24: 62C5CD4F7EF81EA4E58847F3F715FA9E9EFB32059D70BA88, 090E92CEED8FB5D472CCDA11363FC904 + 25: F7FD159377B130633F93B4D18BE68B0872905BDB205025E4FB, 6F335AB81AC8507D5F4018F86FB0230E + 26: DC374E5B40E8F4614C2BE685539C97825C7A972CA2BEFF338208, 719F6C042DB09A08C36D92810FCC29FD + 27: 1050C71D491237EF77F4F043D7EDCBD41DA0BC155F1CB65EAA1D5E, 44E7CD8CEB27584340270F3CADE1A083 + 28: 8AE94A4FF500DC889436866D90B8E150B63EDE74074912029FF9C3A0, 3C96328BE53423BEB32FFE0D05F9B71A + 29: A801D1571411396C0727B132AEFE114D7BD486DA74C549E7661F2D8B87, DD6A443497AFC9EB14FE6EE9069AD580 + 30: C79DFE19B0199768EFDD29026863C644A0ADBD14A3F3866DE74EE7AA2E0C, CCB313FE30CD4F04BB3548808FEBAE6E + 31: F658ECDD95F960D7C68D03F9BBADF066F8B9CE8108867C7DEA305FF4124AF2, 8AE64618E77A2806B53E239927787ACB + 32: C92EF301771E89D5BD3B901B380EBE18BD2A193B5989092006E7AC15345AFD34, B450AC584DF13D9C8BDD32DA686A1AF9 EAX-skipjack (10 byte key) 0: , 85F74B6AFFB10ACD From e7b4705fca17321317f4ffbf1e1adf838b8d22ab Mon Sep 17 00:00:00 2001 From: Patrick Pelletier Date: Sat, 8 Oct 2011 03:05:29 -0700 Subject: [PATCH 7/9] corrected Noekeon vectors --- notes/ccm_tv.txt | 66 ++++++++++++++--------------- notes/cipher_tv.txt | 100 ++++++++++++++++++++++---------------------- notes/gcm_tv.txt | 66 ++++++++++++++--------------- notes/ocb_tv.txt | 66 ++++++++++++++--------------- notes/omac_tv.txt | 66 ++++++++++++++--------------- notes/pmac_tv.txt | 66 ++++++++++++++--------------- 6 files changed, 215 insertions(+), 215 deletions(-) diff --git a/notes/ccm_tv.txt b/notes/ccm_tv.txt index 57969aa..aa8f9e6 100644 --- a/notes/ccm_tv.txt +++ b/notes/ccm_tv.txt @@ -143,39 +143,39 @@ CCM-twofish (16 byte key) 32: 839A9BFA1D3CA37924BC6648DED2291FC61736A3638906D9C5DA28A66AA684AC, CD07B83C8E0C3E6FB4115A149BDF6FDA CCM-noekeon (16 byte key) - 0: , FF73C6775C61DB36D9B5EEC812091FF7 - 1: 5F, 7D2AEA62A5202E3C4FBE05F33EBE4CC5 - 2: 0EA5, 312ED15FDDAB6EEEAC6AF9BE9CE698FA - 3: 968F95, FA1AD58B85B93B5A4B5096C881F773C3 - 4: 9A8F4069, 8911063ADDF79E27D9DCEFF3F440E6D7 - 5: A5C0376E27, 9553F44B0BA8039527F8E05CD70AD8B0 - 6: 5B097736F3DA, 405B7EC685FC94903B36AC8E700558B8 - 7: 616810AE303B2C, 64C95A2DF5263F7BE6D1F9F3CF88EADE - 8: C8D69A2E1170532C, 073A7E426266237FD73D8109F55AE5D3 - 9: 3E42CDB7DA4A72F2E0, 48675EA4302CA6BFE5992DE96CE43BB3 - 10: 88532CC1F3E321F66D64, 528B3516C6D9A4B5390DD32C2A2E6C19 - 11: 9216A8FC9A961E7F602F7D, B03047186B783844F5B6757057576B38 - 12: 89B0858D4FDE6795EDE19CCC, F4530A2DCA823307AEDE5AF34E5C4191 - 13: A676E20BB0A5E84FD0B9149BF7, 11B823B315DA93B0E15780851526D4BD - 14: 903AD5C108C43A80436FE2117EF0, EB1C79C7DF20CE2967A99783EA8D6EF8 - 15: 81774C36F46F67159B7FFC24C080D7, 2E9E4812D9A92977EC34922782B6420D - 16: 63FD1C3F692D64B2DA3982FCD474A5D4, 04171AE84857713A9BABBD4564875D33 - 17: B1BF6AD99F83C9173C6C021ACA74C5431C, 38D17D4F6AA3C24B8F3B465EAACE0A1E - 18: 0948D1ED59F07DE44A96A76E05B0B6F7C309, 1848D886FCFF35E85B0DC3CBE5BEE7FA - 19: 3458E5911222F9C555A1054C7D9748876DA39A, 584AFAE72FB6065A74BE016CF39D2E86 - 20: 641F3867185D0605E9D666AB605187E75A1299EF, 6F9332E6FB5EA0CE811E3345593CD163 - 21: 0676622D07733EF31A765AAB1E713FCE329277FB16, 88547474050FFC986930CC04BA8A03F0 - 22: 79861EC2FD2BCC5C12B69F30A1575FC66AC1405281BB, FC68EEAC8F39ED69D312AEABF8000084 - 23: CB2731835A576F7F8F2C2786D786FB6186E2F85D89DA3B, 3ED9E95BC51CF6368E6EF63667B35BD8 - 24: 3CB1C02FADB6DD5483BC5D3C03D944102CFCEDF82B913402, 1C3F60C989A6FBF41A7AF4F29115C334 - 25: E69FAEA5E3D0B76EF9E70F99C5918D934D0E9836F248DB9EEE, 7F1916B2CF7C9A5E3F5581D365ADBD31 - 26: 36779AD755A9DF2DC3C5824DC2F7DD4FFE038628A4E1A1C33AE7, 2BDED3703468D267F8AB7EC0AF8F1E65 - 27: E9D325646A41EE5AA7DABCDE98DE83440A7DC02714BA0AEE017E22, 972F4D7832F3371C60DCD04A6DEDEA15 - 28: 0FAAE3F6028A28A80BBFE71FA7AA9042E538B41A0D514D6EB4EE6029, F7B3925495E260249ACC6E1CBE956BC5 - 29: A9CC39EFFEE354C0E0579256AA85CBAA7B10E670DD3828A7A05DA0F49D, 28D9D20187AFE70AD9DD16759F0EFEB5 - 30: 032F4BBB4EBF2E65758C541FDAFF2107DDBED399739849F8EBB41AF9711F, A3436981ED637CE5EEE01B380C46ACAD - 31: 7B321ED831CE96A603668E3E74BBC7453749A03D04A1B38E95966E6CC488F0, 88D1DADF2C1EE0BA579D0A8A90C1E62A - 32: D862B0BD0E2178AE05AEFB14F34C791547C5956F1F3B5BD525926578DE383A94, BF32CFE059F27222DC55D3E7CE7C5F10 + 0: , AB924F56DFA05F4E8628C14111272E5C + 1: 08, 8A76DCADA7CE53A0F4577E67B0B958D7 + 2: B602, E0BEAC0B1E95C4570A823295E7517C25 + 3: 50E4B1, F874F8B5F2806F64AE0AED151821C638 + 4: 990F28F6, 9AE2D6D5576D1C4722E2E3C11F5D98FF + 5: 297104DD8D, 7A245E5F5E0F4C3466E16D5EF2B96D80 + 6: 7B6E9776EF05, 6B540166DE5E154D7A3A34EEA3FAD5F3 + 7: 67EB1922FAB0E1, 549F39F7C3CB17F0EA6EA9C75899BD55 + 8: 343E752F0F956C7F, 19CBB59CC4117DE6EB9924AB0CE2C9B9 + 9: 98A25FBBD87D8C1829, 6E3D4F0ED0C5B9161EB11AE9600003F6 + 10: AAA54C273F69638CFB54, 1192FCD1F9F543889F3607CD6B623AA6 + 11: 51B3F33EF8B1F38438618B, 8A704F5B003A21E4033ABFCC6C53577A + 12: C7E5167D81B23F47AE90DFC8, E218F7DD222CE31642CB06C329911CD9 + 13: B065DFE10B9C32F1B028AACE4F, 5EC4DE45C29C78D1CDDF2A6AC05BD53F + 14: B5AAF0ADCA03812F251C8A2BE745, AA353E20F65237279643D4CCC06150A8 + 15: 88AF734661B83CBA42FF983C260B63, 8F20A5190A218B8D392ABA1295CBF905 + 16: 6663AE30F79A110747D6678784330BF6, 142196DDD26668E08D196BCE0989AE01 + 17: 8153816C6E9C449B0439AD7892DF8C0492, 58B376CF240C37A08337C7794736838D + 18: 1611C22134C06CF8F43625017CCC65B6E305, C0443028C8DC5FB78F9350C4A8D1D32D + 19: FD2EEDDF2B20F7623D854FF4E987DB4196AB2E, 8B2CD7C72438F3EB071A33A7C65610B3 + 20: 641256A9C543D0860E609F1AABC36EAB515E29C1, 0E1A0FE82BB18BFBB3D13BEB84BA185D + 21: 437719619E96C3AD2080470809F7CDDEC3011EB6E9, E31934C5F0C2E4A04A4ED533A98C795C + 22: CF2B11E8660CC6E650EDDB2146B11F864E01B4C99DDD, 8647759347E7A4FD2CE8AC17AF4186C9 + 23: F339314695B539B715A7E5FB4799029CC133CEE26A2E86, 136274C51D9797986E92F9E540A80EB1 + 24: 38F843B9DA155D57166D310D85406E72FB382604C2EA4CE3, D1D7C6397599ACC2EB5CF1E06975B423 + 25: 29E497528D72C2BEBB12663F71B3981705BEF60A5451FAE4F4, 50F6C796CC00FE590E5E975206045702 + 26: F16F583E1FEBC78F5AB0FA61B5BC389D3C16B62ECA7C6A86BC98, B3643EA448ECA0511312895B63193516 + 27: 80347C7148FE1A5B078A27B3821DDFD93341F0351F4323EFEA6632, 8AF133E83EB316E615F1BC9DF241E23F + 28: 96939F79855C211B23E45771DDA2C3AB81C2672F94B87A7FFE46FC84, 4E7DEF91D1A102667BF55922B2531E6A + 29: 4789028961FDB78E8821A1FD9AF93BDB3CAC5C75566613E148B4439E90, 470DC4389C466AE79051A62F8122A1BD + 30: 7D2030ACE87827B785D3EFA3AE5CCB3DBF3A06DE4BED2D4FAB31DBE90F58, 55437514620E6B499C4FC01445FD2828 + 31: 276940205F5B869E40BBB064BB0DEF9D86D520DFCFE531A77A55AA78DE8709, F291F6A4D7EFF52E5EE47CC3ED7902B3 + 32: A75FCDC9F4E38C02E70D885353F5E3E7E13A14237D75EFA0D53B0C808EAF10AE, CABDB90052202C4EC777936B6097320F CCM-anubis (16 byte key) 0: , C85F41475E06F25682F855C3D45A6523 diff --git a/notes/cipher_tv.txt b/notes/cipher_tv.txt index 01c3023..bc76ea4 100644 --- a/notes/cipher_tv.txt +++ b/notes/cipher_tv.txt @@ -1647,56 +1647,56 @@ Key Size: 16 bytes Cipher: noekeon Key Size: 16 bytes - 0: 18A6ECE528AA797328B2C091A02F54C5 - 1: 2A570E89CD8B7EEEE2C0249C8B68682E - 2: 828F4F6E3F3CB82EEEF26F37B26AEA78 - 3: A3CA71833499F244BF26F487620266A4 - 4: 333ACCE84B0A9DE91A22D1407F9DA83C - 5: 224285F3DB3D0D184D53F8FFDC8008D0 - 6: DE39E2973025FE9EC1ACDE8F06985F91 - 7: 2F00F45A01B1B0AA979E164DC5CCFE10 - 8: 43775F3CBEE629EF6A9BA77CA36171D9 - 9: 1E6A67ABF1B6ACF59FB484866AC15A86 -10: 70490989E2CD2145730921CCC37F0A17 -11: 67B0DD0EA903486B1CB56591FCF42678 -12: 774AAB71FF28E49A30E1E718D98114E8 -13: DF4797990E1C65C9F6735BD967164D45 -14: DE2779DF26FC1B99F576ED4CFBAE76CB -15: A13AD17440641B3460A01175E3274AB9 -16: 1166499165F2A1196CA2DB831F264E77 -17: 35D24A385416CF2A44AB97A4AEC45E14 -18: D3D0E0DC962B1AD1AED92F57129088B2 -19: 00EF3E246B32634ABAF8BEE31D5C592A -20: 79BBF3F807675B9F264BABC67DF4C2AB -21: F391F2D58F0998F24BC9E5FA75DB9E99 -22: 066EF13C2617E97E6015B86BA1E059B2 -23: 5B0E2D7AE1E2734B9D5734C87F7BE272 -24: CDF7020212B7CF21F4817829386A6F8E -25: 24873E1A0EF4908DF85114ED9BDB0168 -26: 99904360C843472F71AB86B26DC78A00 -27: BEE70B3735A67268578FF107C328940B -28: 97DBB283536BC8AE8DBF56F3474C7740 -29: 2F4C903975EF709E004D24DC132A8A51 -30: 3EF0859A281782F905198C607FBE5C43 -31: 2D9CD48BC6A99E86468CBDD2A55C7D5F -32: 5518D3ED18D5E5A62752CDF0846D0C77 -33: F751E9CAF107BAD8A1F1F9C374277A6A -34: C5BA4DE907C41221FBABC5EC43710D0C -35: 5CA48836330870365A10E7B676695C9D -36: 937A964E0EA4D246E97293375B167EFD -37: C0A876CB6957717541A90CCCB034BFB8 -38: A57C93A09F9160A28D3D4DEDC987746C -39: 1FFA1E0B5EE0F0A18425F62717254419 -40: 8411C87262AE482CFC43C3092BEAFD90 -41: 0B9BB379FB3587A9ACEEED4771D8DC20 -42: 3B32EDBF9557E1DFBCEEC269B51FA494 -43: D1104E2888679A9EF6A13AE00ED7E1FB -44: 0EC9849BAD58A279B42B5BA629B0045B -45: CF206E8D3399918E75DE4765DD743060 -46: 55CCEB28E27D4DC7CE2546454FFD2C33 -47: 6E2339281583420B76E1750D35296C12 -48: 7800EC3D8C344BE7F2D2812F5AFF3DA4 -49: B80F4B0BDAA54A04D5A26BCA185F4EA2 + 0: 22C082F55D7F6D861B11C36911BE694F + 1: 0485388F24B147918116347E942BCF4A + 2: 47388A4B060617B21134D3B4EB1CABCA + 3: AA8866CFB9D7507CC67A7F271AEF11E0 + 4: F6A078AEF1BDF8B621A76CB732804FF3 + 5: 8301F76E39A4E8C8AC38A7751B26DD31 + 6: 5BE06821E7B23277B808143F36BABDE0 + 7: E326A3A32F4F0D8A4FA94877997DA11B + 8: 2BA7773B55F90B5399C11EA80D6CADEF + 9: E64776D92B81770E51E4E2F44688A59D +10: E987ED52D4C33B2668BB9DCF0889D5AB +11: 351F5BC075D06BC6977D31A442CCC2B6 +12: 645468E2497FA5EB913C04032457C1DF +13: 10CFDBEC689B01FB969AA2C760F76CCB +14: 0BC5B171A3B727B9594238EC522F72F0 +15: 887D105D54D8EAABABC892F04F3455C0 +16: 53CC30B5F16713AC77205B0F194FED59 +17: CD63AD99CC0D5F34D67C363F99F7CF1E +18: 59BE7B22114383FE8491304FB291D2BC +19: 4B107C8D37CD46EF1DB68ECF4588FEF3 +20: 46034C755D278E368305D1133BA6B4FA +21: E2472AC6D4048AB59E126930F6476D06 +22: 821014CDA5084A85058F1D556854D33D +23: F67C3FB5CB1271B454810FEE632F7EE8 +24: 57705CB352AF1A8B342E1E555C9DAEAA +25: 72AB36C1A8D3C2111330D0EF78726227 +26: 1931783D7E3DD6A33962BAD6962D8A33 +27: 06029A07CA801027D97BFAFF4719FB89 +28: D78B7E4E3083A60610C42BFC03810590 +29: 3CA3B14C5741A43F1FF5AF2179684DBA +30: D1BCC52AE476999E25391E7FFDC59C81 +31: 1E102DBAA4224ED5E32515A59A07EDAA +32: 81BE227D2663DBB733F9CB5018AED67C +33: 92C5A77D5D62A16C031DA0BD968FBAC0 +34: 9EC8E61B543BE73AAD711A9F58C86790 +35: B6A1FD059A7D8D73C143C17D97E4C177 +36: 0316ED78EA520EE98BB568413A390E44 +37: BEFEE68550E2FAFC4AECBE309031BEFD +38: D394CBCC38A47482B2B6900BD68D6540 +39: C58F2EE6C493BD1EB41DEB88A169D240 +40: 0A45FFA6D6E888B1F6E95E388818C6AE +41: 8A9CAD2C511F284CE1D77167E5D23456 +42: 577CB9155A69CA34213FFD15E03D54F4 +43: 2AB7DD760EB7DDDD3883A6966B9D44D2 +44: 4564DC5318B0A940CBBC3C1607804B70 +45: 0E9F42D9C2AC03694CC2E82BA3C4BBBF +46: A49089D9FD9E13DF35B0490E59A9B7C9 +47: D58B3008003D6C8D556D7D76180691FF +48: 1FBC6D5F3F1B0E599DED48FF7A63CB76 +49: 077533478FABE8AD5DC2B9E96E7CC6CB Cipher: skipjack diff --git a/notes/gcm_tv.txt b/notes/gcm_tv.txt index d7d46d9..b5191f8 100644 --- a/notes/gcm_tv.txt +++ b/notes/gcm_tv.txt @@ -143,39 +143,39 @@ GCM-twofish (16 byte key) 32: 4D0F751B55DA3A2E0B28DE59E9680669FCB5984E9C0DB942DBAACDDEF0879731, 62F96CFE31D3D6AAA0B9F5130ED1B21B GCM-noekeon (16 byte key) - 0: , EB5A8E30D5C16311864E2D8D32859ACB - 1: 88, EAB88DE1EB7BC784A706B2D7946798D7 - 2: BA1F, DC3CEC6AA324AC7D053EFF7A99AD3069 - 3: 9A1457, 4AB65831DE378DFF71C20249C7BEC05E - 4: 2F9496D6, 800745CF95EAE3A698EDF9EC949D92B7 - 5: 84153177A2, F6A05B654435ABDF5F696C0E0588CB5C - 6: F80B7865C766, 2334D0061FD488D15A6AC8E44EA1F4B9 - 7: 872EA486B4EA9D, 3A49671DE347F675AD7904DDF4255F3D - 8: A4EE5750507FC831, 956D09F7C5FE812C6FB982E1DDBE864A - 9: B5874AC964FBFC1A97, 90FBC75F45BFF58B3A1100393955D0C2 - 10: 92FF5FCF1EC675E02E71, 983C96A7BD4A0DB5D3B877911CE8A6B3 - 11: F7BCA69A9C7033D84A2BA0, D4ECE5BB9FFCBB331A646D9CE8078634 - 12: 5E1041B4554C8CDD14AAF16D, 1EF777F307CB96788B9120FFF8A8BC2F - 13: 7BB7289FCAD209D7992EB7AEDC, E8AEFB830DBAED2B4A790FFEF940A20B - 14: 12776A7C937A648F0A8628AD8C5C, F070283852AC030819EA67BF82C719AA - 15: 7293476D9E935EAE9DEB66F697F662, D6322603671153A1EC1453CDA5978E15 - 16: DC12A86C85E7358919BABB15A3BF5FD7, BBBFA467EBA8124DFEC82DB0137D56B9 - 17: 0CC1DAD00A987F9C57E3660D9417F226E5, BB8AF5A0B5BC79BD11C5D41CA80CDE2C - 18: D0049115D6EB5495FB391CDC494022AEAA48, 682FF357B2BC059765C29AE6CA668D0C - 19: 48FC54A401B4C06CE8567AD298B672191C7E84, 493A4AF4C2A8828FED8442C4EFF877F6 - 20: 90779795821CB1B7DBD97028E29DC1CE7D0CFAE0, E126F485F73B6F7B3894B4CF7E1C5DDE - 21: 8CA5C246C8B7C04BD7171CAE2D1A892D66302433F8, 5D73149A3635A86B3C34DEA5B95CCBCB - 22: DF082B665F7A952B2604C04554B81393FCC7C0B816C8, D3569ED7D431176B286EF22414E4CBA8 - 23: 761908530C9069E189649ED24B6A68A89B067C31E9868C, A258BCD83D3FBC7AE2AEF7516025AB36 - 24: 717048F5A31F3C89D3704F90069AC5D5174118770C65BDA1, 067EBF18F7E3DF4EA13F9ABAC682C2A2 - 25: 08C6FCC5D3099347C3FEBA3858A6C22C51298CB591DDB77827, B57BFBA40BE99DF5031918A1A4E2CA80 - 26: 2CC53EF7EB954234E64CD4D60FB1D7157A489ABABC10900FFCDB, 236E769611D16EB7F463B7578770F886 - 27: 2556B46F2E831223D632F2691329A874F517687AF81B8322AC55D7, E213A90DBC31DC261A45A9AE41CFEEC3 - 28: 71241792728594D69791B80AD6DBC6417D1D14D222DF5E6F834B82C8, 601F97617708B1945BCDA8A82496EFB1 - 29: 5003DC2EAAA23F9E2221CCBB9E20116692CCC99B3CFBD0DDD3A8491E7C, 3743155B792012845550205C8949B73E - 30: D0589675357E850333F854FBA160688F06D122DEC00CC2620DA0B2770765, 20E085752FC4D37791C22501ED1DB6AD - 31: 645B46D2D114EE7329F14AC1D94E6817EB385EB80C61F014F90530749079EC, 8A18DE86F9555A1070D0BFEDAC15B14F - 32: 068389206D37BF5A41C58075FC98901C3B42E6F2F13C09F4E92524021BB1C1C8, 370B86914D63CFEE8303D538A6BEA0E7 + 0: , 24FBBB850691F47A085EB57AE00304CC + 1: B3, 8BCF7A69E538ABB7E8FEECBED90C34CF + 2: 6E74, 393546FF18FE3921BE4755E993FE669F + 3: 523837, 2B89AACC9117430488FCBD3E05C15F65 + 4: A0805168, 2430C64F2683BBB56F5092D4796473E2 + 5: 947FD3FC56, 9976BB989B3054991ED2741CB68A8F83 + 6: 8209DCFD76D0, 2A57678E78AA81509F5F88F448225F5E + 7: E08CB4FC1169B8, 694904F451A25A52022B5DF85BE76AB9 + 8: E1F64D7205D070B8, 42E272E75AF762BDD98243A3083DC250 + 9: D209B87AB1D069C946, AA6E2B0265C342968631D7D0DD7FB722 + 10: EB294F813FAF31A56731, 1946AFF788D597D545CE01339F1344CA + 11: C3623DFC818CFB5DAA7F11, A141D7654E5C5FF853365DF19626E295 + 12: 6C6ECFF070BACB61B625BB46, 176A894AD6F9C4ABBFE33704B4D0A5BF + 13: D9984A7F164345EF6D9E920944, DDABDA0CA76A3D98059DF8288D607C56 + 14: 9D271AB343D8FD4B7B9CAE828FEE, 3AA2FF2B08283ADDBD8DA9D825DD5DDE + 15: 1BEAD524FFA2812526C66E6AA262C5, AB586F0DA87D813A4E5DF5589D0EDD77 + 16: FF2CCDC2F7DCAD46B0557E265B849CED, 61D2163972EB0521F1AEFF5B157CE226 + 17: 8B39921ACBE0603970F5AED3430D8C7733, 2C4D0DA0E3A87B20255B849DED865C03 + 18: 6716B5F4169F0E609DE1BDC62E34967030C5, 3115A1F7E06D2585115CA39BE13D8F02 + 19: 0E59D5EE86573648C06A47D11DBFE1D504BB51, B080AC131829D9B9F004E672506D17D2 + 20: 74BCEDA70D4B870C2F3C1FA07BB4314D32D5814A, 1AAEF188554ED4B5FD0508474DC06046 + 21: 92575752FD1A2EE03615F71F09A776770EF817975D, 766061C717348F33E1398C8BCDC014B3 + 22: 5D6C261BFF784690911177CA62DA928D35742663C484, 227A7468C3F133FD26056F781AA0DABC + 23: D9901B1E1A1F077C93B9BB5929B76A0FD00540056032EE, 343997846C6FB089E833B15AAB16F28D + 24: 18C64411F459E87F96ADFD94ED8C6CC787C37AB9D02FC709, 7D4F5CBC141C31D44DA558D8AFD6F9B2 + 25: 2B5617D866AD278CBB3B3601E3F924C209857DBABF487C36E6, 481FF0E5F97F65FBEF74C4FE84895B08 + 26: AF03196009787A666CF901DB67CF45AAB6E870D530930964A7CE, C314771BB93E0A3ACC03EE18AC7A2739 + 27: EC721BB4A2822D39869A1981DB66C303116676E5CB3FEDACB1F970, BBA561C9B5912E84365E8258A34BA9EA + 28: 12898BDA4009B40ADDF41B495A3A1A1B0064B9F69FD7BC13F8A14BA0, B2869D73F73E32F912E73AD6C02A0768 + 29: 329B540E422F21AD3B09CF8CFE482B606149230196E429F5666DF206B2, 72CBD361E003F7A9A87E089373C768FD + 30: 497F13387271C869AE9A54A6F78116958951773A85CA804E149B27F68F4F, 68703910888C9304D7B1170258F6B841 + 31: ED63106B3E692A69C0C03BFD303BF4EB2FDB0D9562B9FE39612352DED01DBF, 451E328ACAF0A8196736D88A1D46CBD5 + 32: 1A46B990A8BDFCAEBF9C81D21C5A70A1D865F621AC9470E379F783D0A5150A13, 9571772CE2E0B947F9FE7B148163DD71 GCM-anubis (16 byte key) 0: , A0061C2F3B2295BFA33BC74C037EA8DA diff --git a/notes/ocb_tv.txt b/notes/ocb_tv.txt index 78195e8..229fa4b 100644 --- a/notes/ocb_tv.txt +++ b/notes/ocb_tv.txt @@ -352,39 +352,39 @@ OCB-cast5 (8 byte key) 16: 6A9424B6A873BB7155C01DC87E23EC52, 82C5047655952B01 OCB-noekeon (16 byte key) - 0: , 72751E743D0B7A07EFB23444F1492DDC - 1: 61, 41BDE9478A47B2B612A23752B5A42915 - 2: F4EB, 90EF542D89F867CDFB1A0807F8AA3CC6 - 3: F5A59B, 1BED873B613096546D4C201347CC3858 - 4: F454610B, FB4035F28AA75221F599668ABBE21782 - 5: 382FC932F1, B40270E2084E8DCEB14C6603D080D7C2 - 6: 18F921441119, 47F1F889B307298150750E81E94AB360 - 7: EF01C70C9D1810, AE0439DBB3825F27CF846B43E4C3AA80 - 8: 89863EDCAD471C3A, F4E8AF73BFC4CB79AECBBB3774DAF8C2 - 9: A6F494092E066A70F6, F73D3B04752B7D913420C17E656C7F86 - 10: 342459682E0A8D53AF4F, 61E7CF14E9878E0726C64B1E8CA08BFF - 11: 65E520D5A99825DE2441D1, 7A2AA740D786EB7015C61B31959E55D9 - 12: 2F96D0BB72E37DA202410302, 1A313242527FB522289094B9AFDB5F7B - 13: 3E8F8A1FCEE3F866EC29128BA0, B8065DA2DABF04129E5AE28ECC11A15B - 14: C2C15976D3C2499ACB9454878131, 372CAD486E104098EB1AA78A2922A1BE - 15: 1F12CADABAEE80E448B7EDCB42F8FE, 86A38DE5363787F55B16462C684E08DC - 16: 3B9ABB3304E75BF5B63E7F5B5A3F3980, 1FBD6B93E457B9779E2D12D78301EFA9 - 17: DC0CD805E43675A4317452E378AD48AC4C, 40AE4AFA4B3E580EFDB4AD0AF5BC4E4A - 18: E9DD52EA7264C6C7BBA39B761B6E87B65687, 4061DD65D5E7FFFE8D3D4261494D4F8C - 19: 80A9735CA1175072823828123413CCE772D521, D3378A12E79C49A37378DF527A460AB2 - 20: 09AD495AFFBF7CB8841262E7E5E8952878D4391A, C25D7A98C6F260B5FBCA3B8B5F7F33C1 - 21: 3925615707CC40C351D4A49794778545BC1F683175, 97622437A7208383A4A8D276D5551876 - 22: 5BB0D41ECD7BD2CF0B12A933255D95A3FE35E4C896BB, 4B8AD84EEA3156765A46AC19C68B6F88 - 23: 1EE71FE23CBFD5683AB1B391FC12B4E5952E4E6AA3D189, B0FD75996F28E071EB6C86BD7102BAA5 - 24: 0AA3D8C98AADEEE1867B13B017DD263BD16E960DA64FD071, 5204780963A62C2F4F7B3555BFF73836 - 25: 3A88B6F2AE321B226DA90B98E04A6A1589411BEDBE994632D5, 5638AF04EACF1EB986AC0702B4373A22 - 26: C2731661AC634A4DC0345F040DA7AEE507A3B9D019B5958543BA, 4C67D3FE37ABEE928B3BB812E7346823 - 27: D3E7651AA6DA035D05D599EFB806E8FD45177224593B5974758419, 5814E84258E1B9BD56A188AAE6F25138 - 28: 17818E7102B8C123230C5D64F18BE94C3159B85C8F7B64A7D4712CDA, FAA905B587A93DCF600BA8589A985432 - 29: BCA4335C6C29D978032C216114D39C01C6F161BF69D5A1CE55FBA8C575, BE24424A162E43A19755E2EFD274DBED - 30: 24C33CEE022F8A633DE9DFD009F535B52BCF64F390D2375E5BED65B70D08, 138F21D54B6B7E34628397DCDE0D33BF - 31: 838FE950C8165ADBBD6B61E9732F9A727CA7AE74376981382F0C531C331915, 0742E769CCBA2D1CAC7CAD4E0F012810 - 32: 57CD778DAD477271794FBF763662D97F8A10B17D70A69FDCB974FFE67E558519, 942C7D1C200C3845748F8131DF71AE26 + 0: , C810FFEC70BB008FD7C314A732B226E6 + 1: D0, 3C48A2C7E0CE9B9099221EF2CEC56767 + 2: 5542, 518EDB8174B067CBF2568C6911378137 + 3: 65E8A4, 3E4EFF5F6FBC99EF3B71B11F566A20FB + 4: 3D0EF863, A366D5CE05F564B5E676EC78938CCC85 + 5: 89B17BA512, 0E83095D771F654CBD630AC114501A0F + 6: E9AF5FCFEFED, 3A283F7FF02274DD4B48C2CD7E36182D + 7: F7A001CEC51C30, 8392CC274521BB452134713153F36268 + 8: D796E3F23E31D4F2, 351C7B0304E127287A9A1DE38BB3167A + 9: C4E2BBF6B4827E1A84, 275907279D0764CF80D7E6626D81F994 + 10: 6C61226E61F70408A61A, 941AD1718D272BFCB8C5ACE08F90B2D1 + 11: 3C195850E7FD63EFC11F7C, 348A975B60908445230D4D56A0CAB008 + 12: EE5FF5362DA3744C9EAD274B, 875C2167BFAEB65F5601F2DB9035444C + 13: 7DB5392ED1933ED858EC0C52F5, BE6507D8AC743805A872658C680A4D06 + 14: FEDEAE2EC2059D22B960813B5E7D, A559933509C47854176CEEDEC12EB8B4 + 15: 64C81F2169F7CEFBF51E68D4186A36, FFE84A9B49F0E77A9799EDEC7D76B987 + 16: 66532B678D23130714E088FE874C4743, AF95ADA553A68319DBEBDA4172E18A22 + 17: 53E56845C091A1E2372F3FC772017C9804, 9A6AB7CEB632429F2B31FB91C141B6F0 + 18: DAF6832520591B886E2E962ACF5B9D0A38E9, 73FFEBA8997E0C55CB0B4ABE59C86BF6 + 19: 108F04FEFCB5EE68033E57346012CDEB348D14, E08E90976E0F7868994B017D7A007AB8 + 20: 101682160DEB9667FB073F96ED1D9C063ABCE668, FB79A4BEBCA9A7832C72116AD9B98D41 + 21: E10AB0D22A6C4C253D818AB6AF1A3FF5811C6CEF24, 174CD350B069A239F9EB80A7BCADE8B7 + 22: 9F62A79B25D4F5532D78228A50516F97ACB7A2C5DF13, DD25DD14174B5667B0AD70732323C8C4 + 23: 2A0AA96147E74A3B881D62BA692EE27927A9EAB351C6DB, 9CE03AACF9318770BF7E095F90B470DB + 24: 29E38605973D0218AA8BAF2FBAB7722DB242C4775E453372, 72D6038E8927EDDE469F98B84C74A8A3 + 25: 8DBF8C2B5477DBA6E07B269293713D60D60BE29E677CA35C33, 83100BBC1401C890B36890A3FD0CD4EE + 26: 13DE9776093827F254DBF500EEBE0C65DC602A5FDF6AEFFC34D9, D142F6CE9E43633CBE94A2BDCC9AC5A8 + 27: 4A25370043862CF7A12A00A5A278623F9BF8DE33212D35661591EC, 62064DD74F9F6D77682B43D9B44E26B8 + 28: 37C6C6C40DA0581BF041770E330A40185E90426A1A4AC9BCDBC5CA7D, E77EE99F62EB1A38CCD1E90CED6EB5C7 + 29: 6B9047158068957CBF77F35988E5C926C7B262A8EBA9D33638A15B1505, 913DC491D3B2AFF172053CC4D1271F46 + 30: 949E5F05396F60722877EDBAA5D7437DDB24B3E25651458C266992D0854E, 87D4396BBC24646659F10179823066B2 + 31: D48489C360F6EB2BF4155FFD7CCAFA4793B8870BFA4A95C9BEDD372F51C04E, 173EEB238E6186D5A93AC6072A22B772 + 32: ACB6F91E8BDB4CFFE1F2A5F6C712D16177EE06842E4CF27F61C8F68D44C842FF, A1E5F2560183B0AFE466243EF3921E4D OCB-skipjack (10 byte key) 0: , 90EAAB5131AEB43B diff --git a/notes/omac_tv.txt b/notes/omac_tv.txt index 9f8f337..8d8729c 100644 --- a/notes/omac_tv.txt +++ b/notes/omac_tv.txt @@ -352,39 +352,39 @@ OMAC-cast5 (8 byte key) 16: E8B0B219D4CB699B OMAC-noekeon (16 byte key) - 0: EC61647B281C47C1B43F9815064BF953 - 1: B100B1B6CD96DCED8F47A77E70670A92 - 2: A96CDE3C48831A6B0A5ADFECA6399BDB - 3: 14E75E7CAD840208834918B29A5D4430 - 4: 9577083713AE6E44EEC987C77C93C072 - 5: 2A738C02841E461238C02F5CFC8E66A6 - 6: A901327E451BE0D2D9DEC83DEEA9A022 - 7: 5ED7EE1BE04A64A689D15F6970A821A6 - 8: BA053E24FCFD02C731A8CFCA19EE66A0 - 9: 57139CA8C91072555B29F85A19E2C84D - 10: 4585EAC7EFB84869FD96EE7A5FDD350B - 11: 62AF6C415CA73E54E82EA306254C1BDE - 12: 75304F9724BD364F84371EE154F5210E - 13: 7FE5DBCEE826760434745D417453182B - 14: EC98DA2A580E9131218D1CDE835423D4 - 15: 631BD9EAFD1AE445F2C1C35E2B4416ED - 16: CA2D902A1D83388FE35BAB7C29F359BA - 17: 0DBF0AF7FCBEEE21FB6159C0A2FFCD4C - 18: BD7CD2C49241032DA33B1975EE2EE982 - 19: B30B090EE8626D77D310EDB957552D46 - 20: 64F608AC5707C381AC6878AA38345144 - 21: 28513CA7795B23A02B37DC3732413D23 - 22: 9F440700094517847E9E013C8915C433 - 23: 8CA483F313D20BFE7E0C089DAA4145BD - 24: FA44872743E20E5E0A069B3C4578DB50 - 25: F6DE8FFBECD52CC1F213CD9E406DF3BC - 26: B9702B7E846735A3DCC0724255F88FEC - 27: A1DDAFED2B1732C7BA89C2F194AF039E - 28: 2549C5F0E30F8F4002431D2C098805B8 - 29: 52E3836181BF5C9B09A507D5330CD14F - 30: 01C55DCBCCFD9D7A4D27BDE2A89AA8EF - 31: 3CF721A0CF006702CDA91F2FF3E4D5E3 - 32: 6D264B9065BE98C170E68E9D2A4DE86E + 0: A9F50A6567FAD338AB5727B3B94DEB82 + 1: C9EC17EF3656C9056E64E692A449AD24 + 2: 7D1F6A3373BF20D4E65804B745D40855 + 3: FE3484F11C338721F3FCB4DCC608BD6E + 4: C45670D31D48CE9AD70BADE9F7A6A5B3 + 5: 6AF86480F1AE638DCAC40939B864D4DE + 6: CBBAFED3A5891A7BD8692055E4C59444 + 7: B23439FC6D1CF0E3B04BE5201CAF9283 + 8: 385D2C64F55B3FE976E660155FAC4C90 + 9: 239D4B8F663248076E64CF743AC14EC0 + 10: B942C5E06C6E68866440EB10747643B6 + 11: 9B591FA2FD9A20C367FB03366150D1E7 + 12: F90183F872D062AB4642DCDCED399970 + 13: 86003C2F260EAFC81BC45A0614F88381 + 14: C80F88A148FF906D42E6D75A50049468 + 15: 0A81478238ED815D7CB04C0DC5A4A4D5 + 16: DFE74730DB9CF4F994084C88923A8931 + 17: 91194DAAAB458B5B34E991EF534D4BD8 + 18: DAA1CCA0B644AB9F8B4D889D7F1268FB + 19: A93AE4F41DFB6CA311FAAA148A9D53D9 + 20: 6FFD47B80A991A6C09775060E4A4B13E + 21: 4BE3101511BCA3251559ED6D3BFCC304 + 22: 3C1AA3485241175A9A17F440A1F2FF5F + 23: 11D2C5E4FC75639CC61C8FE66C2F5135 + 24: 3EDBF9F32259650ABC2C835301FA6556 + 25: 56FA9AA43C01CA5BA798780D3BF40FA1 + 26: 40AE1F352003026C6D4C5F44430DD5ED + 27: 264E11C88266029588A1B8369F0C5B73 + 28: 60CE0E6D2C2C74D122DBDE57B3EA44AB + 29: 5E4078E7CEFA94886E9CF0D083C4B468 + 30: CEC169560600ECEED6E5C8F06C76E702 + 31: B4209736F08EAAE6D5B4923D83EB3EE2 + 32: 5DC8D45C9954B82864F1C2388858D97B OMAC-skipjack (10 byte key) 0: 84EDFA769040603C diff --git a/notes/pmac_tv.txt b/notes/pmac_tv.txt index a7b148a..af87a20 100644 --- a/notes/pmac_tv.txt +++ b/notes/pmac_tv.txt @@ -352,39 +352,39 @@ PMAC-cast5 (8 byte key) 16: 87D907CACA80A138 PMAC-noekeon (16 byte key) - 0: A1E4C84B5958726557DF0855B37AA551 - 1: 5DE20299CA919D3365B493D3D4895F92 - 2: AF7E70C336571A857F62A18649EDB197 - 3: C5F55CFE1AA119C352B64252AD246CBD - 4: FEF68A0CE08E8BA315B73B62F861824F - 5: 8321C2958DE4903DC12C42A8845ECC20 - 6: 370466D1324AECF1F5B42E0E01381613 - 7: 5CB900190F5CACBACFE5EAB0CC289D87 - 8: A13C043E6CAAA1E34601A93C497446A4 - 9: 865E11622A4CC8A9E1408E00F56C4543 - 10: 9DC42C26868374649BD17D69D025CA1B - 11: 37D33C11B433C91DA09925CA9E86757A - 12: 1373D769C270E7137C953AC0F8F37941 - 13: 7E81DEC583348B1E2F6267ECF82CB994 - 14: 505B6329338556518FF364CAA730F5E8 - 15: 0C085AEEB315968B0BDE904E8BBC6FD0 - 16: 5FED63259364BE7E5133FF0507DD2D4C - 17: F7EE5C80A99AAEADB49E7CC69BFFF679 - 18: 4388FA5E763A641130940EB705BEFD08 - 19: 1BC31CA79EBE1674CEBE01BC9988267B - 20: BE88961637EFFE2D6905D104FEDD51A4 - 21: 9C341004FB22AFCC496094E3207CA761 - 22: B9DAA3620E38FFC7C5D5E7D2D8FE3DE4 - 23: A38D2E571F037061B4400F1131FDBDEA - 24: 61DB71AE77A6EB47F2E9E14E8CBF2F4B - 25: 9903A072274CC048EF2C51493266D9ED - 26: 1EBEA421DD08859C17DDF39B20A82102 - 27: F425858618E1A86F4912E4714EFB9E75 - 28: 3B3D4EA07F7FE6DDFDD02D624ACDFC9F - 29: CEEE256591D701514EB17DF73B08A970 - 30: 5CC56D5D46120C530A23B6C511C685FC - 31: 68E484CE18BE28EADD0BBF23291B8237 - 32: ABD58A9CDF8AA68168A1A402074CF520 + 0: 276019CC8E43A1B3F300C47B55B7AA22 + 1: B93E353A2CC21CEAD81C91EC2FCD348E + 2: E8B9737CAD705C499F246744DCFE9641 + 3: EF36B0FFB5439FF8668F35FD1822D0EA + 4: B7F5AD89538FC3F03923E98ADF95D0CC + 5: 558FCA30F602B4BC6697F44053875204 + 6: 6B2D6D5A1CF670BE80E4BBB945CD3871 + 7: 9CFA28FCA22EA12A13AC1093EF5D5EB9 + 8: 04EDA6C71B9F1177F4A5368684FBBAFB + 9: 43C56B31D440EBECE4C74B90750A4653 + 10: 23D5FA9AFFB2DC3DD372F22690487BAC + 11: FD61731F27CF8E791535AAB579A018B4 + 12: 502D3A64FDED3CA2A2C8A5E986B27E03 + 13: 1EABBC65B0A08F6CB15218E7153A6003 + 14: B05DBC66CF92B045FC99395E9D405C4F + 15: EE841A0BF2C91C1E2078F06D022F2E6C + 16: EA749FBAC6BA9F672796C9D58A8C3294 + 17: BBEF3CDFB93E5F462773579986F08374 + 18: B17F7645F80BF5A2817C228987B43C03 + 19: C995A102DFBB38FA397A4E508B85093D + 20: 9011CA395AC3FCD8594C13E67C22E95B + 21: 364BF53974D68B8BCF53CAADC5469DEC + 22: 5BAD7041372F28DE28BAAAC1A89C10A8 + 23: 77874E908BFCE6F5E36888A484A754C0 + 24: 9BDA525416A3129C55886134B79BAEDE + 25: 84E3201FA7958223B302D1BC2AC57D55 + 26: 2B8FA1A95DADB4DC2F7A308D8E3D8C81 + 27: F74EBF0ACCC187569BDE549F5FC96C36 + 28: 7023D209F1965EC32253D11835CDFFA5 + 29: C3C6397D9B0A1D741335882ACDFAC20D + 30: 7BC92905F2AF6754256BE087CC4F54DB + 31: 0BBA0A507767530F26C3A465DAB11359 + 32: D2891C8EA1F574A6B2AB091057E0FB2C PMAC-skipjack (10 byte key) 0: 9CD94B75BC43B647 From 80ef95f3c13d5f8eb5586347c733e6955f22c4c4 Mon Sep 17 00:00:00 2001 From: Patrick Pelletier Date: Sun, 12 Feb 2012 16:12:50 -0800 Subject: [PATCH 8/9] Checked in program which generates Noekeon vectors using BouncyCastle. --- notes/etc/NoekeonVects.java | 249 ++++++++++++++++++++++++++++++++++++ 1 file changed, 249 insertions(+) create mode 100644 notes/etc/NoekeonVects.java diff --git a/notes/etc/NoekeonVects.java b/notes/etc/NoekeonVects.java new file mode 100644 index 0000000..8ec542a --- /dev/null +++ b/notes/etc/NoekeonVects.java @@ -0,0 +1,249 @@ +/* + NoekeonVects.java - Generate Noekeon test vectors using BouncyCastle. + + Written in 2011 by Patrick Pelletier + + To the extent possible under law, the author(s) have dedicated all + copyright and related and neighboring rights to this software to + the public domain worldwide. This software is distributed without + any warranty. + + This file is dedicated to the public domain with the CC0 Public Domain + Dedication: http://creativecommons.org/publicdomain/zero/1.0/legalcode.txt + + You may also consider this file to be covered by the WTFPL, as contained + in the LibTomCrypt LICENSE file, if that makes you happier for some reason. + + ---------------------------------------------------------------------- + + This program was inspired by the comment in Botan 1.10.1's + doc/examples/eax_test.cpp: + + // Noekeon: unknown cause, though LTC's lone test vector does not + // match Botan + + So, I investigated the discrepancy by comparing them with a third + implementation, BouncyCastle: http://www.bouncycastle.org/java.html + + I determined that there are two reasons why LibTomCrypt's Noekeon does + not match Botan: + + 1) Botan uses "indirect Noekeon" (with a key schedule), while + LibTomCrypt and BouncyCastle both use "direct Noekeon" (without + a key schedule). See slide 14 of + http://gro.noekeon.org/Noekeon-slides.pdf + + 2) However, LibTomCrypt's direct Noekeon still does not match + BouncyCastle's direct Noekeon. This is because of a bug in + LibTomCrypt's PI1 and PI2 functions: + https://github.com/libtom/libtomcrypt/issues/5 + + This program uses BouncyCastle to produce test vectors which are + suitable for Botan (by explicitly scheduling the key, thus + building indirect Noekeon out of BouncyCastle's direct Noekeon), + and also produces test vectors which would be suitable for + LibTomCrypt (direct Noekeon) once its PI1 and PI2 functions are + fixed to match the Noekeon specification. + + Although this program uses a PRNG from BouncyCastle to generate + data for the test vectors, it uses a fixed seed and thus will + produce the same output every time it is run. +*/ + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.Locale; +import org.bouncycastle.crypto.digests.RIPEMD128Digest; +import org.bouncycastle.crypto.engines.NoekeonEngine; +import org.bouncycastle.crypto.modes.EAXBlockCipher; +import org.bouncycastle.crypto.params.AEADParameters; +import org.bouncycastle.crypto.params.KeyParameter; +import org.bouncycastle.crypto.prng.DigestRandomGenerator; +import org.bouncycastle.util.encoders.HexEncoder; + +public class NoekeonVects +{ + private final DigestRandomGenerator r = + new DigestRandomGenerator(new RIPEMD128Digest()); + + private final HexEncoder h = new HexEncoder(); + + private final NoekeonEngine noekeon = new NoekeonEngine(); + + private final KeyParameter null_key = new KeyParameter(new byte[16]); + + private final boolean schedule_key; + + private final boolean botan_format; + + private byte[] randomBytes(int n) + { + byte[] b = new byte[n]; + r.nextBytes(b); + return b; + } + + private void hexOut(byte[] b) throws IOException + { + // HexEncoder uses lowercase, and Botan's test vectors must + // be in uppercase, so... + ByteArrayOutputStream os = new ByteArrayOutputStream(); + h.encode(b, 0, b.length, os); + String s = os.toString("US-ASCII"); + System.out.print(s.toUpperCase(Locale.US)); + } + + private void printCArray(byte[] a) throws IOException + { + byte[] b = new byte[1]; + for (int i = 0; i < a.length; i++) + { + if (i > 0) + System.out.print(", "); + System.out.print("0x"); + b[0] = a[i]; + hexOut(b); + } + } + + private void printVector(byte[] key, byte[] plaintext, byte[] ciphertext) + throws IOException + { + if (botan_format) + { + hexOut(plaintext); + System.out.print(":"); + hexOut(ciphertext); + System.out.println(":\\"); + hexOut(key); + System.out.println(); + } + else + { + System.out.println(" {"); + System.out.println(" 16,"); + System.out.print(" { "); + printCArray (key); + System.out.println(" },"); + System.out.print(" { "); + printCArray (plaintext); + System.out.println(" },"); + System.out.print(" { "); + printCArray (ciphertext); + System.out.println(" }"); + System.out.println(" },"); + } + } + + private KeyParameter maybe_schedule_key(byte[] key) + { + if (schedule_key) + { + noekeon.init(true, null_key); + byte[] scheduled = new byte[16]; + noekeon.processBlock(key, 0, scheduled, 0); + return new KeyParameter(scheduled); + } + else + return new KeyParameter(key); + } + + private byte[] encrypt(byte[] plaintext, byte[] key) + { + KeyParameter kp = maybe_schedule_key(key); + noekeon.init(true, kp); + byte[] ciphertext = new byte[16]; + noekeon.processBlock(plaintext, 0, ciphertext, 0); + return ciphertext; + } + + public NoekeonVects(long seed, boolean schedule_key, boolean botan_format) + { + this.schedule_key = schedule_key; + this.botan_format = botan_format; + r.addSeedMaterial(seed); + } + + public void ecb_vectors() throws IOException + { + for (int i = 0; i < 8; i++) + { + byte[] key = randomBytes(16); + byte[] plaintext = randomBytes(16); + byte[] ciphertext = encrypt(plaintext, key); + printVector(key, plaintext, ciphertext); + } + } + + public void eax_vectors() throws Exception + { + System.out.println("EAX-noekeon (16 byte key)"); + EAXBlockCipher eax = new EAXBlockCipher(new NoekeonEngine()); + byte[] output = new byte[48]; + byte[] tag = new byte[16]; + + for (int j = 0; j < 16; j++) + tag[j] = (byte) j; + + for (int i = 0; i <= 32; i++) + { + byte[] header_nonce_plaintext = new byte[i]; + for (int j = 0; j < i; j++) + header_nonce_plaintext[j] = (byte) j; + AEADParameters params = + new AEADParameters(maybe_schedule_key(tag), + 128, + header_nonce_plaintext, + header_nonce_plaintext); + eax.init(true, params); + int off = eax.processBytes(header_nonce_plaintext, 0, i, + output, 0); + off += eax.doFinal(output, off); + if (off != i + 16) + throw new RuntimeException("didn't expect that"); + byte[] ciphertext = new byte[i]; + for (int j = 0; j < i; j++) + ciphertext[j] = output[j]; + for (int j = 0; j < 16; j++) + tag[j] = output[i + j]; + System.out.print(i < 10 ? " " : " "); + System.out.print(i); + System.out.print(": "); + hexOut(ciphertext); + System.out.print(", "); + hexOut(tag); + System.out.println(); + } + } + + public static void main(String[] argv) throws Exception + { + NoekeonVects bot = new NoekeonVects(0xdefacedbadfacadeL, true, true); + NoekeonVects tom = new NoekeonVects(0xdefacedbadfacadeL, false, false); + System.out.println("# ECB vectors for indirect Noekeon, in Botan's"); + System.out.println("# test vector format, suitable for insertion"); + System.out.println("# into Botan's file checks/validate.dat"); + System.out.println("# Block cipher format is plaintext:ciphertext:key"); + bot.ecb_vectors(); + System.out.println(); + System.out.println("/* ECB vectors for direct Noekeon, as C arrays"); + System.out.println(" * suitable for insertion into LibTomCrypt's"); + System.out.println(" * noekeon_test() in src/ciphers/noekeon.c,"); + System.out.println(" * once LTC's PI1/PI2 bug is fixed. */"); + tom.ecb_vectors(); + System.out.println(); + System.out.println("# EAX vectors for indirect Noekeon, in the format"); + System.out.println("# generated by LTC's demos/tv_gen.c and consumed"); + System.out.println("# by Botan's doc/examples/eax_test.cpp, suitable"); + System.out.println("# for insertion in Botan's doc/examples/eax.vec"); + bot.eax_vectors(); + System.out.println(); + System.out.println("# EAX vectors for direct Noekeon, in the format"); + System.out.println("# generated by LTC's demos/tv_gen.c and consumed"); + System.out.println("# by Botan's doc/examples/eax_test.cpp, which"); + System.out.println("# should match LTC's notes/eax_tv.txt, once"); + System.out.println("# LTC's PI1/PI2 bug is fixed."); + tom.eax_vectors(); + System.out.flush(); + } +} From 5b662d6ed8c6e0b320573724a415dd10dd9b8364 Mon Sep 17 00:00:00 2001 From: Patrick Pelletier Date: Sun, 12 Feb 2012 15:22:26 -0800 Subject: [PATCH 9/9] Fix some small typos in documentation --- crypt.tex | 2 +- notes/tech0003.txt | 2 +- src/ciphers/camellia.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/crypt.tex b/crypt.tex index bb1dbd7..d28f3cc 100644 --- a/crypt.tex +++ b/crypt.tex @@ -4988,7 +4988,7 @@ normally. The decoded list \textit{out} will point to the very first element of An invalid decoding will terminate the process, and free the allocated memory automatically. -\textbf{Note:} the list decoded by this function is \textbf{NOT} in the correct form for der\_encode\_sequence() to use directly. You will have to first +\textbf{Note:} the list decoded by this function is \textbf{NOT} in the correct form for der\_encode\_sequence() to use directly. You will first have to convert the list by first storing all of the siblings in an array then storing all the children as sub-lists of a sequence using the \textit{.data} pointer. Currently no function in LibTomCrypt provides this ability. diff --git a/notes/tech0003.txt b/notes/tech0003.txt index 1a21867..471378a 100644 --- a/notes/tech0003.txt +++ b/notes/tech0003.txt @@ -47,6 +47,6 @@ as a hash) CAST5 is perhaps a "runner-up" choice. CAST5 has been around longer fairly fast as well. You can easily accomplish this via the "config.pl" script. Simply answer "n" to all of the ciphers except the one you want -and then rebuild the library. [or you can hand edit mycrypt_custom.h] +and then rebuild the library. [or you can hand edit tomcrypt_custom.h] diff --git a/src/ciphers/camellia.c b/src/ciphers/camellia.c index 488998b..b419a76 100644 --- a/src/ciphers/camellia.c +++ b/src/ciphers/camellia.c @@ -10,7 +10,7 @@ */ /** - @file camellia.ca + @file camellia.c Implementation by Tom St Denis of Elliptic Semiconductor */