现代密码学复习——第一章

1,045 阅读10分钟

第一讲:保密学基础

1:保密学的基本概念

什么是保密学?

定义:保密学是研究信息系统安全保密的科学,它包括两个分支,一是密码学,对信息进行编码实现隐蔽信息的科学,二是密码分析学,研究分析破译密码的科学。二者相互对立,而又互相促进地向前发展。

其他相关概念

名词概念
明文需要被隐蔽的消息
密文明文经密码变换成的一种隐蔽形式
加密将明文变换为密文的过程
解密加密的逆过程
加密员对密码进行操作的人员
加密算法密码员对明文进行加密时所采用的一种规则
接收者传送消息的预定对象
解密算法接收者对密文进行解密时所采用的一组规则
密钥控制加密和解密算法操作的数据处理,分别称作加密密钥和解密密钥
截收者在信息传输和处理系统中的非授权者,通过搭线窃听、电磁窃听、等来窃取机密信息
密码分析截收者试图通过分析从截获的密文推断出原来的明文或密钥
密码分析员从事密码分析的人
被动攻击对一个保密系统采取截获密文进行分析的攻击
主动攻击攻击者主动向系统窜扰,采用删除,伪造等篡改手段,向系统注入假消息,达到自己的目的

保密系统模型图


从上图我们可以看出,加密器和解密器分别对应一个密钥,主动攻击是从信道进行介入的,被动攻击也是从信道进行窃听的。

保密系统相关参数解读

1:明文消息空间M
2:密文消息空间C
3:密钥空间K1和K2、在单钥体制下,K=K1=K2,此时密钥k∈K,需经安全的密钥信道由发方传给收方。
4:加密变换与解密变换见下图。

保密系统应当满足的要求

序号要求
1系统即使理论上可破,也应该为实际上不可破,即从截获的密文或某些已知明文密文对,要决定密钥或任意明文在计算上是不可行的。
2系统的保密性靠的不是加密体制或算法,而是密钥
3加密和解密算法适用于所有密钥空间中的元素
4系统便于实现和使用方便

认证与认证系统

  • 认证系统

为了防止消息被篡改、删除、重放和伪造的一种有效方法,使发送的消息具有被验证的能力,使接收者或第三者能够识别和确认消息的真伪,实现这类功能的密码系统被称作为认证系统。

  • 保密性

保密性是使截获者在不知密钥条件下不能解读密文的内容。

  • 认证性

让任何不知密钥的人不能构造一个密报,让合法接收者明白哪些是合法的消息。认证理论和技术是保密学研究的一个重要领域。如传统的手写签字正在被更迅速、更经济和更安全的数字签字替代。

安全认证系统应当满足下面四个条件

序号条件
1合法接收者能够检验消息的合法性和真实性
2消息的发送者对所发送的消息不能依赖
3除了合法的消息发送者之外,其他人不能伪造合法的消息,而且在已经明文和密文的情况下不能推断出密钥和伪造密文
4必要时可由第三方做出仲裁

完整性

在有自然和人为干扰条件下,系统保持检测错误和恢复消息和发送消息一致性的能力。实际中常常借助与纠检错技术和杂凑技术来保证消息的完整性。

2:密码体制分类

密码体制分类

  • 单钥体制:加密密钥和解密密钥相同。
  • 双钥体制:加密密钥和解密密钥不同。

单钥体制的两个主要方面

  • 密钥产生
  • 密钥管理

单钥保密体制流程图

单钥体制的分类

  • 流密码
  • 分组密码
    单钥体制不仅可以用于数据加密,也可用于消息的认证。

什么是公钥体制(也叫双钥体制)?

Diffie和Hellman1976年首次提出,每个用户都有一对选定的密钥(公钥K1和私钥K2),公开的密钥K1可以像电话号码一样进行公布。

公钥体制的主要特点:加密和解密的能力分开

  • 公钥加密私钥解密:多个用户加密的消息,只能由一个用户进行解读,可用于公共网络中实现保密通信。
  • 私钥加密公钥解密 :只能由一个用户加密消息,而使多个用户可以解读,可用于认证系统中对消息进行数字签名。
  • 无需事先分配密钥。

双钥保密体制


  • 安全保障:从公开密钥Kb1和密文c不能推出B的私钥Kb2和明文。
  • 由于任何人都可以使用B的公钥进行加密,所以密文c不具有认证性。

双钥认证体制

双钥保密和认证体制

所谓的双钥保密和认证体制就是说,假如A想发送消息给B,先用A的私钥对明文m进行加密,然后再使用B的公钥进行加密,这样就进行了两次加密过程,在解密的时候同样也是需要两次,先是使用B的私钥进行一次解密,然后使用A的公钥进行一次解密,这样B就可以获得需要的明文。

3:古典密码

古典密码是密码学的渊源,这些密码大都比较简单,可用手工或机械操作实现加解密,现在已经很少采用,然而研究这些密码的原理,对于理解、构造和分析现代密码都是十分有益的。

