Merge pull request #760 from libtom/pr/ARIA

ARIA block cipher (RFC 5794)
This commit is contained in:
Steffen Jaeckel 2026-05-19 10:22:37 +02:00 committed by GitHub
commit 6e4dcfcc11
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
39 changed files with 942 additions and 25 deletions

View file

@ -602,7 +602,7 @@ As of this release the current cipher\_descriptors elements are the following:
\index{Cipher descriptor table}
\index{blowfish\_desc} \index{xtea\_desc} \index{rc2\_desc} \index{rc5\_desc} \index{rc6\_desc} \index{saferp\_desc} \index{aes\_desc} \index{twofish\_desc}
\index{des\_desc} \index{des3\_desc} \index{noekeon\_desc} \index{skipjack\_desc} \index{anubis\_desc} \index{khazad\_desc} \index{kseed\_desc} \index{kasumi\_desc} \index{camellia\_desc} \index{aes\_enc\_desc}
\index{idea\_desc} \index{serpent\_desc} \index{tea\_desc} \index{sm4\_desc}
\index{idea\_desc} \index{serpent\_desc} \index{tea\_desc} \index{sm4\_desc} \index{aria\_desc}
\begin{figure}[hpbt]
\begin{small}
\begin{center}
@ -636,6 +636,7 @@ As of this release the current cipher\_descriptors elements are the following:
\hline Serpent & serpent\_desc & 16 & 16, 24, 32 & 32 & 25 \\
\hline TEA & tea\_desc & 8 & 16 & 32 & 26 \\
\hline SM4 & sm4\_desc & 16 & 16 & 32 & 27 \\
\hline ARIA & aria\_desc & 16 & 16, 24, 32 & 12, 14, 16 & 29 \\
\hline
\end{tabular}
\end{center}

View file

@ -335,6 +335,10 @@
RelativePath="src\ciphers\anubis.c"
>
</File>
<File
RelativePath="src\ciphers\aria.c"
>
</File>
<File
RelativePath="src\ciphers\blowfish.c"
>

View file

@ -36,12 +36,12 @@ LIBMAIN_D =libtomcrypt.dll
#List of objects to compile (all goes to libtomcrypt.a)
OBJECTS=src/ciphers/aes/aes.o src/ciphers/aes/aes_desc.o src/ciphers/aes/aes_enc.o \
src/ciphers/aes/aes_enc_desc.o src/ciphers/aes/aesni.o src/ciphers/anubis.o src/ciphers/blowfish.o \
src/ciphers/camellia.o src/ciphers/cast5.o src/ciphers/des.o src/ciphers/idea.o src/ciphers/kasumi.o \
src/ciphers/khazad.o src/ciphers/kseed.o src/ciphers/multi2.o src/ciphers/noekeon.o src/ciphers/rc2.o \
src/ciphers/rc5.o src/ciphers/rc6.o src/ciphers/safer/safer.o src/ciphers/safer/saferp.o \
src/ciphers/serpent.o src/ciphers/skipjack.o src/ciphers/sm4.o src/ciphers/tea.o \
src/ciphers/twofish/twofish.o src/ciphers/xtea.o src/encauth/ccm/ccm_add_aad.o \
src/ciphers/aes/aes_enc_desc.o src/ciphers/aes/aesni.o src/ciphers/anubis.o src/ciphers/aria.o \
src/ciphers/blowfish.o src/ciphers/camellia.o src/ciphers/cast5.o src/ciphers/des.o src/ciphers/idea.o \
src/ciphers/kasumi.o src/ciphers/khazad.o src/ciphers/kseed.o src/ciphers/multi2.o src/ciphers/noekeon.o \
src/ciphers/rc2.o src/ciphers/rc5.o src/ciphers/rc6.o src/ciphers/safer/safer.o \
src/ciphers/safer/saferp.o src/ciphers/serpent.o src/ciphers/skipjack.o src/ciphers/sm4.o \
src/ciphers/tea.o src/ciphers/twofish/twofish.o src/ciphers/xtea.o src/encauth/ccm/ccm_add_aad.o \
src/encauth/ccm/ccm_add_nonce.o src/encauth/ccm/ccm_done.o src/encauth/ccm/ccm_init.o \
src/encauth/ccm/ccm_memory.o src/encauth/ccm/ccm_process.o src/encauth/ccm/ccm_reset.o \
src/encauth/ccm/ccm_test.o src/encauth/chachapoly/chacha20poly1305_add_aad.o \

View file

@ -29,12 +29,12 @@ LIBMAIN_S =tomcrypt.lib
#List of objects to compile (all goes to tomcrypt.lib)
OBJECTS=src/ciphers/aes/aes.obj src/ciphers/aes/aes_desc.obj src/ciphers/aes/aes_enc.obj \
src/ciphers/aes/aes_enc_desc.obj src/ciphers/aes/aesni.obj src/ciphers/anubis.obj src/ciphers/blowfish.obj \
src/ciphers/camellia.obj src/ciphers/cast5.obj src/ciphers/des.obj src/ciphers/idea.obj src/ciphers/kasumi.obj \
src/ciphers/khazad.obj src/ciphers/kseed.obj src/ciphers/multi2.obj src/ciphers/noekeon.obj src/ciphers/rc2.obj \
src/ciphers/rc5.obj src/ciphers/rc6.obj src/ciphers/safer/safer.obj src/ciphers/safer/saferp.obj \
src/ciphers/serpent.obj src/ciphers/skipjack.obj src/ciphers/sm4.obj src/ciphers/tea.obj \
src/ciphers/twofish/twofish.obj src/ciphers/xtea.obj src/encauth/ccm/ccm_add_aad.obj \
src/ciphers/aes/aes_enc_desc.obj src/ciphers/aes/aesni.obj src/ciphers/anubis.obj src/ciphers/aria.obj \
src/ciphers/blowfish.obj src/ciphers/camellia.obj src/ciphers/cast5.obj src/ciphers/des.obj src/ciphers/idea.obj \
src/ciphers/kasumi.obj src/ciphers/khazad.obj src/ciphers/kseed.obj src/ciphers/multi2.obj src/ciphers/noekeon.obj \
src/ciphers/rc2.obj src/ciphers/rc5.obj src/ciphers/rc6.obj src/ciphers/safer/safer.obj \
src/ciphers/safer/saferp.obj src/ciphers/serpent.obj src/ciphers/skipjack.obj src/ciphers/sm4.obj \
src/ciphers/tea.obj src/ciphers/twofish/twofish.obj src/ciphers/xtea.obj src/encauth/ccm/ccm_add_aad.obj \
src/encauth/ccm/ccm_add_nonce.obj src/encauth/ccm/ccm_done.obj src/encauth/ccm/ccm_init.obj \
src/encauth/ccm/ccm_memory.obj src/encauth/ccm/ccm_process.obj src/encauth/ccm/ccm_reset.obj \
src/encauth/ccm/ccm_test.obj src/encauth/chachapoly/chacha20poly1305_add_aad.obj \

View file

@ -50,12 +50,12 @@ LIBMAIN_S =libtomcrypt.a
#List of objects to compile (all goes to libtomcrypt.a)
OBJECTS=src/ciphers/aes/aes.o src/ciphers/aes/aes_desc.o src/ciphers/aes/aes_enc.o \
src/ciphers/aes/aes_enc_desc.o src/ciphers/aes/aesni.o src/ciphers/anubis.o src/ciphers/blowfish.o \
src/ciphers/camellia.o src/ciphers/cast5.o src/ciphers/des.o src/ciphers/idea.o src/ciphers/kasumi.o \
src/ciphers/khazad.o src/ciphers/kseed.o src/ciphers/multi2.o src/ciphers/noekeon.o src/ciphers/rc2.o \
src/ciphers/rc5.o src/ciphers/rc6.o src/ciphers/safer/safer.o src/ciphers/safer/saferp.o \
src/ciphers/serpent.o src/ciphers/skipjack.o src/ciphers/sm4.o src/ciphers/tea.o \
src/ciphers/twofish/twofish.o src/ciphers/xtea.o src/encauth/ccm/ccm_add_aad.o \
src/ciphers/aes/aes_enc_desc.o src/ciphers/aes/aesni.o src/ciphers/anubis.o src/ciphers/aria.o \
src/ciphers/blowfish.o src/ciphers/camellia.o src/ciphers/cast5.o src/ciphers/des.o src/ciphers/idea.o \
src/ciphers/kasumi.o src/ciphers/khazad.o src/ciphers/kseed.o src/ciphers/multi2.o src/ciphers/noekeon.o \
src/ciphers/rc2.o src/ciphers/rc5.o src/ciphers/rc6.o src/ciphers/safer/safer.o \
src/ciphers/safer/saferp.o src/ciphers/serpent.o src/ciphers/skipjack.o src/ciphers/sm4.o \
src/ciphers/tea.o src/ciphers/twofish/twofish.o src/ciphers/xtea.o src/encauth/ccm/ccm_add_aad.o \
src/encauth/ccm/ccm_add_nonce.o src/encauth/ccm/ccm_done.o src/encauth/ccm/ccm_init.o \
src/encauth/ccm/ccm_memory.o src/encauth/ccm/ccm_process.o src/encauth/ccm/ccm_reset.o \
src/encauth/ccm/ccm_test.o src/encauth/chachapoly/chacha20poly1305_add_aad.o \

View file

@ -221,12 +221,12 @@ library: $(call print-help,library,Builds the library) $(LIBNAME)
# List of objects to compile (all goes to libtomcrypt.a)
ifndef AMALGAM
OBJECTS=src/ciphers/aes/aes.o src/ciphers/aes/aes_desc.o src/ciphers/aes/aes_enc.o \
src/ciphers/aes/aes_enc_desc.o src/ciphers/aes/aesni.o src/ciphers/anubis.o src/ciphers/blowfish.o \
src/ciphers/camellia.o src/ciphers/cast5.o src/ciphers/des.o src/ciphers/idea.o src/ciphers/kasumi.o \
src/ciphers/khazad.o src/ciphers/kseed.o src/ciphers/multi2.o src/ciphers/noekeon.o src/ciphers/rc2.o \
src/ciphers/rc5.o src/ciphers/rc6.o src/ciphers/safer/safer.o src/ciphers/safer/saferp.o \
src/ciphers/serpent.o src/ciphers/skipjack.o src/ciphers/sm4.o src/ciphers/tea.o \
src/ciphers/twofish/twofish.o src/ciphers/xtea.o src/encauth/ccm/ccm_add_aad.o \
src/ciphers/aes/aes_enc_desc.o src/ciphers/aes/aesni.o src/ciphers/anubis.o src/ciphers/aria.o \
src/ciphers/blowfish.o src/ciphers/camellia.o src/ciphers/cast5.o src/ciphers/des.o src/ciphers/idea.o \
src/ciphers/kasumi.o src/ciphers/khazad.o src/ciphers/kseed.o src/ciphers/multi2.o src/ciphers/noekeon.o \
src/ciphers/rc2.o src/ciphers/rc5.o src/ciphers/rc6.o src/ciphers/safer/safer.o \
src/ciphers/safer/saferp.o src/ciphers/serpent.o src/ciphers/skipjack.o src/ciphers/sm4.o \
src/ciphers/tea.o src/ciphers/twofish/twofish.o src/ciphers/xtea.o src/encauth/ccm/ccm_add_aad.o \
src/encauth/ccm/ccm_add_nonce.o src/encauth/ccm/ccm_done.o src/encauth/ccm/ccm_init.o \
src/encauth/ccm/ccm_memory.o src/encauth/ccm/ccm_process.o src/encauth/ccm/ccm_reset.o \
src/encauth/ccm/ccm_test.o src/encauth/chachapoly/chacha20poly1305_add_aad.o \

