Updated notebooks for new library organisation
[cipher-tools.git] / 2014 / 2014-challenge7.ipynb
index 7e8f74c8008dd29dfb0894cf45659635ea2b3d80..474b1ad3914f655d1e54618f90c2c2cd0798b3fc 100644 (file)
@@ -3,9 +3,7 @@
   {
    "cell_type": "code",
    "execution_count": 1,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [],
    "source": [
     "import os,sys,inspect\n",
     "import string\n",
     "%matplotlib inline\n",
     "\n",
-    "from cipherbreak import *\n",
+    "from cipher.vigenere import *\n",
+    "from cipher.amsco import *\n",
+    "from support.utilities import *\n",
+    "from support.text_prettify import *\n",
+    "from support.language_models import *\n",
+    "from support.plot_frequency_histogram import *\n",
     "\n",
     "c7a = open('7a.ciphertext').read()\n",
     "c7b = open('7b.ciphertext').read()"
   {
    "cell_type": "code",
    "execution_count": 2,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "<matplotlib.axes._subplots.AxesSubplot at 0x7fe4081aa6d8>"
+       "<matplotlib.axes._subplots.AxesSubplot at 0x7f068ca71908>"
       ]
      },
      "execution_count": 2,
@@ -44,9 +45,9 @@
     },
     {
      "data": {
-      "image/png": "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\n",
+      "image/png": "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\n",
       "text/plain": [
-       "<matplotlib.figure.Figure at 0x7fe408191f98>"
+       "<matplotlib.figure.Figure at 0x7f068ca71208>"
       ]
      },
      "metadata": {},
   {
    "cell_type": "code",
    "execution_count": 3,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "<matplotlib.axes._subplots.AxesSubplot at 0x7fe3dd3dba20>"
+       "<matplotlib.axes._subplots.AxesSubplot at 0x7f064cd8c710>"
       ]
      },
      "execution_count": 3,
