信息安全:密码学概念与对称密码体制

密码学发展简史

密码学:保障信息安全的核心基础。源于保密通信技术,分为密码编码学(设计密码)和密码分析学(攻击密码系统)。
算法传递秘钥的方式是影响保密程度的关键。

密码学发展经历了以下三个阶段:

  • 古典密码时期
  • 近代密码时期
  • 现代密码时期

古典密码时期(古代到19世纪末)

密码学发展的手工阶段
经典案例:棋盘密码、凯撒密码、栅栏密码

凯撒密码

它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。
在这里插入图片描述

  • 凯撒密码的通用形式C=E§=p+k mod 26的有效密钥空间实际为多大?
    因为k=0(相当于不加密)是肯定不能使用的,所以实际使用时,真正有效的空间是25。这与理论上的空间不同,因为理论上主要在考虑空间的大小或规模,这与描述算法复杂度的道理类似。所以理论上的密钥空间是26,而实际真正能用的有效的、可用的只有25个

同余式:假设a和b均为整数,m是一正整数。若m整除b-a则:a≡b(mod m)

放射密码

字母系统中所有字母都藉一简单数学方程加密,对应至数值,或转回字母。
加密函数:y≡(ax+b)mod26。

棋盘密码

密码是明文,密文便是字母的坐标。例:HELLO,加密后就是23 25 31 31 34
在这里插入图片描述

栅栏密码

把将要传递的信息中的字母交替排成上下两行。再将下面一行字母排在上面一行的后边,从而形成一段密码。
例如:
明文:THE LONGEST DAY MUST HAVE AN END
加密:
1、把将要传递的信息中的字母交替排成上下两行。
T E O G S D Y U T A E N N
H L N E T A M S H V A E D
2、将下面一行字母排在上面一行的后边。
TEOGSDYUTAENN HLNETAMSHVAED

近代密码时期(20世纪初期到20世纪五50年代末)

采用电报机发送加密信息。
该时期的著名密码:弗纳姆密码、Enigma密码。

弗纳姆密码(一字一密)

一次一密:通过真随机数生成器得到秘钥序列,只有合法的通信方才知道秘钥序列,秘钥序列位仅使用一次。
按递增顺序把每个明文字母作为一个数字,对输入明文的每一个字母做相同的处理,将明文中的每一个字母和秘钥中的对应字母相加,如果得到的和大于26则从中减去26,将和化为字母从而得到密文。

Enigma密码机

在这里插入图片描述

前述密码的技术共同点:

  • 代换技术:明文被代换或代替为其他内容。
  • 置换技术:改变明文字符的相对位置。

代换+置换:密码编码学的核心技术

现代密码时期(从20世纪50年代至今)

利用计算机技术实现加解密过程。
1976年,提出公钥密码体制思想,成为密码学发展史上的重要里程碑。

著名密码:

  • 对称密码:DES(1977年)->AES(2001年)
  • 非对称密码:RSA(1978)->ECC(1985年)
  • 其他对称:3DES、IDEA、BlowFish等
  • RC系列:RC2、RC4、RC5等

现代密码学的主要内容:
在这里插入图片描述

密码体制的基本组成及分类

在这里插入图片描述
一个密码体制由五个部分组成:

  • 明文空间M:全体明文m的集合
  • 密文空间C:全体密文c的集合,m可以=c
  • 密钥空间K:全体秘钥k的集合(不止一个)
    密钥k由加密密钥ke和解密密钥kd组成,即k=(ke,kd)
  • 加密算法E:是在密钥控制下将明文M对应到C的一种变换,即c=E(ke,m)
  • 解密算法D:是在密钥控制下将密文消息从C对应到M的一种变换,相当于加密的逆变换,即m=D(kd,c)

根据加、解密密钥使用策略不同,可将密码体制分为对称密码体制和非对称密码体制

  • 如果一个密码体制中的加密密钥ke和解密密钥kd相同,或者由其中一个密钥很容易推算出另一个密钥,则成为对称密码体制或单钥密码体制。
  • 如果在计算上由加密密钥ke不能推出解密密钥kd,隐藏可以将ke公开,这种密码体制也被称为公钥密码。

密码体制设计原则

密码学的基本目的就是保障不安全信道上的通信安全

衡量密码体制安全性的方法
计算安全性:一种密码系统最有效的攻击算法至少是指数时间的
可证明安全性:如果密码体制的安全性可以归结为某个数学问题,则称其是可证明安全的
无条件安全性:假设存在一个具有无限计算能力的攻击者,如果密码体制无法被这样的攻击者攻破,则称其为无条件安全。

一个使用的密码体制的设计应该遵守以下原则:
密码算法安全强度高:攻击者根据截获的密文或某些已知明文密文对,要确定密钥或者任意明文在计算上不可行
密码体制的安全性不应该依赖加密算法的保密性,而应取决于可随时改变的密钥
密钥空间应该足够大:试图通过穷举密钥空间进行搜索的方式在计算上不可行
既易于实现又便于使用:加密函数和解密函数都可以高效的计算