View file

@ -2332,3 +2332,236 @@ CCM-serpent (16 byte key)
31: A0FF4E0C8B0CF76BC483E6AF028351607199C281C8626FCB4ADD8C1FF1893C, AF6E3C6B6A0F7E8DD3FA069743FD40FF
32: D5A08E21B3B6D356F09A14334D1801959ED2C9255D39061F15055B21F0E0053A, CB53C5AE58A041582C8865E88F258533
CCM-aria (16 byte key)
0: , 353C952B
1: 40, 04D0FEA7
2: 56CF, AB9316BD
3: 6B7EBC, 9008DEAB
4: 39910BB2, EDEAFA95
5: E55EF42FCF, F188B727
6: 609D847D15F6, EC7F1C69
7: EF321AA69F17C8, 6F40DE4D
8: FD38158366734BC2, 8ED57084
9: FCE911C5AFB4AEAA61, 3F75E2D1
10: 0A718789789755D732BC, 0A6FD330
11: 81031C57EB378A6DC3B30E, 84D1961F
12: AC50246D94A46A89009986B2, D8019108
13: 6FAD16EC8210F4342A99721841, 8C29D76F
14: 3B9626B03360ADD6C74EF779C5D8, 6050E9B8
15: 67EF70669FBACB50CC51347E507DBC, 3AE3BEAD
16: D87BF263D3DAE59B7BA40A1B4C6C07AF, 95DD1D80
17: BF10E4F29481E923A263F825E1D08BA8C9, BF260C90
18: 66D492C7CEAE885C9BDB70671B2C8F947E2A, 4A966B0C
19: 827A4652E99B9026CC3360F9D3715126C2F53D, F110481E
20: 818AFC972396ACECEF896D08270D90998F5533AF, 54A8F480
21: AA77E19EBF9BC8102432F5170E2410EE0B05EC9D85, 3BEE78D6
22: 64B1C81B530DF1873732E0233919858FF32F4D6D3F48, DD5AF66A
23: 6BF23BC21B55621E986788EACD17C56035E8BA5B7901E5, 494A12F7
24: CD2C647D7F03EC0A6A2DB3EB30230D5678FB455E5948575C, FD1CC86F
25: 4DAE6AFD6AFCC7DF803161690128138EECC4761DA47E1FCA10, FB920F20
26: 14916B572C926E2E4A91B6705128CF8C1F037168CE88E36FABB4, 4CBACB0F
27: ACC579D1209FEDDA483166641E708BFA1E5D76B85F76EFF004A323, 2219CC8B
28: 8EB53C1FB10A7049A19DD369A021571892A6F178C8E6169BD9B5073C, 6E5015E5
29: 1F36580064A6AC07DB82D1432F9896F4B068C886534953EBB98DB17DA2, D3EF1E2E
30: FC1A05DB901EE1AFE8E52ED73B63B1A6EAD6C8CD9026D4EAF551F2BB032C, 959862ED
31: F347EDC6A3DE4BAD6E3C544515D94610E9F0F3AE4A257B7A7736DFAD9F2879, 116BB7FB
32: 99221E065B0E6C6302EE652EF9A2460CE4C9A1962391659915534E55B221CB66, B8C37EAA
0: , 787B3C5B0605
1: 42, FF94D063BA66
2: E9D9, ED9326709397
3: 1686E8, 56804236EB4F
4: 535CF7A5, 52476588422E
5: 800437AD19, 185A5EFC5670
6: A779D2341A41, E429781CF5B0
7: D7A75656FFEB8E, B208A292F706
8: 6EABB52BA84F3C1C, 3AB8F83FE12D
9: 7A95E0BB3D5A230B15, 861786737080
10: 0F92E8E2F46CD4301D9E, C452E77C8756
11: 9ACA3A17B2B2258289A485, 762EF170D46C
12: ADEC64EBF983191045FAD44C, 6221A80B623E
13: A2F14832FB52077AF0562BEA31, 0F60836B7AE1
14: F587EEC6BDBB365B2A6FE71F92EA, 803DD20D27B4
15: 07F17D64A06B0C8510DA0645AAF5D1, D1F81F5DFECF
16: 82B2336763C2FE0536F73F64A7B627E3, 69B7704BB009
17: CF15D6DE00C5C7D168CA1B8B7EA31A5EF6, A43C0D064397
18: DE9736D8713E87F5CE36A79A7F42FE439B68, 697D7648CA4C
19: CADCC5991CDF7E3D7ADA08F75CC578706BCD41, DC343B44B408
20: DC8665635B1EF4AA5E8DF27792FB1DC0582A4D08, A3C4EE81CEE4
21: 908E1344128918AA8292A7E01D26E2FDA6E9C519FC, AD601220E609
22: 08281EBD483D4DE8CA9A28F29D070EFC742E63EA2383, AA6E66C930A3
23: F647F4727C54FD0B212B551A44B81806FC141E1667C64D, 9797EB3D7F76
24: 3BCFEB85F99DBECD1EC3381B4C4C7881E6C83AFEF853A740, DCD9C8A5BE65
25: DB692D5FE5DB194638BBDB38697A3C60D8762B752A1AEF8E05, C6807B2D178A
26: 4DEA6DC0FBADA4C41D68E67BAA5FA2A521BAB0244E0F345F5116, 521390B92C76
27: 170ED5EAD2AA883AE61A12E9EDB11BA23F2FCD7FE04F8F1F586D0F, 57EA184E72E4
28: B29DA9DBA61A9C8DA3E26397E5562541EF6F8DEFDB0F65A81A7DBDD9, 54122D3FE0BD
29: 945F270728667C8C9C3F618D5771EBD1B701B5CB007066D4DB7419BF4B, EE94451B862F
30: 8B63E2F69FD67251AEC1A505C9254C8AB712F9A6C333E148744659F3020C, 78F40E1C5B67
31: 2B19E3EDF4D293DF4C0B1FE5B2F045B3E73A4888B7E1F9A9CBB574CD1273DD, 90781206FF9A
32: 1B08284E4EF92CB6C424F0B38459683F3F67D975F971AF5795EEC42B67DABF6E, 9D6B526CAD5C
0: , 30E15EF65DB4DDAE
1: 00, 08E8C717F6AC5B67
2: A03B, 946C5F74501BF2C2
3: D56630, 42B1EEA73BEAEFC1
4: 08CE439B, 8DA272BDCF72BD7A
5: 327A58A977, BE29F2ABFBA678D8
6: 223C5D6B2C02, 08953C0FA1C7D44B
7: 30A9A5E98C942C, 80ECE405A106DC8D
8: 1BD70DED77CDEFD7, 7B3FDD5376D7AC59
9: C3D68E65373B7DCFC6, B508230790273CF1
10: 13ED03E0C6163E2171B2, 1BCF43550CFF1711
11: 586D5A2B545BD9EAFBE53C, FCCAB1D344D29C57
12: 3669D7E84F4B7F93FBB55F38, 10D01842D6052FA0
13: D39DD4F87DD52AA5C9D3613169, A45310DE5457810C
14: 356A132190D208F46E961E3E91C1, 94AD47938D0A0DF3
15: 83A55AAC7F7DB8AF0FDEACDB3A7DD6, 93126DDE11D3C00D
16: 55399C0176C6CB19D952886701156A2A, ED1FBB7BC514B6BD
17: B36E00B528B85F8968FEBA512F4DCB51F4, 3BF851562A0CB4F3
18: A77687DB5FE6C3997B60A45A3F8FDA57373B, 1BE333C502610568
19: AC175F8E8D52EC541E07C1A9988B0CF605BBD6, 692BD414DE5D8CC3
20: E413D1B81F34E25C00534DC7978E59D52D51575E, 9411A536CF4D2573
21: 6FBDAF7916EE61086AC72C49F413EC18ADBCA53F9D, 160F6E12CC3FBF39
22: FA7EB52D22FD52C8571141F4798FA8A9E0EB270F4E91, 51C39B267B58399E
23: A6F2E3A593A48E9F1B3FD8F40DC9EC4D47500DC54434E9, F9413DAFC65C68F1
24: 3856DCB73702A9D7E550EA6D7E5233EC91F4326A40AEFD5C, 8F6A00E327E33047
25: 420E51D174F2EF84C121B423A3640C4F7A8083F2C63C527B8B, 76D8597F67B23793
26: 25A3C0E0A1CEE9A189E839D15679676923C6000F81405EE3B511, 71D76589AFBFB49E
27: AC418B46CF47064C4918E7421F9C8CFDE4BA3AEFBA03A323860034, 0471F6A32F11FDA1
28: A77C98CE3621CD622158474FFE47CC12E2F02CB7A160BE39FE50030B, CD0FF7998005DA63
29: 643AAC1CCA54AEC8EFB771D5090AAF88B545A3521579DFAC5EF3D439FB, C615FE523826C242
30: CC7B70B9C58EA2237BC6DFCACDA7079720E917365BF79BD6E2A847E4E13D, DA0468908B714843
31: 27C25C174ED7AE5E66E4DAEFBD9B0744F3D8B6A41B38C5B02F186D23431BA9, 3241E962227F9F72
32: 292ED972430B2D2982052E9301F41B50F9848C02E9BC0E809DA08AF0D347A809, 7D6E4F092C826D75
0: , C1BE20B391DFF3FC20AE
1: A8, 4FAB63237553937B38E7
2: 25F4, CF35CF7B6B96290FB4DF
3: 3BAF27, 83B6D85A91F5AFEDF5AC
4: 94E818AF, B5A3C04ECB873B52F0F8
5: CE0C2D087F, 2766496C9567267072CE
6: 502CB4A4B2A7, 64907CCB60471F2924C9
7: ADF8D19B1834C7, F237E92D9FF5500C0E44
8: CA86744F3250DD38, 6D7E2AEBD4716D130131
9: ECDC361CD582DE94D5, BC6016F46F7FAF7135E1
10: 692CAFFE4C08AD375752, 74E2BF73B546577B37EC
11: CFB8A68EAD2B88B13550B0, 237953A1D3CFF52C9558
12: E2026F396401D2B1F15D63F9, 36CE964CFEB110F3D84A
13: C22EF3D87561AFFA3E7F3D0F91, 13EA056FB5284D5A75BC
14: 5212A750AB866CE4A153A8DB2AFA, BCD125B9B76818E81B9B
15: 44E9D1ED149CA180351E278F416556, F9538B3C4899EA89FECA
16: 65A147FBBD36CA41568AF5F96A5A3ECE, 54FD1275750BCB2DD5AC
17: C2FEE32F01CF7286A842640EA567E72C6D, 1C75B72DAB121DFA92E0
18: EFA5D06D7893FB8838B11F6EE745EFC7B4C9, C35686D9614C5CFF5042
19: 2952B4C053863843DF919DE42C16313F004C20, 16E732518DAF4D53EE91
20: E3B955878D155BD6EF5C7004B7C1C0070FE58837, F7AC8CAB935E25D3B60B
21: 814E249428BBDA22153E7F9890C2ED13A12E7FF796, 90DB2820D9ED24F495B0
22: 423B09B9B924F3DF2AB79B023315ED129AD35DB6C355, 903077D977DE16023EB4
23: BBA3C10B516BBA84C4AE30CA1D30BB6CFA01A62D2DA51D, 8FAF683CA483C08D19F0
24: EBE33C6909AB4F9130AAEC030433F0B6082FE48280299349, 06ED9D0C70E1708C1CDA
25: 0731BFCFD73274E1233576E46359953B852E4CDC6F5D940DC2, C3E13A2F715964CD50B1
26: 7BD05518DDA1362075328AB5D6792B32DF002201CDDF0C4163B3, 5CE5C0EA28530ABECF16
27: 2347262087C438900B3F062DE1CB218F3294A2DC6FC89D6E156CB2, 44711524DBC951D47013
28: 072794D15FB5606DB1B3F5674AA7A0D5F5F084AEA821D1BBDB2DA0AC, 2D145B62AE69FE18FDDC
29: 1AA2C2A99FB394E2E196A15C4FA6A4F9970E23CC77E81A60457F887CEE, 9FD6B58E58338112EC8F
30: 4CE0A9C194B734FB8B8308D143B22E72A7944618C116C5E654FF920F8806, 763C4501E43F8C46EE55
31: 605C37F65FD61722BAC0EDD3B62F4BA914D845C274A787A799CDDF1AEEC593, 699B0E4E6543CB996790
32: B86FD2A93AD6BEA3CE66E2197EDA1472A88CB6387B52BD3787B7EAC902D0E6AE, A50D2586D56EA6A4037A
0: , CF446313FD8A645C60A1F40B
1: BA, E6710B7C2A78D47A71B26ED0
2: D960, 5AE6DD284A9BCAEB629B8B9C
3: 1EA3B6, 58C0191319B3B175DFB6820E
4: 16D9A97D, 23B0E4303897871DC9734F76
5: D4FE36CEDD, 2D72E02D57DAC751AB0CEE8F
6: 82AAFCFCA3EE, D63ECFBDFBBAFBEE8C00CF61
7: 55C7E7A8779CBB, FEE082A28CBBB2B5504B3414
8: 076486EFF93766AC, ABA77A4DF2FD27B5A0507CAB
9: 7B0E5373DA867FA7DB, 2FB53922B11BB3D8C15144ED
10: DD5B91E115AD19D174D4, 18383C7F44B6F5DCF65E95A3
11: 84C0104573997F38F4FC51, 2711D58E7F24DF402548A10D
12: 9859F1D7D63959863FC93B56, 592C77331635E7B7D265AE25
13: 967BCA6CD52FD98FBE37199954, D43E22B6810495F5B494450D
14: 335A8C490422FD163288FE4A28EF, 3406F283825DA98DD9DE8B68
15: D4ADBDD5735D58123BE9F36413CDE4, 330CCF19D96073732F70D752
16: 896BBCD89FB64E867A1F73D5EA55F2B5, F5A883514833FD74EC516780
17: 0DF532EF82C39EF0CFB18785A6DD2E7573, C79B51B38414CC2FCA5D0D4F
18: 70B2DB970495C94E83B711B1E97CBA10C102, 967308F53B7AA9028B0B7462
19: 91864A1546761A3835B05F85916BA78D9DD4F1, 89CBDE61C0E2AE5FBAF64DCA
20: AF713FBE34DFB615BEB6BD2CFF119011FA7D1D51, 5DDFF3F71B8B9CB7354A74F4
21: 7549D1DF379C06A8C6BB1D285BD72513D3E846DF92, 5A4E0B4680BEF36609CCB39F
22: DAF7F1B830B44D3DF0C9EBFEAADEA5C7B05C95FDAF99, E07473B038982705DCC379F8
23: 04B5B1FA59C850080C443021D56D05E38F3F0E8EDAA431, FED7EF959CAFA4C46F287642
24: 2195B5AC30D18BB4B4E2CF4ECA676AC969D4DE1F75431CB5, 73CBF496CE3865689FF6940E
25: CABB3B3E015FC40A552997218C19EA9CA46AF3B8C112D2C851, 5E7D1CFFE431D6A789A0B7E1
26: 5D7AC58EAC3F9733B7DACD3BF010A2F3DE58EEDFBD08C90012B5, C39BE513008766FF434FAB59
27: 9EBDD6B64335CDF1769427E593FCD2252672E5BB26C6058FACBAA6, D67D59CE706192BC7A86FE03
28: 12A6AFDEC392297EA69122BFF101E854AA2443DCEFB1AFDDC68004E6, 1E39B518AEB583A8B9A5C0D6
29: C120BA1C6F4FB5A861EFE07DE75568383AE5DDDB96A112D9D7CD9DBB62, 992705B0D8F95C60D5CB6C3D
30: BCADA89F88D120CD55BA00E9BA4D4B670B276D44B31903F5127957D20818, C512451CCC3A0ABD6278DFC8
31: AEEB302F3F3A97A84FA98B2B01189CBB928A493D799A0317DC8A007B65B1D1, F6856D4470B16F3B8602E75C
32: 5AAD53E89DC06F1E84A2FD8CCDD36BA6F47D14D01F04D48EDCC27E948BFF683B, 38C20D94346AD5403738686D
0: , 2563E2D182ABFF2B2EEF6852B554
1: 33, E277D16A8F3ED557E38BC608AF5B
2: E20E, 2784623E05CEB3B2E31FAEA73525
3: 42F4BF, FE14A557F49C02F3966DA8DE2668
4: CEB2B732, 348845C86E91F3E1A4C46FD72E65
5: 264764008F, 857EB830B15A7EBA1B3F5CEF215E
6: 518CB1ACCE9F, B005EA47FA5E72068A61C33520F5
7: 4AC3EC55EE4A95, EC9F7A18965C68963AFDAD26CA19
8: 2A3C1EAD95B0D45D, 3D8ABFE65BAB65ABA4C3194FE54B
9: E6D901C91EF5EEB339, E4CEEC4B44C0B1CAA30FE6D33B19
10: 62B15A5948F36EE3CDDA, A56DD8F04357FE86B023932CE8C9
11: 2B27AD3AEB7CB2A587582E, 42A9242F68486EAC8B1FE18F9AE5
12: 21D108C92B48F6263277544C, CDF154F44F007FA95CA5AD5CA323
13: 4590D69EE9952C64CCF310AEA6, 9ECCBB7E655041AB6CEC41668EA2
14: 60B1A210E4607F937A9FAB8E079A, C837E2A448ABDD83DC197C9D893C
15: C8C4124CE976A68A1052DB25F51BEF, DB07500D19EA150F14085DCBE400
16: 71A756AD320BEE7C513F3210C088CB41, 900127FE0997B3E79A8880D62D47
17: 133BBC8ED72F269A5593A10E537AC801C4, B5AB6682BFB669C82BEE38242DEA
18: 3AA44688160403908A1C2FFAA9F8D0B294B2, BCFC5616590F8B53B97CBBE9F5DB
19: ACF6E799FA4C0B86C8264533A97B23080E3C1D, 80CACEF28CCCAC0DD0EF90B34917
20: BC292FAB803E3901330ECC533A38E50444C5BC19, 2EA5F7D65B108F2C5AB25BCA8EFF
21: 0A38406D1C466372639547568C9C717B8A1A075671, AB960902BFB1894C3BA2B3EF945E
22: 546BA94CC4820534F3BD3C8D8A6AD3C6F0BA38E027CD, 03EE97F7054AEADD82469E31F61D
23: D6112621EA3DDA4F274EC177E18D834EA3BA6F74F78ED9, 886B16339C87449FA065E5605A0E
24: B841A97227036C16488E6F4B0A15CCF986838BFED41FED36, E1F8443E0E9048CECBD24F323A5F
25: 714AB86C76F68F9AA867D19BEE0DF20CB32703ACB53E53CA0E, 17888526D8B19FA8801281CE9D72
26: D89664AB9A0F888A68ABBD63A1658147CFE15C36BE8CDF0F7DDE, 83F081F0CE749542FD39640444D2
27: 1F4A486CF0CE22B1692B473086D9757A4A3F32DEBD003EA8C2D414, B2A1A82D8578D4B32848A5EDEE18
28: 090BCA569B1E36CCDD12EFD7E560D2CF4CAD081CAD475D62D119C8B0, E5F18E4189A3F3AD2EF04A3341E3
29: 1DBF0670C27821B66210D218C5CD528DD1F2D1BAC8CBA9CC1B3A87CA04, 2635F425B1FC7AAA8A082C0FFBF8
30: 5923092213EC6CA393B8EFE77F93371990CA775CD592E346A17C4E460DD4, 56F733DE7E0782550C5D70CF6021
31: E94FBA8D5E23F50247E4A76C765F8B7B1282085D9E0560BE2B9B0DE38F7C7A, F40237AD42C339343748A2AECBB4
32: FCF4B1DC6A66A089AE1C490719F237F3C5D54815AB15002552E40E6DED4F7116, AE0190342133297978F22E2BA7CC
0: , 90AA97B50C07B986CB22CE872262E5C8
1: 24, A17C03DE0302D7075560152B9B571296
2: E71D, EB34CB795E72DFE8E23DA2497A7CCEE7
3: DB282E, 22FA05C05D5E39954CA3A0721AD895D9
4: 4A8CD9F1, 92AA478A5481E46D75C78E9ADE315EDF
5: 292113BF17, 9D9928E79D69A5529228A768DFDF9EEC
6: CDA03305EBEC, 494D04B066BADE132A572FF91E9ADEB2
7: 8405AFEA0C0D0F, A19976B5AA565B22AA94CD53666311CB
8: 07F1CF1261CB2EB1, 642D12B2CEB9EA5E51A4BBADC899B62A
9: D40F09F568AA18A5D5, 51106D7E38E82E4224936E6BE87BD6FE
10: B9FD96EEB4C083AB8F24, 3EDD1218E5D0E7FDE7382256896E9D50
11: 7A92B4B1D48FABF1E3C4BC, 85008D81EEE47EF5EF9CF1ABA5FA3192
12: 9A57AA2A53A20903D012F2FF, 42176606CD9761644A50734143F1BEF4
13: E02FC265EEDF4E054EEA9B67D5, 7E8C4D257585825193841E98D7817167
14: 8A4151DEA78733E9B0BF30999911, 532BC2053D878AB7B5735E5E76416949
15: 2B731483944FE17BDED1C4D82E445E, E9987032CF901151B2BC633C0E955A24
16: 3FE0EC707A6E3C6139A598AD4E33E691, 6D720C056BD515C47C7020740E4D9A08
17: BAD9E039C3484A82C34DE809C0192D8C44, 06FF6E8854A56C5A087FBB5430C7725A
18: 44B84F959B9F49792AC21434934F4ABF1AC3, A009DE1545E568F01E07F260AC40A7FA
19: 583997186D8178E21AD153F092CC74066FC31F, F7965FEE8032320F8CCE9B071ECD62AB
20: 7D92C03380F205831C12375ACC8B3D3A60A603D0, 2BC6032B17B8E461FBDE288BC0B86F24
21: AFE60F59BF76FD749F376C07CBAE1A5AAB3FDC47DA, F06CDFE41A4A7A257BDAEE38A1A6C51F
22: 777B7AE4D0CCE4A85EEA7C6AFDD873B4A24811E6858A, 0CDCA826713FABED9A9A5233592998DB
23: 7A7A7D5A0E62DE9BD11BF575500EE1BBDC92118503C047, 7891D8A92A433DF21E23AF5678DCA245
24: D24E417D3CAB127A903DF61787C4267A654D54ABAC40B881, 02B4A82A1D8EEAE25206E09484E8F21B
25: 3AE54F568B547BE4FB08DF08E66B857A871C1ED089180AF2D4, 64380971D369C2B3B3C406BC496917D4
26: AE93815622C1A312F649EE0C43E2051E3CB6FE89FA2421CFE971, ED0B5E2BD855ABFE30CB4A1A456B839A
27: 1501CF3202EBDE271A744258A8B05E84DD004B7AB5212264EB1AC1, EF09930B4430025D38B3B1C1B74B37C2
28: 9B144CDF671DAD15F1C6F831A784D71C72F5A32F3C7EA3B9C6718D5A, C79C989950E567CB39B4E973CB016676
29: 740E8222265774D1D1F284AA87049023C665F98F27D0C38966E3D61038, F790E6A40C16F92EC7694C5C035A9934
30: CF9DF272EFE7FA591E354CEC9EB137326A271388D709168CD54FF6C60993, 7C1D7575DE7AC6300CB4D1D18661B4A7
31: D9060D154C44B69D9A78D6120CEB0ABDA7C1F994639CB6D2343B5BA3FE5645, FD9F4A81F1C4618A68A32C79C53BA8AE
32: 39210B2EE8FBFB0980B0923AFF21098E8A0433B3DE9267FE5327C25DA98243F3, AA120B8DCD6AED7F118E313492799988

