第三章 - 顏經和老師的網頁!!

Download Report

Transcript 第三章 - 顏經和老師的網頁!!

Cryptography(密碼學)
安全性
錯誤偵測
修正錯誤
身份辨識
安全性

訊息傳遞時,就算被他人擷取,也無法得
知內容。
對稱式加密模型
2
錯誤偵測






電腦在傳送資料時,是以二進位法傳送資訊。
例如其中一種表示系統為ASCII碼將一些字母、符
號及數字以8個二進位數字表示。
如B,A,T,C分別以 01000010, 01100010,
00110111,及01000011表示。
若在傳送B這字元時,有一錯誤發生在第八個數
字,收到的訊息為01000011在
此時將被解讀成C。
我們如何偵測這種錯誤呢?
3
修正錯誤




如B,A,T,C分別以 01000010, 01100010,
00110111,及01000011表示。
若在傳送B這字元時,有一錯誤發生在第八個數
字,收到的訊息為01000011在
此時將被解讀成C。
我們如何修正這種錯誤呢?
4
身份辨識


當Alice分收到Bob的電子文件,他如何確認這是
是Bob寄送的的文件?
而Alice也不能否認這是他所發的文件?
5
密碼系統


對稱鑰密碼系統:加密鑰匙=解密鑰匙。
非對稱鑰密碼系統
•
•
公開鑰密碼系統:加密鑰匙公開(稱為公鑰),解密鑰匙
不公開(稱為私鑰)
私鑰密碼系統:Pohlig-Hellman密碼,…
明文
密文
加密
鑰匙
明文
解密
鑰匙
6
古典密碼






凱撒挪移碼(Caesar Shift Cipher)
仿射密碼(Affine Cipher)
單套字母替代法(Monoalphabetic cipher)
Vigenere密碼
Hill密碼
單次密碼簿(One-time Pad)
7
凱撒挪移碼


是一種簡易的單套字母替代法,為將明文字母改
成為其後面固定的後n為字母。
Example: n=3
A B C D E F G H I J K L MN O P Q R S T U V WX Y Z
D E F G H I J K L MN O P Q R S T U V WX Y Z A B C
Plaintext(明文):
NUMBER THEORY
Ciphertext(密文):
QXPEHU WLHRUB
8
凱撒挪移碼
A B C D E F G H I J K L M
00 01 02 03 04 05 06 07 08 09 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
將明文字母往後挪動n步。則加密的密鑰E
是”n”,而解密的密鑰D是”-n”
 若P為明文字母的數字代碼且C為密文字母
的數字代碼,則 C  P+n (mod 26).

Example

Alice欲將明文cryptography傳給Bob.兩人協商好
以n=4為密鑰傳送。





明文先化為數字代碼
(02,17,24,15,19,14,06,17,00,15,07,24)。
使用加密函數C  P+4 (mod 26)加密後得
(06,21,02,19,23,18,10,21,04,19,11,02)
Alice將之轉回字元得密文gvctxskvetlc並傳送給Bob。
Bob收到密文後轉換成數字代碼後以解密函數P C - 4
(mod 26)加解密後得
(02,17,24,15,19,14,06,17,00,15,07,24)
還原成明文即為cryptography。
10
凱撒加密的破解 – 暴力破解法
對凱撒加密做暴力破解法
(Brute-force Cryptanalysis)
25種的可能,逐一測試
測試出來是明文,一看便知
仿射密碼


也是一種簡易的單套字母替代法,以26個英文字
母為例,作法為將字母化為數字代碼m後以加密
函數E(m)  am+b (mod 26)加密。其中a需與26互
質(即gcd(a,26)=1)。
若a需與26不互質,以E(m)  2m+1 (mod 26)為例,
字母b與q的數字代碼分別為1,14,加密後的數字
代碼皆為3,無法辨別。
12
仿射密碼





