CN102867286A - 数字水印生成、嵌入、检测方法和装置 - Google Patents
数字水印生成、嵌入、检测方法和装置 Download PDFInfo
- Publication number
- CN102867286A CN102867286A CN2011102026159A CN201110202615A CN102867286A CN 102867286 A CN102867286 A CN 102867286A CN 2011102026159 A CN2011102026159 A CN 2011102026159A CN 201110202615 A CN201110202615 A CN 201110202615A CN 102867286 A CN102867286 A CN 102867286A
- Authority
- CN
- China
- Prior art keywords
- watermark
- hash
- digital
- cryptographic hash
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Editing Of Facsimile Originals (AREA)
Abstract
本发明公开了数字水印生成、嵌入、检测方法和装置。其中数字水印生成方法包括以下步骤:构造哈希树,其中将哈希树的根节点的节点值作为原始内容所有者的公开身份信息;以及,选择哈希树的一个叶子节点,并且根据所选节点的两个密钥串中的各个子密钥的哈希值,生成水印,以用于嵌入到原始内容中。根据本发明的上述技术方案,可以使得所生成的数字水印与内容所有者具有一一对应的关系,使得数字水印可以被证明属于某内容所有者,从而只要在所有权发生争议的内容中检测到该数字水印,就可以知道该内容属于哪个内容所有者。
Description
技术领域
本发明涉及信息安全技术领域,更具体地涉及数字水印生成、嵌入、检测方法和装置。
背景技术
随着数字技术的发展,媒体内容正在被数字化记录、保存和处理,这些媒体内容包括视频、音频、图片、文字等。计算机网络、广播电视、光盘等媒质的出现和发展,使得数字内容传播正在爆炸式地加速。由于数字内容在拷贝和传播的过程中,副本和原件具有完全一样的内容,无法区分原件和副本。这样,一旦诸如内容原创者的内容所有者将数字内容传播出去后,任何得到该数字内容的接收者,将会获得跟内容所有者完全一致的内容。有的时候,会出现所有权的争议,也就是说,有多方声称拥有对同一数字内容的所有权。于是就需要一种裁决方法,证明数字内容的真正归属方,从而保护内容所有者的利益。
用来标志和证明所有权,现有技术有以下几种方法:
●提供具有更丰富细节的原始文件。有的媒体内容在创作阶段,会产生一些原始的素材或原始录制文件,而发布的最终数字内容是在这些原始内容的基础上进行处理得到的。通常情况下,这些处理会使得最终的数字内容比原始内容具有更少的细节。这样,当出现所有权争议时,裁决者让争议的双方出示原始内容,能够提供细节更丰富的一方将被认为是内容的所有者。这种方法具有简便易行的优点。然而并不是所有媒体内容都存在原始内容,例如很多日常拍摄或录制的数码照片、视频、音频等,原始内容和传播出去的内容是一致的。另外,比较内容的细节具有一定的主观性,例如判断两个音频文件细节的多少,尤其是当原始内容和最终传播内容相差不大的情况下,判断细节的多少随意性较强。
●使用时间戳。内容所有者在发布数字内容之前,将数字内容哈希值以及所有者的身份信息等,发送给时间戳服务中心。时间戳服务中心在这些信息上附加上精确时间,并加盖时间戳服务中心的数字签名,形成时间戳。时间戳中明确指定该数字内容的归属者以及精确时间,时间戳的方法具有法律效力,任何人都可以验证时间戳的有效性,并从而确定内容的版权拥有者。这样,内容所有者只要保留这个时间戳,就可以证明内容的所有权。即使其他人后来重新对同一内容申请时间戳,验证者根据时间戳中时间的先后,可以确定具有较早时间的时间戳对应的声称者拥有版权。时间戳的方法具有高安全性和可证明的特点,是一种使用得越来越多的方法。但时间戳通常需要付费,而且需要在线使用。因而其使用范围具有一定的局限性。
●使用可见水印。这是一种常见的版权声明方法。内容所有者在发布数字内容之前,在内容上直接叠加一些可见的水印,水印上标注内容所有者的身份信息。这种可见水印通常标注在内容的关键部位,不易去除,可以很直接地证明内容的所有权。然而这种可见水印对内容的质量具有较大的影响,在对内容质量要求较高的场合,不太适用。
●使用不可见水印。这是对可见水印的一种改进。不可见水印由内容所有者通过水印技术嵌入,嵌入水印的数字内容与原始内容在视觉上或听觉上几乎没有差别。这种方法几乎不影响数字内容的质量,又能标志数字内容的拥有者,是一种具有很大应用前景的技术。然而现有不可见水印技术在证明所有权上不太完善,有的水印算法存在安全问题,容易受到攻击。例如攻击者可以在接收的数字内容中使用同样的方法重新嵌入不可见水印。这样在最终的数字内容中,可以检测到两个数字水印,从而无法决定真正的拥有者。用传统的数字水印方法来证明所有权,还存在许多缺点:例如所有者的水印信息并不公开,也就是说水印与所有者的身份之间没有公知的对应关系,即使声称者出示了水印并在争议的内容中检测到该水印,也难以说明该水印属于所有者;所有者为了证明所有权,不得不公布原始内容、水印及水印密钥、水印叠加方法,这样当证明所有权过程发生一次后,其他人可以根据所有者公布的信息,非常容易地去掉水印,甚至危及该所有者未来发布内容中的水印。
发明内容
在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。但是,应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图用来确定本发明的关键性部分或重要部分,也不是意图用来限定本发明的范围。其目的仅仅是以简化的形式给出关于本发明的某些概念,以此作为稍后给出的更详细描述的前序。
鉴于现有技术的上述情形,本发明的目的是提供数字水印生成、嵌入方法和装置以及相应的数字水印检测方法和装置,其可以解决或减轻现有技术问题中的一个或多个。
为了实现上述目的,根据本发明第一方面的第一实施例,提供了一种数字水印生成方法,包括以下步骤:构造哈希树,其中哈希树的每个叶子节点具有两个密钥串,每个密钥串由N个子密钥构成,其中N是大于零的整数,并且每个子密钥对应一个对其进行W次哈希处理而得到的哈希值,其中W是大于零的整数,叶子节点的节点值根据其两个密钥串中的每个子密钥的所述哈希值而得到,从叶子节点开始,根据两个兄弟节点的节点值得到其父节点的节点值,最终得到哈希树的根节点的节点值以作为原始内容所有者的公开身份信息;以及选择所述哈希树的一个叶子节点,并且根据所选叶子节点的两个密钥串中各个子密钥的所述哈希值,生成N个水印,以用于嵌入到所述原始内容中。
根据本发明第一方面的第二实施例,还提供了一种数字水印检测方法,用于检测嵌入于原始内容中的根据本发明第一方面的第一实施例的数字水印生成方法生成的数字水印,包括以下步骤:提供N个数值,其中每个数值是大于或等于零,并且小于或等于W的整数;从所有权声称者接收哈希树中特定叶子节点的N个第一中间哈希值、N个第二中间哈希值、从所述特定叶子节点通往根节点的路径上各个节点的兄弟节点的节点值集合及相应的左右位置关系,其中所述N个第一中间哈希值和所述N个第二中间哈希值是根据所述N个数值分别对所述特定叶子节点的两个密钥串进行哈希处理得到的中间哈希值;通过分别对所述N个第一中间哈希值以及所述N个第二中间哈希值进行进一步的哈希处理,以使得所述特定叶子节点的两个密钥串分别总共经过W次哈希,从而得到与所述N个第一中间哈希值对应的N个第一哈希值以及与所述N个第二中间哈希值对应的N个第二哈希值;根据所述N个第一哈希值和所述N个第二哈希值,计算所述特定叶子节点的节点值;根据所算出的所述特定叶子节点的节点值以及所接收的从所述特定叶子节点通往根节点的路径上各个节点的兄弟节点的节点值集合及相应的左右位置关系,恢复所述哈希树的根节点的节点值;将所恢复的根节点的节点值与所述所有权声称者的公开身份信息进行比较;以及当所恢复的根节点的节点值与所述所有权声称者的公开身份信息一致时,进行数字水印检测。
根据本发明第二方面的第一实施例,还提供了一种数字水印嵌入方法,用于将水印嵌入到所述数字内容中,所述数字水印嵌入方法包括以下步骤:对所述数字内容进行单向函数处理,以得到一个K位单向函数处理值,其中K是大于零的整数;对所述数字内容进行变换,以得到K个特征值;将所述水印分割成K个片段,并依据所述K位单向函数处理值中的相应位的数值将每个片段叠加到所述K个特征值中的相应一个特征值上;以及将经过叠加处理的K个特征值反变换,从而得到嵌入有所述水印的内容。
根据本发明第二方面的第二实施例,还提供了一种数字水印检测方法,对应于根据本发明第二方面的第一实施例的数字水印嵌入方法,用于在嵌入了水印的数字内容中进行数字水印检测,所述数字水印检测方法包括以下步骤:从所有权声称者接收所述水印和嵌入所述水印之前的数字内容;将所接收的水印分割成K个片段,其中K是大于零的整数;对所接收的数字内容进行单向函数处理,以得到一个K位单向函数处理值;对所接收的数字内容进行变换,以得到K个第一特征值;对待检测的数字内容进行变换,以得到K个第二特征值;根据所述水印的K个片段、所述K位单向函数处理值、所述K个第一特征值、以及所述K个第二特征值,判断在所述待检测的数字内容中是否嵌入了所述水印,其中所述K位单向函数处理值决定所述水印的K个片段向所述K个第一特征值的叠加方式。
根据本发明第三方面的第一实施例,还提供了一种数字水印生成装置,包括:哈希树构造单元,用于构造哈希树,其中哈希树的每个叶子节点具有两个密钥串,每个密钥串由N个子密钥构成,其中N是大于零的整数,并且每个子密钥对应一个对其进行W次哈希处理而得到的哈希值,其中W是大于零的整数,叶子节点的节点值根据其两个密钥串中的每个子密钥的所述哈希值而得到,从叶子节点开始,根据两个兄弟节点的节点值得到其父节点的节点值,最终得到哈希树的根节点的节点值以作为内容所有者的公开身份信息;以及水印生成单元,用于选择所述哈希树的一个叶子节点,并且根据所选叶子节点的两个密钥串中各个子密钥的所述哈希值,生成N个水印,以用于嵌入到所述原始内容中。
根据本发明第三方面的第二实施例,还提供了一种数字水印检测装置,用于检测嵌入于原始内容中的根据本发明第三方面的第一实施例的数字水印生成装置生成的数字水印,包括:提供单元,用于提供N个数值,其中每个数值是大于或等于零且小于或等于W的整数;接收单元,用于从所有权声称者接收哈希树中特定叶子节点的N个第一中间哈希值、N个第二中间哈希值、从所述特定叶子节点通往根节点的路径上各个节点的兄弟节点的节点值集合及相应的左右位置关系,其中所述N个第一中间哈希值和所述N个第二中间哈希值是根据所述N个数值分别对所述特定叶子节点的两个密钥串进行哈希处理得到的中间哈希值;哈希处理单元,用于通过分别对所述N个第一中间哈希值以及所述N个第二中间哈希值进行进一步的哈希处理,以使得所述特定叶子节点的两个密钥串分别总共经过W次哈希,从而得到与所述N个第一中间哈希值对应的N个第一哈希值以及与所述N个第二中间哈希值对应的N个第二哈希值;叶子节点计算单元,用于根据所述N个第一哈希值和所述N个第二哈希值,计算所述特定叶子节点的节点值;根节点恢复单元,用于根据所算出的所述特定叶子节点的节点值以及所接收的从所述特定叶子节点通往根节点的路径上各个节点的兄弟节点的节点值集合及相应的左右位置关系,恢复所述哈希树的根节点的节点值;比较单元,用于将所恢复的根节点的节点值与所述所有权声称者的公开身份信息进行比较;以及数字水印检测单元,用于当所恢复的根节点的节点值与所述所有权声称者的公开身份信息一致时,进行数字水印检测。
根据本发明第四方面的第一实施例,还提供了一种数字水印嵌入装置,用于将水印嵌入到数字内容中,所述数字水印嵌入装置包括:单向函数处理单元,用于对所述数字内容进行单向函数处理,以得到一个K位单向函数处理值,其中K是大于零的整数;变换单元,用于对所述数字内容进行变换,以得到K个特征值;叠加单元,用于将所述水印分割成K个片段,并依据所述K位单向函数处理值中的相应位的数值将每个片段叠加到所述K个特征值中的相应一个特征值上;以及反变换单元,用于将经过叠加处理的K个特征值反变换,从而得到嵌入有所述水印的内容。
根据本发明第四方面的第二实施例,还提供了一种数字水印检测装置,对应于根据本发明第四方面的第一实施例的数字水印嵌入装置,用于在嵌入了水印的数字内容中进行数字水印检测,所述数字水印检测装置包括:接收单元,用于从所有权声称者接收所述水印和嵌入所述水印之前的数字内容;水印分割单元,用于将所接收的水印分割成K个片段,其中K是大于零的整数;单向函数处理单元,用于对所接收的数字内容进行单向函数处理,以得到一个K位单向函数处理值;第一变换单元,用于对所接收的数字内容进行变换,以得到K个第一特征值;第二变换单元,用于对待检测的数字内容进行变换,以得到K个第二特征值;以及判断单元,用于根据所述水印的K个片段、所述K位单向函数处理值、所述K个第一特征值、以及所述K个第二特征值,判断在所述待检测的数字内容中是否嵌入了所述水印,其中所述K位单向函数处理值决定所述水印的K个片段向所述K个第一特征值的叠加方式。
根据本发明的第五方面,还提供了用于实现上述数字水印生成方法和/或数字水印嵌入方法和/或数字水印检测方法的计算机程序产品。
根据本发明的第六方面,还提供了计算机可读介质,其上记录有用于实现上述数字水印生成方法和/或数字水印嵌入方法和/或数字水印检测方法的计算机程序代码。
根据本发明的上述技术方案,可以使得数字水印与内容所有者建立一一对应的关系,即如果在所有权发生争议的内容中检测到某水印,那该内容一定属于该数字水印的拥有者。此外,数字水印的嵌入结合一定的密码技术,使得其他人无法通过同样的方法,再次嵌入有效的数字水印,从而保证数字水印的不可逆性。另外在数字水印检测过程中,所有者所出示的相关信息,无法让其他人加以利用而轻易去除内容中的数字水印,从而保证数字水印的验证安全性。
附图说明
本发明可以通过参考下文中结合附图所给出的详细描述而得到更好的理解,其中在所有附图中使用了相同或相似的附图标记来表示相同或者相似的部件。所述附图连同下面的详细说明一起包含在本说明书中并形成说明书的一部分,用来进一步举例说明本发明的优选实施例和解释本发明的原理和优点。在附图中:
图1示出了根据本发明第一方面的第一实施例的数字水印生成方法的流程图;
图2示出了构造哈希树的示例图;
图3示出了生成叶子节点的密钥串中的每个子密钥及其对应的哈希值的示例图;
图4示出了根据叶子节点生成水印的示例图;
图5示出了构造哈希树的另一示例图;
图6示出了根据本发明第一方面的第二实施例的数字水印检测方法的流程图;
图7示出了根据本发明第二方面的第一实施例的数字水印嵌入方法的流程图;
图8示出了根据本发明第二方面的第一实施例的数字水印嵌入处理的示例性示意图;
图9示出了根据本发明第二方面的第二实施例的数字水印检测方法的流程图;
图10示出了根据本发明第二方面的第二实施例的数字水印检测处理的示例性示意图;
图11示出了根据本发明第二方面的第三实施例的数字水印嵌入方法的流程图;
图12示出了根据本发明第二方面的第三实施例的数字水印嵌入处理的示例性示意图;
图13示出了根据本发明第二方面的第三实施例的在原始内容的一个部分中嵌入一个水印的处理的示例性示意图;
图14示出了根据本发明第二方面的第四实施例的数字水印检测方法的流程图;
图15示出了根据本发明第二方面的第四实施例的数字水印检测处理的示例性示意图;
图16示出了根据本发明第二方面的第五实施例的数字水印嵌入方法的流程图;
图17示出了根据本发明第二方面的第五实施例的数字水印嵌入处理的示例性示意图;
图18示出了根据本发明第二方面的第五实施例的在原始内容的中间内容中嵌入一个水印的处理的示例性示意图;
图19示出了根据本发明第二方面的第六实施例的数字水印检测方法的流程图;
图20示出了根据本发明第二方面的第六实施例的数字水印检测处理的示例性示意图;
图21示出了根据本发明第三方面的第一实施例的数字水印生成装置的结构框图;
图22示出了根据本发明第三方面的第二实施例的数字水印检测装置的结构框图;
图23示出了根据本发明第四方面的第一实施例的数字水印嵌入装置的结构框图;
图24示出了根据本发明第四方面的第二实施例的数字水印检测装置的结构框图;
图25示出了根据本发明第四方面的第三实施例的数字水印嵌入装置的结构框图;
图26示出了根据本发明第四方面的第四实施例的数字水印检测装置的结构框图;
图27示出了根据本发明第四方面的第五实施例的数字水印嵌入装置的结构框图;
图28示出了根据本发明第四方面的第六实施例的数字水印检测装置的结构框图;以及
图29示出了其中实现本发明的计算机的示例性结构框图。
本领域技术人员应当理解,附图中的元件仅仅是为了简单和清楚起见而示出的,而且不一定是按比例绘制的。例如,附图中某些元件的尺寸可能相对于其它元件放大了,以便有助于提高对本发明实施例的理解。
具体实施方式
在下文中将结合附图对本发明的示范性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与系统及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。
在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其它细节。
首先需要说明的是,本文中所提及的哈希函数(或处理)是指密码学意义上的单向函数(或处理),其除了满足单向函数(或处理)的一般要求之外,还需要满足一定的诸如防冲突特性等密码学上的要求。
下面将参考附图详细描述根据本发明第一方面的多个实施例的数字水印生成方法和相应的数字水印检测方法。
图1示出了根据本发明第一方面的第一实施例的数字水印生成方法的流程图。该方法可以由内容所有者本身或可信的第三方实施。
如图1所示,根据本发明第一方面的第一实施例的数字水印生成方法可以包括哈希树构造步骤S110和水印生成步骤S120。
首先,在哈希树构造步骤S110中,构造哈希树,其中哈希树的每个叶子节点具有两个密钥串,每个密钥串由N个子密钥构成,其中N是大于零的整数,并且每个子密钥对应一个对其进行W次哈希处理而得到的哈希值,其中W是大于零的整数,叶子节点的节点值根据其两个密钥串中的每个子密钥的哈希值而得到,从叶子节点开始,根据两个兄弟节点的节点值得到父节点的节点值,最终得到哈希树的根节点的节点值,以作为内容所有者的公开身份信息。这里,哈希树可以是完全树,也可以是非完全树。
在一个示例中,如图2所示,哈希树是完全树,该哈希树的高度为H,则哈希树共有2H个叶子节点。将叶子节点从左至右编号i,i的范围从0到2H-1。一个叶子节点i有两个密钥串Sib,b为0或1,表示两个密钥串中的一个。一个密钥串Sib有N个子密钥Sib(j),j的范围为0到N-1。
优选地,叶子节点i的密钥串Sib中的每个子密钥Sib(j)可以例如利用伪随机函数,基于主密钥MK、叶子节点的序号i、子密钥Sib(j)所在的密钥串Sib的序号b、以及子密钥Sib(j)在密钥串Sib中的序号j而生成。生成子密钥Sib(j)的一个示例性过程如图3(a)所示。例如,内容所有者在发布内容之前,首先秘密地生成一个主密钥MK,该主密钥MK只有内容所有者知道。然后该主密钥MK可以作为哈希函数的初始化参数,i、b、j经过连接后作为哈希函数的消息输入。输出的哈希值为一个对应的子密钥Sib(j)。注意,图3(a)只是给出一个生成子密钥的例子,事实上,还可以用其他方式生成每一个子密钥。例如,i、b、j的连接形式除了i||b||j外,还可以为j||b||i或者b||i||j等其它连接形式,此外,哈希函数也可以替换为加密算法,例如DES(数据加密算法)、AES(高级加密标准)等。
在一个示例中,如图3(b)所示,将每一个叶子节点的2N个子密钥分别进行W次哈希处理,其中W优选地为2的自然数幂次减1,例如1、3、7、15等,得到2N个哈希值表示为{Rib(j)=Hash(W)(Sib(j))|b=0,1;j=0~N-1}。
在一个示例中,将叶子节点的这2N个哈希值经过连接后再次进行哈希处理,得到的哈希值是该叶子节点的节点值。从2H-1个叶子节点出发,两个相邻的兄弟节点连接后进行哈希处理,得到的哈希值作为它们的父节点的节点值。最终得到哈希树的根节点的节点值HH 0,简写为PK,如图2(a)所示。哈希树的根节点的节点值PK用来作为内容所有者的公开身份信息而被公布,任何人可以提前知晓。图2(b)示例性地给出了如何生成哈希树的第一个和第二个叶子节点的值(H0 0,H0 1),并由它们生成哈希树第二层的第一个节点的值H1 0。显然地,哈希树的各个节点的节点值的计算方式不局限于上述示例,本领域的技术人员可以根据具体设计采用不同的方式来计算哈希树的各个节点的节点值。
在另一个示例中,如图5所示,哈希树是非完全树,该哈希树的高度为H,则哈希树共有H+1个叶子节点。将叶子节点从左至右、从下至上编号i,i的范围从0到H。一个叶子节点i有两个密钥串Sib,b为0或1,表示两个密钥串中的一个。一个密钥串Sib有N个子密钥Sib(j),j的范围为0到N-1。
在此另一个示例中,每个叶子节点i的两个密钥串中的每个子密钥及其对应的哈希值的生成方式与前面所描述的图1的哈希树的生成方式相同,因此这里不再赘述。从叶子节点0、1出发,该两个叶子节点连接后进行哈希处理,得到的哈希值作为它们的父节点的节点值,而对于其他叶子节点,则根据与其相邻的兄弟节点的节点值得到其父节点的节点值,最终得到哈希树的根节点的节点值。最终得到哈希树的根节点的节点值HH 0,简写为PK。此外,显然地,构造非完全哈希树的方式不局限于上述示例,本领域的技术人员可以根据具体设计采用不同的方式来构造非完全哈希树。
优选地,内容所有者还可以对PK申请一个时间戳,时间戳服务中心为PK生成的时间戳具有法律效力,可以从法律上证明PK与内容所有者的对应关系。并且/或者,内容所有者还可以在发布PK之前对PK进行签名,以便进一步证明PK与内容所有者的对应关系。
接下来,在水印生成步骤S120中,选择哈希树的一个叶子节点,并且根据所选节点的两个密钥串中的各个子密钥的哈希值,生成N个水印。
在一个示例中,当内容所有者发布原始内容时,例如一副图片I,内容所有者选择哈希树中的一个从未使用的叶子节点i,然后用叶子节点i生成要嵌入到内容I的水印。图4给出了选择i=0的例子。由叶子节点i的2N个子密钥{Sib(j)|b=0,1;j=0~N-1}生成N个水印{Mj|j=0~N-1}。每个水印的生成方法例如为即将两个子密钥串各自的第j个子密钥(可视为一对子密钥)的W次哈希值进行异或,再进行哈希处理后得到的值。异或可以替换为其他数学运算例如取模加法等,此外哈希处理是优选的处理方式,也可以替换为如前文所述的单向函数处理。显然地,由叶子节点i的2N个子密钥生成N个水印的具体方式不局限于上述示例,本领域的技术人员可以根据具体设计采用不同的方式来生成水印。
借此,利用所述数字水印生成方法所生成的数字水印与原始内容所有者身份具有可公开的对应的关系,以便于确定数字水印的真正所有者。
内容所有者可以根据上述数字水印生成方法生成数字水印,或从可信第三方获取其根据上述方法生成的水印,并将该水印嵌入到待处理的原始内容中。这里,嵌入水印的处理可以基于现在和将来的任何可用的数字水印嵌入技术来实现。优选地,可以采用将要在下文中描述的根据本发明实施例的数字水印嵌入方法来实现。
相应地,图6示出了根据本发明第一方面的第二实施例的数字水印检测方法的流程图。该方法可以由所有权验证者实施,用于检测嵌入于原始内容中的根据本发明第一方面的第一实施例的数字水印生成方法生成的数字水印。
如图6所示,根据本发明第一方面的第二实施例的数字水印检测方法可以包括提供步骤S610、接收步骤S620、哈希处理步骤S630、叶子节点计算步骤S640、根节点恢复步骤S650、比较步骤S660以及数字水印检测步骤S670。
首先,在提供步骤S610中,提供N个数值,优选地,所述N个数值为随机数值,其中每个随机数值是大于或等于零且小于或等于预定数值W的整数,N是大于零的整数,并且W是大于零的整数。这里,N和W是预定的,与图1的数字水印生成方法中的N和W相等。
其中,N个随机数值可以是由所有权验证者直接地或例如以下述的间接方式提供:首先,生成预定长度的随机数T,其中该预定长度为N*log2(W+1)位,并将该随机数提供给所有权声称者,然后所有权声称者可以将随机数分割成N段{Tj|j=0~N-1},其中Tj的值的范围为0~W,从而得到N个随机数值。
接下来,在接收步骤S620中,从所有权声称者接收哈希树中特定叶子节点的N个第一中间哈希值、N个第二中间哈希值、从特定叶子节点通往根节点的路径上各个节点的兄弟节点的节点值集合及相应的左右位置关系,其中N个第一中间哈希值和N个第二中间哈希值是根据上述N个数值分别对特定叶子节点的两个密钥串进行哈希处理得到的中间哈希值。
这里,为描述完整起见,将详细说明从所有权声称者接收的上述数据是如何由所有权声称者生成的。但是应当注意,站在所有权验证者的角度,只要接收到这些数据并对其进行验证即可,而无需关心它们的含义以及它们是怎样产生的。
具体地说,在一个示例中,所有权声称者在得到从所有权验证者提供的N个随机数值{Tj|j=0~N-1}后,从哈希树中选择与待检测内容中的数字水印对应的叶子节点i,并且对叶子节点i的第一密钥串Si0中的每个子密钥Si0(j)进行Tj次哈希处理(每个子密钥与N个随机数值中的一个相对应),从而得到叶子节点i的N个第一中间哈希值{first_middle_hashi0(j)|j=0~N-1},并且对叶子节点i的第二密钥串Si1中的每个子密钥Si1(j)进行W-Tj次哈希处理,从而得到叶子节点i的N个第二中间哈希值{second_middle_hashi1(j)|j=0~N-1},并且将所得到的叶子节点i的N个第一中间哈希值、N个第二中间哈希值、从叶子节点i通往根节点的路径上各个节点的兄弟节点的节点值集合及左右位置关系提供给所有权验证者。以上所述的是一种优选的实施方式,本领域技术人员还可以在不背离本发明精神的情况下做出一定修改与变动,例如采用N个固定数值作为所述N个数值,对叶子节点i的第一密钥串Si0中的每个子密钥Si0(j)进行Tj次哈希处理,而得到N个第一中间哈希值,并且对第二密钥串Si1中的每个子密钥Si1(j)也进行Tj次哈希处理而得到叶子节点i的N个第二中间哈希值,也能够满足根据所有权验证者所提供的数值信息来提供密钥串中间哈希值的要求,同样可以在一定程度上解决本发明的问题,而达到相应的效果。
接下来,在哈希处理步骤S630中,通过分别对特定节点的N个第一中间哈希值以及N个第二中间哈希值进行进一步的哈希处理,以使得特定叶子节点的两个密钥串总共经过W次哈希,从而得到与N个第一中间哈希值对应的N个第一哈希值以及与N个第二中间哈希值对应的N个第二哈希值。具体地,对应于上述优选的第一/第二中间哈希值的示例,通过分别对特定节点的N个第一中间哈希值进行次数为K1的哈希处理以得到N个第一哈希值,以及通过分别对N个第二中间哈希值进行次数为K2的哈希处理以得到N个第二哈希值,其中K1为预定数值W减去N个随机数值中与当前第一中间哈希值相对应的一个相应数值,并且K2为N个随机数值中的所述相应数值。例如,针对当前第一中间哈希值first_middle_hashi0(j)和当前第二中间哈希值second_middle_hashi1(j),K1=W-Tj,并且K2=Tj。
接下来,在叶子节点计算步骤S640中,根据在哈希处理步骤S530中算出的N个第一哈希值和N个第二哈希值,计算特定叶子节点的节点值。这里的计算方式是预定的,其与图1的数字水印嵌入方法的哈希树构造步骤S110中根据叶子节点的两个密钥串中的每个子密钥的哈希值来计算叶子节点的节点值的方式相同。
接下来,在根节点恢复步骤S650中,根据叶子节点的节点值以及所接收的从特定叶子节点通往根节点的路径上各个节点的兄弟节点的节点值集合及左右位置关系,恢复哈希树的根节点的节点值。这里的计算方式是预定的,其与图1的数字水印嵌入方法的哈希树构造步骤S110中计算根节点的节点值相同。
接下来,在比较步骤S660中,将所恢复的根节点的节点值与所有权声称者的公开身份信息进行比较。
最后,在数字水印检测步骤S670中,当所恢复的根节点的节点值与所有权声称者的公开身份信息一致时,进行数字水印检测。这里的数字水印检测处理是预定的,与已采用的数字水印嵌入处理相对应,其可以基于现在和将来的任何可用的数字水印检测技术来实现。优选地,可以采用将要在下文中描述的根据本发明实施例的数字水印检测方法来实现。
此外,优选地,如果所有权声称者的公开身份信息申请过时间戳或者经过签名,则在比较步骤S660之前,先验证所有权声称者的公开身份信息的时间戳或签名。只有在该验证通过后,才执行比较步骤S660。
根据本发明第一方面的上述实施例的技术方案,可以使得数字水印与内容所有者建立一一对应的关系,即如果在所有权发生争议的内容中检测到某数字水印,那该内容一定属于该数字水印的拥有者。
下面将参考附图详细描述根据本发明第二方面的多个实施例的数字水印嵌入方法和相应的数字水印检测方法。
图7示出了根据本发明第二方面的第一实施例的数字水印嵌入方法的流程图。该数字水印嵌入方法可以由内容所有者实施,用于将水印嵌入到数字内容中。这里,数字内容可以是原始内容或者已经嵌入了其它水印的内容,还可以是上述内容的某个区域。
如图7所示,根据本发明第二方面的第一实施例的数字水印嵌入方法可以包括单向函数处理步骤S710、变换步骤S720、叠加步骤S730以及反变换步骤S740。
具体地说,首先,在单向函数处理步骤S710中,对数字内容进行单向函数处理,以得到一个K位单向函数处理值,其中K是大于零的整数。这里,优选地,单向函数处理为哈希处理。
在一个示例中,如图8所示,针对数字内容I,将I进行哈希处理得到P,P的长度为K位,优选地是水印M的长度的自然数Q分之一,Q值通常较小。例如Q为2,若M的长度为256,则P的长度是M长度的2分之1,即128二进制位。P是由K位0或1组成即{Pj(k)|Pj(k)=0,1;k=0~K-1}。
接下来,在变换步骤S720中,对数字内容进行变换,以得到K个特征值。
在一个示例中,如图8所示,针对数字内容I,抽取I中K个特征值{V(k)|k=0~K-1},K个特征值提取方法有很多,可以根据具体应用加以选择。例如在数字内容是图像的情况下,可以将I进行离散余弦变换(DCT),取变换系数中前K个最大的系数作为特征值。
接下来,在叠加步骤S730中,将水印分割成K个片段,并依据在在单向函数处理步骤S710中得到的K位单向函数处理值中的相应位的数值将每个片段叠加到在变换步骤S720中得到的K个特征值中的相应一个特征值上。
在一个示例中,如图8所示,针对数字内容I,将水印M分成K个片段{M(k)|k=0~K-1},每一个片段为Q位,值为0~2Q-1,然后,将M(k)叠加到V(k)上得到经过叠加处理的特征值V’(k),P的每一位的0或1值,决定了对应叠加方式的正或负,即如下公式(1)所示。
这种叠加方式是示例性的,事实上还可以采取其他的叠加方式,例如根据P的每一位的0或1值,决定是否叠加该水印片段(if P(k)=0,则不叠加M(k)),以及叠加值的大小与V(k)成一定比例。正是由于水印的叠加过程与K位单向函数处理值中的相应位的数值相关,而K位单向函数处理值又是根据原始内容生成的,对于无法获知原始内容的攻击者而言,其无法做到使用同样的方法重新嵌入不可见水印。因此,只要是依据K位单向函数处理值中的相应位的数值而对每个片段进行叠加的方式,都能够达到相应的技术效果。
最后,在反变换步骤S740中,将经过叠加处理的K个特征值反变换,从而得到嵌入有水印的内容。
在一个示例中,如图8所示,针对数字内容I,将经过叠加处理的K个特征值{V’(k)|k=0~K-1}进行诸如反向离散余弦变换(IDCT)的反变换(特征值抽取的逆过程),从而得到嵌入有水印M的内容I’。
相应地,图9示出了根据本发明第二方面的第二实施例的数字水印检测方法的流程图。该数字水印检测方法可以由所有权验证者实施,用于在嵌入有水印的数字内容中进行数字水印检测。
如图9所示,根据本发明第二方面的第二实施例的数字水印检测方法可以包括接收步骤S910、水印分割步骤S920、单向函数处理步骤S930、第一变换步骤S940、第二变换步骤S950、以及判断步骤S960。
首先,在接收步骤S910中,从所有权声称者接收该水印和嵌入该水印之前的数字内容。
接下来,在水印分割步骤S920中,将在接收步骤S910中接收的水印分割成K个片段,其中K是大于零的整数。这里的分割方式是预定的,其与图7的数字水印嵌入方法的叠加步骤S730中分割水印的方式相同。
在一个示例中,如图10所示,将水印M分成K个片段{M(k)|k=0~K-1},每一个片段为Q位,值为0~2Q-1。
接下来,在单向函数处理步骤S930中,对在接收步骤S910中接收的数字内容进行单向函数处理,以得到一个K位单向函数处理值。这里的单向函数处理方式是预定的,其与图7的数字水印嵌入方法的单向函数处理步骤S710中的单向函数处理方式相同。这里,优选地,单向函数处理为哈希处理。
在一个示例中,如图10所示,将所接收的数字内容I经过哈希处理得到P,P的长度为K位,是M长度的自然数Q分之一,Q值通常较小。例如M的长度为256,P的长度是M长度的2分之1,即128。P是由K位0或1组成即{P(k)|P(k)=0,1;k=0~K-1}。
接下来,在第一变换步骤S940中,对所接收的数字内容进行变换,以得到K个第一特征值。这里的变换方式是预定的,其与图7的数字水印嵌入方法的变换处理步骤S720中的变换方式相同。
在一个示例中,如图10所示,通过例如DCT,抽取所接收的数字内容I中K个特征值{V(k)|k=0~K-1}。
接下来,在第二变换步骤S950中,对待检测的数字内容进行变换,以得到K个第二特征值。这里的变换方式是预定的,其与图7的数字水印嵌入方法的变换处理步骤S720中的变换方式相同。
在一个示例中,如图10所示,通过例如DCT,抽取待检测的数字内容数据I’中K个特征值{V’(k)|k=0~K-1}。
最后,在判断步骤S960中,根据在水印分割步骤S920中得到的K个水印片段、在单向函数处理步骤S930中得到的K位单向函数处理值、在第一变换步骤S940中得到的K个第一特征值、在第二变换步骤S950中得到的K个第二特征值,判断在待检测的数字内容中是否嵌入了在接收步骤S910中接收到的水印,其中K位单向函数处理值分别决定K个水印片段向K个第一特征值的叠加方式。
这里,本领域的技术人员可以根据具体设计采取不同的方式来进行判断。在一个示例中,如图10所示,可以根据下述公式(2)来进行判断:
当∑的值大于预定的阈值时,判断数字水印存在,否则,判断数字水印不存在。
在另一个示例中,可以根据K位单向函数处理值{P(k)|P(k)=0,1;k=0~K-1},分别将K个水印片段{M(k)|k=0~K-1}正叠加或负叠加到K个第一特征值{V(k)|k=0~K-1}上,然后通过计算经过叠加处理的K个第一特征值与K个第二特征值{V’(k)|k=0~K-1}的差异或距离等方式,判断在待检测的数字内容中是否嵌入了水印M。
根据本发明第二方面的上述实施例的技术方案,由于使用了原始内容的单向函数处理值作为嵌入数字水印的参数,因此使得上述数字水印嵌入方法保持了不可逆性。即只能从原始内容和数字水印正向得到嵌入了数字水印的内容,而不能从嵌入了数字水印和数字水印反推出原始内容。
本发明上述第二方面的上述实施例的数字水印嵌入方法中是依据K位单向函数处理值中的相应位的数值而对每个片段进行叠加的,可选地,本领域技术人员也可不采用K位单向函数处理值,而替换为K位随机值等其他数值,依据K位随机值相应位的数值而对每个片段进行叠加,本领域技术人员也可根据本发明中的描述了解相应的数字水印的检测方法。在此不再赘述。这种替选实施方式至少能解决的问题是,在验证时,内容所有者即使给出一定的信息例如原始内容的一部分,并进而暴露了水印的值和位置,然而攻击者仅能够根据这些信息,去除部分水印而不能去除全部水印。
图11示出了根据本发明第二方面的第三实施例的数字水印嵌入方法的流程图。该数字水印嵌入方法可以由内容所有者实施,用于将N个水印嵌入到原始内容中,其中N是大于零的整数。
如图11所示,根据本发明第二方面的第三实施例的数字水印嵌入方法可以包括内容分割步骤S1110、单向函数处理步骤S1120、变换步骤S1130、叠加步骤S1140、反变换步骤S1150、以及组合步骤S1160。例如,如图12所示,在该数字水印嵌入方法中,可以将原始内容I按照预定的规则分成N个部分{Ij|j=0~N-1},并且在N个部分{Ij|j=0~N-1}中分别嵌入N个水印{Mj|j=0~N-1}。
具体地说,首先,在内容分割步骤S1110中,将原始内容分割成N个部分。
在一个示例中,如图12所示,可以将原始内容I按照预定的规则分成N个部分{Ij|j=0~N-1}。
接下来,在单向函数处理步骤S1120中,对原始内容的每个部分进行单向函数处理,以分别得到一个K位单向函数处理值,其中K是大于零的整数。这里,优选地,单向函数处理为哈希处理。
在一个示例中,如图13所示,针对原始内容I的一个部分Ij,将Ij进行哈希处理得到Pj,Pj的长度为K位,优选地是Mj长度的自然数Q分之一,Q值通常较小。例如Q为2,若Mj的长度为256,则Pj的长度是Mj长度的2分之1,即128二进制位。Pj是由K位0或1组成即{Pj(k)|Pj(k)=0,1;k=0~K-1}。
接下来,在变换步骤S1130中,对原始内容的每个部分进行变换,以分别得到K个特征值。
在一个示例中,如图13所示,针对原始内容I的一个部分Ij,抽取Ij中K个特征值{V(k)|k=0~K-1},K个特征值提取方法有很多,可以根据具体应用加以选择。例如在原始内容是图像的情况下,可以将Ij进行离散余弦变换(DCT),取变换系数中前K个最大的系数作为特征值。
接下来,在叠加步骤S1140中,针对原始内容的每个部分,将N个水印中的相应一个水印分割成K个片段,并依据所述K位单向函数处理值中的相应位的数值将每个片段叠加到所述K个特征值中的相应一个特征值上。
在一个示例中,如图13所示,针对原始内容I的一个部分Ij,将相应的水印Mj分成K个片段{Mj(k)|k=0~K-1},每一个片段为Q位,值为0~2Q-1,然后,将Mj(k)叠加到V(k)上得到经过叠加处理的特征值V’(k),Pj的每一位的0或1值,决定了对应叠加方式的正或负,即如下公式(3)所示。
这种叠加方式是示例性的,事实上还可以采取其他的叠加方式,例如根据Pj的每一位的0或1值,决定是否叠加该水印片段(if Pj(k)=0,则不叠加Mj(k)),以及叠加值的大小与V(k)成一定比例。正是由于水印的叠加过程与K位单向函数处理值中的相应位的数值相关,而K位单向函数处理值又是根据原始内容生成的,对于无法获知原始内容的攻击者而言,其无法做到使用同样的方法重新嵌入不可见水印。因此,只要是依据K位单向函数处理值中的相应位的数值而对每个片段进行叠加的方式,都能够达到相应的技术效果。
接下来,在反变换步骤S1150中,针对原始内容的每个部分,将经过叠加处理的K个特征值反变换,从而得到相应的嵌入了水印的部分。
在一个示例中,如图13所示,针对原始内容I的一个部分Ij,将经过叠加处理的K个特征值{V’(k)|k=0~K-1}进行诸如反向离散余弦变换(IDCT)的反变换(特征值抽取的逆过程),从而得到第j个嵌入了水印的部分I’j。
最后,在组合步骤S1160中,组合每个嵌入了水印的部分,以得到嵌入了N个水印的内容。
在一个示例中,如图12所示,组合每个嵌入了水印的部分I’j,得到嵌入了N个水印的内容I’。
相应地,图14示出了根据本发明第二方面的第四实施例的数字水印检测方法的流程图。该数字水印检测方法可以由所有权验证者实施,用于在嵌入了N个水印的内容中进行数字水印检测,其中N是大于零的整数。
如图14所示,根据本发明第二方面的第四实施例的数字水印检测方法可以包括序号选择步骤S1410、内容分割步骤S1420、接收步骤S1430、水印分割步骤S1440、单向函数处理步骤S1450、第一变换步骤S1460、第二变换步骤S1470、以及判断步骤S1480。
首先,在序号选择步骤S1410中,例如在0到N-1的范围内、例如以随机方式,选择一个用于指定N个水印之一的序号j。
接下来,在内容分割步骤S1420中,将待检测的内容分割成N个部分,并且选择其中第j个部分。这里的分割方式是预定的,其与图11的数字水印嵌入方法的内容分割步骤S1110中的分割方式相同。
在一个示例中,如图15所示,将待检测的内容I’分成N个部分{I’j|j=0~N-1},并选择其中的第j个部份I’j。
接下来,在接收步骤S1430中,从所有权声称者接收已嵌入在所选部分中的第j个水印和该部分的原始数据。注意,这里接收第j个水印可以包括接收用于生成第j个水印的密钥数据,从而根据所接收的密钥数据来生成第j个水印。
接下来,在水印分割步骤S1440中,将在接收步骤S1430中接收的水印分割成K个片段,其中K是大于零的整数。这里的分割方式是预定的,其与图11的数字水印嵌入方法的叠加步骤S1140中分割水印的方式相同。
在一个示例中,如图15所示,将水印Mj分成K个片段{Mj(k)|k=0~K-1},每一个片段为Q位,值为0~2Q-1。
接下来,在单向函数处理步骤S1450中,对该部分的原始数据进行单向函数处理,以分别得到一个K位单向函数处理值。这里的单向函数处理方式是预定的,其与图11的数字水印嵌入方法的单向函数处理步骤S1120中的单向函数处理方式相同。这里,优选地,单向函数处理为哈希处理。
在一个示例中,如图15所示,将第j个部分的原始数据Ij经过哈希处理得到Pj,Pj的长度为K位,是Mj长度的自然数Q分之一,Q值通常较小。例如Mj的长度为256,Pj的长度是Mj长度的2分之1,即128。Pj是由K位0或1组成即{Pj(k)|Pj(k)=0,1;k=0~K-1}。
接下来,在第一变换步骤S1460中,对该部分的原始数据进行变换,以得到K个第一特征值。这里的变换方式是预定的,其与图11的数字水印嵌入方法的变换处理步骤S1130中的变换方式相同。
在一个示例中,如图15所示,通过例如DCT,抽取第j个部分的原始数据Ij中K个特征值{V(k)|k=0~K-1}。
接下来,在第二变换步骤S1470中,对该部分的嵌入了水印的数据进行变换,以得到K个第二特征值。这里的变换方式是预定的,其与图11的数字水印嵌入方法的变换处理步骤S1130中的变换方式相同。
在一个示例中,如图15所示,通过例如DCT,抽取该部分的嵌入了水印的数据I’j中K个特征值{V’(k)|k=0~K-1}。
最后,在判断步骤S1480中,根据在水印分割步骤S1440中得到的K个水印片段、在单向函数处理步骤S1450中得到的K位单向函数处理值、在第一变换步骤S1460中得到的K个第一特征值、在第二变换步骤S1470中得到的K个第二特征值,判断在该部分中是否嵌入了在接收步骤S1430中接收到的水印,其中K位单向函数处理值分别决定K个水印片段向K个第一特征值的叠加方式。
这里,本领域的技术人员可以根据具体设计采取不同的方式来进行判断。在一个示例中,如图15所示,可以根据下述公式(4)来进行判断:
当∑的值大于预定的阈值时,判断数字水印存在,否则,判断数字水印不存在。
在另一个示例中,可以根据K位单向函数处理值{Pj(k)|Pj(k)=0,1;k=0~K-1},分别将K个水印片段{Mj(k)|k=0~K-1}正叠加或负叠加到K个第一特征值{V(k)|k=0~K-1}上,然后通过计算经过叠加处理的K个第一特征值与K个第二特征值{V’(k)|k=0~K-1}的差异或距离等方式,判断在该部分中是否嵌入了水印Mj。
根据本发明第二方面的上述实施例的技术方案,由于使用了原始内容的单向函数处理值作为嵌入数字水印的参数,因此使得上述数字水印嵌入方法保持了不可逆性。即只能从原始内容和数字水印正向得到嵌入了数字水印的内容,而不能从嵌入了数字水印和数字水印反推出原始内容。此外,虽然内容所有者在水印检测过程中给出了一定的信息例如原始内容的一部分的内容,并进而暴露了数字水印的值和位置,这样攻击者可以根据这些信息,去除部分水印,但是不能去除全部水印。也就是说,当被去掉部分水印的内容的所有权再次发生争执时,内容所有者仍然可以再次通过上述验证过程再次证明自己的所有权。
本发明上述第二方面的上述实施例的数字水印嵌入方法中是依据K位单向函数处理值中的相应位的数值而对每个片段进行叠加的,可选的,本领域技术人员也可不采用K位单向函数处理值,而替换为K位随机值等其他数值,依据K位随机值相应位的数值而对每个片段进行叠加,本领域技术人员也可根据本发明中的描述了解相应的数字水印的检测方法。在此不再赘述。这种替选实施方式至少能解决的问题是,在验证时,内容所有者即使给出一定的信息例如原始内容的一部分,并进而暴露了水印的值和位置,然而攻击者仅能够根据这些信息,去除部分水印而不能去除全部水印。
图16示出了根据本发明第二方面的第五实施例的数字水印嵌入方法的流程图。该数字水印嵌入方法可以由内容所有者实施,用于将N个水印嵌入到原始内容中,其中N是大于零的整数。
如图16所示,根据本发明第五实施例的数字水印嵌入方法可以包括单向函数处理步骤S1610、变换步骤S1620、叠加步骤S1630、反变换步骤S1640、以及迭代控制步骤S1650。例如,如图17所示,在该数字水印嵌入方法中,可以将N个水印{Mj|j=0~N-1}依次累积嵌入到原始内容I0中,以得到原始内容的中间内容Ij{Ij|j=1~N-1},并且最终得到嵌入了N个水印的内容IN。
具体地说,首先,在单向函数处理步骤S1610中,对待处理内容进行单向函数处理,以得到一个K位单向函数处理值,其中K是大于零的整数,并且初始的待处理内容是原始内容。这里,优选地,单向函数处理为哈希处理。
在一个示例中,如图18所示,针对待处理内容Ij,将Ij进行哈希处理得到Pj,Pj的长度为K位,优选地是Mj长度的自然数Q分之一,Q值通常较小。例如Q为2,若Mj的长度为256,则Pj的长度是Mj长度的2分之1,即128二进制位。Pj是由K位0或1组成即{Pj(k)|
Pj(k)=0,1;k=0~K-1}。
接下来,在变换步骤S1620中,对待处理内容进行变换,以得到K个特征值;
在一个示例中,如图18所示,针对待处理内容Ij,抽取Ij中K个特征值{Vj(k)|k=0~K-1},K个特征值提取方法有很多,可以根据具体应用加以选择。例如在原始内容是图像的情况下,可以将Ij进行离散余弦变换(DCT),取变换系数中前K个最大的系数作为特征值。
接下来,在叠加步骤S1630中,将N个水印中的相应一个水印分割成K个片段,并依据在单向函数处理步骤S1610中得到的K位单向函数处理值中的相应位的数值将每个片段叠加到所述K个特征值中的相应一个特征值上。
在一个示例中,如图18所示,针对待处理内容Ij,将相应的水印Mj分成K个片段{Mj(k)|k=0~K-1},每一个片段为Q位,值为0~2Q-1,然后,将Mj(k)叠加到相应的特征值Vj(k)上得到经过叠加处理的特征值Vj+1(k),其也是第j+1次处理中的待处理内容的特征值,K位单向函数处理值Pj的每一位的0或1值,决定了对应叠加方式的正或负,即如下公式(5)所示。
这种叠加方式是示例性的,事实上还可以采取其他的叠加方式,例如根据Pj的每一位的0或1值,决定是否叠加该水印片段(if Pj(k)=0,则不叠加Mj(k)),以及叠加值的大小与V(k)成一定比例。正是由于水印的叠加过程与K位单向函数处理值中的相应位的数值相关,而K位单向函数处理值又是根据原始内容生成的,对于无法获知原始内容的攻击者而言,其无法做到使用同样的方法重新嵌入不可见水印。因此,只要是依据K位单向函数处理值中的相应位的数值而对每个片段进行叠加的方式,都能够达到相应的技术效果。
接下来,在反变换步骤S1640中,将经过叠加处理的K个特征值反变换,从而得到中间内容。
在一个示例中,如图18所示,针对待处理内容Ij,将经过叠加处理的K个特征值{Vj+1(k)|k=0~K-1}进行诸如反向离散余弦变换(IDCT)的反变换(特征值抽取的逆过程),从而得到嵌入了第j个数字水印的中间内容Ij+1.
最后,在迭代控制步骤S1650中,以中间内容为待处理内容,迭代执行步骤S1610到步骤S1640中的处理,以依次嵌入剩余的水印,从而得到嵌入了N个数字水印的内容。
在一个示例中,如图17所示,得到原始内容的中间内容Ij{Ij|j=1~N-1},并且最终得到嵌入了N个水印的内容IN.
相应地,图19示出了根据本发明第二方面的第六实施例的数字水印检测方法的流程图。该数字水印检测方法可以由所有权验证者实施,用于在嵌入了N个水印的内容中进行数字水印检测,其中N是大于零的整数。
如图19所示,根据本发明第二方面的第六实施例的数字水印检测方法可以包括序号选择步骤S1910、接收步骤S1920、水印分割步骤S1930、单向函数处理步骤S1940、第一变换步骤S1950、第二变换步骤S1960、以及判断步骤S1970。
首先,在序号选择步骤S1910中,例如在0到N-1的范围内选择一个用于指定N个水印之一的序号j。这里,优选地以从大到小的方式进行选择。
接下来,在接收步骤S1920中,从所有权声称者接收第j个水印和嵌入数字水印过程中在嵌入第j个水印之前的内容。注意,这里接收第j个水印可以包括接收用于生成第j个水印的密钥数据,从而根据所接收的密钥数据来生成第j个水印。
接下来,在水印分割步骤S1930中,将在接收步骤S1920中接收的水印分割成K个片段,其中K是大于零的整数。这里的分割方式是预定的,其与图16的数字水印嵌入方法的叠加步骤S1630中分割水印的方式相同。
在一个示例中,如图20所示,将水印Mj分成K个片段{Mj(k)|k=0~K-1},每一个片段为Q位,值为0~2Q-1。
接下来,在单向函数处理步骤S1940中,对在接收步骤S1920中接收的内容进行单向函数处理,以分别得到一个K位单向函数处理值。这里的单向函数处理方式是预定的,其与图16的数字水印嵌入方法的单向函数处理步骤S1610中的单向函数处理方式相同。这里,优选地,单向函数处理为哈希处理。
在一个示例中,如图20所示,将Ij经过哈希处理得到Pj,Pj的长度为K位,是Mj长度的自然数Q分之一,Q值通常较小。例如Mj的长度为256,Pj的长度是Mj长度的2分之1,即128。Pj是由K位0或1组成即{Pj(k)|Pj(k)=0,1;k=0~K-1}。
接下来,在第一变换步骤S1950中,对在接收步骤S1920中接收的内容进行变换,以得到K个第一特征值。这里的变换方式是预定的,其与图16的数字水印嵌入方法的变换处理步骤S1640中的变换方式相同。
在一个示例中,如图20所示,通过例如DCT,抽取所接收的内容Ij中K个特征值{Vj(k)|k=0~K-1}。
接下来,在第二变换步骤S1960中,对嵌入了N个水印的待检测内容进行变换,以得到K个第二特征值。这里的变换方式是预定的,其与图16的数字水印嵌入方法的变换处理步骤S1640中的变换方式相同。
在一个示例中,如图20所示,通过例如DCT,抽取嵌入了N个水印的待检测内容IN中K个特征值{VN(k)|k=0~K-1}。
最后,在判断步骤S1970中,根据在水印分割步骤S1930中得到的K个水印片段、在单向函数处理步骤S1940中得到的K位单向函数处理值、在第一变换步骤S1950中得到的K个第一特征值、在第二变换步骤S1960中得到的K个第二特征值,判断在嵌入了N个水印的待检测内容中是否嵌入了在接收步骤S1920中接收到的水印,其中K位单向函数处理值分别决定K个水印片段向K个第一特征值的叠加方式。
这里,本领域的技术人员可以根据具体设计采取不同的方式来进行判断。在一个示例中,如图20所示,可以根据下述公式(6)来进行判断:
当∑的值大于预定的阈值时,判断数字水印存在,否则,判断数字水印不存在。
在另一个示例中,可以根据K位单向函数处理值{Pj(k)|Pj(k)=0,1;k=0~K-1},分别将K个水印片段{Mj(k)|k=0~K-1}正叠加或负叠加到K个第一特征值{Vj(k)|k=0~K-1}上,然后通过计算经过叠加处理的K个第一特征值与K个第二特征值{VN(k)|k=0~K-1}的差异或距离等方式,判断在该待检测内容中是否嵌入了水印Mj。
根据本发明第二方面的上述实施例的技术方案,由于使用了原始内容的单向函数处理值作为嵌入数字水印的参数,因此使得上述数字水印嵌入方法保持了不可逆性。即只能从原始内容和数字水印正向得到嵌入了数字水印的内容,而不能从嵌入了数字水印和数字水印反推出原始内容。此外,虽然内容所有者在水印检测过程中给出了一定的信息例如原始内容的中间状态的内容,并进而暴露了数字水印的值和位置,这样攻击者可以根据这些信息,去除部分水印,但是不能去除全部水印。也就是说,当被去掉部分水印的内容的所有权再次发生争执时,内容所有者仍然可以再次通过上述验证过程再次证明自己的所有权。
本发明上述第二方面的上述实施例的数字水印嵌入方法中是依据K位单向函数处理值中的相应位的数值而对每个片段进行叠加的,可选的,本领域技术人员也可不采用K位单向函数处理值,而替换为K位随机值等其他数值,依据K位随机值相应位的数值而对每个片段进行叠加,本领域技术人员也可根据本发明中的描述了解相应的数字水印的检测方法。在此不再赘述。这种替选实施方式至少能解决的问题是,在验证时,内容所有者即使给出一定的信息例如原始内容的一部分,并进而暴露了水印的值和位置,然而攻击者仅能够根据这些信息,去除部分水印而不能去除全部水印。
下面将结合附图描述根据本发明第三方面的多个实施例的数字水印生成装置和相应的数字水印检测装置。
图21示出了根据本发明第三方面的第一实施例的数字水印生成装置的结构框图,其中,为了简明起见仅仅示出了与本发明密切相关的部分。在数字水印生成装置2100中,能够执行以上参考图1所描述的数字水印生成方法。
如图21所示,数字水印生成装置2100可以包括哈希树构造单元2110和水印生成单元2120。
其中,哈希树构造单元2110可以用于构造哈希树,其中哈希树的每个叶子节点具有两个密钥串,每个密钥串由N个子密钥构成,其中N是大于零的整数,并且每个子密钥对应一个对其进行W次哈希处理而得到的哈希值,其中W是大于零的整数,叶子节点的节点值根据其两个密钥串中的每个子密钥的所述哈希值而得到,从叶子节点开始,根据两个兄弟节点的节点值得到其父节点的节点值,最终得到哈希树的根节点的节点值以作为内容所有者的公开身份信息;以及,水印生成单元2120可以用于选择所述哈希树的一个叶子节点,并且根据所选叶子节点的两个密钥串中各个子密钥的所述哈希值,生成N个水印,以用于嵌入到所述原始内容中。
通过阅读前面给出的相应处理的描述,数字水印生成装置2100及其各个组成单元的功能如何实现就变得很清楚了,所以在此就不再赘述了。
在此需要说明的是,图21所示的数字水印生成装置2100的结构仅仅是示例性的,本领域技术人员可以根据需要对图21所示的结构框图进行修改。
图22示出了根据本发明第三方面的第二实施例的数字水印检测装置的结构框图,其中,为了简明起见仅仅示出了与本发明密切相关的部分。在数字水印检测装置2200中,能够执行以上参考图6所描述的数字水印检测方法。数字水印检测装置2200可以用于检测嵌入于原始内容中的根据本发明第三方面的第一实施例的数字水印生成装置生成的数字水印。
如图22所示,数字水印检测装置2200可以包括提供单元2210、接收单元2220、哈希处理单元2230、叶子节点计算单元2240、根节点恢复单元2250、比较单元2260以及数字水印检测单元2270。
其中,提供单元2210可以用于提供N个数值,其中每个数值是大于或等于零且小于或等于W的整数;接收单元2220可以用于从所有权声称者接收哈希树中特定叶子节点的N个第一中间哈希值、N个第二中间哈希值、从所述特定叶子节点通往根节点的路径上各个节点的兄弟节点的节点值集合及相应的左右位置关系,其中所述N个第一中间哈希值和所述N个第二中间哈希值是根据所述N个数值分别对所述特定叶子节点的两个密钥串进行哈希处理得到的中间哈希值;哈希处理单元2230用于通过分别对所述N个第一中间哈希值以及所述N个第二中间哈希值进行进一步的哈希处理,以使得所述特定叶子节点的两个密钥串分别总共经过W次哈希,从而得到与所述N个第一中间哈希值对应的N个第一哈希值以及与所述N个第二中间哈希值对应的N个第二哈希值;叶子节点计算单元2240可以用于根据所述N个第一哈希值和所述N个第二哈希值,计算所述特定叶子节点的节点值;根节点恢复单元2250可以用于根据所算出的所述特定叶子节点的节点值以及所接收的从所述特定叶子节点通往根节点的路径上各个节点的兄弟节点的节点值集合及相应的左右位置关系,恢复所述哈希树的根节点的节点值;比较单元2260可以用于将所恢复的根节点的节点值与所述所有权声称者的公开身份信息进行比较;以及数字水印检测单元2270可以用于当所恢复的根节点的节点值与所述所有权声称者的公开身份信息一致时,进行数字水印检测。
通过阅读前面给出的相应处理的描述,数字水印检测装置2200及其各个组成单元的功能如何实现就变得很清楚了,所以在此就不再赘述了。
在此需要说明的是,图22所示的数字水印检测装置2200的结构仅仅是示例性的,本领域技术人员可以根据需要对图22所示的结构框图进行修改。
下面将结合附图描述根据本发明第四方面的多个实施例的数字水印嵌入装置和相应的数字水印检测装置。
图23示出了根据本发明第四方面的第一实施例的数字水印嵌入装置的结构框图,其中,为了简明起见仅仅示出了与本发明密切相关的部分。在数字水印嵌入装置2300中,能够执行以上参考图7所描述的数字水印嵌入方法。数字水印嵌入装置2300可以用于将水印嵌入到数字内容中。
如图23所示,数字水印嵌入装置2300可以包括单向函数处理单元2310、变换单元2320、叠加单元2330以及反变换单元2340。
其中单向函数处理单元2310可以用于对数字内容进行单向函数处理,以得到一个K位单向函数处理值,其中K是大于零的整数;变换单元2320可以用于对所述数字内容进行变换,以得到K个特征值;叠加单元2330可以用于将所述水印分割成K个片段,并依据所述K位单向函数处理值中的相应位的数值将每个片段叠加到所述K个特征值中的相应一个特征值上;反变换单元2340可以用于将经过叠加处理的K个特征值反变换,从而得到嵌入有所述水印的内容。
通过阅读前面给出的相应处理的描述,数字水印嵌入装置2300及其各个组成单元的功能如何实现就变得很清楚了,所以在此就不再赘述了。
在此需要说明的是,图23所示的数字水印嵌入装置2300的结构仅仅是示例性的,本领域技术人员可以根据需要对图23所示的结构框图进行修改。
图24示出了根据本发明第四方面的第二实施例的数字水印检测装置的结构框图,其中,为了简明起见仅仅示出了与本发明密切相关的部分。在数字水印检测装置2400中,能够执行以上参考图9所描述的数字水印检测方法。数字水印检测装置2400对应于根据本发明第四方面的第一实施例的数字水印嵌入装置,可以用于在嵌入了水印的数字内容中进行数字水印检测。
如图24所示,数字水印检测装置2400可以包括接收单元2410、水印分割单元2420、单向函数处理单元2430、第一变换单元2440、第二变换单元2450、以及判断单元2460。
其中,接收单元2410可以用于从所有权声称者接收所述水印和嵌入所述水印之前的数字内容;水印分割单元2440可以用于将所接收的水印分割成K个片段,其中K是大于零的整数;单向函数处理单元2450可以用于对所接收的所述部分的原始数据进行单向函数处理,以得到一个K位单向函数处理值;第一变换单元2460可以用于对所接收的数字内容进行单向函数处理,以得到一个K位单向函数处理值;第二变换单元2470可以用于对待检测的数字内容进行变换,以得到K个第二特征值;以及判断单元2480可以用于根据所述水印的K个片段、所述K位单向函数处理值、所述K个第一特征值、以及所述K个第二特征值,判断在所述待检测的数字内容中是否嵌入了所述水印,其中所述K位单向函数处理值决定所述水印的K个片段向所述K个第一特征值的叠加方式。
通过阅读前面给出的相应处理的描述,数字水印检测装置2400及其各个组成单元的功能如何实现就变得很清楚了,所以在此就不再赘述了。
在此需要说明的是,图24所示的数字水印检测装置2400的结构仅仅是示例性的,本领域技术人员可以根据需要对图24所示的结构框图进行修改。
图25示出了根据本发明第四方面的第三实施例的数字水印嵌入装置的结构框图,其中,为了简明起见仅仅示出了与本发明密切相关的部分。在数字水印嵌入装置2500中,能够执行以上参考图11所描述的数字水印嵌入方法。
如图25所示,数字水印嵌入装置2500可以用于将N个水印嵌入到原始内容中,其中N是大于零的整数,并且包括内容分割单元2510、单向函数处理单元2520、变换单元2530、叠加单元2540、反变换单元2550、以及组合单元2560。
其中内容分割单元2510可以用于将所述原始内容分割成N个部分;单向函数处理单元2520可以用于对所述原始内容的每个部分进行单向函数处理,以分别得到一个K位单向函数处理值,其中K是大于零的整数;变换单元2530可以用于对所述原始内容的每个部分进行变换,以分别得到K个特征值;叠加单元2540可以用于针对所述原始内容的每个部分,将所述N个水印中的相应一个水印分割成K个片段,并依据所述K位单向函数处理值中的相应位的数值将每个片段叠加到所述K个特征值中的相应一个特征值上;反变换单元2550可以用于针对原始内容的每个部分,将经过叠加处理的K个特征值反变换,以得到相应的嵌入了水印的部分;以及组合单元2560可以用于组合每个嵌入了水印的部分,以得到嵌入了所述N个水印的内容。
通过阅读前面给出的相应处理的描述,数字水印嵌入装置2500及其各个组成单元的功能如何实现就变得很清楚了,所以在此就不再赘述了。
在此需要说明的是,图25所示的数字水印嵌入装置2500的结构仅仅是示例性的,本领域技术人员可以根据需要对图25所示的结构框图进行修改。
图26示出了根据本发明第四方面的第四实施例的数字水印检测装置的结构框图,其中,为了简明起见仅仅示出了与本发明密切相关的部分。在数字水印检测装置2600中,能够执行以上参考图14所描述的数字水印检测方法。
如图26所示,数字水印检测装置2600可以用于在嵌入了N个水印的内容中进行数字水印检测,其中N是大于零的整数,并且包括序号选择单元2610、内容分割单元2620、接收单元2630、水印分割单元2640、单向函数处理单元2650、第一变换单元2660、第二变换单元2670、以及判断单元2680。
其中,序号选择单元2610可以用于选择一个用于指定N个水印之一的序号j;内容分割单元2620可以用于将待检测的内容分割成N个部分,并且选择其中第j个部分;接收单元2630可以用于从所有权声称者接收已嵌入在所述部分中的第j个水印和所述部分的原始数据;水印分割单元2640可以用于将所接收的水印分割成K个片段,其中K是大于零的整数;单向函数处理单元2650可以用于对所接收的所述部分的原始数据进行单向函数处理,以得到一个K位单向函数处理值;第一变换单元2660可以用于对所接收的所述部分的原始数据进行变换,以得到K个第一特征值;第二变换单元2670可以用于对所述部分的嵌入了水印的数据进行变换,以得到K个第二特征值;以及判断单元2680可以用于根据所述水印的所述K个片段、所述K位单向函数处理值、所述K个第一特征值、以及所述K个第二特征值,判断在所述部分中是否嵌入了所述水印,其中所述K位单向函数处理值分别决定所述水印的所述K个片段向所述K个第一特征值的叠加方式。
通过阅读前面给出的相应处理的描述,数字水印检测装置2600及其各个组成单元的功能如何实现就变得很清楚了,所以在此就不再赘述了。
在此需要说明的是,图26所示的数字水印检测装置2600的结构仅仅是示例性的,本领域技术人员可以根据需要对图26所示的结构框图进行修改。
图27示出了根据本发明第四方面的第五实施例的数字水印嵌入装置的结构框图,其中,为了简明起见仅仅示出了与本发明密切相关的部分。在数字水印嵌入装置2700中,能够执行以上参考图16所描述的数字水印嵌入方法。
如图27所示,数字水印嵌入装置2700可以用于将N个水印嵌入到原始内容中,其中N是大于零的整数,并且包括单向函数处理单元2710、变换单元2720、叠加单元2730、反变换单元2740、以及迭代控制单元2750。
其中,单向函数处理单元2710可以用于对待处理内容进行单向函数处理,以得到一个K位单向函数处理值,其中K是大于零的整数,并且初始的待处理内容是所述原始内容;变换单元2720可以用于对所述待处理内容进行变换,以得到K个特征值;叠加单元2730可以用于将所述N个水印中的相应一个水印分割成K个片段,并依据所述K位单向函数处理值中的相应位的数值将每个片段叠加到所述K个特征值中的相应一个特征值上;反变换单元2740可以用于将经过叠加处理的K个特征值反变换,从而得到中间内容;以及迭代控制单元2750可以用于以所述中间内容作为所述待处理内容,迭代执行上述处理,以依次嵌入剩余的水印,从而得到嵌入了所述N个水印的内容。
通过阅读前面给出的相应处理的描述,数字水印嵌入装置2700及其各个组成单元的功能如何实现就变得很清楚了,所以在此就不再赘述了。
在此需要说明的是,图27所示的数字水印嵌入装置2700的结构仅仅是示例性的,本领域技术人员可以根据需要对图27所示的结构框图进行修改。
图28示出了根据本发明第四方面的第六实施例的数字水印检测装置的结构框图,其中,为了简明起见仅仅示出了与本发明密切相关的部分。在数字水印检测装置2800中,能够执行以上参考图19所描述的数字水印检测方法。
如图28所示,数字水印检测装置2800可以用于在嵌入了N个水印的内容中进行数字水印检测,其中N是大于零的整数,并且包括序号选择单元2810、接收单元2820、水印分割单元2830、单向函数处理单元2840、第一变换单元2850、第二变换单元2860、以及判断单元2870。
其中,序号选择单元2810可以用于选择一个用于指定N个水印之一的序号j;接收单元2820可以用于从所有权声称者接收第j个水印和嵌入数字水印过程中在嵌入第j个水印之前的内容;水印分割单元2830可以用于将所接收的水印分割成K个片段,其中K是大于零的整数;单向函数处理单元2840可以用于对所接收的内容进行单向函数处理,以得到一个K位单向函数处理值;第一变换单元2850可以用于对所接收的内容进行变换,以得到K个第一特征值;第二变换单元2860可以用于对待检测的内容进行变换,以得到K个第二特征值;判断单元2870可以用于根据所述水印的K个片段、所述K位单向函数处理值、所述K个第一特征值、以及所述K个第二特征值,判断在所述待检测的内容中是否嵌入了所述水印,其中所述K位单向函数处理值分别决定所述水印的K个片段向所述K个第一特征值的叠加方式。
通过阅读前面给出的相应处理的描述,数字水印检测装置2800及其各个组成单元的功能如何实现就变得很清楚了,所以在此就不再赘述了。
在此需要说明的是,图28所示的数字水印检测装置2800的结构仅仅是示例性的,本领域技术人员可以根据需要对图28所示的结构框图进行修改。
以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。
在通过软件和/或固件实现本发明的实施例的情况下,从存储介质或网络向具有专用硬件结构的计算机,例如图29所示的通用计算机2900安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等等。
在图29中,中央处理模块(CPU)2901根据只读存储器(ROM)2902中存储的程序或从存储部分2908加载到随机存取存储器(RAM)2903的程序执行各种处理。在RAM 2903中,也根据需要存储当CPU 2901执行各种处理等等时所需的数据。CPU 2901、ROM 2902和RAM 2903经由总线2904彼此连接。输入/输出接口2905也连接到总线2904。
下述部件连接到输入/输出接口2905:输入部分2906,包括键盘、鼠标等等;输出部分2907,包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等等,和扬声器等等;存储部分2908,包括硬盘等等;和通信部分2909,包括网络接口卡比如LAN卡、调制解调器等等。通信部分2909经由网络比如因特网执行通信处理。
根据需要,驱动器2910也连接到输入/输出接口2905。可拆卸介质2911比如磁盘、光盘、磁光盘、半导体存储器等等根据需要被安装在驱动器2910上,使得从中读出的计算机程序根据需要被安装到存储部分2908中。
在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质2911安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图29所示的其中存储有程序、与装置相分离地分发以向用户提供程序的可拆卸介质2911。可拆卸介质2911的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM 2902、存储部分2908中包含的硬盘等等,其中存有程序,并且与包含它们的装置一起被分发给用户。
还需要指出的是,在本发明的方法和装置中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
虽然已经详细说明了本发明及其优点,但是应当理解在不脱离由所附的权利要求所限定的本发明的精神和范围的情况下可以进行各种改变、替代和变换。而且,本申请的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
Claims (17)
1.一种数字水印生成方法,包括以下步骤:
构造哈希树,其中哈希树的每个叶子节点具有两个密钥串,每个密钥串由N个子密钥构成,其中N是大于零的整数,并且每个子密钥对应一个对其进行W次哈希处理而得到的哈希值,其中W是大于零的整数,叶子节点的节点值根据其两个密钥串中的每个子密钥的所述哈希值而得到,从叶子节点开始,根据两个兄弟节点的节点值得到其父节点的节点值,最终得到哈希树的根节点的节点值以作为原始内容所有者的公开身份信息;以及
选择所述哈希树的一个叶子节点,并且根据所选叶子节点的两个密钥串中各个子密钥的所述哈希值,生成N个水印,以用于嵌入到所述原始内容中。
2.根据权利要求1所述的数字水印生成方法,还包括:对所述哈希树的根节点的节点值申请时间戳和/或进行签名。
3.根据权利要求1所述的数字水印生成方法,其中所述叶子节点的两个密钥串中的每个子密钥是基于主密钥、所述叶子节点的序号、所述子密钥所在的密钥串的序号、以及所述子密钥在密钥串中的序号而生成的。
4.根据权利要求1所述的数字水印生成方法,其中根据所选叶子节点的两个密钥串中各个子密钥的所述哈希值,生成N个水印进一步包括:
对所选叶子节点的两个密钥串中对应的各对子密钥的所述哈希值分别进行数学运算,以得到N个结果值;以及
对所述N个结果值分别进行单向函数处理,从而生成所述N个水印。
5.一种数字水印检测方法,用于检测嵌入于原始内容中的根据权利要求1所述的数字水印生成方法生成的数字水印,包括以下步骤:
提供N个数值,其中每个数值是大于或等于零,并且小于或等于W的整数;
从所有权声称者接收哈希树中特定叶子节点的N个第一中间哈希值、N个第二中间哈希值、从所述特定叶子节点通往根节点的路径上各个节点的兄弟节点的节点值集合及相应的左右位置关系,其中所述N个第一中间哈希值和所述N个第二中间哈希值是根据所述N个数值分别对所述特定叶子节点的两个密钥串进行哈希处理得到的中间哈希值;
通过分别对所述N个第一中间哈希值以及所述N个第二中间哈希值进行进一步的哈希处理,以使得所述特定叶子节点的两个密钥串分别总共经过W次哈希,从而得到与所述N个第一中间哈希值对应的N个第一哈希值以及与所述N个第二中间哈希值对应的N个第二哈希值;
根据所述N个第一哈希值和所述N个第二哈希值,计算所述特定叶子节点的节点值;
根据所算出的所述特定叶子节点的节点值以及所接收的从所述特定叶子节点通往根节点的路径上各个节点的兄弟节点的节点值集合及相应的左右位置关系,恢复所述哈希树的根节点的节点值;
将所恢复的根节点的节点值与所述所有权声称者的公开身份信息进行比较;以及
当所恢复的根节点的节点值与所述所有权声称者的公开身份信息一致时,进行数字水印检测。
6.根据权利要求5所述的数字水印检测方法,其中所述N个数值为随机数值,所述数字水印检测方法进一步包括:
生成预定长度的随机数,其中预定长度是N*log2(W+1)位;以及
将所述随机数分割成N段,从而得到所述N个随机数值。
7.根据权利要求5所述的数字水印检测方法,其中将所恢复的根节点的节点值与所述所有权声称者的公开身份信息进行比较之前,还包括:
验证所述所有权声称者的公开身份信息的时间戳或签名。
8.一种数字水印生成装置,包括:
哈希树构造单元,用于构造哈希树,其中哈希树的每个叶子节点具有两个密钥串,每个密钥串由N个子密钥构成,其中N是大于零的整数,并且每个子密钥对应一个对其进行W次哈希处理而得到的哈希值,其中W是大于零的整数,叶子节点的节点值根据其两个密钥串中的每个子密钥的所述哈希值而得到,从叶子节点开始,根据两个兄弟节点的节点值得到其父节点的节点值,最终得到哈希树的根节点的节点值以作为内容所有者的公开身份信息;以及
水印生成单元,用于选择所述哈希树的一个叶子节点,并且根据所选叶子节点的两个密钥串中各个子密钥的所述哈希值,生成N个水印,以用于嵌入到所述原始内容中。
9.一种数字水印检测装置,用于检测嵌入于原始内容中的根据权利要求8所述的数字水印生成装置生成的数字水印,包括:
提供单元,用于提供N个数值,其中每个数值是大于或等于零且小于或等于W的整数;
接收单元,用于从所有权声称者接收哈希树中特定叶子节点的N个第一中间哈希值、N个第二中间哈希值、从所述特定叶子节点通往根节点的路径上各个节点的兄弟节点的节点值集合及相应的左右位置关系,其中所述N个第一中间哈希值和所述N个第二中间哈希值是根据所述N个数值分别对所述特定叶子节点的两个密钥串进行哈希处理得到的中间哈希值;
哈希处理单元,用于通过分别对所述N个第一中间哈希值以及所述N个第二中间哈希值进行进一步的哈希处理,以使得所述特定叶子节点的两个密钥串分别总共经过W次哈希,从而得到与所述N个第一中间哈希值对应的N个第一哈希值以及与所述N个第二中间哈希值对应的N个第二哈希值;
叶子节点计算单元,用于根据所述N个第一哈希值和所述N个第二哈希值,计算所述特定叶子节点的节点值;
根节点恢复单元,用于根据所算出的所述特定叶子节点的节点值以及所接收的从所述特定叶子节点通往根节点的路径上各个节点的兄弟节点的节点值集合及相应的左右位置关系,恢复所述哈希树的根节点的节点值;
比较单元,用于将所恢复的根节点的节点值与所述所有权声称者的公开身份信息进行比较;以及
数字水印检测单元,用于当所恢复的根节点的节点值与所述所有权声称者的公开身份信息一致时,进行数字水印检测。
10.一种数字水印嵌入方法,用于将水印嵌入到数字内容中,所述数字水印嵌入方法包括以下步骤:
对所述数字内容进行单向函数处理,以得到一个K位单向函数处理值,其中K是大于零的整数;
对所述数字内容进行变换,以得到K个特征值;
将所述水印分割成K个片段,并依据所述K位单向函数处理值中的相应位的数值将每个片段叠加到所述K个特征值中的相应一个特征值上;以及
将经过叠加处理的K个特征值反变换,从而得到嵌入有所述水印的内容。
11.如权利要求10所述的数字水印嵌入方法,其中所述变换是离散余弦变换,并且所述反变换是反向离散余弦变换。
12.如权利要求10所述的数字水印嵌入方法,其中依据所述K位单向函数处理值中的相应位的数值将每个片段叠加到所述K个特征值中的相应一个特征值上包括:依据所述K位单向函数处理值中的相应位的数值为0或1而将每个片段正叠加或负叠加到所述K个特征值中的相应一个特征值上。
13.一种数字水印检测方法,对应于权利要求10所述的数字水印嵌入方法,用于在嵌入了水印的数字内容中进行数字水印检测,所述数字水印检测方法包括以下步骤:
从所有权声称者接收所述水印和嵌入所述水印之前的数字内容;
将所接收的水印分割成K个片段,其中K是大于零的整数;
对所接收的数字内容进行单向函数处理,以得到一个K位单向函数处理值;
对所接收的数字内容进行变换,以得到K个第一特征值;
对待检测的数字内容进行变换,以得到K个第二特征值;
根据所述水印的K个片段、所述K位单向函数处理值、所述K个第一特征值、以及所述K个第二特征值,判断在所述待检测的数字内容中是否嵌入了所述水印,其中所述K位单向函数处理值决定所述水印的K个片段向所述K个第一特征值的叠加方式。
14.如权利要求13所述的数字水印检测方法,其中所述变换是离散余弦变换。
15.如权利要求13所述的数字水印检测方法,其中判断在所述待检测的数字内容中是否嵌入了所述水印进一步包括以下步骤:
按照下述公式进行计算,以得到一个求和值:
其中,k是0到K-1范围的索引值,V(k)表示所述所接收的数字内容的第k个第一特征值,V’(k)表示所述待检测的数字内容的第k个第二特征值,M(k)表示所述水印的第k个片段,P(k)表示所述所接收的数字内容的所述K位单向函数处理值的第k位的数值;以及
通过比较所述求和值与预定阈值,判断在所述待检测的数字内容中是否嵌入了所述水印。
16.一种数字水印嵌入装置,用于将水印嵌入到数字内容中,所述数字水印嵌入装置包括:
单向函数处理单元,用于对所述数字内容进行单向函数处理,以得到一个K位单向函数处理值,其中K是大于零的整数;
变换单元,用于对所述数字内容进行变换,以得到K个特征值;
叠加单元,用于将所述水印分割成K个片段,并依据所述K位单向函数处理值中的相应位的数值将每个片段叠加到所述K个特征值中的相应一个特征值上;以及
反变换单元,用于将经过叠加处理的K个特征值反变换,从而得到嵌入有所述水印的内容。
17.一种数字水印检测装置,对应于权利要求16所述的数字水印嵌入装置,用于在嵌入了水印的数字内容中进行数字水印检测,所述数字水印检测装置包括:
接收单元,用于从所有权声称者接收所述水印和嵌入所述水印之前的数字内容;
水印分割单元,用于将所接收的水印分割成K个片段,其中K是大于零的整数;
单向函数处理单元,用于对所接收的数字内容进行单向函数处理,以得到一个K位单向函数处理值;
第一变换单元,用于对所接收的数字内容进行变换,以得到K个第一特征值;
第二变换单元,用于对待检测的数字内容进行变换,以得到K个第二特征值;以及
判断单元,用于根据所述水印的K个片段、所述K位单向函数处理值、所述K个第一特征值、以及所述K个第二特征值,判断在所述待检测的数字内容中是否嵌入了所述水印,其中所述K位单向函数处理值决定所述水印的K个片段向所述K个第一特征值的叠加方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102026159A CN102867286A (zh) | 2011-07-08 | 2011-07-08 | 数字水印生成、嵌入、检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102026159A CN102867286A (zh) | 2011-07-08 | 2011-07-08 | 数字水印生成、嵌入、检测方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102867286A true CN102867286A (zh) | 2013-01-09 |
Family
ID=47446144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102026159A Pending CN102867286A (zh) | 2011-07-08 | 2011-07-08 | 数字水印生成、嵌入、检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102867286A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103971323A (zh) * | 2014-05-22 | 2014-08-06 | 复旦大学 | 一种基于置乱变换和形态成分分析的数字水印隐写方法 |
CN104283856A (zh) * | 2013-07-08 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 安全验证处理方法、装置、客户端与接口设备 |
CN107369125A (zh) * | 2017-06-13 | 2017-11-21 | 重庆第二师范学院 | 用于数据流的鲁棒水印检测方法和装置 |
CN108063756A (zh) * | 2017-11-21 | 2018-05-22 | 阿里巴巴集团控股有限公司 | 一种密钥管理方法、装置及设备 |
CN108155995A (zh) * | 2016-12-02 | 2018-06-12 | 中国移动通信有限公司研究院 | 一种认证方法及系统、移动终端、认证服务器 |
CN108537694A (zh) * | 2018-04-23 | 2018-09-14 | 众安信息技术服务有限公司 | 用于在区块链上保护版权的方法、装置和可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0883284A2 (en) * | 1997-06-05 | 1998-12-09 | Hitachi, Ltd. | Digital data authentication method |
CN1897522A (zh) * | 2005-07-15 | 2007-01-17 | 国际商业机器公司 | 水印嵌入和/或检测的方法、装置及系统 |
CN101350055A (zh) * | 2008-09-05 | 2009-01-21 | 清华大学 | 一种在计算机程序中嵌入和提取水印的方法 |
CN101741845A (zh) * | 2009-12-08 | 2010-06-16 | 中国科学院声学研究所 | 一种基于分片的内容认证方法 |
-
2011
- 2011-07-08 CN CN2011102026159A patent/CN102867286A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0883284A2 (en) * | 1997-06-05 | 1998-12-09 | Hitachi, Ltd. | Digital data authentication method |
CN1897522A (zh) * | 2005-07-15 | 2007-01-17 | 国际商业机器公司 | 水印嵌入和/或检测的方法、装置及系统 |
CN101350055A (zh) * | 2008-09-05 | 2009-01-21 | 清华大学 | 一种在计算机程序中嵌入和提取水印的方法 |
CN101741845A (zh) * | 2009-12-08 | 2010-06-16 | 中国科学院声学研究所 | 一种基于分片的内容认证方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104283856A (zh) * | 2013-07-08 | 2015-01-14 | 腾讯科技(深圳)有限公司 | 安全验证处理方法、装置、客户端与接口设备 |
CN104283856B (zh) * | 2013-07-08 | 2016-08-17 | 腾讯科技(深圳)有限公司 | 安全验证处理方法、装置、客户端与接口设备 |
CN103971323A (zh) * | 2014-05-22 | 2014-08-06 | 复旦大学 | 一种基于置乱变换和形态成分分析的数字水印隐写方法 |
CN103971323B (zh) * | 2014-05-22 | 2017-02-15 | 复旦大学 | 一种基于置乱变换和形态成分分析的数字水印隐写方法 |
CN108155995A (zh) * | 2016-12-02 | 2018-06-12 | 中国移动通信有限公司研究院 | 一种认证方法及系统、移动终端、认证服务器 |
CN107369125A (zh) * | 2017-06-13 | 2017-11-21 | 重庆第二师范学院 | 用于数据流的鲁棒水印检测方法和装置 |
CN108063756A (zh) * | 2017-11-21 | 2018-05-22 | 阿里巴巴集团控股有限公司 | 一种密钥管理方法、装置及设备 |
US10931651B2 (en) | 2017-11-21 | 2021-02-23 | Advanced New Technologies Co., Ltd. | Key management |
CN108537694A (zh) * | 2018-04-23 | 2018-09-14 | 众安信息技术服务有限公司 | 用于在区块链上保护版权的方法、装置和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102867286A (zh) | 数字水印生成、嵌入、检测方法和装置 | |
Abdel-Hamid et al. | A survey on IP watermarking techniques | |
CN100395776C (zh) | 基于混沌散列函数的分块脆弱水印生成与认证方法 | |
Cannons et al. | Design and statistical analysis of a hash-aided image watermarking system | |
Sion et al. | Resilient rights protection for sensor streams | |
Gupta et al. | Database relation watermarking resilient against secondary watermarking attacks | |
Wolfe et al. | Watermarking graph partitioning solutions | |
Xu et al. | Separable reversible data hiding in encrypted images based on two-dimensional histogram modification | |
Yi et al. | On the importance of checking multivariate public key cryptography for side-channel attacks: the case of enTTS scheme | |
CN112132577B (zh) | 一种基于区块链的多重监管的交易处理方法及装置 | |
Adelsbach et al. | Watermark detection with zero-knowledge disclosure | |
Bedi et al. | A new watermarking approach for non-numeric relational database | |
Beugnon et al. | From visual confidentiality to transparent format-compliant selective encryption of 3d objects | |
Qu | Publicly detectable watermarking for intellectual property authentication in VLSI design | |
CN102890760A (zh) | 一种基于非对称加密的文本零知识水印检测方法 | |
Fiorini et al. | How to fake an RSA signature by encoding modular root finding as a SAT problem | |
Khanduja et al. | A robust watermarking approach for non numeric relational database | |
Pagnotta et al. | Tattooed: A robust deep neural network watermarking scheme based on spread-spectrum channel coding | |
CN102902929B (zh) | 自然语言水印鲁棒性测试方法及其系统 | |
CN103903218A (zh) | 用于公开验证所有权的鲁棒地理数据水印方法 | |
CN104866737A (zh) | 一种顾及地形特征的dem脆弱水印完整性认证方法 | |
US20220407698A1 (en) | Digital watermark system, digital watermark method and program | |
Zhang et al. | A fragile watermarking scheme based on hash function for web pages | |
KR100685485B1 (ko) | 비대칭 워터마킹 시스템 및 방법 | |
Ahuja et al. | Visual chaos steganography with fractional transform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130109 |
|
WD01 | Invention patent application deemed withdrawn after publication |