信息加密技术基础_第1页
信息加密技术基础_第2页
信息加密技术基础_第3页
信息加密技术基础_第4页
信息加密技术基础_第5页
已阅读5页,还剩124页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章

信息加密技术基础​

引言信息加密是网络安全体系中重要机制之一。信息加密的目的是为了保持信息的机密性,使用恰当的加密标准将在计算机环境中增加安全性。信息加密通过使用一种编码而使存储或传输的信息变为不可读的信息,解密是一个相反的过程。这些编码就是将明文变成密文的加密算法或数学方法。​引言(续)

加密编码在Shannon的信息论中有针对性的阐述,数论及基础代数是加密算法的理论基础。要将一段信息加密或解密,你会要用到密钥,它是一个很大的值。一般来说,密钥越大,加密就越健壮。一般来说加密体制分为对称密钥加密和公用密钥加密,对称密钥加密在密钥方面有一定的缺陷,但执行效率高;公用密钥加密加密执行效率底,但保密性强,在报文和网络方面对小量信息加密非常有效.​2.1信息加密理论基础信息安全的核心技术之一是加密技术,它涉及信息论、基础数论和算法复杂性等多方面基础知识。随着计算机网络不断渗透到各个领域,加密技术的应用也随之扩大,应用加密基础理论知识,深入探索可靠可行的加密方法,应用于数字签名、身份鉴别等新技术中成为网络安全研究重要的一个方面。​加密的理论依据密码学问题就是随机性的利用问题.差不多每台使用加密技术的计算机安全系统都需要随机数,供密钥、协议中的基础参量等使用或者用做辅助信息或者初始化向量。这些系统的安全也经常依赖于这些随机数的随机性及被保护程度。​简单的加密举例中秋日月编码密钥密文编码诗月明明日01010110111111明日月明101010000000?明日明日101101000111日明月明110010011000通过这个例子我们看到一个简单的加密过程,原来的诗通过与密钥的模二运算实现了加密。​2.1.1信息编码基础知识第二次世界大战期间,美国为了提高信息储存和传递的效率,发明了多种新的编码方法,奠定了现代信息科学技术的基础。Shannon还于1949年发表了“保密系统的通信理论”一文,奠定了现代密码学基础从而对加密过程中信息编码有了明确的分析。在该文中他从信息论观点,对信息系统的保密性问题作了全面而深刻的阐述。​

1.信息熵基本知识信息论中最重要的内容,是如何认识和使用信息熵来表现信息。这里用Shannon最喜欢用的猜谜方法来说明信息熵的基本概念。假如有:“我们大__都喜__使__计__机来管__数__。”不用很多努力,就可以猜出完整的句子:“我们大家都喜欢使用计算机来管理数据。”Shannon在信息论中指出,能猜出来的字符不运载信息,而不能猜出来的字符运载信息。​1.信息熵基本知识(续)空格所隐藏的字符属于多余度字符,不用那些字符也能运载该句子的全部信息,比如:“我__大________使______机来____数__。”就很难猜出完整的句子,在信息传递的时候,也很难做检错和抗错。因此,保留一定的多余度(或冗余度)是非常重要的。​

2.

信息量和信息熵基本定义(1)信息熵(informationentropy)是对信息状态“无序”与“不确定”的度量(从本质上讲,熵不是对信息的度量,但信息的增加而使产生的熵减小,熵可以用来度量信息的增益)。​

2.

信息量和信息熵基本定义(2)定义:给定一离散集合X={xi;i=1,2,…,n},令xi出现的概率是 且。事件xi包含的信息量通常=2,此时相应的信息量单位是bit。Shannon定义信息的数学期望为信息熵,即信源的平均信息量。(2.1)​2.信息量和信息熵基本定义(3)定义:将集合X中事件所包含的信息量统计平均,则平均值定义为集合X的熵.信息熵表征了信源整体的统计特征,集合X的熵H(x)表示X中事件所包含的平均信息量,或总体的平均不确定性的量度。(2.2)​2.信息量和信息熵基本定义(4)对某一特定的信源,其信息熵只有一个,因统计特性不同,其熵也不同。例如,两个信源,其概率空间分别为:​2.信息量和信息熵基本定义(5)则信息熵为:可见,,说明信源比信源的平均不确定性要大,即在事件发生之前,分析信源,由于事件是等概率的,难以猜测哪一个事件会发生.​2.信息量和信息熵基本定义(6)而信源,虽然也存在不确定性,但大致可以知道,出现的可能性要大。正如两场比赛,其中一场,双方势均力敌;而另一场双方实力悬殊很大。当然,人们希望看第一场,因为胜负难卜,一旦赛完,人们获得信息量大。也可以这样理解,信息熵表征了变量的随机性。因此,熵反映了变量的随机性,也是表征随机变量统计特性的一个特征参数。​3.信息熵的基本性质(1)对称性当概率空间中序任意互换时,熵函数的值不变,例如下面两个信源空间:​3.信息熵的基本性质(2)

其信息熵.该性质说明,熵只与随机变量的总体结构有关,与信源总体的统计特性有关,同时也说明所定义的熵有其局限性,它不能描述事件本身的主观意义。​3.信息熵的基本性质(3)确定性如果信源的输出只有一个状态是必然的,即则信源的熵:此性质表明,信源的输出虽有不同形态,但其中一种是必然的,意味着其他状态不可能出现。那么,这个信源是一个确知信源,其熵为零。(2.3)​3.信息熵的基本性质(4)非负性即。因为随机变量的所有取值的概率分布为,当取对数的底大于1时,,而,则得到的熵是正值,只有当随机变量是一确知量时,熵才等于零。这种非负性对于离散信源的熵来说,这一性质并不存在。​3.信息熵的基本性质(5)可加性独立信源和的联合信源的熵等于它们各自的熵之和。如果有两个随机变量和,它们彼此是统计独立的,即的概率分布为,而的分布概率为,则联合信源的熵:

可加性是熵函数的一个重要特性,正因为有可加性,所以可以证明熵函数的形式是唯一的。