View file

@ -2711,3 +2711,161 @@ Key Size: 16 bytes
49: 5B63CCF731964AE0
Cipher: aria
Key Size: 16 bytes
0: 3695A47E0769B8BC008F08A86CC4FFF8
1: 55E66FAD984182821B6AD5D04910E46B
2: 3AE9467D43627664AE5A8105A9A92F76
3: 9AE2A40603AC6CE3A83358214C2C4F2C
4: AA3AB3178CE134B1B98D810F5F0ADDD5
5: 379606E74A852BFFF0BD46D566D5A5B4
6: D88024B37E50CB5F6C68B1625F430DB6
7: F3A98DA54E2510B251D85367F6326DE9
8: 26B9CB286EF66D579DD6B844508CC25E
9: BAFC25D2C3D908FFE726E4A9727BF495
10: 355753896F22BB2AFB356F18973939A1
11: CF501B48BB560B6B41648A84D97A6734
12: E7BCE3D6E563A0B59D3EA246DAE280A4
13: 45430823942F0F9DF101BCE822821F68
14: E567EA19718B1E2D3DA1B0961D263223
15: 6185A0169F25832D9BD96113EBF9AF98
16: F67DC68A640F7E963F7E2E7081C746D1
17: BE282B5B8F1F3B21E3446015819C7D28
18: 6DD329D41BDEA735C42682B86620543A
19: 478C6FBF37920760C3D1E6231154BFA8
20: E779DA9F7212FDAFD4EDDC1D36CC4B58
21: 3B907C49703FE80B3021C74902955059
22: AF5FB955DA202FDDB0D798DD80E8B2AB
23: 394CC417848EE5E97D390EF835F5410C
24: A085C4F75C52F4DF1287A0C0A31443EF
25: 7086F322EBE1C7F0C47874A234ACA6CD
26: D45ACA191DD34634CF1397DAEF05F5C4
27: 8763982FEB2950CA361C52CFA988D249
28: 2526AC457E3273F36CD5D64B357CC1E1
29: 9D66F9FEFFE623BFC8813D198280957D
30: 1E62E9A48770DCF368300C7D94862166
31: D08DC945AA802521DAF5B1366312E565
32: E281AAA3EFADB713A1CAFEC7D9869B8F
33: 7DBB3C8A50DA05DCB77F9534378FFF04
34: 6C51128A9C52F900A6CA27D4D9F3D8EC
35: 66774F28347AC500B96C15B7950CA921
36: C3BC7CF80C6690370DE03564280C6296
37: F14FFD45E1843FAF42D377FC5519B224
38: 388BA2674166A18EF8A8B9E8CCF19A37
39: 6221BE1657C3C23033E7C544F2ACA6B1
40: 3B812BF3986E2CBF2944463C11920DFC
41: EAFC40F1CE618EE64E77526BB98D2819
42: 8CB89CAE684318CDBF67357EC919DEE8
43: C0BBA8DBD8ECBB8F05B540990D969D04
44: F847097D4A7612BDFEBC46A66F93B9E7
45: 82CEC54B264E47BDE31B8B86442F9421
46: C820EB3A1BF677241CA55558956AEA92
47: A50FA76E1F393450BA957B3BEBFE5645
48: 3F98041E073246C6686888FB0B66DF9E
49: E776B3CCDDDD8B4B5B9E76B2C5B5FEE4
Key Size: 24 bytes
0: F8EA29AD7147AEA21BAE5E6FBC072043
1: D8C9D25F9F17C017F7CA3315566A99AD
2: ACD004A86CCA4C5A2FEF97E67F6A5D42
3: FBF99B1D7551207B6F3FCD2A5C7F332A
4: C81E841C0B226072AAAB5F3C8A2C0DBB
5: 264C640CDFAA39AAEF93FDE8B2617197
6: 5F81807DAB5FB538287288EA67FED679
7: 08E50137C580DDF0D97DFA3D13EEEE0B
8: E9C4F0C07D3C13AEC0F32A35C526F7E3
9: F769DEF392BB4D8549918603A43866F8
10: F03B155CFF8338D7D6EEADCDD237B4BC
11: AC785DC1D7D9B66B1AB4477CEC915FDC
12: C531AA347A3438995CCA45A5BD852FFA
13: A2FD071FAFAF2172CB818CCEF5209C3E
14: 335213D8AE4D5C05146E52166F90A565
15: C1508EC236C02EF9C4DDBB7D29246F63
16: F49D498176557784545F015A7E3EBEA6
17: 2BE9CC25FB15FFC39DB77E8636FEF2D3
18: DC579EFB38827165FB4FC991234B01AF
19: 2BDE9D960FB95E81645CF2E8D7CC485B
20: EEFD756254227B095E103E0D2DE1B681
21: 031B3FF77B524E9E74AC644A73ED8F09
22: B999A6342B941BCE258BDC7F37D8887D
23: A934B1ADDE23E1BC6C5DC64EB4A733FA
24: 8ADDB0EC58E24B3426030D49A3D90E01
25: 98711688EF7599B5360951C2FCED1120
26: 0BDE2ACC4EE241B4359634149344FC09
27: E37AAD591BFC42C4F2D09B27458FC6F1
28: 17310092AFE8144E6366EAFD4C07B44C
29: 02E7B2B49A7A1C0A96B74076ACE41754
30: BCCA7FE26C4C05BD5D2533E2019D21BB
31: 4A640FACF036C738DCBF2EE58D9C1E97
32: EDFE6F4C79D2F68B11B23CFB4A89E2E7
33: 69CAE5D89958BCF7A0FD78EF28ECA55D
34: BAD69A5DAFA57262055ADE11A81D55AE
35: 5132BA5DCF0998D9861CA7C18ECBC4DE
36: FCD6EBF03877BD3662EF785BF2BAE964
37: 51E2BFAF6E9A3E2E5B0206F0F60DF493
38: DE6DD7322837EB4FE1BA974B7AE4D472
39: B9ABA31132DBB35D61F9CBC4437EB722
40: A341DEEF979581A5832633C88FD0042F
41: C1F78528B8AA0B83E7FA8D8EF8EA69F8
42: 99B12F98E888A0EEA34938A6542C879C
43: AF0DC93FC94F9CFE2973129D17F18BBF
44: 0220334326752A04DED075B6BA229D5F
45: 37A150872EE52C2E543F8619D47FDEF3
46: 8CEF792935CB636FDA26A8AF30E8528A
47: 36B8D87CCCA06E8B9DB2F29F3E858A73
48: 042734CDB7613040E45108378B6951DC
49: 0B39A290BA404D25D7185796402AD202
Key Size: 32 bytes
0: 7A859561FF6F42DF04A242BFEA4FE9DC
1: 20540CDDDFD2160AF4A55D21B9A913D2
2: FD3E564A447B29CA6208B55B16006BEE
3: 07CB348B6E05F3245A8981E76C6DE1DD
4: DFF7C4DF0632B2606361CEA72114D525
5: 2197CCAE47D3844E853DC3C8602306A9
6: 35DA6E1A1AD475B95D184F6AFB64A65D
7: FD151D1B78346527C6543625BE9F720E
8: C67F97EC96BACF270F246EC064C6CB21
9: DF35B84B7A0CF56325C4E3074F1474E6
10: D5C7783410013D10A92EED5D4E479D28
11: E674734662089B404A5EC46872F9CDA2
12: 19AAAA10A0AAD38215614E2235967F48
13: 2E6B255992B4FB5E6CC80DB1D10D9A15
14: 88D51AA86D66783281BF217273EB7DC4
15: AD4B57CC3DCD1378092015F1208CA988
16: 01889F84CD5257EE14D0A3D75E79C6A0
17: 5B009E244DDE80589443B726F81A873E
18: FF765A4C965D326B5F354BEC2A20FC44
19: 6A2E424C6C29C1994932148AAE26989E
20: E4EA98370C90BCD08268502422F7D679
21: 3DE45B7FC95FB13741E1E917FBA0EE6A
22: A078640BCFC1C892028B72321316CBD7
23: 7989791F3005CC14FCB8D65A5766A935
24: 819133854C6B0A03D641F9ED5B4F81C7
25: 27B2D93F3FFBAE16A85C4F7822B06BD5
26: FED3206F3B3AA98ACA902535C1745D83
27: 2AADFCDC9884FB73305BCC847FC0482F
28: D157178EC248E3A17DE0C365BA370299
29: 54BE4FE4EC6C0A7E1A7BADEFFAE6543C
30: 4A99D84F1D6BC17B7D1A51875478B169
31: 86D354A1F80852974C215A0D3340B122
32: B42D7284A4D393FF3B9A651C043CAB76
33: D2193CF1BB4DCCD3BCFD615D12FB8ACA
34: 7097ED7BB156221EC99FF0782EC4FB03
35: BD4293B0F1CCA48367E672C976FBEE64
36: C9272C36FC3CFF79BA725E3388386A78
37: C26DF02CD377ABADCF7C792AAA28F22E
38: 75D0669296A1423D6E59E3A11A94080B
39: 5EAA7227B51A993B396B5306388D4B7B
40: DB92537C3EDFB4A97C5FC12B1B2A41A5
41: 973D6A28FC0FF2B56B9D76B16FCC19AF
42: 8E104E5678718A7356A28F162F294D1F
43: FD92D131A1BC8C49659FF11ADF49BE76
44: 234CDF3DEF8151B919B56BDDDFA0E5D8
45: 3416E08B8DB741DE80FE22D7F90F3088
46: F25E353111BCD3E16E85E912082AD9C7
47: 3FF977A7D4EE198ACDD08A6C98EBA72B
48: AC240B97F21B0536CA23E716C333C9E6
49: 42CD43E39EA52D7C5904C4B24157996B

