new encryption algos with xsynd/chacha20

This commit is contained in:
Mirek Kratochvil 2014-04-09 16:14:31 +02:00
parent 85b1c69b5c
commit 760bcdc7f7
3 changed files with 56 additions and 30 deletions

View file

@ -29,6 +29,12 @@ void fill_algorithm_suite (algorithm_suite&s)
do_alg (algo_mceqd128);
do_alg (algo_mceqd192);
do_alg (algo_mceqd256);
do_alg (algo_mceqd128cha);
do_alg (algo_mceqd192cha);
do_alg (algo_mceqd256cha);
do_alg (algo_mceqd128xs);
do_alg (algo_mceqd192xs);
do_alg (algo_mceqd256xs);
do_alg (algo_fmtseq128);
do_alg (algo_fmtseq192);
do_alg (algo_fmtseq256);
@ -40,6 +46,12 @@ void fill_algorithm_suite (algorithm_suite&s)
do_alg (algo_mceqd128cube);
do_alg (algo_mceqd192cube);
do_alg (algo_mceqd256cube);
do_alg (algo_mceqd128cubecha);
do_alg (algo_mceqd192cubecha);
do_alg (algo_mceqd256cubecha);
do_alg (algo_mceqd128cubexs);
do_alg (algo_mceqd192cubexs);
do_alg (algo_mceqd256cubexs);
do_alg (algo_fmtseq128cube);
do_alg (algo_fmtseq192cube);
do_alg (algo_fmtseq256cube);

View file

@ -407,14 +407,28 @@ int algo_mceqd##name::create_keypair (sencode**pub, sencode**priv, prng&rng) \
mceqd_create_keypair_func (128, 16, 7, 32, 4)
mceqd_create_keypair_func (192, 16, 8, 27, 4)
mceqd_create_keypair_func (256, 16, 8, 32, 4)
mceqd_create_keypair_func (128cha, 16, 7, 32, 4)
mceqd_create_keypair_func (192cha, 16, 8, 27, 4)
mceqd_create_keypair_func (256cha, 16, 8, 32, 4)
mceqd_create_keypair_func (128xs, 16, 7, 32, 4)
mceqd_create_keypair_func (192xs, 16, 8, 27, 4)
mceqd_create_keypair_func (256xs, 16, 8, 32, 4)
#endif //HAVE_CRYPTOPP==1
mceqd_create_keypair_func (128cube, 16, 7, 32, 4)
mceqd_create_keypair_func (192cube, 16, 8, 27, 4)
mceqd_create_keypair_func (256cube, 16, 8, 32, 4)
mceqd_create_keypair_func (128cubecha, 16, 7, 32, 4)
mceqd_create_keypair_func (192cubecha, 16, 8, 27, 4)
mceqd_create_keypair_func (256cubecha, 16, 8, 32, 4)
mceqd_create_keypair_func (128cubexs, 16, 7, 32, 4)
mceqd_create_keypair_func (192cubexs, 16, 8, 27, 4)
mceqd_create_keypair_func (256cubexs, 16, 8, 32, 4)
#include "arcfour.h"
#include "chacha.h"
#include "xsynd.h"
typedef arcfour<byte, 8, 4096> arcfour_fo_cipher;
@ -450,38 +464,26 @@ int algo_mceqd##name::decrypt (const bvector&cipher, bvector&plain, \
#include "sha_hash.h"
#include "rmd_hash.h"
mceqd_create_encdec_func (128, 2048, 4096, 128,
sha256hash, rmd128hash,
arcfour_fo_cipher,
816)
mceqd_create_encdec_func (192, 2816, 6912, 256,
sha384hash, rmd128hash,
arcfour_fo_cipher,
1574)
mceqd_create_encdec_func (256, 4096, 8192, 256,
sha512hash, rmd128hash,
arcfour_fo_cipher,
1638)
mceqd_create_encdec_func (128, 2048, 4096, 128, sha256hash, rmd128hash, arcfour_fo_cipher, 816)
mceqd_create_encdec_func (192, 2816, 6912, 256, sha384hash, rmd128hash, arcfour_fo_cipher, 1574)
mceqd_create_encdec_func (256, 4096, 8192, 256, sha512hash, rmd128hash, arcfour_fo_cipher, 1638)
mceqd_create_encdec_func (128cha, 2048, 4096, 128, sha256hash, rmd128hash, chacha20, 816)
mceqd_create_encdec_func (192cha, 2816, 6912, 256, sha384hash, rmd128hash, chacha20, 1574)
mceqd_create_encdec_func (256cha, 4096, 8192, 256, sha512hash, rmd128hash, chacha20, 1638)
mceqd_create_encdec_func (128xs, 2048, 4096, 128, sha256hash, rmd128hash, xsynd, 816)
mceqd_create_encdec_func (192xs, 2816, 6912, 256, sha384hash, rmd128hash, xsynd, 1574)
mceqd_create_encdec_func (256xs, 4096, 8192, 256, sha512hash, rmd128hash, xsynd, 1638)
#endif //HAVE_CRYPTOPP==1
#include "cube_hash.h"
mceqd_create_encdec_func (128cube, 2048, 4096, 128,
cube256hash, cube128hash,
arcfour_fo_cipher,
816)
mceqd_create_encdec_func (192cube, 2816, 6912, 256,
cube384hash, cube128hash,
arcfour_fo_cipher,
1574)
mceqd_create_encdec_func (256cube, 4096, 8192, 256,
cube512hash, cube128hash,
arcfour_fo_cipher,
1638)
mceqd_create_encdec_func (128cube, 2048, 4096, 128, cube256hash, cube128hash, arcfour_fo_cipher, 816)
mceqd_create_encdec_func (192cube, 2816, 6912, 256, cube384hash, cube128hash, arcfour_fo_cipher, 1574)
mceqd_create_encdec_func (256cube, 4096, 8192, 256, cube512hash, cube128hash, arcfour_fo_cipher, 1638)
mceqd_create_encdec_func (128cubecha, 2048, 4096, 128, cube256hash, cube128hash, chacha20, 816)
mceqd_create_encdec_func (192cubecha, 2816, 6912, 256, cube384hash, cube128hash, chacha20, 1574)
mceqd_create_encdec_func (256cubecha, 4096, 8192, 256, cube512hash, cube128hash, chacha20, 1638)
mceqd_create_encdec_func (128cubexs, 2048, 4096, 128, cube256hash, cube128hash, xsynd, 816)
mceqd_create_encdec_func (192cubexs, 2816, 6912, 256, cube384hash, cube128hash, xsynd, 1574)
mceqd_create_encdec_func (256cubexs, 4096, 8192, 256, cube512hash, cube128hash, xsynd, 1638)

