CN108805551A - 一种安全的细粒度预支付方法及装置 - Google Patents
一种安全的细粒度预支付方法及装置 Download PDFInfo
- Publication number
- CN108805551A CN108805551A CN201810575457.3A CN201810575457A CN108805551A CN 108805551 A CN108805551 A CN 108805551A CN 201810575457 A CN201810575457 A CN 201810575457A CN 108805551 A CN108805551 A CN 108805551A
- Authority
- CN
- China
- Prior art keywords
- payment
- public key
- beneficiary
- paying party
- account
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/22—Payment schemes or models
- G06Q20/28—Pre-payment schemes, e.g. "pay before"
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Abstract
本发明公开了一种安全的细粒度预支付方法及装置。包括:初始化,生成系统公共参数、注册机构和参与方的公钥和私钥;注册,注册机构生成参与方的公钥证书;预置,付款方设置收款方、锁定金额和截止条件预置信息,而收款方作为新付款方设置新预置信息,形成离链支付链或环;验证,支付背书方验证付款方公钥证书和预置信息的有效性并生成预付凭证;支付,付款方把预付凭证与付款签名传递给收款方;收款,收款方验证预付凭证、付款签名、支付金额的有效性;结算,支付背书方验证各收款方所提交预付凭证、付款签名、支付金额的有效性,并分配余额。本发明能够抗伪造、双重花费、超额花费,实现细粒度的即时支付,提高货币的流通性且保护用户隐私。
Description
技术领域
本发明涉及通信系统中的信息安全领域、通信系统中的数字货币支付技术领域,特别涉及一种安全的细粒度预支付方法及装置。
背景技术
随着经济的快速发展以及电子技术的快速进步,由于电子支付具有快捷、便利的优点,所以电子支付得到了广泛应用。电子支付采用数字化货币进行交易,摆脱了对传统纸质货币和票据的依赖性,使得支付过程更快捷、高效、交易成本更低;电子支付能够提高企业资金运转的可监管性。但是,当前电子支付技术仍然存在一些不足:首先,电子支付是一个在线支付过程,该过程需要付款方、收款方、支付背书方同时在线才能完成交易。因此,电子支付仅适合于网络通信较好的区域,而不适合于偏远地区或通信基础设施损坏或者遭到破坏的地质灾害突发地区。其次,支付过程需要支付背书方在线验证货币的有效性,因此支付背书方的计算能力限制了电子支付速度。在交易高峰期,容易出现支付缓慢或支付失败问题。最后,电子支付具有较低的隐私保护,用户的交易记录完全暴露在支付平台上,容易导致隐私泄露问题。
基于区块链的数字货币支付系统具有快捷、高效的优点,同时还具有较高的安全性和隐私保护。首先,区块链是去中心化的系统,用户的交易记录存储在分布式系统中,具有较高的安全性、健壮性。其次,区块链采用带有时间戳的链式区块结构存储数据,使得系统具有较强的可验证性、不可篡改性、可追溯性。第三,基于区块链的数字货币是可分割的,支持细粒度支付。因此,基于区块链的数字货币系统具有广阔的研究价值。但是,目前该系统还存在一些缺陷,如需要在线交易,交易缓慢、交易费用较高。
因此,构建能够抗伪造、双重花费、超额花费攻击,无论在线还是离线状态下都能完成高效、灵活、细粒度的即时支付,而且如何能够保护用户隐私的支付系统是当前亟待解决的关键问题。
发明内容
本发明的目的是提供一种能够提高货币的流通性、增强用户隐私保护的安全的细粒度预支付方法及装置。
为实现上述目的,本发明提供了如下方案:
一种安全的细粒度预支付方法,所述支付方法应用于支付系统,所述支付方法包括:
获取所述支付系统的公共参数、注册机构公钥和私钥、系统参与方公钥和私钥,并根据系统参与方公钥生成账户;系统参与方包括支付背书方、付款方、收款方;
所述系统参与方与注册机构交互获得公钥证书;
所述付款方设置预置信息,所述预置信息为收款方、锁定金额和截止条件,所述收款方作为新付款方设置新预置信息,形成对应的离链支付链;
所述支付背书方验证所述付款方公钥证书和所述预置信息的有效性,并发布预付凭证;
所述付款方对支付金额进行签名并将所述预付凭证与付款签名发送至所述收款方;
所述收款方验证所述预付凭证、所述付款签名和所述支付金额的有效性;
所述支付背书方验证各收款方发送的所述预付凭证、所述付款签名、所述支付金额的有效性,并分配余额。
可选的,所述实体机构包括:注册机构、支付背书方、付款方、收款方,每个实体机构的角色都由至少一个实体组成。
可选的,所述获取所述支付系统的公共参数、注册机构公钥和私钥、系统参与方公钥和私钥,并根据系统参与方公钥生成账户具体包括:
根据所述支付系统的安全参数计算所述支付系统的公共参数;
根据所述支付系统公共参数,所述实体机构运行各自秘钥生成算法,生成各自的私钥和公钥;
根据公钥和随机数对应一个账户。
可选的,所述所述系统参与方与注册机构交互获得公钥证书具体包括:
所述系统参与方向所述注册机构提交参与方公钥;
注册机构根据公共参数、注册机构私钥、系统参与方公钥获得一个公钥证书。
可选的,所述付款方设置预置信息,所述预置信息为收款方、锁定金额和截止条件,所述收款方作为新付款方设置新预置信息,形成对应的离链支付链具体包括:
所述付款方根据公共参数、付款方私钥及其账户、收款方公钥、账户、锁定金额和截止条件获得一个预置信息签名;
收款方作为新的付款方根据公共参数、新的付款方私钥和账户、新收款方公钥和账户、新锁定金额和新截止条件获得一个新预置信息签名。
可选的,所述支付背书方验证所述付款方公钥证书和所述预置信息的有效性,并发布预付凭证具体包括:
支付背书方根据公钥、随机数获得一个账户;
根据公共参数、注册机构公钥、付款方公钥和公钥证书,判断公钥证书的有效性;
根据公共参数、付款方公钥和账户、收款方公钥和账户、锁定金额、截止条件和预置信息签名,判断所述预置信息签名的有效性;
如果所述预置信息签名和所述公钥证书均有效,根据公共参数、支付背书方私钥、付款方公钥及账户、收款方公钥及账户、锁定金额和截止条件获得一个预付凭证,并锁定付款方承诺的相应金额;如果收款方作为新付款方提交新预置信息,则对新预置信息重新执行上述操作,以此类推。
可选的,所述所述付款方对支付金额进行签名并将所述预付凭证与付款签名发送至所述收款方具体包括:
所述付款方根据公共参数、付款方私钥、付款方账户、收款方账户、支付金额和随机数,获得一个付款签名;
所述付款方将预付凭证和付款签名发送给收款方,并向收款方证明支付金额的有效性;
支付金额的有效性证明方法:所述付款方向所述收款方揭露所述付款方的收款金额与锁定金额,证明收款金额与锁定金额之和大于或等于支付金额;使用Paillier公钥加密体制和承诺值证明方法进行证明支付金额的有效性以保护交易隐私。
可选的,所述收款方验证所述预付凭证、所述付款签名和所述支付金额的有效性具体包括:收款方根据公共参数、支付背书方公钥、付款方公钥及账户、收款方公钥及账户、锁定金额、截止条件、预付凭证,判断预付凭证的有效性;
根据公共参数、付款方公钥、付款方账户、收款方账户、支付金额、随机数、付款签名,判断付款签名的有效性;
根据付款方的收款金额、锁定金额、支付金额,判断支付金额的有效性;如果以上三项均输出有效,则支付被接受,否则支付被拒绝;
所述支付背书方验证各收款方所提交预付凭证、付款签名、支付金额的有效性,并据此分配余额的步骤包括:支付背书方收集各收款方提交的结算信息,并对结算信息再次进行收款模块中的三项判断;
如果这三项判断均输出有效,则同意结算并分据此余额,否则拒绝结算;各收款方提交结算信息给支付背书方可以是明文或密文方式提交,支付背书方分别进行直接判断或用Paillier公钥加密体制和承诺值证明方法进行判断。
为了实现上述目的,本发明还提供了如下方案:
一种安全的细粒度预支付装置,所述支付装置包括:
初始化模块,用于生成系统公共参数、注册机构公钥和私钥、系统参与方公钥和私钥,并根据系统参与方公钥生成账户。系统参与方是指支付背书方、付款方、收款方;
注册模块,用于系统参与方与注册机构交互生成公钥证书;
预置模块,用于付款方设置收款方、锁定金额和截止条件预置信息,而收款方作为新付款方设置新预置信息,以此类推,形成离链支付链或环;
验证模块,用于支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证;
支付模块,用于付款方对支付金额进行签名并把预付凭证与付款签名传递给收款方;
收款模块,用于收款方验证预付凭证、付款签名以及支付金额的有效性;
结算模块,用于支付背书方验证各收款方所提交预付凭证、付款签名、支付金额的有效性,并据此分配余额。
可选的,所述预置模块,用于付款方输入包括公共参数、付款方私钥及其账户、收款方公钥及其账户、锁定金额和截止条件,输出包括一个预置信息签名;收款方可作为新的付款方输入包括公共参数、该新的付款方私钥及其账户、新收款方公钥及其账户、新锁定金额和新截止条件,输出包括一个新预置信息签名;
所述注册模块用于系统参与方向注册机构提交包括参与方公钥,注册机构输入包括公共参数、注册机构私钥、系统参与方公钥,输出包括一个公钥证书;公钥证书的生成可以使用常规签名、代理签名、群签名、环签名,以增强匿名性或可追踪性;
所述验证模块用于支付背书方输入包括公钥、随机数,输出包括一个账户;输入包括公共参数、注册机构公钥、付款方公钥和公钥证书,输出包括对公钥证书的有效性判断;输入包括公共参数、付款方公钥及其账户、收款方公钥及其账户、锁定金额、截止条件,以及预置信息签名,输出包括对预置信息签名的有效性判断;如果以上三项输出的判断均为有效,则输入包括公共参数、支付背书方私钥、付款方公钥及账户、收款方公钥及账户、锁定金额和截止条件,输出包括一个预付凭证,并锁定付款方承诺的相应金额;如果收款方作为新付款方提交新预置信息,则对新预置信息进行以上四步操作,以此类推;
所述支付模块用于付款方输入包括公共参数、付款方私钥、付款方账户、收款方账户、支付金额和随机数,输出包括一个付款签名;付款方把预付凭证与付款签名传递给收款方,并向收款方证明支付金额的有效性;传递方式可以是明文或密文方式;支付金额的有效性证明方法,付款方可以向收款方揭露付款方的收款金额与锁定金额,从而证明收款金额与锁定金额之和大于等于支付金额,也可以使用Paillier公钥加密体制和承诺值证明方法进行证明支付金额的有效性以保护交易隐私;
所述收款模块用于收款方输入包括公共参数、支付背书方公钥、付款方公钥及账户、收款方公钥及账户、锁定金额、截止条件、预付凭证,输出包括对预付凭证的有效性判断;输入包括公共参数、付款方公钥、付款方账户、收款方账户、支付金额、随机数、付款签名,输出包括对付款签名的有效性判断;输入包括付款方的收款金额、锁定金额、支付金额,输出包括对支付金额有效性判断;如果以上三项均输出有效,则支付被接受,否则支付被拒绝;最后一项判断中,付款方的收款金额、锁定金额、支付金额的输入方式可以是明文或密文方式,分别进行直接判断或用Paillier公钥加密体制和承诺值证明方法进行有效性判断;
所述结算模块用于支付背书方收集各收款方提交的结算信息,并对结算信息再次进行收款模块中的三项判断;如果这三项判断均输出有效,则同意结算并分据此余额,否则拒绝结算;各收款方提交结算信息给支付背书方可以是明文或密文方式提交,支付背书方分别进行直接判断或用Paillier公钥加密体制和承诺值证明方法进行判断。
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提出一种安全的细粒度预支付方法及装置既能够基于中心化的电子支付系统,又能够基于去中心化的区块链技术以实现在线或离线情况下细粒度的即时支付,形成离链支付链或环,从而提高货币的流通性、增强用户隐私保护。
本发明提供的电子支付系统能够抗伪造、双重花费、超额花费攻击,无论是在线或离线状态下都能实现细粒度的即时支付,并形成离链支付链或环,提高货币的流通性、增强用户隐私保护。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的实施例的安全的细粒度预支付装置的结构图;
图2为本发明提供的一种安全的细粒度预支付方法与基础密码学工具示意图;
图3为本发明提供的实施例的安全的细粒度预支付方法的结构图;
图4是另一个安全的细粒度预支付方法与基础密码学工具示意图;
图5是根据本发明一个实施例的安全的细粒度预支付方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种能够提高货币的流通性、增强用户隐私保护的安全的细粒度预支付方法及装置。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1
如图5所示,一种安全的细粒度预支付方法,所述支付方法应用于支付系统,所述支付方法包括:
步骤S210:获取所述支付系统的公共参数、注册机构公钥和私钥、系统参与方公钥和私钥,并根据系统参与方公钥生成账户;系统参与方包括支付背书方、付款方、收款方;
步骤S220:所述系统参与方与注册机构交互获得公钥证书;
步骤S230:所述付款方设置预置信息,所述预置信息为收款方、锁定金额和截止条件,所述收款方作为新付款方设置新预置信息,形成对应的离链支付链;
步骤S240:所述支付背书方验证所述付款方公钥证书和所述预置信息的有效性,并发布预付凭证;
步骤S250:所述付款方对支付金额进行签名并将所述预付凭证与付款签名发送至所述收款方;
步骤S260:所述收款方验证所述预付凭证、所述付款签名和所述支付金额的有效性;
步骤S270:所述支付背书方验证各收款方发送的所述预付凭证、所述付款签名、所述支付金额的有效性,并分配余额。
所述实体机构包括:注册机构、支付背书方、付款方、收款方,每个实体机构的角色都由至少一个实体组成;所述获取所述支付系统的公共参数、注册机构公钥和私钥、系统参与方公钥和私钥,并根据系统参与方公钥生成账户具体包括:
根据所述支付系统的安全参数计算所述支付系统的公共参数;
根据所述支付系统公共参数,所述实体机构运行各自秘钥生成算法,生成各自的私钥和公钥;根据公钥和随机数对应一个账户。
可选的,所述所述系统参与方与注册机构交互获得公钥证书具体包括:
所述系统参与方向所述注册机构提交参与方公钥;
注册机构根据公共参数、注册机构私钥、系统参与方公钥获得一个公钥证书。公钥证书的生成可以使用常规签名、代理签名、群签名、环签名,以增强匿名性和可追踪性。常规签名是指满足正确性和不可伪造性的数字签名。
所述付款方设置预置信息,所述预置信息为收款方、锁定金额和截止条件,所述收款方作为新付款方设置新预置信息,形成对应的离链支付链具体包括:
所述付款方根据公共参数、付款方私钥及其账户、收款方公钥、账户、锁定金额和截止条件获得一个预置信息签名;
收款方作为新的付款方根据公共参数、新的付款方私钥和账户、新收款方公钥和账户、新锁定金额和新截止条件获得一个新预置信息签名。
所述支付背书方验证所述付款方公钥证书和所述预置信息的有效性,并发布预付凭证具体包括:
支付背书方根据公钥、随机数获得一个账户;
根据公共参数、注册机构公钥、付款方公钥和公钥证书,判断公钥证书的有效性;
根据公共参数、付款方公钥和账户、收款方公钥和账户、锁定金额、截止条件和预置信息签名,判断所述预置信息签名的有效性;
如果所述预置信息签名和所述公钥证书均有效,根据公共参数、支付背书方私钥、付款方公钥及账户、收款方公钥及账户、锁定金额和截止条件获得一个预付凭证,并锁定付款方承诺的相应金额;如果收款方作为新付款方提交新预置信息,则对新预置信息重新执行上述操作,以此类推。
所述所述付款方对支付金额进行签名并将所述预付凭证与付款签名发送至所述收款方具体包括:
所述付款方根据公共参数、付款方私钥、付款方账户、收款方账户、支付金额和随机数,获得一个付款签名;
所述付款方将预付凭证和付款签名发送给收款方,并向收款方证明支付金额的有效性;传递方式可以是明文或密文方式;
支付金额的有效性证明方法:所述付款方向所述收款方揭露所述付款方的收款金额与锁定金额,证明收款金额与锁定金额之和大于或等于支付金额;使用Paillier公钥加密体制和承诺值证明方法进行证明支付金额的有效性以保护交易隐私。
所述所述收款方验证所述预付凭证、所述付款签名和所述支付金额的有效性具体包括:收款方根据公共参数、支付背书方公钥、付款方公钥及账户、收款方公钥及账户、锁定金额、截止条件、预付凭证,判断预付凭证的有效性;
根据公共参数、付款方公钥、付款方账户、收款方账户、支付金额、随机数、付款签名,判断付款签名的有效性;
根据付款方的收款金额、锁定金额、支付金额,判断支付金额的有效性;如果以上三项均输出有效,则支付被接受,否则支付被拒绝;最后一项判断中,付款方的收款金额、锁定金额、支付金额的输入方式可以是明文或密文方式,分别进行直接判断或用Paillier公钥加密体制和承诺值证明方法进行有效性判断。
所述支付背书方验证各收款方所提交预付凭证、付款签名、支付金额的有效性,并据此分配余额的步骤包括:支付背书方收集各收款方提交的结算信息,并对结算信息再次进行收款模块中的三项判断;
如果这三项判断均输出有效,则同意结算并分据此余额,否则拒绝结算;各收款方提交结算信息给支付背书方可以是明文或密文方式提交,支付背书方分别进行直接判断或用Paillier公钥加密体制和承诺值证明方法进行判断。
如图1所示,一种安全的细粒度预支付装置,所述支付装置包括:
初始化模块,用于生成系统公共参数、注册机构公钥和私钥、系统参与方公钥和私钥,并根据系统参与方公钥生成账户。系统参与方是指支付背书方、付款方、收款方;
注册模块,用于系统参与方与注册机构交互生成公钥证书;
预置模块,用于付款方设置收款方、锁定金额和截止条件预置信息,而收款方作为新付款方设置新预置信息,以此类推,形成离链支付链或环;
验证模块,用于支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证;
支付模块,用于付款方对支付金额进行签名并把预付凭证与付款签名传递给收款方;
收款模块,用于收款方验证预付凭证、付款签名以及支付金额的有效性;
结算模块,用于支付背书方验证各收款方所提交预付凭证、付款签名、支付金额的有效性,并据此分配余额。
所述预置模块,用于付款方输入包括公共参数、付款方私钥及其账户、收款方公钥及其账户、锁定金额和截止条件,输出包括一个预置信息签名;收款方可作为新的付款方输入包括公共参数、该新的付款方私钥及其账户、新收款方公钥及其账户、新锁定金额和新截止条件,输出包括一个新预置信息签名;
所述注册模块用于系统参与方向注册机构提交包括参与方公钥,注册机构输入包括公共参数、注册机构私钥、系统参与方公钥,输出包括一个公钥证书;公钥证书的生成可以使用常规签名、代理签名、群签名、环签名,以增强匿名性或可追踪性;常规签名是指满足正确性和不可伪造性的数字签名;
所述验证模块用于支付背书方输入包括公钥、随机数,输出包括一个账户;输入包括公共参数、注册机构公钥、付款方公钥和公钥证书,输出包括对公钥证书的有效性判断;输入包括公共参数、付款方公钥及其账户、收款方公钥及其账户、锁定金额、截止条件,以及预置信息签名,输出包括对预置信息签名的有效性判断;如果以上三项输出的判断均为有效,则输入包括公共参数、支付背书方私钥、付款方公钥及账户、收款方公钥及账户、锁定金额和截止条件,输出包括一个预付凭证,并锁定付款方承诺的相应金额;如果收款方作为新付款方提交新预置信息,则对新预置信息进行以上四步操作,以此类推;
所述支付模块用于付款方输入包括公共参数、付款方私钥、付款方账户、收款方账户、支付金额和随机数,输出包括一个付款签名;付款方把预付凭证与付款签名传递给收款方,并向收款方证明支付金额的有效性;传递方式可以是明文或密文方式;支付金额的有效性证明方法,付款方可以向收款方揭露付款方的收款金额与锁定金额,从而证明收款金额与锁定金额之和大于等于支付金额,也可以使用Paillier公钥加密体制和承诺值证明方法进行证明支付金额的有效性以保护交易隐私;
所述收款模块用于收款方输入包括公共参数、支付背书方公钥、付款方公钥及账户、收款方公钥及账户、锁定金额、截止条件、预付凭证,输出包括对预付凭证的有效性判断;输入包括公共参数、付款方公钥、付款方账户、收款方账户、支付金额、随机数、付款签名,输出包括对付款签名的有效性判断;输入包括付款方的收款金额、锁定金额、支付金额,输出包括对支付金额有效性判断;如果以上三项均输出有效,则支付被接受,否则支付被拒绝;最后一项判断中,付款方的收款金额、锁定金额、支付金额的输入方式可以是明文或密文方式,分别进行直接判断或用Paillier公钥加密体制和承诺值证明方法进行有效性判断;
所述结算模块用于支付背书方收集各收款方提交的结算信息,并对结算信息再次进行收款模块中的三项判断;如果这三项判断均输出有效,则同意结算并分据此余额,否则拒绝结算;各收款方提交结算信息给支付背书方可以是明文或密文方式提交,支付背书方分别进行直接判断或用Paillier公钥加密体制和承诺值证明方法进行判断。
实施例2
结合图2所示,本发明的系统的各个模块均涉及密码学工具,所以在介绍本系统之前,首先了解需要用到的密码学基础工具,包括单向函数、数字签名、聚合签名密码学工具。
定义单向函数、数字签名、聚合签名:
令f代表单向函数。
令Π1=(KGen,Sig,Ver)代表数字签名方案,其中KGen,Sig,Ver分别为秘钥生成算法、签名算法和验证算法。
令Π2=(KGen,ASig,AVer,AggSig,AggVer)代表聚合签名方案,其中KGen,ASig,AVer,AggSig,AggVer分别为秘钥生成算法、签名算法、验证算法、聚合算法、聚合验证算法。
单向函数(One-way Function)
单向函数是指给定输入,能够在多项时间内计算出函数值;而给定函数值,不能在多项式时间内计算出输入值。
定义1(单向函数):令函数f:{0,1}*→{0,1}*,如果满足以下两个条件:
(1)可计算性:给定输入x,可在多项式时间内计算出函数值f(x);
(2)不可求逆性:给定函数值f(x),不可在多项式时间内找到y,使得
f(y)=f(x);
则称函数f为单向函数。
数字签名(Digital Signature)
数字签名方案应满足以下两个基本要求:①正确性:存在公式,在概率多项式时间范围内,输入真实有效的消息/签名对,输出验证结果为真;②不可伪造性:不存在概率多项式时间算法,该算法利用其它用户的公开信息以及已有的消息/签名对,生成一个有效的消息/签名对;
定义2(数字签名):定义Π1=(KGen,Sig,Ver)为数字签名方案,其中KGen、Sig和Ver分别为秘钥生成、签名和验证算法,其具体结构算法如下:
(1)秘钥生成算法KGen:输入公共参数1λ,输出公钥和私钥(PK,SK);
(2)签名算法Sig:输入私钥SK和消息m,输出消息和签名(m,σ);
(3)验证算法Ver:输入消息和签名(m,σ)以及公钥PK,输出签名的有效性判断。
聚合签名(Aggregate Signature)
聚合签名方案在满足数字签名算法正确性和不可伪造性的基础上,还满足聚合性:把多个签名聚合为一个签名,仅需要一次验证,则完成所有签名的验证。
定义3(聚合签名):定义Π2=(AKGen,ASig,AVer,AggSig,AggVer)为聚合签名方案,其中AKGen,ASig,AVer,AggSig,AggVer分别为秘钥生成算法、签名算法、验证算法、聚合算法、聚合验证算法,其具体结构算法如下:
(1)秘钥生成算法AKGen:输入公共参数1λ,输出公钥和私钥(PK,SK);
(2)签名算法ASig:输入私钥SK和消息α,输出消息签名对(α,φ);
(3)验证算法AVer:输入消息和签名(α,φ)以及公钥PK,输出签名的有效性判断。
(4)聚合算法AggSig:输入k(k≥1)个消息签名对(αi,φi),输出聚合签名
φ1,...,k←φ1...φk。
(5)聚合验证AggVer:输入消息聚合签名对(α1,...,k,φ1,...,k)和k个对应的公钥PKi,1≤i≤k,输出聚合签名的判断。
以下为本发明的具体实施例:
如图1所示,根据本发明一个实施例的安全的细粒度预支付系统100,由以上述的密码学基础工具可给出本发明的系统构造。定义Ω=(初始化,注册,预置,验证,支付,收款,结算)为基本构造,并将系统总结为7个算法模块,包括:初始化模块110、注册模块120、预置模块130、验证模块140、支付模块150、收款模块160、结算模块170。
其中,初始化模块,用于生成系统公共参数、注册机构公钥和私钥、系统参与方公钥和私钥,并根据系统参与方公钥生成账户。系统参与方是指支付背书方、付款方、收款方;注册模块,用于系统参与方与注册机构交互生成公钥证书;预置模块,用于付款方设置收款方、锁定金额和截止条件预置信息,而收款方作为新付款方设置新预置信息,以此类推,形成离链支付链或环;验证模块,用于支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证;支付模块,用于付款方对支付金额进行签名并把预付凭证与付款签名传递给收款方;收款模块,用于收款方验证预付凭证、付款签名以及支付金额的有效性;结算模块,用于支付背书方验证各收款方所提交预付凭证、付款签名、支付金额的有效性,并据此分配余额。
在一些实施例中,实体机构括注册机构、支付背书方、付款方、收款方。每个实体机构的角色都可能由一个或多个实体合作充任。其中,注册机构认证用户信息并发布公钥证书;支付背书方验证用户的支付信息,发布支付凭证以及分配余额。
结合图3所示,具体来说,本发明包含四类实体:注册机构、支付背书方、付款方和收款方。其中,注册机构的公钥和私钥可以表示为(RPK,RSK),支付背书方的公钥和私钥可以表示为(TPK,TSK),任意付款方i、收款方j的公钥和私钥可以表示为(PKi,SKi),(PKj,SKj)。
需要注意的是初始化由注册机构、支付背书方、付款方和收款方完成,注册由系统参与方和注册机构完成,预置由付款方完成,验证由支付背书方完成,支付由付款方完成,收款由收款方完成,结算由支付背书方完成。
在一些实施例中,初始化模块110用于生成系统公共参数、注册机构公钥和私钥、系统参与方公钥和私钥,并根据系统参与方公钥生成账户,具体来说,
(1)注册机构输入包括一个安全参数1λ,输出包括一个系统公共参数Params。
(2)注册机构调用算法Π1中的秘钥生成算法KGen,输入包括一个安全参数1λ和公共参数Params,输出包括一个公钥RPK和一个私钥RSK,如(RPK,RSK)←KGen(1λ,Params)。
(3)支付背书方调用算法Π2中的秘钥生成算法AKGen,输入包括安全参数1λ和公共参数Params,输出包括一个公钥TPK和一个私钥TSK,如(TPK,TSK)←AKGen(1λ,Params)。
(4)任意付款方或收款方调用算法Π2中的秘钥生成算法AKGen,输入包括一个安全参数1λ和公共参数Params,输出包括一个公钥和一个私钥,如(PK,SK)←AKGen(1λ,Params);调用单向函数f,输入包括一个公钥PK,输出包括一个账户Account,如Account←f(PK)。
在一些实施例中,注册模块120用于系统参与方与注册机构交互生成公钥证书,具体来说,
(1)任意系统参与方向注册机构提交信息包括系统参与方公钥,注册机构调用算法Π1中的签名算法Sig,输入包括注册机构私钥RSK、系统参与方公钥PK,输出包括对应的公钥证书如并生成公开信息包括公钥列表PK和公钥证书列表
在一些实施例中,预置模块130用于付款方设置收款方、锁定金额和截止条件预置信息,而收款方作为新付款方设置新预置信息,以此类推,形成离链支付链或环,具体来说,
(1)任意付款方i调用算法Π2中的签名算法ASig,输入包括公共参数Params、付款方私钥SKi、序列号num(初始值为1)、付款方私钥账户Accounti、收款方账户Accountj、锁定金额Wij、截止条件Tij,令αij=(num,Accounti,Accountj,Wij,Tij),输出包括一个预置信息签名φij,如
(2)收款方j作为新的付款方调用算法Π2中的签名算法ASig,输入包括公共参数Params、新付款方私钥SKj、序列号num(值为2)、新付款方账户Accountj、收款方账户Accountk、锁定金额Wjk和截止条件Tjk,令αjk=(num,Accountj,Accountk,Wjk,Tjk),输出包括一个预置信息签名φjk,如调用算法Π2中的聚合算法AggSig,输入包括已有预置信息签名对(αij,φij),(αjk,φjk),令αijk=(αij,αjk),输出包括一个聚合签名对(αijk,φijk),如φijk←AggSig(φij,φjk),以此类推,形成离链支付链或环。
验证模块140用于支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证,具体来说,
(1)支付背书方调用单向函数f,输入包括付款方公钥PKi,输出包括一个账户Accounti,如Accounti←f(PKi)。
(2)支付背书方调用算法Π1中的验证算法Ver,输入包括公共参数Params、注册机构公钥RPK、付款方公钥PKi和公钥证书输出包括对公钥证书的有效性判断,如
(3)支付背书方调用算法Π2中的验证算法AVer,输入公共参数Params、付款方公钥PKi、预置信息签名对(αij,φij),输出包括对预置信息签名对的有效性判断,如
(4)如果前三项输出的判断均为有效,则调用算法Π2中的签名算法ASig,输入包括公共参数Params、支付背书方私钥RSK、预置信息αij,输出包括一个预付凭证如并锁定付款方承诺的相应金额。类似地,如果一二四项输出的判断均为有效为有效,则输出预付凭证如
支付模块150用于付款方对支付金额进行签名并把预付凭证与付款签名传递给收款方,具体来说,
(1)如果付款方有收款金额,则调用算法Π2中的聚合算法AggSig,输入包括公共参数Params、已有k个收款信息签名对(βi,δi),令β1,...,k=(β1,...,βk),输出包括一个收款聚合签名对(β1,...,k,δ1,...,k),如δ1,...,k←AggSig(δ1,...,δk),否则直接进入下一步。
(2)付款方调用算法Π2中的签名算法ASig,输入包括公共参数Params、付款方私钥SKi、付款方账户Accounti、收款方账户Accountj、支付金额mij、随机数rij,令γi=(Accounti,Accountj,mij,rij),输出包括一个付款签名对(γi,σi),如
(3)付款方把预付凭证签名对收款聚合签名对(β1,...,k,δ1,...,k)、付款签名对(γi,σi)传递给收款方,并向收款方证明支付金额mij的有效性。传递方式可以是明文或密文方式。支付金额的有效性证明方法,如果付款方把付款金额以明文方式直接传递给收款方,则收款方可以直接验证付款方的收款金额与锁定金额之和大于等于支付金额,如果付款方把付款金额加密后传递给收款方,则付款方可以使用Paillier公钥加密体制和承诺值证明方法进行证明以保护交易额隐私。
收款模块160用于收款方验证预付凭证、付款签名以及支付金额的有效性,具体来说,
(1)收款方调用算法Π2中的验证算法AVer,输入包括公共参数Params、支付背书方公钥RPK、预付凭证签名对输出包括对预付凭证的有效性判断,如
(2)收款方调用算法Π2中的聚合验证算法AggVer,输入包括包括公共参数Params、各付款方的公钥PK1,...,PKk、聚合签名对(β1,...,k,δ1,...,k),输出包括对收款聚合签名的有效性判断,如
(3)收款方调用算法Π2中的验证算法AVer,输入包括公共参数Params、付款方公钥PKi、付款签名对(γi,σi),输出包括对付款签名的有效性判断,如
(4)输入包括付款方的收款金额mij'、锁定金额Wij、支付金额mij,输出包括对支付金额的有效性判断,如果mij'+Wij≥mij,则输出有效,否则拒绝。
(5)如果以上四项均输出有效,则支付被接受,否则支付被拒绝。
结算模块170用于支付背书方验证各收款方所提交预付凭证、付款签名、支付金额的有效性,并据此分配余额,具体来说,
(1)各收款方把付款方的预付凭证签名对收款聚合签名对(β1,...,k,δ1,...,k)、付款签名对(γi,σi)提交给支付背书方,请求结算。各收款方提交结算信息给支付背书方可以是明文或密文方式提交。
(2)支付背书方接收到收款方的结算请求或达到截止条件T,则通知支付链上各收款方在规定时间内提交结算请求信息,并再次验证收款模块中的四项判断。如果这四项均输出有效,则同意结算并于结算后解锁各付款方剩余的锁定金额,否则拒绝结算;如果在规定时间内其余的收款方没有提交结算请求信息,则仅根据其中一方提交的信息进行结算。
作为一个示例,结合图4所示:初始化模块110的系统初始化和实体机构初始化涉及哈希函数、数字签名、聚合签名,注册模块120的系统参与方注册涉及数字签名,预置模块130的预置信息涉及聚合签名,验证模块140的信息验证涉及哈希函数、数字签名和聚合签名,支付模块150的支付信息涉及聚合签名,收款模块160的收款信息验证涉及聚合签名,结算模块170的结算信息验证涉及聚合签名。
一个单向函数实例:哈希函数H,输入任意长度消息{0,1}*,输出固定长度p的函数值{0,1}p,即
一个数字签名方案实例ψ1=(KGen,Sig,Ver):令H1为抗碰撞哈希函数,H1:{0,1}*→G1;G1是阶为素数p的循环乘法群,其生成元为g1,则系统公共参数Params=(g1,G1,H1)。
(1)秘钥生成算法KGen:输入安全参数和公共参数(1λ,Params),输出公钥和私钥其中
(2)签名算法Sig:选择随机数r,其中1<r<p-1,gcd(r,p-1)=1,选择消息m,计算输出签名为σ=(E,F)。
(3)验证算法Ver:输入消息签名对(m,σ)和公钥PK,如果则输出1,否则输出0。
一个聚合签名方案实例ψ2=(AKGen,ASig,AVer,AggSig,AggVer):令H2为抗碰撞哈希函数,H2:{0,1}*→G2;G1,G2是阶为素数p的循环乘法群,其中G1≠G2,生成元分别为g1,g2,映射e:G1×G2→GT满足双线性和非退化性,则
系统公共参数Params=(g1,g2,G1,G2,GT,e,H2)。
(1)秘钥生成算法AKGen:任意用户i输入安全参数和公共参数(1λ,Params),输出公钥PKi=Xi和私钥SKi=xi,其中
(2)签名算法ASig:输入私钥SKi和消息αi,计算H2(αi)∈G2,输出签名
(3)验证算法AVer:输入公钥PKi和消息签名对如果则输出有效性有效,否则拒绝;
(4)聚合算法AggSig:输入k(k≥1)个消息签名对其中αi互不相同,输出聚合签名
(5)聚合验证AggVer:输入k个对应的公钥PKi和消息签名对(α1,...,k,φ1,...,k),如果则输出有效,否则拒绝。
具体构造如下:
初始化模块110:生成系统公共参数、注册机构公钥和私钥、系统参与方公钥和私钥,并根据系统参与方公钥生成账户。
(1)注册机构输入包括安全参数1λ,生成两个阶为素数p的群G1,G2,g1,g2分别为群G1,G2的随机生成元,映射e:G1×G2→GT满足双线性和非退化性,其中G1≠G2。哈希函数抗碰撞哈希函数H1:{0,1}*→G1,H2:{0,1}*→G2则系统公共参数Params=(g1,g2,e,G1,G2,GT,H,H1,H2)。
(2)注册机构调用算法ψ1中的秘钥生成算法KGen,输入包括安全参数1λ和公共参数Params,输出包括私钥和公钥,如则注册机构私钥公钥
(3)支付背书方调用算法ψ2中的秘钥生成算法AKGen,输入包括安全参数1λ和公共参数Params,输出包括私钥和公钥,如则注册机构私钥公钥
(4)任意付款方或收款方调用算法ψ2中的秘钥生成算法AKGen,输入包括安全参数1λ和公共参数Params,输出包括私钥和公钥,如则该付款方或收款方的私钥SK=x,公钥调用哈希函数H,输入包括一个公钥PK,输出包括一个账户Account,如Account←H(PK)。
注册模块120:系统参与方与注册机构交互生成公钥证书。
(1)任意系统参与方i向注册机构提交的信息包括系统参与方公钥,注册机构调用算法ψ1中的签名算法Sig,输入包括随机数ri、注册机构私钥RSK、系统参与方公钥PKi,输出包括对应的公钥证书如令并把公钥PKi和公钥证书分别加入到公开的公钥列表PK和公钥证书列表
预置模块130:付款方设置收款方、锁定金额和截止条件预置信息,而收款方作为新付款方设置新预置信息,以此类推,形成离链支付链或环。
(1)任意付款方i调用算法ψ2中的签名算法ASig,输入包括公共参数Params、付款方私钥SKi、序列号num(初始值为1)、付款方私钥账户Accounti、收款方账户Accountj、锁定金额Wij、截止条件Tij,令αij=(num,Accounti,Accountj,Wij,Tij),输出包括一个预置信息签名φij,如
(2)收款方j作为新的付款方调用算法ψ2中的签名算法ASig,输入包括公共参数Params、新付款方私钥SKj、序列号num(值为2)新付款方账户Accountj、收款方账户Accountk、锁定金额Wjk和截止条件Tjk,令αjk=(num,Accountj,Accountk,Wjk,Tjk),输出包括一个预置信息签名φjk,如调用算法Π2中的聚合算法AggSig,输入包括已有预置信息签名对(αij,φij),(αjk,φjk),令αijk=(αij,αjk),输出包括一个聚合签名对(αijk,φijk),如以此类推,形成离链支付链或环。
验证模块140:支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证。
(1)支付背书方调用哈希函数H,输入包括一个公钥PKi,输出包括一个账户Accounti,如Accounti←H(PKi)。
(2)支付背书方调用算法ψ1中的验证算法Ver,输入包括公共参数Params、注册机构公钥RPK、付款方公钥PKi和公钥证书输出包括对公钥证书的有效性判断,如果则输出有效,否则拒绝。
(3)支付背书方调用算法ψ2中的验证算法AVer,输入公共参数Params、付款方公钥PKi、预置信息签名对(αij,φij),输出包括对预置信息签名对的有效性判断,如果e(g1,φij)=e(Xi,H2(αij)),则输出有效,否则拒绝。
(4)支付背书方调用算法ψ2中的聚合验证AggVer,输入包括聚合签名对(αijk,φijk)及其对应的公钥PKi,PKj,输出包括对聚合签名对的有效性判断,如果e(g,φijk)=e(Xi,H2(αij))·e(Xj,H2(αjk)),则输出有效,否则拒绝。
(5)如果前三项输出的判断均为有效,则调用算法ψ2中的签名算法ASig,输入包括公共参数Params、支付背书方私钥RSK、预置信息αij,输出包括一个预付凭证如并锁定付款方承诺的相应金额。类似地,如果一二四项输出的判断均为有效为有效,则输出预付凭证如
支付模块150:付款方对支付金额进行签名并把预付凭证与付款签名传递给收款方。
(1)如果付款方有收款金额,则调用算法ψ2中的聚合算法AggSig,输入包括公共参数Params、已有k个收款信息签名对(βi,δi),令β1,...,k=(β1,...,βk),输出包括一个收款聚合签名对(β1,...,k,δ1,...,k),如δ1,...,k←δ1·...·δk,否则直接进入下一步。
(2)付款方调用算法ψ2中的签名算法ASig,输入包括公共参数Params、付款方私钥SKi、付款方账户Accounti、收款方账户Accountj、支付金额mij、随机数rij,令γi=(Accounti,Accountj,mij,rij),输出包括一个付款签名对(γi,σi),如
(3)付款方把预付凭证签名对收款聚合签名对(β1,...,k,δ1,...,k)、付款签名对(γi,σi)传递给收款方,并向收款方证明支付金额mij的有效性。传递方式可以是明文或密文方式。支付金额的有效性证明方法,如果付款方把付款金额以明文方式直接传递给收款方,则收款方可以直接验证付款方的收款金额与锁定金额之和大于等于支付金额,如果付款方把付款金额加密后传递给收款方,则付款方可以使用Paillier公钥加密体制和承诺值证明方法进行证明以保护交易额隐私。
收款模块160:收款方验证预付凭证、付款签名以及支付金额的有效性。
(1)收款方调用算法ψ2中的验证算法AVer,输入包括公共参数Params、支付背书方公钥RPK、预付凭证签名对输出包括对预付凭证的有效性判断,如果则输出有效,否则拒绝。
收款方调用算法ψ2中的聚合验证算法AggVer,输入包括包括公共参数Params、各付款方的公钥PK1,...,PKk、聚合签名对(β1,...,k,δ1,...,k),输出包括对收款聚合签名的有效性判断,如果则输出有效,否则拒绝。
(1)收款方调用算法ψ2中的验证算法AVer,输入包括公共参数Params、付款方公钥PKi、付款签名对(γi,σi),输出包括对付款签名的有效性判断,如果e(g1,σi)=e(Xi,H2(γi)),则输出有效,否则拒绝。
(2)输入包括付款方的收款金额mij'、锁定金额Wij、支付金额mij,输出包括对支付金额的有效性判断,如果mij'+Wij≥mij,则输出有效,否则拒绝。
(3)如果以上四项均输出有效,则支付被接受,否则支付被拒绝。
结算模块190:支付背书方验证各收款方所提交预付凭证、付款签名、支付金额的有效性,并据此分配余额。
(1)各收款方把付款方的预付凭证签名对收款聚合签名对(β1,...,k,δ1,...,k)、付款签名对(γi,σi)提交给支付背书方,请求结算。各收款方提交结算信息给支付背书方可以是明文或密文方式提交。
(2)支付背书方接收到收款方的结算请求或达到截止条件T,则通知支付链上各收款方在规定时间内提交结算请求信息,并再次验证收款模块中的四项判断。如果这四项均输出有效,则同意结算并于结算后解锁各付款方剩余的锁定金额,否则拒绝结算;如果在规定时间内其余的收款方没有提交结算请求信息,则仅根据其中一方提交的信息进行结算。
图5是根据本发明一个实施例的安全的细粒度预支付系统装置的流程图。
如图5所示,本发明一个实施例的安全的细粒度预支付系统装置,包括:S210:生成系统公共参数、注册机构公钥和私钥、系统参与方公钥和私钥,并根据系统参与方公钥生成账户。系统参与方是指支付背书方、付款方、收款方;S220:系统参与方与注册机构交互生成公钥证书;S230:付款方设置收款方、锁定金额和截止条件预置信息,而收款方作为新付款方设置新预置信息,以此类推,形成离链支付链或环;S240:支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证;S250:付款方对支付金额进行签名并把预付凭证与付款签名传递给收款方;S260:收款方验证预付凭证、付款签名以及支付金额的有效性;S270:支付背书方验证各收款方所提交预付凭证、付款签名、支付金额的有效性,并据此分配余额。
在一些实施例中,实体机构括注册机构、支付背书方、付款方、收款方。每个实体机构的角色都可能由一个或多个实体合作充任。
步骤S210包括:输入的安全参数,输出系统公共参数;根据所述系统公共参数,所述实体机构运行各自秘钥生成算法,生成各自的私钥和公钥;输入包括公钥、随机数,输出包括一个账户。
步骤S220包括:系统参与方向注册机构提交包括参与方公钥,注册机构输入包括公共参数、注册机构私钥、系统参与方公钥,输出包括一个公钥证书。公钥证书的生成可以使用常规签名、代理签名、群签名、环签名,以增强匿名性或可追踪性。常规签名是指满足正确性和不可伪造性的数字签名。
步骤S230包括:付款方输入包括公共参数、付款方私钥及其账户、收款方公钥及其账户、锁定金额和截止条件,输出包括一个预置信息签名;收款方可作为新的付款方输入包括公共参数、该新的付款方私钥及其账户、新收款方公钥及其账户、新锁定金额和新截止条件,输出包括一个新预置信息签名。
步骤S240包括:支付背书方输入包括公钥、随机数,输出包括一个账户;输入包括公共参数、注册机构公钥、付款方公钥和公钥证书,输出包括对公钥证书的有效性判断;输入包括公共参数、付款方公钥及其账户、收款方公钥及其账户、锁定金额、截止条件,以及预置信息签名,输出包括对预置信息签名的有效性判断;如果以上三项输出的判断均为有效,则输入包括公共参数、支付背书方私钥、付款方公钥及账户、收款方公钥及账户、锁定金额和截止条件,输出包括一个预付凭证,并锁定付款方承诺的相应金额;如果收款方作为新付款方提交新预置信息,则对新预置信息进行以上四步操作,以此类推。
步骤S250包括:付款方输入包括公共参数、付款方私钥、付款方账户、收款方账户、支付金额和随机数,输出包括一个付款签名;付款方把预付凭证与付款签名传递给收款方,并向收款方证明支付金额的有效性。传递方式可以是明文或密文方式。支付金额的有效性证明方法,付款方可以向收款方揭露付款方的收款金额与锁定金额,从而证明收款金额与锁定金额之和大于等于支付金额,也可以使用Paillier公钥加密体制和承诺值证明方法进行证明支付金额的有效性以保护交易隐私。步骤S260包括:收款方输入包括公共参数、支付背书方公钥、付款方公钥及账户、收款方公钥及账户、锁定金额、截止条件、预付凭证,输出包括对预付凭证的有效性判断;输入包括公共参数、付款方公钥、付款方账户、收款方账户、支付金额、随机数、付款签名,输出包括对付款签名的有效性判断;输入包括付款方的收款金额、锁定金额、支付金额,输出包括对支付金额有效性判断;如果以上三项均输出有效,则支付被接受,否则支付被拒绝。最后一项判断中,付款方的收款金额、锁定金额、支付金额的输入方式可以是明文或密文方式,分别进行直接判断或用Paillier公钥加密体制和承诺值证明方法进行有效性判断。步骤S270包括:支付背书方收集各收款方提交的结算信息,并对结算信息再次进行收款模块中的三项判断;如果这三项判断均输出有效,则同意结算并分据此余额,否则拒绝结算。各收款方提交结算信息给支付背书方可以是明文或密文方式提交,支付背书方分别进行直接判断或用Paillier公钥加密体制和承诺值证明方法进行判断。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种安全的细粒度预支付方法,所述支付方法应用于支付系统,其特征在于,所述支付方法包括:
获取所述支付系统的公共参数、注册机构公钥和私钥、系统参与方公钥和私钥,并根据系统参与方公钥生成账户;系统参与方包括支付背书方、付款方、收款方;
所述系统参与方与注册机构交互获得公钥证书;
所述付款方设置预置信息,所述预置信息为收款方、锁定金额和截止条件,所述收款方作为新付款方设置新预置信息,形成对应的离链支付链;
所述支付背书方验证所述付款方公钥证书和所述预置信息的有效性,并发布预付凭证;
所述付款方对支付金额进行签名并将所述预付凭证与付款签名发送至所述收款方;
所述收款方验证所述预付凭证、所述付款签名和所述支付金额的有效性;
所述支付背书方验证各收款方发送的所述预付凭证、所述付款签名、所述支付金额的有效性,并分配余额。
2.根据权利要求1所述的安全的细粒度预支付系统方法,其特征在于,所述实体机构包括:注册机构、支付背书方、付款方、收款方,每个实体机构的角色都由至少一个实体组成。
3.根据权利要求1所述的安全的细粒度预支付方法,其特征在于,所述获取所述支付系统的公共参数、注册机构公钥和私钥、系统参与方公钥和私钥,并根据系统参与方公钥生成账户具体包括:
根据所述支付系统的安全参数计算所述支付系统的公共参数;
根据所述支付系统公共参数,所述实体机构运行各自秘钥生成算法,生成各自的私钥和公钥;
根据公钥和随机数对应一个账户。
4.根据权利要求1所述的安全的细粒度预支付方法,其特征在于,所述所述系统参与方与注册机构交互获得公钥证书具体包括:
所述系统参与方向所述注册机构提交参与方公钥;
注册机构根据公共参数、注册机构私钥、系统参与方公钥获得一个公钥证书。
5.根据权利要求1所述的安全的细粒度预支付系统方法,其特征在于,所述付款方设置预置信息,所述预置信息为收款方、锁定金额和截止条件,所述收款方作为新付款方设置新预置信息,形成对应的离链支付链具体包括:
所述付款方根据公共参数、付款方私钥及其账户、收款方公钥、账户、锁定金额和截止条件获得一个预置信息签名;
收款方作为新的付款方根据公共参数、新的付款方私钥和账户、新收款方公钥和账户、新锁定金额和新截止条件获得一个新预置信息签名。
6.根据权利要求1所述的安全的细粒度预支付系统方法,其特征在于,所述支付背书方验证所述付款方公钥证书和所述预置信息的有效性,并发布预付凭证具体包括:
支付背书方根据公钥、随机数获得一个账户;
根据公共参数、注册机构公钥、付款方公钥和公钥证书,判断公钥证书的有效性;
根据公共参数、付款方公钥和账户、收款方公钥和账户、锁定金额、截止条件和预置信息签名,判断所述预置信息签名的有效性;
如果所述预置信息签名和所述公钥证书均有效,根据公共参数、支付背书方私钥、付款方公钥及账户、收款方公钥及账户、锁定金额和截止条件获得一个预付凭证,并锁定付款方承诺的相应金额;如果收款方作为新付款方提交新预置信息,则对新预置信息重新执行上述操作,以此类推。
7.根据权利要求1所述的安全的细粒度预支付系统方法,其特征在于,所述所述付款方对支付金额进行签名并将所述预付凭证与付款签名发送至所述收款方具体包括:
所述付款方根据公共参数、付款方私钥、付款方账户、收款方账户、支付金额和随机数,获得一个付款签名;
所述付款方将预付凭证和付款签名发送给收款方,并向收款方证明支付金额的有效性;
支付金额的有效性证明方法:所述付款方向所述收款方揭露所述付款方的收款金额与锁定金额,证明收款金额与锁定金额之和大于或等于支付金额;使用Paillier公钥加密体制和承诺值证明方法进行证明支付金额的有效性以保护交易隐私。
8.根据权利要求1所述的安全的细粒度预支付系统方法,其特征在于,所述所述收款方验证所述预付凭证、所述付款签名和所述支付金额的有效性具体包括:收款方根据公共参数、支付背书方公钥、付款方公钥及账户、收款方公钥及账户、锁定金额、截止条件、预付凭证,判断预付凭证的有效性;
根据公共参数、付款方公钥、付款方账户、收款方账户、支付金额、随机数、付款签名,判断付款签名的有效性;
根据付款方的收款金额、锁定金额、支付金额,判断支付金额的有效性;如果以上三项均输出有效,则支付被接受,否则支付被拒绝;
所述支付背书方验证各收款方所提交预付凭证、付款签名、支付金额的有效性,并据此分配余额的步骤包括:支付背书方收集各收款方提交的结算信息,并对结算信息再次进行收款模块中的三项判断;
如果这三项判断均输出有效,则同意结算并分据此余额,否则拒绝结算;各收款方提交结算信息给支付背书方可以是明文或密文方式提交,支付背书方分别进行直接判断或用Paillier公钥加密体制和承诺值证明方法进行判断。
9.一种安全的细粒度预支付装置,其特征在于,所述支付装置包括:
初始化模块,用于生成系统公共参数、注册机构公钥和私钥、系统参与方公钥和私钥,并根据系统参与方公钥生成账户。系统参与方是指支付背书方、付款方、收款方;
注册模块,用于系统参与方与注册机构交互生成公钥证书;
预置模块,用于付款方设置收款方、锁定金额和截止条件预置信息,而收款方作为新付款方设置新预置信息,以此类推,形成离链支付链或环;
验证模块,用于支付背书方验证付款方公钥证书和预置信息的有效性并发布预付凭证;
支付模块,用于付款方对支付金额进行签名并把预付凭证与付款签名传递给收款方;
收款模块,用于收款方验证预付凭证、付款签名以及支付金额的有效性;
结算模块,用于支付背书方验证各收款方所提交预付凭证、付款签名、支付金额的有效性,并据此分配余额。
10.根据权利要求9所述的安全的细粒度预支付装置,其特征在于,所述预置模块,用于付款方输入包括公共参数、付款方私钥及其账户、收款方公钥及其账户、锁定金额和截止条件,输出包括一个预置信息签名;收款方可作为新的付款方输入包括公共参数、该新的付款方私钥及其账户、新收款方公钥及其账户、新锁定金额和新截止条件,输出包括一个新预置信息签名;
所述注册模块用于系统参与方向注册机构提交包括参与方公钥,注册机构输入包括公共参数、注册机构私钥、系统参与方公钥,输出包括一个公钥证书;公钥证书的生成可以使用常规签名、代理签名、群签名、环签名,以增强匿名性或可追踪性;所述验证模块用于支付背书方输入包括公钥、随机数,输出包括一个账户;输入包括公共参数、注册机构公钥、付款方公钥和公钥证书,输出包括对公钥证书的有效性判断;输入包括公共参数、付款方公钥及其账户、收款方公钥及其账户、锁定金额、截止条件,以及预置信息签名,输出包括对预置信息签名的有效性判断;如果以上三项输出的判断均为有效,则输入包括公共参数、支付背书方私钥、付款方公钥及账户、收款方公钥及账户、锁定金额和截止条件,输出包括一个预付凭证,并锁定付款方承诺的相应金额;如果收款方作为新付款方提交新预置信息,则对新预置信息进行以上四步操作,以此类推;
所述支付模块用于付款方输入包括公共参数、付款方私钥、付款方账户、收款方账户、支付金额和随机数,输出包括一个付款签名;付款方把预付凭证与付款签名传递给收款方,并向收款方证明支付金额的有效性;传递方式可以是明文或密文方式;支付金额的有效性证明方法,付款方可以向收款方揭露付款方的收款金额与锁定金额,从而证明收款金额与锁定金额之和大于等于支付金额,也可以使用Paillier公钥加密体制和承诺值证明方法进行证明支付金额的有效性以保护交易隐私;
所述收款模块用于收款方输入包括公共参数、支付背书方公钥、付款方公钥及账户、收款方公钥及账户、锁定金额、截止条件、预付凭证,输出包括对预付凭证的有效性判断;输入包括公共参数、付款方公钥、付款方账户、收款方账户、支付金额、随机数、付款签名,输出包括对付款签名的有效性判断;输入包括付款方的收款金额、锁定金额、支付金额,输出包括对支付金额有效性判断;如果以上三项均输出有效,则支付被接受,否则支付被拒绝;最后一项判断中,付款方的收款金额、锁定金额、支付金额的输入方式可以是明文或密文方式,分别进行直接判断或用Paillier公钥加密体制和承诺值证明方法进行有效性判断;
所述结算模块用于支付背书方收集各收款方提交的结算信息,并对结算信息再次进行收款模块中的三项判断;如果这三项判断均输出有效,则同意结算并分据此余额,否则拒绝结算;各收款方提交结算信息给支付背书方可以是明文或密文方式提交,支付背书方分别进行直接判断或用Paillier公钥加密体制和承诺值证明方法进行判断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810575457.3A CN108805551B (zh) | 2018-06-06 | 2018-06-06 | 一种安全的细粒度预支付方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810575457.3A CN108805551B (zh) | 2018-06-06 | 2018-06-06 | 一种安全的细粒度预支付方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108805551A true CN108805551A (zh) | 2018-11-13 |
CN108805551B CN108805551B (zh) | 2020-06-30 |
Family
ID=64087507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810575457.3A Active CN108805551B (zh) | 2018-06-06 | 2018-06-06 | 一种安全的细粒度预支付方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108805551B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110097370A (zh) * | 2019-03-29 | 2019-08-06 | 捷德(中国)信息科技有限公司 | 脱机支付方法、装置、服务器及介质 |
CN110458542A (zh) * | 2019-08-02 | 2019-11-15 | 中国工商银行股份有限公司 | 基于区块链的离线支付系统及方法 |
CN110599164A (zh) * | 2019-09-02 | 2019-12-20 | 北京航空航天大学 | 一种可监管的链下任意收款方快速支付方法 |
CN112734415A (zh) * | 2020-12-31 | 2021-04-30 | 深圳市证通电子股份有限公司 | 数字货币的收款方法、终端、装置及计算机可读存储介质 |
CN113627931A (zh) * | 2021-07-14 | 2021-11-09 | 荣耀终端有限公司 | 一种支付的限制方法和电子设备 |
CN116703403A (zh) * | 2023-07-31 | 2023-09-05 | 成都创一博通科技有限公司 | 基于区块链网络的离线交易方法和金融服务平台 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1928907A (zh) * | 2006-10-13 | 2007-03-14 | 钟杨 | 一种利用移动终端设备进行交易支付方法、系统及装置 |
CN102271040A (zh) * | 2011-07-26 | 2011-12-07 | 北京华大信安科技有限公司 | 身份验证系统和方法 |
CN105162607A (zh) * | 2015-10-12 | 2015-12-16 | 武汉瑞纳捷电子技术有限公司 | 一种支付账单凭证的认证方法及系统 |
EP3073670A1 (en) * | 2015-03-27 | 2016-09-28 | BGC International, Inc. | A system and a method for personal identification and verification |
CN106651331A (zh) * | 2016-12-22 | 2017-05-10 | 飞天诚信科技股份有限公司 | 一种基于数字货币的电子交易方法及系统 |
-
2018
- 2018-06-06 CN CN201810575457.3A patent/CN108805551B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1928907A (zh) * | 2006-10-13 | 2007-03-14 | 钟杨 | 一种利用移动终端设备进行交易支付方法、系统及装置 |
CN102271040A (zh) * | 2011-07-26 | 2011-12-07 | 北京华大信安科技有限公司 | 身份验证系统和方法 |
EP3073670A1 (en) * | 2015-03-27 | 2016-09-28 | BGC International, Inc. | A system and a method for personal identification and verification |
CN105162607A (zh) * | 2015-10-12 | 2015-12-16 | 武汉瑞纳捷电子技术有限公司 | 一种支付账单凭证的认证方法及系统 |
CN106651331A (zh) * | 2016-12-22 | 2017-05-10 | 飞天诚信科技股份有限公司 | 一种基于数字货币的电子交易方法及系统 |
Non-Patent Citations (1)
Title |
---|
黄永洪等: "区块链安全及标准化", 《信息技术与标准化》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110097370A (zh) * | 2019-03-29 | 2019-08-06 | 捷德(中国)信息科技有限公司 | 脱机支付方法、装置、服务器及介质 |
CN110458542A (zh) * | 2019-08-02 | 2019-11-15 | 中国工商银行股份有限公司 | 基于区块链的离线支付系统及方法 |
CN110599164A (zh) * | 2019-09-02 | 2019-12-20 | 北京航空航天大学 | 一种可监管的链下任意收款方快速支付方法 |
CN110599164B (zh) * | 2019-09-02 | 2022-05-10 | 北京航空航天大学 | 一种可监管的链下任意收款方快速支付方法 |
CN112734415A (zh) * | 2020-12-31 | 2021-04-30 | 深圳市证通电子股份有限公司 | 数字货币的收款方法、终端、装置及计算机可读存储介质 |
CN112734415B (zh) * | 2020-12-31 | 2024-01-12 | 深圳市证通电子股份有限公司 | 数字货币的收款方法、终端、装置及计算机可读存储介质 |
CN113627931A (zh) * | 2021-07-14 | 2021-11-09 | 荣耀终端有限公司 | 一种支付的限制方法和电子设备 |
CN113627931B (zh) * | 2021-07-14 | 2022-12-30 | 荣耀终端有限公司 | 一种支付的限制方法和电子设备 |
CN116703403A (zh) * | 2023-07-31 | 2023-09-05 | 成都创一博通科技有限公司 | 基于区块链网络的离线交易方法和金融服务平台 |
CN116703403B (zh) * | 2023-07-31 | 2023-10-20 | 成都创一博通科技有限公司 | 基于区块链网络的离线交易方法和金融服务平台 |
Also Published As
Publication number | Publication date |
---|---|
CN108805551B (zh) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108805551A (zh) | 一种安全的细粒度预支付方法及装置 | |
TWI452533B (zh) | 維護隱私的計量 | |
WO2018099336A1 (zh) | 一种基于cpk的数字银行和数字货币及支付方法 | |
RU2157001C2 (ru) | Способ проведения платежей (варианты) | |
CN108520413B (zh) | 一种高效的安全虚拟预支付方法及装置 | |
WO1995023465A1 (en) | Efficient electronic money | |
EP0824814A1 (en) | Methods and apparatus for authenticating an originator of a message | |
WO2016134039A1 (en) | Verifying electronic transactions | |
TW200820108A (en) | Method for automatically validating a transaction, electronic payment system and computer program | |
CN110223067B (zh) | 一种具有去中心化特性的链下一对多支付方法及系统 | |
CN110223066A (zh) | 一种基于区块链的链下一对多支付方法及系统 | |
CN110728576A (zh) | 一种基于零知识证明的去中心化匿名数据交易方法 | |
CN111738857B (zh) | 应用于区块链的隐匿支付证明的生成与验证方法及装置 | |
Naganuma et al. | Auditable zerocoin | |
CN109685659B (zh) | 一种区块链硬钱包支持链下交易的方法及硬钱包 | |
Mambo et al. | Unlinkable electronic coupon protocol with anonymity control | |
Mazumdar et al. | On-line electronic payment system using signcryption | |
JP3388566B2 (ja) | 利用許可証付き電子小切手方法および装置 | |
Luo et al. | Offline transferable E-cash mechanism | |
Wang et al. | Building a consumer scalable anonymity payment protocol for Internet purchases | |
WO2021144888A1 (ja) | 決済処理装置、決済処理プログラムおよび決済処理システム | |
JP2879792B2 (ja) | 電子現金の分割使用方法およびその装置 | |
Isern-Deyà et al. | Untraceable, anonymous and fair micropayment scheme | |
CN113486408B (zh) | 基于区块链的存单管理系统和方法 | |
JPH0520344A (ja) | 電子現金方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |