K書筆記本-Cryptography(02)

密碼學中領域是離不開數學的,正所謂數學乃科學之母是一點也錯不了的,
從進位制、到網路傳遞都是經過數學的計算後,才真正得以正確的達成電腦的目的,
上個章節只能說是暖暖身,抖抖手腳,今天開始的分享才是真正講起沒有啥人聽的懂的話。

密碼學中領域是離不開數學的,正所謂數學乃科學之母是一點也錯不了的,
從進位制、到網路傳遞都是經過數學的計算後,才真正得以正確的達成電腦的目的,
上個章節只能說是暖暖身,抖抖手腳,今天開始的分享才是真正講起沒有啥人聽的懂的話。

在基本的密碼系統之下,大致上分為:Code(密碼)、Substitution(替換)、Transposition(換置、重排)、
Polyalphabetic Substitution Cipher(多套字母替換)、Running Key(金鑰)、one-time pads(一次性密碼)

code:指的是將一串明文的被經過處理的文字串,以簡單的換置、替換…方法維持了基本的完整性及機密性。

Transposition:將原本的字串重新的排列將順序重新排列,有多重的方法去確保了明文的內容有效性。詳見下圖
我們將this is an example of transposition排列到下列表格中

T H I S I
S A N E X
A M P L E
O F T R A
N S P O S
I T I O N

橫的來看,還是原來的字串,但是將字串改變成為直的運作TSAONI HAMFST INPTPI SELROO IXEASN
以這樣的方式將原本的型態都是以明文做傳遞,以打散重排(Rearranging)的方式來保障字串原本的意義。

Substitution:以取代的方式將文字做順序的位移,當文字的變成另一個文字時就保護了真正的明文意義,
但這種方法只要以frequency analysis(語言特性分析)即可破解,例如英文中常見的組合er、qu則容易算出之間的文字差距,
因此容易被解開。
以上例為例:

 

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

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

重排

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

this is an example of substitution經過重排後移4個字元,則變成了wklv lv hadpos ri vxevwlwxlrq,可以說是用了最基本的加密方式來達成隱碼的作用。

Polyalphabetic Substitution:以Substitution為基礎的一組多重重排的運算法,也就是說,除了以一種的重排理論來運作以外,還以不同的重排方法來加深加密的難度
在此以Frequency analysis就較難從中解出真正的文字意義了。
下列以四組重排字表來示範,以上面的例子做重排,第一個字為T重排為T,第二個字為H重排為K,第三個字為I重排為O,第四個字為S重排為B以此類推。

 

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

1

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

2

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

3

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

A

B

C

D

E

F

4

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

A

B

C

D

E

F

G

H

I

Running Key:與特定的字表加密將其順序打亂,並重新選字排列,與Polyalphabetic substitution雷同,但是,其複雜程度又與重排再難上許多
將欲加密的文字選定一個字多,並將其順序依照字碼的字重新選字,例如明文為 Jason so handsome,Key為man我們先將字串轉換為字碼再從字表選字

下表為字表

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

A

B

C

D

E

F

下表為字串內容及字碼(字碼大於26則必須減去26),算好後字串就成了Chlhu lh ougklhty

J

A

S

O

N

S

O

H

A

N

D

S

O

M

E

字碼

10

1

19

15

14

19

15

8

1

14

4

19

15

13

5

M

A

N

M

A

N

M

A

N

M

A

N

M

A

N

字碼

13

1

14

13

1

14

13

1

14

13

1

14

13

1

14

AND

23

2

33

28

15

33

28

9

15

27

5

33

28

14

19

選字

C

H

L

H

U

L

H

O

U

G

K

L

H

T

Y

另外一種running key又稱為share book,意指雙方有一本相同的書,我們只需要傳輸第本書的第幾頁
第幾個字,這種方法即使密碼被取走了,沒有密碼書,還是解不開。

OTP:是目前最夯的一種密碼使用法,符合Some thing you have的精神,比起單純的some thing you know來說,強多了
OTP使用不管是傳送端、接收端都有很特殊的Key值,每一個key也只能使用一次,是一種只能不容易破解的演算法
它有幾個優點,不管是任種一種OTP在產生Key時是真正的random,沒有key會被重覆的使用,所有的pad安全的
即使是被惡意的拔開,也是無法被再次的使用了。

所有的密碼系統都離不開上列幾種,每種密碼系統特性在現在都還是看的到其踨影,下一段再跟大家一起來討論密碼學的部份囉!


Anything keeps Availability.
Anywhere keeps Integrity.
Anytime keeps Confidentiality.
keep A.I.C. = Information Security