一种高效的安全虚拟预支付方法及装置与流程

文档序号:15400417发布日期:2018-09-11 17:22阅读:202来源:国知局

本发明涉及通信装置中的数字货币支付技术领域,特别是涉及一种高效的安全虚拟预支付方法及装置。



背景技术:

随着互联网技术以及电子商务的快速发展,电子商务作为一种重要的支付手段,在生活中起到了日益重要的作用。

当前的电子支付装置存在的问题。首先,电子支付装置需要付款方、收款方和银行同时在线才能进行支付,然而在偏远地区或地质灾害造成通信基础设施破坏时极不方便;第二,市场充值卡和预付卡要求消费者预先充值,该过程容易导致服务不兑现、商家跑路等多种问题;第三,当前电子支付不支持常见的细粒度支付服务,例如微信打赏、红包、付费阅读、付费电影、小额付费服务;最后,当前的电子支付匿名性差,交易记录完全暴露在第三方平台上,容易导致交易信息泄漏问题。

现有技术中,基于区块链的类比特支付装置在很大程度上解决了现有电子支付装置的不足。第一,类比特币数字系统使用假名支付,能够在一定程度上保护用户隐私;第二,区块链具有不可篡改性,使得类比特币数字系统上的所有支付都会永久保存而不篡改;第三,区块链系统是分布式的,具有高度的稳定性,任意节点的损坏均不会影响支付系统的稳定运行。

但是类比特币支付系统存在必须在线交易、交易过程缓慢、交易费用较高的问题,现有技术中的基于区块链的数字系统的效率低。

目前,亟需构建一种能够抗伪造、双重花费、超额花费等攻击,无论在线还是离线的状态下都能实现高效的即时支付,而且能保护用户的隐私,支持穿透式监管的电子支付系统,以实现快捷、高效、安全、保密、细粒度的同时,能够降低能耗的支付系统。



技术实现要素:

本发明的目的是提供一种能够降低能耗的高效的安全虚拟预支付方法及装置。

为实现上述目的,本发明提供了如下方案:

一种高效的安全虚拟预支付装置,所述支付系统具体包括:

初始化模块,所述初始化模块用于生成系统公共参数、注册机构的公钥和私钥、支付背书方的公钥和私钥、付款方的公钥和私钥,以及收款方的公钥和私钥;

注册模块,所述注册模块用于系统参与方与注册机构交互生成该参与方的公钥证书;系统参与方是指付款方、支付背书方和收款方;

预置模块,所述预置模块用于收款方设置退款承诺,付款方设置收款方及其退款承诺、锁定金额、付款承诺和截止条件的预置信息;截止条件可以是某个特定事件触发的时间;

验证模块,所述验证模块用于支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证;

支付模块,所述支付模块用于付款方把预付凭证和支付金额对应的秘密传递给收款方;

收款模块,所述收款模块用于收款方验证付款方所传递的预付凭证和支付金额对应的秘密的有效性;

退款模块,所述退款模块用于收款方把退款金额对应的秘密传递给付款方;

回收模块,所述回收模块用于付款方验证收款方所传递的退款金额对应的秘密的有效性;

结算模块,所述结算模块用于支付背书方验证收款方所提交预付凭证和支付金额对应的秘密的有效性,验证付款方所提交退款金额对应的秘密的有效性,并据此分配余额。

可选的,所述实体机构括注册机构、支付背书方、付款方、收款方;每个实体机构的角色都由至少一个实体合作充任。

可选的,所述初始化模块用于根据输入的安全参数,输出系统公共参数,并根据所述系统公共参数,所述实体机构运行各自秘钥生成算法,生成对应的私钥和公钥。

可选的,所述注册模块用于系统参与方向注册机构提交的信息包括参与方的公钥,注册机构输入包括公共参数、注册机构的私钥和系统参与方公钥,输出包括用户公钥证书。

可选的,所述预置模块用于收款方输入退款相关信息包括退款秘密,输出包括退款承诺;付款方输入预付款相关信息包括锁定金额、对应秘密的部分或全部信息,输出包括付款承诺;输入包括付款方的私钥,部分或全部预置信息,如收款方公钥及其退款承诺、锁定金额、付款承诺和截止条件,输出包括一个签名;

所述验证模块用于支付背书方输入包括注册机构的公钥、付款方公钥和公钥证书,输出包括对公钥证书的有效性判断;输入包括付款方公钥、收款方公钥及其退款承诺、锁定金额、付款承诺、截止条件,以及付款方签名,输出包括对付款方签名的有效性判断;如果以上两项输出的判断均为有效签名,则输入包括支付背书方的私钥、付款方公钥、收款方公钥及其退款承诺、锁定金额、付款承诺,以及截止条件的部分或全部信息,输出包括预付凭证,并锁定付款方承诺的相应金额。该预付凭证可以使用常规签名、群签名、盲签名、代理签名、环签名,以增强参与方的匿名性、可追踪性;

所述支付模块用于付款方将包括预付凭证和所支付金额对应的秘密传递给收款方;

所述收款模块用于收款方输入包括支付背书方的公钥、收款方公钥及其退款承诺、锁定金额、付款承诺、截止条件和预付凭证,输出包括对预付凭证的有效性判断;输入包括支付金额和其对应的秘密,输出包括对支付形式的有效性判断;输入包括锁定金额,输出包括对支付金额的有效性判断;如果以上三项均输出有效,则支付被接受,否则支付被拒绝;

所述退款模块用于收款方将退款金额和退款金额对应的秘密传递给付款方;

退款金额对应的秘密传递方式可以是以明文或密文方式传递;

所述回收模块用于付款方输入包括退款金额和其对应的秘密,输出包括对退款形式的有效性判断;输入包括收款金额,输出包括对退款金额的有效性判断;如果以上两项均输出有效,则退款被接受,否则退款被拒绝;

