网络安全技术
退 出
学习目的,
? 了解 密码技术的起源、发展与应用
? 了解 信息隐藏技术 原理及其相关应用领域
? 初步掌握 密钥分配与管理技术及相关应用
? 掌握 数字签名 原理及相关应用
? 掌握 对称密码技术 的原理、相关算法及应用
? 掌握非 对称密码技术 的原理、相关算法及应用
学习重点,
? 对称密码技术
? 非对称密码技术
? 密钥分配与管理技术
? 数字签名
2,1
密码技术概述
2,1,1 密码技术的起源、发展与应用
1.密码技术的起源与发展
早在四千多年以前,古埃及人就开始使用密码技术
来保密要传递的消息
一直到第一次世界大战前,密码技术的进展很少见
诸于世,直到 1918年,William F.Friedman的论文
,The Index of Coincidence and Its Applications in
Cryptography”(重合指数及其在密码学中的应用)发
表时,情况才有所好转。
1949年,C.E,Shannon(香农)在, 贝尔系统技
术杂志, 上发表了,The Communication Theory of
Secrecy System(保密系统的通信理论)”,为密码
技术奠定了坚实理论基础。使密码学真正成为一门
科学。
1976年,W.E,Diffie和 M.E,Hellman发表了,New
Direction in Cryptography(密码学新方向)”一文,
提出了一种全新的密码设计思想,导致了密码技术上
的一场革命。他们首次证明了在发送端和接收端不需
要传送密钥的保密通信是可能的,从而开创了公钥密
码技术的新纪元,成为现代密码技术的一个里程碑。
1977年美国国家标准局 NBS( National Bureau of
Standards,即现在的国家标准与技术研究所 NIST)
正式公布了数据加密标准 DES( Data Encryption
Standard)
1978年,R.L.Rivest,A.Shamir和 L.Adleman实现了
RSA公钥密码技术,此后成为了公钥密码技术中杰出代
表。
1984年,Bennett.Charles H.,Brassard,Gille首次提
出了量子密码技术(现称为 BB84协议)。
1985年,N.Koblitz和 V.Miller把椭圆曲线理论运
用到公钥密码技术中,成为公钥密码技术研究的新
亮点。
密码技术的另一个重要方向 —— 序列密码(也称
为流密码,序列密码主要用于政府、军方等国家要害
部门)理论也取得了重大的进展。 1989年,
R.Mathews,D.Wheeler,L.M.Pecora和 Carroll等人首
次把混沌理论使用到序列密码及保密通信理论中,为
序列密码的研究开辟了一条新的途径。
1997年,美国国家标准与技术研究所 NIST开始
征集新一代数据加密标准来接任即将退役的 DES,
2000年 10月,由比利时密码学家 Joan Daemen,
Vincent Rijmen发明的 Rijndael密码算法成为新一
代数据加密标准 —— AES( Advanced Encryption
Standard)算法。
2000年 1月,欧盟正式启动了欧洲数据加密、
数字签名、数据完整性计划 NESSIE,旨在提出一
套强壮的包括分组密码、序列密码、散列函数、消
息人证码( MAC)、数字签名和公钥加密密码标准

