第03章 消息鉴别与数字签名_第1页
第03章 消息鉴别与数字签名_第2页
第03章 消息鉴别与数字签名_第3页
第03章 消息鉴别与数字签名_第4页
第03章 消息鉴别与数字签名_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

第3章消息鉴别与数字签名经典密码学->现代公开的计算机环境保密有效系统地保障电子数据的机密性、完整性和真实性公开的计算机网络环境中,传输中的数据可能遭受到威胁(5种):泄密通信业务量分析伪造:攻击者假冒发方身份,向网络插入一条消息;或假冒接收方发送一个消息确认。篡改:内容篡改序号篡改时间篡改行为抵赖保密消息鉴别数字签名第3章消息鉴别与数字签名3.1消息鉴别3.1.1消息鉴别的概念3.1.2基于MAC的鉴别3.1.3基于散列函数的鉴别3.1.4散列函数3.2

数字签名3.1.消息鉴别完整性是安全的基本要求之一。篡改消息是对通信系统的主动攻击常见形式。被篡改的消息是不完整的;信道的偶发干扰和故障也破坏消息完整性。接收者能检查所收到的消息是否完整;进一步接收者能识别所收到的信息是否源于所声称的主体。即消息来源的真实性保障消息完整性和真实性的手段:

消息鉴别技术3.1.1消息鉴别的概念消息鉴别概念:是一个对收到的消息进行验证的过程,验证的内容包括:真实性:消息发送者是真正的,而非假冒完整性:消息在存储和传输过程中没有被篡改过。消息鉴别系统功能上的层次结构低层产生鉴别符高层:调用鉴别函数,验证低层:鉴别函数高层:认证协议3.1.1消息鉴别的概念根据鉴别符的生成方式,鉴别函数分(3类):基于消息加密方式以整个消息的密文作为鉴别符基于消息鉴别码(MAC)3.1.2发送方利用公开函数+密钥产生一个固定长度的值作为鉴别标识,并与消息一同发送基于散列函数3.1.3采用hash函数将任意长度的消息映射为一个定长的散列值,以此散列值为鉴别码。MAC方式的一种特例最近几年消息鉴别符的热点转向Hash函数导出MAC的方法3.1.2基于MAC的鉴别消息鉴别码原理基于DES的消息鉴别码3.1.2-1消息鉴别码原理消息鉴别码(MAC

MessageAuthenticationCode)又密码校验和。原理:采用公开函数和密钥生成一个固定大小的小数据块,即MAC,并附加到消息后面传输,接收方利用与发送方共享的密钥进行鉴别。MAC提供消息完整性保护,可以在不安全信道中传输,因为MAC生成需要密钥。

3.1.2-1消息鉴别码原理MK源A宿BMC||C(K,M)K比较图3-2MAC鉴别原理图C通信双方AB共享密钥K,AB,则A计算MAC,其中:M—明文C---MAC函数K---共享的密钥MAC---消息鉴别码

MAC=C(K,M)3.1.2-1消息鉴别码原理消息和MAC一起发给接收方。接收方对收到的消息利用相同的密钥K计算,得出新的MAC。如果接收到的MAC与计算得出的MAC相等:接收者可以确信消息M在传送途中未被篡改接收者可以确信消息来自所声称的发送者如果消息中含有序列号(如TCP序列号),接收方可以相信接收顺序是正确的。因为攻击者无法成功修改序列号并保持MAC与消息一致。图3-2仅仅提供鉴别,而不能提供保密性。因为消息是明文传输的。如果要加密?…3.1.2-1消息鉴别码原理MAC与加密函数类似,但不需要可逆,更不易攻破。使用分离的消息鉴别码的情形(3):加解密算法,尤其公钥算法代价大。广播信息经济可靠方式,明文传送,一个接收者验证。一些应用不关心保密,而关心消息鉴别将鉴别函数和加密函数结构上分离,可使层次结构更加灵活。应用层鉴别消息,传输层提供保密。3.1.2-2基于DES的消息鉴别码基于DES的消息鉴别码基于分组密码,并按密文块链接模式操作CBC。数据鉴别算法CBC—MAC密文分组链接消息鉴别码数据鉴别算法图图3-3p57O0

=IVO1=Ek(D1O0)O2=Ek(D2O1)。。。ON=Ek(DNON-1)3.1.3基于散列函数的鉴别散列函数(Hash)是消息鉴别码(MAC)的一种变形。散列函数与消息鉴别码相同点:输入都是可变大小M;输出都是固定大小散列码H(M)散列函数与消息鉴别码不同点:散列码不使用密钥,它仅是输入消息的函数。需要安全地存放和传输消息摘要,防止被篡改。3.1.3基于散列函数的鉴别散列码用于消息鉴别的两种方法:图1)加密消息及散列码ABA计算,加密:E(K,[M||H(M)])B解密,计算,比较2)仅加密散列码(共享密钥)AB:A计算,加密:M||E(K,[H(M)])B计算,解密,比较3.1.3-散列码用于消息鉴别的两种方法:(a)加密消息及散列码(b)只加密散列码D()MH()密钥KE()密钥KH()||比较MMH(M)H()D()比较密钥KE()密钥KMH(M)H()源A宿B3.1.3基于散列函数的鉴别HMAC散列函数+MAC(K,M)IP安全和SSL协议使用HMACRF2104给出的HMAC设计目标(5)