​3.信息熵的基本性质(6)极值性信源各个状态为零概率分布时,熵值最大,并且等于信源输出状态数,因为当时,

(2.5)​例题例,信源有两种状态时,概率空间其与关系如图所示,,当=1/2时熵有最大值;当信源输出是确定的,即,则,此时表明该信源不提供任何信息;反之,当信源输出为等概率发生时,即时信源的熵达到最大值,等于1bit信息量。信息熵函数曲线P(x)00.51明文H(x)​4.信息熵在信息加密编码中的作用(1)

通过熵和信息量的概念,可计算加密系统中各部分的熵。令明文熵为,密钥熵,密文熵。这里M、K和C分别是明文、密钥和密文空间,m、k、c分别是它们的字母集,l,r和v分别是明文、密钥、和密文的长度。则明文和密文之间的互信息以及密钥与密文之间的互信息分别是:(2.6)(2.7)​4.信息熵在信息加密编码中的作用(2)

因为只要密文、密钥确定后,明文也就得到了,所以,故定理:对任意加密系统从该理论我们可以看出,密钥熵越大,密文中所包含的明文信息量就越小。一个加密系统中,若其密文与明文之间的互信息,则密码分析者无论截获多大的密文,均不能得到有关明文的任何信息。这种加密系统称为完善加密系统,或无条件加密系统。(2.8)​4.信息熵在信息加密编码中的作用(3)在对密文攻击下,完善加密系统是安全的,但它不能保证在已知明文或选择性明文攻击下也是安全的。因此,完善保密系统存在的必要条件是

证明:若,则由前一个定理可得,,所以的必要条件是(2.9)​2.1.2数论基本术语数论是研究整数性质的一个数学分支,同时也是加密技术的基础学科之一。首先介绍一些数论的基本知识.​1.整数定义:设。如果存在使得,那么就说b可以被a整除,记为,且称b是a的倍数,a是b的因数(或称约数、除数、因子)。b不能被a整除可以记作dFa。由定义及乘法运算的性质,可推出整除关系具有以下性质(注:符号本身包含了条件):(1);(2)如果且,则;(3)设,那么与等价;(4)如果且,则对所有的,有;(5)设,如果,那么;​2.素数定义:设整数。如果它除了显然因数外没有其他的因数,则p就称为是素数,也叫不可约数。若,且a不是素数,则a称为合数。关于素数,有以下性质:(1)如果p是素数,且,则或,即p至少整除a与b中的一个。(2)任何一个整数,均可以分解成素数幂之积:(3)若不计因数的顺序,这个分解式是唯一的。其中,是两两互不相同的素数,是正整数。(4)素数有无穷多个。(5)设表示不大于的素数的数目,则。​3.同余设,如果,则称a和b模n同余,记为,整数n称为模数。由于等价于,所以与等价。因此,一般我们总假定。如果,我们称b是a对模n的最小非负剩余,有时也称b为a对模n的余数。​同余式的一些基本性质(1)反身性:;(2)对称性:如果,那么;(3)传递性:如果,,那么;(4)如果,那么;。(5)如果,,gcd,(两个不同时为0的整数a与b的最大公约数表示成gcd(a,b))那么,存在,当且仅当gcd。​一些关于同余的基本概念(1)

同余类可用其中任一元素a(经常取)代替,记作。于是从中分别取一个数作为代表构成一个集合,称为模n的一个完全剩余系,记为,称为模n的非负最小完全剩余系。

(2.11)​一些关于同余的基本概念(2)在模n的完全剩余系中,去掉那些与n不互素的数,剩下的部分称为模n的简化剩余系;的简化剩余系记为,读为模n的非负最小简化剩余系。显然,中的元便是不超过n并与n互素的那些数,它们的个数等于欧拉函数的值。(欧拉函数的定义为:小于自然数N并与N互质(除1以外无其它公因子)的自然数的个数用函数表示,称为欧拉函数。欧拉函数的具体性质会在后面第6小节进行阐述)​4.模运算给定正整数n,对任意a,若存在q,使得则称r是a关于模n的余数,记为。若则称整数a,b同余,记为整数集中所有与数a同余的整数集合称为a的同余类,记为。​模运算的性质(1)当且仅当。(2)当且仅当。(3)如果,,则。

a模n的运算给出了a对模n的余数。注意:模运算的结果是从0到的一个整数。模运算就像普通的运算一样,它是可交换,可结合,可分配的。而且,对每一个中间结果进行模m运算,其作用与先进行全部运算,然后再进行模m运算所得到结果是一样的。​5.最大公约数与最小公倍数设,是两个整数,如果且,那么就称b是和的公约数.一般的,设,是K个整数,如果那么就称b是的公约数。因为对于任意一个不等于零的整数,它的因数是有限的。所以,任意一对整数,其中一个不为零时,它们的公约数的个数也必定是有限的;同理,当中有一个不为零时,它们的公约数是有限的.这样,我们引入最大公约数的概念。定义:设,是两个整数,我们把和的公约数中最大的数称为和的最大公约数,记为(,)或当时,我们称和是互素的。显然​最大公约数的性质(1)(2)若|,j=2,…,k,则(3)任意的整数x,有(4)对任意的整数x,有(5)设,是不都为零的整数,则一定存在一对整数,,使得:​最小公倍数的概念设,是两个均不等于零的整数,如果且,那么1就称为是和的公倍数,一般地,设是k个均不等于零的整数。如果,则称l是的公倍数。公倍数的集合是无穷集合,但根据自然数的理论,存在最小的正的公倍数。我们把和的正的公倍数中最小的数称为和的最小公倍数,记为或​6.欧拉(Euler)函数欧拉(Euler)函数