View file

@ -694,3 +694,38 @@ EAX-tea (16 byte key)
15: 457B9E88FD12B1D508D545A5EF74C2, 7A03467F15043DBF
16: BFF0EF485331FAC285BE3B9DFEA372CE, FE06E955E5EE5930
EAX-aria (16 byte key)
0: , F185A77011AE5FF024BE604518A1EAFF
1: 4F, 5A4D972501DB2B9D9A2AA17FFA517B36
2: 1449, 2DDBD36696DDACD6799F3E1BECCD48EB
3: B649C4, FA5D60EEE2F5C0AD5179523742E87B1C
4: 91C1FDCD, D283F0C8DFE4A97A52914A02F7E35B33
5: 0D15000B03, 4268C8904D50BF94BBEAC6BDA6EC1CCE
6: 900A3FD2538D, FE52AA79D98E9A43F9D1F9E29A331809
7: 839ECAD087A1B6, 742062F8759A6DC74D58C8C61F862B56
8: FB302E87C1B96FCB, 5B79570CD6AC1A1EBFA376C4798095AD
9: 5FF3A012C633B4CC6A, 7C054B1C6EE751885630B2A92FAF6BE9
10: 87A3A7283E9B40C141CD, 00912C6719BA32CE8269C1008144DF31
11: AB9CB957617E783B2B02F6, 07B4C5BB517551897F32FF55ACA053CD
12: 2957DECEE9C214F6DE046479, 19451013D0C44F97EE1078E83B8D611B
13: 322D7DCAF0E8F41065EA9FD797, B715D9BC1BFEFFAAC7C2891A25047668
14: 318FD07CAEC7D0D1223EA2ECF242, 4E94AB2B44E9B63C6AF0ACC68676A110
15: 8C9E0AF8A5120D8A86775D50CE06A4, 3C5C9579C468CA971835F7CD580EC9E8
16: ED1C246F9C3FBA08830A87E757F908EA, 3EA59A00880A61FB18971E3D78A4F426
17: 97F0DDAA0CFF8F1361823CAFC1D0CC0063, 9C11F8332CCF5D317341E052B628B6B5
18: 96CD5793C6A3816A7986316F1642E0748FD1, 4F4D3581476BE7D5316D6DAB4A7C7B0B
19: 586564B8AAF406D003223E93935F8D0011D27B, 25684388BBD30917774669B445428102
20: 638EB00875761A0F4CF276D200D8F2F2BCB75AEC, B8061E7B837698EF855528AE6D899103
21: C9E438B63857D7FDFA858889FE4A755BB000348159, 482A9551C6A40BC4F88A9689BFDAE457
22: A905C47F063FA0BFE5794F56C71D4E1A34B9006F9C39, 446FE158D13D9866EDFBE051BEF2F994
23: DB118B2A3C8BF87085269CC3F0874C20F075B1D7E49BB9, D0A5126BD8BB4B1EEAA4EA250FA2D1B4
24: 6E3969111903437FD3A666B30F24782C21340180331441AE, 754A5F33307702AC9BA5455864130FA8
25: D625A2045CA6557ACAF4D68A8D77E09458263D7EF053AA85F2, AB2512561CE643A27CB8783E845A48AD
26: 56AAF078D444A78566B5032D725D252BD62499DE196BEAB9CBEB, E5DC34D84457B1E6ED6C94D5B317C280
27: C45902F58AAE867AEA2A04AA440AFA61803D08D59FFA15640EEB41, B1D00ED9B3F2471FC643E74FCEC1CF31
28: 64F13A8599F9297BC84686FA0033F20827AF27C55186495F66BFE25D, 6A3BB6A711CBBF0BA8AFA355A53A355F
29: 376A701BF469B9CF2C52BCAF9FEDD93C4258EBC4368926D2462F177160, F2246D580085A981373B9C07A57CBD6E
30: 2A90205AA92CDC87893A31A2DE1B4A334C62A3646CB218137F970AC602BA, C50403F076F38EFAF68BB2D4872035A3
31: 9989A35D07A20179A5BDCA2ECBC09F16593B1CB0B6BC66CD10755B44EEF3CF, F59F46552C0350941809788D067F1B5C
32: 0564682D16FE78CC5A93438E1662B2852A530F86B3DEF1D424B6A44FE04E4D67, DE7265B9740611937190B77EFCA574F7

