刘泳彬,徐涛,苏锐豪,陈炯缙
(惠州学院信息科学技术学院,惠州516007)
随着医疗成像技术的不断发展和成熟,医疗影像在患者的病情诊断及治疗方案的确定等方面的作用逐渐增大。与普通图像相比较,医学图像对图像质量的要求显得更高,且有明确的感性区域与非感性区域之分。医学图像在网络传输中存在受到截取、篡改、非法复制等一系列信息安全问题,若无法对医学影像进行版权保护,将导致版权信息不好明确,无法对文件进行有效的追溯。医学信息隐蔽技术作为一种新兴的版权保护方法正逐步成为国内外专业人士研究的焦点,开发实现医学图像的信息隐藏系统具有较好的实用价值。
数字水印技术[1]是信息安全领域的研究热点,现阶段的图像水印算法已相对成熟[2-3]。本文设计实现了一个医学图像信息隐藏系统,是基于B/S 架构开发,在确保原有医学图像不失真的前提下,将特定信息通过不可见的方式隐藏到医学图像中,实现医学图像的版权保护、特定资料信息隐藏等功能。
医学图像数据一般采用DICOM 文件方式[4]进行存储,这使得不同制造商生产的设备之间的数字图像信息通信标准得以统一,允许散布在不同地理位置的医疗诊断设备创建统一的医疗信息数据库。DICOM 文件的结构包括以下两部分(如图1 所示):
(1)DICOM 文件头
(2)DICOM 数据集合
图1 DICOM结构图
DICOM 文件头包含了标识数据集合的相关信息,每个DICOM 文件都必须要有文件头。其中包含有文件导言(由128 个字节组成)、前缀(长度为4 字节的字符串“DICM”)和一些其它有用的信息,如文件的传输格式等;DICOM 数据集在文件头之后,由多个DICOM数据元素组成,每个DICOM 数据元素主要包含标签(Tag)、VR(Value Representation,数据描述)、数据长度和数据域四部分。按照Tag 的不同可分为:文件元Tag、普通Tag 和像素Tag,每一个数据元素都存储着一条信息。
医学图像信息隐藏系统的架构图如图2 所示,当医疗机构人员将本机构生成的医疗影像DICOM 文件进行外借时,可通过客户端浏览选择系统上已存在的DICOM 文件,发出加密下载的请求,服务器收到加密下载请求后,对所选中的文件进行加密嵌水印。嵌入过程中将先提取出DICOM 文件中的像素部分,然后将操作人员的信息、文件的信息以及其他相关信息录入数据库,生成一个唯一标识,再将此标识与医疗机构标志(如Logo)一起以数字水印的方式嵌入到DICOM 文件中的像素部分,然后再重新生成加密后的DICOM 文件。加密嵌水印操作完成后,提供给用户一个链接下载加密后的DICOM 文件。日后若该文件被外泄出现侵权行为时,医疗机构可以将疑似侵权医学影像文件中的数字水印提取出来作为自身版权维护的法律依据。
图2 医学图像信息隐藏系统架构图
该系统的硬件组成包括Web 服务器、医疗机构信息数据库服务器、医疗文件数据服务器、文件加密处理服务器等,系统平台的构成如图3 所示。
图3 医学图像信息隐藏系统的硬件平台构成
该系统的功能模块主要分为:医疗机构人员信息操作模块、医疗影像文件加密嵌水印模块、医疗影像文件水印检测模块等,其各个模块所具有的功能如下:
(1)医疗机构人员信息操作模块
该模块属于前台服务模块,主要负责医疗机构人员的注册添加、身份认证确定、各人员信息数据库的管理等,系统中的使用角色分别为医师和系统管理者,医师和系统管理者可通过浏览器Web 界面进行认证登录并进行操作。
(2)医疗影像文件加密嵌水印模块
该模块属于后台处理模块,负责生成所要嵌入的数字水印信息,并将其通过各种算法进行加密后嵌入得到DICOM 文件中。嵌入的水印信息采用了文本图像水印的形式,为一段唯一标识码和一个医疗机构的标志,可通过标识码从数据库中查询出其他相关信息,医疗机构标志可在一定程度上确认版权。具体的嵌入实现方法请参见下节。
(3)医疗影像文件水印检测模块
该模块同样属于后台处理模块,负责检测DICOM文件中是否含有预先嵌入的水印,并能提取出所嵌入的信息。具体的提取检测实现方法请参见下节。
水印嵌入加密的步骤如4 所示:
(1)从DICOM 文件中提取出医学图像;
(2)根据系统所属医疗机构的标志(如特定Logo)与其他信息(唯一标识码)一起生成另一张图片(水印图片),然后将水印图片用Arnold 正变换算法[5-6]将其置乱;
(3)将提取出的医学图像进行8×8 分块,嵌入的算法采用了水印算法中常用的DCT 算法[7-9],每一分块生成DCT 系数矩阵,将步骤(2)生成的置乱图片分散嵌入到各个分块中,采用奇偶量化法实现盲水印嵌入,然后进行DCT 逆变换,生成一张已嵌入水印信息的医学图像;
(4)将嵌入水印后的医学图像重新组合得到加密后的DICOM 文件。
图4 水印嵌入加密过程
水印提取的步骤如图5 所示:
(1)先从DICOM 文件中提取出医学图像;
(2)对其提取出的医学图像采用水印嵌入时相同的分块方法,生成DCT 系数矩阵,然后根据奇偶量化法的提取公式,得到嵌入该医学图像中的置乱水印,Arnold 逆变换后可得到水印信息图片,然后可对其进行识别,查询出数据库中其他特定的相关信息。
图5 提取水印过程
水印嵌入后不可见性良好,肉眼观察时与未嵌入水印前的医学影像几乎完全相同。系统运行界面如图7所示,嵌入的水印信息为:标识码“F5D7B002”和医疗机构的Logo 标志,详细信息如文件外借时间、外借对象、文件外借时的处理者等存放在数据库中,通过标识码可查询得出。通过这些信息,可确定文件的版权归属,若出现外泄侵权可以查明文件外流的出处和责任人。
图6 正常情况
图7 系统运行截图
当DICOM 文件中的像素部分被篡改时(如:涂改攻击、截取攻击),提取出的水印虽有些许模糊,但通过肉眼仍然可以识别出标识码和医疗机构标志,系统设计的算法可以抵抗一定程度上的攻击,抗攻击效果如7所示。
图8 涂改攻击
图9 截取攻击
DICOM 格式为医疗影像文件的通用格式,本文设计实现的医学图像信息隐藏系统,可将版权标志和附加信息以不可见的形式嵌入到DICOM 格式医疗影像文件中,可满足医疗行业对DICOM 文件的版权保护要求。目前许多已发表文献提出的水印算法大多只能运行在MATLAB 仿真环境,本文将算法实际应用到基于B/S 架构的系统平台,可以直接运行在浏览器端,能够跨平台使用,具有较强的实用性。