15a217f78465cbfc81e824385c092001dd459180
[cipher-challenge.git] / 2021 / 2021-challenge2.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
12 language: python
13 name: python3
14 ---
15
16 ```python Collapsed="false"
17 from szyfrow.caesar import *
18 from szyfrow.affine import *
19 ```
20
21 ```python Collapsed="false"
22 challenge_number = 2
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'
27 ```
28
29 ```python Collapsed="false"
30 ca = open(ciphertext_a_filename).read()
31 cb = open(ciphertext_b_filename).read()
32 ```
33
34 ```python
35 affine_break(ca)
36 ```
37
38 ```python Collapsed="false"
39 (m_a, a_a, z_a), score_a = affine_break(ca)
40 print(m_a, a_a, z_a, '\n')
41 pa = affine_decipher(ca, m_a, a_a, z_a)
42 print(pa)
43 ```
44
45 ```python Collapsed="false"
46 open(plaintext_a_filename, 'w').write(pa)
47 ```
48
49 ```python
50 (m_b, a_b, z_b), score_a = affine_break(cb)
51 print(m_b, a_b, z_b, '\n')
52 pb = affine_decipher(cb, m_b, a_b, z_b)
53 print(pb)
54 ```
55
56 ```python Collapsed="false"
57 open(plaintext_b_filename, 'w').write(pb)
58 ```
59
60 ```python Collapsed="false"
61
62 ```