--- /dev/null
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "0039d39a",
+ "metadata": {
+ "Collapsed": "false"
+ },
+ "outputs": [],
+ "source": [
+ "from szyfrow.caesar import *\n",
+ "from szyfrow.affine import *"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "e23051fb",
+ "metadata": {
+ "Collapsed": "false"
+ },
+ "outputs": [],
+ "source": [
+ "challenge_number = 1\n",
+ "plaintext_a_filename = f'plaintext.{challenge_number}a.txt'\n",
+ "plaintext_b_filename = f'plaintext.{challenge_number}b.txt'\n",
+ "ciphertext_a_filename = f'ciphertext.{challenge_number}a.txt'\n",
+ "ciphertext_b_filename = f'ciphertext.{challenge_number}b.txt'"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "d1d1a7bc",
+ "metadata": {
+ "Collapsed": "false"
+ },
+ "outputs": [],
+ "source": [
+ "ca = open(ciphertext_a_filename).read()\n",
+ "cb = open(ciphertext_b_filename).read()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "45504249",
+ "metadata": {
+ "Collapsed": "false"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "25 \n",
+ "\n",
+ "HARRY, I AM BORED, AND I AM REALLY NOT SURE WHY I HAVE BEEN EXILED TO THE ARCHAEOLOGISTS. DID I DO SOMETHING TO UPSET SOMEONE? I AM REALLY, REALLY HOPING THAT OUR OVERLORDS WILL FIND SOMETHING A BIT MORE RELEVANT FOR ME TO TACKLE SOON.\n",
+ "THE GROUP HERE IS GREAT, BUT IT FEELS LIKE THERE IS A DIMINISHING RETURN ON BREAKING WWII CIPHERS SEVENTY-SIX YEARS ON, AND EVEN THE COLD WAR FIALKA INTERCEPT PILE DOESN'T SEEM TO BE GIVING MUCH BACK. IF YOU DON'T HAVE ANYTHING FOR ME TO WORK ON, THEN MAYBE YOU COULD SEND OVER SOME NEWBIES FOR ME TO TRAIN UP? WE RECEIVED A STACK OF MATERIAL FROM LONDON A COUPLE OF WEEKS AGO THAT MIGHT MAKE A GOOD EXERCISE FOR THEM, AND WHILE THE FIRST FEW TEXTS ARE RELATIVELY SIMPLE, IT WOULD BE A GOOD EXERCISE FOR YOUNG ANALYSTS TO TRY TO WORK OUT WHAT THEY ARE TELLING US.\n",
+ "I HAVE ATTACHED THE FIRST ITEM FROM THE BATCH SO YOU CAN SEE WHAT I MEAN. I WOULD VERY DEARLY LIKE TO KNOW WHAT \"THE GREAT MATTER\" REFERS TO, AND I SUSPECT YOU WILL WANT TO KNOW TOO.\n",
+ "THE RECRUITS DON'T NEED TO KNOW MUCH TO BREAK THIS ONE; IF THEY HAVE DONE OUR INDUCTION TRAINING ON BASIC CIPHERS, THEY SHOULD BE FINE. MY COLLEAGUES HERE HAVE NICKNAMED THIS FILE THE LIGHTHOUSE CONSPIRACY, BECAUSE OF WHERE THE PAPERS WERE FOUND. THAT MAKES IT SOUND A LOT MORE IMPRESSIVE THAN IT FIRST LOOKS, BUT YOU NEVER KNOW WHERE SOMETHING LIKE THIS MIGHT LEAD. I HAVE SET UP A SECURE ONLINE SYSTEM SO THE TRAINEES CAN GET ACCESS TO CASE FILES AND SEND ME THEIR ATTEMPTS AT DECIPHERING. IF YOU POINT THEM THERE, THEN I WILL CHECK HOW THEY ARE GETTING ON. MAYBE THEY COULD LOOK AT THE BOSS CODEBREAKING GUIDE AS WELL IF THEY NEED TO BRUSH UP THEIR SKILLS.\n",
+ "ALL THE BEST, JODIE\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "k_a, score_a = caesar_break(ca)\n",
+ "print(k_a, '\\n')\n",
+ "pa = caesar_decipher(ca, k_a)\n",
+ "print(pa)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "969933ef",
+ "metadata": {
+ "Collapsed": "false"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1663"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "open(plaintext_a_filename, 'w').write(pa)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "90c206f4",
+ "metadata": {
+ "Collapsed": "false"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "3 \n",
+ "\n",
+ "MY DEAR M, THANK YOU FOR LETTING ME KNOW ABOUT T'S OFFER TO JOIN WITH US IN THE GREAT MATTER. WHILE I STILL HAVE MANY IDEAS FOR HOW TO PROSECUTE OUR PLAN, MY DAYS ARE GROWING SHORT, AS ARE YOURS, AND WE WILL NEED TO FIND OTHERS OF A SIMILAR MIND WHO HAVE THE WIT AND IMAGINATION TO CARRY IT FORWARD. OUR ABILITY TO INFLUENCE MATTERS DIRECTLY WILL CONTINUE TO DEPEND ON THE POWER OF THE DEVICES WE CAN FASHION, AND IT WILL BE CLEAR TO YOU THAT THIS WILL REQUIRE NEW WAYS OF THINKING ABOUT THE WORLD AS WELL AS NEW TECHNOLOGIES TO MANIPULATE IT. T, TOGETHER WITH L AND THE YOUNG E WILL, I HOPE, BRING A NEW PERSPECTIVE, AND HELP TO KEEP OUR LITTLE CONSPIRACY ALIVE FOR ANOTHER GENERATION.\n",
+ "OUR ADVENTURES SO FAR HAVE, OF NECESSITY, BEEN LIMITED IN SCOPE, THOUGH OUR ACQUISITION OF BABBAGE'S PLANS AND THE SUPPRESSION OF HIS ANALYTIC ENGINE MUST COUNT AS A HIGHLIGHT. IF WE ARE TO SUCCEED ON THE GRAND SCALE THAT WE BOTH THINK IS NECESSARY, THEN IT IS TIME FOR US TO FORMALISE OUR ARRANGEMENTS AND TO ESTABLISH A HEADQUARTERS FOR OUR OPERATIONS.\n",
+ "I HAVE GIVEN THIS SOME THOUGHT AND HAVE AN IDEA THAT I HOPE WILL PLEASE YOU. WE SHOULD BUILD A LIGHTHOUSE IN LONDON! I CAN IMMEDIATELY SEE YOUR OBJECTION. LONDON HAS NO ROCKY SHORES, AND SO NO NEED OF ONE, BUT YOUR EXPERIMENTS WITH LANTERNS GIVE US THE IDEAL EXCUSE TO BUILD ONE AS A PLACE TO TEST THEM.\n",
+ "THE OPPORTUNITIES THIS WILL AFFORD ARE MANY: THE DELIVERY OF LARGE CRATES OF EQUIPMENT WILL GO UNNOTICED, CONSIDERED AS PART OF THE NATURAL BUSINESS OF THE PLACE; ITS LOCATION ON A BUSY WHARF WOULD DISGUISE THE NECESSARY COMINGS AND GOINGS OF OUR CO-CONSPIRATORS; THE WATERWAY WILL PROVIDE US WITH READY TRANSPORTATION BOTH INLAND VIA THE CANALS AND TO THE DOCKS AT TILBURY FOR OUR INTERNATIONAL VENTURES. NOT LEAST, THE EXTRAORDINARY POWER NEEDED FOR OUR DEVICES WILL BE MISTAKEN FOR THE ENERGY REQUIRED TO RUN YOUR PUBLIC EXPERIMENTS.\n",
+ "I HAVE LITTLE EXPERTISE IN THE DESIGN OR ENGINEERING OF SUCH STRUCTURES, BUT I IMAGINE THAT THEY REQUIRE SUBSTANTIAL FOOTINGS. THE DEVELOPMENT OF THESE WILL PROVIDE THE COVER WE NEED TO CONSTRUCT OUR SECRET HEADQUARTERS UNDER THE MORE PUBLIC FACE OF THE LIGHTHOUSE ITSELF AND ITS ANCILLARY BUILDINGS.\n",
+ "IT MAY BE THAT I HAVE MISSED SOMETHING IMPORTANT IN MY CONSIDERATIONS, IN WHICH CASE PLEASE DO POINT THAT OUT, BUT IF WE ARE TO PASS ON OUR DISCOVERIES, AMBITIONS AND PLANS TO THE NEXT GENERATION WE WILL NEED TO GIVE THEM A MORE PERMANENT HOME, SO I HOPE WE CAN AGREE TOGETHER ON THE BEST WAY TO PROCEED.\n",
+ "YOURS, CH\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "k_b, score_b = caesar_break(cb)\n",
+ "print(k_b, '\\n')\n",
+ "pb = caesar_decipher(cb, k_b)\n",
+ "print(pb)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "cda2f09b",
+ "metadata": {
+ "Collapsed": "false"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "2499"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "open(plaintext_b_filename, 'w').write(pb)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "1c1be9f8",
+ "metadata": {
+ "Collapsed": "false"
+ },
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "jupytext": {
+ "formats": "ipynb,md",
+ "text_representation": {
+ "extension": ".md",
+ "format_name": "markdown",
+ "format_version": "1.2",
+ "jupytext_version": "1.3.4"
+ }
+ },
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.8"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
--- /dev/null
+---
+jupyter:
+ jupytext:
+ formats: ipynb,md
+ text_representation:
+ extension: .md
+ format_name: markdown
+ format_version: '1.3'
+ jupytext_version: 1.11.1
+ kernelspec:
+ display_name: Python 3
+ language: python
+ name: python3
+---
+
+```python Collapsed="false"
+from szyfrow.caesar import *
+from szyfrow.affine import *
+```
+
+```python Collapsed="false"
+challenge_number = 1
+plaintext_a_filename = f'plaintext.{challenge_number}a.txt'
+plaintext_b_filename = f'plaintext.{challenge_number}b.txt'
+ciphertext_a_filename = f'ciphertext.{challenge_number}a.txt'
+ciphertext_b_filename = f'ciphertext.{challenge_number}b.txt'
+```
+
+```python Collapsed="false"
+ca = open(ciphertext_a_filename).read()
+cb = open(ciphertext_b_filename).read()
+```
+
+```python Collapsed="false"
+k_a, score_a = caesar_break(ca)
+print(k_a, '\n')
+pa = caesar_decipher(ca, k_a)
+print(pa)
+```
+
+```python Collapsed="false"
+open(plaintext_a_filename, 'w').write(pa)
+```
+
+```python Collapsed="false"
+k_b, score_b = caesar_break(cb)
+print(k_b, '\n')
+pb = caesar_decipher(cb, k_b)
+print(pb)
+```
+
+```python Collapsed="false"
+open(plaintext_b_filename, 'w').write(pb)
+```
+
+```python Collapsed="false"
+
+```
--- /dev/null
+GZQQX, H ZL ANQDC, ZMC H ZL QDZKKX MNS RTQD VGX H GZUD ADDM DWHKDC SN SGD ZQBGZDNKNFHRSR. CHC H CN RNLDSGHMF SN TORDS RNLDNMD? H ZL QDZKKX, QDZKKX GNOHMF SGZS NTQ NUDQKNQCR VHKK EHMC RNLDSGHMF Z AHS LNQD QDKDUZMS ENQ LD SN SZBJKD RNNM.
+SGD FQNTO GDQD HR FQDZS, ATS HS EDDKR KHJD SGDQD HR Z CHLHMHRGHMF QDSTQM NM AQDZJHMF VVHH BHOGDQR RDUDMSX-RHW XDZQR NM, ZMC DUDM SGD BNKC VZQ EHZKJZ HMSDQBDOS OHKD CNDRM'S RDDL SN AD FHUHMF LTBG AZBJ. HE XNT CNM'S GZUD ZMXSGHMF ENQ LD SN VNQJ NM, SGDM LZXAD XNT BNTKC RDMC NUDQ RNLD MDVAHDR ENQ LD SN SQZHM TO? VD QDBDHUDC Z RSZBJ NE LZSDQHZK EQNL KNMCNM Z BNTOKD NE VDDJR ZFN SGZS LHFGS LZJD Z FNNC DWDQBHRD ENQ SGDL, ZMC VGHKD SGD EHQRS EDV SDWSR ZQD QDKZSHUDKX RHLOKD, HS VNTKC AD Z FNNC DWDQBHRD ENQ XNTMF ZMZKXRSR SN SQX SN VNQJ NTS VGZS SGDX ZQD SDKKHMF TR.
+H GZUD ZSSZBGDC SGD EHQRS HSDL EQNL SGD AZSBG RN XNT BZM RDD VGZS H LDZM. H VNTKC UDQX CDZQKX KHJD SN JMNV VGZS "SGD FQDZS LZSSDQ" QDEDQR SN, ZMC H RTRODBS XNT VHKK VZMS SN JMNV SNN.
+SGD QDBQTHSR CNM'S MDDC SN JMNV LTBG SN AQDZJ SGHR NMD; HE SGDX GZUD CNMD NTQ HMCTBSHNM SQZHMHMF NM AZRHB BHOGDQR, SGDX RGNTKC AD EHMD. LX BNKKDZFTDR GDQD GZUD MHBJMZLDC SGHR EHKD SGD KHFGSGNTRD BNMROHQZBX, ADBZTRD NE VGDQD SGD OZODQR VDQD ENTMC. SGZS LZJDR HS RNTMC Z KNS LNQD HLOQDRRHUD SGZM HS EHQRS KNNJR, ATS XNT MDUDQ JMNV VGDQD RNLDSGHMF KHJD SGHR LHFGS KDZC. H GZUD RDS TO Z RDBTQD NMKHMD RXRSDL RN SGD SQZHMDDR BZM FDS ZBBDRR SN BZRD EHKDR ZMC RDMC LD SGDHQ ZSSDLOSR ZS CDBHOGDQHMF. HE XNT ONHMS SGDL SGDQD, SGDM H VHKK BGDBJ GNV SGDX ZQD FDSSHMF NM. LZXAD SGDX BNTKC KNNJ ZS SGD ANRR BNCDAQDZJHMF FTHCD ZR VDKK HE SGDX MDDC SN AQTRG TO SGDHQ RJHKKR.
+ZKK SGD ADRS, INCHD
--- /dev/null
+PB GHDU P, WKDQN BRX IRU OHWWLQJ PH NQRZ DERXW W'V RIIHU WR MRLQ ZLWK XV LQ WKH JUHDW PDWWHU. ZKLOH L VWLOO KDYH PDQB LGHDV IRU KRZ WR SURVHFXWH RXU SODQ, PB GDBV DUH JURZLQJ VKRUW, DV DUH BRXUV, DQG ZH ZLOO QHHG WR ILQG RWKHUV RI D VLPLODU PLQG ZKR KDYH WKH ZLW DQG LPDJLQDWLRQ WR FDUUB LW IRUZDUG. RXU DELOLWB WR LQIOXHQFH PDWWHUV GLUHFWOB ZLOO FRQWLQXH WR GHSHQG RQ WKH SRZHU RI WKH GHYLFHV ZH FDQ IDVKLRQ, DQG LW ZLOO EH FOHDU WR BRX WKDW WKLV ZLOO UHTXLUH QHZ ZDBV RI WKLQNLQJ DERXW WKH ZRUOG DV ZHOO DV QHZ WHFKQRORJLHV WR PDQLSXODWH LW. W, WRJHWKHU ZLWK O DQG WKH BRXQJ H ZLOO, L KRSH, EULQJ D QHZ SHUVSHFWLYH, DQG KHOS WR NHHS RXU OLWWOH FRQVSLUDFB DOLYH IRU DQRWKHU JHQHUDWLRQ.
+RXU DGYHQWXUHV VR IDU KDYH, RI QHFHVVLWB, EHHQ OLPLWHG LQ VFRSH, WKRXJK RXU DFTXLVLWLRQ RI EDEEDJH'V SODQV DQG WKH VXSSUHVVLRQ RI KLV DQDOBWLF HQJLQH PXVW FRXQW DV D KLJKOLJKW. LI ZH DUH WR VXFFHHG RQ WKH JUDQG VFDOH WKDW ZH ERWK WKLQN LV QHFHVVDUB, WKHQ LW LV WLPH IRU XV WR IRUPDOLVH RXU DUUDQJHPHQWV DQG WR HVWDEOLVK D KHDGTXDUWHUV IRU RXU RSHUDWLRQV.
+L KDYH JLYHQ WKLV VRPH WKRXJKW DQG KDYH DQ LGHD WKDW L KRSH ZLOO SOHDVH BRX. ZH VKRXOG EXLOG D OLJKWKRXVH LQ ORQGRQ! L FDQ LPPHGLDWHOB VHH BRXU REMHFWLRQ. ORQGRQ KDV QR URFNB VKRUHV, DQG VR QR QHHG RI RQH, EXW BRXU HASHULPHQWV ZLWK ODQWHUQV JLYH XV WKH LGHDO HAFXVH WR EXLOG RQH DV D SODFH WR WHVW WKHP.
+WKH RSSRUWXQLWLHV WKLV ZLOO DIIRUG DUH PDQB: WKH GHOLYHUB RI ODUJH FUDWHV RI HTXLSPHQW ZLOO JR XQQRWLFHG, FRQVLGHUHG DV SDUW RI WKH QDWXUDO EXVLQHVV RI WKH SODFH; LWV ORFDWLRQ RQ D EXVB ZKDUI ZRXOG GLVJXLVH WKH QHFHVVDUB FRPLQJV DQG JRLQJV RI RXU FR-FRQVSLUDWRUV; WKH ZDWHUZDB ZLOO SURYLGH XV ZLWK UHDGB WUDQVSRUWDWLRQ ERWK LQODQG YLD WKH FDQDOV DQG WR WKH GRFNV DW WLOEXUB IRU RXU LQWHUQDWLRQDO YHQWXUHV. QRW OHDVW, WKH HAWUDRUGLQDUB SRZHU QHHGHG IRU RXU GHYLFHV ZLOO EH PLVWDNHQ IRU WKH HQHUJB UHTXLUHG WR UXQ BRXU SXEOLF HASHULPHQWV.
+L KDYH OLWWOH HASHUWLVH LQ WKH GHVLJQ RU HQJLQHHULQJ RI VXFK VWUXFWXUHV, EXW L LPDJLQH WKDW WKHB UHTXLUH VXEVWDQWLDO IRRWLQJV. WKH GHYHORSPHQW RI WKHVH ZLOO SURYLGH WKH FRYHU ZH QHHG WR FRQVWUXFW RXU VHFUHW KHDGTXDUWHUV XQGHU WKH PRUH SXEOLF IDFH RI WKH OLJKWKRXVH LWVHOI DQG LWV DQFLOODUB EXLOGLQJV.
+LW PDB EH WKDW L KDYH PLVVHG VRPHWKLQJ LPSRUWDQW LQ PB FRQVLGHUDWLRQV, LQ ZKLFK FDVH SOHDVH GR SRLQW WKDW RXW, EXW LI ZH DUH WR SDVV RQ RXU GLVFRYHULHV, DPELWLRQV DQG SODQV WR WKH QHAW JHQHUDWLRQ ZH ZLOO QHHG WR JLYH WKHP D PRUH SHUPDQHQW KRPH, VR L KRSH ZH FDQ DJUHH WRJHWKHU RQ WKH EHVW ZDB WR SURFHHG.
+BRXUV, FK
--- /dev/null
+HARRY, I AM BORED, AND I AM REALLY NOT SURE WHY I HAVE BEEN EXILED TO THE ARCHAEOLOGISTS. DID I DO SOMETHING TO UPSET SOMEONE? I AM REALLY, REALLY HOPING THAT OUR OVERLORDS WILL FIND SOMETHING A BIT MORE RELEVANT FOR ME TO TACKLE SOON.
+THE GROUP HERE IS GREAT, BUT IT FEELS LIKE THERE IS A DIMINISHING RETURN ON BREAKING WWII CIPHERS SEVENTY-SIX YEARS ON, AND EVEN THE COLD WAR FIALKA INTERCEPT PILE DOESN'T SEEM TO BE GIVING MUCH BACK. IF YOU DON'T HAVE ANYTHING FOR ME TO WORK ON, THEN MAYBE YOU COULD SEND OVER SOME NEWBIES FOR ME TO TRAIN UP? WE RECEIVED A STACK OF MATERIAL FROM LONDON A COUPLE OF WEEKS AGO THAT MIGHT MAKE A GOOD EXERCISE FOR THEM, AND WHILE THE FIRST FEW TEXTS ARE RELATIVELY SIMPLE, IT WOULD BE A GOOD EXERCISE FOR YOUNG ANALYSTS TO TRY TO WORK OUT WHAT THEY ARE TELLING US.
+I HAVE ATTACHED THE FIRST ITEM FROM THE BATCH SO YOU CAN SEE WHAT I MEAN. I WOULD VERY DEARLY LIKE TO KNOW WHAT "THE GREAT MATTER" REFERS TO, AND I SUSPECT YOU WILL WANT TO KNOW TOO.
+THE RECRUITS DON'T NEED TO KNOW MUCH TO BREAK THIS ONE; IF THEY HAVE DONE OUR INDUCTION TRAINING ON BASIC CIPHERS, THEY SHOULD BE FINE. MY COLLEAGUES HERE HAVE NICKNAMED THIS FILE THE LIGHTHOUSE CONSPIRACY, BECAUSE OF WHERE THE PAPERS WERE FOUND. THAT MAKES IT SOUND A LOT MORE IMPRESSIVE THAN IT FIRST LOOKS, BUT YOU NEVER KNOW WHERE SOMETHING LIKE THIS MIGHT LEAD. I HAVE SET UP A SECURE ONLINE SYSTEM SO THE TRAINEES CAN GET ACCESS TO CASE FILES AND SEND ME THEIR ATTEMPTS AT DECIPHERING. IF YOU POINT THEM THERE, THEN I WILL CHECK HOW THEY ARE GETTING ON. MAYBE THEY COULD LOOK AT THE BOSS CODEBREAKING GUIDE AS WELL IF THEY NEED TO BRUSH UP THEIR SKILLS.
+ALL THE BEST, JODIE
--- /dev/null
+MY DEAR M, THANK YOU FOR LETTING ME KNOW ABOUT T'S OFFER TO JOIN WITH US IN THE GREAT MATTER. WHILE I STILL HAVE MANY IDEAS FOR HOW TO PROSECUTE OUR PLAN, MY DAYS ARE GROWING SHORT, AS ARE YOURS, AND WE WILL NEED TO FIND OTHERS OF A SIMILAR MIND WHO HAVE THE WIT AND IMAGINATION TO CARRY IT FORWARD. OUR ABILITY TO INFLUENCE MATTERS DIRECTLY WILL CONTINUE TO DEPEND ON THE POWER OF THE DEVICES WE CAN FASHION, AND IT WILL BE CLEAR TO YOU THAT THIS WILL REQUIRE NEW WAYS OF THINKING ABOUT THE WORLD AS WELL AS NEW TECHNOLOGIES TO MANIPULATE IT. T, TOGETHER WITH L AND THE YOUNG E WILL, I HOPE, BRING A NEW PERSPECTIVE, AND HELP TO KEEP OUR LITTLE CONSPIRACY ALIVE FOR ANOTHER GENERATION.
+OUR ADVENTURES SO FAR HAVE, OF NECESSITY, BEEN LIMITED IN SCOPE, THOUGH OUR ACQUISITION OF BABBAGE'S PLANS AND THE SUPPRESSION OF HIS ANALYTIC ENGINE MUST COUNT AS A HIGHLIGHT. IF WE ARE TO SUCCEED ON THE GRAND SCALE THAT WE BOTH THINK IS NECESSARY, THEN IT IS TIME FOR US TO FORMALISE OUR ARRANGEMENTS AND TO ESTABLISH A HEADQUARTERS FOR OUR OPERATIONS.
+I HAVE GIVEN THIS SOME THOUGHT AND HAVE AN IDEA THAT I HOPE WILL PLEASE YOU. WE SHOULD BUILD A LIGHTHOUSE IN LONDON! I CAN IMMEDIATELY SEE YOUR OBJECTION. LONDON HAS NO ROCKY SHORES, AND SO NO NEED OF ONE, BUT YOUR EXPERIMENTS WITH LANTERNS GIVE US THE IDEAL EXCUSE TO BUILD ONE AS A PLACE TO TEST THEM.
+THE OPPORTUNITIES THIS WILL AFFORD ARE MANY: THE DELIVERY OF LARGE CRATES OF EQUIPMENT WILL GO UNNOTICED, CONSIDERED AS PART OF THE NATURAL BUSINESS OF THE PLACE; ITS LOCATION ON A BUSY WHARF WOULD DISGUISE THE NECESSARY COMINGS AND GOINGS OF OUR CO-CONSPIRATORS; THE WATERWAY WILL PROVIDE US WITH READY TRANSPORTATION BOTH INLAND VIA THE CANALS AND TO THE DOCKS AT TILBURY FOR OUR INTERNATIONAL VENTURES. NOT LEAST, THE EXTRAORDINARY POWER NEEDED FOR OUR DEVICES WILL BE MISTAKEN FOR THE ENERGY REQUIRED TO RUN YOUR PUBLIC EXPERIMENTS.
+I HAVE LITTLE EXPERTISE IN THE DESIGN OR ENGINEERING OF SUCH STRUCTURES, BUT I IMAGINE THAT THEY REQUIRE SUBSTANTIAL FOOTINGS. THE DEVELOPMENT OF THESE WILL PROVIDE THE COVER WE NEED TO CONSTRUCT OUR SECRET HEADQUARTERS UNDER THE MORE PUBLIC FACE OF THE LIGHTHOUSE ITSELF AND ITS ANCILLARY BUILDINGS.
+IT MAY BE THAT I HAVE MISSED SOMETHING IMPORTANT IN MY CONSIDERATIONS, IN WHICH CASE PLEASE DO POINT THAT OUT, BUT IF WE ARE TO PASS ON OUR DISCOVERIES, AMBITIONS AND PLANS TO THE NEXT GENERATION WE WILL NEED TO GIVE THEM A MORE PERMANENT HOME, SO I HOPE WE CAN AGREE TOGETHER ON THE BEST WAY TO PROCEED.
+YOURS, CH