第四章 现代常规的分组加密算法 主要考察较为流行的最重要的几个对称密钥的分组密码算法。这些算法都是自DES公布之后,人们了解DES的弱点越来越深入的情况下给出的。给出的方式有两种,一种是对DES进行复合,强化它的抗攻击能力;另一种是开辟新的方法,即象DES那样加解密速度快,又具有抗差分攻击和其他方式攻击的能力。

Slides:



Advertisements
Similar presentations
因数与倍数 2 、 5 的倍数的特征
Advertisements

2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
一、会求多元复合函数一阶偏导数 多元复合函数的求导公式 学习要求: 二、了解全微分形式的不变性.
首页 全国高等学校招生考试统一考试 监考员培训 广州市招生考试委员会办公室.
人口增长.
3.4 空间直线的方程.
第一章 会计法律制度 补充要点.
第3章 对称密码体制.
二、个性教育.
大陸高等教育現況之分析 楊景堯 淡江大學中國大陸研究所.
姓名:江日宇 座號:26 班級:二年仁班 大崗國中 指導老師:陳金燦.
9 有理数的乘方.
不会宽容人的人, 是不配受到别人的宽容的。 贝尔奈.
复习回顾 a a×a a×a×a a a×a×a= a×a= 1.如图,边长为a厘米的正方形的面积 为 平方厘米。
南投縣道路交通安全聯席會報 101年4月份會議程序
第一章 行列式 第五节 Cramer定理 设含有n 个未知量的n个方程构成的线性方程组为 (Ⅰ) 由未知数的系数组成的n阶行列式
小学生游戏.
第四章 时间序列的分析 本章教学目的:①了解从数量方面研究社会经济现象发展变化过程和发展趋势是统计分析的一种重要方法;②掌握时间数列编制的基本要求;③理解和掌握水平速度两方面指标的计算及运用④理解和掌握长期趋势分析和预测的方法。 本章教学重点:现象发展的水平指标和速度指标。 本章教学难点:现象变动的趋势分析。
第四章 函数的积分学 第六节 微积分的基本公式 一、变上限定积分 二、微积分的基本公式.
第二章 导数与微分 第二节 函数的微分法 一、导数的四则运算 二、复合函数的微分法.
课标教材下教研工作的 实践与思考 山东临沂市教育科学研究中心 郭允远.
探索三角形相似的条件(2).
必备职业素养 主讲:程华.
方贤进 利用重合指数法破解Virginia加密 方贤进
网络与系统安全实验 一 传统加密技术 古典密码技术.
密码学导论˙第5章 分组密码 8学时 李卫海.
现代密码学理论与实践 第5章高级数据加密标准AES
2.2 IDEA 1990年Xuejia Lai(来学加)& J.L.Massey提出
走进编程 程序的顺序结构(二).
Cyclic Hanoi问题 李凯旭.
计算机数学基础 主讲老师: 邓辉文.
§2 求导法则 2.1 求导数的四则运算法则 下面分三部分加以证明, 并同时给出相应的推论和例题 .
What have we learned?.
逆向工程-汇编语言
使用矩阵表示 最小生成树算法.
第一章 函数与极限.
第二章 经典密码学 加密通信的模型 Oscar x x y Alice 加密机 解密机 Bob k 安全信道 密钥源.
分组密码的工作模式 为克服分组密码自身所具有的缺陷,在具体的分组密码系统设计中必须对其基本的工作模式(电码本模式Electronic Codebook, ECB)进行改进。 密码分组链接模式(Cipher Block Chaining ,CBC) 密码反馈模式(Cipher Feed back ,CFB)
第二十二章 曲面积分 §1 第一型曲面积分 §2 第二型曲面积分 §3 高斯公式与斯托克斯公式.
实数与向量的积.
Three stability circuits analysis with TINA-TI
线 性 代 数 厦门大学线性代数教学组 2019年4月24日6时8分 / 45.
第四章 一次函数 4. 一次函数的应用(第1课时).
主要内容: 无线局域网的定义 无线传输介质 无线传输的技术 WLAN的架构 无线网络搭建与配置 无线网络加密配置
WPT MRC. WPT MRC 由题目引出的几个问题 1.做MRC-WPT的多了,与其他文章的区别是什么? 2.Charging Control的手段是什么? 3.Power Reigon是什么东西?
复习.
IT 安全 第 11节 加密控制.
應用加密技術 A 譚惠心 指導教授:梁明章教授.
定理21.9(可满足性定理)设A是P(Y)的协调子集,则存在P(Y)的解释域U和项解释,使得赋值函数v(A){1}。
第九节 赋值运算符和赋值表达式.
第16讲 相似矩阵与方阵的对角化 主要内容: 1.相似矩阵 2. 方阵的对角化.
iSIGHT 基本培训 使用 Excel的栅栏问题
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
第三章 函数的微分学 第二节 导数的四则运算法则 一、导数的四则运算 二、偏导数的求法.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
2.2矩阵的代数运算.
临界区问题的硬件指令解决方案 (Synchronization Hardware)
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
§2 方阵的特征值与特征向量.
基于列存储的RDF数据管理 朱敏
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
定义5 把矩阵 A 的行换成同序数的列得到的矩阵,
§12-5 同方向同频率两个简谐振动的合成 一. 同方向同频率的简谐振动的合成 1. 分振动 : 2. 合振动 : 解析法
线性规划 Linear Programming
第十七讲 密码执行(1).
第十二讲 密码执行(上).
§4.5 最大公因式的矩阵求法( Ⅱ ).
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
学习目标 1、什么是列类型 2、列类型之数值类型.
9.3多项式乘多项式.
Presentation transcript:

第四章 现代常规的分组加密算法 主要考察较为流行的最重要的几个对称密钥的分组密码算法。这些算法都是自DES公布之后,人们了解DES的弱点越来越深入的情况下给出的。给出的方式有两种,一种是对DES进行复合,强化它的抗攻击能力;另一种是开辟新的方法,即象DES那样加解密速度快,又具有抗差分攻击和其他方式攻击的能力。

我们主要考察如下三种加密算法 1.Triple DES 2.IDEA 3.RC5 其他一些较实用的算法,自己看书了解,如Blowfish,CAST,以及RC2。

1 TRIPLE DES DES算法设计的优点是很多的。如何加强DES的安全性是一个世纪感兴趣的问题。Quisquater等曾建议采用长达768 bits密钥的方案。由于已经证明DES不能成为群,见 K.W.Campbell and M.J.Wiener Proof that DES is not a group In Advances in Cryptology——Crpto’92. Springer——Verlag, New York,1993. 于是多重DES,尤其是三重DES还在普遍使用。

(1)二重DES(Double DES) 给定明文P和两个加秘密钥k1和k2,采用DES对P进行加密E,有 密文 C=EK2(EK1(P)) 对C进行解密D,有 明文 P=DK1(DK2(C)) K2 K1 K1 K2 X X P C P E E C D D 加密图 解密图

对于二重DES的加密,所用密钥的长度为 56×2=112 bits 这样是否真正能增强DES的强度呢?问题在于下式能否成立: EK2(EK1(P)) =EK3(P) (4.1) DES是一个从集合A到集合A的一个映射。其中: 映射DES事实上可视为对A的一个作用,作用方式为置换。所有可能的置换数为 (264)!。 然而,DES对每一个不同的密钥只决定唯一的映射。而密钥数256<107,(4.1)式不能成立。

关于DES不是群的详细证明见上面给的文献。 注:二重DES很难抵挡住中间相遇攻击法(Meet-in-the-Middle Attack)

X=EK1(P)=DK2(C) 由 C=EK2(EK1(P)) 从图中可见 K2 K1 X P C 加密 E E K1 K2 X C D D 解密

若给出一个已知的明密文对(P,C)做:对256个所有密钥K1做对明文P的加密,得到一张密钥对应于密文X的一张表;类似地对256个所有可能的密钥K2做对密文C的解密,得到相应的“明文”X。做成一张X与K2的对应表。比较两个表就会得到真正使用的密钥对K1,K2。

