第一章 基本概念1. 密钥体制组成部分:明文空间,密文空间,密钥空间,加密算法,解密算法 2、一个好密钥体制至少应满足的两个条件:(1)已知明文和加密密钥计算密文容易;在已知密文和解密密钥计算明文容易; (2)在不知解密密钥的情况下,不可能由密文c 推知明文 3、密码分析者攻击密码体制的主要方法: (1)穷举攻击 (解决方法:增大密钥量)(2)统计分析攻击(解决方法:使明文的统计特性与密文的统计特性不一样) (3)解密变换攻击(解决方法:选用足够复杂的加密算法) 4、四种常见攻击(1)唯密文攻击:仅知道一些密文(2)已知明文攻击:知道一些密文和相应的明文(3)选择明文攻击:密码分析者可以选择一些明文并得到相应的密文 (4)选择密文攻击:密码分析者可以选择一些密文,并得到相应的明文【注:①以上攻击都建立在已知算法的基础之上;②以上攻击器攻击强度依次增加;③密码体制的安全性取决于选用的密钥的安全性】第二章 古典密码(一)单表古典密码1、定义:明文字母对应的密文字母在密文中保持不变2、基本加密运算设q 是一个正整数,}1),gcd(|{};1,...,2,1,0{*=∈=-=q k Z k Z q Z q q q(1)加法密码 ①加密算法:κκ∈∈===k X m Z Z Y X q q ;,;对任意,密文为:q k m m E c k m od )()(+== ②密钥量:q (2)乘法密码 ①加密算法:κκ∈∈===k X m Z Z Y X q q ;,;*对任意,密文为:q km m E c k m od )(== ②解密算法:q c k c D m k mod )(1-==③密钥量:)(q ϕ (3)仿射密码 ①加密算法:κκ∈=∈∈∈===),(;},,|),{(;21*2121k k k X m Z k Z k k k Z Y X q q q 对任意;密文q m k k m E c k m od )()(21+==②解密算法:q k c k c D m k mod )()(112-==-③密钥量:)(q q ϕ (4)置换密码 ①加密算法:κσκ∈=∈==k X m Z Z Y X q q ;,;对任意上的全体置换的集合为,密文)()(m m E c k σ==②密钥量:!q③仿射密码是置换密码的特例 3.几种典型的单表古典密码体制 (1)Caeser 体制:密钥k=3 (2)标准字头密码体制: 4.单表古典密码的统计分析(1)26个英文字母出现的频率如下:频率 约为0.120.06到0.09之间 约为0.04 约0.015到0.028之间 小于0.01 字母et,a,o,i.n,s,h,rd,lc,u,m,w,f,g ,y,p,bv,k,j,x,q,z【注:出现频率最高的双字母:th ;出现频率最高的三字母:the 】 (二)多表古典密码1.定义:明文中不同位置的同一明文字母在密文中对应的密文字母不同2.基本加密运算 (1)简单加法密码 ①加密算法:κκ∈=∈====),...,(,),...,(,,11n n n nq n q n n k k k X m m m Z Z Y X 对任意设,密文:),...,()(11n n k k m k m m E c ++==②密钥量:nq (2)简单乘法密码 ①密钥量:n q )(ϕ 1.简单仿射密码①密钥量:n n q q )(ϕ2.简单置换密码 ①密钥量:nq )!( (3)换位密码 ①密钥量:!n(4)广义置换密码①密钥量:)!(nq(5)广义仿射密码 ①密钥量:n n r q3.几种典型的多表古典密码体制 (1)Playfair 体制: ①密钥为一个5X5的矩阵②加密步骤:a.在适当位置闯入一些特定字母,譬如q,使得明文字母串的长度为偶数,并且将明文字母串按两个字母一组进行分组,每组中的两个字母不同。
b.明文21m m 对应的密文21c c 的确定:21m m 和同行或同列,则1c 为1m 后的字符,2c 为2m 后的字符;若21m m 和既不同行也不同列,则21c c 在21m m 所确定的矩形的其他两个角上,1c 和1m 同行,2c 和2m 同行。
(2)Vigenere 体制设明文n m m m m ...21=,密钥n k k k k ...21=则密文:n k c c c m E c ...)(21==, 其中n i k m c i i i ,...2,126m od )(=+=当密钥长度比明文长度短时,密钥可周期性地重复利用。
(3)Vernam 体制设明文......21i m m m m =,密钥......21i k k k k =其中,1)2(,≥∈i GF k m i i 则密文......21i c c c c =,其中1≥⊕=i k m c i i i(4)Hill 体制设明文nn Z m m m m 2621)...(∈=,密文nn Z c c c c 2621)...(∈=,密钥为26Z 上的nXn 街可逆方阵n n ij k K ⨯=)(,则:26mod 26mod 1-==cK m mK c4.多表古典密码的统计分析(1)分析步骤:①确定密钥字的长度;②确定密钥的内容(2)确定密钥字的常用方法:Kasisiki 测试法和重合指数法①Kasisiki 测试法可以找出可能密钥;而重合指数法可以进一步确定密钥②kasisiki 测试法步骤:a.寻找密文中长度至少为3的相同的密文片段;b.计算没对密文片段之间的距离为i d d d ,...,,21;c.计算可能密钥),...,,gcd(21i d d d m = ③重合指数法:065.0)1()1()(251225=≈--=∑∑==i i i ii c p n n ff x I其中i i p f 和分别为英文字母A,B,.....,Z 在长度为n 的英文字符串中出现的次数,及各字符出现的概率第三章 香农理论1、密码体制各组成部分的熵之间的关系:)()()()|(C H M H K H C K H -+=2、语言L 的冗余度:||log 12X H R LL -=3、伪密钥(1)定义:密码分析者得到众多可能密钥中除正确密钥之外的一个密钥(2)对于任意一个密文,用不同的密钥进行解密,如果得到的有意义的明文越多,则伪密钥也越多。
这是判断哪个密钥正确的难度就越大。
(3)对于一个密钥体制,设X 是明文字母表,Y 是密文字母表,并且|X|=|Y|,设L R 是明文语言的冗余度,假设密钥的选取满足均匀分布,则对于任意一个场地为n 的密钥字母串,当n 充分大时,萎靡要的期望数目n s 满足:1||||-≥Lnn R X K s (4)唯一解距离 令0=n s ,解之:||log ||log 0X R K n L ≈①一个密钥体制的唯一解距离就是密码分析者在有足够的计算时间的情况下,能够唯一的计算出正确密钥所需的密文的平均长度。
②明文语言的冗余度越大,唯一解距离就越小,密码分析者在唯密文攻击的情况下就越容易求得正确的密钥。
第三章 DES(一)DES算法1.基本参数分组加密算法:明文和密文为64位分组长度对称算法:加密和解密除密钥编排不同外,使用同一算法密钥长度:有效密钥56位,但每个第8位为奇偶校验位,可忽略密钥可为任意的56位数,但存在弱密钥,容易避开采用混乱和扩散的组合,每个组合先替代后置换,共16轮2.加密流程图3.子密钥的产生(二)分组密码的工作模式 1.分类电码本(ECB)模式密码分组链接(CBC)模式 密码反馈(CFB)模式 输出反馈(OFB)模式 计数器模式(CTR)2.总评(1)ECB 模式简单、高速,但最弱,易受重发和替换攻击,一般不采用。
(2)CBC ,CFC ,OFB 模式的选用取决于实际的特殊需求。
(3)明文不易丢信号,对明文的格式没有特殊要求的环境可选用CBC 模式。
需要完整性认证功能时也可选用该模式。
(4)不易丢信号,或对明文格式有特殊要求的环境,可选用CFB 模式。
(5)信号特别容易错,但明文冗余特别多,可选用OFB 模式。
第四章 AES1.AES 的理论基础(1)AES 的字节运算AES 中一个字节是用有限域GF(28)上的元素表示 ,通过倍成函数xtime ()实现 (2)AES 的字运算AES 中的32位字表示为系数在有限域GF(28)上的次数小于4的多项式,即012233)(a x a x a x a x a +++=2.AES 加密(1)AES 密码是一种迭代式密码结构,但不是 Feistel 密码结构(2)对于AES 算法,算法的轮数依赖于密钥长度:将轮数表示为Nr ,当Nk =4时,Nr =10;当Nk =6时,Nr =12;当Nk =8时Nr =14 。
【其中:密钥的列数记为Nk , Nk =密钥长度(bits )÷32(bits) 。
Nk 可以取的值为4、6和8,对应的密钥长度分别为128位、192位和256位】(3)加密过程:(以128位为例)①AES 需迭代十轮,需要11个子密钥。
②前面9轮完全相同,每轮包括4阶段,分别是字节代换(SubBytes )、行移位(Shift Rows )、列混淆(Mix Columns)和轮密钥加(Add Round Key);最后一轮只3个阶段,缺少列混淆。
3.AES的解密加密的逆过程4.AES的安全性(1)抗差分分析和线性分析(基于轨迹策略)(2)抗穷举密钥攻击(3)对密钥的选择没有任何限制,还没有发现弱密钥和半弱密的存在第五章 RSA(一)公钥密码体制1.为解决的两个问题:密钥的分配;数字签名2.对公钥密码体制的攻击(1)穷举法(2)根据公钥计算私钥(二)RSA算法1.体制原理(1)选取两个大素数p和q(保密)(2)计算n=pq(公开),)1)(1()(--=q p n φ(保密)(3)随机选取正整数e,)(1n e φ<<,满足1))(,gcd(=n e φ,e 是公开的加密密钥。
(4)计算d ,满足))((mod 1n ed φ≡,d 是保密的解密密钥。
(5)加密变换:对明文n Z m ∈,密文为n m c emod = (6)解密变换:对密文n Z c ∈,明文为n c m d mod = 【解密变换是加密变换的逆变换的证明】 2.p 和q 选择的限制(1)p 和q 的长度应该差不多(2)11--q p 和都应该包含大的素因子 (3))1,1gcd(--q p 应该很小 (三)大素数生成 1.素数分布定定理:设x > 0,π(x)为不大于x 的素数的个数, 则1ln )(lim=→∝xxx x π。