From a2e56feae1a26ca26f5f6cdf290eeab606bd99d9 Mon Sep 17 00:00:00 2001 From: Neil Smith Date: Thu, 12 Nov 2020 20:29:47 +0000 Subject: [PATCH] Done challenge 3 --- 2020/2020-a-challenge3.ipynb | 236 +++++++++++++++++++++++++++++++++++ 2020/2020-a-challenge3.md | 71 +++++++++++ 2020/challenge3-clue.ipynb | 118 ++++++++++++++++++ 2020/ciphertext.3a.txt | 6 + 2020/ciphertext.3b.txt | 7 ++ 2020/plaintext.3a.txt | 6 + 2020/plaintext.3b.txt | 7 ++ 7 files changed, 451 insertions(+) create mode 100644 2020/2020-a-challenge3.ipynb create mode 100644 2020/2020-a-challenge3.md create mode 100644 2020/challenge3-clue.ipynb create mode 100644 2020/ciphertext.3a.txt create mode 100644 2020/ciphertext.3b.txt create mode 100644 2020/plaintext.3a.txt create mode 100644 2020/plaintext.3b.txt diff --git a/2020/2020-a-challenge3.ipynb b/2020/2020-a-challenge3.ipynb new file mode 100644 index 0000000..ccb356e --- /dev/null +++ b/2020/2020-a-challenge3.ipynb @@ -0,0 +1,236 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "from szyfrow.affine import *\n", + "from szyfrow.keyword_cipher import *" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "challenge_number = 3\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": 5, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [ + "ca = open(ciphertext_a_filename).read()\n", + "sca = sanitise(ca)\n", + "cb = open(ciphertext_b_filename).read()\n", + "scb = sanitise(cb)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "vern KeywordWrapAlphabet.from_last \n", + "\n", + "thanks to everyone for their work on the intercept, it looks really important and i have discussed the contents with harry. our sources in germany have confirmed that the nca magazine carried the instructions issued by ih and nr, and vk wrote to the chief constables of local police forces requesting them to keep an eye out for the touring groups and to report on any matters of interest. special branch are coordinating intelligence activities and forwarded a report from the local constabulary in norfolk detailing activity by one of the touring cycling parties who were seen taking photographs and sketching the landscape at caistor st edmund. the local constable questioned them, but they were not held as there were no grounds for an arrest. they had arrived at harwich and were apparently touring norfolk at the invitation of a local scout group before heading to london.\n", + "while there are significant defence installations in that area, caistor st edmund seems an unlikely target for german intelligence so perhaps this is innocent, but the evidence we have so far suggests that that is unlikely. another possibility is that it is a red herring operation disguising the activities of other groups, but just in case i will make enquiries with our sister agencies to see if there is anything we should know about in that area.\n", + "i asked our agents in norfolk to report on unusual activity and sent them a list of keywords that should trigger investigation. they forwarded the attached message addressed to tirpitzufer, which was left at the caistor st edmund post office by the local scoutmaster. it was in a bulky packet containing a number of sketches of the area together with an encrypted message which we need you to decipher quickly. analysis of other communication intercepts have suggested that this message may also contain a key to future communications across the spyclist network so you should spend some time thinking about it once you have submitted the decrypt.\n", + "while the mission of the spyclists is spelled out in detail in the last decrypt, it is still not clear what the larger aims of the abwehr mission might be, but your research into wilhelm and nikolaus has probably led you to the same conclusion as me: this is a high-level mission and is likely to pose a significant threat to our security. it follows that we should increase our own security to prevent nazi code breakers from reading our messages, so i will lengthen the keyword in my next mission briefing. i will also review our communication protocols for subsequent messages with harry and will update you on the standards to use in mission briefing 4.\n", + "the report from norfolk gave me an idea about how we could gather intelligence on the spyclist network. harry and i discussed this with vk since it carries a number of risks, but vk approved the strategy which we have given the codename the akela initiative. more to follow.\n", + "pearl\n", + "\n" + ] + } + ], + "source": [ + "(word_a, wrap_a), score_a = keyword_break_mp(sca, fitness=Ptrigrams)\n", + "print(word_a, wrap_a, '\\n')\n", + "pa = keyword_decipher(ca, word_a, wrap_a)\n", + "print(pa)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "2918" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "open(plaintext_a_filename, 'w').write(pa)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "croatias KeywordWrapAlphabet.from_last \n", + "\n", + "gear unfle wilhelm,\n", + "i trust that you ang the camily at tirpitzucer are all well ang that you enjoyeg the sketfhes i sent you last week. i have enfloseg my most refent impressions oc the deauticul, ic somewhat stark langsfape in norcolk. i hope ang delieve that you will cing them oc breat interest. the clat ang open cielgs have a spartan deauty punftuateg dy just a cew langmarks oc gistinftion, dut their isolation makes them stang out even more ang infreases their interest.\n", + "our hosts have deen most abreeadle ang even the lofal polife corfe have deen as affommogatinb as you subbesteg they woulg de. the lofal fonstadle seemeg most interesteg in our photobraphif hoddy, dut he appeareg to de fontent with the explanation oc our interest in their deauticul fountrysige ang villabes. he was also very apprefiative oc our roubh sketfhes oc their strikinb langsfape, thoubh he gig seem surpriseg at the numder oc grawinbs we have mage oc the cielgs aroung faistor st egmung, subbestinb that its sibnicifanfe is not wigely known.\n", + "the lofal sfoutmaster abreeg to pass this messabe to you ang has also arranbeg cor our corwarg travel. we will heag next to longon to meet with my fousin nikolaus decore preparinb cor the sefong stabe oc our little agventure. ic you have any curther requests cor incormation or aggitional grawinbs in this extraorginary part oc the worlg then please go make sure to let me know decore we gepart.\n", + "let me cinish with a little puzzle cor you. fan you cing an eibht letter enblish worg whifh you fan fhanbe dy alterinb the orger oc its letters to progufe cour other giccerent enblish worgs?\n", + "yours sinferely,\n", + "otto\n", + "\n" + ] + } + ], + "source": [ + "(word_b, wrap_b), score_b = keyword_break_mp(scb, fitness=Ptrigrams)\n", + "print(word_b, wrap_b, '\\n')\n", + "pb = keyword_decipher(cb, word_b, wrap_b)\n", + "print(pb)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "caistoruvwxyzbdefghjklmnpq \n", + "\n", + "dear uncle wilhelm,\n", + "i trust that you and the family at tirpitzufer are all well and that you enjoyed the sketches i sent you last week. i have enclosed my most recent impressions of the beautiful, if somewhat stark landscape in norfolk. i hope and believe that you will find them of great interest. the flat and open fields have a spartan beauty punctuated by just a few landmarks of distinction, but their isolation makes them stand out even more and increases their interest.\n", + "our hosts have been most agreeable and even the local police force have been as accommodating as you suggested they would be. the local constable seemed most interested in our photographic hobby, but he appeared to be content with the explanation of our interest in their beautiful countryside and villages. he was also very appreciative of our rough sketches of their striking landscape, though he did seem surprised at the number of drawings we have made of the fields around caistor st edmund, suggesting that its significance is not widely known.\n", + "the local scoutmaster agreed to pass this message to you and has also arranged for our forward travel. we will head next to london to meet with my cousin nikolaus before preparing for the second stage of our little adventure. if you have any further requests for information or additional drawings in this extraordinary part of the world then please do make sure to let me know before we depart.\n", + "let me finish with a little puzzle for you. can you find an eight letter english word which you can change by altering the order of its letters to produce four other different english words?\n", + "yours sincerely,\n", + "otto\n", + "\n" + ] + } + ], + "source": [ + "word_b, score_b = simulated_annealing_break(scb, fitness=Ptrigrams)\n", + "print(word_b, '\\n')\n", + "pb = keyword_decipher(cb, word_b)\n", + "print(pb)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "'dear uncle wilhelm,\\ni trust that you and the family at tirpitzufer are all well and that you enjoyed the sketches i sent you last week. i have enclosed my most recent impressions of the beautiful, if somewhat stark landscape in norfolk. i hope and believe that you will find them of great interest. the flat and open fields have a spartan beauty punctuated by just a few landmarks of distinction, but their isolation makes them stand out even more and increases their interest.\\nour hosts have been most agreeable and even the local police force have been as accommodating as you suggested they would be. the local constable seemed most interested in our photographic hobby, but he appeared to be content with the explanation of our interest in their beautiful countryside and villages. he was also very appreciative of our rough sketches of their striking landscape, though he did seem surprised at the number of drawings we have made of the fields around caistor st edmund, suggesting that its significance is not widely known.\\nthe local scoutmaster agreed to pass this message to you and has also arranged for our forward travel. we will head next to london to meet with my cousin nikolaus before preparing for the second stage of our little adventure. if you have any further requests for information or additional drawings in this extraordinary part of the world then please do make sure to let me know before we depart.\\nlet me finish with a little puzzle for you. can you find an eight letter english word which you can change by altering the order of its letters to produce four other different english words?\\nyours sincerely,\\notto\\n'" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "keyword_decipher(cb, 'caistor', KeywordWrapAlphabet.from_last)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "Collapsed": "false" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "1638" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "open(plaintext_b_filename, 'w').write(pb)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "Collapsed": "false" + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,md" + }, + "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.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/2020/2020-a-challenge3.md b/2020/2020-a-challenge3.md new file mode 100644 index 0000000..05bb180 --- /dev/null +++ b/2020/2020-a-challenge3.md @@ -0,0 +1,71 @@ +--- +jupyter: + 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 +--- + +```python Collapsed="false" +from szyfrow.affine import * +from szyfrow.keyword_cipher import * +``` + +```python Collapsed="false" +challenge_number = 3 +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() +sca = sanitise(ca) +cb = open(ciphertext_b_filename).read() +scb = sanitise(cb) +``` + +```python Collapsed="false" +(word_a, wrap_a), score_a = keyword_break_mp(sca, fitness=Ptrigrams) +print(word_a, wrap_a, '\n') +pa = keyword_decipher(ca, word_a, wrap_a) +print(pa) +``` + +```python Collapsed="false" +open(plaintext_a_filename, 'w').write(pa) +``` + +```python Collapsed="false" +(word_b, wrap_b), score_b = keyword_break_mp(scb, fitness=Ptrigrams) +print(word_b, wrap_b, '\n') +pb = keyword_decipher(cb, word_b, wrap_b) +print(pb) +``` + +```python Collapsed="false" +word_b, score_b = simulated_annealing_break(scb, fitness=Ptrigrams) +print(word_b, '\n') +pb = keyword_decipher(cb, word_b) +print(pb) +``` + +```python Collapsed="false" +keyword_decipher(cb, 'caistor', KeywordWrapAlphabet.from_last) +``` + +```python Collapsed="false" +open(plaintext_b_filename, 'w').write(pb) +``` + +```python Collapsed="false" + +``` diff --git a/2020/challenge3-clue.ipynb b/2020/challenge3-clue.ipynb new file mode 100644 index 0000000..ada4445 --- /dev/null +++ b/2020/challenge3-clue.ipynb @@ -0,0 +1,118 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from szyfrow.support.language_models import *\n", + "from szyfrow.support.utilities import *\n", + "import collections" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "14843" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "words8 = [w for w in keywords if len(w) == 8]\n", + "len(words8)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "anags8 = collections.defaultdict(list)\n", + "for w in words8:\n", + " anags8[cat(sorted(w))] += [w]" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['aegilnrt', 'aeginrst', 'deeinrst', 'ceeprsst', 'aeinrrst']" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cands = [w for w in anags8 if len(anags8[w]) >= 5]\n", + "cands" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "aegilnrt ['alerting', 'altering', 'integral', 'relating', 'triangle']\n", + "aeginrst ['angriest', 'gantries', 'granites', 'ingrates', 'rangiest', 'tangiers']\n", + "deeinrst ['dniester', 'inserted', 'nerdiest', 'resident', 'trendies']\n", + "ceeprsst ['respects', 'scepters', 'sceptres', 'specters', 'spectres']\n", + "aeinrrst ['restrain', 'retrains', 'strainer', 'terrains', 'trainers']\n" + ] + } + ], + "source": [ + "for c in cands:\n", + " print(c, anags8[c])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "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.7.4" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/2020/ciphertext.3a.txt b/2020/ciphertext.3a.txt new file mode 100644 index 0000000..e3cb6a4 --- /dev/null +++ b/2020/ciphertext.3a.txt @@ -0,0 +1,6 @@ +GSVZWF GA OIODLAZO PAD GSOTD JADW AZ GSO TZGODROBG, TG XAAWF DOVXXL TYBADGVZG VZN T SVIO NTFRHFFON GSO RAZGOZGF JTGS SVDDL. AHD FAHDROF TZ QODYVZL SVIO RAZPTDYON GSVG GSO ZRV YVQVMTZO RVDDTON GSO TZFGDHRGTAZF TFFHON EL TS VZN ZD, VZN IW JDAGO GA GSO RSTOP RAZFGVEXOF AP XARVX BAXTRO PADROF DOCHOFGTZQ GSOY GA WOOB VZ OLO AHG PAD GSO GAHDTZQ QDAHBF VZN GA DOBADG AZ VZL YVGGODF AP TZGODOFG. FBORTVX EDVZRS VDO RAADNTZVGTZQ TZGOXXTQOZRO VRGTITGTOF VZN PADJVDNON V DOBADG PDAY GSO XARVX RAZFGVEHXVDL TZ ZADPAXW NOGVTXTZQ VRGTITGL EL AZO AP GSO GAHDTZQ RLRXTZQ BVDGTOF JSA JODO FOOZ GVWTZQ BSAGAQDVBSF VZN FWOGRSTZQ GSO XVZNFRVBO VG RVTFGAD FG ONYHZN. GSO XARVX RAZFGVEXO CHOFGTAZON GSOY, EHG GSOL JODO ZAG SOXN VF GSODO JODO ZA QDAHZNF PAD VZ VDDOFG. GSOL SVN VDDTION VG SVDJTRS VZN JODO VBBVDOZGXL GAHDTZQ ZADPAXW VG GSO TZITGVGTAZ AP V XARVX FRAHG QDAHB EOPADO SOVNTZQ GA XAZNAZ. +JSTXO GSODO VDO FTQZTPTRVZG NOPOZRO TZFGVXXVGTAZF TZ GSVG VDOV, RVTFGAD FG ONYHZN FOOYF VZ HZXTWOXL GVDQOG PAD QODYVZ TZGOXXTQOZRO FA BODSVBF GSTF TF TZZAROZG, EHG GSO OITNOZRO JO SVIO FA PVD FHQQOFGF GSVG GSVG TF HZXTWOXL. VZAGSOD BAFFTETXTGL TF GSVG TG TF V DON SODDTZQ ABODVGTAZ NTFQHTFTZQ GSO VRGTITGTOF AP AGSOD QDAHBF, EHG UHFG TZ RVFO T JTXX YVWO OZCHTDTOF JTGS AHD FTFGOD VQOZRTOF GA FOO TP GSODO TF VZLGSTZQ JO FSAHXN WZAJ VEAHG TZ GSVG VDOV. +T VFWON AHD VQOZGF TZ ZADPAXW GA DOBADG AZ HZHFHVX VRGTITGL VZN FOZG GSOY V XTFG AP WOLJADNF GSVG FSAHXN GDTQQOD TZIOFGTQVGTAZ. GSOL PADJVDNON GSO VGGVRSON YOFFVQO VNNDOFFON GA GTDBTGMHPOD, JSTRS JVF XOPG VG GSO RVTFGAD FG ONYHZN BAFG APPTRO EL GSO XARVX FRAHGYVFGOD. TG JVF TZ V EHXWL BVRWOG RAZGVTZTZQ V ZHYEOD AP FWOGRSOF AP GSO VDOV GAQOGSOD JTGS VZ OZRDLBGON YOFFVQO JSTRS JO ZOON LAH GA NORTBSOD CHTRWXL. VZVXLFTF AP AGSOD RAYYHZTRVGTAZ TZGODROBGF SVIO FHQQOFGON GSVG GSTF YOFFVQO YVL VXFA RAZGVTZ V WOL GA PHGHDO RAYYHZTRVGTAZF VRDAFF GSO FBLRXTFG ZOGJADW FA LAH FSAHXN FBOZN FAYO GTYO GSTZWTZQ VEAHG TG AZRO LAH SVIO FHEYTGGON GSO NORDLBG. +JSTXO GSO YTFFTAZ AP GSO FBLRXTFGF TF FBOXXON AHG TZ NOGVTX TZ GSO XVFG NORDLBG, TG TF FGTXX ZAG RXOVD JSVG GSO XVDQOD VTYF AP GSO VEJOSD YTFFTAZ YTQSG EO, EHG LAHD DOFOVDRS TZGA JTXSOXY VZN ZTWAXVHF SVF BDAEVEXL XON LAH GA GSO FVYO RAZRXHFTAZ VF YO: GSTF TF V STQS-XOIOX YTFFTAZ VZN TF XTWOXL GA BAFO V FTQZTPTRVZG GSDOVG GA AHD FORHDTGL. TG PAXXAJF GSVG JO FSAHXN TZRDOVFO AHD AJZ FORHDTGL GA BDOIOZG ZVMT RANO EDOVWODF PDAY DOVNTZQ AHD YOFFVQOF, FA T JTXX XOZQGSOZ GSO WOLJADN TZ YL ZOKG YTFFTAZ EDTOPTZQ. T JTXX VXFA DOITOJ AHD RAYYHZTRVGTAZ BDAGARAXF PAD FHEFOCHOZG YOFFVQOF JTGS SVDDL VZN JTXX HBNVGO LAH AZ GSO FGVZNVDNF GA HFO TZ YTFFTAZ EDTOPTZQ 4. +GSO DOBADG PDAY ZADPAXW QVIO YO VZ TNOV VEAHG SAJ JO RAHXN QVGSOD TZGOXXTQOZRO AZ GSO FBLRXTFG ZOGJADW. SVDDL VZN T NTFRHFFON GSTF JTGS IW FTZRO TG RVDDTOF V ZHYEOD AP DTFWF, EHG IW VBBDAION GSO FGDVGOQL JSTRS JO SVIO QTIOZ GSO RANOZVYO GSO VWOXV TZTGTVGTIO. YADO GA PAXXAJ. +BOVDX diff --git a/2020/ciphertext.3b.txt b/2020/ciphertext.3b.txt new file mode 100644 index 0000000..1a9ed13 --- /dev/null +++ b/2020/ciphertext.3b.txt @@ -0,0 +1,7 @@ +STCG KBIYT MVYUTYZ, +V JGKHJ JUCJ PDK CBS JUT OCZVYP CJ JVGEVJQKOTG CGT CYY MTYY CBS JUCJ PDK TBWDPTS JUT HXTJIUTH V HTBJ PDK YCHJ MTTX. V UCLT TBIYDHTS ZP ZDHJ GTITBJ VZEGTHHVDBH DO JUT ATCKJVOKY, VO HDZTMUCJ HJCGX YCBSHICET VB BDGODYX. V UDET CBS ATYVTLT JUCJ PDK MVYY OVBS JUTZ DO RGTCJ VBJTGTHJ. JUT OYCJ CBS DETB OVTYSH UCLT C HECGJCB ATCKJP EKBIJKCJTS AP WKHJ C OTM YCBSZCGXH DO SVHJVBIJVDB, AKJ JUTVG VHDYCJVDB ZCXTH JUTZ HJCBS DKJ TLTB ZDGT CBS VBIGTCHTH JUTVG VBJTGTHJ. +DKG UDHJH UCLT ATTB ZDHJ CRGTTCAYT CBS TLTB JUT YDICY EDYVIT ODGIT UCLT ATTB CH CIIDZZDSCJVBR CH PDK HKRRTHJTS JUTP MDKYS AT. JUT YDICY IDBHJCAYT HTTZTS ZDHJ VBJTGTHJTS VB DKG EUDJDRGCEUVI UDAAP, AKJ UT CEETCGTS JD AT IDBJTBJ MVJU JUT TNEYCBCJVDB DO DKG VBJTGTHJ VB JUTVG ATCKJVOKY IDKBJGPHVST CBS LVYYCRTH. UT MCH CYHD LTGP CEEGTIVCJVLT DO DKG GDKRU HXTJIUTH DO JUTVG HJGVXVBR YCBSHICET, JUDKRU UT SVS HTTZ HKGEGVHTS CJ JUT BKZATG DO SGCMVBRH MT UCLT ZCST DO JUT OVTYSH CGDKBS ICVHJDG HJ TSZKBS, HKRRTHJVBR JUCJ VJH HVRBVOVICBIT VH BDJ MVSTYP XBDMB. +JUT YDICY HIDKJZCHJTG CRGTTS JD ECHH JUVH ZTHHCRT JD PDK CBS UCH CYHD CGGCBRTS ODG DKG ODGMCGS JGCLTY. MT MVYY UTCS BTNJ JD YDBSDB JD ZTTJ MVJU ZP IDKHVB BVXDYCKH ATODGT EGTECGVBR ODG JUT HTIDBS HJCRT DO DKG YVJJYT CSLTBJKGT. VO PDK UCLT CBP OKGJUTG GTFKTHJH ODG VBODGZCJVDB DG CSSVJVDBCY SGCMVBRH VB JUVH TNJGCDGSVBCGP ECGJ DO JUT MDGYS JUTB EYTCHT SD ZCXT HKGT JD YTJ ZT XBDM ATODGT MT STECGJ. +YTJ ZT OVBVHU MVJU C YVJJYT EKQQYT ODG PDK. ICB PDK OVBS CB TVRUJ YTJJTG TBRYVHU MDGS MUVIU PDK ICB IUCBRT AP CYJTGVBR JUT DGSTG DO VJH YTJJTGH JD EGDSKIT ODKG DJUTG SVOOTGTBJ TBRYVHU MDGSH? +PDKGH HVBITGTYP, +DJJD diff --git a/2020/plaintext.3a.txt b/2020/plaintext.3a.txt new file mode 100644 index 0000000..22efdef --- /dev/null +++ b/2020/plaintext.3a.txt @@ -0,0 +1,6 @@ +thanks to everyone for their work on the intercept, it looks really important and i have discussed the contents with harry. our sources in germany have confirmed that the nca magazine carried the instructions issued by ih and nr, and vk wrote to the chief constables of local police forces requesting them to keep an eye out for the touring groups and to report on any matters of interest. special branch are coordinating intelligence activities and forwarded a report from the local constabulary in norfolk detailing activity by one of the touring cycling parties who were seen taking photographs and sketching the landscape at caistor st edmund. the local constable questioned them, but they were not held as there were no grounds for an arrest. they had arrived at harwich and were apparently touring norfolk at the invitation of a local scout group before heading to london. +while there are significant defence installations in that area, caistor st edmund seems an unlikely target for german intelligence so perhaps this is innocent, but the evidence we have so far suggests that that is unlikely. another possibility is that it is a red herring operation disguising the activities of other groups, but just in case i will make enquiries with our sister agencies to see if there is anything we should know about in that area. +i asked our agents in norfolk to report on unusual activity and sent them a list of keywords that should trigger investigation. they forwarded the attached message addressed to tirpitzufer, which was left at the caistor st edmund post office by the local scoutmaster. it was in a bulky packet containing a number of sketches of the area together with an encrypted message which we need you to decipher quickly. analysis of other communication intercepts have suggested that this message may also contain a key to future communications across the spyclist network so you should spend some time thinking about it once you have submitted the decrypt. +while the mission of the spyclists is spelled out in detail in the last decrypt, it is still not clear what the larger aims of the abwehr mission might be, but your research into wilhelm and nikolaus has probably led you to the same conclusion as me: this is a high-level mission and is likely to pose a significant threat to our security. it follows that we should increase our own security to prevent nazi code breakers from reading our messages, so i will lengthen the keyword in my next mission briefing. i will also review our communication protocols for subsequent messages with harry and will update you on the standards to use in mission briefing 4. +the report from norfolk gave me an idea about how we could gather intelligence on the spyclist network. harry and i discussed this with vk since it carries a number of risks, but vk approved the strategy which we have given the codename the akela initiative. more to follow. +pearl diff --git a/2020/plaintext.3b.txt b/2020/plaintext.3b.txt new file mode 100644 index 0000000..db41750 --- /dev/null +++ b/2020/plaintext.3b.txt @@ -0,0 +1,7 @@ +dear uncle wilhelm, +i trust that you and the family at tirpitzufer are all well and that you enjoyed the sketches i sent you last week. i have enclosed my most recent impressions of the beautiful, if somewhat stark landscape in norfolk. i hope and believe that you will find them of great interest. the flat and open fields have a spartan beauty punctuated by just a few landmarks of distinction, but their isolation makes them stand out even more and increases their interest. +our hosts have been most agreeable and even the local police force have been as accommodating as you suggested they would be. the local constable seemed most interested in our photographic hobby, but he appeared to be content with the explanation of our interest in their beautiful countryside and villages. he was also very appreciative of our rough sketches of their striking landscape, though he did seem surprised at the number of drawings we have made of the fields around caistor st edmund, suggesting that its significance is not widely known. +the local scoutmaster agreed to pass this message to you and has also arranged for our forward travel. we will head next to london to meet with my cousin nikolaus before preparing for the second stage of our little adventure. if you have any further requests for information or additional drawings in this extraordinary part of the world then please do make sure to let me know before we depart. +let me finish with a little puzzle for you. can you find an eight letter english word which you can change by altering the order of its letters to produce four other different english words? +yours sincerely, +otto -- 2.34.1