8.3 密码技术
8.3.1 加密技术概述
8.3.2 私钥密码技术
8.3.3 公钥密码技术
第 8章 网络安全
8.3.1 密码技术概述
密码技术 对存储或者传输的信息采取秘密的交换以防止第三者对
信息的窃取的技术。
密码技术 分为加密和解密两部分。 加密 是把需要加密的报文(也
称为明文)按照以密码钥匙(简称密钥)为参数进行变换,产生密码
文件 (简称密文 )。 解密 是按照密钥把密文还原成明文的过程。
密钥是一个数值,它和加密算法一起生成特别的密文。密钥本质
是非常大的数,密钥的尺寸用位( bit)表示,在公开密钥加密方法中,
密钥的尺寸越大,密文就越安全。
第 8章 网络安全
8.3.1 密码技术概述
利用密码技术,报文在从信源发出和进入通信信道之间进
行加密,经过信道传输,到信宿接收时进行解密,以实现网络
通信保密。 加密与解密模型 如图 8.8所示。
图 8.8 加密解密模型
若密码分析的攻击者只是监听对密码通信信道上所有信息,
称之为 被动攻击 。 若他还能够对通信道上传输的消息进行截取,
修改甚至主动发送信息, 称之为 主动攻击 。
第 8章 网络安全
8.3.2 私钥密码技术
私钥密码体制 是从传统的简单换位、代替密码发展而来的,也称为
对称密码体制。 对称密码体制使用相同的密钥加密和解密信息,亦即通
信双方建立并共享一个密钥。
对称密码体制的工作原理为,用户 A要传送机密信息给 B,则 A和 B
必须共享一个预先由人工分配或由一个密钥分发中心( KDC)分发的
密钥 K,于是 A用密钥 K和加密算法 E对明文 P加密得到密文 C=EK( P),
并将密文 C发送给 B; B 用同样一密钥 K和解密算法 D对密文解密,得到
明文 P=DK( EK( P))。
按加密模式来分,对称密码体制可以分为流密码(或称序列密码)
和分组密码(或称块密码)两大类。
第 8章 网络安全
8.3.2 私钥密码技术
1,流密码
流密码的工作原理是,通过有限状态机产生性能优良的伪随机序
列,使用该序列加密信息流,逐比特加密,得到密文序列。所以流密
码的安全强度完全取决于它所产生的伪随机序列的好坏。
流密码的优点 是错误扩展小、速度快、同步容易和安全程度高。
对流密码的攻击的主要手段有 代数方法和概率统计方法,两者的
结合可以达到较好的效果。
第 8章 网络安全
8.4.2 私钥密码技术
2,分组密码
分组密码的工作方式 是将明文分成固定的块,用同一密钥算法对
每一块加密,输出也是固定长度的密文。分组密码( Block Cipher)
是将明文消息编码表示后的数字序列 x1,x2,…, x3,…,划分成长
为 m的组 x=( x0,x1,…, xm-1),各组分别在密钥 k=( k0,k1,…,
kl-1)控制下变换成等长的输出数字序列 y=( y0,y1,…, yn-1),其
加密函数 E,Vn× K→V n,Vn是 n维矢量空间,K为密钥空间。
分组密码与流密码不同之处在于 输出的每一位数字不是只与相应
时刻输入的明文数字有关,而是还与一组长为 m的明文数字有关。这
种密码实质上是字长为 m的数字序列的代换密码,如图 8.9所示。
第 8章 网络安全
8.3.2 私钥密码技术
图 8.9 分组密码框图
第 8章 网络安全
8.3.2 私钥密码技术
通常取 n=m;若 n>m,则为有数据扩展的分组密码;若 n<m,则
为有数据压缩的分组密码。
分组密码每次加密的明文数据量是固定的分组长度 n,而实用中待
加密消息的数据量是不定的,因此需要采用适当的工作模式来隐蔽明
文中的统计特性、数据的格式等,以提高整体的安全性,降低删除、
重放、插入和伪造的成功的机会。
美国 NSB规定了四种基本的工作模式,即 电码本( ECB), 密码
反馈链接( CBC)、密码反馈( CFB)、输出反馈( OFB) 。 ANSI、
ISO和 ISO/IEC也规定了类似的工作模式。 SET协议 使用 DES的密码
分组链接 CBC( Cipher Block Chaining)模式。
第 8章 网络安全
8.3.2 私钥密码技术
3,DES和 AES
DES (Data Encryption Standard)是当今使用得最为广泛的一种
加密方案, 一般认为是很难破解的私钥 。 它以 64bit的块来加密, 即通
过对 64位的明文块加密得到 64位的密文块 。
加密和解密都使用相同的密钥和算法, 只是在密钥次序中有些区
别 。 56位的密钥表示为 64位的数, 而每个第8位都用于奇偶较验 。
DES可用于所有 4种模式中,ECB,CBC,CFB用 OFB。 但是,
一般 DES只用于 CBC模式和 CFB模式 。
第 8章 网络安全
8.3.2 私钥密码技术
AES(Advanced Encryption Standard)是 替换 DES 的一种加密算
法。
AES具备以下的特点:
? 算法必须是对称密码或私有密码。
? 算法必须是类似 DES的一块密码,而不是流密码。
? 算法支持密钥长度范围从 128到 256位,而且算法还应支持
不同块数的数据。
? 算法应该用C或 Java程序语言设计。
除上述需求外,AES还必须要高效率,而且 AES算法必须是公开,
免专利权税。
第 8章 网络安全
8.3.3 公钥密码技术
1,公开密钥密码概述
公钥加密算法也称非对称密钥算法,用两对密钥:一个公共密钥和一个
专用密钥。公共密钥则可以发布出去,专用密钥要保证绝对的安全。用公共
密钥加密的信息只能用专用密钥解密,反之亦然。公共密钥加密算法主要有:
RSA,Diffie— Hellman等。
公钥密码体制的原理为,用户 A 和 B各自拥有一对密钥 ( KA,KA-1) 和
( KB,KB-1) 。 私钥 KA-1, KB-1分别由 A,B各自秘密保管,而 KA, KB
则以证书的形式对外公布。当 A要将明文消息 P安全地发送给 B,则 A用 B的
公钥 KB加密 P得到密文 C=E KB ( P);而 B收到密文 P后,用私钥 KB -1解密
恢复明文 P= D KB-1 ( C) = D KB-1 ( E KB ( P))。
第 8章 网络安全
8.3.3 公钥密码技术
公钥加密算法 中使用最广的是 RSA。 RSA使用两个密钥, 一个公
共密钥, 一个专用密钥 。 如用其中一个加密, 则用另一个解密, 密钥
长度从 40到 2048bit可变, 加密时也把明文分成块, 块的大小可变,
但不能超过密钥的长度, RSA算法把每一块明文转化为与密钥长度相
同的密文块 。 密钥越长, 加密效果越好, 但加密, 解密的开销也大,
所以要在安全与性能之间折衷考虑, 一般 64位是较合适的 。
公用密钥的优点就在于,尽管通信双方不认识,但只要提供密钥
的 CA可靠,就可以进行安全通信,这正是 Web商务所要求的。
公共密钥方案较保密密钥方案处理速度慢,因此,通常把 公共密
钥与专用密钥技术结合起来实现最佳性能。
第 8章 网络安全
8.3.3 公钥密码技术
2,RSA密码系统
RSA是第一个较完善的公开密钥算法。 RSA的理论基础是 数论的
欧拉定理,即寻求两个大素数容易,但将它们的乘积进行因式分解极
其困难。
基于这一原理, 用户秘密选择两个 100位的十进制大素数 p,q,
计算出它们的乘积 N= pq,并将 N公开;再计算出 N的欧拉函数
Φ(N)=(p一 1)(q— 1),定义 Φ(N)为小于等于 N且与 N互为素数的个数;
然后, 用户从 [0,Φ(N)-1]中任选一个与其 Φ(N)互为素数的数 e,同时
由 d= e-1( modΦ(N)) 得到另一个数 d。 这样就产生一对密钥,PK=
( e,N), SK=( d,N) 若用整数 X为明文, Y为密文, 则有:加密:
Y= Xe( modN) ;解密,X= Yd( mod N) 。
一般要求 p,q为安全素数,N的长度大于 512 bit 。
第 8章 网络安全
8.3.3 公钥密码技术
3,Diffie— Hellman密钥交换
密钥交换 是指通信双方交换会话密钥,以加密通信双方后续连接
所传输的信息。每次逻辑连接使用一把新的会话密钥,用完就丢弃。
Diffie— Hellman算法 是第一个公开密钥算法,发明于 1976年。
Diffie— Hellman算法能够用于密钥分配,但不能用于加密或解密信息。
下面是 Diffie— Hellman密钥交换协议。设 p为 512bit以上大素数,
g< p,p,g公开,A与 B通过对称密钥密码体制进行保密通信。
第 8章 网络安全
8.3.3 公钥密码技术
下面是 A,B通过公开密钥算法协商通信密钥的协议:
? A随机选择 x< p,发送 X=gx(mod p)给 B。
? B随机选择 y< p,发送 Y=gy(mod p)给 A。
? A通过自己的 x秘密计算得:
K=(Y)x(mod p)=( gy)x(mod p)= gxy(mod p)
? B通过自己的 y秘密计算得:
K’ =(X)y(mod p)= ( gx)y(mod p)=gxy(mod p)
知 K=K’。线路上的搭线窃听者只能得到 p,g, X和 Y的值,除非
能计算离散对数,恢复出 x和 y,否则就无法得到 K,因此,K为 A和 B
独立计算的秘密密钥。
第 8章 网络安全
8.3.3 公钥密码技术
4,数字签名
数字签名是 使用某人的私钥加密特定的消息摘要散列值而得到的
结果,通过这种方法把人同特定消息联系起来,类似于手书签字。
数字签名与手书签名的区别在于,手书签字是模拟的,且因人而
异。数字签字是 0和 1的数字串,因消息而异。
数字签字有两种,一种是 对整体消息的签字,它是消息经过密码
变换的被签消息整体。一种是 对压缩消息的签字,它是附加在被签字
消息之后或某一特定位置上的一段签字图样。 一个签字体制一般含有
两个组成部分,即 签字算法和验证算法。
第 8章 网络安全
8.3.3 公钥密码技术
数字签名算法:
公开密钥,p为 512~ l024bit的素数; q为 160bit长的素数, 且为
( p一 1) 的因子 。
g= h(p-1)/qmodq,其中 1<h< p一 1且 g> 1的整数; y= gxmodp。
秘密密钥,0<x< q,且为随机产生的整数 。
签名过程,0<k< q,且为随机产生的整数 。
r= (gk(modp))modq,s= (k-1(H(m)十 xr))modq; ( r,s) 作
为对消息 m的签名, H( x) 为安全的 Hash( 散列 ) 函数 。
验证过程,w= s-1modq; u1= (H(m)xw)modq; u2= (rw)modq;
v= ((g u1xy u2)mod p)modq;若 v= r,则对 m的签名有效 。
。
8.3.1 加密技术概述
8.3.2 私钥密码技术
8.3.3 公钥密码技术
第 8章 网络安全
8.3.1 密码技术概述
密码技术 对存储或者传输的信息采取秘密的交换以防止第三者对
信息的窃取的技术。
密码技术 分为加密和解密两部分。 加密 是把需要加密的报文(也
称为明文)按照以密码钥匙(简称密钥)为参数进行变换,产生密码
文件 (简称密文 )。 解密 是按照密钥把密文还原成明文的过程。
密钥是一个数值,它和加密算法一起生成特别的密文。密钥本质
是非常大的数,密钥的尺寸用位( bit)表示,在公开密钥加密方法中,
密钥的尺寸越大,密文就越安全。
第 8章 网络安全
8.3.1 密码技术概述
利用密码技术,报文在从信源发出和进入通信信道之间进
行加密,经过信道传输,到信宿接收时进行解密,以实现网络
通信保密。 加密与解密模型 如图 8.8所示。
图 8.8 加密解密模型
若密码分析的攻击者只是监听对密码通信信道上所有信息,
称之为 被动攻击 。 若他还能够对通信道上传输的消息进行截取,
修改甚至主动发送信息, 称之为 主动攻击 。
第 8章 网络安全
8.3.2 私钥密码技术
私钥密码体制 是从传统的简单换位、代替密码发展而来的,也称为
对称密码体制。 对称密码体制使用相同的密钥加密和解密信息,亦即通
信双方建立并共享一个密钥。
对称密码体制的工作原理为,用户 A要传送机密信息给 B,则 A和 B
必须共享一个预先由人工分配或由一个密钥分发中心( KDC)分发的
密钥 K,于是 A用密钥 K和加密算法 E对明文 P加密得到密文 C=EK( P),
并将密文 C发送给 B; B 用同样一密钥 K和解密算法 D对密文解密,得到
明文 P=DK( EK( P))。
按加密模式来分,对称密码体制可以分为流密码(或称序列密码)
和分组密码(或称块密码)两大类。
第 8章 网络安全
8.3.2 私钥密码技术
1,流密码
流密码的工作原理是,通过有限状态机产生性能优良的伪随机序
列,使用该序列加密信息流,逐比特加密,得到密文序列。所以流密
码的安全强度完全取决于它所产生的伪随机序列的好坏。
流密码的优点 是错误扩展小、速度快、同步容易和安全程度高。
对流密码的攻击的主要手段有 代数方法和概率统计方法,两者的
结合可以达到较好的效果。
第 8章 网络安全
8.4.2 私钥密码技术
2,分组密码
分组密码的工作方式 是将明文分成固定的块,用同一密钥算法对
每一块加密,输出也是固定长度的密文。分组密码( Block Cipher)
是将明文消息编码表示后的数字序列 x1,x2,…, x3,…,划分成长
为 m的组 x=( x0,x1,…, xm-1),各组分别在密钥 k=( k0,k1,…,
kl-1)控制下变换成等长的输出数字序列 y=( y0,y1,…, yn-1),其
加密函数 E,Vn× K→V n,Vn是 n维矢量空间,K为密钥空间。
分组密码与流密码不同之处在于 输出的每一位数字不是只与相应
时刻输入的明文数字有关,而是还与一组长为 m的明文数字有关。这
种密码实质上是字长为 m的数字序列的代换密码,如图 8.9所示。
第 8章 网络安全
8.3.2 私钥密码技术
图 8.9 分组密码框图
第 8章 网络安全
8.3.2 私钥密码技术
通常取 n=m;若 n>m,则为有数据扩展的分组密码;若 n<m,则
为有数据压缩的分组密码。
分组密码每次加密的明文数据量是固定的分组长度 n,而实用中待
加密消息的数据量是不定的,因此需要采用适当的工作模式来隐蔽明
文中的统计特性、数据的格式等,以提高整体的安全性,降低删除、
重放、插入和伪造的成功的机会。
美国 NSB规定了四种基本的工作模式,即 电码本( ECB), 密码
反馈链接( CBC)、密码反馈( CFB)、输出反馈( OFB) 。 ANSI、
ISO和 ISO/IEC也规定了类似的工作模式。 SET协议 使用 DES的密码
分组链接 CBC( Cipher Block Chaining)模式。
第 8章 网络安全
8.3.2 私钥密码技术
3,DES和 AES
DES (Data Encryption Standard)是当今使用得最为广泛的一种
加密方案, 一般认为是很难破解的私钥 。 它以 64bit的块来加密, 即通
过对 64位的明文块加密得到 64位的密文块 。
加密和解密都使用相同的密钥和算法, 只是在密钥次序中有些区
别 。 56位的密钥表示为 64位的数, 而每个第8位都用于奇偶较验 。
DES可用于所有 4种模式中,ECB,CBC,CFB用 OFB。 但是,
一般 DES只用于 CBC模式和 CFB模式 。
第 8章 网络安全
8.3.2 私钥密码技术
AES(Advanced Encryption Standard)是 替换 DES 的一种加密算
法。
AES具备以下的特点:
? 算法必须是对称密码或私有密码。
? 算法必须是类似 DES的一块密码,而不是流密码。
? 算法支持密钥长度范围从 128到 256位,而且算法还应支持
不同块数的数据。
? 算法应该用C或 Java程序语言设计。
除上述需求外,AES还必须要高效率,而且 AES算法必须是公开,
免专利权税。
第 8章 网络安全
8.3.3 公钥密码技术
1,公开密钥密码概述
公钥加密算法也称非对称密钥算法,用两对密钥:一个公共密钥和一个
专用密钥。公共密钥则可以发布出去,专用密钥要保证绝对的安全。用公共
密钥加密的信息只能用专用密钥解密,反之亦然。公共密钥加密算法主要有:
RSA,Diffie— Hellman等。
公钥密码体制的原理为,用户 A 和 B各自拥有一对密钥 ( KA,KA-1) 和
( KB,KB-1) 。 私钥 KA-1, KB-1分别由 A,B各自秘密保管,而 KA, KB
则以证书的形式对外公布。当 A要将明文消息 P安全地发送给 B,则 A用 B的
公钥 KB加密 P得到密文 C=E KB ( P);而 B收到密文 P后,用私钥 KB -1解密
恢复明文 P= D KB-1 ( C) = D KB-1 ( E KB ( P))。
第 8章 网络安全
8.3.3 公钥密码技术
公钥加密算法 中使用最广的是 RSA。 RSA使用两个密钥, 一个公
共密钥, 一个专用密钥 。 如用其中一个加密, 则用另一个解密, 密钥
长度从 40到 2048bit可变, 加密时也把明文分成块, 块的大小可变,
但不能超过密钥的长度, RSA算法把每一块明文转化为与密钥长度相
同的密文块 。 密钥越长, 加密效果越好, 但加密, 解密的开销也大,
所以要在安全与性能之间折衷考虑, 一般 64位是较合适的 。
公用密钥的优点就在于,尽管通信双方不认识,但只要提供密钥
的 CA可靠,就可以进行安全通信,这正是 Web商务所要求的。
公共密钥方案较保密密钥方案处理速度慢,因此,通常把 公共密
钥与专用密钥技术结合起来实现最佳性能。
第 8章 网络安全
8.3.3 公钥密码技术
2,RSA密码系统
RSA是第一个较完善的公开密钥算法。 RSA的理论基础是 数论的
欧拉定理,即寻求两个大素数容易,但将它们的乘积进行因式分解极
其困难。
基于这一原理, 用户秘密选择两个 100位的十进制大素数 p,q,
计算出它们的乘积 N= pq,并将 N公开;再计算出 N的欧拉函数
Φ(N)=(p一 1)(q— 1),定义 Φ(N)为小于等于 N且与 N互为素数的个数;
然后, 用户从 [0,Φ(N)-1]中任选一个与其 Φ(N)互为素数的数 e,同时
由 d= e-1( modΦ(N)) 得到另一个数 d。 这样就产生一对密钥,PK=
( e,N), SK=( d,N) 若用整数 X为明文, Y为密文, 则有:加密:
Y= Xe( modN) ;解密,X= Yd( mod N) 。
一般要求 p,q为安全素数,N的长度大于 512 bit 。
第 8章 网络安全
8.3.3 公钥密码技术
3,Diffie— Hellman密钥交换
密钥交换 是指通信双方交换会话密钥,以加密通信双方后续连接
所传输的信息。每次逻辑连接使用一把新的会话密钥,用完就丢弃。
Diffie— Hellman算法 是第一个公开密钥算法,发明于 1976年。
Diffie— Hellman算法能够用于密钥分配,但不能用于加密或解密信息。
下面是 Diffie— Hellman密钥交换协议。设 p为 512bit以上大素数,
g< p,p,g公开,A与 B通过对称密钥密码体制进行保密通信。
第 8章 网络安全
8.3.3 公钥密码技术
下面是 A,B通过公开密钥算法协商通信密钥的协议:
? A随机选择 x< p,发送 X=gx(mod p)给 B。
? B随机选择 y< p,发送 Y=gy(mod p)给 A。
? A通过自己的 x秘密计算得:
K=(Y)x(mod p)=( gy)x(mod p)= gxy(mod p)
? B通过自己的 y秘密计算得:
K’ =(X)y(mod p)= ( gx)y(mod p)=gxy(mod p)
知 K=K’。线路上的搭线窃听者只能得到 p,g, X和 Y的值,除非
能计算离散对数,恢复出 x和 y,否则就无法得到 K,因此,K为 A和 B
独立计算的秘密密钥。
第 8章 网络安全
8.3.3 公钥密码技术
4,数字签名
数字签名是 使用某人的私钥加密特定的消息摘要散列值而得到的
结果,通过这种方法把人同特定消息联系起来,类似于手书签字。
数字签名与手书签名的区别在于,手书签字是模拟的,且因人而
异。数字签字是 0和 1的数字串,因消息而异。
数字签字有两种,一种是 对整体消息的签字,它是消息经过密码
变换的被签消息整体。一种是 对压缩消息的签字,它是附加在被签字
消息之后或某一特定位置上的一段签字图样。 一个签字体制一般含有
两个组成部分,即 签字算法和验证算法。
第 8章 网络安全
8.3.3 公钥密码技术
数字签名算法:
公开密钥,p为 512~ l024bit的素数; q为 160bit长的素数, 且为
( p一 1) 的因子 。
g= h(p-1)/qmodq,其中 1<h< p一 1且 g> 1的整数; y= gxmodp。
秘密密钥,0<x< q,且为随机产生的整数 。
签名过程,0<k< q,且为随机产生的整数 。
r= (gk(modp))modq,s= (k-1(H(m)十 xr))modq; ( r,s) 作
为对消息 m的签名, H( x) 为安全的 Hash( 散列 ) 函数 。
验证过程,w= s-1modq; u1= (H(m)xw)modq; u2= (rw)modq;
v= ((g u1xy u2)mod p)modq;若 v= r,则对 m的签名有效 。
。