密码编码学特征:
加密运算方式不同:代换、置换、乘积
密钥数量不同:私钥、公钥
处理明文的方式不同:块密码(分组密码)、流加密

密码体制常见的攻击形式:
穷举攻击:又称蛮力攻击,指攻击者依次尝试所有可能的密钥对所截获的密文进行解密,直至得到正确的明文
统计分析攻击:通过分析密文和明文的统计规律来破以密码,抵抗统计分析的方式是在密文中消除明文的统计特性
数学分析攻击:针对加密算法的数学特征和密码学特征,通过数学求解的方法设法找到相应的解密变换,对抗这种攻击,应该选用具有坚实的数学基础和足够复杂的加密算法

密码分析攻击的类型:
密码攻击和解密的相似之处在于都是设法将密文还原成明文的过程
根据密码分析者可获取的信息量的不同,密码分析攻击主要有:
唯密文攻击

已知明文攻击
选择明文攻击
选择密文攻击

英文中的统计频率分析:
单个字母: E,T,A,O,I,N,S……
两个字母:ON,AS,TO,AT,IT……
三个字母:THE,AND,FOR,WAS……

分组密码

分组密码:是将明文消息编码后的序列划分成固定大小的组,名族明文分别在秘钥的控制下变成等长的密文序列
分组密码的基本原理:扩散和混淆,为了抵抗攻击者对密码体制的统计分析
扩散:让铭文中的每一位及秘钥中的每一位能够影响密文中的许多位,隐蔽明文的统计特性从而增加密码的安全性
混淆:将密文与明文、密钥之间的统计关系变得尽可能复杂,使用复杂的
非线性代替变换
可以达到比较好的混淆效果

乘积密码体制:乘积密码就是扩散和混淆两种基本密码操作的组合变换,产生比各自单独使用时更强大的密码系统,通过乘积和迭代可以取得比较好的扩散和混淆的效果。

DES其分组长度为64位,其密钥长度也为64位(含8位奇偶校验位,故实际密钥长度为56位

DES加密算法的结构流程
在这里插入图片描述

分组密码的工作模式分析

DES的工作模式四种:
电子秘本(ECB)
密码分组链接(CBC)
密文反馈(CFB)
输出反馈(OFB)

电子密本(ECB)

一个明文分组加密成一个密文分组(适合数据较少的情况)
优点:并行处理、效率高
缺点:不太适合加密长消息,尤其结构化数据,结构特征可被利用于破译
若Ci发生错误,对接收端解密出的Pi分组造成影响,不会对其他分组造成影响。

密文分组链接(CBC)

明文被加密之前要与前面的密文进行异或运算,解密时要进行逆向操作,虽然强度得到提升,但易引起错误扩散,正因为关联性问题。但错误分组的第二个分组之后的分组不会受影响,所以CBC模式自恢复的,CBC模式下,整个数据分组在接收完成后才进行解密。
优点:安全性强度提升,适用于加密>=64bit
缺点:关联性问题引起错误扩散,但错误的扩散是有限的
若Ci发生错误,则Pi和Pi+1的分组造成影响,影响两个分组解码的错误。
CBC安全问题

  • IV(初始向量)和key都需要保护
  • 攻击者在密文尾部增加一些分组使解密后尾部混乱,故需要组织好明文的结束位置
  • 攻击者改变一个密文分组,控制其余解密的明文分组,故需要控制冗余和鉴别

ECB和CBC共同的问题:加密、解密都只有当一个完整的分组到达之后才可以进行

密文反馈模式(CFB)

自同步序列密码原理在分组密码中的应用,可以加密于小于分组的单元,一种流密码模式。
优点:数据可以对较小的分组单元进行加密,起到了加强加密的作用
CFB模式明文的一个错误将影响所有后面的密文以及在解密过程中的逆
密文里一位错误会引起铭文的一个单独错误,并且会小范围错误扩散
若Ci发生错误,Pi错误,Pi+1错误,其他都是正确的。

输出反馈模式(OFB)

OFB需要避免CFB的错误传播
OFB与CFB类似,OFB用加密函数的输出填充移位寄存器,而CFB用密文单元来填充移位寄存器
优点:密钥流与明文无关,可以提前生成;OFB没有错误扩散,密文单个错误只引起恢复明文的单个错误
缺点:很难并行,抗消息流篡改攻击能力不足CFB,密文某位取反,则明文相应位取反,攻击者容易控制;需要严格同步,如果加密端和解密端移位寄存器不同,那么恢复的明文将无法使用
若Pi错误,Ci错误,其他都正确,若Ci错误,仅Pi错误
可以将移位寄存器改成随机数生成,只要能够控制随机数生成就不需要一直反馈,而且还可以保证相同的明文算出不同的密文

应用:数字化模拟传输、数字化声音和视频、可以容忍单位错误,但不能容忍扩散错误

猜你喜欢

转载自blog.csdn.net/weixin_43916678/article/details/104680622