【pptx】对称密码2

分组密码:见《【DanBoneh】Block Ciphers》分组密码

设计分组密码的两种基本技术:为了抵抗攻击者对密码系统的统计分析,香农提出混乱扩散

混乱

  1. 目的:使明文和密文之间、密文和密文之间的相关统计特性极小化,从而使攻击者无法找到密钥。
  2. 方法:代换。

扩散

  1. 目的:将明文及密钥的影响尽可能迅速地散布到较多个密文比特中。
  2. 方法:置换。

目前,绝大多数的分组密码都是通过迭代技术构造的。轮密钥(子密钥):$k_1$~$k_d$,轮函数:R($k_i$,..)。

DES

核心思想:Feistel网络,是使用任意函数构造可逆函数(分组密码)的一般方法。d 个函数无需可逆,构造出的Feistel网络仍然可逆。

Feistel网络

Feistel网络求逆

DES结构

Feistel网络一轮的结构中,乘积函数 F 有三个关键函数 E-box、S-box、P-box。

DES安全性:密钥空间只有 $2_56$ ≈ $10_17$,56 bits不足以抵抗穷举攻击。DES 依靠 S-box 实现非线性变换,但 NSA 被指责在 S-box 设计上隐藏了“陷门”。

PRF and PRP:见《【DanBoneh】Block Ciphers》PRF、PRP

PRF开关引理

分组密码工作模式

ECB模式

对于包含两个或两个以上分组的明文,ECB 不是语义安全的。

优点

  1. 简单、高速。
  2. 无差错传播:单个密文分组在传输或存储时出现错误,只会影响该分组的解密,不会影响到其他分组。

缺点:安全性差,暴露明文数据的格式和统计特征

确定的计数器模式

F 是安全的 PRF,与真随机函数不可区分,可以构造一个安全的 PRG。

CPA

CPA安全性:选择明文攻击下语义安全性(密钥可以重复使用)。

对称加密体制不是CPA安全的。

随机化加密

选取随机数和密钥 k 共同加密明文,使得加密相同的明文,输出不同的密文。

密文比明文长,密文长度 = 明文长度 + “随机比特长度”,“随机比特长度” ≠ 随机比特长度,只是相关。

nonce-based加密

nonce:只使用一次的数值,每加密一个明文,就换一个新的。(k,n)不重复使用。

如何选择nonce?

  1. 计数器方式:设置nonce为计数器,使用每次数值加 1 ,如果发送者和接收者保持相同的状态,则nonce无需发送。
  2. 随机数方式:设置nonce为随机数,随机数需与密文一起发送。

文件加密:随机数方式(加密文件时无需保持状态)

SSL(按顺序发送): 计数器方式 (无需向对方发送nonce)

IP sec(无序发送): 计数器方式即可, 但发送每个报文时,需附带所用nonce一起发送

CBC模式

密钥可以重复使用,CPA安全的。加密串行,解密可以并行。使用 PRP。

见《【DanBoneh】Using Block Ciphers》CBC

差错传播:单个密文分组在传输或存储过程中发生错误,会影响该分组和后面一个分组的解密。

可自同步:只要后面的分组没发生错误,便不会影响后续分组的解密。

CTR模式

密钥可以重复使用,CPA安全的。加密、解密都可以并行。使用安全的 PRF。