加密知识点滴ABC
2010/5/30 19:37:51
    

 

 

十年行业软件开发经验,先行电子立志于做服务更专业的软件开发合作伙伴

 

中国的软件开发,何时能够脱离微软的控制?

山东的软件开发,能否有一点点的基础内容?

烟台的软件开发,还是停留在糊弄的境地吗?

 

加密的历史

作为保障数据安全的一种方式,数据加密起源于公元前2000年。埃及人是最先使用特别的象形文字作为信息编码的人。随着时间推移,巴比伦、美索不达米亚和希腊文明都开始使用一些方法来保护他们的书面信息。对被Julias Caesar(凯撒大帝)使用,也曾用于历次战争中,包括美国独立战争、美国内战和两次世界大战。最广为人知的编码机器是German Enigma机,在第二次世界大战中德国人利用它创建了加密信息。此后,由于Alan Turing和Ultra计划以及其他人的努力,终于对德国人的密码进行了破解。当初,计算机的研究就是为了破解德国人的密码,当时人们并没有想到计算机给今天带来的信息革命。随着计算机的发展,运算能力的增强,过去的密码都变得十分简单了,于是人们又不断地研究出了新的数据加密方式,如私有密钥算法和公共密钥算法。可以说,是计算机推动了数据加密技术的发展。

换位和置换

换位和置换(transposition and substitution ciphers)是两种主要的编码方法,是组成最简单的密码的基础。换位很像是一种字母游戏,打乱字母的顺序,并设法用这些打乱的字母组成一个单词。在换位密码中,数据本身并没有改变,它只是被安排成另一种不同的格式,有许多种不同的置换密码,有一个是用凯撒大帝的名字Julias Caesar命名的。它的原理是每一个字母都用其前面的第三个字母代替,如果到了最后那个字母,则又从头开始算。字母可以被在它前面的第几个字母所代替,在凯撒的密码中N就是3. 




加密密钥


加密算法通常是公开的,现在只有少数几种加密算法,如DES和IDEA等。一般把受保护的原始信息称为明文,编码后的为密文。尽管大家都知道使用的加密方法,但对密文进行有正确的密钥,而密钥是保密的。
一、保密密钥和公开/私有密钥
有两类基本的加密算法保密密钥和公开/私有密钥。在保密密钥中,加密者和解密者使用相同的密钥,也被称为对不对称密钥加密,这类算法有DES和IDEA。这种加密算法的问题是,用户必须让接收人知道自己所使用的密钥,这个密钥需要双方共同保密,任何一方的失误都会导致机密的泄露。而且在告诉收件人密钥过程中,还需要的防止任何人发现或偷听密钥,这个过程被称为密钥发布。有些认证系统在会话初期用明文传送密钥,这就存在密钥被截获的可能性。用保密密钥对信息加密。
另一类加密技术是公开/私有密钥,与单独的密钥不同,它使用相互关联的一对密钥,一个是公开密钥,任何人都可以知道,另一个是私有密钥,只有拥有该对密钥的人知道。如果有人发信给这个人,他就用他的私有密钥进行解密,而且只有他持有的私有密钥可以解密。这种加密方式的好处显而易见。密钥只有一个人持有,也就更加容易进行保密,因为不需在网络上传送私人密钥,也就不用担心别人在认证会话初期劫持密钥。用公开/私有钥技术对信息进行加密,下面把公开/私有密钥技术总结为以下几点:
1、公开钥/私有密钥有两个相互关联的密钥。
2、公开密钥加密的文件只有私有密钥能解开。
3、私有密钥加密的文件只有公开密钥能解开,这一特点被用于PGP(pretty good privacy)。
二、摘要函数(MD2、MD4和MD5)
摘要是一种防止改动的方法,其中用到的函数叫摘要函数。这些函数的输入可以是任意大小的消息,而输出是一个固定长度的摘要。摘要有这样一个性质,如果改变了输入消息中的任何东西,甚至只有一位,输出的摘要将会发生不可预测的改变,也就是说输入消息的每一位对输出摘要都有影响。总之,摘要算法从给定的文本块中产生一个数字签名(fingerprint或message digest),数字签名可以用于防止有人从一个签名上获取文本信息或改变文本信息内容。摘要算法的数字签名原理在很多加密算法中都被使用,如S/KEY和PGP(pretty good privacy)。
现在流行的摘要函数有MD4和MD5,下面就来讨论一下它们。记住,客户机和服务器必须使用相同的算法,无论是MD4还是MD5,MD4客户机不能和MD5服务器交互。
MD2摘要算法的设计是出于下面的考虑:利用32位RISC结构来最大其吞吐量,而不需要大量的替换表(substitution table)。
MD4算法将消息的给予对长度作为输入,产生一个128位的"指纹"或"消息化"。要产生两个具有相同消息化的文字块或者产生任何具有预先给定"指纹"的消息,都被认为在计算上是不可能的。
MD5摘要算法是个数据认证标准。MD5的设计思想是要找出速度更快但更不安全的MD4中潜在的不安全,MD5的设计者通过使MD5在计算上慢下来。,以及对这些计算做了一些基础性的改动来解决这个问题。MD5在RFC1321中给出文档描述,是MD4算法的一个扩展。 