也是一種簡易的單套字母替代法,以26個英文字
母為例,作法為將字母化為數字代碼m後以加密
函數E(m)  am+b (mod 26)加密。其中a需與26互
質(即gcd(a,26)=1)。
如何解密?解密函數?
解 E(m) – b  am (mod 26)
若能找到一整數x使得ax 1 (mod 26)
則m  axm  x(E(m) -b) (mod 26)。
13
Theorem

若a,b為皆為非零的整數,則
a與b互質
 1= ax + by有整數解
 ax  1 (mod b)有解

我們通常把這樣x的表示成a-1.
仿射密碼


也是一種簡易的單套字母替代法,以26個英文字
母為例,作法為將字母化為數字代碼m後以加密
函數E(m)  am+b (mod 26)加密。其中a需與26互
質(即gcd(a,26)=1)。
解密函數為m  a-1(E(m) -b) (mod 26)。
15
仿射密碼的破解 – 暴力破解法





加密函數E(m)  am+b (mod 26)。其中a需與26互
質(即gcd(a,26)=1)。
解密函數為m  a-1(E(m) -b) (mod 26)。
a共有12種可能
對仿射密碼做暴力破解法
26*12=312種的可能,逐一測試
16
Example

Alice欲將明文affine傳給Bob.兩人協商好密鑰為
(a,b)=(3,8)。





明文先化為數字代碼(00,05,05,08,13,04)。
使用加密函數E(m)  3m+8 (mod 26)加密後得
(08,23,23,06,21,20)
Alice將之轉回字元得密文ixxgvu並傳送給Bob。
Bob收到密文後轉換成數字代碼後以解密函數
m  3-1(E(m) - 8) (mod 26)解密
解 3x  1 (mod 26)
 解 1= 3x + 26y 之整數解
17
解 1= 3x + 26y 之整數解
26 = 38 + 2
3 = 21 + 1
1 = 3 + (-1)  2
= 3 + (-1)  (26+(-8) 3)
= 3 9 + 26  (-1)
3-1 = x = 9 (mod 26)
Example

Alice欲將明文affine傳給Bob.兩人協商好密鑰為
(a,b)=(3,8)。





明文先化為數字代碼(00,05,05,08,13,04)。
使用加密函數E(m)  3m+8 (mod 26)加密後得
(08,23,23,06,21,20)
Alice將之轉回字元得密文ixxgvu並傳送給Bob。
Bob收到密文後轉換成數字代碼後以解密函數
m  3-1(E(m) - 8)  9(E(m) - 8) (mod 26)解密後得
(00,05,05,08,13,04)
還原成明文即為affine 。
19
單套字母替代法

以26個英文字母為例,將每一字母各自對應到相
異的字母做加密動作。
AB CDEFGHI JKLMNOPQRSTUVWXYZ
Ciphertext: Q W E R T Y U I O P A S D F G H J K L Z X C V B N M
Plaintext :
NUMBER THEORY
FXDWTK ZITGKN
20
單套字母替代法



以26個英文字母為例,將每一字母各自對應到相
異的字母做加密動作。
這可看成定義在字母集合{a,b,…,z}上的一個置換
(permutation).
凱薩挪移碼與仿射密碼為具有一定規律的置換.
AB CDEFGHI JKLMNOPQRSTUVWXYZ
Ciphertext: Q W E R T Y U I O P A S D F G H J K L Z X C V B N M
Plaintext :
21
Example
隨機決定一種字母的置換做為key
abcdefghijklmnopqrstuvwxyz
dkvqfibjwpescxhtmyauolrgzn
a
m e e t …
a
d
a
d
a
c f f u …
明文:meet me after the toga party
密文:cffu cf diufv ujf uhbd tdyuz
m e e t …
單套字母替代法的安全性