所述结算模块用于支付背书方输入包括支付背书方的公钥、收款方公钥及其退款承诺、锁定金额、付款承诺、截止条件和预付凭证,输出包括对预付凭证的有效性判断;输入包括支付金额和其对应的秘密,输出包括对支付形式的有效性判断;输入包括锁定金额,输出包括对支付金额的有效性判断;输入包括退款金额和其对应的秘密,输出包括对退款形式的有效性判断;输入包括收款金额,输出包括对退款金额的有效性判断;如果以上五项均输出有效,则同意结算,否则拒绝结算。

为了实现上述目的,本发明还提供了如下方案:

一种高效的安全虚拟预支付方法,包括:

生成系统公共参数、注册机构的公钥和私钥、支付背书方的公钥和私钥、付款方的公钥和私钥,以及收款方的公钥和私钥;

系统参与方与注册机构交互生成该参与方的公钥证书;收款方设置退款承诺,付款方设置收款方及其退款承诺、锁定金额、付款承诺和截止条件的预置信息;支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证;付款方把预付凭证和支付金额对应的秘密传递给收款方;收款方验证付款方所传递的预付凭证和支付金额对应的秘密的有效性;收款方把退款金额对应的秘密传递给付款方;付款方验证收款方所传递的退款金额对应的秘密的有效性;支付背书方验证收款方所提交预付凭证和支付金额对应的秘密的有效性,验证付款方所提交退款金额对应的秘密的有效性,并据此分配余额。

可选的,所述实体机构括注册机构、支付背书方、付款方、收款方。

可选的,所述生成系统公共参数、注册机构的公钥和私钥、支付背书方的公钥和私钥、付款方的公钥和私钥,以及收款方的公钥和私钥的步骤包括:输入的安全参数,输出系统公共参数,并根据所述系统公共参数,所述实体机构运行各自秘钥生成算法,生成对应的私钥和公钥。

可选的,所述系统参与方与注册机构交互生成该参与方的公钥证书的步骤包括:系统参与方向注册机构提交的信息包括参与方的公钥,注册机构输入包括公共参数、注册机构的私钥和系统参与方公钥,输出包括用户公钥证书。钥证书的生成可以使用常规签名、群签名,以增强参与方的匿名性、可追踪性。

可选的,所述收款方设置退款承诺,付款方设置收款方及其退款承诺、锁定金额、付款承诺和截止条件的预置信息的步骤包括:收款方输入退款相关信息包括退款秘密,输出包括退款承诺;付款方输入预付款相关信息包括锁定金额、对应秘密的部分或全部信息,输出包括付款承诺;输入包括付款方的私钥,部分或全部预置信息,如收款方公钥及其退款承诺、锁定金额、付款承诺和截止条件,输出包括一个签名。该签名可以使用常规签名、群签名、盲签名、代理签名、环签名,以增强参与方的匿名性、可追踪性;

所述支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证的步骤包括:支付背书方输入包括注册机构的公钥、付款方公钥和公钥证书,输出包括对公钥证书的有效性判断;输入包括付款方公钥、收款方公钥及其退款承诺、锁定金额、付款承诺、截止条件,以及付款方签名,输出包括对付款方签名的有效性判断;如果以上两项输出的判断均为有效签名,则输入包括支付背书方的私钥、付款方公钥、收款方公钥及其退款承诺、锁定金额、付款承诺,以及截止条件的部分或全部信息,输出包括预付凭证,并锁定付款方承诺的相应金额。该预付凭证可以使用常规签名、群签名、盲签名、代理签名、环签名,以增强参与方的匿名性、可追踪性;

所述付款方把预付凭证和支付金额对应的秘密传递给收款方的步骤包括:付款方将包括预付凭证和所支付金额对应的秘密传递给收款方;

所述收款方验证付款方所传递的预付凭证和支付金额对应的秘密的有效性的步骤包括:收款方输入包括支付背书方的公钥、收款方公钥及其退款承诺、锁定金额、付款承诺、截止条件和预付凭证,输出包括对预付凭证的有效性判断;输入包括支付金额和其对应的秘密,输出包括对支付形式的有效性判断;输入包括锁定金额,输出包括对支付金额的有效性判断;如果以上三项均输出有效,则支付被接受,否则支付被拒绝;

所述收款方把退款金额对应的秘密传递给付款方的步骤包括:收款方将退款金额和退款金额对应的秘密传递给付款方;

所述付款方验证收款方所传递的退款金额对应的秘密的有效性的步骤包括:付款方输入包括退款金额和其对应的秘密,输出包括对退款形式的有效性判断;输入包括收款金额,输出包括对退款金额的有效性判断;如果以上两项均输出有效,则退款被接受,否则退款被拒绝;

所述支付背书方验证收款方所提交预付凭证和支付金额对应的秘密的有效性,验证付款方所提交退款金额对应的秘密的有效性,并据此分配余额的步骤包括:支付背书方输入包括支付背书方的公钥、收款方公钥及其退款承诺、锁定金额、付款承诺、截止条件和预付凭证,输出包括对预付凭证的有效性判断;输入包括支付金额和其对应的秘密,输出包括对支付形式的有效性判断;输入包括锁定金额,输出包括对支付金额的有效性判断;输入包括退款金额和其对应的秘密,输出包括对退款形式的有效性判断;输入包括收款金额,输出包括对退款金额的有效性判断;如果以上五项均输出有效,则同意结算,否则拒绝结算。

根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明公开了一种高效的安全虚拟预支付方法及装置,根据所述公共参数运行所述实体机构各自的秘钥生成算法,获得所述实体机构各自的私钥和公钥,根据所述公共参数运行所述实体机构各自的秘钥生成算法,获得所述实体机构各自的私钥和公钥。仅需要付款方参与,付款方和收款方均采用哈希函数的单向函数,提高了支付的效率,降低了能量的损耗,既可以基于去中心化的区块链,又可以基于中心化的装置实现在线或离线情况下高效的支付。

能够抗伪造、双重花费、超额花费的攻击,无论是在线还是离线状态下都能实现高效的即时支付,而且能保护用户隐私,支持穿透式监管。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种安全虚拟预支付系统的组成结构图;

