密码学-课堂笔记2-对称加密SymmCrypt

目录

  • 对称加密Symmetric encryption
    • 什么是对称密钥加密
    • 流密码 Stream cipher
      • 流密码的两种模式
      • 流密码加密/解密功能
      • 流密码-一次一密(OTP, one time pad)
      • 流密码的应用
      • Keystream键流
      • LFSR
      • 小结:流密码
    • 分组密码 Block cipher
      • DES算法
        • DES - s盒和P
        • DES的安全性
        • 三重DES (3 DES)
        • 3DES的力量
      • AES操作
      • 总结:AES
    • 块密码 Black Ciphers modes
      • ECB模式
      • CBC模式
      • CFB模式
      • OFB模式
      • CTR
      • 小结-分组密码

对称加密Symmetric encryption

什么是对称密钥加密

在对称密钥密码学中,加密和解密使用相同的密钥Ks。
Alice和Bob共享一个密钥Ks。Alice加密明文消息P以获得C,并通过一个不安全的通道将它发送给Bob。
密码学-课堂笔记2-对称加密SymmCrypt_第1张图片

  • 组成部分:
    - 共享密钥Ks
    - 加密算法E(P, Ks)
    - 解密算法D(C, Ks)使D(C, Ks) = D(E(P, Ks), Ks) = P
  • 两种操作模式:流密码、块密码。

流密码 Stream cipher

  • 使用与明文x长度相同的密钥流XOR每次加密一位。
  • Keystream是由共享密钥k使用合适的算法生成的
  • 明文、密文和密钥流由单个位组成,即xi、yi、si∈{0,1}
    • 加密:E(xi, si) = xi ⊕ si = yi
    • 解密:D(yi, si) = yi ⊕ si = xi

流密码的两种模式

  1. 同步:s仅取决于共享密钥k
  2. 异步:s取决于共享密钥k和密文。
    密码学-课堂笔记2-对称加密SymmCrypt_第2张图片

流密码加密/解密功能

  • 流密码比特加/解密是mod 2的增加
    • 假设明文、密文、键流位为xi,yi,si∈{0,1}
      • 加密:yi = esi(xi)≡xi + si mod 2
      • 解密:xi = dsi(yi)≡yi + si mod 2
    • 对于每个比特的运算,mod 2运算等价于异或运算⊕
      密码学-课堂笔记2-对称加密SymmCrypt_第3张图片

流密码-一次一密(OTP, one time pad)

  • 在OTP密码中,密钥流是完全随机的,并且只使用一次。
  • 如果相同的密钥流Ks被用于消息M1和M2
    C1 = M1⊕K1;C2 = M2⊕K1 那么
    CE = C1 ⊕ C2 = (M1 ⊕ K1) ⊕ (M2 ⊕ K1)
    如果M1 = M2, CE = M1⊕M2 = 0
  • 如果密钥流被重复使用,可以用频率分析来尝试破解部分消息。
  • OTP是无条件安全的。
  • 要求键流与消息一样长

流密码的应用

  • 实际操作中,Alice和Bob共享一个加密密钥Ks。
  • keystream由Ks生成。
  • 流密码简单、快速、小:对小设备很有用(如手机GSM A5/1,互联网的SSL RC4算法)
  • 安全性完全取决于密钥流keystream:
    • keystream必须是随机的
    • keystream不能重复——即与明文相同的长度,否则可以使用频率分析打破

Keystream键流

  • key的生成方法:
    • CSPRING:加密安全的伪随机数生成器(Cryptographically Secure Pseudo Random Number Generator的缩写),使用来自Ks的种子。对于CSPRING,在给定初始位的情况下,应当不可能预测密钥流的剩余位。
    • LFSR:线性反馈移位寄存器,例如GSM的A5/1密码
    • 三段密码:使用80位密钥,三个移位寄存器
    • 在OFB, CTR模式下的分组密码

LFSR

  • 考虑有3个触发器的LFSR: FF0, FF1, FF2,即度m = 3
  • 假设初始状态:s2 = 1, s1 = 0, s0 = 0
  • 输出:s(i+3)≡s(i+1) + s(i) mod 2
  • 定理: m次(m个触发器)LFSR产生的最大序列长度为2^m−1
    密码学-课堂笔记2-对称加密SymmCrypt_第4张图片密码学-课堂笔记2-对称加密SymmCrypt_第5张图片

小结:流密码

  • 流密码更简单,需要的资源更少。
  • 流密码需要从共享密钥派生的长随机密钥流(long, random keystream)
  • 仔细使用LFSR, CSPRING来获得具有良好统计特性的keystreams

分组密码 Block cipher

DES算法

DES算法

  • 基于NBS(现在的NIST)在1977年向公众发布的IBM密码
  • 块大小为64位,
  • 密钥大小为56位,即密钥空间(keyspace)为256位
  • 使用16轮加密:排列,旋转,用圆形键进行替换。
  • 圆形密钥来自共享密钥,使用一个叫做“键计划(key schedule)”的过程
    密码学-课堂笔记2-对称加密SymmCrypt_第6张图片
    DES -总体操作
  1. 初始排列和最终排列
  2. 节日网络-一个可逆的功能
  3. f一个不可逆的函数使用一个圆形键,替换“s盒”来转换32位
  4. 用于派生16个圆形键的键时间表
    DES内部:f函数
    密码学-课堂笔记2-对称加密SymmCrypt_第7张图片
    在这里插入图片描述
    密码学-课堂笔记2-对称加密SymmCrypt_第8张图片
    e.g. S-box 1 input (100101)2 becomes (1000)2
    密码学-课堂笔记2-对称加密SymmCrypt_第9张图片
    密码学-课堂笔记2-对称加密SymmCrypt_第10张图片

