第二章 信息加密与消息摘要

2.1 古典密码学

  • 替换思想

凯撒密码(公元前54年):消息的加密是通过将当前字母替换为在常规字母表中第n个位置之后的那个字母来完成的。如:

用密钥“3”加密明文消息:fourscoreandsevenyearsago

加密的结果为:IRXUVFRUHDAGVHYHABHDUVDIR

  • 换位思想

换位密码保持所有字母数量不变,只改变字母的排列,一般是将明文写在一个给定大小的矩阵中,然后对行和列依据特定的序列进行置换操作。

假设将明文attackatdawn到一个3×4的矩阵中:

如果按照(1, 2, 3)→( 3, 2, 1)的方式转换(或置换)矩阵的行,然后再按照(1, 2, 3, 4)→(4, 2, 1, 3)的方式转换矩阵的列:

可以得到密文: NADWTKCAATAT

  • 培根密码

培根密码(Baconian Cipher)是一种替换密码,16世纪由英国哲学家兰西斯·培根(知识就是力量口号的提出者)创造,每个明文字母被一个由5字符组成的序列替换。

  • 猪圈密码

猪圈密码(Pigpen cipher)是一种以格子为基础的简单替换密码。

17世纪左右,共济会常常使用这种密码保护一些私密纪录或用来通讯,所以又称共济会密码。

  • 跳舞的小人

来自小说人物夏洛克福尔摩斯在《归来记》中侦探案件使用的一种加密方式。

  • 摩斯电码

摩尔斯电码是无线电发明后最早使用的信息编码,通过电键敲击出点、划及中间的停顿发送。

  • 当铺密码

当铺密码通常使用汉字来隐藏信息,专门用来加密数字,不需要密钥,明文信息包含在加密后的密文中。

较常见的当铺密码有两种,一种是将数字映射到对应笔画的汉字,另外一种是利用汉字的字形特征,当前汉字有多少笔画出头就转化成数字几。

  • 键盘密码

利用键盘的特性制作的密码,常见有计算机的键盘和手机的键盘,加密的方式有坐标法和顺序法。

方式1:按键盘顺序编码A-Z

方式2:按行列坐标将字母转换为数字,例如Q=11、M=73

方式3:按键盘顺序将字母转换为数字,QWERTY=123456

  • 与佛论禅

2.2 现代密码学

纵观整个20世纪,密码技术在重大的世界性事件中扮演了非常重要的角色。在20世纪后期,密码技术逐渐成为商业上以及业务往来中通信的关键性技术,并且一直到今天仍是如此。

  • 香农发表奠基性文章《保密系统的通信理论》(1949年)

在第二次世界大战之后的若干年里,密码技术逐渐地从战争领域走进了科学领域。

1949年,克劳德·艾尔伍德·香农的奠基性文章《保密系统的通信理论》的发表,标志了这种历史性的转折。

香农提出了两个密码系统设计的基本原则:扰乱(confusion)和扩散(diffusion)。

这两个基本原则从提出到现在一直在指导着对称密钥加密系统的设计。

  • 美国国家标准局建立的数据加密标准(DES)(1977年)

密码学技术的商业化转变发生在20世纪70年代,主要原因是计算机革命所引发的对大量的电子信息数据实施保护的需求。到20世纪70年代中期,甚至连美国政府也意识到对于安全加密技术存在着合法合理的商业诉求。

于是,美国国家标准局(National Bureau of Standards,NBS) 1973年开始研究除国防部外的其它部门的计算机系统的数据加密标准,于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密算法的公告。1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(Data Encryption Standard),或简称为DES。
 
lDES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键数据的保密,如信用卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。
  • 对称加密的概念

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。

  • DES加密的三个原则

1.混淆(confusion):使密文与密钥的关系尽可能复杂化,使得对手即使获取了许多明文和对应的密文,以及关于密文的一些统计特性,也无法推测密钥。

2.扩散(diffusion):让明文中的每一位影响密文中的许多位,或者说让密文中的每一位受明文中的许多位的影响。这样可以隐蔽明文的统计特性。当然,理想的情况是让明文中的每一位影响密文中的所有位,或者说让密文中的每一位受明文中所有位的影响。

3.分组(block cipher):可以看成经典的电报密码本加密技术的现代传承,其中由密钥来决定电报密码本的选择。一次加密一组数据,密钥长度为一组数据的长度。

  • DES加密原理

DES(Data Encryption Standard)采用分组加密。使用64位的分组长度和56位的密钥长度,将64位的输入经过一系列变换得到64位的输出。DES算法利用多次组合替代算法和换位算法,通过混淆和扩散的相互作用,把明文编制成密码强度很高的密文。解密则使用了相同的步骤和相同的密钥。

  • DES加密特点

DES算法产生密钥的方式简单,密钥一般也比较短。

DES算法加密解密速度快,效率很高,适合对大数据量的数据进行加密。

DES算法的安全性依赖于密钥的高度保密,通信双方必须有方法能保证安全的分享密钥,并定期更换DES密钥。

  • 高级加密标准AES

随着计算机能力突飞猛进,DES标准56位的密钥长度已经力不从心。

1999年,利用计算机破解DES密码只需要几十个小时。

2001年,美国国家标准与技术研究院发布AES以替代DES。

