9 jupytext_version: 1.3.4
11 display_name: Python 3
16 ```python Collapsed="false"
17 from szyfrow.affine import *
18 from szyfrow.keyword_cipher import *
21 ```python Collapsed="false"
23 plaintext_a_filename = f'plaintext.{challenge_number}a.txt'
24 plaintext_b_filename = f'plaintext.{challenge_number}b.txt'
25 ciphertext_a_filename = f'ciphertext.{challenge_number}a.txt'
26 ciphertext_b_filename = f'ciphertext.{challenge_number}b.txt'
29 ```python Collapsed="false"
30 ca = open(ciphertext_a_filename).read()
32 cb = open(ciphertext_b_filename).read()
36 ```python Collapsed="false"
37 (word_a, wrap_a), score_a = keyword_break_mp(sca, fitness=Ptrigrams)
38 print(word_a, wrap_a, '\n')
39 pa = keyword_decipher(ca, word_a, wrap_a)
43 ```python Collapsed="false"
44 open(plaintext_a_filename, 'w').write(pa)
47 ```python Collapsed="false"
48 (word_b, wrap_b), score_b = keyword_break_mp(scb, fitness=Ptrigrams)
49 print(word_b, wrap_b, '\n')
50 pb = keyword_decipher(cb, word_b, wrap_b)
54 ```python Collapsed="false"
55 word_b, score_b = simulated_annealing_break(scb, fitness=Ptrigrams)
57 pb = keyword_decipher(cb, word_b)
61 ```python Collapsed="false"
62 keyword_decipher(cb, 'caistor', KeywordWrapAlphabet.from_last)
65 ```python Collapsed="false"
66 open(plaintext_b_filename, 'w').write(pb)
69 ```python Collapsed="false"