2918.A密钥分散管理系统——密钥确认算法实现 毕业设计论文.doc

上传人:仙人指路1688 文档编号:3930303 上传时间:2023-03-28 格式:DOC 页数:38 大小:213KB
返回 下载 相关 举报
2918.A密钥分散管理系统——密钥确认算法实现 毕业设计论文.doc_第1页
第1页 / 共38页
2918.A密钥分散管理系统——密钥确认算法实现 毕业设计论文.doc_第2页
第2页 / 共38页
2918.A密钥分散管理系统——密钥确认算法实现 毕业设计论文.doc_第3页
第3页 / 共38页
2918.A密钥分散管理系统——密钥确认算法实现 毕业设计论文.doc_第4页
第4页 / 共38页
2918.A密钥分散管理系统——密钥确认算法实现 毕业设计论文.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《2918.A密钥分散管理系统——密钥确认算法实现 毕业设计论文.doc》由会员分享,可在线阅读,更多相关《2918.A密钥分散管理系统——密钥确认算法实现 毕业设计论文.doc(38页珍藏版)》请在三一办公上搜索。

1、 大学毕 业 设 计(论 文)题 目:密钥分散管理系统密钥确认算法实现 专 业: 信息安全 学生姓名: 班级学号: 指导教师: 指导单位:计算机学院硬件基础教学中心 源代码联系本人日期: 2009年3月12日至 2009年6月15日摘 要随着人类社会进入信息时代,信息的产生、处理及安全保密已成为大家都关心的事情。为了实现信息的安全保密,人们可以采用密钥加密信息,从而使不拥有秘密钥的非法人员无法窃获信息。这使得信息的安全保密主要维系于秘密钥的安全,而不是对加密算法的保密。所以保证秘密钥的安全及如何有效地管理密钥成了密码学中十分重要的课题。本论文主要介绍了多用户口令分散管理系统的口令确认算法及界面

2、。该程序能够迅速、准确地对n个用户中的任意k个或k个以上合法用户的口令进行确认,并对用户码和上机时间等有关信息进行记录,可在一定时间内屏蔽连续多次口令输入错误的合法用户,对非法用户的恶意攻击具有较强的抗攻击能力,所编软件应具有通用性。界面设计合理、友好,具有检错和出错提示功能,界面同时应能适应系统内部参数的变化,保持相对稳定性。将密钥s S分成n个子密钥vi V,1 i n。它们满足:已知任意不少于 k (1 k n)个子密钥 vi ,可容易恢复密钥 s ;若仅知任意不多于 k - 1 个子密钥vi ,则关于密钥 s 就完全不能确定。称这种方案为( k , n)门限方案。利用这样的方案,可以将

3、用户输入的子密钥合成后与原系统生成的密钥进行对比,当输入的k个子密钥合成后的主密钥与原系统生成的主密钥相同时,可判定为完全通过。否则,若用户多次输入错误口令,将对其进行一定时间的屏蔽。关键词:密码学;密钥;分散管理;线性方程组;加密ABSTRACTAs human society entered the information age, information generation, processing and security has become a matter of interest to everyone. In order to achieve the security and

4、confidentiality of information, people can encrypt information with key, so that people who dont possess the secret key can not steal illegal personnel information. This makes the security and confidentiality of information mainly depending on the security of secret keys, rather than the secrecy of

5、the encryption algorithm. Therefore, ensuring the safety of the secret key and how to effectively manage key has become a very important issue in cryptography.This paper mainly introduces the confirmation algorithm and interface of a decentralized multi-user password management system. The program c

6、an quickly and accurately confirm any k or more than k of n legitimate users password. And record the user code and the time. It can shield the legitimate users who input the wrong password many times within a certain period of time. It can strongly counteract malicious attacks of illegal users. The

7、 software should be universal. The interface designing should be reasonable and friendly. It should be with prompt error and error functions. The interface should be able to adapt to changes of system parameters and to keep stable.Key s S will be divided into n sub-keys vi V, 1 i n. They meet: no le

8、ss than any known k (1 k n) sub-key vi, could easily resume the key s; if only knowing any more than k - 1 sub-key vi, the key s can not be identified completely. That program is named the (k, n) threshold scheme.Using such programs, we can compare the sub-keys that users entered with the original s

9、ystem-generated keys. When the key that composed by the k inputting sub-keys is same to the original system-generated primary key, it can be judged to be completely through. Otherwise, if the users enter the wrong password several times, there is a certain period of time for their shield.Key words:C

