古典密码实验报告(5)

2018-12-22 20:11

一、查看移位密码算法运行结果并学习核心算法

1.1 点击【移位密码.exe】,选择【0】对明文进行加密。如图1所示

图1

1.2 重新运行程序,选择【1】,对密文进行解密。如图2所示

图2

1.3 移位密码的核心算法如下所示。

//#include \ #include #include \ #include using namespace std;

void ISD_yiwei_Secret(string &code, int k) {

int i;

for (i = 0; i

if ((code[i] + k)>'z') { } else {

code[i] = code[i] + k;

code[i] = ((code[i] + k) % 'z') + 'a' - 1;

}

}

}

code[i] = code[i] - 32;

void ISD_yiwei_Public(string &code, int k) { } int main() {

int k; string code;

cout << \请选择 \\n移位加密:0 , 解密 : 1 : \;

int n; cin >> n; switch (n) {

case 0:

cout << \请输入密匙(0 ~ 26), k = \;

cin >> k;

cout << \请输入原文:\ << endl; cin >> code;

ISD_yiwei_Secret(code, k);

cout << \密文为:\\n\ << code << endl; break; case 1:

cout << \请输入密文:\ << endl; cin >> code;

cout << \请输入密匙(0 ~ 26), k = \; cin >> k;

ISD_yiwei_Public(code, k);

cout << \原文为:\\n\ << code << endl;

int i;

for (i = 0; i

if ((code[i] - k)<'A') { } else { }

code[i] = code[i] + 32;

code[i] = code[i] - k;

code[i] = 'Z' - ('A' - (code[i] - k)) + 1;

}

}

break;

default:

cerr << \输入错误! \\n\;

while (!_kbhit()); return 0;

九、 实验结果及分析:

测试修改后的程序,结果正确,如下图所示:

在加密过程中对于每个字符进行(ASCII值+13)&+’A’的计算,可证明加密结果正确。同样解密过程中上式加号变减号,且转换为对应字母的小写字母,可以验证结果正确。程序无误。

十、 实验结论:

移位密码实际上是代换密码的一个特例,其思想比较简单,密钥空间较小,属于单表代换密码,即每个字符对应的加密字符都是固定对应的,实现起来也比较简单,可对字符的ASCII码值进行操作得到加密的结果。

十一、 总结及心得体会:

移位密码中的凯撒密码是我们之前已熟悉的经典古典密码之一,移位密码的思想实在凯撒密码的基础上进行了扩展,但思想仍比较简单,其加密和解密都比较容易实现,通过读程序源码对算法的原理有了更深的理解。


古典密码实验报告(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017年最新版湘少版四年级上册英语教案全册表格式教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: