收藏 分享(赏)

密码学—计算机系统安全课程.ppt

上传人:天天快乐 文档编号:1463182 上传时间:2018-07-19 格式:PPT 页数:80 大小:311.52KB
下载 相关 举报
密码学—计算机系统安全课程.ppt_第1页
第1页 / 共80页
密码学—计算机系统安全课程.ppt_第2页
第2页 / 共80页
密码学—计算机系统安全课程.ppt_第3页
第3页 / 共80页
密码学—计算机系统安全课程.ppt_第4页
第4页 / 共80页
密码学—计算机系统安全课程.ppt_第5页
第5页 / 共80页
点击查看更多>>
资源描述

1、1,计算机系统安全,第四讲 密码学,2,一、密码学概述,密码体制:1)传统密码体制 2)现代密码体制传统密码体制:对称密码体制(单钥体制)现代密码体制:非对称密码体制(公钥密码体制、双钥体制)按照对明文的处理方式分为:分组密码算法和序列密码算法。分组密码算法:把明文分成等长的组分别加密序列密码算法:是一个比特一个比特地处理,用已知的密钥随机序列与明文按位异或。,第四章 传统密码学,3,二、加密和解密,第四章 传统密码学,加密,解密,明文M,密文C,原始明文M,E(M)=C.,D(C)=M,D(E(M)=M,明文Plaintext 密文Cipher text加密Encryption 解密Decr

2、yption密钥key,4,二、加密和解密,第四章 传统密码学,密码就是一组含有参数k的变换E。设已知信息m,通过变换E得到密文c。即c=Ek(m) 这个过程称之为加密,参数k称为密钥。解密算法D是加密算法E的逆运算,解密算法也是含参数k的变换。DK(EK(M)=M.,加密,解密,明文M,密文C,原始明文M,密钥K,密钥K,EK(M)=C,DK(C)=M.,5,二、加密和解密,第四章 传统密码学,DK2 (EK1(M)=M 双钥密码体制,加密,解密,明文M,密文C,原始明文M,加密密钥K1,解密密钥K2,EK1(M)=C,DK2(C)=M,6,定义: (密码体制)它是一个五元组(P,C,K,E

3、,D)满足条件: (1)P是可能明文的有限集;(明文空间) (2)C是可能密文的有限集;(密文空间) (3)K是一切可能密钥构成的有限集;(密钥空间) *(4)任意k K,有一个加密算法 和相应的解密算法 ,使得 和 分别为加密解密函数,满足dk(ek(x)=x, 这里 x P。,二、加密和解密,第四章 传统密码学,7,二、加密和解密,第四章 传统密码学,信源,加密机,解密机,接收者,安全信道,密钥源,窃听者,x,y,x,k1,加密通信的模型,密钥源,k2,不安全信道,密码分析,8,1*.Alice要将明文在不安全信道上发给Bob,设X=x1 x2 xn , 其中xi P, Alice用加密算

4、法ek作yi=ek(xi) 1 i n 结果的密文是 Y=y1y2.yn ,在信道上发送, Bob收到后解密:xi=dk(yi) 得到明文X=x1 x2 xn .。2*.加密函数ek必须是单射函数,就是一对一的函数。3*.好的密钥算法是唯密钥而保密的。4*.若Alice和Bob在一次通信中使用相同的密钥,那么这个加密体制为对称的,否则称为非对称的。,二、加密和解密,第四章 传统密码学,9,密码学:对信息进行编码实现隐蔽信息的一门学问。密码分析学:研究分析破译密码的学问。两者相互对立、促进。1、常用的密码分析攻击有四类 : 加密算法:公开 。 攻击目标:获得密钥K唯密文攻击(ciphertext

5、 only attacks)。已知:截获部分密文已知明文攻击(know plaintext attacks)。已知:截获部分密文;若干明文密文对。选择明文攻击(chosen plaintext attacks)。已知:截获部分密文;自主选择的明文密文对。选择密文攻击暂时接近密码机,可选择密文串,并构造出相应的明文。,三、密码分析,第四章 传统密码学,10,三、密码分析,第四章 传统密码学,2、算法的安全性 密码算法具有不同的安全等级 :以下情况可能是安全的.破译算法的代价大于加密数据的价值 .破译算法所需的时间大于加密数据保密的时间 .用单密钥加密的数据量小于破译算法需要的数据量 Shanno

6、n理论:仅当密钥至少和明文一样长时才无条件安全。如果不论密码分析者有多少密文,都没有足够的信息恢复出明文,那么这个算法就是无条件保密的,只有一次一密乱码本,才是无条件安全的。所有其它的密码系统在唯密文攻击中都是可破的 (蛮力攻击 )。,11,三、密码分析,第四章 传统密码学,密码学更关心在计算上不可破译的密码系统。如果一个算法用(现在或将来)可得到的资源(公开数据 )都不能破译,这个算法则被认为在计算上是安全的。 可以用不同方式衡量攻击方法的复杂性:数据复杂性。用作攻击输入所需的数据量。处理复杂性。完成攻击所需要的时间,这个经常叫做工作因素。存储需求。进行攻击所需要的存储量。作为一个法则,攻击

7、的复杂性取这三个因数的最小化,有些攻击包括这三种复杂性的折中:存储需求越大,攻击可能越快。,12,四、传统密码学,第四章 传统密码学,1、移位法 :将明文字母互相换位,明文的字母不变,但顺序被打乱了。 例如:线路加密法 明文以固定的宽度水平写出,密文按垂直方向读出。明文:COMPUTERSYSTEMSECURITYCOMPUTERSYSTEMSECURITY密文:CTSETOETCYMREUPSMRUYSI,13,四、传统密码学,第四章 传统密码学,2、代替法 :代替密码就是明文中每一个字符被替换成密文中的另外一个字符,代替后的各字母保持原来位置。对密文进行逆替换就可恢复出明文。有四种类型的代

8、替密码:(1)(1)单表(简单)代替密码:就是明文的一个字符用相应的一个密文字符代替。加密过程中是从明文字母表到密文字母表的一一映射。例:恺撒(Caesar)密码。(2)同音代替密码:它与简单代替密码系统相似,唯一的不同是单个字符明文可以映射成密文的几个字符之一同音代替的密文并不唯一。(3)多字母组代替密码:字符块被成组加密,例如“ABA”可能对应“RTQ”,ABB可能对应“SLL”等。例:Playfair密码。(4)多表代替密码:由多个单字母密码构成,每个密钥加密对应位置的明文。 例:维吉尼亚密码。,14,四、传统密码学,第四章 传统密码学,3、凯撒(Caesar)密码 令26个字母分别对应

9、于025,a=1,b=2y=25,z=0。凯撒加密变换实际上是c (m + k) mod 26其中m是明文对应的数据,c是与明文对应的密文数据,k是加密用的参数,叫密钥。比如明文:data security 对应数据序列:4,1,20,1,19,5,3,21,18,9,20,25k=5时,得密文序列9,6,25,6,24,10,8,0,23,14,25,4密文:ifyxjhzwnyd缺点:容易破解密码。,15,置换密码:1*. 置换的表示: 2*密钥空间K很大,|k|=26! 41026,破译者穷举搜索是不行的,然而,可由统计的方式破译它。3*移位密码体制是替换密码体制的一个特例,它仅含26个

10、置换做为密钥空间,四、传统密码学,第四章 传统密码学,移位密码:如凯撒(Caesar)密码 。仿射密码:如果选取k1,k2两个参数,其中 k1 与 26 互素,令c(k1m + k2)mod 26。这种变换称为仿射变换。,(,0 1 2 3 .23 24 250 1 2 3 .23 24 25,),16,四、传统密码学,第四章 传统密码学,4、Playfair密码(英国曾用)密钥由25个英文字母(J与I相同)组成的5阶方阵。 每一对明文字母 m1和m2,都根据下面的6条规则进行加密。(1)明文字母 m1和m2同行。密文是其右边字母。(2)明文字母 m1和m2同列。密文是其下边字母。(3)明文字

11、母 m1和m2不同行、不同列。密文是长方形的另两个顶点。(4)明文字母 m1和m2相同。在m1和m2之间加一个无效字母。(5)明文有奇数个字母,末尾加一个无效字母。(6)I、J看成是相同字母。,17,四、传统密码学,第四章 传统密码学,例:25个字母组成5阶方阵如下(J与I相同):HARPS (1)明文字母 m1和m2同行。密文是其右边字母。ICODB (3) m1和m2不同行、不同列。密文是长方形的另两个顶点。EFGKLMNQTUVWXYZ例:明文:CO MP UT ER 密文:OD TH MU GH利用规则: 1 3 1 3,18,四、传统密码学,第四章 传统密码学,5、维吉尼亚(Vige

12、nere)密码典型的多表密码,即一个明文字母可表示为多个密文字母。:例如:明文为System,密钥为dog,加密过程如下:明文:S y s t e m密钥:d o g d o g密文:w n z x t t,19,四、传统密码学,第四章 传统密码学,优点:能抵抗简单的字母频率分析攻击。设密钥k=k1k2kn,明文M=m1m2mn,加密变换Ek(M)=c1c2cn。其中ci( mi + ki) mod 26,i=1,2n。 多表密码加密算法结果将使得对单表置换用的简单频率分析方法失效。,20,四、传统密码学,第四章 传统密码学,6、一次一密密码一次一密密码,由AT&T公司的Gilbert Ver

13、nam在1917年提出。发方和收方各保存一份一次一密乱码本,它是一个大的不重复的真随机密钥字母集。发方用乱码本中的某一页密钥加密明文。加密方法:明文字符和乱码本密钥字符的模26加法。每个密钥仅对一个消息使用一次。发方对所发的消息加密,然后销毁乱码本中用过的一页。收方有一个同样的乱码本,并依次使用乱码本上的每个密钥去解密密文的每个字符,然后销毁乱码本中用过的一页。,21,四、传统密码学,第四章 传统密码学,棋盘密码建立一张表,使每一个字符对应一数,,是该字符所在行标号,是列标号。这样将明文变成形式为一串数字密文。这种密码古代曾广泛利用。 123451ABCDE2FGHI JK3LMNOP4QRS

14、TU5VWXYZ,22,五、密码体制评价,第四章 传统密码学,保密强度:与数据的重要性有关 密钥的长度:安全、保管、记忆算法的复杂度:开销大小差错的传播性:不应使差错导致通信失败加密后信息长度的增加程度:,23,六、单表密码分析,第四章 传统密码学,英语26个字母中,各字母出现的频率不同而稳定,经过大量统计,可以给出了各字母出现的频率值。英文明文字母按出现概率大小分组表:1 e 0.12 t a o i n s h r 0.05-0.13 d l 0.03-0.054 c u m w f g y p b 0.01-0.035 v k j x q z 0.01,24,六、单表密码分析,第四章 传

15、统密码学,字母、三字母组合是分析单表密码的有力手段 。英语单词以e、s、t、d双结尾的超过一半;以t、a、s、w 为起始字母的约为一半。某些常用用法也会提供有价值的线索,如信的开头写Dear ;源程序的某一位置是版权声明;电子资金传送报头格式。 单表密码的弱点:明文和密文字母之间的一一代替关系。这使得明文中的一些固有特性和规律(比如语言的各种统计特性)必然反映到密文中去。,25,一、 DES算法概述,现代与古典密码学采用的基本思想相同:替换与变位。古典:算法简单,长密钥。现代:算法复杂。P盒和S盒,数据加密标准,P盒 用 P盒构成的 S盒P盒 实质上是用硬件实现变位 ,改变输入序列S盒实质上是

16、用硬件实现若干比特的替换,译码器,编码器,26,一、 DES算法概述,发明人:IBM公司W. Tuchman 和 C. Meyer 1971-72年研制。产生:美国商业部的国家标准局NBS1973年5月到1974年8月两次发布通告,公开征求用于电子计算机的加密算法。经评选从一大批算法中采纳了IBM的LUCIFER方案。标准化:于1976年11月被美国政府采用,DES随后被美国国家标准局和美国国家标准协会(American National Standard Institute, ANSI) 承认。1977年1月以数据加密标准DES(Data Encryption Standard)的名称正式向

17、社会公布。 于1977年7月15日生效。DES的发展:如衍生出可抗差分分析攻击的变形DES以及密钥长度为128比特的三重DES等。,数据加密标准,27,一、 DES算法概述,在1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密,而且需要12个小时的破解才能得到结果。 1997年开始,RSA公司发起了一个称作“向DES挑战”的竞技赛。1997年1月,用了96天时间,成功地破解了用DES加密的一段信息;一年之后,在第二届赛事上,这一记录41天 ;1998年7月, “第2-2届DES挑战赛(DES Challenge II-2)” 把破解DES的时间缩短到了只需56个小时;

18、“第三届DES挑战赛(DES Challenge III)”把破解DES的时间缩短到了只需22.5小时 。,数据加密标准,28,一、 DES算法概述,数据加密标准,29,一、 DES算法概述,数据加密标准,上表中攻击者配有如下计算机资源的攻击能力,30,二、数据加密标准(DES),数据加密标准,31,二、数据加密标准(DES),数据加密标准,利用传统的换位和置换加密。假定信息空间由0,1组成的字符串,信息被分成64比特的块,密钥是56比特。经过DES加密的密文也是64比特的块。明文:m=m1m2m64 mi = 0,1 i = 1,2,64密钥:k=k1k2k64 ki = 0,1 i = 1

19、,2,64 其中k8,k16,k64是奇偶校验位,起作用的仅为56位。加密算法:Ek(m) = IP-1T16T15T1IP(m) 其中IP为初始置换,IP-1是IP的逆,Ti,i = 1,2,16是一系列的变换。解密算法:Ek-1 (c) = IP-1T1T2T16IP (c),32,二、数据加密标准(DES),数据加密标准,初始变换IP,33,二、数据加密标准(DES),数据加密标准,IP 中各列元素位置号数相差为8 ,相当于将原明文各字节按列写出,各列比特经过偶采样和奇采样置换后再对各行进行逆序,将阵中元素按行读得的结果。1 9 17 25 33 41 49 572 10 18 26 3

20、4 42 50 583 11 19 27 35 43 51 594 12 20 28 36 44 52 605 13 21 29 37 45 53 616 14 22 30 38 46 54 627 15 23 31 39 47 55 638 16 24 32 40 48 56 64输入64个二进制位明码文数据区组m= m1m2m64按初始换位表IP进行换位,得到区组B(0):B(0)=b1(0)b2(0)b64(0)= m58m50m7记成L0、R0左右两部分,34,二、数据加密标准(DES),数据加密标准,逆初始变换,35,二、数据加密标准(DES),数据加密标准,逆初始变换。用IP-1

21、表示,它和IP互逆。例如,第58位经过初始置换后,处于第1位,而通过逆置换,又将第1位换回到第58位 。可见输入组m和IP (IP-1 (m) 是一样的。,36,二、数据加密标准(DES),数据加密标准,37,中间各级算法说明Ki :每级密钥不同,二、数据加密标准(DES),数据加密标准,Li-1,Li,Ri-1,Ri,Li-1 f(Ri-1 , Ki),38,二、数据加密标准(DES),数据加密标准,加密函数(A,Ki),A(32位),加密时A=Ri-1,48位结果,48位Ki,+,选择函数组(S1S8),32位结果,(A,Ki),置换运算P,32位,39,二、数据加密标准(DES),数据加

22、密标准,乘积变换中的一次迭代,40,二、数据加密标准(DES),数据加密标准,32位,置换运算P,32位加密函数输出,32位,Li,Ri,左32位,右32位,Ri-1,Li-1,模2加,+.+,41,二、数据加密标准(DES),数据加密标准,DES算法1. 处理密钥:1.1 从用户处获得64位密钥Key.(每第8位为校验位,为使密钥有正确的奇偶校验,每个密钥要有奇数个”1”位.(本文如未特指,均指二进制位)1.2 具体过程:1.2.1 对密钥实施变换, 经过子密钥换位表PC-1的变换后,Key 的位数由64 位变成了56位。1.2.2 把变换后的密钥等分成两部分,前28位记为C0, 后28位记

23、为D0。,42,二、数据加密标准(DES),数据加密标准,1.2.3 计算子密钥(共16个), 从i=1开始。1.2.3.1 分别对Ci-1、Di-1作循环左移来生成Ci、Di(共16次)。1.2.3.2 串联Ci、Di,得到一个56位数,然后对此数作子密钥换位表PC-2变换以产生48位子密钥Ki。1.2.3.3 按以上方法计算出16个子密钥。 2对64位数据块的处理:21 把数据分成64位的数据块,不够64位的以适当方式填补。22对数据块利用初始变换IP表作变换。23 将变换后的数据块等分成前后两部分,前32位记为L0,后32位记为R0。,43,二、数据加密标准(DES),数据加密标准,24

24、 用16个子密钥对数据加密。241 利用扩展置换E,扩展32位的成48位242 用ER (i-1)与子密钥K(i)作按位异或运算。243 把所得的48位数分成8个6位数。1-6位为Z 1,7-12位为Z 2,43-48位为Z 8。244 用S密箱里的值替换Z j。从j=1开始。S密箱里的值为4位数,共8个S密箱2441 取出Z j的第1和第6位串联起来成一个2位数,记为m.。m即是Sj密箱里用来替换Z j的数所在的列数。2442 取出Z j的第2至第5位串联起来成一个4位数,记为n。n即是Sj密箱里用来替换Z j的数所在的行数。,44,二、数据加密标准(DES),数据加密标准,2443 用S密

25、箱里坐标(n,m)的值替换。245八个选择函数Sj(1j8)的输出拼接为32位二进制数据区组,把它作为P盒置换的输入,得到输出246 把得到的结果与L(i-1)作异或运算。把计算结果賦给R(i)。247 把R(i-1)的值賦给L(i),完成第1轮乘积变换。248 从241循环执行,直到K(16)也被用到。216轮25 把R(16)和L(16) 顺序串联起来得到一个64位数。对这个数实施22变换的逆变换IP-1。,45,分组密码运行模式,数据加密标准,ECB(电码本)模式: 各明文组独立地以同一密钥加密;传送短数据,46,分组密码运行模式,CBC(密码分组链接)模式: Cn=EkCn-1Pn;初

26、始向量V1; 用途:传送数据分组;认证。,47,分组密码运行模式,CFB(密码反馈)模式:利用CFB、OFB模式,可将DES转换为流密码。流密码无需填充消息,实时运行。流密码中明文和密文长度相同。如对字符加密,只要密钥长度8bit。 Cn=Pn Sj(E(C n-1),48,分组密码运行模式,OFB(输出反馈)模式:用分组密码产生一个随机密钥流,将此密钥流和明文流进行异或可得密文流。仍然需要一个初始向量(IV),49,二、数据加密标准(DES),数据加密标准,DES设计原理重复交替使用选择函数S和置换运算P两种变换使用 Feistel密码结构(1967年),50,混淆(confusion):使

27、密文与明文的统计独立性关系复杂化。使得输出是输入的非线性函数;用于掩盖明文和密文间的关系。通过代替法实现,如S盒。散布 (diffusion):使每位明文尽可能影响多位密文。扩展输出对输入的相关性,尽量使密文的每一位受明文中多位影响。通过置换法实现,如P盒。单独用一种方法,容易被攻破。流密码只依赖于混淆;分组密码两者都用。,51,DES算法的脆弱性,DES的半公开性:S盒的原理至今保密,所以不能算作真正的公开加密算法。1)函数构造与作用域:加密强度取决于函数f的复杂度 (S、P)和f的执行次数。64位固定分组,短组模式,易造成密文重复组块有限的函数作用域 ASCII码 0127子密钥只参与异或

28、简单的运算,有可能损害变换精度。2)迭代问题无法证明迭代16次最好 迭代在有限的作用域中存在封闭性;迭代次数多不仅费时,还可能被一次简单的变换所代替。,52,DES算法的脆弱性,3)S盒中的重复因子及密钥多值问题S盒设计中利用重复因子,导致S盒对不同输入可能产生相同输出,使加密、解密变换的密钥具有多值性。子密钥长度48位,只影响32位输出,因此加密强度达不到256,实际只有232x16=236S盒是精心设计的,它有利于设计者破译密码。提高加密强度(如增加密钥长度),系统开销呈指数增长,除提高硬件、并行处理外,算法本身和软件技术无法提高加密强度。,53,DES算法存在的问题与挑战,数据加密标准,

29、强力攻击:255次尝试 穷尽搜索 蛮力攻击差分密码分析法:247次尝试 1991年提出,选择明文攻击。分析明文对的差值对密文对差值的影响。很有效。线性密码分析法:243次尝试 1992年提出,已知明文攻击。寻找一个近似的线性表达式,通过选择充分多的明文密文对来破解密钥。对DES更有效。,54,三、高级加密标准(AES),NIST(国家标准技术研究所)1997年9月12日发出征集高级加密标准的通知 。1998年8月首次选出15个候选者,1999年3月遴选出5个,包括:E2、MARS、RC6、Rijndael、Twofish。2000年10月2日,美国商务部部长宣布比利时的Rijndael算法成为

30、新的AES。选择的基本条件:公开;分组单钥,分组长度128;密钥可为128,192,256;可软硬件实现。优劣标准:安全性;计算效率;内存要求;简便灵活。此外:适应性;减少专利纠纷;分散目标减少攻击。AES被开发用于替代DES,但NIST预测Triple DES仍将在近期作为一种实用的算法,单DES将逐步退出。,55,数字证书,数字证书就是标志网络用户身份信息的一系列数据,用来在网络通讯中识别通讯各方的身份,即要在Internet 上解决“我是谁”的问题,就如同现实中我们每一个人都要拥有一张证明个人身份的身份证或驾驶执照一样,以表明我们的身份或某种资格。,56,数字证书,数字证书是由权威公正的

31、第三方机构即CA 中心签发的,一串很长的包含有客户基本信息及CA 签字的数学编码。以数字证书为核心的加密技术可以对网络上传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性,以及交易实体身份的真实性,签名信息的不可否认性,从而保障网络应用的安全性。,57,数字证书,数字证书采用公钥密码体制,即利用一对互相匹配的密钥进行加密、解密。每个用户拥有一把仅为本人所掌握的私有密钥(私钥),用它进行解密和签名;同时拥有一把公共密钥(公钥)并可以对外公开,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样,信息就可以安全无

32、误地到达目的地了,即使被第三方截获,由于没有相应的私钥,也无法进行解密。通过数字的手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。在公开密钥密码体制中,常用的一种是RSA 体制。,58,数字证书,用户也可以采用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认以下两点:(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;(2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文件。数字证书可用于:发送安全电子邮件、访问安全站点、网上证券、网上招标采购、网上签约、网上办公、网上缴费、网上税

33、务等网上安全电子事务处理和安全电子交易活动。,59,公钥加密体制与RSA,根据加密密钥和解密密钥是否相同或本质上相同,即从其中一个容易推出另一个,可将现有的加密体制分为两种: 单钥加密体制,双钥加密体制。前者的加密密钥和加密密钥或者相同或者本质上相同,即从其中一个可以很容易的推出另一个,其典型代表是美国的数据加密标准(DES);后一种加密体制中的加密密钥和解密密钥不相同,并且从其中一个很难推出另一个,因此它的加密密钥可以公开,而解密密钥可以由用户自己保存,其典型代表的RSA 体制。,60,公钥加密体制与RSA,双钥密钥体制又叫公开密钥体制。在该体制中,加密密钥(又称公开密钥)PK 是对外公开的

34、,加密算法E 和解密算法D 也是公开的,但解密密钥(又称秘密密钥)SK 是保密的。虽然SK 是由PK 决定的,但却不能根据PK 计算出SK 。,61,公开密钥算法具有以下特点:() 用加密密钥PK 对明文X 加密后,再用解密密钥SK 解密即得明文,即 D SK (E PK (X)=X () 加密密钥不能用来解密,即E PK (D PK (X)X在计算机上可以容易地产生成对的PK 和SK ,但从已知的PK 不可能推导出SK 。,公钥加密体制与RSA,62,公钥体制的基本思想,用户加密密钥可以公开,登记在网络的密钥数据库中任何人要与某个用户U通信,只要在公开的密钥数据库中查得用户U的加密密钥,用此

35、加密密钥加密明文变成密文,将密文传送给指定用户U任何人如果没有解密密钥都不能恢复出明文。用户U可以用仅有自己知道的解密密钥对收到的密文进行解密,恢复出明文,从而完成保密通信。,63,在信息传递过程中,使用对方的公开密钥对该信息进行加密可以有效排除第三人对该信息的偷窥。而实践中,双钥加密体制更多地被用于身份的验证,即数字签名。在数字签名中,发送者A 用其秘密解密密钥SKA 和解密算法D对报文X 进行加密,将运算结果将运算结果D SKA(X )传给接受者B 。B用已知的A 的公开加密密钥PK A 和加密算法E 得出 E PKA (D SKA (X) = X 。,公钥加密体制与RSA,64,公开密钥

36、体系,传统密码学不能公开密钥单向函数 1976年,美国学者Diffe和Hellmen根据单向函数的概念提出了公开密码密钥体制,引起了密码学一场革命。公开密钥密码体制从根本上克服了传统密码体制的困难,解决了密钥分配和消息认证等问题,特别适合于计算机网络系统的应用。,65,NP类问题 (Non-deterministic Polynomial time problems (非确定多项式时间问题),多项式时间内可以验证的问题 背包问题是这样一个问题:已知长度为k的圆形背包及长度分别为a1,a2.an的n个圆形物品。假定这些物品的半径和背包半径相同,要求从n个物品中选出若干个正好装满这个背包。,66,

37、公钥体制的基本思想,公开密钥密码体制简称公钥体制,其基本思想是利用求解某些数学难题的困难性用户的加密密钥与解密密钥不再相同,从加密密钥求解密密钥是非常困难的。,67,RSA体制,RSA体制是美国麻省理工学院(MIT)Rivest,shamir和adleman于1978年提出来的是第一个成熟的、迄今为止理论上最为成功的公开密钥密码体制它的安全性基于数论中的Euler定理和计算复杂性理论中的下述论断:求两个大素数的乘积是容易计算的,但要分解两个大素数的乘积,求出它们的素因子则是非常困难的,它属于NP完全类。,68,一、RSA算法概述,传统密码体制的缺陷:密钥管理的麻烦:n个用户保存n*(n-1)/

38、2个密钥。不能提供法律证据 :不仅要保密还要解决证实问题。 1976年,美国学者Diffie和Hellman发表了著名论文密码学的新方向,提出了建立“公开密钥密码体制”:若用户A有加密密钥ka(公开),不同于解秘密钥ka(保密),要求ka的公开不影响ka的安全。若B要向A保密送去明文m,可查A的公开密钥ka,若用ka加密得密文c,A收到c后,用只有A自己才掌握的解密密钥ka对x进行解密得到m。,公开密钥算法,69,一、RSA算法概述,1978年,美国麻省理工学院(MIT)的研究小组成员:李维斯特(Rivest)、沙米尔(Shamir)、艾德曼(Adleman)提出了一种基于公钥密码体制的优秀加

39、密算法RSA算法。 RSA算法是一种分组密码体制算法,它的保密强度是建立在具有大素数因子的合数,其因子分解是困难的。是否是 NP问题尚未确定。RSA得到了世界上的最广泛的应用,ISO在1992年颁布的国际标准X.509中,将RSA算法正式纳入国际标准。1999年美国参议院已通过了立法,规定电子数字签名与手写签名的文件、邮件在美国具有同等的法律效力。,公开密钥算法,70,一、RSA算法概述,RSA 体制是根据寻求两个大素数容易,而将他们的乘积分解开则极其困难这一原理来设计的。在这一体制中,每个用户有加密密钥PK =( e, N) , 和解密密钥SK =( d ,N ),用户把加密密钥PK 公开而

40、对解密密钥中的d 保密。其中N 为两个大素数p 和q 的乘积( p 和q 一般为100 位以上的十进制素数),虽然e 和d 满足一定的关系,但敌手不能根据已知的e 和N 求出d 。,公开密钥算法,71,一、RSA算法概述,若用整数X 表示明文,用整数Y 表示密文, X ,Y 均小于N ,则加、解密算法为:加密: Y= Xe mod N解密: X=Y d mod N加密密钥PK = (e, N) 解密密钥SK = (d, N),公开密钥算法,72,一、RSA算法概述,PK 和SK 中的每个参数如何选择?用户秘密的选择两个大素数p 和q ,计算出N =pq ,将N 公开。用户再计算出N的欧拉函数(

41、N)= ( p -1 ) (q -1),定义(N )为小于等于N 且与N 互素的数的个数。然后,用户从0, (N-)1中任选一个与(N )互素的数e作为公开的加密指数,并计算出满足下式的ded 1mod(N)作为解密指数,从而产生了所需要的公开密钥PK 和秘密密钥SK 。,公开密钥算法,73,一、RSA算法概述,RSA 的安全性在于对大数N 的分解极其困难。如果攻击者能从N 中分解出p 和q ,便能求出(N) ,从而根据公开的e 求出d 。但是大数分解很花时间,例如,用每一微秒做一次操作的计算机,分解100 位的十进制数N ,需要时间为74 年。,公开密钥算法,74,二、RSA算法的实现,公开

42、密钥算法,RSA加密算法的过程 1取两个随机大素数p和q(保密)2计算公开的模数n=p*q(公开)3计算秘密的欧拉函数(n) =(p-1)*(q-1)(保密),丢弃p和q,不要让任何人知道。4随机选取整数e,满足 gcd(e, (n)=1(公开e加密密钥)gcd: Greatest Common Divisor 5计算d满足de1(mod (n)(保密d解密密钥) 6将明文x(按模为r自乘e次幂以完成加密操作,从而产生密文y(X、Y值在0到n-1范围内)。Y=xe mod n7解密:将密文y按模为n自乘d次幂。 X=Yd mod n,75,二、RSA算法的实现,公开密钥算法,在 2到X的区间中

43、,随机选择一个值为素数的概率近似等于(X)/(X-1)。可以证明,在找到一个素数之前,平均要进行(X-1)/ (X)LN(X)次实验。大数的运算上百位大数之间的运算是实现RSA算法的基础,因此程序设计语言本身提供的加减乘除及取模算法都不能使用,否则会产生溢出,必须重新编制算法。在编程中要注意进位和借位,并定义几百位的大数组来存放产生的大数。,76,RSA 的安全性,公开密钥算法,依赖于大数分解,但是否等同于大数分解一直未能证明。不管怎样,分解n是最显然的攻击方法。 1994年4月26日,美国各大媒体报道:由RSA发明人在17年前出的129位数字已被因子分解,并破解了附带的密语: The mag

44、ic words are squeamish ossifrage. 目前,已能分解140位十进制的大素数。因此,模数n必须选大一些。RSA最快的情况也比DES慢上100倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般只用于少量数据加密。,77,RSA算法的脆弱性,公开密钥算法,不能证明RSA密码破译等同于大数因子分解速度问题 提高pq将使开销指数级增长至少有9个明文,加密后不变,即me mod n=m普通用户难于选择p、q。对p、q的基本要求:p、q不相同,即不要太接近,又不能差别太大p-1、q-1都有大素数因子,增加猜测(r) 难度Gcd( p-1,q-1)应当小,78,RSA算法的

45、脆弱性,公开密钥算法,P、q选择不当,则变换周期性、封闭性而泄密 例:p=17,q=11,e=7,则n=187。设m=123,则 C1=1237 mod 187=183 C2=1837 mod 187=72 C3=727 mod 187=30 C4=307 mod 187=123 明文m经过4次加密,恢复成明文。总之,RSA对用户要求太苛刻,密钥不能常更换。,79,其它公钥密码体制,背包体制 1978年提出 5年后被 Shamir破解ElGamal 体制 1985年 基于有限域上计算离散对数难解性,已用于DSS(数字签名标准) 例:3x mod 17=5,解得:x=6 3x mod 13=7, 无解椭圆曲线体制(ECC) 1985年 基于离散对数优点:安全性高;密钥短;灵活性好。同等安全下的密钥长度:RSA:512 1024 2048 21000ECC:106 160 211 600,80,ElGamel 加密体制:选大素数P及其本源根g,p、g公开;随机选一整数x作为私钥(保密);计算y=gx mod p ; 将y作为公开密钥。加密过程在公钥数据库中查找获取用户的公钥y;在0 p-1间取整数k0; 计算下式并发送C1和C2:K=yk0 mod p,C1=gk0 mod p,C2=Km mod p;解密过程 计算K=C1x mod p 明文m=C2 K-1 mod p,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报