文章目录

  • (一)一次性密码本
  • (二)DES
  • (三)三重DES
  • (四)AES
(一)一次性密码本

原理:将明文与一串随机的比特序列进行XOR运算
加密
1:将明文转换得到一串比特序列,明文
2:随机生成一串和明文比特序列等长的比特序列,秘钥序列
3:将明文和秘钥序列进行XOR运算得到密文,密文

解密
1:将密文和秘钥序列进行XOR运算
2:即二次XOR操作得到原明文数据

一次性密码本是无法破译的
一次性密码本是无法破译的,不过这里的无法破译不是指在现实时间内难以破译,而是我们在进行暴力便利秘钥空间时我们会得到很多种结果,我们无法判断其中哪个是正确的明文

缺点
1:秘钥的配送安全性问题,窃听者掌握了秘钥就可以通过XOR运算得到明文
2:秘钥的保存
3:秘钥需要不断的随机更换
4:一次性密码本秘钥需要和明文比特序列等长,如果明文过长那么也必须生成同样大小的密码

(二)DES

介绍
DES ( Data Encryption Standard )是1977年美国联邦信息处理标准(FIPS )中所采用的一种对称密码(FIPS 46-3)。DES一直以来被美国以及其他国家的政府和银行等广泛使用。

由于DES的密文可以在短时间内被破译,因此除了用它来解密以前的密文以外,现在我们不应该再使用DES 了。

DES是一种将64比特的明文加密成64比特的密文的对称密码算法,它的密钥长度是56比特。尽管从规格上来说,DES 的密钥长度是64比特,但由于每隔7比特会设置一个用于错误检查的比特,因此实质上其密钥长度是56比特。
DES是以64比特的明文(比特序列)为一个单位来进行加密的,这个64比特的单位称为分组。一般来说,以分组为单位进行处理的密码算法称为分组密码,DES 就是分组密码的一种。
DES每次只能加密64比特的数据,如果要加密的明文比较长,就需要对DES加密进行迭代(反复),而迭代的具体方式就称为模式( mode )。

结构
1:DES的基本结构时由Horst Feistel设计的,也被称为Feistel网络
2:Feistel网络中,加密的各个步骤称为轮,DES是一种16轮循环的Feistel网络

基本流程

1:将输入数据明文等分为左右俩部分
2:将输入的右侧直接输出
3:将输入的右侧发送到轮函数(轮函数用于计算生成秘钥)
4:轮函数根据右侧数据和子秘钥,计算出一串随机的比特序列
5:将上一步得到的比特序列与左侧数据进行XOR运算,并将结果作为加密后的左侧
6:第一轮结束后右侧数据依然是明文,需要再次重复执行,需要用不同的子秘钥对一轮的处理重复若干次,并在每俩轮处理之间将左侧和右侧的数据对调
7:Feistel网络的解密操作需要按照相反的顺序来使用子秘钥即可

总结
无论是任何轮数、任何轮函数,Feistel网络都可以用相同的结构实现加密和解密,且加密的结果必定能够正确解密

(三)三重DES

介绍
现在DES已经可以在现实的时间内被暴力破解,因此我们需要一种用来替代DES的分组密码,三重DES就是出于这个目的被开发出来的。
三重DES ( triple-DES )是为了增加 DES的强度,将DES重复3次所得到的一种密码算法,通常缩写为3DES。

特点
1:明文经过三次DES处理才能变成最后的密文,由于DES秘钥的长度实际上是56比特,因此三重DES的秘钥长度就是56 X 3=168比特

2:三重DES不是三次加密,而是(加密-解密-加密),这样做的目的在于对DES具备向下兼容性

3:三重DES俩次加密不能使用相同的秘钥,否则就等同于DES

4:密钥1、密钥2、密钥3全部使用不同的比特序列的三重DES称为DES-EDE3

5:三重DES的解密过程和加密正好相反,是以密钥3、密钥2、密钥1的顺序执行解密→加密→解密的操作

