内容概述
这一章主要是针对密码技术涉及到的知识点做了一个概论
基本术语
- 恶意窃听者: eavesdropper
- 加密: encrypt
- 解密: decrypt
- 明文: plaintext
- 密文: ciphertext
- 机密性: confidentiality
- 密码破译: cryptanalysis
- 破译者: cryptanalyst
- 算法: algorithm
- 对称密钥: symmetric cryptography
- 公钥密码: public-key cryptography
- 非对称密钥: asymmetric cryptography
- 混合密码系统: hybrid cryptosystem
- 单向散列函数: one-way hash function
- 完整性: integrity
- 认证: authentication
- 伪装: spoofing
- 否认: repudiation
- 数字签名: digital signature
- 伪随机数生成器: Pseudo Random Number Generator, PRNG
机密性保证
- 发送者针对明文进行加密,加密后的密文传送给对方;接收者获得密文后,对密文进行解密获得明文。这个加密和解密的过程,就保证了消息的机密性
- 加密的核心是密码算法,而保证加密的机密性的关键信息是密钥
- 密钥分成三种类型:对称密钥和非对称密钥。
对称密钥就是 加密密钥 和 解密密钥 是相同的密钥;
非对称密钥指的是 加密密钥 和 解密密钥 是不同的密钥,其中还涉及到公钥的概念,即其中一个密钥是公开的; - 混合密码系统是将 对称密钥 和 非对称密钥 结合起来使用的密码系统。
密码的其他技术
技术目的概述
防篡改 - 完整性
主要是防止信息被修改。可使用的技术包括:单向散列函数、消息认证码、数字签名
防伪装 - 认证
主要是为了防止有人伪装真正的发送者发送消息。可使用的技术包括:消息认证码、数字签名
防否认 - 不可否认性
主要是为了防止真正的发送者,在事后否则自己做过此事情。可使用的技术包括:数字签名
涉及的技术介绍
单向散列函数
此技术是为了保证完整性的。
简单的说就是一个hash值。发布软件时,公开发布一个hash值;使用者下载软件后,再生成一个hash值。如果这个hash值和公开发布的保持一致,就证明软件是完整的,没有被篡改或者损坏。
消息认证码
此技术可以保证完整性、提供认证。细节在这里并没有详细说明。
数字签名
此技术可以保证完整性、提供认证、防止否认。数字签名就是为了保证收到的消息,是应该发送此消息的发送者,保证身份的正确性。这样就防止了篡改、提供了认证机制、并且保证了不可否认性。
伪随机数生成器
此技术主要担负的责任是生成密钥。这个是要保证密钥是不可被反向推测出来的。
密码与信息安全常识
- 不要使用保密算法。保密的密码算法反而没有公开的算法安全,这个是事实。因为公开的、标准的密码算法是经过全世界专家多年的验证证明的,这个是私有的、保密的算法无法比拟的。
- 使用低强度的密码比不进行任何加密更危险。原因是心理上的,以为有了密码就安全了,更加放心,行事反而会大胆粗心。低强度的密码容易被猜测破解,这样危险性就更大了。
- 任何密码总有一天都会被破解。这个是真的,除了一种叫做"一次性密码本"密码算法。只是算法破解总有代价,无非是破解的价值是否指的花代价去破解罢了。
- 密码只是信息安全的一部分。例如社会工程学,最薄弱的地方其实是人。