PKI基础[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 shybt 的 blog

pki基础

一.前言

  全球经济发展正在进入信息经济时代,知识经济初见端倪。作为二十一世纪的主要经济增长方式--电子商务,将给各国和世界经济带来巨大的变革,产生深远的影响。电子商务通过大幅度降低交易成本,增加贸易机会,简化贸易流程,提高贸易效率;电子商务提高生产力,改善物流系统,并推动企业和国民经济结构的改革。对电子商务的关注和投入可以发展新兴产业,创造就业机会,推动国家和全球经济的发展。电子商务是一个新兴市场,而且是一种替代传统商务活动的新形式。它有可能彻底改变贸易活动的本质,形成一套全新的贸易活动框架。但如何保证internet网上信息传输的安全,是发展电子商务的重要环节。

  为解决internet的安全问题,世界各国对其进行了多年的研究,初步形成了一套完整的internet安全解决方案,即目前被广泛采用的pki技术(public key infrastructure-公钥基础设施),pki(公钥基础设施)技术采用证书管理公钥,通过第三方的可信任机构--认证中心ca(certificate authority),把用户的公钥和用户的其他标识信息(如名称、e-mail、身份证号等)捆绑在一起,在internet网上验证用户的身份。目前,通用的办法是采用建立在pki基础之上的数字证书,通过把要传输的数字信息进行加密和签名,保证信息传输的机密性、真实性、完整性和不可否认性,从而保证信息的安全传输。

二、pki基础

  pki基础设施采用证书管理公钥,通过第三方的可信任机构--认证中心,把用户的公钥和用户的其他标识信息捆绑在一起,在internet网上验证用户的身份。pki基础设施把公钥密码和对称密码结合起来,在internet网上实现密钥的自动管理,保证网上数据的安全传输。
  从广义上讲,所有提供公钥加密和数字签名服务的系统,都可叫做pki系统,pki的主要目的是通过自动管理密钥和证书,可以为用户建立起一个安全的网络运行环境,使用户可以在多种应用环境下方便的使用加密和数字签名技术,从而保证网上数据的机密性、完整性、有效性,数据的机密性是指数据在传输过程中,不能被非授权者偷看;数据的完整性是指数据在传输过程中不能被非法篡改;数据的有效性是指数据不能被否认。一个有效的pki系统必须是安全的和透明的,用户在获得加密和数字签名服务时,不需要详细地了解pki是怎样管理证书和密钥的,一个典型、完整、有效的pki应用系统至少应具有以下部分:

        公钥密码证书管理。
        黑名单的发布和管理。
        密钥的备份和恢复。
        自动更新密钥。
        自动管理历史密钥。
        支持交叉认证。

  由于pki基础设施是目前比较成熟、完善的internet网络安全解决方案,国外的一些大的网络安全公司纷纷推出一系列的基于pki的网络安全产品,如美国的verisign, ibm ,加拿大的entrust、sun等安全产品供应商为用户提供了一系列的客户端和服务器端的安全产品,为电子商务的发展以及政府办公网、edi等提供了安全保证。简言之,pki(public key infrastructure)公钥基础设施就是提供公钥加密和数字签名服务的系统,目的是为了管理密钥和证书,保证网上数字信息传输的机密性、真实性、完整性和不可否认性。

1.单钥密码算法(加密)

  单钥密码算法,又称对称密码算法:是指加密密钥和解密密钥为同一密钥的密码算法。因此,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码)。在对称密钥密码算法中,加密运算与解密运算使用同样的密钥。通常,使用的加密算法比较简便高效,密钥简短,破译极其困难;由于系统的保密性主要取决于密钥的安全性,所以,在公开的计算机网络上安全地传送和保管密钥是一个严峻的问题。最典型的是des(data encryption standard)算法。

  des(data encryption standard,数据加密标准)算法,它是一个分组加密算法,它以64 bit位(8 byte)为分组对数据加密,其中有8 bit奇偶校验,有效密钥长度为56 bit。64位一组的明文从算法的一端输入,64位的密文从另一端输出。des是一个对称算法,加密和解密用的是同一算法。des的安全性依赖于所用的密钥。

  密钥的长度为56位。(密钥通常表示为64位的数,但每个第8位都用作奇偶校验,可以忽略。)密钥可以是任意的56位的数,且可以在任意的时候改变。其中极少量的数被认为是弱密钥,但能容易地避开它们。所有的保密性依赖于密钥。简单地说,算法只不过是加密的两个基本技术--混乱和扩散的组合。des基本组建分组是这些技术的一个组合(先代替后置换),它基于密钥作用于明文,这是众所周知的轮(round)。des有16轮,这意味着要在明文分组上16次实施相同的组合技术。此算法只使用了标准的算术和逻辑运算,而其作用的数也最多只有64位。

  des对64位的明文分组进行操作,通过一个初始置换,将明文分组分成左半部分和右半部分,各32位长。然后进行16轮完全相同的运算,这些运算被称为函数f,在运算过程中数据与密钥结合。经过16轮后,左、右半部分合在一起经过一个末置换(初始置换的逆置换),这样该算法就完成了。在每一轮中,密钥位移位,然后再丛密钥的56位中选出48位。通过一个扩展置换将数据的右半部分扩展成48位,并通过一个异或操作与48位密钥结合,通过8个s盒将这48位替代成新的32位数据,再将其置换一次。这四步运算构成了函数f。然后,通过另一个异或运算,函数f输出与左半部分结合,其结果即成为新的右半部分,原来的右半部分成为新的左半部分。将该操作重复16次,便实现了des的16轮运算。

  假设bi是第i次迭代的结果,li和ri是bi的左半部分和右半部分,ki是第i轮的48位密钥,且f是实现代替、置换及密钥异或等运算的函数,那么每一轮就是:

