Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

http://tschwarz.mscs.mu.edu/Classes/COSC1010/Laboratories/Laboratory9/cipher.txt this is link for cipher txt this is for python and thank you very much How to break a substitution code In this laboratory,

image text in transcribedimage text in transcribed

http://tschwarz.mscs.mu.edu/Classes/COSC1010/Laboratories/Laboratory9/cipher.txt

this is link for cipher txt

this is for python and thank you very much

How to break a substitution code In this laboratory, we learn how frequency counting allows us to break a simple code As usual in old-fashioned cryptography, we assume a text file consisting of capital letters only A substitution code then takes the plaintext (a.k.a cleartext) and changes all letters according to a simple substitution table For example, the substitution table could be clear cipher clear cipher clear cipher clear cipher clearcipheclear cipher A message such as "Attack north gate at six thirty in the morning", would first be normalized to ATTA CKNO RTHG ATEA SIXT HIRT YINT HEMO RNIN G" and then translated letter by letter using this table to DNND JPBY ENMQ DNOD ZNKN MNEN UNBN MOTY EBNB Q" (We somehow arbitrarily broke the string into groups of four letters to make it more readable.) Since there are 26! = 40 329 146 112 660 563 558 400 000 different substitution tables, this might seem to offer good protection. In fact, it offers such poor protection that with additional hints it is used to generate newspaper puzzles With this substitution table, the letter 'E' is always translated into the letter 'O'. Since in English text, the letter 'E' is almost always the most frequent, the letter 'O' is almost always the most frequent in any cipher encrypted with this particular substitution table. Reversely, the most frequent letter in any cipher encrypted with an arbitrary substitution table is the one which is substituted for 'E'. Task 1: Write a function that gives the frequency of all characters in a file. Hint: Since you want to print out the frequencies in descending order, you might want to use the counter in the collections module. Here is some code with counter that works on a string def count (string): ct - collections.Counter () for letter in string: ct[letter] +-1 print (ct.most common () ) How to break a substitution code In this laboratory, we learn how frequency counting allows us to break a simple code As usual in old-fashioned cryptography, we assume a text file consisting of capital letters only A substitution code then takes the plaintext (a.k.a cleartext) and changes all letters according to a simple substitution table For example, the substitution table could be clear cipher clear cipher clear cipher clear cipher clearcipheclear cipher A message such as "Attack north gate at six thirty in the morning", would first be normalized to ATTA CKNO RTHG ATEA SIXT HIRT YINT HEMO RNIN G" and then translated letter by letter using this table to DNND JPBY ENMQ DNOD ZNKN MNEN UNBN MOTY EBNB Q" (We somehow arbitrarily broke the string into groups of four letters to make it more readable.) Since there are 26! = 40 329 146 112 660 563 558 400 000 different substitution tables, this might seem to offer good protection. In fact, it offers such poor protection that with additional hints it is used to generate newspaper puzzles With this substitution table, the letter 'E' is always translated into the letter 'O'. Since in English text, the letter 'E' is almost always the most frequent, the letter 'O' is almost always the most frequent in any cipher encrypted with this particular substitution table. Reversely, the most frequent letter in any cipher encrypted with an arbitrary substitution table is the one which is substituted for 'E'. Task 1: Write a function that gives the frequency of all characters in a file. Hint: Since you want to print out the frequencies in descending order, you might want to use the counter in the collections module. Here is some code with counter that works on a string def count (string): ct - collections.Counter () for letter in string: ct[letter] +-1 print (ct.most common () )

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

More Books

Students also viewed these Databases questions

Question

1.Which are projected Teaching aids in advance learning system?

Answered: 1 week ago