古典密码小记

密码的安全性保障:

1.无条件安全:无论攻击者有多少密文也无法解出明文,或者解出来了也无法验证是否正确。
2.计算上安全:破译的代价超过信息价值,破译的时间超出信息有效期

密码算法分类

按照密钥种类分类:
对称密码算法:加密密钥和解密密钥相同或者可推出。也称密钥算法。
非对称密码算法:加密和解密的密钥不同,又称公开密钥算法。

按照明文处理方法分类:
分组密码:明文分组处理
流密码:流密码每次加密一位或一字节的明文

密码分析级别

1.唯密文攻击:攻击者只有密文
2.已知明文攻击:攻击者有若干对明文和密文对
3.选择明文攻击:攻击者暂时可以访问密码机,并通过明文加密出密文
4.选择密文攻击:攻击者暂时可以接近密码机,并通过密文构造出明文
密码分析意图破译密钥或密文

单表代换密码

典型的如:移位密码,乘数密码,仿射密码,多项式密码,本质上都是单表置换代换密码。
由于这类密码出现了明文和密文在字母级别上的一一映射,因此可以通过统计分析方法来分析字母频率并攻击。同时由于乘数密码这种简单的实现手段,有时可以通过数学方法进行强力攻击。

多表代换密码

由于单表代换密码过于脆弱,因此出现了多表代换密码。多表代换密码利用某种机制在代换的过程中进行密钥的转换,因此是多表的。

典型的例如:维吉尼亚viginere密码
维吉尼亚密码是典型的周期多表代换密码,每次加密下一位明文时在密钥表上查找下一位的密钥。在确定了密钥的情况下,他的加密和单表代换就没有区别。

由于维吉尼亚密码的实现特性,如果知道了密钥表的周期长度k,可以将明文根据k划分成若干组,此时从列上来看就是单表代换密码了。此时可以利用例如重合指数等单表分析指标来验证这个分组是否正确。
也因为这种攻击方式,可以将k加强到和明文一样长,此时密码由周期多表代换密码升级成非周期多表代换密码。
维吉尼亚密码也可以通过已知明文攻击,通过观察在某些字段上,明文密文同时出现相同的情况来猜测密钥周期长度,思路和上面那个差不多。

多字母代换密码

多表代换密码的思路是因为,单表过于脆弱,于是用多表加密。多字母的想法是,既然单表加密保留了结构性信息,那么我就尽量混淆这个结构性信息。

多字母代码密码将明文中的多位字母成组,并一起加密。
典型的密码有:playfair密码和hill密码。

playfair密码

playfair密码将明文的字母两两成组,相同的字母通过x分隔。通过一个5*5的矩阵进行加密
5 × 5 变换矩阵 : I 与 J 视为同一字符
C I P H E
R A B D F
G K L M N(cipher)
O Q S T U
V W X Y Z
加密规则 : 按成对字母加密

  1. 相同对中的字母加分隔符 ( 如 x)
  2. balloon: ba lx lo on
  3. 同行取右边 : he -> EC
  4. 同列取下边 : dm -> MT
  5. 其他取交叉 : kt -> MQ OD -> TR
    多字母加密让字母出现的几率被均匀化,基于字母频率的攻击会比较困难。但是仍然保留了很多结构性信息。

hill密码

hill密码同样将明文进行多字母分组,分组后通过一个可逆矩阵进行加密。
hill密码完全隐藏了字母对的频率信息,唯密文攻击非常困难。但是可以已知明文攻击攻破。
将若干对明文密文记作矩阵P(x1j,x2j,x3j…),C(x1j,x2j,x3j,…),密钥K
则有KP=C, K=CP^-1

置换密码

换位密码把明文按行写入 , 按列读出
密钥包含 3 方面信息 : 行宽 , 列高 , 读出顺序
key: 4 3 1 2 5 6 7
plaintext: a t t a c k p
o s t p o n e
d u n t i l t
w o a m x y z
ciphertext:TTNAAPTMTSUOAODWCOIXPETZ
完全保留字符的统计信息,要使用多轮加密提高安全性

你可能感兴趣的:(密码学,安全)