2.双钥密码算法(加密、签名)

  双钥密码算法,又称公钥密码算法:是指加密密钥和解密密钥为两个不同密钥的密码算法。公钥密码算法不同于单钥密码算法,它使用了一对密钥:一个用于加密信息,另一个则用于解密信息,通信双方无需事先交换密钥就可进行保密通信。其中加密密钥不同于解密密钥,加密密钥公之于众,谁都可以用;解密密钥只有解密人自己知道。这两个密钥之间存在着相互依存关系:即用其中任一个密钥加密的信息只能用另一个密钥进行解密。若以公钥作为加密密钥,以用户专用密钥(私钥)作为解密密钥,则可实现多个用户加密的信息只能由一个用户解读;反之,以用户私钥作为加密密钥而以公钥作为解密密钥,则可实现由一个用户加密的信息而多个用户解读。前者可用于数字加密,后者可用于数字签名。

  在通过网络传输信息时,公钥密码算法体现出了单密钥加密算法不可替代的优越性。对于参加电子交易的商户来说,希望通过公开网络与成千上万的客户进行交易。若使用对称密码,则每个客户都需要由商户直接分配一个密码,并且密码的传输必须通过一个单独的安全通道。相反,在公钥密码算法中,同一个商户只需自己产生一对密钥,并且将公开钥对外公开。客户只需用商户的公开钥加密信息,就可以保证将信息安全地传送给商户。

  公钥密码算法中的密钥依据性质划分,可分为公钥和私钥两种。用户产生一对密钥,将其中的一个向外界公开,称为公钥;另一个则自己保留,称为私钥。凡是获悉用户公钥的任何人若想向用户传送信息,只需用用户的公钥对信息加密,将信息密文传送给用户便可。因为公钥与私钥之间存在的依存关系,在用户安全保存私钥的前提下,只有用户本身才能解密该信息,任何未受用户授权的人包括信息的发送者都无法将此信息解密。

  rsa公钥密码算法是一种公认十分安全的公钥密码算法。它的命名取自三个创始人:rivest、shamir和adelman。rsa公钥密码算法是目前网络上进行保密通信和数字签名的最有效的安全算法。rsa算法的安全性基于数论中大素数分解的困难性,所以,rsa需采用足够大的整数。因子分解越困难,密码就越难以破译,加密强度就越高。

  rsa既能用于加密又能用于数字签名,在已提出的公开密钥算法中,rsa最容易理解和实现的,这个算法也是最流行的。rsa的安全基于大数分解的难度。其公开密钥和私人密钥是一对大素数(100到200个十进制数或更大)的函数。从一个公开密钥和密文中恢复出明文的难度等价于分解两个大素数之积。为了产生两个密钥,选取两个大素数,p和q。为了获得最大程度的安全性,两数的长度一样。计算乘积: ,然后随机选取加密密钥e,使e和(p-1)(q-1)互素。最后用欧几里得扩展算法计算解密密钥d,以满足

则,注意:d和n也互素。e和n是公开密钥,d是私人密钥。两个素数p和q不再需要,它们应该被舍弃,但绝不可泄露。

  加密消息m时,首先将它分成比n小的数据分组(采用二进制数,选取小于n的2的最大次幂),也就是说,p和q为100位的素数,那么n将有200位,每个消息分组 应小于200位长。加密后的密文c,将由相同长度的分组 组成。加密公式简化为

本文关键:PKI 密码算法 加密 签名 公开密钥数字签名算法 认证中心
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top