@@ -77,9 +76,9 @@
     },
     {
      "data": {
-      "image/png": "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\n",
+      "image/png": "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\n",
       "text/plain": [
-       "<matplotlib.figure.Figure at 0x7fe3dd4129e8>"
+       "<matplotlib.figure.Figure at 0x7f064c084b70>"
       ]
      },
      "metadata": {},
   {
    "cell_type": "code",
    "execution_count": 4,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "<matplotlib.axes._subplots.AxesSubplot at 0x7fe3dd3b1390>"
+       "<matplotlib.axes._subplots.AxesSubplot at 0x7f064e351b70>"
       ]
      },
      "execution_count": 4,
     },
     {
      "data": {
-      "image/png": "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\nQmCC\n",
+      "image/png": "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\n",
       "text/plain": [
-       "<matplotlib.figure.Figure at 0x7fe3dd45a240>"
+       "<matplotlib.figure.Figure at 0x7f064bf7d550>"
       ]
      },
      "metadata": {},
   {
    "cell_type": "code",
    "execution_count": 5,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
   {
    "cell_type": "code",
    "execution_count": 6,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
   {
    "cell_type": "code",
    "execution_count": 7,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
   {
    "cell_type": "code",
    "execution_count": 8,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
-     "data": {
-      "text/plain": [
-       "'dear mark things area lot clearer now i flew out to inspect the ship myself last night and took a good look around the reason the ship was not scuttled was that the valves had jammed it looks like the driftwood was pulled into the mechanism and blocked the inlet presumably the crew had already abandoned the vessel which was lucky for us without the ship we would have had no idea that the fda had been operating in these waters seahorse is no longer a mystery the cutaway on the starboard side cleared an area of around five meters square with a distinctive pattern of bolts fastened to reinforced deck plates i saw something like this on a sub rescue mission a couple of years ago when they fitted a local ship with a jury rigged inspection system the deck plates can carry a crane designed to deploy an rova remote operated vehicle designed for undersea operations i was already concerned about the reference to the cables in the last part of the fda log but the next section has me really worried it is encrypted with a more secure modified amsco transposition cipher and tells us what they were really up to what i dont understand is how the whole assembly is powered the sort of computing they must be doing is really intensive and would burn through a battery in days in that time their intercept might not catch anything useful but they can hardly have hijacked a local socket in the middle of the ocean can you get me a chart showing the deepsea cables in the region i dont imagine the us will be a problem but it may need some diplomacy to get the full coverage maps from the omani government if i am right it is in their best interests to playalong we all have alot to lose here'"
-      ]
-     },
-     "execution_count": 8,
-     "metadata": {},
-     "output_type": "execute_result"
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "dear mark things area lot clearer now i flew out to inspect the ship myself last night and took a\n",
+      "good look around the reason the ship was not scuttled was that the valves had jammed it looks like\n",
+      "the driftwood was pulled into the mechanism and blocked the inlet presumably the crew had already\n",
+      "abandoned the vessel which was lucky for us without the ship we would have had no idea that the fda\n",
+      "had been operating in these waters seahorse is no longer a mystery the cutaway on the starboard side\n",
+      "cleared an area of around five meters square with a distinctive pattern of bolts fastened to\n",
+      "reinforced deck plates i saw something like this on a sub rescue mission a couple of years ago when\n",
+      "they fitted a local ship with a jury rigged inspection system the deck plates can carry a crane\n",
+      "designed to deploy an rova remote operated vehicle designed for undersea operations i was already\n",
+      "concerned about the reference to the cables in the last part of the fda log but the next section has\n",
+      "me really worried it is encrypted with a more secure modified amsco transposition cipher and tells\n",
+      "us what they were really up to what i dont understand is how the whole assembly is powered the sort\n",
+      "of computing they must be doing is really intensive and would burn through a battery in days in that\n",
+      "time their intercept might not catch anything useful but they can hardly have hijacked a local\n",
+      "socket in the middle of the ocean can you get me a chart showing the deepsea cables in the region i\n",
+      "dont imagine the us will be a problem but it may need some diplomacy to get the full coverage maps\n",
+      "from the omani government if i am right it is in their best interests to playalong we all have alot\n",
+      "to lose here\n"
+     ]
     }
    ],
    "source": [
-    "' '.join(segment(vigenere_decipher(c7as, key_a)))"
+    "print(prettify(vigenere_decipher(c7as, key_a)))"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 9,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [
     {
      "data": {
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 10,
+   "metadata": {},
    "outputs": [
     {
-     "data": {
-      "text/plain": [
-       "'phase seven we approached the cable junction undercover of night with nautilus at an elevation of three feet towing seahorse to starboard comms interception showed that we remained undetected and seahorse was deployed at operating depth the various layers of armoured protection were removed from the cable and as expected once the steel jacket was removed the other layers provided little resistance the divers entered the water and cut into the core to insert the optical repeaters linking them back to the man in the middle unit which was powered up and fully tested initial tests showed that it was operating as expected and three keys have already been recovered from the omani transmissions with daylight approaching the remaining tests were postponed for the following night and the ship returned to deeper waters where it remained at low deck height the divers were left at seahorse to decompress slowly and will be recovered tomorrow once the final tests have been concluded'"
-      ]
-     },
-     "execution_count": 12,
-     "metadata": {},
-     "output_type": "execute_result"
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "phase seven we approached the cable junction undercover of night with nautilus at an elevation of\n",
+      "three feet towing seahorse to starboard comms interception showed that we remained undetected and\n",
+      "seahorse was deployed at operating depth the various layers of armoured protection were removed from\n",
+      "the cable and as expected once the steel jacket was removed the other layers provided little\n",
+      "resistance the divers entered the water and cut into the core to insert the optical repeaters\n",
+      "linking them back to the man in the middle unit which was powered up and fully tested initial tests\n",
+      "showed that it was operating as expected and three keys have already been recovered from the omani\n",
+      "transmissions with daylight approaching the remaining tests were postponed for the following night\n",
+      "and the ship returned to deeper waters where it remained at low deck height the divers were left at\n",
+      "seahorse to decompress slowly and will be recovered tomorrow once the final tests have been\n",
+      "concluded\n"
+     ]
     }
    ],
    "source": [
-    "' '.join(segment(amsco_transposition_decipher(c7bs, key_b[0], fillpattern=key_b[1], fillstyle=key_b[2])))"
+    "print(prettify(amsco_transposition_decipher(c7bs, key_b[0], fillpattern=key_b[1], fillstyle=key_b[2])))"
    ]
   },
   {
    "cell_type": "code",
    "execution_count": 11,
    "metadata": {
-    "collapsed": false,
     "scrolled": true
    },
    "outputs": [
   {
    "cell_type": "code",
    "execution_count": null,
-   "metadata": {
-    "collapsed": false
-   },
+   "metadata": {},
    "outputs": [],
    "source": []
   }
    "name": "python",
    "nbconvert_exporter": "python",
    "pygments_lexer": "ipython3",
-   "version": "3.4.3"
+   "version": "3.6.3"
   }
  },
  "nbformat": 4,
- "nbformat_minor": 0
+ "nbformat_minor": 1
 }