信息安全复习(一)数学基础&对称密码和消息机密性

信息安全(一)数学基础&对称密码和消息机密性

数学基础

  • 最大公因数 gcd(a,b), 最小公倍数 lcm(a,b)

    拓展欧几里得算法(求模逆元)

    求模逆元就是求乘法逆元,即寻找一个x,使得 a*x ≡ 1 mod m

    求 550*x ≡ 1 mod 1769

    可以这样做算: 550*x-1 可以整除 1769

​ 计算方式:gcd(17,5)

  • Q = X3/Y3
  • X1 = Y1
  • X2 = Y2
  • X3 = Y3
  • T1 = X1-Q*Y1
  • T2 = X2-Q*Y2
  • T3 = X3-Q*Y3
Q X1 X2 X3 Y1(T1) Y2(T2) Y3(T3)
初始值 1 0 17 0 1 5
3 0 1 5 1 -3 2
2 1 -3 2 -2 7 1

当 Y3 = 1时,说明有模逆元, 该逆元为Y2 即 7 , 5 * 7 = 17 * 2+1 ,Y3 即为最大公倍数

当 Y3 = 0 时,说明无逆元,找Y3的上一个数,即为最大公倍数

费马定理与欧拉定理

  • 费马定理

    ​ 在 p 为 **素数 **的情况下才成立
    xp11 mod p x^{p-1} ≡ 1 \ mod \ p

    :x10=1 mod 11 即: x^{10} = 1 \ mod \ 11

  • 欧拉定理

    对于任何 互素 的两个整数 a, n有

    aδn1 mod n a^{δ{(n)}} ≡ 1 \ mod \ n

:aδ9=a61 mod 9 即: a^{δ{(9)}} = a^{6} ≡ 1 \ mod \ 9

pδ(pi)=pipp1 若 p 是素数 则 δ(p^{i}) = p^i - p^{p-1}

δ(9)=δ(32)=3231=6 即 δ(9) = δ(3^{2})=3^{2}-3^{1}=6

题目 : 用费马定理求3的201次方 (mod 11)

信息安全复习(一)数学基础&对称密码和消息机密性

题目:用欧拉定理求 13 的 2001次方被60整除

因为 gcd(13,60) = 1 ,即两个数互素

由欧拉定理有:
xδ601 mod 60 x^{δ{(60)}} ≡ 1 \ mod \ 60

:δ60=δ(2235)=2(31)(51)=16 由于 : δ^{(60)} = δ^{(2^{2}*3*5)} = 2*(3-1)*(5-1) = 16

δ(2235) δ^{(2^{2}*3*5)} 中的数必须是互素

:x161 mod 60 所以有:x^{16} ≡ 1 \ mod \ 60
又因为: 2001 = 125 * 16+1

:132001=(1316)151313 mod 60 所以有 :13^{2001}=(13^{16})^{15}*13 ≡ 13 \ mod \ 60
所以,余数为13

数论:

有限域上多项式 : 进行二进制运算时,加法不进为位,减法不借位

对称加密和消息机密性

  • 对称加密原理

    安全性取决于**而不是算法的保密性

    明文:信息的原始形式(记为M)
    密文:明文经过加密变换后的形式(记为C)
    加密:由明文变成密文的过程(记为E)。加密通常是由加密算法来实现的
    解密:由密文还原成明文的过程(记为D),解密通常是由解密算法来实现的
    **:为了有效地控制加密和解密算法的实现,在其处理过程中要有通信双方掌握的专门信息参与,这种专门信息称为**(key,记为K)

​ 一对相等或互相容易推算的保***
​ 又称为单**密码机制

​ 安全加密的两个安全要求
​ 强大的加密算法
​ 即使对方拥有一些密文和对应的明文,也不能译出密文或发现**
​ **的安全交换
​ **的安全获得
​ **的安全保存

  • 对称加密算法

    **Feistel结构:**p53

    ​ 每轮的置换可以由以下函数表示:

    信息安全复习(一)数学基础&对称密码和消息机密性

    Li = Ri-1

    Ri = Li-1⊕F(Ri-1,Ki)


    ​ 与Feistel有关的参数:

    ​ 1、分组大小。分组越多安全性越高,加密速度越慢,分组密码中普遍使用的分组大小为64bit。

    ​ 2、**大小。**越长安全性越高,加密速度越慢,一般使用128bit的**或者更长。

    ​ 3、轮数。轮数越多安全性越高,一般为16轮。

    ​ 4、子**产生算法。该算法越复杂安全性越高。

    ​ 5、轮函数。轮函数越复杂安全性越高。

  • 分组密码

    DES (对64位的明文进行加密)

    最广泛使用的加密方案
    算法被称为数据加密算法 (DEA)
    DES是一个分组密码
    明文长度为64bit
    **长度为56bit
    16轮迭代

    三重DES (Triple DES )

    用三个**,执行三次DES算法(encrypt-decrypt-encrypt)
    C = EK3[DK2[EK1[P]]]
    有效**长度为168 bits

    信息安全复习(一)数学基础&对称密码和消息机密性

    AES 高级加密标准AES(使用Rijndael ,不是Feistel结构 )

    和3DES有等同或更高的安全强度,并且效率有显著提高
    分组大小为128bit
    支持**长度为128、192和256bit
    2001年,NIST选择 Rijndael 作为AES算法

    SMS4 中国商用密码算法—SMS4

    分组长度:128bit
    **长度:128bit
    迭代轮数:32轮
    非对称的Feistel结构

    SM2:椭圆曲线公钥密码算法
    SM3:密码杂凑算法

    IDEA

    128bit长度**
    在PGP中使用

    分组长度:64bit分组
    **长度:128bit;
    扰乱:用三种操作达到扰乱的目的;
    扩散:IDEA密码的扩散效果也很有效

  • 流密码

    RC4 (同步流密码)

    RC4不是基于移位寄存器的流密码,而是一种基于非线性数据表变换的流密码

    用于SSL/TLS,IEEE 802.11 WEP和WAP等协议中

  • 分组密码工作方式

    电子簿模式(electronic codebook mode) ECB

    明文一次被处理64bit,而且明文的每一个分组都使用同一**加密
    对于给定的**,每个64bit明文分组对应唯一的密文
    相同的明文分组总是产生相同的密文

    相同明文对应相同密文
    同样信息多次出现造成泄漏
    信息块可被替换
    信息块可被重排
    密文块损坏对应明文块损坏
    适合于传输短信息

    密码块链接(cipher block chaining ) CBC

    加密算法的输入是当前明文分组与前一密文分组的异或
    64bit的重复模式不会暴露

    需要共同的初始化向量IV
    相同明文????不同密文
    初始化向量IV可以用来改变第一块
    密文块损坏????两明文块损坏
    安全性好于ECB

    密码反馈方式(cipher feedback) CFB

    将任意分组密码转化为流密码

    计数器模式(counter model) CRT

​ 硬件效率:没有连接,并行执行
​ 软件效率:
​ 预处理:预先准备加密箱的输出
​ 随机存取:
​ 可证明的安全性:CTR至少与和其他模式一样安全
​ 简单性:只需要对加密算法执行,不需要解密算法的执行;解***的安排调度不需要执行