10.密码原理与应用概述

Download Report

Transcript 10.密码原理与应用概述

密码学原理与应用
密码学原理与应用概述
概述
陈华平
陈华平
2005.3
2005.3
1
主要内容
1.
2.
3.
4.
5.
6.
7.
密码学的基础性概念与术语
现代密码体制的构成
密码算法的安全性
密钥管理
现代密码应用于信息安全的三个发展阶段
密码学的世纪巨变
密码学永不衰竭的发展动力
2
前言
信息安全需要技术、管理、法律等多方面
提供保障。对信息安全提供的技术保障中,又
分为物理的保障和逻辑的保障。密码是对信息
安全提供逻辑保障的技术。
在无线电通信中,在计算机数据的传输、
处理和存储中,在网络空间中,信息以数字形
式存在。密码以数学方法对数字化的信息进行
变换,以保护信息的秘密性、真实性、完整性、
不可否认性。在信息社会中,密码技术已成为
信息安全的核心技术。
3
1. 密码学的基础性概念与术语
1.1 密码变换中的术语
1.2 密码学的重要概念
4
1.1 密码变换中的术语
长达四千年的历史中,密码一直是对信息作加密变换的
工具。在密码学中,作加密变换之前的信息称为明文,加密
之后的信息称为密文。加密变换是依靠密码算法和密钥两者
相结合的密码体制来实现的。在一个密码体制中,算法是固
定不变的运算规则和步骤的集合,密钥是可变的一定长度的
数字、符号序列。在一个密码体制之下,以相同的明文作为
输入,密钥不同则输出的密文不同。收信方收到密文之后,
用与发方约定的密码算法和共享的密钥,对密文作逆向的密
码变换得到明文。而对于未授权的不知密钥或密码算法与密
钥都不知道的第三者,密文是无意义的乱码,这正是加密变
换要达到的目的。
5
加密与脱密的过程图示如下:
密文
密文
明文
密码算法
密钥

明文
密码算法
密钥
6
1.2 密码学的重要概念
在上个世纪的两次世界大战及其后的信
息技术高速发展的推动下,密码学进入高速
发展期,密码学中具有基础性的概念也急剧
地扩展。下面五个方面的概念或区分,在密
码学中,特别是现代密码学中,有重要的地
位。
7
1)两种基础变换
所有的密码算法皆基于两种通用的变换:
一种是代替; 一种是错乱 。
8
代替(substitution):明文中每个元素(比特,
字母,字符)映射到其它元素。
如:明文中元素集为{1,2,3,4,5},作代替变
换如下:
明文
1
2
3
4
5
密文
5
2
4
1
3
上面的表就称为代替表(或置换)。
9
错乱(transposition):对明文中的元素进行重
新排列,即换位。
如:明文为 c h i n a
经换位变换
a1 a2
a3
a4 a5
a5 a2
a4
a1 a3
得密文:a h n c i
10
在一个密码体制中,两种变换可交错
地多次使用。无论代替或是错乱,所作的
变换必须是可逆的。这是对加密变换根本
性的要求,违反这一条将使脱密无法进行。
11
2)两种密钥数量
在现代密码中,按照加、脱密的密钥是
否同一,划分为单密钥密码体制和双密钥密
码体制。
12
发方与收方使用同一密钥的密码体制称为单
密钥密码体制,或对称密钥密码体制,或秘密密
钥体制。
发方与收方使用不同密钥的密码体制称为双
密钥密码体制,或非对称密码体制,或公开密钥
密码体制。
单密钥密码体制是传统加密变换一直采用的
密码体制,故又称为传统密码体制。
双密钥密码体制创设于上个世纪的七十年代。
它的推出是密码学的一场革命。
13
3)两种处理长度——序列密码与分组密码
密码变换中,按明文输入单位的不同分为序列
密码与分组密码。
序列密码对明文序列中的元素逐位进行变换,
逐位输出密文。
分组密码对明文序列按给定的长度分块,每个
块称为一个分组(如64比特,128比特为一个分
组),一次对一个分组作密码变换,并输出一个等
长的密文分组。
14
4)两种密码功能——加密与认证
加密是传统密码的主要功能,是现代密码的
两大功能之一。
认证是现代密码另一功能。密码的认证是运
用密码变换的方法达到保证信息的真实性、完整性、
不可否认性的目的。在数字世界中,无论身份识别、
还是文件签署,皆通过逻辑手段(即密码变换)来
实现。
15
5)两种目标——密码编码与密码分析
由密码算法与密钥管理构成的密码体制的设计
和实现称为密码编码。在密码战中,它是防御方。
对密码体制及经其变换的信息实施侦察和分析
以达到获取密码算法和密钥,还原明文的活动称为
密码分析。在密码战中,它是攻击方。
密码编码和密码分析是既相互对立的又是相互
依存的。密码学的发展过程就是编码与分析互相斗
争的过程。一个密码体制的推出,给密码分析提出
新的挑战;一个密码体制的破译,导致一个新的密
码体制的诞生。这样的过程不断反复,就构成了密
码的历史。
16
2. 现代密码体制的构成
2.1 序列密码
2.2 分组密码
2.3 基于离散对数求解困难性的公开密
钥密码体制
2.4 基于大整数分解难题的公开密钥密
码体制
2.5 杂凑函数
17
现代密码体制由三大门类、五大家族构成,可列表如下:
三大门类
秘密密钥密码体制
五大家族
序列密码
分组密码
基于 DLP 的 DH 型密码
公开密钥密码体制
(DLP 为 Discrete Logarithm Problem 离散对数问题)
基于 IFP 的 RSA 型密码
(IFP 为 Integer Factorization Problem 整数分解问题)
杂凑函数
杂凑函数
18
2.1 序列密码
明文序列的元素可以是比特、字母(a,b,...,y,z)、
字符(如7单位的ASCII码)等。在现代密码中,最
具代表性的序列密码所处理的明文元素是比特,即
集合{0,1}中的元素。由“0”“1”组成的明文序列记为
a1,a2,…,am ,与同样由“0”“1”组成的密钥序列记为
k1,k2,…,km,km+1,…,进行逐位的模2加运算,得到由
“0”“1”组成的密文序列c1,c2,…,cm。明文、密文、
密钥之间的运算如下:
(c1,c2,…,cm)=( a1⊕k1,a2⊕k2,…,am⊕km)
19
运算符号“⊕”是二元域的加法称为模2加。
模2加的规则为:
0⊕0=0
0⊕1=1
1⊕0=1
1⊕1=0
序列密码中,加密中密钥序列与明文序列的
加密运算及脱密中密钥序列与密文序列的脱密运
算都是二元域上模2加运算。
20
序列密码是否能抵抗破译取决于密钥序列的强度,即密
钥序列发生器设计的优劣。
基于线性反馈移存器的密钥发生器是具有代表性的序列
密码之一。它可以由线性反馈移存器、逻辑函数和种子密钥三
部分构成。
一个n级的线性反馈移存器,如采用二元域上的本原多项
式,它生成的二元序列的周期为2n-1。线性反馈移存器以其级
数和多项式的选择保证密钥序列的周期长度。
逻辑函数以与、或等布尔函数运算对反馈移存器生成的
序列作非线性变换,使输出的密钥序列达到期望的复杂度。
种子密钥设置密钥发生器的初始状态(包括移存器状态
及逻辑函数设置),也可参与密钥序列生产的全过程。
21
2.2 分组密码
分组密码以一个固定长度的明文分组为加密变换
单元。加密变换采用多层迭代方式,即同一结构的变
换多次地使用。加密变换在密钥参与之下进行。一个
分组密码有三个指标:
分组长度(如64,128,256)
密钥长度(如56,112,128,256)
变换层数(如8,10,16,32)
多层迭代变换中,各层的变换除所加的层密钥不
同之外,其他的运算皆不变。
22
层变换是分组密码的核心,通常包括三种运算:
① 代替:一般将一个分组等分成若干比特组成
的字,作代替变换(相当于查代替表)。
② 线性变换:可作位置换及线性组合,以求将
分组输入与输出关系尽可能地打乱。
③ 加层密钥:每层变换对输入或输出进行一次
与层密钥对应位上的模2加,每层所加的层密钥各不
相同,各层密钥由基本密钥经扩展生成。
23
密钥扩展算法是分组密码中又一重要
构成部分。各层密钥可由密钥的线性组合
生成,也可经一扩展算法使各层密钥与原
密钥的关系非线性化。
24
分组密码的工作模式包括:
1)电子密本模式(ECB
Electronic Codebook)
各个明文分组在同一密钥参与下独立地加密,生成
密文分组。
ECB 的图示:
明文分组 Pi
密码算法
密文分组 Ci
密钥 K
25
2)密文分组连接模式(CBC Cipher Block Chaining)
明文分组与前一个密文分组相加作为加密算法的
输入(第一个明文分组则与初始设定的向量 IV 相加作
为加密算法的第一个输入)。
CBC 的图示:
Ci (i=0,1,2,3…)
Pi+1
密码算法
Ci+1
密钥 K
其中 C0 为初始向量 IV。
26
3)密文反馈模式(CFB Cipher Feedback)
每次加密明文j个比特(j小于分组长度n)。每
次加密后生成的j比特密文作为分组加密算法后一
拍的输入。在此种连接方式下,分组加密算法一定
意义上可看成密钥序列发生器,每次输出的n比特
向量中取出j比特与明文按逐位模2加得到j比特密
文。CFB中输入移位寄存器为n级,初始状态由初
始向量IV设定,以后每拍左移j位,并将上一拍密
文输入。
27
CFB 的图示:
IV
n
n-j
密码算法
j
n
n-j
j
j
j
C1
K
j
Ci-
P1
1
n
n-j
j
密码算法
n
n-j
j
j
(移存器左移 j 位,
将前一拍密文 j 位
输入)
j
Ci
K
j
Pi
(i=2,3,4,…)
28
4)输出反馈模式(OFB Output Feedback)
OFB 与 CFB 反馈模式的差别,在于每次输入移存器
的 j 个比特不是上一拍的密文,而是上一拍分组密码算法
的输出。
OFB 的图示:
IV
n-j
j
n
密码算法
n
n-j
n-j
j
j
n
n
密码算法
n-j
j
j
j
C1
K
C2
K
j
j
P1
P2
OFB 中,分组密码体制成为真正意义上基于密钥序列发生
器的序列密码。
29
2.3 基于离散对数求解困难性的公开
密钥密码体制
离散对数难题是多个公开密钥密码
算法的基础,如Diffie-Hellman的密钥交
换算法和DSA数字签名算法。
30
设p是一个素数,对于任意一个小于p的正整数,以a为
底 , 可 在 模 p 运 算 下 求 出 底 a 任 意 次 幂 的 ai ( i=1 , 2 ,
3,…)。如p=11,a=7
i
1
2
3
4
5
6
7
8
9
10
7i(mod11) 7
5
2
3
10
4
6
9
8
1
在模p运算下,已知p和a,对给定的y(y=ax),求x就
是离散对数问题。
模数为p=11,以a=7为底,可得数值y的离散对数(记
为INDa,p(y))的列表
y
IND7,11(y)
1
2
3 4
5
6 7 8
9 10
10 3
4 6
2
7 1 9
8
5
求离散对数是求幂运算的逆运算。模运算与一般整数相
同,求幂运算与其逆运算相比,前者易于计算,而后者则
难计算。在模数很大(如100位以上的大素数)的运算中,
求离散对数成为数学的难题。
31
Diffie-Hellman的密钥交换算法正是基于这一数学难题构
建的。
设p为一个大素数,给定模p的一个本原元a(满足d=p-1,
是ad≡1(modp)的最小的d),(p,a)是公开的。A,B双方为
建立共享的密钥,执行如下的协议:
① AB:ax(modp)
② B A:ay(modp)
③ A对收到的ay求(ay)x=ayx(modp)
④ B对收到的ax求(a x) y =axy (modp)
A,B双方建立了共享的密钥 (ay)x(modp)=axy (modp)
在该协议中,x是A的秘密密钥,y是B的秘密密钥。第三
者获得ax和ay,无论由ax求x或由ay求y都是离散对数求解的难
题。而无法求得x或y,就不能获得A,B的共享密钥axy (modp)。
32
2.4 基于大整数分解难题的公开密
钥密码体制
第一个完全意义上的公开密钥密码体
制 是 由 Ron Rivest , Adi Shamir 和 Len
Adleman创设的RSA算法。这是一个基于
大整数分解困难性的密码算法。
33
RSA算法中,公开密钥是(e,n),秘密密钥是(d,n),其中
n是两个大素数p,q的乘积(n=pq)
e与(p-1)  (q-1)互素,即GCD(e,(p-1)(q-1) )=1
ed≡1 (mod(p-1)(q-1))
以RSA用于加密变换为例,用户B选择p,q构造出:(n,e)
公布于众;(n,d)只供自己使用。
用户A要将信息a发送给B,用B的公开密钥(e,n)对a加密:
AB:c=ae(modn)
B收到ae,用秘密密钥(d,n)脱密,作运算cd=(ae)d) ≡a
(modn)得到明文。
任何第三者要想在知道公开的(n,e)基础上,对ae 作逆运
算(ae)d(modn),就要分解n为p和q,进而得到d=e-1(mod(p1)(q-1))。当p,q为大素数(如1024,2048,4096比特的素
数),n的分解是计算难题。
34
下面以两个小素数为例,直观地说明RSA算法:
① 选p=7,q=17
② 得n=pq=119
③ 计算(p-1)(q-1)=96
④ 选择一个与96互素的且小于96的数e=5
⑤ 求d,满足de=1(mod96),得d=77(因为
775=385=496+1)
该例中,用户B将公开密钥(5,119)对外公布,
将(77,119)作为秘密密钥加以保护。
35
A要将明文数据19加密发送给B,作运算:
195=2476099
对195作模119 运算
2476099=20807119+66
得195≡66(mod119)
A将密文66发送给B。
B收到密文66,作脱密运算:
6677≡19(mod119)
6677是一个141位的大数。它被119除得到余数为
19。
36
RSA算法用于数字签名算法时,秘密密钥
拥有者B用(d,n)对数据a作签名运算:
ad=s (modn)
任何人要验证这个签名则用B公布的公开密
钥(e,n)作验证运算:
se=a
以证实B对数据a的签名。
37
2.5 杂凑函数
杂凑函数是英语hash function的译名,
也有的译为散列函数。
杂凑函数的输入可以是任意长度的数
据,而输出的值其长度是固定不变的。以
H表示杂凑函数,M表示输入数据,h表示
输出值。
38
杂凑函数H必须具有的性质包括
① H可作用于任意长度的数据。
② H的输出值长度是固定的。
③ H(x)对任意x都是易于计算的。
④ 给定h,要找到x使H(x)=h是计算上不可行的。
⑤ 给定x,要找到yx,满足H(x)=H(y)是计算上不
可行的。
⑥ 要找到任意的对子x和y,使得H(x)=H(y)在计
算上是不可行的。
具有上述性质的杂凑函数得到的输出值h是数据
M的“指纹”。改动其中任意比特都可能使输出值改
变。
39
杂凑函数一般采取迭代变换。将明文分成固定长度的分
组,如每个分组长度为b,数据M的长度Lb,则将M分成L个
分组(M1,M2,…,ML),最后一个分组不足b比特,可按规定填补
不足部分。对于M=(M1,M2,…,ML)的L个分组,可用一个压缩
函数f以每层f的输出为连接变量Ci 对L个分组依次作压缩变换,
最后一层f的输出作为函数值h。其结构可图示如下:
Mt
Mi
b
b
Ci
量。
n
f
nC
i+1

