• 沒有找到結果。

第四讲 矩阵模运算与古典密码

N/A
N/A
Protected

Academic year: 2021

Share "第四讲 矩阵模运算与古典密码"

Copied!
32
0
0

加載中.... (立即查看全文)

全文

(1)

第四讲

矩阵模运算与古典密码

—— Hill 2 加密解密

(2)

主要内容

 信息加密与古典密码

矩阵运算与Hill

2

加密解密

Hill

2

密码破译

MATLAB 实现

(3)

 为什么要加密

 保密通讯无论在军事、政治、经济还是日常生活中都起着 非常重要的作用。

 为了将信息传递给己方的接受者,同时又要防止他人(特 别是敌人)知道信息的内容,必须将要传递的信息(明文)

加密,变成密文后发送出去,这样,即使敌方得到密文也看 不懂,而己方的接受者收到密文后却可以按照预先定好的方 法加以解密。

信息加密

 密码分类

 古典密码:以字符为基本加密单元

(4)

加密信息传递过程

明文(信息) 加密器

密文

明文(信息) 解密器 密文

普 通 信 道

发 送

敌方截获 破译 发送方

接收方

(5)

矩阵运算与Hill 2 密码

(6)

Hill2 密码的加密过程

Hill

2

密码中所用的数学手段是 矩阵运算

 加密过程:

26 个字母

0 到 25

之间的整数建立一一对应关

系,称为字母的

表值

,然后根据明文字母的表值,

将明 文信息用数字表示

A B C D E F G H I J K L M

1 2 3 4 5 6 7 8 9 10 11 12 13

N O P Q R S T U V W X Y Z

14 15 16 17 18 19 20 21 22 23 24 25 0

设通讯双方所给出的 26 个字母的表值如下:

注:这里假定明文中只使用 26 个大写字母

(7)

Hill2 密码的加密过程

选择一个

二阶可逆整数方阵 A

,称为Hill2密码的

加 密矩阵

,它是加密体制的 “

密钥

”,是加密的关键,

仅 通讯双方掌握

将明文字母分组。 Hill2 使用的是二阶矩阵,所以将明 文字母每 2 个一组(可以推广至Hilln密码)。查出每个字 母的表值,这样,每组字母构成一个二维列向量

α

若最后仅剩一个字母,则补充一个没有实际意义的哑字母

(哑元),这样使得每组都有 2 个字母

④ 令

β = A α

,由

β

的两个分量反查字母表值表,得到 相应的两个字母,即为密文字母

(8)

Hill2 加密举例

例: 设明文为“ HDSDSXX”(华东师大数学系),试给 出这段明文的 Hill

2

密文。其中加密矩阵为

将明文字母分组:

HD SD SX XX

最后的一个字母 X 为哑字母,无实际意义。

解:

,

8 19 19 24

, ,

4 4 24 24

       

       

       

A B C D E F G H I J K L M 1 2 3 4 5 6 7 8 9 10 11 12 13

N O P Q R S T U V W X Y Z

14 15 16 17 18 19 20 21 22 23 24 25 0

查表得每组字母的表值,得到 4 个二维列向量:

1 2 0 3

A  

=  

 

(9)

将上述 4 个二维向量左乘密钥矩阵 A 得:

16 27 67 72

, , ,

12 12 72 72

       

       

       

模 26 运算,将所有的数都化为 0 到 25 之间的整数:

16 27

(mod 26) , (mod 26)

12 12

67 72

(mod 26)

16 1

12 12

15 20

20 , (mod 26) . 20

72 72

   

   

   

   

 

   

= =

   

   

   

= =

   

   

     

Hill2 加密举例

(10)

反查字母表值得每个向量对应的字母组为:

HDSDSXX PLALOTTT

Hill

2 加密

Hill2 加密举例

A B C D E F G H I J K L M 1 2 3 4 5 6 7 8 9 10 11 12 13

N O P Q R S T U V W X Y Z

14 15 16 17 18 19 20 21 22 23 24 25 0

16 1 15 20

, , ,

12 12 20 20

       

       

       

PL AL OT TT

(11)

问题: 怎样解密?

明文字母 查表值

分组 一组向量

加 密 矩 阵 左

一组新的向量 密文 反查表值

Hill2 加密过程

模运算

(12)

Hill 2 密码解密

12

(13)

先查出密文字母 “ PL AL OT TT ” 所对应的向量:

16 1 15 20

, , ,

12 12 20 20

       

       

       

 解密:加密的逆过程,将加密过程逆转回去即可

Hill2 解密过程

上面的向量是由 经过 模 26 运算 得来的,现在的问题是怎样逆转回去?

16 27 67 72

, , ,

12 12 72 72

       

       

       

例:

怎么得到密文 “

PLALOTTT

” 的原文

