mirror of
https://codeberg.org/scip/twenty4.git
synced 2025-12-17 03:50:57 +01:00
220 lines
13 KiB
Markdown
220 lines
13 KiB
Markdown
|
|
## Varous tests on the cipher
|
||
|
|
|
||
|
|
Last updated on Fri Oct 2 18:49:26 2015
|
||
|
|
|
||
|
|
### Crypto test
|
||
|
|
|
||
|
|
% make test
|
||
|
|
sha256 LICENSE | cut -f 4 -d ' ' > .xsum
|
||
|
|
cat LICENSE | ./twenty4 123456trewqasdfgbvcx X > .xenc
|
||
|
|
cat .xenc | ./twenty4 123456trewqasdfgbvcx X > .xdec
|
||
|
|
sha256 .xdec | cut -f 4 -d ' ' > .xnsum
|
||
|
|
if test "x`cat .xsum`" = "x`cat .xnsum`"; then echo OK; else echo FAIL; fi
|
||
|
|
OK
|
||
|
|
|
||
|
|
### Variance/Diffusion test
|
||
|
|
|
||
|
|
same clear text slightly different key:
|
||
|
|
|
||
|
|
IN: 111111111111, KEY: 00000000000000000001, NONCE: 1, OUT: 0a0e 802c dd87 e04c 5247 11ee
|
||
|
|
IN: 111111111111, KEY: 00000000000000000002, NONCE: 2, OUT: 4f31 b7ed 9670 2fb3 d0e0 8ab2
|
||
|
|
IN: 111111111111, KEY: 00000000000000000003, NONCE: 3, OUT: cc63 a54f 75a3 2f3f 253f 0da8
|
||
|
|
IN: 111111111111, KEY: 00000000000000000004, NONCE: 4, OUT: 9f1d 2052 73cd 4952 59ec 30ae
|
||
|
|
IN: 111111111111, KEY: 00000000000000000005, NONCE: 5, OUT: 0628 1196 cf34 28fc 254f 5e3a
|
||
|
|
IN: 111111111111, KEY: 00000000000000000006, NONCE: 6, OUT: 41ec 47e3 6629 2de4 c8eb 9d1b
|
||
|
|
IN: 111111111111, KEY: 00000000000000000007, NONCE: 7, OUT: 1b29 3fae 61e3 f7dd 2fd3 9299
|
||
|
|
IN: 111111111111, KEY: 00000000000000000008, NONCE: 8, OUT: de29 89f7 3200 f9ae 46b1 915f
|
||
|
|
|
||
|
|
same key, slightly different clear text:
|
||
|
|
|
||
|
|
IN: 111111111111, KEY: 00000000000000000001, NONCE: 1, OUT: 0a0e 802c dd87 e04c 5247 11ee
|
||
|
|
IN: 111111111112, KEY: 00000000000000000001, NONCE: 2, OUT: 97e3 f661 0ba6 2cc6 06e6 8960
|
||
|
|
IN: 111111111113, KEY: 00000000000000000001, NONCE: 3, OUT: 88f3 5f69 3c48 f098 188a 4e60
|
||
|
|
IN: 111111111114, KEY: 00000000000000000001, NONCE: 4, OUT: c552 112c 145b 89c5 1ef1 7993
|
||
|
|
IN: 111111111115, KEY: 00000000000000000001, NONCE: 5, OUT: f14c dc4f 5353 0856 1646 27ef
|
||
|
|
IN: 111111111116, KEY: 00000000000000000001, NONCE: 6, OUT: 23d7 871e 3b24 a1f2 a85e 9b61
|
||
|
|
IN: 111111111117, KEY: 00000000000000000001, NONCE: 7, OUT: 8654 a2ba 9c5f 6b8b 798e 100d
|
||
|
|
IN: 111111111118, KEY: 00000000000000000001, NONCE: 8, OUT: 1036 cf47 b636 5cd7 17fc ea50
|
||
|
|
|
||
|
|
|
||
|
|
### Check using analyze.c on 10Mb file containing zeros
|
||
|
|
|
||
|
|
File size: 10240000 bytes
|
||
|
|
Char distribution: 100.000000%
|
||
|
|
Char redundancy: 0.000000%
|
||
|
|
Char entropy: 7.999982 bits/char
|
||
|
|
Compression rate: 0.000000% (10240000 => 10243131 bytes)
|
||
|
|
|
||
|
|
For comparision, AES result:
|
||
|
|
|
||
|
|
File size: 10240032 bytes
|
||
|
|
Char distribution: 100.000000%
|
||
|
|
Char redundancy: 0.000000%
|
||
|
|
Char entropy: 7.999981 bits/char
|
||
|
|
Compression rate: 0.000000% (10240032 => 10243163 bytes)
|
||
|
|
|
||
|
|
### Check using 'ent'
|
||
|
|
|
||
|
|
(see http://www.fourmilab.ch/random/)
|
||
|
|
|
||
|
|
Entropy = 7.999982 bits per byte.
|
||
|
|
|
||
|
|
Optimum compression would reduce the size
|
||
|
|
of this 10240000 byte file by 0 percent.
|
||
|
|
|
||
|
|
Chi square distribution for 10240000 samples is 248.61, and randomly
|
||
|
|
would exceed this value 60.09 percent of the times.
|
||
|
|
|
||
|
|
Arithmetic mean value of data bytes is 127.5026 (127.5 = random).
|
||
|
|
Monte Carlo value for Pi is 3.142529353 (error 0.03 percent).
|
||
|
|
Serial correlation coefficient is 0.000282 (totally uncorrelated = 0.0).
|
||
|
|
|
||
|
|
For comparision, AES result:
|
||
|
|
|
||
|
|
Entropy = 7.999981 bits per byte.
|
||
|
|
|
||
|
|
Optimum compression would reduce the size
|
||
|
|
of this 10240032 byte file by 0 percent.
|
||
|
|
|
||
|
|
Chi square distribution for 10240032 samples is 274.74, and randomly
|
||
|
|
would exceed this value 18.90 percent of the times.
|
||
|
|
|
||
|
|
Arithmetic mean value of data bytes is 127.4883 (127.5 = random).
|
||
|
|
Monte Carlo value for Pi is 3.142633148 (error 0.03 percent).
|
||
|
|
Serial correlation coefficient is -0.000300 (totally uncorrelated = 0.0).
|
||
|
|
|
||
|
|
|
||
|
|
### Check using dieharder
|
||
|
|
|
||
|
|
I ran the cipher against the dieharder test suite this way:
|
||
|
|
|
||
|
|
dd if=/dev/zero of=/dev/stdout | ./twenty4 00000000000000000001 1 | dieharder -g 200 -a
|
||
|
|
|
||
|
|
Output:
|
||
|
|
|
||
|
|
#=============================================================================#
|
||
|
|
# dieharder version 3.31.1 Copyright 2003 Robert G. Brown #
|
||
|
|
#=============================================================================#
|
||
|
|
rng_name |rands/second| Seed |
|
||
|
|
stdin_input_raw| 2.58e+06 |1513597900|
|
||
|
|
#=============================================================================#
|
||
|
|
test_name |ntup| tsamples |psamples| p-value |Assessment
|
||
|
|
#=============================================================================#
|
||
|
|
diehard_birthdays| 0| 100| 100|0.44405548| PASSED
|
||
|
|
diehard_operm5| 0| 1000000| 100|0.41968438| PASSED
|
||
|
|
diehard_rank_32x32| 0| 40000| 100|0.94128457| PASSED
|
||
|
|
diehard_rank_6x8| 0| 100000| 100|0.46413251| PASSED
|
||
|
|
diehard_bitstream| 0| 2097152| 100|0.18988778| PASSED
|
||
|
|
diehard_opso| 0| 2097152| 100|0.30907373| PASSED
|
||
|
|
diehard_oqso| 0| 2097152| 100|0.36684547| PASSED
|
||
|
|
diehard_dna| 0| 2097152| 100|0.72800518| PASSED
|
||
|
|
diehard_count_1s_str| 0| 256000| 100|0.18190762| PASSED
|
||
|
|
diehard_count_1s_byt| 0| 256000| 100|0.97344107| PASSED
|
||
|
|
diehard_parking_lot| 0| 12000| 100|0.63285114| PASSED
|
||
|
|
diehard_2dsphere| 2| 8000| 100|0.89270394| PASSED
|
||
|
|
diehard_3dsphere| 3| 4000| 100|0.84607328| PASSED
|
||
|
|
diehard_squeeze| 0| 100000| 100|0.00916101| PASSED
|
||
|
|
diehard_sums| 0| 100| 100|0.53013221| PASSED
|
||
|
|
diehard_runs| 0| 100000| 100|0.52209635| PASSED
|
||
|
|
diehard_runs| 0| 100000| 100|0.86136907| PASSED
|
||
|
|
diehard_craps| 0| 200000| 100|0.41829511| PASSED
|
||
|
|
diehard_craps| 0| 200000| 100|0.97778963| PASSED
|
||
|
|
marsaglia_tsang_gcd| 0| 10000000| 100|0.02910980| PASSED
|
||
|
|
marsaglia_tsang_gcd| 0| 10000000| 100|0.95391085| PASSED
|
||
|
|
sts_monobit| 1| 100000| 100|0.48843210| PASSED
|
||
|
|
sts_runs| 2| 100000| 100|0.33161487| PASSED
|
||
|
|
sts_serial| 1| 100000| 100|0.43813666| PASSED
|
||
|
|
sts_serial| 2| 100000| 100|0.37539053| PASSED
|
||
|
|
sts_serial| 3| 100000| 100|0.61308717| PASSED
|
||
|
|
sts_serial| 3| 100000| 100|0.97040715| PASSED
|
||
|
|
sts_serial| 4| 100000| 100|0.00472683| WEAK
|
||
|
|
sts_serial| 4| 100000| 100|0.07425392| PASSED
|
||
|
|
sts_serial| 5| 100000| 100|0.52552345| PASSED
|
||
|
|
sts_serial| 5| 100000| 100|0.10458291| PASSED
|
||
|
|
sts_serial| 6| 100000| 100|0.60383631| PASSED
|
||
|
|
sts_serial| 6| 100000| 100|0.95466429| PASSED
|
||
|
|
sts_serial| 7| 100000| 100|0.91083199| PASSED
|
||
|
|
sts_serial| 7| 100000| 100|0.76069249| PASSED
|
||
|
|
sts_serial| 8| 100000| 100|0.98844871| PASSED
|
||
|
|
sts_serial| 8| 100000| 100|0.80973493| PASSED
|
||
|
|
sts_serial| 9| 100000| 100|0.95319391| PASSED
|
||
|
|
sts_serial| 9| 100000| 100|0.92051699| PASSED
|
||
|
|
sts_serial| 10| 100000| 100|0.88609114| PASSED
|
||
|
|
sts_serial| 10| 100000| 100|0.77025807| PASSED
|
||
|
|
sts_serial| 11| 100000| 100|0.90999930| PASSED
|
||
|
|
sts_serial| 11| 100000| 100|0.97842039| PASSED
|
||
|
|
sts_serial| 12| 100000| 100|0.37609901| PASSED
|
||
|
|
sts_serial| 12| 100000| 100|0.10481537| PASSED
|
||
|
|
sts_serial| 13| 100000| 100|0.22822077| PASSED
|
||
|
|
sts_serial| 13| 100000| 100|0.66019102| PASSED
|
||
|
|
sts_serial| 14| 100000| 100|0.26002872| PASSED
|
||
|
|
sts_serial| 14| 100000| 100|0.87881975| PASSED
|
||
|
|
sts_serial| 15| 100000| 100|0.42922502| PASSED
|
||
|
|
sts_serial| 15| 100000| 100|0.68487544| PASSED
|
||
|
|
sts_serial| 16| 100000| 100|0.58656170| PASSED
|
||
|
|
sts_serial| 16| 100000| 100|0.53290142| PASSED
|
||
|
|
rgb_bitdist| 1| 100000| 100|0.51900504| PASSED
|
||
|
|
rgb_bitdist| 2| 100000| 100|0.79584778| PASSED
|
||
|
|
rgb_bitdist| 3| 100000| 100|0.61693742| PASSED
|
||
|
|
rgb_bitdist| 4| 100000| 100|0.98138944| PASSED
|
||
|
|
rgb_bitdist| 5| 100000| 100|0.79680743| PASSED
|
||
|
|
rgb_bitdist| 6| 100000| 100|0.40301904| PASSED
|
||
|
|
rgb_bitdist| 7| 100000| 100|0.86271738| PASSED
|
||
|
|
rgb_bitdist| 8| 100000| 100|0.05374503| PASSED
|
||
|
|
rgb_bitdist| 9| 100000| 100|0.87172406| PASSED
|
||
|
|
rgb_bitdist| 10| 100000| 100|0.75492489| PASSED
|
||
|
|
rgb_bitdist| 11| 100000| 100|0.36375640| PASSED
|
||
|
|
rgb_bitdist| 12| 100000| 100|0.97870218| PASSED
|
||
|
|
rgb_minimum_distance| 2| 10000| 1000|0.64644256| PASSED
|
||
|
|
rgb_minimum_distance| 3| 10000| 1000|0.35176212| PASSED
|
||
|
|
rgb_minimum_distance| 4| 10000| 1000|0.81882879| PASSED
|
||
|
|
rgb_minimum_distance| 5| 10000| 1000|0.59290965| PASSED
|
||
|
|
rgb_permutations| 2| 100000| 100|0.52393977| PASSED
|
||
|
|
rgb_permutations| 3| 100000| 100|0.29814762| PASSED
|
||
|
|
rgb_permutations| 4| 100000| 100|0.29601751| PASSED
|
||
|
|
rgb_permutations| 5| 100000| 100|0.93920367| PASSED
|
||
|
|
rgb_lagged_sum| 0| 1000000| 100|0.85678805| PASSED
|
||
|
|
rgb_lagged_sum| 1| 1000000| 100|0.76026887| PASSED
|
||
|
|
rgb_lagged_sum| 2| 1000000| 100|0.97506899| PASSED
|
||
|
|
rgb_lagged_sum| 3| 1000000| 100|0.75520196| PASSED
|
||
|
|
rgb_lagged_sum| 4| 1000000| 100|0.39924791| PASSED
|
||
|
|
rgb_lagged_sum| 5| 1000000| 100|0.99498131| PASSED
|
||
|
|
rgb_lagged_sum| 6| 1000000| 100|0.76423409| PASSED
|
||
|
|
rgb_lagged_sum| 7| 1000000| 100|0.37518368| PASSED
|
||
|
|
rgb_lagged_sum| 8| 1000000| 100|0.32518164| PASSED
|
||
|
|
rgb_lagged_sum| 9| 1000000| 100|0.29782458| PASSED
|
||
|
|
rgb_lagged_sum| 10| 1000000| 100|0.33222498| PASSED
|
||
|
|
rgb_lagged_sum| 11| 1000000| 100|0.28793810| PASSED
|
||
|
|
rgb_lagged_sum| 12| 1000000| 100|0.75475293| PASSED
|
||
|
|
rgb_lagged_sum| 13| 1000000| 100|0.90549286| PASSED
|
||
|
|
rgb_lagged_sum| 14| 1000000| 100|0.75601003| PASSED
|
||
|
|
rgb_lagged_sum| 15| 1000000| 100|0.77940074| PASSED
|
||
|
|
rgb_lagged_sum| 16| 1000000| 100|0.65667602| PASSED
|
||
|
|
rgb_lagged_sum| 17| 1000000| 100|0.40248634| PASSED
|
||
|
|
rgb_lagged_sum| 18| 1000000| 100|0.61395852| PASSED
|
||
|
|
rgb_lagged_sum| 19| 1000000| 100|0.57327052| PASSED
|
||
|
|
rgb_lagged_sum| 20| 1000000| 100|0.16561333| PASSED
|
||
|
|
rgb_lagged_sum| 21| 1000000| 100|0.39929834| PASSED
|
||
|
|
rgb_lagged_sum| 22| 1000000| 100|0.49704905| PASSED
|
||
|
|
rgb_lagged_sum| 23| 1000000| 100|0.98204460| PASSED
|
||
|
|
rgb_lagged_sum| 24| 1000000| 100|0.69626086| PASSED
|
||
|
|
rgb_lagged_sum| 25| 1000000| 100|0.11607617| PASSED
|
||
|
|
rgb_lagged_sum| 26| 1000000| 100|0.13345423| PASSED
|
||
|
|
rgb_lagged_sum| 27| 1000000| 100|0.47597394| PASSED
|
||
|
|
rgb_lagged_sum| 28| 1000000| 100|0.20637857| PASSED
|
||
|
|
rgb_lagged_sum| 29| 1000000| 100|0.99168483| PASSED
|
||
|
|
rgb_lagged_sum| 30| 1000000| 100|0.63085174| PASSED
|
||
|
|
rgb_lagged_sum| 31| 1000000| 100|0.74058543| PASSED
|
||
|
|
rgb_lagged_sum| 32| 1000000| 100|0.51943588| PASSED
|
||
|
|
rgb_kstest_test| 0| 10000| 1000|0.98352339| PASSED
|
||
|
|
dab_bytedistrib| 0| 51200000| 1|0.76481752| PASSED
|
||
|
|
dab_dct| 256| 50000| 1|0.50340138| PASSED
|
||
|
|
Preparing to run test 207. ntuple = 0
|
||
|
|
dab_filltree| 32| 15000000| 1|0.54182883| PASSED
|
||
|
|
dab_filltree| 32| 15000000| 1|0.08567872| PASSED
|
||
|
|
Preparing to run test 208. ntuple = 0
|
||
|
|
dab_filltree2| 0| 5000000| 1|0.20297371| PASSED
|
||
|
|
dab_filltree2| 1| 5000000| 1|0.17653315| PASSED
|
||
|
|
Preparing to run test 209. ntuple = 0
|
||
|
|
dab_monobit2| 12| 65000000| 1|0.41951689| PASSED
|
||
|
|
|