《第七章消息认证与数字签名》由会员分享,可在线阅读,更多相关《第七章消息认证与数字签名(43页珍藏版)》请在金锄头文库上搜索。
1、第七章 消息认证与数字签名回顾与总结对称密码算法n n 运算速度快、密钥短、多种用途、历史悠久运算速度快、密钥短、多种用途、历史悠久n n 密钥管理困难(分发、更换)密钥管理困难(分发、更换)非对称密码算法n n 只需保管私钥、可以相当长的时间保持不变、只需保管私钥、可以相当长的时间保持不变、需要的数目较小需要的数目较小n n 运算速度慢、密钥尺寸大、历史短运算速度慢、密钥尺寸大、历史短信息安全的需求保密性( Confidentiality)完整性(Integrity)n n 数据完整性,未被未授权篡改或者损坏数据完整性,未被未授权篡改或者损坏n n 系统完整性,系统未被非授权操纵,按既定系统
2、完整性,系统未被非授权操纵,按既定的功能运行的功能运行可用性(Availability)不可否认性( Non-repudiation)n n 防止源点或终点的抵赖防止源点或终点的抵赖7.1 信息认证保证信息的完整性和抗否认性通过信息认证和数字签名来实现通信系统典型攻击窃听消息篡改n n内容修改:消息内容被插入、删除、修改。内容修改:消息内容被插入、删除、修改。n n顺序修改:插入、删除或重组消息序列。顺序修改:插入、删除或重组消息序列。n n时间修改:消息延迟或重放。时间修改:消息延迟或重放。冒充:从一个假冒信息源向网络中插入消息抵赖:接受者否认收到消息;发送者否认发送过消息。消息认证(Mes
3、sage Authentication):n n是一个证实收到的消息来自可信的源点且未被是一个证实收到的消息来自可信的源点且未被篡改的过程。(防范第三方攻击)篡改的过程。(防范第三方攻击)数字签名(Digital Signature)n n是一种防止源点或终点抵赖的鉴别技术。(防是一种防止源点或终点抵赖的鉴别技术。(防范通信双方的欺骗)范通信双方的欺骗)认证的目的认证模型认证函数信息认证认证的目的验证信息的完整性,在传送或存储过程中未被篡改,重放或延迟等。认证系统的组成认证编码器和鉴别译码器可抽象为认证函数。一个安全的认证系统,需满足n意定的接收者能够检验和证实消息的合法性、真实性和完整性n除
4、了合法的消息发送者,其它人不能伪造合法的消息首先要选好恰当的鉴别函数,该函数产生一个鉴别标识,然后在此基础上,给出合理的认证协议(Authentication Protocol),使接收者完成消息的认证。认证函数可用来做鉴别的函数分为三类:(1) 消息加密函数(Message encryption)用完整信息的密文作为对信息的鉴别。(2) 消息认证码MAC(Message Authentication Code)公开函数+ +密钥产生一个固定长度的值作为鉴别标识(3) 散列函数(Hash Function)是一个公开的函数,它将任意长的信息映射成一个固定长度的信息。7.1.1消息加密消息的自身
5、加密可以作为一个鉴别的度量。对称密钥模式和公开密钥模式有所不同对称密码体制加密认证n n发送者发送者A A,接受者,接受者B B,双方共同拥有密钥,双方共同拥有密钥n nA A把加密过的信息传送给把加密过的信息传送给B Bn n攻击者不知道如何改变密文攻击者不知道如何改变密文n nB B只要能顺利解出明文,就知道信息在中途没只要能顺利解出明文,就知道信息在中途没有被人更改过。有被人更改过。公钥密码体制加密认证n nA A用私钥对明文的信息加密用私钥对明文的信息加密n n由于攻击者没有由于攻击者没有A A的私钥,不知道如何改变密的私钥,不知道如何改变密文文n nB B能用能用A A的公钥解出明文
6、,说明没有被人更改。的公钥解出明文,说明没有被人更改。n n这种方式既能提供认证,又能够提供数字签名。这种方式既能提供认证,又能够提供数字签名。7.1.2 消息认证码使用一个密钥生成一个固定大小的小数据块,附加在消息后,称MAC (Message Authentication Code), 或密码校验和(cryptographic checksum)nMAC = FK(M)收到消息后,只需要根据密钥和消息来计算MAC是否等于传过来的MAC。1、接收者可以确信消息M未被改变。2、接收者可以确信消息来自所声称的发送者;MAC函数类似于加密函数,但不需要可逆性。因此在数学上比加密算法被攻击的弱点要少
7、。只提供认证,不提供保密和数字签名Why?为何要使用消息认证码根本上,信息加密提供的是保密性而非真实性加密代价大(公钥算法代价更大)认证函数与保密函数的分离能提供功能上的灵活性某些信息只需要真实性,不需要保密性n n广播的信息难以使用加密广播的信息难以使用加密( (信息量大信息量大) )n n网络管理信息等只需要真实性网络管理信息等只需要真实性n n政府政府/ /权威部门的公告权威部门的公告7.2散列函数Hash FunctionH(M): 输入为任意长度的消息M; 输出为一个固定长度的散列值,称为消息摘要(Message Digest)。这个散列值是消息M的所有位的函数并提供错误检测能力:消
8、息中的任何一位或多位的变化都将导致该散列值的变化。又称为:哈希函数、数字指纹(Digital finger print)、压缩(Compression)函数、紧缩(Contraction )函数、数据鉴别码DAC(Data authentication code)、篡改检验码h=H(M)H公开,散列值在信源处被附加在消息上接收方通过重新计算散列值来确认消息未被篡改如果要提供保密性,需要对散列值提供另外的加密保护5.2.1 散列函数的性质目的:产生文件、报文或其它数据块的“指纹”可以提供保密性、认证、数字签名的作用如果不要求提供保密性,可以采用不对整条报文加密而只对Hash码(也称作报文摘要)加
9、密的方法基本性质能用于任何长度的数据分组对于任何给定的x,H(x)要易于计算对于任何给定的h,寻找x都是不可能的对于任何给定的x,找不到x不等于y,但是H(x)=H(y)寻找任何(x,y),使得H(x)=H(y)在计算上不可行。散列码的不同使用方式使用对称密码体制对附加了散列码的消息进行加使用对称密码体制对附加了散列码的消息进行加密(提供认证及保密性)密(提供认证及保密性)使用对称密码仅对附加了散列码进行加密(提供使用对称密码仅对附加了散列码进行加密(提供认证)认证)使用公钥密码体制,只对散列码进行加密(提供使用公钥密码体制,只对散列码进行加密(提供认证及数字签名)认证及数字签名)发送者将消息
10、发送者将消息MM与通信各方共享的一个秘密值与通信各方共享的一个秘密值S S串串联后计算出散列值,将此值附在消息后发出去,联后计算出散列值,将此值附在消息后发出去,则攻击者无法产生假消息(提供认证)则攻击者无法产生假消息(提供认证)不同使用方式提供认证n nA-B: A-B: M|H(M|S)M|H(M|S)提供认证和保密性n nA-B: A-B: E(M|H(M),K)E(M|H(M),K)提供认证和数字签名n nA-B: A-B: M|D(H(M),KM|D(H(M),KdAdA) )提供认证、数字签名和保密性n nA-B: A-B: E(M|D(H(M),KE(M|D(H(M),KdAdA
11、),K),K) )几种常用的HASH算法MD5SHA-1RIPEMD-160MD5简介Merkle于1989年提出hash function模型Ron Rivest于1990年提出MD41992年, MD5 (RFC 1321) developed by Ron Rivest at MITMD5把数据分成512-bit块MD5的hash值是128-bit在最近数年之前,MD5是最主要的hash算法现行美国标准SHA-1以MD5的前身MD4为基础2004年8月17日的美国加州圣巴巴拉,正在召开的国际密码学会议(Crypto2004)。来自山东大学的王小云教授做了破译MD5、HAVAL-128、
12、MD4和RIPEMD算法的报告。Secure Hash Algorithm简介1992年NIST制定了SHA(128位)1993年SHA成为标准(FIPS PUB 180)1994年修改产生SHA-1(160位)1995年SHA-1成为新的标准,作为SHA-1(FIPS PUB180-1)SHA-1要求输入消息长度264输入按512位的分组进行处理的SHA-1的摘要长度为160位基础是MD4RIPEMD-160简介欧洲RIPE项目的结果RIPEMD为128位更新后成为RIPEMD-160基础是MD5hash函数小结hash函数把变长信息映射到定长信息hash函数不具备可逆性hash函数速度较快
13、hash函数与对称密钥加密算法有某种相似性对hash函数的密码分析比对称密钥密码更困难hash函数可用于消息摘要hash函数可用于数字签名7.3 数字签名digital signature消息认证用以保护双方之间的数据交换不被第三方侵犯;但它并不保证双方自身的相互欺骗。用户A用户BMACMAC用户C篡改、冒充假定A发送一个认证的信息给B,双方之间的争议可能有多种形式:nA可以否认发过该消息,可以否认发过该消息,B无法证明无法证明A确实发了确实发了该消息。该消息。nB伪造一个不同的消息,但声称是从伪造一个不同的消息,但声称是从A收到的。收到的。用户A用户BMACMAC伪造否认例如:对合同书的抵赖
14、;股票交易指令亏损后抵赖所以用到“数字签名”这种方式保证信息的抗否认性SIGA用户A用户B无法伪造SIGA无法抵赖SIGA传统签名的基本特点:n n 能与被签的文件在物理上不可分割能与被签的文件在物理上不可分割n n 签名者不能否认自己的签名签名者不能否认自己的签名n n 签名不能被伪造签名不能被伪造n 容易被验证数字签名是传统签名的数字化,基本要求:n n 能与所签文件能与所签文件“绑定绑定”n n 签名者不能否认自己的签名签名者不能否认自己的签名n n 签名不能被伪造,容易被自动验证签名不能被伪造,容易被自动验证n 存在仲裁机构签名者时间签名有效源文件被修改后,签名无效数字签名应具有的性质
15、必须能够验证作者及其签名的日期时间;必须能够认证签名时刻的内容;签名必须能够由第三方验证,以解决争议;因此,数字签名功能包含了认证的功能WHY?数字签名的设计要求依赖性:签名必须是依赖于被签名信息的一个比特模式唯一性:签名必须使用某些对发送者是唯一的信息,以防止双方的伪造与否认;可验性:必须相对容易识别和验证该数字签名;抗伪造:伪造该数字签名在计算上具有不可行性,n对一个已有的数字签名构造新的消息n对一个给定消息伪造一个数字签名可用性:在存储器中保存一个数字签名副本是现实可行的数字签名分类以方式分n n 直接数字签名直接数字签名direct digital signaturen n 仲裁数字签
16、名仲裁数字签名arbitrated digital signature以安全性分n n 无条件安全的数字签名无条件安全的数字签名n n 计算上安全的数字签名计算上安全的数字签名以可签名次数分n n 一次性的数字签名一次性的数字签名n 多次性的数字签名直接数字签名的缺点验证模式依赖于发送方的保密密钥;n发送方要抵赖发送某一消息时,可能会声称其私有密钥丢失或被窃,从而他人伪造了他的签名。n通常需要采用与私有密钥安全性相关的行政管理控制手段来制止这种情况,但威胁依然存在。n改进的方式:例如可以要求被签名的信息包含一个时间戳(日期与时间)A的某些私有密钥确实在时间T被窃取,敌方可以伪造A的签名及早于或
17、等于时间T的时间戳。仲裁数字签名引入仲裁者n所有从发送方A到接收方B的签名消息首先送到仲裁者S,S将消息及其签名进行一系列测试,以检查其来源和内容,然后将消息加上日期并与已被仲裁者验证通过的指示一起发给B。用户A用户BSIGSIG仲裁者S验证通过验证通过验证通过验证通过仲裁者在这一类签名模式中扮演敏感和关键的角色。所有的参与者必须极大地相信这一仲裁机制工作正常。(trusted system)仲裁者S7.3.2 RSA数字签名回顾:RSA的加密方法n nC=MC=Me e mod n mod nn nM=M=C Cd d mod nmod nn n公钥公钥K Ke e: e,ne,n n n私钥私钥K Kd d: d,nd,n 用户A对明文M的签名过程是:n nS SA A=D(M,K=D(M,KdAdA)=(M)=(Md d)mod n)mod nn n实际上是用私钥解密的过程实际上是用私钥解密的过程用户B验证签名的过程n nE(SE(SA A,K,KeAeA)=()=(S SA A) )e emodnmodn=M=M如果要同时确保数据的秘密性和真实性,可以采用先签名后加密的方法实际使用过程将要签名的消息作为散列函数的输入,产生定长的散列码对散列码进行签名,并将签名附在消息后面验证者解密(验证)签名计算出消息的散列码,和解密后的数据相比较(认证)