(14)

模 m 可逆

{0,1, 2, ..., 1}

Z

m

= m − 记

定义 1:设

A

为定义在集合

Z

m 上的

n

阶方阵,若存在一个定

义在

Z

m 上的方阵

B

,使得

则称

A

模 m 可逆

B

A

模 m 逆矩阵,记为

(mod ) AB = BA = E m

1

(mod )

B = A

m

定义 2:

aZ

m ,若存在

bZ

m 使得

ab=1 (mod m)

,则

b

a

模 m 倒数 或乘法逆,记作

b = a

-1

(mod m)

注:

a , b

都是

Z

m 中的数

(15)

命题:定义在集合 Z

m

上的 n 阶方阵 Am 可逆的充要条 件是:m 和 det(A) 无公共素数因子,即 mdet(A) 互素。

Hill

2

密码的加密矩阵必须满足上述条件。

m=26 m 的素数因子只有 213

 定义在 Z

26

上的方阵 A 模 26 可逆 的充要条件是:

模 m 可逆

 问题: 是否 Z

m

中所有的数都存在模 m 倒数

a 存在唯一的模 m 倒数 am 无公共素数因子

(16)

Z

26

中具有模 26 倒数的整数及其模 26 倒数表

a 1 3 5 7 9 11 15 17 19 21 23 25 a

-1

1 9 21 15 3 19 7 23 11 5 17 25

模 26 可逆

 思考: 如何用 Matlab 编程来找出所有模 m 倒数

的整数及其模 m 倒数?(穷举法)

(17)

,

16 1 15 20

, ,

12 12 20 20

       

       

       

在模运算下解方程组: A α = β

1

(mo d 2 6 )

A β

α =

,

8 19 19 24

, ,

4 4 24 24

       

       

       

Hill2 解密过程

(mod 26)

问题: 如何计算 A

1

(mo d 2 6 )

(18)

模 m 逆矩阵的计算

1

1

| |

A A

A

=

 设 B=k A*A模 26 逆 ,其中 k 为待定系数

| |

BA = ⋅ k A E(mo d 26 )

BA = E k| A | 1(mo = d 2 6 )

| |

1

(mod 26 ) k = A

A*A 的伴随矩阵

本计算方法可推广到求矩阵 A模 m 逆矩阵

(19)

Hill2 解密过程

 设加密矩阵 1 2 0 3

A  

=  

  3 2

| | 3,

0 1 A A

 − 

= =  

 

1 1

3 2

(mod 26 ) (m od 26 ) (mod 26 ) 0 1

3

A

 − 

⋅  

 

 

=  

 

1 8 0 9

=  

 

 

1

(mo d 2 6 ) B = A

3 2

9 (mod )

01 26

 

=  

 

(20)

,

16 112 1 97

12 108 , 12 108

15 175 20 180

20 180 , 20 180

B B

B B

       

= =

       

       

       

= =

       

       

用 B 左乘密文对应的向量得:

模 26 运算后得:

,

8 19 19 24

, ,

4 4 24 24

       

       

       

 查表后得明文分别为: HD SD SX XX

,

16 1 15 20

, ,

12 12 20 20

       

       

       

8 , 19 19 24

, ,

4 4 24 24

       

       

       

(21)

Hill2 加密过程总结

① 通讯双方确定加密矩阵 ( 密钥) 和字母的 表值对应表

② 将明文字母分组,通过查表列出每组字母对应的向量 α

令 β = A α mod(m) ,由 β 的分量反查字母表值表,

得到相应的密文字母

若明文只含奇数个字母,则补充一个哑元

(22)

Hill2 解密过程总结

① 将密文字母分组,通过查表列出每组字母对应的向量 β

求出加密矩阵 A 的 模 m 逆矩阵 B

令 α = B∗ β mod(m) ,由 α 的分量反查字母表值表,

得到相应的明文字母

(23)

甲方收到乙方(己方)的一个密文信息,内容为:

Hill2 解密举例

WKVACPEAOCIXGWIZUROQWAB ALOHDKCEAFCLWWCVLEMIMCC

按照甲方与乙方的约定,他们之间采用

Hill

2密码,密钥 为 ,字母表值见下表,问这段密文的原文 是什么?

1 2 0 3 A

 

=  

 

A B C D E F G H I J K L M

1 2 3 4 5 6 7 8 9 10 11 12 13

N O P Q R S T U V W X Y Z

14 15 16 17 18 19 20 21 22 23 24 25 0

(24)

Hill2 解密举例

① 将密文字母分组,通过查表列出每组字母对应的向量

求出加密矩阵 A 的 模 26 逆矩阵

B 左乘每组密文字母组成的向量,然后再反查字母 表值表,得到相应的明文字母

1 8 0 9 B

= 

 

 

(25)

