2021信息安全 实验一 古典密码算法C语言.docx

信息安全信息安全 实验一实验一 古典密码算法古典密码算法 C C 语言语言 信息安全实验报告 课程名称 _ 专业计算机科学与技术 _2010_级_02 班 实验编号实验项目_ 指导教师_ _ 姓名闫斌学号 2010012854 实验成绩 实验一古典密码算法 实验名称古典密码算法 实验类型 设计性实验 学时4 适用对象 信息安全 1.实验原理 古典密码算法历史上曾被广泛应用,大都比较简单,使用手 工和机械操作来实现加密和解密。它的主要应用对象是文字 信息,利用密码算法实现文字信息的加密和解密。下面介绍 两种常见的具有代表性的古典密码算法,以帮助读者对密码 算法建立一个初步的印象。 2.实验目的 通过变成实现替代密码算法和置换密码算法,加深对古典密 码体质的了解,为深入学习密码学奠定基础。 3.实验环境 运行 windows 或 linux 操作系统的 pc 机, 具有 gcc (linux) 、 VC(Windows)等 C 语言编译环境。 4.实验内容 4.1 替代密码算法 4.1.1 根据实验远离部分对替代密码算法的介绍,创建明文信息, 并选择一个密钥 k,编写替代密码算法的实现程序,实现加 密和解密操作。 替代密码包括多种类型, 如单表替代密码、 多明码替代密码、 多字母替代密码、多表替代密码等。 4.1.2 替代密码算法的远离是使用替代法进行加密,就是将明文的 字符用其他字符替代后形成密文。例如字母 a、b、c、d,用 D、E、F、G 做对应替换后形成密文。 4.1.3 代码 includeincludeincludedefine N 500 int main /*-*/ int i0,k,m,n,l; char str1N,str2N; /*CMK.K is key.*/ clrscr; /*-*/ printfThis is a code password program.n; printfPlease proclaimed in writingMn; getsstr1;/*输入要加密的明文 M*/ printfPlease the keyKintn; scanfd,/*输入密钥 K*/ mstrlenstr1;/*测试明文的长度*/ printfThe M length is dn,m; printfn *n *n *n*n *n; printfciphertextC is nn; fori0;i nintstr1i;/*将字符转换成 ASCII*/ ifstr1i /*如果字符串中出现空格返回空格*/ printf ; str2istr1i; else ifn96 ifnn26n; lcharn97; printfc,l; str2il; else ifn64 ifn96 ifnn26n; lcharn97; printfc,l; else ifn64 ifnn26n; lcharn97; printfc,l; str1i0; getch; return 0; 4.1.4 运行结果 4.2 置换密码 4.2.1 根据实验原理部分对置换密码算法的介绍,自己创建明文信 息,并选择一个密钥,编写置换密码算法的实现程序,实现 加密和解密操作。 4.2.2 置换密码算法的原理是不改变明文字符,只将字符在明文中 的排列顺序改变,从而实现明文信息的加密。置换密码有时 又称为换位密码。 矩阵换位法是实现置换密码的一种常用方法。它将明文中的 字母按照给的顺序安排在一个矩阵中,然后用根据密钥提供 的顺序重新组合矩阵中字母,从而形成密文。 4.2.3 代码 includeincludeincludedefine N 100 int main /*-*/ int i,j,lenK,lenM,m,n,temp; int TN; char KN,MN,CN,Temp1N,Temp2N,Temp3N; clrscr; /*-*/ printfThis is a substitution cipher.n; printfPlease the Mn;/*输入明文 M*/ getsM; printfPlease the Kn;/*输入密钥 K*/ getsK; lenKstrlenK; lenMstrlenM;/*测设长度*/ mlenM/lenK;/ nlenK;/*定义矩阵的长和宽*/ fori0;i temp0; forj0;j ifintKi temp1; TilenK-temp; printfd ,Ti;/*输出各字符对应的数字顺序*/ /*-*/ printfnnFirst.nn; fori0;i forj0;j Temp1i*lenKjMi*lenKj; printfc ,Temp1i*lenKj; printfn; Temp1lenM0; /*-*/ printfnSecond.nn;/*进行第一次置换*/ fori0;i forj0;j Temp2j*lenKiTemp1j*lenKTi-1; Temp2lenM0; fori0;i forj0;j printfc ,Temp2i*lenKj; printfn; /*-*/ printfnThird.nn;/*进行第二次置换*/ fori0;i forj0;j Temp3j*lenKiTemp2j*lenKTi-1; Temp3lenM0; fori0;i forj0;j printfc ,Temp3i*lenKj; printfn; /*-*/ printfThe substitution cipher is.n;/*输出结果 */ forj0;j fori0;i printfc,Temp3i*lenKj; getch; return 0; 4.2.4 运行结果 5.总结 通过此次实验,对古典密码算法有了进一步的了解,同时也 在过程当中学习到了如何更好的完善一个问题的求解过程。 这次的实验还可以通过 MA TLAB 来完成。在置换密码的算法 中,未能完成解密算法,但是我会继续完成的。