设n≥1,欧拉函数表示在区间中与n互素的整数的个数。欧拉函数具有以下性质:(1)如果p是素数,则;(2)如果p是素数,。那么;(3)对于整数,根据算术基本定理,n可以分解成惟一的形如的分解式,则(4)若和互素,则。​2.1.3算法复杂性基础知识所谓问题,是指一个要求给出解释的一般性提问,通常含有若干个未定参数或自由变量。它由两个要素组成,第一个要素是描述所有的参数,也就是对所有未定参数的一般性描述;第二个要素是解答必须满足的性质。一个问题可以看成是由无穷多个问题实例组成的一个类。​1.算法的定义所谓算法是由明确指出操作的规则所组成的若干语句的集合,只要按照规则一步一步执行一定数目的语句,便可求出问题的答案。通常的计算机程序都可以看作是算法的表达形式,在问题的两要素中,对算法而言,第一个要素就是“输入”,第二个要素就是“输出”。如果把问题P的任意一个实例作为算法A的输入,A在有限步骤之内总能输出关于此实例的正确答案,我们就说算法A可解问题P。对于一个问题P,如果存在一个算法A可解问题P,我们称问题P是算法可解的。​2.算法复杂性算法的复杂性表征了算法在实际执行时所需计算能力方面的信息,通常它由该算法所要求的最大时间与存取空间来确定。由于算法所需的时间和空间往往取决于问题实例的规模n(n表示了该实例的输入数据长度),同时,算法在用于相同规模n的不同实例时。其时间和空间需求也可能会有很大差异,因此,实际中我们常常研究的是算法关于输入规模的所有实例的时间与空间需求的平均值。​算法复杂性的构成通常情况下,一个算法的计算复杂性由两个变量度量:时间复杂性和空间复杂性。它们定义如下:(1)时间复杂性:以某特定的基本步骤为单元,完成计算过程所需的总单元数称为算法的时间复杂性,或时间复杂度。n为输入的规模或尺寸。(2)空间复杂性:以某特定的基本存储空间为单元,完成计算过程所用的存储单元数,称为算法的空间复杂性或空间复杂度。n是输入的规模或尺寸。​算法复杂性的基本符号(1)一个算法的计算复杂性用“O”符号表示其数量级。“O”的意思是:对于两个任意的实值函数f和g,若记号,则存在有一个值a,对充分大的n,有。计算复杂性的数量级就是这种类型的函数,即当n变大时增长得最快的函数,所有常数和较低阶形式的函数可以忽略不计。​算法复杂性的基本符号(2)另一个符号是“o”。它的定义是:当且仅当,这意味着在时,比可以忽略不计。时间复杂度有时也用工作因子W表示,这时。如果一个算法的复杂性不依赖于n,那么它是常数级的用表示之,而表示复杂性随n线性增长,因而是线性型算法。复杂性随n线性增长的其他一些算法也称为二次方或三次方等,所有这些算法都是多项式的,它们的时间复杂性是。有多项式时间复杂性的算法称为多项式时间算法或有效算法。​3.问题的复杂性问题的复杂性是问题固有的性质。问题的复杂性理论利用算法复杂性作为工具,将大量典型的问题按照求解的代价进行分类。问题的复杂性由在图灵机上解其最难实例所需的最小时间与空间决定,还可以理解为由解该问题的最有效的算法所需的时间与空间来度量。​NP问题在确定型图灵机上可用多项式时间求解的问题,称为易处理的问题。易处理的问题的全体称为确定性多项式时间可解类,记为P类。在非确定性图灵机上可用多项式时间求解的问题,称为非确定性多项式时间可解问题,记为NP问题。NP问题的全体称为非确定性多项式时间可解类,记为NP类。显然,,因为在确定型图灵机上多项式时间可解的任何问题在非确定型图灵机上也是多项式时间可解的。​NPC问题NP类中还有一类问题称为NP完全类,记为NPC。所有的NP问题都可以通过多项式时间转换为NPC中的问题。NPC是NP类中困难程度最大的一类问题,但NPC中的问题困难程度相当,都可以多项式时间转化为称为可满足性问题的NPC问题,此类NPC具有如下性质,若其中的任何一个问题属于P,则所有的NP问题都属于P,且。现在的密码算法的安全性都是基于NPC问题的,破译一个密码相当于求解一个NPC问题,如果,则破译密码就是一件很容易的事情.​2.2信息加密方式与标准经典的信息加密理论主要用于通信保密,而现代信息加密技术的应用已深入到信息安全的各个环节和对象,信息的加密方式和标准也有了深入广泛的发展,特别是现代加密和信息隐藏技术的结合,实现信息隐蔽传输使人类对信息的加密技术有了新的认识和要求,下面介绍信息加密技术的基本概念、方式和标准。​2.2.1信息加密基本概念(1)研究安全信息的加密技术和研究破解安全信息密码的密码分析技术的学科称为密码学。信息加密是通过使用一种编码而使某些可读的信息(明文)变为不可读的信息(密文)。这些编码就是将明文变成密文的加密算法(也称为密码)或数学方法。密码使用隐蔽语言、文字、图象的特种符号,目标是接收数据作为输入,产生密文作为输出,以便数据的原始意义得以隐藏。在计算机通讯中,采用密码(密钥为参数)将信息隐蔽起来,再将隐蔽后的信息传输出去,使信息在传输过程中即使被窃取或载获,也不能了解信息的内容,从而保证信息传输的安全。​2.2.1信息加密基本概念(2)

通信两端将信息编码时,发送端使用简单的信息加密;接收端收到传来的信息后通过解密看到编码前的信息,整个过程中加密或解密是由密钥控制实现的。密钥是用户按照一种密码体制随机选取,它通常是一随机字符串,是控制明文变换(加密)和密文变换(解密)的唯一参数。密钥全体称为密钥空间。一般来说,密钥越大,加密就越健壮。​加密系统的组成部分

如上所述,一个加密系统实际上是某种加密算法在密钥控制下实现的从明文到密文的映射,它至少包括下面四个组成部分:(1)加密的报文,也称明文;(2)加密后的报文,也称密文;(3)加密解密设备或算法;(4)加密解密的密钥;一般情况下,密钥由K表示,明文由m表示,加密算法由()表示,解密算法由

()表示,;则,

(

(m))=m