View file

@ -342,3 +342,37 @@ GCM-serpent (16 byte key)
31: 4331553A74B44F279B6B007E9714322105AE73ADB83A7FBC5A622DDFAFAED6, EB4781C244484C51A155F2A0F78D38FE
32: 855378D251F29B822948E3788176E96247B7CA292D4DEF383FFD936BE3F7F42B, 6A08DF742301EED938AECC730D187AD2
GCM-aria (16 byte key)
1: 2B, 588D8A797D5CEB2AA14B26B23DE380C4
2: 0724, 884B5363AB5AA07AE0C8A410BD079A7E
3: 44018B, EA3C6C6C053E06CCCF16B6B32855FC66
4: A5DB6607, 7F95AAD5C450A5B9DC0F57DEC357AB68
5: 9B70EE197C, FA09A2E3CD4BFD3DAFDA909D111F80BC
6: 0F23E0728B81, 758C5D228EEC2A3BB515E9B36FEA1FDD
7: 038F215412C0A8, 12F30C9639C93BCC4FCD8F12F182B6E3
8: 1D291AAE5E5C8F5D, 2DB28263C719467FAD40E27778EA4641
9: E3DE58E2B25B6FAEA8, 64C197A174D8198F349253F60EBDAD81
10: C08DE0A91662B88E9D77, 98CDC565E1EC01AFDD1C4161C2C33281
11: B6CED209A6E1F65F3DDCD1, 5F6D9CBECF9C803BAA257BE52796C3FE
12: 4A42C425D548FD9C821D77F5, 321EF78B7C41BCB774EDA7825894579D
13: 6E9391A1E7F005472C977B2A29, CAF81BD97237A31948048F99AD1E0E2D
14: 730A2CAA7C6A0FC93F9CE9B3EEB7, A351C84B4C70C3CC231DF1369D89AD69
15: FC64D7F6406569814B6C3CBEF0C38B, A0C355049D2E7428BC5E62E276C31A73
16: 41F9DF6FA26922ECCB989FE278B07AB7, DB4B01EA6F44397A3FEF8E323B5D60F6
17: C408D91E56F31F3914BDA7DBFDF6896195, FEC1FB48EA866788272445CB572190CE
18: 652BC2873039D4774F41E73338D5D67D912A, 77ED1D0B0EDBA46AB71FE93F00B4B9D7
19: B6933250A2EB77EE9B45B7A565A600757505E3, 1185254D942974C01A62F8069F910C27
20: 2AD1147927FAE72D54FB7C9972DFDC1D04B22B67, 86D6D4894A8B545937B649924DFDA239
21: DFB11C924CAB8478B5F760BB6345394BE8059B93B3, B20124792ABB6CE18C8B7D8A1DDBECD9
22: AE9872F53CF169D205684F14686B7D9B2D5026E54E1B, 8F8E9E7020807E13125157698A4DFDDC
23: 3E5A6D47BE6BF6AC6671BDCEE57357A92EBC0D6D00145B, 30E724C92A189C869D73CB69D3FACF4B
24: 74E0639EC83808E217A2B81D5B8C25E5E1629E3C8948BD24, 557B10EF8C133072267BA2C646DBAEE7
25: CA74B6109BA5591E29AB3405968F383234B18EF12B39AA3151, 670C1911DC49E03AAA0928B15D4F304B
26: B74784A0C1A346A3307FD9F79361EED8CC99A5AFDEED56701DD8, D513308E7F73B9672C2E47C1DF3CD042
27: A66B9C824790EBB44A85711E675242421F40F915FE41188D9B4AE2, 62B6B7EE20E526E2E711A5F163E26686
28: 6A2F04E886BD16ACE2B371A3F9724009A934F7777DA52943FF7DF947, 6F8E87E8EF5D5DBABF2AD8655BD8D083
29: 1A22F02D01AA1F20C4ADE774A02A91F98EC77C5CBD1FEE5AF11567A6A0, EA8D55F23CF93E4ECF797C7EBF8117CC
30: E2EA78F8DDEEF6E2A3D296EA54997FEC9E0721926F72AE9097A0EE861085, 40A17EBE8FF9271038FE7624139E3C7B
31: 2AA70145E304090A0CA4E12EBF238573C8EC8749AD048D957A869E4A4E221A, E6FF72B33CA247D666084CB696085B48
32: 05B4268A698F214E5A05BA41C2B010F589EC063372F9C019D311D983EEEC4426, B5A5601BEF292E284F5F73AD9F1343DC

View file

