公开密钥加密法是针对私有密钥加密法的缺点而提出来的,是电子商务应用的核心密码技术。
公开密钥加密特点:
所谓公开密钥加密,就是指在计算机网络上甲、乙两用户之间进行通信时,发送方甲为了保护要传输的明文信息不被第三方窃取,采用密钥A对信息进行加密而形成密文M并发送给接收方乙,接收方乙用另一把密钥B对收到的密文M进行解密,得到明文信息完密文通信目的的方法。由于密钥A、密钥B这两把密钥中其中一把为用户私有,另一把对网络上的大众用户是公开的,所以这种信息加密传输方式,就称为公开密钥加密法。与私有(对称)密钥加密法的加密和解密用同一把密钥的原理不同,公开密钥加密法的加密与解密所用密钥是不同的,不对称,所以公开私有密钥加密法又称为非对称密钥加密法。
公开密钥加密原理:
借助密钥生成程序生产密钥A与密钥B,这两把密钥在数学上相关,对称作密钥对。用密钥对其中任何一个密钥加密时,可以用另一个密钥解密,而且只能用此密钥对其中的另一个密钥解密。
在实际应用中,某商家可以把生成的密钥A与密钥B做一个约定,将其中一把密钥如密钥A保存好,只有商家自己知道并使用,不与别人共享,叫作私人密钥;将另一把密钥即密钥B则通过网络公开散发出去,谁都可以获取一把并能应用,属于公开的共享密钥,叫做公开密钥。
如果一个人选择并公布了他的公钥,其他任何人都可以用这一公钥来加密传送给那个人的消息。私钥是秘密保存的,只有私钥的所有者才能利用私钥对密文进行解密,而且非法用户几乎不可能从公钥推导出私钥。存在下面两种应用情况:一是任何一个收到商家密钥B 的客户,都可以用此密钥B 加密信息,发送给这个商家,那么这些加密信息就只能被这个商家的私人密钥A解密,实现保密性。二是商家利用自己的私人密钥A对要发送的信息进行加密进成密文信息,发送给商业合作伙伴,那么这个加密信息就只能被公开密钥B解密。这样,由于只能应用公开密钥B解密,根据数学相关关系可以断定密文的形成一定是运用了私人密钥A进行加密的结果,而私人密钥A只有商家拥有,由此可以断定网上收到的密文一定是拥有私人密钥A的商家发送的。
公开密钥加密应用实例:
具体到电子商务,很多环节要用到公开密钥加密法,例如在网络银行客户与银行进行资金的支付结算操作时,就涉及大量的资金流信息的安全传输与交换。
以客户甲与乙网络银行的资金信息传输为例,来描述应用公开密钥加密法在两种情况下的使用过程。首先,网络银行乙通过公开密钥加密法的密钥生成程序,生成自己的私人密钥A与公开密钥B并数学相关,私人密钥A由网络银行乙自己独自保存,而公开密钥B已经通过网络某种应用形式(如数字证书)分发给网络银行的众多客户,当然客户甲也拥有一把网络银行乙的公开密钥B。
1、客户甲传送一“支付通知”给网络银行乙,要求“支付通知”在传送中是密文文件,并且只能由网络银行乙解密知晓,从而实现了定点保密通信。客户甲利用获得的公开密钥B 在本地对“支付通知”明文文件加密,形成“支付通知”密文,通过网络将密文文件传输给网络银行乙。网络银行乙收到“支付通知”密文文件后,发现只能用自己的私人密钥A进行解密形成“支付通知”明文文件,断定只有自己知晓“支付通知”的内容,的确是发给自己的。
2、网络银行乙在按照收到的“支付通知”指令完成支付转账服务后,必须回送客户甲“支付确认”,客户甲在收到“支付确认”后,断定只能是网络银行乙发来的,而不是别人假冒的,将来可作支付凭证,从而实现对网络银行业务行为的认证,网络银行不能随意否认或抵赖。网络用户乙在按照客户甲的要求完成相关资金转账后,准备一个“支付确认”明文文件,在本地利用自己的私人密钥A对“支付确认”明文文件加密,形成“支付确认”密文文件,通过网络将密文传输给客户甲。客户甲收到“支付确认”密文后,虽然自己有许多密钥,有自己的,也有别人的,却发现只能用获得的网络银行乙的公开密钥B进行解密,形成“支付确认”明文,由于公开密钥B只能解密由私人密钥A加密的密文,而私人密钥A只有网络银行乙所有,因此客户甲断定这个“支付确认”只能是网络银行乙发来的,不是别人假冒的,可作支付完成的凭证。
公开密钥加密的优缺点:
公开密钥加密的优点:
1、可以在不安全的媒体上通信双方交换信息,不需共享通用密钥,用于解密的私钥不需发往任何地方,公钥在传递与发布过程中即使被截获,由于没有与公钥相匹配的私钥,截获公钥也没有意义。
2、能够解决信息的否认与抵赖问题,身份认证较为方便。
3、密钥分配简单,公开密钥可以像电话号码一样,告诉每一个网络成员,商业伙伴需要好好保管的只是一个私人密钥,而且密钥的保存量比起私人密钥加密少得多,管理较为方便。
公开密钥加密的缺点:
公开密钥加密最大缺点就在于它的加解密速度。
小知识之密码技术:
密码学是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。