买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种电子发票存储方法和装置_深圳市智税链科技有限公司_201910341695.2 

申请/专利权人:深圳市智税链科技有限公司

申请日:2019-04-26

公开(公告)日:2024-04-26

公开(公告)号:CN110189184B

主分类号:G06Q30/04

分类号:G06Q30/04;H04L9/32

优先权:

专利状态码:有效-授权

法律状态:2024.04.26#授权;2020.12.15#实质审查的生效;2019.08.30#公开

摘要:本发明公开了一种电子发票存储方法和装置,属于计算机技术领域,用于提升电子发票存储的安全性。该方法包括:开票端对待存储的电子发票进行加密;所述开票端利用所述开票端上登录的开票用户的群成员证书对加密后的所述电子发票进行群签名,所述群成员证书为可信机构验证所述开票用户的身份通过后颁发给所述开票用户的,且用于表征所述开票用户的群成员身份;所述开票端向区块链节点发送电子发票存储请求,所述电子发票存储请求携带加密后的所述电子发票以及所述群签名,以使得所述区块链节点基于所述群签名验证所述开票用户的群成员身份通过后,将加密后的所述电子发票加入至区块链进行存储。

主权项:1.一种电子发票存储方法,其特征在于,所述方法包括:开票端获得所述开票端上登录的开票用户的群成员证书,所述群成员证书为可信机构验证所述开票用户的身份通过后颁发给所述开票用户的,且用于表征所述开票用户的群成员身份;其中,所述群成员证书包括群管理员公钥、所述群成员私钥以及所述可信机构的签名,所述群成员私钥为所述可信机构利用所述可信机构的群管理员私钥对所述开票用户的用户标识进行加密得到的,所述签名是通过所述可信机构的群管理员私钥对所述群成员证书的证书内容的哈希值进行加密得到的;开票端对待存储的电子发票进行加密;所述开票端利用所述开票用户的群成员证书中携带的群成员私钥,对加密后的所述电子发票进行加密,获得群签名;所述开票端向用于存储电子发票的区块链网络中的区块链节点发送电子发票存储请求,所述电子发票存储请求携带加密后的所述电子发票以及所述群签名,以使得所述区块链节点基于所述群签名验证所述开票用户的群成员身份通过后,将加密后的所述电子发票加入至区块链进行存储,所述区块链网络用于为所述可信机构创建的群体中的群成员提供存储服务。

