对称秘钥密码体系

密码学原理

加密解密公式

  • 明文用M(消息Message)或P(明文Plaintext)表示,密文用C(Ciphertext)表示。

  • 加密函数E作用于M得到密文C,用数学式子表示为:\(E(M)=C\)
    相反地,解密函数D作用于C产生M,表示为:\(D(C)=M\)

  • 先加密后再解密消息,原始的明文将恢复出来,下面的等式必须成立:

\[D(E(M))=M \]

注意:加密和解密离不开密钥的参与

安全密码准则

  • 所有算法的安全性都基于密钥的安全性,而不是基于算法细节的安全性。

  • 密钥空间,算法步数

  • 只有公开的算法才是安全的。
    因为公开的算法集结了各种思想,如果公开了还未破解,则能说明算法安全。

  • 时间和实践检验

对称密钥密码和非对称密钥密码

基于密钥的算法通常有两类:对称密钥算法(秘密密钥算法)和非对称算法(公开秘密密钥算法)。

对称算法有时又叫传统密码算法
就是加密密钥能够从解密密钥中容易地推算出来,反过来也成立。在大多数对称算法中,加/解密密钥是相同的。

对称算法可分为两类。

  • 一次只对明文中的单个比特(有时对字节)运算的算法称为序列密码或流密码算法
  • 另一类算法是对明文的一组比特进行运算,这些比特组称为分组,相应的算法称为分组算法

非对称算法也叫做公开密钥算法
是因为加密密钥能够公开,即他人能用加密密钥加密信息,但只有用相应的解密密钥才能解密信息。
非对称算法是这样设计的:用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在合理假定的有限时间内)。

密码分析
• 根据被破译的难易程度,不同的密码算法具有不同的安全等级
• 经济:如果破译算法的代价大于加密数据的价值,那么可能是
安全的。
• 时效:如果破译算法所需的时间比加密数据保密的时间更长,
那么可能是安全的。
• 数据量:如果用单密钥加密的数据量比破译算法需要的数据量
少得多,那么可能是安全的。

复杂性

  • 几乎所有密码系统在唯密文攻击中都是可破的,只要简单地一个接一个地去试每种可能的密钥,并且检查所得明文是否有意义。这种方法叫做蛮力攻击

  • 密码学更关心在计算上不可破译的密码系统。如果一个算法用(现在或将来的一段时间)可得到的资源在可接受的时间内都不能破译,这个算法则被认为在计算上是安全的。

可以用不同方式衡量攻击方法的复杂性:

  1. 数据复杂性:用作攻击输入所需要的数据量。
  2. 时间复杂性:完成攻击所需要的时间。
  3. 存储复杂性:进行攻击所需要的存储量。

数据加密标准(DES)

• 64位分组,密钥
56位,16轮运算。

  1. 初始置换函数IP
    2.获取子密钥Ki
    3.密码函数F
    4.末置换函数IP-1

DES加密算法已经早已被破解,是不安全的加密算法,也可以说是弱加密算法,建议不要再使用。

国际数据加密算法IDEA

IDEA即国际数据加密算法,它的原型是PES(Proposed Encryption Standard)。 对PES改进后的新算法称为IPES,并于1992年改名为IDEA (International Data Encryption Algorithm)。

• IDEA是一个分组长度为64位的分组密码算法,密钥长度为128位,共进行八轮运算,同一个算法即可用于加密,也可用于解密。

IDEA的加密过程包括两部分:

  • (1) 输入的64位明文组分成四个16位子分组:X1、X2、X3和X4。4个子分组作为算法第一轮的输入,总共进行八轮的迭代运算,产生64位的密文输出。
  • (2) 输入的128位会话密钥产生八轮迭代所需的52个子密钥(8 轮运算中每轮需要6 个,还有4 个用于输出变换)。

高级加密标准—AES

AES产生背景
1997年4月15日,美国国家标准与技术研究所(NIST)发起征集AES(Advanced Encryption Standard,高级加密标准)的活动 。
作为新的数据加密标准代替陈旧的DES。
对AES的基本要求是:数据分组长度至少为128 bit,密钥长度为128/192/256 bit。

AES 算法的特点

  • AES(Rijndael)是一个迭代型分组密码,它的设计策略是宽轨迹策略(Wide Trail Strategy),具有可变的分组长度和密钥长度。

  • 宽轨迹策略是针对差分分析和线性分析提出的一种新的策略, 由此可以分析算法抵抗差分密码分析和线性密码分析的能力。

  • 分组长度和密钥长度都可变,三个密钥长度分别为128/192/256 bit,用于加密分组长度为128/192/256 bit的分组,响应的轮数分别为10/12/14。

  • 算法的迭代轮次依赖于数据分组的长度和密钥的长度,其关系如表 所示,其中\(Nb=分组长度/32\)\(Nk=密钥长度/32\)Nr为迭代轮次

