9 jupytext_version: 1.3.4
11 display_name: Python 3
16 ```python Collapsed="false"
17 from szyfrow.keyword_cipher import *
18 from szyfrow.column_transposition import *
19 from szyfrow.vigenere import *
20 from szyfrow.support.text_prettify import *
21 from szyfrow.polybius import *
25 ```python Collapsed="false"
27 plaintext_a_filename = f'plaintext.{challenge_number}a.txt'
28 plaintext_b_filename = f'plaintext.{challenge_number}b.txt'
29 ciphertext_a_filename = f'ciphertext.{challenge_number}a.txt'
30 ciphertext_b_filename = f'ciphertext.{challenge_number}b.txt'
33 ```python Collapsed="false"
34 ca = open(ciphertext_a_filename).read()
36 rsca = cat(reversed(sca))
37 cb = open(ciphertext_b_filename).read()
41 ```python Collapsed="false"
42 fc = collections.Counter(sca)
43 plot_frequency_histogram(fc, sort_key=fc.get)
46 ```python Collapsed="false"
47 (word_a, wrap_a), score_a = keyword_break_mp(rsca, fitness=Pletters)
48 print(word_a, wrap_a, '\n')
49 pa = keyword_decipher(ca, word_a, wrap_a)
53 ```python Collapsed="false"
54 key_a, score_a = vigenere_frequency_break(sca, fitness=Ptrigrams)
56 pa = vigenere_decipher(sca, key_a)
60 ```python Collapsed="false"
61 pa = prettify(vigenere_decipher(sca, key_a))
65 ```python Collapsed="false"
66 open(plaintext_a_filename, 'w').write(pa)
69 ```python Collapsed="false"
70 tscb = column_transposition_decipher(scb, 'rdf', fillcolumnwise=False, emptycolumnwise=True)
74 ```python Collapsed="false"
75 ptscb = polybius_decipher(tscb, 'a', 'adfgvx', 'adfgvx', wrap_alphabet=KeywordWrapAlphabet.from_last)
79 ```python Collapsed="false"
80 word_b, score_b = simulated_annealing_break(ptscb, fitness=Ptrigrams,
81 plain_alphabet=string.ascii_lowercase, cipher_alphabet=keyword_cipher_alphabet_of('rdf', wrap_alphabet=KeywordWrapAlphabet.from_largest))
83 pb = keyword_decipher(ptscb, word_b)
87 ```python Collapsed="false"
92 ```python Collapsed="false"
93 open(plaintext_b_filename, 'w').write(ppb)
96 ```python Collapsed="false"