乘法和取模运算的多轮加密算法"/>
方形图像加密之置乱加密:基于矩阵乘法和取模运算的多轮加密算法
索引
- 算法思想与条件分析
- 整 [ 0 , N − 1 ] × [ 0 , N − 1 ] \left[ 0,N-1 \right]\times \left[ 0,N-1 \right] [0,N−1]×[0,N−1]上满射性质分析
- 整 [ 0 , N − 1 ] × [ 0 , N − 1 ] \left[ 0,N-1 \right]\times \left[ 0,N-1 \right] [0,N−1]×[0,N−1]上单射性质分析
- 解密可行性
- 一轮加解密算法步骤
- 多轮加解密算法策略
- Matlab代码
置乱加密:仅改变像素位置的加密。
算法思想与条件分析
给定一幅 N × N N\times N N×N的明文图像 I I I,对其进行置乱加密。考虑将明文图像 I I I的 ( i , j ) \left( i,j \right) (i,j)像素处的信息赋予到密文图像 C C C的 ( m , n ) \left( m,n \right) (m,n)像素, i , j , m , n ∈ { 0 , 1 , ⋯ , N − 1 } i,j,m,n\in \left\{ 0,1,\cdots ,N-1 \right\} i,j,m,n∈{0,1,⋯,N−1},赋予过程考虑采用矩阵乘法和取模运算的方式。
( m n ) = ( a b c d ) ( i j ) m o d N \left( \begin{matrix} m \\ n \\ \end{matrix} \right)=\left( \begin{matrix} a & b \\ c & d \\ \end{matrix} \right)\left( \begin{matrix} i \\ j \\ \end{matrix} \right)\text{ }\bmod N (mn)=(acbd)(ij) modN
其中 a , b , c , d a,b,c,d a,b,c,d均为整数。
理想的加密效果是:
- 密文图像 C C C是一幅“完整的”图像,即 C C C的规格也是 N × N N\times N N×N,并且每个像素处的信息 C ( m , n ) C\left( m,n \right) C(m,n)非空,来自于明文图像 I I I中的某个像素处的信息 I ( i , j ) I\left( i,j \right) I(i,j)。
- 不发生信息覆盖和重叠,即明文图像 I I I中两个不同像素处的信息 I ( i 1 , j 1 ) , I ( i 2 , j 2 ) I\left( {{i}_{1}},{{j}_{1}} \right),I\left( {{i}_{2}},{{j}_{2}} \right) I(i1,j1),I(i2,j2), ( i 1 , j 1 ) ≠ ( i 2 , j 2 ) \left( {{i}_{1}},{{j}_{1}} \right)\ne \left( {{i}_{2}},{{j}_{2}} \right) (i1,j1)=(i2,j2),不能赋向密文图像 C C C中同一个像素 ( m , n ) \left( m,n \right) (m,n)。
由赋予过程的表达式我们得到了等价的同余式组
{ m ≡ a i + b j m o d N n ≡ c i + d j m o d N \left\{ \begin{aligned} & m\equiv ai+bj\text{ }\bmod N \\ & n\equiv ci+dj\text{ }\bmod N \\ \end{aligned} \right. {m≡ai+bj modNn≡ci+dj modN
整 [ 0 , N − 1 ] × [ 0 , N − 1 ] \left[ 0,N-1 \right]\times \left[ 0,N-1 \right] [0,N−1]×[0,N−1]上满射性质分析
效果1实质上等价于要求整 [ 0 , N − 1 ] × [ 0 , N − 1 ] \left[ 0,N-1 \right]\times \left[ 0,N-1 \right] [0,N−1]×[0,N−1]上的映射
T : { ( a , b ) ∈ Z 2 : 0 ≤ a , b ≤ N − 1 } → { ( a , b ) ∈ Z 2 : 0 ≤ a , b ≤ N − 1 } ( i , j ) → ( m , n ) \mathcal{T}:\begin{matrix} \left\{ \left( a,b \right)\in {{\mathbb{Z}}^{2}}:0\le a,b\le N-1 \right\} & \to & \left\{ \left( a,b \right)\in {{\mathbb{Z}}^{2}}:0\le a,b\le N-1 \right\} \\ \left( i,j \right) & \to & \left( m,n \right) \\ \end{matrix} T:{(a,b)∈Z2:0≤a,b≤N−1}(i,j)→→{(a,b)∈Z2:0≤a,b≤N−1}(m,n)
是满射。因此要求 ∀ m 0 , n 0 ∈ { 0 , 1 , ⋯ , N − 1 } \forall {{m}_{0}},{{n}_{0}}\in \left\{ 0,1,\cdots ,N-1 \right\} ∀m0,n0∈{0,1,⋯,N−1},关于 i , j i,j i,j的同余式组
{ a i + b j ≡ m 0 m o d N c i + d j ≡ n 0 m o d N \left\{ \begin{aligned} & ai+bj\equiv {{m}_{0}}\text{ }\bmod N \\ & ci+dj\equiv {{n}_{0}}\text{ }\bmod N \\ \end{aligned} \right. {ai+bj≡m0 modNci+dj≡n0 modN
有解。
将同余式组作以下推理
① { a i + b j ≡ m 0 m o d N c i + d j ≡ n 0 m o d N ⇒ { { a c i + b c j ≡ c m 0 m o d N a c i + a d j ≡ a n 0 m o d N ⇒ ( b c − a d ) j ≡ c m 0 − a n 0 m o d N { a d i + b d j ≡ d m 0 m o d N b c i + b d j ≡ b n 0 m o d N ⇒ ( a d − b c ) i ≡ d m 0 − b n 0 m o d N } ② ①\left\{ \begin{aligned} & ai+bj\equiv {{m}_{0}}\text{ }\bmod N \\ & ci+dj\equiv {{n}_{0}}\text{ }\bmod N \\ \end{aligned} \right.\text{ }\Rightarrow \text{ }\left\{ \left. \begin{aligned} & \left\{ \begin{aligned} & aci+bcj\equiv c{{m}_{0}}\text{ }\bmod N \\ & aci+adj\equiv a{{n}_{0}}\text{ }\bmod N \\ \end{aligned} \right.\text{ }\Rightarrow \text{ }\left( bc-ad \right)j\equiv c{{m}_{0}}-a{{n}_{0}}\text{ }\bmod N \\ & \left\{ \begin{aligned} & adi+bdj\equiv d{{m}_{0}}\text{ }\bmod N \\ & bci+bdj\equiv b{
更多推荐
方形图像加密之置乱加密:基于矩阵乘法和取模运算的多轮加密算法
发布评论