(完整word版)基于MATLAB的数字水印算法实现
(完整word版)数字水印
摘要随着计算机通信技术的迅速发展,传播数字多媒体信息也越来越方便快捷,迅速兴起的互联网以电子印刷出版、电子广告、数字仓库和数字图书馆、网络视频和音频、电子商务等新的服务和运作方式为商业、科研、娱乐等带来了许多机会。
然而,随之而来的盗版和侵权行为也越来越猖獗,对数字产品的保护和信息安全的迫切需求使得数字水印技术成为多媒体信息安全研究领域的一个热点问题.数字水印可以标识作者、所有者、发行者、使用者等并携带有版权保护信息和认证信息,保护数字产品的合法拷贝和传播.数字水印技术近年来得到了较大的发展,基于变换域的水印技术是目前研究的热点。
数字水印是利用数字作品中普遍存在的冗余数据和随机性,把标识版权的水印信息嵌入到数字作品中,从而可以起到保护数字作品的版权或其完整性的一种技术.本文首先介绍了数字水印的背景、意义以及目前国内外的研究现状等基本问题,接着介绍了数字水印的基本特征、原理,随后介绍了数字水印的基本框架和数字水印的分类,为数字水印算法的提出、实现及测试提供了理论依据。
介绍了一种基于DCT的数字水印嵌入算法以及一种基于小波变换的数字水印嵌入算法,使用MATLAB设计了实验方案。
关键字:数字水印Matlab DCT 小波变换AbstractWith the rapid development of computer communication technology, the spreadof digital multimedia information more and more convenient, rapid rise of Internet publishing electronic printing,electronic advertising, digital storage and digital libraries, online video and audio, e-commerce and other new servicesmany opportunities for commercial,research,entertainment,and mode of operation。
基于Matlab仿真的数字水印技术
体 有 可 能 在 没有 得 到作 品所 有 者 的 许 可 下 复 制 和传 播 有 版 权 的 信 息 ,以此 来谋 取 利 益 ,大大 地侵 犯 了数 字作 品原 有者 的利 益 。
数 字 化 技 术 本 身 的 可 复 制 和 广 泛 传 播 的特 性 带 来 的 负 面 效 应 ,
道 数 字水 印算 法 ( 包 括嵌 入 和提 取 算 法 ) 的情 况 下 ,恶 意 地 进 行 各 种攻 击 操 作 ,试 图 实 现 未经 授 权 的嵌 入 、提 取 或 检 测 、删 除 水 印 等 时 ,依 然 可 以 保证 水 印 的正 确 。
2 _ 2 _ 2可证 明性
只有 专用 的 检测 器或 计算 机 软件 才可 以检 测 出隐 藏 的数字 水 印 。 在 多媒 体 中加 入数 字 水 印可 以确 立 版 权 所 有 者 、认 证 多媒
电 子 商 务 认 证 、 医 学 影 像 技 术 等 方 面 具 有 十 分 广 阔 的 应 用 前 景 。 虽然 数 字 水 印 技 术 还处 于发 展 之 中 ,但 是 不 久 的 未 来 ,数 字水 印技 术 的市 场 将会 更 加 广 阔 。
完 全 和 可靠 的证 据 。 水 印算 法 能 够 识 别 被 嵌 入 到 保 护 对 象 中 的 信 息 ,并 能在 需 要 的 时 候将 其 提 取 出来 。水 印可 以用 来 判 别 对 象 是 否 受 到保 护 .并 能 够监 视被 保 护 数 据 的传 播 、真 伪 鉴 别 以 及 非 法拷 贝控 制 等 。
置 ,实现数 字信 息的嵌 入 。使 用 DCT方 法获得 的水 印通常 具有很好 的不可见 性和鲁 棒性 ,并能 够
抵抗 诸如 I P E G压 缩等 攻击 手段
基于Matlab的数字水印设计——基于空域的水印实现
摘要数字水印(Digital Watermarking)技术是我们生活中经常见到的信息隐藏技术。
它将一些标识信息(即数字水印)直接嵌入数字载体中,但不影响原载体的使用价值,也不容易被人的知觉系统觉察或注意到。
空间数字水印是信息隐藏技术的一个重要研究方向,另一类是频率数字水印。
空间数字水印采用最低有效位(LSB)算法,通过修改表示数字图像的颜色或颜色分量的位平面,调整数字图像中感知不重要的像素来表达水印的信息,以达到嵌入水印的目的。
本实验是基于matlab的数字水印设计——基于空域的水印实现。
关键词:信息隐藏技术;空间数字水印; LSB算法;matlab目录1 设计任务与目的 (1)2 MATLAB的简介及应用 (1)2.1 MATLAB简介 (1)2.2 MATLAB应用 (1)3 数字水印技术 (2)3.1 数字水印技术的发展 (2)3.2 水印分类 (2)3.3 数字水印的特点 (3)3.4 数字水印技术的基本原理 (4)4 基于LSB的数字水印算法 (5)4.1 LSB算法原理 (5)4.2 LSB算法的实现 (6)4.2.1 水印嵌入算法 (7)4.2.2 水印提取算法 (9)5 MATLAB软件仿真 (11)5.1 仿真结果 (11)5.1.1 水印嵌入仿真 (11)5.1.2 水印提取仿真 (12)5.2 仿真分析 (13)结论 (14)参考文献 (15)基于Matlab的数字水印设计——基于空域的水印实现1 设计任务与目的(1)通过课程设计把自己在大学中所学的知识应用到实践当中。
(2)在课程设计的过程中掌握程序编译及软件设计的基本方法。
(3)深入了解利用Matlab设计基于Matlab的数字水印设计——基于空域的水印实现。
(4)提高自己对于新知识的学习能力及进行实际操作的能力。
(5)锻炼自己通过网络及各种资料解决实际问题的能力。
2 MATLAB的简介及应用2.1 MATLAB简介MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
(完整word版)含答案《MATLAB实用教程》
第二章 MATLAB 语言及应用实验项目实验一 MATLAB 数值计算三、实验内容与步骤1.创建矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321a(1(2)用(3)用(42.矩阵的运算(1)利用矩阵除法解线性方程组。
⎪⎪⎩⎪⎪⎨⎧=+++=-+-=+++=+-12224732258232432143214321421x x x x x x x x x x x x x x x 将方程表示为AX=B ,计算X=A\B 。
(2)利用矩阵的基本运算求解矩阵方程。
已知矩阵A 和B 满足关系式A -1BA=6A+BA ,计算矩阵B 。
其中⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=7/10004/10003/1A ,Ps: format rata=[1/3 0 0;0 1/4 0;0 0 1/7];b=inv(a)*inv(inv(a)-eye(3))*6*a(3)计算矩阵的特征值和特征向量。
已知矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=1104152021X ,计算其特征值和特征向量。
(4)Page:322利用数学函数进行矩阵运算。
已知传递函数G(s)=1/(2s+1),计算幅频特性Lw=-20lg(1)2(2w )和相频特性Fw=-arctan(2w),w 的范围为[0.01,10],按对数均匀分布。
3.多项式的运算(1)多项式的运算。
已知表达式G(x)=(x-4)(x+5)(x 2-6x+9),展开多项式形式,并计算当x 在[0,20]内变化时G(x)的值,计算出G(x)=0的根。
Page 324(2)多项式的拟合与插值。
将多项式G(x)=x 4-5x 3-17x 2+129x-180,当x 在[0,20]多项式的值上下加上随机数的偏差构成y1,对y1进行拟合。
对G(x)和y1分别进行插值,计算在5.5处的值。
Page 325 四、思考练习题1.使用logspace 函数创建0~4π的行向量,有20个元素,查看其元素分布情况。
Ps: logspace(log10(0),log10(4*pi),20) (2) sort(c,2) %顺序排列 3.1多项式1)f(x)=2x 2+3x+5x+8用向量表示该多项式,并计算f(10)值. 2)根据多项式的根[-0.5 -3+4i -3-4i]创建多项式。
matlab数字水印嵌入与提取代码
数字水印技术是一种用于保护数字信息安全和保护知识产权的重要技术手段。
Matlab作为一种强大的数学计算软件,具有丰富的数字信号处理和图像处理工具包,能够很好地支持数字水印的嵌入和提取。
本文将介绍如何使用Matlab进行数字水印的嵌入和提取,并给出相应的代码实现。
1. 数字水印嵌入数字水印嵌入是将一段隐藏的信息嵌入到载体中,使得这段信息对于一般观察者来说是不可察觉的。
在Matlab中,可以使用一些图像处理工具进行数字水印的嵌入。
需要读入载体图像和待嵌入的数字水印。
载体图像可以使用Matlab 中的imread函数进行读取,得到一个包含图像像素信息的矩阵。
待嵌入的数字水印可以是一段文本、一幅小型图像或者一段音频信号。
接下来,可以选择合适的嵌入算法进行数字水印的嵌入。
常用的算法包括LSB替换算法、DCT变换算法以及扩频水印算法等。
这些算法都可以在Matlab中找到相应的实现。
将得到的嵌入水印后的图像保存起来,成为带有数字水印的图像。
可以使用Matlab中的imwrite函数将处理后的图像保存到本地。
2. 数字水印提取数字水印提取是将嵌入在载体中的数字水印提取出来,还原成原始的水印信息。
在Matlab中,可以利用数字信号处理和图像处理工具进行数字水印的提取。
需要读入带有数字水印的载体图像。
同样可以使用Matlab中的imread函数进行读取。
接下来,根据数字水印嵌入时所采用的算法,使用相应的提取算法进行数字水印的提取。
提取算法通常与嵌入算法是对应的,可以在Matlab中找到相应的实现。
将提取得到的数字水印展示出来,可以是一段文本、一张图像或者一段音频信号。
在Matlab中可以利用文本处理工具、图像处理工具和音频处理工具展示提取得到的数字水印信息。
3. 示例代码以下是一个简单的示例代码,演示了如何在Matlab中进行数字水印的嵌入和提取:数字水印嵌入image = imread('carrier_image.jpg'); 读入载体图像watermark = imread('watermark_image.jpg'); 读入待嵌入的数字水印watermarked_image = embed_watermark(image, watermark); 使用embed_watermark函数进行数字水印的嵌入imwrite(watermarked_image, 'watermarked_image.jpg'); 保存带有数字水印的图像数字水印提取watermarked_image = imread('watermarked_image.jpg'); 读入带有数字水印的载体图像extracted_watermark = extract_watermark(watermarked_image); 使用extract_watermark函数进行数字水印的提取imshow(extracted_watermark); 展示提取得到的数字水印信息以上代码中,embed_watermark和extract_watermark分别是数字水印的嵌入和提取函数。
基于Matlab的数字音频水印量化算法
_
4 = i p/ 2 p+ 2
Bt 2p -p/ , i , 1 2 … = i 2 =O+ , , - ±
当水 印 信息 为 1 。 化为 与 之 时 量
最 接 近 的 A类 的 中点 。 之 。 化 为 反 量
ed n
%其 中 D 为量 化 系数 . 本文 取 值 00 5 . 。 3
7 进 行 反 D T变 换 1 C
c3 ic c3; a=dt a) (
8 将 小 波 高频 系数 c 1c2 c 3与 含 有水 印 的 小 波低 频 系 1 d 。d 。d 数 c 3进行 逆小 波 变 换 . 到 含 有 水 印 的 音 频段 。 a 得
段 长进 行 取 下 整 操 作 。 作 为 数 字 媒 体 作 品 知 识 产权 保 护 的 一 种 有 效 手 段 。数 字 水 l n s = ore_ a/) e e f o0n w v ; gl m 4 对 每一 段 音 频 进 行 小 波基 为 ”b ” 1 d l 的三 层 小 波 变 换 . 别 分 印 得 到 了 广 泛关 注 . 已 成 为 国 际学 术 界 研 究 的 一 个 热 点 。 数 并 而 得 到 低频 系数 和高 频 系 数 。设 一 段 音 频 段 为 B O K LC . 字 水 印技 术 涉 及 到 大 量 图像 , 频 处 理 算 法 、 学 计 算 工 具 等 , 音 数 如 果 仅 仅采 用 普 通编 程 工 具 所 提 供 的功 能 来 实 现 将 花 费 大 量 的 【1 w vd c L C , " 1 ; c ] ae e( O K3 d ,= B ,b %提 取 3级 小 波 分 解 的低 频 系 数 和 高 频 系数 : 时 间 在 上 述 算 法 的编 程 及 调 制 上 。 此 。 用 一 种 高 性 能 的 科 学 因 采 与 工 程 计 算 软 件 是 很 有 必 要 的旧。 Maa t b是 当 前 在 国 内外 十 分 l c3 apof ," l 3 a= lee( ld ) S c,b ,; 流 行 的 工 程 设 计 和 系 统 仿 真 软 件 包 。它 是 Ma Wok t rs公 司 于 h c 3 d t e(l ) d = e of , ; c e, 3 . 18 9 2年 推 出的 一套 高性 能 的数 值 计 算 和 可 视 化 软 件 .它 提 供 的 c 2 dtof ,2; d = e e(l ) c c, 图 像处 理 工具 箱 、 波 分 析工 具 箱 、 字 信 号 处 理 工 具 箱 是 实 现 小 数 c l dtof ,1; d= e ec, c (l) 数 字水 印技 术 非 常好 的选 择 。 利用 上 述 算 法 编 写 的 程 序 。 需 几 只 5 对 低 频 系数 进 行 DC 1 T变 换 十 条语 句 便 可 实 现 数 字 水 印。 而这 些 程 序 如 果 用 C语 言 或 其他 e3 dt a) a = e e3; ( 高 级语 言编 写 程 序 至 少 在 l0行 以 上 本 文 针 对 数 字 音 频 水 印 O 6 选 取 D T系数 中 的 低 中频 系 数 进 行水 印嵌 入 , 文 采 取 1 C 本 本 身 的特 点 . 绍 了 M t b在 数 字音 频水 印技 术 中 的应 用 。 介 al a 每 一 段 音 频 嵌 入一 行 水 印的 策 略 . 用 此 举 . 需 将 二 维 的 水 印 应 无 2 基于 D . WT 的数 字 音 频 水 印 的 基本 原 理 转 换 为 一 维 。 高 了程 序 的效 率 。其 中 i 示 第 i 音 频 中 嵌 入 提 表 段 本 文 以 直 观 丰 富 的二 值 图像 作 为水 印信 号 将 宿 主 音 频 根 第 i 水 印 信 息 行 据 图像 水 印 的 大 小 进 行 均 匀 分 段 。 后 对 每 一 段 音 频 进 行 H 层 然 f j1 o =: r n 小 波 变 换 (W r D )后 取 其 部 分 低 频 系 数 并 进 行 离 散 余 弦 变 换 tm =l rc3 )D ; e p f o( a() ) o ( j/ ( C ) 到 部 分 低 中频 系 数 厂将 水 印 信 息 量 化 嵌 入 其 中 广 , D T得 , 得 i(o ( m , = wi) fm dt p2 = ( ) e ) , j 到 表 示 量 化 处 理 后 的小 波 系 数 。 示 量 化 间隔 , 量 化 修 改 系 P表 则 c 3 )tm + /; a(=e p D D 2 j es le 数 嵌 人 数 字 水 印过 程 如 下 : 按 照量 化 间 隔 P。 部 分 低 频 系数 , 在 的坐 标 轴 分 割 成 A 将 . 所 c3j tm - /; a (=e p D D2 ) 类 ( 类 ) B类 ( 1 和 0类 ) 。其 对 应 值 分别 为 ed n
基于MATLAB的数字水印技术实现
ira e r ed iwi m re t iso m hw
读 映像 图像 图像 文件 的保 存 显示 图像
ma t 2
ga ry mm2 dt c 2 dt c 2
d t w2 i t d 2 w w vdc aee2 w vrc aee2 i m i m2
快 速 离 散 傅 立 叶 变 换 2维 快 速 离 散傅 立 叶 变换 2维 离 散余 弦 变换 2维 离 散 余 弦 反 变换
号进 行频 域反 变换 (D I WT、 T、 F WP , 到 I DC D T、 ) 得
含有 水 印信 息的信号 。
收 搞 日期 :0 7 O — 2 20 一 1 1
作 者 简 介 : t E17 一, , 徽巢 湖人 。 陵学 院电 气 工程 系教 师 。安徽 大 学 20 : Ud ( 7 ) 安 E 9 女 铜 0 4级 硕 士研 究 生 , 究 方 向 : 能 研 智 信号处理。
实用工具一 T A MA L B。
2 数 字水 印技术
以正常 使用 内嵌 水 印 的数字产 品 . 如有 非法 盗 用 行 为 . 很 容 易 被 发现 或 查 处 , 效 维 护 了所 有 则 有 者 的权 益 . 防止和 打击 了盗用 者 的非法行 为 。
22数 字水 印的一般 模型 .
M TA A L B被 广泛应 用 于数 值计 算 、 字信 号 数 处 理 、 统识 别 、 系 自动 控 制 、 经 网 络控 制 、 神 图形 图像 等诸 多领域 【 l 】 。
究 中的常用 函数 ( 1 。 表 )
表 1常用 函数 汇总
la od
SaVe
将 } m t 件读 入工 作 空 间 。 a文 将 } m t 件 写 入磁 盘 。 a文 根 据 矩 阵 数 据 创 建 灰 度 图像
matlab数字水印算法及实现和源代码
1.数字作品的知识产权保护----数字作品(如电脑美术、扫描图像、数字音乐、视频、三维动画)的版权保护是当前的热点问题。
由于数字作品的拷贝、修改非常容易,而且可以做到与原作完全相同,所以原创者不得不采用一些严重损害作品质量的办法来加上版权标志,而这种明显可见的标志很容易被篡改。
----“数字水印”利用数据隐藏原理使版权标志不可见或不可听,既不损害原作品,又达到了版权保护的目的。
目前,用于版权保护的数字水印技术已经进入了初步实用化阶段,IBM公司在其“数字图书馆”软件中就提供了数字水印功能,Adobe公司也在其著名的Photoshop软件中集成了Digimarc公司的数字水印插件。
然而实事求是地说,目前市场上的数字水印产品在技术上还不成熟,很容易被破坏或破解,距离真正的实用还有很长的路要走。
2.商务交易中的票据防伪----随着高质量图像输入输出设备的发展,特别是精度超过 1200dpi 的彩色喷墨、激光打印机和高精度彩色复印机的出现,使得货币、支票以及其他票据的伪造变得更加容易。
----另一方面,在从传统商务向电子商务转化的过程中,会出现大量过度性的电子文件,如各种纸质票据的扫描图像等。
即使在网络安全技术成熟以后,各种电子票据也还需要一些非密码的认证方式。
数字水印技术可以为各种票据提供不可见的认证标志,从而大大增加了伪造的难度。
3.证件真伪鉴别----信息隐藏技术可以应用的范围很广,作为证件来讲,每个人需要不只一个证件,证明个人身份的有:身份证、护照、驾驶证、出入证等;证明某种能力的有:各种学历证书、资格证书等。
国内目前在证件防伪领域面临巨大的商机,由于缺少有效的措施,使得“造假”、“买假”、“用假”成风,已经严重地干扰了正常的经济秩序,对国家的形像也有不良影响。
通过水印技术可以确认该证件的真伪,使得该证件无法仿制和复制。
4.声像数据的隐藏标识和篡改提示----数据的标识信息往往比数据本身更具有保密价值,如遥感图像的拍摄日期、经/纬度等。
基于Matlab的数字水印设计――基于DCT域的水印实现
基于Matlab的数字水印设计――基于DCT域的水印实现沈阳理工大学数字图像处理课程设计摘要数字水印(Digital Watermark)技术是指用信号处理的方法在数字化的多媒体数据中嵌入隐蔽的标记,这种标记通常是不可见的,只有通过专用的检测器或阅读器才能提取。
数字水印是信息隐藏技术的一个重要研究方向。
随着数字水印技术的发展,数字水印的应用领域也得到了扩展,数字水印的基本应用领域是版权保护、隐藏标识、认证和安全不可见通信。
当数字水印应用于版权保护时,潜在的应用市场在于电子商务、在线或离线地分发多媒体内容以及大规模的广播服务。
数字水印用于隐藏标识时,可在医学、制图、数字成像、数字图像监控、多媒体索引和基于内容的检索等领域得到应用。
数字水印的认证方面主要ID卡、信用卡、ATM卡等上面数字水印的安全不可见通信将在国防和情报部门得到广泛的应用。
本文主要是根据所学的数字图象处理知识,在MATLAB环境下,通过系统编程的方式,建立并实现基于DCT域的数字水印加密系统。
该系统主要包含数字水印的嵌入与提取,仿真结果表明,数字水印算法具有有效性、可靠性、抗攻击性、鲁棒性和不可见性,能够为数字媒体信息在防伪、防篡改、认证、保障数据安全和完整性等方面提供有效的技术保障。
关键词:数字水印;MATLAB;DCTI沈阳理工大学数字图像处理课程设计目录1 课程设计目的 ........................................................................... ............................... 1 2 课程设计要求 ........................................................................... ............................... 2 3 数字水印技术基本原理 ........................................................................... (3)3.1 数字水印基本框架 ........................................................................... ............. 3 3.2 算法分类 ........................................................................... .. (3)3.2.1 DCT法 ........................................................................... ...................... 4 3.2.2 其他方法 ........................................................................... ................... 4 3.3 实际需要考虑的问题 ........................................................................... (4)3.3.1 不可见性 ........................................................................... ................... 4 3.3.2 鲁棒性 ........................................................................... ....................... 5 3.3.3 水印容量 ........................................................................... ................... 5 3.3.4 安全性 ........................................................................... .. (5)4 基于DCT变换仿真 ........................................................................... (6)4.1 算法原理 ........................................................................... .. (6)4.1.1 准备工作 ........................................................................... ................... 6 4.1.2 选取8*8变换块 ........................................................................... ....... 7 4.1.3 边界自适应 ........................................................................... ............... 7 4.1.4 DCT变换与嵌入 ........................................................................... ...... 7 4.1.5 恢复空域 ........................................................................... ................... 8 4.2 嵌入算法扩展 ........................................................................... (8)4.2.1 RGB彩色图像三个矩阵的划分 ........................................................ 8 4.2.2 八色彩色水印 ........................................................................... ........... 8 4.3 水印的提取 ........................................................................... ......................... 9 4.4 仿真程序 ........................................................................... ............................. 9 5 结果分析 ........................................................................... ..................................... 14 结束语 ........................................................................... ............................................... 16 参考文献 ........................................................................... . (17)II沈阳理工大学数字图像处理课程设计1 课程设计目的数字水印技术是用信号处理的方法在数字化的多媒体数据中嵌入隐蔽的标记,这种标记通常是不可见的,只有通过专用的检测器或阅读器才能提取。
(完整word版)信息隐藏实验七DCT域图像水印
实验七DCT域图像水印(一)实验目的了解频域水印的特点,掌握基于DCT系数关系的图像水印算法原理,设计并实现一种基于DCT域的图像水印算法。
(二)实验环境1、W indows xp操作系统2、M atlab 7.1版本软件3、B MP图像(三)实验原理1、嵌入信息利用载体中两个特定DCT系数的相对大小来表示隐藏的信息。
载体图像分为8*8分块,进行二维DCT变换,分别选择其中的两个位置,比如用(u1, v1)和(u2,v2)代表所选定的两个系数的坐标。
如果Bi (u1,v1)<Bi (u2,v2),代表隐藏了1;如果相反,贝U交换两系数。
如果Bi (u1,v2)>Bi (u2,v2),代表隐藏0;如果相反,则交换两系数2、提取信息提取的时候接收者对包含水印信息的图像文件进行二维DCT变换,比较每一块中约定位置的DCT系数值,根据其相对大小,得到隐藏信息的比特串,从而恢复出秘密信息。
3、特殊处理引入一个Alpha变量对系数的差值进行控制,将两个系数的差值放大,可以保证提取秘密信息的正确性。
(四)实验步骤1、嵌入秘密信息。
2、提取秘密信息。
(五)实验截图1、图像显示截图原始图像 嵌入水印图像结果:所隐藏的信息为‘ 0123456789(六)代码附录图1-1原始图像和携密图像的对比图结果:在显示上两者基本无差别2、所含秘密信息截图图1-2提取秘密信息1、嵌入秘密信息clc;clear;msgfid=fope n('hidde n.txt','r');%打开秘密文件,读入秘密信息[msg,co un t]=fread(msgfid);coun t=co un t*8;alpha=0.02;fclose(msgfid);msg=str2bit(msg)';[le n, col]=size(msg);io=imread('le na.bmp');% 读取载体图像io=double(io)/255;output=io;i仁io(:,:,1)%取图像的一层来隐藏T=dctmtx(8);%对图像进行分块DCTrgb=blkproc(i1,[8,8],'P1*x*P2',T,T');% 对图像分块进行DCT 变换[row,col]=size(DCTrgb);row=floor(row/8);col=floor(col/8);%顺序信息嵌入temp=0;for i=1:co untif msg(i,1)==0if DCTrgb(i+4,i+1)<DCTrgb(i+3,i+2)% 选择(5,2)和(4,3)这一对系数temp=DCTrgb(i+4,i+1);DCTrgb(i+4,i+1)=DCTrgb(i+3,i+2);DCTrgb(i+3,i+2)=temp;endelseif DCTrgb(i+4,i+1)>DCTrgb(i+3,i+2) temp=DCTrgb(i+4,i+1);DCTrgb(i+4,i+1)=DCTrgb(i+3,i+2);DCTrgb(i+3,i+2)=temp;endendif DCTrgb(i+4,i+1)<DCTrgb(i+3,i+2)DCTrgb(i+4,i+1)=DCTrgb(i+3,i+2)-alpha;% 将原本小的系数调整更小,使得系数差别变大elseDCTrgb(i+3,i+2)=DCTrgb(i+3,i+2)-alpha;endend%将信息写回并保存wi=blkproc(DCTrgb,[8,8],'P1*x*P2',T',T);% 对DCTrgb 进行逆变换output=io;output(:,:,1)=wi;imwrite(output,'le na1.bmp');figure;subplot(1,2,1);imshow('lena.bmp');title('原始图像');subplot(1,2,2);imshow('lena1.bmp');title('嵌入水印图像');2、提取秘密信息clc;clear;wi=imread('le na1.bmp');wi=double(wi)/255;wi=wi(:,:,1)%取图像的一层来提取T=dctmtx(8);%对图像进行分块DCTcheck=blkproc(wi,[8,8],'P1*x*P2',T,T');% 对图像分块进行DCT 变换for i=1:80%80为隐藏的秘密信息的比特数if DCTcheck(i+4,i+1)v=DCTcheck(i+3,i+2)message(i,1)=1;elsemessage(i,1)=0;endendout=bit2str(message);fid=fope n('message.txt','wt');fwrite(fid,out);fclose(fid);(七)实验心得通过此次的实验,了解了频域水印的特点。
基于Matlab的数字水印设计基于空域的水印实现
摘要数字水印(Digital Watermarking)技术是我们生活中经常见到的信息隐藏技术。
它将一些标识信息(即数字水印)直接嵌入数字载体中,但不影响原载体的使用价值,也不容易被人的知觉系统觉察或注意到。
空间数字水印是信息隐藏技术的一个重要研究方向,另一类是频率数字水印。
空间数字水印采用最低有效位(LSB)算法,通过修改表示数字图像的颜色或颜色分量的位平面,调整数字图像中感知不重要的像素来表达水印的信息,以达到嵌入水印的目的。
本实验是基于matlab的数字水印设计——基于空域的水印实现。
关键词:信息隐藏技术;空间数字水印; LSB算法;matlab目录1 设计任务与目的 (1)2 MATLAB的简介及应用 (1)2.1 MATLAB简介 (1)2.2 MATLAB应用 (1)3 数字水印技术 (2)3.1 数字水印技术的发展 (2)3.2 水印分类 (2)3.3 数字水印的特点 (3)3.4 数字水印技术的基本原理 (4)4 基于LSB的数字水印算法 (5)4.1 LSB算法原理 (5)4.2 LSB算法的实现 (6)4.2.1 水印嵌入算法 (7)4.2.2 水印提取算法 (9)5 MATLAB软件仿真 (11)5.1 仿真结果 (11)5.1.1 水印嵌入仿真 (11)5.1.2 水印提取仿真 (12)5.2 仿真分析 (13)结论 (14)参考文献 (15)基于Matlab的数字水印设计——基于空域的水印实现1 设计任务与目的(1)通过课程设计把自己在大学中所学的知识应用到实践当中。
(2)在课程设计的过程中掌握程序编译及软件设计的基本方法。
(3)深入了解利用Matlab设计基于Matlab的数字水印设计——基于空域的水印实现。
(4)提高自己对于新知识的学习能力及进行实际操作的能力。
(5)锻炼自己通过网络及各种资料解决实际问题的能力。
2 MATLAB的简介及应用2.1 MATLAB简介MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
基于LSB的数字水印算法及MATLAB实现
基于LSB 的数字水印算法及MATLAB 实现加密算法宗岳,王恺山东科技大学 山东,中国 ***************摘要—LSB 是一种简单传统的信息隐藏算法,属于数字水印技术中的一种。
本文首先介绍了LSB 技术的原理和特点,然后讨论了基于LSB 的数字水印算法。
最后利用MATLAB 2010 b2对这一算法的加密过程进行了仿真。
关键词:LSB 数字水印 信息隐藏 MATLABI. 介绍随着计算机应用逐渐广泛、网络技术的迅速发展,使音频、视频等多媒体信息都能以数字形式传输和播放,从而使大规模非授权拷贝成为了可能,而这样会损害音乐、电影、书籍和软件等出版业的发展,为了保护知识产权引发了一个很有意义的研究方向:信息隐藏。
本文首先介绍了了数字水印技术的原理和分类,接着对LSB 算法原理及LSB 算法实现进行了介绍,最后使用MATLAB 对其加密过程进行了仿真。
II. 数字水印技术的基本原理数字水印的主要 目的是将特定的信息加入到需要保护的媒体信息中,加入的信息一般是能够代表媒体信息版权的内容,如公司标志、媒体作者、特定代码等,而且要保证数字水印能够抵抗一定的攻击,而不被轻易的破坏和修改,同时数字水印要能够被提取或者能够被检测到。
数字水印的具体内容、算法、提取或检测过程根据实际应用有不同的要求。
数字水印的嵌入和提取过程如图1,图2所示。
图1 数 字水印的嵌入过程图2 数字水印的提取过程图1是数字水印的嵌入过程,加入密钥可以提高数字水印的隐蔽性、抗攻击性,而并非是必须的。
根据用途不同,,嵌入的水印有些是需要还原的,而有些则只需验证水印的存在性,前者需要数字水印的提取算法,而图2需要数字水印的检测算法,根据具体的水印算法,嵌入或提取的过程可能有所不同。
III. 数字水印的分类数字水印技术可以从不同的角度进行分类,因此有多种分类方法。
按数字水印的特性可分为鲁捧数字水印和脆弱数字水印。
鲁棒数字水印主要用于标识数字媒体信息的版权信息,它要求嵌入的水印能够抵抗对媒体的常规编辑和恶意攻击,在对媒体进行如:裁剪、旋转、缩放、压缩的变换后水印信息不受到较大损害。
一种基于Wavelet—SVD数字水印算法的MATLAB实现
3 系统 应 用
该系统在宜 昌市全面应用 以来 . 虽然不到 2 年, 但取得 了很 好的效果 . 主要表现在 : 31 操作便捷 . . 效率提高 系统基 于浏览器朋 务器 ( /) 式 . 艮 Bs 模 操作简 单 , 据输 入方便快捷 . 数 摒弃 了传统 繁琐 的手工 登记、 检查 、 核 、 审 统计 工作 , 利用规 范化 、 标准 化、 科学和程序化的计算机网络流程 录入 。使用 图 2 单 位 专 业 人 数 统计 考 勤机 对参加继续教 育活动 的人 员进行现场考 勤登记 . 不但解决 了传统登记速度慢造成人员进 4 小 结 人会场 时排 队拥堵的现象 . 同时也减少人工登记带来的误差和不公正 性。 宜 昌市继续医学教育信息管理系统集继续 医学教育项 目管 理 学 3 数据准确 . . 2 客观公正 分管理及人员信息管理为一体 .实现 了继续医学 教育管 理科 学化 、 现 系统根据学员所属单位级别 和专业技术级别 。 动调用 《 昌市 代化和程序化 . 自 宜 节省了大量的人力 、 物力 , 大大提高了继续教育工作的 继续医学教育学分授予办法》 的相关规定 与标准 , 自动判别是否合格。 质量和效率 全市各级医疗卫生单位 、 医务人员的继续医学教育执行 在最大限度上降低 了各项标准 由手工录入而造成的 出错率 : 在数据查 情况实时在线统计并信息共享 . 非常有利于卫生管理部门了解当前信 询 、 中可生成各类报 表 . 统计 使继教管理人员能直 观地分析各类数据 息 . 掌握最新动态 . 实现继续医学教育一体化管理 , 了很好 的应 获得 趋势 . 更好地把握所有人员 的继续教育情况 用效果。 l 3 实时记录 . . 3 查询统计方便 本 系统充分利用现代网络技术 . 实现了全市继续 医学教育资源 的 【 参考文献 】 网络共享 。 通过网页浏览 器实现学分 自 助查询 功能 . 卫生行政主管部 [ ] 卿. 医学教 育学术 活动管 理工 作探 讨[ . 医学教 育 ,0 3 1 1 胡瑞 继续 J 继续 ] 20 ,7 门足不 出户可以查询本地 区所有卫 生专业 技术 人员继续 医学教 育情 ( )6 7 3 :- M] 人民卫生 出版社 ,0 0 1 9 18 2 1 : 1 —2 . 况。每 名医务人员亦可上网查看相关继教管理政策 、 息、 信 本人学分 。 [ ] 2 孟群新 中国继续医学教育发展历程 【 . [] 3 郭川 军. 于 We 方 式 的学 生档 案管 理系统 的设 计与 实现 【. 息技 术 , 基 b J信 ] 个统计 页面实例如图 2 所示 20 (2 :0 - 0 . 0 6 1 ) 1 5 1 6 3 智能管理 . . 4 实用性强 [] 4张彦通 , 刘春生 , 张有声 . 实施学分制 , 推进高校教学管理模式改革[. J中国大 ] 该系统与考勤 系统联合使用 . 对各级继续医学教育项 目实现智能 学教学,0 2 4 :3 1 2 0 () 1 — 5 管理 , 参学人员学分的授予 由系统根 据出勤情况 自动完成 . 同时系统 f ] 芝英. 于 We 5金 基 b方式 的继续医学教 育学分 管理 系统【 . 国继 续 医学 教 J中 ] 根据卫生专业技术人员 的单 位级别和技术级别 自动判别 年度学分是 育 ,0 0 ̄:3 3 . 2 1( 3 — 5 否达标 。 35 有的放矢 . . 针对性强 [ 责任编辑 : ] 周娜 以往 的继续教育针对性不强 . 一些基层 医疗 机构 中, 继续医学教
MATLAB制作数字水印
1. 数字水印背景二十一世纪是数字时代,通信技术的迅速发展和计算机网络的普遍运用,使人们可以通过互联网收发信息,可以随时上传自己创作的数字图象、音乐、视频等作品,可以进行学术交流。
然而,也正是由于网络的这种便捷性、传播迅速的优点使其很容易被非法拷贝,导致数字产品的版权、完整性、有效性得不到保证,严重损害了创作者的利益。
而一些具有特殊意义的数字信息,如涉及司法诉讼、政府机要等信息,更是遭到了不法分子地恶意攻击和随意篡改等,这一系列问题给当今科学家带来了巨大挑战。
基于以上类似问题,数字水印技术可以说是信息时代的特有产物,是一种可以在开放网络环境下保护版权和认证来源及保障信息完整性的新型技术,在音频、图像、视频制品中迅速得到广泛的研究和发展。
基本特点数字水印是加在数字图象、音频或视频中的微弱信号,这个信号是人们能够建立产品所有权、辨认购买者或提供数字产品的一些额外信息。
具体说来,它们都具有以下共同的特征:1. 不可感知性对于数字水印的嵌入,应该对观察者没有视觉障碍,理想情况应该是水印图像与原始图像没有丝毫差别。
2. 鲁棒性鲁棒性是指一个数字水印能够承受攻击的能力,一般来说数字水印方法是针对特定的攻击进行设计。
3. 安全性水印技术的安全性是其最重要的特性,由于它的商业性,其算法必须公开,算法的安全性完全取决于密钥,而不对算法进行保密。
4. 计算复杂度不同应用中,对于水印的嵌入算法和提取算法的计算复杂度要求是不同的,复杂度直接与水印系统的实时性相关。
5. 水印容量水印容量是指载体数据字中可嵌入水印信息位的多少,可以从几兆到几个比特不等。
数字水印的应用]1[数字水印是以不可感知的方式嵌入到数字信息中的,总体来说它有以下应用:数字产品产权保护这是数字水印最广泛的应用,将秘密的数字信号嵌入到有价值的数字文件中,这些数字信号是产权的标识,在不破坏数字文件的情况下不能被盗版者出去,起到了保护产权的作用。
1. 数据库标识有时一些文件中提示数据的标识信息往往比文件本身更重要或者一些音像文件需要将说明注释(如字幕等)与音像本身结合起来,这就可以通过数字水印技术加以解决。
基于MATLAB数字水印系统设计
• 4.按内容划分
• 按数字水印的内容可以将水印划分为有意义水印 和无意义水印。有意义水印是指水印本身也是某 个数字图像(如商标图像)或数字音频片段的编 码;无意义水印则只对应于一个序列号。有意义 水印的优势在于,如果由于受到攻击或其他原因 致使解码后的水印破损,人们仍然可以通过视觉 观察确认是否有水印。但对于无意义水印来说, 如果解码后的水印序列有若干码元错误,则只能 通过统计决策来确定信号中是否含有水印。
• 2)通用性:比较好水印算法大多都实用于多类媒 体格式与文件格式。通用性在特定程度上也代表 易用性。
• 3)计算效率高:在软件和硬件方面,水印算法也 应该能被有效的实现。需要特别注意的是,在分 布式网络上的多媒体数据监视方面,水印检测算 法的能够快速完成。
2.2数字水印技术的分类
• 数字水印的分类方法有很多种,不同的出发点导 致了不同的分类,他们之间既有联系又有区别, 本文主要介绍按水印的嵌入域划分。
•
II=II+1;
•
end
•
end
•
end
• end
•
%分块DCT反变换
• watermarked_image(y:y+blocksize-
1,x:x+blocksize-1)=idct2(dct_block);
1)*8:j*8),(1+(i-1)*8):i*8)));
•
fc(xx)=1/64*sum(sum((cover_object((1+(j-
1)*8:j*8),(1+(i-1)*8):i*8)-pjhd(xx)).^2));
•
xx=xx+1;
• end
• end
基于Matlab的数字图像水印算法设计设计
基于Matlab的数字图像水印算法设计设计1、绪论本章主要介绍信息隐藏技术的背景和研究意义、国内外信息隐藏技术研究现状,并给出全文的结构安排。
1.1信息隐藏技术的背景和研究意义从二十世纪九十年代开始,网络信息技术在全世界范围内取得了迅猛发展,它极大方便了人们之间的通信和交流。
借助计算机网络所提供的强大的多媒体通信功能,人们可以方便、快速地将数字信息(数字音乐、图像、影视等方面作品)传到世界各地,一份电子邮件可以瞬息间传遍全球[1-7]。
但在同时计算机网络也成为犯罪集团、非法组织和有恶意的个人利用的工具。
从恶意传播计算机病毒,到非法入侵重要部门信息系统,窃取重要机密甚至可使系统瘫痪;从用计算机进行金融犯罪,到利用表面无害的多媒体资料传递隐蔽的有害信息,对计算机信息系统进行恶意攻击的手段可谓是层出不穷。
信息隐藏技术在保密通信、版权保护等领域中都具有相当广泛的应用价值,根据不同应用背景,信息隐藏技术可以分为两个重要分支隐写术(Stegano Graphy)和数字水印[8](Digital Watermarking)。
数字水印主要是为了保护知识产权的,通过在原始媒体数据中嵌入信息来证实该媒体的所有权归属问题。
数字水印的主要目的不是限制对媒体访问,而是确保媒体中水印不被篡改或消除。
因此稳健性是数字水印最基本要求之一。
数字水印中的稳健性是指水印图像经过一些常见改变后,水印仍具有较好可检测性。
这些改变包括常见的图像处理手段(如数据压缩、低通滤波、图像增强、一次抽样、二次量化、A/D和D/A转换等等)、几何变换和几何失真、噪声干扰、多重水印(Multiple Watermarking)的重叠等。
对不同应用场合,要求具有不同的稳健性。
但需要指出的是,存在另一种与稳健水印性质相反的水印,被称为易损水印(Fragile Watermarks),它们被用来证实原始媒体是否被改动过。
稳健性在整个水印系统设计中具有很重要的分量,这也是将隐写术和数字水印分别对待的原因之一。
基于MATLAB的DCT域数字水印技术实现
介 了 目前 主 流 数 字水 印算 法 , 出 了 D T域 数 字 盲水 印算 法 。 水 印算 法不 可 见 性 较 好 , J E 压 缩 , 声 , 给 C 该 对 PG 噪 有较 好
的鲁 棒 性 。
关 键 词 :数 字 水 印 ;图像 ;DC T;盲 水 印
中 图分 类 号 : N 5 T 98
d gt l ae mak n c n lg a e o o h c d mi i l st ed gt l o k o y g t r tci n i mo ea d i i tr r i gt h oo y h sb c me ah t n t e a a e c cr ea h ii r sc p r h o e t r n aw e i c aw i p o s
mo e i o t n . n t i ril ,t e c re tman te m ii lw tr a k n l o t m s b e y d s rb d, e DC o i r mp r t I h s at e h u r n i sr a d g t a e r i g a g r h i r f e c e t T d man a c a m i i l i h d gt l d w tr r ig ag rt m r p s dT e e p rme t l e u t d mo s a et a ewae a kn l o t m a i y ii b i a e ma k n o i l a n l h i po oe .h x e s i n a s l e n t t t h tr r i ga g r h s t f s r s r h t m i s
ivsblya dh sg o b sn s rh P n iiit n a o dr u tes o eJ EG o rsina dn ie i o f t Cc mpe so n os.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字水印作为一门新的学科, 自 1993 年 Tirkel 等人正式提出到现在十几年里, 国内外对数字水印的研究都引起了极大的关注, 从最初的版权保护, 已扩展到多媒体技术, 广播监听, in-ternet 等多个领域。
数字水印是永久镶嵌在其他数据( 主要指宿主数据) 中具有可鉴别性的数字信号或数字模式, 其存在不能影响宿主数据的正常使用。
为了使数字水印技术达到一定的设计要求, 当前水印数据一般应具备不可感知性(imperceptible) 、鲁棒性(Robust) 、可证明性、自恢复性和安全保密性等特点。
在数字水印技术中, 水印的数据量和鲁棒性构成了一对基本矛盾。
理想的水印算法应该既能隐藏大量数据, 又可以抗各种信道噪声和信号变形。
然而在实际中, 这两个指标往往不能同时实现, 实际应用往往只偏重其中的一个方面。
如果是为了隐蔽通信, 数据量显然是最重要的, 由于通信方式极为隐蔽, 遭遇敌方篡改攻击的可能性很小, 因而对鲁棒性要求较为不高。
但对保证数据安全来说, 情况恰恰相反, 各种保密的数据随时面临着被盗取和篡改的危险, 对鲁棒性的要求很高, 而对隐藏数据量的要求则居于次要地位。
典型的数字水印系统至少包含两个组成部分- - 水印嵌入单元和水印检测与提取单元。
将水印信息进行预处理后加入到载体中, 称为嵌入。
从水印化数据中提取出水印信息或者检测水印信息的存在性称为水印的提取和检测。
数字水印算法主要是指水印的嵌入算法, 而提取算法往往被看成是嵌入算法的逆变换。
当前典型的嵌入算法主要被分为空间域水印算法和变换域水印算法。
DCT 变换域算法是数字水印算法的典型代表, 也是数字水印中较为常用的一种稳健的算法。
其算法思想是选择二值化灰度图像作为水印信息, 根据水印图像的二值性来选择不同的嵌入系数, 并将载体图像 ( 原始图像) 进行 8×8 的分块, 再将灰度载体图像( 原始图像) 进行 DCT变换。
然后, 将数字水印信息的灰度值直接植入到载体灰度图像的 DCT 变换域中, 实现水印的嵌入。
而后, 将嵌入了水印信息灰度图像进行 IDCT( 逆离散的余弦变换) 变换, 得到含有了嵌入水印信息的图像, 嵌入过程完毕。
水印的提取、检测过程为嵌入过程的逆过程, 其方法和嵌入方法有所雷同不再进行介绍。
下面以 MATLAB 为工具, 给出一个在频域嵌入和提取黑白二值水印图像的实现过程。
(1) 水印图像的预处理: 将水印信息图像进行灰度处理, 然后再将转换后的图像进行二值转换。
而这些都是为了提高水印信息的安全性对图像所做的处理。
(2) 读取原始公开图像(大小为 256×256) 和黑白水印图像(大小为 32×32, 模式为灰度) 到二维数组 I 和 J。
(3) 将原始公开图像I 分割为互不覆盖的图像块, 每块大小为 8×8, 共分为 32×32 块。
然后对分割后的每个小块Block- dct(x,y) 进行 DCT 变换, 得到变换后的小块 Block-dct(x, y)。
(4) 取黑白水印图像中的一个元素 J(p, q) , 通过嵌入算法嵌入到原始公开图像块的中频系数中。
(5) 对嵌入水印信息后的图像块Block- dct (x, y) 进行逆DCT 变换, 得到图像块 Block(x′, y′)。
(6) 将逆 DCT 变换后的图像块 Block(x′, y′) 合并, 得到了嵌入黑白二值水印后图像。
(7) 对嵌入水印后的图像进行 JPEG 压缩( 一种水印攻击) 。
(8) 从压缩后的图像中提取水印信息。
提取算法为嵌入算法的逆过程。
具体 MATLAB 程序如下:%嵌入水印信息tem=1;for m=1:Nfor n=1:Nx=(m- 1)×K+1;y=(n- 1)×K+1;block_dct=I(x:x+K- 1,y:y+K- 1);block_dct1=dct2(block_dct);if J(m,n)==0a=- 1;elsea=1;endblock_dct2=block_dct1×(1+a×0.01);block_idct=idct2(block_dct2);D(x:x+K- 1,y:y+K- 1)=block_idct;tem=tem+1;endend我们可以看到, 嵌入水印信息后的图像和原始的图像在视觉上几乎看不出什么变化, 只是从亮度上有稍微的增强, 这是嵌入水印信息后原始图像的像素提高的缘故。
这说明该算法的不可见性较好, 满足了数字水印嵌入算法的评价标准。
对嵌入水印后的图像进行攻击以评价其鲁棒性:首先对嵌入水印信息的图像进行国际标准压缩 JPEG 压缩。
这种压缩是一种有损压缩, 对图像产生一定的破坏, 可以将它看作一种攻击手段。
该算法对 JPEG 压缩攻击有一定的鲁棒性。
实验证明,该算法对剪裁有抗攻击性, 也证明了该算法的鲁棒性。
综上实验结果, 可以看出嵌入前后的图像在视觉上没有发生明显的变化, 这说明该算法充分利用了人类视觉系统(HVS)的特性, 图像的不可感知性较好。
也就说明变换域 DCT 水印嵌入算法有较好的稳健性。
提供数据交换服务。
而业务主题是构建业务链的基础。
在所论述的交换平台中, 业务主题和业务链是两个关键的概念。
所谓业务链, 是指来自不同业务系统的内部业务流整合后形成的新的业务流。
如图 2 所示的系统 A 内部业务流 A1- A2-A3 和系统 D 内部业务流 D1- D2 整合后形成的新的业务流 A1-A2- A3- D1- D2, 即是一条业务链。
所谓业务主题, 是不同系统内部业务流组成的业务链的标识, 它与业务链的业务内容密切相关, 规定了需要交换的业务数据的内容及格式, 包括数据结构及数据类型等。
通过确定业务主题, 来自两个不同系统的业务流交换了数据, 构建了新的业务链。
平台为用户提供其能获得的业务主题的索引服务。
对于与用户系统不相关的业务主题, 该用户不可见, 称之为不相关业务主题的屏蔽性, 以确保平台的数据安全。
2、数据交换服务组件数据交换组件是数据交换平台的主要组件, 通过组件为需要数据交换服务的客户提供服务, 以实现平台的功能。
它包括:为用户提供数据上传下载服务; 为新加入的用户注册; 当用户申请数据服务时, 验证用户的合法性及所能为其提供的服务; 当共享数据报错时通知数据源等。
所有这些功能, 都是服务平台以服务的形式提供给提出用户使用的。
平台在为用户提供数据交换服务的同时, 也为采取措施保证数据交换的安全, 比如 XML 数字签名、数据转发后予以丢弃、不相关业务主题屏蔽等。
数据交换组件主要包括四个功能组件: 注册组件、验证组件、数据转发组件、容错组件。
2.1 注册组件注册是用户利用交换平台构建业务链的必经之门。
通过注册, 平台为用户登记其身份资料, 保存构建业务链的相关业务主题及其他信息, 并分配相应的资源空间。
注册组件就是为用户提供注册服务的。
2.2 验证组件当用户需要数据服务平台提供服务时, 必须先向服务平台提出服务请求, 服务平台对用户身份的合法性进行验证, 若通过, 数据交换服务平台则检查该用户所能得到的服务并展示相应的业务主题给用户。
验证组件为合法用户提供相关业务主题的索引服务, 使用户能快速定位所需要的业务主题, 但遵从不相关业务主题屏蔽性的原则。
2.3 数据转发组件数据转发组件是平台的中心逻辑组件。
其设计除保证平台能完成业务链的数据交换外, 还必须考虑数据转发的效率及安全性等。
在经过验证组件的合法性验证后, 平台即可接受用户的数据上传, 并根据用户 ID 及相关业务主题 ID 把数据依队列存放起来。
当该业务主题的业务链的用户下载数据后, 平台即对数据进行减持。
对已转发数据进行减持, 其目的在于:1)为了用户数据安全;2)减少系统负担, 提高系统服务效率;3)回收资源空间, 实现平台轻量化的设想。
2.4 容错组件当用户发现数据出错时, 向数据交换服务平台报错, 由服务平台通知业务链上游提供数据的数据源重新传送出错数据。
数据服务平台会给加入数据交换共享的每个业务系统提供一个唯一的识别 ID, 对其所提供的主题也会加以识别, 在此基础上对每条交换数据加以唯一编号( 流水号) , 因而服务平台系统能据此通知相应的数据源重传出错的数据。
3、结语我们用上述三节论述了一个面向业务流整合的数据交换服务平台。
提出了业务主题、业务链、不相关业务主题屏蔽等概念,通过业务主题整合异构平台的内部业务流以构成业务链。
通过采用用户注册加入平台、XML 数字签名、异构平台系统通过适配器加入平台而无需改动原有业务系统、平台对数据转发后预以减持等技术手段, 我们实现了以上基于开放的、安全的、松耦合的、轻量级的数据交换服务平台的设计。
这种方案, 对于大量需要简单快速、低成本进行业务流整合的异构平台, 具有广泛的应用价值, 同时这种数据交换服务平台也可延伸为商业性的应用平台。
上述的数据交换服务平台的实现, 可采用跨平台的 Java 技术。
数据服务平台向用户提供服务, 可采用 B/S 结构, 服务器端采用 JSP/Servlet 技术, 当用户需要数据服务时, 向服务提出请求, 平台作出应答。
对于业务逻辑, 采用 JavaBean 技术进行封装。
对于各业务系统数据异构问题, 采用XML 文档作为数据交换的统一格式, 解决交换数据的异构问题。