图2为本发明实施例1提供的一种安全虚拟预支付系统与基础密码学工具示意图;

图3为本发明提供的一种安全虚拟预支付系统的结构示意图;

图4为本发明实施例2提供的一种安全虚拟预支付系统与基础密码学工具示意图;

图5为本发明提供的一种安全虚拟预支付装置的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种能够降低耗能的高效的安全虚拟预支付方法及装置。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

一种安全虚拟预支付装置,所述支付系统具体包括:

初始化模块110,所述初始化模块用于生成系统公共参数、注册机构的公钥和私钥、支付背书方的公钥和私钥、付款方的公钥和私钥,以及收款方的公钥和私钥;

注册模块120,所述注册模块用于系统参与方与注册机构交互生成该参与方的公钥证书;系统参与方是指付款方、支付背书方和收款方;

预置模块130,所述预置模块用于收款方设置退款承诺,付款方设置收款方及其退款承诺、锁定金额、付款承诺和截止条件的预置信息;截止条件可以是某个特定事件触发的时间;

如某个区块链系统中第600个区块记录完成的时间,或者是具体时间如2018年6月30日24:00。

验证模块140,所述验证模块用于支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证;

支付模块150,所述支付模块用于付款方把预付凭证和支付金额对应的秘密传递给收款方;

收款模块160,所述收款模块用于收款方验证付款方所传递的预付凭证和支付金额对应的秘密的有效性;

退款模块170,所述退款模块用于收款方把退款金额对应的秘密传递给付款方;

回收模块180,所述回收模块用于付款方验证收款方所传递的退款金额对应的秘密的有效性;

结算模块190,所述结算模块用于支付背书方验证收款方所提交预付凭证和支付金额对应的秘密的有效性,验证付款方所提交退款金额对应的秘密的有效性,并据此分配余额。

所述实体机构括注册机构、支付背书方、付款方、收款方;每个实体机构的角色都由至少一个实体合作充任。

所述初始化模块110用于根据输入的安全参数,输出系统公共参数,并根据所述系统公共参数,所述实体机构运行各自秘钥生成算法,生成对应的私钥和公钥。

所述注册模块120用于系统参与方向注册机构提交的信息包括参与方的公钥,注册机构输入包括公共参数、注册机构的私钥和系统参与方公钥,输出包括用户公钥证书。

公钥证书的生成可采用常规签名、群签名的装置,以增强参与方的匿名性、可追踪性。

所述预置模块130用于收款方输入退款相关信息包括退款秘密,输出包括退款承诺;付款方输入预付款相关信息包括锁定金额、对应秘密的部分或全部信息,输出包括付款承诺;输入包括付款方的私钥,部分或全部预置信息,如收款方公钥及其退款承诺、锁定金额、付款承诺和截止条件,输出包括一个签名;

该签名可以使用常规签名、群签名、盲签名、代理签名、环签名,以增强参与方的匿名性、可追踪性。

所述验证模块140用于支付背书方输入包括注册机构的公钥、付款方公钥和公钥证书,输出包括对公钥证书的有效性判断;输入包括付款方公钥、收款方公钥及其退款承诺、锁定金额、付款承诺、截止条件,以及付款方签名,输出包括对付款方签名的有效性判断;如果以上两项输出的判断均为有效签名,则输入包括支付背书方的私钥、付款方公钥、收款方公钥及其退款承诺、锁定金额、付款承诺,以及截止条件的部分或全部信息,输出包括预付凭证,并锁定付款方承诺的相应金额。该预付凭证可以使用常规签名、群签名、盲签名、代理签名、环签名,以增强参与方的匿名性、可追踪性;

所述支付模块150用于付款方将包括预付凭证和所支付金额对应的秘密传递给收款方;

支付金额对应的秘密传递方式为明文或密文方式传递。

所述收款模块160用于收款方输入包括支付背书方的公钥、收款方公钥及其退款承诺、锁定金额、付款承诺、截止条件和预付凭证,输出包括对预付凭证的有效性判断;输入包括支付金额和其对应的秘密,输出包括对支付形式的有效性判断;输入包括锁定金额,输出包括对支付金额的有效性判断;如果以上三项均输出有效,则支付被接受,否则支付被拒绝;

所述退款模块170用于收款方将退款金额和退款金额对应的秘密传递给付款方;

退款金额对应的秘密传递方式可以是以明文或密文方式传递;

所述回收模块180用于付款方输入包括退款金额和其对应的秘密,输出包括对退款形式的有效性判断;输入包括收款金额,输出包括对退款金额的有效性判断;如果以上两项均输出有效,则退款被接受,否则退款被拒绝;

所述结算模块190用于支付背书方输入包括支付背书方的公钥、收款方公钥及其退款承诺、锁定金额、付款承诺、截止条件和预付凭证,输出包括对预付凭证的有效性判断;输入包括支付金额和其对应的秘密,输出包括对支付形式的有效性判断;输入包括锁定金额,输出包括对支付金额的有效性判断;输入包括退款金额和其对应的秘密,输出包括对退款形式的有效性判断;输入包括收款金额,输出包括对退款金额的有效性判断;如果以上五项均输出有效,则同意结算,否则拒绝结算。

收款方、付款方提交结算信息给支付背书方为明文或密文方式提交。

一种安全虚拟预支付方法,包括:

生成系统公共参数、注册机构的公钥和私钥、支付背书方的公钥和私钥、付款方的公钥和私钥,以及收款方的公钥和私钥;

系统参与方与注册机构交互生成该参与方的公钥证书;收款方设置退款承诺,付款方设置收款方及其退款承诺、锁定金额、付款承诺和截止条件的预置信息;支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证;付款方把预付凭证和支付金额对应的秘密传递给收款方;收款方验证付款方所传递的预付凭证和支付金额对应的秘密的有效性;收款方把退款金额对应的秘密传递给付款方;付款方验证收款方所传递的退款金额对应的秘密的有效性;支付背书方验证收款方所提交预付凭证和支付金额对应的秘密的有效性,验证付款方所提交退款金额对应的秘密的有效性,并据此分配余额。

