对称加密算法
Download
1 / 52

对称加密算法 ——DES , 3DES 算法介绍 - PowerPoint PPT Presentation


  • 430 Views
  • Uploaded on

对称加密算法 ——DES , 3DES 算法介绍. 伏星源. 主要内容. 对称加密算法模型 经典 Feistel 网络 DES 加密算法工作原理 加密算法的模式 多重 DES 我们采用的 des 分析 通用 des 方法及其优化 测试结果:软件加密和硬件加密比较. 现代密码学研究的历程. 1914 年之前密码学进展很少出现在公开文献上。 1918 年, 《 重合指数及其在密码学中的应用 》 在 Riverbank 实验室诞生。 20 世纪最有影响的密码分析文章。 在 20 世纪三、四十年代,有多篇基础性文章出现在公开文献上,但内容离当时的水平相差非常远。

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 对称加密算法 ——DES , 3DES 算法介绍 ' - remedy


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

对称加密算法——DES,3DES算法介绍

  • 伏星源


主要内容

  • 对称加密算法模型

  • 经典Feistel网络

  • DES加密算法工作原理

    • 加密算法的模式

    • 多重DES

    • 我们采用的des分析

    • 通用des方法及其优化

  • 测试结果:软件加密和硬件加密比较


现代密码学研究的历程

  • 1914年之前密码学进展很少出现在公开文献上。

  • 1918年,《重合指数及其在密码学中的应用》在Riverbank实验室诞生。20世纪最有影响的密码分析文章。

  • 在20世纪三、四十年代,有多篇基础性文章出现在公开文献上,但内容离当时的水平相差非常远。

  • 二战结束时,公开的文献几乎没有,但有个例外,香农在1949年在《贝尔系统技术杂志》发表了文章《保密系统的通信理论》,也是战时产物。

  • 1949-1967,密码文献出现空白。

  • 1967,David出版了《破译者》一书。


现代分组加密技术

  • Lucifer算法(60年代),DES(1973),Madryga算法(1984),NewDES算法(1985),FEAL算法(80‘),REDOC算法(1991),Khufu和Khafre算法(1990),LOKI(1990),IDEA(1990),Skipjack(1990),Gost,Blowfish,SAFER,3-WAY,Crab,SXAL8/MBAL,RC5。

  • DES最重要的三个原因:

    • 通过验证安全性高;

    • DES是最早成为国际标准的对称加密算法;

    • DES目前仍然被广泛的使用。


Feistel
经典Feistel网络

  • Feistel网络设计的动机

    • 理想分组密码:{0,1}n->{0,1}n的代换

      • 完全随机的交换

      • 一个密钥既是一个可逆映射

      • 随机选择一个密钥


  • 问题1:为什么把这个叫做理想分组密码?

    • 密文的所有统计特征都是独立于所用密钥的。

  • 问题2:理想分组密码的密钥空间

    • 有多少个密钥:2n!

    • 在n较小的时候是不安全的

    • 密钥的长度:


  • Feistel网络解决的问题

    • 当n较小时,等价于替换变换

    • 当n较大,且明密文之间的任意可逆变换。比如n=64。


对付统计分析的方法:

(1)扩散。

明文的统计特性消散在对应的密文中,这样可以让多个明文数字尽可能影响多个密文数字获得,等价于每个密文数字被许多明文数字影响。最简单方法:代换

作用:尽可能明文和密文间统计关系复杂

(2)混淆

尽可能使密文和密钥之间的统计关系复杂,阻止攻击者发现密钥。 最简单方法:置换


Feistel1
经典Feistel网络

回顾乘积

密码

分组长度 密钥长度 迭代轮数 子密钥产生算法 轮函数


Feistel2

Feistel加密与解密


Feistel3
Feistel分组加密算法结构之思想

  • 基本思想:用简单算法的乘积来近似表达大尺寸的替换变换

  • 多个简单算法的结合得到的加密算法比任何一个部分算法都要强

  • 交替使用替换变换和排列(permutation)

  • 混淆(confusion)和扩散(diffusion)概念的应用。


DES的产生

