68
7.1 信信信信信信 7.2 信信信信信信 7.3 信信信信信信信信 7.3.1 信信信 信信信信信 () 7.3.2 信信信信 7.3.3 DES 信信 7.4 信信信信信信 7.4.1 信信信信 信信信信信信信信信信 7.4.2 RSA 信信信7.5 信信信信信信 信 7 信 信信信信信信信信信

第 7 章 信息安全与信息加密

Embed Size (px)

DESCRIPTION

第 7 章 信息安全与信息加密. 7.1 信息安全含义 7.2 信息加密概述 7.3 对称密钥密码算法 - 7.3.1 流密码(序列密码) - 7.3.2 分组密码 - 7.3.3 DES 算法 7.4 公钥密码算法 - 7.4.1 公钥密码体制及其设计的基本原理 - 7.4.2 RSA 加密系统 7.5 数字签名技术. 第 7 章 信息安全与信息加密. 7.6 识别协议 - 7.6.1 识别协议概述 - 7.6.2 Feige-Fiat-Shamir 识别协议 - 7.6.3 改进的 Feige-Fiat-Shamir 识别协议 - PowerPoint PPT Presentation

Citation preview

7.1 信息安全含义 7.2 信息加密概述 7.3 对称密钥密码算法

- 7.3.1 流密码(序列密码) - 7.3.2 分组密码 - 7.3.3 DES 算法

7.4 公钥密码算法 - 7.4.1 公钥密码体制及其设计的基本原理 - 7.4.2 RSA 加密系统

7.5 数字签名技术

第 7章 信息安全与信息加密

7.6 识别协议 - 7.6.1 识别协议概述 - 7.6.2 Feige-Fiat-Shamir 识别协议 - 7.6.3 改进的 Feige-Fiat-Shamir 识别协议

7.7 密钥管理 - 7.7.1 密钥管理的意义 - 7.7.2 密钥分类与产生 - 7.7.3 密钥分配 - 7.7.4 密钥保护和秘密共享

7.8 PGP 密钥管理技术

第 7章 信息安全与信息加密

( 1)掌握信息安全及信息加密的含义;( 2)理解对称密钥密码算法和公钥密码算法的基本 特点和基本原理;( 3)理解和掌握 DSE 和 RSA 加密算法;( 4)理解和掌握数字签名技术;( 5)了解密钥管理及其技术;( 6)了解和掌握 PGP 程序的相关技术及应用。

[ 学习目标 ]

信息安全一般是指信息在通信、存贮或处理过程中是否得到妥善的、完好无损的保护,表现在信息不能被窃取、丢失、修改、错误投递等,并可以追溯发信人。信息安全分为“信息体安全”和“信息智安全”

(1) 信息体安全是指信息本身在网络域及其界面具有完整、真实、不可盗用、不可错用以及可溯源的属性。

(2) 信息智安全是指信息内涵,即信息体所携带的“智能或知识”与网络智安全和社会意识形态的相容性。

7.1 信息安全含义

7.2.1 密码技术简史 古希腊 古埃及、巴比伦和美索不达米亚 罗马 帝国时代 德国 现在。7.2.2 密码的基本概念

安全问题: 一是数据的保密性,即防止非法地获悉数据; 二是数据的完整性,即防止非法地修改数据。

现代密码学 加密、明文、明文空间、密文、密文空间、解密、 密钥、密码体制。

7.2 信息加密

7.2.2 密码的基本概念密码系统的两个基本单元是算法和密钥。

算法是相对稳定的,视为常量。密钥则是不固定的,视为变量。密钥安全性是系统安全的关键。

简单加密和解密过程如下图:

7.2 信息加密

加密 解密原来的明文

接收方明文

发送方

第三方密文

7.2.2 密码的基本概念密码通信通常会受到未授权者或非法入侵者的攻击。分为被动攻击和主动攻击 :

被动攻击是指未授权者通过各种可能的手段获取密文,并通过各种分析手段推断出明文的过程,称为破译。主动攻击是指非法入侵者通过各种手段进入密码通信系统,并通过可能的方法删改、伪造信息,达到破坏密码通信系统的目的。

7.2 信息加密

7.2.2 密码的基本概念破译或攻击密码的方法:穷举法和分析法。

穷举法是指用各种可能的密钥去试译密文,直到得到有意义的明文的方法分析法是指通过数学关系式或统计规律找出明文或与明文相关的有用信息的破译方法。

密码的可破与不可破。– 如果一个密码在规定的时间内,通过密文能确定明

文或密钥,或通过一定量的明文与密文的对应关系能确定密钥,则称这个密码是可破的;否则,称密码是不可破的。

7.2 信息加密

7.2.2 密码的基本概念一个密码通信系统可用下图表示:

7.2 信息加密

非法入侵者

明文mm

加密器:密文c=Ek1(m) 解密器: m=Dk2(c) 明文m

加密密钥源K1 密码破译者 解密密钥源K2

c1c

k1k2

c

m

图 7.2 密码通信系统框图