所述实体机构括注册机构、支付背书方、付款方、收款方。

每个实体机构的角色都由至少一个实体合作充任。

所述生成系统公共参数、注册机构的公钥和私钥、支付背书方的公钥和私钥、付款方的公钥和私钥,以及收款方的公钥和私钥的步骤包括:输入的安全参数,输出系统公共参数,并根据所述系统公共参数,所述实体机构运行各自秘钥生成算法,生成对应的私钥和公钥。

所述系统参与方与注册机构交互生成该参与方的公钥证书的步骤包括:系统参与方向注册机构提交的信息包括参与方的公钥,注册机构输入包括公共参数、注册机构的私钥和系统参与方公钥,输出包括用户公钥证书。钥证书的生成可以使用常规签名、群签名,以增强参与方的匿名性、可追踪性。

所述收款方设置退款承诺,付款方设置收款方及其退款承诺、锁定金额、付款承诺和截止条件的预置信息的步骤包括:收款方输入退款相关信息包括退款秘密,输出包括退款承诺;付款方输入预付款相关信息包括锁定金额、对应秘密的部分或全部信息,输出包括付款承诺;输入包括付款方的私钥,部分或全部预置信息,如收款方公钥及其退款承诺、锁定金额、付款承诺和截止条件,输出包括一个签名。该签名可以使用常规签名、群签名、盲签名、代理签名、环签名,以增强参与方的匿名性、可追踪性;

所述支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证的步骤包括:支付背书方输入包括注册机构的公钥、付款方公钥和公钥证书,输出包括对公钥证书的有效性判断;输入包括付款方公钥、收款方公钥及其退款承诺、锁定金额、付款承诺、截止条件,以及付款方签名,输出包括对付款方签名的有效性判断;如果以上两项输出的判断均为有效签名,则输入包括支付背书方的私钥、付款方公钥、收款方公钥及其退款承诺、锁定金额、付款承诺,以及截止条件的部分或全部信息,输出包括预付凭证,并锁定付款方承诺的相应金额。该预付凭证可以使用常规签名、群签名、盲签名、代理签名、环签名,以增强参与方的匿名性、可追踪性;

所述付款方把预付凭证和支付金额对应的秘密传递给收款方的步骤包括:付款方将包括预付凭证和所支付金额对应的秘密传递给收款方;

支付金额对应的秘密传递方式为明文或密文方式传递;

所述收款方验证付款方所传递的预付凭证和支付金额对应的秘密的有效性的步骤包括:收款方输入包括支付背书方的公钥、收款方公钥及其退款承诺、锁定金额、付款承诺、截止条件和预付凭证,输出包括对预付凭证的有效性判断;输入包括支付金额和其对应的秘密,输出包括对支付形式的有效性判断;输入包括锁定金额,输出包括对支付金额的有效性判断;如果以上三项均输出有效,则支付被接受,否则支付被拒绝;

所述收款方把退款金额对应的秘密传递给付款方的步骤包括:收款方将退款金额和退款金额对应的秘密传递给付款方;

退款金额对应的秘密传递方式为以明文或密文方式传递;

所述付款方验证收款方所传递的退款金额对应的秘密的有效性的步骤包括:付款方输入包括退款金额和其对应的秘密,输出包括对退款形式的有效性判断;输入包括收款金额,输出包括对退款金额的有效性判断;如果以上两项均输出有效,则退款被接受,否则退款被拒绝;

所述支付背书方验证收款方所提交预付凭证和支付金额对应的秘密的有效性,验证付款方所提交退款金额对应的秘密的有效性,并据此分配余额的步骤包括:支付背书方输入包括支付背书方的公钥、收款方公钥及其退款承诺、锁定金额、付款承诺、截止条件和预付凭证,输出包括对预付凭证的有效性判断;输入包括支付金额和其对应的秘密,输出包括对支付形式的有效性判断;输入包括锁定金额,输出包括对支付金额的有效性判断;输入包括退款金额和其对应的秘密,输出包括对退款形式的有效性判断;输入包括收款金额,输出包括对退款金额的有效性判断;如果以上五项均输出有效,则同意结算,否则拒绝结算。

收款方、付款方提交结算信息给支付背书方为明文或密文方式提交。

结合图2所示,本发明的装置的各个模块均涉及密码学工具,所以在介绍本系统之前,首先了解需要用到的密码学基础工具,包括单向函数、数字签名密码学工具。

定义单向函数、数字签名:

令f代表单向函数。

令π=(kgen,sig,ver)代表数字签名方案,其中kgen,sig,ver分别为秘钥生成算法、签名算法和验证算法。

单向函数(one-wayfunction)

单向函数是指给定输入,能够在多项时间内计算出函数值;而给定函数值,不能在多项式时间内计算出输入值。

定义1(单向函数):令函数f:{0,1}*→{0,1}*,如果满足以下两个条件:

(1)可计算性:给定输入x,可在多项式时间内计算出函数值f(x)

(2)不可求逆性:给定函数值f(x),不可在多项式时间内找到y,使f(y)=f(x)

则称函数f为单向函数。

数字签名(digitalsignature)

数字签名方案应满足以下两个基本要求:①正确性:存在公式,在概率多项式时间范围内,输入真实有效的消息/签名对,输出验证结果为真;②不可伪造性:不存在概率多项式时间算法,该算法利用其它用户的公开信息以及已有的消息/签名对,生成一个有效的消息/签名对;

定义2(数字签名):定义π=(kgen,sig,ver)为数字签名方案,其中kgen、sig和ver分别为秘钥生成、签名和验证算法,其具体结构算法如下:

(1)秘钥生成算法kgen:输入公共参数1λ,输出公钥和私钥(pk,sk);

(2)签名算法sig:输入私钥sk和消息m,输出消息和签名(m,σ);

(3)验证算法ver:输入消息和签名(m,σ),公钥pk,输出{0,1};