1973年5月15日,NBS开始公开征集标准加密算法,并公布了它的设计要求:

(1)算法必须提供高度的安全性

(2)算法必须有详细的说明,并易于理解

(3)算法的安全性取决于密钥,不依赖于算法

(4)算法适用于所有用户

(5)算法适用于不同应用场合

(6)算法必须高效、经济

(7)算法必须能被证实有效

(8)算法必须是可出口的


DES的产生

  • 1974年8月27日,NBS开始第二次征集,IBM提交了算法LUCIFER,该算法由IBM的工程师在1971~1972年研制

  • 1975年3月17日,NBS公开了全部细节

  • 1976年,NBS指派了两个小组进行评价

  • 1976年11月23日,采纳为联邦标准,批准用于非军事场合的各种政府机构

  • 1977年1月15日,“数据加密标准”FIPS PUB 46发布


DES的应用

  • 1979年,美国银行协会批准使用

  • 1980年,美国国家标准协会(ANSI)赞同DES作为私营使用的标准,称之为DEA(ANSI X.392)

  • 1983年,国际化标准组织ISO赞同DES作为国际标准,称之为DEA-1

  • 该标准规定每五年审查一次,计划十年后采用新标准

  • 最近的一次评估是在1994年1月,已决定1998年12月以后,DES将不再作为联邦加密标准。

  • 1999年NIST颁布标准(FIPS PUB 46-3)的新版本,规定DES只能用于遗留系统或3DES情况。


DES算法实现加密需要三个步骤:

第一步:初始置换(IP)。

对给定的64位比特的明文x,首先通过一个置换IP表来重新排列x,从而构造出64位比特的x0,x0=IP(x)=L0R0,其中L0表示x0的前32比特,R0表示x0的后32位。

第二步:16轮Fiestel结构迭代

按照规则迭代。规则为

Li = Ri-1

Ri = Li⊕F(Ri-1,Ki) (i=1,2,3…16)

第三步:末尾置换(IP-1)

对L16R16利用IP-1作逆置换,就得到了密文y。

DES的描述


我们使用的des

(1)des.v是主模块,包括初始置换IP,控制16轮的状态机,初始逆置换IP-1 。

(2)desround.v是控制每一轮的操作,主要是由代换,置换,异或操作组成。

(3)key_gen 是密钥产生模块,des初始时候有56个初始密钥,根据初始密钥产生16轮的字密钥,每一个子密钥48bit,产生方法通过置换和移位产生。

(4)s1.v,到s8.v是字节替换S盒模块,输入是6bit输出时4bit。


Ip ip 1
初始置换IP和初始逆置换IP—1


des.v

初始IP

轮操作

初始IP-1


DES的一轮迭代


扩展 置换

轮操作—desround.v


扩充置换表(E)

  • ... efgh ijkl mnop ...

  • ... defghi hijklm lmnopq ...


选择压缩运算

行数:b1b6;列数




s*.v-----一个S盒实现





置换选择1和置换选择2


key_gen.v密钥产生模块

PC1移位

PC2移位

逆置换


Des verilog
des verilog实现

  • 接口信号:

  • 64bit输出输入

  • 64bit数据输出

  • 1bit加解密控制信号decrypt_1, decrypt_2, decrypt_3,

  • 3个64bit密钥输入key_1,key_2,key_3

  • 加密开始信号,load,一个周期高电平脉冲

  • 加密结束信号,ready,一个周期高电平脉冲

  • 加密周期为:18个周期

  • 面积

  • 8384门数


DES仿真波形

load_i是加密开始信号,read_o是加密结束信号。

可以看到。加密需要17个周期,其中每一轮加密一个周期。


DES的讨论

  • 其他DES,3DES实现

  • DES的雪崩效应

  • F函数(S-Box)设计原理未知

  • 密钥长度的争论

  • DES的破译

  • 弱密钥与半弱密钥