对二重DES的中间相遇攻击的分析 已知,给定一个明文P,经二重DES加密有264个可能的密文。而二重DES所用密钥的长度应是112 bits,所以选择密钥有2112个可能性。于是对给定明文P加密成密文有2112/264=248种可能。于是,密文是假的比例约为248-64=2-16。这样,对已知明文-密文对的中间相遇攻击成功的概率为1-2-16。 攻击用的代价{加密或解密所用运算次数} ≦256+256=2112

(2)带有双密钥的三重DES (Triple DES with Two Keys) Tuchman给出双密钥的EDE模式(加密-解密-加密): C=EK1(DK2(EK1(P))) ……对P加密 P=DK1(EK2(DK1(C))) ……对C解密 这种替代DES的加密较为流行并且已被采纳用于密钥管理标准(The Key Manager Standards ANSX9.17和ISO8732).

K2 K1 K1 A B P C E D E 加密图 K2 K1 K1 B A P C D E D 解密图

到目前为止,还没有人给出攻击三重DES的有效方法。对其密钥空间中密钥进行蛮干搜索,那么由于空间太大为2112=5×1033,这实际上是不可行的。若用差分攻击的方法,相对于单一DES来说复杂性以指数形式增长,要超过1052。 注意: 1*. Merkle和Hellman设法创造一个条件,想把中间相遇攻击(meet-in-the-middle attack)的方法用于三重DES,但目前也不太成功。 2*. 虽然对上述带双密钥的三重DES到目前为止还没有好的实际攻击办法,但人们还是放心不下,又建议使用三密钥的三重DES,此时密钥总长为168bits. C=EK3(DK2(EK1(P)))

2 RC5 RC5是对称加密算法,由RSA公司的首席科学家R.Rivest于1994年设计,1995年正式公开的一个很实用的加密算法。

RC5具有如下的特性: 1. 适用于软件或者硬件实现 2. 运算速度快 3. 能适应于不同字长的程序(一个字的bit数是RC5的一个参数;不同字长派生出相异的算法) 4. 加密的轮数可变(轮数是RC5的第二个参数,这个参数用来调整加密速度和安全性的程度) 5. 密钥长度是可变的(密钥长度是RC5的第三个参数) 6. RC5形式简单,易于实现,加密强度可调节 7. 对记忆度要求不高(使RC5可用于类似Smart Card这类的对记忆度有限定的器件) 8. 高保密性(适当选择好参数) 9. 对数据实行bit循环移位(增强抗攻击能力)

对RC5的系统描述: (1)RC5的参数 RC5实际上是由三个参数决定的一组加密算法。 参数 定义 允许值 参数 定义 允许值 w 字的bit数大小。RC5加密 16,32,64 的基本单位为2个字块 r 轮数 0,1, …,255 b 密钥字节的长度(8-bit bytes) 0,1, …,255

RC5加密明文块的长度为32,64,128 bits。并且对应同样长度的密文。密钥长度为从0到2040 bits。一个特定的RC5表示为 RC5-w/r/b Rivest建议使用的标注RC5为 RC5-32/12/16 (明文分组长度64,加密轮数12,密钥长度128 bits)

(2) RC5的密钥扩展 对给定的密钥K来说,经过一些复合运算可产生总数为t的字密钥,使得每一轮都分配一对密钥。除此之外的非轮运算部分也要分配一对密钥。总计产生 t=2r+2 个子密钥,每个密钥的长度为一个字长(w bits)。子密钥可标记在t-字阵列中: s[0],s[1], …,s[t-1] 它为w×t矩阵 这种阵列的产生图示为:

初始化 words r,w …… K[0] K[1] K[b-1] Bytes 转换 s[0] S[1] …… S[t-1] …… L[0] L[c-1] words 混合 …… S[0] S[1] S[t-1] words

将参数r,w输入,左面标出的t-字阵列是一些伪随机bit,按r,w的规格选入的。然后把b-bits长的密钥K[0, …,b-1]转换成c-字阵列L[0, …,c-1](字的bit数为w,这里c=b×8/w;注意:密钥长度为b个字节)。如果b不是w的整数倍,那么L右端的空位用0填入。 下面描述密钥生成的细节:

