跳转至

密码学简介

密码学(Cryptography)一般可分为古典密码学和现代密码学。

其中,古典密码学,作为一种实用性艺术存在,其编码和破译通常依赖于设计者和敌手的创造力与技巧,并没有对密码学原件进行清晰的定义。古典密码学主要包含以下几个方面:

  • 单表替换加密(Monoalphabetic Cipher)
  • 多表替换加密(Polyalphabetic Cipher)
  • 奇奇怪怪的加密方式

而现代密码学则起源于 20 世纪中后期出现的大量相关理论,1949 年香农(C. E. Shannon)发表了题为《保密系统的通信理论》的经典论文标志着现代密码学的开始。现代密码学主要包含以下几个方面:

  • 对称加密(Symmetric Cryptography),以 DES,AES,RC4 为代表。
  • 非对称加密(Asymmetric Cryptography),以 RSA,ElGamal,椭圆曲线加密为代表。
  • 哈希函数(Hash Function),以 MD5,SHA-1,SHA-512 等为代表。
  • 数字签名(Digital Signature),以 RSA 签名,ElGamal 签名,DSA 签名为代表。

其中,对称加密体制主要分为两种方式:

  • 分组密码(Block Cipher),又称为块密码。
  • 序列密码(Stream Cipher),又称为流密码。

一般来说,密码设计者的根本目标是保障信息及信息系统的

  • 机密性(Confidentiality)
  • 完整性(Integrity)
  • 可用性(Availability)
  • 认证性(Authentication)
  • 不可否认性(Non-repudiation)

其中,前三者被称为信息安全的 CIA 三要素 。

而对于密码破解者来说,一般是要想办法识别出密码算法,然后进行暴力破解,或者利用密码体制的漏洞进行破解。当然,也有可能通过构造虚假的哈希值或者数字签名来绕过相应的检测。

一般来说,我们都会假设攻击者已知待破解的密码体制,而攻击类型通常分为以下四种:

攻击类型 说明
唯密文攻击 只拥有密文
已知明文攻击 拥有密文与对应的明文
选择明文攻击 拥有加密权限,能够对明文加密后获得相应密文
选择密文攻击 拥有解密权限,能够对密文解密后获得相应明文

Note

注:之前在这里曾写过这些攻击常见的场景,随着不断地学习,渐渐意识到这些攻击类型侧重描述攻击者的能力,有可能适用于各种各样的场景。故进行修正。

这里推荐一些资料

Note

推荐在看完公开课的情况下,以及简单看看电子书的情况下在考虑是否要购买书,因为书买回来一般都被闲置起来了。

参考

Info

本节大部分定义与例子参考了维基百科。