Des 3des
其他DES,3DES的实现

  • DES 加密算法已经比较成熟,该算法的硬件实现也有多种途径。孙坚[l14]提供了一

    种采用迭代方法的小面积实现[16],有的为了充分提高速度将 16 轮运算全部展开采用全流水线实现[l15][17],也有的将这两种方法进行折中[18][l16]。

  • 在高速实现中,现在已经有了10Gbps和12Gbps 以上的数据吞吐率。

  • [15] K. Itoh, M. Takenaka and N. Torii. DPA Countermeasure Based on the Masking Method. International Conference on Information, Communications and Signal Processing - ICICS

  • 2001, LNCS 2288, pp.440-456. Springer-Verlag, 2002

  • [16]孙坚, 周玉洁. 3DES IP的小面积实现. 信息安全与通讯保密

  • [17] 汪翼, 沈海斌, 何乐年, 严晓浪. DES 算法的高速流水线实现. 微电子学于计算机,

  • 2003(8), pp.158-160.

  • [18] 张丽娜, 陈建华, 张家宏, 阳凌怡. 基于 ASIC 的有效 DES/3DES 流水线设计. 计算

  • 机工程, 2007(1), pp. 225-226.


  • 1.速度优先

  • 根据 DES 算法自身的特点,优化 DES 加解密算法,运用全流水线技术,采用并行处理,实现高速的DES加密和解密。

  • 2.面积优先

  • 采用一个轮操作,通过状态机循环控制


S 盒的优化

  • S盒是DES算法的核心,是一个十分复杂的非线性函数,正是经过S盒的非线性变换才使明文实现了较好的混乱(confusion),从而具有较强的安全性。从 LSI 设计角度出发,应使其尽可能在一个基片上实现,减少器件规模;从逻辑电路设计理论来说,应尽可能减少最小项数数目,简化实现方案。

  • DES每轮运算有8个S盒, 每个S盒都有6位输入和4位输出。 48级流水线的3DES就会有 48*8 即 384 个 S 盒,所以减少实现每个 S 盒的平均组合逻辑单元数对缩小整个IP 核的面积是非常重要的。在 DES 的每轮运算中,除了 S 盒还有一些异或逻辑和置换操作,置换实现为硬件就是连线的问题,逻辑综合中的延时为 0。异或运算实现也比较

    简单,同样无从优化,而且延时也比较小。于是,S盒的延时就决定了IP核的最高工作频率。

  • 使用Verilog语言建立S盒的电路模型有多种方法[l19][21]:

  • (1)使用单case 语句的全逻辑结构,直接从S盒的64个输出选项中进行选择。

  • (2)使用两级case语句结构,先从 4 行中选择 1 行,然后从某行的 16 项中进行选择。

  • (3)与第二种方法类似,只不过第一级case 语句选择16列中的1列,然后再选择行。

  • (4)从卡诺图开始,手工化简成使用最少基本逻辑门的结构[l20]。如果用 FPGA 设计实现,由于其固有的内部结构,这些方法中肯定存在一种最好的实现。但是如果是 ASIC 实现,即使不同的方法也可以通过施加合适的综合约束达到相同的效果,并不具备多大用处。传统S盒优化的目标是使时序达到最优同时最小化面积。


密钥长度

  • 关于DES算法的另一个最有争议的问题:56比特的密钥长度不足以抵御穷举式攻击,因为密钥量只有256约1017个。

    原因:早在1977年,Diffie和Hellman已建议制造一个每秒能测试100万个密钥的VLSI芯片。每秒测试100万个密钥的机器大约需要一天就可以搜索整个密钥空间。他们估计制造这样的机器大约需要2000万美元。


密钥长度

  • 密钥长度多少才合适呢?

  • 系统怎样才是安全的呢?

  • 1997年1月28日,美国的RSA数据安全公司在RSA安全年会上公布了一项“秘密密钥挑战”竞赛,其中包括悬赏1万美元破译密钥长度为56比特的DES。美国克罗拉多洲的程序员Verser从1997年2月18日起,用了96天时间,在Internet上数万名志愿者的协同工作下,成功地找到了DES的密钥,赢得了悬赏的1万美元。

  • 1998年7月电子前沿基金会(EFF)使用一台25万美圆的电脑在56小时内破译了56比特密钥的DES。

  • 1999年1月RSA数据安全会议期间,电子前沿基金会用22小时15分钟就宣告破解了一个DES的密钥。


