实验报告
01 页
第二篇:加密算法编程实验
天津机电职业技术学院教师备课纸
实验五 加密算法编程
一、实验目的
通过C语言编程实现替代加密算法,加深对古典密码体制的了解。
二、实验环境
1.安装Windows XP系统的计算机
2.WinTC
三、实验理论基础
凯撒密码(caeser)是罗马扩张时期朱利斯?凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令。它将字母表中的字母移动一定位置而实现加密。 凯撒密码的加密算法极其简单。其加密过程如下:
在这里,明文记为m,密文记为c,加密变换记为E(k1,m)(其中k1为密钥),解密变换记为D(k2,m)(k2为解密密钥)(在这里k1=k2,不妨记为k)。凯撒密码的加密过程可记为如下一个变换:
c≡m+k mod n (其中n为基本字符个数)
同样,解密过程可表示为:
m≡c+k mod n (其中n为基本字符个数)
对于计算机而言,n可取256或128,m、k、c均为一个8bit的二进制数。显然,这种加密算法极不安全,即使采用穷举法,最多也只要255次即可破译。当然,究其本身而言,仍然是一个单表置换,因此,频率分析法对其仍是有效的。
四、实验内容
凯撒密码及其破解的编程实现
1
天津机电职业技术学院教师备课纸 #include <stdio.h>
main()
{
char M[100];
char C[100];
int K=3,i;
printf("please input chars:\n");
gets(M);
for(i=0;M[i]!='\0';i++)
C[i]=(M[i]-'a'+K)%26+'a';
C[i]='\0';
printf("The result is:\n%s\n",C);
getch();
}
2