预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

关于凯撒密码的实现原理班级::学号:指导老师:一、设计要求说明1、设计一个凯撒密码的加密和解密的程序要求输入一段字符和密码输出相应的密文完成加密过程;若输入被加密的密文及解密密钥能还原出原文完成解密。2、语言不限工具不限独立完成参加答辩。3、严格按照格式的要求完成文档在第六部分的运行结果分析中要求抓图说明。二、基础知识介绍凯撒密码的历史凯撒密码(caeser)是罗马扩时期朱利斯•凯撒(JuliusCaesar)创造的用于加密通过信使传递的作战命令。它将字母表中的字母移动一定位置而实现加密。古罗马随笔作家修托尼厄斯在他的作品中披露凯撒常用一种“密表”给他的朋友写信。这里所说的密表在密码学上称为“凯撒密表”。用现代的眼光看凯撒密表是一种相当简单的加密变换就是把明文中的每一个字母用它在字母表上位置后面的第三个字母代替。古罗马文字就是现在所称的拉丁文其字母就是我们从英语中熟知的那26个拉丁字母。因此凯撒密表就是用d代a用e代b……用z代w。这些代替规则也可用一表格来表示所以叫“密表”。基本原理在密码学中存在着各种各样的置换方式但所有不同的置换方式都包含2个相同的元素。密钥和协议(算法)。凯撒密码的密钥是3算法是将普通字母表中的字母用密钥对应的字母替换。置换加密的优点就在于它易于实施却难于破解.发送方和接收方很容易事先商量好一个密钥然后通过密钥从明文中生成密文即是敌人若获取密文通过密文直接猜测其代表的意义在实践中是不可能的。凯撒密码的加密算法极其简单。其加密过程如下:在这里我们做此约定:明文记为m密文记为c加密变换记为E(k1m)(其中k1为密钥)解密变换记为D(k2m)(k2为解密密钥)(在这里k1=k2不妨记为k)。凯撒密码的加密过程可记为如下一个变换:c≡m+kmodn(其中n为基本字符个数)同样解密过程可表示为:m≡c+kmodn(其中n为基本字符个数)对于计算机而言n可取256或128m、k、c均为一个8bit的二进制数。显然这种加密算法极不安全即使采用穷举法最多也只要255次即可破译。当然究其本身而言仍然是一个单表置换因此频率分析法对其仍是有效的。加密解密算法恺撒密码的替换方法是通过排列明文和密文字母表密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如当偏移量是左移3的时候(解密时的密钥就是3):明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC使用时加密者查找明文字母表中需要加密的消息中的每一个字母所在位置并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作得到原来的明文。例如:明文:THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG密文:WKHTXLFNEURZQIRAMXPSVRYHUWKHODCBGRJ恺撒密码的加密、解密方法还能够通过同余数的数学方法进行计算。首先将字母用数字代替A=0B=1...Z=25。此时偏移量为n的加密方法即为:E(x)=(x+n)mod2解密就是:D(x)=(x-n)mod2三、环境介绍编程语言C语言编译环境MicrosoftVisualStudio2010操作系统Windows四、思路以及算法分析定义两个字符数组charp[1000]和charc[1000]用来存放明文和密文。定义一个key表示移位的个数。这是加密解密的关键。综合考虑到在密表尾部的字母加密或解密的时候会循环移动到密表头部所以加密、解密语句分别为:c[i]=(p[i]-'a'+key)%26+'a'向后移动keyp[i]='z'-('z'+key-c[i])%26向前移动key五、