1、信息隐藏技术,第6章 数字指纹孙晓玲,第6章 数字指纹,目 录,6.1 概论,6.2 指纹的分类,6.3 数字指纹攻击,6.4 指纹方案,数字指纹技术能用于数据的版权保护,应用数字指纹可以识别数据的单个拷贝,数据所有者通过指纹可以追踪非法散布数据的用户,因此能够达到保护知识产权的目的。指纹是指一个客体所具有的模式,它能把自己和其它相似客体区分开。,6.1 概论,6.1.1 定义和术语,数字指纹是利用数字作品中普遍存在的冗余数据与随机性,向被分发的每一份软件、图像或者其它数据拷贝中引入一定的误差,使得该拷贝是唯一的,从而可以在发现被非法再分发的拷贝时,可以根据该拷贝中的误差跟踪到不诚实原始购买者
2、的一种数字作品版权保护技术。,标记:标记是客体的一部分并有若干个可能的状态; 指纹:指纹是标记的集合; 发行人:发行人是一个授权提供者,他将嵌入指纹的客体提供给用户;,6.1.1 定义和术语,6.1.1 定义和术语,授权用户:授权用户是一个获得授权使用某一嵌入指纹客体的个人; 攻击者:攻击者是非法使用嵌入指纹客体的个人; 叛逆者:叛逆者是非法发行嵌入指纹载体的授权用户;,6.1.2 数字指纹的要求与特性,合谋容忍:即使攻击者获得了一定数量的拷贝(客体),通过比较这些拷贝,不应该能找到、生成或删除该客体的指纹。特别地,指纹必须有一个共同的交集。,6.1.2 数字指纹的要求与特性,客体质量容忍:加
3、入标记不允许明显地减少客体的用途和质量。客体操作容忍:如果攻击者篡改客体,除非有太多噪音使客体不可用,否则指纹仍应能存在于客体中。特别地,指纹应能容忍有损数据压缩。,数字指纹有以下一些特性:,(1) 隐形性:向数据对象中引入的数字指纹不应引起被保护作品可感知的质量退化。(2) 稳健性:数字指纹必须能够抵抗传输过程中可能受到的处理或变形,使得版权信息最终仍然能够被提取出来,达到证明作品的所有权或跟踪非法再分发者的目的。(3) 确定性:每个用户都有唯一确定的指纹,指纹所带的信息能被唯一确定地鉴别出,进而可以跟踪到进行非法再分发的原始购买者,以达到版权保护的目的。,数字指纹有以下一些特性:,(4)数
4、据量较大:数字指纹所保护的往往是录像制品、服务软件等数据量较大的对象,实际上,大数据量也是数字指纹可以使用的必要条件,因为与数字水印相比,数字指纹通常要求向数据拷贝中嵌入更长的信息,特别是在用户数量比较大的情况下,以保证每个用户都具有不同的指纹。 (5) 抗合谋攻击能力:即使不诚实用户已经达到一定数量并联合他们的拷贝,他们应该不可以通过比较这些拷贝发现所有的标记。,6.1.3 数字指纹的发展历史,N.R.Wagner在1983年发表的一篇题为“Fingerprinting”的文章,文章介绍了指纹的思想和一些术语 。D.Boneh和J.Shaw在1995年发表的“CollusionSecure
5、Fingerprinting for Digital Data”是关于数字指纹码字编码方法的一篇经典文章。,6.1.3 数字指纹的发展历史,1996年B.Pfitzmann和M.Schunter在“Asymmetric Fingerprinting”一文中介绍了一个非对称指纹方案 B.Pfitzmann和M. Waidner在1997年发表文章“Anonymous Fingerprinting”也提出了一种使用非对称指纹技术进行叛逆者跟踪的方案,6.2.1数字指纹系统模型,6.2.2 指纹的分类,6.2.2.1 基于客体的分类 6.2.2.2 基于检测灵敏度的分类 6.2.2.3 基于嵌入指纹
6、方法的分类 6.2.2.4 基于指纹值的分类,基于客体的分类,客体的自然属性是一个最基本的标准,这是因为它能提供一种定制的方法为客体嵌入指纹。基于客体分类时,能分为两种:数字指纹和物理指纹。如果加入指纹的客体是数字格式,使得计算机能处理其指纹,我们称它是数字指纹。,基于客体的分类,如果一个客体能用其物理特性与其它客体区分开来,我们称之为物理指纹。人的指纹、虹膜模式、声音模式以及一些爆炸物的编码微粒都属于物理指纹。不管是数字指纹还是物理指纹,对于一个客体的指纹,它能把自己和其它相似客体区分开来。,基于检测灵敏度的分类,基于对侵害的检测灵敏度,可以把指纹分为三类:完美指纹、统计指纹和门限指纹。如果
7、对客体的任何修改使指纹不可识别的同时,也导致了客体不可用,我们称这种指纹为完美指纹。因此指纹生成器总能通过检测一误用客体来识别出攻击者。统计指纹则没有这么严格。假定有足够多误用客体可供检测,指纹生成器能以任意希望的可信度来确认越轨用户。,基于检测灵敏度的分类,门限指纹是上面两种的混合类型,它允许一定程度上的非法使用,也就是门限,只有达到门限值时,才去识别非法拷贝,这样就允许对一个客体进行拷贝,只要其拷贝数量小于门限即可,并且根本不对这些拷贝作任何检测。当拷贝数量超出门限时,就追踪拷贝者。,基于嵌入指纹方法的分类,基本的指纹处理方法,如识别、删除、添加、修改,也已经被作为另一种分类标准。如果指纹
8、方案由识别和记录那些已经成为客体一部分的指纹组成,那么它属于识别类型。例如,人的指纹和虹膜模式。在删除类型指纹中,嵌入指纹时原始客体中的一些合法成分被删除。,基于嵌入指纹方法的分类,若在客体中加入一些新的成分来嵌入指纹,那么这类指纹就属于添加指纹。添加的部分可以是敏感的,也可以是无意义的。若修改客体的某部分来嵌入指纹,它就是修改类型,例如变化的地图等。,基于指纹值的分类,根据指纹的值进行分类,可以将其分为离散指纹和连续指纹。如果生成的指纹是有限的离散取值,那么称该指纹为离散指纹,如数字文件的哈希值。如果生成的指纹是无限的连续取值,那么称该指纹为连续指纹,大部分的物理指纹属于这一类型。,6.3
9、数字指纹的攻击,单用户攻击合谋攻击,(1) 单用户攻击,跟踪的最简单情况就是单个盗版者简单地再分发他自己的拷贝而不对其进行改动,在这种情况下,检测者只需根据恢复出的指纹搜索数据库得到一个与之匹配用户,就足以查出该数据拷贝的原始购买者。一般情况下,盗版者不会原封不动地非法再分发手中的拷贝,他会在分发前对他的数据拷贝进行处理,以期望消除任何对其指纹的跟踪。,(1) 单用户攻击,这样的处理可以包括信号增强、各种滤波、有损压缩、几何变换、数据合成等。这种攻击的一个简单模型是二进制错误消除信道,它可以由传统的纠错编码技术来处理。下面以最简单的随机指纹编码为例介绍单用户攻击。,(1) 单用户攻击,(1)
10、单用户攻击,实际上,这意味着如果可以作为标记位置的数量足够大,也就是指纹足够长,就可以成功地对抗单盗版者的变形攻击。具体所需要的标记位置数量将随着系统中用户数量的增长而增长,但仅仅是对数级的。对于随机指纹编码,被恢复指纹必须与所有用户指纹进行明确地比较。在用户数量比较大的情况下,这可能是个复杂的任务而耗费大量的计算时间。但在实际应用中,一般用户的数量至多不会超过几百万,而跟踪算法也不会经常性的被执行。,(2) 合谋攻击,在合谋攻击中,如果几个盗版者联合起来,他们就可以逐个位置地对各自的拷贝进行比较,并定位出至少部分标记的位置。在这些位置,他们可以任意地选择0或者1的值,然后通过综合所有原始数据
11、拷贝制造出一个新的数据拷贝。如果这种情况发生在足够多的位置,盗版者就可以在新的数据拷贝中删除掉关于他们身份的所有踪迹。下面以最简单的随机指纹编码为例介绍抗合谋攻击能力。,(2) 合谋攻击,6.4 指纹方案,6.4.1 叛逆者追踪 6.4.2 统计指纹 6.4.3 非对称指纹 6.4.4 匿名指纹,6.4.1 叛逆者追踪,发行者生成一个有r个随机密钥的集合R,并从R中对每个用户分别分配m个密钥,它形成了用户的个人密钥。一个追踪叛逆者消息有多对使能块和密码块组成。密码块是在某些秘密随机钥S下对实际数据的对称加密。使能块允许授权用户获得S,是由发行者在部分或所有的r个密钥作用下加密的数据组成。每个用
12、户通过使用他的密钥对加密数据进行解密,从而计算出S。,6.4.1 叛逆者追踪,6.4.1 叛逆者追踪,6.4.2 统计指纹,假定数据以某种方式被误用,并且发行商能从他找到的非法拷贝中提取出数值对每个在范围1i m 中的i,我们想校验这个假设,即返回数值源自用户i。为了这样做,对一给定i,我们检测这种似然统计量也就是, 是返回数值和给定用户i的数值间的归一化差。,6.4.2 统计指纹,6.4.2 统计指纹,当攻击者改变了返回值,甚至对较大的n, 可能也不再能识别攻击者,这是因为攻击者可能根据一些分布用非零值修改这些值。然而,可以假定攻击者不能区分两种可能取值中哪一个较大和哪一个较小。因此对足够大
13、的n,如果攻击者的值源于用户i,可以期望接近于0。另一方面,如果攻击者的值 不是源自用户i,对大的n,我们能期望,6.4.2 统计指纹,因此,我们可以使用下面的算法。对每个i, 计算出上面两个均值的差值 ui 。如果对某一个i,ui 接近于0,并且对于所有的其它的 ki, uk接近于1,那么这就为误用数据是源自用户i的假设提供了证据。通过对所有i 检查ui的值,就能识别出哪个用户泄露了信息。由于这个指纹方案是基于假设校验的,我们可以提高假设校验的可信度,然而,假设毕竟是假设,不能变成确定性事实。,6.4.2 统计指纹,6.4.3 非对称指纹,一个非对称指纹系统由四个协议组成:Key_gen F
14、ing IdentifyDispute。,key_gen协议,Key_gen是密钥生成协议,购买者生成一对密钥值(skB , pkB ),公开密钥pkB,秘密密钥skB,并通过认证机构公布公开密钥。,Fing指纹协议,Fing为指纹协议,发行商输入要卖的图像、用户的身份pkB和一个描述这次购买的字符串text,而且发行商可以输入这个图像以前的销售情况Record_listPic。购买者输入text和他的秘密钥skB ,结果输出给购买者的是一个有很小误差的图像。购买者可以获得一个记录recordB,它可以保存下来用于以后解决争议。如果协议失败,购买者将获得一个“failed”结果。发行商获得的结
15、果是一个销售记录recordM或者“failed”。,Fing的实质性操作:,Proof=sign(skB ,text) Emb=(text , proof , pkB) 将emb嵌入要卖的图像中,Identify协议,当发行商找到一个拷贝并想识别出原始购买者时,将他找到的图像、他卖出的图像和这个图像的一个销售清单一起送入算法Identify。 Identify的输出是“failed”或是一个购买者的身份pkB和一个由购买者签名的字符串proof。,Identify 的实质性操作:,提取emb Emb=(text,proof,pkB),也就是提取了一个购买者的身份pkB和一个由购买者签名的字符
16、串proof,text。,Dispute协议,争端协议dispute是一个在发行商、仲裁者(公正的第三方)和可能的被控购买者间的两方或三方协议。如图6.5(其中arbiter为公正的第三方)。发行商和arbiter输入pkB和text,发行商还要输入proof。如果加入被指控的购买者,他输入text,skB及recordB。协议输出给公正的第三方是一个布尔值acc,标识是否接受对用户的指控,也就是说,如果acc=ok,这就意味着购买者是有罪的。,Dispute的实质性操作:,arbiter 有proof和pkB 他可以验证签名proof。对于这个签名别人不能伪造,购买者不能抵赖。如果找到的图像
17、确实含有购买者的签名,那么就可以指控。,6.4.4 匿名指纹,匿名指纹的基本思想如下:买方选择一个假名(即签名方案中的一个密钥对(skB, pkB),然后用他的真实身份对其签名,表示他对这个假名负责。他能从注册中心获得一个证书certB。有了这个证书,注册中心宣布它知道选择这个假名的购买者的身份,也即注册中心能把一个真人用一个假名代表。,6.4.4 匿名指纹,然后当购买者进行一次购买时,在不了解发行商的情况下用标识这次购买的文本text计算出一个签名:sig:=sign(skB,text),然后将信息emb:=(text, sig, pkB, certB)嵌入购买的数据中。他在一个比特承诺里隐
18、藏这个值,并以零知识方式给商人发送证书和承诺。比特承诺是一种密码技术,它能传递数据并仍能在一段时间内保持秘密。,6.4.4 匿名指纹,当需要鉴别时,商人提取出emb并给注册中心发送proof:=(text, sig, pkB),并要求验证。作为回答,注册中心向商人发回用户的签名。于是,发行商能够使用这个签名来验证所有的值并有证据指控买方。,6.4.4 匿名指纹,发行商知道有人买了copy,但不知道这人的具体信息 纠纷时:发行商提取emb( emb:=(text, sig, pkB, certB) ) 发行商向注册中心发送proof:=(text, sig, pkB) 注册中心验证这个签名sig,注册中心知道选择这个假名的购买者的身份 对于这个签名别人不能伪造,购买者不能抵赖。,本章完!谢谢大家的合作!,