以Key的所有排列組合的可能性有 26! = 4 x 1026
有那麼多把鑰匙,該應該算是安全了吧? 但是這
樣想是錯的!!!
問題出在語言本身的特性~ 字元的使用頻率並不
均等
在英文中,e 的使用次數最高、其次是 t,r,n,i,o,a,s
、而z,j,k,q,x很少使用
另外,單字元、雙字元及三字元的出現頻率都已
經有現成的統計表格
23
單套字母替代法的破解 –頻率分析
uzqsovuohxmopvgpozpevsgzwszopfpesxudbmetsxaiz
itwasdisclosedyesterdaythatseveralinformalbut
p(13.33%) → e,
z(11.67%) → t.
vuephzhmdzshzowsfpappdtsvpquzwymxuzuhsx
directcontactshavebeenmadewithpolitical
{s,u(8.3%),o(7.5%)}
→{r,i,a,n,o,s}
zw → th, zwsz
→ that.
epyepopdzszufpombzwp
representativesofthe
Vigenère 密碼
這是一種多套字母替代法( polyalphabetic )
 也可說是多重 caesar 加密法
 作法為選多個字元作為一個密鑰。然後重
複這這些字元來加密。


例如,使用deceptive為密鑰
鑰匙: deceptivedeceptivedeceptive
明文: wearediscoveredsaveyourself
密文: ZICVTWQNGRZGVTWAVZHCQYGLMGJ
Vigenère 密碼
挑選一個單字做為key
d e c e p t i v e
3 4 2 4 15 19 8 21 4
w e
a
r
e
a
a
a
a
z
i
c v
t
明文:wearediscoveredsaveyourself
密文:zicvtwqngrzgvtwavzhcqyglmgj
26
w e
a
r
e
Example

Alice欲將明文cryptography傳給Bob.兩人協商好
以vecto為密鑰傳送,則密文為何?




明文先化為數字代碼
(02,17,24,15,19,14,06,17,00,15,07,24)。
密鑰的數字代碼為
(21,04,02,19,14,21,04,02,19,14,21,04)
加密後得(23,21,00,08,07,09,10,19,19,03,02,02)
Alice將之轉回字元得密文為xvaihjkttdcc
27
Vigenère 密碼的安全性
每個明文字元可以對應到好幾個密文字元
 因此單一字元頻率就被不明顯
 但重複的密文透露了週期的訊息
 因此,找出距離間隔一樣的相同明文
 當然其產生的密文也相同
 當然,這可能是運氣好剛好一樣
 例如,前面範例中的 “VTW”

密文: ZICVTWQNGRZGVTWAVZHCQYGLMGJ

告訴我們關鍵字長度可能為 3 或 9
Example
KQOWE
MKJBG
KQCTE
WPNTC
YNCTS
APYME
ZGMRU
WVBPN
MTMHR
KCPJR
YGOSA
WNOJN
WGNMA
DGAVE
XKLNE
TNYBU
WOJFT
JG
FVJPU
WRLFN
SWREE
GOJBG
SPNTU
KQHUI
WEYTR
LGOYL
SPXFS
GPMUR
ANYDO
SIOFR
AFFVN
MNYMA
IWCWO
HTCOC
WGNTE
JUUNU
FGHUD
KOYSS
FQHTD
JNYTG
DUXFP
GKMEE
SKMTE
SKFFS
SKHFR
EOYJL
WUCCE
SIUDE
MVLFM
DCCUL
WFYTN
JKNEE
KGLME
WUUMB
IWCTU
WXIZA
GWZGR
GUYTS
DCTVR
FVJJT
TNUOC
SEIUE
WUNHA
SWKVI
KQHCE
AOYFN
WRIFT
MGYTQ
DCLDH
KJINM
SVLPS
AXYOT
YGFFN
WUUNE
MTFFS
ECFBD
WWMFM
ZGMDO
VGOYC
MEBFE
DGMUC
UCPFC
TQCUA
WGMUS
MKBBN
WTVBU
WUXFQ
NCMUE
APXPL
SXCSE
JUUQE
HNUOC
JQCUS
WPNME
EOYEE
WXIZA
LXYVL
GOCRU
MPVSU
FVFJN
WOVMA
LGFBT
VGFBI
重複密文
WUU
EEK
WXISAYG
NUOCSG
DOEOY
GHU
間隔
95
200
190
80
45
90
Key可能長度
2 3 5 19
 





 
  