DES - s盒和P

  • S-boxes会带来混乱
    • 有8个s -box,这对DES的实力至关重要
    • 将6位输入转换为4位输出
    • 非线性,旨在挫败高等数学攻击
  • 排列函数,P旨在提供扩散
    密码学-课堂笔记2-对称加密SymmCrypt_第11张图片

DES的安全性

  • 主要缺点-小键空间,容易暴力攻击。
  • 如果至少有一对明文和密文,则尝试所有256个密钥,使解密后的密文与明文匹配。
  • 因此,平均尝试次数1/2 * 256 = 255
  • 断裂时间: 6.4天使用特殊的开裂设备,如科帕卡巴纳 COPACABANA,深裂缝Deep Crack
    多个DES
  • 有两个键K1 K2的2-pass- des怎么样?
  • C ’ = E (P, K1),再一次,C = E (C ’ K2) = E (E P, K1, K2)
  • 问题:有效密钥大小是多少?
  • 中间相遇攻击:有效的密钥大小只有57位!!

三重DES (3 DES)

  • 加密EDE: C = E(D(E(x, k1), k2), k3)
  • 解密DED: D(E(D(x, k3), k2), k1) = x
  • 3×56 bits keys: k1, k2, k3,即keysize是168位或
  • 2×56位键k1, k2, k3 = k1,即keysize是112位
    密码学-课堂笔记2-对称加密SymmCrypt_第12张图片

3DES的力量

  • 如果K1 = K2 = K3,则3DES的效果和DES是一样的
  • 当K1 = K2 = K3时,有效的键强度是多少呢?

AES操作

  • 关键添加层
    密钥调度——从原始的输入密钥(128位、192位或256位)派生子密钥
  • 使用s -box进行字节替换
  • 扩散层- shiftRows和MixColumn
  • 最后一轮-不混合柱
  • 轮数:
    128位键- 10轮
    192位键- 12发
    256位密钥- 14发
    密码学-课堂笔记2-对称加密SymmCrypt_第13张图片

总结:AES

  • 软件和硬件中非常高校
  • 商用ASIC或FPGA实现
  • 目前没有已知的分析攻击
  • 广泛应用于现代系统中:如WPA, IPsec, TLS等。

块密码 Black Ciphers modes

块密码模式中:

  • 明文报文被分成64位或128位的单独块
  • 每个块单独加密
  • 几个模式:
    • 加密明文
      • ECB -电子代码书
      • CBC—密码块链接
    • XOR明文
      • CFB -密码反馈
      • OFB -输出反馈
      • CTR-计数器

ECB模式

在这里插入图片描述

  • 加密:yi = ek (xi), i≥1
  • 解密:xi = ek−1(yi), i≥1
  • 相同的明文块被加密为相同的密文块
  • 加密是确定的
  • 攻击:
    • 流量分析 Traffic analysis
    • 频率分析 Frequency analysis
    • 替换攻击 Substitution attack

CBC模式

密码学-课堂笔记2-对称加密SymmCrypt_第14张图片

密码块链接模式(CBC – Cipher Block Chaining mode)

  • 加密
    第一个块:y1 = ek (x1⊕IV),随后的块:yi = ek (xi⊕yi−1),i≥2
  • 解密是反向过程
    (x1 = ek−1(y1⊕IV),则xi = ek−1(yi⊕yi−1)
  • 加密是概率性的。
  • 通常IV是一个nonce,而不是secret:可以用明文发送,或者计数器值,从ID等派生。

CFB模式

密码学-课堂笔记2-对称加密SymmCrypt_第15张图片

密码反馈模式(CFB – Cipher Feed Back mode)

  • 第一个区块:密钥用IV加密,然后XOR用明文区块加密:y1 = ek (IV)⊕x1
  • 后续块:密钥与前一个密文加密,与明文XOR: yi = ek (yi−1)⊕xi i≥2
  • 解密:x1 = ek (IV)⊕y1, i≥2 xi = ek (yi−1)⊕yi, i≥2
  • 概率加密
  • IV应该是一个nonce,可以以明文发送。

OFB模式

密码学-课堂笔记2-对称加密SymmCrypt_第16张图片

输出反馈模式(OFB – Output Feed Back mode)

  • 第一个区块,IV用密钥加密,然后XOR与明文区块加密,si = ek (IV), y1 = s1⊕x1
  • 后续区块:之前加密的密钥使用key加密,XOR使用明文:
    si = ek (si−1),yi = si⊕xi, i≥2
  • 解密:s1 = ek (IV), x1 = s1⊕y1
    si = ek (si−1),xi = si⊕yi, i≥2
  • 概率性的加密
  • “加密密钥”si可以独立于明文进行计算,例如预先计算。

CTR

密码学-课堂笔记2-对称加密SymmCrypt_第17张图片

CTR -计数器模式(CTR – Counter mode)

  • 密钥用CTR加密
  • CTR由IV和counter value组成
  • 生成一个关键流块
  • 可独立生成明文-并行操作
  • 不确定的
    - 加密:
    yi = ek (IV k CTRi)⊕xi, i≥1
    - 解密:
    xi = ek (IV k CTRi)⊕yi, i≥1

小结-分组密码

  • 广泛使用的密码学:DES, 3DES, AES,块模式
  • ECB, OFB, CTR:块输出独立于其他明文块——确定性
  • OFB、CTR模式可用于生成密钥流、随机数。
  • CBC, CFB:块输出取决于以前的明文-——概率
  • 除ECB外,所有模式都要求共享IV
  • 加密和解密使用相同的共享密钥
  • 问题:如何共享密钥?

你可能感兴趣的:(Information,Security)