DES的安全性分析

  • S盒的输入数组改变1位,输出数组至少改变2位。如:输入:011001 行:01 列:1100,输出:1001。

  • 当输入的某1位固定,而其他各位改变时,S盒输出数据的1的个数和0的个数相差很小。否则若干次变换后,输出数组全0或1.

  • 雪崩效应

  • 16轮迭代是一个饱和状态。次数太多或太少,都会影响雪崩的效果。


Des double des
双重DES (Double DES)


Triple des
Triple-DES的四种模型

  • DES-EEE3:三个不同密钥,顺序使用三次加密算法

  • DES-EDE3:三个不同密钥,依次使用加密-解密-加密算法

  • DES-EEE2:K1=K3,同上

  • DES-EDE2:K1=K3,同上



对双密钥的三重DES的分析

  • 该模式由IBM设计, 可与常规加密算法兼容

  • 这种替代DES的加密较为流行并且已被采纳用于密钥管理标准(The Key Manager Standards ANSX9.17和ISO8732).

  • 交替使用K1和K2可以抵抗中间相遇攻击.如果C=EK2(EK1(EK1(P))) ,只需要256+2次加密

  • 到目前为止,还没有人给出攻击三重DES的有效方法。对其密钥空间中密钥进行蛮干搜索,那么由于空间太大为2112=5×1033,这实际上是不可行的。若用差分攻击的方法,相对于单一DES来说复杂性以指数形式增长,要超过1052。


K2

K3

K1

D

E

E

D

P

A

B

C

D

E

K3

K2

K1

C

B

A

P

三密钥的三重DES

加密:C=EK3(DK2 (EK1 (P)))

解密:P=DK1(EK2 (DK3 (C)))


3desverilog
3desverilog

  • 我们设计的3des基于des模块,设计一个状态机将des加密三次。

  • 接口信号:

  • 64bit输出输入

  • 64bit数据输出

  • 1bit加解密控制信号decrypt_1, decrypt_2, decrypt_3,

  • 3个64bit密钥输入key_1,key_2,key_3

  • 加密开始信号,load,一个周期高电平脉冲

  • 加密结束信号,ready,一个周期高电平脉冲

  • 加密周期:18*3=54个周期


3DES仿真波形

load是加密开始信号,read是加密结束信号。

可以看到。加密需要57个周期,其中每轮加密需要一个周期。


三密钥的三重DES分析

  • 密钥的有效长度为168位

  • 与DES的兼容性可以通过令K3=K2或K1=K2得到

  • 许多基于Internet的应用里用到:PGP和S/MIME


DES测试

  • 测试方法:

  • (1)采用c++软件编程得到DES算法

    • 变换十次密钥,每个密钥下,明文进行伪随机变换1万次,进行加密得到1万个密文。一共 10万组明文密文对。

      (2)对硬件实现的DES算法进行VCS仿真,密钥和明文的产生方法和C++软件一致,得到10万组明文密文对。

      (3)将(1)中产生的明文密文对上传到服务器,与(2)所得明文密文对进行比较。

      结果:全部一致

      附图 :软件加密结果见附件,硬件加密结果见服务器:fuxy/DES_6-1/cipher.txt.key.txt,plain.txt


3DES测试

  • 测试方法:

  • (1)采用c++软件编程得到3DES算法

    • 变换十次密钥组,每个密钥组下(k1,k2,k3), C=EK3(DK2 (EK1 (P))),明文进行伪随机变换1万次,进行加密得到1万个密文。一共 10万组明文密文对。

      (2)对硬件实现的3DES算法进行VCS仿真,密钥组和明文的产生方法和C++软件一致,得到10万组明文密文对。

      (3)将(1)中产生的明文密文对上传到服务器,与(2)所得明文密文对进行比较。

      结果:全部一致

  • 软件测试结果见附件,硬件测试详细结果见服务器,fuxy/TDES/cipher.txt,plain.txt,key.txt



ad