Pw=Odd((e-2)2w) 对于给定的参数r和w,开始初始化运算 Qw=Odd((Φ -1)2w) 这里 Φ =1.618033988749…(黄金分割比率) 并且Odd[x]表示最接近x且可左可右的奇整数。 例: Odd[e]=3, Odd[Φ ]=1 用上述两个常数,按下述方式得到初始化的阵列S: S[0]=Pw For i=1 to t-1 do S[i]=S[i-1]+Qw 其中的加法是模2w的加法运算。

得到初始化阵列S,然后与最后产生的密钥阵列L做混合,最终得到子密钥阵列。 i=j=x=y=0 do 3×max(t,c) times: { S[i]=(S[i]+X+Y)<<<3; X=S[i];i=(i+1)(mod t); L[j]=(L[j]+X+Y)<<<(X+Y); Y=L[j];j=(j+1)(mod c); } 2*. Rivest 声称,这个扩张函数具有单向性。

(3) RC5的加密 整个加密使用了下述3个基本运算和它们的逆运算: 模2w加法运算,表示为“+”; 逐比特异或运算,表示为“⊕”; 字的循环左移运算:字x循环左移y比特,表示为 x<<<y 它的逆为循环右移y比特,表示为 x>>>y 如(a0,a1,a2, …,an-1)<<<3=(a3,a4, …,an-1,a0,a1,a2)

加密运算图: 明文(2w bits) A B S[0] Round1 S[1] + + ⊕ ⊕ <<< LE0 RE0 ⊕ ⊕ <<< <<< S[2] S[3] + + LE1 RE1 … … Round r ⊕ ⊕ <<< <<< S[2r] S[2r+1] + + LEr REr 密文(2w bits)

将明文分组为左右A,B;用变量Lei,Rei参与 运算程序为: LE0=A+S[0] RE0=B+S[1] for i=1 to r do LEi= ((LEi-1⊕REi-1)<<<REi-1)+S[2×i]; REi=((REi-1 ⊕LEi)<<<LEi)+S[2×i+1];

(4) RC5的解密 对两个1-字变量LDr和RDr。用变量LDi和RDi从r到1做: for i=r down to 1 do RDi-1=((RDi-S[2*i+1]>>>LDi) ⊕LDi); LDi-1=((LDi-S[2*i]>>>RDi-1) ⊕RDi-1); B=RD0-S[1]; A=LD0-S[0]. (5) RC5操作模式 见书119页-120页

明文(2w 比特) B A S[0] S[1] - - Round 1 ⊕ ⊕ >>> >>> S[2] LD0 RD0 Round 1 ⊕ ⊕ >>> >>> S[2] S[3] - - RDr-1 LDr-1 … … Round r ⊕ ⊕ >>> >>> S[2r] S[2r+1] - - RDr LDr 密文(2w 比特)

3 RC6分组密码简介 被选为21世纪加密标准算法。RC6是RC5的进一步改进。像RC5那样,RC6实际上是利用数据的循环移位。 RC6的加密程序:RC6-w/r/b Input: 明文存入四个w-bit寄存器A,B,C,D 轮数r w-bit轮密钥S[0,1, …,2r+3] Output:密文存入寄存器A,B,C,D

Procedure: B=B+S[0] D=D+S[1] for i=1 to r do { t=(B×(2B+1))<<<㏒2w u=(D×(2D+1))<<< ㏒2w A=((A⊕t)<<<u)+S[2i] C=((C ⊕u)<<<t)+S[2i+1] (A,B,C,D)=(B,C,D,A) …………右边寄存器到左边 } 寄存器的并行分配 A=A+S[2r+2] C=C+S[2r+3]

RC6-w/r/b加密图,其中f(x)=x× (2x+1): D B C A S[0] + S[1] + ⊕ ⊕ <<< f <<< f log2w log2w log2w <<< Repeat For r rounds <<< + + S[2i] S[2i+1] … … … … S[2r+3] S[2r+2] + + D A B C