百度一下 藏锋者 就能快速找到本站! 每日资讯归档 下载藏锋者到桌面一键访问

当前位置:主页 > 网络安全 > 非对称公钥加密方式如何建立一个基于互联网的信任体系?

非对称公钥加密方式如何建立一个基于互联网的信任体系?

所在栏目:网络安全 时间:06-15 09:34 分享:

随着互联网的飞速发展和电子商务、电子政务体系的逐渐形成,一种加密方式逐渐引起人们的重视,即一个钥匙即使被别人知道了也没有关系,当事者之间还持有另外一个不可能从公开的“钥匙”推算出来的秘密“钥匙”。也就是持有一对即使公开了也无妨的“钥匙”(公钥)和一个不能公开的秘密的“钥匙”(私钥)。与采取送信方和受信方共有的密钥即对称式加密密钥的方式形成对照,通信双方将公钥彼此公开,而各持有与此对应的秘密保存的秘钥,这就是所谓的公钥密码方式。

公钥密码

由于加密用的“钥匙”和破译密码的解密“钥匙”各自不同,所以也称为非对称密码。使用基于公钥的非对称式加密方法进行数据传输时,当事人持有加密用的钥匙和解密用的钥匙的一对钥匙。加密用的钥匙双方公开(称为公钥),而解密用的钥匙则不公开(称为密钥或私钥),由双方各自保存。这样就避免了数据传输时对不同的人使用不同的加密钥匙的繁杂性(相对于对称式加密方法),而且用公钥加密的数据只有持有与其配对的私钥的人才能解读,保证了数据的隐秘性。对称式密钥加密和公钥加密的比较如表12—1所示。

那么利用非对称公钥加密方式是如何建立一个基于互联网的信任体系的呢?我们通过例子来逐步说明。

第一步:A和B如果将绝对不能让别人知道的重要通信通过加密来互相交换时,A和B双方都将制作密码的“钥匙”不特意隐瞒,即使互联网上公开也没关系。比如,即使别人知道加密的“钥匙”也没有关系。这个公开的“钥匙”(公钥)与日常生活当中,在商业往来和政府机关里使用的一般图章(注意:这里的图章与证明身份的公章是不一样的)是一样的。图章上面的文字并不是什么秘密的东西,是可以根据需要公开的。所以相当于公钥的图章即使是粗制滥造的也无妨。

问题是能不能将其密文进行解密。因此当A制作密文时,利用B的公钥来加密。这种公钥是对应B的私钥的公钥。B接收到加密的密文以后,使用B的私钥破译A用B的公钥制作的密文,将其转换成明文。密文是以所谓几百个文字单位来被加密的,所以即使公钥被盗,但是将其解密成明文用的私钥却非常不容易破解出来,因而密文还是安全的。从B往A传送的情况也一样。所谓的公钥密码就是指这种算法。

将公钥算法的要点概括起来有:①公钥是给别人看的“钥匙”,秘钥是只有所有者才持有的;②送、受信双方各自持有一组公钥和秘钥。应该引起注意的一点是以一方的“钥匙”来加密的信息,如果不是用于它配对的另一个“钥匙”,就不可能将密文解密。所以,利用公钥加密的信息,如果不是同一对的秘钥就不能解密,同样用秘钥加密的信息,如果不是同一对的公钥也不能将密文解密。这是不持有一对“钥匙”,就不能打开密码的结构,所以“粗制滥造”的公开“钥匙”给别人知道了也没关系。

第二步:但是即使这样也存在问题。比如一个叫做X的人冒充A,和B进行通信的情况或相反的情景。在双方进行交易的时候,X用自己的公钥加密,给B发送“以本月30日为期限,希望给某某银行活期账户内存入300万元货款”为内容的密文,B以为该密文是从A处发出的,就将300万元汇入指定的账户,这样B就被X巧妙地欺骗了。这种情况很有可能发生。为了防止这种事情的发生,A就必须让B确信发给B的密文确实是由A发出的。我们知道非对称公钥加密方式的一个最重要的特点就是,如果用私钥加密的数据,只有用与其配对的公钥才能解开,如果私钥不公开而只保存在所有者手中,那么用某个人的公钥能够解开的密文就一定是他发出的。所以,我们可以考虑用A的私钥将文件加密,为了保证其他可能拿到A的公钥的人不能破解电文,再用B的公钥加密传送给B,这样B就能够肯定电子信件是由A发出的,而且文件是安全加密的了。

第三步:然而即使是这样,还是有问题。为什么呢?因为现实当中,这样的做法是不可行的。我们知道,虽然公钥算法的保密性好,但是他的致命弱点就是速度慢,与前面提到的对称式加密算法比起来速度要慢得多。例如DES加密,如果用软件来实现,它的加密速度是非对称式公钥加密的100倍,如果要是使用加密机等硬件设备,速度则要达到1000倍左右。这样,我们就可以考虑一个更加有效的加密方式,即用对称式密钥对明文进行加密,再将加密明文的密钥用A的私钥加密,把加密的密钥与加密的密文做成一个文件传送给接受方B,这样,加密传输的效率就大大提高了。但是,必须注意的是这样的流程只能提高信息传送的机密性,而不能解决第二步中提到的验证发信人身份的问题。而且,这其中还隐含着一个更大的问题,即数据的完整性校验的问题。如果,A发给B的信件途中被人截获,即使不能破译,但是却可以篡改,破坏文件。而B在接到A的电子文件时,却没有办法来验证电文是否被其他人改动过。

从前面的分析我们可以看到,到目前为止,技术解决方案还是不能解决互联网数据传输的所有问题。但是,在数学上我们已经有了很好的办法。有一个叫做散列函数(HARSH函数)的数学工具,它是一个所谓的单向函数。即它可以把不定长的数据组变成一个固定长度的简单的表达式,而且,任何两个不同的数据组的散列函数值重复的可能性非常之小,可以认为是不可能的。这样,如果我们使用散列算法时,信息如果有非常小的改动,那么也会产生完全不同的散列(我们称之为校验值),而且这个校验值实际上是不可以逆推的。现在,已经开发出的比较著名的散列算法有RonaldRivest发明的MD2,MD4和MD5等等,其中,最广为使用的是MD5算法。

第四步:有了散列算法这样一个很好的工具,我们就可以结合公钥加密算法的特点设计出一个非常好的加密机制。我们用发送人A的私钥将他要发送的明文的散列函数值加密,将其与明文一起做成一个文件传送给B。这样B在接到文件时,用A的公钥将加密的散列函数值解密,另外,B对A传送过来的明文再次进行散列函数求值,如果两个结果一致,就说明数据在传输过程当中没有被篡改。同时,因为用A的公钥解密的文件一定是用A的私钥加密的,所以B也可以确定数据确实是从A发出的。这个机制就是电子签名。因为它解决了对数据完整性的校验以及发送方的身份确认的难题,电子签名的流程如图12—6所示。所以说,电子签名是电子商务、电子政务的一个非常重要的技术基础。

第五步:有了电子签名的手段,我们的技术方案就逐渐成熟。电子签名加上公钥与对称式加密的组合加密手段,我们就可以从技术上解决数据信息在互联网上传输时的数据的完整性、机密性、不可否认性的问题.

非对称公钥加密方式如何建立一个基于互联网的信任体系? 免费邮件订阅: 邮件订阅

图片推荐

热点排行榜

CopyRight? 2013 www.cangfengzhe.com All rights reserved