您好,欢迎访问三七文档
(第九讲)基本协议山西大学计算机与信息技术学院郭丽峰信息安全密码协议的基本概念所谓协议,就是指两个或两个以上的参与者为了完成某一特定任务而采取的一系列执行步骤。这里包含三层含义:(1)协议是一个有序的执行过程。每一步骤都必须执行,而且执行是依序进行的。随意增加和减少执行步骤或改变步骤的密码协议的基本概念执行顺序,都是对协议的篡改或攻击。(2)协议至少要有两个参与者。虽然一个人通过执行一系列的步骤来完成某种任务,但是它不构成协议。(3)协议的执行必须能完成某种任务。算法与协议的比较算法是求解问题的一组有穷的运算规则,这些规则给出了求解特定类型问题的运算序列。算法具有以下特征:(1)有穷性。一个算法总是在运算有穷步之后结束,而且每一步都可以在有穷时间内完成。(2)确定性。算法的每一个步骤都必须有确定的含义,无二义性,并且在任何条件下算法都只有唯一的一条执行路径。算法与协议的比较(3)输入。算法可以无输入,也可以有输入。这些输入是在算法开始执行前提供给算法的。(4)输出。算法有一个或多个输出。这些输出是与输入有某种确定关系的量。(5)能行性.算法的执行所花费的时间和空间是在现实计算资源条件下实现的。算法与协议的比较协议与算法的相同点:都要求有穷性、确定性和能行性。不同之处:协议强调至少有两个参与者,而且双方之间还要进行通信。协议强调完成某一特定任务,而算法强调问题求解。即,协议强调处理,算法强调计算。算法与协议的比较协议的执行步骤在粒度上比较粗,比较宏,而算法的执行步骤在粒度上比较细,其步骤常常是一些基本运算。由于算法强调计算,所以输入和输出都是一些量。而协议的输入通常是执行的一些条件,而输出是协议执行的结果,结果通常表现为一种状态。算法与协议的比较算法和协议是两种不同层次上的概念。算法是低层次上的概念,而协议是高层次上的概念,协议建立在算法的基础之上。9.1密钥交换9.1.1混合密码系统在讨论把DES算法(1977.1)作为标准的同时,公开了第一个公开密钥算法(1976)。这导致了密码学团体中的政治党派之争。公开密钥算法不会代替对称算法。公开密钥算法不用来加密消息,而用来加密密钥。9.1.1混合密码系统因为:1)公开密钥算法比对称算法慢,对称算法一般比公开密钥算法快1000倍。2)公开密钥密码系统对选择明文攻击是脆弱的。如果C=E(P),当P是n个可能明文集中的一个明文,那么密码分析者只需要加密所有可能的明文,并能与C比较结果。用这种方法,不可能恢复解密密钥,但他能够确定P.9.1.1混合密码系统如果P是比一百万美元少的某个美元值,密码分析家尝试所有一百万个可能的美元值,就可能得到结果。在大多数实际的实现中,公开密钥密码用来保护和分发会话密钥,这些会话密钥用在对称算法中,对通信消息进行保密,称这种系统为混合密码系统(hybridcryptosystem)9.1.1混合密码系统(1)Bob将他的公开密钥发给Alice.(2)Alice产生随机会话密钥K,用Bob的公开密钥加密,并把加密的密钥EB(K)送给Bob.(3)Bob用他的私人密钥解密Alice的消息,恢复出会话密钥:DB(EB(K))=K.(4)他们两人用同一个会话密钥对他们的通信消息进行加密。9.1.1混合密码系统把公开密钥密码用于密钥分配解决了重要的密钥管理问题。9.1.2对称密码学的密钥交换协议9.1.2对称密码学的密钥交换协议这个协议依赖于Trent的绝对安全性。Trent更可能是可信的计算机程序,而不是可信的人。如果Malice破坏了Trent,整个网络都会遭受损害。他有Trent与每个用户共享的所有秘密密钥;他可以读所有过去和将来的通信业务。另一个问题:Trent可能会成为瓶颈。他必须参与每一次密钥交换,如果Trent失败了,这个系统就会被破坏。9.1.3公开密钥密码学的密钥交换协议(1)Alice从PKDB得到Bob的公开密钥。(2)Alice产生随机会话密钥,用Bob的公开密钥加密,并把加密的密钥EB(K)送给Bob.(3)Bob用他的私人密钥解密Alice的消息,恢复出会话密钥:DB(EB(K))=K.(4)他们两人用同一个会话密钥对他们的通信消息进行加密9.1.3公开密钥密码学的密钥交换协议中间人攻击:Malice能够截取Alice的数据库查询,并用自己的公开密钥代替Bob的公开密钥,对Bob他能做同样的事情。因为Alice和Bob无法验证他们的互相交谈。9.1.4使用数字签名的密钥交换在会话密钥交换协议期间采用数字签名能防止中间人攻击。Trent对Alice和Bob的公开密钥签名。签名的密钥包括一个已签名的所有权证书。当Alice和Bob收到密钥时,他们每人都能验证Trent的签名。那么他们就知道公开密钥是哪个人的。9.1.5密钥和消息传输Alice和Bob在交换消息前不需要完成密钥交换协议。在下面的协议中,Alice在没有任何以前的密钥交换协议的情况下,将消息M传送给Bob:(1)Alice产生一随机会话密钥K,并用K加密M:EK(M).Alice可以把加密的消息传送给几个人。9.1.5密钥和消息传输(2)Alice从数据库中得到Bob的公开密钥。(3)Alice用Bob的公开密钥加密K:EB(K)(4)Alice用加密的消息和加密的会话密钥传送给Bob:EK(M),EB(K).(5)Bob用他的私人密钥将Alice的会话密钥K解密。(6)Bob用会话密钥将Alice的消息解密。9.1.6密钥和消息广播Alice把加密消息传送给Bob,Carol,Dave:(1)Alice产生一随机会话密钥K,并用K加密消息M:EK(M).(2)Alice从数据库中得到Bob,Carol,Dave的公开密钥。(3)Alice用Bob的公开密钥加密K,用Carol的公开密钥加密K,用Dave的公开密钥加密K:EB(K),EC(K),ED(K).9.1.6密钥和消息广播(4)Alice广播加密的消息和所有加密的密钥,将它传送给要接收它的人:EB(K),EC(K),ED(K).(5)只有Bob,Carol,Dave能用他们的私钥将K解密。(6)只有Bob,Carol,Dave能用K将Alice的消息解密。这个协议可以再存储转发网络上实现。9.2鉴别当Alice登录计算机(或自动柜员机、电话银行系统或其他的终端类型)时,计算机怎么知道她是谁呢?计算机怎么知道她不是由其他人冒充的呢?传统的办法是用口令来解决这个问题的。Alice先输入她的口令,然后计算机确认它是正确的。Alice和计算机两者都知道这个口令,当Alice每次登录时,计算机都要求Alice输入口令。9.2.1使用单向函数鉴别计算机没有必要知道口令。计算机只需有能力区别有效口令和无效口令。使用单向函数实现。计算机存储口令的单向函数而不是存储口令。9.2.1使用单向函数鉴别(1)Alice将她的口令传送给计算机。(2)计算机完成口令的单向函数计算。(3)计算机把单向函数的运算结果和它以前存储的值进行比较。由于计算机不再存储每人的有效口令表,所以某些人侵入计算机,并偷取口令的威胁就减少了。由口令的单向函数产生的口9.2.1使用单向函数鉴别令表是没有用的,因为单向函数不可能逆向恢复出口令。9.2.2字典式攻击和Salt用单向函数加密的口令文件还是比较脆弱。Malice编制了1000000个常用的口令表,他用单向函数对所有1000000个口令进行运输,并将结果存储起来。如果每个口令大约是8个字节,运算结果的文件不会超过8M字节。现在Malice偷出加密的口令文件9.2.2字典式攻击和Salt将它与自己可能口令文件进行比较,再观察哪个能匹配。使用Salt方法抵制这种攻击。Salt是一个随机字符串,它与口令连接在一起,再用单向函数对其运算,然后将salt值和单向函数运算的结果存入主机数据库中。如果可能的salt值的数目足够大的话,它9.2.2字典式攻击和Salt消除了字典式攻击。许多salt是必须的,大多数UNIX系统仅使用12位的salt.9.2.3SKEYSKEY是一种鉴别程序,它依赖于单向函数的安全性。为了设置系统,Alice输入随机数R,计算机计算f(R),f(f(R)),f(f(f(R)))等大约100次。调用x1,x2,x3…..,x100这些数。计算机打印出这些数的列表,Alice把这些数放入安全地方,计算机也顺利地登陆数据库中9.2.3SKEYAlice的名字后面存储x101的值。当Alice第一次登陆时,她输入她的名字和x100,计算机计算f(x100),并把它和x101比较,如果它们匹配,那么证明Alice的身份是真的。然后,计算机用x100代替数据库中的x101.Alice将从她的列表中取消x100.9.2.3SKEYAlice每次登陆时,都输入她的列表中未取消的最后的数xi,计算机计算f(xi),并和存储在它的数据库中的xi+1比较,因为每个数只被用一次,并且这个函数是单向的,所以敌手不可能得到任何有用的信息。Alice用完了她的列表上面的数后,必须重新初始化系统。9.2.4使用公开密钥密码鉴别前面的协议安全问题:当Alice将她的口令发送给主机时,能够进入她的数据通道的任何人都可读取她的口令。如果敌手可以存取主机的处理机存储器,那么在主机对口令进行单向计算前,敌手就能够得到口令。9.2.4使用公开密钥密码鉴别使用公钥密码解决此问题:(1)主机发送给一个随机字符串给Alice.(2)Alice用她的私钥对此随机字符串加密,并将此字符串和她的名字一起传送回主机。(3)主机在它的数据库中查找Alice的公钥,并用公钥解密。9.2.4使用公开密钥密码鉴别(4)如果解密后的字符串与主机在第一步中发送给Alice的字符串匹配,则允许Alice访问系统。9.3秘密分割假设你有一个做蛋糕的秘方,给一个雇员又怕不安全,万一他辞职,将你的秘方全部带走,怎么办?将秘密分割!每一个雇员有一部分,那么只有他们放在一起才能做出美味的蛋糕!如果任意一个雇员辞职带走一部分配方,它本身都毫无用处!9.3秘密分割在两个人之间分割一消息是最简单的共享问题。下面是Trent把一消息分割给Alice和Bob的一个协议:(1)Trent产生一随机位串R,和消息M一样长。(2)Trent用R异或M得到S:MR=S(3)Trent把R给Alice,将S给Bob.9.3秘密分割为了重构此消息,Alice和Bob只需一起做一步:(4)Alice和Bob将他们的消息异或就可得到此消息:SR=M.实质上,Trent是用一次一密乱码本加密消息,并将密文给一人,乱码本给另一人。9.3秘密分割下面是在多个人中分割一消息,Trent把消息划分成四部分:(1)Trent产生三个随机位串R、S、T,每个随机串与消息M一样长。(2)Trent用着三个随机串和M异或得到U:MRST=M.9.3秘密分割(3)Trent将R给Alice,S给Bob,T给Carol,U给Dave.Alice、Bob、Carol和Dave在一起可以重构此消息:(4)Alice、Bob、Carol和Dave一起计算:MRST=M9.3秘密分割他可以分别交给Alice、Bob、Carol和Dave一部分,并且在以后告诉每一个人,只要Alice、Bob、Carol三人就可以重构出此秘密,然后解雇Bob。
本文标题:信息安全9
链接地址:https://www.777doc.com/doc-1253054 .html