趣味密码学之四后记:恺撒码补遗

原创 2004年09月15日 15:12:00

上次讲到恺撒码很容易被破解,因此在它的基础上又作出了很多改进。

恺撒码属于字母表的平移变换,其一般加密公式为 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
这三种方法的解密都很简单,但是都达到了混乱原文的效果。而只要知道密钥得到密码表,解密的方法也很简单。

小程序员的趣味题(一)

小程序员的趣味题(一) 1.在排序数组中,找出某整数出现的次数 问题定义:给定一个整数数组arr,数组中元素的个数是n,数组arr已经排好序,要在arr中找到某个某个整数x出现的次数,...
  • x1426096761
  • x1426096761
  • 2016年04月17日 15:22
  • 394

密码学基本介绍

【密码学02】密码系统原理及数学背景上一篇文章【密码学】四大主题简单介绍 一文提到要实现信息传输的保密性、完整性,以及身份鉴别和抗抵赖,使用的技术手段有:1)       密码技术(加密与解密)。2)...
  • u013467442
  • u013467442
  • 2016年03月04日 20:20
  • 7127

趣味密码学之四:恺撒大帝的秘密——替代之恺撒码

恺撒大帝的秘密———替代之恺撒码恺撒大帝是古罗马共和国末期著名的统帅和政治家。虽然他一生从未登上过皇位,但是直到今天在西方国家,他的名字仍是君主的代名词。他博学多才、文武双全,既是卓越的军事家又是雄辩...
  • SuperLoaf
  • SuperLoaf
  • 2004年09月05日 13:36
  • 4342

趣味密码学之一:从福尔摩斯的小人说起

各位请先看看下图:       这仅仅是单纯的图画吗?      看过福尔摩斯探案集的人应该会有印象--那是在《跳舞的人》中出现的"小人密码"。在这个故事里大侦探面对的难题就是要破解这个密码,得到图画...
  • SuperLoaf
  • SuperLoaf
  • 2004年08月21日 09:23
  • 8650

java密码学架构指南(一)

介绍   发的
  • fengshantao
  • fengshantao
  • 2014年07月21日 13:12
  • 918

几个基本的密码学概念

什么是cryptographic  An oracle is an individual who knows the personal cell phone number of a god....
  • vingstar
  • vingstar
  • 2014年06月24日 10:51
  • 1429

趣味密码学之三:长话短说——密码学发展史

密码学作为保护信息的手段,经历了三个发展时期。它最早应用在军事和外交领域,随着科技的发展而逐渐进入人们的生活中。在手工阶段,人们只需通过纸和笔对字符进行加密。密码学的历史源远流长,人类对密码的使用可以...
  • SuperLoaf
  • SuperLoaf
  • 2004年08月26日 20:35
  • 9803

趣味密码学之一:从福尔摩斯的小人说起

各位请先看看下图:       这仅仅是单纯的图画吗?      看过福尔摩斯探案集的人应该会有印象--那是在《跳舞的人》中出现的"小人密码"。在这个故事里大侦探面对的难题就是要破解这个密码,得到图画...
  • SuperLoaf
  • SuperLoaf
  • 2004年08月21日 09:23
  • 8650

C语言趣味程序百例精解

1.绘制余弦曲线 在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线 *问题分析与算法设计 如果在程序中使用数组,这个问题十分简单。但若规定不能使用数组,问题就变得不容易了。 ...
  • zcxht
  • zcxht
  • 2017年05月30日 21:12
  • 370

【原创】【程序小游戏】平面四子棋 C++

平面四子棋事先声明:代码是我自个儿写的,规则不是我发明的~~~~。 我觉得我真是太不务正业了!规则在一个7*12的棋盘里,下四子棋。只不过,这个棋盘是竖立着的,它的棋子是从上往下掉的。 比如说: ...
  • c20182030
  • c20182030
  • 2017年05月20日 22:30
  • 585
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:趣味密码学之四后记:恺撒码补遗
举报原因:
原因补充:

(最多只允许输入30个字)