-
数字图像置乱
全国大学生数学建模竞赛
承
诺
书
我们仔细阅读了中国大学生数学建模竞赛的竞赛规则、
我们完全明白
,
在竞赛开始后参赛队员不能以
任何方式
(
包括电话、电子邮件、网上
咨询等
)
与队外的任何人
(
包括指导教师
)
研究、讨论与赛题有关的问题。<
/p>
我们知道
,
抄
袭别人的成果就是违反竞赛规则的
,
如果引用别人的成果或其
她公开的
资料
(
包括网上查到的资料<
/p>
),
必须按照规定的参考文献的表述方式在正文引用处与参考
p>
文献中明确列出。
我们郑重承诺
,
严格遵守竞赛规则
,
以保证竞赛的公正、
公平性。
如有违反竞赛规则的
行为
,
我们将受到严肃处理。
我们参赛选择的题号就是
(
从
p>
A/B/C/D
中选择一项填写
):
A
我
们的参
赛报名号为
(
如果赛区设置报名号的话
):
所属学
校
(
请填写完整的全名
):
福州大学
参赛队员
(
打印并签名
) :
1
、
2
、
3
、
詹小青
031201206
郑雅娟
031201207
陈丹凡
031201208
指导教师或指导教师组负责人
(
打印并签名
):
王宏健
日期
: 2014
年
4
月
26
日
数字图像置乱
[
摘要
]
把一幅数字图像变换为一幅
杂乱无章的加密图像的过程就就是数字图像的置乱。
把置乱后的图像恢复为原始图像的过
程为图像复原。这就是一个加密———解密过程。
加密过程可
以描述如下
:
明文→加密器→密文
,<
/p>
我们采用
HILL
密码
< br>,
因为所提供图
像为
256*2
56
的
,
所以可以用
< br>MATLAB
将其转化成在模
256
下的矩阵
G
256
?
256
,
为了计算方
便<
/p>
把
它
分
割
成
32
个
8*8
p>
的
小
矩
阵
G
8
?
8
。
然
后
< br>选
取
可
逆
整
数
矩
阵
0
数字图像置乱
< br>A
8
?
8
?
1
?
0
?
?
2
?
0
p>
?
?
?
2
?
?
3
?
3
?
?
2
< br>?
1
0
1
2
0
2
2
0
2
1
1
1
p>
3
1
0
0
0
1
0
3
1
3
0
2
< br>1
2
3
0
2
2
1
0
2
1
0
0
2
p>
1
2
1
1
0
1
2
1
2
0
0
1
< br>?
2
?
?
2
?
?
2
?
为加密过程的密钥
,
其中
A
?
239
与
256
互质。再
1
?
?
2
?
1
?
?
1
?
?
将
32
< br>个八阶方阵分别左乘
“密钥”
A
8
?
8
,
则
B
8
?
8
p>
?
AG
8
?
8
mod(256)
,
再将
32
个
B
8
?
8
整
合在一起即可得到
B
(
其中
B
为置乱后图像的明文
信息
)
。
用
M
ATLAB
编程后就可以得到
置乱后的图像。
< br>
解密过程可以描述如下
:
密文
→普通信道→解密器→明文
,
解密过程就是加密过程
的逆过程。先将
B
分割成
32
个
8*8
的小矩阵
Q
8
?
8
,
用
MATLAB
计算出矩阵
p>
A
的逆
?
-0.1172
-0.3389 0.2762 0.0502 0.1506 -0.2050
0.0753
0.3264
?
?
-0.8577 0.0544 -0.1925 0.5105 0.5314
-0.2510 0.7657 -0.6820
?
?
?
?
-0.8661
-0.1841 0.1130 0.
6569 0.9707
-0.7657 0.4854 -0.2301
?
?
?
-0.6067 0.2092
-0.3556 0.1172 0.3515 0.1883 0.1757
-0.2385
?
A
?
1
?
?
?
-0.2678 0.3682 -0.2259 -0.3138 0.0586 0.5314 0.0293 -0.5397
?
?
?
?
0.8870 0.2803 -0.3766 -0.5230 -0.5690
0.5523 -0.2845
0.1004
?
?
1.6402 -0.2552 0.1339 -0.7029 -1.1088
0.8703 -1.0544 0.4310
?
?
?
?
?
0.5607 -0.0209 0.5356 0.1883 -0.4351
-0.5188 -0.2176 0.7238
?
?
。然后由
B
8
?
8
?
AG
8
?
8
mod(256)
可得
:
G
8
?
8
?
A
B
8
?
8
mod(256)
,
根据该公式可以用
MATLAB
计算出
G
8
?
8
。再将解出来的
p>
32
个
G
8
?
8
整合起来得到
数字矩阵
G
256
?
< br>256
即为复原
后图像的明文信息。
关键词
:
矩阵
< br>,
置乱与复原
,
加密与解密
p>
,HILL
密码
,
MATLAB
一、
问题重述
随着网络技术的高速发展
,
大量的个人信息与公众信息在网上
传播
,
使得信息安全
显得日趋重要。<
/p>
图像信息生动形象
,
就是我们表达信息的
常用手段之一
,
因此图像信息安
全十分
重要。通常我们在计算机或者网络上存储或者传输的图像都就是数字图像
(Digita
l
Image)
。
一幅数字图像
p>
P
可以瞧作就是一个矩阵
P
,
矩阵的元素所在的行与列
,
就就是图像显示在计算机屏幕上的诸像素点的坐标
,
元素的数值
就就是像素的灰度
(
通
常有
256
个等级
,
用整数<
/p>
0
至
255
表示
)
。如有的卫星图片大小为
2340<
/p>
×
3240,
约
758
万
1
?
1
数字图像置乱
像素。
针对数字图像的安全保密问题
,
信息隐藏与伪装技术就是其主要手段
,
其中包括如
p>
下几个重要课题
:(1)
数字图像的置乱技
术
;(2)
数字图像的分存技术
;(3
)
数字图像的隐
藏技术
;(4)
数字图像的水印技术。
让我们考虑数字图像
的置乱问题。
把一幅数字图像变换为一幅杂乱无章的加密图像
的
过程就就是数字图像的置乱
(Digital Image Scrambling)<
/p>
。把置乱后的图像恢复为原
始图像的过程为图像复原。这就是一个
加密——解密过程。
考虑以下问题
:
(1)
设计一种数字图像的置乱算法
(
包括复原
)
。
(2)
在计算机上编程实现算法
,
p>
并用题目所附的图像
(Lena
、
bmp)
给出置乱后的图像。
(3)
分析置乱算法的优缺点。
二、问题分析
该问题我们小组经讨论
后决定用
HILL
密码进行加密。
Hi
ll
密码就是一种传统的密
码体系
,<
/p>
它的加密过程可以描述如下
:
明文→加密
器→密文→普通信道→解密器→明文。
该图片的加密过程可利用
HILL
密码来实现。先用
MATLAB
软件将
256
?
256
的图片的信
息转化为明文信息
,
即采集成数字矩阵
G
256
p>
?
256
来表示
。然后选择一个在模
256
下的可
逆整
数方阵
A
8
?
8
作为
Hill
密码的加密矩阵
,
它就是这个加密体制的
“密钥”
。
由于数字矩
阵
G
256
?
256
太过
庞大
,
我们采用矩阵分块的方式分为
3
2
个可逆的八阶方阵
Q
8
?
8
。
< br>再将
32
个八阶方阵分别左乘“密钥”
< br>A
8
?
8
,
则
B
8
?
8
?
AG
8
?
8
mod(256)
,
再将
32
个
B
8
?
8
整合
在一起得到
B
。用
MATLAB
编程后
便可以得到置乱后的图像。这就就是图片的置乱算法
的思路。
解密过程即为上述过程的逆过程。同样将
B
分成
32
个八阶矩阵
,
在模
256
运算下
p>
解方程组
G
8
?<
/p>
8
?
A
B
8
?
8
mod(25
6)
的问题
,
同样用
< br>MATLAB
计算出矩阵
A
<
/p>
的逆
,
再将
解出
来的
32
个
G
8
?
8
整合
起来得到数字矩阵
G
。这就就是图片的复原算法的思路。
?
1
三、模型假设
(1)
程序中使用的图形为题目所提供
,
无损坏
;
(2)
图像规格大小为
256*256
;
(3)
图像为灰度图片
,
非彩色图片。
四、
模型的建立与求解
问题一
:
2
数字图像置乱
数字图像置乱原理的具体框图如下
:
密钥
A
密钥
A
<
/p>
?
1
待置乱图像
置乱
置乱图像
复原
复原图像
数字图像的置乱算法
:(
具体程序详见附录二
< br>)
用
MATLAB
p>
软件将
256
?
2
56
的图片的信息转化为明文信息
,
即采集成数字矩阵
G
256
?
256
来表示
,
采用矩阵分块的方式分为
32
个可逆的八阶方阵
G
8
?<
/p>
8
。
(
具体矩阵
与过程
详见附录一
)
选择可逆整数方阵
A
8
?
8
?
1
?<
/p>
0
?
?
2
?
0
?
?
?
2
?
?
3
?
3
?
?
?
2
1
0
1
2
0
2<
/p>
2
0
2
1
1
1
3
1
0
0
0
1
0
3
1
3
0
2
1
2
3
0
2
2
1<
/p>
0
2
1
0
0
2
1
2
1
1
0
1
2
1
2
0
0
1
?
2
?
?
2
?
?<
/p>
2
?
1
?
作为加密矩阵
,
用
M
ATLAB
?
2
?
1
?
?
1
?
?
可以计算出
A
?
239
(
程序见附录三
)
与
256
互质
p>
,
所以
A
就是这个加密体制的
“密钥”
。
将
32
个八阶方阵分别左
乘
“密钥”
A
8
?
8
,
则
B
8
?
8
?<
/p>
AG
8
?
8
p>
mod(256)
,
再将
< br>32
个
B
8
?
8
整
合在一起即可得到
B
(
其中
B
为置乱后图像的明文信息
)
。
用
MATLAB
编程后就可以得到
置乱后的图像。
数字图像的复原算法
:(
具体程序同样详见附录二
p>
)
同样将
B
分
成
32
个八阶矩阵
,
< br>因为
B
就是在模
256
下的矩阵
,
所以问题转化成在模
256
的运算下解方程组
G
8
?
8
?
A
p>
B
8
?
8
mod(256)
的问题
,
同样用
MATLAB
计算出矩阵
A
的逆
:(
程
序见附录三
)
?
1
3