密钥的管理和分发


一、使用同样密钥的时间范围
用户可以一次又一次地使用同样原密钥与别人交换信息,但要考虑以下情况:
1.如果某人偶然地接触到了用户的密钥,那么用户曾经和另一个人交换的每一条消息都不再是保密的了。
2.使用一个特定密钥加密的信息越多,提供给窃听者的材料也就越多,这就增加了他们成功的机会。
因此,一般强调仅将一个对话密钥用于一条信息中或一次对话中,或者建立一种按时更换密钥的机制以减小密钥暴露的可能性。
二、保密密钥的分发
假设在某机构中有100个人,如果他们任意两人之间可以进行秘密对话,那么总共需要多少密钥呢?每个人需要知道多少密钥呢?也许很容易得出答案,如果任何两个人之间要不同的密钥,则总共需要4950个密钥,而且每个人应记住99个密钥。如果机构的人数是1000、10000人或更多,这种办法就显然过于愚蠢了,管理密钥将是一件可怕的事情。
Kerberos提供了一种解决这个较好方案,它是由MIT发明的,使保密密钥的管理和分发变得十分容易,但这种方法本身还存在一定的缺点。为能在因特网上提供一个实用的解决方案。
Kerberos建立了一个安全的、可信任的密钥分发中心(Key Distribution Center,KDC),每个用户只要知道一个和KDC进行密钥就可以了,而不需要知道成百上千个不同的密钥。
假设A想要和B进行秘密通信,则A先和KDC通信,用只有A和KDC知道的密钥进行加密 ,A告诉KDC他想和B进行通信,KDC会为A和B之间的会话随机选择一个对话密钥"******",并生成一个标签,这个标签由KDC和B之间的密钥进行加密,并在A启动和B对话时,A会把这个标签交给B。为什么会生成这样一个标签呢?这个标签的作用是让A确信和他交谈的是B,而不是冒充者。因为这个标签是由只有B和KDC知道的密钥进行加密的,所以即使冒充者得到A发出的标签也不可能进行解密,只有B收到后才能够进行解密,从而确定了与A对话的人就是B。
当KDC生成标签和随机会放,就会把它们用只有A和KDC知道的密钥进行加密,然后把标签和会放钥传给A,加密的结果可以确保只有A能得到这个信息,只有A能利用这个会话密钥和B进行通话。同理,KDC会把会话密码用只有KDC和B知道的密钥加密,并把会话密钥给B。
A会启动一个和B的会话,并用得到的会话密钥加密自己和B的会话,还要把KDC传给它的标签传给B以确定B 的身份,然后A和B之间就可以用会话密钥进行安全的会话了,而且为了保证安全,这个会话密钥是一次性的,这样黑客就更难进行破解了。

