凯撒关于凯撒密码的实现原理

凯撒密码  时间:2021-01-24  阅读:()

关于凯撒密码的实现原理

班级 姓名 学号 指导老师

一、 设计要求说明

1、 设计一个凯撒密码的加密和解密的程序要求输入一段字符和密码输出相应的密文完成加密过程

若输入被加密的密文及解密密钥能还原出原文完成解密。

2、语言不限工具不限独立完成参加答辩。

3、严格按照格式的要求完成文档在第六部分的运行结果分析中要求抓图说明。

二、 基础知识介绍

凯撒密码的历史

凯撒密码caeser是罗马扩张时期朱利斯•凯撒Julius Caesar创造的用于加密通过信使传递的作战命令。它将字母表中的字母移动一定位置而实现加密。

古罗马随笔作家修托尼厄斯在他的作品中披露凯撒常用一种“密表”给他的朋友写信。这里所说的密表在密码学上称为“凯撒密表”。用现代的眼光看凯撒密表是一种相当简单的加密变换就是把明文中的每一个字母用它在字母表上位置后面的第三个字母代替。古罗马文字就是现在所称的拉丁文其字母就是我们从英语中熟知的那26个拉丁字母。因此凯撒密表就是用d代a用e代b ……用z代w。这些代替规则也可用一张表格来表示,所以叫“密表”。

基本原理

在密码学中存在着各种各样的置换方式但所有不同的置换方式都包含2个相同的元素。密钥和协议(算法)。凯撒密码的密钥是3算法是将普通字母表中的字母用密钥对应的字母替换。置换加密的优点就在于它易于实施却难于破解.发送方和接收方很容易事先商量好一个密钥然后通过密钥从明文中生成密文 即是敌人若获取密文通过密文直接猜测其代表的意义在实践中是不可能的。

凯撒密码的加密算法极其简单。其加密过程如下

在这里我们做此约定 明文记为m密文记为c加密变换记为E(k1,m) 其中k1为密钥解密变换记为D(k2,m) k2为解密密钥 在这里k 1=k2,不妨记为k。凯撒密码的加密过程可记为如下一个变换c≡m+k mod n 其中n为基本字符个数

同样解密过程可表示为m≡c+k mod n 其中n为基本字符个数

对于计算机而言 n可取256或128m、 k、 c均为一个8bit的二进制数。显然这种加密算法极不安全即使采用穷举法最多也只要255次即可破译。当然究其本身而言仍然是一个单表置换因此频率分析法对其仍是有效的。

加密解密算法

恺撒密码的替换方法是通过排列明文和密文字母表密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如 当偏移量是左移3的时候解密时的密钥就是3

明文字母表 ABCDEFGHIJKLMNOPQRST UVWXYZ

密文字母表 DEFGHIJKLMNOPQRST UVWXYZABC

使用时加密者查找明文字母表中需要加密的消息中的每一个字母所在位置并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作得到原来的明文。例如

明文 THE QUICK BROWN FOX JUMPS OVER THE LAZYDOG

密文WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ

恺撒密码的加密、解密方法还能够通过同余数的数学方法进行计算。首先将字母用数字代替 A=0B=1  . . .  Z=25。此时偏移量为n的加密方法即为

1 /5'

E(x)=(x+n)mod 2

解密就是

D(x)=(x-n)mod 2

三、 环境介绍

编程语言

C语言

编译环境

Microsoft Visual Studio 2010

操作系统

Window s ,

四、 思路以及算法分析

定义两个字符数组char p[1000]和char c[1000] 用来存放明文和密文。

定义一个key表示移位的个数。这是加密解密的关键。

综合考虑到在密表尾部的字母加密或解密的时候会循环移动到密表头部所以加密、解密语句分别为c[i]=(p[i]-'a'+key)%26+'a' 向后移动keyp[i]='z'-('z'+key-c[i])%26 向前移动key

五、 源程序代码

#inc lude<stdio.h>void main()

{char p[1000];char c[1000];int key,i,m;key=5; /*定义一个移位个数为5 即加密向右移5位解密则相反*/printf("pleas e input the Plaintext: \n");g ets(p); /*读取字符串直至接受到换行符停止并将读取的结果存放在p[1000]中。换行符不作为读取串的内容读取的换行符被转换为nu ll值并由此来结束字符串。 */for(i=0;p[i]!='\0' ;i++)c[i]=(p[i]-'a'+key)%26+'a' ; /*加密算法所有明文符号由向右移5位的密文代替*/c[i]='\0' ;printf("the Ciphertext is:\n%s\n",c); /*输出加密后的密文*/printf("pleas e input the Ciptertext:\n");gets(c); /*读取字符串直至接受到换行符停止并将读取的结果存放在c[1000]中。换行符不作为读取串的内容读取的换行符被转换为nu ll值并由此来结束字符串。 */for(i=0;c[i]!='\0' ;i++)p[i]='z'-('z'+key-c[i])%26; /*解密算法所有明文符号由向左移5位的明文代替*/p[i]='\0' ;printf("the Plaintext is:\n%s\n",p); /*输出解密后的明文*/

2/5'

r eturn;

}

