读软件开发安全之道:概念、设计与实施08密码学(下)

2024-08-24  本文已影响0人  躺柒
读软件开发安全之道:概念、设计与实施08密码学(下).png

1. 对称加密

1.1. symmetric encryption

1.2. 使用各方共享的密钥来隐藏数据

1.3. 所有加密都是通过对明文进行转换,把明文消息(或者原始消息)变成无法识别的形式(也称为密文),从而隐藏原始消息内容的

1.4. 可逆的转换称为对称加密,因为只要知道密钥,我们就既可以进行加密,也可以进行解密

1.5. 一次性填充

1.6. 高级加密标准

1.7. 使用对称加密

1.8. 对于对称加密来说,签名是不可能实现的,因为通信的双方都知道密钥

2. 非对称加密

2.1. asymmetric encryption

2.2. 使用接收方拥有的密钥来隐藏数据

2.3. 非对称加密完全违背了我们对加密这件事的直觉,但非对称加密的强大恰恰源于此

2.4. 如果使用非对称加密,那么虽然Bob可以把加密的消息发送给Alice,但是他自己却无法解密这条消息

2.5. 非对称加密会使用一对密钥,即用来加密的公钥(public key)和用来解密的私钥(private key)

2.6. RSA密码系统

2.7. 因为非对称加密比对称加密需要消耗更多的计算资源,所以我们通常会选择用非对称加密的方法来处理随机密钥,然后用密钥来对消息本身执行对称加密

2.8. 非对称加密的安全性取决于是不是只有通信方知道自己的私钥,所以只有这个通信方可以用私钥来进行签名

3. 数字签名

3.1. digital signature

3.2. 会根据只有签署方拥有的密钥来对数据进行认证

3.3. 公钥加密也可以用来创建数字签名,让接收方验证消息的真实性

3.4. 真实性和不可抵赖性是通信中的两大重要安全属性,另一个则是机密性

3.5. 签名和加密是两个独立的过程,根据应用的不同,我们可以只进行签名、只进行加密或者两项操作都执行

3.6. 数字签名广泛应用于签署数字证书、邮件、应用代码和合法文件,也广泛应用于保护各类加密货币(如比特币)

3.7. 人们会对消息的摘要值进行签名,其目的是让一次签名操作就可以覆盖整个文档

4. 数字证书

4.1. digital certificate

4.2. 会根据对根证书的信任来对签署方进行认证

4.3. 公钥加密的优势在于它提供的便利性

4.4. 证书认证机构

5. 密钥交换

5.1. key exchange

5.2. 让双方通过公开的信道来建立共享密钥,不管是否有人在窃听这个信道

5.3. 在RSA问世之后不久,怀特菲尔德·迪芙(Whitfield Diffie)和马丁·赫尔曼(Martin Hellman)开发了一个非常实用的密钥交换算法

5.4. 在互联网上建立安全通信信道(比如通过TLS协议)方面,密钥交换是一种特别方便的机制

5.5. 一旦拥有了共享密钥,双方就可以通过加密通信来建立安全的私有信道

6. 使用加密

6.1. 从密码学的角度来看,安全随机数增加了不可预测性,从而缓解了通过猜测进行的攻击

6.2. 摘要提供了一种安全的方式,可以提取唯一的数据来对原始数据执行完全性检查

6.3. 加密包括对称加密和非对称加密两种方式,其目的都是保护数据的机密性

6.4. 数字签名是一种对消息进行认证的方式

6.5. 数字证书可以利用对CA的信任,来简化共享真实公钥的方式

6.6. 密钥交换完善了加密工具箱,让通信双方可以通过公共网络连接安全地远程协商密钥

6.7. 正确使用加密算法非常重要,因为你可以避免给对手提供发起这类攻击的机会

上一篇 下一篇

猜你喜欢

热点阅读