签名 验签

现在国内网银基本上用的都是公钥解密,私钥签名加密。
不对称加密。

银行U盾签名验签的过程是:

1.申请U盾,银行核实信息,并将相关信息绑定U盾,再将U盾(内含私钥、公钥)下发给用户。
银行保留证书的公钥信息或用户自行将公钥证书导入到银行服务器中,并与用户绑定。
2.用户在网银做交易,和银行之间交互的业务数据请求称为报文原文,用户使用U盾签名,用私钥将报文原文加密,
并将加密后的密文和原文一起发送到银行。
3.银行的验签服务器收到信息后,根据原文及用户信息,找到用户的公钥,再根据公钥,密文,原文去验证签名是否正确(用公钥解密,并与原文比较),验证通过则继续这次交易,验证不通过将认定为不合规交易,终止交易。
银行通过数字签名保证了数据的完整性和安全性(任何修改原文或密文的行为会导致验签不通过),同时也保证了交易的来源确定性,私钥只有U盾持有者有。

原文进行hash,得到hash值,个人用自己的私钥对hash值加密得到一个签名值,
将自己的原文,签名值,公钥证书发送给银行,
银行用根证书验证对方的公钥证书是否有效,
有效取出公钥证书中的公钥来,
将个人发来的签名值进行解密,
得到hash值,将原文进行hash得到一个hash值,进行对比

RSA签名和验签过程
1.签名过程:
client提取消息m的消息摘要h(m),并使用自己的私钥对摘要h(m)进行加密,生成签名s。
client将签名s和消息m一起,使用server发过来的公钥进行加密,获得密文c,发送给server。
2.验签过程:
server接受到密文后,用自己的私钥对其解密,获得明文消息m和签名s。
server使用client的公钥解密数字签名s,获得消息摘要h(m)。
server使用相同的方法提取消息m的消息摘要h(m)与上一步解密得到的h(m)进行比较,如果相同则验签成功。

https://blog.csdn.net/zju_bigjar/article/details/51271410

猜你喜欢

转载自blog.csdn.net/wowocpp/article/details/80390498
今日推荐