b
f
f
Ct+1
Ct
其中C1 为n比特初始向量IV;Ci(i=1,2,…,t+1)为n比特向
此种结构的杂凑函数结构与分组密码体制的CBF模式有
相似之处。
40
3. 密码算法的安全性
3.1 密码算法的确定性与随机性
3.2 密码算法的保密与公开
41
3.1 密码算法的确定性与随机性
密码算法是进行密码变换的一系列规则与
步骤的集合。一个密码系统无论用于加密或是
用于认证,系统中的密码算法必是系统的基础。
在特别的个例中,一个密码系统可以仅有密码
算法构成。一个密码系统的安全性涉及多方面
的因素,但仅就密码技术因素而言,它首先取
决于密码算法的抗破译强度。
42
密码算法是确定性与随机性的对立统一。数字化、
符号化对象的确定性指其服从确定规则的有规律的、
有秩序、可推导、可推测的特性;数字化、符号化对
象的随机性则指其不服从任何规则的无规律的、无秩
序、不可推导、不可预测的特性。密码算法的设计者
以确定性的算法使得经变换的数字化或符号化的信息
尽可能地随机化;密码算法的破译者则要在表面上混
乱的随机的数字或符号中发现其确定性的本质,并以
一种逆向的确定性算法恢复信息的原貌。以确定性构
造随机性是困难的;从随机性发现确定性更难。设计
者与破译者的较量,推动密码算法的理论与技术不断
由低级到高级,由简单到复杂的发展。
43
用于加密的密码算法的设计按照两个方向发展。一个发
展方向是生产伪随机数。序列密码是这一方向的代表,它的核
心就是一个伪随机数发生器,它生产出的序列力求达到事实上
的随机化。以一个随机序列和一个非随机序列相加,它们的和
序列(加密变换中它就是密文)必是随机的。另一个发展方向
是生成伪随机置换。分组密码是第二发展方向的代表。分组密
码基本的工作方式是ECB (Electronic Code Book),它以固
定的密码算法和任意密钥去对应一个置换表。密码算法相同选
用的密钥不同,它们对应的置换表就不同。分组密码的一次变
换就是以电子方式完成一次“查表”。对于分组密码所构成的
置换表,设计者力求其随机化,使破译者难以从密文逆求明文
与密钥,难以从实际可占有的明文分组与密文分组的对应关系
推导出其它的明文分组与密文分组的对应关系。
44
用于认证兼可用于加密的公开密钥密码是高度数
学化的密码算法,它直接以数学难题作为构建密码算
法的基础。经过三十年的探索。IFP、DLP和ECDLP
(即整数分解难题,离散对数难题和椭圆曲线离散对
数难题)已分别成为RSA型算法、DH型算法、ECC
型算法的基础。以数学难题为基础的密码算法,其算
法安全性理论上等价于它所基于建立的数学难题的难
解性。公开密钥密码算法的一个发展方向是发现新的
可以用以构建新密码算法的数学难题。
45
3.2 密码算法的保密与公开
密码算法保密是许多国家对军事外交领域使用的密码
系统所采取的政策。由于军事外交领域使用的密码,所保
护的信息涉及国家安全,具有很高秘密性,故采用密码算
法保密的政策,以增大破译者攻击的难度。
密码算法的保密在增强密码系统安全性上有重大的作
用。一个严格实行密码算法保密政策的密码系统,即密码
算法是破译者不知晓的,若其密码算法设计又是科学严密
的,也就是说它所生产的乱数序列或随机置换达到了事实
上的随机化,那么它将具有理论上的不可破译性 。它是
Shannon确认的唯一的具有理论不可破的One Time Pad
(一次乱数本)之外的,另外一大类具有理论不可破性的
密码系统。
46
同一个密码系统采取密码算法保密政策与采取密
码算法公开政策相比,它们之间的差别一般不能以计
算复杂度的不同来表示。一个密码算法公开的密码系
统,至少有一种密钥穷举的攻击方法,在这个意义下,
它的攻击难度可用计算复杂度表示。密码算法保密的
密码系统,由于其采用的密码算法是自行设计的,不
属于已知的密码算法的集合,对于破译者来说也就不
存在穷举密码算法的攻击方法。它的破译能否达成不
能以计算是否可行来衡量。
47
密码算法保密的密码系统的缺点在于:
① 一个密码算法保密的密码系统,其密码
算法未经广泛的专业或非专业的研究人员的分
析与攻击的检验,其算法可能存在未被发现的
缺陷与漏洞,或算法的整体抗破译强度不足而
未被认识。密码战的历史中,实行密码算法保
密的众多军事外交密码被攻破的事例证明实行
密码算法保密政策的密码并不都是安全的。
48
② 实行密码算法保密不利于促进密码科学的发展。
现代密码学的高速发展时期是在DES这个分组密码作
为数据加密标准公布及公开密钥密码算法推出之后。
这些密码算法的公开发表吸引了广大的专业与非专业
人员研究的兴趣,导致密码设计与分析领域新的发现
与 发 明 不 断 涌 现 。 一 个 典 型 的 事 例 就 是 Diffle
Hellman的密钥交换算法的提出,直接引导MIT的三
位研究人员扭转研究方向从而创设出RSA算法。DES
作为数据加密标准的公布,在促进密码学发展方面的
贡献更是广为人们所确认。
49
③ 实行密码算法保密的密码系统作为商品
则难于为用户信任。一个密码产品要用户购置
和使用,但其算法却秘而不宣,难以获得用户
对使用这个密码产品确能保证安全的信任。
上述采用密码算法保密政策的不足之处,
反过来正是密码算法公开政策的优越性所在。
50
4. 密钥管理
4.1 密钥及密码函数
4.2 密钥的作用方式
4.3 密钥在密码体制中的地位
4.4 密钥管理是现代密码的核心技术
4.5 在密码算法设计严密的前提下,
密钥的安全就是密码体制的安全
51
4.1 密钥及密码函数
密钥是由一定长度的数字或符号序列构成的密码
参数。密码算法与密钥共同确定密码变换。以函数来
表示密码的变换,一个密码算法给定一个函数的集合。
这个函数集合中元素的个数取决于密钥的个数。如果
密钥的长度为n比特,那么这个密码算法对应的函数
集合中的元素最多可有2n个,不妨以2n表示密钥空间
的大小。以k表示密钥,以K表示密钥空间,
kK=Z2n,|K|=2n,以fk表示密码变换的函数,以F表
示给定密码算法的函数集合,显然,|F|=2n.
52
4.2 密钥及密码函数
密钥的作用方式是多样的,典型的作用
方式有:
1)序列密码的密钥序列发生器中,密
钥被称为种子密钥决定密钥序列发生器的初
始状态及相关的初始设置,密钥序列发生器
在给定初态之下生成密钥序列,后者与明文
序列逐位相加即为密文。在密钥序列发生其
中,种子密钥也可逐拍地作用于密钥序列中
每个输出元素的生成。
53
2)分组密码中,每轮函数由密钥加、代替和线性变换三
种运算构成,三种运算构成的轮函数称为XSL结构,X是密钥
加(eXclusive or),S是代替(Substitution),L是线性变
换(Linear transformation)。在多轮迭代运算中轮函数中
代替和线性变换不变,有变化的只有层密钥,层密钥是由每次
会话或每份消息加密时给定的密钥(称为会话密钥或消息密钥)
派生的。层密钥的变化,使各轮的函数构成不同的密码变换
(即不同的层置换表)。
3)RSA公开密钥密码中,用于加密时取收方的公开密钥
作为指数直接对数据作模幂运算得到密文,收方则取对应于该
公开密钥的秘密密钥作为指数直接对密文作模幂运算恢复明文;
用于数字签名时取自己的秘密密钥作为指数直接对数据作模幂
运算得到密文,验证方则用签名人的公开密钥作为指数直接对
密文作模幂运算,恢复明文。这是密钥的最直接作用方式。
54
4.3 密钥在密码体制中的地位
密钥与密码算法的相互关系在密码发展历史中经历了一个逐
步演变的过程。初期的简单密码无密钥和密码算法之分,例如密
本(指以词、词组等不等长的元素为单位的秘密编码)和单表代
替(以字符为单位的密码编码);随着周期性多表代替等密码的
出现,密码算法和密钥开始其分离的过程;十九世纪Kerckhoffs
提出“密码的秘密寓于密钥之中”的著名论断,强调了密钥在密
码系统安全性中的重要地位。由于从手工密码时期、到机械密码
时期、再到现代密码的初期,密钥始终要通过秘密信道人力传送,
密钥的分发没有形成一项独立的技术。公开密钥密码的创设,开
辟了用电子方式在不安全信道上构建和传送秘密密钥的现实可行
的道路。与此同时,采用秘密密钥体制的由密钥分发中心进行密
钥分发或密钥建立的技术也得到研发。这两方面的进展推动密钥
管理技术成为密码学中一项独立的密码技术。
55
4.4 密钥管理是现代密码的核心技术
在计算机通信中,由于密码算法的相对固定性,分发给
通信各方以密码算法是易于做到的;对实施密码算法公开政
策的密码,密码算法的配发更无困难。真正困难的是密钥的
分发与认证。通信各方采用密码技术进行加密和认证的前提
是建立密钥关系,使他们获得必需的密钥和各种相关的参数。
密钥管理包括支持密钥建立、交换、分发、废止与更新的各
种机制与协议,其核心技术就是为使用密码技术的各方建立
相互之间的安全可信的密钥关系。鉴于技术的复杂和环节的
众多,密钥管理技术在现代密码学中已成为远较密码算法设
计与应用更为复杂的技术。
56
4.5 在密码算法设计严密的前提下,
密钥的安全就是密码体制的安全
由于密码算法能否抵御破译攻击是密
码体制安全的根本和基础所在 ,因此对
“密码的秘密寓于密钥之中”的论断需作
如下的修改:“在密码算法设计严密的前
提下,密钥的安全就是密码体制的安全”。
57
5. 现代密码应用于信息安全的三个发展阶段
5.1 密码技术与功能单一化阶段
5.2 密码技术与功能的多元化阶段
5.3 密码技术与功能的集成化阶段
58
5.1 密码技术与功能单一化阶段
计算机自上个世纪四十年代诞生之后,二十多年中始终是
进行大规模计算的工具,其中包括进行密码破译的计算,它与
通信技术是相互独立的。始于上个世纪五六十年代之交的现代
密码时期,其第一个发展阶段服务于通信的保密,称为通信保
密时代。这个阶段名称可用国外的Communication Security
(简写为COMSEC)表述。
这个阶段是序列密码的一统天下。序列密码作为电子密码
的领军密码,它对通信保密所作的最大贡献是实现在线加/脱
密,即密码与通信的一体化。所谓在线式的加脱密方式,即发
方发送信息时是明文,收方接收信息看到的还是明文,只有在
通信信道中是密文。在此种方式下,明文输入加密机;加密机
与通信设备连接,将加密机输出的密文直接发送出去;收方的
收信设备接收到密文直接送入脱密机,脱密机输出的就是明文。
59
在线式的加脱密是密码电子化、自动化的重要体现。
5.2 密码技术与功能的多元化阶段
上个世纪六、七十年代,计算机由单纯的计算工具向兼具
数据资源存储与共享功用的方向发展,数据传送、处理、存储
过程中的保护成为计算机安全的迫切需求。
计算机数据保护的需求促使密码向商用民用方向发展,要
求密码除提供秘密性保障之外,还要能进行数据完整性验证、
真 实 性 认 证 , 即 著 名 的 CIA ( Confidentiality Integrity
Authentieity)三性保障。这个阶段是原先的通信保密和新增
计算机数据保护并举的阶段,是密码由单一的保密功能发展到
兼具保密与认证双重功能的阶段,是密码技术从单一的序列密
码走向技术多元化的阶段。这个阶段从1976年到1990年跨度
约为15年。这个阶段新增加的计算机安全,国外的术语为
Computer Security,简写为COMPUSEC。
从这个阶段开始,非军事非政府部门的密码科研高速展开。
这部分研究力量在密码技术的变革中发挥的作用之大不在军政
密码研究部门之下。
60
5.3 密码技术与功能的集成化阶段
以计算机与通信融合为内容的信息技术革命在上个世纪九
十年代进入高潮,计算机网络和网络互联的迅速发展是其集中
的表现,社会从此步入信息化轨道。因特网用户的爆炸式增长,
计算机网络广泛应用于社会的各个领域,在发挥正面的促进作
用同时也暴露出网络世界和信息社会多方面的脆弱性,促使保
障信息安全的要素进一步增加,除CIA外,还扩展到可用性、
不可否认性、可控性等,信息安全的深度也不断加大。在国外
提出的信息安全Information Security(简写为INFOSEC)的
要素中分别有五性、六性的不同提法,而在信息防护
Information Assurance ( 简 写 为 IA ) 框 架 中 将 信 息 保 护
(Protection)、检测(Detection)、反应(Reaction)和
恢复(Restoration)纳入信息安全之中,这是一个纵深的立
体的多层次安全概念。
61
计算机网络和网络互联的信息安全需求将现代密
码由技术和功能的多元化阶段推向集成化阶段。密码
技术与功能的集成化以密码协议为纽带将多种密码算
法和密钥管理技术联系起来,满足不同的信息网络的
不同需求。不少密码产品同样体现密码技术与功能集
成化的特点。如上个世纪九十年代前期推出的一个产
品就集成了DH算法、RSA算法、分组密码算法和序
列密码算法,其DH算法和RSA算法用于密钥变换及
验证,分组密码用于密钥的加密,而序列密码则用于
数据加密。
62
密码技术与功能的集成化对密码设计提出了更高
的要求,设计者要真正从系统构成的视角将密码的多
个技术要素组合起来,有效地服务于应用环境提出的
安全需求。而使用密码的用户则从集成化中获得易用
性的极大好处。人们无须经过专业性的训练即可使用
设计良好的密码系统,复杂的密钥关系的建立和密码
技术的使用仅需按键或按提示输入命令即可完成。一
项广为人们使用的技术,只有当它的存在几乎是透明
的、人们几乎可以忽视它的存在时,这项技术才是成
熟的。这是密码技术集成化的发展方向。
63
6. 密码学的世纪巨变
6.1 从一张纸、一支笔到密码、计算
机、通信一体化
6.2 从经验与技艺到科学
6.3 从黑屋时代到全民时代
64
6.1 从一张纸、一支笔到密码、计算机、
通信一体化
在短短的一个世纪之中,密码技术由手工密码发
展到机械密码再发展到电子密码,实现了由密码的农
业时代、到工业时代、再到信息时代的转变。手工密
码 是 一 张 纸 和 一 支 笔 的 系 统 ( Paper and Pencil
System),信息时代的电子密码则是密码、计算机、
通信融合为一体的系统(Cryptography-ComputerCommunication System),可以把密码的技术革命
表为P2到C3的革命。
65
密码的技术革命是以实现密码变换所采用的工具为重要
标志的。进入现代密码时期以来,密码技术革命的内容是由分
立电子元器件发展到集成电路再到与计算机通信融为一体的
C3技术。上个世纪五、六十年代之交诞生的第一代电子密码,
密码机体积庞大,一部机器中有数十块印刷电路板,每块板由
电子管、晶体管和印刷电路组成。它的诞生标志着密码的电子
时代的到来。1976年推出的分组密码是芯片化的电子密码,
美国的DES推出的一个必要条件是密码能在一块芯片上实现。
芯片化的密码为密码的商业应用打开了市场。到了上个世纪九
十年代,计算机与通信结合的网络系统急剧发展,社会向信息
化高速推进,密码以硬件、软件或软硬件混合的方式嵌入计算
机通信系统,构成与计算机通信一体化的技术。
66
密码技术的多元化是现代密码技术革命的重
要内容。手工密码、机械密码及初期的电子密码
都是单一的通信加密的工具。上个世纪七十年代
中后期以来,密码技术走向高度繁荣的时期,新
的密码技术大量涌现,形成了服务于多种信息安
全需求的三大门类五大家族的密码的百家争鸣百
花齐放的兴旺局面。
67
密钥管理技术成为一门独立的密码技术,并与密码算法
一起构成密码学的两大基础技术,这是密码技术一次意义重大
的基础技术的扩展。密钥管理的核心是建立和维护使用密码技
术各方的安全的密钥关系,涉及密钥协商、交换、密钥分发传
送,密钥更新废止以及身份识别、数据完整性验证等方面的众
多环节。今天的密钥管理技术,其复杂度已经超过设计密码算
法的复杂度。过去的密码系统以密码算法设计的完成为设计任
务完成的标志,今天的密码系统设计则必须将更大的注意力放
在密钥管理机制的设计上。许多密码协议都把一个或多个已知
的密码算法作为可选用对象,主要解决密钥管理问题。一个密
码协议的安全性分析也往往在假设密码算法是安全的前提下讨
论,因为密码协议采用的成熟密码算法,设计者对其是信赖的,
而密钥是否安全则是密码协议安全性的焦点。
68
6.2 从经验与技艺到科学
密码技术由经验到理论、由技艺到科学的飞跃起始于半个
世纪之前。
上个世纪四十年代末期,信息论的奠基人C.E.Shannon发
表的《通信的数学原理》和《保密系统的通信理论》为密码学
奠定了重要的理论基础。他以概率理论为工具,建立了信息量、
平均信息量,信息熵等概念。他衡量一个密码的安全性的方法
是,在给定的密文条件下,一个密码系统的安全性以明文的不
确定性来衡量,并给出了在确定的密钥空间下,要唯一确定明
文至少要占有的密文数量即唯一解距离。根据他所建立的理论,
他得出的结论为:除了一次一密的乱数本具有完全保密性外,
一切实用的密码由于在密文中必留有明文的信息,因此皆是理
论可破的,随着密文的增长,明文的不确定性趋向于0。虽然
这些理论受创立时密码技术与通信技术发展水平的限制,且撇
开了实际存在的复杂情况的讨论,其局限性是不可避免的。但
是Shannon对密码学的理论贡献是重大的,正是他将密码学由
69
经验与技艺上升为一门科学。
1976年公开密钥密码的思想的提出及实用的公开密
钥密码算法的创设是密码学的又一次重大的学说革命。
历来的密码系统中,密钥是必须保密的,它只能通过秘
密渠道分发,即用人工的方法面对面地交接。公开密钥
密码通过建立公开密钥和秘密密钥对子的方法,使其中
一个密钥公开,而不危及另一个密钥的安全。公开密钥
密码的创立是一项科学的发现和技术的发明,是密码学
学 说 的 意 义 重 大 的 革 命 。 R.C.Merkle 、 W.Diffle 、
M.E.Hellman、R.L.Rivest、A.Shamir和L.M.Adleman
以他们对公开密钥密码的贡献而载入密码学的史册。
2003年的图灵奖授予RSA算法的三位发明人,是对他们
贡献的再一次褒奖。
70
公开密钥密码创立的更为重大的贡献是赋予
密码以认证的功能,伴随着它的是密码学中一门
新的理论的诞生,这就是认证系统的信息理论。
这一理论于1984年由G.J.Simmons首次提出,
其论文的题目是“认证理论/编码理论”。认证
理论研究如何设计使认证系统欺骗者获得成功的
概率极小的认证码,,以保障认证系统的安全性。
当前密码学中安全性证明中认证系统安全性证明
是其中重要内容。
71
密码的高度数学化是现代密码学说革命的又一个组成部
分。整个现代密码时期是以数学与密码的紧密结合为特点的,
公开密钥密码则将两者结合推到了极致。我们说密码是数学
的,历来如此。但应该指出密码与数学的紧密结合却始于
Shannon信息理论应用于密码学之后,而早于公开密钥密码
的诞生。序列密码是电子密码的领军密码,研究人员研制之
前作了充分的理论准备,进行了深入的数学原理研究,为序
列密码设计奠定了坚实的数学基础。这在电子密码初期公开
发表的出版物上就有反映。我们比较熟悉的S.W.Golomb的
著作“移位寄存器序列”发表于1967年,它反映了美国人对
序列密码的数学原理研究已达到十分深刻的程度。随着公开
密钥密码的创设,这一门类的密码直接以数学难题作为构建
密码系统的基础,使密码的破译等价于对应的数学难题的解
决。这就导致若干数学难题被直接地引入密码学研究的领域
之中。数学难题解题方法及计算方法的前进与密码设计及密
码破译的进展呈同步之势。在这个领域中,密码即数学,数
学即密码,两者可不加区分。现代密码的各种教程和论著几
乎都要论述密码的数学背景,介绍有关的必备的数学基础知
72
识,足以说明密码学与数学的高度融合。
6.3 从黑屋时代到全民时代
密码在应用领域的革命可以用由黑屋时代走向全民时代来
描述。密码历来是用于军事、外交领域,限于为军事与政府部
门提供服务。美国人亚德里写了一本书“黑屋”,极为形象而
生动地刻划了二十世纪二、三十年代密码使用与破译所处的极
为封闭而秘密的环境。这种密码与民众基本(不是完全)隔绝
的状态一直维持到上个世纪的六十年代。1967年D.Kahn发表
了著名的著作“密码破译者”(The Codebreakers),全景
式地介绍了密码学的发展史,从而引起许多读者的兴趣,并促
使一些人投入密码研究事业。更为重要的是,这个时期计算机
技术的发展及其应用范围的扩大,产生了对密码的商业应用和
民间应用的需求。分组密码和公开密钥密码正是在密码技术商
业应用和民间应用需求的牵引之下于1976、1977年诞生的。
从密码技术的应用范围的扩张而言,分组密码和公开密钥密码
为密码广泛的商用化和民用化提供了可能,密码的“黑屋”时
代终于结束。上个世纪九十年代信息技术的急剧发展导致社会
信息化进程的加速,密码史开始进入了密码军用与民用并进的
73
全社会应用时代,这个时代可表述为密码的“全民时代”。
密码应用革命的另一内容是,密码应用的方向从保护信
息的秘密性扩展到信息的认证。与在真实的世界中一样,在
数字化的信息社会中,人们的交往以相互信任关系的建立为
基础,包括相互身份的识别与认证、传递的数据、消息的完
整性和真实性的确认,承诺的不可抵赖性的保证等。在虚拟
世界的网络环境,人们的交往中的信任关系的建立可能比保
密还重要,特别在商业活动中,尤其突出信任关系的首要地
位。在开放的互联的网络中,正是通过多元化的集成化的密
码技术所提供的全面的信息安全服务,才能确保信息的秘密
性、完整性、真实性和不可否认性。为信息安全服务的密码
技术的逐步完善并被社会承认的过程与社会信息化的进程是
同步的。现实的物理世界中,信任关系是一个复杂的关系。
防止人与人交往中的欺骗,构建一个诚信的社会,是一个困
难的艰巨的任务。在虚拟世界中,在互不相见的条件下建立
人们交往中的信任关系,更加困难。它不仅要依靠技术,还
要依靠道德建设和法制建设。构建虚拟世界的信任关系将是
一个不断持续的进程,从技术角度看正是密码技术为其开辟
74
了一条现实可能的道路。
密码由仅应用于通信环节到应用于事务处理的过程,这
是密码应用的第三个内容。传统的密码技术以实现通信保密
为唯一的功能,故仅在通信环节发挥其作用。现代密码在军
事系统中全面地服务于情报收集、通信、计算机处理和指挥
控 制 , 这 种 系 统 原 为 C3I , 后 为 C4I , 现 在 则 为 C4ISR
( Control , Command , Communication , Computer ,
Intelligence,Surveillance,Reconnaissance,即控制、
指挥、通信、计算机、情报、监视、侦察系统)。密码成为
军队自动化指挥控制系统必要组成部分。在商用、民用系统
中,密码为电子政务、电子商务、电子金融提供全程的服务。
75
密码应用革命的第四个重要内容是现代密码除为信息系
统服务之外,更配置到经济基础设施和关系国计民生的航空、
交通、金融、电力、能源等经济部门。这些基础设施和经济
部门的计算机网络,控制和管理着整个部门的运作及与相关
部门的交互,这些网络的通信、数据管理、控制命令一旦发
生差错、阻塞甚至受到恶意的干扰、篡改,将会导致严重的
后果。当我们应对信息社会的脆弱性时,这些设施和部门的
网络系统必须放在重要地位,必须得到密码提供的信息安全
服务。可见,虚拟世界的安全与物理世界的安全是紧密相连
的,社会的信息化也就是虚拟世界和物理世界的一体化。
76
7. 密码学永不衰竭的发展动力
7.1 科技动力
7.2 社会动力
7.3 内部动力
77
密码发展有科学技术方面,社会需求方面
和密码攻防方面三大推动力量。
78
7.1 科技动力
密码技术是全部科学技术的一部分。密码技术的发展变
化不能离开全部科学技术发展变化的大背景。我们前面提到的
密码技术由手工密码到机械密码再到电子密码的发展过程正是
人类社会由农业社会到工业社会再到信息社会这个经济与科学
技术的发展过程在密码领域的反映。没有整个社会的经济与科
学技术的巨大变革,当然不会有密码领域的技术变革。机械密
码的出现只能在社会工业化发生之后;密码的电子时代也只能
出现在电子技术的发展能为其提供必要的物质技术条件之后。
密码的机械化和电子化的物质技术基础是由其它科学技术提供
的。
79
密码技术更是信息技术的一个组成部分,密码技术发展
变化更离不开信息技术发展变化的背景。十九世纪和二十世
纪在信息技术领域发生的重大变革有电报术的发明,由电话、
无线电,电视的发明构成的电信革命和由计算机与通信技术
融合的信息技术革命。当信息通过书信传递时,信息保密一
般是通过加套一个信封来解决的,而不需保密的信息用明信
片传送,需用密码加密的信息是很少的。电报术的发明对密
码提出的需求,成为密码发展的推动力量。这种需求随着无
线电的发明而增强。密码成为在无线电这一不安全的信道上
传送秘密信息的工具。许多国家研发和使用密码技术都是始
于无线电信道上的电报加密。二十世纪的后五十年由计算机
诞生及其广泛应用引发的信息技术革命,对于密码技术不断
提出新的需求,将密码技术的革命推向高潮。
80
7.2 社会动力
密码技术是一项服务于利益不同的国家、集团、群体的
科学技术,具有极强的社会性。在美国这样的发达国家,密码
产品曾被列入军火武器类而严加控制,说明密码在国家安全中
有重要作用。我们过去也曾把密码称为阶级斗争的工具,强调
密码的政治性。随着密码技术的功能和应用的变化,上述提法
已作改变,但密码服务于不同国家、不同利益集团和群体之间
斗争的性质仍然是其主导属性。社会领域的各种斗争的需求是
密码技术发展的强大动力。
81
密码与战争有着不可分割联系。上个世纪密码技术的高
速发展首先是两次世界大战的产物。两次世界大战中,密码
对战争进程和战役胜负发生的巨大作用不仅为作战双方深刻
体验,也通过历史事件的解密而为更多的人们所认识。机械
密码的研制与应用是在第一次世界大战之后,包括圆盘转轮
密码和M-209型密码,它们一直使用到第二次世界大战及其后
几年。第二次世界大战成为战后密码学理论研究和技术发展
的强大动力。Shannon理论的创设,密码编码理论研究的深
入开展出现在二战之后正是战争推动力的具体表现。今天的
战争已发展成为信息战,至少信息领域的战争在整个战争中
占有主导的决定性的作用,密码对战争进程和战争胜负的作
用只会增强而不会降低。
82
除了战争之外,利益不同的国家、集团、群
体之间的斗争在经济、科技、商业、文化领域广
泛展开。在非军事斗争的领域,同样存在着对密
码的需求,以保证他们在斗争中获得信息安全的
保障和信息领域的优势。这在密码的商用化民用
化得到集中的反映。
83
7.3 内部动力
密码学由密码编码学与密码破译学构成。
防守方的密码编码设计与攻击方的密码破译分
析之间的对抗与竞争是密码学的主要矛盾,它
是密码学发展的内在动力。
84
在战争环境下,密码被攻破是许多密码更替的
直接原因。战争史上有许多这样的事例。
在商用民用密码领域内,无论分组密码或是公
开密码,它们的防卫与攻击的一种斗争形势是将它
公开地作为科学技术课题公布,以提出挑战和奖励
成功的应战者的方式进行。DES于1997年6月被攻
破,成为AES诞生的前奏。借助以计算机能力增强
为后盾的大整数分解的攻击能力的提高,逼迫
RSA算法的整数规模由512比特,增加到1024比特,
再到2048比特,甚至更大的规模。
在学术讨论领域中,一个个新算法设计的提出,
一个个新攻击方法的创设,极大地推动了密码学的
高速发展。
85
86