第二章 Chapter2

快速連結
基本定義 Caesar Cipher Play Fair Hill Cipher Vigenere Cipher

這個是基本定義我覺得應該要會

密碼學的五個要件

Plaintext:Original text--->我後面都用P表示原文

Ciphertext:Coded text--->我後面都用C表示密文

Key:就加密的鑰匙嘛-->我後面都用K表示key

Encryption Algorithm:表加密的演算法

Decryption Algorithm:表解密的演算法

應該會考的解釋名詞:

Cryptography Study of encryption principles
研究解碼的方法或原則
Cryptanalysis

Study of encryption principles but without knowing keys......

同上...但差在不知道key,需要自己解開!所以可以叫做密碼分析
Cryptology Field of both cryptography and cryptanalysis
就是上面Cryptography跟Cryptanalysis的合體....囧rz...

※注意:有兩個單字請記好,為編碼常見之兩種手法

第一.Substitution Technique 替換法-就是把字母換成另外一種

第二.Transposition Technique 位置排列法-就是把原文從新排列


 

以下是編碼法


Caesar Cipher -屬substitution

舉例說明:
我用投影片的例子

規則

目前假設規則為向前遞移三個字母,則會變成如下表,a變成d、b變成e...etc以此類推

數字只是代表為英文數字第幾號~跟數學公式有極大關係

1.a 2.b 3.c 4.d 5.e 6.f 7.g 8.h 9.i 10.j 11.k 12.l 13.m 14.n 15.o 16.p 17.q 18.r 19.s 20.t 21.u 22.v 23.w 24.x 25.y 26.z
d e f g h i j k l m n o p q r s t u v w x y z a b c

編碼原則:

要被編碼的的P為:meet me after the toga party

依序查上面表為m變成p e變成h...etc依此類推...這考出來老師說應該為送分題~

編碼結果如下:

m e e t m e a f t e r t h e t o g a p a r t y
p h h w p h d i w h u w k h w r j d s d u w b

如以數學算式來看即為

C= ( P + K ) mod 26

以上面的規則來看P就是原本要被編碼的字串 ,而K就是向前遞移的個數3,k=3

公式=> C= ( P + 3 ) mod 26

舉例來說第一個要被編碼的為m原本在26個字母中號碼為13, C = ( 13+3 ) mod 26 為16

然後去找第16個號字母p也就是等於c就是編碼的第一個字母,這是用公式解比較無聊...

反過來說

P = ( C - K) mod 26也就是逆轉回去解碼~這請自行練習囉~

如果老師要我們編碼~就只要看編碼方式部份就好


Play Fair

這個比較簡單,知道規則就很好做編碼部份

一樣用課本例子,先設定一個Key,隨便設定,課本用的為MONARCHY

規則為先把Key先行填入表格,如下紅色字體所表示

再來依照ABCDEFG.....到Z填入剩下表格,注意,KEY出現過的字母不可以再用

還有I跟J只能挑一個使用,但並沒有規定誰不可以用,請自行決定

則表格即為

M O N A R
C H Y B D
E F G I K
L P Q S T
U V W X Z

(注意:I和J只挑其中一個放入,另外一個不放入~看誰規定)

再來是編碼方法:

假設要編的字串為:balloon

首先第一步為,兩個兩個字一組:ba ll oo n

第一規定,重複的中間加個x

所以兩個兩個字一組就變成:ba lx lo on

(容易發生的疑問,為什麼 oo 沒有中間加個x,因為前面 ll 中間加個x之後,

後面兩個字?@組重複的現象就消失了,所以不用加x)

(※註:如果說給的字串,兩兩一組分割後,最後一個剩下一個字元,怎麼辦?

我查完Google之後,得到結論如下,假設是apple,分割會變成ap pl e,e會落單,則就補上x

變為ap pl ex,以此類推~ )

再來就是替換了

首先是ba

查表發現,ba再同一行,書上規定再同一行的話

就往下遞移,b變成了i,a變成了b,就變成了ib

變身前
A
B
I
S
X
變身後
A
B
I
S
X

再來看lx

l往x方向對到x上方的位置是s

x往u方向對到l的下方位置是u

所以就變成su

變身前
L
P
Q
S
U
V
W
X
變身後
L
P
Q
S
U
V
W
X

lo依照上面方法就變成pm,這個請自己嘗試

發現on在同一row(列),書上規定為同一列的話往右遞移

就變成na

變身前
M
O
N
A
R
變身後
M
O
N
A
R

 

所以最後字串就變成ibsupmna

這個編碼就是這樣~

 


Hill Cipher

老師就只有說會考

但並沒有說這個要怎麼考,我就以編碼方式來講說這個怎麼編

編碼方式:

先以課本例子

假設要編碼之原文為:paymoremoney

三個字三個字為一組

pay mor emo ney

key為一矩陣,假定為K

K矩陣:

17
17
5
21
18
21
2
2
19

首先先編pay

依照在abcdefg....的依序編號,記得從0開始

p=15號字母

a=0號字母

y=24號字母

型成一個行矩陣設為P

P矩陣:

15
0
24

將K乘上P,就高中教的矩陣相乘...這不用我教吧...

變成了

375
819
486

剩最後一步,全部mod 26

意思為每個數字都要除以26然後記下餘數!!!

結果為

11
13
18

然後找英文第11個字母為L

然後找英文第13個字母為N

然後找英文第18個字母為S

就這樣邊完前三個...後面陸續依照相同方式編碼..

最後邊完結果為:LNSHDLEWMTRW

我自己出測驗題:

P:

Key:


Vigenere Cipher

如果這個要解碼會是最難...但如果編碼就會變的頗簡單

我不講故事了,直接教怎麼編碼!

編碼方式

給定字串P:wearediscoveredsaveyourself

給定Key:deceptivewearediscoveredav

編碼方式就跟Caesar很像,只是稍微複雜一點

w對應到的key是d,d是字母a移動3個字母的結果,那w就做相對應移動3個字母變成了z

同理,e對應到的是e,e是字母a移動4個字母的結果,所以e就移動4個字母變成i

再解釋一個,接下來是a對應到c,則表示是字母a移動2個字母到c,所以a就變成c

前三個字母就變成zic.....後面有興趣再慢慢做

注意key不一定跟原字串p一樣長喔~如果key只有短短像是:apple

然後原文p為:thisiseasy

那請自動把key變成跟原文一樣長也就為:appleapple(即重複到字數跟原文一樣多)

那最好是希望老師有提供對照表會更快啦....

我出一小題測試看看,

原文:XNRROIGFEIH

key:damn

解答為:禮拜二再給...答案很有趣...

當然用對照表是最好.....

最後是破解Virgenere的方法(老師有很強烈的提到)

Kasiski破解法

以上破解法感謝006的提供XD~~


以上是這章最後的資料