密码学笔记

1.4k 词

古典密码学

经典加密技术

  • 代换
    • 明文内容的表示形式改变,内容元素之间相对位置不变
    • 明文字母用密文中对应字母代替
  • 置换
    • 明文内容元素的相对位置改变,内容的表示形式不变
  • 乘积
    • 多个加密技术的叠加

算术密码

  • 仿射密码
  • 希尔密码

代换密码

  • 单表替代:

    • 凯撒密码
    • playfair密码(二维单表替代)
  • 多表替代:

    • 维吉尼亚密码

这两种密码均无法抵抗频率分析攻击。

课后题:

某加密系统,明文/密文字符集都是英文字母集合。加密算法首先对明文进行单表代换操作,再对代换结果进行置乱操作。该系统是不能抵抗选择明文攻击的。即,攻击者可以设计若干个明文,并得到它们对应的密文,根据这些明文-密文对来破译密钥。问,若每个明文/密文的长度限制为15个字符,最少需要多少个选择明文就能保证破译?

  1. 单表代换
  • 对于一个长度为15的明文,单表代换会将每个字母替换为另一个字母。由于有26个字母,所以每个字符都有26种可能。
  1. 所有可能的明文组合
  • 一个长度为15的明文总共有 26^{15} 种可能的组合。
  1. 破解单表代换
  • 单表代换对于每个明文字母的替换是独立的,因此,破解这样的加密至少需要足够的信息来确定所有可能的字母映射。

选择明文的数量

  • 要确定密钥,即所有26个字母的映射,攻击者需要收集足够多的明文-密文对,以便推断出映射关系。由于字母表的大小是26,至少需要收集26个不同的明文字符(最好是不同的字符组合),以便在不同的上下文中看到每个字符的加密形式。
  • 然而,由于置乱操作的存在,仅仅收集26个明文可能不足以完全破解密钥,因此需要考虑更加复杂的映射。

建议的选择明文数量:

  • 实际上,为了确保能够破解整个密钥,攻击者可能需要更多的明文对。一般来说,选择明文的数量应大于26个,以保证在不同的组合和上下文中看到字母的加密形式。

结论

在此情况下,攻击者至少需要26个选择明文,以理论上保证足够的信息来推断出密钥。但为了确保稳妥,实际上选择超过26个的明文(例如,30个或更多)是更安全的策略。这可以帮助更好地应对不同的替换和置乱组合。

现代密码学理论

完美安全

完美安全含义:

  • 窃听者截获的密文不能提供任何信息
  • 完美安全的充分必要条件为:对所有的消息m和密文c,都有等可能的对应。

n个等概率消息,需要用n个等概率密钥来实现完美安全。此即一次一密

Feistel结构分组密码

分组密码

分组密码(Block Cipher) :

  • 通常以大于等于64位的数据块为处理单位
  • 密文仅与算法和密钥有关,与明文数据块的位置无关

n比特的明文分组,加密产生n比特的密文分组

2^n个不同的明文分组,各自产生2^n个唯一的密文分组

  • 本质上是一个巨大的代换表

完美安全的密钥需求

  • n位的分组就有2^n种输入
  • 每种输入需要n位“密钥”控制,确定映射到哪一个密文
  • 共需 n × 2^n 位密钥

加密算法结构

  • 将输入等分为两段,进行若干轮运算,每轮中
    • 对左半段数据进行代换
    • 依据轮函数F(右半段数据和子密钥)
    • 然后置换:交换左右两段数据

一个轮函数示例:

image-20241030002010846

注意解密算法与加密算法过程相同,但子密钥使用的次序相反

DES

雪崩效应

  • 明文或密钥的一比特的变化,引起密文许多比特的改变
  • 加密算法的关键性能之一
  • 希望明文或密钥的1比特变化,会使大约半数密文比特发生变化;否则,可能存在方法减小待搜索的明文和密钥空间

DES安全性分析

DES不能抵御差分分析、线性分析。

  • 差分分析:
    • 一种选择明文攻击
    • 分析明文对的差分与密文对的差分之间的关系
    • 确定轮运算的子密钥,从而恢复密钥比特
  • 线性密码分析:
    • 攻击16轮DES需2^43个已知明文
    • 基本原理:寻找密码算法的有效线性近似表达式
    • 建立关于密钥的方程组

中间相遇攻击

攻击双重DES,平均工作量仅为2^56

思路:寻找X = E[K1 , P] = D[K2 , C],即加密解密的中间态

3DES:image-20241030003030631

加密、解密交替使用,为了与单次DES兼容。

留言