10、ryptography ; Key ; Decentralized management ; System of linear equations ; Encryption目 录第一章 绪论11.1 研究的背景11.2 研究的目的1第二章 密钥分散管理相关理论32.1 (k,n)门限方案32.2 防止子密钥窜改的一般方法32.3 高斯消元法42.3.1 简介42.3.2在信息学方面的应用42.4 MD5加密算法62.4.1 简介62.4.2 算法描述72.5 密钥分配与管理102.5.1 密钥分配方案102.5.2 密钥的管理11第三章 相关技术153.1 MFC简介153.2 VC+ 6.0

11、15第四章 需求分析184.1 需求分析的任务184.2 系统功能分析184.3 系统需求分析的步骤18第五章 总体设计195.1 设计目标195.2 设计原理195.3 密码确认系统的实现195.4 系统配置205.5 流程设计205.5.1密钥分散205.5.2 密钥确认21第六章 详细设计226.1 代码设计226.1.1 文件列表226.1.2 核心代码236.1.3 程序界面24结束语26致 谢27参考文献28附录A29第一章 绪论1.1 研究的背景在今天的信息社会里,通信安全保密问题的研究已不仅仅出于军事、政治和外交上的需要。科学技术的研究和发展及商业等方面,无一不与信息息息相关。

12、所以信息就是生命,信息就是时间,信息就是财富。由于信息是共享的,信息的扩散会产生社会影响,所以保护信息的安全是信息时代的迫切需要。保护信息的安全无疑是十分重要的,然而信息的丢失不容易被发现。同时它又是具有时间性的。同一信息在不同时间里的价值也是不一样的,有时候获得信息的时间比信息本身还重要。信息的存储和传输是通过载体进行的,例如,信使便是以人作为载体的。近代通信的载体有电波或电信号、磁盘等。保密有载体保密和通信保密两种。密码学主要研究保密通信,而且仅限于数据通信保密。此外,还有语音保密和图像传输保密等。近年来,密码学研究之所以十分活跃,主要原因是它与计算机科学的蓬勃发展息息相关。此外还由于电信

13、事业以及防止日益严重的计算机犯罪的需要。由于公共和私人部门的一些机构越来越多地应用电子数据处理,将数据存储在数据库中,因此防止非法泄露、删除、修改等是必须正视的问题。特别是,电子资金传输系统是一个由通信网络互相联结的金融机构,并通过这种网络传输大量资金,这是密码通信通向民用的典型例子。因此,信息的安全性也成为全社会关心的问题。1.2 研究的目的随着人类社会步入信息时代,信息的产生、处理及安全保密已成为大家都关心的事情。为了实现对信息的安全保密,人们可以采用密钥加密信息,从而使不拥有秘密钥的非法人员无法窃获信息。这使得信息的安全保密主要维系于秘密钥的安全,而不是对加密算法的保密。所以保证秘密钥(

14、简称密钥)的安全及如何有效地管理密钥成了密码学中十分重要的课题。显然,原始的将密钥存放于某人的记忆中,或是存放于某个特殊的保险柜中等方法已均不能保证密钥的安全,并且也不便于对密钥的管理。由于网络的开放性,互连性等特性,致使网络易受到黑客,恶意软件或者其他方法(如暴力穷尽)破解主密钥。由于系统的复杂性,不可能完全阻止新安全漏洞的产生。只要他们某次攻击获得成功,便可能获得主密钥,而且内部管理人员在不经意的情况下可以泄露甚至篡改主密钥,内部非管理人员可以利用管理漏洞窃取主密钥。密钥管理是数据加密技术中的重要一环,密钥管理的目的是确保密钥的安全性(真实性和有效性)。密钥既可以作为一个整体保存,也可以分

15、散保存。整体保存的方法有人工记忆、外部记忆装置、密钥恢复、系统内部保存;分散保存的目的是尽量降低由于某个保管人或保管装置的问题而导致密钥的泄漏。一个好的密钥管理系统应该做到:(1)密钥难以被窃取;(2)在一定条件下窃取了密钥也没有用,密钥有使用范围和时间的限制;(3)密钥的分配和更换过程对用户透明,用户不一定要亲自掌管密钥。为此,Shamir提出了一种实现密钥分散保管的好方法,即(k, n)门限密钥分散保管方案,简称为(k , n)门限方案。Shamir采用Lagrange内插多项式的方法构造了一种(k , n)门限方案。后来,许多学者对此作了研究,提出了许多种(k , n)门限方案。目的是使

