Updated notebooks for new library organisation
[cipher-tools.git] / 2014 / 2014-challenge6.ipynb
index df21a3324fac8163c96cb8906f978e47f4638e7d..18a12960de2f1c7d70e7008db3ee7a20f1690704 100644 (file)
@@ -2,10 +2,8 @@
  "cells": [
   {
    "cell_type": "code",
-   "execution_count": 2,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 1,
+   "metadata": {},
    "outputs": [],
    "source": [
     "import os,sys,inspect\n",
     "import string\n",
     "%matplotlib inline\n",
     "\n",
-    "from cipherbreak import *\n",
+    "from cipher.railfence import *\n",
+    "from cipher.hill 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",
     "\n",
     "c6a = open('6a.ciphertext').read()\n",
     "c6b = open('6b.ciphertext').read()"
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 2,
+   "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "<matplotlib.axes._subplots.AxesSubplot at 0x7f09a09d1240>"
+       "<matplotlib.axes._subplots.AxesSubplot at 0x7f4c5027da58>"
       ]
      },
-     "execution_count": 3,
+     "execution_count": 2,
      "metadata": {},
      "output_type": "execute_result"
     },
     {
      "data": {
-      "image/png": "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\n",
+      "image/png": "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\n",
       "text/plain": [
-       "<matplotlib.figure.Figure at 0x7f09a09f7a58>"
+       "<matplotlib.figure.Figure at 0x7f4c5027d160>"
       ]
      },
      "metadata": {},
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 3,
+   "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "<matplotlib.axes._subplots.AxesSubplot at 0x7f09a09545f8>"
+       "<matplotlib.axes._subplots.AxesSubplot at 0x7f4c502dacc0>"
       ]
      },
-     "execution_count": 4,
+     "execution_count": 3,
      "metadata": {},
      "output_type": "execute_result"
     },
     {
      "data": {
-      "image/png": "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\n9ZxBLkk99/8BiWCcUqHoOG4AAAAASUVORK5CYII=\n",
+      "image/png": "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\n",
       "text/plain": [
-       "<matplotlib.figure.Figure at 0x7f09a098c0f0>"
+       "<matplotlib.figure.Figure at 0x7f4c0ed65ef0>"
       ]
      },
      "metadata": {},
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 4,
+   "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "<matplotlib.axes._subplots.AxesSubplot at 0x7f09a087a828>"
+       "<matplotlib.axes._subplots.AxesSubplot at 0x7f4c502da780>"
       ]
      },