代换密码

  • 明文字母表A
  • 密文字母表A’
  • 加密变换
    明文空间到密文空间的映射
  • 判断有无数据拓展(明文字母表和密文字母表长度相同的时候)
    明文长度 = 密文长度 没有数据拓展
    明文长度 < 密文长度 有拓展
    明文长度 > 密文长度 明文数据被压缩
    再保密通信中需要拓展,认证系统中需要压缩,因为压缩是不可逆的,拓展存在很多种情况,所以拓展可以用来保密,压缩是唯一的,所以压缩可以用来进行认证。
  • 什么是分组密码和流密码?

流密码指的是就一组序列密码,例如0101000010
分组密码指的是密码被分成好几组,例如0101000 1010000

  • 什么是单表代换和多表代换?
    加解密使用同一个固定的代换表进行,我们称之为单表代换,例如经典的凯撒密码。

    加解密使用一个以上的代换表进行代换,我们称之为多表代换,例如经典的维吉尼亚密码。具体选用哪个代换表进行,是根据密钥来的。

    参考文献-密码学导论

单字母代换密码

移位代换密码

乘数密码


加密过程举例:

这里涉及到求逆元的操作,因此,可以使用拓展欧几里得的方法去求逆元。

def EX_GCD(a,b,arr): #扩展欧几里得
    if b == 0:
        arr[0] = 1
        arr[1] = 0
        return a
    g = EX_GCD(b, a % b, arr)
    t = arr[0]
    arr[0] = arr[1]
    arr[1] = t - int(a / b) * arr[1]
    return g
def ModReverse(a,n): #ax=1(mod n) 求a模n的乘法逆x
    arr = [0,1,]
    gcd = EX_GCD(a,n,arr)
    if gcd == 1:
        return (arr[0] % n + n) % n
    else:
        return False

a = 7
b = 26
arr = [0,1,]
print(a,'模',b,'的乘法逆:',ModReverse(a,b))

关键在于 这个公式 7 * x = 1 (mod 26) 求这个可以一个数一个数的试

仿射密码

参考文献:仿射密码的加密与解密
首先看定义:

  • 加密函数

E(x) = (ax + b) mod m

  • 解密函数

D(x) = ((a-1)*(x - b)) mod m

  • 密钥指的是哪个?

密钥指的就是a,b K = (a,b)

  • 限制条件

a 和 m需要满足互素条件

  • 加解密实例分析,内容来自上面的参考文献

多项式代换密码

密钥短语密码

维吉尼亚密码

博福特密码

博福特密码几乎和维吉尼亚密码如出一辙,也是看维吉尼亚的那个加解密表,但是就是看法不同。具体看法如下图所示:

滚动密钥密码

弗纳姆密码

弗纳姆密码首先将明文字母转换为其对应的ASCII码5位的,然后与密钥进行异或运算(相同为0,相异为1)。

  • 弗纳姆密码的加解密函数与相关例题

希尔密码

  • 关于希尔密码的基本知识
  • 希尔密码的加密过程
  • 希尔密码的解密过程

4:初等密码分析

密码分析学

研究分析解密规律的科学。即截收者在不知道解密密钥及通信者所采用的的加密体制的细节条件下,对密文进行分析,试图获取机密信息。

  • 密码分析在外交、军事、公安、商业等方面都具有重要作用,也是研究历史、考古、古语言学和古乐理论的重要手段之一。
  • 密码分析之所以能够破译密码,最根本的是依赖于明文中的多余度。

破译密码的方法

  • 穷举破译法(也叫强力法)

  • 分析法(有确定性和统计性两类)

    • 确定分析法:如已知密文或者明文密文对,用数学关系式表示出所求未知量(密钥)
    • 统计分析法:密码破译者对截收的密文进行统计分析,总结出其间的统计规律,并与明文的统计规律进行对照比较,从中提取出明文和密文之间的对应或变换信息。

密码可能经受不同水平的攻击

无条件安全

  • 对密码体制的任何攻击,都不优于对明文的完全盲目的猜测,这样的密码体制就称为无条件安全的。
  • 一次一密的加密方式容易实现无条件安全性。因为密钥实时更新,所以以往得到的任何明文密文对,对于破译新的密文没有任何的帮助,只能做完全盲目的猜测。

计算安全

计算安全是一个模糊的概念,我们可以给出以下三个级别的定义。

  • 对密码体制的任何攻击,虽然可能优于完全盲目的猜测,但超出了计算者的计算能力。这是最高级别的计算安全。
  • 对密码体制的任何攻击,虽然可能没有超出攻击者的计算能力,但所付出的代价远远大于破译成功所得到的利益。这是第二级别的计算安全。
  • 可能没有超出攻击者的能力,但是破译成功所需要的时间远远大于明文本身的有效期限。这也是第二级别的计算安全。

密码分析——破译实例

  • 珍珠港事件
  • 中途岛海战
  • 冲绳岛战役
  • 山本五十六之死
  • 日本商船的毁灭
  • 德国潜艇指挥部密码的破译
  • 瑞典人破译德国外交和军事密码
  • 海湾战争
  • 苏联8.19事件
  • RSA-129破译
  • RSA-155破译