HMAC总体结构图图3-5p59HMAC(K,M)=H[(K+

opad)||H[(K+

ipad)||M]]不必修改而直接使用现有的散列函数。散列函数---黑盒如果找到更快更安全的散列函数,应能很容易替代原来嵌入的散列函数。应保持散列函数的原有性能,不能过分降低其性能。对密钥的使用和处理应比较简单如果已知嵌入的散列函数的强度,则完全可以知道认证机制抗密码分析的强度。3.1.4散列函数散列函数是一种将输入任意长度消息映射到固定长度消息摘要的函数。h=H(M),没有K散列函数安全性SHA-1算法MD5算法3.1.4-1散列函数安全性攻击:攻击者得到h(M),试图伪造M’,使h(M’)=h(M)散列函数必须满足的安全特征(3):单向性对于任意给定的散列码h,寻找x使得H(x)=h在计算上不可行。强对抗碰撞性(3)输入输出h(M)容易计算+(4):寻找任何的(M1,M2)使得H(M1)=h(M2)在计算上不可行。弱对抗碰撞性(4减弱):对于任意给定的分组M,寻找不等于M的M’,使得H(M’)=h(M)在计算上不可行。弱对抗碰撞的散列函数随着使用次数增加,安全性降低。3.1.4-2SHA-1算法SHA是美国家标准和技术协会(NIST)1993提出,1995年发布SHA-1。输入512比特单位分组,输出160比特消息摘要。步骤:附加填充位填充后结果长度(模512)=448附加长度64位:表示原始消息长度初始化散列缓冲区两个缓冲区(2*5*32位),第一个缓冲区ABCDE初始化值.第二个缓冲区H0H1

H2

H3

H4计算消息摘要(每一个阶段一个分组),每组80轮输出。第N阶段输出步骤2得到的消息块M1,M2,…Mn.每块80轮运算,每轮输入ABCDE,更新.每一轮使用:附加常数Kt

给出,0<=t<=79;函数ft

消息M扩充(16*32比特)(80*32比特)

Wj=Mj

(0<=j<=15)

Wj=

(Wj-3Wj-8Wj-14Wj-16)<<1

(16<=j<=79)

H0,H1,H2,H3,H4A,B,C,D,E

TEMP=

(A<<5)+ft(B,C,D)+E+Wj+Kt,

E=DD=CC=B<<30,B=AA=TEMP最后:A,B,C,D,EH0+A,H1+B,H2+C,H3+D,H4+E计算消息摘要ft非线性函数明文相关的内容3.1.4-3MD5*MD5:1991麻省理工学院RonaldL.Rivest

MD4改进,速度慢,安全性高。输入512分组(16*32)输出128位(4*32)步骤消息填充结果长度模512=448添加长度初始化缓冲区(4*32)abcd→AABBCCDD定义辅助函数4个非线性函数4轮计算3.1.4MD5*定义辅助函数4个非线性函数F(X,Y,Z),G(X,Y,Z),H(),I()4种操作:FF(a,b,c,d,Mj,s,ti)=ab+(a+F(b,c,d)+M[i]+ti)<<s4轮计算(4*16)第一轮FF(a,b,c,d,Mj,s,ti)16次第二轮GG(a,b,c,d,Mj,s,ti)16次第三轮HH(a,b,c,d,Mj,s,ti)16次第四轮II(a,b,c,d,Mj,s,ti)16次

