1、本章本章主要主要内容内容 保密系统的数学模型 数据加密标准 国际数据加密算法保密通信基础知识 公钥加密方法 信息安全与数字签名现代密码学 密码技术最早出现并且至今仍是对数据、数字信息进行密码技术最早出现并且至今仍是对数据、数字信息进行保密的最有效的安全技术。保密的最有效的安全技术。1949 1949年香农(年香农(ShannonShannon)发表了发表了“保密系统的通信理论保密系统的通信理论”的著名论文,将信息理论引入了密码学,提出了通用的密钥的著名论文,将信息理论引入了密码学,提出了通用的密钥密码系统模型,引进了不确定性、剩余度和唯一解距离作为密码系统模型,引进了不确定性、剩余度和唯一解距
2、离作为度量密码系统安全性的测度,对完全保密、纯密码、理论安度量密码系统安全性的测度,对完全保密、纯密码、理论安全性和实用安全性等新概念作了论述,为传统的秘密钥密码全性和实用安全性等新概念作了论述,为传统的秘密钥密码学研究奠定了理论基础。学研究奠定了理论基础。1976 1976年,狄非(年,狄非(DiffieDiffie)和赫尔曼(和赫尔曼(HellmanHellman)在在“密码密码学的新方向学的新方向”一文中,提出了将加密密钥和解密密钥分开,一文中,提出了将加密密钥和解密密钥分开,且加密密钥公开,解密密钥保密的公钥密码体制,导致了密且加密密钥公开,解密密钥保密的公钥密码体制,导致了密码学上的
3、一场革命,开创了现代密码学的新领域。码学上的一场革命,开创了现代密码学的新领域。其中一个变换应用于数据起源项,称为其中一个变换应用于数据起源项,称为明文明文,所产生,所产生的相应数据项称为的相应数据项称为密文密文。而另一个变换应用于密文,恢复。而另一个变换应用于密文,恢复出明文。这两个变换分别称为出明文。这两个变换分别称为加密加密变换和变换和解密解密变换。习惯变换。习惯上,也使用加密和解密这两个术语。上,也使用加密和解密这两个术语。加密变换将明文数据和一个称作加密密钥的独立数据加密变换将明文数据和一个称作加密密钥的独立数据值作为输入。类似地,解密变换将密文数据和一个称作解值作为输入。类似地,解
4、密变换将密文数据和一个称作解密密钥的独立数据值作为输入。这些数据看上去像随机比密密钥的独立数据值作为输入。这些数据看上去像随机比特向量。特向量。明文是没有受到保护的数据。密文可在一个不可信任的明文是没有受到保护的数据。密文可在一个不可信任的环境中传送,因为如果密码体制是安全的,那么任何不知道环境中传送,因为如果密码体制是安全的,那么任何不知道解密密钥的人都不可能从密文推断出明文。解密密钥的人都不可能从密文推断出明文。密钥体制可根据所采用的密钥类型分为对称(单密钥)密钥体制可根据所采用的密钥类型分为对称(单密钥)体制体制(One-key or Symmetric Cryptosystem)One
5、-key or Symmetric Cryptosystem)和非对称(双和非对称(双钥密)体制钥密)体制(Two-key or Asymmetric Cryptosystem)Two-key or Asymmetric Cryptosystem)。私钥密码体制原理示意图公钥密码体制原理示意图 (1 1)在密码技术中,加密和解密实质上是某种)在密码技术中,加密和解密实质上是某种“密码算法密码算法”,按密码,按密码算法进行变换的控制参数就是算法进行变换的控制参数就是“密钥密钥”。(2 2)一个好的密码系统必须具有抗破译的能力,使这种破译不可能,或)一个好的密码系统必须具有抗破译的能力,使这种破译
6、不可能,或者即使理论上可破译,而实际上这种破译很困难。者即使理论上可破译,而实际上这种破译很困难。(3 3)对信息的加密方式来看,可分为分组密码和序列密码两大类。)对信息的加密方式来看,可分为分组密码和序列密码两大类。(4 4)从密钥体制来看,可分为秘密钥密码体制和公开钥密码体制。)从密钥体制来看,可分为秘密钥密码体制和公开钥密码体制。现代密码设计应遵循的一些原则现代密码设计应遵循的一些原则(1 1)系统即使达不到理论上不可破,也应当是实用)系统即使达不到理论上不可破,也应当是实用上不可破的;上不可破的;(2 2)系统的保密性不依赖于对加密、解密算法及系)系统的保密性不依赖于对加密、解密算法及
7、系统的保密,仅依赖于密钥的保密性;统的保密,仅依赖于密钥的保密性;(3 3)加密、解密运算简单快速,易于实现;)加密、解密运算简单快速,易于实现;(4 4)密文相对于明文扩张小;)密文相对于明文扩张小;(5 5)错误传播扩散小;)错误传播扩散小;(6 6)密钥量适中,分配管理容易。)密钥量适中,分配管理容易。密码学中熵的概念密码学中熵的概念 密码学和信息论一样,都是把信源看成是符号(密码学和信息论一样,都是把信源看成是符号(文字、语言等的集合,并且它按一定的概率产生离文字、语言等的集合,并且它按一定的概率产生离散符号序列。香农对密码学的重大贡献之一在于他指散符号序列。香农对密码学的重大贡献之一
8、在于他指出:冗余度越小,破译的难度就越大。出:冗余度越小,破译的难度就越大。所有实际密码体制的密文总是会暴露某些有关明所有实际密码体制的密文总是会暴露某些有关明文的信息。在一般情况下,被截获的密文越长,明文文的信息。在一般情况下,被截获的密文越长,明文的不确定性就越小,最后会变为零。理论上可破译。的不确定性就越小,最后会变为零。理论上可破译。但实际把明文计算出来的时空也许超过实际上可供使但实际把明文计算出来的时空也许超过实际上可供使用的资源。重要的不是密码体制的绝对安全性,而是用的资源。重要的不是密码体制的绝对安全性,而是它在计算上的安全性。它在计算上的安全性。香农提出了两种隐蔽明文信息中冗余
9、度的基本技香农提出了两种隐蔽明文信息中冗余度的基本技术:混乱和扩散。最容易的混乱是替代;产生扩散最术:混乱和扩散。最容易的混乱是替代;产生扩散最简单的方法是通过换位。简单的方法是通过换位。数据加密标准数据加密标准DESDES 换位和替代密码可使用简单的硬件来实现。如图所换位和替代密码可使用简单的硬件来实现。如图所示:示:换位盒(P盒)替代盒(S盒)单独使用单独使用P P盒或位数较少的盒或位数较少的S S盒,可以比较容易地检测出它们盒,可以比较容易地检测出它们的输入输出对应关系。交替使用这两者的输入输出对应关系。交替使用这两者,则可以大大提高安全性则可以大大提高安全性。如图所示:。如图所示:(1
10、515位的位的P P盒与盒与5 5个并置的个并置的3 3位位S S盒所组成的盒所组成的7 7层硬件密层硬件密码产生器码产生器)。算法描述算法描述初始置换第1轮第2轮第16轮32bit 对换逆初始置换64bit 密文密文64bit 明文明文置换选择2置换选择2循环左移循环左移置换选择2循环左移置换选择156bit 密钥密钥K1K2K16加密加密流程流程:1 1.对明文比特进行初始置换对明文比特进行初始置换 2.2.将所得的结果进行完全相同的依赖于密钥的将所得的结果进行完全相同的依赖于密钥的 16 16轮处理轮处理 3.3.最后应用一个末尾置换获得密文最后应用一个末尾置换获得密文 依赖于密钥的计算
11、依赖于密钥的计算:将将6464比特的数据分成两半。其中一半作为一个比特的数据分成两半。其中一半作为一个 复杂函数的输入,并且将其输出结果与另复杂函数的输入,并且将其输出结果与另一一半进行半进行 异或。异或。复杂函数复杂函数:包括包括8 8个称为个称为S-S-盒的非线性代换。盒的非线性代换。DESDES的安全性主要依赖于的安全性主要依赖于S-S-盒盒,而且,而且S-S-盒是盒是其其唯一的唯一的非线性部分。非线性部分。DESDES密码的安全性密码的安全性 1997 1997年年1 1月月2828日,美国的日,美国的RSARSA数据安全公司在数据安全公司在RSARSA安全年会安全年会上公布了一项上公
12、布了一项“秘密钥挑战秘密钥挑战”竞赛,悬赏竞赛,悬赏1 1万美元破译密钥长万美元破译密钥长度为度为5656比特的比特的DESDES。这场竞赛的目的是调查这场竞赛的目的是调查InternetInternet上分布计上分布计算的能力,并测试算的能力,并测试DESDES的相对强度。的相对强度。美国克罗拉多州的程序员美国克罗拉多州的程序员VerserVerser从从19971997年年3 3月月1313日起,用日起,用了了9696天的时间,在天的时间,在InternetInternet上数万名志愿者的协同工作下,于上数万名志愿者的协同工作下,于6 6月月1717日成功地找到了日成功地找到了DESDES
13、的密钥。这一事件表明依靠的密钥。这一事件表明依靠InternetInternet的分布计算能力,用穷尽搜索方法破译的分布计算能力,用穷尽搜索方法破译DESDES已成为可能。已成为可能。1998 1998年年7 7月月1717日电子边境基金会(日电子边境基金会(EFFEFF)使用一台使用一台2525万美万美金的电脑在金的电脑在5656小时内破解了小时内破解了5656比特的比特的DESDES。19991999年年1 1月月RSARSA数据数据安全会议期间,电子边境基金会用安全会议期间,电子边境基金会用2222小时小时1515分钟就宣告完成分钟就宣告完成RSARSA公司发起的公司发起的DESDES的
14、第三次挑战。的第三次挑战。国际数据加密算法(国际数据加密算法(IDEAIDEA)IDEA IDEA使用使用128128位密钥,整个算法和位密钥,整个算法和DESDES相似,也是将明文相似,也是将明文划分成一个个划分成一个个6464位分组,经过位分组,经过8 8轮迭代体制和一次变换,得出轮迭代体制和一次变换,得出6464位的密文。同一个算法即可用于加密,也可用于解密。位的密文。同一个算法即可用于加密,也可用于解密。乘加单元 加密过程:公开密钥加密法公开密钥加密法 原理框图原理框图 两个密钥。一个公开作为加密密钥,另一个为用户专用,两个密钥。一个公开作为加密密钥,另一个为用户专用,作为解密密钥。作
15、为解密密钥。公开密钥密码体制公开密钥密码体制 公钥密码技术是由公钥密码技术是由DiffeDiffe和和HellmanHellman于于19761976年年首次提出的一种密码技术。首次提出的一种密码技术。特点:有两个不同的密钥,将加密功能和解特点:有两个不同的密钥,将加密功能和解密功能分开。密功能分开。公钥公钥私钥私钥 基本特性:给定公钥,要确定出私钥是计算基本特性:给定公钥,要确定出私钥是计算上不可行的。上不可行的。公钥密码技术可以简化密钥的管理,并且可公钥密码技术可以简化密钥的管理,并且可通过公开系统如公开目录服务来分配密钥。通过公开系统如公开目录服务来分配密钥。当今最流行的公钥密码体制有两
16、大类:当今最流行的公钥密码体制有两大类:基于大整数因子分解问题的,比如基于大整数因子分解问题的,比如RSARSA体制、体制、RabinRabin体制。体制。基于离散对数问题的,比如基于离散对数问题的,比如ElGamalElGamal体制、体制、椭圆曲线密码体制。椭圆曲线密码体制。设计公开钥密码系统的理论基础设计公开钥密码系统的理论基础 设计公开钥密码系统的理论基础是设计公开钥密码系统的理论基础是(Trap-door one-way functionTrap-door one-way function)。)。所谓所谓y=f(x)y=f(x)是指这样的函数,由是指这样的函数,由x x容易容易计算该
17、函数本身,但由计算该函数本身,但由y y计算计算x x,即该函数的反函数的即该函数的反函数的计算是困难的,在计算量上无法进行计算。计算是困难的,在计算量上无法进行计算。仅仅是单向函数还不能用作加密算法,因为这样仅仅是单向函数还不能用作加密算法,因为这样就会使合法的收信者也不能解密,所以函数必须具有就会使合法的收信者也不能解密,所以函数必须具有陷门单向函数的性质。陷门单向函数的性质。所谓所谓是这样一种函数,存在某个附是这样一种函数,存在某个附加的加的,称为,称为k k,当当k k未知时,未知时,y=f(x)y=f(x)为一单向函数,但当为一单向函数,但当 k k已知时,由已知时,由y y可可计算
18、计算x x。y=f(x)y=f(x)计算计算 x x 是容易的。是容易的。RSARSA密码体制密码体制发明者:发明者:RivestRivest、ShamirShamir、AdlemanAdleman基本事实:寻找大素数是相对容易的,而分解基本事实:寻找大素数是相对容易的,而分解两个大素数的积是计算上不可行的。两个大素数的积是计算上不可行的。属于可逆的公钥密码体制属于可逆的公钥密码体制RSA密钥对的产生:密钥对的产生:选一个整数选一个整数e e,作为公开指数。作为公开指数。随机产生两个大奇素数随机产生两个大奇素数p p和和q q,使得使得p-1p-1和和q-1q-1都都与与e e互素。互素。确定
19、秘密指数确定秘密指数d d,其中其中d d满足条件:满足条件:(p-1)|(de-1)p-1)|(de-1)(q-1)|(de-1)(q-1)|(de-1)公开的模是公开的模是n=n=pqpq n n和和e e形成公钥形成公钥 p,qp,q和和d d构成秘密密钥构成秘密密钥指数指数d d和和e e的特征:的特征:对任何消息对任何消息M M,有有 (M Me e)d d modmod=M mod nM mod n 对消息对消息M M,加密过程为加密过程为:M M=M=Me e modmod 对密文对密文M M,解密过程为:解密过程为:M=(MM=(M)d d mod n mod n报文摘要报文摘
20、要MD5 MD5 MD(Message Digest)基于单向散列(Hash)函数的思想,该函数从一段很长的报文中计算出一个固定长度的比特串,作为该报文的摘要。基于基于MD5MD5消息摘要模型消息摘要模型 信息安全与数字签名信息安全与数字签名 信息安全就是在网络环境下信息系统中的数据受到指定保护,不因偶然和恶意的原因而遭到破坏、更改、泄露,使信息系统能连续、可靠、正常地运行,或因破坏后还能迅速恢复正常使用的安全过程。五种通用的安全业务:认证(authentication)业务 访问控制(access control)业务 保密(confidentiality)业务 数据完整性(data integrity)业务 不可否认(no-repudiation)业务 数字签名数字签名数字签名必须保证以下三点:接收者能够核实发送者对报文的签名;发送者事后不能抵赖对报文的签名;接收者不能伪造对报文的签名。目前有两大类加密算法:一类是秘密密钥加密方法,代表是DES算法;另一类是公开密钥加密算法,代表是RSA算法。因此介绍对应的两类数字签名算法。秘密密钥加密方法秘密密钥加密方法 在两陌生人A和B之间采用秘密密钥报文签名传送