版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ICS35.020
CCSL67
YD
中华人民共和国通信行业标准
YD/TXXXX—XXXX
电信网和互联网结构化数据
数字水印实施指南
Implementationguidefordigitalwatermarkingofstructureddataintelecomnetwork
andInternet
(报批稿)
××××-××-××发布××××-××-××实施
中华人民共和国工业和信息化部发布
YD/TXXXX—XXXX
前言
本文件按照GB/T1.1—2020《标准化工作导则第1部分:标准化文件的结构和起草规则》的规定
起草。
请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。
本文件由中国通信标准化协会提出并归口。
本文件起草单位:中国移动通信集团有限公司、北京神州绿盟科技有限公司、中国信息通信研究院、
北京东方通网信科技有限公司、中国联合网络通信集团有限公司、上海观安信息技术股份有限公司、中
兴通讯股份有限公司、国家计算机网络应急技术处理协调中心、中国科学院信息工程研究所、北京快手
科技有限公司、北京信安世纪科技股份有限公司。
本文件主要起草人:张鑫月、耿慧拯、粟栗、何申、杨亭亭、陆黎、刘颖卿、陈磊、兰凯棋、崔婷
婷、谢江、曹京、游世林、袁曙光、落红卫、赵芸伟、陈驰、汪宗斌。
II
YD/T×××××—××××
电信网和互联网结构化数据数字水印实施指南
1范围
本文件给出了电信网和互联网结构化数据数字水印实施过程涉及的水印实施对象、水印类型等信
息,规定了结构化数据数字水印实施模型以及实施过程,包括水印嵌入过程和水印提取过程。
本文件适用于电信网和互联网各系统或平台涉及的结构化数据数字水印实施的技术指导。
2规范性引用文件
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,
仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本
文件。
GB/T25069信息安全技术术语
GB/T29246-2017信息技术安全技术信息安全管理体系概述和词汇
GB/T35273-2020信息安全技术个人信息安全规范
GB/T35295-2017信息技术大数据术语
3术语和定义
GB/T25069、GB/T29246-2017、GB/T35273-2020和GB/T35295-2017界定的以及下列术语和定义适
用于本文件。
3.1
结构化数据structureddata
一种数据表示形式,按此种形式,由数据元素汇集而成的每个记录的结构都是一致的并且可以使用
关系模型予以有效描述。
[来源:GB/T35295-2017,2.2.13]
3.2
水印信息watermarkinformation
一种嵌入到数字载体(比如数字图像、数字视频和结构化数据)中的各类特定标识信息,包括用户
标识、版权信息、溯源ID、时间戳等信息。
3.3
数字水印digitalwatermarking
一种将水印信息通过一定的规则与算法隐藏在数字载体(比如数字图像、数字视频和结构化数据集)
中的技术。
注:本文的结构化数据数字水印是数字水印中的一种。
3.4
原始数据集originaldataset
待嵌入水印信息的结构化数据集。
1
YD/TXXXX—XXXX
3.5
嵌入对象embeddedobject
原始数据集中待嵌入水印信息的指定属性、元组等嵌入位置信息。
3.6
水印算法watermarkingalgorithm
数字水印实施过程中所需要的规则、算法,按照实施过程可分为水印嵌入算法、水印提取算法。
3.7
水印数据watermarkeddataset
嵌入了水印信息的结构化数据集。
3.8
水印数据更新watermarkeddatasetupdate
针对水印数据的元组或属性进行常规的增加、删除、修改等操作。
3.9
水印攻击watermarkingattack
针对水印数据进行恶意破坏、替换或删除等攻击操作。
3.10
数据拥有者dataowner
拥有数据所有权的主体。
注:通常是指数据所属的主体,如组织,个人等。
3.11
多数投票原则majorityvotingprinciple
在水印提取时,水印信息值的判定取决于多数水印信息的取值。
注:水印数据发布后,由于水印数据更新或水印攻击的发生,部分水印信息可能丢失,因此可以按照多数投票原则
校正、判定水印信息取值。
4缩略语
下列缩略语适用于本文件。
CSV:逗号分隔值文件格式(Comma-SeparatedValues)
HMAC:哈希消息认证码(Hash-basedMessageAuthenticationCode)
ID:标识符(Identifier)
LSB:最低有效位(LeastSignificantBit)
MSB:最高有效位(MostSignificantBit)
5实施对象
结构化数据数字水印的实施对象主要为各系统或平台涉及的结构化数据集。结构化数据集可承载
于关系型数据库、CSV文件等格式文件当中,具有较少的冗余空间供水印嵌入。
结构化数据集可形式化定义为:퐷(푃,퐴1,퐴2,…,퐴푠),其中푃为主键,퐴1,퐴2,…,퐴푠为s个属性列。结
构化数据集퐷由q个元组푟1,푟2,…,푟푞组成,每个元组푟都存在主键푟.푃和s个属性值푟.퐴1、푟.퐴2、……、
푟.퐴푠。
注1:根据应用水印的数字载体类型不同,可以将数字水印分为结构化数据数字水印和非结构化数据数字水印(嵌
2
YD/T×××××—××××
入载体主要为多媒体文件,如视频、音频、图片等)。由于结构化数据的冗余空间较少,因此结构化数据数字水印比嵌
入到非结构化数据中的水印实施难度更高。
注2:在不引起混淆的情况下,本文件中的“结构化数据数字水印”简称“数字水印”或“水印”。
注3:在不引起混淆的情况下,本文件中的“结构化数据集”简称“数据集”。
6水印类型
按照不同角度划分,结构化数据数字水印可分为以下不同的类型。
a)从水印的实施对原始数据集是否引起失真角度划分,可将数字水印分为有失真水印和无失真
水印:
1)有失真水印对原始数据集引入了失真,可利用字符串、图像、符号等信息作为水印信息。
2)无失真水印对原始数据集未引入失真,可利用不可见字符等信息作为水印信息。
b)从对水印数据的改变是否敏感角度划分,可将数字水印分为脆弱水印和鲁棒水印:
1)脆弱水印对水印数据的改变敏感,水印数据的轻微改变都会对水印造成破坏,导致提取出
的水印信息与原始嵌入的水印信息不一致。
2)鲁棒水印对水印数据的改变不敏感,水印数据的改变不会轻易破坏水印的完整性,仍能够
提取出原始水印信息。
注:本文中的“结构化数据数字水印”在没有特殊说明情况下,属于鲁棒水印。
c)从水印实施对象的数据类型划分,可将数字水印分为数值型水印、非数值型水印:
1)数值型水印将水印嵌入至数值型属性,如时间、金额、经纬度等。
2)非数值型水印将水印嵌入至非数值型属性,如姓名、地址等文本型属性。
d)从水印实施对数据集的改变是否可逆角度划分,可将数字水印分为可逆水印和不可逆水印:
1)可逆水印对原始数据集的改变可逆,从水印数据提取水印后能恢复原始数据集。
2)不可逆水印对原始数据集的改变不可逆,从水印数据提取水印后不能恢复原始数据集。
e)从水印提取所需信息划分,可将数字水印分为盲检测水印和非盲检测水印:
1)盲检测水印在水印提取阶段,不需要原始数据集和原水印信息参与。在实际应用中,受各
种应用场景所限制,通常采用该类型水印方案。
2)非盲检测水印在水印提取阶段,需要原始数据集或原水印信息参与。
7实施原则
水印的实施原则如下:
a)透明性:水印的实施对原始数据集的使用价值影响较小,且水印对数据使用者透明、不可见。
b)安全性:水印一旦被嵌入到原始数据集中,难以被恶意用户篡改、伪造或删除,且攻击者在不
知道秘密参数的情况下,难以完整有效地确定嵌入水印的位置并提取出水印信息。
c)可检测性:水印信息被嵌入到原始数据集中后,可以通过一定的水印提取算法被完整的提取出
来。
d)鲁棒性:水印数据在经过恶意水印攻击或者水印数据更新后,水印信息仍然可以从水印数据中
完整提取或被检测到。
8实施过程
8.1实施模型
水印实施模型如图1所示,其主要包含水印嵌入和水印提取两个过程,其中在水印嵌入完成后进行
3
YD/TXXXX—XXXX
水印数据分发。水印实施场景分析、应用场景分别参见附录C和附录D。
a)水印嵌入过程实现向原始数据集嵌入水印信息的过程,包括水印信息选择、嵌入对象分析、水
印算法配置、水印信息嵌入四个步骤。主要输入原始数据集퐷、水印信息푊、密钥푘,输出水印
数据퐷푤。
b)水印数据分发过程可能发生水印数据更新操作,使水印数据产生变化。主要输入水印数据퐷푤,
输出待检测数据集퐷푤′。
c)水印提取过程实现从待检测数据集中提取水印的过程,为水印嵌入过程的逆过程,包括水印信
息提取、水印含义识别两个步骤。主要输入待检测数据集Dw′、密钥k、水印嵌入位置信息、
原水印信息W、原始数据集D,输出提取的水印信息W′,其中原水印信息W和原始数据集D是
非必要的,仅在非盲检测水印中需要。
图1数字水印实施模型
8.2水印嵌入过程
8.2.1水印信息选择
水印信息选择的实施宜根据不同的业务场景,选择合适的水印信息。具体如下:
a)可选择有意义的版权信息、溯源身份信息、时间戳等标识信息作为水印信息,如:发送时间、
发送者、接收者、目标地址等。水印信息的格式可为文字、图像或声音等不同的格式。在数据
版权保护场景,可选择版权归属信息、数据拥有者身份信息等标识信息作为水印信息;在数据
追踪溯源场景,可选择接收方身份信息、接收方目标地址等标识信息作为水印信息。
b)可采取不同标识信息结合的方式作为水印信息,如:接收方身份信息结合发送时间戳等。
4
YD/T×××××—××××
8.2.2嵌入对象分析
嵌入对象分析的实施宜结合业务场景,分析原始数据集中各个属性的数据类型与允许修改范围,从
水印实施的鲁棒性、透明性、安全性等因素进行权衡,选择最优的水印嵌入的属性和位置。具体如下:
a)如果原始数据集中含有数值型属性,可根据业务场景对数据精确度的要求,明确该数值属性是
否允许修改,以及允许修改的范围。
b)如果原始数据集中含有文本型属性,可根据业务场景对数据精确度的要求,明确文本属性是否
允许修改,以及允许修改的范围。
c)从水印实施的鲁棒性角度考虑,允许修改范围大的属性优先级高于允许修改范围小的属性;
注:允许修改范围大的属性支持更多的水印信息嵌入,具有更大水印容量,能提高水印鲁棒性。
d)从水印实施的安全性角度考虑,必要程度高的属性优先级高于必要程度低的属性。
注1:向必要程度高的属性嵌入水印,则该属性被删除的概率较小,能提高水印抵御属性删除攻击的能力,增加水
印实施的安全性。属性的必要程度判定方法为:该属性被删除或者修改是否影响数据的正常使用,无法使用的必要
程度为高、部分影响使用的必要程度为中、能够正常使用的必要程度为低。如:在消费信息和账单数据中,消费金
额数据的准确性影响了消费结算业务的开展,故必要程度高,若结算时间数据的秒数位的准确性不影响消费结算
业务的正常开展,故必要程度低。
注2:由于向主键、外键嵌入水印信息可能影响数据的正常使用功能(如数据检索、表关联等),违背了透明性原
则,故建议不选择主键、外键作为被嵌入对象。
e)如果原始数据集不存在允许修改的属性,则在水印算法配置时,可通过构造虚拟元组/属性的
方式来嵌入水印信息,或选择无失真水印算法。
8.2.3水印算法配置
水印算法配置的实施宜结合业务场景,基于嵌入对象分析的结果,从水印实施的鲁棒性、透明性及
安全性等因素进行权衡,配置合适的水印算法。具体如下:
a)水印算法宜进行参数化设计,以支持在不变规则的情况下,通过调整参数就能适应不同业务需
求。
b)如果原始数据集含有可修改的数值型属性,可选择针对数值型属性有失真的水印算法,并结合
其允许修改的范围配置水印算法参数。
c)从水印实施的透明性角度考虑,对数据特征影响小的水印算法优先级高于影响大的水印算法。
注:使用对数据特征影响小的水印算法,对数据的使用价值影响小,且对数据的改变不易引起攻击者注意。水印算
法对数据特征影响大小的判定方法,可按照嵌入前后数据的均值、标准差等指数的变化率大小判定,如:当水印容
|嵌入前均值−嵌入后均值||嵌入前标准差−嵌入后标准差|
量相同时,均值的变化率=、标准差的变化率=等指数越小,水印算法对数
嵌入前均值嵌入前标准差
据特征影响越小。
d)对于属性有特殊要求的数据集,如:属性值保持唯一性、不同属性间保持相同的比例/大小关
系、属性保持相同类别等特征,水印算法宜保持数据集的原本特征。
e)如果原始数据集含有可修改的文本型属性,可选择针对文本属性有失真的水印算法,并结合允
许修改的范围配置水印算法参数。
f)如果原始数据集不存在允许修改的属性,可选择无失真水印算法,或者使用基于伪行/伪列的
水印算法来嵌入水印。
g)使用基于伪行的水印算法时,伪行的数据格式、数据类型宜与原始元组保持一致;使用基于伪
列的水印算法时,伪列宜与原始属性列具有相关性,使不易被攻击者察觉。
h)对于实时性要求较高的业务场景,宜配置执行效率较高的水印算法。
i)从水印实施的鲁棒性考虑,可使用门限技术将水印信息分为多个水印分片,分别嵌入不同数据
集子集的方式嵌入水印信息。基于门限技术的水印算法示例参见附录A.4。
5
YD/TXXXX—XXXX
j)从水印实施的安全性考虑,宜配置安全性更高的水印算法。其中,抵御水印攻击能力越强的水
印算法安全性越高。
k)宜通过配置不同的嵌入比例参数,动态调节被嵌入水印的元组与所有元组的比例,使满足不同
业务需求。
注:通常的,嵌入比例越大,水印透明性越低,安全性与鲁棒性越高;嵌入比例越小,水印透明性越高,安全性与
鲁棒性越低。
l)由于单个水印算法能满足的特性有限,不同水印算法抵抗水印攻击的能力不同,可将多种水印
算法结合使用,使满足不同业务场景需求。不同水印算法抵御水印攻击的能力参见附录A。
m)结合具体业务场景的实施示例如下:
—在服务记录和日志数据中,如果时间属性的秒数位置的修改不影响数据的使用价值,可以
使用有失真水印算法将水印信息嵌入至时间属性的秒数位置。但在时间同步网系统中,时
间戳字段的精度要求较高,需要考虑其它可用的属性或者采用基于伪行/伪列的水印算法
以及无失真水印算法。
—在消费信息和账单数据中,消费金额字段的精度要求较高,不允许修改,可考虑其他可用
的属性,或者采用基于伪行/伪列等水印算法嵌入水印。若在不影响数据使用的情况下,
可向金额字段的最低有效位嵌入水印。
—在位置信息数据中,如果基站经纬度坐标小数位部分最低有效位的修改不影响数据的使用
价值,可以将水印信息嵌入到该位置,也可考虑采用基于伪行/伪列等水印算法嵌入水印
信息
—在用户基本信息数据(客户职业、工作单位、年龄、性别、籍贯、兴趣爱好等)中,多数
为文本型数据,对其修改将会影响数据的使用价值,可以采取基于不可见字符或基于伪行
/伪列等水印算法嵌入水印。
n)上述提及的常用水印算法参见附录A,常见水印攻击参见附录B。
8.2.4水印信息嵌入
水印信息嵌入的实施宜从水印实施的透明性、安全性、可检测性、鲁棒性、实施效率等因素考虑,
按照水印算法嵌入规则进行水印信息嵌入。具体如下:
a)从水印实施的安全性考虑,宜使用密钥将水印信息嵌入到原始数据集中指定数据对象的指定
位置,密钥的管理宜按照相关国家标准的要求实施;
b)可采取将水印信息编码为字节流,将字节流分别嵌入到数据集的方式嵌入水印信息;
c)从水印实施的效率考虑,宜采取任务并发机制实现水印信息嵌入,提高嵌入效率;
d)从水印实施的可检测性考虑,生成的水印数据宜保持与原始数据集相同的文件格式存储,便于
后续的传输、共享、发布以及水印提取等处理过程。
e)从水印实施的安全性与可检测性考虑,宜采取安全、便捷、高效的方式保存水印算法、水印嵌
入位置、水印含义等信息,便于水印提取时上述信息的获取。
8.3水印提取过程
8.3.1水印信息提取
水印信息提取过程按照水印算法提取规则,对待检测数据集进行水印信息提取。具体如下:
a)可通过对待检测数据集进行自动化预分析,确定应用的水印算法以及水印的嵌入的属性与位
置等信息;
b)宜采取不需要原始数据集和原水印信息的盲检测方式提取水印信息;
c)宜采取任务并发机制实现水印信息提取,提高提取效率;
d)对于采用字节流方式嵌入的水印信息,按照水印算法提取规则,提取待检测数据集中嵌入的水
6
YD/T×××××—××××
印字节流,通过对水印字节流进行解码,得到水印信息。
e)从水印实施的鲁棒性考虑,水印信息提取时,可采用多数投票原则或阈值规则判定水印信息取
值;
8.3.2水印含义识别
水印含义识别过程将提取的水印信息恢复成有意义的文字、图像、音频等,并识别出对应的含义,
便于后续的版权维权、数据溯源等。可建立水印信息含义映射表,通过该映射表与水印信息,识别出对
应的含义。如:在数据版权保护场景,根据水印信息能够确认版权归属,便于后续的数据版权维权等处
理流程;在数据泄露追踪溯源场景,根据水印信息能够确认数据泄露源头,便于后续的追责与保护等处
理流程。
注:基于无意义字符串的水印算法不需要水印含义识别过程。
7
YD/TXXXX—XXXX
附录A
(资料性)
常用水印算法
A.1常用水印算法概述
数字水印算法包括嵌入算法和提取算法,附录A主要介绍常见水印嵌入算法的实施思路,提取算
法为嵌入算法的逆过程。表A.1介绍了常用的结构化数据数字水印算法的主要思路,详细算法示例描述
见A.2-A.9。下述常用算法均可用于数据版权保护、数据泄露追踪溯源应用场景。
从表A.1中能够发现,不同的水印算法能够抵御的水印攻击类型不同,目前不存在能够抵御所有攻
击的水印算法,因此在实际场景应用中,可采取多种水印算法结合使用的方式。
表A.1常用水印算法介绍
序号算法名称算法描述算法特点
1基于无意此类算法假定数据集中的某些属性允许一定的误—有失真、不可逆、盲检测。
义字符串差,在其误差范围内修改数据不会影响数据的正常—由于嵌入的水印信息是无意义的比
的水印算使用。主要思路:特流,无需构建水印信息含义映射
法—首先使用哈希函数和密钥对主键值计算,选表,较简单,因而数据溯源时较低效。
择嵌入的元组;—适用于数值型数据。
—再选择可嵌入水印的属性及其具体位置;—依赖主键,不能抵御主键删除攻击
—最后将0、1水印序列嵌入到选择的属性值的—不能抵御最低有效位删除攻击
指定位置当中(如对该属性的最低有效位进
行修改,示例见A.2)。
提取时,由于水印的嵌入位置和水印信息是由用户
密钥k、主键P计算出来的,所以每个用户的水印
都不相同,从而通过水印可以识别出用户。
2基于排序此类算法使用单向哈希函数和密钥푘对数据集进行—有失真,不可逆、盲检测
分组的水排序、分组,将其划分为푛个不重叠的子集,然后—相比算法1,能够嵌入有意义的水印
印算法向每个子集指定位置嵌入水印比特值。(示例见信息,水印提取的效率更高。
A.3)—采用多数投票原则,能够抵御子集抽
水印提取时,在每个分组中按照多数投票原则提取取攻击、子集添加攻击。
每个水印比特值,最后解码所有水印比特值得到水
印信息。
3基于门限此类算法基于门限技术将水印信息拆分成푛个分片—可将该算法思想与其他水印算法结
技术的水进行嵌入。水印提取时,即使其中一部分分片丢失,合使用,增强水印算法鲁棒性。
印算法只要可以成功提取出不少于푡个分片(푡<푛),便可
以恢复出原水印信息。(示例见A.4)
4基于最高此类算法基于属性的最高有效位通常不会被修改—如果用于分组的数值属性被删除、修
有效位排的特点,选择一个或多个数值属性,按照其取值从改,提取时可能无法实现元组分组和
序的水印大至小排序,或者将多列属性的取值进行连接,再水印提取,故不能抵御属性删除攻
算法按照连接后取值排序和分组;然后将水印比特值分击。
别嵌入到各个分组中的指定位置。(示例见A.5)—在算法2的基础上改进,不依赖主
键,能抵御主键删除攻击。
5基于文本此类算法基于大部分水印信息被嵌入到数值型属—如果用于分组的文本属性被删除、修
属性哈希性中,即水印嵌入前后文本属性取值通常不会发生改,提取时可能无法实现元组分组和
8
YD/T×××××—××××
的水印算改变的特点,使用文本哈希值来确定水印嵌入位水印提取,不能抵御属性删除攻击。
法置。(示例见A.6)—在算法2的基础上改进,不依赖主
键,能抵御主键删除攻击
6基于伪行此类算法通过构造一些原始数据集中不存在的元—可逆、盲检测
的水印算组(伪行),然后将水印信息嵌入到这些元组当中。—对原始数据不损坏,但对数据统计结
法在提取水印时,提取伪行数据中的水印信息。(示果可能有损坏
例见A.7)—适用于文本型或数值型数据
7基于伪列此类算法通过构造一个原始数据集中不存在的属—可逆、盲检测
的水印算性(伪列,如虚拟ID),然后将水印信息嵌入到该—对原始数据、统计结果均不损坏,但
法属性之中。在提取水印时,提取伪列数据中的水印伪列数据不适用于精确数据查询
信息。(示例见A.7)—不能抵御属性删除攻击
—适用于文本型或数值型数据
8基于不可此类算法通过不可见字符标识水印信息,例如用回—无失真,不会修改原数据,对原数据
见字符串车符(\r)和换行符(\n)来分别标识0和1,将水的影响非常小。
的水印算印信息的比特流表示为回车符与换行符的组合,再—可逆、盲检测
法结合不同的嵌入方法将水印信息嵌入。(示例见—不能抵御格式化攻击。
A.8)—不依赖主键,能抵御主键删除
—适用于文本型或数值型数据。
9基于直方此类算法通过调整属性取值的直方图实现嵌入水—有失真
图的水印印信息。通过调整两个相邻的直条bin之间的大小—不依赖主键,能抵御主键删除攻击
算法关系嵌入水印比特值(如:调整为前者大于后者表—不能抵御属性删除攻击。
示比特“0”,后者大于前者表示比特“1”),调
整过程修改部分的直条bin的取值,相应的,修改
属性值。(示例见A.9)
A.2基于无意义字符串的水印算法示例
基于无意义字符串的水印算法是一种有失真水印算法,其典型示例是由RakeshAgrawal于2002年
首次提出的应用于数据库的数字水印算法[1]。该算法假定可以标记的数据库中的某些属性允许一定的
误差(比如时间中的秒等),在其误差范围内修改数据不会影响数据的正常使用,可以被修改的位置称
为最低有效位(LSB)。该算法针对数据库中的数值型属性,通过改变浮点型数据的冗余位来嵌入水印
信息。
假设数据集为퐷(푃,퐴1,퐴2,…,퐴푠),其中푃为主键,퐴푗(1≤푗≤푠)为属性值,假设퐴푗为数值型数据,퐴푗
的最低有效位为m,即改变其最低m位不会影响数据的正常使用。我们选取퐴푗为嵌入水印的属性,算
法的基本思想是:
a)确定原始数据集中要嵌入水印的元组比例1⁄푞;
b)输入哈希函数、用户密钥푘、元组主键푃,计算每个元组的哈希值퐻푀퐴퐶푘(푃),以及푝표푠=
HMAC푘(푃)푚표푑푛,进而判定哪些元组将被嵌入水印:如果当前元组的푝표푠等于0,则需要在该
元组的퐴푗属性字段中嵌入水印,计算水印的嵌入位푖푛푑푒푥=HMAC푘(푃)푚표푑푚,其中푚是퐴푗最低
有效位的二进制位数;
c)计算当前元组主键的哈希值ℎ=ℎ푎푠ℎ(푃),如果ℎ是偶数,将该元组퐴푗属性푖푛푑푒푥位的二进制数
置为0,如果ℎ是奇数则将푖푛푑푒푥位的二进制数置为1;
d)遍历所有的元组,按上述规则完成水印信息的嵌入。
由于水印的嵌入位置和水印信息是由用户密钥푘、主键푃计算出来的,所以每个用户的水印都不相
9
YD/TXXXX—XXXX
同,从而通过水印可以识别出用户。但由于嵌入的水印信息是无意义的比特流,因此数据溯源时较低效,
后续许多基于有意义字符串的水印算法陆续被提出。
A.3基于排序分组的水印算法示例
基于排序分组的水印算法的典型示例是R.Sion等人[2]提出的。其基本思想是:
1、将水印字符串编码为二进制比特流;
2、根据HMAC푘(푃)的值将元组按降序排序,其中푘为数据库私钥,푃为元组主键;
3、将水印的二进制比特流按序嵌入到元组属性的最低有效位中。
该算法优点是能够嵌入有意义的水印信息,因此水印提取的效率较嵌入无意义水印信息的算法更
高。后续大多数数据库水印在该算法分组思想基础上进行优化,使分组更合理,使水印比特值均匀分布
在不同子集中。
A.4基于门限技术的水印算法示例
基于门限技术的水印算法利用门限技术,将水印拆分为푛个分片嵌入,即使其中的一部分分片丢失,
只要可以取出完好的푡个分片,依然可以恢复出原水印。
假设数据库为퐷(푃,퐴1,퐴2,…,퐴푠),其中푃为数据库主键,퐴푗(1≤푗≤푠)为数据库属性,퐴푗为数值型数
据(比如时间、金额、经纬度等),假设퐴푗的最低有效位为푚,即改变其最低푚位不会影响数据的正常
使用。我们选取퐴푗为嵌入水印的属性,其基本思想是:
a)将水印信息编码为十进制字符流的形式;
b)使用门限算法将水印分为푛片,每一片都包含푚个十进制字符;
c)计算푝표푠=HMAC푘(푃)푚표푑푛,其中푘为数据库私钥,푛为水印分片数(1≤푖≤푛);
d)如果푝표푠等于푖,则将第푖个水印分片嵌入到元组属性的最低푚位。
在水印提取时,只需要遍历数据集,计算HMAC푘(푃)mod푛确定出水印所属的分片,然后提取퐴푗的
最低m位即可提取出一分片水印信息。只要成功提取出不少于푡个分片,就能通过门限技术将水印分片
还原出原始水印信息,因此基于门限技术的水印算法具有较好的鲁棒性。
A.5基于最高有效位排序的水印算法示例
基于最高有效位排序的水印算法是一种有失真水印算法,数字水印算法将水印嵌入在数值属性中,
为了保留数据库的使用价值,一般仅会修改数值属性值的最低有效位(LeastSignificantBit,LSB),而
不会修改它的最高有效位(Mostsignificantbit,MSB)。其基本思路如下:
a)选择一列数值属性按照其取值进行从大至小进行排序,或者将多列属性的取值进行连接为更
大的数值进行排序。选择原则是尽可能地使得一列或多列组合后的取值接近均匀分布。
b)根据排序结果,对取值区间划分为푛个不重叠的区间,每一个区间对应同一个分组。
c)类似于A.3,在同一个分组的各个LSB位置重复嵌入同一个比特信息。
A.6基于文本属性哈希的水印算法示例
基于文本属性哈希的水印算法是一种无需依赖主键的水印算法。基于大部分水印算法将水印比特
嵌入到数值属性中,即水印嵌入前后文本属性取值一般不会发生改变的特点,该算法采用文本哈希值来
确定水印嵌入位置。其主要思路如下:
a)选择一个或多个文本属性作为候选的Hash函数输入。选择原则是尽可能地使得一列或多列组
合后的取值均接近唯一性。
10
YD/T×××××—××××
b)通过密钥和文本属性列的取值,输入Hash函数퐻푀퐴퐶푘(푟푖.퐴1,..,푟푖.퐴푠),计算每个元组的哈希
值푀퐴퐶푖。
c)根据Hash值的取模结果푝표푠=푀퐴퐶푖푚표푑푛,对数据集划分为푛个不重叠的分组(同一Hash值
划分为同一组),并分别赋予分组编号0,1,…,푛−1,其中푛为原始水印的比特串长度。
d)在按顺序的分组中,依次嵌入水印信息的比特流。
e)对于任意的同一个分组,可采用重复嵌入方式,或者基于统计值的编码方式嵌入水印信息。水
印提取过程可采用多数投票或阈值规则提取水印。
由于该算法采用文本哈希值来确定水印嵌入位置,而不依赖主键确定水印嵌入位置,能够抵御主键
删除攻击。
A.7基于伪行/伪列的水印算法示例
基于伪行/伪列的水印算法是一种有失真水印算法,通过在原数据集上添加冗余元组(伪行)或者
冗余属性(伪列)的方式来实现水印的写入。
其基本思想如下:
a)数据集为퐷(푃,퐴1,퐴2,…,퐴푠),选取适合嵌入水印的属性퐴푗;
b)编码水印并使用门限算法将水印分为푛片;
c)计算푝표푠=HMAC푘(푃)푚표푑푛,其中푘为数据库私钥,푛为水印分片数;
d)按照푝표푠值将数据集分组,在每个分组内将数据按HMAC푘(푃)排序;
e)遍历所有数据集,如果pos等于푖,则在第푖组数据集前伪造一个新的元组,将第푖个水印分片写
入新元组的属性퐴푗中。
基于伪列的水印算法的基本思想:通过构造一个原始数据集中不存在的属性(比如一个虚拟的ID),
然后将水印信息嵌入该伪列中。在提取水印时,提取伪列数据中的水印信息。
A.8基于不可见字符的水印算法示例
基于不可见字符的水印算法是一种无失真水印算法,通过不可见字符来标识水印,例如用回车符(\r)
和换行符(\n)来分别标识0和1,这样水印的比特流就可以表示为回车符与换行符的组合,然后结合
不同水印算法,将不可见字符组合嵌入到数据库中,从而实现水印信息的嵌入。该算法的优点是不会修
改原数据,对原数据的影响非常小,缺点是无法抵御格式化攻击。
例如,待嵌入的水印为“ALICE”,ASCII二进制编码为“01000001…01101001”,用回车换行符来
表示为“\r\n\r\r\r\r\r\n…\r\n\n\r\n\r\r\n”。
A.9基于直方图的水印算法示例
基于直方图的水印算法通过调整数据库属性(一般为数值属性)取值的直方图实现嵌入水印信息。
其主要思路如下:
a)选择待嵌入的数值属性列,统计其直方图。选择原则尽可能选择直方图范围宽的属性列。
b)直方图中每两组相邻的直条bin之间,嵌入一个水印比特。
c)通过调整两个相邻的直条bin之间的大小关系(前者大于后者,后者大于前者)嵌入水印比特
“0”或“1”,调整过程修改部分的bin的取值。相应的,将数据库属性值进行修改。为了增
强鲁棒性,需使得两个bin的差值绝对值大于设定的阈值∆。
d)按照bin的大小顺序,逐个嵌入所有的水印比特值。
11
YD/TXXXX—XXXX
12
YD/T×××××—××××
附录B
(资料性)
常见水印攻击类型
数据集嵌入水印信息后,可能会受到各类攻击,这些攻击可能导致水印信息被损坏而失效。攻击的
目的是破坏原始嵌入的水印信息,或将原始水印信息替换为携带攻击者版权信息的水印。下面介绍针对
结构化数据数字水印的几种常见攻击手段。
a)子集抽取攻击
子集抽取攻击也称为元组选择攻击,指攻击者抽取水印数据中一部分数据来使用而进行的攻击。比
如对于一张包含10000条数据的数据表,攻击者只泄露其中前5000条数据。通过这种攻击,水印信息
可能会被损坏而无法正确提取。
b)子集添加攻击
子集添加攻击也称为元组添加攻击,指攻击者在水印数据的基础上又添加了一些新的数据,以此来
擦除水印。
c)属性攻击
属性攻击是指攻击者针对属性进行的攻击。该攻击主要包括属性更改攻击、属性删除攻击、属性添
加攻击以及属性重组攻击四类。对于添加了水印的数据集,随机替换、删除、添加或重组某些属性的值,
通过这样的方法来尝试擦除水印信息。
d)最低有效位删除攻击
最低有效位删除攻击是一种针对数值型水印的攻击手段,通过删除水印数据中所有数值型属性的
最低有效位来实现。
e)格式化攻击
格式化攻击是指攻击者对水印数据进行格式化,删除元组中的不可见字符以及一些没有实际意义
的字符。
f)乱序攻击
乱序攻击指通过打乱水印数据中元组顺序进行的攻击。
g)虚拟水印攻击
虚拟水印攻击指攻击者通过添加虚假的水印来宣称自己对该数据库的版权所有。比如:攻击者在已
经盗版的数据库中发现一个虚构的水印,于是就对外声称自己是该数据库的合法拥有者,以此来证明自
己对数据的所有权,可是该水印只是虚假信息或随机信息。
h)水印添加攻击
水印添加攻击,也称为重复水印攻击,指在原水印基础上再次添加新的水印,以覆盖原水印信息。
比如:用户A向数据库申请了一个数据集使用,但A是一个不诚实的用户,他想将该数据集泄露出去
换取利益,在泄露之前,A尝试在该数据集中嵌入用户B的水印信息,来让追踪者误以为是B泄露了
数据。
i)主键删除攻击
主键删除攻击指攻击者通过删除原有的主键,或者将其替换成伪造的主键进行的攻击。对于依赖主
键的数字水印算法,主键删除攻击使得水印提取时无法正确定位到水印的嵌入位置以及获得正确的嵌
入顺序,进而导致水印提取失败。
j)水印绕过攻击
水印绕过攻击指攻击者通过分批次下载或导出小数据量的数据集,以达到绕过或逃过水印嵌入流
程的目的。即对于一类水印算法的嵌入流程的具体实现,需要导出足够的元组(足够的嵌入空间)才能
完成一次水印信息嵌入,否则水印嵌入失败。例如某水印系统嵌入的水印信息为100比特,至少需要
1000行数据记录作为嵌入载体才能成功完成一次水印嵌入,否则无法实施完整的水印信息嵌入流程。
那么攻击者会利用这个机制实现水印嵌入的绕过,比如攻击者分批次下载1000行,下载100次,每次
13
YD/TXXXX—XXXX
下载10行,从而得到无水印嵌入的数据,使得水印系统的嵌入和溯源功能失效。
k)合谋攻击
合谋攻击指若干合法用户试图通过比较各自接收到的水印数据,从而识别、去除数字水印的行为。
参与合谋的人越多,攻击的成功机率就越大。
l)混合攻击
攻击者盗取多份含有水印信息的数据文件混合在一起,形成新的数据文件,提取水印过程中不同水
印信息之间互相冲突,并且使检测出的每个水印片段的比例低于阈值,水印片段之间无法正常组合,进
而无法溯源出所属用户。
14
YD/T×××××—××××
附录C
(资料性)
实施场景分析
C.1数据从平台批量导出
数据从平台通过对外接口批量导出时,能够以指定格式的数据文件向外批量导出。针对此实施场景,
可在导出接口处部署数字水印能力,在数据文件导出前,对数据文件实施水印嵌入流程,水印嵌入完成
后,再将含有水印信息的数据文件导出。若导出的数据量较大,则水印嵌入过程在一定程度上会影响数
据导出的时间。
C.2数据向平台上传
在将数据上传至数据平台、第三方机构等场景,可在平台入口处部署数字水印能力。在数据上传前,
对数据实施水印嵌入流程,水印嵌入完成后,再将水印数据上传至平台。若上传的数据量较大,则水印
嵌入过程在一定程度上会影响数据上传的时间。
C.3数据实时查询
在通过数据平台实时查询数据的实施场景中,数据查询结果通过平台对外接口从数据库传输到平
台前端,返回给数据使用者。针对此场景,可在对外接口处部署数字水印能力,在数据导出前,对数据
实施水印嵌入流程。水印嵌入完成后,再将水印数据导出至平台前端。该场景对水印嵌入实时性要求较
高,若返回的数据量较大,则水印嵌入过程在一定程度上会影响数据导出的时间。
15
YD/TXXXX—XXXX
附录D
(资料性)
应用场景介绍
D.1数据版权保护
数据版权保护场景如图D.1所示,在此场景中:
a)数据拥有者上传原始数据集,数据处理者将标识数据拥有者身份信息的水印信息x通过水印算
法嵌入到原始数据集中,并将版权归属信息存储于可信的版权管理机构,然后进行正版数据发
布。
b)当该正版数据被盗版、出现版权纠纷时,从被盗版的数据中通过水印算法提取水印信息,并与
版权管理机构登记的进行核对,判定版权归属,从而保护数据拥有者合法权益。
数据拥有者X数据处理者
盗版者Y
发布盗版
原始嵌入水印x正版数据盗取盗版数据
数据
数据集
登记提取水印
可信的版权管理机构核对水印x
版权归属于X
图D.1数据版权保护场景
D.2数据泄露追踪溯源
数据泄露追踪溯源场景如图D.2所示,在此场景中:
a)数据处理者首先将标识合作方身份信息的不同水印信息푥1,⋯,푥푛−1,푥푛,通过水印算法分别嵌
入到原始数据集中,然后分别进行数据共享或发布。
b)如果共享或发布的数据发生泄露,则通过水印算法提取泄露数据中的水印信息,识别水印信息
对应的标识信息,定位泄露者。
16
YD/T×××××—××××
含水印x1
的数据集
嵌入水印x1合作方1
嵌入水印x
原始水印x1提取水印泄露数据
数据集?
数据处理者X
嵌入水印xn-1
含水印xn-1
的数据集
嵌入水印xn
合作方n-1
含水印xn
的数据集
合作方n
图D.2数据泄露追踪溯源场景
17
YD/TXXXX—XXXX
参考文献
[1]RakeshAgrawal,JerryKiernan.WatermarkingRelationalDatabase.In:Proceedingof
the28thVLDBConference,2002.
[2]RaduSion,MikhailAtallah,SunilPrabhakar.Rightsprotectionforrelationaldata.
In:ACMSIGMODInternalConference,2003.
[3]黄德才,姚瑶等.基于(t,n)门限的关系型数据库水印算法.计算机应用与软件,2009.
_________________________________
18
YD/T×××××—××××
目次
前言......................................................................................................................................................................II
1范围..................................................................................................................................................................1
2规范性引用文件..............................................................................................................................................1
3术语和定义......................................................................................................................................................1
4缩略语................................
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 推门听课活动方案
- 加油站基础工程施工方案
- 2024-2030年硅烷改性聚醚行业市场现状供需分析及投资评估规划分析研究报告
- 2024-2030年石油和天然气用双截止阀和放气阀行业市场现状供需分析及投资评估规划分析研究报告
- 2024-2030年直流整流器行业市场现状供需分析及投资评估规划分析研究报告
- 2024-2030年皮旅行包行业市场发展分析及发展趋势与企业管理研究报告
- 2024-2030年痛经贴行业发展分析及投资价值研究咨询报告
- 2024-2030年电烤箱行业市场发展分析及发展趋势前景预测报告
- 2024-2030年电切电极行业市场现状供需分析及投资评估规划分析研究报告
- 2024-2030年生物铁蛋白行业市场现状供需分析及投资评估规划分析研究报告
- 招贴设计 课件完整版
- 《材料科学基础》课后答案(1-7章)
- DB32-T 2888.1-2016江苏省国家教育考试标准化考点建设技术标准 第1部分-总则-(高清现行)
- 河南科学技术出版社小学信息技术三年级上册教案
- 酒店员工月份工资表
- 消费者需求动机与价值理论课件
- 最新培训机构学员报名表模板
- 服饰礼仪(PPT48页)
- 07FK02防空地下室通风设备安装PDF高清图集
- 三甲医院(三级甲等)建设标准新
- 2022年企业负责人及安全管理人员培训课件
评论
0/150
提交评论