​加密系统示意图一个完整的加密系统如下图所示:信源加密解密信宿密文明文窃听干扰明文密钥K1密钥K2图2.2加密系统示意图​加密系统的安全规则(1)任何一个加密系统必须基本具备四个安全规则:(1)机密性(confidentiality):加密系统在信息的传送中提供一个或一系列密钥来把信息通过密码运算译成密文,使信息不会被非预期的人员所读取,只有发送者和接收者应该知晓此信息的内容。​加密系统的安全规则(2)(2)完整性(integrity):数据在传送过程中不应被破坏,收到的信宿数据与信源数据是一致的。应该选取健壮的密码和加密密钥,以确保入侵者无法攻破密钥或找出一个相同的加密算法,阻止入侵者会改变数据后对其重新加密。有时,数据完整性可以通过适当的方法在信息还未被完全修改时检测到,如:密码散列函数是单向密码,它为明文产生惟一的“指纹”,当明文被拦截和读取,要修改它将改变散列,致使有意向的接收者很容易看出散列之间的差异。​加密系统的安全规则(3)

(3)认证性(authentication):加密系统应该提供数字签名技术来使接收信息用户验证是谁发送的信息,确定信息是否被第三者篡改。只要密钥还未泄露或与别人共享,发送者就不能否认他发送的数据。实际应用中,假如发送者和接收者都使用一个对称密钥,对于整体信息加密或计算机网络上的链路级加密,在两个路由器之间建立一个加密会话,以通过因特网发送加密信息。连接到网络的计算机发送明文给路由器,明文被转换为密文,然后通过因特网发送到另一端的路由器。在整个加密数据形成和传递过程中,加密方网络内部和非加密方的任一节点都能插入信息,并在这一层次分析,但对于接收者这一节点来说你只能判定信息是否来自某个特定的网络,而要确认信息的发送节点,这将使验证机制变得很复杂。​加密系统的安全规则(4)(4)非否定(non-repudiation):加密系统除了应该验证是谁发送的信息外,还要进一步验证收到的信息是否来自可信的源端,实际上是通过必要的认证确认信息发送者是否可信。现代健壮的验证方法用加密算法来比较一些已知的信息段,如PIN(个人识别号)判断源端是否可信。非否定规则应属于认证性规则中的一部分。一般来说,前三个规则一起被称为CIA。从技术的角度来看,所有的加密都提供了私有性和完整性,其余的均由此衍生,这包括非否定和认证性规则。​2.2.2信息加密方式

1.信息加密方式分类

对存储的文件和网络中传输的数据包实施信息加密,其加密方式可以根据加密系统不同的特征划分:(1)按密钥方式划分

对称式加密:收发双方使用相同密钥。加密和解密使用同一密钥。加密算法和解密算法在对称式加密中是相同的,加密和解密使用同一密钥K表示。

非对称式加密:也称公用密钥加密,加密和解密使用不同密钥。它通常有两个密钥,称为“公钥”和“私钥”。它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不对外公布,只有持有人知道。加密算法和解密算法在非对称式加密中是不相同的;K1是加密密钥,是公开的,称为公钥,K2是解密密钥,称为私钥,则须保密。​2种不同方式的加密示意图

明文解密密钥K2明文加密密钥K2KK密文传输图2.2对称式加密示意图明文解密密钥K2K1K2加密密钥K2明文

图2.3非对称式加密示意图​1.信息加密方式分类(2)按保密程度划分理论上保密的加密:无论获取多少密文和有多大的计算能力,对于明文始终不能得到唯一解的加密方法。如:采用客观随机一次出来的密码就属于这种加密方式。实际上保密的加密:从理论的角度是可以破解的,但在现有客观条件下,无法通过计算来确定唯一解。(3)按明文形态划分模拟信息加密:用来加密模拟信息。如:动态范围之内,连续变化的语音信号的加密。数字信息加密:用来加密数字信息。如:两个离散电平构成0、1二进制关系的电报信息的加密。​2.数字签名

数字签名是对原信息附上加密信息的过程,是一种身份认证技术,支持加密系统认证性和非否定;签名者对发布的原信息的内容负责,不可否认。数字签名采用非对称式加密(也称公钥加密标准)对信息m使用私钥K2加密,运算如下:S=DK2(m)其中S为签名,D为解密算法;接收者收到发送者发来的S和m信息,同时从公开媒体找到了发送者的公钥K1,发送者用K2对S进行如下运算:EK1(S)=E

K1(DK2(m))=m,E为加密算法;收到的m对应计算出来的m,结果说明信息确实来源于发送者,第三方不可能知道私钥K2,无法篡改S,发送者无法否认发送m信息。在实际工作中,由于解密计算缓慢,为了提高签名速度,m信息往往要经过压缩或散列处理或尽量取简短信息,如公钥数据等。​数字签名工作流程图

信息m密钥K2私钥K2公钥K1信息m密钥K2解密算法密钥K2签名S密钥K2签名S密钥K2加密算法密钥K2图2.4数字签名工作流程图​3.网络信息加密

网络信息加密的目的是保护网内的数据、文件、口令和控制信息,保护网上传输的数据。网络加密常用的方式有链路加密和端点加密。(1)链路加密链路加密对链路层数据单元进行加密保护,其目的是保护网络节点之间的链路信息安全。这种加密不但对节点之间之间传输的数据报文加密,还要把路由信息、校验和控制信息包括数据链路层的帧头、位填充和控制序列等都进行加密;当密文传输到某一节点时,全部解密获得链信息和明文,然后全部加密后发送往下一个节点;对于这种加密,加密设备的设计相对复杂,必须理解链路层协议和必要的协议转换。​链路加密的优缺点链路加密非常有效,是因为几乎任何有用消息都被加密保护。加密范围包括用户数据、路由信息和协议信息等。因此,攻击者将不知道通信的发送和接受者的身份、不知道信息的内容、甚至不知道信息的长度以及通信持续的时间。而且,系统的安全性将不依赖任何传输管理技术。密钥管理也相对简单,仅仅是线路的两端需要共同的密钥。线路两端可以独立于网络的其他部分更换密钥。链路加密的缺点是:整个连接中的每段连接都需要加密保护。对于包含不同体系机构子网络的较大型网络,加密设备、策略管理、密钥量等方面的开销都是巨大的。另外,在每个加密节点,都存在加密的空白段:明文信息,这是及其危险的,特别是对于跨越不同安全域的网络。后来,为解决节点中数据是明文的缺点,在节点内增加了加解装置,避免了节点明文,这种加密方式称为节点加密;但和链-链加密一样,同样依靠公共网络节点资源的配合,开销依然很大。​端点加密