(四)AES

介绍
AES ( Advanced Encryption Standard )是取代其前任标准(DES)而成为新标准的一种对称密码算法。全世界的企业和密码学家提交了多个对称密码算法作为AES的候选,最终在2000年从这些候选算法中选出了一种名为Rijndael 的对称密码算法,并将其确定为了AES

Rijndael
Rijndael是由比利时密码学家Joan Daemen和 Vincent Rijmen 设计的分组密码算法,于2000年被选为新一代的标准密码算法——AES。今后会有越来越多的密码软件支持这种算法。
Rijndael的分组长度为128比特,密钥长度可以以32比特为单位在128比特到256比特的范围内进行选择(不过在AES 的规格中,密钥长度只有128、192和256比特三种)。

加密和解密
1:AES实现算法标准为Rijndael
2:分组密码算法
3:该算法也是由多个轮所构成,使用SPN结构
4:输入分组为128比特,每次会对数据进行SubBytes处理

具体步骤
1:SubBytes环节
以每个字节的值(0-255中的任意值)为索引,从一张拥有256个值的替换表中查找对应值的处理,也就是说将一个1字节的值替换成另一个1字节的值。类似于简单替换密码模式

2:ShiftRows环节
将SubBytes环节的输出以字节为单位进行打乱处理。

3:MixColumns环节
在ShiftRows处理后,对一个4字节的值进行比特运算,将其变为另一个4字节的值。

4:AddRoundKey环节
将MixColumns的输出与轮秘钥进行XOR操作,到这里,Rijndael的一轮就结束了。实际上,在Rijndael中需要重复进行10-14轮计算。

分析
Rijndael输入的所有比特在一轮中都会被加密。和每一轮都只加密一半输入的比特的Feistel网络相比,这种方式的优势在于加密所需要的轮数更少。此外,这种方式还有一个优势,即 SubBytes、ShiftRows和 MixColumns可以分别按字节、行和列为单位进行并行计算。

对于Rijndael来说,可能会出现以前并不存在的新的攻击方式。尽管本书中没有涉及,但Rijndael的算法背后有着严谨的数学结构,也就是说从明文到密文的计算过程可以全部用公式来表达,这是以前任何密码算法都不具备的性质。如果Rijndael的公式能够通过数学运算来求解,那也就意味着Rijndael能够通过数学方法进行破译,而这也就为新的攻击方式的产生提供了可能。
不过,这也只是一种假设而已,实际上到现在为止还没有出现针对Rijndael 的有效攻击。

相对于DES和三重DES,更推荐在现在安全加密中使用AES