依據上述分析,Key的長度極
可能5
猜出Key的長度後,將密文以
Key的長度間隔來統計字母出
現頻率。
邊試邊統計而逐漸猜出明文。
29
Autokey 加密法



為Vigenère的改良版。希望鑰匙跟訊息一樣長。
方法為將關鍵字接在訊息前端,藉此形成鑰匙。
例如,給定鑰匙 deceptive
明文: wearediscoveredsaveyourself
鑰匙: deceptivewearediscoveredsav
密文: ZICVTWQNGKZEIIGASXSTSLVVWLA
Autokey 加密法



為Vigenère的改良版。希望鑰匙跟訊息一樣長。
方法為將關鍵字接在訊息前端,藉此形成鑰匙。
例如,給定鑰匙 deceptive
明文: wearediscoveredsaveyourself
鑰匙: deceptivewearediscoveredsav
密文: ZICVTWQNGKZEIIGASXSTSLVVWLA

但是仍舊殘存可供破解的頻率資訊。
單次密碼簿(One-Time Pad)






如果隨機鑰匙的長度真的跟訊息一樣,那麼這個
加密法就是安全的。
此法稱為 One-Time pad
無法破解的原因是:密文與明文間沒有統計上的
關係
因為對 任意的明文 與 任意的密文之間, 都存
在一把對應彼此的鑰匙
一把鑰匙只能使用一次
但是如何安全地分送鑰匙,就是一個大問題
Hill密碼




是由數學家Lester Hill在1929提出的。
密鑰為一nn可逆矩陣A。
方法將明文轉換成一段段的n維行向量C,然後計
算AC 與可得密文P。計算A-1P可得明文C。
Example:


明文: paymoremoney
密鑰: 17 17 5 


A  21 18 21


2 19
 2
明文
pay
mor
emo
ney
C
(15,0,24)T
(12,14,17)T
(04,12,14)T
(13,04,24)T
P=AC (mod26)
(11,13,18)T
(08,03,11)T
(04,22,12)T
(19,17,22)T
密文
lns
Hdl
ewm
trw
Example
甲國艦隊要將目前位置傳送給友軍,但
未避免被敵方監聽得知,所以傳送時需
先將位置資訊[x,y]T轉換。而收到的單位
也必須將收到資訊逆轉回原來的資訊。
若我們利用可逆矩陣 A  1 3

一.

2



5
此時會將位置[1,2]T轉換為[7,12]T傳送出去。
 5 3 
而收到的單位可利用A的反矩陣 A  

2

1


T
T
1
3
1
7
   
將[7,12] 逆轉回原來的位置[1,2]
。
1

    
2 5 532 7 12 1 

    
 1 12 2
 2
Example
甲國艦隊要將目前位置傳送給友軍,但
未避免被敵方監聽得知,所以傳送時需
先將位置資訊[x,y]T轉換。而收到的單位
也必須將收到資訊逆轉回原來的資訊。
若我們利用不可逆矩陣 A  1 2

一.

3



6
此時會將位置[1,2]T轉換為[5,15]T傳送出去。
 5 3 
T
A 
但收到的單位卻無法由[5,15] 逆轉回原來的

2

1


T。
位置[1,2]
1
2
1
5

   
1
1

3
2 31 

 
6 2
5    1

6
2
15
     
15
3
2   5  5 
    
6 0 15
Playfair 加密法
此法是 Charles Wheatstone 在 1854 年
所提出,但是以其朋友 Baron Playfair
的名字來命名。
 密鑰為由一個關鍵字來產生一個 5X5 階的
字元矩陣。

