Question: Pythton : Here we will break a Hill cipher with block size 2 using frequency analysis. First lets see how to work with matrices mod

Pythton : Here we will break a Hill cipher with block size 2 using frequency analysis.

First lets see how to work with matrices mod 26

We can define a Matrix M modulo 26 as follows.

R = IntegerModRing(26) M = Matrix(R,[[3,1],[2,3]])

Now we could find the inverse of M:

M^(-1)

Now define the Hill Cryptosystem

system=HillCryptosystem(AlphabeticStrings(),2) R=IntegerModRing(26) alphabet=AlphabeticStrings()

We can encrypty a message using M:

plaintext=alphabet.encoding("HILLCIPHERSARECOOL") ciphertext=system.enciphering(M,plaintext) ciphertext

%md ## And decrypt it:

And decrypt it:

system.enciphering(M^(-1),ciphertext)

Question:

#1. We intercept the message below, saved to CT:

CT=AlphabeticStrings().encoding("BZKIKNZIXUUKGKEQZAUVSQHMEPMAHMEPDKZWIFQDJMNAFNVGBISRIVFCBZSIMAVOOSKUGKBIVGJMZGEXNOKSYRGCCKMDJIBZOVUKFNEXYNZIXAMUANABOIRQIXQABIZAUVKQVBABLAIEBVEQANLACYYKFOEMISWNGDYMFNDSCVANRMBWANACDZCVSQPMSNWWRMREANXKBMBIGDAFSQNBQIBWZMEATEPIMIRQFTMWICBZWOANQKUKSRCOTJSWQKMYFWJMXTQIBWZMIETJIVBZKIKNZINUBIKNIVFCSKXNEQXNWYYRGDUIRMKKJPAOBZGVWOANBELEFWHMEPAFUDAVNOEDXCVGUINOKNANXGDWSRZIIEFWSRCDQDSWBIGOIVEAANQVOVMMAKABGEOEILMBOVTROCDIQYOVLASPQIDVEXLOEXTIBZANVGMXDIKFGDRMYNWVEVBWEPKAWARAVZNOWYYRGDUIAFSQLOJNSPRQAKBZOVTEQPDWAFUPWNWVOIRNBIIVFXYCBZIVBIUAQSRVJTNOWYJZODKQOHGCRNCPBELEFWZIFYXAWNKQCODWLXCITMTAKFEAHCTJAVHMUYGDAFSQZBNONOQQZBQVIVTEPICVHMEPIPGENVWAZAPODISROVQKSXCVBISKXNIVFCONLWGSXABZQISRMQPAQDLONAKXOPRMTROCBIYKGDIXGCCYHMEPAFUDAVNOIEUYDIQXEQWFACXNMNTEYNEXYCAPAVNBUCOZBZUIGELAKNTAXIONGXOIJTNODKZWKQANYVUAJRWIRXNOWEPCPVCBSUIBWMLNMIXMEPLMGDUXWOOVUCSXUVOVQVGEEXQPLOLWAKLRSQONANXTEVQQMQGOYDQIUKFNTRYCGDQVZZEJOAKXYCKAAVGCCPSUKKYREAJRKNICONDWEMRIIPBZCIWNSVQITNQAXTUDFWVVYKAQQBMADIANDGAQQBKNMQNAFNDWGSGKYNJITJUKBWGEUKVTQVBMBIQKPAEPXGRVANJTNOKSYRGCCKKQMNTRECYRRMMAHMEPGKQVUIXTSIOBEPBZMIDITGEDKNMQRNCPXSVELASKANAQKNMQNAFNWYNVGQFWNVYXUDAYANJTNODKZWKKSKIPDKOZXMVOBIOCDILROVUKFNGSBIXKJMYRJACGUIFXYCVOXAUUXAMAHMEPEELAWYGDVXAOZAIVKKVCIIAOXNVOTJUWKCZGSRMQRNUDILJIPGSRMQRAQDKSWKEVDJCIMIRQFTEWZIHMMEANBGEPNKABMASNKISWKSVVUKWKEVFWAKBZOVMAOEFWXGQKZAVWVGXARCRXAAKSVVUKFNUKBMDVCAYNDGBIPQSIOVGXDIKQIVBZKIKNZIFHCPQDQKNNAPKNCDMVKQCODWLXCIPMEELAWYRMWZMNDOANXGXNOVLMGDUYXNTQVWAVNODKZWPOYKGDGEMNTEYNIVGDBWEXAKRXNOWZQIJMEXGKEQZAUVSQHMEPDKZWUKFNKSUKRTIVRMBZQVKNMQNAJJUDULAIKQJZWJCPTRUIOVTQHMEPBZUIOOGEYKIPBZUVUDKLIVRMBZOVEVQISKIPNMIPQIBMBIDKZWSKCGEVAXOPROZIVZQVANRTEDCIJMFTCJNOKSYRGCCKKQBZKIKNZIZHEVECXGZGFNBZKIKNZIZHMVSPMBMQRABZKIKNZIFHDIZALOSKKSYXABBZOVYVVEFNIVBZJIMOZBNOTRWPOOHMEPIPOESYORKCSUPQXGOCUAUIANZGJAWYJMDGVONVDKZWQKPALOYRBZSIMAVOOSKUWKOVGVQIPQTWGDZQBJIVANXGRQJARAREBIFTKCSUANJTNOCPEQAKJAXGEAGDBIBWUMEPANLTLOLWAKLRCJZIJAZMANGDHKCYGOPOQEOVKQOEDVOVIVFCBEBWGEGDANGNANFGLAPTOPEVKXWIRQPVGCOVEXNOYYQDTOOBOVFOWYNANCBWHMUIHCLMWZUCBELKGDKQJMHIOBOVFOWYTNFWQEKKQDIVKAQVPMDWSNBZCVSPSQMINAJIIPRMHRABKKQDKXQIRAISHIYNGDUMXALEFPSQJMDWLREPQIFNTQJAKXUIOEILMBOVTROCDIQYOVBZYCEAANXGHIEPBWRQUKFGIBDWBWFKCBXGNVNOPOQEOVONGQUXWINOPCBWMVUIAKUYBZGDUMWKJIXAGSBZBZSICPXJANVGGXWBXLIVFCBITEKNIVEPBWLAQVOECBJMHIGSBZBZCIRIFRSQLRDISKBZKIKNZILHZIJAZMOEXNMAPMLOAYOAGDIZPOLMWYNNUAIVCYPVNOGOIELANHFWGDQDOKQIJAXAVOISRQNVNOKAQVPMDWFTSWWMXNOKQDPOHRBINOFNLAECBZKQIPDKGEANZGVZKIFRRMWMLMJRQIRCNIWATAMBIPLAACLANUPOXAUVCPNORJGDIZNOIYMNBMBICYPVNOGOAFYCBZEIIETJKNOVJIZIEXCBXGJMBVIVLAYCOIPMCYPVNOGOAFKCLXOVKXAQMAVOSQWVAVISQVYNIVRETJAFSQROUDFWTJGCLOGLSPQIDVBZAVTIBZGNUCVZNOWYJZODANZGFPAORETJAFSQROUDDJAVABDNAQRMLOYXCPUYRVKDQIRXOVWKONLWGSXABZOVIVRETJLAICBIONQDKJKQGDJMWZKNUIANPTQIKSMURANAMUZGFNISIAGDONYQYODTUDDWLTWPEPWITKUCXNDWYKTEQPDWOENNCIJMFTEWGNDWEXECLAFWXCDIJMEVCIJZSQONIKEXKINOKQBIGKAOZGFNPPUCOZLMXCYNTGCPLRGIKXAPOVGRENVZNOLAHCYRSNLADLYNCYPVNOGOYVJRWARABZKNGDJMTJQQQVFMMALOLAWKKAIVCAYNKAWARAVZNOFOWYRABZKNGRQIJMJTNOYYNODNWOANAXLWQEIVBZKIMALOLAUKUEUIEXICSPYNQVOVMMBZKIMALOLASXAVONGQJMFTIJYNRQEXGDIZNOFOWYRANCCCDWSRZIEEZMNKPVGCOVBZKIKNZIXUUKKXYNIVQKMYFWHMEPIPBZSICPXJEAQDKSQKJAPALOYRBZKIGDDGIPBZGVYNRQEXIVFOWYRAYNAVDIHRIVANLTMAKDEQZTWIPONTCDIVGDQDQKZAWVEDBZCYPVNOGOANPTKQGRSIPCLWXARMKAJIOBIPBIPCJWAFUPMAKUXNOPNOWYJZODANPGZNVWWMRAFWRQPTWOANSXCITIQDGDIZNOWYSXWVEVEXNOBIPCJWCBXGHILMFNGDEMRXNOQKMYFWJMXTQIBWZMONLWOSBZKIRMPCFNQDGXDOQKIETJCAEKDIXNGDIZNOAYOBOVFOWYNANCBWHMUICYPVNOGOKSDVUXWIBZKNHKLMBWPNABEQWKQDLOXNNOWYJZODONAKKUTJEPUILRWWSQONXCNGANJTPOVZNOKAQVPMYNCVGCOVXKJWQVHMQVXZJIWZUAEXPOJMBWSYNAJMBZBIKNEXOPNOIKEXKILAICCKUDXJABGDUZEDBMONOECLKNJZWAJAXADWFNGKBIXGZAAVYCCPLRGIAXEVEQRXPOLZWIKQBZWILAANUITEEEONTWBEISHVQBWYZNJILRUIEQJTSPQIJTNOGDKKBVCIHMEPIPQVIXWNIVFOWYRAKAWARAVZNOWYYRGDUIBZAIJIOBQVJMHIBZKIKNZILHAPKQQDBZWIDIWRQITRQPNONMVOTRIVSQJMJTNOKIOVWMZAWIRXNOEPUINOAQJREQEXPOLZWIKQTAVZNOEPQIFNKSDVUXWIBZKNNOGSTJAKEPPORQRMYRKCSKPCNMOIDNKQBWFKANTGCPLRGIIXKDWVUVCPAVNOEWANDWWNAVNOWYJZODBZAIJIOBKQUAHCKXIVFCKAQVPMANJTMAHMIERJSPSQKICPLRGIUKTJGCKXAQSKJJRMPCIEFRABIVAKLAECFNBZOVUIRMRXNOGRSIIELAGKMNGVGCMVOVBZMINIAVCAOAKQLOFNOVIVFCWELROVMABIESKIPCFIVOPCJZOAIVCYPVNOGORMKAQVPMSYBZGDYVYRANWMNKDIOEALCPLMFPEVKDSIQDLOXNNOWYJZODWELROVVGGKEPLASRYXJIGLNOWYJZODANTGABXGHISKRQDIRWBIESKIPCHIEABZEIBWIVUVQVSKDWYKGDBZOVQIHWCPXJNOTRCVYNUIRMVGGKEPLASRLAECFNJZGDQDSWWKEVLJMBLMVAMABIESANAFYCNOPONTUVPZCPXGSNKUTJKXAQGDBZKIKNZILHNOKAQVPMGDJMBVOCKNKICPLRGIQKNANAVZKIFRRMDWYNDNKQMAGEYKOEXGEXOPNOWYGDFXUACIYCLEJMZIHNMQXNNOBIPCVJWOANIXEAJZUVMOMIXNNOBIONQSRVJTANAHJIBESKCKUDBWXACYPVNOGORMTRMVQVVZLOAXMBLAGCVOPCBWMVUIBZKNNOKQTAVZNOEPOVUISPRQEXCPAVABXNOPNOWYJZODRMBIGKAOCYPVNOGOJZGDQDOWRAKQPMEPMAOEILANOWXALOGLNOQJUIYEKICPLRGIUKFNGDAKFGGDYZWIYMGDGKEPDKXGZAMIDNKQGNUDQDEQGXOVNKXIGDCZQIPMOEILYNGNDWRMBZQIWMXNOKCPLRGIUKFNJZGDQDQWXUVZNOWYJZODHCPMSYBZBZKSNVUXWISKGKMNQVGCKKBIJIXXAQSKJJLAIPQQZBYKSYBZEAANQIBICGONANRTUVQIPMLOCLMBOKQDTONABMBIEAANKAQVLMTJGCKXAQRMKKZVCDQVWIVXOIEXNOOEJNOVUMXAKAQVPMANNTQCKNUIANYVQDGDBZGVOPEVFXYCAFSQZBZIJAZMPOXGGKMNIVQIRVEQJVMBOKQDTOVOOPKXAQKUTJGDYZWIGDBZOVQIHWCPXJWYYRGDUIOHGCNAYKQVHMLAJWKNLMQEBZQVWVOOPOZTKVJYFILODWJZGDQDUWLOGXOVEXEPWIBZKNBZWIDIWRAVSPPTOVBZKNKXSIUCXJHKTJGDLWRQGSBZBZWILAANJTPOLZWIIENNOPPCXGSNPCIEGOUINOLWRQKXAQKXYIKQSKUXWIANPTOVMVCDUIBZKQHMUYGSBZBZCVGCOVRMTEPIMIRQANLGEPJZSPBZKIKNZIRHOILXCPZZUIIXKJUVQIPMOKQDPOFNDWWNUIBZKIKNZIXUXNAQUVCPBZUILOZEEVCIJZYCKALAHMURQBSKISMNEPRMVGUKFPAVNOKNLMQEGDCMQVHMLAJWAKUYHMUYFWJMDVWIWYMUUKJMDWLREPCIONBWXNNOWYJZODTRYCKQGDIZNOWYYRGDUIBZKNNOGSTJKXGCBZMIPVZIAKLAHICACPXJAFOVQIBABZGDUMGXICQKFPGVGVANCMOBANDTBWUIGDRMBZUICU")

#2. We now define a function that counts how often pairs of letters occur in a message:

For example:string=alphabet.encoding("COCONUTS") countBigrams(string)

CO : 2 TS : 1 NU : 1

Problem: Use this and the frequency of digrams (pairs of English letters) here: https://en.wikipedia.org/wiki/Bigram#Bigram_frequency_in_the_English_language to decrypt the message.

(Make guesses as to what you think pairs of letters encrypt to, and then find the encryption matrix the same way as the known plaintext attack

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!