X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=bombe.ipynb;h=99770da11e6c9b203fb3b309c4ea06707ae77b9d;hb=a718663ac5643f2ee292a6b5784aa4d4ea95ee17;hp=c340539c46ee1642bb80f01ac9ee08a8b0e1fed0;hpb=6889a439393b5de11b205f96afd0e8eb6e2175d8;p=cipher-tools.git diff --git a/bombe.ipynb b/bombe.ipynb index c340539..99770da 100644 --- a/bombe.ipynb +++ b/bombe.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": { "collapsed": true }, @@ -22,38 +22,6 @@ "collapsed": true }, "outputs": [], - "source": [ - "# wheel_i_spec = 'ekmflgdqvzntowyhxuspaibrcj'\n", - "# wheel_ii_spec = 'ajdksiruxblhwtmcqgznpyfvoe'\n", - "# wheel_iii_spec = 'bdfhjlcprtxvznyeiwgakmusqo'\n", - "# wheel_iv_spec = 'esovpzjayquirhxlnftgkdcmwb'\n", - "# wheel_v_spec = 'vzbrgityupsdnhlxawmjqofeck'\n", - "# wheel_vi_spec = 'jpgvoumfyqbenhzrdkasxlictw'\n", - "# wheel_vii_spec = 'nzjhgrcxmyswboufaivlpekqdt'\n", - "# wheel_viii_spec = 'fkqhtlxocbjspdzramewniuygv'\n", - "# beta_wheel_spec = 'leyjvcnixwpbqmdrtakzgfuhos'\n", - "# gamma_wheel_spec = 'fsokanuerhmbtiycwlqpzxvgjd'\n", - "\n", - "# wheel_i_pegs = ['q']\n", - "# wheel_ii_pegs = ['e']\n", - "# wheel_iii_pegs = ['v']\n", - "# wheel_iv_pegs = ['j']\n", - "# wheel_v_pegs = ['z']\n", - "# wheel_vi_pegs = ['z', 'm']\n", - "# wheel_vii_pegs = ['z', 'm']\n", - "# wheel_viii_pegs = ['z', 'm']\n", - "\n", - "# reflector_b_spec = 'ay br cu dh eq fs gl ip jx kn mo tz vw'\n", - "# reflector_c_spec = 'af bv cp dj ei go hy kr lz mx nw tq su'" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": true - }, - "outputs": [], "source": [ "Signal = collections.namedtuple('Signal', ['bank', 'wire'])\n", "Connection = collections.namedtuple('Connection', ['banks', 'scrambler'])\n", @@ -62,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": { "collapsed": true }, @@ -107,7 +75,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": { "collapsed": false }, @@ -231,7 +199,7 @@ }, { "cell_type": "code", - "execution_count": 804, + "execution_count": 6, "metadata": { "collapsed": false }, @@ -243,7 +211,7 @@ }, { "cell_type": "code", - "execution_count": 805, + "execution_count": 7, "metadata": { "collapsed": true }, @@ -259,7 +227,7 @@ }, { "cell_type": "code", - "execution_count": 806, + "execution_count": 8, "metadata": { "collapsed": false }, @@ -270,7 +238,7 @@ "'opgndxcrwomnlnecjz'" ] }, - "execution_count": 806, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -284,7 +252,7 @@ }, { "cell_type": "code", - "execution_count": 807, + "execution_count": 9, "metadata": { "collapsed": false }, @@ -295,7 +263,7 @@ "'aas'" ] }, - "execution_count": 807, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -306,7 +274,7 @@ }, { "cell_type": "code", - "execution_count": 808, + "execution_count": 10, "metadata": { "collapsed": false }, @@ -334,7 +302,7 @@ " MenuIem(before='e', after='z', number=18)]" ] }, - "execution_count": 808, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -346,7 +314,7 @@ }, { "cell_type": "code", - "execution_count": 809, + "execution_count": 11, "metadata": { "collapsed": true }, @@ -359,7 +327,7 @@ }, { "cell_type": "code", - "execution_count": 810, + "execution_count": 12, "metadata": { "collapsed": false }, @@ -387,7 +355,7 @@ " MenuIem(before='e', after='z', number=18)]" ] }, - "execution_count": 810, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -398,7 +366,7 @@ }, { "cell_type": "code", - "execution_count": 811, + "execution_count": 13, "metadata": { "collapsed": false }, @@ -409,7 +377,7 @@ "'s'" ] }, - "execution_count": 811, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -420,7 +388,7 @@ }, { "cell_type": "code", - "execution_count": 812, + "execution_count": 14, "metadata": { "collapsed": false }, @@ -431,7 +399,7 @@ }, { "cell_type": "code", - "execution_count": 813, + "execution_count": 15, "metadata": { "collapsed": false }, @@ -442,7 +410,7 @@ "18" ] }, - "execution_count": 813, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -453,7 +421,7 @@ }, { "cell_type": "code", - "execution_count": 814, + "execution_count": 16, "metadata": { "collapsed": false }, @@ -490,7 +458,7 @@ }, { "cell_type": "code", - "execution_count": 815, + "execution_count": 17, "metadata": { "collapsed": false }, @@ -501,7 +469,7 @@ "False" ] }, - "execution_count": 815, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -512,7 +480,7 @@ }, { "cell_type": "code", - "execution_count": 816, + "execution_count": 18, "metadata": { "collapsed": false }, @@ -548,7 +516,7 @@ " 'z': True}" ] }, - "execution_count": 816, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -559,7 +527,7 @@ }, { "cell_type": "code", - "execution_count": 817, + "execution_count": 19, "metadata": { "collapsed": false }, @@ -610,7 +578,7 @@ }, { "cell_type": "code", - "execution_count": 818, + "execution_count": 20, "metadata": { "collapsed": false }, @@ -621,7 +589,7 @@ "('a', 'a', 'a')" ] }, - "execution_count": 818, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -632,7 +600,7 @@ }, { "cell_type": "code", - "execution_count": 819, + "execution_count": 21, "metadata": { "collapsed": false }, @@ -670,7 +638,7 @@ }, { "cell_type": "code", - "execution_count": 820, + "execution_count": 22, "metadata": { "collapsed": false }, @@ -682,7 +650,7 @@ }, { "cell_type": "code", - "execution_count": 821, + "execution_count": 23, "metadata": { "collapsed": false }, @@ -736,7 +704,7 @@ }, { "cell_type": "code", - "execution_count": 822, + "execution_count": 24, "metadata": { "collapsed": false }, @@ -790,7 +758,7 @@ }, { "cell_type": "code", - "execution_count": 823, + "execution_count": 25, "metadata": { "collapsed": false }, @@ -801,7 +769,7 @@ "1" ] }, - "execution_count": 823, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -812,7 +780,7 @@ }, { "cell_type": "code", - "execution_count": 824, + "execution_count": 26, "metadata": { "collapsed": false }, @@ -825,7 +793,7 @@ }, { "cell_type": "code", - "execution_count": 825, + "execution_count": 27, "metadata": { "collapsed": false }, @@ -838,7 +806,7 @@ }, { "cell_type": "code", - "execution_count": 826, + "execution_count": 28, "metadata": { "collapsed": false }, @@ -849,7 +817,7 @@ "('a', 'a', 'b')" ] }, - "execution_count": 826, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -860,7 +828,7 @@ }, { "cell_type": "code", - "execution_count": 827, + "execution_count": 29, "metadata": { "collapsed": false }, @@ -871,7 +839,7 @@ "False" ] }, - "execution_count": 827, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -882,7 +850,7 @@ }, { "cell_type": "code", - "execution_count": 828, + "execution_count": 30, "metadata": { "collapsed": false }, @@ -893,7 +861,7 @@ "('p', 'p', 'p')" ] }, - "execution_count": 828, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -904,7 +872,7 @@ }, { "cell_type": "code", - "execution_count": 829, + "execution_count": 31, "metadata": { "collapsed": false }, @@ -955,7 +923,7 @@ }, { "cell_type": "code", - "execution_count": 830, + "execution_count": 32, "metadata": { "collapsed": false }, @@ -966,7 +934,7 @@ "17576" ] }, - "execution_count": 830, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -978,7 +946,7 @@ }, { "cell_type": "code", - "execution_count": 831, + "execution_count": 33, "metadata": { "collapsed": false }, @@ -989,7 +957,7 @@ "(('a', 'a', 'b'), True)" ] }, - "execution_count": 831, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } @@ -1001,7 +969,7 @@ }, { "cell_type": "code", - "execution_count": 832, + "execution_count": 34, "metadata": { "collapsed": false }, @@ -1012,7 +980,7 @@ }, { "cell_type": "code", - "execution_count": 833, + "execution_count": 35, "metadata": { "collapsed": false }, @@ -1023,7 +991,7 @@ "[('a', 'a', 'b')]" ] }, - "execution_count": 833, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -1039,7 +1007,7 @@ }, { "cell_type": "code", - "execution_count": 857, + "execution_count": 36, "metadata": { "collapsed": true }, @@ -1061,7 +1029,7 @@ }, { "cell_type": "code", - "execution_count": 835, + "execution_count": 37, "metadata": { "collapsed": false }, @@ -1072,7 +1040,7 @@ "[('a', 'a', 'b')]" ] }, - "execution_count": 835, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -1083,7 +1051,7 @@ }, { "cell_type": "code", - "execution_count": 836, + "execution_count": 38, "metadata": { "collapsed": false }, @@ -1102,7 +1070,7 @@ }, { "cell_type": "code", - "execution_count": 837, + "execution_count": 39, "metadata": { "collapsed": false }, @@ -1113,7 +1081,7 @@ "('e', 'l', 'e')" ] }, - "execution_count": 837, + "execution_count": 39, "metadata": {}, "output_type": "execute_result" } @@ -1125,7 +1093,7 @@ }, { "cell_type": "code", - "execution_count": 838, + "execution_count": 40, "metadata": { "collapsed": false }, @@ -1136,7 +1104,7 @@ "'dhnpforeeimgg'" ] }, - "execution_count": 838, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" } @@ -1150,7 +1118,7 @@ }, { "cell_type": "code", - "execution_count": 839, + "execution_count": 41, "metadata": { "collapsed": false }, @@ -1161,7 +1129,7 @@ "('j', 'e', 'o')" ] }, - "execution_count": 839, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -1172,7 +1140,7 @@ }, { "cell_type": "code", - "execution_count": 840, + "execution_count": 42, "metadata": { "collapsed": false }, @@ -1195,7 +1163,7 @@ " MenuIem(before='t', after='g', number=13)]" ] }, - "execution_count": 840, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } @@ -1207,7 +1175,7 @@ }, { "cell_type": "code", - "execution_count": 841, + "execution_count": 43, "metadata": { "collapsed": false, "scrolled": true @@ -1280,7 +1248,7 @@ " ('z', 'z', 'k')]" ] }, - "execution_count": 841, + "execution_count": 43, "metadata": {}, "output_type": "execute_result" } @@ -1297,7 +1265,7 @@ }, { "cell_type": "code", - "execution_count": 842, + "execution_count": 44, "metadata": { "collapsed": false }, @@ -1308,7 +1276,7 @@ "62" ] }, - "execution_count": 842, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" } @@ -1319,7 +1287,7 @@ }, { "cell_type": "code", - "execution_count": 843, + "execution_count": 45, "metadata": { "collapsed": false, "scrolled": true @@ -1343,7 +1311,7 @@ " ('y', 'n', 'c')]" ] }, - "execution_count": 843, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } @@ -1360,7 +1328,7 @@ }, { "cell_type": "code", - "execution_count": 858, + "execution_count": 46, "metadata": { "collapsed": false }, @@ -1383,7 +1351,7 @@ " ('y', 'n', 'c')]" ] }, - "execution_count": 858, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } @@ -1394,7 +1362,7 @@ }, { "cell_type": "code", - "execution_count": 844, + "execution_count": 47, "metadata": { "collapsed": false }, @@ -1411,7 +1379,7 @@ }, { "cell_type": "code", - "execution_count": 845, + "execution_count": 48, "metadata": { "collapsed": false }, @@ -1422,7 +1390,7 @@ "13" ] }, - "execution_count": 845, + "execution_count": 48, "metadata": {}, "output_type": "execute_result" } @@ -1433,7 +1401,7 @@ }, { "cell_type": "code", - "execution_count": 846, + "execution_count": 49, "metadata": { "collapsed": false }, @@ -1445,7 +1413,7 @@ }, { "cell_type": "code", - "execution_count": 847, + "execution_count": 50, "metadata": { "collapsed": false }, @@ -1456,7 +1424,7 @@ "Signal(bank='e', wire='e')" ] }, - "execution_count": 847, + "execution_count": 50, "metadata": {}, "output_type": "execute_result" } @@ -1467,7 +1435,7 @@ }, { "cell_type": "code", - "execution_count": 848, + "execution_count": 51, "metadata": { "collapsed": false }, @@ -1478,7 +1446,7 @@ "True" ] }, - "execution_count": 848, + "execution_count": 51, "metadata": {}, "output_type": "execute_result" } @@ -1489,7 +1457,7 @@ }, { "cell_type": "code", - "execution_count": 849, + "execution_count": 52, "metadata": { "collapsed": false }, @@ -1500,7 +1468,7 @@ "True" ] }, - "execution_count": 849, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } @@ -1511,7 +1479,7 @@ }, { "cell_type": "code", - "execution_count": 850, + "execution_count": 53, "metadata": { "collapsed": false }, @@ -1565,7 +1533,7 @@ }, { "cell_type": "code", - "execution_count": 851, + "execution_count": 54, "metadata": { "collapsed": false }, @@ -1619,7 +1587,7 @@ }, { "cell_type": "code", - "execution_count": 852, + "execution_count": 55, "metadata": { "collapsed": false }, @@ -1627,15 +1595,15 @@ { "data": { "text/plain": [ - "{frozenset({'e', 'y'}),\n", + "{frozenset({'b', 'g'}),\n", + " frozenset({'e', 'y'}),\n", " frozenset({'t', 'x'}),\n", - " frozenset({'i', 'n'}),\n", " frozenset({'m'}),\n", - " frozenset({'b', 'g'}),\n", + " frozenset({'i', 'n'}),\n", " frozenset({'f', 'p'})}" ] }, - "execution_count": 852, + "execution_count": 55, "metadata": {}, "output_type": "execute_result" } @@ -1647,7 +1615,7 @@ }, { "cell_type": "code", - "execution_count": 853, + "execution_count": 56, "metadata": { "collapsed": false }, @@ -1658,7 +1626,7 @@ "True" ] }, - "execution_count": 853, + "execution_count": 56, "metadata": {}, "output_type": "execute_result" } @@ -1669,7 +1637,7 @@ }, { "cell_type": "code", - "execution_count": 854, + "execution_count": 57, "metadata": { "collapsed": false }, @@ -1683,7 +1651,7 @@ " frozenset({2, 3}))" ] }, - "execution_count": 854, + "execution_count": 57, "metadata": {}, "output_type": "execute_result" } @@ -1702,7 +1670,7 @@ }, { "cell_type": "code", - "execution_count": 855, + "execution_count": 58, "metadata": { "collapsed": false }, @@ -1713,7 +1681,7 @@ "False" ] }, - "execution_count": 855, + "execution_count": 58, "metadata": {}, "output_type": "execute_result" } @@ -1724,7 +1692,7 @@ }, { "cell_type": "code", - "execution_count": 856, + "execution_count": 59, "metadata": { "collapsed": false }, @@ -1735,7 +1703,7 @@ "False" ] }, - "execution_count": 856, + "execution_count": 59, "metadata": {}, "output_type": "execute_result" }