银联接口的一些加密方式

这两天把一个银联在线刷卡消费的接口搞定了。呵呵,下面总结下从这个小项目上了解的一些知识。呵呵。

随着计算机网络及因特网技术的飞速发展,为了降低成本、提高效率、拓展新的市场领域和改善服务质量,越来越多企业、商户及金融机构纷纷将他们的传统业务逐渐地向网上迁移。因特网已不仅仅是一个单纯的信息交换网络,已逐渐发展为一个全球性的商务网络,所以网络安全必然是人们关注的焦点。网络安全就是运用各种技术手段,解决如下四个方面的问题:

l  私有性-保证通信信息在网络传输过程中不能被第三方窃听者破译;

l  完整性-接受方能检测出信息在网络传输过程中是否被篡改;

l  确认性-接受方能有效地对信息发送方的身份进行认证;

l  不可否认性-接受方一旦接受到发送方的有效信息,发送在事后无法予以抵赖。

针对上述问题,现代密码学给出了完整的答案。其中加密算法解决了信息的私有性,摘要算法用于数据完整性检查, 而签名算法实现了信息来源的认证及防止发送方的事后抵赖。现代密码学主要分为公钥密码体系和隐秘钥密码体系。

1.      公钥密码体系(Public-key Cryptography)

公钥密码体系,又称非对称密码体系。它使用二个密钥,一个用于加密信息,另一个用于解密信息。 这二个密钥间满足一定数学关系,以至用二个密钥中的任何一个加密的数据,只能用另外一个进行数据解密。每个用户拥有二个密钥,一个被称之为公钥,另一个被称之为私钥,并将公钥分发给其它用户。由于这二个密钥间的数学关系, 任何收到该用户公钥的其它用户可以保证发送用此公钥进行加密的数据只有该用户用自己的私钥才能进行解密。 当然此项保证是建立在用户私钥的私有性基础之上。目前最著名的公钥密码算法为RSA算法,它是由RivestShamirAdleman共同发明的。见图示:

 


2.      隐秘钥密码体系(Secret-key Cryptography)

 隐秘钥密码体系,又称对称密码体系。它是一种使用同一个密钥进行数据加密和数据解密的技术,该密钥被称之为隐秘钥(Secret-key)。一对用户共享一个隐秘钥,并确保该密钥的私有性控制在他们之间。用一个隐秘钥进行加密的数据只能使用相同的密钥进行解密。目前使用最广泛的为DES(Data Encryption Standard)3DES等算法,这些算法为美国联邦数据安全标准。见图示:

 

3.      摘要算法

 摘要算法是一种方法,它将一个任意长度的数据变换为一个定长的数据串,这一定长的数据串被称为消息摘要,也有数据指纹之称。合格的摘要算法必须满足下列条件:

找出具有相同摘要的消息集合在技术上是不可能的;

对一给定的消息摘要,反向计算出消息本身在技术上是不可行的。

数据发送方在数据发送前,首先用摘要算法对数据计算消息摘要,然后将数据和消息摘要一起发送给接受方。接受方用相同的摘要算法对数据重新计算消息摘要,通过对二个消息摘要的比较,可以明确地判断出数据在传输过程中是否被篡改。结果相同表示数据未被修改,而结果不同表明数据被修改或数据被丢失,从而保证数据在传输过程中的完整性。常用的摘要算法有MD2MD5,它是由RSA实验室发明的,具体算法请参阅RFC1319RFC1321 见图示:

 

4.      数字签名

 数字签名实际上是非对称密码算法和消息摘要算法的一种组合应用,其目的在于:如某人张三对一段消息进行了数字签名,那么其它的人都能验证这个签名确实是张三签的,同时也能验证张三签名后数据是否被篡改。下面的例子将详细介绍Alice如何对一份合同M进行数字签名,同时Bob又是如何来验证她所签的合同。见图示:

 

l  Alice准备了一份合同M

l  Alice用摘要算法计算出该合同M的消息摘要MD

l  Alice用非对称算法和自己的私钥对合同消息摘要MD进行加密,该密文S就是合同的数字签名;

l  Alice将合同M和合同的数字签名S合并在一起,通过网络传送到合同的接受者Bob

l  Bob收到Alice的合同M及合同的数字签名S

l  BobAlice的公钥对合同签名S进行解密,得到Alice计算的合同摘要MD

l  Bob采用相同摘要算法对收到的合同重新计算消息摘要MD'

l  Bob比较MDMD'是否相等?

l  如结果相等,根据摘要算法的特性表明合同在传输过程中未被篡改。同时由于非对称加密算法的特性可以断定合同确实是Alice发送的,因为用Alice公钥能解密成功的数据只有Alice用她自己私钥对其进行加密才能产生,而她的私钥其它人是无法获取的。

5.      数字信封

数字信封是一种非对称密码算法和对称密码算法组合应用,用于通信双方间的安全文件交换。下面的例子将详细介绍Alice如何利用数字信封将合同安全地传送给Bob。见图示:

 

l  Alice准备了一份合同M

l  Alice生成一个随机数;

l  Alice选用该随机数作为密钥对合同M进行对称加密,生成密文合同;

l  Alice选用Bob公钥对随机数进行非对称加密,生成信封;

l  Alice将密文合同和信封一起发送给Bob

l  Bob接受Alice发送的密文合同和信封;

l  Bob选用自己的私钥对信封进行解密,得到对称密钥(随机数)

l  Bob使用该对称密钥(随机数)对密文合同进行解密,得到合同M

以上是常用的常用的加密算法,对这些加密算法有所了解,在处理接口通讯时,会更轻松一些。呵呵 

原文地址:https://www.cnblogs.com/angleSJW/p/1862440.html