全文数据:一种电子发票存储方法和装置技术领域本发明涉及计算机技术领域,特别涉及一种电子发票存储方法和装置。背景技术区块链BlockChain,或称分布式数据记录账本,是一种按照一定顺序将数据区块block以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链技术去中心化、不可篡改以及不可伪造等优点,区块链技术逐渐被应用于电子发票数据的存储。但是,目前的区块链存储方案中,电子发票数据被区块链网络中的每个区块链节点所存储,且对于每个区块链节点而言,每个区块链节点都可以查看区块链上的全部电子发票数据,进而使得电子发票数据的隐私性得不到保证,且参与区块链存储的不同参与方往往希望对自己存储的数据进行一定的保密,然而现有的区块链存储方案无法满足这方面的需求。发明内容本发明实施例提供一种电子发票存储方法和装置,用于提升电子发票存储的安全性。一方面,提供一种电子发票存储方法,所述方法包括:开票端对待存储的电子发票进行加密;所述开票端利用所述开票端上登录的开票用户的群成员证书对加密后的所述电子发票进行群签名,所述群成员证书为可信机构验证所述开票用户的身份通过后颁发给所述开票用户的,且用于表征所述开票用户的群成员身份;所述开票端向区块链节点发送电子发票存储请求,所述电子发票存储请求携带加密后的所述电子发票以及所述群签名,以使得所述区块链节点基于所述群签名验证所述开票用户的群成员身份通过后,将加密后的所述电子发票加入至区块链进行存储。一方面,提供一种电子发票存储方法,所述方法包括:区块链节点接收开票端发送的电子发票存储请求,所述电子发票存储请求携带加密后的电子发票,以及利用所述开票端上登录的开票用户的群成员证书对加密后的所述电子发票进行签名得到的群签名,所述群成员证书为可信机构验证所述开票用户的身份通过后颁发给所述开票用户的,且用于表征所述开票用户的群成员身份;所述区块链节点通过所述群签名验证所述开票用户的群成员身份;所述区块链节点在验证所述开票用户的群成员身份通过后,将加密后的所述电子发票存储在所述区块链节点中。一方面,提供一种电子发票存储方法,所述方法包括:可信机构获取开票用户的注册请求,所述注册请求携带所述开票用户的身份信息;所述可信机构验证所述开票用户的身份信息通过后,基于所述可信机构的群管理员私钥对所述开票用户的身份标识进行加密得到所述开票用户的群成员私钥;所述可信机构将所述群成员私钥携带在群成员证书中发送给所述开票用户,以使得所述开票用户能够基于所述群成员证书进行电子发票的存储,所述群成员证书用于表征所述开票用户的群成员身份。一方面,提供一种电子发票存储装置,所述装置包括:数据加密单元,用于对待存储的电子发票进行加密;签名单元,用于利用已登录的开票用户的群成员证书对加密后的所述电子发票进行群签名,所述群成员证书为可信机构验证所述开票用户的身份通过后颁发给所述开票用户的,且用于表征所述开票用户的群成员身份;存储请求单元,用于向区块链节点发送电子发票存储请求,所述电子发票存储请求携带加密后的所述电子发票以及所述群签名,以使得所述区块链节点基于所述群签名验证所述开票用户的群成员身份通过后,将加密后的所述电子发票加入至区块链进行存储。所述数据加密单元,具体用于:所述开票端利用所述开票用户与受票用户约定的第一密钥对所述电子发票进行加密,以使得所述受票用户获取加密后的电子发票后,能够基于所述受票用户与所述开票用户约定的第二密钥对所述电子发票进行解密;其中,所述第一密钥与所述第二密钥相同;或者,所述第一密钥为所述开票用户的用户私钥与所述受票用户的用户公钥,所述第二密钥为所述开票用户的用户公钥与所述受票用户的用户私钥。所述签名单元,具体用于:所述开票端利用所述群成员证书中携带的群成员私钥,对加密后的所述电子发票进行群签名,所述群成员私钥为所述可信机构利用所述可信机构的群管理员私钥对所述开票用户的用户标识进行加密得到的。一方面,提供一种电子发票存储装置,所述装置包括:接收单元,用于接收开票端发送的电子发票存储请求,所述电子发票存储请求携带加密后的电子发票,以及利用所述开票端上登录的开票用户的群成员证书对加密后的所述电子发票进行签名得到的群签名,所述群成员证书为可信机构验证所述开票用户的身份通过后颁发给所述开票用户的,且用于表征所述开票用户的群成员身份;身份验证单元,用于通过所述群签名验证所述开票用户的群成员身份;执行单元,用于在验证所述开票用户的群成员身份通过后,将加密后的所述电子发票存储在所述区块链节点中。所述身份验证单元,具体用于:所述区块链节点利用所述可信机构提供的群管理员公钥对所述群签名进行解密;将解密获得的电子发票内容与加密后的所述电子发票内容进行比对;当解密获得的电子发票内容与加密后的所述电子发票内容一致时,验证所述开票用户的群成员身份通过,否则验证所述开票用户的群成员身份不通过。一方面,提供一种电子发票存储装置,所述装置包括:获取单元,用于获取开票用户的注册请求,所述注册请求携带所述开票用户的身份信息;私钥生成单元,用于验证所述开票用户的身份信息通过后,基于群管理员私钥对所述开票用户的身份标识进行加密得到所述开票用户的群成员私钥;证书颁发单元,用于将所述群成员私钥携带在群成员证书中发送给所述开票用户,以使得所述开票用户能够基于所述群成员证书进行电子发票的存储,所述群成员证书用于表征所述开票用户的群成员身份。所述装置还包括解密单元,用于:所述可信机构利用所述群管理员私钥对所述群签名进行解密,以得到所述开票用户的身份标识。一方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方面所述的方法。一方面,提供一种计算机可读存储介质,存储有处理器可执行指令,所述处理器可执行指令用于执行上述方面所述的方法。本发明实施例中,在需要存储电子发票时,会对电子发票进行加密,再利用开票用户的群成员证书对加密的电子发票进行群签名,再向区块链节点发送电子发票存储请求,这样,区块链节点可以通过验证群签名来验证开票用户的群成员身份,但是区块链节点无法获取到开票用户的真实用户身份,且由于电子发票已经被加密,从而区块链节点也无法获取到电子发票的内容,从而使得电子发票存储足够隐私,提升电子发票存储的安全性。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为现有技术中的区块链节点存储的交易信息的显示示意图;图2为本发明实施例提供的应用场景的示意图;图3为本发明实施例提供的群成员证书的颁发流程示意图;图4为本发明实施例提供的电子发票存储方法的流程示意图;图5为本发明实施例提供的一种电子发票存储装置的一种结构示意图;图6为本发明实施例提供的另一种电子发票存储装置的一种结构示意图;图7为本发明实施例提供的再一种电子发票存储装置的一种结构示意图;图8为本发明实施例提供的计算机设备的一种结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。为便于理解本发明实施例提供的技术方案,这里先对本发明实施例使用的一些关键名词进行解释:区块链:是一种按照一定顺序将数据区块block以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。其中,区块用于记录按照一定条件划分出的交易集合和状态结果,是在各个节点达成共识之后形成的。区块链节点:指区块链网络中参与交易处理的计算设备,例如计算机,手机、台式机或者服务器等拥有计算能力的设备均可作为区块链网络中的节点。例如,通过在已连接到互联网的电脑上运行特定区块链网络的程序后,该电脑即可成为该区块链网络中的一个节点。在本发明实施例中,交易处理则具体是指电子发票的存储。电子发票:电子发票与纸质发票一样,采用税务局统一发放的形式给商家使用,发票号码采用全国统一编码,采用统一防伪技术,分配给开票用户,这样开票用户就可以为受票用户开具发票。与纸质发票不同的是,电子发票不需要纸质载体,没有印制、打印、存储和邮寄等成本,企业可以节约相关费用。对称加密算法:发信方将原始数据和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出,收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。即在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。非对称加密算法:需要两个密钥:公开密钥publickey和私有密钥privatekey。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。群签名groupsignature:在一个群签名方案中,一个群体中的任意一个群成员可以以匿名的方式代表整个群体对消息进行群签名。与其他数字签名一样,群签名是可以公开验证的,而且可以只用单个群公钥来验证。例如开票用户可以对待存储的电子发票进行群签名,区块链节点接收到开票用户的电子发票存储请求之后,则可以使用群公钥对开票用户的群签名进行验证,从而验证开票用户的群成员身份。群体:包括群管理员以及群成员,群管理员通常只有一个,群成员可以有多个,在本发明实施例中,一个地区的税务局则可以作为群管理员,而该税务局管辖的企业则可以为群成员。企业成立时,需要向税务局申请注册,在注册成功后,税务局向其下发群成员证书,即表明该企业加入了该群体。另外,本文中术语“和或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“”,在不做特别说明的情况下,一般表示前后关联对象是一种“或”的关系。在现有技术中,由于区块链技术去中心化、不可篡改以及不可伪造等种种优点,区块链技术逐渐被应用于电子发票数据的存储。但是,目前的区块链存储方案中,电子发票数据被区块链网络中的每个区块链节点所存储,且对于每个区块链节点而言,每个区块链节点都可以查看区块链上的全部电子发票数据,如图1所示为天然气交易的交易信息,交易信息的所有信息都是以明文的方式存储的,那么区块链节点则可以查看所有的信息,如天然气的价格以及交易金额等,进而使得电子发票数据的隐私性得不到保证,且参与区块链存储的不同参与方往往希望对自己存储的数据进行一定的保密,然而现有的区块链存储方案无法满足这方面的需求。考虑到上述存在的问题,由于现有的电子发票存储时,是以明文的方式存储,那么要想电子发票内容不被轻易的查看到,那么势必需要对电子发票进行加密后进行存储,但是在存储时一般存储节点还是能够知道是谁将电子发票发过来存储的,那么对于请求存储电子发票的开票用户的身份依然是清楚的,鉴于此,本发明实施例提供了一种电子发票存储方法,该方法在对电子发票进行加密存储的基础上,还引入了群签名的方案,由于群签名只能证明开票用户的群成员身份,而存储节点无法直接获取到开票用户的真实身份,因而能够起到隐藏开票用户的真实身份的效果,且由于电子发票已经被加密,从而区块链节点也无法获取到电子发票的内容,从而使得电子发票存储足够隐私,提升电子发票存储的安全性。在介绍完本发明实施例的设计思想之后,下面对本发明实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本发明实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本发明实施例提供的技术方案。请参见图2所示,为发明实施例能够适用的一种场景示意图,该场景中包括可信机构101、N个开票端102以及M个区块链节点103,M、N均为正整数,M、N的值本发明实施例并不进行限制。可信机构101可以包括一个或多个处理器1011、存储器1012、与开票端102交互的IO接口1013以及与区块链节点103交互的IO接口1014等。其中,可信机构101例如可以是具有权威性的政府机构,例如税务局等。对于可信机构101,本发明实施例中是指可信机构的设备,例如可信机构的服务器,或者可信机构中工作人员所操作的工作设备等。开票端102可以包括一个或多个处理器1021、存储器1022、与可信机构101交互的IO接口1023、与区块链节点103交互的IO接口1024以及显示面板1025等。其中,开票端102的存储器1022中可以存储开票应用的程序指令,当这些程序指令被处理器1021运行时,能够在显示面板1025中呈现开票界面,开票用户则可以在开票应用中登录自身的账号,以进行开票操作。区块链节点103可以包括一个或多个处理器1031、存储器1032、与可信机构101交互的IO接口1033以及与开票端102交互的IO接口1034等。上述的各个设备的存储器中均存储有程序指令,程序指令被处理器执行时用以实现上述各个设备的功能。例如,在本发明实施例中,可信机构101作为具有权威性的机构,则可以作为群体的群管理员,可以为在可信机构101注册成功的开票用户颁发群成员证书,开票用户在开票端102进行开票时,则可以通过自身的群成员证书进行群签名,区块链节点103在收到开票用户的电子发票存储请求时,可以对群签名进行验证,以验证开票用户的群成员身份,并在验证开票用户的群成员身份通过时,才对解密的电子发票进行存储。可信机构101、开票端102以及区块链节点103之间可以通过一个或者多个网络104进行通信连接。该网络104可以是有线网络,也可以是无线网络,例如无线网络可以是移动蜂窝网络,或者可以是无线保真WIreless-Fidelity,WIFI网络,当然还可以是其他可能的网络,本发明实施例对此不做限制。当然,本发明实施例提供的方法并不限用于图2所示的应用场景中,还可以用于其他可能的应用场景,例如图2所示的场景中还可以增加受票用户的受票端,本发明实施例并不进行限制。对于图2所示的应用场景的各个设备所能实现的功能将在后续的方法实施例中一并进行描述,在此先不过多详述。本发明实施例中,在开票用户进行开票之前,首先需要获得开票的能力,获得开票的能力以及开票的存储都需要在可信机构进行注册,如税务局,也就是说开票用户首先需要成为可信机构管理的群体的群成员,因此,在介绍电子发票存储方法之前,首先需要对可信机构颁发群成员证书给开票用户的过程进行介绍,请参见图3,为可信机构颁发群成员证书给开票用户的流程示意图。步骤301:可信机构创建群体。本发明实施例中,群体是由可信机构创建的,例如对于某市的税务局,用于管理该市内的企业或者商户的税务相关工作,则税务局则可创建一群体,使得该群体内的企业或者商户开具的电子发票能够存储在相应的区块链上。其中,创建群体的实际可以是在可信机构成立之时,或者可信机构接入到用于存储电子发票的区块链网络时,由于区块链网络中一般不会为所有开票用户提供存储服务,即需要对开票用户的身份有一定的限制,例如区块链网络只为可信机构创建的群体中的群成员提供存储服务。具体的,可信机构创建群体的过程,实质上即为生成群管理员公钥和群管理员私钥的过程,其中,群管理员公钥可以公开与所有的群成员以及区块链节点,群管理员私钥则可信机构所持有,群管理员公钥和群管理员私钥在开票用户开票请求存储电子发票时需要用到,在后续的描述中将会逐一涉及,因此在此先不过多详述。群管理员私钥和公钥的生成可以通过加密算法来获取,加密算法例如可以为RSA加密算法或者概率多项式时间Polynomialtime算法等,当然,还可以为其他可能的加密算法,本发明实施例对此不做限制。步骤302:开票用户向可信机构提交注册请求。本发明实施例中,开票用户一般为企业或者商户,在其成立之初,都需要在可信机构进行注册,例如需要在税务局进行注册,则开票用户可以向可信机构提交注册请求,注册请求可以携带开票用户的身份信息,例如开票用户的企业编号等信息,相应的,可信机构则可以获取到开票用户提交的注册请求。在实际应用中,开票用户提交的注册请求可以是通过线下方式提交的,例如企业的工作人员到可信机构的办理大厅进行注册,在企业的工作人员提交注册所需资料之后,通过扫描或者可信机构工作人员输入等方式,可信机构的设备即可获取到该企业的身份信息。或者,开票用户还可以通过线上方式提交注册请求,例如可以通过可信机构的网站提交注册请求,在提交注册请求时,也会将注册所需的资料一并上传,这样,可信机构的设备接收到线上的注册请求之后,则可以获取得到开票用户的身份信息。步骤303:可信机构验证开票用户的身份信息是否通过。在可信机构获取到开票用户的身份信息之后,一般需要验证开票用户的身份信息是否满足注册的要求,具体要求则可以视可信机构的政策而定。在步骤303的验证结果为否,即在开票用户的身份信息验证未通过时,可信机构可以向开票用户返回注册失败消息,并在注册失败消息中携带注册失败原因,例如身份信息有误,或者身份信息不齐全等原因。步骤304:在步骤303的验证结果为是时,基于可信机构的群管理员私钥对开票用户的身份标识进行加密得到开票用户的群成员私钥。本发明实施例中,可信机构作为群体的群管理员,可以决定请求注册的开票用户可加入该群体,以成为该群体的群成员,决定的因素则可以是上述对开票用户身份信息的验证。因此,在开票用户的身份信息验证通过时,可信机构则可以确定该开票用户可以加入群体成为群成员,进而可信机构可以为开票用户生成相应的群成员私钥以及群成员证书。具体的,在生成开票用户的群成员私钥时,可信机构可以通过自身持有的群管理员私钥对开票用户的身份标识进行加密,以得到开票用户的群成员私钥。其中,可信机构生成群成员私钥可以采用对称加密算法进行加密,这样,只有通过可信机构持有的群管理员私钥才能对群成员私钥解密得到开票用户的身份标识,从而得知开票用户的具体身份,这样,在电子发票的存储发生纠纷时,则可以通过可信结构解密得到开票用户的身份标识,从而确定发生纠纷的开票用户的真实身份。其中,开票用户的身份标识例如可以是企业或者商户的注册编号等。本发明实施例中,可信机构生成群成员私钥之后,则可以基于生成的群成员私钥生成开票用户的群成员证书。其中,群成员证书中可以包括群管理员公钥、开票用户的群成员私钥以及可信机构的签名,当然,还可以包括其他可能的信息,例如证书的颁发机构、证书有效期以及证书持有者等信息,本发明实施例中对此不做限制。可信机构的签名用于表征该群成员证书是该可信机构签发的,且可以通过可信机构的签名验证群成员证书内容是否被篡改。具体而言,可信机构的签名一般是通过可信机构的群管理员私钥对证书内容的哈希值进行加密得到的,开票用户在获取群成员证书之后,可以通过群管理员公钥对签名进行解密,获取证书内容的哈希值,再自行对证书携带的内容进行哈希计算,再次得到以哈希值,再将两个哈希值进行对比,若两个哈希值一致,则表明群成员证书内容未被篡改,证书是合法的;否则,若两个哈希值不一致,则表明群成员证书内容已被篡改,证书是不合法的。在具体应用时,可信机构生成群成员私钥和群成员证书的过程可以被封装成交互式协议,执行该协议则可以产生群成员的群成员私钥和群成员证书,并使群管理员得到群成员的私有密钥。步骤305:可信机构将群成员证书发送给开票用户。本发明实施例中,可信机构得到群成员证书之后,则可以将能够表征开票用户的群成员身份的群成员证书发送给开票用户,其中,群成员证书中携带开票用户的群成员私钥,这样,开票用户开票之后,则能够基于群成员证书进行电子发票的存储。具体的,可信机构可以将群成员证书上传至自身的后台服务器,开票用户通过自己的账号登录可信机构的网站,则可以下载自身对应的群成员证书;或者,可信机构可以将群成员证书通过邮件发送给开票用户。下面,将对电子发票存储过程进行介绍。请参见图4,为本发明实施例提供的电子发票存储方法的流程示意图,该方法的流程描述如下。步骤401:开票端对待存储的电子发票进行加密。本发明实施例中,开票用户一般是指出售商品或者服务的企业或者商家,在出售商品或者服务之后,购买方可以要求出售方开具发票,这里的出售方即为开票用户,相应的,购买方则为受票用户。一般而言,在购买方与出售方发生交易,且购买方提供开具发票相关信息之后,例如发票抬头和税号等信息之后,开票端则可以基于购买方提供的信息生成电子发票,为保证电子发票存储的可靠性,可以将生成的电子发票通过区块链进行存储。其中,为了提升各区块链节点存储的电子发票的隐私性,在请求区块链节点存储电子发票之前,可以对待存储的电子发票进行加密。因为电子发票一般需要提供给受票用户,因而受票用户需要能够对加密后的电子发票进行解密,以获取电子发票的明文内容,因此电子发票的加密所使用的密钥可以是开票用户与受票用户约定的第一密钥,这样,开票端利用第一密钥对电子发票加密后,受票用户的受票端则可以利用与开票用户约定的第二密钥对加密后的电子发票进行解密。具体的,开票端可以利用对称加密算法对电子发票进行加密,即上述的第一密钥和第二密钥相同。具体的,开票端可以利用非对称加密算法对电子发票进行加密,即上述的第一密钥和第二密钥可以不相同,例如第一密钥可以为开票用户的私钥,则第二密钥可以为开票用户的公钥;或者,为提升加密的可靠性,第一密钥可以为开票用户的用户私钥与受票用户的用户公钥,则第二密钥可以为开票用户的用户公钥与受票用户的用户私钥。需要声明的是,这里的私钥和公钥可以是受票用户或者开票用户自身的密钥,与上述可信机构提供的群成员私钥和群管理员公钥并无直接的联系。步骤402:开票端利用开票用户的群成员证书对加密后的电子发票进行群签名。本发明实施例中,群成员证书是可信机构验证开票用户的身份通过后,确认开票用户可加入群体后颁发给开票用户的,可以表征开票用户的群成员身份,因此,开票端可以利用群成员证书进行群签名,以表明该电子发票是该群体中群成员所请求存储的。具体的,开票端可以利用群成员证书中携带的群成员私钥,对加密后的电子发票进行群签名。具体而言,开票端利用群成员私钥,采用非对称加密算法对加密后的电子发票的哈希值进行加密,以得到群签名。其中,在进行存储时,可能除待存储的电子发票之外,还会额外存储与电子发票相关的信息,那么可以将需要存储的信息是为一个整体,对这个整体进行加密后,再利用群成员证书进行群签名即可。步骤403:开票端向区块链节点发送电子发票存储请求。其中,电子发票存储请求用于请求区块链节点存储加密后的电子发票,电子发票存储请求中携带了加密后的电子发票以及群签名。本发明实施例中,区块链网络中可以包括多个节点,其中,不同节点的功能可以相同,也可以不同。一般而言,区块链网络中的节点所需要执行的功能可以包括验证功能和存储功能,当然,还可以包括其他可能的功能,本发明实施例对此不做限制。那么,区块链网络中的各个节点可以为相同功能的节点,即各个节点均需要实现验证和存储的功能,那么开票端一般需要将电子发票存储请求发送给所有的区块链节点;或者,还可以部分节点用于实现验证功能,这些节点可称为验证节点,而部分节点用于执行存储功能,这些节点可称为存储节点,那么开票端可以将电子发票存储请求发送给所有的验证节点进行群成员身份的验证,当然,也可以发送给其中部分验证节点,例如一个验证节点,该验证节点验证群成员身份通过后,就将加密后的电子发票发送给所有存储节点进行存储。步骤404:区块链节点确定验证开票用户的群成员身份是否通过。本发明实施例中,以各个区块链节点为相同功能的节点为例,且由于各个区块链节点所执行的过程均是相同的,因此下面仅以其中一个区块链节点为例进行描述。区块链节点接收到电子发票存储请求之后,则需要验证发送该请求的开票用户是否为群成员,也就是验证开票用户的群成员身份,只有开票用户的群成员身份验证通过时,才会进行电子发票的存储。其中,区块链节点可以通过群签名来验证开票用户的群成员身份。具体而言,群签名是通过群成员私钥加密得到的,而群成员私钥是通过群管理员私钥加密得到的,因而群签名实质上也是与群管理员私钥相关的,因而还是可以利用群管理员公钥对群签名进行验证。因为群管理员公钥可以被公开,因而区块链节点可以获取得到可信机构提供的群管理员公钥,进而通过群管理员公钥对群签名进行验证。具体的,区块链节点可以通过群管理员公钥对群签名进行解密,从而获得电子发票内容,并将解密获得的电子发票内容与加密后的电子发票内容进行比对;当解密获得的电子发票内容与加密后的电子发票内容一致时,则表明群签名是正确的,即验证开票用户的群成员身份通过,即允许该开票用户在区块链上存储电子发票,同时通过群签名进行验证,还能够防止非法人员对电子发票存储请求的内容进行篡改;而若是解密获得的电子发票内容与加密后的电子发票内容一致,则表明验证开票用户的群成员身份不通过,出现这种情况的一种可能的原因是电子发票存储请求的内容被篡改了,那么则不能将该电子发票存储在区块链上,且区块链节点还可以请求可信机构进行纠纷处理,从而确定具体原因。在实际应用时,为避免电子发票内容占用过多字节,通常都是通过哈希运算得到加密后的电子发票内容的哈希值,再通过群成员私钥对哈希值进行加密,因而区块链节点通过群管理员公钥对群签名进行解密后获得的则可以是加密后的电子发票内容的哈希值,区块链节点再通过电子发票存储请求中携带的加密后的电子发票进行哈希运算,再次得到以哈希值,再将两个哈希值进行比较,当两个哈希值一致时,验证开票用户的群成员身份通过,否则,若是两个哈希值不一致,则表示验证开票用户的群成员身份不通过。本发明实施例中,虽然区块链节点可以通过群管理员公钥对群签名进行解密,以验证群签名的正确性,但是并不能确定签署该群签名的开票用户具体是谁,进一步的增加电子发票存储的隐私性。步骤405:区块链节点将加密后的电子发票存储在区块链节点中。本发明实施例中,当区块链节点验证开票用户的身份通过后,则可以将加密后的电子发票存储在区块链节点中。具体的,当区块链网络中各个区块链节点的功能均相同时,各个区块链节点验证开票用户的身份通过后,则将加密后的电子发票存储在自身存储器中;或者,当区块链网络中验证节点和存储节点为不同的节点时,那么验证节点验证开票用户的身份通过后,则可以将加密后的电子发票存储在存储节点中。本发明实施中,除存储加密后的电子发票之外,还可以将电子发票存储请求中携带的其他信息一并进行存储,例如群签名等。本发明实施例中,电子发票存储至区块链中后,受票用户可以向区块链节点请求获取加密后的电子发票,并通过约定的密钥对加密后的电子发票进行解密后,则可以获得电子发票的明文信息。综上所述,本发明实施例中,在需要存储电子发票时,会对电子发票进行加密,再利用开票用户的群成员证书对加密的电子发票进行群签名,再向区块链节点发送电子发票存储请求,这样,区块链节点可以通过验证群签名来验证开票用户的群成员身份,但是区块链节点无法获取到开票用户的真实用户身份,且由于电子发票已经被加密,从而区块链节点也无法获取到电子发票的内容,从而使得电子发票存储足够隐私,提升电子发票存储的安全性,达到保护商业机密的效果。请参见图5,基于同一发明构思,本发明实施例还提供了一种电子发票存储装置50,该装置例如可以为图2所示的开票端,该装置包括:数据加密单元501,用于对待存储的电子发票进行加密;签名单元502,用于利用已登录的开票用户的群成员证书对加密后的电子发票进行群签名,群成员证书为可信机构验证开票用户的身份通过后颁发给开票用户的,且用于表征开票用户的群成员身份;存储请求单元503,用于向区块链节点发送电子发票存储请求,电子发票存储请求携带加密后的电子发票以及群签名,以使得区块链节点基于群签名验证开票用户的群成员身份通过后,将加密后的电子发票加入至区块链进行存储。数据加密单元501,具体用于:开票端利用开票用户与受票用户约定的第一密钥对电子发票进行加密,以使得受票用户获取加密后的电子发票后,能够基于受票用户与开票用户约定的第二密钥对电子发票进行解密;其中,第一密钥与第二密钥相同;或者,第一密钥为开票用户的用户私钥与受票用户的用户公钥,第二密钥为开票用户的用户公钥与受票用户的用户私钥。签名单元502,具体用于:开票端利用群成员证书中携带的群成员私钥,对加密后的电子发票进行群签名,群成员私钥为可信机构利用可信机构的群管理员私钥对开票用户的用户标识进行加密得到的。该装置可以用于执行图3或图4所示的实施例中所示的方法,因此,对于该装置的各功能模块所能够实现的功能等可参考图3或图4所示的实施例的描述,不多详述。请参见图6,基于同一发明构思,本发明实施例还提供了一种电子发票存储装置60,该装置例如可以为图2所示的区块链节点,该装置包括:接收单元601,用于接收开票端发送的电子发票存储请求,电子发票存储请求携带加密后的电子发票,以及利用开票端上登录的开票用户的群成员证书对加密后的电子发票进行签名得到的群签名,群成员证书为可信机构验证开票用户的身份通过后颁发给开票用户的,且用于表征开票用户的群成员身份;身份验证单元602,用于通过群签名验证开票用户的群成员身份;执行单元603,用于在验证开票用户的群成员身份通过后,将加密后的电子发票存储在区块链节点中。身份验证单元602,具体用于:区块链节点利用可信机构提供的群管理员公钥对群签名进行解密;将解密获得的电子发票内容与加密后的电子发票内容进行比对;当解密获得的电子发票内容与加密后的电子发票内容一致时,验证开票用户的群成员身份通过,否则验证开票用户的群成员身份不通过。该装置可以用于执行图3或图4所示的实施例中所示的方法,因此,对于该装置的各功能模块所能够实现的功能等可参考图3或图4所示的实施例的描述,不多详述。请参见图7,基于同一发明构思,本发明实施例还提供了一种电子发票存储装置70,该装置例如可以为图2所示的可信机构,该装置包括:获取单元701,用于获取开票用户的注册请求,注册请求携带开票用户的身份信息;私钥生成单元702,用于验证开票用户的身份信息通过后,基于群管理员私钥对开票用户的身份标识进行加密得到开票用户的群成员私钥;证书颁发单元703,用于将群成员私钥携带在群成员证书中发送给开票用户,以使得开票用户能够基于群成员证书进行电子发票的存储,群成员证书用于表征开票用户的群成员身份。装置还包括解密单元704,用于:可信机构利用群管理员私钥对群签名进行解密,以得到开票用户的身份标识。该装置可以用于执行图3或图4所示的实施例中所示的方法,因此,对于该装置的各功能模块所能够实现的功能等可参考图3或图4所示的实施例的描述,不多详述。其中,解密单元704虽然在图7中一并示出,但需要知道的是,解密单元704并不是必选的功能单元,因此在图7中以虚线示出。请参见图8,基于同一技术构思,本发明实施例还提供了一种计算机设备80,可以包括存储器801和处理器802。所述存储器801,用于存储处理器802执行的计算机程序。存储器801可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据计算机设备的使用所创建的数据等。处理器802,可以是一个中央处理单元centralprocessingunit,CPU,或者为数字处理单元等等。本发明实施例中不限定上述存储器801和处理器802之间的具体连接介质。本发明实施例在图8中以存储器801和处理器802之间通过总线803连接,总线803在图8中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线803可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。存储器801可以是易失性存储器volatilememory,例如随机存取存储器random-accessmemory,RAM;存储器801也可以是非易失性存储器non-volatilememory,例如只读存储器,快闪存储器flashmemory,硬盘harddiskdrive,HDD或固态硬盘solid-statedrive,SSD、或者存储器801是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器801可以是上述存储器的组合。处理器802,用于调用所述存储器801中存储的计算机程序时执行如图3~图4中所示的实施例中各设备所执行的方法。在一些可能的实施方式中,本发明提供的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本发明各种示例性实施方式的方法中的步骤,例如,所述计算机设备可以执行如图3~图4中所示的实施例中各设备所执行的方法。本发明实施例还提供了一种计算机存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。在一些可能的实施方式中,本发明提供的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本发明各种示例性实施方式的方法中的步骤,例如,所述计算机设备可以执行如图3~图4中所示的实施例中各设备所执行的方法。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子非穷举的列表包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器RAM、只读存储器ROM、可擦式可编程只读存储器EPROM或闪存、光纤、便携式紧凑盘只读存储器CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。本发明的实施方式的用于上述方法的程序产品可以采用便携式紧凑盘只读存储器CD-ROM并包括程序代码,并可以在计算设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

