密码学入门(1):概述
文章目录
密码学中的一些人名
名称 | 说明 |
---|---|
Alice | 一般角色(通常为消息的发送者) |
Bob | 一般角色(通常为消息的接收者) |
Eve | 窃听者(可窃听消息内容) |
Mallory | 主动攻击者(可妨碍通信、伪造消息) |
Trent | 可信的第三方 |
Victor | 验证者 |
基本概念
- 加密(encrypt):Alice不想别人知道消息的内容,于是将消息加密后再发出去。
- 解密(decrypt):Bob收到Alice的加密消息,需要对密文解密而恢复原文。
- 加密之前的消息称为明文(plaintext),加密后的消息称为密文(ciphertext)。
信息安全的基本性质
- 机密性(confidentiality):Alice将数据加密,Bob进行解密,而Eve无法读取原始数据。
- 完整性(integrity):Alice发送数据,Bob能确认接受到的数据是完整的、没有被篡改的。
- 真实性(authenticity)(也叫认证):Alice发送数据,Bob能确认接受到的数据是由Alice发出的。
- 不可否认性:Alice发送数据给Bob,Alice不能否认自己没有发过这些数据。
密码学工具箱
- 对称密码:加密和解密使用同一种密钥,保证了数据传输的机密性。
- 公钥密码:加密和解密使用不同密钥,保证了数据传输的机密性。
- 单向散列函数:可以保证数据的完整性。
- 消息认证码:可以保证数据的完整性和真实性。
- 数字签名:可以保证数据的完整性、真实性和不可否认性。
信息安全常识
-
不要使用保密的密码算法
- 密码算法的秘密早晚会公诸于世。
- 开发高强度的密码算法非常困难。
- 现在世界上公开的高强度密码算法,都是经过密码破译者长期尝试破解未果而存活下来的。
- 试图对密码算法本身进行保密来确保安全的行为,一般称为隐蔽式安全性(security by obscurity),这种行为是危险且愚蠢的。
-
使用低强度的密码比不进行任何加密更危险
- 主要原因在于用户容易因为“密码”这个词获得一种“错误的安全感”,从而导致在处理一些机密信息时麻痹大意。
-
任何密码总有一天都会被破解
- 只要将所有可能的密钥全部尝试一遍,总有一天可以破译。
- 严格来说,存在绝对不会被破解的密码算法,例如一次性密码本(one-time pad)(将在之后讨论),但它不是一种现实可用的算法。
参考
《图解密码技术》