前言
本篇是《图解密码技术》读书笔记的第(一)篇,主要介绍密码界的一些常用名词,并浏览一些主要的加密技术。
相关名词
- 发送者(sender)
- 接收者(receiver)
- 窃听者(eavesdropper)
- 破译者(cryptanalyst)
- 加密(encrypt)
- 解密(decrypt)
-
破译(cryptanalysis):有时也称为密码分析,指接收者以外的人试图将密文还原为明文
- 消息(message):被发送的信息
- 明文(plaintext):加密之前的消息
-
密文(ciphertext):加密之后的消息
-
密码算法:从明文生成密文的步骤,称为“加密算法”,解密的步骤则称为“解密算法”。加密、解密的算法合在一起统称为”密码算法“。
- 密钥(key):类似于现实世界中的“钥匙”。无论是加密还是解密,都需要知道密钥。注意不能让密码的密钥被他人窃取。关于密钥,将在第3篇中详细讲解(TODO:贴入链接)
主要的加密技术
对称密码(symmetric cryptography)
在加密和解密时,使用同一密钥的方式。
关于对称密码,将在第3/4篇中讲解(TODO:贴入链接)
公钥密码(public-key cryptography)
在加密与解密时,使用不同密钥的方式,又被称为非对称加密。
关于公钥密码,将在第5篇中讲解(TODO:贴入链接)
混合密码系统(hybrid cryptosystem)
将对称密码和公钥密码结合起来的密码方式,同时具备两者的优势。
关于混合密码系统,将在第6篇中讲解(TODO:贴入链接)
单向散列函数(one-way hash function)
一种保证完整性的密码技术,可以检测出数据是否被篡改。
关于单向散列函数,将在第7篇中讲解(TODO:贴入链接)
消息认证码(message authentication code)
一种能够保证完整性和提供认证的密码技术。
通过使用消息认证码,不但能够确认消息是否被篡改,而且能够确认消息的来源即通信对象是否正确。
关于消息认证码,将在第8篇中讲解(TODO:贴入链接)
数字签名(digital signature)
一种能够确保完整性、提供认证并防止否认的密码技术。
关于数字签名,将在第9篇中讲解(TODO:贴入链接)
伪随机数生成器(Pseudo Random Number Generator,PRNG)
一种能够模拟产生随机数列的算法,承担着生成密钥的重要职责。
如果生成随机数的算法不够好,窃听者就能够推测出密钥,从而带来通信机密性下降的风险。
关于伪随机数生成器,将在第12篇中讲解(TODO:贴入链接)
隐写术(steganography)与数字水印
严格来讲,隐写术不是一种密码技术,它并不能让消息内容变得无法解读,而是能够隐藏消息本身。
密码隐藏的是内容,隐写术隐藏的是消息本身。
以下六种密码技术尤为重要,统称为密码学家的工具箱。
- 对称密码
- 公钥密码
- 单向散列密码
- 消息认证码
- 数字签名
- 伪随机数生成器
密码与信息安全
- 不要使用保密的密码算法,要使用公开的被时间验证过的密码算法。
- 使用低强度的密码,比不适用任何加密更危险。
- 任何密码总有一天会被破解。
- 密码只是信息安全的一部分。
严格来讲,绝对不会被破解的密码算法是存在的,称为一次性密码本(one-time pad),但它并不是一种现实可用的算法(在第3篇中会有详细讨论 TODO:贴入链接)