以下为本发明的具体实施例:

如图1所示,根据本发明一个实施例的高效的安全虚拟预支付系统100,由以上列出的密码学基础工具可给出本发明的系统构造。定义ω=(初始化,注册,预置,验证,支付,收款,退款,回收,结算)为基本构造,并将系统总结为9个算法模块,包括:初始化模块110、注册模块120、预置模块130、验证模块140、支付模块150、收款模块160、退款模块170、回收模块180、结算模块190。

其中,初始化模块110用于生成系统公共参数、注册机构的公钥和私钥、支付背书方的公钥和私钥、付款方的公钥和私钥,以及收款方的公钥和私钥;注册模块120用于系统参与方与注册机构交互生成该参与方的公钥证书;预置模块130用于收款方设置退款承诺,付款方设置收款方及其退款承诺、锁定金额、付款承诺和截止条件的预置信息;验证模块140用于支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证;支付模块150用于付款方把预付凭证和支付金额对应的秘密传递给收款方;收款模块160用于收款方验证付款方所传递的预付凭证和支付金额对应的秘密的有效性;退款模块170用于收款方把退款金额对应的秘密传递给付款方;回收模块180用于付款方验证收款方所传递的退款金额对应的秘密的有效性;结算模块190用于支付背书方验证收款方所提交预付凭证和支付金额对应的秘密的有效性,验证付款方所提交退款金额对应的秘密的有效性,并据此分配余额。

在一些实施例中,实体机构括注册机构、支付背书方、付款方、收款方。每个实体机构的角色都可能由一个或多个实体合作充任。其中,注册机构认证用户信息并发布公钥证书;支付背书方验证用户的支付信息,发布支付凭证以及分配余额。

结合图3所示,具体来说,本发明包含四类实体:注册机构、支付背书方、付款方和收款方。其中,注册机构的公钥和私钥可以表示为(rpk,rsk),支付背书方的公钥和私钥可以表示为(tpk,tsk),付款方、收款方的公钥和私钥可以表示为(pki,ski),(pkj,skj)。

需要注意的是初始化由注册机构、支付背书方、付款方和收款方完成,注册由系统参与方和注册机构完成,预置由付款方完成,验证由支付背书方完成,支付由付款方完成,收款由收款方完成,退款由收款方完成,回收由付款方完成,结算由支付背书方完成。

在一些实施例中,初始化模块110用于生成系统公共参数、注册机构的公钥和私钥、支付背书方的公钥和私钥、付款方的公钥和私钥,以及收款方的公钥和私钥,具体来说,

(1)注册机构输入包括安全参数1λ,输出包括系统公共参数params。

(2)注册机构调用算法π中的秘钥生成算法kgen,输入包括安全参数1λ和公共参数params,输出包括公钥rpk和私钥rsk,如kgen(1λ,params)→(rpk,rsk)。

(3)支付背书方调用算法π中的秘钥生成算法kgen,输入包括安全参数1λ和公共参数params,输出包括公钥tpk和私钥tsk,如kgen(1λ,params)→(tpk,tsk)。

(4)付款方调用算法π中的秘钥生成算法kgen,输入包括安全参数1λ和公共参数params,输出包括公钥和私钥,如kgen(1λ,params)→(pki,ski)

(5)收款方调用算法π中的秘钥生成算法kgen,输入包括安全参数1λ和公共参数params,输出包括公钥和私钥,如kgen(1λ,params)→(pkj,skj)

在一些实施例中,注册模块120用于系统参与方与注册机构交互生成该参与方的公钥证书,具体来说,

(1)任意系统参与方向注册机构提交的信息包括系统参与方公钥,注册机构调用算法π中的签名算法sig,输入包括注册机构私钥rsk、系统参与方公钥pk,输出包括对应的公钥证书生成并广播信息包括公钥列表pk和公钥证书列表钥证书的生成可以使用常规签名、群签名,以增强参与方的匿名性、可追踪性。

在一些实施例中,预置模块130用于收款方设置退款承诺,付款方设置收款方及其退款承诺、锁定金额、付款承诺和截止条件的预置信息,具体来说,

(1)收款方循环调用单向函数f,输入包括部分秘密ak(秘密是付款方选择的随机数),最终输出部分退款承诺a0,如f(ak)→ak-1,f(ak-1)→ak-2,...,f(a1)→a0;输入包括部分秘密bx,y=(b1,x,b2,y),最终输出部分退款承诺b0,0=(b1,0,b2,0),如f(b1,x)→b1,x-1,...,f(b1,1)→b1,0,f(b2,y)→b2,y-1,...,f(b2,1)→b2,0;输入包括部分秘密ca,b,c=(c1,a,c2,b,c3,c),最终输出部分退款承诺c0,0,0=(c1,0,c2,0,c3,0);输入包括部分秘密di,j,n,m=(d1,i,d2,j,d3,n,d4,m),最终输出部分退款承诺d0,0,0,0=(d1,0,d2,0,d3,0,d4,0);则秘密为r=((d1,i,d2,j,d3,n,d4,m),(c1,a,c2,b,c3,c),(b1,x,b2,y),ak)。令退款承诺为w=(d0,0,0,0,c0,0,0,b0,0,a0)。(d1,i,d2,j,d3,n,d4,m)可以表示i*1千元+j*1百元+n*10元+m*1元;(c1,a,c2,b,c3,c)可以表示a*1百元+b*10元+c*1元,(b1,x,b2,y)可以表示x*10元+y*1元;ak可以表示k*1元。举例:情况1:alice需要给bob3658元,则把秘密((d1,3,d2,6,d3,5,d4,8),(c1,0,c2,0,c3,0),(b1,0,b2,0),a0)传递给bob,alice再给bob9867元,则把秘密((d1,12,d2,14,d3,11,d4,15),(c1,0,c2,0,c3,0),(b1,0,b2,0),a0)传递给bob,bob调用单向函数f进行验证。情况2:alice分两次给3658元和25元给bob,则把秘密((d1,3,d2,6,d3,5,d4,8),(c1,0,c2,0,c3,0),(b1,0,b2,0),a0)和秘密((d1,0,d2,0,d3,0,d4,0),(c1,0,c2,0,c3,0),(b1,2,b2,5),a0)发送给bob,则bob结合两次秘密为((d1,3,d2,6,d3,5,d4,8),(c1,0,c2,0,c3,0),(b1,2,b2,5),a0)并调用单向函数f进行验证。为降低存储开销,alice可以选择秘密为key,令d1,i=(key,1,i),d2,j=(key,2,j),以此类推,则系统参与方仅需要输入key和金额,就可以进行支付或退款。