16、密钥的安全性有进一步提高。第二章 密钥分散管理相关理论2.1 (k,n)门限方案定义1将密钥sS分成n个子密钥viV,1in。它们满足:已知任意不少于k(1kn)个子密钥vi,可容易恢复密钥s;若仅知任意不多于k-1个子密钥vi,则关于密钥s就完全不能确定.称这种方案为(k,n)门限方案。从Shannon信息论出发,可等价地有定义2。定义2将密钥sS分成n个子密钥vi集合V,1in。它们满足:对任意k个不同下标的集合,有这里H(x)为熵函数,称这种方案为(k,n)门限方案.若方案不允许有数据扩张,则还要求即每个子密钥长度应等于密钥的长度.多密钥(k,n)门限方案定义:定义3将密钥s1,s2,s

17、lS分成n个子密钥viV,1in,它们满足:对任意k个不同下标的集合,有 j=1,2,l称这种方案为l密钥(k , n)门限方案。2.2 防止子密钥窜改的一般方法Shamir最初提出(k,n)门限方案思想时,并没考虑防止子密钥窜改的问题。实际上为了防止对主密钥的窜改与破坏,需要(k,n)门限方案中有辨认掌握子密钥人员的合法性、防止子密钥被窜改的功能。下面将利用公开密钥的思想,对于任意一个(k,n)门限方案,给出了防止子密钥窜改的一般方法。该方法简易、且克服了上述诸方案的一些缺点。自从1976年Diffie和Hellman提出用陷门单向函数构造公开密钥保密通信思想以来,引起了各国学者的普遍关注。

