趣味密码学之四后记:恺撒码补遗
2004-09-15 15:12
225 查看
上次讲到恺撒码很容易被破解,因此在它的基础上又作出了很多改进。
恺撒码属于字母表的平移变换,其一般加密公式为 f(a)=(a+k) mod n,n为字符集中字母的个数,k的取值范围是1~25。当K=3时,这种变换就是恺撒码。
另一种办法就是改变字母表的顺序,也称为倍模变换,其一般加密公式为f(a)=ak mod n, n为字符集中字母的个数。在这里,k的取值必须与n互素(即最大公约数为1);否则会出现周期性,不同的字符会产生相同的加密结果。
如:k=5、n=26,变换公式为f(a) = (5*a ) mod 26
明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文:ejotydinsxchmrwbglqvafkpuz
因为z的编码为26,而k与26互素,所以 f(a)=(26*k) mod 26=26,明文z加密后还是它本身。同理,M(编码为13)也一样。
如果取k=2,k与26不互素,则会出现编码相同的情况。如,f(1)=(1*2) mod 26 =2,f(14)=(14*2) mod 26 =2,? 字母a和n的密文均为b,而且无法通过解密公式确定明文。这样的情况会同样出现在b和o…m和z中,以13为周期重复产生相同的加密结果。
结合上述两种变换,就得到了广义恺撒码的公式,也称为线性变换。f(a)=(a*k1+k2) mod n , n为字符集中字母的个数, k的取值必须与n互素。如k1=3,k2=2,n=26
明文:abcdef
密文:ehknqt 这三种方法的解密都很简单,但是都达到了混乱原文的效果。而只要知道密钥得到密码表,解密的方法也很简单。
恺撒码属于字母表的平移变换,其一般加密公式为 f(a)=(a+k) mod n,n为字符集中字母的个数,k的取值范围是1~25。当K=3时,这种变换就是恺撒码。
另一种办法就是改变字母表的顺序,也称为倍模变换,其一般加密公式为f(a)=ak mod n, n为字符集中字母的个数。在这里,k的取值必须与n互素(即最大公约数为1);否则会出现周期性,不同的字符会产生相同的加密结果。
如:k=5、n=26,变换公式为f(a) = (5*a ) mod 26
明文:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文:ejotydinsxchmrwbglqvafkpuz
因为z的编码为26,而k与26互素,所以 f(a)=(26*k) mod 26=26,明文z加密后还是它本身。同理,M(编码为13)也一样。
如果取k=2,k与26不互素,则会出现编码相同的情况。如,f(1)=(1*2) mod 26 =2,f(14)=(14*2) mod 26 =2,? 字母a和n的密文均为b,而且无法通过解密公式确定明文。这样的情况会同样出现在b和o…m和z中,以13为周期重复产生相同的加密结果。
结合上述两种变换,就得到了广义恺撒码的公式,也称为线性变换。f(a)=(a*k1+k2) mod n , n为字符集中字母的个数, k的取值必须与n互素。如k1=3,k2=2,n=26
明文:abcdef
密文:ehknqt 这三种方法的解密都很简单,但是都达到了混乱原文的效果。而只要知道密钥得到密码表,解密的方法也很简单。
相关文章推荐
- [Flash]Loading制作
- 用C#对ADO.NET数据库完成简单操作
- 在 普通的文本框 里加入图片背景
- 某公司BBS上的工作守则
- ASP链接MYSQL并读取数据的程序
- ASP如何获取真实IP地址
- vbscript 和 javascript 生成 Excel 文件[office 2000].
- 推荐:PHPLIB模板处理类(翻译了注释)
- 推荐:PHPLIB模板处理类(翻译了注释)
- 取得客户端信息(浏览器/IP/操作系统)
- 取得客户端信息(浏览器/IP/操作系统)
- 取得文件扩展名方法
- 取得文件扩展名方法
- [Flash]烟的脚本
- 匈牙利为庆贺第17届奥运会而发行的纪念邮票
- 用户名不同的计算机之间的调用dcom[整理]
- google也开始卖品牌衍生产品了
- MySQL中各种字段的取值范围
- 示例:Calendar
- Mysql字段长度