(2)付款方式与退款方式相同,付款方调用单向函数f,输入秘密为

输出付款承诺为在实施例中退款承诺和付款承诺以千元为最高单位,可以根据实际需求设置单位;其次,装置1:输入不同的部分秘密,调用同一单向函数f,则得到不同的部分退款承诺或付款承诺,装置2:输入相同部分秘密,调用不同单向函数f1,...,fk,则得到不同的部分退款承诺或付款承诺。装置3:结合装置1和装置2,部分输入不同的部分秘密,调用同一单向函数f,而部分输入相同部分秘密,调用不同单向函数f1,...,fk等装置均可得到退款承诺或付款承诺。秘密与承诺之间满足单向关系即可。

(3)付款方调用算法π中的签名算法sig,输入包括付款方私钥ski,收款方公钥pkj及其退款承诺w,锁定金额m、付款承诺和截止条件t,输出包括一个签名σi,如签名可以使用常规签名、群签名、盲签名、代理签名、环签名,以增强参与方的匿名性、可追踪性,此处举例仅使用定义中的签名算法。

验证模块140用于支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证,具体来说,

(1)支付背书方调用算法π中的验证算法ver,输入包括注册机构公钥rpk,付款方公钥pki及公钥证书输出包括对公钥证书的有效性判断,如

(2)支付背书方调用算法π中的验证算法ver,输入包括付款方公钥pki,收款方公钥pkj及其退款承诺w,锁定金额m、付款承诺截止条件t,以及签名σi,输出包括对付款方签名的有效性判断,如

(3)如果以上两项输出的判断均为有效签名,则调用算法π中的签名算法sig,输入包括支付背书方私钥tsk,付款方公钥pki,收款方公钥pkj及其退款承诺w,锁定金额m、付款承诺以及截止条件t,输出包括一个预付凭证σi',如并锁定付款方账户上的相应金额,且把预付凭证发送给付款方,否则拒绝。该预付凭证可以使用常规签名、群签名、盲签名、代理签名、环签名,以增强参与方的匿名性、可追踪性,此处举例仅使用定义中的签名算法。

支付模块150用于付款方把预付凭证和支付金额对应的秘密传递给收款方,具体来说,

(1)付款方把付款方公钥pki、收款方公钥pkj及其退款承诺w、锁定金额m、付款承诺截止条件t,以及预付凭证σi'传递给收款方。

(2)付款方把支付金额m1对应的秘密传递给收款方。支付金额对应的秘密传递方式可以是明文或密文方式传递。

收款模块160用于收款方验证付款方所传递的预付凭证和支付金额对应的秘密的有效性,具体来说,

(1)收款方调用算法π中的验证算法ver,输入包括支付背书方的公钥tpk,付款方公钥pki,收款方公钥pkj及其退款承诺w,锁定金额m、付款承诺截止条件t,以及预付凭证σi',输出包括对预付凭证的有效性判断,如

(2)收款方循环调用单向函数f,输入包括支付金额m1对应的秘密输出包括对支付形式的有效性判断。

(3)收款方输入接收到的所有支付金额,输出包括对支付金额的有效性判断。

如果以上三项均输出有效,则支付被接受,否则支付被拒绝。

退款模块170用于收款方把退款金额对应的秘密传递给付款方,具体来说,

(1)收款方把退款金额m2对应的秘密w2传递给收款方。退款金额对应的秘密传递方式可以是明文或密文方式传递。

回收模块180用于付款方验证收款方所传递的退款金额对应的秘密的有效性,具体来说,

(1)付款方循环调用单向函数f,输入包括退款金额m2对应的秘密w2,输出包括对支付形式的有效性判断。

(2)付款方输入接收到的所有退款金额,输出包括对退款金额的有效性判断。

如果以上两项均输出有效,则退款被接受,否则退款被拒绝。

结算模块190用于支付背书方验证收款方所提交预付凭证和支付金额对应的秘密的有效性,验证付款方所提交退款金额对应的秘密的有效性,并据此分配余额,具体来说,

(1)收款方把付款方公钥pki,收款方公钥pkj及其退款承诺w,锁定金额m、付款承诺截止条件t、预付凭证σi',以及支付金额m1对应的秘密提交给支付背书方,请求结算。付款方把退款金额m2对应的秘密w2提交给支付背书方,请求结算。收款方、付款方提交结算信息给支付背书方可以是明文或密文方式提交。

(2)如果支付背书方接收到付款方(收款方)的结算请求,则通知收款方(付款方)在规定时间内提交结算请求信息。支付背书方在规定的截止时间再次验证收款模块中的三项判断和回收模块中的两项判断。如果这五项均输出有效,则同意结算,否则拒绝结算;如果在规定时间内付款方或收款方没有提交结算请求信息,则仅根据其中一方提交的信息进行结算。如果达到截止条件t,则支付背书方对付款方预置金额中的余额解锁。

作为一个示例,结合图4所示:初始化模块110的系统初始化、实体机构初始化对应涉及数字签名,注册模块120的系统参与方注册对应涉及数字签名,预置模块130的预置信息对应涉及数字签名和单向函数,验证模块140的信息验证对应涉及数字签名,支付模块150的支付信息涉及数字签名和单向函数,收款模块160的收款信息验证对应涉及数字签名和单向函数,退款模块170的退款信息涉及单向函数,回收模块180的退款信息验证对应涉及单向函数,结算模块190的结算信息验证对应涉及数字签名和单向函数。

