常用密码算法总结笔记

1.术语介绍

根据密钥的使用方法,可以将密码分为对称密码和公钥密码。

对称密码:加密和解密使用同一种密钥的方式。

公钥密码:加密和解密使用不同的密码的方式,因此公钥密码通常也称为非对称密码。

2.RSA算法

RSA加密算法是一种广泛使用的公钥密码算法。

2.1 算法流程

2.2 安全性

RSA的安全性依赖于大数分解的困难问题,RSA密码很难抵御选择密文攻击。

3. DH算法

3.1 算法流程

假设Ali和Bob需要互相通信并共享秘钥

  1. Ali先给Bob一个明文共享参数P、G,此信息可以被任何人识别。

  1. Ali 自己生成一个随机数A(Ali的私钥),并不将A告诉包括Bob在内的任何人。

  1. Bob自己生成一个随机数B(Bob的私钥),并不将B告诉包括Ali在内的任何人。

  1. Ali通过自己的私钥A对G、P进行加密后(G^AmodP)的值传送给Bob。

  1. Bob通过自己的私钥B对Ali通过第4步发送给Bob的信息(G^AmodP)进行加密得到(G^AmodP)^BmodP=G^AxBmodP=S。

  1. 同理,Bob通过自己的私钥B对G、P进行加密后(G^BmodP)的值传送给Ali。

  1. Ali通过自己的私钥A对Bob通过第6步发送给Bob的信息(G^BmodP)进行加密得到(G^BmodP)^AmodP=G^B×AmodP=G^A×BmodP=S。

  1. 因此Ali和Bob得到了他们协议后的公钥S,及他们各自的私钥A和私钥B。

3.2安全性

DH算法虽然可以保护通信信息安全,但却无法确认通信双方的真实身份,很难防范中间人的攻击。所以在日常使用中,DH算法经常辅以其他的数字签名算法(如RSA等)一同使用,用于验证通信双方的真实身份。

4.DES算法

DES加密算法是一种应用广泛的分组对称加密算法。

4.1算法流程

DES加密算法是将64位的明文输入块变为64位的密文输出块,其密钥是64位,其中8位是奇偶校验位。整个算法的处理流程如图所示:

从整体结构来看,DES加密算法可分为3个阶段:

(1)对于给定的明文m,通过一个(固定的)初始置换IP重新排列m中的所有比特,从而构造比特串m0。把64位比特串m0拆分成左右2个部分,即m0=IP(m0)=L0R0,这里L0由m0的后32位组成。

(2)计算16次迭代变换,所有16次迭代具有相同结构。第i次迭代运算是以前一次迭代的结果和由用户密钥扩展的子密钥Ki作为输入;每一次迭代运算只对数据的右半部分Ri-1进行变换,并根据以下规则得到Li,Ri作为下一轮迭代的输入:Li=Ri-1,Ri=Li-1⊕f(Ri-,Ki),表示2个比特串的异或(按位模2加)。其中每一轮次运算的子密钥Ki是将56位密钥分成2个部分,每部分按循环移位次数表移位并按置换选择表置换得到。轮函数f的处理过程:先将Ri-1进行E置换,再与本轮的子密钥相异或,最后将S盒字替换和P置换。

(3) 对16次迭代变换的结果使用IP置换的逆置换IP-1,最后所得到的输出即为加密后的密文。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值