Part1:NCR RKT技术之(基于NDC)--RSA算法在RKT中的应用
来源:互联网 发布:nginx openresty 编辑:程序博客网 时间:2024/06/05 05:38
一 RSA算法描述
RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
RSA的算法涉及三个参数,n、e1、e2:
l 其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。
l e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求 (e2*e1)mod((p-1)*(q-1))=1。 (n及e1),(n及e2)就是密钥对。
l RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1 mod n;B=A^e2 mod n;
e1和e2可以互换使用,即: A=B^e2 mod n;B=A^e1 mod n;
结论: 使用RSA算法加密/解密数据,需按照上述步骤生成一对密钥,如(n,e1)和(n,e2),待加密数据可以任取密钥对中的一个密钥对其加密形成密文,对密文解密时使用密钥对中另外一个密钥进行解密.
由于RSA算法的上述特性,在实际应用中,可以把生成的两个密钥交给两个人进行保管,每个人保管
密钥对中一个密钥,从而可以让一个人对数据加密,而另一个人对数据解密.
RKM技术正是采用了RSA的这个特性保证了密钥交换和加解密过程的安全性.
二 RSA算法应用场景
2.1 数据加密
您向朋友传送加密数据,您希望只有您的朋友可以解密,这样的话,您需要首先获取您朋友的密钥对中公开的那一个密钥,(e,n)。然后用这个公开密钥进行加密,这样密文只有您的朋友可以解密,因为对应的私钥只有您朋友拥有。
2.2 数字签名
您向朋友传送一段数据附加您的数字签名,您需要对您的数据进行MD5之类的运算以取得数据的"指纹",再对"指纹"进行加密,加密将使用您自己的密钥对中的不公开的私钥。您的朋友收到数据后,用同样的运算获得数据指纹,再用您的公钥对加密指纹进行解密,比较解密结果与他自己计算出来的指纹是否一致,即可确定数据是否的确是您发送的、以及在传输过程中是否被篡改。
三 RSA算法在RKM中的应用
3.1 HSM Public Key/HSM private Key
该密钥对由HSM(Host Security Module)生成和拥有,主要用于签名消息.
Host: 当host的发送消息给terminal时,host采用SHA(Secure Hashing Algorithm)算法获取该消息的一个ID序列,然后host用HSM private key对ID序列进行加密后得到签名数据,最后host将签名数据附加到消息发送给terminal.
terminal: 当消息被接受到时,terminal采用HSM public key对签名数据进行解密,然后terminal得到解密数据和原始消息的SHA计算值进行比对,如果没有差别,说明签名正确,表示消息来自拥有HSM private key 的terminal,数据没有被伪造.
terminal采用公钥交换消息获取host的HSM public key.
3.2 EPP Public Key/Epp private Key
该密钥对由EPP拥有.主要用于加密解密消息.
Host: Host使用Epp public key 对消息进行加密.
Terminal: EPP使用Epp private key对消息进行解密,确保没有Epp private key的EPP不能解密消息.
Host在采用密钥交换消息获取EPP的的Epp public key.
3.3 厂商密钥对(如:NCR Public Key/NCR Private Key)
厂商密钥对由不同厂商提供和拥有,主要用于对HSM public key和Epp Public key 进行签名,确保EPP由厂商提供且不能被仿造。
实际过程中,厂商通过邮件之类的方式拿到银行的HSM Public Key后,用厂商私钥对HSM Public Key进行签名,然后把厂商公钥及HSM Public Key的签名发回银行,并导入到HSM模块;同时,厂商对 Epp public key用厂商私钥进行签名并一起保存到EPP。
上述过程完成后,在公钥交换过程中,当host发送HSM public key 时,把HSM public key的厂商签名一起下发,EPP采用厂商公钥解密签名后校验厂商的签名是否正确,确保EPP不被仿制.
terminal发送EPP public key时,把EPP public key的厂商签名一起发送,host使用厂商公钥对签名解密后校验厂商的签名是否正确,确保EPP不被仿制.
- Part1:NCR RKT技术之(基于NDC)--RSA算法在RKT中的应用
- Part3:WN RKT技术之(基于NDC)--RSA算法在RKT中的应用
- Part2:NCR RKT( 基于NDC)完整解决方案--NCR RKT流程
- Kubernetes 容器之rkt
- CoreOS那些事之Rkt容器尝鲜
- RSA算法原理及其在HTTPS中的应用
- rkt 1.18.0 发布,CoreOS 的容器引擎
- 重磅 | Docker捐出containerd,CoreOS捐出rkt
- rktlet初长成,rkt CRI带你飞
- rktlet初长成,rkt CRI带你飞
- UML技术在基于Web的应用系统中的应用
- RSA加密算法详解以及RSA在laravel中的应用
- 力控®基于GPRS技术在小区供热中的应用
- 力控®基于GPRS技术在小区供热中的应用
- 基于java的数字签名技术在电子政务中的应用
- OpenSSL应用之公钥算法RSA
- java中RSA,AES,MD5算法在实际项目中的综合应用
- Unity3d之A*算法在游戏中的应用(一)
- sql语句查询过慢的原因分析
- JSON(JavaScript Object Notation)内容详解(Android操作JSON)
- SQL匹配多字段进行排序,搜索
- SQL Server 2005异地备份
- VC中分割字符串的AfxExtractSubString函数
- Part1:NCR RKT技术之(基于NDC)--RSA算法在RKT中的应用
- listView -----------> scroll to specifyed
- 如何让你Swing程序不卡死?
- XNA那些事(八)-WINDOWS PHONE游戏中的摄像机全总结
- 显示游标
- Part2:NCR RKT( 基于NDC)完整解决方案--NCR RKT流程
- AudioTrack实例代码 C++代码
- sizeof数据对齐问题
- 关于定时任务的一点思考(二)