基于生物特征密钥和立方S盒的三维医学图像加密方法
未命名
10-21
阅读:56
评论:0
基于生物特征密钥和立方s盒的三维医学图像加密方法
技术领域
1.本发明涉及医学图像加密技术领域,尤其涉及基于生物特征密钥和立方s盒的三维医学图像加密方法。
背景技术:
2.随着医疗信息化的发展,越来越多的医学图像数据需要进行在线共享和传输,运用技术手段保障医学图像在存储和传输中的安全性和隐私性至关重要。三维医学图像是医学图像中一类特殊的存在,它可以呈现出人体内部的三维结构,具有更高的空间分辨率和更精确的体积测量,能够捕捉到更多的细节和更全面的信息。相比二维医学图像,三维医学图像能够提供更多的解剖和生理信息,因此它在医疗诊断和医学研究中越来越受欢迎。加密技术是保护医学图像机密性的最直观、最有效的机制之一。
3.经检索,申请号cn103226802b的中国专利,公开了基于混沌加密的医学图像共享方法,其目的是通过混沌加密的医学图像共享方法易于数据存储和传输,保证重要图像的机密性、完整性,抗攻击能力强。
4.然而,目前有很多种医学图像加密方案被提出,但是大多数都是针对二维图像或三维图像的切片进行加密,加密方法常用长串的二进制数或者若干个浮点数作为密钥,导致密钥空间有限、长度固定。虽然已有多种s盒的构造方法被提出,其中的大多数采用了混沌系统,然而,使用一些现有方法构造出的s盒的性能远低于aes中的s盒,尤其是非线性性。此外,很多加密方法大多仅适用于位长为8的医学图像,在需要更高的灰度分辨率和细节时,会使用高精度的医学图像进行研究和诊断,位长为8是不能够满足需求的。针对三维医学图像加密的研究工作十分有限,为此,我们提出基于生物特征密钥和立方s盒的三维医学图像加密方法。
技术实现要素:
5.本发明的目的是为了解决现有技术中存在的缺陷,而提出的基于生物特征密钥和立方s盒的三维医学图像加密方法。
6.为了实现上述目的,本发明采用了如下技术方案:
7.基于生物特征密钥和立方s盒的三维医学图像加密方法,包括以下步骤:
8.步骤s1,将生物特征图像ki,经过平滑处理、提取边缘像素和计算哈希值,生成不定长的等效密钥流k;
9.步骤s2,将等效密钥流k,基于pwlcm与duffing映射的相互耦合,通过不断改变初始值、控制参数和迭代次数,对混沌系统进行多轮迭代,生成用于置乱和扩散操作的伪随机序列x和y;
10.步骤s3,将待加密的三维医学图像,采用基于多趟排序思想的高效置乱算法,执行置乱操作;
11.步骤s4,将置乱得到的三维矩阵a,基于gf(2
16
)域,构造大小为26×26
×24
的立方s
盒,执行替换操作;
12.步骤s5,将替换得到的三维矩阵b,采用基于初等元胞自动机和有限域乘法的明文相关扩散算法,执行扩散操作,生成密文图像。
13.进一步地,在步骤s1中,具体包括以下步骤:
14.s101:使用高斯滤波器对生物特征图像进行平滑处理,去除多余细节,仅留下粗特征,具体方式如下:
[0015][0016]
s102:使用sobel算子对图像进行边缘像素提取,选定阈值t=127,进行二值化处理,得到模板图像kt,具体方式如下:
[0017][0018]
s103:对比图像的最低位平面与模板图像ki,从左到右、从上到下依次选取最低位平面对应ki上值为1相应位置的比特,组成比特流eb;
[0019]
s104:使用sha-256函数计算哈希值,然后对比特流进行分组。每32位分为一组,记作g,g=[g1,g2,
…
,g8],其中,gi={g
i1
,g
i2
,
…
,g
i32
},i=1,2,
…
,8,每4位分为一组,记作h,h=[h1,h2,
…
,h
64
]。其中,hi={h
i1
,h
i2
,
…
,h
i4
},i=1,2,
…
,64;
[0020]
s105:计算pwlcm的初始值x0和控制参数p,具体方式如下:
[0021][0022]
s106:代入x0和p,迭代pwlcm共64次,生成长度为64的混沌序列seq,对其中各项xi,i=1,2,
…
,64进行预处理,公式如下:
[0023]
xi=(xi×
10
16
)mod len(eb)#(4)
[0024]
其中,len(eb)表示比特流eb的长度;
[0025]
s107:以xi为起始位置,hi+1为切片长度,对比特流eb进行循环切片,此过程共执行64次。将每次的切片首尾相连,得到等效密钥流k。
[0026]
进一步地,在步骤s2中,具体包括以下步骤:
[0027]
s201:分别令单项的位长等于8和16,重叠地对等效密钥流k进行分组,生成序列u={ui},i=1,2,
…
,len(k)-7和v={vi},i=1,2,
…
,len(k)-15,公式如下:
[0028][0029]
s202:令i=1,令初始值和控制参数为
[0030]
[0031]
将x0和p代入pwlcm,迭代n1次,得到最后两个状态值和
[0032]
s203:将和作为新的x0和y0,代入duffing映射,迭代100次,得到最后两个状态值x
100
和y
100
;
[0033]
s204:令i=i+1,令新的初始值和控制参数为
[0034][0035]
将x0和p代入pwlcm,迭代ni次,得到最后两个状态值和然后将和作为新的x0和y0,代入duffing映射,迭代100次,得到最后两个状态值x
100
和y
100
;
[0036]
s205:重复步骤s203,直到i=len(k)-17,令i=i+3,17,令i=i+3,令新的初始值和控制参数为
[0037][0038]
设三维医学图像的大小为m
×n×
l,将x0和p代入pwlcm,首先迭代ni次,然后继续迭代mn+(l+1)(m+n)次,得到状态序列,记作w={wi},i=1,2,
…
,mn+(l+1)(m+n);
[0039]
s206:分割混沌序列w,生成大小为m
×
n的混沌矩阵x,以及长度为(l+1)(m+n)的混沌序列y,公式如下:
[0040][0041]
进一步地,在步骤s3中,具体包括以下步骤:
[0042]
s301:将长度为(l+1)(m+n)的混沌序列y等长分割为l+1部分,得到长度均为m+n的l组序列ri,i=1,2,
…
,l,以及序列s;
[0043]
s302:分别选取序列ri,i=1,2,
…
,l的首尾元素r
i,1
和r
i,m+n
,计算第i次二维广义arnold变换的参数ai和bi,公式如下:
[0044][0045]
s303:令i=1,代入参数a1和b1,对混沌矩阵x做二维广义arnold变换,生成矩阵q1,令i=i+1,将矩阵q1旋转180度,记作新的矩阵x,代入参数ai和bi,对混沌矩阵x做二维广义arnold变换,生成矩阵qi。重复此流程,直到i=l,生成l组矩阵qi,i=1,2,
…
,l;
[0046]
s304:分别对序列ri,i=1,2,
…
,l进行升序排序,公式如下:
[0047]
[valuei,indexi]=sort(ri)#(11)
[0048]
其中,valuei表示排序后的新序列,indexi表示valuei各项在原序列中的索引值。生成l组索引序列indexi,i=1,2,
…
,l:;
[0049]
s305:将明文图像pm×n×
l
进行切片,生成l组矩阵mati,i=1,2,
…
,l。令j=1;
[0050]
s306:根据步骤s304生成的索引序列indexi,i=1,2,
…
,l,分别选取矩阵mati的行或列,将选定的l组行或列拼接成一个序列,记作pl。如果索引值index
i,j
≤m,选取矩阵的第index
i,j
行;如果索引值index
i,j
>m,选取矩阵的第index
i,j-m列,对矩阵qi执行相同的操作,将选定的l组行或列拼接成一个序列,记作cl。
[0051]
s307:根据sj对序列cl进行排序,如果sj>0.5,对cl进行升序排序;否则,对cl进行降序排序;
[0052]
s308:根据排序后的cl对应原序列的索引,对序列pl进行排序,记作pl
′
;
[0053]
s309:根据步骤s306中选取的mati,i=1,2,
…
,l中的行或列对应的长度,将pl
′
拆分为l组,更新mati中相应的行或列;
[0054]
s310:令j=j+1,如果j≤m+n,转到步骤s306;否则,置乱结束,将l组矩阵mati,i=1,2,
…
,l重构成三维矩阵am×n×
l
。
[0055]
进一步地,在步骤s4中,具体包括以下步骤:
[0056]
s401:创建一个28×28
的二维矩阵,按数值的升序逐行初始化s盒。例如,第一行依次为0000,0001,0002,
…
,00ff;第二行依次为0100,0101,0102,
…
,01ff;最后一行依次为ff00,ff01,ff02,
…
,ffff;
[0057]
s402:将s盒中的每个元素映射为它在有限域gf(2
16
)中的乘法逆元,0000被映射为它自身;
[0058]
s403:将s盒中的每个元素的16个构成位记作(b
15
,b
14
,b
13
,b
12
,b
11
,b
10
,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0),分别对每个位作仿射变换。其中,ci表示值为c963(1100100101100011)的元素c的第i位,i=0,1,
…
,15,其中:
[0059][0060]
s404:将s盒划分为16块区域,然后将16块区域叠放,生成大小为26×26
×24
的立方s盒;
[0061]
s405:根据立方s盒,对三维矩阵am×n×
l
中的元素依次执行替换操作,对于给定的取值范围为[0,65535]的像素值a=(b
15
,b
14
,b
13
,b
12
,b
11
,b
10
,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0),其中bi∈{0,1},i=0,1,
…
,15,令x=(b
15
,b
14
,b
13
,b
12
,b
11
,b
10
),y=(b9,b8,b7,b6,b5,b4),z=(b3,b2,b1,b0),使用x,y和z查询立方s盒,得到一个值,用于替换原像素值。
[0062]
进一步地,在步骤s5中,具体包括以下步骤:
[0063]
s501:对混沌矩阵x中的各项x
ij
,i=1,2,
…
,m,j=1,2,
…
,n进行处理,生成矩阵z,具体方式如下:
[0064]zij
=(x
ij
×
10
16
)mod 65536#(13);
[0065]
s502:删除三维矩阵b的前面、左面以及上面,记作b
′
,使用sha-256函数计算哈希值,每32位分为一组,记作d,d=[d1,d2,
…
,d8]。其中,di={d
i1
,d
i2,
…
,d
i32
},i=1,2,
…
,8,计算混沌系统的初始值x0和控制参数p,具体方式如下:
[0066][0067]
s503:代入初始值x0和控制参数p,迭代pwlcm共m+n+l次,得到长度为m+n+l的混沌序列seq,对其中各项xi,i=1,2,
…
,m+n+l进行处理,生成序列o,以及初等元胞自动机演化的规则序列e和步数序列f,具体方式如下:
[0068]
oi=(xi×
10
16
)mod 65536#(15)
[0069][0070]fi
=(xi×
10
16
)mod 16+1#(17);
[0071]
s504:使用初等元胞自动机依次对b的前面、左面和上面进行演化。以b的前面为例,记作mat,具体方式如下:
[0072][0073]
其中,i=1,2,
…
,m,mati表示矩阵的第i行,f表示按行演化,ei和fi表示演化的规则和步数,o1表示序列o中长度为n的切片。依次对b的前面、左面和上面进行演化,方向分别为从上向下、从前向后和从左向右;
[0074]
s505:不包括b的前面、左面以及上面,从上向下、从左向右、从前向后,对b中的元素依次进行基于有限域gf(65537)的乘法运算,得到密文图像cm×n×
l
,具体方式如下:
[0075]ci,j,k
=(b
i,j,k
+1)
·
(c
i-1,j,k
+1)
·
(c
i,j-1,k
+1)
·
(c
i,j,k-1
+1)
·
(z
i,j
+1)-1#(19)。
[0076]
进一步地,还包括用于该方法的解密方法,解密方法包括以下步骤:
[0077]
步骤s01,重复执行步骤s1-s2;
[0078]
步骤s02,将待解密的密文图像,采用基于初等元胞自动机和有限域乘法的明文相关扩散算法,执行逆扩散操作;
[0079]
步骤s03,将逆扩散得到的三维矩阵,基于gf(2
16
)域,构造大小为26×26
×24
的立方s盒,执行逆替换操作;
[0080]
步骤s04,将逆替换得到的三维矩阵,采用基于多趟排序思想的高效置乱算法,执行逆置乱操作,完成密文图像解密。
[0081]
相比于现有技术,本发明的有益效果在于:
[0082]
本发明的图像加密方法使用了生物特征密钥,这是对通常使用比特流或浮点数字作为密钥的现有图像加密方法的一个突破,克服了传统方法中密钥无实际意义、长度固定、并且密钥空间有限的不足。用于加密和解密的生物特征密钥的类型和大小是任意的,可以根据具体的应用情形和安全级别进行配置。
[0083]
由于一些现有方法构造出的s盒的性能远低于aes中的s盒,本发明基于有限域gf(2
16
),构造了一个大小为26×26
×24
的立方s盒,能够对16位长表示的像素值(取值范围为[0,65535])进行替换,立方s盒为图像加密方法提供了良好的非线性性,能够抵御各种密码攻击。
附图说明
[0084]
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
[0085]
图1为本发明实施例中加密和解密的流程示意图;
[0086]
图2为本发明实施例中明文、密文和解密图的实施结果示意图。
具体实施方式
[0087]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0088]
实施例一
[0089]
参照图1,基于生物特征密钥和立方s盒的三维医学图像加密方法,包括以下步骤:
[0090]
步骤s1,将生物特征图像ki,经过平滑处理、提取边缘像素和计算哈希值,生成不定长的等效密钥流k;
[0091]
需要说明的是,生物特征图像包括人脸,虹膜,指纹和掌纹。
[0092]
步骤s2,将等效密钥流k,基于pwlcm与duffing映射的相互耦合,通过不断改变初始值、控制参数和迭代次数,对混沌系统进行多轮迭代,生成用于置乱和扩散操作的伪随机序列x和y;
[0093]
步骤s3,将待加密的三维医学图像,采用基于多趟排序思想的高效置乱算法,执行置乱操作;
[0094]
步骤s4,将置乱得到的三维矩阵a,基于gf(2
16
)域,构造大小为26×26
×24
的立方s盒,执行替换操作;
[0095]
需要说明的是,基于gf(2
16
)域,构造了一个大小为26×26
×24
的立方s盒,具有良好的非线性性,能够抵御各种攻击手段。
[0096]
步骤s5,将替换得到的三维矩阵b,采用基于初等元胞自动机和有限域乘法的明文相关扩散算法,执行扩散操作,生成密文图像。
[0097]
优选的,在步骤s1中,具体包括以下步骤:
[0098]
s101:使用高斯滤波器对生物特征图像进行平滑处理,去除多余细节,仅留下粗特征,具体方式如下:
[0099][0100]
s102:使用sobel算子对图像进行边缘像素提取,选定阈值t=127,进行二值化处理,得到模板图像kt,具体方式如下:
[0101][0102]
s103:对比图像的最低位平面与模板图像ki,从左到右、从上到下依次选取最低位平面对应ki上值为1相应位置的比特,组成比特流eb;
[0103]
s104:使用sha-256函数计算哈希值,然后对比特流进行分组。每32位分为一组,记作g,g=[g1,g2,
…
,g8],其中,gi={g
i1
,g
i2
,
…
,g
i32
},i=1,2,
…
,8,每4位分为一组,记作h,h=[h1,h2,
…
,h
64
]。其中,hi={h
i1
,h
i2
,
…
,h
i4
},i=1,2,
…
,64;
[0104]
s105:计算pwlcm的初始值x0和控制参数p,具体方式如下:
[0105][0106]
s106:代入x0和p,迭代pwlcm共64次,生成长度为64的混沌序列seq,对其中各项xi,i=1,2,
…
,64进行预处理,公式如下:
[0107]
xi=(xi×
10
16
)mod len(eb)#(4)
[0108]
其中,len(eb)表示比特流eb的长度;
[0109]
s107:以xi为起始位置,hi+1为切片长度,对比特流eb进行循环切片,此过程共执行64次。将每次的切片首尾相连,得到等效密钥流k。
[0110]
进一步优选的,在步骤s2中,具体包括以下步骤:
[0111]
s201:分别令单项的位长等于8和16,重叠地对等效密钥流k进行分组,生成序列u={ui},i=1,2,
…
,len(k)-7和y={vi},i=1,2,
…
,len(k)-15,公式如下:
[0112][0113]
s202:令i=1,令初始值和控制参数为
[0114][0115]
将x0和p代入pwlcm,迭代n1次,得到最后两个状态值和
[0116]
s203:将和作为新的x0和y0,代入duffing映射,迭代100次,得到最后两个状态值x
100
和y
100
;
[0117]
s204:令i=i+1,令新的初始值和控制参数为
[0118][0119]
将x0和p代入pwlcm,迭代ni次,得到最后两个状态值和然后将和作为新的x0和y0,代入duffing映射,迭代100次,得到最后两个状态值x
100
和y
100
;
[0120]
s205:重复步骤s203,直到i=len(k)-17,令i=i+3,17,令i=i+3,令新的初始值和控制参数为
[0121][0122]
设三维医学图像的大小为m
×n×
l,将x0和p代入pwlcm,首先迭代ni次,然后继续迭代mn+(l+1)(m+n)次,得到状态序列,记作w={wi},i=1,2,
…
,mn+(l+1)(m+n);
[0123]
s206:分割混沌序列w,生成大小为m
×
n的混沌矩阵x,以及长度为(l+1)(m+n)的混沌序列y,公式如下:
[0124][0125]
在本实施例中,使用了生物特征密钥,这是对通常使用比特流或浮点数字作为密钥的现有图像加密方法的一个突破,克服了传统方法中密钥无实际意义、长度固定、并且密钥空间有限的不足。用于加密和解密的生物特征密钥的类型和大小是任意的,可以根据具体的应用情形和安全级别进行配置。
[0126]
此外,由于一些现有方法构造出的s盒的性能远低于aes中的s盒,本发明基于有限域gf(2
16
),构造了一个大小为26×26
×24
的立方s盒,能够对16位长表示的像素值(取值范围为[0,65535])进行替换。立方s盒为图像加密方法提供了良好的非线性性,能够抵御各种密码攻击。
[0127]
实施例二
[0128]
参照图1-2,在实施例一的基础上,在步骤s3中,具体包括以下步骤:
[0129]
s301:将长度为(l+1)(m+n)的混沌序列y等长分割为l+1部分,得到长度均为m+n的l组序列ri,i=1,2,
…
,l,以及序列s;
[0130]
s302:分别选取序列ri,i=1,2,
…
,l的首尾元素r
i,1
和r
i,m+n
,计算第i次二维广义arnold变换的参数ai和bi,公式如下:
[0131][0132]
s303:令i=1,代入参数a1和b1,对混沌矩阵x做二维广义arnold变换,生成矩阵q1,令i=i+1,将矩阵q1旋转180度,记作新的矩阵x,代入参数ai和bi,对混沌矩阵x做二维广义arnold变换,生成矩阵qi。重复此流程,直到i=l,生成l组矩阵qi,i=1,2,
…
,l;
[0133]
s304:分别对序列ri,i=1,2,
…
,l进行升序排序,公式如下:
[0134]
[valuei,indexi]=sort(ri)#(11)
[0135]
其中,valuei表示排序后的新序列,indexi表示valuei各项在原序列中的索引值。生成l组索引序列indexi,i=1,2,
…
,l:;
[0136]
s305:将明文图像pm×n×
l
进行切片,生成l组矩阵mati,i=1,2,
…
,l。令j=1;
[0137]
s306:根据步骤s304生成的索引序列indexi,i=1,2,
…
,l,分别选取矩阵mati的行或列,将选定的l组行或列拼接成一个序列,记作pl。如果索引值index
i,j
≤m,选取矩阵的第index
i,j
行;如果索引值index
i,j
>m,选取矩阵的第index
i,j-m列,对矩阵qi执行相同的操作,将选定的l组行或列拼接成一个序列,记作cl。
[0138]
s307:根据sj对序列cl进行排序,如果sj>0.5,对cl进行升序排序;否则,对cl进行
降序排序;
[0139]
s308:根据排序后的cl对应原序列的索引,对序列pl进行排序,记作pl
′
;
[0140]
s309:根据步骤s306中选取的mati,i=1,2,
…
,l中的行或列对应的长度,将pl
′
拆分为l组,更新mati中相应的行或列;
[0141]
s310:令j=j+1,如果j≤m+n,转到步骤s306;否则,置乱结束,将l组矩阵mati,i=1,2,
…
,l重构成三维矩阵am×n×
l
。
[0142]
优选的,在步骤s4中,具体包括以下步骤:
[0143]
s401:创建一个28×28
的二维矩阵,按数值的升序逐行初始化s盒。例如,第一行依次为0000,0001,0002,
…
,00ff;第二行依次为0100,0101,0102,
…
,01ff;最后一行依次为ff00,ff01,ff02,
…
,ffff;
[0144]
s402:将s盒中的每个元素映射为它在有限域gf(2
16
)中的乘法逆元,0000被映射为它自身;
[0145]
s403:将s盒中的每个元素的16个构成位记作(b
i5
,b
14
,b
13
,b
12
,b
11
,b
10
,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0),分别对每个位作仿射变换。其中,ci表示值为c963(1100100101100011)的元素c的第i位,i=0,1,
…
,15,其中:
[0146][0147]
s404:将s盒划分为16块区域,然后将16块区域叠放,生成大小为26×26
×24
的立方s盒;
[0148]
s405:根据立方s盒,对三维矩阵am×n×
l
中的元素依次执行替换操作,对于给定的取值范围为[0,65535]的像素值a=(b
15
,b
14
,b
13
,b
12
,b
11
,b
10
,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0),其中bi∈{0,1},i=0,1,
…
,15,令x=(b
15
,b
14
,b
13
,b
12
,b
11
,b
10
),y=(b9,b8,b7,b6,b5,b4),z=(b3,b2,b1,b0),使用x,y和z查询立方s盒,得到一个值,用于替换原像素值。
[0149]
进一步优选的,在步骤s5中,具体包括以下步骤:
[0150]
s501:对混沌矩阵x中的各项x
ij
,i=1,2,
…
,m,j=1,2,
…
,n进行处理,生成矩阵z,具体方式如下:
[0151]zij
=(x
ij
×
10
16
)mod 65536#(13);
[0152]
s502:删除三维矩阵b的前面、左面以及上面,记作b
′
,使用sha-256函数计算哈希值,每32位分为一组,记作d,d=[d1,d2,
…
,d8]。其中,di={d
i1
,d
i2,
…
,d
i32
},i=1,2,
…
,8,计算混沌系统的初始值x0和控制参数p,具体方式如下:
[0153][0154]
s503:代入初始值x0和控制参数p,迭代pwlcm共m+n+l次,得到长度为m+n+l的混沌序列seq,对其中各项xi,i=1,2,
…
,m+n+l进行处理,生成序列o,以及初等元胞自动机演化的规则序列e和步数序列f,具体方式如下:
[0155]
oi=(xi×
10
16
)mod 65536#(15)
[0156][0157]fi
=(xi×
10
16
)mod 16+1#(17);
[0158]
s504:使用初等元胞自动机依次对b的前面、左面和上面进行演化。以b的前面为例,记作mat,具体方式如下:
[0159][0160]
其中,i=1,2,
…
,m,mati表示矩阵的第i行,f表示按行演化,ei和fi表示演化的规则和步数,o1表示序列o中长度为n的切片。依次对b的前面、左面和上面进行演化,方向分别为从上向下、从前向后和从左向右;
[0161]
s505:不包括b的前面、左面以及上面,从上向下、从左向右、从前向后,对b中的元素依次进行基于有限域gf(65537)的乘法运算,得到密文图像cm×n×
l
,具体方式如下:
[0162]ci,j,k
=(b
i,j,k
+1)
·
(c
i-1,j,k
+1)
·
(c
i,j-1,k
+1)
·
(c
i,j,k-1
+1)
·
(z
i,j
+1)-1#(19)。
[0163]
实施例三
[0164]
参照图1-2,在实施例一和实施例二结合的基础上,还包括用于该方法的解密方法,解密方法包括以下步骤:
[0165]
步骤s01,重复执行步骤s1-s2;
[0166]
步骤s02,将待解密的密文图像,采用基于初等元胞自动机和有限域乘法的明文相关扩散算法,执行逆扩散操作;
[0167]
步骤s03,将逆扩散得到的三维矩阵,基于gf(2
16
)域,构造大小为26×26
×24
的立方s盒,执行逆替换操作;
[0168]
步骤s04,将逆替换得到的三维矩阵,采用基于多趟排序思想的高效置乱算法,执行逆置乱操作,完成密文图像解密。
[0169]
从上述设计不难看出,该方案可应用于dicom标准的三维医学图像,其像素值用表示65536个灰度级的16位长编码。加密和解密过程仅由置乱、替换和扩散各1轮组成,可以在较短的时间内将三维医学图像加密为无法识别的随机图像,兼具高安全性和高效率,可知,加密方法能够处理最高位长为16的医学图像。
[0170]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
技术特征:
1.基于生物特征密钥和立方s盒的三维医学图像加密方法,其特征在于,包括以下步骤:步骤s1,将生物特征图像ki,经过平滑处理、提取边缘像素和计算哈希值,生成不定长的等效密钥流k;步骤s2,将等效密钥流k,基于pwlcm与duffing映射的相互耦合,通过不断改变初始值、控制参数和迭代次数,对混沌系统进行多轮迭代,生成用于置乱和扩散操作的伪随机序列x和y;步骤s3,将待加密的三维医学图像,采用基于多趟排序思想的高效置乱算法,执行置乱操作;步骤s4,将置乱得到的三维矩阵a,基于gf(2
16
)域,构造大小为26×26
×24
的立方s盒,执行替换操作;步骤s5,将替换得到的三维矩阵b,采用基于初等元胞自动机和有限域乘法的明文相关扩散算法,执行扩散操作,生成密文图像。2.根据权利要求1所述的基于生物特征密钥和立方s盒的三维医学图像加密方法,其特征在于,在步骤s1中,具体包括以下步骤:s101:使用高斯滤波器对生物特征图像进行平滑处理,去除多余细节,仅留下粗特征,具体方式如下:s102:使用sobel算子对图像进行边缘像素提取,选定阈值t=127,进行二值化处理,得到模板图像kt,具体方式如下:s103:对比图像的最低位平面与模板图像ki,从左到右、从上到下依次选取最低位平面对应ki上值为1相应位置的比特,组成比特流eb;s104:使用sha-256函数计算哈希值,然后对比特流进行分组,每32位分为一组,记作g,g=[g1,g2,
…
,g8],其中,g
i
={g
i1
,g
i2
,
…
,g
i32
},i=1,2,
…
,8,每4位分为一组,记作h,h=[h1,h2,
…
,h
64
],其中,h
i
={h
i1
,h
i2
,
…
,h
i4
},i=1,2,
…
,64;s105:计算pwlcm的初始值x0和控制参数p,具体方式如下:s106:代入x0和p,迭代pwlcm共64次,生成长度为64的混沌序列seq,对其中各项x
i
,i=1,2,
…
,64进行预处理,具体方式如下:x
i
=(x
i
×
10
16
)mod len(eb)#(4)其中,len(eb)表示比特流eb的长度;s107:以x
i
为起始位置,h
i
+1为切片长度,对比特流eb进行循环切片,此过程共执行64次,将每次的切片首尾相连,得到等效密钥流k。3.根据权利要求1所述的基于生物特征密钥和立方s盒的三维医学图像加密方法,其特
征在于,在步骤s2中,具体包括以下步骤:s201:分别令单项的位长等于8和16,重叠地对等效密钥流k进行分组,生成序列u={u
i
},i=1,2,
…
,len(k)-7和v={v
i
},i=1,2,
…
,len(k)-15,具体方式如下:s202:令i=1,令初始值和控制参数为将x0和p代入pwlcm,迭代n1次,得到最后两个状态值和s203:将和作为新的x0和y0,代入duffing映射,迭代100次,得到最后两个状态值x
100
和y
100
;s204:令i=i+1,令新的初始值和控制参数为将x0和p代入pwlcm,迭代n
i
次,得到最后两个状态值和然后将和作为新的x0和y0,代入duffing映射,迭代100次,得到最后两个状态值x
100
和y
100
;s205:重复步骤s203,直到i=len(k)-17,令i=i+3,17,令i=i+3,令新的初始值和控制参数为设三维医学图像的大小为m
×
n
×
l,将x0和p代入pwlcm,首先迭代n
i
次,然后继续迭代mn+(l+1)(m+n)次,得到状态序列,记作w={w
i
},i=1,2,
…
,mn+(l+1)(m+n);s206:分割混沌序列w,生成大小为m
×
n的混沌矩阵x,以及长度为(l+1)(m+n)的混沌序列y,具体方式如下:4.根据权利要求1所述的基于生物特征密钥和立方s盒的三维医学图像加密方法,其特征在于,在步骤s3中,具体包括以下步骤:s301:将长度为(l+1)(m+n)的混沌序列y等长分割为l+1部分,得到长度均为m+n的l组序列r
i
,i=1,2,
…
,l,以及序列s;s302:分别选取序列r
i
,i=1,2,
…
,l的首尾元素r
i,1
和r
i,m+n
,计算第i次二维广义arnold变换的参数a
i
和b
i
,具体方式如下:
s303:令i=1,代入参数a1和b1,对混沌矩阵x做二维广义arnold变换,生成矩阵q1,令i=i+1,将矩阵q1旋转180度,记作新的矩阵x,代入参数a
i
和b
i
,对混沌矩阵x做二维广义arnold变换,生成矩阵q
i
,重复此流程,直到i=l,生成l组矩阵q
i
,i=1,2,
…
,l;s304:分别对序列r
i
,i=1,2,
…
,l进行升序排序,具体方式如下:[valye
i
,index
i
]=sort(r
i
)#(11)其中,valye
i
表示排序后的新序列,index
i
表示value
i
各项在原序列中的索引值,生成l组索引序列index
i
,i=1,2,
…
,l;s305:将明文图像p
m
×
n
×
l
进行切片,生成l组矩阵mat
i
,i=1,2,
…
,l,令j=1;s306:根据步骤s304生成的索引序列index
i
,i=1,2,
…
,l,分别选取矩阵mat
i
的行或列,将选定的l组行或列拼接成一个序列,记作pl,如果索引值index
i,j
≤m,选取矩阵的第index
i,j
行;如果索引值index
i,j
>m,选取矩阵的第index
i,j-m列,对矩阵q
i
执行相同的操作,将选定的l组行或列拼接成一个序列,记作cl;s307:根据s
j
对序列cl进行排序,如果s
j
>0.5,对cl进行升序排序;否则,对cl进行降序排序;s308:根据排序后的cl对应原序列的索引,对序列pl进行排序,记作pl
′
;s309:根据步骤s306中选取的mat
i
,i=1,2,
…
,l中的行或列对应的长度,将pl
′
拆分为l组,更新mat
i
中相应的行或列;s310:令j=j+1,如果j≤m+n,转到步骤s306;否则,置乱结束,将l组矩阵mat
i
,i=1,2,
…
,l重构成三维矩阵a
m
×
n
×
l
。5.根据权利要求1所述的基于生物特征密钥和立方s盒的三维医学图像加密方法,其特征在于,在步骤s4中,具体包括以下步骤:s401:创建一个28×28
的二维矩阵,按数值的升序逐行初始化s盒,第一行依次为0000,0001,0002,
…
,00ff;第二行依次为0100,0101,0102,
…
,01ff;最后一行依次为ff00,ff01,ff02,
…
,ffff,依此类推;s402:将s盒中的每个元素映射为它在有限域gf(2
16
)中的乘法逆元,0000被映射为它自身;s403:将s盒中的每个元素的16个构成位记作(b
15
,b
14
,b
13
,b
12
,b
11
,b
10
,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0),分别对每个位作仿射变换,其中,c
i
表示值为c963(1100100101100011)的元素c的第i位,i=0,1,
…
,15,其中:s404:将s盒划分为16块区域,然后将16块区域叠放,生成大小为26×26
×24
的立方s盒;s405:根据立方s盒,对三维矩阵a
m
×
n
×
l
中的元素依次执行替换操作,对于给定的取值范围为[0,65535]的像素值a=(b
15
,b
14
,b
13
,b
12
,b
11
,b
10
,b9,b8,b7,b6,b5,b4,b3,b2,b1,b0),其中b
i
∈{0,1},i=0,1,
…
,15,令x=(b
15
,b
14
,b
13
,b
12
,b
11
,b
10
),y=(b9,b8,b7,b6,b5,b4),z=(b3,b2,b1,b0),使用x,y和z查询立方s盒,得到一个值,用于替换原像素值。
6.根据权利要求1所述的基于生物特征密钥和立方s盒的三维医学图像加密方法,其特征在于,在步骤s5中,具体包括以下步骤:s501:对混沌矩阵x中的各项x
ij
,i=1,2,
…
,m,j=1,2,
…
,n进行处理,生成矩阵z,具体方式如下:z
ij
=(x
ij
×
10
16
)mod 65536#(13);s502:删除三维矩阵b的前面、左面以及上面,记作b
′
,使用sha-256函数计算哈希值,每32位分为一组,记作d,d=[d1,d2,
…
,d8],其中,d
i
={d
i1
,d
i2
,
…
,d
i32
},i=1,2,
…
,8,计算混沌系统的初始值x0和控制参数p,具体方式如下:s503:代入初始值x0和控制参数p,迭代pwlcm共m+n+l次,得到长度为m+n+l的混沌序列seq,对其中各项x
i
,i=1,2,
…
,m+n+l进行处理,生成序列o,以及初等元胞自动机演化的规则序列e和步数序列f,具体方式如下:o
i
=(x
i
×
10
16
)mod 65536#(15)f
i
=(x
i
×
10
16
)mod 16+1#(17);s504:使用初等元胞自动机依次对b的前面、左面和上面进行演化,以b的前面为例,记作mat,具体方式如下:其中,i=1,2,
…
,m,mat
i
表示矩阵的第i行,f表示按行演化,e
i
和f
i
表示演化的规则和步数,o1表示序列o中长度为n的切片,依次对b的前面、左面和上面进行演化,方向分别为从上向下、从前向后和从左向右;s505:不包括b的前面、左面以及上面,从上向下、从左向右、从前向后,对b中的元素依次进行基于有限域gf(65537)的乘法运算,得到密文图像c
m
×
n
×
l
,具体方式如下:c
i,j,k
=(b
i,j,k
+1)
·
(c
i-1,j,k
+1)
·
(c
i,j-1,k
+1)
·
(c
i,j,k-1
+1)
·
(z
i,j
+1)-1#(19)。7.根据权利要求1所述的基于生物特征密钥和立方s盒的三维医学图像加密方法,其特征在于,还包括用于该方法的解密方法,解密方法包括以下步骤:步骤s01,重复执行步骤s1-s2;步骤s02,将待解密的密文图像,采用基于初等元胞自动机和有限域乘法的明文相关扩散算法,执行逆扩散操作;步骤s03,将逆扩散得到的三维矩阵,基于gf(2
16
)域,构造大小为26×26
×24
的立方s盒,执行逆替换操作;步骤s04,将逆替换得到的三维矩阵,采用基于多趟排序思想的高效置乱算法,执行逆置乱操作,完成密文图像解密。
技术总结
本发明公开了基于生物特征密钥和立方S盒的三维医学图像加密方法,包括以下步骤:步骤S1,将生物特征图像KI,经过平滑处理、提取边缘像素和计算哈希值,生成不定长的等效密钥流K;步骤S2,将等效密钥流K,基于PWLCM与Duffing映射的相互耦合,对混沌系统进行多轮迭代,生成用于置乱和扩散操作的伪随机序列X和Y;步骤S3,执行置乱操作;步骤S4,执行替换操作;步骤S5,执行扩散操作,生成密文图像。本发明使用生物特征密钥,克服了传统方法中密钥无实际意义、长度固定、并且密钥空间有限的不足。立方S盒能够对16位长表示的像素值进行替换,提供了良好的非线性性,该图像加密方法能够抵御各种密码攻击。密码攻击。密码攻击。
技术研发人员:薛茹 刘云皓
受保护的技术使用者:西藏民族大学
技术研发日:2023.08.11
技术公布日:2023/10/15
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种碳化渣低温氯化提钛的方法 下一篇:通用矩阵乘计算优化方法、装置及处理器与流程