rsa 加密算法是什么:支付中的加密 解密算法
rsa 加密算法是什么:支付中的加密 解密算法(4)乙接收返回的数据,并使用自己的私钥解密。(3)甲将处理后的结果数据使用乙的公钥加密,并返回给乙。有了密钥之后,就可以对传输的数据进行加密了。数据传输是双向的,所以支付行业传输数据的加密/解密也是双向的,具体步骤如下:(1)乙使用甲的公钥加密要传输的数据,并把数据上送给甲。(2)甲接收数据,使用自己的私钥解密。
目前常用的加密/解密算法主要有两类:对称加密算法和非对称加密算法。两者的主要区别在于加密和解密的密钥是否一致,一致的就是对称加密,不一致的就是非对称加密。对称加密常用的是AES加密算法,非对称加密常用的是RSA加密算法。下面分别介绍RSA加密算法和AES加密算法在支付中的应用。
RSA是一种非对称加密算法,可以在不传递密钥的情况下完成解密,避免了对称加密直接传递密钥所造成的被破解的风险。RSA加密/解密由一对密钥(公钥和私钥)共同完成,公钥是公开的,用来加密,私钥是保密的,用来解密。两者之间通过一定的算法关联,最核心的思想是利用对一极大整数做因数分解的困难性来保证安全性。
1. RSA加密过程
假设甲是支付机构,乙是支付机构的商户,甲乙之间需要进行数据的传输。如果要对数据进行加密/解密,则需要先生成密钥:甲生成一对密钥(公钥和私钥),公钥给乙,私钥自己保留。同样乙也生成一对公钥和私钥,公钥给甲,私钥自己保留。具体过程如图2-6所示。
有了密钥之后,就可以对传输的数据进行加密了。数据传输是双向的,所以支付行业传输数据的加密/解密也是双向的,具体步骤如下:
(1)乙使用甲的公钥加密要传输的数据,并把数据上送给甲。
(2)甲接收数据,使用自己的私钥解密。
(3)甲将处理后的结果数据使用乙的公钥加密,并返回给乙。
(4)乙接收返回的数据,并使用自己的私钥解密。
以上步骤是一个支付机构比较标准的加密/解密流程。甲乙双方分别使用对方的公钥加密,使用自己的私钥解密,具体流程如图2-7所示。
2.AES加密/解密
AES是一种经典的对称加密/解密算法,使用加密函数和密钥来完成对明文的加密,然后使用相同的密钥和对应的函数来完成解密。AES的优点在于效率非常高,相比RSA要高得多。AES的加密/解密过程如图2-8所示。
AES的加密和解密需要借助密钥,密钥是提前生成的,支付机构根据一定的规则生成密钥之后,传输给商户,商户上送数据需要使用密钥进行加密,支付机构收到密文之后使用相同的密钥进行解密。
在支付领域,考虑到对安全性和高效性的要求,通常不会只采用一种加密算法,而是采用多种加密算法组合加密的方式。RSA加密算法虽然安全,但是计算量非常大,效率比较低,在高并发的情况下会面临严重的性能问题。AES加密的密钥key在网络传输中有被拦截的风险,存在很大的安全隐患。所以通常的办法是使用RSA来加密AES的密钥,使用AES来对报文进行加密。
内容摘自《支付架构实战》,作者苏博亚,支付领域资深技术专家,在支付行业深耕十余年,先后在随行付支付有限公司、美团、有赞科技从事支付业务的开发、设计、架构工作。获得认证:
PMP(项目管理人士资格认证)
OCP(Oracle数据库认证专家)