第3章 信息加密与认证技术ppt课件_第1页
第3章 信息加密与认证技术ppt课件_第2页
第3章 信息加密与认证技术ppt课件_第3页
第3章 信息加密与认证技术ppt课件_第4页
第3章 信息加密与认证技术ppt课件_第5页
已阅读5页,还剩139页未读 继续免费阅读

下载本文档

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

文档简介

.,1,第三章信息加密与认证技术,.,2,本章内容,古典密码技术的分类和基本原理对称密码技术与DES、AES算法公钥密码技术与RSA、ElGamal、ECC信息认证的概念与作用及其基本原理单向Hash函数与消息认证码的基本概念和原理数字签名的原理和技术身份认证的典型技术,.,3,学习目标,了解古典密码技术的分类和基本原理学习对称密码技术与DES、AES算法掌握公钥密码技术与RSA、ElGamal、ECC学习信息认证的概念与作用及其基本原理了解单向Hash函数与消息认证码的基本概念和原理掌握数字签名的原理和技术学习身份认证的典型技术,.,4,3.1密码学技术概述,密码系统的组成密码系统是用于对消息进行加密、解密的系统。可以用一个五元组来表示:1)明文:未加密的原始信息。2)密文:明文被加密后的结果。3)密钥:参与密码变换的参数。4)加密算法:明文加密时所采用的一组规则。5)解密算法:密文解密时所采用的一组规则。,.,5,3.1密码学技术概述,密码系统的组成传统密码体制模型如图所示:,.,6,3.1密码学技术概述,密码学的分类1.古典密码学和现代密码学1)古典密码学古典密码学又称为传统密码学,主要依靠人工和机械进行信息的加密、传输和破译。加密算法主要有替代加密、置换加密等。,.,7,3.1密码学技术概述,密码学的分类2)现代密码学亦称为计算机密码学阶段,利用计算机进行自动或半自动的加密、解密和传输,以二进制的数字化信息为研究对象,并使用现代思想进行信息的保密。根据密钥的使用方式又可分为对称密钥密码和非对称密钥密码。,.,8,3.1密码学技术概述,密码学的分类2.对称密钥密码和非对称密钥密码1)对称密钥密码又称为私密钥密码,加密和解密数据的密钥相同或者两者之间存在着某种明确的数学关系。主要算法有DES、IDEA、TDEA、MD5、RC4、AES等。,.,9,3.1密码学技术概述,密码学的分类2)非对称密钥密码用于加密数据的密钥与用于解密数据的密钥不相同,而且从加密的密钥无法推导出解密的密钥。其中一个密钥是公开的,另一个是保密的,又可称为公开密钥密码体制。主要算法有RSA、E1gamnl、Rabin、DH、椭圆曲线等。,.,10,3.1密码学技术概述,密码学的分类3.分组密码和序列密码1)分组密码密文仅与给定的密码算法和密钥有关,与被处理的明文数据段在整个明文(或密文)中所处的位置无关。分组密码以块为单位,在密钥的控制下进行一系列线性和非线性变换而得到密文。,.,11,3.1密码学技术概述,密码学的分类3.分组密码和序列密码2)序列密码密文与给定的密码算法、密钥、明文数据段在整个明文(或密文)所处的位置都有关。密钥通常采用比特流发生器随机产生二进制比特流得到,与明文结合产生密文,与密文相结合可以产生明文。,.,12,3.2古典密码技术,代替密码1.单表代替密码对明文中的所有字母都使用同一个映射。1)移位代替密码如凯撒密码,其基本思想是通过把字母移动一定的位数来实现加密和解密。,.,13,3.2古典密码技术,代替密码2)乘法代替密码已知:p=c=k=z26,k是满足0kn的正整数,要求k与n互素。加密算法:c=E(k,p)=(pk)(modn)解密算法:p=D(k,c)=k-1c(modn),.,14,3.2古典密码技术,代替密码3)仿射密码乘法密码和加法密码相结合便构成仿射密码。仿射密码是一个线性变换。对于p=c=k=z26,且K=(a,b)z26Xz26,gcd(a,26)=1,对于任意的k=(k1,k2)K,加密算法:c=E(k,p)=k1p+k2(mod26)解密算法:p=D(k,c)=k1-1(c-k2)(mod26),.,15,3.2古典密码技术,代替密码2、多表代替密码采用多个密文字母表,使得密文中的每一个字母有多种可能的字母来代替。Vigenre密码、Playfair密码、滚动密钥密码、弗纳姆密码以及Hill密码都是这一类密码。,.,16,3.2古典密码技术,代替密码1)Vigenre密码最著名的多表代换密码,用一个词组作为密钥,每一个密钥字母都对应一个代替表。密钥循环使用。已知明文p=p1p2.pn,m是一个固定的正整数,对于一个密钥k=k1k2.km,则加密算法如下:C=E(p,k)=(p1+k1(mod26),p2+k2(mod26),.,pn+kn(mod26).),.,17,3.2古典密码技术,代替密码1)Vigenre密码解密算法:P=D(c,k)=(c1-k1(mod26),c2-k2(mod26),.,cn-kn(mod26).),.,18,3.2古典密码技术,代替密码2)Playfair加密算法将明文中的双字母组合作为一个单元进行处理,并将每一个单元转换成双字母的密文组合。Playfair密码基于一个55矩阵,该矩阵采用一个关键词作为密钥来构造。构造的方法为:按从左至右,从上至下的顺序依次首先填入关键词中非重复的字母,然而再将字母表中剩余的字母按顺序填入矩阵。,.,19,3.2古典密码技术,代替密码3)滚动密钥密码对于周期多表代替密码,保密性将随周期d的加大而增加,当d的长度和明文一样长时就变成了滚动密钥密码。如果其中所采用的密钥不重复就是一次一密体制。一般密钥可取一本书或一篇报告作为密钥源,可由书名,章节号及标题来限定密钥的起始位置。,.,20,3.2古典密码技术,代替密码4)弗纳姆密码将随机二元数字序列作为密钥,以k=k1k2.ki.(kiF2)表示,明文字母编成二元向量后也可以表示为二元序m=m1m2.mi.(miF2),加密过程就是将k和m逐位异或,即:ci=miXORki,i=1,2,.译码时,用同样的密钥对密文逐位异或,变可恢复明文的二元数字序列,即:mi=ciXORki,i=1,2,.,.,21,3.2古典密码技术,代替密码5)Hill密码Hill加密算法的基本思想是将m个明文字母通过线性变换将它们转换为m个密文字母。解密只要做一次逆变换就可以了。密钥就是变换矩阵本身。加密过程为:C=KPmod26其中,C和P代表密文和明文向量,K是密钥矩阵。解密则为:P=K-1C,.,22,3.2古典密码技术,代替密码6)一次一密一次一密乱码本是一个大的不重复的真随机密钥字母集。发方用乱码本中的每一密钥字母准确地加密一个明文字符。加密是明文字符和一次一密乱码本密钥字符的模26加法。收方有一个同样的乱码本,并依次使用乱码本上的每个密钥去解密密文的每个字符。在进行过一次加解密后,乱码本用过的部分将被销毁。新的消息用乱码本新的密钥加密。,.,23,3.2古典密码技术,置换密码古典密码技术除了代替密码,还有一种称为置换密码。把明文中的字母重新排列,字母本身不变,但其位置变了。单纯的置换密码因为有着与原文相同的字母频率而被识破。多步置换密码相对来说安全的多。,.,24,3.3对称密钥密码技术,基本概念对称密钥加密又称专用密码加密,即发送和接收方必须使用相同的密钥对明文进行加解密运算。算法主要包括DES、3DES、IDEA、FEAL、BLOWFISH等。对称加密的基本要求:1、强大的加密算法。2、发送方和接收方必须保证密钥的安全。实现方式:流密码技术,分组密码技术,.,25,3.3对称密钥密码技术,流密码技术基本思想是利用密钥k产生一个密钥流k0k1k2.,并使用如下规则对明文串p=p0p1p2.加密:c=c0c1c2.=Ek0(p0)Ek1(p1)Ek2(p2).。密钥流由密钥流发生器f产生:zi=f(k,i),i是加密器中记忆元件在时刻i的状态。根据i是否依赖于输入的明文字符,流密码可进一步分为同步和自同步两种。在同步流密码中,可将加密器分成密钥流产生器和加密变换器两个部分。,.,26,3.3对称密钥密码技术,流密码技术加密模型如图所示:,.,27,3.3对称密钥密码技术,流密码技术1.A5/1A5/1算法主要应用在GSM移动通信中用于保护数据。使用X、Y、Z三个线性移位寄存器LFSR。寄存器X包括19比特,编号为(x0,x1,.,x18)。寄存器Y包括22比特,编号为(y0,y1,.,y21)。寄存器Z包括23比特,编号为(z0,z1,.,z22)。三个LFSR总共包括64比特。密钥K同样是64比特,用于初始化三个寄存器。用密钥填充三个寄存器后,就完成了密码流生成前的准备。,.,28,3.3对称密钥密码技术,流密码技术1.A5/1密钥流生成算法如图所示:,.,29,3.3对称密钥密码技术,流密码技术2.RC4A5/1根据硬件实现设计,每步仅产生一个密钥流比特;RC4算法为软件实现优化,每步产生一个密钥字节。本质上来讲就是一个包含256字节的置换查表,在产生密钥流的每一个字节时,所查的表就进行一次修改,表始终都包含0,1,2,255的置换。,.,30,3.3对称密钥密码技术,流密码技术2.RC4RC4算法都是基于字节的。算法的第一阶段是对于查表使用的密钥进行初始化,再产生每个密钥流字节,在加密时与明文做XOR运算,解密时与密文做XOR运算。,.,31,3.3对称密钥密码技术,分组密码技术分组密码是对称密码的典型代表。即数据在密钥的作用下,一组一组地被处理,明文和密文的长度通常是相等的,一次对一个明文分组(如DES为64位)进行加密,而且每次的加密密钥都相同。,.,32,3.3对称密钥密码技术,分组密码技术分组加密的一般结构如图所示:,.,33,3.3对称密钥密码技术,分组密码技术按特定长度(如64bits)分组时,最后一组消息长度可能不足64bits。可以填充一些数字,通常用最后1字节作为填充指示符(PI)。,.,34,3.3对称密钥密码技术,分组密码技术1.DESDES是一种分组乘积密码,包括16轮迭代。明密文分组长度为64位,密钥总长为64位,有效长度56位,其中第8、16、64位共8位是奇偶校验位。DES是一种对称运算,除子密钥使用顺序逆序外,加密和解密算法相同。DES是一种面向二进制的密码算法,能够加解密任何形式的计算机数据。,.,35,3.3对称密钥密码技术,分组密码技术DES的加密算法流程:1.初始置换IP:将输入的64位数据打乱IP(b1b2.b64)=b58b50.b7。再平均分成两部分L0,R0。2.16轮的轮变换:将64位输入密钥扩展为16个48位轮子密钥K。每轮变换公式为:3.逆初始置换IP-1:将L16,R16合并的64位数据置换IP-1(b1b2.b64)=b40b8.b25。,.,36,3.3对称密钥密码技术,分组密码技术DES的加密算法流程图:,.,37,3.3对称密钥密码技术,分组密码技术2.TDEA和IDEA1)TDEA算法TDEA算法又叫做三重DES算法,执行三次DES的加密,加密步骤如下:发送端用密钥Keyl进行DES加密。发送端用密钥Key2对上一结果进行DES解密。发送端用密钥Key3对上一结果进行DES加密。,.,38,3.3对称密钥密码技术,分组密码技术TDEA算法加/解密流程图:,.,39,3.3对称密钥密码技术,分组密码技术2)IDEA算法IDEA加密算法是在DES算法的基础上发展而来的,类似于三重DES算法,其分组长度也是64位,但密钥长度是128位,增加了破译难度。IDEA使用的运算有异或、模216加法和模(216+1)乘法。,.,40,3.3对称密钥密码技术,分组密码技术IDEA算法加密过程:8轮的重复运算。64位的明文分组在每一轮都是被分成4个子分组,每个16位子分组作为一个单元来处理。每一轮中有6个不同的子密钥参与运算。最后的输出变换有4个子密钥参与运算。IDEA的解密算法使用与加密算法同样的结构,子密钥的生成方法不同。,.,41,3.3对称密钥密码技术,分组密码技术IDEA算法解密子密钥的生成方法:解密循环i的前4个子密钥从加密循环(10i)的前4个子密钥中导出;解密密钥第1、4个子密钥对应于1、4加密子密钥的乘法逆元;解密密钥第2、3个子密钥对应于2、3加密子密钥的加法逆元。对前8个循环来说,循环i的最后两个子密钥等于加密循环(9i)的最后两个子密钥。,.,42,3.3对称密钥密码技术,分组密码技术3.AESDES的设计主要针对硬件实现,而当今许多领域的问题需要用软件方法来实现。AES加密方法在这种需求下应运而生。AES算法是128位块密码,支持三种不同大小的密钥:128,192和256位。,.,43,3.3对称密钥密码技术,分组密码技术3.AESAES密码算法采用的是代替-置换网络结构,每一轮操作由4层组成:第1层(字节替换)为非线性层,用S盒对每一轮中的单个字节分别进行替换;第2层(行移位)和第3层(列混合)是线性混合层,对当前的状态按行移位,按列混合;第4层(密钥加层)用子密钥与当前状态进行字节上的异或。,.,44,3.3对称密钥密码技术,分组密码技术AES算法结构图:,.,45,3.3对称密钥密码技术,分组密码技术AES算法每一层操作过程:1)字节替换(SubBytes)AES定义了一个S盒,将State中每个字节的高4位作为行值,低4位作为列值,取出S盒中对应行和列的元素作为输出。例如,十六进制数84。对应S盒的行是8列是4,S盒中该位置对应的值是5F。,.,46,3.3对称密钥密码技术,分组密码技术2)行位移变换(ShiftRows)State的第1行字节保持不变,第2行字节循环左移一个字节,第3行字节循环左移两个字节,第4行循环左移三个字节。,.,47,3.3对称密钥密码技术,分组密码技术3)列混合变换(MixColumns)列混合变换是一个替代操作,它只在AES的第0,1,(R-1)轮中使用,在第R轮中不使用该变换。在该变换中,乘法和加法都是定义在GF(28)上的。State的每一列被理解为GF(28)上的多项式,该多项式与一个常数多项式相乘并模M(x)=x4+1约化。,.,48,3.3对称密钥密码技术,分组密码技术4)密钥加变换(AddRoundKey)128位的State按位与128位的密钥XOR。,.,49,3.3对称密钥密码技术,分组密码技术5)密钥扩展(KeyExpansion)在加密和解密算法使用了一个由种子密钥字节数组生成的密钥调度表。密钥扩展过程从一个原始密钥中生成多重密钥以代替使用单个密钥。在AES密钥扩展算法的输入值是4字密钥,输出是一个44字的一维线性数组。这足以为初始轮密钥扩展过程阶段和算法中的其他10轮中的每一轮提供16字节的轮密钥。,.,50,3.3对称密钥密码技术,对称密钥密码的分析方法密码编码学与密码分析学的对立性促进了密码学的发展。根据密码分析者对明文、密文等信息掌握的多少,可以将密码分析分为以下五种情形:唯一密文攻击、已知明文攻击、选择明文攻击、选择密文攻击和选择文本攻击。,.,51,3.3对称密钥密码技术,对称密钥密码的分析方法具体的分析方法主要包括:1.强力攻击法强力攻击可用于任何分组密码,且攻击的复杂度仅依赖于分组长度和密钥长度。工作效率包括加/解密速度、密钥扩展速度、存储空间等。,.,52,3.3对称密钥密码技术,对称密钥密码的分析方法2.差分密码分析已知最有效的攻击迭代密码的方法之一。基本思想是通过分析明文对的差值对密文对的差值的影响来恢复某些密钥比特。差分密码分析最初是针对DES加密提出的一种攻击方法,能成功破解轮数较低的DES。,.,53,2.3对称密钥密码技术,对称密钥密码的分析方法3.线性密码分析本质上是一种已知明文攻击法,是对DES加密方法进行破译的主要方法。基本思想是通过寻找一个给定密码算法的有效的线性近似表达式来破译密码系统。,.,54,3.3对称密钥密码技术,对称密钥密码的分析方法4、差分-线性密码分析对差分密码分析和线性密码分析进行改进,是降低它们复杂度的众多改进之一。它利用的是差分密码分析和线性密码分析相结合的技术。,.,55,2.3对称密钥密码技术,对称密钥密码的分析方法5、插值攻击利用了拉格朗日插值公式的思想。如果一个密码算法是固定的密钥的低次多项式函数,或项数较少的多项式,其项数可以估算出来,则通过插值法可以得到其代数表达式,从而可能恢复出密钥。,.,56,3.4非对称密钥密码技术,基本概念1976年提出的公开密钥密码体制思想不同于传统的对称密钥密码体制,它要求密钥成对出现,一个为加密密钥e,另一个为解密密钥d,且不可能从其中一个推导出另一个。非对称密码算法解决了对称密码体制中密钥管理的难题,并提供了对信息发送人的身份进行验证的手段,是现代密码学的最重要的发明和进展。,.,57,3.4非对称密钥密码技术,基本概念单向和陷门单向函数的概念是公钥密码学的核心,可以说非对称密钥密码体制的设计就是陷门单向函数的设计。,.,58,3.4非对称密钥密码技术,RSA算法RSA密码体制是目前为止最为成功的非对称密码算法,它的安全性是建立在“大数分解和素性检测”这个数论难题的基础上。RSA算法研制的最初理念与目标是努力使互联网安全可靠,旨在解决DES算法秘密密钥的利用公开信道传输分发的难题。同时,可利用RSA来完成对电文的数字签名以对抗电文的否认与抵赖;还可以利用数字签名较容易地发现攻击者对电文的非法篡改,以保护数据信息的完整性。,.,59,3.4非对称密钥密码技术,RSA算法算法描述:1.密钥生成选择两个互异的大素数p和q,n是二者的乘积,即n=pq,使(n)=(p-1)(q-1),(n)为欧拉函数,随机选取与(n)互素的正整数e,将(n,e)作为公钥。计算满足e*d=1mod(n)的正数d,将(n,d)作为私钥。,.,60,3.4非对称密钥密码技术,RSA算法2.加密算法对于明文M,由C=Memodn,得到密文C。3.解密算法对于密文C,由M=Cdmodn,得到明文M。,.,61,3.4非对称密钥密码技术,RSA算法RSA算法提出以后,密码分析学家提出了一些针对RSA的攻击方法。使用RSA应注意:1)知道对于一个给定模数的一个加/解密密钥指数对,攻击者就能够分解这个模数,无需分解n就可以计算出别的加/解密对。2)在通信网络中,利用RSA的协议不应该使用公共模数。3)消息中应该使用随机数填充以避免对加密指数的攻击。4)解密指数应该大。,.,62,3.4非对称密钥密码技术,ElGamal算法ElGamal为目前著名的公开密钥密码系统之一,可用作加/解密、数字签名等,其安全性依赖于离散对数问题。ElGamal包括密钥生成、加密过程、解密过程。1.密钥生成1)任选一个大质数p,使得p-1有大质因数。2)任选一个modp之原根g。3)公布p与g。使用者任选一私钥,并计算密钥。,.,63,3.4非对称密钥密码技术,ElGamal算法2.加密过程1)任选一个数满足,并计算,。2)密文为。3.解密过程1)计算。2)计算明文。,.,64,3.4非对称密钥密码技术,ElGamal算法ElGamal方法具有以下优点:系统不需要保存秘密参数,所有的系统参数均可公开;同一个明文在不同的时间由相同加密者加密会产生不同的密文(机率式密码系统),但ElGamal方法的计算复杂度比RSA方法要大。,.,65,3.4非对称密钥密码技术,椭圆曲线算法椭圆曲线系统第一次应用于密码学上是于1985年由Koblitz与Miller分别提出,随后有两个较著名的椭圆曲线密码系统被提出:一种是利用ElGamal的加密法,另一种为Menezes-Vanstone的加密法。,.,66,3.4非对称密钥密码技术,椭圆曲线算法1.椭圆曲线定义令p3为质数,在GF(p)中的椭圆曲线E:y2=x3+ax+bmodp,其中,4a3+27b20(modp)。曲线上另定义一个无穷远点O,对任一点AE,A+O=O+A=A。,.,67,3.4非对称密钥密码技术,椭圆曲线算法2.加法运算令A=(x1,y1)与B=(x2,y2)为E上的点。若x2=x1,且y2=-y1,则A+B=O;否则A+B=(x3,y3),其中:x3=2-x1-x2,y3=(x1-x3)-y1。,.,68,3.4非对称密钥密码技术,椭圆曲线算法3.反元素运算点A=(x,y)的反元素为-A=-(x,y)=(x,-y)。A+(-A)=(-A)+A=O,此时O称为乘法单位元素。,.,69,3.4非对称密钥密码技术,椭圆曲线算法4.椭圆曲线密码体制设GF(p)是一个有限域,GF(p)上的椭圆曲线是指满足Weirstrass方程:y2+a1xy+a3y=x3+a2x2+a4x+a5的所有解(x,y)与无穷远点O构成的非空集合。,.,70,3.4非对称密钥密码技术,椭圆曲线算法基于椭圆曲线的各种密码体制的安全性最终可归结为解ECDLP问题,当数据量足够大以致ECDLP问题无法解决时,就认为该密码体制是安全的,具有160bit数据长度的ECDLP问题在目前被认为是安全的。,.,71,3.4非对称密钥密码技术,椭圆曲线算法一般的椭圆曲线密码体制都基于以下运算:存在一个容易计算的函数f:;选取整数e,1eN,选取整数d,使得de=1(modN),由deP(m)=P(m),可恢复P(m);选取整数a,1aN,由P(m)=P(m)+aP-aP,可恢复出P(m)。,.,72,3.4非对称密钥密码技术,椭圆曲线算法一个典型的椭圆曲线公钥密码可以描述如下:加密过程:设明文m=(m1,m2)Zp*Zp*。选取正数k,0k#A-1,k保密。计算:y0=k、(c1,c2)=k、y1=c1m1(modq)、y2=c2m2(modq)。密文c=(y0,y1,y2),将其发送给接收方。,.,73,3.4非对称密钥密码技术,椭圆曲线算法解密过程:接收方接收到密文c。计算(c1,c2)=ay0。通过下列运算恢复明文:m=(y1c1-1(modq),y2c2-1(modq)。椭圆曲线密码体制在相同的安全强度下所要求的密钥强度仅是RSA的1/6,因此在运算速度和存储空间方面具有很大的优势,在实际应用中具有很大的使用价值。,.,74,3.4非对称密钥密码技术,混合加密算法对称与非对称密码加密对比如表所示:,.,75,3.4非对称密钥密码技术,混合加密算法对称密钥密码体制中的DES算法具有可靠性较高、加密/解密速度快、算法容易实现以及通用性强等优点,但也存在密钥位数少、弱密钥和半弱密钥、易于遭受穷尽攻击以及密钥管理复杂等缺点。与DES算法相比,RSA算法具有以下优点:密钥空间大、密钥管理简单、便于数字签名、可靠性较很高。,.,76,3.4非对称密钥密码技术,混合加密算法RSA算法的缺点是加密速度慢、算法复杂,加密/解密速度慢。如果RSA和DES结合使用,则正好弥补RSA的缺点。即DES用于明文加密,RSA用于DES密钥的加密。,.,77,3.4非对称密钥密码技术,混合加密算法一种混合了非对称和对称加密算法的加密方式如图:,.,78,3.4非对称密钥密码技术,混合加密算法这种混合加密方式的原理是:发送方S先使用DES或IDEA对称算法对数据进行加密,然后使用公钥算法RSA加密前者的对称密钥。接收方R先使用RSA算法解密出对称密钥,再用对称密钥解密被加密的数据。,.,79,3.5信息认证技术概述,信息认证技术认证又称为鉴别,是防止主动攻击(如篡改、伪造信息等)的一项重要技术,解决网络数据传输过程中可能出的非法访问与篡改、假冒伪造、拒绝服务、抵赖等安全问题,确保网络中传送数据的机密性、访问可控制性、数据完整性、抗抵赖性等方面的安全需求。认证的目的包括:消息完整性认证和身份认证。,.,80,3.5信息认证技术概述,信息认证技术一个安全的认证体制至少应该满足以下要求:1)接收者能够检验和证实消息的合法性、真实性和完整性。2)消息的发送者对所发的消息不能抵赖,某些场合也要求消息的接收者不能否认收到的消息。3)除了合法的消息发送者外,其他人不能伪造发送消息。,.,81,3.5信息认证技术概述,信息认证技术认证和保密通常是相对独立的,一个纯认证系统的模型如下:,.,82,3.5信息认证技术概述,信息认证技术信息认证是指通过对消息或者消息有关的信息进行加密或签名变换进行的认证,目的是为了防止传输和存储的消息被有意/无意的篡改,包括消息内容认证(即消息完整性认证)、消息的源和宿认证(即身份认证)、以及消息的序号和操作时间认证等。它在票据防伪中具有重要应用。信息认证主要用于防止信息被篡改。,.,83,3.6Hash函数与消息认证,基本概念1.Hash函数Hash函数是把可变长度的输入串转换成固定长度的输出串的一种函数。Hash函数具备以下性质:1)Hash函数H可适用于任意长度的输入数据块,产生固定长度的Hash值。2)对于每一个给定输入数据M,都能很容易计算出它的Hash值H(M)。,.,84,3.6Hash函数与消息认证,基本概念3)如果给定Hash值h,要逆向推出输入数据M在计算上不可行,即Hash函数具备单向性。4)对于给定的消息M1和其Hash值H(M1),找到满足M2M1,且H(M2)H(M1)的M2在计算上是不可行的,即抗弱碰撞性。5)要找到任何满足H(M1)H(M2)且M1M2的消息对(M1,M2)在计算上是不可行的,即抗强碰撞性。,.,85,3.6Hash函数与消息认证,基本概念安全单向Hash函数的一般结构如图:,.,86,3.6Hash函数与消息认证,基本概念2.消息认证消息鉴别码也叫密码校验和,是鉴别函数的一种。其原理是:用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。消息认证码的安全性取决于两点:采用的加密算法;待加密数据块的生成方法。,.,87,3.6Hash函数与消息认证,基本概念消息认证不支持可逆性,是多对一的函数,其定义域由任意长的消息组成,而值域则是由远小于消息长度的比特构成。必须要找到一种足够单向和强碰撞自由性的方法对消息认证才是安全的。1)利用校验码加密的方式构造认证码,实现数据完整性。2)对于用单向Hash函数构造认证码的方式来说,摘要的长度是一个关键的因素。,.,88,3.6Hash函数与消息认证,常见的单向Hash函数1.MD5MD5是RSA数据安全公司开发的一种单向Hash算法,MD5被广泛使用,可以用来把不同长度的数据块进行运算处理生成一个128bit的数据块。MD5以512bit分组来处理输入的信息,且每一分组又被划分为16个32bit的子分组,经过了一系列的处理后,算法的输出由4个32bits分组组成,最终将这4个32位分组级联后将生成一个128位Hash值。,.,89,3.6Hash函数与消息认证,常见的单向Hash函数MD5算法的总体框架如图所示:,.,90,3.6Hash函数与消息认证,常见的单向Hash函数MD5算法中,首先需要对信息进行填充,使其位长度满足模512等于448。信息的位长度被扩展至N512+488。填充的方法为在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。再在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,信息位长度为N512+448+64=(N+1)512。,.,91,3.6Hash函数与消息认证,常见的单向Hash函数MD5中有四个32位链接变量:A=0 x01234567、B=0 x89abcdef、C=0 xfedcba98、D=0 x76543210。设置好链接变量后,进入算法的四轮循环运算。,.,92,3.6Hash函数与消息认证,常见的单向Hash函数第一轮进行16次操作。每次操作对A、B、C和D中的其中3个作一次非线性函数运算,然后将所得结果加上第4个变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上A、B、C或D中之一。最后用该结果取代A、B、C或D中之一。,.,93,3.6Hash函数与消息认证,常见的单向Hash函数使用的四个非线性函数为:,.,94,3.6Hash函数与消息认证,常见的单向Hash函数在MD5算法中,核心是压缩函数HMD5。MD5的压缩函数中有4次循环,每一次循环包含对缓冲区ABCD的16步操作,每一循环的形式为:,.,95,3.6单向Hash函数,常见的单向Hash函数2.SHA-1SHA-1主要适用于数字签名标准里面定义的数字签名算法。对于长度小于264位的消息,SHA-1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。,.,96,3.6单向Hash函数,常见的单向Hash函数SHA-1算法处理步骤如下:1.添加填充位。和MD5采用的办法完全一样。2.添加长度。一个64位的数据块,表示原始消息的长度。3.初始化消息摘要的缓冲区。,.,97,3.6单向Hash函数,常见的单向Hash函数4、以512位数据块作为单位来对消息进行处理。算法的核心是一个包含四个循环的模块,每个循环由20个处理步骤组成。,.,98,3.6单向Hash函数,常见的单向Hash函数处理过程如图所示:,.,99,3.6单向Hash函数,常见的单向Hash函数SHA-1的压缩函数可表示为:如图所示:,.,100,3.6单向Hash函数,常见的单向Hash函数3.TigerHashTigerHash结构比MD5和SHA-1更复杂,接近于分组密码。为了适应64位处理器,Tiger选择输出位数是192位。使用了4个S盒,每个S盒将8位映射成64位。还应用了密钥扩展算法,对输入分组进行扩展。,.,101,3.6单向Hash函数,常见的单向Hash函数将输入信息X填充成512位的整数倍,X=(X0,X1,.,Xn-1),每一个Xi都是512位。Tiger算法对每个Xi都使用一个外循环,每轮的结构如图所示。,.,102,3.6单向Hash函数,常见的单向Hash函数a、b、c都是64位,初始为定值,最后一轮的结果就是192位Hash值。每个函数Fm由8个内循环构成。fm,i的定义为:,.,103,3.6单向Hash函数,常见的单向Hash函数4.CRC(循环冗余校验码)CRC由于实现简单,检错能力强,被广泛使用在各种数据校验应用中。占用系统资源少,用软硬件均能实现,是进行数据传输差错检测的一种很好的手段。,.,104,3.6单向Hash函数,常见的单向Hash函数生成CRC码的基本原理:任意一个由二进制位串组成的代码都可以和一个系数仅为0和1取值的多项式一一对应。CRC校验码软件生成方法:借助多项式除法,余数为校验字段。,.,105,3.6单向Hash函数,常见的消息认证码算法MAC实质上是一个将双方共享的密钥k和消息m作为输入的函数,如果将函数值记为,这个函数值就是一个认证标记,用表示。如果攻击者可以找到一个消息m,m不在m1,mq之中,并且能够得到正确的认证标记就说明攻击成功了。攻击者成功的概率就是其攻破MAC的概率。,.,106,3.6单向Hash函数,常见的消息认证码算法MAC的构造方法有很多,主要类型是基于带密钥的Hash函数和基于流密码的构造方法。基于带密钥的Hash函数的构造方法最早是由M.Bellare等人提出的。它要求所使用的Hash函数具有迭代结构(如MD5,SHA-1等),即反复地使用压缩函数f将长消息映射为短消息。,.,107,3.6单向Hash函数,常见的消息认证码算法具有迭代结构的单向Hash函数结构图:,.,108,3.6单向Hash函数,常见的消息认证码算法和同类型的MAC算法相比,HMAC将MAC的安全性归结到所使用Hash函数上。同时具有免费和黑盒的优点。,.,109,3.6单向Hash函数,分组加密与消息认证码基于分组密码设计的这一类MAC主要有:CBC-MAC、XOR-MAC。EMAC(加密的CBC-MAC)、PMAC、XECB-MAC等。1.CBC-MACCBC-MAC其实就是对消息使用CBC模式进行加密,取密文的最后一块作为认证标记。,.,110,3.6单向Hash函数,分组加密与消息认证码CBC-MAC出现得较早,是一种经典的构造方法,其构造方法简单,底层加密算法具备黑盒的性质,可以方便地进行替换。后来的很多MAC算法都是对它的改进。但是CBC-MAC仅适用于对相同长度的消息进行认证,在消息长度变化的情况下是不安全的。,.,111,3.6单向Hash函数,分组加密与消息认证码对CBC-MAC的改进为了克服CBC-MAC的上述弱点,改进方法有:EMAC、ECBC、FCBC和XCBC。,.,112,3.6单向Hash函数,分组加密与消息认证码2.XOR-MACXOR-MAC有两种方式:无状态(XMACR)和有状态(XMACC)。在计算过程中引入索引值使得分组密码每次加密的明文各不相同,最后再将所有的密文异或。,.,113,3.6单向Hash函数,分组加密与消息认证码由于XOR-MAC使用异或来生成标记,这就为其带来了并行性、增量式、乱序验证等优点。攻击XOR-MAC成功的概率要比攻击CBC-MAC成功的概率低,并且这个概率跟消息长度没有关系。缺点是在算法中引入了索引信息,引起了消息的扩展,导致了加密次数的成倍增加,降低了运算速度。,.,114,3.6单向Hash函数,分组加密与消息认证码3.PMACPMAC可以看成是对XOR-MAC的改进,具有可并行、支持消息的添加、截短和替换等优点。PMAC在计算MAC的时候不需要事先知道消息的长度,且不需要一个随机数或维持一个计数。但是,它的速度比CBC-MAC要慢,且该算法受专利保护,不能免费使用。,.,115,3.6单向Hash函数,分组加密与消息认证码4.XECB-MACXECB-MAC也可看成是XOR-MAC的一种改进,支持并行计算、增量式操作、乱序验证等特性。XECB-MAC没有使用消息的有效位来记录消息的位置,减少了加密的次数,因此它的速度要高于XOR-MAC,但低于CBC-MAC。该方法的不足之处在于使用了两个密钥,这给密钥的存储和分发带来了困难。,.,116,3.6单向Hash函数,分组加密与消息认证码5.OCBOCB是在综合了PMAC和XCBC-MAC的构造方法的基础上提出来的,同时提供了加密和认证。OCB的优点有:能处理任意长度的消息、运算速度快、支持并行处理。缺点在于算法复杂并且受专利保护,不可免费使用。,.,117,3.7数字签名技术,基本概念数字签名(DigitalSignature,又称公钥数字签名、电子签章)是一种使用了公钥加密技术,用于鉴别数字信息的方法。一套数字签名通常定义为两种互补的运算,一个用于签名,另一个用于验证。,.,118,3.7数字签名技术,基本概念通常的方法是数据单元上附加一些数据,或是对数据单元进行密码变换,使得接收者能够确认数据单元的来源和数据单元的完整性并保护数据,防止被人进行伪造。基于公钥密码体制和私钥密码体制都可以获得数字签名,目前主要是基于公钥密码体制的数字签名,包括普通数字签名和特殊数字签名。,.,119,3.7数字签名技术,基本概念普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou-Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、DES/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。,.,120,3.7数字签名技术,基本概念数字签名技术是不对称加密算法的典型应用,是在网络系统虚拟环境中确认身份的重要技术。数字签名应用中,发送者的公钥可以很方便地得到,私钥则需要严格保密。,.,121,3.7数字签名技术,常用的数字签名体制下面详细介绍DDS和DSA算法。1.DDS算法DSS使用的是只提供数字签名的算法,与RSA不同,DSS是一种公钥方法,但不能用于加密或密钥分配。,.,122,3.7数字签名技术,常用的数字签名体制DSS方法也是用Hash函数,它产生的Hash值和为此次签名而产生的随机数k作为签名函数的输入,签名函数依赖于发送方的私钥和一组通信多方所共有的参数(可以看作全局公钥)。签名由两部分组成,分别记为s和r。接收方对接收到的消息产生Hash码,这个Hash码和签名一起作为验证函数的输入,验证函数依赖于全局公钥和发送方公钥,若验证函数的输出等于签名中的r成分,则签名是有效的。,.,123,3.7数字签名技术,常用的数字签名体制RSA与DSS的比较如图所示:,.,124,3.7数字签名技术,常用的数字签名体制2.DSA算法DSA建立在求离散对数的困难性以及ElGamal和Schnorr最初提出的方法之上。图3-23归纳总结了DSA算法。,.,125,3.7数字签名技术,盲签名和群签名1.盲签名盲签名是接收者在不让签名者获取所签署消息具体内容的情况下所采取的一种特殊的数字签名技术。在电子商务和电子选举等领域有着广泛的应用。它必须满足以下两条性质:1)签名者对其所签署的消息是不可见的。2)签名消息不可追踪。,.,126,3.7数字签名技术,盲签名和群签名所谓盲签名,就是先将隐蔽的文件放进信封里,而除去盲因子的过程就是打开这个信封。,.,127,3.7数字签名技术,盲签名和群签名一个好的盲签名应该具有以下的性质:1)不可伪造性2)不可抵赖性3)盲性4)不可跟踪性,.,128,3.7数字签名技术,盲签名和群签名2.群签名在一个群签名方案中,一个群体中的任意一个成员可以以匿名的方式代表整个群体对消息进行签名。与其他数字签名一样,群签名是可以公开验证的,而且可以只用单个群公钥来验证。也可以作为群标志来展示群的主要用途、种类等。群签名在军事、政治及经济等多个方面有着广泛的应用。,.,129,3.7数字签名技术,盲签名和群签名群签名具有以下几个特点:只有群体中的成员能代表群体签名。接收到签名的人可以用公钥验证群签名,但是不可知道由群体中哪个成员所签。发生争议时可由群体中的成员或者可信赖机构识别群中的签名者。,.,130,3.7数字签名技术,盲签名和群签名群签名有如下几个研究方向:1)如何安全有效的废除群成员。2)如何设计高效的打开签名的算法。3)寻找一些安全高效的新的群签名算法。4)如何在电子商务等领域更广泛的使用群签名。5)对于群签名相关的数字签名及其应用的研究。,.,131,3.8身份认证技术,基本概念身份认证是指定用户向系统出示自己身份的证明过程,通常是为了获得系统服务所必需通过的第一道关卡。身份认证可以基于如下因素:根据你所知道的信息来证明你的身份。根据你所拥有的东西来证明

温馨提示

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

评论

0/150

提交评论