第十八天:对称加密-非对称加密-数字签名-证书

第十八天:对称加密-非对称加密-数字签名-证书

对称加密

image-20211017120314659

对称密码中,加密用的密钥和解密用的密钥是相同的

如何解密

image-20211017120232789

DES加密

image-20211017121556392

DES是一种将64bit明文加密成64bit密文的对称加密算法,密钥长度是56bit

规格上来说,密钥长度是64bit,但每隔7bit会设置一个用于错误检查的bit,因此密钥长度实质上是56bit

由于DES每次只能加密64bit的数据,遇到比较大的数据,需要对DES加密进行迭代((反复)

目前已经可以在短时间内被破解,所以不建议使用

3DES加密

3DES,将DES重复3次所得到的一种密码算法,也叫做3重DES三重DES并不是进行三次DES加密(加密→加密→加密)

而是加密(Encryption)→解密(Decryption)→加密(Encryption)的过程

目前还被一些银行等机构使用,但处理速度不高,安全性逐渐暴露出问题

image-20211017121930595

三把密钥是不一样的,如果所有密钥都使用同一个,则结果与普通的DES是等价的

AES加密(Advanced Encryption Standard)

取代DES成为新标准的一种对称加密算法,又称Rijndael加密法

AES的密钥长度有128、192、256bit三种

目前AES,已经逐步取代DES、3DES,成为首选的对称加密算法

其它加密
https : / / www.sojson.com/ encrypt des.html

https: //tool.chinaz.com/tools/md5.aspx

密钥配送问题

传输过程中,我的密钥也会传输,就会被窃听者窃听到你的密钥,当窃听者拿到密钥也会解密后拿到明文

如果Alice将使用对称加密过的消息发给了Bob只有将密钥发送给Bob,Bob才能完成解密在发送密钥过程中

可能会被Eve窃取密钥最后Eve也能完成解密

如何解决密钥配送问题

有以下几种解决密钥配送的方法

  • 事先共享密钥(比如私下共享)

  • 密钥分配中心(Key Distribution Center,简称KDC)

  • Diffie-Hellman密钥交换

  • 非对称加密

非对称加密

在非对称加密中,密钥分为加密密钥、解密密钥2种,它们并不是同一个密钥

image-20211017123031658

公钥密码中,加密用的密钥和解密用的密钥是不同的

加密密钥:—般是公开的,因此该密钥称为公钥(public key)

  • 因此,非对称加密也被称为公钥密码(Public-key Cryptography)

解密密钥:由消息接收者自己保管的,不能公开,因此也称为私钥(private key)

具体流程

image-20211017123307700

首先由E生成一对密钥—公钥和私钥,当ABCD向E发送数据时,ABCD用公钥进行加密,然后由E用私钥进行解密

公钥、私钥
  • 公钥和私钥是一一对应的,不能单独生成
  • 一对公钥和私钥统称为密钥对(key pair)
  • 由公钥加密的密文,必须使用与该公钥对应的私钥才能解密
  • 由私钥加密的密文,必须使用与该私钥对应的公钥才能解密

那为什么不直接用非对称加密直接解决发送呢?还要用非对称加密解决对称加密的密钥问题?

因为非对称加密安全,相对的,他的成本就会很高加密解密速度就慢

而对称加密虽然简单不安全,但是他的加解密速度快

解决密钥配送问题

image-20211017135944102

  • 由消息的接收者,生成一对公钥、私钥
  • 将公钥发给消息的发送者
  • 消息的发送者使用公钥加密消息
  • 非对称加密的加密解密速度比对称加密要慢
RSA加密算法

目前使用最广泛的非对称加密算法是RSA

RSA的名字,由它的3位开发者,即Ron Rivest、Adi Shamir、Leonard Adleman的姓氏首字母组成

混合密码系统

对称加密的缺点

  • 不能很好地解决密钥配送问题(密钥会被窃听)

非对称加密的缺点

  • 加密解密速度比较慢

混合密码系统:是将对称加密和非对称加密的优势相结合的方法

  • 解决了非对称加密速度慢的问题
  • 并通过非对称加密解决了对称加密的密钥配送问题
  • 网络上的密码通信所用的SSL/TLS都运用了混合密码系统
混合密码加密

会话密钥(session key)

为本次通信随机生成的临时密钥
作为对称加密的密钥,用于加密消息,提高速度

image-20211017140823239

加密步骤(发送消息)

  1. 首先,消息发送者要拥有消息接收者的公钥
  2. 生成会话密钥,作为对称加密的密钥,加密消息
  3. 用消息接收者的公钥,加密会话密钥
  4. 将前2步生成的加密结果,一并发给消息接收者

发送出去的内容包括

  1. 用会话密钥加密的消息(加密方法:对称加密)
  2. 用公钥加密的会话密钥(加密方法:非对称加密)
混合密码—解密

解密过程图解

image-20211017141045201

混合密码-加密解密流程

**Alice >>>>>> Bob

发送过程(加密过程)

  1. Bob先生成一对公钥、私钥
  2. Bob把公钥共享给Alice
  3. Alice随机生成一个会话密钥(临时密钥)
  4. Alice用会话密钥加密需要发送的消息(使用的是对称加密)
  5. Alice用Bob的公钥加密会话密钥(使用的是非对称加密)
  6. Alice把第④、⑤步的加密结果,一并发送给Bob

接收过程(解密过程)

  1. Bob利用自己的私钥解密会话密钥(使用的是非对称加密算法进行解密)
  2. Bob利用会话密钥解密发送过来的消息(使用的是对称加密筹法进行解密)

数字签名

业务场景

image-20211017141517452

Alice发的内容有可能是被篡改的,或者有人伪装成Alice发消息,或者就是Alice发的,但她可以否认

问题来了: Bob如何确定这段消息的真实性?如何识别篡改、伪装、否认?
解决方案

数字签名

在数字签名技术中,有以下2种行为

生成签名

  • 由消息的发送者完成,通过“签名密钥”生成

验证签名

  • 由消息的接收者完成,通过“验证密钥”验证

如何能保证这个签名是消息发送者自己签的?

  • 用消息发送者的私钥进行签名
数字签名-过程

图解

image-20211017142232828

如果有人篡改了消息内容或签名内容,会是什么结果?

签名验证失败,证明内容被篡改了

数字签名不能保证机密性?

数字签名的作用不是为了保证机密性,仅仅是为了能够识别内容有没有被篡改

数字签名的作用

确认消息的完整性识别消息是否被篡改防止消息发送人否认

非对称加密一公钥、私钥再总结

image-20211017142738683

非对称加密中,任何人都可以使用公钥进行加密

image-20211017142817079

数字签名中,任何人都可以使用公钥验证签名

image-20211017142840921

既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密

公钥负责加密,私钥负责解密

既然是签名,那肯定是不希望有人冒充我发消息,所以只有我才能签名

私钥负责签名,公钥负责验签

公钥的合法性

如果遭遇了中间人攻击,那么公钥将可能是伪造的

image-20211017143406613

如何验证公钥合法性

证书

证书

说到证书

首先联想到的是驾驶证、毕业证、英语四六级证等等,都是由权威机构认证的

密码学中的证书,全称叫公钥证书(Public-key Certificate,PKC),跟驾驶证类似

  • 里面有姓名、邮箱等个人信息,以及此人的公钥
  • 并由认证机构(Certificate Authority,CA)施加数字签名

CA就是能够认定“公钥确实属于此人”并能够生成数字签名的个人或组织

证书-使用

image-20211017144451730

各大CA的公钥,默认已经内置在浏览器和操作系统中

注册和下载

image-20211017145155270

查看可以证书

  1. Windows键+R>>>输入mmc

    image-20211017145337963

  2. 文件>>>添加/删除管理单元

    image-20211017145416068

  3. 证书>>>添加>>>我的用户账户>>>完成>>>确定

image-20211017145453300

image-20211017145517828

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值