2.密码技术的应用
随着计算机网络是迅速发展,特别是电子商务和
电子政务的兴起,密码技术及其应用得到了飞速的发
展,现代密码技术已经深入到信息安全的各个环节和
对象,其应用已不仅仅局限于政治、军事等领域,其
商用价值和社会价值也得到了充分的肯定。
2,1,2 密码技术基础
1.基本概念
密码技术(或密码学)是研究通信安全保密的一门
学科,它包含两个相对独立的分支:密码编码学和密码
分析学。
密码编码学是研究把信息(明文)变换成没有密钥
就不能解读或很难解读的密文的方法,从事此行的称为
密码编码者。
密码分析学是研究分析破译密码的方法,从事此
行的称为密码分析者 。
密码编码学和分析学彼此目的相反、相互独立,但
在发展中又相互促进。
密码编码学的任务是寻求生成高强度密码的有
效算法,以满足对信息进行加密或认证的要求。
密码分析学的任务是破译密码或伪造认证密码,窃
取机密信息进行诈骗破坏活动。
被动攻击:对一个保密系统采取截获密文进行分析的
方法来进行的攻击。
主动攻击:非法入侵者采用删除、更改、添加、重放
、伪造等手段向系统注入假信息的攻击。
保密通信系统模型,
通过上图这个模型,我们可以看到一个密码体制(
Cryptosystem)通常由 5个部分构成,
( 1)全体明文的集合 M,称为明文空间;
( 2)全体密文的集合 C,称为密文空间
Kerchhoff假设,对于所有的密钥,加密和解密算法迅
速有效;密码体制的安全性不依赖于算法的保密,而是
依赖于密钥的保密。这就是所谓的 Kerchhoff假设(该
假设是由荷兰密码学家 Kerchhoff提出的密码学基本假
设)。
( 3) 全体密钥的集合 K,称为密钥空间;
( 4) 加密算法 E,由加密密钥控制的加密变换的集
合, 即,K× M→ C,( m,k) Ek(m);
( 5) 解密算法 D,由加密密钥控制的加密变换的集
合, 即,K× C→ M,( c,k) Dk(c)。
对 m∈ M,k∈ K,有 Dk(Ek(m))=m。以上描述的五
元组( M,C,K,E,D)就称为一个密码体制。
2.密码体制的分类
( 1)按执行的操作方式不同,可以分为替换密码体
制( Substitution Cryptosystem)和换位密码体制(
Permutation Cryptosystem)。
( 2)如果从收发双方使用的密钥是否相同,密码体
制分为对称密钥密码(或单钥密码)体制和非对称
密钥密码(或双钥密码或公钥密码)体制。对称密
钥密码技术中加密和解密的双方拥有相同的密钥,
而非称密钥密码技术中加密和解密的双方拥有不同
的密钥。
3.密码分析
( 1)密码分析者分析密码算法主要有三种方法,
① 穷举法:密码分析者试图试遍所有的明文或密钥来
进行破译。
② 统计分析法:密码分析者通过分析密文、明文和密
钥的统计规律来达到破译密码体制。可以设法使明文的
统计特性与密文的统计特性不一样来对抗统计分析法。
③ 密码体制分析法:根据所掌握的明文、密文的有关
信息,通过数学求解的方法找到相应的加解密算法。对
抗这种分析法是应该选用具有坚实数学基础和足够复杂
的加解密算法。
( 2)根据对明文和密文掌握的程度,密码分析者通常
可以在下述四中情况下对密码体制进行攻击,
① 唯密文攻击( Ciphertext-only attack):密码分析
者仅知道一些密文,并试图恢复尽可能多的明文,并进
一步推导出加密信息的密钥。
② 已知明文攻击( Known-plaintext attack):密码分
析者不仅知道一些信息的密文,而且还知道与之对应的
明文,根据明文和密文对试图推导出加密密钥或加密算
法。
③ 选择明文攻击( Chosen-plaintext attack):密码分析
者可以选择一些明文,并得到相应的密文,而且可以选
择被加密的明文,并试图推导出加密密钥或算法。
④ 选择密文攻击( Chosen-ciphertext attack):密
码分析者可以选择不同的密文,并能得到相应的明
文,并试图推导出加密密钥。
4.鉴别、完整性与不可否认性
( 1) 鉴别:信息的接收者应该能够确认信息的来源 。
( 2) 完整性:信息的接收者应能验证信息在传输过程中
有没有被改变 。
( 3)不可否认性:信息的发送方不能否认已发送过的
信息。
5.计算复杂性理论
( 1) 理论安全性 ( 无条件安全性 ), 如果具有无限计算
资源的密码分析者也无法破译该密码体制, 这就是理论
安全性 ( 无条件安全性 ), 也称绝对不可破译, 即是说
密码分析者无论截获多少密文以及无论用什么方法进行
攻击都不可能破译 。
( 2) 可证明安全性:如果从理论上证明破译该系统的代
价 ( 困难性 ) 不低于求解某个已知的数学难题, 这就是
可证明安全性 。
( 3) 计算安全性:如果用用已知的最好算法和利用现有
的 ( 或密码系统生命期内 ) 最大计算资源仍然不可能在
合理的时间内完成破译该系统所要求的计算 ( 量 ), 这
就是计算安全性 。 即密码分析者根据可以利用的资源进
行破译所用的时间非常长, 或者说破译的时间长到原来
的明文失去保密价值 。
可证明安全性和计算安全性统称为实际安全性。
计算机复杂性理论是密码安全性理论的基础,它为
分析不同密码技术和算法的“复杂性”提供了一种方
法,它对不同的密码算法和技术进行比较,从而给出
问题求解困难性的数量指标,并确定它们的安全性。
什么是计算机复杂性理论?
( 1)密码分析所需的计算量则是密码体制安全性的
生命指标 。 如果用 n 表示问题的大小(或输入的长度
),则计算复杂性可以用两个参数来表示:运算所需
的时间 T和存储空间 S。它们都是 n的函数,表示为:
T(n)和 S(n),也分别称为空间复杂性和时间复杂性。
假如 T(n)=O(nc)( c>0),那么称该算法运算的时
间是多项式阶的,假如 T(n)=O(ap(n))( a>0),则称
该算法运算的时间是指数阶的。其中 P(n)是 n的一个
多项式。对于指数阶的运算时间算法,适当增大 n,
计算将变成不可能。因此,一般认为,如果破译一个
密码体制所需的时间是指数阶的,则它在计算上是安
全的,因而实际上也是安全的。
空间复杂性和时间复杂性往往是可以相互转换的
。比如,可以预算某些明文和密文对,分析时只需使
用查询即可,这样计算的时间就转换成了存储空间。
( 2) P问题和 NP问题,在理论研究中,算法通常分
为确定性算法和非确定性算法。确定性算法的每一
步操作结果都是确定的,其计算时间就是完成这些
确定步骤所需的时间。而不确定性算法的某些操作
结果是不确定的,在所有使算法成功操作的序列中
,所需时间最少的序列所需时间就是该不确定性算
法的计算时间。 使用确定性算法可以在多项式时间
内求解的的问题称为 P问题。 在多项式时间内可以用
非确定性算法求解的问题称为 NP问题。
注意,NP问题包含 P问题,NP问题中许多问题可能要比 P
中的问题难得多,但是 P问题中是否包含 NP问题,目前还没
有证实。同时 P≠NP目前有没有证明,但是如果 P=NP,那么
整个密码学将失去意义,密码算法也不再是牢不可破的。因
此,计算复杂性理论也密码技术的基础理论之一。现已证明
,正整数是因式分解问题就是一个 NP问题。
在实际研究中,如果问题 X可以在多项式时间
内用确定性算法转化为问题 Y,而 Y的解可以在多
项式时间内用确定性算法转化为 X的解,则称问题
X可规约化为问题 Y。因此,如果某类 NP问题中任
何一个问题可以规约为问题 Y,而且 Y本身就是 NP
问题,则称 Y是一个 NP完全问题,记为 NPC。而对
于一个 NP问题,不存在任何已知的确定性算法在多
项式时间内求解该问题,所以如果能找到一个计算
序列作为解密算法,那么密码分析者在不知道计算
序列的情况下来求解问题(称为客观求解)在计算
上是不可能的。由此可见,NP问题可以用来构造密
码体制。 Diffie和 Hellman通过大量的证明指出,
NPC问题更适合构造密码体制。因为现在密码算法
的安全性都是基于 NPC问题的,这样若想破译一密
码体制相当于解一 NPC问题。
2,1,3 标准化及其组织机构
最具权威性、通用性且较完善的信息技术安全标
准仍然来自于 ISO,IEC等国际性标准化组织。
在 ISO与 IEC的联合技术委员会 JTC1管辖的安全
技术分技术委员会 SC27专门从事安全技术和安全机制
的标准化工作,其工作范围是信息技术安全的一般方
法和技术的标准化,包括,制定信息技术系统安全服
务标准;开发安全技术和安全机制;开发安全指南(
如解释性文件、风险分析等);开发管理支持性文件
和标准(如术语、安全性评估准则等)。
国际电信联盟( ITU,原称 CCITT)单独或与
ISO合作开发了消息处理系统、目录( X.400系列、
X.500系列)及安全框架、安全模型等标准;欧洲计算
机制造协会( ECMA)研制了局域网安全要求等安全
标准;因特网上也出现了大量的 RFC协议文稿,多达
数千个,经网上讨论修改后,已形成了几十个被大家
接受的事实上的因特网安全标准。
2,2
对称密码技术
2,2,1 对称密码技术概述
对称密码技术就是加密密钥和解密密钥相同的这类
密码体制,它采用的解密算法是加密算法的逆运算。
对称密码技术典型代表有:古典密码技术、序列密
码技术,DES(数据加密标准)、瑞士的 IDEA(国际
数据加密算法)以及 AES(高级加密标准)等。
2,2,2 古典密码技术
古典密码技术根据其基本原理大体上可以分为两类:
替换密码技术和换位密码技术。
1.替换密码技术
替换密码技术是基于符号替换的密码技术,这
种密码技术是以符号的置换来达到掩盖明文信息。
这类密码技术有:单字符单表替换密码技术、单字
符多表替换密码技术等。
( 1)单字符单表替换密码技术:单字符单表替换密码
技术是对明文中的所有字符都使用一个固定的映射。 设
A={a0,a1, …, an-1}为明文字母表,B={b0,b1, …, bn-1}
为密文字母表,单字符单表替换密码技术使用了 A到 B的映
射关系,f,A→B, f(ai)= bj(一般情况下,为保证加密的可
逆性,f是一一映射)将明文中的每一个字母替换为密文字
母表中的一个字母。单字符单表替换密码技术的密钥就是映
射 f或密文字母表(一般情况下明文字母表与密文字母表是
相同的,这时的密钥就是映射 f)。
典型的单字符单表替换密码技术有,
① 乘法密码技术
?乘法密码技术的加密变换,
Ek( ai) =aj,j=ik( mod n), gcd( k,n) =1
? 乘法密码技术的解密变换,Dk( aj) =ai,i=jk-1( mod n)
乘法密码技术的密钥是 k。若 n是素数,则有 n-2个密钥( k=1
时加密变换是恒等变换,应该予以抛弃);若 n不是素数,则
有 φ(n)-1个密钥(其中 φ(n)为欧拉函数的值)。
② 移位替换密码技术:是最简单的一种替换密码。
?加密变换为,
Ek( ai) =aj,j=( i + k) ( mod n), 0 < k < n
?解密变换为,
Dk( aj) =ai,i=( j - k) ( mod n) =( j +( n- k)) (
mod n)
由于 i=( j - k) ( mod n) =( i + k - k) ( mod n) =i (
mod n), 所以解密与加密是可逆的 。 从解密变换中可以看
出,Dk= En-k。
移位替换密码技术的密钥是 k,k唯一地确定了明
文空间到密文空间的映射,故移位替换密码技术的密
钥空间的元素个数为 n-1。
③ 密钥字密码技术:它利用一个密钥字来构造替换
作为密钥。
④ 仿射密码技术:是加法密码技术和乘法密码技术
的结合体。
加密变换为,Dk0,k1( ai) =aj,j=( ik1+ k0) ( mod n
), k0,k1∈ Zn,gcd(k1,n)=1
k1,k0为该算法的密钥。当 k0=0时,仿射密码技术退化为
乘法密码技术,当 k0=1时,仿射密码退化为移位替换密码
技术。
( 2)单字符多表替换密码技术:单字符多表替换密码技
术在安全性方面比单字符单表替换密码技术高。
单字符多表替换密码技术有很多,典型的有,
① Vigenere(费杰尔或维吉尼亚)密码技术
Vigenere密码技术本质上是一种多表简单加法密码技术
Vigenere密码技术循环地使用每一个替换表完成明文字母到密
文字母的转换 。 具体的加密过程,
设密钥 K= k1 k2 … kd,明文与密文字母表中均包含了 n个字
母 。 又设明文 m= m1m2…, 密文为 c= c1c2…, 则 ci=mi+ki(
mod n), 其中 t为正整数 。
当密钥的长度比明文短时, 密钥可以周期性地重复使用,
直至完成明文中的每个字母的加密 。
② Vernam(弗纳姆)密码技术
其加密方法是, 将明文和密钥分别表示成二进制序列, 再
把它们按位进行模二加法 。 设明文 m= m1m2…, 密钥 k= k1k2…
,其中 mi,ki∈ GF(2),i≥1,则密文 c= c1c2…, 其中 ci= mi
ki 。 这里 为模二加法 。
?
?
③ Hill(希尔)密码技术
它实际上是仿射密码技术的特例 。 其基本加密思想是将 n
个明文字母通过线性变换将它们转换为 n个密文字母的加密
算法 。 解密时只需做一次逆变换即可 。 密钥就是变换矩阵 。
2.换位密码技术
换位密码技术本质上就是一种置换密码技术, 但它置
换的不是字符, 而是书写的位置 。 换位密码技术的数学表
达式可以表示成:设明文为,m= m1m2…, 则密文 c=
c1c2…, ci =, i=1,2,…, n。 其中置换表为,
)(1 iLm?
序列密码技术也称为流密码技术(也属于对称密码技术
,实际上是对称密码技术的一种特殊情况),起源于 20世
纪 20年代的 Vernam密码技术,目前,序列密码技术是世界
各国的军事和外交等领域中的主要密码技术之一。







序列密码技术是将明文信息 m看成是连续的比特流(或
字符流) m1,m2,…,在发送端用密钥序列发生器产生的
密钥序列 k1,k2,…,对明文中的 mi进行加密,即,Ek( m
) = (m1) (m2)… 。
2,2,3 序列密码技术
在开始工作时,种子密钥 k对密钥序列产生器进行初
始化。 ki,mi,均为 1个比特(或一个字符),按照模二
加进行运算,得 ci=(mi)= miki;在接收端,对 ci进行解密
,解密算法为:( ci) = ciki=( miki) ki= mi。
序列密码技术的保密性取决于密钥的随机性 。 序列密码的
典型代表有 A5和 SEAL等 。
1,DES产生的历史背景
DES是美国国家标准局 NBS( 后改名为美国国家标准技术研
究所即 NIST) 为了满足计算机通信网络的发展对安全保密的
需求, 实现系统同一水平的安全性和兼容性, 降低数据加密
产品的生产成本, 推广使用密码算法而公开征集的一种用于
政府部门及民间进行计算机数据加密的密码算法 。
它也是密码技术史上第一个广泛应用于商用数据保密的
,公开的密码算法, 它开创了公开密码算法的先例 。
2,2,4 DES(数据加密标准)
DES分别在 1983,87,92,94年都通过了安全性评估,
作为信息安全处理标准一直使用到 1998年 ( 以后不再使用
), 这样 DES作为数据加密标准的使用期限已有 20余年了
。 但是在近年来, 对 DES的攻击不断显示出对其不利的因
素, 特别是随着计算机计算能力的提高, 也由于 DES的一
些先天性不足 ( 其密钥过短, 只有 56位, 也是导致其备受
批评的重要原因 ), 对 DES的成功攻击屡见报道 。 在这种
情况下, 大家对于替换 DES的要求日益增长, 最终 NIST于
1997年发布公告, 征集新的数据加密标准为联邦信息处理
标准的代替 DES。 2000年 10月, 公布了新的数据加密标准
AES。 尽管如此, DES仍然具有重要的参考价值, 它对于
我们掌握分组密码的基本理论与设计思想具有重要意义 。
DES公布和正式实施后,虽然有不少用户和专家对
它的设计问题提出过质疑和反对,但仍被迅速推广使
用,美国的许多专用系统纷纷宣布采用 DES作为其信
息处理安全标准。
2,DES算法
DES是一个分组密码算法, 使用 64位密钥 ( 除去 8位
奇偶校验, 实际密钥长为 56位 ) 对 64比特的数据分组 (
二进制数据 ) 加密, 产生 64位密文数据 。 DES是一个对
称密码体制, 加密和解密使用同一密钥, 解密和加密使
用同一算法 。 DES的所有保密性均依赖于密钥 。
( 1) DES的加密过程( 3个阶段)
第一阶段,初始置换 IP(如下页表所示)对于给定的明
文 x,通过初始置换 IP(在第一轮迭代运算之前,需要加密
的 64位明文首选通过初始置换 IP的作用,对输入分组实施
置换(即把 64位置换得第 2位,…,原来输入明文的第 7位
将作为置换结果的最后一位)获得,并将 x0分为两部分,
前面 32位记为 L0,后面 32位记为 R0。
58 50 12 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
初始置换 IP表
第二阶段,计算 16次迭代变换。
DES采用了典型的 Feistel结构, 是一个乘积结构的迭代密码算
法 。 其算法的核心是算法所规定的 16次迭代变换 ( 见下页图 ) 。
从图中可以看出, DES算法的 16次迭代变换具有相同的结构, 每
一次迭代变换都以前一次迭代变换的结果 ( 第一次迭代以作
x0=L0R0为输入 ) 和用户密钥扩展得到的子密钥 ki作为输入;每一次
迭代变换只变换一半数据, 它们将输入数据的右半部分经过函数 f
后, 将其输出与输入数据的左半部分进行异或运算, 并将得到的
结果作为新的右半部分, 原来的右半部分变成了新的左半部分 。
即,
?
?
?
??
?
??
?
),( 11
1
iiii
ii
kRfLR
RL
DES





DES的一次迭代过程
DES算法的安全性关键在于非线性函数 f的性质 。 在
DES算法中, f以长度为 32位的比特串作为输入, 产生的
中间结果为 48位, 并在最终产生长度为 32位的比特串作为
输出 。 f函数的计算过程可以用下图表示 。
Ⅰ, 扩展置换, f以前一轮迭代的结果 Ri-1作输入,首先根据一
个固定的扩展函数 E(也称为 E盒)“扩展”长度为 48位的比
特串,其中有 16比特出现了两次(如下页表所示)
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
扩展置换( E)表
下图是以第一个小分组 ( 第一位在第 4位 ) 为例,
给出了扩展函数 E的工作过程 。
扩展函数 E的第一分组的工作过程
Ⅱ,与子密钥异或,函数 f将扩展置换得到的 48位输出与子
密钥 ki( 48位)进行异或运算(按位模 2加)。
Ⅲ, S盒替代,以 6比特为单位将第 Ⅱ 步异或得到的结果分为
8个小分组,并将它们送入替代函数(即 S盒)中进行替代运
算。
DES算法中共有 8个 S盒 ( 见下页表 ) 。 每一个分组将对
应于一个 S盒进行替代运算 。 具体替代方式为:将 S盒的 6位输
入定义为 a1a2a3a4a5a6。 将 a1a6组成一个 2位二进制数, 对应着
表中的行号, 将 a2a3a4a5组成一个 4位二进制数, 对应表中的列
号, 交叉点的数据就是该 S盒的输出 。
S盒是函数 f的核心所在, 同时, 也是 DES算法的关键步骤
。 实际上除了 S盒以外, DES的其他运算都是线性的, 而 S盒
是非线性的, 它决定了 DES算法的安全性 。 48位的比特串 ( 分
为 8个 6位分组 ) 在经过 8个 S盒进行代替运算后, 得到 8个 4位
的分组, 它们重新组合在一起形成一个 32位的比特串 。 这个
比特串将进行下一步运算,P盒置换 。
S

Ⅳ, P盒置换,是将 S盒输出的 32位比特串根据固定的置换
P(也称为 P盒)置换到相应的位置,它也称为直接置换
( straight permutation)(下表给出了置换 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
P盒置换表
第三阶段,逆置换是初始置换 IP的逆置换,记为 IP-1(
如下表)。在对 16圈迭代的结果( R16L16),再使用逆
(初始)置换 IP-1后,得到的结果即可作为 DES加密的
密文 Y输出,即 Y=IP-1( R16,L16)。
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
逆初始置换 IP-1表
( 2) DES解密算法:与其加密算法使用的算法过程
相同。
( 3) DES算法的子密钥的生成过程 。
下页图是子密钥的生成过程,
子密钥的生成过程 如下,
子密
钥的
生成
过程

① 输入的密钥 K首先经过一个置换(称为置换选择 1( PC-
1,Permutation choice的缩写)见下页表所示),进行重新
排列。置换的结果( 56位)被当成两个 28比特的量 C0和 D0
,其中 C0是置换结果的前 28比特,而 D0是后 28比特。
C0 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36
D0 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4
PC-1(置换选择 1)
② 在计算第 i轮迭代所需的子密钥时,首先对 Ci-1和 Di-1进行
循环左移,分别得到 Ci与 Di。循环的次数取决于的 i值,如
果 i=1,2,9和 16,左移循环的次数等于 1,否则循环 2次,这些
经过循环移位的值作为下一次循环的输入。然后将以作 CiDi
作为另外一个由 DES算法固定置换选择(称为置换选择 2,
PC-2见下页表所示)的输入,所得到的置换结果即为第 i次
迭代所需的子密钥 ki。
14 17 11 24 1 5 3 28 15 6 21 10
23 19 12 4 26 8 16 7 27 20 13 2
41 52 31 37 47 55 30 40 51 45 33 48
44 49 39 56 34 53 46 42 50 36 29 32
PC-2(置换选择 2)
DES的工作模式由 FIPS PUB81定义,共有四种,电子
密码本模式 ECB、密文分组链接模式 CBC、密文反馈模式
CFB、输出反馈模式 OFB。
IDEA( International Data Encryption Algorithm,国
际数据加密算法 ) 算法中明文和密文的分组长度都是 64位
,密钥长 128位, 该算法既可用于加密, 也可用于解密 。 设
计原则采用的是基于, 相异代数群上的混合运算, 的设计
思想, 三个不同的代数群 ( 异或, 模 216加和模 216+1乘 ) 进
行混合运算, 所有这些运算 ( 仅有运算, 没有位的置换 )
都在 16位子分组上进行, 无论用硬件还是软件实现, 都非
常容易 ( 对 16位微处理器尤其有效 ) 。
IDEA的设计者在设计时已尽最大努力使该算法不受差
分密码分析的影响, 赖学嘉已证明 IDEA算法在其 8轮迭代
的第 4轮之后便不受差分密码分析的影响 。 IDEA比同时代
的算法,FEAL,REDOC-II,LOKI,Snefru和 Khafre都要
坚固, 而且到目前为止几乎没有任何关于 IDEA密码分析攻
击法的成果案例发表, 因此目前 IDEA的攻击方法只有, 直
接攻击, 或者说是, 密钥穷举, 法了 。
2,2,5 IDEA(国际数据加密算法)
NIST于 1997年初发起并组织了在全世界范围内广泛征
集新的加密标准算法的活动, 同时要求每一种侯选算法的
分组长度为 128位, 应当支持 128,192和 256比特的密钥长
度, 经过了几年的反复较量, 最终由比利时的密码学专家
Joan Daemen( Proton World International公司 ) 及 Vincent
Rijmen(Leuven大学 )所提出的加密算法 Rijndael( 中文英译
,荣代尔, ) 赢得了胜利, 成为了 21世纪新的加密算法
AES( Advanced Encryption Standard) 。 2001年 11月 26日
,NIST正式公布高级加密标准, 并于 2002年 5月 26日正式生
效 。
Rijndael以其算法设计的简洁, 高效, 安全而令世人关
注, 相信它会在国际上得到广泛应用 。
1,AES的产生历史背景
2,2,6 AES(高级加密标准)
Rijndael密码的设计中考虑到的三条准则,① 抗击目前
已知的所有攻击; ② 在多个平台上实现速度要快和编码紧
凑; ③ 设计简单 。
2,Rijndael密码的设计原则
? Rijndael中同样使用了迭代变换, 但与大多数分组密码不同
的是 Rijndael没有使用 Feistel结构 。
注,
? Rijndael是一个迭代型的具有可变分组长度和可变密钥长度
的分组密码, AES设计要求中要求分组长度为 128比特 ( 而
Rijndael支持 128,192或 256比特的分组长度 ), 因此, 在
AES规范中, 对分组长度限定为 128。
? AES算法的安全性仍然在讨论当中, 从目前的情况来看,
Rijndael尚无已知的安全性方面的攻击, 算法似乎具有良好的
安全性 。
?关于 AES的效率问题, 无论在有无反馈模式的计算环境下,
AES的硬件, 软件实现都表现出了良好的性能 。
2,3
非对称密码
技术
2,3,1 非对称密码技术概述
非对称密钥密码技术也称为双钥或公钥密码技术
,研究的基本工具不再象对称密码技术那样是代换和
置换,而是数学函数。
采用非对称密码技术的每个用户都有一对密钥:
一个是可以公开的(称为加密密钥或公钥),可以象
电话号码一样进行注册公布;另一个则是秘密的(称
为秘密密钥或解密密钥或私钥,它由用户严格保密保
存)。它的主要特点是将加密和解密能力分开,因而
可以实现多个用户加密的信息只能由一个用户解读,
或由一个用户加密的信息而多个用户可以解读。前者
可以用于公共网络中实现通信保密,而后者可以用于
实现对用户的认证。
下图是公钥密码技术示意图,
公钥密码的加密变换 E( eB,m)与解密交换 D( dB,c
)应满足这样一些要求:① D( dB,c)是 E( eB,m)
的逆变换,即对任何的明文 m有,D( dB,c) = D( dB, E
( eB,m)) =m;② 在已知加密密钥 eB时,E( eB,m)
的计算不难;在已知解密密钥 dB时,D( dB,c)的计算也
不难;③ 若不知道 dB,那么即使知道 eB,具体的加密与
解密算法过程及密文 c,确定明文的计算是不可行的。
设计公开密钥密码体制就变成了寻找陷门单向函数。
可以提供单向函数的三大数学难题分别是:① 大整数分解
问题(简称 IFP);② 离散对数问题(简称 DLP);③ 椭
圆曲线离散对数问题(简称 ECDLP)。
如果根据所依据的难解问题,公钥密码体制可以分
为这样 3类,
① 大整数分解问题类;
② 离散对数问题类;
③ 椭圆曲线类(也时被归为离散对数问题类)。
? 基于大整数分解问题的公钥密码体制
? 基于有限域中的离散对数问题
? 基于代数编码系统的 Mceliece公钥密码算法
? 基于有限自动机的公开密码技术
?基椭圆曲线的公开密钥密码技术
其中,除椭圆曲线公钥密码算法是在椭圆曲线上进行
运算之外,其余各公钥密码算法均在有限域上进行。
人们已经研究出的公钥密码算法,
2,3,2 RSA
RSA的名字来源于它们的创建者。 1978年由麻省理
工学院的 Ronald.L Rivest、以色列魏茨曼科学中心的 Adi
Shamir和南加洲大学的 Lenoard M,Adleman发表了著名的
论文,A Method for Obtaining Digital Signature and Public-
Key Cryptosystems(获得数字签名和公开密钥密码系统的
一种方法)”,并提出的一种用数论构造的、也是迄今为止
理论上最为成熟完善的公钥密码技术 —— RSA,该技术已得
到广泛的应用。在 RSA算法中,它使用广为公开的公钥加密
通信,密文只能被持有与之相配的私钥的人才能解开。
1,RSA的基本原理,RSA是基于大整数难分解的公钥
密码技术。
RSA是基于这样一个十分简单的数论事实而设计的:将
两个大的素数相乘十分容易,但想分解它们是十分困难的,
因此将乘积公开作为加密密钥。
2.算法描述
基于大整数分解的公钥密码体制的安全性主要依赖
于大整数(大合数)的难分解问题。大整数的分解问题可
以被表述:已知整数 n,n是两个素数的积,即 n=p.q 。求
解 p,q的值。
大整数分解是计算上困难的问题,目前还不存在一般
性的有效解决算法。
( 1)密钥的产生
① 选两个保密的大素数 p和 q;
② 计算 n=p*q,φ( n) =( p-1) ( q-1), 其中 φ( n) 是 n的欧拉函数
值;
③ 选一整数 e,满足 1<e<φ( n), 且 gcd( φ( n), e) =1,即 φ( n
) 与 e互质;
④ 再取另一个数 d,满足 d*e=1 mod φ( n), ( 表示 d*e除以 φ( n)
的余数为 1,或者说 d是 e在模 φ( n) 下的乘法逆元, 因 e与 φ( n) 互质
,由模运算可知, 它的乘法逆元一定存在 ) ;
⑤ 以 PK={e,n}为公钥,SK={d,n}为私钥。
( 2)加密,
加密时首先将明文 m比特串分组,使得每个分组对
应的十进制数小于 n,即分组的长度小于 log2n。然后对
每组明文分组,作加密运算,
nmc e m o d?
( 3)解密,
对密文分组的解密运算为,ncm
d m o d?
3,RSA的安全性
RSA的安全性是基于分解大整数的困难性假定,之所以
假定是因为至今还未能证明分解大真整数就是 np问题,也许
有尚未发现的多项式时间分解算法。
估计在未来一段比较长的时期,密钥长度介于 1024比特
至 2048比特之间的 RSA是安全的。
为了保证 RSA算法的安全性,p和 q的选择时须注意,
( 1) p和 q的长度相差不要太大;
( 2) p-1和 q-1都应应大数因子;
( 3) gcd( p-1,q-1)的值应较小。此外,研究结果表明,
如果 e< n且 d< n1/4,则 d能被较容易地确定。
2,3,3 Diffie-Hellman密钥交换协议
Diffie-Hellman的安全性是基于 zp上的离散对数问题。设
p是一个满足要求的大素数,0<a<p,并且 a是循环群 zp的生
成元,a和 p公开,所有用户都可以得到 a和 p。
在两个用户 A与 B通信时,它们可以通过如下步骤协商
通信所使用的密钥,
① 用户 A选取一个大的随机数 rA( ),计算,
,并且把 SA发送给用户 B;
20 ??? prA
)(m o d pas ArA ?
② 用户 B选取一个 m随机数 rB( ),计算,
。并且把 SB发送给用户 A;
20 ??? prB
)(m o d pas BrB ?
③ 用户 A计算,用户 B计算 。 )( m o d pSK ArB? )( m o d' pSK Br
A?
由于有,
这样通信双方得到共同的密钥 k,这样就可以实现交换
密钥了。
')( m o d)( m o d)( m o d))( m o d()( m o d kpSpappapSK BBAABA rArrrrrB ?????
2,3,4 ElGamal公钥密码技术
ElGamal密码体制的安全性是基于离散对数的难解性,
既可用于加密又可用于数字签名的公钥密码技术。到目前
为止,它仍是一个安全性能良好的公钥体制,下面讨论其
算法。
采用 ElGamal体制的密码系统中,所有的用户都共享
一个素数 p以及一个 zp的生成元 a。系统中的每一用户 u都随
机挑选一个整数 d,1≤d≤p-2,并计算:,然后
,用户 u公开 作为公开密钥并保存整数 d作为自己的秘密
密钥。
pa d m o d??
?
( 1)加密算法:假设用户 A想传送信息给 B,A采用如
下算法加密明文信息 m,
① 用户 A将 x编码成一个在 0到 p-1之间的整数,m作为传输
的明文( m∈ {0,1,……..p -1}(这里的 m是编码后的明文);
② 用户 A挑选一个随机数 k(1≤k≤p-2),并计算,c1=ak(
mod p)(注,k需保密);
③ 用户 A计算,其中 是 B的公
钥。
)m o d(m o d2 papmc dk ?? ?? ?
④ 这样 c=(c1,c2)是密文,用户 A把二元组 (c1,c2)传送给 B。
( 2)解密算法:用户 B接收到二元组 (c1,c2)后,计算,
。由于,
= =,这
样用户 B通过二元组 (c1,c2)解密就得到了正确的明文 m了。
)(m o d)( 112 pcc d ?
)( m o d)( 112 pcc d ? 1)))( m o d) ), ( (( m o d.( ?dkk papm ? mpam kd ?? )( m o d)).(.( 1?
2,3,5 椭圆曲线密码算法
使用基于椭圆曲线密码体制的安全性依赖于由椭圆曲
线群上的点构成的代数系统中的离散对数问题的难解性。
它与有限域上的离散对数问题或整数分解问题的情形不
同,与其他公钥体制相比,椭圆曲线密码体制的优势在于:
密钥长度大大减少( 256比特的 ECC密钥就可以达到对称密
钥 128比特的安全水平,如下表所示),实现速度快等。这
是因为随着计算机速度的加快,为达到特定安全级别所需的
密钥长度的增长,相比之下 RSA及使用有限域的公钥密码体
制要慢得多。
ECC的密钥长度
ECC与其它密码算法的密钥长度对照表
其它算法的密钥长度
160 RSA/DSA 1024
211 RSA/DSA 2048
256 AES-Small 128
384 AES-Medium 192
521 AES-Large 256
1.椭圆曲线( EC)上的基本运算
在 EC上定义的加法运算如下,
对于,,P+Q的运算结果如下,
① P+Ο=P ( Ο为加法单位元, 也是在 EC上的一个无穷远
点的特殊点, 也看作 Ο) ;
② 若 x1=x2,y1=-y2,那么 P+Q=Ο( 即为无穷远点 ) ;
③ 若不满足②,则 P+Q=(x3,y3),其中,
ECyxp ??? ),( 11 ECyxQ ?? ),( 22
??
???
???
???
)( m o d)(
)( m o d
1313
2123
pyxxy
pxxx
?
?
?
?
?
??
?
?
?
?
?
?
?
?
QPp
y
ax
QPp
xx
yy


),( m o d
2
3
),( m o d
1
2
1
12
12
?
2,EC上的密码体制
( 1) EC上的离散对数问题
EC上的离散对数问题定义为:在已知点 p与 np的情况
下,求解正整数 n的值。
( 2) Diffie-Hellman密钥交换协议( ECDH)
首先, 选择一个素数和 EC参数 a和 b,则可以得方程
y2≡x3+ax+b( mod p), a,b∈ zp。 4a3+27b2( mod p) ≠0
表达的 EC及其上面的点构成 Abel群 EP( a,b) 。
其次, 在 EC中选取 EP( a,b) 的一个基点 ( 生成元 )
G=(x0,y0),要求 G的阶是一个大的素数, G的阶数满足
nG=Ο的最小正整数 n。 EP( a,b) 和 G作为公开参数 。
最后, 两用户 A和 B之间的密钥交换可以如下方式进行,
① A随机选择一个比 n小的整数 nA,作为 A的私钥, 然后
A产生一个公钥 pA=nAG,这个公钥是 EP( a,b) 中的一
个点;
② B也类似地选择一个私钥 nB,并计算一个公钥 pB=
nBG,这个公钥也是 EP( a,b) 中的一个点;
③ A计算 k1=nApB,B计算 k2=nBpA。
由于 k1=nApB=nA(nBG)=nB(nAG)=k2,这样 A和 B就产
生了双方共享的秘密密钥 。
为了破译这个密码方案, 攻击者需要能够在给定 G和
kG时计算 k,而实际上计算 k是十分困难的 。
( 3) ElGamal公钥密码体制( ECELG)
基于椭圆曲线 EC的 ELGamal体制同样定义 EC群 Ep(a,b)
及其在 EC中的一个基点 G=(x0,y0),两者的选择原则与
Diffie-Hellman的体制中所描述的原则相同 。
将 Ep(a,b)和 G=(x0,y0)作为公开的参数, 系统中每个
用户都可以获得 Ep(a,b)和 G。 另外, 系统中的每个用户
U都将随机的挑选一个整数 nU,并计算 pU=nUG,然后用
户 U公开 pU作为自己的公钥, 并保存 nU作为私钥 。
① 加密算法 ( 假设用户 A需要发送明文 m给用户 B),
首先, 用户 A将需要发送的明文 m通过编码 ( 这里不对编码做
介绍, 可参与有关文献 ) 嵌入到 EC上的一个点 Pm=(xm,ym)。
其次, 用户 A选取 nA( 整数 ) ( 并以 pA=nAG作为公钥 ),
pB=nBG( 是 B的公钥 ) 用户 A作如下的计算, 产生以下点作为明
文,Cm=(nAG,pm+nApB)。
② 解密算法:解密时, 以密文点对中的第二个点减去用自己的
私 钥 与 第 一 个 点 倍 乘, 即,pm+nApB-nBnAG=pm+nAnBG-
nAnBG=pm。
若攻击者想由 Cm得到 Pm,就必须知道 nB,而要得到 nB,只有
通过椭圆曲线上的两个已知点 G和 nBG来得到, 这意味着必须求
椭圆曲线上的离散对数, 因而不可行 。
2,4
密钥分配

管理技术
2,4,1 密钥分配方案
密钥分配技术一般需要解决两个方面的问题:为减轻
负担, 提高效率, 引入自动密钥分配机制;为提高安全
性, 尽可能减少系统中驻留的密钥量 。
1.密钥分配的基本方法
对于通信双方 A和 B,密钥分配可以有以下几种方法,
① 密钥由 A选定, 然后通过物理方法安全地传递给 B。
② 密钥由可信赖的第三方 C选取并通过物理方法安全地发送给 A
和 B。
③ 如果 A和 B事先已有一密钥, 那么其中一方选取新密钥后, 用
已有的密钥加密新密钥发送给另一方 。
④ 如果 A和 B都有一个到可信赖的第三方 C的保密信道, 那么 C就
可以为 A和 B选取密钥后安全地发送给 A和 B。
⑤ 如果 A和 B都在可信赖的第三方 C发布自己的公开密钥, 那么
他们用彼此的公开密钥进行保密通信 。
2.对称密码技术的密钥分配方案
( 1)集中式密钥分配方案
下图就是具有密钥分配中心的密钥分配方案 。 图中假定 A和 B
分别与 KDC有一个共享的密钥 Ka和 Kb,A希望与 B建立一个逻辑
连接, 并且需要一次性会话密钥来保护经过这个连接传输的数据
,具体过程如下,
① A→ KDC, IDA∥ IDB∥ N1 。 A
向 KDC发出会话密钥请求 。 请求
的消息由两个数据项组成:一是
A和 B的身份 IDA和 IDB,二是本次
业务的唯一标识符 N1,每次请
求所用的 N1都应不同, 常用一
个时间戳, 一个计数器或一个随
机数作为这个标识符 。 为防止攻
击者对 N1的猜测, 用随机数作
为这个标识符最合适 。
具有密钥分配中心的密钥分配方案
② KDC→ A,EKa[Ks∥ IDA∥ IDB∥ N1∥ EKb[Ks∥ IDA]]。 KDC
对 A的请求发出应答 。 应答是由加密 Ka加密的信息, 因此只
有 A才能成功地对这一信息解密, 并 A相信信息的确是由
KDC发出的 。
③ A→ B,EKb[ Ks∥ IDA]。 A收到 KDC响应的信息后, 同时将会
话密钥 Ks存储起来, 同时将经过 KDC与 B的共享密钥加密过的
信息传送给 B。 B收到后, 得到会话密钥 Ks,并从 IDA可知对方
是 A,而且还丛 EKb知道 Ks确实来自 KDC。 由于 A转发的是加密
后密文, 所以转发过程不会被窃听 。
④ B→ A,EKs[ N2]。 B用会话密钥加密另一个随机数 N2,并将
加密结果发送给 A,并告诉 A,B当前是可以通信的 。
⑤ A→ B,EKs[f( N2) ]。 A响应 B发送的信息 N2,并对 N2进行
某种函数变换 ( 如 f函数 ), 同时用会话密钥 Ks进行加密, 发送
给 B。
实际上在第③步已经完成了密钥的分配,第④、⑤两
步结合第③步执行的是认证功能,使 B能够确认所收到的
信息不是一个重放。
( 2)分布式密钥分配方案
分布式密钥分配方案是指网络通信中各个通信方具有相同
的地位, 它们之间的密钥分配取决于它们之间的协商, 不手
受何其他方的限制 。 这种密钥分配方案要求有 n个通信方的网
络需要保存 [n(n-1)/2]个主密钥, 对于较大型的网络, 这种方
案是不适用的, 但是在一个小型网络或一个大型网络的局部
范围内, 这中方案还是有用的 。
如果采用分布式密钥分配方案, 通信双方 A和 B建立会话密钥的
过程包括以下过程 ( 见下页图所示 ),
分布式密钥分配方案
① A→ B,IDA∥ N1。 A向 B发出一个要求会话密钥的请求, 内容
包括 A的标识符 IDA和一个一次性随机数 N1,告知 A希望与 B通信
,并请 B产生一个会话密钥用于安全通信 。
② B→ A,EMKm[Ks∥ IDA∥ IDB∥ f( N1) ∥ N2]。 B使用与 A
共享的主密钥 MKm对应答的信息进行加密并发送给 A。 应答
的信息包括 B产生的会话密钥 Ks,A的标识符 IDA,B的标识
符 IDB,f( N1) 和一个一次性随机数 N2。
③ A→ B,EKs[f( N2) ]。 A使用 B产生的会话密钥 Ks对 f( N2
) 进行加密, 并发送给 B。
3.非对称密码技术的密钥分配方案
( 1)公钥的分配
非对称密码技术的密钥分配方案主要包括两方面的内容:
非对称密码技术所用的公钥的分配和利用非对称密码技术来
分配对称密码技术中使用的密钥。
获取公钥的途径有多种,包括公开发布、公用目录
、公钥机构和公钥证书。
① 公开发布:是指用户将自己的公钥发送给另外另外一个参与
者, 或者把公钥广播给相关人群 。 这种方法有一个非常大的缺点
:任何人都可以伪造一个公钥冒充他人 。
② 公用目录:是由一个可信任的系统或组织建立和管理维护公用
目录, 该公用目录维持一个公开动态目录 。 公用目录为每个参与者
维护一个目录项 {标识符, 公钥 },每个目录项的信息必须进行安全
认证 。 任何人都可以从这里获得需要保密通信的公钥 。 与公开发布
公钥相比, 这种方法的安全性高一些 。 但也有一个致命的弱点, 如
果攻击者成功地得到目录管理机构的私钥, 就可以伪造公钥, 并发
送给给其他人达到欺骗的目的 。
③ 公钥机构:为更严格控制公钥从目录分配出去的公钥更加安全
,为此需要引入一个公钥管理机构来为各个用户建立, 维护和控
制动态的公用目录 。 与单纯的公用目录相比, 该方法的安全性更
高 。 但这种方式也有它的缺点:由于每个用户要想和其他人通信
都需求助于公钥管理机构, 因而管理机构可能会成为系统的瓶颈
,而且由管理机构维护的公用目录也容易被攻击者攻击 。
④ 公钥证书:是在不与公钥管理机构通信, 又能证明其他通
信方的公钥的可信度, 实际上完全解决了公开发布及公用目
录的安全问题 。 采用公钥证书是为了解决公开密钥管理机构
的瓶颈问题 。
公钥证书即数字证书是由授权中心 CA( Certificate Authority
) 颁发的 。 证书的形式为 CA=ESKCA[T,IDA,PKA],其中 IDA是
用户 A的身份标识符, PKA是 A的公钥, T是当前时间戳, SKCA
是 CA的私钥 。
公钥证书的发放(产生)过程如下图所示 用户还可以把自己的
公钥通过公钥证书发给
另一用户, 接收方使用
CA的公钥 PKCA对证书
加以验证,
DPKCA[ESKCA[T,IDA,PKA]]
=[T,IDA,PKA]。
( 2)利用非对称密码技术进行对称密码技术密钥
的分配(常用的有以下两种),
① 简单分配:下图就是用非对称密码技术建立会话密钥的过程
。 但这一分配方案容易遭到主动攻击, 假如攻击者已经接入 A和
B双方的通信信道, 可以轻易地截获 A,B双方的通信 。
用非对称密码技术建立会话密钥 ② 具有保密和认证功能的密钥
分配:针对简单分配密钥的缺
点, 人们又设计了具有保密和
认证功能的非对称密码技术的
密钥分配, 如下图所示 。 密钥
分配过程既具有保密性, 又具
有认证性, 因此既可以防止被
动攻击, 也可以防止主动攻击

具有保密和认证功能的密钥分配
2,4,2 密钥管理技术
密钥管理涉及密钥的生成、使用、存储、备份、
恢复以及销毁等,涵盖了密钥的整个生存周期。
1.密钥的生成
密钥长度足够长也是保证保证安全通信的必要条件之一
,决定密钥长度需要考虑多方面的因素:数据价值有多大:
数据要多长的安全期?攻击者的资源情况怎样?应该注意到
,计算机的计算能力和加密算法的发展也是密钥长度的重要
因素。
密钥的生成一般与生成的算法有关,大部分密钥生成算
法采用随机或伪随机过程来产生随机密钥。
2.密钥的使用,密钥的使用是指从存储介质上获得密钥
进行加密和解密的技术活动。
3.密钥的存储,密钥的存储分为无介质、记录介质
和物理介质等几种。
密钥备份是指在密钥使用期内,存储一个受保护的拷贝
,用于恢复遭到破坏的密钥。
密钥的恢复是指当一个密钥要由于某种原因被破坏了,
在还没有被泄露出去以前,从它的一个备份重新得到密钥的
过程。
密钥的备份与恢复保证了即使密钥丢失,由该密钥加密
保护的信息也能够恢复。密钥托管技术就能够满足这种需求
的一种有效的技术。
4.密钥的备份与恢复
密钥必须定期更换,更换密钥后原来的密钥必须销毁。
密钥不再使用时,该密钥的的所有拷贝都必须删除,生成或
构造该密钥的所有信息也应该被全部删除。
5.密钥的销毁
2,4,3 密钥托管技术
密钥托管技术是通过一个防窜扰的托管加密芯片( Clipper
芯片)来实现,该技术包括两个主要的核心内容,
1.密钥托管技术简介
( 1) Skipjack加密算法:是由 NSA设计的,用于加解密用户
之间通信的信息。它是一个对称密钥分组加密算法,密钥长
为 80bits,输入和输出分组长度为 64bits。该算法的实现方式
采用供 DES使用的联邦信息处理标准( FIPS-81)中定义的 4
种实现方式。
( 2) LEAF( Law Enforcement Access Field,法律实施访问
域):通过这个访问域,法律实施部门可以在法律授权的情
况下,实现对用户之间通信的监听(解密或无密钥)。这也
看成是一个“后门”。
密钥托管技术具体实施时有 3个主要环节:生产托管
Clipper芯片、用芯片加密通信和无密钥存取。
2.密钥托管密码技术的组成
密钥托管密码技术在逻辑上分为 3个主要的模块(如下图
所示),USC( User Security Component,用户安全模块)、
KEC( Key Escrow Component,密钥托管模块)和 DRC(
Data Recovery Component,数据恢复模块)。这些逻辑模块
是密切相关的,对其中的一个设计将影响着其他模块。这几个
模块的相互关系,USC用密钥 K加密明文,并且在传送的同时
传送一个数据恢复域 DRF( Data Recovery Field),DRC则从
KEC提供的和 DRF中包含的信息中恢复出密钥 K来解密密文。
密钥托管密码技术的组成
( 1) USC,USC由软件, 硬件组成 ( 一般情况下,
硬件比软件安全, 不易发生窜扰 ), 提供数据加密 /解
密的能力, 执行支持数据恢复的操作, 同时也支持密
钥托管 。 这种支持体现在将数据恢复域 ( DRF) 附加
到数据上 。 USC的功能表现在以下几个方面,
① 提供具有数据加解密能力的算法及支持密钥托管功能
的硬件或相关软件 。
② 提供通信 ( 包括电话, 电子邮件及其他类型的通信,
由相关部门在法律许可的条件下对通信的监听后执行对
突发事件的解密 ) 和数据存储的密钥托管 。
③ 提供突发解密的识别符 ( 包括用户或 USC的识别符,
密钥的识别符, KEC或托管代理机构的识别符 ) 和密钥
( 包括属于芯片单元密钥 KEC所使用的全局系统密钥,
密钥还可以是公钥或私钥, 私钥的备份以托管的方式有
托管机构托管 ) 。
( 2) KEC:可以作为公钥证书密钥管理系统的组成部
分, 也可以作为通用密钥管理的基础部分 。 它由密钥
管理机构控制, 主要用于向 DRC提供所需的数据和服
务, 管理着数据恢复密钥的存储, 传送和使用 。 数据
恢复密钥主要用于生成数据加密密钥, 因此在使用托
管密码加密时, 所有的托管加密数据都应与被托管的
数据恢复密钥联系起来 。
数据恢复密钥主要由以下内容组成,
① 密钥选项
② 密钥分割
③ 密钥的产生和分配
④ 密钥托管时间
⑤ 密钥更新
⑥ 密钥的全部和部分
⑦ 密钥存储
KEC在向 DRC提供诸如托管的密钥等服务时, 服务
包括如下部分,
① 授权过程:对操作或使用 DRC的用户进行身份认证
和对访问加密数据的授权证明 。
② 提供的服务有,
? l 传送数据恢复密钥 ( 主密钥不提供 )
? l传送派生密钥
? l解密密钥
③ 数据传输,KEC和 DRC之间的数据传输可以是人工
的也可以是电子的。
( 3) DRC:由算法, 协议和设备组成 。 DRC利用 KEC所
提供的和在 DRF中包含的信息中恢复出数据加密密钥, 进
而解密密文, 得到明文 。 仅仅在执行指定的已授权的数据
恢复时使用 。
2,4,4 PKI(公钥基础设施)技术
PKI技术是目前网络安全建设的基础与核心,是
电子商务安全实施的基本保障,因此,对 PKI技术的
研究和开发成为目前信息安全领域的热点。
1.什么是 PKI(Public Key Infrastructure)?
PKI是一种利用公钥密码理论和技术建立起来的提供信
息安全服务的基础设施,旨在从技术上解决网上身份认证、
信息的完整性和不可抵赖性等安全问题,为诸如电子商务、
电子政务、网上银行和网上证券等网络应用提供可靠的安全
服务的基础设施。
2,PKI的原理
PKI是一个利用现代密码学的公钥密码理论和技术
、并在开放的 Internet网络环境中建立起来的提供数据
加密以及数字签名等信息安全服务的的基础设施。 PKI
引入证书机制来解决密钥的分配与管理问题。
PKI是一种新的安全技术,它是一种遵循标准的密
钥管理平台,能为网络应用透明地提供采用加密和数字
签名等密码技术服务所必需的密钥和证书管理。
证书是由认证中心,也称证书机构( CA,Certificate
Authority,它是通信双方都信赖的颁发证书的机构,是 PKI的
核心组成部分)颁发的。 CA颁发的证书类似于现实生活中公安
局颁发的身份证。 CA颁发的证书上有 CA的数字签名,即用自
己的私钥加密的。用户在获得自己的身份证书后,就可以使用
证书来表明自己的身份,接收方只需要使用 CA的公钥来验证用
户证书,如果验证成功,就可以信任该证书描述的用户的身份
和证书上公钥是真实的。证书的签发 /验证充分利用了公开密钥
算法的数据签名和验证功能,杜绝了冒充身份的可能性。
3,PKI的组成
PKI在实际应用上是一套软硬件系统和安全策略的集合
,它提供了一整套安全机制,使用户在不知道对方身份或分
布地很广的情况下,以证书为基础,通过一系列的信任关系
进行通讯和电子商务交易。
完整的 PKI系统必须具有权威认证机构 (CA)、数字证书库
、密钥备份及恢复系统、证书作废系统、应用接口( API)等
基本构成部分,构建 PKI也将围绕着这五大部分来构建。
( 1) 认证机构 ( CA),即数字证书的申请及签发机构,
CA必须具备权威性的特征, 它是 PKI的核心, 也是 PKI的信
任基础, 它管理公钥的整个生命周期 。 其作用包括发放证书
,规定证书的有效期和通过发布证书废除列表 ( CRL,
Certificate Revocation Lists,又称证书黑名单 ) 确保必要的
情况下可以废除证书 。
( 2) 数字证书库:用于存储已签发的数字证书及公钥
,用户可由此获得所需的其他用户的证书及公钥 。
( 3) 密钥备份及恢复系统:密钥的备份与恢复必须由可
信的机构来完成 。 并且, 密钥备份与恢复只能针对解密
密钥, 签名私钥是为确保其唯一性而不能够作备份 。
( 4) 证书作废系统:证书作废处理系统是 PKI的一个必备
的组件 。 作废证书一般通过将证书列入证书废除列表 CRL
( CRL一般存放在目录系统中 ) 中来完成 。 通常, 系统中
由 CA负责创建并维护一张及时更新的 CRL,而由用户正
在验证证书时负责检查该证书是否在 CRL之列 。 证书的作
废处理必须在安全及可验证的情况下进行, 必须确保 CRL
的完整性 。
( 5) 应用接口 ( API),一个完整的 PKI必须提供良好的
应用接口系统, 使得各种各样的应用能够以安全, 一致,
可信的方式与 PKI交互, 确保安全网络环境的完整性和易
用性, 同时降低管理维护成本 。
4,PKI标准
PKI标准化主要有两个方面:一是 RSA公司的公钥加密
标准 PKCS( Public Key Cryptography Standards),它定义
了许多基本 PKI部件,包括数字签名和证书请求格式等;二
是由 Internet工程任务组 IETF( Internet Engineering Task
Force)和 PKI工作组 PKIX( Public Key Infrastructure
Working Group)所定义的一组具有互操作性的公钥基础设
施协议。在今后很长的一段时间内,PKCS和 PKIX将会并存
,大部分的 PKI产品为保持兼容性,也将会对这两种标准进
行支持。
( 1) 第一代 PKI标准,RSA公司的公钥加密标准 ( Public Key
Cryptography Standards,PKCS) 系列, ITU-T X.509,公钥
基础设施 X.509( Public Key Infrastructure X.509,PKIX) 标准
系列, 无线应用协议 ( Wireless Application Protocol,WAP) 论
坛的无线公钥基础设施 ( Wireless Public Key Infrastructure,
WPKI) 标准 。
( 2) 第二代 PKI标准,XML密钥管理规范 ( XML Key
Management Specification,XKMS), 被称为第二代 PKI
标准 。
XKMS由两部分组成,XML密钥信息服务规范 ( XML Key
Information Service Specification,X-KISS) 和 XML密钥注
册服务规范 ( XML Key Registration Service Specification
,X-KRSS) 。
目前 XKMS已成为 W3C 的推荐标 准, 并已 被微软,
Versign等公司集成于他们的产品中 ( 微软已在 ASP.net中
集成了 XKMS,Versign已发布了基于 Java的信任服务集成
工具包 TSIK) 。
5,PKI的应用及展望
( 1) 虚拟专用网络 ( VPN), VPN 是一种架构在公用通信基
础设施上的专用数据通信网络, 利用网络层安全协议 ( 尤其是
IPSec) 和建立在 PKI上的加密与签名技术来获得机密性保护 。
( 2) 安全电子邮件:作为 Internet上最有效的应用, 电子
邮件凭借其易用, 低成本和高效已经成为现代商业中的一种
标准信息交换工具 。
( 3) Web安全:浏览 Web页面是人们最常用的访问 Internet的
方式 。
( 4) 应用编程接口 API,应用编程界面 API( Application
Programming Interfaces) 则定义了如何使用这些协议, 并为上
层应用提供 PKI服务 。
目前, API没有统一的国际标准, 大部分都是操作系统或某一
公司产品的扩展, 并在其产品应用的框架内提供 PKI服务 。 当前
,有 很 多可 以让 开 发者 选 择的 API类型 。 IETF ( Internet
Engineering Task Force,是一个研究 Internet问题的组织 ) 建议
标准为通用安全服务 API,GSS-API( Generic Security Service
Application Program Interface), 它提供了一种接口与网络机
制和网络协议相互独立的实现 。
目前两个比较常用的安全 API接口,CryptoAPI和 CDSA接口

2,4,5 PMI(授权管理基础设施)技术
1,PMI简介
PMI( Privilege Management Infrastructure), 即授权
管理基础设施, 是国家信息安全基础设施 NISI( National
Information Security Infrastructure,NISI由 PKI和 PMI
组成, 其中, 公钥基础设施构成所谓的 PKI信息安全平台
,提供智能化的信任服务;而授权管理基础设施 PMI构成
所谓的授权管理平台, 在 PKI信息安全平台的基础上提供
智能化的授权服务 。 ) 的一个重要组成部分, 目标是向用
户和应用程序提供授权管理服务, 提供用户身份到应用授
权的映射功能, 提供与实际应用处理模式相对应的, 与具
体应用系统开发和管理无关的授权和访问控制机制, 简化
具体应用系统的开发与维护 。
授权管理基础设施 PMI是一个属性证书, 属性权威, 属性
证书库等部件构成的综合系统, 用来实现权限和证书的产生
,管理, 存储, 分发和撤销等功能 。 PMI使用属性证书表示
和容纳权限信息, 通过管理证书的生命周期实现对权限生命
周期的管理 。 属性证书的申请, 签发, 注销, 验证流程对应
着权限的申请, 发放, 撤消, 使用和验证的过程 。 而且, 使
用属性证书进行权限管理方式使得权限的管理不必依赖某个
具体的应用, 而且有利于权限的安全分布式应用 。
授权管理基础设施 PMI以资源管理为核心, 对资源的访问控制
权统一交由授权机构统一处理, 即由资源的所有者来进行访问控
制 。 同公钥基础设施 PKI相比, 两者主要区别在于,PKI证明用
户是谁, 而 PMI证明这个用户有什么权限, 能干什么, 而且授权
管理基础设施 PMI需要公钥基础设施 PKI为其提供身份认证 。
PMI与 PKI在结构上是非常相似的 。 信任的基础都是有关权威机
构, 由他们决定建立身份认证系统和属性特权机构 。
在 PKI中, 由有关部门建立并管理根 CA,下设各级 CA(
Certificate Authority), RA (Registration Authority)和其它
机构;在 PMI中, 由有关部门建立授权源 SOA (Source of
authority), 下设分布式的 AA (Attribute authority)和其它机
构 。
建立在 PKI基础上的 PMI,以向用户和应用程序提供权限
管理和授权服务为目标,主要负责向业务应用系统提供与应用
相关的授权服务管理,提供用户身份到应用授权的映射功能,
实现与实际应用处理模式相对应的、与具体应用系统开发和管
理无关的访问控制机制,极大地简化应用中访问控制和权限管
理系统的开发与维护,并减少管理成本和复杂性。
2,PMI技术的优势
基于 PMI技术的授权管理模式主要存在以下三个方
面的优势,( 1)授权管理的灵活性
( 2)授权操作与业务操作相分离
( 3)多授权模型的灵活支持
2,5
数字签名
2,5,1 数字签名及其原理
1.数字签名的原理
数字签名的基本原理 ( 过程 ), 实际上完整的数字签名
过程 ( 包括从发方发送信息到收方安全的接收到信息 ) 包
括签名和签别两个过程,
( 1) 签名:假设通信双方 A和 B( 设 A为发方, B为收方 ), 发
方 A用其私钥 SKA和解密算法 D对信息进行签名, 将结果 DSKA(
M) 传给接收方 B,B用已知的 A的公钥 PKA和加密算法 E得出
EPKA( DSKA( M)) =M。 由于私钥 SKA只有 A知道, 所以除了 A
外无人能产生密文 DSKA( M) 。 这样信息就被 A签名了 。
( 2)签别:假若 A要抵赖曾发送信息 M给 B,B可将 M及 DSKA
( M)出示给第三方(仲裁方)。第三方很容易用 PKA去证实 A
确实发送 M给 B了。反之,若 B伪造 M’,则 B不敢在第三方面前
出示 DSKA( M)。这样就证明 B伪造了信息。
实现数字签名也同时实现了对信息来源的签别。但
是,对传送的信息 M本身却未保密。








由于使用公钥密码技术对信息进行加密速度非常慢,如
果对发送的整个信息进行加密来实现签名是非常耗时的。因
此密码学家研究出了一种办法来快速生成代表发方的消息的
简短的、独特的信息摘要(也称为“数字指纹”),这个摘
要可以被加密并作为发方的数字签名。产生消息摘要的快速
加密算法称为单向散列函数。
2.数字签名的步骤
( 1) 使用单向散列算法对原始信息进行计算, 得到一个固
定长度的信息摘要 ( Message Digest,实际上是一个固定长
度的字符串 ) 。
( 2) 发送方用自己的私钥加密生成的信息摘要, 生成发送方的
数字签名 。
( 3) 发送方把这个数字签名作为要发送信息的附件和明文信息
一同用接收方的公钥进行加密, 将加密后的密文一同发送给接
收方 。
( 4) 接收方首先把接收到的密文用自己的私钥解密, 得到明文
信息和数字签名, 再用发方的公钥对数字签名进行解密, 随后
使用相同的单向散列函数来计算解密得到的明文信息, 得到信
息摘要 。 如果计算出来的信息摘要和发方发送给他的信息摘要
( 通过解密数字签名得到的 ) 是相同的, 这样接收方就能确认
数字签名确实是发送方的, 否则就认为收到的信息是伪造的或
中途被篡改的 。
3.数字签名的分类, 直接方式的数字签名和具有仲裁
方式的数字签名。
( 1) 直接方式的数字签名
直接方式的数字签名只有通信双方参与, 并假定接收一方知道
发方的公钥 。 数字签名的形成方式可以用发方的私钥加密信息

直接方式的数字签名有一公共弱点, 即方案的有效性取决于
发方密钥的安全性 。
( 2) 具有仲裁方式的数字签名
具有仲裁方式的数字签名也有很多实现方案, 这些方案都按
以下方式运行:发方 A对发往收方 B的信息签名后, 将信息及其
签名先发给仲裁者 C,C对信息及其签名验证完成后, 再连同一
个表示已通过验证的指令一起发往收方 B。 此时由于 C的存在,
A无法对自己发出的信息予以否认 。 在这种方式中, 仲裁者起着
重要的作用并应取得所有用户的信任 。
2,5,2 数字证书
数字证书又称为数字标识 ( Digital Certificate,Digital ID
), 它提供了一种在网络上身份验证的方式, 是用来标志
和证明网络通信双方身份的数字信息文件, 与司机驾照或
日常生活中的身份证相似 。
通俗地讲, 数字证书就是个人或单位在网络通讯中的身份
证 。 数字证书将身份绑定到一对可以用来加密和签名数字信息
的电子密钥, 它能够验证一个人使用给定密钥的权利, 这样有
利于防止利用假密钥冒充其他用户的人, 它与加密一起使用,
可以提供一个更加完整的信息安全技术方案, 确保交易中各方
的身份 。
数字证书是由权威公正的第三方机构即 CA中心签发的, 以
数字证书为核心的加密技术可以对网络上传输的信息进行加密
和解密, 数字签名和签名验证, 确保网上传递信息的机密性,
完整性, 以及交易实体身份的真实性, 签名信息的不可否认性
,从而保障网络应用的安全性 。
数字证书采用公钥密码体制, 即利用一对互相匹配的密
钥进行加密, 解密 。 公钥密码技术也用来解决了密钥的分
配与管理问题 。
一般来说, 数字证书主要包括三方面的内容:证书所有者
的信息, 证书所有者的公开密钥和证书颁发机构的签名 。 数字
证书的格式一般采用 X.509国际标准 。 目前的数字证书类型主
要包括:个人数字证书, 单位数字证书, 单位员工数字证书,
服务器证书, VPN证书, WAP证书, 代码签名证书和表单签
名证书 。
目前, 数字证书主要用于发送安全电子邮件, 访问安全站点
,网上证券, 网上招标采购, 网上签约, 网上办公, 网上缴费
,网上税务等网上安全电子事务处理和安全电子交易活动 。
2,5,3 数字签名标准与算法
( 1) 产生两个大素数 p和 q;
( 2) 计算这两个素数的乘积 n=pq;
( 3) 计算小于 n并且与 n互素整数个数, 即欧拉函数 φ(n)=(p-
1)(q-1);
( 4) 选取一个随机数满足 1< b< φ(n)并且 b和 φ(n)互素, 即
gcd(b,φ(n))=1;
( 5) 计算 a=b-1 modφ(n)。
( 6) 公开 n和 b,而保密 a,p和 q。
1.基于公钥密码技术( RSA)的数字签名算法
RSA数字签名方案可以描述如下,
签名,信息 m的签名 sig(m)通过 sig(m)=(h(m)) a mod n 来生
成 。 其中 h(m)为生成的信息摘要, 它由信息 m通过密码学中
的单向散列或杂凑函数 ( 如 SHA或 MD5) 得到 。
验证,验证算法 ver(m,y)以信息 m和签名 y为输入, 定
义为,
ver(m,y)=真 (TRUE) → h(m)≡yb (mod n)
验证算法使用了签名者的公钥, 所以任何人都可以验
证一个签名;然而由于签名需要签名者的私钥, 故只
有签名者本人才能产生有效的签名 。
( 1) p是素数满足 2L-1< p< 2L,其中, L是 64的倍数;
( 2) q是一个 160bit的素数并且能够整除 p-1;
( 3) g=h(p-1)/q mod p,其中 h是任意满足 1< h< p-1的整数, 并
且使得 h(p-1)/q mod p> 1;
( 4) b=ga mod p,其中 a是随机或者伪随机生成的整数且满足 0
< a< q;
( 5) k是随机或者伪随机生成的整数且满足 0< k< q。
2.数字签名标准算法( DSA)
DSA签名方案描述如下,
签名,把 p,q,g和 b公开而保密 a和 k。 对每一次签名都应该
生成一个新的 k值 。 对于给定的 k,信息 m的签名定义为:
sig(m,k)=(y,s)。 其中,y=(gk mod p) mod q,s=(k-1(SHA(m)
+ay)) mod q。 杂凑函数 SHA( 这里不做讨论 ) 用于把可变长
的信息 m转变为一个 160bit的信息摘要, 然后用数字签名方案
对它进行签名 。
验证,设 ver(m,y,s)是验证算法, 它以上述定义的信息 m和 y,s
为输入 。 签名的验证过程通过下面的计算式来完成,
d1=(SHA(m))s-1 mod q,d2=(y)s-1 mod q。
ver(m,y,s)= 真 (TRUE) → ((gd1 bd2) mod p) mod q=y
信息 m的签名是有效的当且仅当 ver(m,y,s)的输出为真 。 如果
ver(m,y,s)的输出为假, 则说明或者信息 m被篡改, 或者该签名
不是签名者的合法签名 。
专用数字签名方案,
( 1)“盲签名方案”( Blind Signature Scheme)
盲签名方案的工作原理:用户 A有信息 m要求用户 B签署, 但
又不能让 B知道关于信息 m的任何一点信息 。 设 ( n,e) 是 B
公钥, ( n,d) 是他的私钥 。 A用安全通信软件生成一个与
n互质的随机数 r,将 m' =rem mod n发送给 B,这样 B收到的
是被 r所, 遮盖, 的 m值, 即 m', 他不可能从 m'中获取有
关 m的信息 。 接着, B发回签名值,
s' =(m' )d mod n =(rem)d mod n = redmd mod n= rmd mod
n( 由于 ed≡1 mod n), A对收到的 s'计算 s' r-1 mod n = r
md r-1 mod n= md mod n,就得到了真正来自 B对 m的签名
s=md mod n。
( 2)指定批准人签名方案( Designated Confirmer Signature
Scheme):某个指定的人员可以自行验证签名的真实性,其
他任何人除非得到该指定人员或签名者的帮助,不能验证签
名。
( 3)小组(群)签名方案( Group Signature Scheme):
一个小组的任何成员可以签署文件,验证者可以确认签名
来自小组,但不知道是小组的那一名成员签署了文件。
( 4)一次性签名方案( One-time Signature Scheme):仅能
签署单个信息的签名方案。
( 5)不可抵赖签名方案( Undeniable Signature Scheme):
在签名和验证的常规成份之外添上“抵赖协议”( Disavowal
Protocol),则仅在得到签署者的许可信号后才能进行验证。
( 6)带有“数字时间标记系统”签名方案( Digital
Timestamping System Signature Scheme):将不可篡改的时
间信息纳入数字签名方案。
2,6
信息隐藏技术
2,6,1 信息隐藏技术原理
信息隐藏( Information Hinding)技术,是一门古老
、有趣的技术,也称为信息伪装技术,它是利用人类感觉
器官对数字信号的感觉冗余,将一个消息(秘密信息)隐
藏在另一个消息(非秘密信息)之中,实现掩蔽通信或掩
蔽标识。
信息隐藏系统的模型如下图所示,
信息
隐藏
系统
模型
把被隐藏的信息称为秘密信息 ( Secret Message)
,它可以是文字, 密码 ( 或序列号等 ), 图像, 图形
或声音等;而非秘密 ( 公开 ) 的信息则称为宿主信息
( Cover Message,也称为载体信息 ), 它可以是文
本文件, 数字图像, 数字视频或音频等 。
信息隐藏的具体过程,在密钥的控制下, 通过嵌入算法 (
Embedding Algorithm) 将秘密信息隐藏在公开信息中,
掩蔽宿主 ( 隐藏有秘密信息的公开信息 ) 则通过通信信道
传递, 接收方的检测器利用密钥从掩蔽宿主中恢复 /检测出
秘密信息 。
信息隐藏技术由以下组成,
( 1) 信息嵌入算法:在密钥的控制下实现对秘密信息的
隐藏;
( 2) 掩蔽信息的检测 /提取算法:利用密钥从掩蔽宿主中
检测 /恢复出秘密信息 ( 在未知密钥的情况下, 攻击者很难
从掩蔽宿主中恢复, 发现秘密信息 ) 。
① 自恢复性
② 鲁棒性
③ 安全性
④ 不可检测性
⑤ 透明性
上述这些特点, 会随着信息隐藏目的与应用而有不同的侧重

1.信息隐藏技术的特点
2.信息隐藏技术的应用







2,6,2 数据隐写术( Steganography)
隐写术作为信息隐藏技术的一个重要应用领域,是一
种将要加密的信息隐藏在大量其他信息之中,这样的解密
就像大海捞针一样困难,没有密码根本就不可能存取其中
的信息。通常,人们需要交换的信息总是不易被发现的。
( 1)替换系统:使用秘密信息隐蔽宿主的冗余信息
部分;
( 2)变换域技术:在信号的变换域中嵌入秘密信息
(比如在频域或时域中);
( 3)扩展频普技术:利用信息扩频通信的原理来实
现秘密信息隐藏;
( 4)失真技术:通过信号处理过程中的失真来保存信
息,在解密时通过测量与原始信息载体的偏差以恢复秘
密信息;
依据所使用的算法,数据隐写术可以分成 6类,
( 5)载体生成方法:通过对信息进行编码以生成用于
秘密通信的伪装载体,以隐蔽秘密信息;
( 6)统计方法:通过改装伪装载体的若干统计特性对
信息进行编码,并在提取过程中使用假设检验方法来达
到恢复秘密信息。
2,6,3 数字水印
数字水印是永久镶嵌在其它数据 ( 宿主数据 ) 中具有可
鉴别性的数字信号或模式, 而且并不影响宿主数据的可用
性 。 因此, 数字水印技术是通过一定的算法将一些标志性
信息直接嵌到宿主数据中 。 目前大多数水印制作方案都采
用密码学中的加密 ( 包括公开密钥, 私有密钥 ) 体系来加
强, 在水印的嵌入, 提取时采用一种密钥, 甚至几种密钥
的联合使用 。
1.数字水印技术的基本原理
数字水印的嵌入和检测(提取)过程如下图所示
数字水印嵌入过程 数字水印检测过程
数字水印技术具有如下特征,
( 1) 透明性 ( Invisibility)
( 2) 不可检测性 ( Undetectability)
( 3) 鲁棒性 ( Robustness)
( 4) 安全性 ( Security)
2.数字水印技术的分类及常用算法
按数字水印技术的实现算法来分,可以分为空间域数字水印
和变换域数字水印两大类。
( 1)空间域数字水印
(较早的数字水印算法从本质上来说都是空间域上的,)
它是通过改变某些象素的灰度将要隐蔽的信息嵌入其中,将数
字水印直接加载在数据上。空间域方法具有算法简单、速度快
、容易实现的优点。特别是它几乎可以无损的恢复载体图象和
水印信息。
① 最低有效位法, 该方法就是利用原始数据的最低几位来隐
蔽信息的, 具体取多少位以人的听觉或视觉系统无法察觉为原则

② Patchwork方法及纹理映射编码方法, 该方法是通过任意选
择 N对图象点, 增加一点亮度的同时, 降低相应另一点的亮度值
来加载数字水印 。
③ 文档结构微调方法, 在通用文档图象 ( Postcript) 中隐藏
特定二进制信息的技术, 主要是通过垂直移动行距, 水平调整字
距, 调整文字特性等来完成编码 。
空间域数字水印还可以分为如下几种方法,
( 2)频(变换)域数字水印
基于频域技术的数字水印可以嵌入大量比特的数据而不会
导致不可察觉的缺陷,往往通过改变频域的一些系数的值,采
用类似扩频图象的技术来隐藏数字水印信息。这类技术一般基
于常用的图象变换,基于局部或全部的变换,这些变换包括离
散余弦变换( DCT,Discreste Cosine Transformation)、小波
变换( WT,Wavelet Transformation)、付氏变换( FT或 DFT
( Discrete Fourier Transformation,离散付氏变换)以及哈达
马变换( HT,Hadamard Transformation)等等。其中基于分
块的 DCT是最常用的变换之一。
① 在频域中嵌入的水印的信号能量可以分布到所有的象素上, 有
利于保证水印的不可见性;
② 在频域中可以利用人类视觉系统的某些特性, 可以更方便, 更
有效的进行水印的编码;
③ 频域法可与国际数据压缩标准兼容, 从而实现在压缩域 (
Compressed Domain) 内的水印编码 。
频域方法具有如下优点,
3.数字水印技术的应用前景
( 1)广播监测
( 2)版权保护
( 3)真伪鉴别
( 4)交易水印(指纹)
( 5)拷贝控制
2,7
本章小结
本章首先对密码技术作了简要的概述, 简要描述了密码
技术的起源, 发展及它的应用和密码技术基础等内容, 阐
述了密码技术是伴随着现代信息科学以及实践的需要而发
展起来的, 并且它正得到越来越广泛的应用;同时还简要
介绍了密码技术的基本概念及其基本组成部分, 密码分析
,计算复杂性理论和信息安全标准化及组织机构等内容 。
随后, 本章接着介绍了对称密码技术, 非对称技术, 密钥
分配与管理技术及数字签名等内容 。
?在密码领域内, 对称密码技术是目前应用比较广泛的密码技
术 。 对称密码技术就是加密密钥和解密密钥相同的这类密码体
制, 它采用的解密算法是加密算法的逆运算 。
?古典密码技术是常规加密技术, 也属于对称密码技术, 其设
计思想对于理解, 设计以及分析现代密码学是十分有益的, 因
此本章对古典密码技术作了比较详细的介绍;
对称密码技术,
?DES( 数据加密标准 ) 是第一个被作为标准形式而被广泛
应用的数据加密标准, 在本章对它的原理, 结构等也作了
比较详细的介绍;由于篇幅的限制, 对序列密码技术,
IDEA( 国际数据加密算法 ) 以及 AES( 高级加密标准 ) 等
只作了简要概括性介绍 。
?非对称密钥密码技术也称为双钥或公钥密码技术, 用非对称
密码技术的每个用户都有一对密钥:一个是可以公开的 ( 称为
加密密钥或公钥 ) ;另一个则是秘密的 ( 称为秘密密钥或解密
密钥或私钥, 它由用户严格保密保存 ) 。 它的主要特点是将加
密和解密能力分开 。
非对称密码技术,
?本章还讨论了 RSA( 是迄今为止理论上最为成熟完善的公钥
密码算法 ), Diffie-Hellman密钥交换协议, ElGamal密码体制
,基于椭圆曲线的公钥密码体制 ( ECDH和 ECELG), 介绍
了它们的算法过程及安全性 。
?本章比较详细地介绍了密钥分配的基本方法, 对称密码技术
的密钥分配方案和非对称密码技术的密钥分配方案, 对密钥管
理和密钥托管技术, PKI (Public Key Infrastructure,公钥基
础设施 ) 技术, PMI( Privilege Management Infrastructure,
授权管理基础设施 ) 技术作了简要的介绍 。
密钥分配与管理技术,
?本章比较详细地介绍了数字原理, 数字签名的过程, 数字签
名的分类等内容 。 由于篇幅的原因, 对数字证书, 数字签名标
准及算法只作了简要地介绍 。
数字签名,
最后, 本章介绍信息隐藏 ( Information Hinding) 技术,
比较详细地介绍了信息隐藏技术的原理, 并对数字隐写术和
数字水印作了简要的的介绍 。