【密码学原理与实践】【Chapter 1】【导论】

Chapter 1 导论

Part 0 任务

  • 对下面提到的古典加密方案进行KPA攻击

Part 1 古典密码学和现代密码学

  • 现代密码学:通过研究数学知识保护信息系统的安全

Part 2 私钥加密设定

  • 通信双方事先共享了密钥
  • 构造的加密方案(cipher)提供双方的安全通信
  • 磁盘加密:同一个人在不同时间点通信

2.1 加密词法

  • 密钥(k)和密钥空间( K \mathcal{K} K): k ∈ K k \in \mathcal{K} kK
  • 明文(m)和明文空间( M \mathcal{M} M): m ∈ M m \in \mathcal{M} mM
  • 密文(c)和密文空间( C \mathcal{C} C): c ∈ C c \in \mathcal{C} cC
  • 密钥生成算法(Gen): k ← G e n k \leftarrow Gen kGen
  • 加密算法(Enc): c : = E n c k ( m ) c := Enc_k(m) c:=Enck(m)
  • 解密算法(Dec): m : = D e c k ( c ) m := Dec_k(c) m:=Deck(c)
  • 加密方案( Π \Pi Π): Π = ( G e n , E n c , D e c ) \Pi = (Gen, Enc, Dec) Π=(Gen,Enc,Dec)
  • 基本正确性要求: D e c k ( E n c k ( m ) ) = m Dec_k(Enc_k(m)) = m Deck(Enck(m))=m

在这里插入图片描述

2.2 Kerckhoffs 原则

  • 加密方法不需要保密,即便落入敌手也不会造成麻烦

2.3 攻击场景 Atack Scenarios

  • 唯密文(COA, Ciphertext-only):敌手仅观察密文
  • 已知明文(KPA, Known-plaintext):敌手获得同一密钥下的若干明文/密文对
  • 选择明文(CPA, Chosen-plaintext):敌手可以得到他选择的明文对应的密文
  • 选择密文(CCA, Chosen-ciphertext):敌手可以得到他选择的密文对应的明文

Part 3 历史加密方案和针对它们的密码学分析(Cryptanalysis)

3.1 凯撒密码

  • k = 3 的移位密码

    E n c ( m ) = m + 3 m o d    26 Enc(m) = m + 3 \mod 26 Enc(m)=m+3mod26

    D e c ( c ) = c − 3 m o d    26 Dec(c) = c - 3 \mod 26 Dec(c)=c3mod26

  • 移位密码

    E n c ( m ) = m + k m o d    26 Enc(m) = m + k \mod 26 Enc(m)=m+kmod26

    D e c ( c ) = c − k m o d    26 Dec(c) = c - k \mod 26 Dec(c)=ckmod26

3.2 充分密钥空间原则

  • 任何加密方案的密钥空间要能经得起穷举搜索(当明文空间大于密钥空间时)
  • 比如说,对于移位密码,密钥空间为26;当明文空间也为26时,即加密单个英文字符,其也是完美保密的;显然这对于加密任意长的英文文本来说不成立(这时明文空间要远大于密钥空间)

3.3 重合指数法攻击移位密码

  • 重合指数( I I I):给定一段英文文本,从中随机挑选(挑选后放回)两个字母相同的概率

  • p i p_i pi:该英文文本中第 i i i个字母出现的概率

    I = def ∑ i = 0 25 p i 2 I \overset{\text{def}}{=} \sum_{i=0}^{25} p_i^2 I=defi=025pi2

  • 寻找密钥k (第 i i i个字母被映射为第 i + j i+j i+j个,那么 p i = q i + j p_i = q_{i+j} pi=qi+j)

    I j = def ∑ i = 0 25 p i ⋅ q i + j I_j \overset{\text{def}}{=} \sum_{i=0}^{25}p_i \cdot q_{i+j} Ij=defi=025piqi+j

    I j ≈ 0.065 ⇔ j = k I_j \approx 0.065 \Leftrightarrow j = k Ij0.065j=k

3.4 单表替换加密 Mono-Alphabetic Substitution

  • 将每个字符以任意方式映射到一个不同字符
  • 密钥空间非常大( 26 ! ≈ 2 88 26! \approx 2^{88} 26!288),因为是以任意映射

3.5 统计模式攻击单表替换

  • 统计密文中字母出现的频率
  • 与英文文本中字母频率比较
  • 推测出替换方式
  • 通常结合英文单词推测

3.6 多表替换加密 Vigenere (poly-alphabetic shift) Cipher

  • 思想:把相同明文字符的不同实例映射为不同的密文字符,以平滑概率分布
  • Enc c i = m i + k [ i   m o d   t ] c_i = m_i + k_{[i \bmod t]} ci=mi+k[imodt] t t t k k k 的长度,也就是周期
  • 即,不同位置的字符使用不同的偏移量(但间隔一定的字符仍使用相同的偏移量,后面的攻击也针对这个弱点)
  • 在知道 t t t 后,密钥空间为 2 6 t 26^t 26t

3.7 Kasiski 方法攻击多表替换

  • 思想:在一段足够长的文本中,会有相同的明文段被相同的密钥段加密,称为重复模式,如:

在这里插入图片描述

  • 而重复模式之间的距离为 t t t 的倍数(如果密钥本身不存在重复片段),那么所有重复模式之间距离的最大公约数就是 t t t (当明文是随机的)

3.8 重合指数法攻击单表替换

  • 思想:明文中的第 i , i + t , i + 2 t , ⋯ i, i+t, i+2t, \cdots i,i+t,i+2t,个字符是经过相同的偏移 k i k_i ki加密的,那么抽出这个序列,其可以看作为使用移位密码加密的一段密文,其重合指数应该为英文文本的重合指数 I I I,同时其偏移量 k i k_i ki可以使用前面攻击移位密码的方式得到
  • 方式:枚举周期,取出子序列,计算重合指数 I τ I_{\tau} Iτ,和 I I I比较

3.9 任意敌手原则

  • 具有相同硬件能力的敌手,无论它们具有怎样的软件能力,加密方案都应确保安全

3.0 总结

  • 充分密钥空间原则
  • 设计安全的加密方案是一项困难的任务
  • 复杂性不意味着安全
  • 任意敌手原则

Part 4 现代密码学的基本原则

  • 形式化定义安全和攻击模型
  • 加密方案安全性依赖的假设应该被精确的陈述,并且假设应该尽可能的小(少、弱)
  • 加密方案应该伴有一个基于以上安全定义和假设的安全性的严格证明

4.1 规约法证明

  • 给定假设 X X X为真,证明基于给定安全定义的构造 Y Y Y是安全的
  • 将解决 X X X中的问题规约到破解 Y Y Y
  • 如果 Y Y Y被攻破,那么可以基于此构造出 X X X问题中的解
  • 所以,破解 Y Y Y比解决 X X X中的问题难(或者不比其简单)
  • 因为假设了 X X X中的问题无法解决,所以破解 Y Y Y也不可能
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值