View file

@ -50,6 +50,12 @@ public: \
mceqd_alg_class (128, "MCEQD128FO-SHA256-ARCFOUR");
mceqd_alg_class (192, "MCEQD192FO-SHA384-ARCFOUR");
mceqd_alg_class (256, "MCEQD256FO-SHA512-ARCFOUR");
mceqd_alg_class (128cha, "MCEQD128FO-SHA256-CHACHA20");
mceqd_alg_class (192cha, "MCEQD192FO-SHA384-CHACHA20");
mceqd_alg_class (256cha, "MCEQD256FO-SHA512-CHACHA20");
mceqd_alg_class (128xs, "MCEQD128FO-SHA256-XSYND");
mceqd_alg_class (192xs, "MCEQD192FO-SHA384-XSYND");
mceqd_alg_class (256xs, "MCEQD256FO-SHA512-XSYND");
#endif //HAVE_CRYPTOPP==1
@ -60,6 +66,12 @@ mceqd_alg_class (256, "MCEQD256FO-SHA512-ARCFOUR");
mceqd_alg_class (128cube, "MCEQD128FO-CUBE256-ARCFOUR");
mceqd_alg_class (192cube, "MCEQD192FO-CUBE384-ARCFOUR");
mceqd_alg_class (256cube, "MCEQD256FO-CUBE512-ARCFOUR");
mceqd_alg_class (128cubecha, "MCEQD128FO-CUBE256-CHACHA20");
mceqd_alg_class (192cubecha, "MCEQD192FO-CUBE384-CHACHA20");
mceqd_alg_class (256cubecha, "MCEQD256FO-CUBE512-CHACHA20");
mceqd_alg_class (128cubexs, "MCEQD128FO-CUBE256-XSYND");
mceqd_alg_class (192cubexs, "MCEQD192FO-CUBE384-XSYND");
mceqd_alg_class (256cubexs, "MCEQD256FO-CUBE512-XSYND");
#endif