I decided to give my cipher theory one more try.
First, let’s talk a little bit about entropy (Shannon entropy). It’s an indicator how random the text is. If we take data as sequences of bytes, the entropy is in range 0 to 8.
For example the halos file has entropy 7.43, the random data from my previous post has entropy 7.42, but eg. Gunsrequiem’s last post has entropy only 4.57 (converted to ASCII).
So I took my php code from my last attempt, rewrote it in c++ to have more ciphers available and complete control over all details.
The block ciphers used:
DES, 3DES, DESX, Blowfish, IDEA, RC2, RC5, CAST128, SAFER_K, SAFER_SK, SKIPJACK, TEA, XTEA, GOST, SHARK
And I try all these modes:
ECB, CBC, CBC_CTS, CFB, OFB, CTR
And just in case, I also try these stream ciphers:
Panama, Sosemanuk, Salsa20, XSalsa20, RC4, SEAL, WAKE_OFB
And as Keys and IVs I try all combinations of these phrases (truncated if too long, padded with zero bytes if too short):
vector<string> Phrases {
"",
"BenalohPaillier",
"Niobium",
"Niobium5",
"NiobiumV",
"NiobiumFive",
"NiobiumPentachloride",
"Terminal",
"Abortive",
"ThEpIzZaIsaLiE",
"Halos",
"HalosProject",
"HalosAI",
"TempusOmniaRevelant",
"BMRF",
"BMRF.us",
"BlackMesaResearchFacility",
"congratulationsyouwonthePIZZA",
"Pizza",
"Pizzas",
"GiordanoBruno",
"Kryptos",
"KryptosStatue",
"BonAmi",
"KONami",
"KONamiCode",
"DrHorn",
"DrWelsh",
"DrMontero",
"VoxpopulivoxDei",
};[/SIZE]
Also, these phrases are uses multiple times with modified letter cases (eg. “thepizzaisalie”, “ThEpIzZaIsaLiE”, “THEPIZZAISALIE”, even “Thepizzaisalie”), so the phrase should always be in its “natural” casing.
I think the most likely mode is the ECB mode which uses no IV (initialization vector), but I try all modes and all phrases as IV, because I can.
Out of millions of decoded plaintexts, none of them had entropy lower than 7.2, this means that either there’s still some phrases to be tried or it just isn’t a symmetric cipher, which I find hard to believe.
Maybe it’s just completely random nonsense data to keep us busy until the Xen release?
Anyway, if you think of any more phrases I should try, just post them and I’ll try them.
Also, you can try limited ciphers manually here https://symmetric-ciphers.online-domain-tools.com/ I used it to test my program.