7.2.3 密码技术的分类1 .按应用技术或历史发展阶段划分 ( 1 )手工密码 ( 2 )机械密码 ( 3 )电子机内乱密码 ( 4 )计算机密码 2 .按保密程度划分 ( 1 )理论上保密的密码 ( 2 )实际上保密的密码 ( 3 )不保密的密码 3 .按密钥方式划分 ( 1 )对称式密码 ( 2 )非对称式密码 4 .按明文形态分 ( 1 )模拟型密码 ( 2 )数字型密码

7.2 信息加密

7.2.3 密码技术的分类三种基本原理:移位、代替和置换。 与信息管理密切相关的安全理论 :

(1)分组密码算法 将明文按一定的位长分组,输出也是固定长度的密文。(2)公开密钥密码算法 加密密钥和解密密钥相分离,将加密密钥和算法公诸于众, 只保密解密密钥。(3)非密码的安全理论和技术 包括信息隐形、量子密码和基于生物特征的识别理论与技术。

7.2 信息加密

7.2.4 密码系统的设计原则(1) 易操作原则。对合法的通信双方来说加密和解密变 换是容易的。 (2) 不可破原则。指该密码体制在理论上或实际上是不 可破解的。 (3) 整体安全原则。部分信息丢失不会影响整个系统的 安全性。(4) 柯克霍夫斯原则。密码系统中的算法即使为密码分 析员所知,也应该无助于用来推导明文或密钥。(5) 与计算机和通信系统匹配原则。要求密码系统不是 孤立存在的,可以在计算机或通信系统中使用。

7.2 信息加密

7.2.5 传统的加密技术(1) 代码加密 使用通信双方预先设定的一组代码。 (2) 替换加密 明文中的每个字母或每组字母被替换成另一个或一组字母。(3) 变位加密 将字符重新排序。(4) 一次一密乱码本加密 使用随机密钥字母集。 特点:①一次性;②随机性;③长度相等;④同步性; ⑤不可破译性。

7.2 信息加密

根据密钥的特点,密码体制分为 :

( 1)对称密钥密码体制 加密密钥与解密密钥是相同的或从一个容易推出另一个。( 2)公钥密码体制 加密密钥与解密密钥是不同的或从一个很难推出另一个。根据加密的不同方式,对称密钥密码可分为:

( 1)流密码 将明文按字符一个一个地加密。( 2)分组密码 将明文分成若干个组,每组含多个字符,一组一组地加密。

7.3 对称密钥密码算法

7.3.1 流密码(序列密码)1 .流密码简述

在流密码中,将明文 m写成连续的符号,利用密钥流中的第 i 个元素 ki 对应明文中的第 i 个元素 mi 进行加密,若加密变换为 E ,则加密后的密文为:

设与加密变换 E 对应的解密变换为 D ,其中 D满足:

则通过解密运算可译得明文为 :

