4 <title>Affine ciphers
</title>
5 <meta http-equiv=
"Content-Type" content=
"text/html; charset=UTF-8"/>
6 <style type=
"text/css">
15 h1 { font-size:
3em; }
16 h2 { font-size:
2em; }
17 h3 { font-size:
1.6em; }
19 text-decoration: none;
22 -moz-border-radius:
5px;
23 -web-border-radius:
5px;
31 text-shadow:
0 0 20px #
333;
37 text-shadow:
0 0 20px #
333;
46 <textarea id=
"source">
48 # Breaking affine ciphers
50 a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z
51 --|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|--
52 b | e | h | k | n | q | t | w | z | c | f | i | l | o | r | u | x | a | d | g | j | m | p | s | v | y
56 # Duplicate and extend your `caesar_break()` function
58 * How to cycle through all the keys?
64 * `
2013/
2a.ciphertext`
65 * `
2013/
3a.ciphertext`
68 <script src=
"http://gnab.github.io/remark/downloads/remark-0.6.0.min.js" type=
"text/javascript">
71 <script type=
"text/javascript"
72 src=
"http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&delayStartupUntil=configured"></script>
74 <script type=
"text/javascript">
75 var slideshow = remark.create({ ratio:
"16:9" });
80 skipTags: ['script', 'noscript', 'style', 'textarea', 'pre']
83 MathJax.Hub.Queue(function() {
84 $(MathJax.Hub.getAllJax()).map(function(index, elem) {
85 return(elem.SourceElement());
86 }).parent().addClass('has-jax');
88 MathJax.Hub.Configured();