SET(Security Electronic Transaction)Protocol 安全电子交易协议
SET协议里面的一个重要技术(策略) - 双重数字签名
应用位置:
持卡人(C)在确定了订单和交易信息之后,将订单信息(OI)和交易信息(PI),发送给商家(M),商家(M)获取里面的订单信息(OI),然后将订单信息(OI)和交易信息(PI)转发到银行,银行获取里面的交易信息(PI)。
目的:
将订单信息(OI)和交易信息(PI)发送给商家(M),只希望商家(M)只能获取到里面的订单信息(OI)而不能获取交易信息(PI),因为用户的银行账户和密码存放在里面。而由商家将信息转发给银行时,希望银行只能获取交易信息(PI)和部分订单信息,而不能得到用户具体的订单信息(OI)。
双重数字签名产生步骤:
(1)持卡人(C)通过Hash算法分别生成订购信息(OI)和支付信息(PI)的消息摘要H(OI)和H(PI)。
(2)把消息摘要H(OI)和H(P1)连接起来得到消息OP。
(3)通过Hash算法生成OP的消息摘要H(OP)。
(4)持卡人(C)使用自己的私钥签名H(OP)得到双重数字签名Sign(H(OP))。
(5)持卡人(C)将消息(OI,H(PI),Sign(H(OP)))用商家的公钥加密后发送给商家,将消息(PI,H(OI),Sign(H(OP)))用银行的公钥加密后发送给银行。
双重数字签名验证步骤:
(1)商家(M)将收到的消息((OI,H(PI),Sign(H(OP))))用自己的私钥解密后,将消息OI生成消息摘要H(OI);同样银行将收到的消息((PI,H(OI),Sign(H(OP))))用自己的私钥解密后,将消息PI生成消息摘要H(PI)。
(2)商家(M)将生成的消息摘要H(OI)和接收到的消息摘要H(PI)连接成新的消息OP1;银行将生成的消息摘要H(PI)和接收到的消息摘要H(OI)连接成新的消息OP2。
(3)商家将消息OP1生成消息摘要H(OP1);银行将消息OP2生成消息摘要H(OP2)。
(4)商家和银行均用持卡人的公共密钥解密收到的双重数字签名Sign(H(OP))得到H(OP)。
(5)商家将H(OP1)和H(OP)进行比较,银行将H(OP2)和H(OP)进行比较,若相同,则证明商家和银行所接收到的消息是完整有效的。
经过这样处理后,商家就只能看到订购信息(OI),而看不到持卡人的支付信息(PI);同样银行只能看到持卡人的支付信息(PI),而看不到持卡人的订购信息(OI)。
参考论文:电子商务中安全协议的研究—SET协议的完善与改进(作者:童光才,重庆大学)