4 ms·
I tried to verify "table 5", but while the "YHWH" keys all worked, only 2 of the 5 " " keys did. https://emergent.unpythonic.net/files/sandbox/474.py https:
by jepler 7y ago
I tried to verify "table 5", but while the "YHWH" keys all worked, only 2 of the 5 " " keys did.
https://emergent.unpythonic.net/files/sandbox/474.py https://emergent.unpythonic.net/files/sandbox/474.py
(Table 5 isn't "important", it's just a justification of why their algorithm 1 skips analyzing pairs where the plaintext in each pair is identical; and finding such keys doesn't seem TOO hard to do in the obvious way, you can get one such key every 4 billion trials or so)
PS The authors thank an Oleg Ivanovich Popov. I found one such person who is a researcher ... with publications such as "Thermodynamics of Hydrogen-Sulfide Conversion in a Claus Reactor in Coke-Oven Gas Desulfurization Circuit of MMK"
- jepler 7y agoI 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.
- tptacek 7y agoI don't think any of the names in this "paper" are real.