Playfair加密法
5.解密規則:
1.挑選一個單字做為key
3.將明文分成兩兩字元一組(但若同組同字母則中間插入一個“x”)
4.加密規則:
2.依接下來的方式將字母一一填入5×5的矩陣
若兩字元在同一行,則各以上方字元取代。
若兩字元在同一行,則各以下方字元取代。
key
key
monarchy
若兩字元在同一列,則各以左邊字元取代。
若兩字元在同一列,則各以右邊字元取代。
其他情況,則換成此二字元對角的兩字元。
ki lx le rs … m o n a
b
r
m
o
n
a
r
d
c
h
y
b
d
e
f
p
g
i/j k
q
s
t
v
w x
z
c
h
y
e
f
g i/j k
l
p
q
s
t
u
v
w x
z
ek su ul at …
l
u
ki lx le rs …
a bc defgh ijkl m nopq rstuvwx yz
明文:killersarerunningaway
密文:eksuulatrmkmwmagyqnxnb
37
Playfair加密法的安全性
Reletive Frequency of Occurrence of Letters
雙字元有 26×26=676 組的可能,也就是說
至少要有這麼多字元的密文才足以分析。
100
90
Plaintext
較Monoalphabetic加密更為安全,第一次
世界大戰中被採用。
80
Playfair Cipher
70
不過密文中仍存在明文的結構,只要蒐集
到字元數超過可分析的密文,仍有可能以
統計方法進行分析,進而破解密文。
60
50
40
30
Vigenère Cipher
20
Random Polyalphabetic Cipher
10
0
2
4
6
8
10
12
14
16
18
20
22
24
26
Frequency Ranked Letters
密文的字母頻率越一致,越難以統計分析破解。
38
混合式加密法
因為語言特性的關係,採用取代或置換加
密法並不安全
 因此,我們可以採用一連串的加密法讓破
解更困難,但是:

取代兩次比取代一次複雜
 置換兩次比置換一次複雜
 但是取代之後再置換會更加複雜


這就是古典與當代加密法的橋樑
旋轉機


在當代加密法出現之前,旋轉機是最常用的混合
式加密法
旋轉機在第二次世界大戰時被廣泛地使用




