3 ms·
I also tried to verify "table 6", which appears to be correct except for the second row, where the hex value shown for "C" is accidentally the same as "E". Cor
by jepler 7y ago
I also tried to verify "table 6", which appears to be correct except for the second row, where the hex value shown for "C" is accidentally the same as "E". Correcting it to 0x7761792c20666f72 causes all the "test cases" to come out as claimed.
https://emergent.unpythonic.net/files/sandbox/474bis.py https://emergent.unpythonic.net/files/sandbox/474bis.py
It does seem like there has to be some interesting cryptanalysis going on to produce this many interesting pairs, particularly when they're (claimed to be) drawn from a relatively short corpus.
However, when considering how you would generate such pairs, you need not actually do "Algorithm 1" (in which step 6 is "do the secret magic"); you can select your block Pi and key Ki, then see if the result happens to be a block Ci that you can claim you picked first. In "pg10.txt" there are 53103 distinct 4-byte blocks, or about 2^32 pairs of blocks, so if you work in this way you only have to do around 2^33 SIMON-64/32 block encryptions to be able to produce a new row of "table 6".
Also, some of the C/E values are not actually present in "pg10.txt", their supposed restricted corpus. For instance, "{" is a character in several of them, but appears nowhere at all in my copy downloaded from the URL they gave. So they have somehow failed to accurately describe the corpus they actually used.
- jepler 7y ago$ curl -s > pg10.txt https://www.gutenberg.org/cache/epub/10/pg10.txt $ grep -F '{' pg10.txt $ sha256sum pg10.txt 33d5b0600eed937022386d3d1afd2316f1fa219bd0e3ce723c8b1fb49352498f pg10.txt
- jepler 7y agoHere are 100 more items just like table 6, generated in, oh, about 2 seconds on an i7-4790k. https://emergent.unpythonic.net/files/sandbox/trolled.txt https://emergent.unpythonic.net/files/sandbox/trolled.txt Here's the search program (built with g++ -O3 -fopenmp -fno-strict-aliasing on debian stretch) https://emergent.unpythonic.net/files/sandbox/search.c https://emergent.unpythonic.net/files/sandbox/search.c Just put the corpus "pg10.txt" in the current directory and run. Newlines in the corpus are turned to spaces; carriage returns are deleted. I back-checked just a few using the same Python SIMON implementation.