分组长度、密钥长度与迭代轮次的关系
image
除32后是字长
b-block
K-key
r-rotation

AES算法描述
以下具体描述AES算法的思路。
基本概念
• 类似于明文分组和密文分组矩阵表示,将表示算法的中间结果的分组称为状态(State),状态用矩阵表示(以字节为单位),所有的操作都在状态上进行。

(2)轮变换
• AES的每一轮,不同的变换作用于中间状态。
• AES的轮变换包含四种不同的变换:
1)字节变换(SubBytes)
2)移行变换(ShiftRows)
3)混列变换(MixColumns)
4)轮密钥加(AddRoundKey)

3.轮密钥的生成
• 轮密钥的生成过程算法由密钥扩展和轮密钥选取两部分构成。
• (1)密钥扩展。
• (2)轮密钥选取。

思考

  • AES进行了什么样的运算?
    循环移位、异或、置换、矩阵乘法

  • 分组加密算法每一步都可逆吗?

  • 同样的运算连续进行多轮有意义?
    • 输入数据已不同
    • 加密算法的目的就是仅知道密文的情况下不易恢
    复明文
    • 这样就要做到使得明文和密文之间没有规律。

  • 密文、密钥、密码?

AES 算法的优点
1 安全性:抵御差分密码分析和线性密码分析;
2 灵活性:具有可变的分组长度和密钥长度;
3 高效性:算法的执行效率较高,运算速度快;
4 空间少:内存要求低;
5 易实现:每一种变换中的每一步运算都相对简单,用计算机都容易实现

AES 算法应用
AES 算法是强加密算法,已成为虚拟专用网、远程访问服务器、电子金融业务、SONET、高速ATM/以太路由器、移动通信等的加密算法,并取代DES在IPSec、SSL和ATM中的加密功能。

  • IEEE 802.11i草案已经定义了AES 的两种不同运行模式,成功解决了无限局域网标准中的诸多安全问题。

  • 相对于采用64位加密算法的传统蓝牙设备而言,小米手机2的蓝牙模块采用了AES的128位加密算法, 因此具有极高的安全性能, 不用担心隐私的泄漏。

  • 加密算法应用:WINRAR的加密步骤

DES、IDEA、AES分组加密算法比较

  • DES是现代密码学最早的对称分组加密算法 。
  • IDEA无论是速度还是安全性都有很好的表现,目前在PGP中使用。
  • AES分组和密钥长度可变,使用者可自行选择,速度和安全性也都非常好,极具应用前景

分组加密算法的 安全性主要与什么 有关?
• 密钥的长度
• 算法的设计
• 分组的长度
• 算法需要保密吗?

image

序列密码

2.5.1 序列密码原理
序列密码加密时将明文划分成字符(如单个字母)或其编码的基本单元(如0、1),然后将其与密钥流进行运算(通常为异或),解密时以同步产生的相同密钥流实现解密。

  • 序列密码强度完全依赖于密钥流产生器所产生的序列的随机性和不可预测性,其核心问题是密钥流生成器的设计。

  • 而保持收发两端密钥流的精确同步是实现可靠解密的关键技术。

  • 迄今为止,只有一种理论上不可破的加密方案,叫做一次一密乱码本,这是一种序列密码。

  • 其基本思想是让密钥和明文一样长,密钥称为乱码本,用一次便不再用 。

  • 将密钥与明文异或得到密文,接收者用同样的密钥与密文异或即得到明文。

  • 一次一密乱码本在今天仍有应用场合,主要用于高度机密的低带宽信道。

A5算法

A5算法是一种序列密码,它是欧洲GSM标准中规定的加密算法,用于数字蜂窝移动电话的加密,加密从用户设备到基站之间的链路。

  • A5算法包括很多种,主要为A5/1和A5/2。
  • 其中,A5/1为加密算法,适用于欧洲地区;
  • A5/2为加密算法,适用于欧洲以外的地区。
  • 这里将详细讨论A5/1算法。
  • A5/3是更安全的算法

A5/1算法的主要组成部分是三个长度不同的线性反馈移位寄存器(LFSR)R1、R2和R3,其长度分别为19、22和23。

  • 三个移位寄存器在时钟的控制下进行左移,每次左移后,寄存器最低位由寄存器中的某些位异或后的位填充。

各寄存器的反馈多项式为:

  • R1:x18+x17+x16+x13(其余位都是0)
  • R2:x21+x20(其余位都是0)
  • R3:x22+x21+x20+x7(其余位都是0)
    各寄存器的详细情况如图2-12所示。
posted @ 2023-04-24 14:47  kingwzun  阅读(343)  评论(0编辑  收藏  举报