端点加密的是对源端用户到目的端用户的数据提供加密保护。既将加密模块置于网络以上的加密方式。端点加密中,数据从加密的端节点,一直到对应的解密节点,数据在整个传输过程中都保持密文形式,从而克服了链路加密出现加密空白段(中间节点明文信息)的问题。由于加密和解密只发生在两个端节点,因此对中间节点是透明的。这样大大减少了安装设备的开销(特别是中间节点设备开销),以及复杂的策略管理和密钥管理所引起的麻烦。由于加密范围往往集中在高层协议数据,还极易为不同流量提供QoS服务,实现按特定流量进行加密和不同强度的加密。从而有利于提高系统的效能,优化系统的性能。​端点加密的缺点

端点加密的缺点是:由于通信环境往往比较复杂,要在跨越网络的两个端用户之间成功地完成密钥的建立是需要付出性能代价的。其次,端点加密不能保护数据传输过程中的某些信息,如路由信息、协议信息等,一个训练有素的攻击者可以借助这些信息发动某些流量分析攻击。另外,端点加密设备(模块)的实现十分复杂,要求设备必须理解服务的提供层的协议,并且成功调用这些服务,然后在设备中对对应的数据进行密码处理,并且将处理后的数据传送给上层协议。如果加密设备不能为上层协议提供良好的服务接口,则将对通信的性能产生较大的影响。

​2.2.3数据加密标准

1.对称密钥加密DES

DES(dataencryptionstandard)是1976年由美国国家标准局颁布的一种加密算法,属于对称密钥加密算法体制,早期被公认为较好的加密算法,经过长期严验证后,被国际标准化组织接受作为国际标准。DES自它应用20多年来,不断经受了许多科学家破译,同时也成为密码界研究的重点。DES对称密钥加密算法广泛的应用在民用密码领域,为全球贸易、金融等非官方部门提供了可靠的通信安全保障。​DES的相关知识DES主要采用替换和移位的加密方法用56位密钥对64位二进制数据块进行加密,加密每次可对64位的输入数据进行16轮编码,经过一系列替换和移位后,原始的64位输入数据转换成了完全不同的64位输出数据。DES算法运算速度快,生成密钥容易,适合于在当前大多数计算机上用软件方法和专用芯片上实现。但DES密钥太短(56位),密钥健壮性不够好,降低保密强度;同时,DES安全性完全依赖于对密钥的保护,在网络环境下使用,分发密钥的信道必须具备有力的可靠性才能保证机密性和完整性。DES算法还有一些变形,如:三重DES和广义DES等。目前,DES应用领域主要包括:计算机网络通信中的数据保护(只限于民用敏感信息);电子资金加密传送;保护用户存储文件,防止了未授权用户窃密;计算机用户识别等。​2.Clipper加密芯片标准这种数据加密标准对用户只提供加密芯片(Clipper)和硬件设备,它的密码算法不公开,密钥量比DES多1000多万倍,是美国国家保密局(NSA)在1993年正式使用的新的商用数据加密标准,目的是取代DES,提高密码算法的安全性,主要用于通信交换系统中电话、传真和计算机通信信息的安全保护。为确保更可靠的安全性,加密设备的制作方法按照Clipper芯片由一个公司制造裸片,再由另一公司编程严格规定来实施。Clipper芯片主要特点是充分利用高的运算能力的设备资源加大密钥量,从而用于计算机通信网上的信息加密,如:政府和军事通信网中数据加密芯片的研究不断换代使它还实现了数字签名标准和保密的哈希函数标准以及用纯噪声源产生随机数据的算法等。​3.国际数据加密标准这种算法是在DES算法的基础上发展的。与DES相同,国际数据加密算法IDEA(internationaldataencryptionalgorithm)也是针对数据块加密;它采用128位密钥,设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥,基于这种算法,采用软件实现和采用硬件实现同样快速,非常适合于对大量的明文信息的快速加密。它在1990年正式公布并在以后得到了增强。​传统加密方法的缺点

在网络通信中,传统的对称加密方法是发送者加密、接收者解密使用同样的密钥,这种方法虽然有运算快的特点,随着用户的增加,大量密钥的分配是一个难以解决的问题。例如,若系统中有n个用户,其中每两个用户之间需要建立密码通信,则系统中每个用户须掌握(n-1)/2个密钥,而系统中所需的密钥总数为n*(n-1)/2个。对10个用户,每个用户必须有9个密钥,系统中密钥的总数为45个。对100个用户,每个用户必须有99个密钥,系统中密钥的总数为4950个。这还仅考虑用户之间的通信只使用一种会话密钥的情况。如此庞大数量的密钥生成、管理、分发确实是一个难处理的问题。因此,对称加密方法所带来的密钥的弱的健壮性和密钥管理的复杂性局限了它的发展。​4.公开密钥加密标准早在20世纪70年代,美国斯坦福大学的两名学者迪菲和赫尔曼提出了一种加密方法――公开密钥加密方法,解决了传统加密体系的密匙分配复杂的缺点。公开密钥加密方法是非对称加密方式,该技术采用不同的加密密钥和解密密钥对信息加密和解密,每个用户有一个对外公开的加密算法E和对外保密的解密算法D,它们须满足条件:(1)D是E的逆,即D[E(X)]=X。(2)E和D容易计算。(3)如果由E出发求解D十分困难。​公钥及私钥的概念若加密密钥可对外公开,称为公钥;一个用户向另一用户传送信息,首先通过开放途径(如BBS)的获得另一用户的公开密钥,对明文加密后发送,而另一用户唯一保存的解密密钥是保密的,称为私钥,另一用户通过安全的方法验证信源可靠后,私钥将密文复原、解密。理论上解密密钥可由加密密钥推算出来,但这种算法设计在实际上是不可能的,或者虽然能够推算出,但要花费很长的时间和代价,所以,将加密密钥公开不会危害密钥的安全。​RSA算法著名的RSA正是基于这种理论,算法以发明者的名字命名:RonRivest,AdiShamir和LeonardAdleman.这种算法为公用网络上信息的加密和鉴别提供了一种基本的方法。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位,这就使加密的计算量很大。同时,为减少计算量,在传送信息时,常采用传统对称加密方法与RSA公开密钥加密方法相结合的方式,信息明文加密采用改进的DES或IDEA加密方法,使用RSA用于加密密钥和信息摘要。对方收到信息后,用各自相关的密钥解密并可核对信息。但是RSA并不能替代DES等对称算法,RSA的密钥长,加密速度慢,而采用DES等对称算法加密速度快,适合加密较长的报文,弥补了RSA的缺点。美国的保密增强邮件系统(PEM)就是采用了RSA和DES结合的方法,目前已成为E-MAIL保密通信标准。​5.量子加密方法

