November 2014
S M T W T F S
« Oct    
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Recent Posts

XDiceLock 8.0.0.1 for Apple Mac OS X, Salsa20_20_256 class (Salsa20/20 256 stream cipher algorithm) verified with test Set 6 and DefaultCryptoRandomStream class (default virtual memory management)

XDiceLock 8.0.0.1 for Apple Mac OS X is the cryptographic architecture that ensures that ciphertext it’s not just encrypted but also randomized.

DiceLock cipher architecture presents two main configurations:
Dicelock Digested, and
Dicelock Indexed.

DiceLock encryption architecture improves symmetric ciphers like block cipher as Advanced Encryption Standard, Camellia, Serpent, Twofish (128, 192 and 256 bit key lengths) with different block cipher operation modes (like CBC, CFB, OFB and XTS) and stream ciphers as HC 128, HC 256, Rabbit, Salsa 20/20, Sosemanuk and others.

DiceLock (both configurations) makes use of the following random number tests: Frequency Test, Block Frequency Test, Cumulative Sum Forward Test, Cumulative Sum Reverse Test, Runs Test, Longest Run Of Ones Test, Rank Test, Universal Test, Approximate Entropy Test, Serial Test and Discrete Fourier Transform Test.

Additionally DiceLock Digested configuration makes use currently of following hash digest algorithms: Sha 1, Sha 224, Sha 256, Sha 384, Sha 512, Ripemd 128, Ripemd 160, Ripemd 256, Ripemd 320, Md2, Md4 and Md5.

Previous version XDiceLock 7.0.0.1 for Apple Mac OS X incorporated XTS-AES (XEX-based tweaked-codebook mode with ciphertext stealing XTS block cipher operation mode algorithm) for Advanced Encryption Algorithm (AES) for 128 and 256 bit symmetric keys.

New version XDiceLock 8.0.0.1 for Apple Mac OS X has made significant improvements:
- added block encryption ciphers like Camellia, Serpent and Twofish with all accepted key lengths of 128, 192 and 256 bits,
- added stream ciphers like Rabbit, Salsa 20/20 with 128 and 256 bit key lengths, and general Sosemanuk, as well as Sosemanuk with 128 and 256 bit key lengths,
- added old hash algorithms like Message Digest 2, Message Digest 4 and Message Digest 5,
- modified DiceLockIndexed and DiceLockDigested classes to be used with encryption ciphers that does not make use of initialization vector (IV),
- created DiceLockIVDigested and DiceLockIVIndexed classes to be used with encryption ciphers that makes use of initialization vector (IV),
- extended DiceLockXTSDigested and DiceLockXTSIndexed classes to be use with newly added Camellia, Serpent and Twofish block ciphers and all three key lengths (128, 192 and 256 bit key lengths),
- added old encryption ciphers like DEA (Data Encryption Algorithm), TDEA (Triple Data Encryption Algorithm), and ARC4 (alleged RC4) for compatibillity reasons.

As the new version XDiceLock 8.0.0.1 for Apple Mac OS X is developed, all individual components must be tested and verified, and in this article we verify Salsa20/20 256 class (computing Salsa20/20 256 stream cipher algorithm).

At the bottom of the post you can find C++ source code being used to perform this test.


Verified XDiceLock 8.0.0.1 for Apple Mac OS X

Verification components:

– Stream encryption cipher algorithm: Salsa20_20_256 class
– Test set number: 6
– Bit stream memory management: DefaultCryptoRandomStream class (default virtual memory management)

Memory characteristic used in this test:

DefaultCryptoRandomStream class makes use of default virtual memory where the system can move pages of physical memory to and from a paging file on disk (manipulation of physical memory by the system is completely transparent to applications).

 

Once computed we’ve got the following results:

Set 6, vector# 0