六、 运行结果分析

试对明文security进行加密再将其解密

输入明文s ecurity

回车后输出加密后的密文 xjhzw nyd

3/5'

输入s ec urity的密文“xjhzw nyd”

回车后出现解密后的明文s ec urity

4/5'

七、 总结与不足

程序是在几个小时内测试运行成功的。凯撒密码是密码学中一种最简单的加密算法。原理并不复杂只要理解了实现起来并不困难。程序并不长基本实现了对于凯撒密码的加密和解密过程。但其中还存在很多不足 比如这段代码并没有给出当遇到空格或者别的符号的处理方法又比如代码只给出了当字符是在a到z的情况下的解决方法而从A到Z则没有给出等等。因此还有很多地方还可以进行改进

1.可以在开始设置一个选择是进行加密还是解密 2.可以将key设为一个整型变量在程序运行开始时需要用户输入key值再根据key值进行加密解密。这样凯撒密码就可以变得更加灵活。总体来说从开始编写、修改凯撒密码的程序到最终调试成功还算比较顺利也体会到了一点密码学的趣味。

八、 参考文献

[1]步山岳张有东计算机信息安全技术 2005 17

[2]

[3] 2009/05/03/4145759.aspx

[4]

[5]

5/5'

爱用云互联租用服务器租美国、日本、美国、日本、购买2天内不满意可以退换,IP可免费更换!

爱用云互联怎么样?爱用云是一家成立于2018年的老牌商家旗下的服务器销售品牌,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免备案建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高防节点。专注为个人开发者用户,中小型,大型企业用户提供一站式核心网络云端服务部署,促使用户云端...

PIGYun中秋特惠:香港/韩国VPS月付14元起

PIGYun发布了九月份及中秋节特惠活动,提供8折优惠码,本月商家主推中国香港和韩国机房,优惠后最低韩国每月14元/中国香港每月19元起。这是一家成立于2019年的国人商家,提供中国香港、韩国和美国等地区机房VPS主机,基于KVM架构,采用SSD硬盘,CN2+BGP线路(美国为CUVIP-AS9929、GIA等)。下面列出两款主机配置信息。机房:中国香港CPU:1core内存:1GB硬盘:10GB...

ZJI:韩国BGP+CN2线路服务器,国内三网访问速度优秀,8折优惠码每月实付440元起

zji怎么样?zji最近新上韩国BGP+CN2线路服务器,国内三网访问速度优秀,适用8折优惠码zji,优惠后韩国服务器最低每月440元起。zji主机支持安装Linux或者Windows操作系统,会员中心集成电源管理功能,8折优惠码为终身折扣,续费同价,全场适用。ZJI是原Wordpress圈知名主机商:维翔主机,成立于2011年,2018年9月启用新域名ZJI,提供中国香港、台湾、日本、美国独立服...

凯撒密码为你推荐
2014年万圣节是几月几日2014年鬼节是几月份?美国10次啦导航gps卫星导航用的卫星应该是美国的吧?那有限几十颗卫星怎么能同时给地面上如此多的终端提供导航呢?p图软件哪个好用手机p图软件那个好p图软件哪个好用新手用哪个软件p图较好?莫代尔和纯棉哪个好内裤是莫代尔的好还是棉质的好?理由是什么朱祁钰和朱祁镇哪个好历史上真实的明英宗是怎么样的?性格之类的。朱祁钰和朱祁镇的相关的最好可以详细点的朗逸和速腾哪个好朗逸跟速腾的最大区别在哪朗逸跟速腾买那个好网校哪个好请问在网校排名中,哪个网校是最好的?想找一家最好的来选择啊?牡丹江教育云空间登录云空间的账号密忘了可是那个上面有不有不让重新申请一个怎么办牡丹江教育云空间登录请问一下校园云空间的登录方式有哪些?
域名空间 免备案虚拟主机 虚拟主机是什么 网站虚拟主机空间 免费cn域名 独享100m edis bash漏洞 双11抢红包攻略 xfce ev证书 京东商城0元抢购 hdd 优酷黄金会员账号共享 网通服务器 美国凤凰城 全能空间 可外链的相册 阿里云个人邮箱 杭州电信宽带 更多