密码学

密码学课程的笔记

引言与古典密码体制

基础知识

  • 对称加密和公钥加密

    • 根据消息发送方和接收方使用的加密和解密密钥是否相同, 加密方案可分为对称加密和公钥加密。
      • ==公加私解==
  • 消息认证码

    • 消息发送方和接收方首先共享一个密钥,发送方为待发送的消息产生一个标识,并将消息和标识一同发送给接收方。
    • 用于标志消息息在传递过程中没有被篡改
  • 哈希函数

    • 将任意长的消息映射为一个“较短的” “定长的” 抗碰撞的”消息摘要

    • 用于保护数据完整性,防篡改

  • 数字签名

    • 在数字世界中实现了“手写签名”的功能,保证了被签名消息的完整性和不可否认性。
    • 案基于公钥密码体制:发送者使用自己的私钥对消息进行签名,接收者使用签名者的公钥验证数字签名的合法性。

现代密码学发展史

1940 ==香农==证明了一次一密的安全性

……

加密

  • 语法

    • K 密钥空间

    • M 明文空间:现代密码学中,M是二进制字符串的集合

    • C 密文空间

    • 加密方案(Gen; Enc; Dec)

      • Gen :K (概率性的) 密钥生成算法。
      • Enc : K x M→C 加密算法。
      • Dec : K x C →M 解密算法。
  • 科尔霍夫原则

    • 密码算法的安全性应该依赖于密钥k的保密性,而不应依赖于算法 Gen;Enc; Dec 的保密性。
    • 理由:
      • 算法设计保密是不切实际的(逆向工程)。
      • 短密钥更容易保护、生成和替换。
      • 密码设计应该被公开讨论和分析。

古典密码

  • 单表代换
    • 移位密码:如凯撒密码、仿射密码
    • 密文空间小时,直接爆破
    • 密文空间大时,用字母频率猜测

image-20251025110458839

  • 多表代换
    • 选择一串字符作为密钥,明文字符“加上”密钥字符得到密文字符
    • 多表代换密码是安全的:密钥长度等于明文长度
    • 当密钥长度小于明文长度时,多表代换密码易受到统计攻 击。
      • 先确定密钥周期
      • 拆分部分,分别频率检测

对称加密

完善保密性

  • 基本概念

    • 高熵、均匀一致、随机
    • 现代随机数生成步骤:收集高熵数据、产生几乎独立无偏的比特串
  • 完善保密性

    • 获取密文的行为不改变敌手对所发送的实际消息的知识
    • 密文不应泄露有关底层明文的额外信息

image-20251115084315412

知识 vs 信息

信息是公开可用的,可直观获取的。 知识是困难计算的结果,任何人都能有效获得的都不能称为知识。应用于公开可用信息的简单计算的结果不被认为是知识。应用于公共可用信息的难以计算的函数的结果是知识。

流密码和分组密码

  • 在实际中,PRG是使用流密码实例化的。
  • PRP是使用分组密码进行实例化的。实际上,PRP也被称为分组密码。
  • 但是 Block cipher 不是一种加密方案

流密码

image-20251115085905004

image-20251115090331493

大致就是切分明文串来加密,密钥流是用单密钥随机产生的

两种操作模式

  • 同步模式
    • 有状态,消息按顺序接收、加密
  • 异步模式
    • 无状态,每个块密钥流独立
    • 每个密钥流独立生成(有自己的生成器)

image-20251115091250140

设计原则

  • 混淆原则

    • 使密钥和密文之间的依赖关系尽可能模糊。即使敌手获取了一些密文的统计特性,也无法推测密钥。常使用代替方法实现混淆。
  • 扩散原则

    • 使明文和密文的关系变得尽可能的复杂,即密文中的每 一位受明文中的许多位的影响。常使用置换方法实现扩散
  • 乘积密码

    • 也叫迭代密码,通过轮函数的多次迭代,对数据重复迭代操作,实现扩散与混淆
  • 分组密码的迭代方式

    • 代换-置换SP网络(substitution-permutation)-Feistel网络
Licensed under Calendar
最后更新于 Nov 15, 2025 00:00 UTC