Skip to content
Notes
GitHub

第 1 章 引言

1.1. 信息安全面临的威胁

1.2. 信息安全模型

安全传输技术基本成分

  1. 消息的安全传输:包括对消息的加密和认证。加密:使敌方无法读懂;认证:检查发送者身份
  2. 通信双方共享某些秘密信息,如加密密钥

为获得消息的安全传输,可能还需要一个可信的第三方,其作用可能是负责向通信双方发布秘密信息或者在通信双方有争议时进行仲裁。

安全的网络通信必须考虑以下 4 个方面

  1. 加密算法
  2. 用于加密算法的秘密信息
  3. 秘密信息的分布和共享
  4. 使用加密算法和秘密信息以获得安全服务所需协议

信息安全分为

  • 系统安全
  • 数据安全
  • 内容安全

1.3. 密码学基本概念

1.3.1. 保密通信系统

可以隐蔽和保护需要发送的消息,使未授权者不能提取信息。

public/cypto/crypto01.svg

保密系统应当满足

  1. 系统即使达不到理论上是不可破的,即 P{m=m}=0P\{m^\prime = m\}=0,也应当为实际上不可破的。从截获的密文或某些已知的明文密文对,要决定密钥或任意明文在计算上是不可行的
  2. 系统的保密性不依赖于对加密体制或算法的保密,而依赖于密钥
  3. 加密和解密算法适用于密钥空间中的所有元素
  4. 系统编译实现和使用

1.3.2. 密码体制分类

  • 对称加密体制
  • 非对称加密体制

1.3.3. 密码攻击概述

  • 唯密文攻击
    • 攻击者仅掌握加密算法截获的部分密文
    • 最少的信息
  • 已知明文攻击
    • 攻击者掌握加密算法截获的部分密文一个或多个明文密文对
  • 选择明文攻击
    • 攻击者掌握加密算法截获的部分密文自己选择的明文消息,及由密钥产生的相应密文
  • 选择密文攻击
    • 攻击者掌握加密算法截获的部分密文自己选择的密文消息,及相应的被解密的明文

我们通常说的安全包括

  • 计算安全
  • 无条件安全
  • 可证明安全

1.4. 几种古典密码

  • 加密方式
    • 代换(替换)
    • 置换(排列顺序互换)

1.4.1. 单表代换密码

1. 凯撒密码

加密和解密代换

c=E3(m)m+3(mod26)0m25m=D3(c)c3(mod26)0c25\begin{aligned} c=E_3(m)&\equiv m+3 \pmod {26} &0\leqslant m \leqslant 25\\ m=D_3(c)&\equiv c-3 \pmod {26} &0\leqslant c \leqslant 25 \end{aligned}

2. 移位变换

c=Ek(m)m+k(mod26)0m,k25m=Dk(c)ck(mod26)0c,k25\begin{aligned} c=E_k(m)&\equiv m+k \pmod {26} &0\leqslant m,k \leqslant 25\\ m=D_k(c)&\equiv c-k \pmod {26} &0\leqslant c,k \leqslant 25 \end{aligned}

3. 仿射变换

c=Ea,b(m)am+b(mod26)m=Da,b(c)a1(cb)(mod26)\begin{aligned} c=E_{a,b}(m)&\equiv am+b\pmod{26}\\ m=D_{a,b}(c)&\equiv a^{-1}(c-b)\pmod{26} \end{aligned}

假设 a=7,b=21\displaystyle{ a = 7 , b = 21 },对字母 s 加密

s=18,(7×18+21)mod26=17,srs=18,(7\times 18+21)\bmod 26=17,s\Rightarrow r

v 解密

v=21,71(2121)mod26=0,vav=21,7^{-1}(21-21)\bmod 26=0,v\Rightarrow a
乘法逆元 (扩展欧几里得算法)

求出 5 和 7 的逆元

(5,7)=1\displaystyle{ \left( 5 , 7 \right) = 1 },通过辗转相除,得到 7 和 5 的构造方式

{7÷5=125÷2=212÷1=2\begin{cases} 7\div 5=1\cdots 2\\ 5\div 2=2\cdots 1\\ 2\div 1=2 \end{cases}

从而得到 1 的构造方式

1=52×2=5((75)×2)=5×37×2\begin{aligned} 1&=5 -2\times 2\\ &=5-((7-5)\times 2)\\ &=5\times {\color{red}3}-7\times 2 \end{aligned}

从而 5 模 7 的逆为 3

1.4.2. 多表代换密码

多表代换密码首先把明文 M 分为由 n 个字母构成的分组 M1,M2,M3,,MjM_1,M_2,M_3,\cdots,M_j,对每一个分组 Mi\displaystyle{ M _{ i } } 的加密为

CiAMi+B(modN),i=1,2,,jC_i\equiv\mathbf{AM}_i+\mathbf{B}\pmod{N},i=1,2,\cdots,j

其中 (A,B)(\mathbf{A,B})是密钥,A\mathbf{A}n×nn\times n 的可逆矩阵,满足 gcd(A,N)=1\text{gcd}(|\mathbf{A}|,N)=1A|\mathbf{A}| 是行列式。B=(B1,B2,,Bn)T\mathbf{B}=(B_1,B_2,\cdots,B_n)^TC=(C1,C2,,Cn)T\mathbf{C}=(C_1,C_2,\cdots,C_n)^TMi=(m1,m2,,mn)T\mathbf{M}_i=(m_1,m_2,\cdots,m_n)^T。对密文分组 Ci\displaystyle{ C _{ i } } 的解密为

MiA1(CiB)(modN),i=1,2,,j\mathbf{M}_i\equiv \mathbf{A}^{-1}(C_i-\mathbf{B})\pmod{N},i=1,2,\cdots,j