对称密码(共享秘钥密码)相关推荐

  1. MacOS使用LT2P无法远程办公连接公司内网及连接上无法访问公司内网服务的问题解决脚本(基于与共享秘钥的远程办公LT2P)

    #!/bin/sh [ -d /etc/ppp ] || mkdir /etc/ppp echo '''plugin L2TP.ppp l2tpnoipsec''' > /etc/ppp/opt ...

  2. 自动秘钥密码(Autokey)

    自动秘钥密码(Autokey) 加密对象: 字母 原理: 该密码玉维吉尼亚密码很像, 不同的是秘钥的构成方式不同. 维吉尼亚密码密码的秘钥是有关键字的重复构成的,而该密码的秘钥是由关键字和明文本身构成 ...

  3. 秘钥加密码的登录模式

    应用场景:有时候我们要给远在北京或者国外的开发人员服务器的权限,为了保证服务器的安全性我们不想让他们知道服务器的root登陆密码,所以我们可以给他们用秘钥加密码的登陆模式. 原理:公钥加密 私钥解密. ...

  4. 利用Xshell实现非对称秘钥对安全登陆linux服务器(Centos、Ubuntu)

    非对称加密算法简述: 对称加密算法在加密和解密时使用的是同一个秘钥:而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private ke ...

  5. 远程LInux和秘钥认证

    一.使用putty和xshell远程Linux主机 putty和xshell都是一个能远程连接linux系统的终端工具,使用终端工具便于远程维护操作复制粘贴内容,xshell还支持用户密码保存及多窗口 ...

  6. Linux7密钥,centos7秘钥验证

    GNU和GPL相关文档:www.jianshu.com/p/a6a594a00b5b 1. 新建session:通常是以IP为hostname登录.自动获取ip用dhclient.删除自动获取的IP用 ...

  7. 密码算法原理与分析:RSA安全与秘钥基础设施

    本文转自网络文章,内容均为非盈利,版权归原作者所有. 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除. 原文作者:evilpan 原文地址:RSA安全与秘钥基础设施 目录 前言 RSA原理 秘钥 ...

  8. Vigenere密码(案例:Vigenere密码加密单词”explanation“,秘钥为”leg“。)

    Vigenere密码 是什么 是使用一系列凯撒密码组成密码字母表的加密算法,属于 多表密码 的一种简单形式. 为什么 针对单表代替密码容易被频率分析法破解的缺点,人们提出多表代换密码,用一系列(两个以 ...

  9. php开发支付宝支付密码忘记了怎么办_php支付走过的坑(支付宝篇 注册 秘钥 环境等等配置)...

    支付这东西,说容易也容易,说难也难 代码这玩意还比较好说 但是 如果没有demo 直接去看官方文档 十有八九一脸懵逼 今天就整理一下 支付这块走过的坑 涉及 微信h5支付 支付宝h5支付 (api文档 ...

  10. 《图解密码技术》第三章 对称密码(共享密玥密码)

    第三章 对称密码(共享密玥密码)

最新文章

  1. Java学习笔记之:Java JDBC
  2. OpenCASCADE:Open CASCADE Application Framework (OCAF)的简介
  3. zookeeper启动占用8080端口
  4. Hive:表1inner join表2结果group by优化
  5. 如果有这样一台服务器……
  6. 我的swagger上面怎么没有models_浅析特斯拉Model S的采样板
  7. django-模板语言-传输各种数据类型
  8. c语言到底写什么系统,用C语言写关于操作系统的一个问题。
  9. 查看目录中的内容及权限
  10. IHttpModule与IHttpHandler的区别整理
  11. MapInfo启动时,提示the Microsoft jet engine is not available
  12. Linux--shell编程原理--03
  13. 陈梓涵:关于编程的胡扯
  14. pyspark若不能运行,需指定支持版本的java:os.environ[‘JAVA_HOME‘] = ‘F:\Java15.0.2‘
  15. Lambert 投影转换相关代码
  16. vmware如何安装spoonwep2
  17. 使用table标签制作常用的html表格
  18. Field accountDao in com.mdxl.service.AccountService required a bean of type 'com.mdxl.dao.MbAccountD
  19. 看完,感触很多 “IT技术开发人员获得成功的六大步骤”
  20. request + bs4 爬取网易云音乐热门评论

热门文章

  1. python抛出异常 后如何接住_如何在try中捕获异常后继续循环。。。例外
  2. uml点餐系统活动图_大学生网上订餐系统--UML建模
  3. 计算机一级win7win10,Windows7怎么升级10系统,两种最简单的Win7升级Win10教程
  4. 华为平板解锁工具_华为平板M6 10.8英寸首发评测 办公+影音+智能全面开花
  5. ahk写入excel单元格_AHK(二):设置Excel操作快捷键
  6. 全国各省五等份收入统计(2000-2017年)
  7. 如何利用TFTP服务器上传文件到真机交换机?可使用SecureCRT和3CDaemon工具
  8. 如何学习Java软件开发
  9. 4k视频分辨率的码流_4k分辨率普通码率和蓝光1080p高码率视频,到底哪个体验好?...
  10. 计算机表格计算公式加法,加法公式excel,excel表格如何用公式计算加减乘除混合运算?...