权利要求:1.一种电子发票存储方法,其特征在于,所述方法包括:开票端对待存储的电子发票进行加密;所述开票端利用所述开票端上登录的开票用户的群成员证书对加密后的所述电子发票进行群签名,所述群成员证书为可信机构验证所述开票用户的身份通过后颁发给所述开票用户的,且用于表征所述开票用户的群成员身份;所述开票端向区块链节点发送电子发票存储请求,所述电子发票存储请求携带加密后的所述电子发票以及所述群签名,以使得所述区块链节点基于所述群签名验证所述开票用户的群成员身份通过后,将加密后的所述电子发票加入至区块链进行存储。2.如权利要求1所述的方法,其特征在于,所述开票端对待存储的电子发票进行加密,包括:所述开票端利用所述开票用户与受票用户约定的第一密钥对所述电子发票进行加密,以使得所述受票用户获取加密后的电子发票后,能够基于所述受票用户与所述开票用户约定的第二密钥对所述电子发票进行解密;其中,所述第一密钥与所述第二密钥相同;或者,所述第一密钥为所述开票用户的用户私钥与所述受票用户的用户公钥,所述第二密钥为所述开票用户的用户公钥与所述受票用户的用户私钥。3.如权利要求1所述的方法,其特征在于,所述开票端利用所述开票端上登录的开票用户的群成员证书对加密后的所述电子发票进行群签名,包括:所述开票端利用所述群成员证书中携带的群成员私钥,对加密后的所述电子发票进行群签名,所述群成员私钥为所述可信机构利用所述可信机构的群管理员私钥对所述开票用户的用户标识进行加密得到的。4.一种电子发票存储方法,其特征在于,所述方法包括:区块链节点接收开票端发送的电子发票存储请求,所述电子发票存储请求携带加密后的电子发票,以及利用所述开票端上登录的开票用户的群成员证书对加密后的所述电子发票进行签名得到的群签名,所述群成员证书为可信机构验证所述开票用户的身份通过后颁发给所述开票用户的,且用于表征所述开票用户的群成员身份;所述区块链节点通过所述群签名验证所述开票用户的群成员身份;所述区块链节点在验证所述开票用户的群成员身份通过后,将加密后的所述电子发票存储在所述区块链节点中。5.如权利要求4所述的方法,其特征在于,所述区块链节点通过所述群签名验证所述开票用户的群成员身份,包括:所述区块链节点利用所述可信机构提供的群管理员公钥对所述群签名进行解密;将解密获得的电子发票内容与加密后的所述电子发票内容进行比对;当解密获得的电子发票内容与加密后的所述电子发票内容一致时,验证所述开票用户的群成员身份通过,否则验证所述开票用户的群成员身份不通过。6.一种电子发票存储方法,其特征在于,所述方法包括:可信机构获取开票用户的注册请求,所述注册请求携带所述开票用户的身份信息;所述可信机构验证所述开票用户的身份信息通过后,基于所述可信机构的群管理员私钥对所述开票用户的身份标识进行加密得到所述开票用户的群成员私钥;所述可信机构将所述群成员私钥携带在群成员证书中发送给所述开票用户,以使得所述开票用户能够基于所述群成员证书进行电子发票的存储,所述群成员证书用于表征所述开票用户的群成员身份。7.如权利要求6所述的方法,其特征在于,所述方法还包括:所述可信机构利用所述群管理员私钥对所述群签名进行解密,以得到所述开票用户的身份标识。8.一种电子发票存储装置,其特征在于,所述装置包括:数据加密单元,用于对待存储的电子发票进行加密;签名单元,用于利用已登录的开票用户的群成员证书对加密后的所述电子发票进行群签名,所述群成员证书为可信机构验证所述开票用户的身份通过后颁发给所述开票用户的,且用于表征所述开票用户的群成员身份;存储请求单元,用于向区块链节点发送电子发票存储请求,所述电子发票存储请求携带加密后的所述电子发票以及所述群签名,以使得所述区块链节点基于所述群签名验证所述开票用户的群成员身份通过后,将加密后的所述电子发票加入至区块链进行存储。9.一种电子发票存储装置,其特征在于,所述装置包括:接收单元,用于接收开票端发送的电子发票存储请求,所述电子发票存储请求携带加密后的电子发票,以及利用所述开票端上登录的开票用户的群成员证书对加密后的所述电子发票进行签名得到的群签名,所述群成员证书为可信机构验证所述开票用户的身份通过后颁发给所述开票用户的,且用于表征所述开票用户的群成员身份;身份验证单元,用于通过所述群签名验证所述开票用户的群成员身份;执行单元,用于在验证所述开票用户的群成员身份通过后,将加密后的所述电子发票存储在所述区块链节点中。10.一种电子发票存储装置,其特征在于,所述装置包括:获取单元,用于获取开票用户的注册请求,所述注册请求携带所述开票用户的身份信息;私钥生成单元,用于验证所述开票用户的身份信息通过后,基于群管理员私钥对所述开票用户的身份标识进行加密得到所述开票用户的群成员私钥;证书颁发单元,用于将所述群成员私钥携带在群成员证书中发送给所述开票用户,以使得所述开票用户能够基于所述群成员证书进行电子发票的存储,所述群成员证书用于表征所述开票用户的群成员身份。

百度查询: 深圳市智税链科技有限公司 一种电子发票存储方法和装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。