




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第第 4 章章数据认证数据认证2为什么需要数据认证为什么需要数据认证? l数据认证的目的数据认证的目的是向数据的使用者证明两件事:验证数据的来源;确认数据没有被篡改或伪造。l数据认证是维护数据完整性和不可否认性的重要机制。l数据认证的方法数据认证的方法主要依靠:n常规加密算法公钥密码体系3一个使用预共享密码的简单认证方案一个使用预共享密码的简单认证方案l假设甲乙两人拥有共同密钥k,则有一个简单的数据认证方案,甲可以用(M,C)向乙证明M确实出自甲:甲发送消息M 和密文C = Ek(M) 给乙;乙接收到消息后,用密钥 K 解密密文C 得到 M; 如果M = M ,那么乙确认消息M 来自于甲。l
2、当明文M很短时,此认证方法简单实用;l当明文M较长时,将产生不必要的计算量和通信流量;其实,用作数据认证的密文无需很长,对于很长的明文,认证时只需将代表此明文的短字符串进行加密即可。4数字指纹和信息认证码数字指纹和信息认证码l数字指纹数字指纹不使用密钥而产生的一个长数据的短的表示短的表示,称为数字摘要数字摘要或数数字指纹。字指纹。数字指纹可使用密码散列函数(又称单向散列函数单向散列函数)得到。l消息认证码消息认证码使用密钥而产生的数据的短的表示,称为消息认证码消息认证码 (MAC,message authentication code ) 或标签。标签。MAC可以通过加密的校验和算法得到。 带
3、密钥的散列消息认证码是密码散列函数和密码校验和算法的组合,简记为HMAC (Keyed-hash message authentication code )5第第4章章 内容概要内容概要l4.1 密码散列函数l4.2 密码校验和l4.3 HMACl4.4 密码本偏移操作模式l4.5 生日攻击l4.6 数字签名标准l4.7 双签名与电子交易l4.8 盲签名与电子现金散列函数散列函数l密码密码散列算法散列算法也称为单向散列函数、杂凑函数、哈希算法、HASH算法或消息摘要算法。l它通过一个单向数学函数,将任意长度的一块数据转换为一个定长不可逆转的数据,这段数据通常叫做消息摘要消息摘要。l典型的散列函
4、数:MD5 (Message-Digest Algorithm 5) ,SHA-1等。l主要用在只需加密不需解密的场合,如验证数据的完整性、数字签名和身份认证等。信息摘要信息摘要例例1l1、假设数字4000用1000除得4,那么4可以作为4000的数字摘要。改变4000或1000都无法得到4。l2、只给出数字4而不给出更多信息,则无法追溯原来的公式4*1000=4000信息摘要信息摘要例例2l信息摘要比原信息要小得多l实际的信息摘要在128位以上。原数为原数为7391743运算运算结果结果7乘乘321丢弃第一位丢弃第一位11乘乘999乘乘199乘乘763丢弃第一位丢弃第一位33乘乘412丢弃第
5、一位丢弃第一位22乘乘36信息摘要为信息摘要为6摘要算法(摘要算法(Hash)HashingalgorithmD4 21 F5 3D 22 9A CC B7 3C AA E2 DC 12 1A A1 CBData特性l不可逆l对任何长度的信息进行哈希后,结果都是一个固定长度的数据摘要,摘要的长度通常为128 bits或160 bitsl原始信息中一个字节的改变会导致摘要后的结果发生变化摘要算法摘要算法 数据的完整性数据的完整性11l不是每一个散列函数都适合用于生成数字指纹l例如:M = M1 M2 Mk其中 Mi 是一个 16-bit 的二进制串 定义下面的散列函数H:H(M) = M1 M2
6、 Mkl对于上面的散列函数,很容易举出一些例子,使得不同的明文消息具有相同的杂凑值S1: “He likes you but I hate you” 和S2: “He hates you but I like you”把上面消息的英文字符用8-bit ASCII码进行编码,并去掉单词之间的空格,则得到 H(S1) = H(S2)散列函数的设计要求散列函数的设计要求l一个好的单向散列函数必须具有以下特性特性:单向性单向性l对任意给定明文计算其数字指纹容易,但从数字指纹得到明文却很难。l给定M和H,求hH(M)容易,但反过来给定h和H,找到M使h=H(M)却很难。计算的唯一性计算的唯一性l找到两个
7、不同的消息具有相同的数字指纹是困难的。l弱弱抗抗碰撞碰撞性性:给定M,要寻找另一信息 M,满足 H(M)H(M)在计算上不可行。l强强抗抗碰撞碰撞性性:要寻找不同的信息M 和M,满足 H(M) H(M)在计算上不可行。l满足这两个性质的散列函数称为密码学散列函数密码学散列函数。13密码散列函数的探索密码散列函数的探索l寻求密码散列函数是否存在单向的、计算唯一的散列函数,至今尚无定论。几个曾经被认为是安全的密码散列函数,如MD4 、MD5 等,已被证明不能满足强抗碰撞性。散列函数SHA-1,已经被证明其安全性低于预期。SHA-512密码散列函数和Whirlpool漩涡散列函数常被用作密码散列函数
8、来使用。安全散列函数安全散列函数(SHA)lSHA(Secure Hash Algorithm)安全散列算法,是为配合数字签名算法(DSA),由美国国家安全局 (NSA) 设计,美国国家标准与技术研究院(NIST) 发布的密码散列函数。lSHA家族成员:SHA (常称SHA-0) 、SHA-1 、SHA-224 、SHA-256 、SHA-384 、SHA-512。lSHA家族第一个成员SHA发布于1993年。l1995年,SHA的后继者SHA-1发布。l2002年,SHA-256,SHA-384,SHA-512以官方标准发布,统称为SHA-2。l2004年,NIST宣布他们将逐渐减少使用SH
9、A-1,改以SHA-2取而代之。 SHA家族成员家族成员lSHA-0与MD5类似,但消息摘要长度为160位。SHA比MD5更安全,但比MD5要慢一些。它在发布之后很快就被NSA撤回,并且由1995年发布的修订版本(通常称为SHA-1)取代。 lSHA-1SHA-1在许多安全协议中广为使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,曾被视为是MD5的后继者。 SHA-0和SHA-1可将一个最大264比特的信息,转换成一串160位的信息摘要,其设计原理类似于散列算法MD4和MD5。SHA-0和SHA-1的弱点相继被攻破,SHA-1的安全性被密码学家严重质疑。lSHA-2至今尚未
10、出现对SHA-2有效的攻击; 但它的算法跟SHA-1基本上仍然相似;有些人开始发展其他替代的散列算法。 算法算法输出散列值长输出散列值长度(度(bits)中继散中继散列值长列值长度(度(bits)数据区数据区块长度块长度(bits)最大输最大输入信息入信息长度(长度(bits)一个一个Word长长度(度(bits)循循环环次次数数使用到的运算符使用到的运算符碰撞攻击碰撞攻击SHA-0160160512264 13280+,and,or,xor,rotl是SHA-1160160512264 13280+,and,or,xor,rotl存在263的攻击SHA-256/224256/22425651
11、2264 13264+,and,or,xor,shr,rotr尚未出现SHA-512/384512/38451210242128 16480+,and,or,xor,shr,rotr尚未出现SHA家族成员特点家族成员特点17散列函数的基本结构散列函数的基本结构lSHA-1、SHA-2 系列散列函数具有相同的基本结构l这种结构的核心是压缩函数 F不同的散列函数使用不同的压缩函数反复调用不带密钥的压缩函数的CBC模式18SHA-512 初始化过程初始化过程 (I)l SHA-512 使用512-bit 初始化向量IV l 设 r1, r2, r3, r4, r5, r6, r7 , r8是8个64
12、-bit 寄存器q开始时,这8个寄存器被设为8个素数的平方根的小数部分: 2, 3, 5, 7, 11, 13, 17, 19, 注意注意:8个64位寄存器的值有三种状态:F函数的输入值Hi-1F函数的输出值。该输出值与Hi-1作一个运算可得到Hi初始散列值H0,即8个平方根的小数部分。19SHA-512 初始化过程初始化过程 (II)l设 = 2128 1, = 512lM 是二进制消息,其中|M| = L l设L 是128-bit 二进制串, 标记为 b128(L)l将消息 M 进行填充,得到新的二进制字符串M : M = M | 10l | b128(L), l 0 其中|M| (记为L
13、) 是1024的倍数,则有 L = L + (1 + l) + 128 = L + l + 129lL 可以表示为 l于是,我们得到 :l因此,, L 是1024的倍数. 设 L = 1024N,则可以记作一系列1024-bit 的消息块: M = M1M2MN 20SHA-512 压缩函数压缩函数(I)l 两个输入:一个1024-bit明文消息块 Mi 一个512-bit 二进制串 Hi-1, 其中 1 i N ,Hi-1 是r1r2r3r4r5r6r7r8的当前值 Wn: 循环右移n 位 W .将这个问题推广,研究散列函数的抗冲撞性。计算机网络安全的理论与实践(第2版). 【美】王杰, 高
14、等教育出版社, 2011年.40强抗碰撞性的复杂性上界强抗碰撞性的复杂性上界l强抗碰撞性的复杂性上界l设 H 是一个输出长度为l的密码散列函数,则 H 至多有n = 2l 个不同的输出值l问题: 2l 是抗强无碰撞性的复杂性上界吗?l答案是否定的,我们可以用生日攻击将复杂性降低为 2l/2 ,成功概率在50%以上l生日悖论生日悖论:一个篮子里装了n个不同颜色的球,均匀地、独立随机地从篮子里取 k (kn) 个球(一次取一个,记录颜色后放回),如果 则一个球被取了两次的概率不小于1/2.lSHA-1的复杂性上界: 2160/2 = 280 ; SHA-512: 2512/2 = 2256计算机网
15、络安全的理论与实践(第2版). 【美】王杰, 高等教育出版社, 2011年.41集合相交攻击集合相交攻击l独立随机地从1,2,n中选取两个各包含k个整数的集合,其中k SF,SD| )H(F=)H(D因此l Malice 首先准备一个文档集合S1 ,其包含2l/2 个不同的文档,这些文档均与文档D具有相同的意思. 这些文档可以用下面方法得到:替换一个单词或句子重新整理、调整句子的描述使用不同的标点符号重新组织文档的结构改变语气,比如把被动语句改为主动语句l Malice准备另一个文档集合S2 ,其包含2l/2个不同的文档,这些文档均与文档F具有相同的意思, 并计算如何找到文档如何找到文档F?4
16、4第第4章章 内容概要内容概要l4.1 密码散列函数l4.2 密码校验和l4.3 HMACl4.4 密码本偏移操作模式l4.5 生日攻击l4.6 数字签名标准l4.7 双签名与电子交易l4.8 盲签名与电子现金45 为什么要使用数字签名?为什么要使用数字签名?l数据认证码或散列消息认证码?数据认证码或散列消息认证码?基于双方的共享密钥可保护双方之间的数据不被第三方侵犯但不能通信双方的相互欺骗,如:lB伪造一个数据,并声称是从A收到的;lA可以否认发过某消息,B无法证明。46 数字签名数字签名l数字签名数字签名(Digital Signature)又称)又称公钥数字签名公钥数字签名或或电子电子签
17、章签章,是以电子形式存储于信息中或以附件或逻辑上与之,是以电子形式存储于信息中或以附件或逻辑上与之有联系的数据,用于有联系的数据,用于辨识数据签署人的身份辨识数据签署人的身份,并表明签署,并表明签署人人对数据中所包信息的认可对数据中所包信息的认可。l在网络环境中,数字签名完全可以代替现实中的“亲笔签字”。整个数字签名的基本原理采用的是双加密方式,先将原文件用对称密钥加密后传输,并将其密钥用接收方公钥加密发给对方。l数字签名是公钥加密技术与数字摘要技术的应用。数字签名是公钥加密技术与数字摘要技术的应用。l数据签名最有效的方法是使用公钥密码系统和公钥证书。见教材P132。47 数字签名的功能数字签
18、名的功能l保证传输信息的完整性保证传输信息的完整性使用安全的散列函数l发送者的身份认证发送者的身份认证数字签名能够让信息接收者确认发送者的身份。l防止交易中的抵赖行为发生防止交易中的抵赖行为发生接收方可以出示签名给别人看来证明信息的来源。数字签名的基本原理5.2数字签名概述数字签名概述 图图 数字签名原理及过程数字签名原理及过程 应用例子应用例子l假如现在 Alice 向 Bob 传送数字信息,为了保证信息传送的保密性、真实性、完整性和不可否认性,需要对传送的信息进行数字加密和签名,其传送过程为:l1.Alice 准备好要传送的数字信息(明文);l2.Alice 对数字信息进行哈希运算,得到一
19、个信息摘要;l3.Alice 用自己的私钥对信息摘要进行加密得到 Alice 的数字签名,并将其附在数字信息上;l4.Alice 随机产生一个加密密钥,并用此密码对要发送的信息进行加密,形成密文;l5.Alice 用 Bob 的公钥对刚才随机产生的加密密钥进行加密,将加密后的 DES 密钥连同密文一起传送给Bob;l6.Bob 收到 Alice 传送来的密文和加密过的 DES 密钥,先用自己的私钥对加密的 DES 密钥进行解密,得到 DES 密钥;l7.Bob 然后用 DES 密钥对收到的密文进行解密,得到明文的数字信息,然后将 DES 密钥抛弃;l8.Bob 用 Alice 的公钥对 Ali
20、ce 的数字签名进行解密,得到信息摘要;l9.Bob 用相同的哈希算法对收到的明文再进行一次哈希运算,得到一个新的信息摘要;l10.Bob 将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。52l 数字签名标准-DSS(Digital Signature Standard )1991年颁布2000年以后,RSA 和ECC 被制定为数字签名标准只生成数字签名, 不加密数据l 对消息M的数字签名:l 公钥密码系统产生数字签名的最有效的机制RSA (直到2000年前专利保护) )(,(MHEMrAK数字签名标准数字签名标准 (DSS)53DSS的构造的构造lH: SH
21、A-1 (160 bit) lL: 512 L 1024,且L是64的倍数参数:lP: 大素数; 2L1 p 2Llq: p 1的素因子; 2159 q 2160lg: g = h(p1)/q mod p; 1 h 154DSS签名签名l Alice 要对消息M进行签名l 随机选取一个私钥, 0 xA ql 计算公钥: yA = gxA mod pl 随机选取一个整数: 0 kA ql rA = (gkA mod p) mod ql kA1 = kAq2 mod ql sA = kA1(H(M)+xArA) mod ql M的数字签名为: (rA, sA)55DSS验证签名验证签名l Bob
22、得到签名值(M, (rA, SA) ) 和公钥证书 CAyAl解析公钥证书CAyA,得到Alice的公钥 yAl验证签名:l w = (SA)1 mod q = (SA)q1 mod ql u1 = (H(M) w) mod ql u2 = (rA w) mod ql v = (gu1yAu2) mod p mod ql 如果 v = rA ,则签名验证通过56DSS的安全强度的安全强度l基于SHA-1的安全强度和求解离散对数的困难性攻破SHA-1散列函数的强抗碰撞性的已经由 280 降低到263攻破抗碰撞性更困难离散对数的难解性表明, 从rA 和 sA 计算出 kA 或 xA 是困难的57第
23、第4章章 内容概要内容概要l4.1 密码散列函数l4.2 密码校验和l4.3 HMACl4.4 密码本偏移操作模式l4.5 生日攻击l4.6 数字签名标准l4.7 双签名与电子交易l4.8 盲签名与电子现金58双重签名双重签名l双重签名双重签名一种用于电子交易的交互式认证协议,提供安全和隐私性保护,是数字签名在SET协议中的一个应用。在电子商务的电子支付系统中,存在着客户,商家和银行三者之间交易信息的传递,所有的消息必须被认证和加密,即没有有用的消息被泄露、修改或伪造。l目的:目的:订购信息和支付信息相互隔离开,商家只能看到的订购信息,银行只能看到的支付信息;订购信息和支付信息必须是绑定的,以
24、保证订购信息和支付信息的一致性;59双重签名与电子交易双重签名与电子交易Alice(客户) Bob(商家) Charlie(银行) Alice 想让bob 执行一个购物订单 ( I1 ) Bob 等待来自银行Charlie的支付确认信息Alice 必须发送付款信息给银行Charlie ( I2 ) 双重签名及验证过程双重签名及验证过程l客户首先将客户首先将订购信息和支付信息订购信息和支付信息加密加密,然后用客户用客户的私钥的私钥给订购信息和支付信息进行数字签名数字签名。l客户将密文和数字签名送给商家客户将密文和数字签名送给商家,但只允许商家读到订购信息的内容而不能读到支付信息的内容。l商家确认
25、订购信息和支付信息商家确认订购信息和支付信息都由客户送出,然后将它们转送给银行,银行只能读到支付信息而不能读到订购信息。双重签名及验证过程双重签名及验证过程l银行首先确认订购信息和支付信息银行首先确认订购信息和支付信息都是商家转自客户的信息,然后给商家送出收据C,根据支付信息的内容告诉商家是否可执行客户的指令;l商家确认收据来自银行商家确认收据来自银行,然后给客户发出收据B,根据收据C的内容告诉客户是否将执行订购信息。SET协议协议lSET (Secure Electronic Transactions)协议安全电子交易协议,由Master Card和Visa两大信用卡公司联合Netscape
26、、Microsoft等公司,于1997年6月1日推出的一种新的电子支付模型。采用公钥密码体制和X.509数字证书标准,用于保障开放网络上使用信用卡进行在线购物的安全。lSET协议提供的服务保证客户交易信息的保密性和完整性(双重签名技术)确保商家和客户交易行为的不可否认性(数字签名)确保商家和客户的合法性(数字证书)SET协议中的对象协议中的对象l参与交易的三方客户(买方)l密钥对(公钥,私钥)、公钥证书、订单信息、支付信息。商家(卖方)l密钥对(公钥,私钥)、公钥证书、给买方的收据。银行l密钥对(公钥,私钥)、公钥证书、给卖方的收据。l使用的密码技术散列函数:消息摘要公钥密码体系:加密、签名6
27、364SET协议协议: 客户客户A(买方)(买方)计算下面的值:发送 (sB, sC, hc,ds)给商家;等待卖方B的收据 RB = ;用KAr解密 RB ,得到 ;用KBu 验证商家 B的签名。)(BKKRDErBuA)(BKRDrB其中,SB为加密的订单信息;Sc为加密的支付信息;hB为加密订单信息的摘要;hC为加密支付信息的摘要;ds 为双签名。65SET协议协议: 商家商家B(卖方)(卖方) 验证买方A的签名: 比较 与 是否相等;解密得到发送 (sB, sC, ds) 给银行 C;等待银行C的收据RC = 用KBr 解密 RC 得到 ,用KCu验证C的签名;根据I1发送签名的收据
28、RB = 给买方A。66SET协议协议: 银行银行C验证买方A的签名: 比较 和 是否相等;解密得到 如果I2 包含了有效的付款信息,则执行正确的付款交易操作,并发送收据RC = 给商家B。SET协议交易流程中的几个问题协议交易流程中的几个问题l如何保障三方的身份真实?l如何保证商家看不到客户银行卡信息,银行看不到客户的购物信息?l如何解决实际付款的商品信息与订单商品信息不一致的问题?l卖方用已使用过的,或用伪造的支付信息向银行要求付款怎么办?l银行用伪造的订单信息和付款信处给卖方非法付款怎么办?l其它问题6768第第4章章 内容概要内容概要l4.1 密码散列函数l4.2 密码校验和l4.3 HMACl4.4 密码本偏移操作模式l4.5 生日攻击l4.6 数字签名标准l4.7 双签名与电子交易l4.8 盲签名与电子现金69盲签名盲签名l 让签名者进行签名,但不向签名者泄露所签文件的内容l 需要签名的文档与一个掩
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六一活动集市活动方案
- 六一游戏气球活动方案
- 六一相关游戏活动方案
- 六一美食兑换活动方案
- 六一节活动摊档活动方案
- 六一评比活动方案
- 六一郊游活动方案
- 六一银行活动方案
- 六安公司团建活动方案
- 六年级特色创新活动方案
- 大学主校区电力增容及改造工程一期(配电房增容及改造)施工组织设计
- 十字绣绣线号对照表
- 艺术课程标准(2022年版)
- 基于PLC的矿井通风控制系统设计
- GB/T 9576-2013橡胶和塑料软管及软管组合件选择、贮存、使用和维护指南
- FZ/T 93056-1999变形丝用筒管技术条件
- 跨区域就读证明
- 国开期末考试《建筑制图基础》机考试题及答案(第D-1套)
- SA8000-2014社会责任绩效委员会SPT组织架构、职责和定期检讨及评审会议记录
- 焊接热处理工艺卡
- 大型钢网架整体提升施工工法
评论
0/150
提交评论