抽象代数精解【6】

简单密码算法

模运算数学定义

模m剩余类集 Z m Z_m Zm
设∀a,b∈Z(整数),m为正整数
m|b-a ,称a R b
R满足反身性、对称性、传递性
1、R为同余关系,也是Z的一个等价关系。
2、记为a≡b(mod m),即: a同余于b,模m。
3、[a]为整数集Z的一个模m剩余类
(1) [a]可记为 a ‾ \overline {a} a
(2) 对应的商集为Z的模m剩余类集,记作 Z m Z_m Zm


  • 1、 Z m Z_m Zm 上定义加法和乘法,都具有运算封闭性、符合交换律和结合律。
    2、加法有逆元和单位元,乘法只有单位元。
    3、加法逆元是 m − a ‾ \overline{m-a} ma,单位元是 0 ‾ \overline{0} 0 ,加法构成群。
    4、乘法单位元是 1 ‾ \overline{1} 1,乘法无逆元,因此就乘法运算只能是半群,乘法构成半群。
    5、乘法与加法存在分配律
    ( a + b ) c = ( a c ) + ( b c ) (a+b)c=(ac)+(bc) (a+b)c=(ac)+(bc)
    c ( a + b ) = ( c a ) + ( c b ) c(a+b)=(ca)+(cb) c(a+b)=(ca)+(cb)
    因此构成了环。

置换

移位

  • 定义移位映射
    e k ( x ) = ( x + k ) m o d 26 d k ( y ) = ( y − k ) m o d 26 e k 、 d k 互为逆映射, e k 为加密, d k 为解密。 注意,这里的 e k 、 d k 映射为单射。 e_k(x)=(x+k) \quad mod \quad 26\\ d_k(y)=(y-k) \quad mod \quad 26\\ e_k、d_k互为逆映射,e_k为加密,d_k为解密。 \\注意,这里的e_k、d_k映射为单射。 ek(x)=(x+k)mod26dk(y)=(yk)mod26ekdk互为逆映射,ek为加密,dk为解密。注意,这里的ekdk映射为单射。
    设k=3,x为D,则加密结果为G,y为G,解密结果为D。
  • 实质上移位也是一种置换。

设X为一个集合,含有n个元素,每个元素对应原文的一个字母(或一个字节),如果是字母则有26个,如果是字节则有256( 2 8 2^8 28)个。
定义 S n = { φ ∣ φ 是 X 上的双射 } 称 s n 中的元素为 n 元置换。 令集合 X = { 1 , 2 , 3 , . . . , n } ,任意置换 φ ∈ S n ,可表示为如下形式 φ = ( 1 2 . . . n φ ( 1 ) φ ( 2 ) . . . φ ( n ) ) 此处也可设 X = { 0 , 1 , 2 , 3 , . . . , n − 1 } φ = ( 0 1 . . . n − 1 φ ( 0 ) φ ( 1 ) . . . φ ( n − 1 ) ) 定义S_n=\{φ|φ是X上的双射\}\\ 称s_n中的元素为n元置换。\\ 令集合 X=\{1,2,3,...,n\} ,任意置换φ∈S_n,可表示为如下形式\\ φ=\begin{pmatrix} 1 & 2 &...&n\\ φ(1) & φ(2)&...&φ(n) \end{pmatrix} \\此处也可设 X=\{0,1,2,3,...,n-1\} \\ φ=\begin{pmatrix} 0 & 1 &...&n-1\\ φ(0) & φ(1)&...&φ(n-1) \end{pmatrix} 定义Sn={φφX上的双射}sn中的元素为n元置换。令集合X={1,2,3,...,n},任意置换φSn,可表示为如下形式φ=(1φ(1)2φ(2)......nφ(n))此处也可设X={0,1,2,3,...,n1}φ=(0φ(0)1φ(1)......n1φ(n1))
这里的 φ φ φ就是 e k e_k ek也可以是 d k d_k dk
移位规定的 φ φ φ就是置换
φ ( x ) = ( x + k ) m o d n k 是秘钥 φ(x)=(x+k) \quad mod \quad n \\ k是秘钥 φ(x)=(x+k)modnk是秘钥
看一个置换
φ = ( 0 1 . . . n − 1 φ ( 0 ) φ ( 1 ) . . . φ ( n − 1 ) ) 定义 s 5 中的 φ ( x ) = ( x + k ) m o d 5 , k = 3 , n = 5 φ = ( 0 1 2 3 4 3 4 0 1 2 ) 置换 φ 为长度为 5 的轮换 φ=\begin{pmatrix} 0 & 1 &...&n-1\\ φ(0) & φ(1)&...&φ(n-1) \end{pmatrix} \\定义s_5中的φ(x)=(x+k) \quad mod \quad 5 ,k=3,n=5 \\ φ=\begin{pmatrix} 0&1 & 2 &3&4\\ 3&4 & 0&1&2 \end{pmatrix} \\置换φ为长度为5的轮换 φ=(0φ(0)1φ(1)......n1φ(n1))定义s5中的φ(x)=(x+k)mod5,k=3,n=5φ=(0314203142)置换φ为长度为5的轮换
任意置换 φ ∈ S 26 φ∈S_{26} φS26,对于26个字母来说,即定义了移位运算(移位映射φ)

代换

当然如果在这里指定置换φ函数中每个自变量对应的函数值,即:分段常数函数,就是代换。
26个字母共有 26 ! 26! 26种置换,一个字节共有 256 ! 256! 256种置换。
每种置换构成一个密码表(每个原文以及对应的密文组成)

仿射

φ ( x ) = ( a x + b ) m o d n n 为 26 或 256 φ(x)=(ax+b) \quad mod \quad n \\ \\n为26或256 φ(x)=(ax+b)modnn26256
1、加密映射定义如下:
n 为 26 或 256 , 映射为单射 e ( x ) = ( a x + b ) m o d n n为26或256,映射为单射 \\ e(x)=( ax+b)\quad mod \quad n n26256,映射为单射e(x)=(ax+b)modn
因为同余方程 a x ≡ b ( m o d m ) 有唯一解的充要条件是 g c d ( a , m ) = 1 ax≡b(mod \quad m)有唯一解的充要条件是gcd(a,m)=1 axb(modm)有唯一解的充要条件是gcd(a,m)=1
所以规定 g c d ( a , n ) = 1 ,即 a 与 n 互素 gcd(a,n)=1,即a与n互素 gcd(a,n)=1,即an互素
2、解密映射定义如下:
同余方程 y ≡ a x + b ( m o d n ) a x ≡ y − b ( m o d n ) a − 1 ( a x ) ≡ a − 1 ( y − b ) ( m o d n ) d ( y ) = a − 1 ( y − b ) m o d n n 为 26 或 256 , 映射为单射 同余方程y≡ax+b (mod \quad n) \\ax≡y-b (mod \quad n) \\a^{-1}(ax)≡a^{-1}(y-b) (mod \quad n) \\d(y)=a^{-1}(y-b) \quad mod \quad n \\n为26或256,映射为单射 同余方程yax+b(modn)axyb(modn)a1(ax)a1(yb)(modn)d(y)=a1(yb)modnn26256,映射为单射
3、密钥为 ( a , b ) a , b ∈ Z n (a,b) \quad a,b∈Z_n (a,b)a,bZn

参考文献

1、《密码学原理与实践(第三版)》
2、《抽象代数》

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值