Done challenge 9
[cipher-challenge.git] / 2021 / 2021-challenge3.md
1 ---
2 jupyter:
3 jupytext:
4 formats: ipynb,md
5 text_representation:
6 extension: .md
7 format_name: markdown
8 format_version: '1.3'
9 jupytext_version: 1.11.1
10 kernelspec:
11 display_name: Python 3 (ipykernel)
12 language: python
13 name: python3
14 ---
15
16 ```python Collapsed="false"
17 from szyfrow.caesar import *
18 from szyfrow.affine import *
19 from szyfrow.keyword_cipher import *
20 from szyfrow.support.text_prettify import *
21 ```
22
23 ```python Collapsed="false"
24 challenge_number = 3
25 plaintext_a_filename = f'plaintext.{challenge_number}a.txt'
26 plaintext_b_filename = f'plaintext.{challenge_number}b.txt'
27 ciphertext_a_filename = f'ciphertext.{challenge_number}a.txt'
28 ciphertext_b_filename = f'ciphertext.{challenge_number}b.txt'
29 ```
30
31 ```python Collapsed="false"
32 ca = open(ciphertext_a_filename).read()
33 cb = open(ciphertext_b_filename).read()
34
35 scb = sanitise(cb)
36 ```
37
38 ```python
39 (word_a, wrap_a), score_a = keyword_break(ca)
40 print(word_a, wrap_a, '\n')
41 pa = keyword_decipher(ca, word_a, wrap_a)
42 print(pa)
43 ```
44
45 ```python Collapsed="false"
46 open(plaintext_a_filename, 'w').write(pa)
47 ```
48
49 ```python
50 (word_b, wrap_b), score_a = keyword_break(scb, fitness=Ptrigrams)
51 print(word_b, wrap_b, '\n')
52 pb = keyword_decipher(scb, word_b, wrap_b)
53 print(prettify(pb))
54 ```
55
56 ```python Collapsed="false"
57 open(plaintext_b_filename, 'w').write(prettify(pb))
58 ```
59
60 ```python Collapsed="false"
61
62 ```