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

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

1. 加密工具

1.1. 加密工具之所以没有得到充分使用,就是因为人们往往认为密码学是一个准入门槛极高的专业领域

1.2. 如今的加密学大部分都源自纯数学,所以只要能够正确使用,加密学确实行之有效

1.3. 密码学可以提供一系列安全工具,但是要想让密码产生效果,就必须谨慎使用加密功能

2. 随机数

2.1. random number

2.2. 可以充当填充或者自动生成的数值,前提是这个数值必须是不可预测的

2.3. 单从安全的角度上看,我们可以认为随机数最重要的属性就是不可预测性

2.4. 必须防止攻击者准确地猜出密码,那么不可预测性就是至关重要的,因为能够被预测到的密码都是弱密码

2.5. 随机数的应用包括认证、散列计算、加密和密钥生成,这些功能都依赖不可预测性

2.6. 伪随机数

2.7. 加密安全的伪随机数

3. 消息摘要

3.1. message digest

3.2. 消息摘要(message digest)或散列函数可以充当数据的指纹,前提是不同的输入不会产生相同的输出(即产生碰撞)

3.3. 是一段使用单向函数从消息中计算出来的固定长度的数值

3.4. 如果两个不同的消息产生了相同的摘要值,我们称之为一次碰撞(collision)

3.5. 如果攻击者发现了两个不同的输出可以生成相同的摘要值,就代表他/她发起了一次成功的碰撞攻击(collision attack)

3.6. 加密安全的摘要算法是强大的单向函数,它可以把碰撞的可能性降到非常低,低到我们可以认为碰撞根本不可能发生

3.7. 使用加密的散列函数

3.8. 重放攻击

3.9. 安全MAC通信

上一篇 下一篇

猜你喜欢

热点阅读