Input plaintext: 131072 zero bytes
Key: 0053a6f94c9ff24598eb3e91e4378add3083d6297ccf2275c81b6ec11467ba0d
Initial vector: 0d74db42a91077de
From byte 0 to byte 63
Expected f5fad53f79f9df58c4aea0d0ed9a9601f278112ca7180d565b420a48019670eaf24ce493a86263f677b46ace1924773d2bb25571e1aa8593758fc382b1280b71
Computed f5fad53f79f9df58c4aea0d0ed9a9601f278112ca7180d565b420a48019670eaf24ce493a86263f677b46ace1924773d2bb25571e1aa8593758fc382b1280b71
Result: OK
From byte 65472 to byte 65535
Expected b70c50139c63332ef6e77ac54338a4079b82bec9f9a403dfea821b83f7860791650ef1b2489d0590b1de772eeda4e3bcd60fa7ce9cd623d9d2fd5758b8653e70
Computed b70c50139c63332ef6e77ac54338a4079b82bec9f9a403dfea821b83f7860791650ef1b2489d0590b1de772eeda4e3bcd60fa7ce9cd623d9d2fd5758b8653e70
Result: OK
From byte 65536 to byte 65599
Expected 81582c65d7562b80aec2f1a673a9d01c9f892a23d4919f6ab47b9154e08e699b4117d7c666477b60f8391481682f5d95d96623dbc489d88daa6956b9f0646b6e
Computed 81582c65d7562b80aec2f1a673a9d01c9f892a23d4919f6ab47b9154e08e699b4117d7c666477b60f8391481682f5d95d96623dbc489d88daa6956b9f0646b6e
Result: OK
From byte 131008 to byte 131071
Expected a13ffa1208f8bf50900886faab40fd10e8caa306e63df39536a1564fb760b242a9d6a4628cdc878762834e27a541da2a5e3b3445989c76f611e0fec6d91acacc
Computed a13ffa1208f8bf50900886faab40fd10e8caa306e63df39536a1564fb760b242a9d6a4628cdc878762834e27a541da2a5e3b3445989c76f611e0fec6d91acacc
Result: OK
xor-digest
Expected c349b6a51a3ec9b712eaed3f90d8bcee69b7628645f251a996f55260c62ef31fd6c6b0aea94e136c9d984ad2df3578f78e457527b03a0450580dd874f63b1ab9
Computed c349b6a51a3ec9b712eaed3f90d8bcee69b7628645f251a996f55260c62ef31fd6c6b0aea94e136c9d984ad2df3578f78e457527b03a0450580dd874f63b1ab9
Result: OK
DECIPHERING Checking deciphered text with input plaintext: OK

 

Set 6, vector# 1

Input plaintext: 131072 zero bytes
Key: 0558abfe51a4f74a9df04396e93c8fe23588db2e81d4277acd2073c6196cbf12
Initial vector: 167de44bb21980e7
From byte 0 to byte 63
Expected 3944f6dc9f85b128083879fdf190f7dee4053a07bc09896d51d0690bd4da4ac1062f1e47d3d0716f80a9b4d85e6d6085ee06947601c85f1a27a2f76e45a6aa87
Computed 3944f6dc9f85b128083879fdf190f7dee4053a07bc09896d51d0690bd4da4ac1062f1e47d3d0716f80a9b4d85e6d6085ee06947601c85f1a27a2f76e45a6aa87
Result: OK
From byte 65472 to byte 65535
Expected 36e03b4b54b0b2e04d069e690082c8c592df56e633f5d8c7682a02a65ecd13718ca4352aaccb0da20ed6bbba62e177f210e3560e63bb822c4158caa806a88c82
Computed 36e03b4b54b0b2e04d069e690082c8c592df56e633f5d8c7682a02a65ecd13718ca4352aaccb0da20ed6bbba62e177f210e3560e63bb822c4158caa806a88c82
Result: OK
From byte 65536 to byte 65599
Expected 1b779e7a917c8c26039ffb23cf0ef8e08a1a13b43acdd9402cf5df38501098dfc945a6cc69a6a17367bc03431a86b3ed04b0245b56379bf997e25800ad837d7d
Computed 1b779e7a917c8c26039ffb23cf0ef8e08a1a13b43acdd9402cf5df38501098dfc945a6cc69a6a17367bc03431a86b3ed04b0245b56379bf997e25800ad837d7d
Result: OK
From byte 131008 to byte 131071
Expected 7ec6dae81a105e67172a0b8c4bbe7d06a7a8759f914fbeb1af62c8a552ef4a4f56967ea29c7471f46f3b07f7a3746e953d315821b85b6e8cb40122b96635313c
Computed 7ec6dae81a105e67172a0b8c4bbe7d06a7a8759f914fbeb1af62c8a552ef4a4f56967ea29c7471f46f3b07f7a3746e953d315821b85b6e8cb40122b96635313c
Result: OK
xor-digest
Expected c3eaaf32836bace32d04e1124231ef47e101367d6305413a0eeb07c60698a2876e4d031870a739d6ffddd208597aff0a47ac17edb0167dd67eba84f1883d4dfd
Computed c3eaaf32836bace32d04e1124231ef47e101367d6305413a0eeb07c60698a2876e4d031870a739d6ffddd208597aff0a47ac17edb0167dd67eba84f1883d4dfd
Result: OK
DECIPHERING Checking deciphered text with input plaintext: OK

 