18、在公开密钥保密通信中,每个用户有两种密钥加密密钥E和解密密钥D,它们同时满足3个下面条件:(1)D是E的逆,对明文p,D(E(p)=p。(2)E,D都是容易计算的。(3)仅由E去找出D几乎是不可能的。满足(1)(3)的E称为陷门单向函数。这里E是可以公开的,而D需要严格保密。对任意一个(k,n)门限方案,我们可利用上述的陷门单向函数E来使它具有防止子密钥窜改的功能。设s为该(k,n)门限方案密钥,vi为子密钥(1in)。取定一个陷门单向函数E,计算v i=E(v i)将vi,E公开。使用时,对任意k个子密钥vij,1jk,若有vij=E(vij),1jk成立,则确认子密钥vij未经窜改,否则为

19、不合法或窜改,不能进行恢复主密钥的行动。由上述公开密钥的思想,该方法是可行的。关于公开密钥保密通信系统已有很多种。例如,RSA系统,背包系统(已被攻破),McEliece系统,二次剩余系统等。我们可利用其中好的系统给出的E,使(k,n)门限方案具有防止子密钥窜改的功能。2.3 高斯消元法2.3.1 简介高斯消元法,又称高斯消去法,实际上就是我们俗称的加减消元法。数学上,高斯消去法或称高斯约当消去法,由高斯和约当得名(很多人将高斯消去作为完整的高斯约当消去的前半部分),它是线性代数中的一个算法,用于决定线性方程组的解,决定矩阵的秩,以及决定可逆方矩阵的逆。当用于一个矩阵时,高斯消去产生“行消去梯

20、形形式”。例如:一个二元一次方程组,设法对每个等式进行变形,使两个等式中的同一个未知数的系数相等,这两个等式相减,得到一个新的等式,在这个新的等式中,细数相等的未知数就被除去了(系数为0)。同样的也适合多元多次方程组。2.3.2在信息学方面的应用高斯消元法是求解线性方程组的重要方法,在信息学中有广泛的应用。什么是线性方程组?含m个方程和n个未知量的方程组定义为a11x1+a12x2+.+a1nxn=b1a21x1+a22x2+.+a2nxn=b2am1x1+am2x2+.+amnxn=bm这个方程组称为mn线性方程组,其中aij和bi为实数。这个方程组有多种表示方法。例如,我们知道mn矩阵(用

21、大写字母表示)是一个m行n列的数阵,n维向量(用加粗的小写字母表示)是n个数的数组,也就是一个n1矩阵(列向量。我们不考虑行向量)。另外,大家也都知道矩阵乘法。因此一个mn线性方程组可以表示为Ax=b,其中A是由系数aij组成的mn矩阵即系数矩阵,x是n维的未知数向量,b是m维的结果向量。如果把向量b写到A的右边得到m(n+1)的矩阵,得到的新矩阵称为这个方程组的增广矩阵。每一个方程组均对应于一个增广矩阵。下面介绍一下矩阵的初等行变换:1. 交换两行;2. 用非零实数乘以任一行;3. 把某一行的倍数加到另一行上。同理可以定义初等列变换。初等行变换和初等列变换统称初等变换。定理:对于一个方程组对

22、应的增广矩阵进行有限次初等行变换,所得矩阵对应的方程组与原方程组等价。即它们是等价方程组。高斯消元的过程,就是利用初等行变换将原来不容易求解的方程组转化为容易求解的方程组。下面我们以求解nn线性方程组为例。因为如果mn,这个mn方程组一般不会有唯一的解。定义:上三角矩阵是一个nn的矩阵,其中对于任意ij的项aij=0。若i=j时aij0则称为严格上三角矩阵。下面就是一个严格上三角矩阵。1 2 10 1 10 0 1我们发现,如果将系数矩阵化为上三角矩阵,就可以轻而易举地求解。可以证明,nn方程组有唯一解等价于它的增广矩阵可以化为严格上三角矩阵。消元过程如下:对于增广矩阵A1. for i:=1

23、 to n-1 do2. 选择第i至第n行中第i个元素绝对值最大的行,与第i行交换/选择主元,由于涉及实数除法运算,选取大绝对值可以减小误差3. for j:=i+1 to n do4. 使用第3种行变换使aji=0根据得到的矩阵,可以回代求出每个未知数xi 。这只是对于有唯一解的情况。那么,其他情况呢?我们定义在消元过程中保留的那行称为主行,主行第一个非零元素称为主元。消元的任务就是使主元非0,使主元下方元素变为0。当消元过程中无法选择非0主元,则此方程组无解或无穷解。此时,我们选择右边一列操作。即,若第i行为主行,在第j列无法选择主元,就对第i+1列操作。这样,最后的结果不再是上三角形,而

24、是行阶梯形:每一次在竖直方向下降1,在水平方向扩展可能大于1。在增广矩阵中能够选择主元的列对应的变量称为首变量,跳过的列对应的变量称为自由变量。定义:行阶梯形矩阵是一个满足(1)每一个非零行的第一个非零元为1;(2)若第i行为非零行,则第i+1行行首的0多于第i行;(3)非零行在全零行之前。如这就是一个行阶梯形矩阵:1 2 3 40 0 1 30 0 0 1当然,对于竞赛解方程没必要把首元素化为1。定理:mn线性方程组有解当且仅当其行阶梯形矩阵不含这样一行:0001。亦即,对于nn线性方程组,若没有唯一解,我们就将其化为行阶梯形,若最后某行形如000a(a0)则无解,否则有无穷多的解。上面我们

25、主要讨论了nn方程组。下面讨论mn的方程组:1. 若mn则这个方程组称为超定方程组。超定方程组对应的矩阵行数增加,因此通常无解(但若其行阶梯形矩阵上方为严格上三角,下方全为000,则有唯一解;若下方全为000而上方是阶梯形,则有无穷解);2. 若mn则称为亚定方程组。亚定方程组不可能有唯一解,但通常有无穷解,当然也可能无解。由此可见,对于任意mn线性方程组,求解均将其转化为行阶梯形矩阵。这就是我们所讨论的:定义:利用矩阵行初等变换,将线性方程组的增广矩阵化为行阶梯形的过程称为高斯消元法(Gaussian elimination)。而求解线性方程组的步骤:1 将其增广矩阵化为行阶梯形;2 若最后

26、有形如000a (a0)的行则无解;否则3 若含有自由变量则有无穷组解;否则4 原方程有唯一解。采用回代求解。至于有无穷组解的方程组的求解,需将其化为行最简形矩阵,其方法称为高斯-若尔当消元法。这里就不讨论了。2.4 MD5加密算法2.4.1 简介MD5是由Ron Rivest在MIT开发研究的Hash函数,它和利用DES或IDEA构造的Hash函数不一样,它仅仅是一种压缩函数,不含任何参数,即不论多长的信息m,通过MD5,最后输出的都是128比特的0,1符号串。该符号串的每一比特都是m的每一比特非常复杂、非常敏感的函数。这样出来的Hash函数值是靠密码来加密传输的。比如利用RSA系统的签名功

27、能来完成。说得具体些,A欲向B寄去信息m,A计算1. 。2. 。A向B寄去(m , S),B收到后对S1. 计算 。2. 计算 。3. 若 则接受,否则拒绝。2.4.2 算法描述对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。在MD5算法中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448。因此,信息的字节长度(BitsLength)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。

28、填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息字节长度=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。MD5中有四个32位被称作链接变量(ChainingVariable)的整数参数,他们分别为:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。当设置好这四个链接变量后,就开始进入算法的四轮循环运算。循环的次数是信息中512位

29、信息分组的数目。将上面四个链接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。主循环有四轮(MD4只有三轮),每轮循环都很相似。第一轮进行16次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。以下是每次操作中用到的四个非线性函数(每轮一个)。F(X,Y,Z)=(X&Y)|(X)&Z)G(X,Y,Z)=(X&Z)|(Y&(Z)H(X,Y,Z)=XYZI(X,Y,Z)=Y(X|(Z)(&是与,|是或,是非,是异或)这

30、四个函数的说明:如果X、Y和Z的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。F是一个逐位运算的函数。即,如果X,那么Y,否则Z。函数H是逐位奇偶操作符。假设Mj表示消息的第j个子分组(从0到15),FF(a, b, c, d, Mj, s, ti)表示a=b+(a+(F(b, c, d)+Mj+ti)GG(a, b, c, d, Mj, s, ti)表示a=b+(a+(G(b, c, d)+Mj+ti)HH(a, b, c, d, Mj, s, ti)表示a=b+(a+(H(b, c, d)+Mj+ti)II(a, b, c, d, Mj, s, ti)表示a=b+(a+(I(b

31、, c, d)+Mj+ti)这四轮(64步)是: 第一轮FF(a, b, c, d, M0, 7, 0xd76aa478)FF(d, a, b, c, M1, 12, 0xe8c7b756)FF(c, d, a, b, M2, 17, 0x242070db)FF(b, c, d, a, M3, 22, 0xc1bdceee)FF(a, b, c, d, M4, 7, 0xf57c0faf)FF(d, a, b, c, M5, 12, 0x4787c62a)FF(c, d, a, b, M6, 17, 0xa8304613)FF(b, c, d, a, M7, 22, 0xfd469501)FF

32、(a, b, c, d, M8, 7, 0x698098d8)FF(d, a, b, c, M9, 12, 0x8b44f7af)FF(c, d, a, b, M10, 17, 0xffff5bb1)FF(b, c, d, a, M11, 22, 0x895cd7be)FF(a, b, c, d, M12, 7, 0x6b901122)FF(d, a, b, c, M13, 12, 0xfd987193)FF(c, d, a, b, M14, 17, 0xa679438e)FF(b, c, d, a, M15, 22, 0x49b40821) 第二轮GG(a, b, c, d, M1, 5,

33、0xf61e2562)GG(d, a, b, c, M6, 9, 0xc040b340)GG(c, d, a, b, M11, 14, 0x265e5a51)GG(b, c, d, a, M0, 20, 0xe9b6c7aa)GG(a, b, c, d, M5, 5, 0xd62f105d)GG(d, a, b, c, M10, 9, 0x02441453)GG(c, d, a, b, M15, 14, 0xd8a1e681)GG(b, c, d, a, M4, 20, 0xe7d3fbc8)GG(a, b, c, d, M9, 5, 0x21e1cde6)GG(d, a, b, c, M14

34、, 9, 0xc33707d6)GG(c, d, a, b, M3, 14, 0xf4d50d87)GG(b, c, d, a, M8, 20, 0x455a14ed)GG(a, b, c, d, M13, 5, 0xa9e3e905)GG(d, a, b, c, M2, 9, 0xfcefa3f8)GG(c, d, a, b, M7, 14, 0x676f02d9)GG(b, c, d, a, M12, 20, 0x8d2a4c8a) 第三轮HH(a, b, c, d, M5, 4, 0xfffa3942)HH(d, a, b, c, M8, 11, 0x8771f681)HH(c, d,

35、a, b, M11, 16, 0x6d9d6122)HH(b, c, d, a, M14, 23, 0xfde5380c)HH(a, b, c, d, M1, 4, 0xa4beea44)HH(d, a, b, c, M4, 11, 0x4bdecfa9)HH(c, d, a, b, M7, 16, 0xf6bb4b60)HH(b, c, d, a, M10, 23, 0xbebfbc70)HH(a, b, c, d, M13, 4, 0x289b7ec6)HH(d, a, b, c, M0, 11, 0xeaa127fa)HH(c, d, a, b, M3, 16, 0xd4ef3085)H

36、H(b, c, d, a, M6, 23, 0x04881d05)HH(a, b, c, d, M9, 4, 0xd9d4d039)HH(d, a, b, c, M12, 11, 0xe6db99e5)HH(c, d, a, b, M15, 16, 0x1fa27cf8)HH(b, c, d, a, M2, 23, 0xc4ac5665) 第四轮II(a, b, c, d, M0, 6, 0xf4292244)II(d, a, b, c, M7, 10, 0x432aff97)II(c, d, a, b, M14, 15, 0xab9423a7)II(b, c, d, a, M5, 21, 0

37、xfc93a039)II(a, b, c, d, M12, 6, 0x655b59c3)II(d, a, b, c, M3, 10, 0x8f0ccc92)II(c, d, a, b, M10, 15, 0xffeff47d)II(b, c, d, a, M1, 21, 0x85845dd1)II(a, b, c, d, M8, 6, 0x6fa87e4f)II(d, a, b, c, M15, 10, 0xfe2ce6e0)II(c, d, a, b, M6, 15, 0xa3014314)II(b, c, d, a, M13, 21, 0x4e0811a1)II(a, b, c, d, M

38、4, 6, 0xf7537e82)II(d, a, b, c, M11, 10, 0xbd3af235)II(c, d, a, b, M2, 15, 0x2ad7d2bb)II(b, c, d, a, M9, 21, 0xeb86d391)常数ti可以如下选择:在第i步中,ti是4294967296*abs(sin(i)的整数部分,i的单位是弧度。(4294967296等于2的32次方)。所有这些完成之后,将A、B、C、D分别加上a、b、c、d。然后用下一分组数据继续运行算法,最后的输出是A、B、C和D的级联。2.5 密钥分配与管理 密钥是加密系统中的可变部分,好比保险柜的钥匙。过去的加密设计

39、人员总是通过对加密算法的保密,来增加密钥的强度。随着密码学的发展和在商业上的应用,这种观念已经发生了很大的变化。目前,大部分加密算法都已经公开了,想DES和RSA等加密算法甚至作为国际标准来推行。由于算法是公开的,人们可以通过各种途径得到它,因此明文的保密在相当大的程度上依赖于密钥的保密。在现实世界里,密钥的分配与管理一直是密码学领域较为困难的部分。设计安全的密钥算法和协议是不容易的,但可以依靠大量的学术研究。相对来说,对密钥进行保密更加困难。因而,在网络安全中,密钥的地位是举足轻重的。如何安全可靠、迅速高效地分配密钥,如何管理密钥一直是密码学领域的重要问题。2.5.1 密钥分配方案密钥的分配

40、技术解决的是网络环境中需要进行安全通信的端实体之间建立共享的密钥的问题。最简单最安全的方法是生成密钥后,通过安全地物理渠道(比如说人工方式)送达对方。然而,随着网络通信量的增加,特别是在Internet上,密钥数目较多,更换频繁,则密钥的分配就会成为严重的负担。目前,多数通信的双方并没有安全的物理传输渠道存在,因此需要对密钥的分配做一些研究。常规加密密钥分配方案有几种式密钥分配方案和分散式密钥分配方案。1. 集中式密钥分配方案在集中式密钥分配方案中,由一个中心节点负责密钥的长生并分配给通信的双方,或者由一组节点组成层次结构负责密钥的产生并分配给通信的双方。在这种方式下,用户不需要保存大量的会话

41、密钥,只需要保存同中心节点的加密密钥,用于安全传送由中心节点产生的即将用于与第三方通信的会话密钥。这种方式的缺点是通信量大,同时需要较好的鉴别功能以鉴别中心节点和通信方。目前这方面的主流技术是密钥分配中心KDC技术。在密钥分配中心KDC技术中,我们假定每个通信方与密钥分配中心KDC之间都共享一个惟一的主密钥,并且这个惟一的主密钥是通过其他安全地途径传递的。现在假定通信方A希望与通信方B建立一个逻辑连接进行通信,并且需要一次性的会话密钥来保护经过这个连接传输的数据。A拥有一个只有它自己和KDC知道的私有密钥Ka;类似的,B也拥有一个只有它自己知道和KDC知道的私有密钥Kb。密钥的分配方法为:(1

42、) AKDC:IDa|IDb|N1 。(2) KDCA:EKaKs|IDa|IDb|N1|EKbKs|IDa 。(3) AB:EKbKs|IDa 。(4) BA:EKsN2 。(5) AB:EKsf(N2) 。2. 分散式密钥分配方案使用密钥分配中心进行密钥的分配要求密钥分配中心是可信任的并且应该保护它免于被破坏。如果密钥分配中心被第三方,那么所有依靠该密钥分配中心分配会话密钥进行通信的所有通信方将不能正常的安全通信。如果密钥分配中心被第三方控制,那么所有依靠该密钥分配中心分配会话密钥技能进行通信的所有通信方之间的通信信息将被这个入侵的第三方轻而易举地窃听到。如果我们把单个密钥分配中心分散成几

43、个密钥分配中心,将会降低这种风险。更进一步,我们可以把几个蜜月分配中心分散到所有的通信方,即每个通信方同时也是密钥分配中心,也就是说每个通信方自己保存同其他所有通信方的主密钥。这种分散式密钥分配方案要求有n个通信方的网络要保存多达n(n-1)/2个主密钥。对于较大的网络,这种方案是不适用的,但对于一个小型网络或者一个大型网络的局部范围,这种分散化的方案还是有用的。分散式密钥分配方案中会话密钥的产生通过如下的步骤实现:(1) AB:IDa| N1 。(2) BA:EMKmKs|IDa|IDb|f(N1)|N2 。(3) AB:EKsf(N2) 。在分散式密钥分配方案中,每个通信方都必须保存多达(

44、n-1)个主密钥,但是需要多少会话密钥就可以产生多少。同时,使用主密钥传输的保温很短,所以对主密钥的分析也很困难。2.5.2 密钥的管理目前,几乎所有的加密技术都依赖于密钥,密钥的管理是整个加密系统中较薄弱的环节,密钥的泄漏将直接导致明文内容的泄漏,因而密钥是保证安全性的一个关键点。密钥的管理是一个复杂的问题,同时也会因所使用的加密体制(如常规加密体制和公开加密体制)的不同,而有所不同。密钥管理机制对常规加密体制来说,在进行通信之前,双方必须持有相同的密钥,在通信过程中要防止密钥泄密和能够更改密钥。通常是设立密钥分配中心KDC来挂你密钥,但增加了网络成本,降低了网络的性能。或者利用公开密钥加密

45、技术来实现对常规密钥的管理,此方法使密钥管理变得简单,同时解决了对称密钥中的可靠性和鉴别性的问题。公开密钥的管理通常采用数字证书的方式。数字证书通常含有惟一标识证书所有者(发送方)的名称、唯一标识证书发布者的名称、证书所有者的公开密钥、证书发布者的数字签名、证书的有效期及证书的序列号等。密钥的管理设计密钥的生成、使用、存储、备份、恢复以及销毁等多个方面,涵盖了的密钥的整个生存周期。某些密钥管理功能将在网络应用实现环境之外执行,包括可靠手段对密钥进行物理的分配。密钥管理是数据加密技术中的重要一环,密钥管理的目的是确保密钥的安全性(真实性和有效性)。一个好的密钥管理系统应该做到:(1) 密钥难以被

46、窃取;(2) 在一定条件下窃取了密钥也没有用,密钥有使用范围和时间的限制;(3) 密钥的分配和更换过程对用户透明,用户不一定要亲自掌管密钥。1. 管理方式层次化的密钥管理方式,用于数据加密的工作密钥需要动态产生;工作密钥由上层的加密密钥进行保护,最上层的密钥称为主密钥,是整个密钥管理系统的核心;多层密钥体制大大加强了密码系统的可靠性,因为用得最多的工作密钥常常更换,而高层密钥用的较少,使得破译者的难度增大。2. 密钥的使用与储存密钥的使用是指从密钥的存储介质上获得密钥进行加密和解密的技术活动。在密钥的使用过程中,要保证密钥不被泄漏出去,同时也要在密钥过了使用期的时候更换一个新的密钥。密钥只能被通信的双方使用。当确信或怀疑密钥泄漏出去时,应立即停止该密钥的使用,并从存储介质上删除该密钥。密钥的使用应保证顺利实现加密和解密,确保密钥的安全,发挥加密系统的

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号