7.3 对称密钥密码算法

)()()()( 21 21 ii kkkkk mEmEmEmEc

,2,1,))(( immED iikk ii

2121 ))(())(()(2211

mmmEDmEDcDm kkkkk

7.3.1 流密码(序列密码)1 .流密码简述

流密码通信框图如图 7.3 所示。

7.3 对称密钥密码算法

加密算法 E密文 ci=Ek(mi)

解密算法 D明文 mi=Dk(ci)明文 mi

密钥 ki 密钥 ki

图 7.3 流密码通信模式框图

例 7.1 设明文、密钥、密文都是 F2上的二元数字序列,明文 m=m1m2··· ,密钥为 k=k1k2··· ,若加密变换与解密变换都是 F2 中的模 2 加法,试写出加密过程与解密过程。 [ 解 ] 经加密变换得密文: C = Ek (m) = Ek1

(m1)Ek2(m2)··· = (k1+m1) (k2+m2)···

经解密变换得: Dk (C) = Dk ((k1+m1)(k2+m2)···) = (k1+k1+m1)(k2+k2+m2)···

由于 ki∈F2 ,则 ki+ki=0 , i=1,2,··· ,故 Dk (C)= m1m2··· = m 。 密文 C 可由明文 m 与密钥 k 进行模 2加获得。因此要用该密码系统通信就要求每发送一条消息都要产生一个新的密钥并在一个安全的信道上传送,习惯上人们称这种通信系统为“一次一密系统”。

7.3 对称密钥密码算法

7.3.1 流密码(序列密码)2 .密钥流生成器构造密钥流生成器是流密码最核心的内容。由于大部分密码是基于世界上公开的数学难题,所以造成大多数密钥流生成器的不安全性。在流密码中,如果密钥流经过 d 个符号之后重复,则称该流密码是周期的,否则称之为非周期的。密钥流元素 kj 的产生由第 j 时刻流密码的内部状态 sj 和实际密钥 k 所决定,记为 kj = f (k, sj) 。加密变换 Ekj

与解密变换 Dkj都是时变的,其时变性由加密器或

解密器中的记忆文件来保证。

7.3 对称密钥密码算法

7.3.1 流密码(序列密码)2 .密钥流生成器

加密器中存储器的状态 s 随时间变化而变化,这种变化可用状态转移函数 fs 表示。如果 fs 与输入的明文无关,则密钥流 kj = f (k , sj) 与明文无关, j=1 , 2 ,…,从而 j 时刻输出的密文 cj = Ekj

(mj) 与 j

时刻之前的明文也无关,称此种流密码为同步流密码。在同步流密码中,只要发送端和接收端有相同的实际密钥和内部状态,就能产生相同的密钥流,此时称发送端和接收端的密钥生成器是同步的。一旦不同步,解密工作立即失败。如果状态转移函数 fs 与输入的明文符号有关,则称该流密码为自同步流密码。

7.3 对称密钥密码算法

7.3.1 流密码(序列密码)2 .密钥流生成器

目前应用最广泛的流密码是同步流密码。一个同步流密码是否具有很高的密码强度主要取决于密钥流生成器的设计。 密钥流生成器的目的是由一个短的随机密钥 (也称实际密钥或种子密钥 ) k 生成一个长的密钥流,用这个长的密钥流对明文加密或对密文解密,从而使一个短的密钥可用来加密更长的明文或解密更长的密文的目的。

7.3 对称密钥密码算法

7.3.1 流密码(序列密码)3 .收缩密钥流生成器

n 级移位寄存器 (见下图)

开始时,设第 1 级内容是 an-1 ,第 2 级内容是 an-2 , ··· , 第 n 级内容是 a0 ,则称这个寄存器的初始状态是 (a0, a1, ··· , an-1) 。

当加上一个脉冲时,每个寄存器的内容移给下一级,第 n 级内容输出,同时将各级内容送给运算器 f (x0, x1, ··· , xn-1) ,并将运算器的结果 an= f (a0 , a1 , … , an-1) 反馈到第一级去。这样这个移位寄存器的状态就是 (a1 , a2 , ··· , an) ,而输出是 a0 。

不断地加脉冲,上述 n 级移位寄存器的输出就是一个二元 ( 或 q 元 ) 序列: a0 , a1, a2 , ···

7.3 对称密钥密码算法

寄存器 1

寄存器 2

寄存器 3

寄存器 n

f (x0, x1, ··· , xn-1)

···

7.3.1 流密码(序列密码)3 .收缩密钥流生成器 移位寄存器产生的序列都是周期序列,周期都不大于 2n 。例 7.2 右图是一个 4级线性移位寄存器。给定初状态 (0001) , 求该移位寄存器产生的周期序列。 [ 解 ] 易见 f (x0 , x1 , x2 , x3) = x0 + x1 , 因此对 k≥4 有 ak = ak-3+ ak-4

从而该 4级移位寄存器产生的序列是周期 15 的序列: 000100110101111… 由例 7.2 知,移位寄存器 ( 简记 SR , Shifted Register) 可由短

的序列生成具有一定规律的长序列。这种序列便可以作为密钥流序列,但抗攻击能力较差。

7.3 对称密钥密码算法

+

7.3.1 流密码(序列密码)3 .收缩密钥流生成器

收缩密钥流生成器(见右图) 通常的密钥流生成器都是由若干个移位寄存器并联,并且与特殊的电子电路组合而成。

上图为由两个移位寄存器构成的收缩密钥流生成器,通过 SR1 的输出选择 SR2 的输出来生成密钥流,其工作模式如下:

输入参数:两个移位寄存器的级数及反馈函数 密钥:两个移位寄存器的初始状态 (1) 移位 SR1 并产生 yi

(1) ;同时移位 SR2 并产生 yi(2) ;

(2) 如果 yi(1) =1 ,则输出密钥元素 ki = yi

(2) ; 如果 yi

(1) =0 ,则删去 yi(2) , i =1, 2, … ,不输出。

由此收缩生成器产生的密钥流为 {ki | i≥1} 。

7.3 对称密钥密码算法

SR 1

SR 2

yi (1)

输出 kiyi (2)

7.3.2 分组密码1. 分组密码体系的概念

分组密码将明文按一定的位长分组,输出是固定长度的密文。 分组密码的优点是:密钥可以在一定时间内固定,不必每次变换,因此给密钥配发带来了方便。

2. 分组密码通信模式(见图 7.7 )

7.3 对称密钥密码算法

加密算法 解密算法明文 x=(x1, x2, ···) 密文 y=(y1, y2, ···, yn ) 明文 x=(x1, x2, ···)

密钥 k=(k1, k2, ···) 密钥 k=(k1, k2, ···)

图 7.7 分组密码通信模式图

7.3.2 分组密码2. 分组密码通信模式 分组密码与流密码的不同之处在于输出的每一位数

字不是只与相应时刻输入的明文数字有关,而是与一组长为 m 的明文数字有关。

在分组密码通信中,通常明文与密文长度相等,称该长度为分组长度。

7.3 对称密钥密码算法

7.3.3 DES 算法DES (Data Encryption Standard) 是由 IBM 公司在 20世纪 70年代研制的,经过政府的加密标准筛选后,于 1976年 11月被美国政府采用,随后被美国国家标准局和美国国家标准协会 (ANSI)所认可。 DES 算法具有以下特点:

( 1 ) DES 算法是分组加密算法:以 64位为分组。 ( 2 ) DES 算法是对称算法:加密和解密用同一密钥。 ( 3 ) DES 算法的有效密钥长度为 56位。 ( 4 )换位和置换。 ( 5 )易于实现。

7.3 对称密钥密码算法

7.3.3 DES 算法1. DES 的基本原理

DES采用传统的换位和置换的方法进行加密,在 56bit 密钥的控制下,将 64bit 明文块变换为 64bit 密文块,加密过程包括 16轮的加密迭代,每轮都采用一种乘积密码方式 (代替和移位 ).总体过程如下:在初始置换 IP后,明文组被分为左右两部分,每部分 32位,以 L0 , R0 表示;经过 16轮运算,将数据和密钥结合; 16轮后,左、右两部分连接在一起;经过末置换(初始置换的逆置换 ) ,算法完成。 ( 见图 7.8)

DES 加密算法又可以简单地用下式表示: Ek (m) = IP -1·T16·T15 … T1·IP (m)

7.3 对称密钥密码算法

64bit明文x1, x2,…,x64

置换

L(0)=l1(0)...l32(0)

L(1)=l1(1)...l32(1)

L(15)=l1(15)...l32(15)

L(16)=l1(16)...l32(16)

R(0)=r1(0)...r32(0)

R(1)=r1(1)...r32(1)

g

模二加

K1

.

.

.

.

.

.R(15)=r1(15)...r32(15)

g

模二加

K16

R(16)=r1(16)...r32(16)

逆置换

输出64bi t密文 图 7.8 DES 加密算法原理

7.3.3 DES 算法2. 初始变换和逆初始变换初始变换是一个位变换,是将顺序排列的 64bit根据表 7.1 进行处理,即将顺序排列的 64bit 序列 t1t2t3···t64 变换成 t58t50···t15t7 。逆初始变换用表 7.2 进行,它是表 7.1 的逆过程。

58 50 42 34 26 18 10 2

60 52 44 36 28 20 12 4

62 54 46 38 30 22 14 6

64 56 48 40 32 24 16 8

57 49 41 33 25 17 9 1

59 51 43 35 27 19 11 3

61 53 45 37 29 21 13 5

63 55 47 39 31 23 15 7

40 8 48 16 56 24 64 32

39 7 47 15 55 23 63 31

38 6 46 14 54 22 62 30

37 5 45 13 53 21 61 29

36 4 44 12 52 20 60 28

35 3 43 11 51 19 59 27

34 2 42 10 50 18 58 26

33 1 41 9 49 17 57 25

7.3 对称密钥密码算法

表 7.1 初始变换表 表 7.2 逆初始变换表

7.3.3 DES 算法3. g 函数的设计函数

g(Ri-1 , Ki) 的结构如图 7.9 所示。首先用位选择表 7.3 中的 E 表将 Ri-1扩展成 48位二进制块 E(Ri-1) ,即

Ri-1 = r1 r2···r31 r32 , E(Ri) = r32 r1···r31 r32 r1

然后与 Ki 进行异或运算,接着将所得的 48位数分成 8 个 6位数,记为 Bi (i=1, 2,···, 8) ,此处,每个 6位子块都是选择函数 S 的输入(即后面介绍的 S盒),其输出是一个 4位二进制块 S(B) 。

E(Ri-1) Ki =B1 B2···B8

把这些子块合成 32 位二进制块之后,用换位表 P ( 表 7.4) 将它变换成 P(S1(B1)…S8(B8)) ,这就是函数 g(Ri-1, Ki) 的输出。

7.3 对称密钥密码算法

32 1 2 3 4 5

4 5 6 7 8 9

8 9 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 1

表 7.3 位选择表 E 表

表 7.4 换位表 P 表

16 7 20 21

29 12 28 17

1 15 23 26

5 18 31 10

2 8 24 14

32 27 3 9

19 13 30 6

22 11 4 25

图 7.9 函数 g(Ri, Ki) 的结构

A(32 位 ) 加密时 A=Ri-1

解密时 A=Li

选择运算 E

48 位结果 Ki

选择函数 (S1~S8 )

32 位结果

置换运算 P

g(A, Ki )32 位

7.3.3 DES 算法4. 选择函数 S 盒的算法每个 Sj 将一个 6位块 Bj =b1b2b3b4b5b6 转换为一个 4位块,根据表 7.5选择函数组 S1,···, S8 。与 b1b6 相对应的整数确定表中的列号,用与 b2b3b4b5 相对应的整数确定表中的行号,则 Sj(Bj) 的值就是位于该行和该列的数的 4位二进制表示形式。

7.3 对称密钥密码算法

S1 S2 S3 S4 S5 S6 S7 S8

D 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 30 14 0 4 15 15 13 0 13 10 13 13 1 7 13 10 3 2 14 4 11 12 10 9 4 4 13 1 6 13 1 7 21 4 15 1 12 1 13 14 8 0 7 6 10 13 8 6 15 12 11 2 8 1 15 13 3 11 0 4 11 2 15 11 12 13 7 14 8 8 4 7 10 9 0 4 13 14 11 9 0 4 2 1 12 10 4 15 2 2 11 11 13 8 13 4 143 1 4 8 2 14 7 11 1 14 9 9 0 3 5 0 6 1 12 11 7 15 2 5 12 14 7 13 8 4 8 1 74 2 14 13 4 6 15 10 3 6 3 8 6 0 6 12 10 7 4 10 1 9 7 2 9 15 4 12 1 6 10 9 45 15 2 6 9 11 2 4 15 3 4 15 9 6 15 11 1 10 7 13 14 2 12 8 5 0 9 3 4 15 3 12 106 11 13 2 1 3 8 13 4 15 6 3 8 9 0 7 13 11 13 7 2 6 9 12 15 8 1 7 10 11 7 14 87 8 1 11 7 4 14 1 2 5 10 0 7 10 3 13 8 6 1 8 13 8 5 3 10 13 10 14 7 1 4 2 138 3 10 15 5 9 12 5 11 1 2 11 4 1 4 15 9 8 5 15 6 0 6 7 11 3 14 10 9 10 12 0 159 10 6 12 11 7 0 8 6 13 8 1 15 2 7 1 4 5 0 9 15 13 1 0 14 12 3 15 5 9 5 6 210 6 12 9 3 2 1 12 7 12 5 2 14 8 2 3 5 3 15 12 0 3 13 4 1 9 5 6 0 3 6 10 911 12 11 7 14 13 10 6 12 7 14 12 3 5 12 14 11 15 10 5 9 4 14 10 7 7 12 8 15 14 11 13 012 5 9 3 10 12 6 9 0 11 12 5 11 11 1 5 12 13 3 6 10 14 0 1 6 5 2 0 14 5 0 15 313 9 5 10 0 0 9 3 5 4 11 10 5 12 10 2 7 0 9 3 4 7 11 13 0 10 15 5 2 0 14 3 514 0 3 5 6 5 11 2 14 2 15 14 2 4 14 8 2 14 8 0 5 5 3 11 8 6 8 9 3 12 9 5 615 7 8 0 13 10 5 15 9 8 1 7 12 15 9 4 14 9 6 14 3 11 8 6 13 1 6 2 12 7 2 8 11

表 7.5 选择函数 S 盒表

例 7.3 S盒应用实例:设 B1=101100 , 则 S1(B1) 的值位于列号为 2 的列和行号为 6 的行,即等于 2 , 因此 S1(B1) 的输出是 0010 。

7.3.3 DES 算法5. 子密钥 Ki 的产生

是由初始密钥推导出子密钥 Ki 的过程。初始密钥 K 是一个 64位二进制块,其中 8位是奇偶校验位,分别位于第8,16, 32,40,48,64位。置换选择函数 PC-1将这些奇偶校验位去掉,并把剩下的 56位进行换

7.3 对称密钥密码算法

密钥(64位)

57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 2719 11 3 60 52 44 36

63 55 47 39 31 23 15 7 62 54 46 38 30 2214 6 61 53 45 37 29 21 13 5 28 20 12 4

C0(28位) D0(28位)

位,换位后的结果被分成两半,如图 7.10 所示。

7.3.3 DES 算法5. 子密钥 Ki 的产生令 Ci 和 Di 分别表示推导 Ki 时所用的 C 和 D 的值,有如下的变换公式: Ci =LSi (Ci-1) , Di =LSi (Di-1)

此处是 LSi 循环左移位变换,其中 LS1 、 LS2 、 LS9

和 LS16 是循环左移 1位变换,其余的 LSi 是循环左移2位变换。图 7.10 的 C0 和 D0 是 C 和 D 的初始值,显然,

C0 =K57 K49···K44 K36 , D0 =K63 K55 ···K12 K4

7.3 对称密钥密码算法

7.3.3 DES 算法5. 子密钥 Ki 的产生

按图 7.11置换选择函数 PC-2 ,最后通过置换选择函数 PC-2 ,得出:

Ki =PC-2(Ci , Di)

7.3 对称密钥密码算法

图 7.11 置换选择函数 PC-2

Ci(28位 ) Di(28位 )

14 17 11 24 1 5 3 28 15 6 21 1023 19 12 4 26 816 7 27 20 13 241 52 31 37 47 5530 40 51 45 33 4844 49 39 56 34 5346 42 50 36 29 32

Ki (48位 )

7.3.3 DES 算法6. DES 解密算法

算法: N(Ek) = IP -1·T1·T2 … T16·IP [Ek (m)]

DES 的缺点主要有: ① DES 的 56位的密钥长度可能太小; ② DES 的迭代次数太大; ③ S盒 (即代替函数 S)中可能有不安全因素; ④ DES 的一些关键部分应保密 (如 S盒设计 )。

DES 的安全性完全依赖于所用的密钥。

7.3 对称密钥密码算法

7.4.1 公钥密码体制及其设计的基本原理1. 设计公钥密码体制的基本原理

在公钥密码中,解密密钥和加密密钥不同,从一个难于推出另一个,解密和加密是可分离的,加密密钥是可以公开的。 核心问题是找一个陷门单向函数。

7.4 公钥密码算法

7.4.1 公钥密码体制及其设计的基本原理1. 设计公钥密码体制的基本原理

如果函数 f(x) 满足以下条件: (1) 对 f(x) 的定义域中的任意 x ,都容易计算函数值 f(x);

(2) 对于 f(x) 的值域中的几乎所有的 y ,即使已知 f 要计算

f -1(y)也是不可行的; 则称 f(x) 是单向函数 (One-way Function) 。若给定某些辅助信息时又容易计算单向函数 f 的逆 f -1 ,则称 f(x) 是一个陷门单向函数。这一辅助信息就是秘密的解密密钥。这就是设计公钥密码体制的基本原理。

7.4 公钥密码算法

7.4.1 公钥密码体制及其设计的基本原理2. 公钥密码体制

公钥密码体制称为双密钥密码体制或非对称密码体制 .

将序列密码和分组密码等称为单密钥密码体制或对称密钥密码体制。单钥加密中使用的密钥称为秘密密钥 (Secret Key) 。公开密钥加密中使用的两个密钥分别称为公开密钥 (Public Key) 和私有密钥 (Private Key) 。 公开密钥的应用 :

(1)加密和解密; (2)数字签名; (3)密钥交换。

7.4 公钥密码算法

7.4.1 公钥密码体制及其设计的基本原理3. 公开密钥密码系统原理 公开密钥算法用一个密钥进行加密,而用另一个不同但是相关的密钥进行解密:

① 仅仅知道密码算法和加密密钥而要确定解密密 钥,在计算上是不可能的; ② 两个相关密钥中任何一个都可以用作加密而让另 外一个解密。4. 公钥密码体制的安全性(计算安全性) 是由公钥密码算法中求陷门单向函数的逆的复杂性 决定的。

7.4 公钥密码算法

7.4.2 RSA 加密系统1. RSA 算法简单描述实现步骤:

① B寻找出两个大素数 p 和 q 。 ② B 计算出 n = pq 和 (n) = (p-1)(q-1) 。 ③ B选择一个随机数 b (0<b<(n)) ,满足 (b, (n)) =1

( 即 b 和 (n) 互素 ) 。 ④ B使用 Euclidean (欧几里得 ) 算法计算 a = b-1(mod (n)) 。 ⑤ B 在目录中公开 n 和 b作为他的公开密钥,保密 p 、 q 和

a 。 加密时,对每一明文 m 计算密文: c = mb (mod n)

解密时,对每一密文 c 计算明文: m = c a (mod n)

7.4 公钥密码算法

7.4.2 RSA 加密系统RSA算法主要用于数据加密和数字签名。 RSA算法用于数字签名时,公钥和私钥的角色可变换,即将消息用 a 加密签名,用 b 验证签名。

2 . RSA 算法实例(见例 7.4 )

7.4 公钥密码算法

例 7. 4 假定用户 B选择两个素数 p =3 , q =11 ,则 n=pq=33 , (n) =(3-1)(11-1) =20 。取 b =3 ,显然 (b, (n)) = (3, 20) =1 , 再由 Euclidean 算法,对 a∈Z33={0,1,…,32} , a =b-1(mod20),

在本例中求出 a =7 或 a =27 。一般地, a 的值不是唯一的,这里选 a =7 ,即 B 公开 n =33 和 b =3 ,保密 p =3 , q=11 和 a =7 。

现在用户 A想把明文 m =19 发送给 B 。 A 加密明文 m =19 ,得密文: c =Ek (m) ≡ m

b (mod n) ≡193(mod 33) =28

A 在公开信道上将加密后的密文 c =28 发送给 B ,当 B收到密文 c

=28 时,解密可得: m=c

a (mod n) = 287

(mod 33) = 19 从而 B 得到 A 发送的明文 m =19 。

7.4 公钥密码算法

7.4.2 RSA 加密系统RSA算法的基本原理可归纳如下:

设 p,q 是两个不同的奇素数 ,n= pq,则 (n)=(p-1)(q-1),

密钥 k ={(n, p, q, a, b) | ab≡1(mod (n)) , a, b∈Zn ,

(b, (n))=1 , 0<b<(n)} , 对每一个 k = (n, p, q, a, b) , 定义加密变换为: Ek (x) ≡ x

b (mod n) , x∈Zn

定义解密变换为: Dk (y) ≡ y a

(mod n) , y∈Zn

RSA 密码体制是公开加密密钥 n 与 b ,保密解密密钥

a 以及辅助信息 p 与 q 。

7.4 公钥密码算法

7.4.2 RSA 加密系统3 . RSA 的安全性

RSA 算法的理论基础是一种特殊的可逆模指数运算,它的安全性是基于分解大整数 n 的困难性。 三种可能攻击 RSA 算法的方法是:

① 强行攻击:这包含对所有的私有密钥都进行尝试 ; ② 数学攻击:因子分解; ③ 定时攻击:这依赖于解密算法的运行时间。要求:①不要随便提交;②不要随便共享 n ;

③利用随机信息。

7.4 公钥密码算法

7.5.1 数字签名概述数字签名就是防止他人对传输的文件进行破坏以及如何确定发信人的身份的手段。

数字签名主要利用公钥密码技术。数字签名经过长时间的研究,已经有了自己的研究体系,形成了自己的理论框架。 目前已有 RSA、椭圆曲线等经典签名,也有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等与具体应用环境密切相关的特殊签名。

7.5 数字签名技术

7.5.2 数字签名的概念和特点1. 数字签名的特点作用:

第一,信息是由签名者发送的; 第二,信息自签发后到收到为止未曾做过任何修改 ; 第三,如果 A 否认对信息的签名,可以通过仲裁解 决 A 和 B 之间的争议。

数字签名特殊性:随文本的变化而变化;与文本信息是不可分割的。 完善的数字签名应具备签字方不能抵赖、他人不能伪造、在公证人面前能够验证真伪的能力。

7.5 数字签名技术

7.5.2 数字签名的概念和特点2. 数字签名的形式化定义

个签名方案由签署算法与验证算法两部分构成,可用五元关系组( P, A, K, S, V)进行形式化表示。签名者收到 (x, s)后,计算 Verk(x, y) ,若 y=Sigk(x) ,则 Verk(x, y) = 真;若 y≠Sigk(x) ,则 Verk(x, y)=假。

3. 数字签名的功能 (1)身份认证 (2)保密 (3)完整性 (4)不可抵赖 4 .电子签名的法律地位

7.5 数字签名技术

7.5.3 数字签名方案的分类1 .基于数学难题的分类 ( 1 )基于离散对数问题的签名方案 ( 2 )基于素因子分解问题的签名方案( 3 )上述两种的结合签名方案 2 .基于签名用户的分类( 1 )单个用户签名的数字签名方案( 2 )多个用户的数字签名方案。

7.5 数字签名技术

7.5.3 数字签名方案的分类3 .基于数字签名所具有特性的分类 ( 1 )不具有自动恢复特性的数字签名方案 ( 2 )具有消息自动恢复特性的数字签名方案4 .基于数字签名所涉及的通信角色分类( 1 )直接数字签名( 2 )需仲裁的数字签名

7.5 数字签名技术

7.5.4 数字签名的使用模式目前使用的电子签名主要有三种模式:

(1) 智慧卡式 (2) 密码式 (3) 生物测定式

实际应用过程中,大都是将以上两种或三种数字签名技术结合在一起,这样可提高电子签名的安全和可靠性。

7.5 数字签名技术

7.5.5 数字签名使用原理

7.5 数字签名技术

数字签名和验证的步骤:

明文

数字摘要 1

加密后的数字签名

Hash函数

发送方私钥加密

明文

密文

会话密钥加密(对称加密)

会话密钥

加密后的会话密钥

接收方公钥加密

数字摘要 1

发送方公钥解密明文

数字摘要 2

Hash函数

会话密钥原文

接收方私钥解密

是否相同?相同 不相同

文件内容完整 文件内容被篡改

解密

比较

发送方

接收方

7.5.6 常规数字签名方法1 . RSA签名方案RSA签名方案是利用 RSA公钥密码体制建立的一种实

用的数字签名方案。

签名算法 验证算法

2 . OSS签名方案 OSS签名方案也是一种公钥体制的签名方案,这种方案是由 Ong, Schnorr和 Shamir三人在 1985年提出的。

签名算法 验证算法

7.5 数字签名技术

7.5.7 数字签名的发展与挑战目前几乎所有的公钥密码体制都是基于以下三种数学疑难问题之一:(1) 背包问题(2) 离散对数问题 (3) 因子分解问题

数字签名方案基于如此狭窄的数学基础令人担忧,以上数学难题取得突破性进展,所有公开密钥体制以及以公开密钥体制为基础的数字签名方案将不再安全。

目前只有使用充分大的数来保证其安全性。

7.5 数字签名技术

7.6.1 识别协议概述 识别协议所要解决的问题:使用户A既能进入计算机又不泄露用户A的任何识别信息?一个安全的识别协议至少应满足以下两个条件:

(1) 用户A能向验证者 B证明他的确是 A;(2) 用户A向验证者 B证明自己的身份时,没有让验证 者 B获得任何有用的信息, B不能模仿 A向其他人证明他 是用户A。从实用角度讲,一个安全识别协议的设计应该越简

单越好,而且需要的计算量和储存量都要尽可能小,最好能在一个智能卡上实现。

7.6 识别协议

7.6.2 Feige-Fiat-Shamir 识别协议识别协议一般是由数字签名方案改进而成的,相

反,每一个识别协议都可派生一个数字签名方案。 Feige-Fiat-Shamir 识别协议是由一个属于仲裁数字签

名方案改进而成的。具体识别协议 以及过程见课本 p224 。

7.6.3 改进的 Feige-Fiat-Shamir 识别协议为了减少数据交换次数,增加每轮签字的数量,

Feige , Fiat 和 Shamir三位设计者在 1988年给出了改进后的识别协议。 具体见课本 p225 ~ 226

7.6 识别协议

7.7.1 密钥管理的意义密码体制、数字签名以及识别协议的安全性算法的

安全性的前提是秘密密钥是安全的,其他人是不知道的。一旦秘密密钥丢失或出错,密码体制、数字签名和识别协议就不安全了。因此密钥的保密和安全管理在数据系统安全中是极为重要。密钥管理包括密钥的产生、存储、分配、保护、保

密等内容。

7.7 密钥管理

7.7.2 密钥分类与产生密钥的主要种类:

用户密钥、会话密钥、密钥加密密钥和主机主密钥。各类密钥可由密钥生成器产生。密钥生成器 的算法安全性要求:

( 1 )具有随机性,避免可预测性;( 2 )即使有一个或数个泄露,还能有足够的安全性;( 3 )动态性。

7.7 密钥管理

7.7.3 密钥分配密钥分配方案应当确保网络的密钥传送次数和每个

用户的存贮量都尽可能的小,且每一对用户A与 B都能独立地计算一个秘密密钥 KAB。 Blom密钥分配方案(具体见课本 p227~ 228)

7.7.4 密钥保护和秘密共享密钥保护是密钥安全的一个重要方面。 密钥保护通常采用分级保护管理法 。一个密码系统是否安全,最终可能取决于主机主密

码密钥是否安全。

7.7 密钥管理

7.7.4 密钥保护和秘密共享秘密共享方案:防止主机主密钥的泄漏或人为的

背叛。秘密共享方案的基本要求是:

将密钥 k按下述要求分成 n个共享 k1 , k2 ,…, kn:(1) 已知任意 t个 ki值都容易计算出密钥 k;(2) 已知任意 r(≤ t-1 )个 ki的值,都无法计算出密 钥 k。

Shamir 秘密共享方案

7.7 密钥管理

7.8.1 PGP 概念PGP (Pretty Good Privacy) 是可以让电子邮件或文档

具有保密功能的程序,它提供了强大的保护功能,可 以将文档加密后再传送给他人,加密后的信息看起来 是一堆无意义的乱码,除了拥有解密密钥的人看得到 以外,没有人可以解读。

PGP 以公开密钥密码学为基础,其原理是利用 PGP 产 生一对密钥,一把是私有密钥,一把是公开密钥。

PGP 应用程序的特点:速度快,效率高;可移植性强。

7.8 PGP 密钥管理技术

7.8.1 PGP 概念PGP的主要功能有:

( 1 )使用 PGP对邮件加密,以防止非法阅读。( 2 )能给加密的邮件追加数字签名。( 3 )可以实现只签名而不加密。( 4 )能够加密文件,包括图形文件、声音文件以及其他各类文件。

7.8 PGP 密钥管理技术

7.8.2 PGP 安全机制PGP 有六大安全服务机制,见表 7.7

7.8 PGP 密钥管理技术

安全服务 算 法 说明

机密性 IDEA , RSA 发信人产生一次会话密钥,或以 RSA 体制下收信任的公钥加密,会话密钥和消息一起送出

认证性 RSA , MD-5 用 MD-5 杂凑消息,并以收信人的 RSA 公钥加密,与消息一起送出

压缩 ZIP 用消息的传送和存储,提供完整性

e-mail 兼容性 基数 -64 变换 对 e-mail 应用提供透明性,可将加密消息用基数 -64 变换成 ASCII 字符串

分段功能 — 为了适应最大消息长度限制, PGP 实行分段并重组

不可抵赖性 — 中转消息时,可以对消息源认证

表 7.7 PGP 的安全服务

7.8.3 PGP 加密系统的流程PGP加密系统是采用公开密钥加密与对称密钥加密相

结合的一种加密技术。PGP加密系统使用一对数学上相关的密钥,其中一个

(公钥)用来加密信息,另一个(私钥)用来解密信 息。PGP实际上采用的是 RSA和对称加密的综合运用。采用

了一种叫 IDEA的对称加密算法。 PGP是以一个随机生成密钥(每次加密不同),用 IDEA

算法对明文加密,然后用 RSA算法对该密钥加密。

7.8 PGP 密钥管理技术

7.8.4 PGP 密钥管理机制PGP最核心的功能是:文件加密、通信加密和数字签名。具体管理机制见课本 p232~ 233 。

7.8.5 PGP 软件使用简介(主要自学) 见课本 p233~ 248。

7.8 PGP 密钥管理技术

[1] 肖德琴 . 祁明 . 彭丽芳 . 电子商务安全保密技术与应用 . 广州 : 华南理工大学出版社 , 2003

[2] 杨善林 . 信息管理学 . 高等教育出版社 , 2003

[3] 传统加密算法, http://www.ec21cn.com/ec21cnorg/cybercollege/htmllesson/shijian/ 2-2-2.htm

[4] www.pgp.com , PGP 简介, http://www.linuxaid.com.cn/articles/1/1/114040687.shtml

参考文献