分组

密文 密文

表值 明文

表值 分组 明文

1 W

K

23 11

7 21

G U

2 V

A

22 1

4 9

D I

3 C

P

3 16

1 14

A N

4 E

A

5 1

13 9

M I

5 O

C

15 3

13 1

M A

6 I

X

9 24

19 8

S H

分组

密文 密文

表值 明文

表值 分组 明文

7 G

W

7 23

9 25

I Y

8 I

Z

9 0

9 0

I Z

9 U

R

21 18

9 6

I F

10 O

Q

15 17

21 23

U W

11 W

A

23 1

5 9

E I

12 B

A

2 1

10 9

J I

Hill2 解密举例

(26)

分组 密文

密文 表值

明文 表值

分组 明文

13 L

O

12 15

2 5

B E

14 H

D

8 4

14 10

N J

15 K

C

11 3

9 1

I A

16 E

A

5 1

13 9

M I

17 F

C

6 3

4 1

D A

18 L

W

12 23

14 25

N Y

分组 密文

密文 表值

明文 表值

分组 明文

19 W

C

23 3

21 1

U A

20 V

L

22 12

14 4

N D

21 E

M

5 13

5 13

E M 22 I

M

9 13

9 13

I M

23 C

C

3 3

1 1

A A

Hill2 解密举例

(27)

即:“古典密码是以字符为基本加密单元的密码”

GU DIAN MI MA SHI YI ZI FU WEI JI BEN JIA MI DAN YUAN DE MI MA A

WKVACPEAOCIXGWIZUROQWAB ALOHDKCEAFCLWWCVLEMIMCC

原文

Hill2 解密举例

密文

(28)

Hill 2 密码破译

28

(29)

A B C D E F G H I J K L M 1 2 3 4 5 6 7 8 9 10 11 12 13

N O P Q R S T U V W X Y Z

经分析该密文是用 Hill2密码 加密,且密文 ( U, C ) 和 ( R, S ) 分别对应明 文 ( T, A ) 和 ( C, O ),问能否破译这段密文?

Hill2 密码破译举例

MOFAXJEABAUCRSXJLUYHQATCZHWBCSCP 我方截获一段密文

猜测密文是由26个字母组成,即 m=26,

经破译部门通过大量的统计分析和语言分析确定表值

 破译这段密文的关键是找到“密钥”和字母对应的表值

(30)

,

U R

C S

T C

A O

   

   

   

   

→   →  

   

21 18

3 19

20 3

1 , 15

   

   

   

  

  

 

= A

  

密文 ( U, C ) 和 ( R, S ) 分别对应明文 ( T, A ) 和 ( C, O )

Hill2 密码破译举例

查 字 母 表 值

= A

21 18 3

20 3

19 A 1 15

  =  

   

P   CP = AC

(31)

21 18 20 3

3 19 , 1 15

P   C  

=   =  

   

P = AC

A P

1

= C

| P |

=

7 (m od 26)

| C |

=

1 1 (mo d 2 ) 6

P、C 模26可逆

1 1

A

= ⋅ C P

(

1

)

1

(mod 26 ) (mo d 26 ) (m od 2 6 ) A

= CP

Hill2 密码破译举例

注:这里的运 算都是在模运 算意义下进行

(32)

HE WI LL VI SI TA CO LL EG ET HI SA FT ER NO ON

 得到加密矩阵的 模26逆矩阵 后,根据前面的解密方法即 可得密文的原文

Hill2 密码破译举例

參考文獻

相關文件

答:國家機密保護法(以下簡稱本法)第 26 條第 1 項各 款所定人員出境,應於出境 20 日前檢具出境行程等 相關書面資料,為本法施行細則第 32

Larsen

在這一節裡會提到,即使沒辦法解得實際的解函數,我們也 可以利用方程式藉由圖形(方向場)或者數值上的計算(歐拉法) 來得到逼近的解。..

但是 T, A, O, I 出現的次數幾乎不相上下。 要是把每一種組合都試一遍, 直到得出一個 意思 來, 那會是一項沒完沒了的工作。 所以, 只好等新材料來了再說。

使用者甲與使用者乙約定藉由非對稱加密(asymmetric encryption)進行溝通,假設使用者甲先以

若我們能知道有 k 個 row 的矩陣一 定能利用 elementary row operations 化為 echelon form 這個事實且利用這個事實證得有 k + 1 個 row 的矩陣一定能利用 elementary row

△ABC 為上底面、△DEF 為下底面,且上底面△ABC 與下底面△DEF 互相平行、△ABC △DEF;矩形 ADEB、矩形 BEFC 與 矩形 CFDA 皆為此三角柱的側面,且均同時與△ABC、△DEF

啄木鳥醫生看看四周,馬上明白了小樹哭的原因。小樹又