AES加密标准将密钥长度提高到了128位(可选192位和256位)。

  • 国产对称加密算法

国家密码局认定的国产对称加密算法为SM1、SM4和SM7,密钥长度和分组长度均为128位。

SM1对称加密的加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用主要应用到商业领域。

SM4对称加密为无线局域网标准的分组数据加密算法,算法已公开。

SM7对称加密算法为非接触式IC卡设计,主要用于身份识别类应用(门禁卡、工作证、参赛证)、票务类应用(大型赛事门票、展会门票)和支付类应用(积分消费卡、校园一卡通、企业一卡通等),算法不公开。

2.3 消息摘要与数字签名

2021-05-04相关推荐

  1. DS SIMULIA CST STUDIO SUITE 2021.05 SP5

    CST Studio Suite 2021.05 - 发行说明 此补丁是推荐更新,其中包括以下更正和改进. 许可 CST Studio Suite Frontend 包括 CST Studio Sui ...

  2. 【财经期刊FM-Radio|2021年04月14日】

    title: [财经期刊FM-Radio|2021年04月14日] 微信公众号: 张良信息咨询服务工作室 [今日热点新闻一览↓↓] 美债收益率回落,特斯拉涨超8%力挺标普创新高,比特币首破6.3万美元 ...

  3. 2021.05.27 发表自己第一篇技术文章

    从昨晚开始做家庭财经系统.不要以为有系统两个字就怎么复杂,都是大家都会的.建库.建表. 第一个使用软件是mysql 2021.05.26 数据库 lianxi 已建好. 表 members_basic ...

  4. 市面上主流编辑器介绍(2021/05/20)

    市面上主流编辑器介绍(2021/05/20) 背景 Markdown是一种有用的轻量级标记语言,后续Markdown简写为md. 富文本编辑器(Rich Text Editor,RTE)是一种可内嵌于 ...

  5. 2021.05.05青蛙过河

    2021.05.05青蛙过河 (题目来源:https://leetcode-cn.com/problems/frog-jump/) 题目描述 一只青蛙想要过河. 假定河流被等分为若干个单元格,并且在每 ...

  6. 2021.05.20最少数量的箭引爆气球

    2021.05.20最少数量的箭引爆气球 题目描述 在二维空间中有许多球形的气球.对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标.由于它是水平的,所以纵坐标并不重要,因此只要知道开始和 ...

  7. 嬴群的Python程序设计基础学期总结 2021.01.04

    Python程序设计基础学期总结 ## 时光像水中的倒影,一晃大一上学期就过去了.昨日那埋怨时间太慢的情愫似乎还游离在脑际,而今大一下学期生活正向我们走来,蓦然回首,感慨颇多.刚迈入大学的时候对一切似 ...

  8. 【离散数学】 SEU - 24 - 2021/05/28 - Algebraic System

    Discrete Mathematical Structures (6th Edition) 2021/05/28 - Algebraic System Algebraic System Binary ...

  9. TS:git clone出现 fatal unable to access ‘httpsgithub.com...‘的解决办法(已解决)-2021.12.04

    TS:git clone出现 fatal: unable to access 'https://github.com/-'的解决办法(已解决)-2021.12.04 目录 文章目录 TS:git cl ...

  10. 2021.05.15继承球体和圆柱体

    原文链接: 自动车 手动车:https://codeeggs.github.io/2021/05/15/2021.05.15%E7%BB%A7%E6%89%BF%E7%90%83%E4%BD%93%E ...

最新文章

  1. 程序运行慢?你怕是写的假 Python
  2. 风险监控报表(Word)
  3. 【CVPR 2018】Learning Rich Features for Image Manipulation Detection(图像篡改检测)
  4. AHOI(十二省联考)2019 退役记
  5. PHP进行生成并且导出CSV文件
  6. 基于JWT的API权限校验:需求分析
  7. Linux多线程编程实例解析
  8. LeetCode MySQL 626. 换座位
  9. 好看的动态实时时间显示时钟HTML源码
  10. UI设计素材|动画的妙处,有助于吸引你的用户
  11. Bat脚本处理ftp超强案例解说
  12. js实现多个图片淡入淡出,框架
  13. ASA virtual telnet
  14. fastjson 添加key value_采坑系列—fastjson
  15. spring事件监听器系列一:应用
  16. js ws 状态_使用ws
  17. 测试用例设计——正交实验法
  18. 【Java EE 学习第21天 使用易宝支付接口实现java网上支付功能】
  19. 基于Gamebuino设计的算盘小游戏
  20. java seek_java中seek()的用法,seek和seekfor有什么区别

热门文章

  1. 基于USB3.0、DP1.2的网络隔离数据安全传输方案
  2. 搜狗浏览器自动保存密码的技巧
  3. atom运行mysql_atom下载安装及使用教程
  4. 黄文仔:沉下心来打磨产品,塑造精工卓越星河湾
  5. 三毛1--沙漠中的饭店
  6. 艾伟:一次挂死(hang)的处理过程及经验
  7. 2020计算机考研专业课视频,2020计算机考研视频哪个好
  8. dropzone 分段上传 进度条后退问题解决
  9. javaweb中隐藏域的使用
  10. php开发建站学校,闪灵CMS学校建站系统(含小程序)