duo-alphabetic substitution cipher
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
f z b v k i x a y m e p l s d h j o r g n q c u t w cipher1
g o x b f w t h q i l a p z j d e s v y c r k u h n cipher2
plaintext d u o a l p h a b e t i c
ciphertext v c d g p d a g z f g q b
39 => scholar
1586 Traicté des Chiffres
polyaphabetic keyword shift subst'n cipher
not used for 2 centuries
wiki aka clock arithemetic
9 hours ago it was 4 oclock: what time is it now ?
(9 + 7) (mod 12) = 16 (mod 12) = 4
a (mod n) is remainder of integer division a / n
a (mod n) will be an integer in range 0 1 … n-1
key-letter a b c ... z
shift 0 1 2 ... 25
W H I T E W H I T E W H I T E W H I T E W H I key
d i v e r t t r o o p s t o e a s t r i d g e ptxt
Z P D X V P A Z H S L Z B H I W Z B K M Z N M ctxt
abcdefghijklmnopqrstuvwxyz
bcdefghijklmnopqrstuvwxyza
cdefghijklmnopqrstuvwxyzab
defghijklmnopqrstuvwxyzabc
efghijklmnopqrstuvwxyzabcd
fghijklmnopqrstuvwxyzabcde
ghijklmnopqrstuvwxyzabcdef
hijklmnopqrstuvwxyzabcdefg
ijklmnopqrstuvwxyzabcdefgh
jklmnopqrstuvwxyzabcdefghi
klmnopqrstuvwxyzabcdefghij
lmnopqrstuvwxyzabcdefghijk
mnopqrstuvwxyzabcdefghijkl
nopqrstuvwxyzabcdefghijklm
opqrstuvwxyzabcdefghijklmn
pqrstuvwxyzabcdefghijklmno
qrstuvwxyzabcdefghijklmnop
rstuvwxyzabcdefghijklmnopq
stuvwxyzabcdefghijklmnopqr
tuvwxyzabcdefghijklmnopqrs
uvwxyzabcdefghijklmnopqrst
vwxyzabcdefghijklmnopqrstu
wxyzabcdefghijklmnopqrstuv
xyzabcdefghijklmnopqrstuvw
yzabcdefghijklmnopqrstuvwx
zabcdefghijklmnopqrstuvwxy
cj = fk( pj ) = ( pj + kj mod m) mod 26
in general, cj = ( pj + kj mod κ ) mod α
Alberti
26! x 26! = 1.6e53
Vigenere, keyphrase length t
26t
t = 10: 2610 = 1.4e14
t = 20: 2620 = 2.0e28
t = 30: 2630 = 2.8e42
goal: to smooth the expected distribution of ciphertext letter frequencies
one way: homophonic substitution cipher
e.g. use 100 characters for ciphertext
encryption
e: homophones {e_;}
a: homophones {a,}
t: homophones {t?}
everything else: itself
ptxt
forcenturiesthesimplemonoalphabeticsubstitu
tioncipherhadbeensufficienttoensuresecrecy
ctxt
forc_n?uries?hesimpl_monoalph,beticsubsti?u
?ionciph;rh,dbeensuffici_ntto_nsur;s;cr_cy
ctxt frequencies
i s c n _ e o r u ? h t ; b f p , m l a d y
8 7 6 6 5 5 5 5 5 4 4 4 3 3 3 3 2 2 2 1 1 1 85 chars
a 9 12 33 47 53 67 78 92 b 48 81 c 13 41 62 d 1 3 45 79 e 14 16 24 44 46 55 57 64 74 82 87 98 f 10 31 g 6 25 h 23 39 50 56 65 68 i 32 70 73 83 88 93 j 15 k 04 l 26 37 51 84 m 22 27 n 18 58 59 66 71 91 o 0 5 7 54 72 90 99 p 38 95 q 94 r 29 35 40 42 77 80 s 11 19 36 76 86 96 t 17 20 30 43 49 69 75 85 97 u 8 61 63 v 34 w 60 89 x 28 y 21 52 z 02
1626 decipher Huguenot message
devise great cipher Louis XIV
after death of fils R, cipher fell into disuse
historians: how to read this ciphertext ?
1890 Gendron --> Bazeries
587 symbols
homophonic ?
digraphs ?
124-22-125-46-345 … 124-22-125-46-345 … 124-22-125-46-345 …
crib: 124-22-125-46-345 = les enemis = les-en-ne-mi-s ?
syllabic substn !
his majesty desires that you arrest General Bulonde and cause him to be conducted to the fortress of Pignerole, where he will be locked in a cell under guard at night, and permitted to walk the battlements during the day with a mask
1698 Bastille, man in iron mask comic General de Bulonde?
1700s industrialized cryptanalysis
Vienna Geheime Kabinets Kanzlei
cryptographers: polyalphabetic vs cryptanalysis: black chambers
1800s telegraph, morse code
Vigenère vs le chiffre indéchiffrable
speedometer, cowcatcher, tree ring, stats, mortality
fixed price stamps, street musicians
I wish t Gd ths calc'ns h bn exec'td b steam!
1821 difference engine #1 25K parts £17470
183? difference engine #2
1854 Jn Hall Brock Thwaites J Soc Arts Letters new cipher
Babbage: very old Thwaites: so break it!
?1854 Vigenère cryptanalysis
find keyword length k (repeated ctext fragment offsets)
for each k'th ctext subsequence, find shift (freq anal's)
unpub Philosophy of Decyphering (20th century)
1863 Fr. W'm Kasiski Die Geheimschriften und die Dechiffrir-kunst
1922 Friedman: ioc, imc
running key cipher: Vig', w long keyword (e.g. use book)
rywutjivvisjeknpamrrrcuguwzrepxqjfvcugnsjxtbujsk lqdmajieftqwfspghvidfyyptqtswgydjyyevapjbysnlmkkfvv vnymvipntnxyqkulnxumtlkyjuxqmqsirhkmnnhlpvfiijwiea wwfemowwxxzfksqydzrkaqkdfyuwmfpksjputkrqcjpnsvjqy xjjcmpniutkevvpjbzpnwztsfypjmnyzqrvaxnspgpndtltglt fufxcawbnklkajjkfvgoqxjpiuombncpflkqfiikacxjciuz jjhryulqybzpnuwyxcmeliuneicwxqjzqrhzyyyiuhujuimpjquqv stzptbklgzirjdeeoqsjkscuirjimehvtwksqumtkfytjwqtemuaa fsucqbenqcsdzmwavxjhbymvajvtjjwjqybtkymutqsizwvvnnsu wqtmsjnerwtnhrxkvvtkklgwznstmrsmxtdiplezxvjqybmjzruazzrvrv a b c d e f g h i j k l m 14 11 13 9 16 18 9 9 23 38 26 14 24 n o p q r s t u v w x y z 25 4 22 28 19 23 27 28 27 22 18 26 19 max freq 38/512 = .074
Babbage/Kasiski
find keylength with repeated kgram offsets
for each substring, find shift by hand
Friedman 1922
find keylength with index of coincidence
for each substring, find shift by index of mutual coincidence
gcd of repeated kgram offsets cug 14 xqj 294 spg 175 dfy 105 pjb 126 kfv 168 vvn 350 ymv 322 umt 269 <-- false positive qsi 315 fii 143 <-- false positive ksq 222 <-- false positive utk 22 <-- false positive jqy 238 zqr 98 qyb 131 194 <-- false positives klg 119 irj 14 wqt 60 <-- false positive vjqy 301 bzpn 91 jqyb 63 false positive example key ? ? i f f ? ? ? ? ? f f r ? ptxt . . m o t . . . . . p o t . ctxt . . u t k . . . . . u t k .
- keylength known, now find shifts by hand (eyeball)
eg. shift until 9 most freq chars align with typical English
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
* * * * * * * * *
- substring 0: maybe 'c' ?
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
0 0 6 1 5 2 7 0 0 3 7 0 0 4 1 5 8 5 0 4 8 7 0 0 1 0
* * * * * *
- substring 1: maybe 'h' ?
8 2 0 1 0 1 0 5 0 4 0 7 2 2 3 5 0 0 2 3 6 7 6 0 5 4
* * * * * * * *
3 3 1 1 2 0 2 0 6 2 2 1 9 4 0 4 9 0 0 5 3 3 6 3 0 4
* * * * *
1 2 0 1 0 3 0 0 2 9 2 0 2 10 0 0 5 2 5 7 5 0 3 5 7 2
* * * * * * * *
1 4 0 3 0 3 0 3 2 15 6 0 2 4 0 1 2 2 7 6 2 0 2 5 3 0
* * * * *
0 0 5 2 4 8 0 0 4 2 8 2 0 1 0 1 0 5 3 1 4 7 2 0 5 9
* * * * * * *
1 0 1 0 5 1 0 1 9 3 1 4 9 0 0 6 4 5 6 1 0 3 3 5 5 0
* * * * * * * *
keyword ?: c h ? ? ? ? ?
given basket of characters, probability that
two equiprobably-selected characters are equal
{ a,a,a,a,b,b,c,d,d,d,e,e,e,e,e} ?
I_c = (4*3 + 2*1 + 1*0 + 3*2 + 5*4) / (15*14)
= (12 + 2 + 0 + 6 + 20 ) / 210
= 0.19...
{ a,a,a,b,b,b,c,c,c,d,d,d,e,e,e } ?
I_c = (3*2 + 3*2 + 3*2 + 3*2 + 3*2) / (15*14)
= ( 6 + 6 + 6 + 6 + 6 ) / 210
= 0.14...
I_c = ( f_1*(f_1 - 1) + f_2*(f_2 - 1) + ... + f_c*(f_c - 1) / n*(n-1)
if n is large, (f_j - 1) / (n - 1) ≈ f_j / n = p_j, and so
I_c ≈ p_1^2 + p_2^2 + ... + p_c^2
source https://en.wikipedia.org/wiki/Letter_frequency accessed 2017-01-01 .082 .015 .028 .043 .127 .022 .020 .061 .070 .002 .008 .040 .024 .067 .075 .019 .001 .060 .063 .091 .028 .010 .024 .002 .020 .001
ioc is sum of squares of above probabilities 0.065124
* by random, we mean uniform random, i.e. equiprobable
* so fraction of each character will be close to 1/26
* so close to (but a bit larger than, since
sum of squares of numbers that add up to a fixed
total is minimized when all numbers are same)
(1/26)^2 + (1/26)^2 + ... + (1/26)^2
= 26(1/26)^2 ≈ .038
given two baskets of characters, probability that
element equiprobably-selected from one basket equals
element equiprobably-selected from other basket
{ a a a a b b c d d d e e e e e } and
{ a a a a a b b b b c c d e e e } ?
I_mc = (4*5 + 2*4 + 1*2 + 3*1 + 5*3) / (15*15) =
= 48/225 = 0.21...
{ a a a a b b c d d d e e e e e } and
{ a a a a b b c d d d e e e e e } ?
I_mc = (4*4 + 2*2 + 1*1 + 3*3 + 5*5) / (15*15) =
= 55/225 = 0.24...
* recall above ctxt: rywutjivvisjek...
* for each possible keylength
find ioc of each substring (English .065)
1 .042
2 .041 .043
3 .044 .041 .042
4 .045 .043 .040 .048
5 .045 .040 .043 .041 .042
6 .042 .040 .043 .056 .036 .042
7 .066 .057 .056 .066 .074 .063 .061 <--
8 .048 .043 .034 .047 .042 .042 .047 .049
9 .043 .050 .038 .046 .043 .036 .049 .047 .043
...
* assume language with 5 char alphabet, typical freq:
a b c d e
.27 .13 .07 .20 .33
* assume ctext substring with this distribution:
(a bbb ccccc dddd ee)
* which shift gives best IMC ?
shift 0 a->a (a bbb ccccc dddd ee)
((1*.27) + (3*.13) + (5*.07) + (4*.2) + (2*.33))/15 = .165
shift 1 a->b (aa b ccc ddddd eeee)
((2*.27) + (1*.13) + (3*.07) + (5*.2) + (4*.33))/15 = .213
shift 2 a->c (aaaa bb c ddd eeeee)
((4*.27) + (2*.13) + (1*.07) + (3*.2) + (5*.33))/15 = .244
shift 3 a->d (aaaaa bbbb cc d eee)
((5*.27) + (4*.13) + (2*.07) + (1*.2) + (3*.33))/15 = .213
shift 4 a->e (aaa bbbbb cccc dd e)
((3*.27) + (5*.13) + (4*.07) + (2*.2) + (1*.33))/15 = .165
shift 2 is best
* for each substring, find shift maximizing imc
substring 0
shift 0 .033
shift 1 .037
shift 2 .066 <-- 'c'
shift 3 .040
shift 4 .029
shift 5 .027
shift 6 .047
shift 7 .030
shift 8 .032
shift 9 .039
shift 10 .036
shift 11 .034
shift 12 .042
shift 13 .051
shift 14 .032
shift 15 .035
shift 16 .043
shift 17 .050
shift 18 .030
shift 19 .027
shift 20 .029
shift 21 .033
shift 22 .034
shift 23 .035
shift 24 .046
shift 25 .037
repeat for other substrings
<-- 'c h i f f r e'
by 1830s social change telegraph bicycle
=> public interest in cryptography
Victorian England + romance? => agony columns
Babbage Wheatstone Playfair
dear charlie write no more our cipher is discovered
postal fees => pinprick cipher
Polybius credits Aeneas Tacticus
. ._ ... .. ._.. _.__ .. _. _ . ._. _._. . .__. _ . _..
. .
Transliteration is the conversion
. . .
of a text from one script to another.
.
It is concerned not with the sounds
. .
of the original but only the accurate
mapping of the characters.
1840 Poe secret writing
1843 Poe The Gold Bug
1864 Verne Journey tt Centre ot Earth
1885 Verne: Mathias Sandorf
turning grille cipher (Cardano)
1903 Doyle Adventure of the Dancing Men
steganography, substitution
1915 Buchan: 39 Steps
- pick a grille size, say 6x6 - there will be 6x6 / 4 = 9 holes in the grid - pick a pattern for the 9 holes - 1st hole, and its 3 rotations + 1 + + + + + + + + + * + + + + + + + + + + + + * + + + + + + + + + * + - repeat for remaining holes, e.g. + 1 + 2 3 + + + + + + + + 4 + 5 6 + 7 + + + + + + 8 + + + + + + + + + 9 - choose the order of rotations e.g. clockwise - write plaintext across the rows + W + A L + + + + + + + + S + I N + G + + + + + + H + + + + + + + + + A + + M + + + + H + A + S + + + + + + + + + C + R + + + A + C K + + + + + E + + + + + + + + + D + + + + + + M + A R + Y + + + + + + + + S C + I + + + + + + R W + A + + + R + N + + + + + + + + + B + A + B + + + + B + + E W M A L R W H A A D S R S N I N M G A R C Y R B H A A B C K S C B I A ciphertext: read the columns EWRG BKW HSAHS MANRACA AICA BL DNY BIRSM RCAZQ
book cipher
key: a book
replace 1st letter of each word with word number
becomes a homophonic cipher
key: The vast sun was past its zenith, hot like an xray. Giant pandas raced back and forth. A mangy cat jumped on the kid, until then quietly eying the dozing newt. He yelped. 0 1 2 3 4 5 6 The vast sun was past its zenith, 7 8 9 10 11 12 hot like an xray. Giant pandas 13 14 15 16 17 18 19 raced back and forth. A mangy cat 20 21 22 23 24 25 26 jumped on the kid, until then quietly 27 28 29 30 31 32 eying the dozing newt. He yelped. ciphertext: 31 21 18 21 4 31 21 30 5 19 plaintext ?
1 2 3 4 5 1 a b c d e 2 f g h i/j k 3 l m n o p 4 q r s t u 5 v w x y z ciphertext: 23 34 52 24 43 44 23 15 35 34 31 54 12 24 45 43 22 42 24 14 45 43 15 21 45 31 24 33 44 15 31 15 22 42 11 35 23 54 plaintext: ? 1 2 3 4 5 6 1 a b c d e f 2 g h i j k l 3 m n o p q r 4 s t u v w x 5 y z 0 1 2 3 6 4 5 6 7 8 9
1854 Charles Wheatstone, popularized by Playfair
used 2nd Boer War, WWI, WWII
encrypt
break plaintext into digraphs
ensure no double-letter-digraph by inserting x
use keyword-scrambled Polybius grid
same row? shift right
same column? shift down
diff't row/col? each: same row, other col
C H A R L
E S B D F
G I/J K M N
O P Q T U
V W X Y Z
plaintext: retreat left ??????????
re tr ea tl ef tx ?? ?? ?? ?? ??
ciphertext: CD YD BC UR SE QY
decrypt: BC DW UP PF GC
ea sy to us ev
use digram frequency analysis
1932 Dorothy L Sayers have his carcase
LP YN UG DZ UC PA DS OT MS AE SE CU DH NK BU UC ES TG YD
h o m o p h o n i c h o w i s t h e p o l y b i u s g r i d u s e f u l i n t e l e g r a p h y