@ -352,3 +352,38 @@ OCB3-serpent (16 byte key)
31: F7435456F02EE5ACE92F7E1F29D239A09AEB487BDA78B08A40837547CBFDC7, 86E15E8711A93AE7F89808D21BD69AD6
32: 9D49A127710AE66D612C8E7089CB254523109DFBB0ED2A3E44412C3BD81326FA, 624FA0DF639EB14A5A337273886E6CE5
OCB3-aria (16 byte key)
0: , 9A8EA3D2791D38324C9BACC96BCF82CE
1: 19, 446F5F8D49C6BAC154EA8384E64A1D48
2: 5A83, C90961D9AB29CECAA99F951A95D23F22
3: 807DDC, 3BA6934C1CCE61E9EDA066E41EFF0AD7
4: 327F5BEE, 0318AF9016A92112CC543E031A1A51A2
5: FFF8DC35BA, A026C07E6DE112EE2B8498A8F396042D
6: 5B5F1FE15EE7, 0318F0DCDF6E9773AE2E37D5C5DB5A99
7: F2C6EB3475234A, 9D6110EC3D8B616F374EC39F6C275D49
8: 4AA76358FB75F90F, CE3863400E138EFC71FD4205CBCA5D77
9: EC82D7475865843ADE, CF515D04E6739F3A0A8B819BA3515A33
10: 19C4E18F818398446949, EEAA0AC20B13766BA15D95CC9464097F
11: 86F1E3908368E3084DB6D0, 9C00BEE8D20E35EA3EE3F81FB474EF42
12: BAF2D547F49B43A60418357B, C2C9BCF9F1B5CAB46DE38E175592BA3C
13: 5BE6212E3764AE40213683EB13, 861258B08C082561494E73768222ABC9
14: 4C17C291FDE263C277FB559D262E, 6E605A88B38F7E5306E1DEB145970F4C
15: 6ACF32B0ADF1AB382DBCB3F8ED4EE3, BF32F0C42281A24024E0BDA55F67F649
16: 42DEF2781B15E36A450A4764841EC4AD, 787EEFFD05338B32935225CD9844EC5D
17: DBF633AEADBB9005FA8A21310AD91C7EC7, AC70191276E1E5032FBF0BB14E51F68F
18: C22A89EC15DCB4B5B3E168B2A424FF4D30E6, E4DD5206C09735952CDD742D889B4815
19: 88146C16D2B00FFEA71408F72093290406AF1A, 51DCCA474F2AE7D311537B0D8ECCC061
20: 796C82E676AB7954CDFE20CB7CA708EAF78D3884, 09730904D0C499AB8CF493A0B02E438D
21: CFD3CBE0AEAA34880FD193D5F4DC4F6102AB55C93A, C5FD5C351C0345225B7EC8D8D50AA580
22: 2318BB06AEC36FDA7827BE179C75E5874CBA42FB9F02, C4A2C3EFC2E443A8E13C73BD5F8B7A38
23: 5FE4AFB1E643F87CCC1E82118843B116BD6A3CF0096666, 77840F0DCE8A8C51F2D77B2634C71302
24: E25A2D277F5A592901159534E947F0D20F448FE5F5E938E0, 1966E0C0E2DAFE83C904B34389922564
25: 67F94D9AC1D7B65630E24D4CEDB286CF8B6C0BCE9B750BDF4C, B1D1E6C0E7FB73F65FD8D1C96A3741EA
26: A22F24E4543CCE061DFCE9AF3B8A1330C6B5FE47B0D16AC272A3, 1C1F0D79857F79A6A8B9433992E8D959
27: 83AC68A0B2D52C850FE35E88215042C69EBFBAA1BB778BA6D7BF84, 2B496731C5EAEAECB8600B9E92A9544A
28: 106FDE139F9930C3F5AC457D22B11F779D971BB24DDB34DD602B1364, 56B7B8B59AE5F2AC8F9F31296082AC09
29: CD4AB7BD24BE095D9503EBCF54A338F4D85A9F7932D97DA006C82491ED, B7DA2A86C88D7EB2580D65F30D15E546
30: B5173B221C65F10D09F2EBD46B7F0CD06E8D75EEF0FC06800BFD68A656D5, 174B7440789F41C7882A3D8C4F988FF7
31: ACFE0D3632331B2295274A572631E9A592554B01B24146175000C00DA69348, 97C729946ADC709ED269C1829E53109C
32: A9981E51A873F0E175591974DF9EF7079FFE785F7EF7ACFE76618533C0FB490E, 827005A3E65F0E018308B32CFEEB5AA9

View file

@ -694,3 +694,38 @@ OMAC-tea (16 byte key)
15: 33F078C713C6DA61
16: BB936D1B0427DD4F
OMAC-aria (16 byte key)
0: 67A59B2EB6F1FCBE11D03B919CE21D74
1: 217E6B5334A102372909BE481A40096B
2: 62717F16F92963789D11578B85F0DE38
3: 5DD6246AA71A202591FB0F71F7768B13
4: 254F7E8EB8E07CB75FF2652CC8B7BB99
5: 96FF1A46353CCD4384BA76C394A32AB9
6: B879A9845200C450633F7F08E1825463
7: 2E8A63D5EEDE87C132953B6DD5E6D1DF
8: A9E9B43F84B32897843B941FB73858E1
9: 45F43AFB9D05DD69C12965A073EC3C24
10: DF03CD63C572DF4CD5537F528D0163A1
11: 300F0A6287C0F502F1C61E93262AD5B9
12: E01203F8B448F38C11DF3D185ECB9098
13: 824CEE843D99CCD59BADB05B1094D5ED
14: 2C30622B448B6D29BD4712BB8C0EF9D1
15: AA4AACCFC4C831482C1E03180AAE849C
16: 56098D3E4A8E4A5DBD8813E1CBCE7C10
17: 299E1DD62ABC03BEF1F4B16DB6EE5DA2
18: 0E4A1C1FA5168D5EE11958CB239FAE3C
19: 347675845EE92E88B2F3CA39D83913C4
20: 277EA996C0644D9160C19A0A110F2F26
21: 9EF273E90ECF4B64AD341007F7665004
22: 72665C1EC2D1ED3D388DF9FCB52C1548
23: 8A286DE26FBEE852CA9EF042E090E33D
24: E20999726B222B05267291BB0753B4DA
25: 4724172D40E10BFA4E459C3BF2B34250
26: 352854D9F47B1EC253400A31B87A2F82
27: BFBBCDCEBA180255FB2591CEF984A919
28: CCCDFA6C6BE9F12E50855EBE11A99993
29: F247E6AF74BF433C992C376B61C94B22
30: 7D76C11A122437CC5A839D85B11DF173
31: 3485958402AF7C6A606BE91F45734EF8
32: B66E63BC0D9523C93FD5D89E716008B5

View file

@ -694,3 +694,38 @@ PMAC-tea (16 byte key)
15: B63413E18BEC7ABE
16: 200DA2D5CD5B9AA9
PMAC-aria (16 byte key)
0: 2CE69C7A23FC33E16BCE520FF817A5B1
1: 3A0A6074E3A355AF2B01EC6E2A9D1743
2: DE301897CB79D1433F1EF129A7095D7E
3: 42D58203CE8A9156CA2AF2DA8E73E9A7
4: 3FE6DA83BDFF1BCBACD774378B240A00
5: A41049220180391995DF4A1F5012537F
6: E7F61B5FB93FCA8CBF7444BB13169DFB
7: 818876083F41B10D64CA019C573835BA
8: 7B85D7BDFBD58647DD1D3AA70CDBF37A
9: E52F9631A00AC724B4F9F6F10E0C827A
10: 060AC14DE545A11A54F891C628974FCD
11: E3C2BA3377011C4F7460DDCAF2B09B75
12: 15D1FAA72C1D6343CEC360A79A28BC4C
13: F31CF0E65EBFE9E03C3AA5855BB0FEB8
14: 317B7B98E32E92290E1796C2F2DE8E99
15: FAC6AB8267C4E86917111C26A0F4AC6D
16: F4E050290E133AF04F6738E2DE072186
17: C21EC6D64D24E1F4E6C2C0C39684FF32
18: 1DD883F28421077EC104706AF0A19C8B
19: 362762240DFBB8AB8F23C3E3FBC64551
20: 61BCBB5E7AD28BF7639E34523194D886
21: FB033E6D2C3889DCBFC8C1A56B22EDD2
22: E548BD72650272DB7190E0AF423CCA6B
23: 590E55E4F78FA503A0139A0A7197086B
24: F6EF0C277329C94B04C6083712E12E28
25: 6D09C97F3FD331E5E010EC0239A6A701
26: EEEAA8881DD36342D614054FC74BF97F
27: 30F84E0E94898C3898065A1B4935C183
28: 73D68BCD84986788AF945A03CD186B01
29: 8B7A7DE1F289245E8F0E41D61B98C246
30: 5509778C82C66012D90F6B0C801835D0
31: 09D6855B8081BF8D6F5E9736A5A0D4DA
32: FE18CE0DCDC76D00452F1568A2F6D0D9

View file

@ -4,6 +4,7 @@ src/ciphers/aes/aes_desc.c
src/ciphers/aes/aes_tab.c
src/ciphers/aes/aesni.c
src/ciphers/anubis.c
src/ciphers/aria.c
src/ciphers/blowfish.c
src/ciphers/camellia.c
src/ciphers/cast5.c

298
src/ciphers/aria.c Normal file
View file

