1 ##### Signed by https://keybase.io/neilnjae
3 -----BEGIN PGP SIGNATURE-----
6 iQIcBAABCAAGBQJWTz/TAAoJEJPB2e07PgbqmWUP/3Hps+dixX3O6YHcemin0oHv
7 q3DFujbaFJK+qHh6ofKMYk/vItdFE5mLXgpoSfCtn9aPyt9A8JuYnsxdpjs3Y6L5
8 r+f38QUuMNa9xtqff05My4TSIjWq5XX6pM8sQE2u1t7TZEz1DVDghxb+aaFhbHK1
9 fG9GvuOCo/7p+3nXAhg+JIoczYlZkN5huduAA/1w1g87rPCPQKovcQ/d17ZspqU0
10 WyClNyAUiFg7sbYp+CqQqhQyYCKOe0fw9JU1Kyh23YeKMqsgS5DOu5ZW7Kl+Bcrl
11 qQttbt0TInHhcPMzYTYCr1ylR0uCbCkTXyEfDTjcbd9VKcILIFWLGclkew25AKRr
12 wmdbjfvmMpiwE5yqGh5tBpLVNZLJzQ1YoZuilNJnqQTtNN0qSB5SBKXHf+BA01tE
13 Ryz1SW7K0ocgyKUf5hcZv+qAfX0EfyrxDnnxgIn80Pwua42m4cYQKqNLUywPdtkE
14 wx9UnYirc9WnNW/ctma2b5Y0ANu4YxLMF1l9abjzzLhDXhxHdv6/2wSSPstyKOD1
15 iZWHMeVQ4ntq3+S5W/TL2dKBgbDl4QUXs81aGNMQE72p1uoThFPiWWXuEwUVr+H3
16 /c+2sIyGTixBKgGdP4k7TxXlhGSeL/rz61TLuziLQEDfYJrvuHKX6kW/CtkpPmIP
19 -----END PGP SIGNATURE-----
23 <!-- END SIGNATURES -->
25 ### Begin signed statement
30 size exec file contents
32 60 .directory 0e83b2cb4dc042236e38c6f8b2575dd0e30b70d4d396795008d5fb3facea2872
33 384 .gitignore a93de2ae5c2a47a38599751d1f914566569dfa09dd1778e207117db6c71421dd
35 1678 1a.ciphertext c7c16198650e7d91577683acca664a0e588ac5474046a028dea3d9dc4b388df8
36 1678 1a.plaintext 1b34de5b1d1422a3089c54d751dfd3938449c98526137a0b8b3b6561a700f9b5
37 3312 1b.ciphertext ec263c5cb415f99924e5744846c618b2566a072ac79f6b3cfdde294b99c491fd
38 3323 1b.plaintext a7fde879259e64fccca52618a9c008f2111e485ed1c6bfad863c90d8e6ceacae
39 1716 2a.ciphertext 2203112c5b43e09b61d8e2918554831559efc7a1157aafda85c25d5ae67f2f0f
40 1716 2a.plaintext 28afae88a3b3f0e553f326be7efb896587cb4ac43b9fd664d2cc3f9b2489de35
41 2268 2b.ciphertext 587ba7bb4c39d6bd23cbefdcef63d1211d81f6340d401027f9b8e97c97a71b6c
42 2268 2b.plaintext 4ee16e37ec82a6ea5446c3d03689bcf608d7408cf79542accaabc297fe6d9f97
43 1549 3a.ciphertext fcfff1c90fb5e0cb4240b0617cd7a0bfb1f81ee513a572b44562a0e9db9b4a1b
44 1549 3a.plaintext 54c6b1ec3364c34a824ee693c00fa41c466f4bfccad281c4111ce1966232c9f4
45 2009 3b.ciphertext 4a568ac5e67430cd30a2bfd73214a7b3984b3117be16f649ea99c40d3de551c3
46 2118 3b.plaintext a2b398c99fe1f00d3e7c558c5a9ea9d6739120d63e84b17f19d8f524ae9adf26
47 1495 4a.ciphertext 4cbf7aa5d463087f40c3ca724a3860f38b8cad1fc281374eb4567df004d3b5ca
48 1559 4a.plaintext b1c02b4ed9df29fcefb046aec75a7702f6e6c1cd28bd56cc67bec1f4ae2af4fb
49 2137 4b.ciphertext 829ef4812a023567b9652c57f92da6f48c0b854694eac1a7c9452645723e15db
50 2212 4b.plaintext d811c945afab0212c346531fd557c0f1d9a3fb0207835152a1426deda9e0b2a1
51 1449 5a.ciphertext 9fb9fbe92a26b3d1b2f54909e732a0d1afde90f97483affcfa9bbacb4edf3d77
52 1524 5a.plaintext 203ea3702e17269cbed804f019dd887ae7fc27b2585f1551fc758692e5ba14dd
53 2561 5b.ciphertext c0bc2532c853e723fb7c3529c60ca859b7d61af238a98ddaabe0c01423e2a3ab
54 2618 5b.plaintext 61431a5bfd9a0e1e21e8ac7ba764ba46cc4b2a3e7adf22fff13153fdc278a451
55 1225 6a.ciphertext d22c65b2445ab1228c8351239c37310188d4ec9e173825da43f79509d957aada
56 1285 6a.plaintext 27e574c224ad11d7b6258ef6212e8961decac5af3e93c9b08b0919c82c376f98
57 1478 6b.ciphertext e80fc065648e8a4207a7d698cd0f39722d69df819fdf756a7d30e2886670542c
58 1544 6b.plaintext 424fc647b26f1ef153ec73eda2745896813bc1c6b498a5a0b0b05ff931ec5bf6
59 1331 7a.ciphertext d73fe6633bafb097a283396bb5a9b8a5f025031453d1df14156f9c41e898fac3
60 1412 7a.plaintext e13149a6f2df3d7d466f761d58c4a8ca3a82fbbc4f6dca983e83442e5caa748f
61 2551 7b.ciphertext 15200bf858dede4f6cabffaac54c14d37171cd4f7641a059258cd44b6cb98e7d
62 2661 7b.plaintext 430d167225a8f8c98d6e3f69aaca5846ba7d112567b987f3481832b07b03fc05
63 1125 8a.ciphertext 5c47ee5314dc118b515b2ab8dc5ed14c492294e70a67f9329ed10d3486fd9ba6
64 1195 8a.plaintext a1deee4fa908fb536035435eb066d5c1fed91f962cfd0390f5c51fbb60caceb7
65 1783 8b.ciphertext c782e2765c9e3cb0ec72cc77f063ad7f90f2a003d5078b452c24ce3a4549f696
66 1783 8b.plaintext 925b270f35dce522f0447085f78795a6f8101013648c836b029f0535f4d752e6
68 1340 1a.ciphertext 6b69f06bd684fdaa79ff35497715af6ded3c176277859d1d774bb2569dd53a97
69 1340 1a.plaintext cbdaac33a7943a752ba5dd21cf7af23bdbdd22e4a5feb0bccecce45d605d0581
70 1495 1b.ciphertext 2e0389e2c7d3156892f7d361ee79f86eb79d34812fca37d8ce692cb6f3976446
71 1495 1b.plaintext 717b1f8955515a5d5d2f049f0ffe137820d71f8b2a1689e1a29ec30ed7c9d473
72 1135 2a.ciphertext 85ad3dac4751a8db90f391d0f06935a5ef2118d9ac72e05fe0518d7f77bff058
73 1135 2a.plaintext 11cdf7c462c536085daced417023adaeff2f6b7a6162ccd12b340b079bd36b48
74 926 2b.ciphertext 0fc59b28e4cd2db0aa9f28a603e2b25988a6688f05f90a59b205088093721340
75 973 2b.plaintext 019c012f87531e2f9173acae952e7d4a304ed1a62ef341e71455a128d3e7056f
76 983 3a.ciphertext 20ab3ad9342e51d82243a678eaf2bc9187553bcedb50c830541a54f34dc9b3dd
77 1090 3b.ciphertext c35efccfb68ce3eaa5e7c699ed36a09f23aa719125e4df9f2faef11da1cd5d8a
78 1134 4a.ciphertext 523d35a8b412bf2e2a88b160529cae76c512d08f2a589ba53b2ac3c4d4184858
79 1061 4b.ciphertext 2cdebce220d9d20ef4c85f208999f81940383a9181bbb0e63b37b7031edcb688
80 875 5a.ciphertext b841414d1fbf8af991df389b1b9466d0401c39074f7433dcf3e90648b4d9ab5f
81 957 5b.ciphertext 5b6303144fde83cdcdb74976da515933444b7c29efd8ad15d33e65edd2ef78fb
82 712 6a.ciphertext 1313d5ffe4e6d2ee82b4f4bbffbe522d5e073775baa53a11bec10c2a693bc7da
83 1888 6b.ciphertext 137618d9d92a8a28b7b7fff9a385c4c2db76dff10e0d326895cb0723a63a6adc
84 2132 7a.ciphertext d604c136b793701d7501c72821d4069975ce098c2da55fac29331f0045c62b5f
85 1565 7b.ciphertext adeef9d9e985c534c40acee5c6734d04195895a32efd9452a89cafef1fdc91b8
86 182 mona-lisa-words.txt d7d05c9c86f6282fa66df5f4ca795c89f01cef88a9ce8c921ce4484b3d6078a7
87 1190 solutions.txt bd14d8cb1b6694ee4b07d7f38f4df7931e89c10247f101878b6056647bf67cee
88 135303 2013-challenge6.ipynb 5b37a8b10db4c8d9831827a2acdffdcdb65369557d15b3e08a900ee8e088da73
89 31542 2013-challenge7.ipynb 6de8c15b9cca8b166be4ab86df94898544803e7ed46f8042e363414bed1d2dcc
91 735 1a.ciphertext 3adb9e2747c6e3b4033c8042a6dcccb7c2e45988d64c5c78ec0a2c472dc88f95
92 610 1b.ciphertext bc11485a47af830fa0ded0b07feebf042c0a6956dc71daa60b525067e96c220a
93 767 2a.ciphertext 3881a4f1fc0fadc064bc27d3052800b5eb497e833b208c2cee381b466c9b1db8
94 398 2b.ciphertext 78faf9d7a0aad25a9fa72f886c398bc0b684a389bc5624ab4514e93685157a93
95 958 3a.ciphertext 0d0524b194961bdbe6fe200cfe983a9338abcca5adabb6776769387967a50711
96 658 3b.ciphertext f75662b32e941df727ef411f522ad348016b82e40f957fd6f51eb1b972c7456d
97 784 4a.ciphertext 44ae2388243a1782045b0d105612696bf3505517aa7a64f84c7b890e311aa54b
98 798 4b.ciphertext d3c54580f2008f81f3a9d2bbc46ef861da192a5c9828ff79807a02dc20b5f3cb
99 1191 5a.ciphertext e2bb31d68c7d3359c28f28dabe31ca679f8128903fd91fddc0eceb49483ef169
100 994 5b.ciphertext b8087115c18209060ba9e0ce1032a9593fdeabbb55a86507c634b64c62a7c290
101 1168 6a.ciphertext b7718e6b9e2ee029f7987178f702aad2e829d5f96d17a0e48b4365de4f5f1f6b
102 634 6b.ciphertext 6049395e22af4f76540970c90faf301cf2999cefbc008a651ab36fe413e8aedc
103 1650 7a.ciphertext 8a856dc907c04dea27d7d12f530c1c3e11dff6b51fb593bea10a8d68e0240cf6
104 988 7b.ciphertext cfb66667a8011226be0be7c98e9deb7efa02e9a53cad67743baf166c20136ada
105 1391 8a.ciphertext ac2b18d13ef44be0fb233d2455c51897b4df59491bbdd23ef82fbd9490bc86b1
106 7001 8b.ciphertext 8d7e366e8fbb5766717481eeec77b089d3e8f9e708ac198d56176cb0882a9472
107 3882 2014-challenge1.ipynb 07715f100d97af32ad5a13b56ade2f5753e17e32404e2eda0dcb9634736298f5
108 28071 2014-challenge2.ipynb 1535404ae5a412160c82d19e38f7069a2eaca600bd433e77877bd13e14929e6b
109 29190 2014-challenge3.ipynb 1454c5e5014eac93c42e88611f3f6b3f014bf70a8e9d8e87ef4725f8d12a27b7
110 32758 2014-challenge4.ipynb 1794b0b2c6fd4630f6d9ffe15ffdad52d04af23082eddc920ec02ba4740032e4
111 23322 2014-challenge5.ipynb fb3bb531c62ed943528715cc19e800293e3cd4a176ce3a3fe01e7e585386907e
112 40307 2014-challenge6.ipynb 5085a4ae2a562c87983cbff817ac89826973341551980563ae0c77ab747a5dff
113 44472 2014-challenge7.ipynb 9800d39c881f22f67f1182f6ca73bbf40a123d0deb598a6009f545f421955241
114 188080 2014-challenge8.ipynb c59bcfbb39e48e6e151cc0c86fe48add67844954cf3c65d560bbda0c972a8376
116 874 1a.ciphertext 5d0d71f24522e1c05127feb601bf8dc82566f3d2795fb51c4a60e22d900bb5eb
117 394 1b.ciphertext a35e8265aea45ab5f7c5eb141e5e65c85ecc24c7d87f3e8197dfe6795a7d3226
118 1193 2a.ciphertext 412db1381dcb01f858bf848e48ada16aa4603cbb348c1f092ae39b06d2efa5f9
119 544 2b.ciphertext 5ff59d7cff1c4d27dee6414769bdbcfb0b0ab9c5931e772bf9f6442eeb9b6855
120 898 3a.ciphertext 5a9f89002db8520dbad882565a0130d3a462ed967e9cebeca828e9f727a267c4
121 549 3b.ciphertext efe393ad39849468a04bec4a49d259074fa60c54aa3eac832af5f858fcd06bcd
122 917 4a.ciphertext 9c30e8793c161f3f0e1ef0aeb39c854166f9e8e84c149541c9d71d07ff3d37bd
123 1032 4b.ciphertext e99143388a6eacb81442ef594bdb0820992eaf89f3a0def9250b4b60ce7ef04b
124 1576 5a.ciphertext 73011f47f1412903e23a718da397ed3ba3a0306e72299d5abf401d93fc451205
125 840 5b.ciphertext 69f3e64a2fa925a84f1f0b09b30bf901564436519f1c8b515121219fcd544638
126 3620 2015-challenge1.ipynb 2ab544f48c22a3a2e665b03ae094ac2de04aee8bdb37366209276a937d248d6a
127 4092 2015-challenge2.ipynb 58c2aeca6c73a8fef71d0cc8321469358803f392c02fd44631dd0b25c2755f4a
128 3987 2015-challenge3.ipynb dfec26ba881c7ad0af54d072aeba4d08162661e863266936963130548ff86b65
129 8030 2015-challenge4.ipynb f77ead0eae7fcd67039d500a31ad1748a4df115905adecd0e93e56f72bbdcfa0
130 5039 2015-challenge5.ipynb b0c28829c329d7a2752f4991006e6d78a10415d7609b893b80b3bdb788d6e533
131 18025 LICENSE a01259a1b522cf0de95824f9860613b453153eebac468e96196d5d7dba84786c
132 7999 LJ!-Qt!-Fghxft-dferts%3B-hsjeukaxxn-sfedw.ipynb 429b6c6995096ff19c28a5ee342bef8ea4774200bdf9aaf6268de3cb8b28df28
133 429647 Programming+for+A+level+Computing+through+automated+cipher+breaking.pdf 2f4008ad7217d7902c99bbfc7394c9b9128a3073f4c5d096ef4653d753358b9d|6c1eb93f74c8e3fd5a180e80ce7b315cb642a9f5f66805a4398f6b793dd9b852
134 61 README.md 277247b410300ee16477b12ca54ad878d81c8061f6134e2e1cadccaf299de3a3
135 469 affine_break_parameter_trials.csv 1a9d635d0af2f41fc6f1e83ae87d6372034259321ba288a11fb024e98ed52f4f|dd9c840434de596a30c84e79de26a9824b36c217a84876c2aab0579b76999735
136 6488666 big.txt fa066c7d40f0f201ac4144e652aa62430e58a6b3805ec70650f678da5804e87b
137 16832 cadenus-ciphers.ipynb 50e49b3ec5e6440b86fe13472b9f4ab9e133e5665c7280b2abf7a6b57bb8a89a
138 514 caesar_break_parameter_trials.csv 6586223bcc00e06e3ff79d107202d6c29ef962a6dd544add00610c5907407e85|1cb7cc77831ef3ef4f994a9ea77e82a841b38acdde45ede9cedbe7a54f1e8e46
139 41380 cipher.py 39536843924325b9acdc6aad387c55240fc12a9c23caeaee6ef67e0d7b94e95c
140 28349 cipherbreak.py 2a4cdf810302d5645064e460a4409f32173b02fc4e7c7ce0a84d1458a04007bc
141 11564 count_1edit.txt 3bf563ef032ba151ec1a4b2d1f33f50c49f4a47e4dc5b8152394bc5b63f57655|b5fbacbebcc25f5011ce97bc9ac967a09c50eef28b4aa98379a6c426df6ac08b
142 223 count_1l.txt 335388d457db6ef1da05d8b55ab879e9be7d4e021085efc8d9dfeac0e4a79aa9
143 4956241 count_1w.txt 51df159fd3de12b20e403c108f526e96dbd723d9cabdd5f17955cdc16059e690
144 9270 count_2l.txt bc2895f800189070c193907cd8bca956ad65fed2e25c14300d4bb5b6a243ba99
145 5566017 count_2w.txt 781c0596c3eea532d30bef9f3dba1d5137d652f00376260822c761a7584dfb8c
146 220441 count_3l.txt 8702c95530c7d0d182ab94dc03ed7681fcf969819f6db011a58de31411dc6365
147 320508 count_big.txt 3ba257fba1934bd138413d8274e79b56c5992431a27692fd562929aa43ec01a3
148 3355 find_best_affine_break_parameters.py 6b11004bb93ac26ec7d42d33504e758edbaf9d55365ae2e4ca2fca7589263f25
149 3027 find_best_caesar_break_parameters.py 0347d80309179d937a88fd1c8684490a513ccd086366c5a0dd55b8a2fe5c565f
150 1236 find_wikipedia_titles.py f040bf855dfec7fff9d8e5eba2fb509179bc53bc02a20b26b7fc61fef983aa45
151 37128 hill-ciphers.ipynb ce802c2be807b4565858b568d3a82c65a3957aa625344189f8f2a055237b3fdd
152 5516 language_models.py 9f6c60892b385a8443202edda95074eb28e2b66981e25e27f4153b887e2c9ee3
153 368 lettercount.py ed36497d62cf75b91994055e4a18848b2fabe5ce793cd76a77fabfc94d81d4f3
154 592 make-cracking-dictionary.py 71791e64e4853cd9ca292cb436bbe8c72dd60f509811174df93ed2067683d5c1
155 7077 norms.py a657a36c1741e6f3a513386b318fcc99e6b11f98ec64a48284b47462ff2acf30
156 8411 norms.pyc ac7a18765c7bcc27e406d8f38d943408097b3384a271502185d53482e6ec0da7|002b186e716cec64869a00bd2d72e16614931e696daa0cf3529d634a0f270e42
157 112847 plot-caesar-parameters.ipynb 639459b4b2e434f9f0852c012ed9a8a8d87bd1cb6c2d65ca5abfdb0e42c3dea6
158 23863 railfence-experiment-1.ipynb e34a61cef19b3249a3d6d731fe054769c02233b0be661161ebf45bada3b7b97b
159 18628 railfence-experiment-2.ipynb 8c4d90c1c934b764deba0956bb4be81868e463789dc8fe02e5621ab3a95c0889
160 881 segment.py 94d257cc6151861ef3d3033c4d2d03d8c121b0a982344abf400f65fd507fed28
161 4538523 shakespeare.txt 6f9c770efced5c3d87efa6197cd3091b982341372e36c6357f865df91ddecde6
162 451530 spell-errors.txt a4abe6ce6c24280f9a8d0485cbf78ddd2e58279ca01293692630a08ba4b13407
163 69351 unknown-word-probability-investigation.ipynb 8a9cd7163f10bf2bfb3e286445eddcfc953f80abfdef4e29dac27617a53c3d41
164 3291641 war-and-peace.txt 3ed0f41cfdf660846878943bad5b9d575bcae1e4a92ee9a7f43d3c9dba2af344|6799e48d3fd0a6f4c40b9951ec86de6da81f0b9cd36e413490ac511542ca54d3
165 868202 words.txt aa77abbcba3c6dee1306d93adcedc2b2ccb8a4e0344a39d0676732ff58ebd5e5
166 868384 words_2013.txt 57faa4841fe28dd82a5da4488b6381c194df6e1ecc04e61fb9f60e842bbca18c
178 git # ignore .git and anything as described by .gitignore files
181 <!-- summarize version = 0.0.9 -->
183 ### End signed statement
189 With keybase you can sign any directory's contents, whether it's a git repo,
190 source code distribution, or a personal documents folder. It aims to replace the drudgery of:
192 1. comparing a zipped file to a detached statement
193 2. downloading a public key
194 3. confirming it is in fact the author's by reviewing public statements they've made, using it
196 All in one simple command:
202 There are lots of options, including assertions for automating your checks.
204 For more info, check out https://keybase.io/docs/command_line/code_signing