Set 6, vector# 2

Input plaintext: 131072 zero bytes
Key: 0a5db00356a9fc4fa2f5489bee4194e73a8de03386d92c7fd22578cb1e71c417
Initial vector: 1f86ed54bb2289f0
From byte 0 to byte 63
Expected 3fe85d5bb1960a82480b5e6f4e965a4460d7a54501664f7d60b54b06100a37ffdcf6bde5ce3f4886ba77dd5b44e95644e40a8ac65801155db90f02522b644023
Computed 3fe85d5bb1960a82480b5e6f4e965a4460d7a54501664f7d60b54b06100a37ffdcf6bde5ce3f4886ba77dd5b44e95644e40a8ac65801155db90f02522b644023
Result: OK
From byte 65472 to byte 65535
Expected c8d6e54c29ca204018a830e266ceee0d037dc47e921947302ace40d1b996a6d80b598677f3352f1daa6d9888f891ad95a1c32ffeb71bb861e8b07058515171c9
Computed c8d6e54c29ca204018a830e266ceee0d037dc47e921947302ace40d1b996a6d80b598677f3352f1daa6d9888f891ad95a1c32ffeb71bb861e8b07058515171c9
Result: OK
From byte 65536 to byte 65599
Expected b79fd776542b4620efcb88449599f23403e74a6e91cacc50a05a8f8f3c0dea8b00e1a5e6081f5526ae975b3bc0450f1a0c8b66f808f1904b971361137c93156f
Computed b79fd776542b4620efcb88449599f23403e74a6e91cacc50a05a8f8f3c0dea8b00e1a5e6081f5526ae975b3bc0450f1a0c8b66f808f1904b971361137c93156f
Result: OK
From byte 131008 to byte 131071
Expected 7998204fed70ce8e0d027b206635c08c8bc443622608970e40e3aedf3ce790aeedf89f922671b45378e2cd03f6f62356529c4158b7ff41ee854b1235373988c8
Computed 7998204fed70ce8e0d027b206635c08c8bc443622608970e40e3aedf3ce790aeedf89f922671b45378e2cd03f6f62356529c4158b7ff41ee854b1235373988c8
Result: OK
xor-digest
Expected 3cd23c3dc90201acc0cf49b440b6c417f0dc8d8410a716d5314c059e14b1a8d9a9fb8ea3d9c8dae12b21402f674aa95c67b1fc514e994c9d3f3a6e41dff5bba6
Computed 3cd23c3dc90201acc0cf49b440b6c417f0dc8d8410a716d5314c059e14b1a8d9a9fb8ea3d9c8dae12b21402f674aa95c67b1fc514e994c9d3f3a6e41dff5bba6
Result: OK
DECIPHERING Checking deciphered text with input plaintext: OK

 