量子加密与公钥加密标准同期出现,适用于网络上加密普通宽带数据信道所传送的信息,工作原理是两端用户各自产生一个私有的随机数字符串,两个用户向对方的接受装置发送代表数字字符串的单个量子序列(光脉冲),接受装置从两个字符串中取出相匹配的比特值组成了密钥。实现了会话或交换密钥的传递。由于这种方法依赖的是量子力学定律,传输的光量子是无法被窃听的;如果有人进行窃听,就会对通信系统造成干扰,对通信系统的量子状态造成不可挽回的变化,通信双方就会得知有人进行窃听,从而结束通信,重新生成密钥。这种加密技术不久的将来应该有应用和发展,但是如何实现数字签名有待于研究。​2.3公钥信息加密算法

随着密码技术的发展,Diffie和Hellman在IEEE提出提出了公钥密码系统,即加密密钥和解密密钥不是同一把密钥。现在公钥密码系统被广泛的应用,其中RSA加密算法,Diffie-Hellman算法,ElGamal加密算法,椭圆曲线加密算法被广泛研究和应用。​2.3.1RSA加密算法RSA的安全性依赖于大数分解。公钥及私钥都是两个大素数(大于100个十进制位)的函数,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。算法如下:

1.生成密钥(1)秘密的选取两个大数p,q(2)计算,,这指的是Euler函数(3)选取整数e,满足且。(4)计算d,满足。即d是e关于模乘的逆元,(乘法逆元:设,如果存在,满足,则称x是a的模n乘法逆元,记为

(modn)

)由e的定义,d唯一。(5)输出公钥,私钥。​具体加密解密操作

加密操作选定,把明文分成长度为k的组块。对每个明文分组M,M在0到(n-1)之间。加密操作为:

解密操作得到密文分组C,解密操作为:

(2.14)

(2.15)​RSA算法的局限性(1)(1)有限的安全性

RSA是一种分组密码算法,它的安全是基于数论中大的整数n分解为两个素数之积的难解性。目前,RSA的一些变种算法已被证明等价于大数分解。同样,分解n也是最显然的攻击方法。现在,人们已能分解140多个十进制位的大素数。因此,适用具体情况而定,模数n必须选尽可能大。同时要注意,如果系统中共享一个模数,不同的人拥有不同的公钥e1和e2,这些公钥共模而且互质,假如普遍的情况是同一信息用不同的公钥加密,那么该信息无需私钥就可得到恢复。即设P为信息明文,C1和C2为密文,公共模数是n,则:C1=P^e1modn;C2=P^e2modn密码分析者知道n、e1、e2、C1和C2,就能得到P。解决办法只有一个,那就是不要共享模数n。​RSA算法的局限性(2)

(2)运算速度慢

RSA算法进行的都是大数计算,使得其最快的情况也比DES慢上100倍,无论是软件实现还是硬件实现。速度一直是RSA算法的缺陷。一般来说RSA算法只用于少量数据加密。有一种提高RSA速度的建议是使公钥e取较小的值,这样会使加密变得易于实现,速度有所提高。但这样作是不安全的,公钥e和私钥d还是都取较大的值为好。但是,RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。经历了各种攻击的考验和最广泛的研究,从提出到现在已近二十年,逐渐为人们认为是目前最适用的公钥算法之一。​2.3.2Diffie-Hellman算法Diffie和Hellman在1976年公开发表的第一个公钥密码算法定义了公钥密码学。论文中提出一个密钥交换系统,让网络互不相见的两个通信体,可以共享一把钥匙,用以证明公开密钥的概念的可行性。这个算法本身基于计算对数难度,其目的是实现两个用户之间安全地交换密钥以便于后续的数据加密。Diffie-Hellman密钥交换算法在现在的许多商用产品中使用。​Diffie-Hellman算法描述

算法描述如下:给定公开素数q和q的本原根r。即r∈{1,2,3,4,…(q-1)},且{1,2,3,4,…(q-1)}={modq,modq,modq,…modq}则对b∈{1,2,3,4,…(q-1)},可以唯一的指数i,使得b=modq。

用户A,B交换密钥的方法如下:(1)用户A选择一个随机数,计算,A将秘密保存而将公开。(2)用户B选择一个随机数,计算,B将秘密保存而将公开。(3)A将送给B,B将送给A,(A并不知道,B并不知道)(4)用户A计算密钥:;(5)用户B计算密钥:;​2.3.3ElGamal加密算法EIGamal体制是T.EIGamal在1985年发表的“Apublic-keycryptosystemandasignaturesschemebasedondiscretelogarithms”(一个基于离散对数的共钥密码体制和数学签名方案)论文中提出的公开密匙密码体制。下面给出的EIGamal体制在论文中用于数据加密的算法。采用EIGamal公开密匙密码体制的密码系统中,所有的用户都共享一个素数P以及一个Z的生成元g,明文空间P=Z,密文空间

