9 jupytext_version: 1.11.1
11 display_name: Python 3 (ipykernel)
16 ```python Collapsed="false"
17 from szyfrow.caesar import *
18 from szyfrow.affine import *
19 from szyfrow.keyword_cipher import *
20 from szyfrow.column_transposition import *
21 from szyfrow.vigenere import *
22 from szyfrow.support.text_prettify import *
26 import matplotlib.pyplot as plt
32 ```python Collapsed="false"
34 plaintext_a_filename = f'plaintext.{challenge_number}a.txt'
35 plaintext_b_filename = f'plaintext.{challenge_number}b.txt'
36 ciphertext_a_filename = f'ciphertext.{challenge_number}a.txt'
37 ciphertext_b_filename = f'ciphertext.{challenge_number}b.txt'
40 ```python Collapsed="false"
41 ca = open(ciphertext_a_filename).read()
42 cb = open(ciphertext_b_filename).read()
45 rsca = cat(reversed(sca))
47 rscb = cat(reversed(scb))
51 sca_counts = collections.Counter(sca)
56 pd.Series(sca_counts).sort_index().plot.bar()
60 key_a, score_a = railfence_break(sca, fitness=Ptrigrams)
62 pa = railfence_decipher(sca, key_a)
67 (word_a, fill_a, empty_a), score_a = column_transposition_break(sca, fitness=Ptrigrams)
68 print(word_a, fill_a, empty_a, '\n')
69 pa = column_transposition_decipher(sca, word_a, fillcolumnwise=fill_a, emptycolumnwise=empty_a)
74 transpositions_of('deacb')
78 transpositions[word_a]
85 ```python Collapsed="false"
86 open(plaintext_a_filename, 'w').write(prettify(pa))
90 word_b, score_b = vigenere_frequency_break(scb, fitness=Ptrigrams)
92 pb = vigenere_decipher(scb, word_b)
97 word_b, score_b = vigenere_frequency_break(rscb, fitness=Ptrigrams)
99 pb = vigenere_decipher(rscb, word_b)
104 pb = vigenere_decipher(rscb, word_b)
108 ```python Collapsed="false"
109 open(plaintext_b_filename, 'w').write(prettify(pb))
112 ```python Collapsed="false"