Set 6, vector# 3

Input plaintext: 131072 zero bytes
Key: 0f62b5085bae0154a7fa4da0f34699ec3f92e5388bde3184d72a7dd02376c91c
Initial vector: 288ff65dc42b92f9
From byte 0 to byte 63
Expected 5e5e71f90199340304abb22a37b6625bf883fb89ce3b21f54a10b81066ef87da30b77699aa7379da595c77dd59542da208e5954f89e40eb7aa80a84a6176663f
Computed 5e5e71f90199340304abb22a37b6625bf883fb89ce3b21f54a10b81066ef87da30b77699aa7379da595c77dd59542da208e5954f89e40eb7aa80a84a6176663f
Result: OK
From byte 65472 to byte 65535
Expected 2da2174bd150a1dfec1796e921e9d6e24ecf0209bcbea4f98370fce629056f64917283436e2d3f45556225307d5cc5a565325d8993b37f1654195c240bf75b16
Computed 2da2174bd150a1dfec1796e921e9d6e24ecf0209bcbea4f98370fce629056f64917283436e2d3f45556225307d5cc5a565325d8993b37f1654195c240bf75b16
Result: OK
From byte 65536 to byte 65599
Expected abf39a210eee89598b7133377056c2fef42da731327563fb67c7bedb27f38c7c5a3fc2183a4c6b277f901152472c6b2abcf5e34cbe315e81fd3d180b5d66cb6c
Computed abf39a210eee89598b7133377056c2fef42da731327563fb67c7bedb27f38c7c5a3fc2183a4c6b277f901152472c6b2abcf5e34cbe315e81fd3d180b5d66cb6c
Result: OK
From byte 131008 to byte 131071
Expected 1ba89dbd3f98839728f56791d5b7ce235036de843cccab0390b8b5862f1e4596ae8a16fb23da997f371f4e0aacc26db8eb314ed470b1af6b9f8d69dd79a9d750
Computed 1ba89dbd3f98839728f56791d5b7ce235036de843cccab0390b8b5862f1e4596ae8a16fb23da997f371f4e0aacc26db8eb314ed470b1af6b9f8d69dd79a9d750
Result: OK
xor-digest
Expected e00ebccd70d69152725f9987982178a2e2e139c7bcbe04ca8a0e99e318d9ab76f988c8549f75add790ba4f81c176da653c1a043f11a958e169b6d2319f4eec1a
Computed e00ebccd70d69152725f9987982178a2e2e139c7bcbe04ca8a0e99e318d9ab76f988c8549f75add790ba4f81c176da653c1a043f11a958e169b6d2319f4eec1a
Result: OK
DECIPHERING Checking deciphered text with input plaintext: OK

 

XDiceLock 8.0.0.1 for Apple Mac OS X C++ source code used in this test:

XDiceLock 8.0.0.1 for Apple Mac OS X

XDiceLockCipher.h
baseCryptoRandomStream.h
baseCryptoRandomStream.cpp
defaultCryptoRandomStream.h
defaultCryptoRandomStream.cpp
symmetricCiphers.h
baseSymmetricCipher.h
baseSymmetricCipher.cpp
symmetricStreamers.h
symmetricStreamerSpecialTypes.h
baseSymmetricStreamer.h
baseSymmetricStreamer.cpp
baseSymmetricStreamer_with_IV.h
baseSymmetricStreamer_with_IV.cpp
streamCiphers.h
baseStreamCipher_with_IV.h
baseStreamCipher_with_IV.cpp
baseSalsa20_20.h
baseSalsa20_20.cpp
salsa20_20_256.h
salsa20_20_256.cpp



So, DiceLock cipher test and analysis can go on …

DiceLock is a trademark or registered trademark of his owner where applies. DiceLock research is the research to implement Self-corrector randomisation-encryption and method, european patent EP1182777 granted 08/21/2003 and US patent US7508945 granted 03/24/2009.

Leave a Reply