仿射变换
仿射变换
- 在集合上定义为两个向量空间之间的一个仿射变换或者仿射映射由一个线性变换加上一个平移组成。
- 常用的二维仿射变换:
- 旋转
- 倾斜
- 平移
- 缩放
- 注:仿射密码是借用仿射变换y=kx+b的名称
- 定义
设P=C=Z,K={(a,b)∈Z*Z/gcd(a,26)=1},对于任意k=(a,b)∈K,定义:
加密:y=e(x)=ax+bmod26,
解密:x=d(y)=a^-1(y-b)mod26.
注:
- 逆元概念:若au=1mod26,u∈Z,则a^-1=u. 3*9mod26=1.则3^-1=9mod26
- gcd指最大公因子,条件gcd(a,26)=1可使a有唯一逆元。
- a=1时是位移密码:a=1,b=3是凯撒密码。
设k=(a,b)=(7,3)
加密:
y=e(x)=7x+3mod26,
7*15=1mod25
7^-1=15
解密:
x=d(y)=a^-1*(y-3)mod26
=7^-1*(y-3)mod26
=15*(y-3)mod26
=15y-19mod26.
设明文M=CHINA
加密:
7(2 7 8 13 0)^-1 + (3 3 3 3 3)^-1 mod 26=(17 52 59 94 3)^-1 mod 26
=(17 0 7 16 3)=(R A H Q D)^-1
故密文C=RAHQD
解密:
15(17 0 7 16 3)^-1 - (19 19 19 19 19)^-1 mod 26 =(2 7 8 13 0)^-1=(C H I N A)^-1
故明文M=CHINA
- 密码分析
- 为了对密文进行解密,必须保证所选用的仿射函数是一个双射函数。
- 对于任意y∈Z,如下同宇方程
- ax+b=ymod26(ax=y-bmod26)有唯一解x.(当y遍历Z时,y-b亦遍历Z)
- 要求ax=ymod26有唯一解x.
- 引理
- 设a∈Z,对于任意b属于Z,同余方程ax=bmodm有唯一解x∈Z的充要条件是gcd(a,m)=1
- 进一步,因为26=213,与26互素的数的a=1,3,5,7,9,11,15,11,15,17,19,21,23,25,参数b无要求。故仿射密码有1226=312种密钥。(密钥个数不多,可被穷举攻击)
- 攻击
- 前述密码体制中,相同明文字母对应相同密文字母,则可用频率分析攻击,其基于某种语言中各个字符出现的频率不一样,表现出一定的统计规律,这种统计规律可能在密文中得以保存,从而通过一些推测和验证来实现密码分析的方法。