ti=4294967296*abs(sin(i))整数部分最后a,b,c,d=a+AA,b+BB,c+CC,d+DD3.2数字签名手写签名与数字签名手写签名作用:鉴别、核准、负责等作用,表示签名者对文件的认同,产生某种承诺或法律上的效应。数字签名是手写签名数字化形式,公钥密码学发展中最重要的概念之一,一项重要的计算机网络安全技术美国,中国《电子签名法》,可靠的数字签名与手写签名或印章具有同等法律效率。3.2数字签名3.2.1数字签名简介3.2.2基于公钥密码的数字签名原理3.2.3数字签名算法(难)3.2.1数字签名简介数字签名必要性数字签名的概念及特征3.2.1-1数字签名的必要性消息鉴别能通过验证消息完整性和真实性,保护通信不受外部第三方的攻击,但不能防止通信双方内部的相互攻击,如:B伪造一个消息,并声称是从A收到的。因AB共享密钥,A无法证明自己没有发送。A可以否认发送过某个消息,B无法证明A发送过。电子商务方面法律应防范:例:(1)进行电子资金转账时,接收方增加转账资金,并声称这是来自发送方的转账金额。(2)委托方发送电子邮件要求经纪人进行股票交易,交易赔钱,委托方伪称从没有发过这样的消息。应用环境:通信(电子交易)双方彼此不能完全信任的情况下….数字签名,手写签名。消息鉴别概念:是一个对收到的消息进行验证的过程,验证的内容包括:真实性:消息发送者是真正的,而非假冒完整性:消息在存储和传输过程中没有被篡改过。3.2.1-2数字签名的概念及其特征数字签名概念(DS)ISO7498-2:▲附加在数据单元上的一些数据,或是对数据单元所作的密码变换,这种数据和变换允许数据单元接收者用以确认数据单元来源和数据单元完整性,并保护数据,防止被人(包括接收者)进行伪造.消息鉴别概念一个数字签名体制是一个五元组(M,A,K,S,V)M:消息空间;

A:签名空间K密钥空间;S:签名算法集合,V:验证算法集合

。满足对任意k,有一签名算法Sigk一验证算法Verk

,对任意mM,aA,

Verk(m,a)=1a=Sigk(m)(m,a)是一个消息签名对。3.2.1-2数字签名的概念及其特征数字签名特征(4)(提出需求)可验证性不可伪造性不可否认性:发送方发送签名消息,无法抵赖发送行为;接收方在收到消息后,也无法否认接收行文数据完整性:发送方能够对消息的完整性进行校验,具有消息鉴别的作用3.2.1-2数字签名的概念及其特征根据特征数字签名应满足下列条件—实现机制-6签名必须是与信息相关的二进制位串。签名必须使用发送者某些独有信息,以防伪造与抵赖;产生数字签名比较容易;识别和验证签名比较容易;伪造该数字签名在计算是不可行的:无论从给定的数字签名伪造消息,还是从给定消息伪造一个数字签名;保存一个数字签名副本是可行的。3.2.1-2数字签名的概念及其特征基于公钥体制可以获得数字签名:签名算法使用签名人的私钥,私有保密。验证算法使用签名人的公钥,可以被任何人验证3.2.2基于公钥密码的数字签名原理假定接收方已知发送方的公开密钥,发送方A用自己的私钥kRa对整个消息或消息的哈希值进行加密生成数字签名。接收方用发送方的公钥对签名进行验证,从而确认签名消息的准确性。原理图考虑效率,采用第二种方法。对消息散列值加密3.2.2基于公钥密码的数字签名原理图3-6基于公钥密码的数字签名原理M比较密钥KUaMPRa||HEEPRa(H(M))HDMCMPRaPUaED发送方A接收方B3.2.2基于公钥密码的数字签名原理图3-7签名和保密CCMPUbPUaDD发送方A接收方BMEPRaC’EPRbM比较密钥PUaPRa||HEE(K,[M||E(PRa,H(M))])HDKEDKME(PRa,H(M))签名和保密时,先签名再外层加密在发生争执时的好处?3.2.2基于公钥密码的数字签名原理签名的有效性依赖于发送方私钥的安全性。每条签名的消息包含时间戳。泄密后向管理中心报告的时间3.2.3数字签名算法基于RSA的数字签名算法数字签名标准DSS3.2.3-1基于RSA的数字签名算法使用一个散列函数H,H的输入是消息,输出是定长的散列码。发送方用私钥和RSA算法对散列码加密形成签名,发送签名和消息。接收方收到消息后,计算散列码,并用发送方公钥解密得到发送方的散列码,如果两个散列码相同,则认为签名有效。图M比较PUaPRa||HEE(PRa,H(M))HD图3-8RSA数字签名3.2.3-2数字签名标准DSSDSS:NIST1991年提出联邦数字加密标准;使用安全散列算法SHA

,给出数字签名方法DSAMPRA||HSigHM比较PUGKsrVerPUGPUAPUG:全局公开密钥PRa:发送方的私钥K:随机数DSS数字签名与RSA不同,是一种公钥方法,只提供数字签名,不提供加密和密钥分配。3.2.3-2数字签名标准DSSDSA安全性基于计算离散对数的困难性。算法:发送方确定全局公开密钥KUG:p,q,g素数p,512~1024bits,位数64的倍数素数q是p-1的因子,159或160bitsg=h(p-1)/qmodq,1<h<(p-1),整数,且g>1发送方确定公钥和私钥私钥:随机数x,满足0<x<q公钥:y=gxmodp单向函数x->y与每条消息相关的秘密值K,0<k<q,每次签名

温馨提示

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

评论

0/150

提交评论