German Enigma, Allied Hagelin, Japanese Purple
是一個非常複雜,變化多端的取代加密法
使用一系列的轉軸,每個轉軸就是一個取代加密
法。每個字元加密後,這個轉軸都會旋轉一個刻
度來改變
三個轉軸的旋轉機就提供了 263=17576 個取代法
旋轉機(Rotor Machine)
這三個滾輪等同3-stage
monoalphabetic cipher
且必須有所“互動”,才
不致於變成固定的相對
字母取代。
每次按鍵都會讓滾輪的
對應shift一格(1/26圈),
而按26次鍵後,右滾輪
會轉一圈而帶動中滾輪
轉一格,而中滾輪若轉
一圈則會帶動左滾輪轉
一格。
41
e
k
m
f
l
g
d
q
v
z
n
t
o
w
y
h
x
u
s
p
a
i
b
r
c
j
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
a
j
d
k
s
i
r
u
x
b
l
h
w
t
m
c
q
g
z
n
p
y
f
v
o
e
z
a
a
b
b
c
c
d
d
e
e
f
f
g
g
h
h
i
i
j
j
k
k
l
l
m
m
n
n
o
o
p
p
q
q
r
r
s
s
t
t
u
u
v
v
w
w
x
x
y
y
z
b
d
f
h
j
l
c
p
r
t
x
v
z
n
y
e
i
w
g
a
k
m
u
s
q
o
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
旋轉機(Rotor Machine)
這三個滾輪等同3-stage
monoalphabetic cipher
且必須有所“互動”,才
不致於變成固定的相對
字母取代。
每次按鍵都會讓滾輪的
對應shift一格(1/26圈),
而按26次鍵後,右滾輪
會轉一圈而帶動中滾輪
轉一格,而中滾輪若轉
一圈則會帶動左滾輪轉
一格。
“n”
42
e
k
m
f
l
g
d
q
v
z
n
t
o
w
y
h
x
u
s
p
a
i
b
r
c
j
“k”
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
a
j
d
k
s
i
r
u
x
b
l
h
w
t
m
c
q
g
z
n
p
y
f
v
o
e
“d”
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
“a”
z
a
a
b
b
c
c
d
d
e
e
f
f
g
g
h
h
i
i
j
j
k
k
l
l
m
m
n
n
o
o
p
p
q
q
r
r
s
s
t
t
u
u
v
v
w
w
x
x
y
y
z
b
d
f
h
j
l
c
p
r
t
x
v
z
n
y
e
i
w
g
a
k
m
u
s
q
o
1
1
旋轉機(Rotor Machine)
這三個滾輪等同3-stage
monoalphabetic cipher
且必須有所“互動”,才
不致於變成固定的相對
字母取代。
每次按鍵都會讓滾輪的
對應shift一格(1/26圈),
而按26次鍵後,右滾輪
會轉一圈而帶動中滾輪
轉一格,而中滾輪若轉
一圈則會帶動左滾輪轉
一格。
43
e
k
m
f
l
g
d
q
v
z
n
t
o
w
y
h
x
u
s
p
a
i
b
r
c
j
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
a
j
d
k
s
i
r
u
x
b
l
h
w
t
m
c
q
g
z
n
p
y
f
v
o
e
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
b
d
f
h
j
l
c
p
r
t
x
v
z
n
y
e
i
w
g
a
k
m
u
s
q
o
y
z
a
z
b
a
c
b
d
c
e
d
f
e
g
f
h
g
i
h
j
i
k
j
l
k
m
l
n
m
o
n
p
o
q
p
r
q
s
r
t
s
u
t
v
u
w
v
x
w
y
x
“n”
“k”
“d”
“a”
1
“v”
“i”
“f”
“a”
2
2
旋轉機(Rotor Machine)
u
n
k
y
f
e
x
v
z
o
c
t
p
b
j
m
s
w
q
l
a
h
r
g
d
i
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
第四滾輪叫做Reflector
是比較特別的,接線的
方式是兩兩字母對應。
這會使得旋轉機的加密
與解密操作程序相同。
44
e
k
m
f
l
g
d
q
v
z
n
t
o
w
y
h
x
u
s
p
a
i
b
r
c
j
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
a
j
d
k
s
i
r
u
x
b
l
h
w
t
m
c
q
g
z
n
p
y
f
v
o
e
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
b
d
f
h
j
l
c
p
r
t
x
v
z
n
y
e
i
w
g
a
k
m
u
s
q
o
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
旋轉機(Rotor Machine)
u a
n b
k c
y d
f e
e f
x g
v h
z i
o j
c k
t l
p m
b n
j o
m p
s q
w r
q s
第四滾輪叫做Reflector
l t
a u
是比較特別的,接線的
h v
方式是兩兩字母對應。
r w
g x
d y
i z
這會使得旋轉機的加密
與解密操作程序相同。
45
e
k
m
f
l
g
d
q
v
z
n
t
o
w
y
h
x
u
s
p
a
i
b
r
c
j
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
a
j
d
k
s
i
r
u
x
b
l
h
w
t
m
c
q
g
z
n
p
y
f
v
o
e
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
b
d
f
h
j
l
c
p
r
t
x
v
z
n
y
e
i
w
g
a
k
m
u
s
q
o
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
旋轉機(Rotor Machine)
u
n
k
y
f
e
x
v
z
o
c
t
p
b
j
m
s
w
q
l
a
h
r
g
d
i
46
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
a
j
d
k
s
i
r
u
x
b
l
h
w
t
m
c
q
g
z
n
p
y
f
v
o
e
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
b
d
f
h
j
l
c
p
r
t
x
v
z
n
y
e
i
w
g
a
k
m
u
s
q
o
z
a
a
b
b
c
c
d
d
e
e
f
f
g
g
h
h
i
i
j
j
k
k
l
l
m
m
n
n
o
o
p
p
q
q
r
r
s
s
t
t
u
u
v
v
w
w
x
x
y
y
z
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
e
k
m
f
l
g
d
q
v
z
n
t
o
w
y
h
x
u
s
p
a
i
b
r
c
j
“n”
“k”
“d”
“a”
I nput
“b”
“w”
“m”
“u”
Output