@ -0,0 +1,298 @@
/* LibTomCrypt, modular cryptographic library -- Tom St Denis */
/* SPDX-License-Identifier: Unlicense */
/**
@file aria.c
ARIA block cipher (RFC 5794)
*/
#include "tomcrypt_private.h"
#ifdef LTC_ARIA
const struct ltc_cipher_descriptor aria_desc = {
"aria",
29,
16, 32, 16, 12, /* min_key_len, max_key_len, block_len, default_rounds */
&aria_setup,
&aria_ecb_encrypt,
&aria_ecb_decrypt,
&aria_test,
&aria_done,
&aria_keysize,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
};
/* SB1: AES forward S-box */
static const unsigned char SB1[256] = {
0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76,
0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0,0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0,
0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc,0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15,
0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a,0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75,
0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0,0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84,
0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b,0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf,
0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85,0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8,
0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5,0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2,
0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17,0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73,
0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88,0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb,
0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c,0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79,
0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9,0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08,
0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6,0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a,
0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e,0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e,
0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94,0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf,
0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68,0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
};
/* SB2 */
static const unsigned char SB2[256] = {
0xe2,0x4e,0x54,0xfc,0x94,0xc2,0x4a,0xcc,0x62,0x0d,0x6a,0x46,0x3c,0x4d,0x8b,0xd1,
0x5e,0xfa,0x64,0xcb,0xb4,0x97,0xbe,0x2b,0xbc,0x77,0x2e,0x03,0xd3,0x19,0x59,0xc1,
0x1d,0x06,0x41,0x6b,0x55,0xf0,0x99,0x69,0xea,0x9c,0x18,0xae,0x63,0xdf,0xe7,0xbb,
0x00,0x73,0x66,0xfb,0x96,0x4c,0x85,0xe4,0x3a,0x09,0x45,0xaa,0x0f,0xee,0x10,0xeb,
0x2d,0x7f,0xf4,0x29,0xac,0xcf,0xad,0x91,0x8d,0x78,0xc8,0x95,0xf9,0x2f,0xce,0xcd,
0x08,0x7a,0x88,0x38,0x5c,0x83,0x2a,0x28,0x47,0xdb,0xb8,0xc7,0x93,0xa4,0x12,0x53,
0xff,0x87,0x0e,0x31,0x36,0x21,0x58,0x48,0x01,0x8e,0x37,0x74,0x32,0xca,0xe9,0xb1,
0xb7,0xab,0x0c,0xd7,0xc4,0x56,0x42,0x26,0x07,0x98,0x60,0xd9,0xb6,0xb9,0x11,0x40,
0xec,0x20,0x8c,0xbd,0xa0,0xc9,0x84,0x04,0x49,0x23,0xf1,0x4f,0x50,0x1f,0x13,0xdc,
0xd8,0xc0,0x9e,0x57,0xe3,0xc3,0x7b,0x65,0x3b,0x02,0x8f,0x3e,0xe8,0x25,0x92,0xe5,
0x15,0xdd,0xfd,0x17,0xa9,0xbf,0xd4,0x9a,0x7e,0xc5,0x39,0x67,0xfe,0x76,0x9d,0x43,
0xa7,0xe1,0xd0,0xf5,0x68,0xf2,0x1b,0x34,0x70,0x05,0xa3,0x8a,0xd5,0x79,0x86,0xa8,
0x30,0xc6,0x51,0x4b,0x1e,0xa6,0x27,0xf6,0x35,0xd2,0x6e,0x24,0x16,0x82,0x5f,0xda,
0xe6,0x75,0xa2,0xef,0x2c,0xb2,0x1c,0x9f,0x5d,0x6f,0x80,0x0a,0x72,0x44,0x9b,0x6c,
0x90,0x0b,0x5b,0x33,0x7d,0x5a,0x52,0xf3,0x61,0xa1,0xf7,0xb0,0xd6,0x3f,0x7c,0x6d,
0xed,0x14,0xe0,0xa5,0x3d,0x22,0xb3,0xf8,0x89,0xde,0x71,0x1a,0xaf,0xba,0xb5,0x81
};
/* SB3: AES inverse S-box */
static const unsigned char SB3[256] = {
0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38,0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb,
0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87,0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb,
0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d,0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e,
0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2,0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25,
0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16,0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92,
0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda,0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84,
0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a,0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06,
0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02,0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b,
0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea,0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73,
0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85,0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e,
0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89,0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b,
0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20,0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4,
0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31,0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f,
0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d,0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef,
0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0,0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61,
0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26,0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
};
/* SB4 */
static const unsigned char SB4[256] = {
0x30,0x68,0x99,0x1b,0x87,0xb9,0x21,0x78,0x50,0x39,0xdb,0xe1,0x72,0x09,0x62,0x3c,
0x3e,0x7e,0x5e,0x8e,0xf1,0xa0,0xcc,0xa3,0x2a,0x1d,0xfb,0xb6,0xd6,0x20,0xc4,0x8d,
0x81,0x65,0xf5,0x89,0xcb,0x9d,0x77,0xc6,0x57,0x43,0x56,0x17,0xd4,0x40,0x1a,0x4d,
0xc0,0x63,0x6c,0xe3,0xb7,0xc8,0x64,0x6a,0x53,0xaa,0x38,0x98,0x0c,0xf4,0x9b,0xed,
0x7f,0x22,0x76,0xaf,0xdd,0x3a,0x0b,0x58,0x67,0x88,0x06,0xc3,0x35,0x0d,0x01,0x8b,
0x8c,0xc2,0xe6,0x5f,0x02,0x24,0x75,0x93,0x66,0x1e,0xe5,0xe2,0x54,0xd8,0x10,0xce,
0x7a,0xe8,0x08,0x2c,0x12,0x97,0x32,0xab,0xb4,0x27,0x0a,0x23,0xdf,0xef,0xca,0xd9,
0xb8,0xfa,0xdc,0x31,0x6b,0xd1,0xad,0x19,0x49,0xbd,0x51,0x96,0xee,0xe4,0xa8,0x41,
0xda,0xff,0xcd,0x55,0x86,0x36,0xbe,0x61,0x52,0xf8,0xbb,0x0e,0x82,0x48,0x69,0x9a,
0xe0,0x47,0x9e,0x5c,0x04,0x4b,0x34,0x15,0x79,0x26,0xa7,0xde,0x29,0xae,0x92,0xd7,
0x84,0xe9,0xd2,0xba,0x5d,0xf3,0xc5,0xb0,0xbf,0xa4,0x3b,0x71,0x44,0x46,0x2b,0xfc,
0xeb,0x6f,0xd5,0xf6,0x14,0xfe,0x7c,0x70,0x5a,0x7d,0xfd,0x2f,0x18,0x83,0x16,0xa5,
0x91,0x1f,0x05,0x95,0x74,0xa9,0xc1,0x5b,0x4a,0x85,0x6d,0x13,0x07,0x4f,0x4e,0x45,
0xb2,0x0f,0xc9,0x1c,0xa6,0xbc,0xec,0x73,0x90,0x7b,0xcf,0x59,0x8f,0xa1,0xf9,0x2d,
0xf2,0xb1,0x00,0x94,0x37,0x9f,0xd0,0x2e,0x9c,0x6e,0x28,0x3f,0x80,0xf0,0x3d,0xd3,
0x25,0x8a,0xb5,0xe7,0x42,0xb3,0xc7,0xea,0xf7,0x4c,0x11,0x33,0x03,0xa2,0xac,0x60
};
/* SL1: i mod 4 -> {SB1,SB2,SB3,SB4}; SL2: i mod 4 -> {SB3,SB4,SB1,SB2} */
static const unsigned char * const SL[2][4] = {
{ SB1, SB2, SB3, SB4 },
{ SB3, SB4, SB1, SB2 }
};
/* RFC 5794 round-key constants C1, C2, C3 */
static const unsigned char CC[3][16] = {
{ 0x51,0x7c,0xc1,0xb7,0x27,0x22,0x0a,0x94,0xfe,0x13,0xab,0xe8,0xfa,0x9a,0x6e,0xe0 },
{ 0x6d,0xb1,0x4a,0xcc,0x9e,0x21,0xc8,0x20,0xff,0x28,0xb1,0xd5,0xef,0x5d,0xe2,0xb0 },
{ 0xdb,0x92,0x37,0x1d,0x21,0x26,0xe9,0x70,0x03,0x24,0x97,0x75,0x04,0xe8,0xc9,0x0e }
};
/* Diffusion layer A (involution), RFC 5794 section 2.4.3 */
static LTC_INLINE void s_aria_A(const unsigned char *x, unsigned char *y)
{
y[ 0] = x[ 3] ^ x[ 4] ^ x[ 6] ^ x[ 8] ^ x[ 9] ^ x[13] ^ x[14];
y[ 1] = x[ 2] ^ x[ 5] ^ x[ 7] ^ x[ 8] ^ x[ 9] ^ x[12] ^ x[15];
y[ 2] = x[ 1] ^ x[ 4] ^ x[ 6] ^ x[10] ^ x[11] ^ x[12] ^ x[15];
y[ 3] = x[ 0] ^ x[ 5] ^ x[ 7] ^ x[10] ^ x[11] ^ x[13] ^ x[14];
y[ 4] = x[ 0] ^ x[ 2] ^ x[ 5] ^ x[ 8] ^ x[11] ^ x[14] ^ x[15];
y[ 5] = x[ 1] ^ x[ 3] ^ x[ 4] ^ x[ 9] ^ x[10] ^ x[14] ^ x[15];
y[ 6] = x[ 0] ^ x[ 2] ^ x[ 7] ^ x[ 9] ^ x[10] ^ x[12] ^ x[13];
y[ 7] = x[ 1] ^ x[ 3] ^ x[ 6] ^ x[ 8] ^ x[11] ^ x[12] ^ x[13];
y[ 8] = x[ 0] ^ x[ 1] ^ x[ 4] ^ x[ 7] ^ x[10] ^ x[13] ^ x[15];
y[ 9] = x[ 0] ^ x[ 1] ^ x[ 5] ^ x[ 6] ^ x[11] ^ x[12] ^ x[14];
y[10] = x[ 2] ^ x[ 3] ^ x[ 5] ^ x[ 6] ^ x[ 8] ^ x[13] ^ x[15];
y[11] = x[ 2] ^ x[ 3] ^ x[ 4] ^ x[ 7] ^ x[ 9] ^ x[12] ^ x[14];
y[12] = x[ 1] ^ x[ 2] ^ x[ 6] ^ x[ 7] ^ x[ 9] ^ x[11] ^ x[12];
y[13] = x[ 0] ^ x[ 3] ^ x[ 6] ^ x[ 7] ^ x[ 8] ^ x[10] ^ x[13];
y[14] = x[ 0] ^ x[ 3] ^ x[ 4] ^ x[ 5] ^ x[ 9] ^ x[11] ^ x[14];
y[15] = x[ 1] ^ x[ 2] ^ x[ 4] ^ x[ 5] ^ x[ 8] ^ x[10] ^ x[15];
}
/* Round: state := A( SLj(state XOR rk) ), where j selects SL1 or SL2 */
static LTC_INLINE void s_aria_round(int j, unsigned char *state, const unsigned char *rk)
{
unsigned char t[16];
int i;
for (i = 0; i < 16; i++) t[i] = SL[j][i & 3][state[i] ^ rk[i]];
s_aria_A(t, state);
}
/* 128-bit left circular rotation by 'count' bits (0 < count < 128, count not a multiple of 8) */
static void s_aria_rotl128(const unsigned char *in, unsigned count, unsigned char *out)
{
unsigned x, w = (count >> 3) & 15, b = count & 7;
for (x = 0; x < 16; x++) {
out[x] = (unsigned char)((in[(x + w) & 15] << b) | (in[(x + w + 1) & 15] >> (8 - b)));
}
}
int aria_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey)
{
/* left-rotation amounts for round-key groups 0..4 (>>>19 = <<<109, >>>31 = <<<97) */
static const unsigned rot_amt[5] = { 109, 97, 61, 31, 19 };
/* per key size: index of which constant goes into CK1, CK2, CK3 */
static const unsigned char ck_idx[3][3] = { {0,1,2}, {1,2,0}, {2,0,1} };
unsigned char W[4][16], t[16], rW[16];
int i, k, j, n, sel;
LTC_ARGCHK(key != NULL);
LTC_ARGCHK(skey != NULL);
if (keylen != 16 && keylen != 24 && keylen != 32) return CRYPT_INVALID_KEYSIZE;
n = 8 + keylen / 4; /* 12, 14, 16 */
if (num_rounds != 0 && num_rounds != n) return CRYPT_INVALID_ROUNDS;
skey->aria.R = n;
/* W0 = KL = first 16 bytes of key */
XMEMCPY(W[0], key, 16);
/* KR padded with zeros into t (reused as KR scratch) */
zeromem(t, 16);
if (keylen > 16) XMEMCPY(t, key + 16, (size_t)keylen - 16);
/* W1 = FO(W0, CK1) XOR KR; W2 = FE(W1, CK2) XOR W0; W3 = FO(W2, CK3) XOR W1 */
sel = (keylen - 16) / 8;
XMEMCPY(W[1], W[0], 16);
s_aria_round(0, W[1], CC[ck_idx[sel][0]]);
for (i = 0; i < 16; i++) W[1][i] ^= t[i];
XMEMCPY(W[2], W[1], 16);
s_aria_round(1, W[2], CC[ck_idx[sel][1]]);
for (i = 0; i < 16; i++) W[2][i] ^= W[0][i];
XMEMCPY(W[3], W[2], 16);
s_aria_round(0, W[3], CC[ck_idx[sel][2]]);
for (i = 0; i < 16; i++) W[3][i] ^= W[1][i];
/* Encryption round keys: ek_{4k+j+1} = W[j] XOR ROL128(W[(j+1)%4], rot_amt[k]) */
for (k = 0; k <= n; k++) {
j = k & 3;
s_aria_rotl128(W[(j + 1) & 3], rot_amt[k >> 2], rW);
for (i = 0; i < 16; i++) skey->aria.ek[k * 16 + i] = W[j][i] ^ rW[i];
}
/* Decryption round keys: dk1 = ek_{n+1}; dk_{n+1} = ek1; dk_i = A(ek_{n+2-i}) */
XMEMCPY(skey->aria.dk, skey->aria.ek + n * 16, 16);
XMEMCPY(skey->aria.dk + n * 16, skey->aria.ek, 16);
for (i = 1; i < n; i++) s_aria_A(skey->aria.ek + (n - i) * 16, skey->aria.dk + i * 16);
return CRYPT_OK;
}
static LTC_INLINE void s_aria_crypt(const unsigned char *in, unsigned char *out, const unsigned char *rk, int n)
{
unsigned char state[16], t[16];
int r, i;
XMEMCPY(state, in, 16);
for (r = 0; r < n - 1; r++) {
s_aria_round(r & 1, state, rk + r * 16);
}
/* final round: SL2 substitution + XOR with last round key (no diffusion) */
for (i = 0; i < 16; i++) t[i] = SL[1][i & 3][state[i] ^ rk[(n - 1) * 16 + i]];
for (i = 0; i < 16; i++) out[i] = t[i] ^ rk[n * 16 + i];
}
int aria_ecb_encrypt(const unsigned char *pt, unsigned char *ct, const symmetric_key *skey)
{
LTC_ARGCHK(pt != NULL);
LTC_ARGCHK(ct != NULL);
LTC_ARGCHK(skey != NULL);
s_aria_crypt(pt, ct, skey->aria.ek, skey->aria.R);
return CRYPT_OK;
}
int aria_ecb_decrypt(const unsigned char *ct, unsigned char *pt, const symmetric_key *skey)
{
LTC_ARGCHK(pt != NULL);
LTC_ARGCHK(ct != NULL);
LTC_ARGCHK(skey != NULL);
s_aria_crypt(ct, pt, skey->aria.dk, skey->aria.R);
return CRYPT_OK;
}
void aria_done(symmetric_key *skey)
{
LTC_UNUSED_PARAM(skey);
}
int aria_keysize(int *keysize)
{
LTC_ARGCHK(keysize != NULL);
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;
}
int aria_test(void)
{
#ifndef LTC_TEST
return CRYPT_NOP;
#else
/* RFC 5794, Appendix A */
static const struct {
int keylen;
unsigned char key[32], pt[16], ct[16];
} tests[] = {
{ 16,
{ 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f },
{ 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff },
{ 0xd7,0x18,0xfb,0xd6,0xab,0x64,0x4c,0x73,0x9d,0xa9,0x5f,0x3b,0xe6,0x45,0x17,0x78 } },
{ 24,
{ 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17 },
{ 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff },
{ 0x26,0x44,0x9c,0x18,0x05,0xdb,0xe7,0xaa,0x25,0xa4,0x68,0xce,0x26,0x3a,0x9e,0x79 } },
{ 32,
{ 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f },
{ 0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99,0xaa,0xbb,0xcc,0xdd,0xee,0xff },
{ 0xf9,0x2b,0xd7,0xc7,0x9f,0xb7,0x2e,0x2f,0x2b,0x8f,0x80,0xc1,0x97,0x2d,0x24,0xfc } }
};
unsigned char buf[2][16];
symmetric_key skey;
int err;
unsigned int x;
for (x = 0; x < LTC_ARRAY_SIZE(tests); x++) {
zeromem(&skey, sizeof(skey));
if ((err = aria_setup(tests[x].key, tests[x].keylen, 0, &skey)) != CRYPT_OK) return err;
if ((err = aria_ecb_encrypt(tests[x].pt, buf[0], &skey)) != CRYPT_OK) { aria_done(&skey); return err; }
if ((err = aria_ecb_decrypt(tests[x].ct, buf[1], &skey)) != CRYPT_OK) { aria_done(&skey); return err; }
aria_done(&skey);
if (ltc_compare_testvector(tests[x].ct, 16, buf[0], 16, "ARIA Encrypt", x) ||
ltc_compare_testvector(tests[x].pt, 16, buf[1], 16, "ARIA Decrypt", x)) {
return CRYPT_FAIL_TESTVECTOR;
}
}
return CRYPT_OK;
#endif
}
#endif

