版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章数据加密2.1数据加密概述
2.2对称密码体制
2.3非对称密码体制2.4密钥的管理
2.5散列函数与数字签名2.6本章小结
西安培华学院《计算机基础》通过本章的学习,读者应该掌握以下内容:(1)了解数据加密在网络安全中的重要作用;(2)掌握对称密码体制的DES和AES算法;(3)掌握非对称密码体制的RSA和椭圆曲线加密算法;(4)熟悉密钥的管理。2.1数字加密概述 一个加密系统采用的基本工作方式称为密码体制,密码体制的基本要素是密码算法和密钥,其中密码算法是一些公式、法则或程序,而密钥是密码算法中的可变参数。密码算法分为加密和解密算法,前者是将明文变换成密文,后者是将密文变换成明文;密钥相应地也分为加密密钥和解密密钥。一个加密系统数学符号描述如下: S={P,C,K,E,D}其中P是明文空间,C是密文空间,K是密钥空间,E是加密算法,D是解密算法,当给定密钥k∈K时,加、解密算法分别记作Ek和D
k,并有:
C=Ek(P)
P=Dk(C)=Dk(Ek(P)),或记为
Dk=Ek–1且Ek=Dk–1现代密码学的一个基本原则是一切秘密应寓于密钥之中,即在设计加密系统时,总是假定密码算法是公开的,真正需要保密的是密钥。
2.1.1保密通信模型首先来看一个保密通信系统的基本模型,如图2.1所示:A向B发送一报文,为了不被E窃听,A对报文进行加密,然后在通信信道上进行传输,B收到报文后进行解密,得到原来的报文。图2.1保密通信系统的模型2.1.2经典加密方法1.换位加密法(Transposition)(1)铁轨法(RailroadMethod)
铁轨法是换位算法最基本的形式。首先,它要求明文的长度必须是4的倍数,不符合要求则在明文最后加上一些字母以符合加密的条件,例如,明文“STRIKEWHILETHEIRONISHOT”就不满足条件(空白不计),故在尾端加上字母“E”使明文的长度变成4的倍数,接着将明文以从上到下的顺序逐列写出,表示如下: SRKWIEHIOIHT TIEHLTERNSOE 依序由左而右再由上而下地写出字母即为密文,表示如下: SRKWIEHIOIHTTITIEHLTERNSOE 为方便起见,将密文每4个字母一数,其间用空格隔开:SRKWIEHIOIHTTIRHLYRTNSOE 这就是为什么要使密文长度为4的倍数的原因了。接收方收到此密文后,因为知道加密的顺序,因此,接收方可将密文以一直线从中分为两个部分,如下所示:SRKWIEHIOIHT|TIRHLYRTNSOE 然后左右两半依序轮流读出字母便可以还原成原来的明文了。 当然,在写明文时也可以写成三列或四列等。写法不同,则解法也相应不同。(2)路游法路游法可以说是一种铁轨法的推广。同样,此法也必须将明文的长度调整为4的倍数。之后将调整过的明文依由左而右由上而下的顺序(此顺序称之为排列顺序)填入方格矩阵中。依前例,可以得到如下矩阵。STRIKEWHILETHEIRONISHOTE图2.2
游走路径
有了此矩阵后,便可以依照某一事先规定的路径(称为游走路径)来游走矩阵并输出所经过的字母,此即为密文。 如果以如图2.2所示的游走路径来走,则可以得到如下的密文: ETNETOEKILROHIIRTHESIHWS图2.2游走路径(3)密钥法密钥法最大的好处是就是将加密者和解密者双方所持有的加、解密信息具体化。密钥法大致来说与路游法相似,首先也是将明文填入一个矩阵(见路游法中的矩阵),接着,任意挑选一个密钥,如以“PREDIC”这个英文单字为加、解密双方所协议的共同密钥,然后,将密钥写于矩阵上方,如下所示。
PREDICSTRIKEWHILETHEIRONISHOTE接着依照加密密钥字母的顺序分别依序读出其相对应的列便可得到密文,即先读出字母C对应的列,再依次读出字母DEIPR对应的列,得到密文如下:ETNEILRORIIHKEOTSWHIHTES2.替换加密法(Substitution)替换加密法与此思路完全相反,对于明文的每一个字母并不去改变它的位置,只是将它以别的字母或符号取代。原字母ABCDEFGHIJKLM替代字母ZYXWVUTSRQPON原字母NOPQRSTUVWXYZ替代字母MLKJIHGFEDCBA(1)旋转替换法假设有一个由两个同心圆所组成的密码转盘,如图2.3所示。
图2.3密码转盘图
图2.4旋转后的密码转盘
(2)LewisCarroll’sVigenere代换法首先,加解密双方必须同时握有如表2.1所示的表格,另外还必须商议出一把共同密钥,这里必须强调的是表2.1并非密钥的一部分,也就是说,即使表2.1被公开,也不会影响系统的安全性。假设通信双方均已握有表2.1,且已互相约定好一把秘密密钥“CRYPTOGRAPHY”,接着便可将明文“STRIKE
WHILE
THE
IRON
IS
HOT”加密了。 首先,将密钥重复地写在明文的上方。
CR
YP
TO
GR
AP
HY
CR
YP
TO
GR
AP
HST
RI
KE
WHILETHEIRONIS
HOT 然后以上下两个字母为指针去查表2.1,例如第一个字母对为(C,S),此即表示在表2.1中查找行为C且列为S为元素,即为U,此字母就是相对于明文S的密文,其他的明文字母转换成密文可依次类推,从而得到以下密文:UKPXDSCYIAIRJVGGHBOTHDA2.1.3现代密码体制1.对称密码体制和非对称密码体制
对称密码体制又称为秘密密钥密码体制(或单密钥密码体制/隐蔽密钥密码体制),即加密密钥和解密密钥相同或一个可由另一个导出。非对称密码体制又称为公开密钥密码体制,即加密密钥公开,解密密钥不公开,从一个推导出另一个是不可行的。2.分组密码体制和序列密码体制这是根据密码算法对明文信息的加密方式进行分类的方法。如果密文仅与给定的密码算法和密钥有关,与被处理的明文数据段在整个明文(或密文)中所处的位置无关,则称为分组密码体制。分组密码体制就是将明文分成固定长度的组,如64bit一组,用同一密钥和算法对每一组加密,输出也是固定长度的密文。如果密文不仅与给定的密码算法和密钥有关,同时也是被处理的明文数据段在整个明文(或密文)中所处的位置的函数,则称为序列密码体制。
3.确定型密码体制和概率密码体制如果一个加密过程可以描述为:当明文和密钥确定后,密文的形式也就惟一地确定,则称为确定型密码体制。前面提到的加密方法中,多数属于这一类。如果一个加密过程可以描述为:当明文和密钥确定后,密文的形式仍是不确定的,最后产生出来的密文通过客观随机因素从一个密文集合中选出,则称为概率密码体制。
4.单向函数密码体制和双向变换密码体制2.2对称密码体制2.2.1美国数据加密标准(DES) 美国数据加密标准(DataEncryptionStandard,DES)是在20世纪70年代中期由美国IBM公司的一个密码算法发展而来的,1977年美国国家标准局公布DES密码算法作为美国数据加密标准。直到今日,尽管DES已经经历了20多个年头,但在已知的公开文献中,还是无法完全地、彻底地把DES给破解掉。换句话说,DES这套加密方法至今仍被公认是安全的。1.DES算法 DES属于分组加密算法。在这个加密系统中,其每次加密或解密的分组大小是64位,所以DES没有密文扩充的问题。就一般数据而言,无论明文或密文,其数据大小通常都大于64位。这时只要将明文/密文中每64位当成一个分组加以切割,再对每一个分组做加密或解密即可。当切割到最后一个分组小于64位时,要在此分组后附加“0”位,直到该分组大小成为64位为止。另一方面,DES所用的加密或解密密钥(KEY)也是64位大小,但其中有8位是奇偶校验位,所以真正起密钥作用的只有56位,而DES加密与解密所用的算法除了子密钥的顺序不同之外,其他的部分则是完全相同的。图2.5所示的是DES全部16轮(Round)的加密/解密结构图,其最上方的64位输入分组数据可能是明文也可能是密文,视使用者要做加密或解密而定,而加密与解密的不同之处,只在于如图2.5所示的最右边的16个子密钥的使用顺序不同,加密的子密钥顺序为K1,K2,…,K16,而解密的子密钥顺序正好相反,为K16,K15,…,K1。
表2.2 初始置换5850423426181026052443628201246254463830221466456484032241685749413325179159514335271911361534537292113563554739312315740848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725表2.3 终结置换2.子密钥的产生 在子密钥产生过程中,输入是使用者所持有的64位初始密钥。初始密钥首先经过密钥置换A,如表2.5所示,将8个奇偶校验位去掉,留下真正的56位密钥。接着,将这56位密钥分成两个28位的分组C0和D0,再分别经过一个循环左移函数,如表2.4所示,得到C1与D1。轮数循环左移位数轮数循环左移位数轮数循环左移位数轮数循环左移位数115291132216210214232721121524282122161表2.4 循环左移函数57494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124表2.5 密钥置换A C1与D1连接成56位数据,再按照密钥置换B做重排动作,如表2.6所示,这样就产生了子密钥K1。C1和D1,再分别经过一个循环左移函数得到C2与D2,C2与D2连结成56位数据,再按照密钥置换B做重排动作,这样就产生了子密钥K2。继续下去就依次生成了K3,K4,…,K16。其中需注意的是,密钥置换A的输入为64位,输出为56位;而密钥置换B的输入为56位,输出为48位。1417112415328156211023191242681672720132415231374755304051453348444939563453464250362932表2.6 密钥置换B3.DES算法的f函数
f函数是整个DES加密法中最重要的部分,而其中的重点又在S-盒(SubstitutionBoxes)上。f函数有两个输入数据:一个为32位的中间密文R,另一部分是48位的子密钥K。32位的中间密文R先经过扩展置换E扩增到48位,如表2.7所示3212345456789891011121312131415161716171819202120212223242524252627282928293031321表2.7 扩展置换E1672021291228171152326518311028241432273919133062211425表2.8 压缩置换P S-盒的替换方式是把6位输入最左与最右2个位取出来当列数,而中间的4个位则拿出来当行数。4.DES的安全性(1)弱密钥(WeakKey)所谓的弱密钥是指在所有可能的密钥中,有某几个特别的密钥会降低DES的安全性,所以使用者一定要避免使用这几个弱密钥。(2)半弱密钥(Semi-weakKey)除了上述的弱密钥之外,还有另外一种被称为半弱密钥的初始密钥。半弱密钥所产生的子密钥只有两种可能,每一种可能的子密钥刚好各出现8次。(3)DES的互补性(Complement)在DES的明文m,密文C与密钥K之间存在着互补的特性。如果以密钥K对明文m加密得到密文C,那么以密钥对明文加密,亦可到。(4)S-盒的设计原则
S-盒为整个DES加密系统安全性的关键所在,但其设计规则与过程一直因为种种不为人知的因素所限,未被公布出来。(5)DES的16轮(Round)超过8轮的DES,其密文和明文的关系就已经是随机关系了。(6)差分分析法差分分析法基本上属于选择明文攻击法。但在某些特定的情形下,也可用于已知明文攻击。这个方法简单地讲,就是分析特殊明文配对(PlaintextPair)的差值对于其所相对应的密文配对(CiphertextPair)的差值所产生的影响。2.2.2国际数据加密算法(IDEA)
国际数据加密算法(InternationalDataEncryptionAlgorithm,IDEA)是由瑞士联邦理工学院XuejiaLai和JamesMassey的在1990年提出的。IDEA是最近几年提出的用来替代DES的许多算法中的一种,是一个对称分组密码算法。
1.设计原理
IDEA是一种使用128位密钥以64位分组为单位加密数据的分组密码算法。与此相对照,DES使用56位密钥以64位的分组为单位进行加密。IDEA的设计目标可以归结为与密码强度和使用的方便性两方面有关,其中密码强度包括分组长度、密钥长度、混淆(Confusion)和扩散(Diffusion);使用的方便性指方便硬件和软件实现。通过由超大规模集成电路(VLSI)进行的硬件实现的设计目标是取得高速度,而软件实现则有灵活和低价的优点。2.数学基础3.IDEA加密方法
IDEA加密方法包括8轮的重复运算,加上最后的输出变换运算(Transformation)。64位的明文分组在每一轮中都是被分成4份,每份16位为一单元来处理。每一轮中有6个不同的子密钥参与作用。
图2.6IDEA加密流程图2.7IDEA单轮运算结构4.子密钥生成过程从图2.6中可以看出,IDEA一次完整的加密运算需要52个子密钥。这52个16位的子密钥都是由一个128位的加密密钥产生的。将128位分成8份,每份16位,相当于Z1,Z2,…,Z8的子密钥,Z1的16位对应于加密密钥中最高有效(MostSignificant)的16位,而Z8的16位对应于加密密钥中最低有效(LeastSignificant)的16位。将加密密钥循环左移25位以后,用同样的方法可以得到另外的8个子密钥Z8,Z9,…,Z16。重复同样的步骤,每循环25位,可以得到另外的新的8个子密钥。如此,Z1,Z2,…,Z52可以依此陆续生成。
5.IDEA解密方法使用与加密算法同样的结构,可以将密文分组当作输入而逐步恢复明文分组解密过程。与加密过程中惟一不同的是子密钥的生成方法。现在分析U1,U2,…,U52解密密钥如何从加密密钥Z1,Z2,…,Z52导出。图2.8IDEA中最后的输出变换运算2.2.3高级加密标准(AES)
AES的基本要求是该算法是对称密码体制,也即秘密密钥算法;算法应为分组密码算法,分组长度是128bit,密钥长度为128,192和256bit;比三重DES快,至少和三重DES一样安全。
“Rijndael数据加密算法”为新世纪的美国高级加密标准推荐算法。
Rijndael算法是由比利时的两个学者JoanDaemen和VincentRijmen提出的。该算法的原形是Square算法,它的设计策略是宽轨迹策略(WideTrailStrategy)。
1.数学基础(1)GF(28)域(2)加法(3)乘法(4)乘x(5)※x2.设计基本原理(1)该算法的设计目标有以下3点:①
能抗击所有的已知攻击;②
在广大范围平台上的快速和代码简洁;③
设计简单。
(2)在大多数加密算法中都是采用的Feistel结构的轮变换,而Rijndael算法彻底改变了这种结构,每一轮的变换由3层组成,每一层都实现一定的功能。①
线性混合层:确保多轮之上的高度扩散。②
非线性层:并行使用多个S-盒,可优化最坏情况非线性特性。③
密钥加层:轮密钥(子密钥)简单异或到中间级状态上。3.算法详细描述
Rijndael是一种具有可变分组长度和可变密钥长度的重复的分组密码。分组长度和密钥长度可独立选择为128,192和256bit。(1)状态,加密密钥和轮数(2)轮变换(3)轮密钥(4)密钥调度4.Rijndael加密和解密算法(1)Rijndael加密算法由以下内容组成:①初始的轮密钥加;②Nr–1轮;③最后一轮。用伪C代码表示如下:Rijndael(State,CipherKey){KeyExpansion(CipherKey,ExpandedKey);AddRoundKey(State,ExpandedKey);For(i=1;i<Nr;i++)Round(State,ExpandedKey+Nb*i);FinalRound(State,ExpandedKey+Nb*Nr);}(2)Rijndael解密算法解密算法用伪C代码表示如下:I_Rijndael(State,CipherKey){I_KeyExpansion(CipherKey,I_ExpandedKey);AddRoundKey(State,I_ExpandedKey
+Nb*Nr);For(i=Nr-1;i>0;i--)Round(State,I_ExpandedKey+Nb*i);FinalRound(State,I_ExpandedKey);}其中I_KeyExpansion
的伪C代码如下:I_KeyExpansion(CipherKey,I_ExpandedKey){KeyExpansion(CipherKey,I_ExpandedKey);For(i=1;i<Nr;i++)
InvMixColumn(I_ExpandedKey+Nb*i);}5.Rijndael算法的安全性
Rijndael算法的安全目标达到了K-安全和封闭性。6.Rijndael算法的优点、局限性及发展2.3非对称密码体制 非对称密码体制又称公开密钥密码体制,是用一对密钥(一个是用户私有,一个公开)对信息进行加密解密的密码体制。用户用私钥加密信息,密文只能用与加密对应的公钥才能解开。2.3.1非对称密码体制的原理 公开密钥算法有一个重要特性:仅仅知道密码算法和加密密钥而要确定解密密钥,在计算上是不可能的。另外,某些算法,如RSA,还具有以下特性。 两个相关密钥中任何一个都可以用作加密而让另一个用作解密。如图2.9所示,公开密钥加密过程重要步骤如下。(1)网络中的每个端系统都产生一对用于它将接收的报文进行加密和解密的密钥。(2)每个系统都通过把自己的加密密钥放进一个登记本或者文件来公布它,这就是公开密钥。另一个则是私有的。(3)如果A想给B发送一个报文,A就是B的公开密钥加密这个报文。(4)B收到这个报文后就用他的保密密钥解密报文。其他所有收到这个报文的人都无法解密,因为只有B才有B的私有密钥。图2.9公开密钥的加密过程2.3.2RSA算法1.欧拉定理若整数a和m互素,则: aφ(m)≡1(modm)其中φ(m)是比m小但与m互素的正整数的个数。2.RSA加密算法RSA加密算法的过程如下:(1)取两个素数p和q(保密);(2)计算n=pq(公开),φ(n)=(p–1)(q–1)(保密);(3)随机选取整数e,满足gcd(e,φ(n))=1(公开);(4)计算d,满足de≡1(modφ(n))(保密)。利用RSA加密第一步需将明文数字化,并取长度小于log2n位的数字作明文块。加密算法:c=E(m)≡me(modn)解密算法:
D(c)≡cd(modn)3.密钥产生过程 在使用公开密钥密码系统之前,每个参与者都必须产生一对密钥,这包括以下任务。(1)确定两个素数p和q。(2)选择e或者d并且计算另外一个。4.RSA安全性讨论若n=pq被因子分解,则RSA便被击破。因为若p,q已知,则φ(n)=(p–1)(q–1)便可算出。解密密钥d关于e满足下式:de≡1(modφ(n))
为了安全起见,对p和q还要求如下:(1)p和q的长度相差不大;(2)p–1和q–1有大素数因子;(3)(p–1,q–1)很小。满足这些条件的素数称作安全素数。2.3.3LUC算法1.LUC公钥密码体制解决的主要问题2.LUC密码体制的数学背景3.LUC公钥密码体制的算法描述(1)LUC公钥密码体制的算法流程(2)LUC公钥体制中的计算方法4.LUC公钥密码体制的特点及存在的问题LUC算法的安全性主要由以下两个问题决定。(1)给定n和e下,求d的难度。(2)给定c,n和e下,求p的难度。2.3.4椭圆曲线算法 它是利用有限域上的椭圆曲线有限群代替基于离散对数问题密码体制中的有限循环群后得到的一类密码体制。
1.椭圆曲线简介椭圆曲线的研究来源于椭圆积分:这里的E(x)是关于x的三次或四次多项式。这样的积分不能用初等函数来表达,为此引入所谓的椭圆函数。所谓椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程:y2+a1xy+a3y=x3+a2x2+a4x+a6所确定的平面曲线。若F是一个域,F,i=1,2,……,6满足上述方程的数对(x,y)称为F域上的椭圆曲线E的点。其中F域可以是有理数域和复数域,还可以是有限域GF(p)。椭圆曲线通常用E表示。除了曲线上的所有点外,还需加上一个无穷远点O。定理若P,Q是椭圆曲线上的任意两点,PQ连线L交E于另一点R,则:(1)(2)(3)(4)在E上一定存在一点Q,使得,这样的Q记为~P;(5)对于E上任意的点P、Q、R有:由此定理可知:若O点看作运算的幺元,则椭圆曲线上的点加上无穷远点对与运算构成一个Abel群。记为。为了计算方便,记共有m个P相加,称为倍点加法,倍点加法运算是椭圆曲线密码体制的一个重要运算。它的速度将在很大程度上影响椭圆曲线密码体制的加密速度,因此目前有许多密码学者在从事倍点加法快速运算的优化算法。定义2.1设P是椭圆曲线E上的任意一点,若存在最小的正整数n,使得,其中O是无穷远点,则称n为P的阶。2.椭圆曲线上的密码系统3.安全椭圆曲线的选取4.椭圆曲线密码体制的安全性 一个公钥密码系统的有效性需要考虑以下几个因素:计算开销、密钥长度和带宽、安全性和存储空间等方面。(1)计算开销决定了变换公钥和私钥所需的计算量。(2)密钥长度决定存储密钥对和系统参数需要的比特数。系统参数/比特公钥/比特私钥/比特RSA——10882048DSA22081024160ECC481161160表2.10 ECC、RSA/DSA的系统参数和密钥对长度比较(3)带宽是指传送一加密消息或一签名所传输的比特数。(4)加密算法的安全性能一般通过该算法的抗攻击强度来反映。(5)ECC的密钥尺寸和系统参数与RSA或DSA相比要小得多。
通过以上分析可见,ECC与其他公钥加密系统相比,能提供更好的加密强度、更快的执行速度和更小的密钥长度,因此ECC可用较小的开销(所需的计算量、存储量、带宽、软件和硬件实现的规模等)和时延(加密和签字速度高)实现较高的安全性。特别适合用于计算能力和集成电路空间受限(如IC卡)、带宽受限(如无线通信和某些计算机网络)和要求高速实现的情况。2.4密钥的管理2.4.1密钥的管理 密钥的管理综合了密钥的设置、产生、分配、存储、进入、使用、备份、保护和销毁等一系列过程。所有的工作都围绕一个宗旨,即确保使用中的密钥是安全的。关于密钥管理的考虑主要分成以下几个部分。1.密钥设置协议2.密钥分配3.密钥保护4.密钥产生及进入5.密钥的保存6.密钥的使用、备份和销毁2.4.2密钥的分配1.对称密码体制的密钥分配对于通信方A和B来说,密钥分配可以用以下的多种方法完成。(1)一个密钥可以由A选定,然后物理地传递给B。(2)一个第三方可以选定密钥,然后物理地传递给A和B。(3)如果A和B在不久以前使用过一个密钥,一方可以使用旧密钥加密新密钥并传输给另一方。(4)如果A和B每人都有一个和三方C的加密连线,C就可以加密连线把密钥传递给A和B。图2.11密钥层次结构的使用(1)一种密钥分配方案 密钥分配的概念可以用多种方式实施。一种典型的方案如图2.12所示。假定每个用户与KDC之间共享惟一的密钥。图2.12密钥分配方案(2)层次式密钥控制(3)会话密钥的使用寿命(4)分散式密钥控制(5)控制密钥的使用方式
数据加密密钥,用来在网络上进行一般的通信。
PIN加密密钥,用于电子资金转账和销售点应用的个人身份号码PIN。
文件加密密钥,用来加密存放在公众可存取地点的文件。2.非对称密码体制的密钥分配 从密钥分配角度讲,公开密钥加密的用途实际上包括以下两个不同的方面:
公开密钥的分配;
使用公开密钥加密方法分配秘密密钥。下面分别讨论这两个方面。(1)公开密钥的分配分配公开密钥的技术方案有多种。几乎所有的方案都可以归为以下几类:
公开宣布;
公开可以得到的目录;
公开密钥管理机构;
公开密钥证书。①公开密钥的公开宣布②公开可以得到的目录③公开密钥管理机构④公开密钥证书(2)秘密密钥的公开密钥加密分配①简单的秘密密钥分配图2.13用公开密钥加密来建立会话密钥的简单方法②具有保密和鉴别能力的秘密密钥分配③一个混合方案图2.14秘密密钥的公开密钥分配2.4.3公钥的全局管理体制(PKI)PKI的基本组成元素是CA,它主要完成以下几个功能:(1)为用户生成<公开密钥,私有密钥>对,并通过一定的途径发给用户;(2)为用户CA签发数字证书,形成用户的公开密钥信息,并通过一定的途径分发给用户;(3)对用户证书的有效性的验证;(4)对用户的数字证书进行管理。这些处理包括有效证书的公布、撤消证书的公布(有时也称证书黑表的维护)和证书归档等。图2.15数字证书的签发图2.16用户证书的验证流程图2.17树型PKI图2.18交叉型PKI2.5散列函数与数字签名2.5.1散列函数1.引言使用在数字签名上的散列函数必须满足下面的条件。(1)散列函数必须对任意长度的明文产生固定长度的散列函数值。(2)对任意的明文m,散列函数值h(m)可通过软件或硬件很容易地产生。(3)对任意的h(m)值x,要找到一个明文m与之对应,即x=h(m),在计算上是不可行的。(4)对一个明文m1,要找到另一个不同的明文m2,而且具有相同的散列函数值h(m1)=h(m2),在计算上是不可行的。(5)要找到任意一对不同的明文(m1,m2),而且具有相同的散列函数值h(m1)=h(m2),在计算上是不可行的。2.简单的散列函数 将明文M分成固定长度64位的明文分组(Block),m1,m2,…,mn,使用DES的CBC操作方法,对每一明文分组陆续加密:令h0=初始值,hi=Emi[hi–1]及G=hn,惟一不同的是这种加密没有使用任何密钥,而G就是64位的散列函数值。后面介绍的两种常用散列函数MD5和安全散列函数(SecureHashFuction,SHA),在设计的概念上都十分类似上述方法,同样都将明文分成固定长度的明文分组,再对每一个明文分组做相同的处理。2.5.2报文摘要 报文摘要(MessageDigests)是单向的散列函数,它以变长的信息为输入,把其压缩成一个定长的值输出。若输入的信息被改变了,则输出的定长值(摘要)也会相应改变。图2.19MD5产生明文摘要流程图由于MD5是由MD4发展出来的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络营销的常用手段
- 新课标解读三年级
- 电工基础知识课件
- 2026年煤矿机电设备概论形成性考核试题
- 2026年中国手机配件行业发展调研报告
- 2026年新疆能源集团有限责任公司校园招聘考试题库(含答案)
- 2026年心理测评判断模拟试题及答案详解
- 2026年厦门大学建筑题库(含答案)
- 2026年中国睡衣市场运行态势及发展定位分析报告
- 2026年综合能力测e模拟试题及答案详解
- 天津市2026中考语文作文真题解读及范文
- 《企业商业秘密保护制度模板:合规体系建设与落地工具(含清单承诺书)》
- 2025年高考海南卷政治试卷试题真题及答案详解(精校打印版)
- 读后续写“龙头凤尾”每日一练(背诵版)
- 2025~2026学年北京市海淀区七年级上学期期中考试英语试卷
- 杭州临安区辅警考试真题及答案2025
- GB/T 10454-2025包装非危险货物用柔性中型散装容器
- 《教育管理》专业考试题及答案
- 制度修订情况汇报
- 2025年秋青岛版三年级数学上册第一二单元学业质量检测试题
- 事业单位招聘考试(公共基础知识)题库及答案
评论
0/150
提交评论