应用密码学
第一章 引言
1.1 信息安全面临的威胁
1.2 信息安全模型
1.3 密码学基本概念
1.4 几种古典密码
凯撒密码:
加密:c = E(m) = m + 3(mod 26) (0 <= m <= 25)
解密:c = D(c) = c - 3 (mod 26)
k为位移
移位变换
加密:c = E(m) = m + 3(mod 26) (0 <= m <= 25)
解密:c = D(c) = c - 3 (mod 26)
仿射变换
加密:c = E(m) = a*m + b( mod 26)
解密:m = D(c) = a ^(-1) * (c - b)(mod 26)
多表代换密码
首先将明文 M 分为由 n 个字母构成的分组M1, M2, ......,Mj,对每个分组Mi
加密:Ci = A * Mi + B (mod N)
解密:Mi = A^(-1)(Ci - B)(mod N)
第二章 流密码
2.1 流密码的基本概念
流密码的基本思想是利用密钥 k 产生一个密钥流 z = z0z1......,并使用如下规则对明文串x = x0x1x2...加密。密钥流由密钥流发生器 f 产生:zi = f (k, ai),这里 ai 是加密器中的记忆元件(存储器)在时刻 i 的状态,f 是由密钥 k 和 ai 产生的函数。
1. 同步流密码
目前最常用的流密码体制是二元加密流密码
其加密变换可表示为 yi = \(zi\oplus x\)
2.有限状态自动机
有限状态自动机是具有离散输入和输出的一种数学模型
书上复习转移图
3.密钥流产生器
参数为 k 的有限状态自动机
2.2 线性反馈移位寄存器
1.序列的周期
GF(2)上的一个无限序列 {ai} = (a1, a2,....,an,...)称为2元序列
周期: 对一个二元序列{ai}, 如果存在一个正整数r, 使得对一切正整数i, 都有 ai+r = ai,则称{ai}是周期的,满足上述条件的最小正整数称 为{ai}的周期
2.移位寄存器
移位寄存器 是流密码产生密钥流的一个主要组成部分。
GF(2)上一个n级反馈移位寄存器由一下组成:
-- n个二元存储器
-- 一个反馈函数f(a1, a2, ..., an)
存储器中的内容构成寄存器的状态:
-- 每一时刻的状态为一个n维向量(a1, a2, ..., an), ai 为第 i 级存储器的内容
-- 共有2^n种可能的状态
3.反馈移位寄存器
工作原理:
-- 初始状态由用户决定
-- 当一个时钟脉冲到来时,第 i 级寄存器的内容传送给第 i - 1级寄存器,第1级寄存器的内容为反馈移位寄存器的输出。
-- 反馈函数f(a1, a2, ..., an)的值给第n级寄存器
反馈函数f(a1, a2, ..., an)
-- n元布尔函数, ai取值为0或1
-- 函数中的运算有逻辑与、逻辑或、逻辑补等运算,函数值为0或1
4.线性反馈移位寄存器
定义: 如果一个GF(2)上的 n 阶反馈移位寄存器的反馈函数形如
f(a1, a2, ..., an) = \(cn*a1\oplus cn-1*a2\) \(\oplus...\) \(\oplus\) c1*an,则称其为线性反馈移位寄存器,否则为
非线性反馈移位寄存器。
5.线性反馈移位寄存器的性质
(1) 反馈系数c1, c2,..., cn 中至少有一个不为0, 否则反馈函数恒等于0,总假定cn = 1
(2) 若初始状态为 0,则其状态全为 0
(3) LFSR 输出序列的性质:完全由其反馈函数决定
(4) n级LFSR状态数:最多有2 ^ n个
(5) n级LFSR的状态周期: <= (2 ^ n) - 1
(6) 输出序列周期 = 状态周期: <= (2 ^ n) - 1
(7) 选择合适的反馈函数可使序列的周期达到最大值
(8) 周期达到最大值的序列称为 m 序列。