,选定0<a<p,计算秘密密钥:a公开密钥:b​ElGamal加密解密算法加密算法:设明文为m,0≤m<p,随机的选取正整数k,0≤k<p,gcd(k,p-1)=1,计算密文对y1,y2:

密文。

解密算法:可见,EIGamal体制的密文不是唯一的,这是一种非确定性加密方式。显然增加了系统的安全性,但是,代价是密文膨胀了两倍。​2.3.4椭圆曲线加密算法定义

定义:椭圆曲线指的是由韦尔斯特拉斯方程所确定的平面曲线。其中,系数(i=1,2,…,6)定义在基域K上(K可以是有理数域、实数域、复数域,还可以是有限域,椭圆曲线密码体制中用到的椭圆曲线都定义在有限域上)​椭圆曲线加密算法相关知识

1985年,Koblitz和Miller相互独立地开发提出了在密码学中应用椭圆曲线(ElipticalCurve)构造公开密钥密码体制的思想。这一算法一出现便受到关注,由于基于椭圆曲线的公开密钥密码体制开销小(所需的计算量小)、安全性高等优点,随着椭圆曲线的公开密钥密码体制极大的发展,它将替代RSA成为通用的公钥密码算法。实践表明,在32位的PC机上和16位微处理器上运行椭圆曲线密码算法,其中16位微处理器上的数字签名不足500ms。因此,应用椭圆曲线的数字签名可以很容易地在小的有限资源的设备中使用。​1.有限域上的椭圆曲线算法的提出

设K表示一个有限域,E是域K上的椭圆曲线,则E是一个点的集合:E/K={(x,y)|y2+a1xy+a3y=x3+a2x2+a4x+a6,a1,a3,a2,a4,a6

x,y

K}{O}其中O表示无穷远点。在E上定义‘+’运算,P+Q=R,R是过P、Q的直线与曲线的另一交点关于x轴的对称点,当P=Q时R是P点的切线与曲线的另一交点关于x轴的对称点。这样,(E,+)构成可换群(Abel群),O是加法单位元(零元)。椭圆曲线离散对数问题定义如下:给定定义在K上的椭圆曲线E,一个n阶的点PE/K,和点QE/K,如果存在l,确定整数l,0,l,n-1,Q=lP。我们知道,RSA是基于因子分解,其算法的核心就是如何寻找大数的因子分解,但大数的因子分解是比因子分解难得多的问题。椭圆曲线上的加法:P+Q=R是椭圆曲线上一点的2倍:P+P=R.基于该难题,1985年N.Koblitz和Miller提出将椭圆曲线用于密码算法,分别利用有限域上椭圆曲线的点构成的群实现了离散对数密码算法。​2.椭圆曲线上的密码算法

椭圆曲线加密系统由很多依赖于椭圆曲线离散对数算法问题的加密系统组成:(1)知E(Fn)对点的“

”运算形成一个Abel群,设p∈E(Fn),若p的周期很大,即使p

p

……

p=θ

(共有t个p相加)成立的最小正整数t,希望t很大(t=p的周期,表示为∏(p)=t),并且对Q∈E(Fq),定有某个正整数m使Q=m•p=p

……

p(共有m个p相加)定义m=㏒n

Q(m为以n为底Q的对数)椭圆曲线上的点形成的群E(Fn),相关它的离散对数问题是难处理的。​建立椭圆曲线密码体制

选取基域Fn,Fn的椭圆曲线具体给定为确定的形式。在E(Fn)中选一个周期很大的点,如选了一个点P=(xn,yn),它的周期为一个大的素数n,记∏(P)=n(素数)。注意:在这个密码体制中,具体的曲线及点P和它的n都是公开信息。密码体制的形式采用EIGamal体制,是完全类比过来。​建立椭圆曲线密码的方法使用者执行了下列计算:a)在区间[1,n-1]中随机选取一个整数d;b)计算点Q:=dP(d个P相

);c)使用者公开自己的公开密钥——(E(Fn),p,n,Q);d)使用者的私钥为整数d;发送者要发送消息m给使用者,执行:a)查找使用者的公钥(E(Fn),p,n,Q),b)将m表示成一个域元素m∈Fn,c)在区间[1,n-1]内选取一个随机数k,d)依据使用者的公钥计算点(x1,y1):=kP(k个P相

),e)计算点(x2,y2):=kQ,如果x2=0,则回到第c步计算C:=m•x2;f)传送加密数据(x1,y1,C)给使用者;使用者收到发送者的密文(x,y,C)后,执行解密过程:a)使用私钥d,计算点(x2,y2):=d(x1,y1),再计算Fn中

,b)通过计算m:=C•

,恢复出明文数据m。​2.4信息加密产品简介

信息加密产品随着加密技术的应用和发展出现了良好的商业化趋势,比较常用的信息加密软件有PGP和CryptoAPI,作为开放的软件工具,它们的使用为深入开展信息加密技术的研究提供了帮助。下面分别介绍PGP和CryptoAPI。​2.4.1PGP加密软件简介PGP(pretty

good

privacy)是一个对邮件和传输的文挡进行加密的软件,可以用来对邮件和文挡保密以防止非授权者阅读,让你可以安全地和你从未见过的人们通信。PGP软件综合了目前健壮的加密方法和加密系统认证性方面的新手段,功能强大有很快的速度,是一种比较实用和安全的加密工具。PGP软件创始人是美国的Phil

Zimmermann,由于许多版本不受密码出口管制,源代码也是免费的,获取比较方便。​1.PGP采用的加密标准PGP

用的是公匙加密和传统加密的杂合算法,这种算法创造性在于他把公匙加密体系的方便和传统加密体系的高速度结合起来,充分利用多个算法各自的优点应用于明文加密和密匙认证管理机制中,形成了整个加密系统巧妙的设计。PGP实际上用来对明文加密采用了IDEA的传统加密算法。IDEA的加(解)密速度比公匙加密算法如RSA快得多,但主要缺点就是密匙的传递渠道解决不了安全性问题,不适合网络环境加密需要。因此,PGP每次加密都可以随机生成密匙用IDEA算法对明文加密,然后在用密匙的传递中用公匙加密算法,一般是使用不适合加密大量数据的RSA或Diffie-Hellman算法对该密匙加密来保证传递渠道的安全性,这样收件人同样是用RSA或Diffie-Hellman解密出这个随机密匙,再用IDEA解密出明文。​PGP加密方法示意图

