课程笔记-经典加密技术

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的加密算法
  • 一个只对收发者可见的密玥

加密学

加密系统的特征

  • 加密操作的类型

  1. 替代(substitution)

经典的替代算法,一般是将明文中的字母用数字或者符号定义的替代规律由另外一些字母来替代。

Ceasar Cipher

课程笔记-经典加密技术

明文中所有的字母都用按照字母表的顺序往后数第某个数的字母代替,这某个数其实也就是密玥了。它的加解密可以用下面的数学公式表达:

  • C =E(k,p) = (p + k)mod (26)
  • p =D(k,C) = (C – k) mod (26)
C是密文,p是明文,E和D分别是加解密算法,表示密玥。可以看出,密玥一共就只有25种可能,因为如果往后顺26个数的话,密文也就是明文了。因而这个很容易用暴力算法一个个尝试解密。

Monoalphabetic Cipher

课程笔记-经典加密技术

不像Ceasar加密那样,所有字母都以相同的“密玥”在字母表找到替代字母,而Monoalphabetic加密的26个明文字母都由不同的“密玥”,这样的话一共可能有课程笔记-经典加密技术种密玥。相对于Ceasar而言,好像更复杂些了。

但是,不管怎么替代,明文中的一个比特模式在密文中也会出现,这很容易受到密码分析的攻击。因为语言特性的原因,每个字母出现都是有一定概率的。

语言冗余和解密分析

课程笔记-经典加密技术

字母语言都是有冗余的,在常用的词汇或者句子种,不同字母以不同概率出现。比如,英语种,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 替代法,如下所示:

课程笔记-经典加密技术

  1. 置换(transposition)

  1. product

product ciphers and rotor machines


steganography


  • 密玥数量

  1. 单密玥(私玥)
  2. 双密玥(公玥)

  • 明文传输和处理的方式

  1. 块式
  2. 流式

解密学

抱有不仅仅是恢复信息更加是恢复密玥的目的的研究。

一般方法

密文分析攻击(cryptanalytic attack)

对已知密文或明文的分析,来解密。

暴力算法攻击(brute-force attack)

利用计算力超强的硬件设备进行简单的重复尝试操作。