-     "execution_count": 5,
+     "execution_count": 4,
      "metadata": {},
      "output_type": "execute_result"
     },
     {
      "data": {
-      "image/png": "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\n",
+      "image/png": "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\n",
       "text/plain": [
-       "<matplotlib.figure.Figure at 0x7f09a08630f0>"
+       "<matplotlib.figure.Figure at 0x7f4c0fd5a208>"
       ]
      },
      "metadata": {},
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 5,
+   "metadata": {},
    "outputs": [
     {
      "data": {
        "'mtaeglatcleptenopeautelebiiootatwnantateituiiagaeostgvetabdresiacqobwavgrhrsihssaekajbwwttdrsmeetnyafsegilegtkrreocuantteomsgstnsiaeluutrbaiaeteeserhxgtooarrbhpcklialhnaesvearhbepiydcesewtaxuyaerywoeinhteegeisieireaassrbitnhtuorooleewsttereoahyakhlsmsaeodslthsutigqimnidsgetpmwtrnnotfhvselkaumrndvcnrluceryhyeetlnigouncnanrhpnosbhshpslreclvrinfoehniaeennhcrbenrgunruesmlrehiutgteordroeaeoisoeusiknteeslohthdcrmisuteoteaeoshfaiaesemritrseisaigwyrmhrbtetncoenuhorcadeodlcrncomnctosihudtcinagesntisutigytmshthyalatlsnhilguimtlbfldyhrfrnetsaosteetaefhlgokhretcakuteihrlrtlsetshlcpeadhthyutaeennhryraeennihrnbhnsnehyutsdtoywmtiatalwhvbepetlxihuscrtadtikhnxmsaesnwluevgnrcpegvnhteruigeuealsdntikeaeomctwrybusiilephkyodhrsyhecaatrmrltrarretstuoetnuesiduaidoesisaeetbllerpntroisiatsiasesomihsieiaunsaitneelacrfnrnngvetteenslhvpepteonedtnaooutgsotancetimiiwoetiuihclsewtcniieotslfbeecohenpoelsdoctceeemiiirttmhbiuovecegaitjuaborcleentatruyinetsidlaeehitwencceohwvohoatwkteroarhcseer'"
       ]
      },
-     "execution_count": 6,
+     "execution_count": 5,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 6,
+   "metadata": {},
    "outputs": [
     {
      "data": {
        "'hwssswxfewhhrfewpdrvttdhxbccleayphalnadhiehaoudrotwnrrvysabjlttbaytmelrkaidopthatlelrtwaamaneksvvzrvllatkcrjquicizgtoqcpnrrkttowandqehtqrvtbaydqealannohulanuzlwextlvjrvivhnohdqmgykaclmswrupdetfioftfelhzpxhaswftwprrsweiseohefpdrvttnvagdvswgoerbetnharvaeevtlltbmgaiatgelinmdawevhatterdhrznbnvoutnefoteveaehlaymhacglzeptvvdimworfisgtuzlwibeqohubtghamqornjnnrumqvjtxeltfovgawdaeevllgrtxibgtibevmpsaateoasevaeyqohameonncfuidoefafattemuimnflznbekofobrliaehhauihnnnwzaeevtlltpaalnanvtzlzuucptaelinanpaahewfthaosetaribnbnvhaevdhyytlmuxb'"
       ]
      },
-     "execution_count": 7,
+     "execution_count": 6,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 7,
+   "metadata": {},
    "outputs": [
     {
      "data": {
        "(3, -2314.997881051078)"
       ]
      },
-     "execution_count": 8,
+     "execution_count": 7,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 8,
+   "metadata": {},
    "outputs": [
     {
-     "data": {
-      "text/plain": [
-       "'mark the last message told usa lot the scuttling equipment is designed to pump water in and out of the vessel like a submarine dive control but clearly they werent planning to turn a container ship into a sub this ship is a largescale version of something i have seen in the caribbean drug runners use a similar technique to get below radar coverage for inshore runs sinking the vessel so that the deck remains just below the wave tops the fda pirates seem more interested in staying away from shore but getting close enough to track and record electronic communications without detection i am guessing this scuttling system is what they call nautilus in their log but i am still baffled by the references to seahorse the next page of the log looks harder to crack but the cipher clerk tells me it is a hill cipher and that they must have been in a hurry or have been enciphering by hand since they just used a two by two matrix actually we have been pretty lax with our security and i think the next message is end will use avi genere cipher given that we are using secure cables i dont think we have too much to worry about so i will keep the keyword short say three characters more later harry'"
-      ]
-     },
-     "execution_count": 9,
-     "metadata": {},
-     "output_type": "execute_result"
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "mark the last message told usa lot the scuttling equipment is designed to pump water in and out of\n",
+      "the vessel like a submarine dive control but clearly they werent planning to turn a container ship\n",
+      "into a sub this ship is a largescale version of something i have seen in the caribbean drug runners\n",
+      "use a similar technique to get below radar coverage for inshore runs sinking the vessel so that the\n",
+      "deck remains just below the wave tops the fda pirates seem more interested in staying away from\n",
+      "shore but getting close enough to track and record electronic communications without detection i am\n",
+      "guessing this scuttling system is what they call nautilus in their log but i am still baffled by the\n",
+      "references to seahorse the next page of the log looks harder to crack but the cipher clerk tells me\n",
+      "it is a hill cipher and that they must have been in a hurry or have been enciphering by hand since\n",
+      "they just used a two by two matrix actually we have been pretty lax with our security and i think\n",
+      "the next message is end will use avi genere cipher given that we are using secure cables i dont\n",
+      "think we have too much to worry about so i will keep the keyword short say three characters more\n",
+      "later harry\n"
+     ]
     }
    ],
    "source": [
-    "' '.join(segment(railfence_decipher(c6as, key_a)))"
+    "print(prettify(railfence_decipher(c6as, key_a)))"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 9,
+   "metadata": {},
    "outputs": [
     {
      "data": {
        "         [1, 1]]), -666.1299098341699)"
       ]
      },
-     "execution_count": 10,
+     "execution_count": 9,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
-   "metadata": {
-    "collapsed": false
-   },
+   "execution_count": 10,
+   "metadata": {},
    "outputs": [
     {
-     "data": {
-      "text/plain": [
-       "'phase six seahorse operated exactly as planned with good forward visibility at the trial depths the crew managed several tasks requiring concentration and dexterity and we plan to run a full test overnight on dummy cables dropped from the ship the software seems to be operating as designed but there are still bugs in the firmware that need ironing out before we deploy the collective is working full time to hunt them down and remove them though we are all getting tired mistakes are easy to make and could be fatal time is no longer on our side though and we are still planning to launch the final phase of the operation in three days timex'"
-      ]
-     },
-     "execution_count": 11,
-     "metadata": {},
-     "output_type": "execute_result"
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "phase six seahorse operated exactly as planned with good forward visibility at the trial depths the\n",
+      "crew managed several tasks requiring concentration and dexterity and we plan to run a full test\n",
+      "overnight on dummy cables dropped from the ship the software seems to be operating as designed but\n",
+      "there are still bugs in the firmware that need ironing out before we deploy the collective is\n",
+      "working full time to hunt them down and remove them though we are all getting tired mistakes are\n",
+      "easy to make and could be fatal time is no longer on our side though and we are still planning to\n",
+      "launch the final phase of the operation in three days timex\n"
+     ]
     }
    ],
    "source": [
-    "' '.join(segment(hill_decipher(key_b, c6bs)))"
+    "print(prettify(hill_decipher(key_b, c6bs)))"
    ]
   },
   {
    "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
 }