type
status
date
slug
summary
tags
category
icon
password
1948 年, 香农发布 A Mathematical Theory of Communication,提出了现代密码学的两大核心概念:
- 扩散:让明文的每一位影响密文的许多位
- 混淆:即使攻击者拥有大量的明密文对,也无法从中推断出密钥(同一个明文字母在密文的不同位置可能被加密成不同的密文字符)
1976 年, Diffie 和 Hellman 提出了密钥协商算法
1977 年, Rivest, Shamir, Adleman 提出了非对称加密算法
K’o jqpqtgf vq dg ykvj aqw vqfca hqt aqwt eqoogpegogpv htqo qpg qh vjg hkpguv wpkxgtukvkgu kp vjg yqtnf. Vtwvj dg vqnf, K pgxgt itcfwcvgf htqo eqnngig. Cpf vjku ku vjg enquguv K’xg gxgt iqvvgp vq c eqnngig itcfwcvkqp.Vqfca K ycpv vq vgnn aqw vjtgg uvqtkgu htqo oa nkhg. Vjcv’u kv. Pq dki fgcn. Lwuv vjtgg uvqtkgu.Vjg hktuv uvqta ku cdqwv eqppgevkpi vjg fqvu. K ftqrrgf qwv qh Tggf Eqnngig chvgt vjg hktuv ukz oqpvju, dwv vjgp uvcagf ctqwpf cu c ftqr-kp hqt cpqvjgt 18 oqpvju qt uq dghqtg K tgcnna swkv. Uq yja’f K ftqr qwv?Kv uvctvgf dghqtg K ycu dqtp. Oa dkqnqikecn oqvjgt ycu c aqwpi, wpygf itcfwcvg uvwfgpv, cpf ujg fgekfgf vq rwv og wr hqt cfqrvkqp. Ujg hgnv xgta uvtqpina vjcv K ujqwnf dg cfqrvgf da eqnngig itcfwcvgu, uq gxgtavjkpi ycu cnn ugv hqt og vq dg cfqrvgf cv dktvj da c ncyagt cpf jku ykhg.Gzegrv vjcv yjgp K rqrrgf qwv, vjga fgekfgf cv vjg ncuv okpwvg vjcv vjga tgcnna ycpvgf c iktn. Uq oa rctgpvu, yjq ygtg qp c yckvkpi nkuv, iqv c ecnn kp vjg okffng qh vjg pkijv cumkpi, “Yg’xg iqv cp wpgzrgevgf dcda dqa. Fq aqw ycpv jko?” Vjga uckf, “Qh eqwtug.”
单表替换不安全
- 频率统计法
字母 | E | T | A | O | I | N | … |
出现频率 | 12.7% | 9.1% | 8.2% | 7.5% | 7.0% | 6.7% | … |
- 单词分析法
- 单字母单词 I、a
- 两字母单词 to am it is of if on in at we go or as
- 三字母单词 the you for and not
- 特定后缀 ing ed tion ment
- q 后面一定是 u
- 无扩散和混淆, 会被已知明文攻击针对
单表替换 ≈ 明文
同音加密不安全
- 相较于单表替换, 能有效抵抗频率统计和单词分析
- 同音加密仍保留了字母间的连接关系
- 如果破译出部分字母映射, 安全性会急速崩塌
- 有一定的混淆、无扩散, 会被已知明文攻击针对
- 密钥空间狭窄, 被爆破风险大
明文字母 | 同音加密对应的符号 |
A | 07, 12, 19, 25, 33 |
B | 08, 15, 43 |
C | 30, 11, 18, 26, 02 |
D | 42, 13, 70, 28, 37 |
E | 01, 92, 16, 24, 31, 39, 29, 36 |
多表替换加密是古典密码的巅峰, 但还是不安全
- 维吉尼亚密码在三百年间曾被认为是不可破译的
- 古典多表替换密码实现了混淆, 但未实现扩散
- 短密钥被周期性使用
- 卡西斯基试验和重合指数法终结了古典密码时代
卡西斯基试验:
- 破解者在密文中寻找长度为 3 个或 4 个字母的重复密文片段
- 只有当明文中的某个片段恰好被密钥中相同的片段加密时,密文才会重复
- 计算这些重复密文片段之间距离, 密钥长度 L 必定是这些距离的公约数
重合指数法:
- 重合指数的定义: 在给定的文本中,随机选取两个字母, 它们恰好相同的概率
- 英语明文的重合指数约为 0.067
- 单表替换密码 (如凯撒密码) 的重合指数也是 0.067
- 字母完全分布均匀的随机文本, 字母重合指数约为 0.038
- 弗吉尼亚密码的第 i 位、i+x 位、i+2x 位的字母都是被同一个凯撒密码表加密的
- 不断猜测 x 来计算重合指数, 直到算出 0.067, 那么 x 很可能就是密钥长度 L
通过上述两种方法得到密钥长度 L 后, 可对第 i 位、i+L 位、i+2L 位的字母进行频率统计, 最终攻破维吉尼亚密码
恩尼格码机不安全
- 恩尼格码机是机械密码时代的代表
- 用极长的周期来抵抗传统的密码分析法
- 扩散性极差, 情报开头格式固定, 被已知明文攻击针对
- 字母不能被加密成自身, 为爆破密钥提供了天然的判断条件
- 德军密码操作人员工作不严谨, 盟军却非常严谨
- 机器打败机器、算法回答算法
古典密码和机械密码面对数学分析法是脆弱的, 第二次世界大战后, 密码学算法从依靠隐蔽性转向依靠数学证明的安全性. 现代密码学对算法的要求:完全公开、强扩散强混淆、计算速度快、破解成本高(猜对密钥所需的计算资源超过世界上的能量总和)
分组密码可能安全
- 在数字环境中解决了对称密码周期性、设计约束和操作依赖的问题
- 实现了扩散和混淆
- 七十年代, DES 问世, 分组密码进入标准化时代
- 九十年代, DES 被证实计算上不安全, 差分密码分析和线性密码分析出现
- 2001 年, AES 问世, 目前仍被视为安全,并作为全球标准
非对称加密基于已有的数学难题, 在这些难题被解决之前仍然安全
- RSA: 分解一个大整数为两个质数的乘积是十分困难的
- Diffie-Hellman: , 即使知道 A、g、p,找 a 也是大海捞针
- ECC: 基于椭圆曲线上的离散对数问题
哈希算法的碰撞
- 哈希函数接受任何信息, 都输出固定长度的值
- 哈希算法具有极强的扩散性, 计算速度快
- 哈希算法本质上是对信息的压缩, 碰撞在数学上是不可避免的
- 对于给定的 h, 找到一个输入 x, 使得 H(x) = h 是极其困难的
- 找到任意的 a 和 b ( a ≠ b ), 使得 H(a) = H(b) 是相对简单的
- 2005 年, 王小云团队公布了 MD5 的高效碰撞方法
- 2017 年, Google 实现了对 SHA-1 的碰撞
算法F、明文、密文、密钥:
- 对称加解密:F(明文,密钥)=密文, F(密文,密钥)=明文
- 非对称加解密:F(明文,公钥)=密文, F(密文,私钥)=明文
- 哈希函数:F(x)=x的哈希值
- 数字签名:F(公告的哈希值,私钥)=签名
- 验证数字签名:F(签名,公钥)=公告的哈希值
密码学要解决的问题
- 什么样的加密是安全的
- 如何证明你是你、我是我、ta是ta
- 如何在不安全的环境中通信
- 如何在对信息保密的情况下计算这些信息
- 如何在不泄露秘密的情况下证明我有秘密
- …
密码学的新方向
- 量子密钥分发:基于不确定性原理, 在现有物理法则上实现安全的密钥交换
- 后量子密码学:为应对量子计算机的威胁, 可依靠量子计算机无法解决的数学难题,建立新的公钥算法基础
- DNA 密码学:基于非冯诺依曼架构的 DNA 计算机, 利用分子结构实现超高信息存储密度和海量并行计算
- 混沌密码学:混沌系统具有天然的混淆/扩散, 且计算速度极快
- 作者:Dale
- 链接:http://www.dalechu.cn/article/decryption
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。










