实验一 古典密码算法实验

一、实验目的

(1)掌握密码学基础知识,包括明文、密文、密钥、加密和解密等基本概念。

(2)掌握古典密码基础知识,掌握代替密码算法和置换密码基本原理。

(3)掌握移位密码、维吉尼亚密码、周期置换密码、列置换密码的基本原理。

(4)熟悉编程环境,掌握古典密码算法的编程实现方法。

二、实验内容

编程实现移位密码、维吉尼亚密码、周期置换密码、列置换密码算法,分别用这些加密算法对文本数据进行加密,更换不同的密钥,查看加密后的密文的变化。要求上述密码算法最后的实现程序提供加密和解密两个接口函数:int encrypt(char* plain, char* cipher, char * key)和int decrypt(char* plain, char* cipher, char * key),当加密或解密成功时返回CRYPT__OK,失败时返回CRYPT__ERROR。

三、实验环境

运行Windows 或Linux 操作系统的PC 机,具有gcc(Linux)、VC(Windows)等C语言编译环境。

四、实验原理

在密码编码体制中有两种最基本也是最古老的编码体制一直沿用至今,它们是代替密码和置换密码,其历史悠久并且是现代密码体制的基本组成部分,在密码学中占有重要地位。古典密码是密码学发展的一个阶段,也是近代密码学产生的渊源,一般把Shannon 在1949年发表“保密系统的通信理论”之前的时期称为古典密码时期。尽管古典密码大多比较简单,一般可用手工或机械方式实现,且都可用统计分析方法破译,目前已很少采用。但是,古典密码所采用的代替技术和置换技术仍然是现代分组密码算法设计的基础,了解它们的设计原理,有助于理解、设计和分析现代密码。

代替(Substitution)是古典密码中最基本的处理技巧,就是将明文字母由其他字母表中的字母替换的一种方法。代替密码(Substitution Cipher)就是使用代替法进行加解密的密码算法。代替密码的密钥是一个替换表,它表示了明文字母与密文字母的对应关系。加密时,通过查表,明文字母被逐个替换后,生成看似无任何意义的字母串,即密文。解密时,逆向使用替换表,将密文字母逐个替换为明文字母。

周期置换加密算法用c语言实现,密码学相关推荐

  1. 周期置换加密算法用c语言实现,古典密码实验报告.doc

    . .. 哈尔滨工程大学 实 验 报 告 实 验 名 称: 古典密码算法 班 级: 学 号: 姓 名: 实 验 时 间: 2014年4月 成 绩: 指 导 教 师: 实验室名称: 哈尔滨工程大学实验室 ...

  2. c语言编程实现dsa算法,椭圆曲线加密算法的C语言实现.doc

    椭圆曲线加密算法的C语言实现 毕业设计(论文) 题目: 椭圆曲线加密算法的C语言实现 院(系) 信息科学与工程学院 专 业 电子信息工程 届 别 07级 学 号 0715212026 姓 名 王正辉 ...

  3. c语言实现椭圆曲线算法,椭圆曲线加密算法的C语言设计和实现

    椭圆曲线加密系统是迄今为止每比特具有最高安全强度的加密系统,它被认为最有希望成为下一代通用的公钥加密系统.文章将采用标准的C语言设计与实现椭圆曲线加密算法. 椭圆曲线加密算法的C语言设计和实现 椭圆曲 ...

  4. 现代密码学上机程序c语言,现代密码学与加解密技术实验报告

    现代密码学与加解密技术实验报告 现代密码学与加解密技术实验 一. 实验教学目标与基本要求 现代密码学与加解密技术实验是本课程重要的实践教学环节.实验的目的 不仅仅是验证理论知识,更重要的是通过实验加强 ...

  5. JAVA实现置换加密和幻方加密(密码学)

    一.实验目的 帮助学生掌握置换密码的加密解密过程,能够利用所学过的编程语言,熟悉加密算法流程与编程实现加密算法.使学生掌握编程实现实际问题中的方法,提高专业技能和专业素养. 要求学生掌握算法的程序实现 ...

  6. 标准字头密码体制c语言,现代密码学知识点整理:.doc

    PAGE \* MERGEFORMAT PAGE \* MERGEFORMAT 12 基本概念 密钥体制组成部分: 明文空间,密文空间,密钥空间,加密算法,解密算法 2.一个好密钥体制至少应满足的两个 ...

  7. rsa加密c语言源码库,RSA加密算法源代码C语言实现.doc-资源下载在线文库www.lddoc.cn...

    RSA加密算法_源代码__C语言实现.doc RSA 算法 1978 年就出现了这种算法,它是第一个既能用于数据加密也能用于数字签名的算法.它易于理解和操作,也很流行.算法的名字以发明者的名字命名Ro ...

  8. AES128加密算法实现(C语言:ECB加密模式实现)

    AES简介 高级加密标准AES(Advanced Encryption Standard)是一种常见的对称加密算法. 详细介绍如下链接: https://blog.csdn.net/qq_282051 ...

  9. 密码学实验报告c语言程序,密码学_实验一_古典密码算法_C语言.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp高等教育&nbsp>&nbsp实验设计 密码学_实验一_古典密码算法_C语言.doc8页 本 ...

最新文章

  1. Synchronize类锁
  2. Windows Server 2008网络基础结构的实现与管理
  3. 20145236《信息安全系统设计基础》第0周学习总结
  4. LVS负载均衡之NAT模式
  5. 工作簿长时间空闲时自动关闭
  6. Android监听返回键、Home键+再按一次返回键退出应用
  7. oracle存储tar,Linux环境使用TAR命令快速部署安装Oracle
  8. 东京大学计算机专业研究生好吗,东北大学计算机类研究生个人考研经历以及感受...
  9. Python 入门演示
  10. node.js Web实时消息后台服务器推送技术---GoEasy
  11. Nsight Visual Studio Edition初学使用方法
  12. xshell教育版网盘下载
  13. 黑马程序员—一张帖看完黑马所有学科、班级就业薪资贴
  14. Android APP漏洞自动化静态扫描检测工具-Qark
  15. android 经纬度 像素,android 根据经纬度添加图斑并显示
  16. 免疫组库vdj的数据处理(TCR/BCR)
  17. FBI录取测试题,据说全球都答对的只有4个人
  18. 网络安全工程师千峰学习总结第八天
  19. 三星教父李健熙去世!被与乔布斯相提并论,把一个韩国山寨家电厂打造为全球电子巨头...
  20. 外部环境对电路的影响

热门文章

  1. ARFoundation系列讲解 - 79 AR室内导航四
  2. Error:Failed to start LSB: Bring up/down networking的解决方法
  3. 寻找图中所有哈密尔顿环(不重复)
  4. 得了反流性食管炎每天烧心难耐?这6种食物不要再碰了
  5. Jquery日期选择组件
  6. Visual Studio Code中对某变量名批量修改
  7. 基于superSlide的轮播-实用插件教程-源码-
  8. 忘记Navicat账户密码怎么办
  9. MTCNN人脸检测(python实现)
  10. from typing import Literal, ImportError: cannot import name ‘Literal‘