1、数字图像置乱全国大学生数学建模竞赛承 诺 书我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。我们参赛选择的题号是(从A/B/C/D中选择一项填写): A 我们的参赛报名号为(如果赛区设置报名
2、号的话): 所属学校(请填写完整的全名): 福州大学 参赛队员 (打印并签名) : 1. 詹小青 031201206 2. 郑雅娟 031201207 3. 陈丹凡 031201208 指导教师或指导教师组负责人 (打印并签名): 王宏健 日期: 2014 年 4 月 26 日数字图像置乱 摘要把一幅数字图像变换为一幅杂乱无章的加密图像的过程就是数字图像的置乱。把置乱后的图像恢复为原始图像的过程为图像复原。这是一个加密解密过程。加密过程可以描述如下:明文加密器密文,我们采用HILL密码,因为所提供图像为256*256的,所以可以用MATLAB将其转化成在模256下的矩阵 ,为了计算方便把它分割
3、成32个8*8的小矩阵 。然后选取可逆整数矩阵为加密过程的密钥,其中 与256互质。再将32个八阶方阵分别左乘“密钥” ,则,再将32个 整合在一起即可得到(其中 为置乱后图像的明文信息)。用MATLAB编程后就可以得到置乱后的图像。解密过程可以描述如下:密文普通信道解密器明文,解密过程是加密过程的逆过程。先将分割成32个8*8的小矩阵,用MATLAB计算出矩阵 的逆 。然后由可得:,根据该公式可以用MATLAB计算出 。再将解出来的32个 整合起来得到数字矩阵即为复原后图像的明文信息。关键词:矩阵,置乱与复原,加密与解密,HILL密码, MATLAB1、问题重述随着网络技术的高速发展,大量的
4、个人信息和公众信息在网上传播,使得信息安全显得日趋重要。图像信息生动形象,是我们表达信息的常用手段之一,因此图像信息安全十分重要。通常我们在计算机或者网络上存储或者传输的图像都是数字图像(Digital Image)。一幅数字图像P可以看作是一个矩阵P,矩阵的元素所在的行与列,就是图像显示在计算机屏幕上的诸像素点的坐标,元素的数值就是像素的灰度(通常有256个等级,用整数0至255表示)。如有的卫星图片大小为23403240,约758万像素。针对数字图像的安全保密问题,信息隐藏与伪装技术是其主要手段,其中包括如下几个重要课题:(1)数字图像的置乱技术;(2)数字图像的分存技术;(3)数字图像的
5、隐藏技术;(4)数字图像的水印技术。让我们考虑数字图像的置乱问题。把一幅数字图像变换为一幅杂乱无章的加密图像的过程就是数字图像的置乱(Digital Image Scrambling)。把置乱后的图像恢复为原始图像的过程为图像复原。这是一个加密解密过程。考虑以下问题:(1)设计一种数字图像的置乱算法(包括复原)。(2)在计算机上编程实现算法,并用题目所附的图像(Lena.bmp)给出置乱后的图像。(3)分析置乱算法的优缺点。二、问题分析该问题我们小组经讨论后决定用HILL密码进行加密。Hill密码是一种传统的密码体系,它的加密过程可以描述如下:明文加密器密文普通信道解密器明文。该图片的加密过程
6、可利用HILL密码来实现。先用MATLAB软件将 的图片的信息转化为明文信息,即采集成数字矩阵 来表示。然后选择一个在模256下的可逆整数方阵作为Hill密码的加密矩阵,它是这个加密体制的“密钥”。由于数字矩阵太过庞大,我们采用矩阵分块的方式分为32个可逆的八阶方阵 。再将32个八阶方阵分别左乘“密钥” ,则,再将32个 整合在一起得到 。用MATLAB编程后便可以得到置乱后的图像。这就是图片的置乱算法的思路。解密过程即为上述过程的逆过程。同样将 分成32个八阶矩阵,在模256运算下解方程组的问题,同样用MATLAB计算出矩阵 的逆,再将解出来的32个 整合起来得到数字矩阵。这就是图片的复原算
7、法的思路。 三、模型假设(1)程序中使用的图形为题目所提供,无损坏;(2)图像规格大小为256*256;(3)图像为灰度图片,非彩色图片。四、 模型的建立和求解问题一:数字图像置乱原理的具体框图如下:数字图像的置乱算法:(具体程序详见附录二) 用MATLAB软件将 的图片的信息转化为明文信息,即采集成数字矩阵 来表示,采用矩阵分块的方式分为32个可逆的八阶方阵。(具体矩阵和过程详见附录一) 选择可逆整数方阵作为加密矩阵,用MATLAB可以计算出(程序见附录三) 与256互质,所以 是这个加密体制的“密钥”。 将32个八阶方阵分别左乘“密钥” ,则,再将32个 整合在一起即可得到(其中 为置乱后
8、图像的明文信息)。用MATLAB编程后就可以得到置乱后的图像。数字图像的复原算法:(具体程序同样详见附录二) 同样将 分成32个八阶矩阵,因为是在模256下的矩阵,所以问题转化成在模256的运算下解方程组的问题,同样用MATLAB计算出矩阵 的逆:(程序见附录三) ,然后解方程组,再将解出来的32个小方阵 整合起来得到数字矩阵,即为置乱前图像的明文信息,图像就得到复原。问题二:算法的实现: 置乱前的图像 置乱后的图像 复原后的图像问题三:算法的优缺点详见“模型的评价”6、模型的评价(1) 此方法原理简单,容易实现,运算量小;(2)置乱后的图像不够加密,置乱度不够高,安全性仍需加强;(3)方程变
9、换过于简单,容易找到逆运算,安全性不高;(4)本方法只适用于256*256规格的图片。七、模型改进方向 本方法利用HILL密码原理简单,容易实现,但加密过于简单,置乱效果较好。如有必要,可对图像进行多次加密和相应的多次解密,安全性会更强。但是由于图像规格是256*256的,对其他规格的图像无法加密与解密,在实用性方面还有许多需要改善的地方。今后数字图像置乱技术的研究方向将侧重于完善图像置乱理论,提高置乱算法的安全性、稳健性,研究其在实际网络中的应用,建立相关标准等。附件程序:附录一(只截取部分)附录二(加密和复原程序) %加密 G=imread(E:数学模型讲义题目附图lena.bmp); w
10、0=double(G); m,n=size(w0); B=mat2cell(w0,ones(256/8,1)*8,ones(256/8,1)*8);%将256*256矩阵分成32个8*8的小矩阵 A=1 1 2 0 1 2 1 1;0 0 1 1 2 1 0 2;2 1 1 0 3 0 1 2;0 2 1 3 0 0 2 2;2 0 3 1 2 2 1 1;3 2 1 3 2 1 2 2;3 2 0 0 1 2 0 1;2 0 0 2 0 1 0 1; for i=1:32*32; Bi=mod(A*Bi,n);%Bi为加密一次后的32个小矩阵 X=cell2mat(B);%将32个小矩阵合成
11、256*256矩阵 end P=uint8(X);%P为置乱后图像的矩阵 imshow(P) %复原 X=double(P); B=mat2cell(X,ones(256/8,1)*8,ones(256/8,1)*8);%将256*256矩阵分成32个8*8的小矩阵 a=round(det(A);%取整数 n=256; c=mod_daoshu(a,n); C=a*inv(A); invA=c*C; for i=1:32*32; Bi=mod(invA*Bi,n);%Bi为加密一次后的32个小矩阵 Y=cell2mat(B);%将32个小矩阵合成256*256矩阵 end Q=uint8(Y);%Q为复原后图像的矩阵 imshow(Q)定义函数mod_daoshu(a,n)的程序如下:function b=mod_daoshu(a,m)if gcd(a,m)=1 disp(Error);else for i=1:m-1 if mod(i*a,m)=1; b=i; break end; endend 附录三
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1