《04消息认证与数字签名培训讲学》由会员分享,可在线阅读,更多相关《04消息认证与数字签名培训讲学(49页珍藏版)》请在金锄头文库上搜索。
1、1,第4章消息认证与数字签名,2,公钥密码体制的一种最重要的应用是数字签名,数字签名通常需要与散列函数结合起来使用。,3,5.1 消息认证,消息认证就是验证消息的完整性.当接收方收到发送方的报文时,接收方能够验证收到的报文是真实的未被篡改的。,5,、认证系统 认证则主要是为了防止第三方的主动攻击 。 认证系统的目的有两个: 第一, 信源识别,即验证发信人确实不是冒充的; 第二, 检验发送信息的完整性, 也就是说, 即使信息确实是经过授权的信源发送者发送的, 也要验证在传送过程中是否被篡改, 重放或延迟。 在认证理论中一般将信源识别和发送信息的完整性检验两者作为一个整体进行讨论。 认证系统可以按
2、下列4种方式进行分类,6,:条件安全认证系统与无条件安全认证系统。 无条件安全性又称理论安全性, 敌方破译认证系统所作的任何努力都不会比随机选择碰运气更优。 条件安全性又称实际安全性, 即认证系统的安全性是根据破译该系统所需的计算量来评价的。 如果破译一个系统在理论上是可行的,但依赖现有的计算工具和计算资源不可能完成所要求的计算量, 称之为在计算上是安全的。如果能够证明破译某个体制的困难性等价于解决某个数学难题, 称为是可证明安全的。 尽管计算安全性和可证明安全性都从计算量的角度来考虑,但二者不尽相同, 计算安全性主要注意破译它所需计算量的下限, 而可证明安全则主要从理论上证明破译它的计算量不
3、低于解已知的难解性问题的计算量。,7,:有保密功能的认证系统与无保密功能的认证系统。 前者能够同时提供认证和保密两种功能; 而后者则只是纯粹的认证系统。,8,:有仲裁认证系统与无仲裁认证系统。 传统的认证系统只考虑了通信双方互相信任, 共同抵御敌方的主动攻击的情形, 此时系统中只有参与通信的发方和接收方及发起攻击的敌方, 而不需要裁决方。因此, 称之为无仲裁人的认证系统。 但在现实生活中, 常常遇到的情形是通信双方并不互相信任,比如,发信方发送了一个消息后, 否认曾发送过该消息;或者收信方接收到发方发送的消息后,否认曾接收到该消息或宣称接收到了自己伪造的不同于接收到的消息的另一个消息。一旦这种
4、情况发生, 就需要一个仲裁方来解决争端。这就是有仲裁人认证系统的含义。有仲裁人认证系统又可分为单个仲裁人认证系统和多仲裁人认证系统。,9,:有分裂的认证系统与无分裂的认证系统。 一个认证系统中,发方在将信源信息发送给合法接收方时,先将该信息利用共同约定的编码规则编码成为消息, 把消息在公共信道上发送; 接收方接收到从发方发来的消息后, 利用掌握的编码规则破解消息得到实际发方要发送的信息。 一般地, 编码规则将一个信息编码成为一个对应的消息, 这时称为无分裂的认证码; 若编码规则编码一个信息成为多个消息, 则称为是有分裂的认证码。,10,2 认证函数 可用来做认证的函数分为三类 (1) 信息加密
5、函数(Message encryption) 用完整信息的密文作为对信息的认证 (2) 信息认证码MAC(Message Authentication Code) 是对信源消息的一个编码函数 (3) 散列函数(Hash Function) 是一个公开的函数,它将任意长的信息映射成一个固定长度的信息,11,信息加密函数作认证 信息加密函数分二种: 一种是常规的对称密钥加密函数; 另一种是公开密钥的双密钥加密函数。,12,信息认证码(MAC) 设S为通信中的发方A发送的所有可能的信源集合 为了达到防窜扰的目的,发方A和收方B设计一个编码法 则。发方A根据这个法则对信源S进行编码,信源经编码 后成为
6、消息,M表示所有可能的消息集合。发方A通信时,发送的是消息。用简单的例子说明设S=0,1, M=00,01,10,11, 定义四个不同的编码法则e0,e1,e2,e3: 00 01 10 11 e0 0 1 e1 0 1 e2 0 1 e3 0 1,13,这样就构成一个认证码MAC 。 发方A和收方B在通信前先秘密约定使用的编码法则。 例如若决定采用e0 则以发送消息00代表信源0,发送消息10代表信源1 。 我们称消息00和10在e0之下是合法的,而消息01和11在e0之下不合法。 收方将拒收这二个消息。,14,信息的认证和保密是不同的两个方面。 一个认证码,可具有保密功能也可没有保密功能,
7、15,消息认证,消息认证是使预定的消息接收者能够检验收到的消 息是否真实的方法。检验内容应包括: (1)证实报文的源和宿 (2)报文内容是否曾受到偶然的或有意的篡改 (3)报文的序号和时间栏 总之,消息认证使接收者能识别: 消息的源,内容的真伪,时间性和意定的信宿 这种认证只在相应通信的双方之间进行,而不允许 第三者进行上述认证。认证不一定是实时的,可用消息认证码MAC对消息做认证,16,利用函数f和密钥k, 对要发送的明文x或密文y变换成r bit的消息认证码f(k,x)(或f(k,y) ,将其称为认证符附加在x(或y)之后发出,x/As(或y/As)表示,其中“/”符号表示数字的链接。接收
8、者收到发送的消息序列后,按发方同样的方法对接收的数据(或解密后)进行计算,应得到相应的r bit数据,17,、数字签名 数字签名技术是实现交易安全的核心技术之一,它的实现基础就是加密技术。 数字签名能够实现电子文档的辨认和验证。数字签名是传统文件手写签名的模拟,能够实现用户对电子形式存放消息的认证。,18,用以保护双方之间的数据交换不被第三方侵犯;但它并不保证双方自身的相互欺骗。假定A发送一个认证的信息给B,双方之间的争议可能有多种形式: B伪造一个不同的消息,但声称是从A收到的。 A可以否认发过该消息,B无法证明A确实发了该消息,数字签名,19,数字签名必须保证: 可验证:签字是可以被确认的
9、 防抵赖:发送者事后不承认发送报文并签名; 防假冒:攻击者冒充发送者向收方发送文件; 防篡改:收方对收到的文件进行篡改; 防伪造:收方伪造对报文的签名。 签名对安全、防伪、速度要求比加密更高。,20,数字签名,传统签名的基本特点: 能与被签的文件在物理上不可分割 签名者不能否认自己的签名 签名不能被伪造 容易被验证 数字签名是传统签名的数字化,基本要求: 能与所签文件“绑定” 签名者不能否认自己的签名 签名不能被伪造 容易被自动验证,21,数字签名的设计要求 签名必须是依赖于被签名信息的一个位串模板 签名必须使用某些对发送者是唯一的信息,以防止双方的伪造与否认 必须相对容易生成该数字签名 必须
10、相对容易识别和验证该数字签名 伪造该数字签名在计算复杂性意义上具有不可行性,既包括对一个已有的数字签名构造新的消息,也包括对一个给定消息伪造一个数字签名 在存储器中保存一个数字签名副本是现实可行的,22,数字签名分类,以方式分 直接数字签名direct digital signature 仲裁数字签名arbitrated digital signature 以安全性分 无条件安全的数字签名 计算上安全的数字签名 以可签名次数分 一次性的数字签名 多次性的数字签名,23,直接数字签名,A用其私钥加密文件,这便是签名过程; A将加密的文件送到B; B用A的公钥解开A送来的文件。,24,消息认证与数
11、字签名的区别: 前者能验证消息来源及完整性,防范第三者; 后者在收发双方产生利害冲突时,解决纠纷。,25,数字签名需要解决的一些问题 1签字后的文件可能被B重复使用。如果签字后的文件是一张支票,B很容易多次用该电子支票兑换现金,为此A需要在文件中加上一些该支票的特有的凭证,如timestamp等,以防止上述情况发生。 2公钥算法效率很低,不易用于长文件的加密。,26,数字签名的应用例子,现在Alice向Bob传送数字信息,为了保证信息传送的保密性、真实性、完整性和不可否认性,需要对要传送的信息进行数字加密和数字签名,其传送过程如下:,27,Alice准备好要传送的数字信息(明文)。 Alice
12、对数字信息进行哈希(hash)运算,得到一个信息摘要。 Alice用自己的私钥(SK)对信息摘要进行加密得到Alice的数字签名,并将其附在数字信息上。 Alice随机产生一个加密密钥(DES密钥),并用此密钥对要发送的信息进行加密,形成密文。,28,Alice用Bob的公钥(PK)对刚才随机产生的加密密钥进行加密,将加密后的DES密钥连同密文一起传送给Bob。 Bob收到Alice传送过来的密文和加过密的DES密钥,先用自己的私钥(SK)对加密的DES密钥进行解密,得到DES密钥。 Bob然后用DES密钥对收到的密文进行解密,得到明文的数字信息,然后将DES密钥抛弃(即DES密钥作废)。,2
13、9,Bob用Alice的公钥(PK)对Alice的数字签名进行解密,得到信息摘要。 Bob用相同的hash算法对收到的明文再进行一次hash运算,得到一个新的信息摘要。 Bob将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。,31,签名与加密,签名提供真实性(authentication) 加密提供保密性(confidentiality) “签名+加密”提供“真实性+保密性” 两种实现方式: (AB) 先签名,后加密: 先加密,后签名:,32,密钥管理,所有的密码技术都依赖于密钥。 密钥的管理本身是一个很复杂的课题,而且是保证安全性的关键点。 密钥管理方法因所
14、使用的密码体制(对称密码体制和公钥密码体制)而异。,33,密钥管理,密钥管理(key management) 在一种安全策略指导下密钥的产生, 存储, 分配, 删除, 归档及应用。(GB/T 9387.21995ISO 7498-21989) 处理密钥自产生到最终销毁的整个过程中的有关问题,包括系统的初始化,密钥的产生、存储、备份/恢复、装入、分配、保护、更新、泄露、撤销和销毁等内容。,34,密钥管理的目的,目的:维持系统中各实体之间的密钥关系,以抗击各种可能的威胁: (1)密钥的泄露 (2)秘密密钥或公开密钥的身份的真实性丧失 (3)未经授权使用,35,密钥的存储,一种是将所有密钥或公钥存储
15、在专用媒体(软盘、芯片等)一次性发放给各用户,用户在本机中就可以获得对方的公钥,协议非常简单,又很安全。电脑黑客的入侵破坏,也只能破坏本机而不影响其他终端。 第二种是用对方的公钥建立密钥环各自分散保存(如PGP)。 第三种是将各用户的公钥存放在公用媒体中。这两种都需要解决密钥传递技术,以获取对方的公钥。第三种还要解决公用媒体的安全技术,即数据库的安全问题。,36,、信息伪装与数字水印,1996年英国,首届国际信息隐藏会议 对付的非法复制、传播、篡改,保护产权 在多媒体信息中隐蔽地嵌入可辨别的标记,实现版权声明与跟踪。 嵌入信息 掩饰信息(文本、图像、音频) 信息隐藏要求: 不影响原系统; 善于
16、伪装,使人不易察觉;,37,信息隐藏不同于传统的密码学技术。密码技术主要是研究如何将机密信息进行特殊的编码,以形成不可识别的密码形式(密文)进行传递;而信息隐藏则主要研究如何将某一机密信息秘密隐藏于另一公开的信息中,然后通过公开信息的传输来传递机密信息。,38,隐藏信息分布范围要广; 能抵抗数据压缩、过滤等变换及人为攻击; 隐藏信息的算法公开,只隐蔽密钥; 数字水印:将特定的标记隐藏在数字产品中。 用以证明原创者对产品的所有权,并作为起诉侵权者的证据。 透明性;健壮性;多重性;安全性,数字水印,39,信息隐藏 信息隐藏模型,40,信息隐藏特点 鲁棒性(robustness) 不可检测性(undetectability) 透明性(invisibility) 安全性(security) 自恢复性,41,典型的数字水印系统模型,水印的嵌入和检测模型,42,数字水印的分类 (1)按水印的可见性划分:可将水印分为可见水印和不可见水印 (2)按水印的所附载体划分:可以把水印划分为图像水印、音频水印、视频水印、文本水印以及用于三维网络模型的网格水印等。 (3)按水印