古典密码算法实验c语言,2021信息安全 实验一 古典密码算法C语言.docx相关推荐

  1. 科软-信息安全实验2-netfilter实验

    目录 一 前言 二 Talk is cheap, show me the code 三 前期准备 四 效果演示 五 遇到的问题&解决 六 参考资料 七 老师提供的代码 一 前言 文章不讲解理论 ...

  2. 科软-信息安全实验3-Rootkit劫持系统调用

    目录 一 前言 二 Talk is cheap, show me the code 三 前期准备 四 效果演示 五 遇到的问题&解决 六 18.04的坑 七 参考资料 八 老师可能的提问 一 ...

  3. 2021字节跳动校招秋招算法面试真题解题报告--leetcode19 删除链表的倒数第 n 个结点,内含7种语言答案

    2021字节跳动校招秋招算法面试真题解题报告--leetcode19 删除链表的倒数第 n 个结点,内含7种语言答案 1.题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. ...

  4. c语言龙贝格积分法实验报告,数值作业:龙贝格算法计算积分C语言实现

    数值作业:龙贝格算法计算积分C语言实现 数值作业:龙贝格算法计算积分C语言实现 根据Romberg算法计算定积分,和变步长的Simpson算法的输入都一样.算法基本分析:输入a,b(积分上下限),n为 ...

  5. 伪随机序列调相位C语言,混沌通信实验报告范文

    混沌通信实验报告范文 篇一:混沌通信实验仪实验操作步骤 实验一: 非线性电阻的伏安特性实验 1.实验目的:测绘非线性电阻的伏安特性曲线 2.实验装置:混沌通信实验仪. 3.实验对象:非线性电阻模块. ...

  6. 编程语言基础 c语言同步教案,C语言程序设计基实验教案.doc

    C语言程序设计基实验教案 高级语言程序设计 基础实验 主讲教师:张顺利 2011年10月 ,其中. 2.将China译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母.例如,字母A后面第四 ...

  7. 网络信息安全实验 — 网络攻击技术实验(Kali系统,John、lc7、arpspoof、ettercap、SQL注入...)

    网络安全实验3 前言 Kali 常用指令 工具教程 ettercap 基本使用 一.口令破解 John the ripper 破解 linux 密码 l0phtcrack7 破解 windows 密码 ...

  8. 无需向量监督的矢量图生成算法,入选CVPR 2021 | 代码开源

    说起图像生成算法,大家也许并不陌生. 不过,大多数算法都针对栅格图像,也就是位图,而不支持矢量图. 虽然也有一些生成矢量图形的算法,但是在监督训练中,又受限于矢量图数据集有限的质量和规模. 为此,来自 ...

  9. AI公开课:19.05.29 浣军-百度大数据实验室主任《AutoDL 自动化深度学习建模的算法和应用》课堂笔记以及个人感悟

    AI公开课:19.05.29 浣军 百度大数据实验室主任<AutoDL 自动化深度学习建模的算法和应用>课堂笔记以及个人感悟 导读        浣军博士,汉族,1975年出生于江苏苏州, ...

最新文章

  1. 设计模式 -- 策略模式
  2. 对象的引用和clone
  3. 谈谈主机和存储连接的多路径技术
  4. 简单易学的机器学习算法——神经网络之BP神经网络
  5. Less 文档查看心得
  6. WinForm 中ComboBox 绑定总结
  7. AGC024E - Sequence Growing Hard
  8. JMeter集合点功能的使用
  9. android自动更新demo,Android程序自动更新功能模块的实现方法【附完整demo源码下载】...
  10. 什么是句柄?为什么会有句柄?HANDLE
  11. 百度文档ppt,word文档下载
  12. 微博html5到桌面,微博正文-微博HTML5版
  13. 机器狗病毒样本(穿透冰和点还原卡)
  14. 舵机的相关原理与控制原理
  15. 微信会员卡-创建会员卡接口post参数字段说明
  16. 【机器学习】线性回归之加州房价预测
  17. Ios android crash report,iOS App 后台 Crash 调查
  18. 《未来简史(下)》万维钢解读
  19. 用python预测小孩的身高体重标准表格_【儿童的标准身高】儿童身高体重标准表2017 儿童身高体重计算公式...
  20. 键盘+moveit+rviz 控制六轴机械臂(仿真)

热门文章

  1. TikTok小店怎么设置店铺名称,店铺名称指南
  2. C语言课程设计——仓库物资管理系统
  3. Maya 对象打组 保护数据
  4. HTML知识点总结之div、section标签
  5. 想要学好SEO,首先得了解SEO的发展史
  6. 网络测试工具——tcping
  7. 13 MySQL-优化
  8. 小米智能家庭套装为什么选择 ZigBee 协议?
  9. 坑爹的北大青鸟长沙东塘实力校区(转载)
  10. linux 多线程串口编程总结