《图解密码技术》|读书笔记(一)- 环游密码世界

《图解密码技术》读书笔记系列

Posted by Jack on January 10, 2016

前言

本篇是《图解密码技术》读书笔记的第(一)篇,主要介绍密码界的一些常用名词,并浏览一些主要的加密技术。

相关名词

  • 发送者(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:贴入链接)