解密密钥K2明文密钥K加密密钥K2明文加密密钥K2发送者接收者IDEA加密密文接收者的公钥K1公钥加密密文解密密钥K2接收者的私钥K2密钥K图4.1PGP加密方法示意图​2.PGP的密匙管理(1)在PGP中如果IDEA密匙是通过网络传送而不加密,网络黑客们就会“监听”而获取密匙,整个传输肯定危险,因此,必须通过必要可靠的密匙管理来保证信息发送和接收的安全性。一个成熟的加密系统必然要有一个成熟的密匙管理机制配套,公匙加密体系可以解决传统加密体系的密匙分配难保密的缺点,PGP中应用RSA或Diffie-Hellman算法实施密匙分配。​2.PGP的密匙管理(2)但是,分配过程中首先要获取对方公匙,如果公匙被篡改,所获得的公匙成了伪造的,密匙分配就会传递给篡改者,篡改者可以用自己的私匙解密获得密匙。这可能是公匙密码体系中最大的漏洞和安全性问题,你必须确信你拿到的公匙属于它看上去属于的那个人。防止这种情况出现的最好办法是避免让任何其他人有机会篡改公匙,比如直接从要接收信息的人手中得到公匙,然而当在千里之外或无法见到时,这是很困难的。​2.PGP的密匙管理(3)解决这个问题一般方法是数字签名,直接认证你的信息接收者的公匙,防止篡改公匙;而PGP则在此基础上发展了一种公匙介绍机制来解决这个问题,举例来说:如果你和接收信息的人有一个共同的朋友,而朋友知道他手中的你的接收信息的人的公匙是正确的,这样朋友可以用他自己的私匙在你的接收信息的人的公匙上加密,表示他担保这个公匙属于你的信息接收者,然后你需要用朋友的公匙解密获取信息接收者给你的公匙,同样朋友也可以向你的信息接收者认证你的公匙。这样朋友“介绍人”。这样你就可以放心地到BBS上取朋友签过字的公匙,由于经过朋友认证,没人可能获得朋友的私匙去伪造和篡改信息接收者给你的公匙,但前提是朋友认证过你的信息接收者的公匙,这样是从信任的公共渠道传递公匙的安全手段。​PGP的安全性管理特点(1)审慎的密匙管理(2)灵活选择加密密匙对的位数(3)专门用来签名而不加密,用于声明人用自己的私匙签名证实自己的身份(4)加密的实际密匙随机数难以分析,如:PGP程序对随机数的产生是很审慎的,关键的随机数像RSA密匙的产生是从用户瞧键盘的时间间隔上取得随机数种子的,这有效地防止了他人从你的随机数文件中分析出你的加密实际密匙的规律来(5)PGP内核使用PKZIP算法来压缩加密前的明文,压缩后加密再经过7bits编码使密文比明文更短,节省了网络传输的时间;另一方面,明文经过压缩,信息更加杂乱无章,增强了对明文攻击的抵御能力。​2.4.2CryptoAPI加密软件简介MicrosoftCryptoAPI(CryptographyAPI,加密API)是微软开发的一系列API标准加密接口功能函数,主要提供在Win32环境下加解密、数字签名验证等安全服务应用,供给应用程序使用这些API函数生成和交换密钥、加密和解密数据、实现密钥管理和认证、验证数字签名及散列计算等操作,增强应用程序的安全性和可控性。​1.CryptoAPI的加密系统结构Microsoft提供CryptoAPI接口和CSP(cryptographicserviceprovider),CSP是真正实行实现所有加密操作的独立模块,由两部分组成:一个DLL(dynamiclinkablelibrary,动态链接库)文件和一个签名文件。Microsoft安装会将该CSP的各个的文件安放到相应的目录下,并在注册表中为其注册。​CSP密钥库示意图

签名密钥对交换密钥对签名密钥对交换密钥对User#1密钥容器User#2密钥容器密钥库图2.4CSP密钥库​CSP类型和算法

CSP类型交换算法签名算法对称加密算法Hash算法PROV_RSA_FULLRSARSARC2/RC4MD5/SHAPROV_RSA_SIGnoneRSAnoneMD5/SHAPROV_RSA_SCHANNELRSARSARC4/DES/TripleDESMD5/SHAPROV_DSSDSSnoneDSSMD5/SHAPROV_DSS_DHDHDSSCYLINK_MEKMD5/SHAPROV_DH_SCHANNELDHDSSDES/TripleDESMD5/SHAPROV_FORTEZZAKEADSSSkipjackSHAPROV_MS_EXCHANGERSARSACASTMD5PROV_SSLRSARSAVariesVaries​2.CryptoAPI函数分类(1)(1)basecryptographyfunctions基本的加密服务函数这类函数是用CSP提供的函数直接编制的API函数,它主要完成数据加/解密、计算Hash、产生密钥等操作,具体包括下面函数组:serviceproviderfunctions基本的服务提供函数;keygenerationandexchangefunctions密钥生成与交换函数cryptencodeobject/cryptdecodeobjectfunctions对象加/解密函数;dataencryption/decryptionfunctions数据加/解密函数;hashanddigitalsignaturefunctionsHash算法与数据签名函数;​2.CryptoAPI函数分类(2)(2)certificateandcertificatestorefunctions签名证书存储函数通常情况下,时间长了计算机上的签名证书数量会增加,用户有必要管理证书。certificatestorefunctions让用户存储、检索、删除、列出和验证证书,但并不生成证书(生成证书是CA的任务)和证书请求。CertificateStoreFunctions提供将证书和要发送的信息附加的功能。​2.CryptoAPI函数分类(3)(3)certificateverificationfunctions证书验证函数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论