读书频道 > 网站 > 网页设计 > 深入浅出密码学——常用加密技术原理与应用
1.4.4 仿射密码
12-09-26    奋斗的小年轻
收藏    我要投稿   
本书拥有的诸多特征使得它成为密码学从业者和学生独一无二的资源—本书介绍了绝大多数实际应用中使用的加密算法,并重点突出了它们的实用性。对于每种加密模式,我们都给出了最新的安全评估和推荐使用的密钥长度...立即去当当网订购

下面将试着通过推广该加密函数来改善移位密码。回顾一下,移位密码的实际加密过程就是密钥的加法y =  xi +  k  mod 26 。仿射密码加密的思路为:首先将明文乘以密钥的一部分,然后再加上密钥的剩余部分。

定义1.4.4  仿射加密

假设x , y , a , b ∈Z26

加密:ek(x) ≡y ≡ a⋅x + b mod 26 

解密:dk(y) = x = a-1 ⋅(y-b) mod 26
 
密钥为:k =(a ,b ),且满足限制条件 gcd( a ,26)=1。
 
解密可以很容易地从加密函数推导出来:

a ⋅ x  + b   ≡  y mod 26
a ⋅ x   ≡ (y  – b )mod 26
x   ≡   a-1⋅ (y  – b )mod 26

gcd( a ,26)=1 这个限制条件源于这样一个事实:解密时需要求密钥参数a 的逆元。回顾第1.4.2节可知,如果 a 的逆元存在,则元素 a 与模数必须互素。因此,a 必须在如下集合中:

a ∈ {1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25}                        (1.2)

 
那么,我们怎样找到a-1 ?目前我们只能通过试错法得到:对于给定的a ,只需依次尝试所有可能的值a-1 ,直到得到:

a ⋅ a-1  ≡  1 mod 26

例如,如果a =3,则a-1 = 9 ,因为3 ⋅ 9 = 27  ≡  1 mod 26。请注意:a-1也始终满足条件gcd(a-1 ,26)=1,因为a-1   的逆元始终存在。实际上a-1  的逆元就是a 本身。因此,这种确定a-1的试错法仅仅只需要检查等式(1.2) 中给出的值。

示例1.12    假设密钥k =( a ,  b )=(9, 13) ,明文为

ATTACK  = x1,  x2, …, x6 = 0, 19, 19, 0, 2, 10。

a 的逆元a-1   存在,并且可以表示为a-1 =3 。计算得到的密文为:

y1,  y2, …, y6 = 13, 2, 2, 13, 5, 25 = nccnfz 


仿射加密是否安全?否!它的密钥空间仅比移位密码的大一点而已:

密钥空间 = ( a 可以取的值)×(b 可以取的值)
= 12 ×26 = 312

显而易见,拥有312 个元素的密钥空间很容易就可以穷尽搜索—即使用现在的计算机,在几分之一秒内就可以蛮力破解。此外,仿射密码拥有与替换密码和移位密码同样的缺点,即明文和密文之间的映射关系是固定的。因此,使用频率分析方法一样可以轻而易举破解该密码。 后续章节将介绍更为强壮的具有实用性的加密算法。 

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站