View file

@ -184,6 +184,13 @@ struct tea_key {
};
#endif
#ifdef LTC_ARIA
struct aria_key {
unsigned char ek[17 * 16], dk[17 * 16];
int R;
};
#endif
typedef union Symmetric_key {
#ifdef LTC_DES
struct des_key des;
@ -255,6 +262,9 @@ typedef union Symmetric_key {
#endif
#ifdef LTC_TEA
struct tea_key tea;
#endif
#ifdef LTC_ARIA
struct aria_key aria;
#endif
void *data;
} symmetric_key;
@ -898,6 +908,16 @@ int tea_keysize(int *keysize);
extern const struct ltc_cipher_descriptor tea_desc;
#endif
#ifdef LTC_ARIA
int aria_setup(const unsigned char *key, int keylen, int num_rounds, symmetric_key *skey);
int aria_ecb_encrypt(const unsigned char *pt, unsigned char *ct, const symmetric_key *skey);
int aria_ecb_decrypt(const unsigned char *ct, unsigned char *pt, const symmetric_key *skey);
int aria_test(void);
void aria_done(symmetric_key *skey);
int aria_keysize(int *keysize);
extern const struct ltc_cipher_descriptor aria_desc;
#endif
#ifdef LTC_ECB_MODE
int ecb_start(int cipher, const unsigned char *key,
int keylen, int num_rounds, symmetric_ECB *ecb);

View file

@ -216,6 +216,7 @@
#define LTC_IDEA
#define LTC_SERPENT
#define LTC_TEA
#define LTC_ARIA
/* stream ciphers */
#define LTC_CHACHA

View file

@ -129,6 +129,9 @@ const char *crypt_build_settings =
#endif
#if defined(LTC_TEA)
" TEA\n"
#endif
#if defined(LTC_ARIA)
" ARIA\n"
#endif
"Stream ciphers built-in:\n"
#if defined(LTC_CHACHA)

View file

@ -99,6 +99,9 @@ int register_all_ciphers(void)
#endif
#ifdef LTC_TEA
REGISTER_CIPHER(&tea_desc);
#endif
#ifdef LTC_ARIA
REGISTER_CIPHER(&aria_desc);
#endif
return CRYPT_OK;
}

View file

@ -93,6 +93,24 @@ const struct blockcipher_info pem_dek_infos[] =
{ .name = "AES-128-OFB,", .algo = "aes", .keylen = 128 / 8, .mode = cm_ofb, },
{ .name = "AES-192-OFB,", .algo = "aes", .keylen = 192 / 8, .mode = cm_ofb, },
{ .name = "AES-256-OFB,", .algo = "aes", .keylen = 256 / 8, .mode = cm_ofb, },
{ .name = "ARIA-128-CBC,", .algo = "aria", .keylen = 128 / 8, .mode = cm_cbc, },
{ .name = "ARIA-192-CBC,", .algo = "aria", .keylen = 192 / 8, .mode = cm_cbc, },
{ .name = "ARIA-256-CBC,", .algo = "aria", .keylen = 256 / 8, .mode = cm_cbc, },
{ .name = "ARIA-128-CFB,", .algo = "aria", .keylen = 128 / 8, .mode = cm_cfb, },
{ .name = "ARIA-192-CFB,", .algo = "aria", .keylen = 192 / 8, .mode = cm_cfb, },
{ .name = "ARIA-256-CFB,", .algo = "aria", .keylen = 256 / 8, .mode = cm_cfb, },
{ .name = "ARIA-128-CFB1,", .algo = "aria", .keylen = 128 / 8, .mode = cm_cfb1, },
{ .name = "ARIA-192-CFB1,", .algo = "aria", .keylen = 192 / 8, .mode = cm_cfb1, },
{ .name = "ARIA-256-CFB1,", .algo = "aria", .keylen = 256 / 8, .mode = cm_cfb1, },
{ .name = "ARIA-128-CFB8,", .algo = "aria", .keylen = 128 / 8, .mode = cm_cfb8, },
{ .name = "ARIA-192-CFB8,", .algo = "aria", .keylen = 192 / 8, .mode = cm_cfb8, },
{ .name = "ARIA-256-CFB8,", .algo = "aria", .keylen = 256 / 8, .mode = cm_cfb8, },
{ .name = "ARIA-128-CTR,", .algo = "aria", .keylen = 128 / 8, .mode = cm_ctr, },
{ .name = "ARIA-192-CTR,", .algo = "aria", .keylen = 192 / 8, .mode = cm_ctr, },
{ .name = "ARIA-256-CTR,", .algo = "aria", .keylen = 256 / 8, .mode = cm_ctr, },
{ .name = "ARIA-128-OFB,", .algo = "aria", .keylen = 128 / 8, .mode = cm_ofb, },
{ .name = "ARIA-192-OFB,", .algo = "aria", .keylen = 192 / 8, .mode = cm_ofb, },
{ .name = "ARIA-256-OFB,", .algo = "aria", .keylen = 256 / 8, .mode = cm_ofb, },
{ .name = "BF-CBC,", .algo = "blowfish", .keylen = 128 / 8, .mode = cm_cbc, },
{ .name = "BF-CFB,", .algo = "blowfish", .keylen = 128 / 8, .mode = cm_cfb, },
{ .name = "BF-OFB,", .algo = "blowfish", .keylen = 128 / 8, .mode = cm_ofb, },

View file

@ -196,6 +196,9 @@ static void s_unregister_all(void)
#ifdef LTC_SERPENT
unregister_cipher(&serpent_desc);
#endif
#ifdef LTC_ARIA
unregister_cipher(&aria_desc);
#endif
#ifdef LTC_TIGER
unregister_hash(&tiger2_desc);