一个单向函数实例:哈希函数h,输入任意长度消息{0,1}*,输出固定长度l的函数值{0,1}l,即

一个数字签名方案实例ψ=(kgen,sig,ver):令h1为抗碰撞哈希函数,输出宽度为p;g是阶为素数p的循环乘法群,其生成元为g,则系统公共参数params=(g,g,h1)。

(1)秘钥生成算法kgen:输入安全参数和公共参数(1λ,params),输出公钥和私钥(y,x),其中y=gxmodp;

(2)签名算法sig:选择随机数k,其中1<k<p-1,gcd(k,p-1)=1,选择消息m,计算r=gkmodp,s=(h1(m)-xr)k-1mod(p-1),输出签名为σ=(r,s)。

(3)验证算法ver:输入签名σ和公钥y,计算如果等式成立,则输出1,否则输出0。

具体构造如下:

初始化模块110:生成系统公共参数、注册机构的公钥和私钥、支付背书方的公钥和私钥、付款方的公钥和私钥,以及收款方的公钥和私钥。

(1)注册机构输入包括安全参数1λ,生成一个阶为素数p的群g,g分别为群g中的随机生成元,输出包括系统公共参数params=(g,g)。

(2)注册机构调用算法ψ中的秘钥生成算法kgen,输入包括安全参数1λ和公共参数params,输出包括私钥α和公钥gα,如kgen(1λ,params)→(α,gα),则注册机构私钥rsk=α,公钥rpk=gα

(3)支付背书方调用算法ψ中的秘钥生成算法kgen,输入包括安全参数1λ和公共参数params,输出包括私钥β和公钥gβ,如kgen(1λ,params)→(β,gβ),则支付背书方私钥tsk=β,公钥tpk=gβ

(4)付款方调用算法ψ中的秘钥生成算法kgen,输入包括安全参数1λ和公共参数params,输出包括私钥xi和公钥则付款方的私钥ski=xi,公钥

(5)收款方调用算法ψ中的秘钥生成算法kgen,输入包括安全参数1λ和公共参数params,输出包括私钥xj和公钥则付款方的私钥skj=xj,公钥

注册模块120:系统参与方与注册机构交互生成该参与方的公钥证书。

(1)任意系统参与方向注册机构提交的信息包括系统参与方公钥,注册机构调用算法ψ中的签名算法sig,输入包括随机数ki、注册机构私钥rsk和系统参与方公钥pki,输出包括对应的公钥证书并把公钥pki和公钥证书分别加入到公开的公钥列表pk和公钥证书列表钥证书的生成可以使用常规签名、群签名,以增强参与方的匿名性、可追踪性。

预置模块130:收款方设置退款承诺,付款方设置收款方及其退款承诺、锁定金额、付款承诺和截止条件的预置信息。

(1)收款方循环调用哈希函数h,输入秘密为r=((d1,i,d2,j,d3,n,d4,m),(c1,a,c2,b,c3,c),(b1,x,b2,y),ak),输出退款承诺为w=(d0,0,0,0,c0,0,0,b0,0,a0)。

(2)付款方调用哈希函数h,输入秘密为输出付款承诺为

(3)付款方调用算法ψ中的签名算法sig,输入包括随机数ai,付款方私钥ski,收款方公钥pkj及其退款承诺w,锁定金额m、付款承诺截止条件t,输出包括一个签名σi,如令σi=(bi,ci)。签名可以使用常规签名、群签名、盲签名、代理签名、环签名,以增强参与方的匿名性、可追踪性,此处举例仅使用定义中的签名算法。

验证模块140:支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证。

(1)支付背书方调用算法ψ中的验证算法ver,输入包括注册机构的公钥rpk,付款方公钥pki和公钥证书输出包括对公钥证书的有效性判断,如

(2)调用算法ψ中的验证算法ver,输入包括付款方公钥pki,收款方公钥pkj及其退款承诺w,锁定金额m、付款承诺截止条件t,以及签名σi,输出包括对付款方签名的有效性判断,如

(3)如果以上两项输出的判断均为有效签名,则调用算法ψ中的签名算法sig,输入包括随机数ki',支付背书方私钥tsk,付款方公钥pki,收款方公钥pkj及其退款承诺w,锁定金额m、付款承诺以及截止条件t,输出包括一个预付凭证σi',

令σi'=(bi',ci'),并锁定付款方账户上的相应金额,且把预付凭证发送给付款方,否则拒绝。该预付凭证可以使用常规签名、群签名、盲签名、代理签名、环签名,以增强参与方的匿名性、可追踪性,此处举例仅使用定义中的签名算法。

支付模块150:付款方把预付凭证和支付金额对应的秘密传递给收款方。

(1)付款方把付款方公钥pki、收款方公钥pkj及其退款承诺w、锁定金额m、付款承诺截止条件t,以及预付凭证σi'传递给收款方。

(2)付款方把支付金额m1对应的秘密传递给收款方。支付金额对应的秘密传递方式可以是明文或密文方式传递。

收款模块160:收款方验证付款方所传递的预付凭证和支付金额对应的秘密的有效性。

(1)收款方调用算法ψ中的验证算法ver,输入包括支付背书方的公钥tpk,付款方公钥pki,收款方公钥pkj及其退款承诺w,锁定金额m、付款承诺截止条件t,以及预付凭证σi',输出包括对预付凭证的有效性判断,如

(2)收款方循环调用哈希函数h,输入包括支付金额m1对应的秘密传,输出包括对支付形式的有效性判断。

(3)收款方输入接收到的所有支付金额,输出包括对支付金额的有效性判断。

如果以上三项均输出有效,则支付被接受,否则支付被拒绝。

退款模块170:收款方把退款金额对应的秘密传递给付款方。

收款方把退款金额m2对应的秘密w2传递给收款方。退款金额对应秘密传递方式可以是明文或密文方式传递。

