课程笔记-经典加密技术
This paper is based on "Cryptography and Network Security, 7/E, William Stallings, Pearson, 2016".
对称加密
传统的对称加密算法只有单个密玥,这就意味着发送者和接收者都需要有这个密玥;而且经典的对称加密都是私玥,这两个特点让对称加密很容易被**。直到1970s公玥的发明让加密技术更好。
基本概念
明文-plaintext | 待加密信息 |
密文-ciphertext | 已加密信息 |
加密算法-cipher | 从明文到密文的加密算法 |
密玥-key | 只对收发者可见的加密算法要用到的信息 |
加密过程encipher/encrytion | 将明文转化为密文的过程 |
解密过程-decipher/decryption | 将密文还原为明文的过程 |
加密学-cryptography | 加密原理和方法的研究学科 |
解密学-crptanalysis | 没有密玥的情况下对密文解密分析的研究学科 |
密码学-cryptology | 整合了加密学和加密学的学科 |
一个简单的对称加密模型如下所示:
用数学公式来描述加解密过程就是:
保证一个对称加密算法安全性的要求:
- 一个很strong的加密算法
- 一个只对收发者可见的密玥
加密学
加密系统的特征
- 加密操作的类型
- 替代(substitution)
经典的替代算法,一般是将明文中的字母用数字或者符号定义的替代规律由另外一些字母来替代。
Ceasar Cipher
明文中所有的字母都用按照字母表的顺序往后数第某个数的字母代替,这某个数其实也就是密玥了。它的加解密可以用下面的数学公式表达:
- C =E(k,p) = (p + k)mod (26)
- p =D(k,C) = (C – k) mod (26)
Monoalphabetic Cipher
但是,不管怎么替代,明文中的一个比特模式在密文中也会出现,这很容易受到密码分析的攻击。因为语言特性的原因,每个字母出现都是有一定概率的。
语言冗余和解密分析
字母语言都是有冗余的,在常用的词汇或者句子种,不同字母以不同概率出现。比如,英语种,e是最常用的,然后就是t、r、n、i、o、s,而一些字母是出现频率很低的,比如z、j、k、q、x。另外,多字母组合也有有很多模式出现的频率很高的。
由于字母语音的这种冗余特性,在被上诉加密法加密的密文仍然保留和明文一样的语言冗余特性,这可以用根据密文的统计特性来反推明文和密玥。
Playfair Cipher
Phayfair加密算法可以当作是同时对多字母组合进行加密的Monoalphabetic算法,它的加密码本可以组成一个5*5的方阵。如下图是一个以“monarchy”做密码的Phayfair密码阵,可以用来生成代替两个字母组合的密文,他的生成方法如下:将monarchy按从左至右从上至下的顺序放入方阵中,其余的26字母按相同的顺序放入剩下的格子中,注意这里将常用的I/J放在一个格子中,可以尽量降低译码错误率。
由这个Phayfair密码阵可以按如下判断方法生成多字母的代替码本:
- 如果两个字母组合是重复的字母,可以先对这段明文进行处理,在重复的字母之间添加一个不同的字母比如x,比如在加密“ba ll oo n”,重复的“ll”添加一个“x”,变成“ba lx lo on”;
- 如果两个字母组合在Phayfair密码阵中同行,其密文即是由这两个字母的右边字母组成,比如“ar”的密文是“rm”;
- 如果两个字母组合在Phayfair密码阵中同列,其密文即是由这两个字母的下边字母组成,比如“mu”的密文是“cm”;
- 如果两个字母组合不是上面的情况,则由这两个字母由其在Phayfair密码阵以对角线形式组成的矩阵的另外两个对角线元素替代,比如“hs”的密文是“bp”。
要用暴力算法攻击的话,需要尝试的密码阵的个数为26*26=676个。
Polyalphabetic Ciphers
用一个密玥里的字母重复性地从字母表中选择替代明文中的密文字母。
Vigenere cipher是最简单的polyalphabetic 替代法,如下所示:
- 置换(transposition)
- product
product ciphers and rotor machines
steganography
- 密玥数量
- 单密玥(私玥)
- 双密玥(公玥)
- 明文传输和处理的方式
- 块式
- 流式
解密学
抱有不仅仅是恢复信息更加是恢复密玥的目的的研究。
一般方法
密文分析攻击(cryptanalytic attack)
对已知密文或明文的分析,来解密。
暴力算法攻击(brute-force attack)利用计算力超强的硬件设备进行简单的重复尝试操作。