数据加密标准


最著名的保密密钥或对称密钥加密算法DES(Data Encryption Standard)是由IBM公司在70年代发展起来的,并经政府的加密标准筛选后,于1976年11月被美国政府采用,DES随后被美国国家标准局和美国国家标准协会(American National Standard Institute,ANSI)承认。
DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。与每轮编码时,一个48位的"每轮"密钥值由56位的完整密钥得出来。DES用软件进行解码需用很长时间,而用硬件解码速度非常快。幸运的是,当时大多数黑客并没有足够的设备制造出这种硬件设备。在1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密,而且需要12个小时的破解才能得到结果。当时DES被认为是一种十分强壮的加密方法。
但是,当今的计算机速度越来越快了,制造一台这样特殊的机器的花费已经降到了十万美元左右,而用它来保护十亿美元的银行间线缆时,就要存细考虑了,另一方面,如果只用它来保护一台服务器,那么DES确实是一种好的办法,因为黑客绝不会仅仅为入侵一个服务器而花那么多的钱破解DES密文。由于现在已经能用二十万美元制造一台破译DES的特殊的计算机,所以现在对要求"强壮"加密的场合已经不再适用了。
三重DES
确定一种新的加密法是否真的安全是极为困难的,何况DES的密码学缺点只是密钥长度相对比较短,所以人们并没有放弃使用DES,而是想出了一个解决其长度方法,即采用三重DES,。这种方法用两个密钥对明文进行三次加密,假设两个密钥是K1和K2。
1.用密钥K1进行DES解密。
2.用K2对步骤1结果进行DES解密。
3.用步骤2的结果使用密钥K1进行DES加密。
这种方法的缺点,是要花费原来三倍,但从另一方面来看,三重DES的112位密钥长度是很"强壮"的加密方式了。
 

 
数据加密标准


最著名的保密密钥或对称密钥加密算法DES(Data Encryption Standard)是由IBM公司在70年代发展起来的,并经政府的加密标准筛选后,于1976年11月被美国政府采用,DES随后被美国国家标准局和美国国家标准协会(American National Standard Institute,ANSI)承认。
DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。与每轮编码时,一个48位的"每轮"密钥值由56位的完整密钥得出来。DES用软件进行解码需用很长时间,而用硬件解码速度非常快。幸运的是,当时大多数黑客并没有足够的设备制造出这种硬件设备。在1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密,而且需要12个小时的破解才能得到结果。当时DES被认为是一种十分强壮的加密方法。
但是,当今的计算机速度越来越快了,制造一台这样特殊的机器的花费已经降到了十万美元左右,而用它来保护十亿美元的银行间线缆时,就要存细考虑了,另一方面,如果只用它来保护一台服务器,那么DES确实是一种好的办法,因为黑客绝不会仅仅为入侵一个服务器而花那么多的钱破解DES密文。由于现在已经能用二十万美元制造一台破译DES的特殊的计算机,所以现在对要求"强壮"加密的场合已经不再适用了。
三重DES
确定一种新的加密法是否真的安全是极为困难的,何况DES的密码学缺点只是密钥长度相对比较短,所以人们并没有放弃使用DES,而是想出了一个解决其长度方法,即采用三重DES,。这种方法用两个密钥对明文进行三次加密,假设两个密钥是K1和K2。
1.用密钥K1进行DES解密。
2.用K2对步骤1结果进行DES解密。
3.用步骤2的结果使用密钥K1进行DES加密。
这种方法的缺点,是要花费原来三倍,但从另一方面来看,三重DES的112位密钥长度是很"强壮"的加密方式了。



岚凯招标代理有限公司
岚凯招标代理有限公司
上海岚朔教育科技有限公司
上海岚朔教育科技有限公司
山东九齐律师事务所
山东九齐律师事务所
岚悦科技有限公司
岚悦科技有限公司
  

鲁ICP备13030941号-2
鲁公网安备 37060202000753号


版权所有:山东先行软件信息技术有限公司 联系电话:0535-2116876