回收模块180:付款方验证收款方所传递的退款金额对应的秘密的有效性。付款方循环调用哈希函数h,输入包括退款金额m2对应的秘密w2,输出包括对支付形式的有效性判断。

付款方输入接收到的所有退款金额,输出包括对退款金额的有效性判断。如果以上两项均输出有效,则退款被接受,否则退款被拒绝。

结算模块190:支付背书方验证收款方所提交预付凭证和支付金额对应的秘密的有效性,验证付款方所提交退款金额对应的秘密的有效性,并据此分配余额。

(1)收款方把付款方公钥pki,收款方公钥pkj及其退款承诺w,锁定金额m、付款承诺截止条件t、预付凭证σi',以及支付金额m1对应的秘密提交给支付背书方,请求结算。付款方把退款金额m2对应的秘密w2提交给支付背书方,请求结算。收款方、付款方提交结算信息给支付背书方可以是明文或密文方式提交。

(2)如果支付背书方接收到付款方(收款方)的结算请求,则通知收款方(付款方)在规定时间内提交结算请求信息。支付背书方在规定的截止时间再次验证收款模块中的三项判断和回收模块中的两项判断。如果这五项均输出有效,则同意结算,否则拒绝结算;如果在规定时间内付款方或收款方没有提交结算请求信息,则仅根据其中一方提交的信息进行结算。如果达到截止条件t,则支付背书方对付款方预置金额中的余额解锁。

图5是根据本发明一个实施例的高效的安全虚拟预支付系统装置的流程图。

如图5所示,本发明一个实施例的高效的安全虚拟预支付系统装置,包括:

s210:生成系统公共参数、注册机构的公钥和私钥、支付背书方的公钥和

私钥、付款方的公钥和私钥,以及收款方的公钥和私钥;

s220:系统参与方与注册机构交互生成该参与方的公钥证书;

s230:收款方设置退款承诺,付款方设置收款方及其退款承诺、锁定金额、付款承诺和截止条件的预置信息;

s240:支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证;

s250:付款方把预付凭证和支付金额对应的秘密传递给收款方;

s260:收款方验证付款方所传递的预付凭证和支付金额对应的秘密的有效性;

s270:收款方把退款金额对应的秘密传递给付款方;

s280:付款方验证收款方所传递的退款金额对应的秘密的有效性;

s290:支付背书方验证收款方所提交预付凭证和支付金额对应的秘密的有效性,验证付款方所提交退款金额对应的秘密的有效性,并据此分配余额。

实体机构括注册机构、支付背书方、付款方、收款方。每个实体机构的角色都由至少一个实体合作充任。

步骤s210包括:输入的安全参数,输出系统公共参数,并根据所述系统公共参数,所述实体机构运行各自秘钥生成算法,生成对应的私钥和公钥。

步骤s220包括:系统参与方向注册机构提交的信息包括参与方的公钥,注册机构输入包括公共参数、注册机构的私钥和系统参与方公钥,输出包括用户公钥证书。钥证书的生成可以使用常规签名、群签名,以增强参与方的匿名性、可追踪性。

步骤s230包括:收款方输入退款相关信息包括退款秘密,输出包括退款承诺;付款方输入预付款相关信息包括锁定金额、对应秘密的部分或全部信息,输出包括付款承诺;输入包括付款方的私钥,部分或全部预置信息,如收款方公钥及其退款承诺、锁定金额、付款承诺和截止条件,输出包括一个签名。该签名可以使用常规签名、群签名、盲签名、代理签名、环签名,以增强参与方的匿名性、可追踪性。

步骤s240包括:支付背书方输入包括注册机构的公钥、付款方公钥和公钥证书,输出包括对公钥证书的有效性判断;输入包括付款方公钥、收款方公钥及其退款承诺、锁定金额、付款承诺、截止条件,以及付款方签名,输出包括对付款方签名的有效性判断;如果以上两项输出的判断均为有效签名,则输入包括支付背书方的私钥、付款方公钥、收款方公钥及其退款承诺、锁定金额、付款承诺,以及截止条件的部分或全部信息,输出包括预付凭证,并锁定付款方承诺的相应金额。该预付凭证可以使用常规签名、群签名、盲签名、代理签名、环签名,以增强参与方的匿名性、可追踪性。

步骤s250包括:付款方将包括预付凭证和所支付金额对应的秘密传递给收款方。支付金额对应的秘密传递方式可以是明文或密文方式传递。

步骤s260包括:用于收款方输入包括支付背书方的公钥、收款方公钥及其退款承诺、锁定金额、付款承诺、截止条件和预付凭证,输出包括对预付凭证的有效性判断;输入包括支付金额和其对应的秘密,输出包括对支付形式的有效性判断;输入包括锁定金额,输出包括对支付金额的有效性判断;如果以上三项均输出有效,则支付被接受,否则支付被拒绝。

步骤s270包括:收款方将退款金额和退款金额对应的秘密传递给付款方。退款金额对应的秘密传递方式可以是以明文或密文方式传递。

步骤s280包括:付款方输入包括退款金额和其对应的秘密,输出包括对退款形式的有效性判断;输入包括收款金额,输出包括对退款金额的有效性判断;如果以上两项均输出有效,则退款被接受,否则退款被拒绝。

步骤s290包括:支付背书方输入包括支付背书方的公钥、收款方公钥及其退款承诺、锁定金额、付款承诺、截止条件和预付凭证,输出包括对预付凭证的有效性判断;输入包括支付金额和其对应的秘密,输出包括对支付形式的有效性判断;输入包括锁定金额,输出包括对支付金额的有效性判断;输入包括退款金额和其对应的秘密,输出包括对退款形式的有效性判断;输入包括收款金额,输出包括对退款金额的有效性判断;如果以上五项均输出有效,则同意结算,否则拒绝结算。收款方、付款方提交结算信息给支付背书方可以是明文或密文方式提交。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的装置相对应,所以描述的比较简单,相关之处参见装置部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的装置及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1