CN111737748B - 一种应用于区块链的数据解密方法、装置及存储介质 - Google Patents
一种应用于区块链的数据解密方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111737748B CN111737748B CN202010591749.3A CN202010591749A CN111737748B CN 111737748 B CN111737748 B CN 111737748B CN 202010591749 A CN202010591749 A CN 202010591749A CN 111737748 B CN111737748 B CN 111737748B
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- iteration
- decryption result
- sub
- decryption
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种应用于区块链的数据解密方法、装置及存储介质,其中方法为:第一区块链节点获取来自各第二区块链节点对待解密数据的各第二解密结果及所述各第二解密结果的零知识证明;所述第一区块链节点若验证所述各第二解密结果的零知识证明均通过,则根据第一解密结果和所述各第二解密结果获得联合解密结果;所述第一区块链节点根据所述联合解密结果,对所述待解密数据解密。上述方法应用于金融科技(Fintech)时,能够在不披露所述各第二子秘密的情况下,验证所述各第二解密结果,并在验证通过后再根据第一解密结果和所述各第二解密结果获得联合解密结果,并根据所述联合解密结果,对所述待解密数据解密。
Description
技术领域
本发明涉及金融科技(Fintech)领域中的数据安全领域,尤其涉及一种应用于区块链的数据解密方法、装置及存储介质。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。金融科技领域中对金融交易的安全性要求极高,因此常通过区块链(blockchain)来实现金融交易。
区块链系统可能需要对区块链的用户传输的加密数据进行解密。然而,如何确定加密数据是否是按照正确方式解密便成为难点。目前的解密方式中,甲区块链节点对加密数据解密的共识过程中,若不考虑解密正确性的验证,那么其它区块链节点只能通过签名验证是否为甲区块链节点解的密,若考虑解密正确性的验证,目前的方法是向其它区块链节点披露甲区块链节点的解密秘钥,那么这个解密秘钥便泄露了。因此,目前区块链节点的数据解密方式中,如何在不泄露秘钥的情况下,验证加密数据是否按照正确方式解密,是一个亟待解决的问题。
发明内容
本发明提供一种应用于区块链的数据解密方法及装置,解决了现有技术中不能在不泄露秘钥的情况下验证加密数据是否按照正确方式解密的问题。
第一方面,本发明提供一种应用于区块链的数据解密方法,包括:第一区块链节点获取来自各第二区块链节点对待解密数据的各第二解密结果及所述各第二解密结果的零知识证明;其中,任一第二区块链节点的第二解密结果的零知识证明用于验证所述第二解密结果是否为根据所述第二区块链节点的第二子秘密解密得到的;所述第一区块链节点若验证所述各第二解密结果的零知识证明均通过,则根据第一解密结果和所述各第二解密结果获得联合解密结果;所述第一解密结果是根据所述第一区块链节点的第一子秘密对所述待解密数据获得的;所述第一区块链节点根据所述联合解密结果,对所述待解密数据解密。
上述方法中,所述第一区块链节点和所述各第二区块链节点都有各自的第二子秘密,所述第一区块链节点除了所述各第二解密结果外,还获取了所述各第二解密结果的零知识证明,能够在不披露所述各第二子秘密的情况下,验证所述各第二解密结果是否是根据所述第二区块链节点的第二子秘密解密得到的,并在验证通过后再根据第一解密结果和所述各第二解密结果获得联合解密结果,并根据所述联合解密结果,对所述待解密数据解密。
可选的,所述待解密数据是根据具有算术同态性的预设加密算法加密得到的;所述第二解密结果的零知识证明是所述第二区块链节点基于所述预设加密算法,根据所述第二解密结果生成的;所述第二解密结果的零知识证明的验证是所述第一区块链节点基于所述预设加密算法,至少根据所述第二解密结果、所述待解密数据验证的。
上述方法中,所述待解密数据、所述第二解密结果的零知识证明都是基于所述预设加密算法根据所述第二解密结果得到的,所述第二解密结果的零知识证明也是基于所述预设加密算法验证的,因此可以通过统一的具有算术同态性的预设加密算法,能够在不泄露秘钥的情况下验证加密数据是否按照正确方式解密。
可选的,所述预设加密算法是基于q阶有限循环群的加密算法;q为素数;所述待解密数据包括第一迭代密文和第二迭代密文;所述第一迭代密文是根据第一历史密文和第一子密文得到的;所述第一历史密文为各第一子历史密文的迭代结果或为空;所述第二迭代密文是根据第二历史密文和第二子密文得到的;所述第二历史密文为各第二子历史密文的迭代结果或为空;所述第一子密文是根据待加密数据、第一随机数和私密执行公钥得到的;所述第一随机数为小于q的随机整数;其中,所述私密执行公钥是根据所述第一子秘密、所述各第二子秘密和预设生成元得到的;所述预设生成元为所述q阶有限循环群的生成元;所述第二子密文是根据所述第一随机数和所述预设生成元得到的。
上述方法中,在所述预设加密算法是基于q阶有限循环群的加密算法,通过所述私密执行公钥得到所述第一子密文和所述第二子密文,比你高根据历史密文的迭代结果得到第一迭代密文和第二迭代密文,从而在不泄露秘钥的情况下验证加密数据是否按照正确方式解密的方法。
可选的,所述第二解密结果的零知识证明包括所述第一迭代密文的零知识证明和所述第二迭代密文的零知识证明;所述第一迭代密文和所述第二迭代密文中任一迭代密文的零知识证明,是按照以下方式生成:根据第二随机数和所述预设生成元,获得第一中间结果;所述第二随机数为小于q的随机整数;根据所述第二随机数和所述迭代密文,获得第二中间结果;将所述第一中间结果和所述第二中间结果按照预设哈希函数,生成所述迭代密文的零知识证明的第一子部分;根据所述第二随机数、所述第一子部分和所述第二区块链节点的第二子秘密,生成所述迭代密文的零知识证明的第二子部分。
上述方式下,根据得到的所述第一中间结果和所述第二中间结果,通过单向运算的预设哈希函数,生成所述迭代密文的零知识证明的第一子部分、第二子部分,从而使得第一子部分、第二子部分的随机性更强,更难以被破解。
可选的,所述第二解密结果包括所述第一迭代密文的解密结果和所述第二迭代密文的解密结果;针对所述第一迭代密文和所述第二迭代密文中任一迭代密文,所述第一区块链节点按照以下方式验证所述迭代密文的零知识证明:所述第一区块链节点根据所述第一子部分、所述第二子部分、所述预设生成元、所述私密执行公钥,获得第一验证部分;所述第一区块链节点根据所述第一子部分、所述第二子部分、所述迭代密文和所述迭代密文的解密结果,获得第二验证部分;所述第一区块链节点将所述第一验证部分和所述第二验证部分按照所述预设哈希函数,生成所述迭代密文的零知识证明的哈希中间结果;若所述哈希中间结果和所述第一子部分一致,所述第一区块链节点验证所述迭代密文的零知识证明通过。
上述方式下,所述第二解密结果包括所述第一迭代密文的解密结果和所述第二迭代密文的解密结果,通过第一验证部分、第二验证部分得到单向的哈希中间结果,从而通过随机性更强的验证方式,验证所述迭代密文的零知识证明是否通过。
可选的,所述第一区块链节点根据第一解密结果和所述各第二解密结果获得联合解密结果,包括:所述第一区块链节点将所述各第二解密结果的累加结果,作为所述联合解密结果;针对所述第一迭代密文和所述第二迭代密文中任一迭代密文,所述第一区块链节点根据所述联合解密结果,按照以下方式对所述迭代密文解密:所述第一区块链节点根据所述迭代密文和所述联合解密结果,对所述迭代密文求逆元。
上述方式中,所述第一区块链节点考虑了所有的各第二解密结果,得到所述联合解密结果,再根据所述迭代密文和所述联合解密结果,对所述迭代密文求逆元的单向运算对所述迭代密文解密,从而解密更加安全。
可选的,所述第一区块链节点根据所述第一解密结果生成所述第一解密结果的零知识证明;所述第一区块链节点将所述待解密数据、所述第一解密结果和所述第一解密结果的零知识证明发送至所述各第二区块链节点。
上述方式下,所述第一区块链节点生成所述第一解密结果的零知识证明后,发送至所述各第二区块链节点,从而以供其它所述各第二区块链节点,从而可以供多个区块链节点同步解密。
第二方面,本发明提供一种应用于区块链的数据解密装置,包括:获取模块,用于获取来自各第二区块链节点对待解密数据的各第二解密结果及所述各第二解密结果的零知识证明;其中,任一第二区块链节点的第二解密结果的零知识证明用于验证所述第二解密结果是否为根据所述第二区块链节点的第二子秘密解密得到的;处理模块,用于若验证所述各第二解密结果的零知识证明均通过,则根据第一解密结果和所述各第二解密结果获得联合解密结果;根据所述联合解密结果,对所述待解密数据解密;所述第一解密结果是根据所述第一区块链节点的第一子秘密对所述待解密数据获得的。
可选的,所述待解密数据是根据具有算术同态性的预设加密算法加密得到的;所述第二解密结果的零知识证明是所述第二区块链节点基于所述预设加密算法,根据所述第二解密结果生成的;所述第二解密结果的零知识证明的验证是所述第一区块链节点基于所述预设加密算法,至少根据所述第二解密结果、所述待解密数据验证的。
可选的,所述预设加密算法是基于q阶有限循环群的加密算法;q为素数;所述待解密数据包括第一迭代密文和第二迭代密文;所述第一迭代密文是根据第一历史密文和第一子密文得到的;所述第一历史密文为各第一子历史密文的迭代结果或为空;所述第二迭代密文是根据第二历史密文和第二子密文得到的;所述第二历史密文为各第二子历史密文的迭代结果或为空;所述第一子密文是根据待加密数据、第一随机数和私密执行公钥得到的;所述第一随机数为小于q的随机整数;其中,所述私密执行公钥是根据所述第一子秘密、所述各第二子秘密和预设生成元得到的;所述预设生成元为所述q阶有限循环群的生成元;所述第二子密文是根据所述第一随机数和所述预设生成元得到的。
可选的,所述第二解密结果的零知识证明包括所述第一迭代密文的零知识证明和所述第二迭代密文的零知识证明;所述第一迭代密文和所述第二迭代密文中任一迭代密文的零知识证明,是按照以下方式生成:根据第二随机数和所述预设生成元,获得第一中间结果;所述第二随机数为小于q的随机整数;根据所述第二随机数和所述迭代密文,获得第二中间结果;将所述第一中间结果和所述第二中间结果按照预设哈希函数,生成所述迭代密文的零知识证明的第一子部分;根据所述第二随机数、所述第一子部分和所述第二区块链节点的第二子秘密,生成所述迭代密文的零知识证明的第二子部分。
可选的,所述第二解密结果包括所述第一迭代密文的解密结果和所述第二迭代密文的解密结果;针对所述第一迭代密文和所述第二迭代密文中任一迭代密文,所述处理模块具体用于:根据所述第一子部分、所述第二子部分、所述预设生成元、所述私密执行公钥,获得第一验证部分;根据所述第一子部分、所述第二子部分、所述迭代密文和所述迭代密文的解密结果,获得第二验证部分;将所述第一验证部分和所述第二验证部分按照所述预设哈希函数,生成所述迭代密文的零知识证明的哈希中间结果;若所述哈希中间结果和所述第一子部分一致,验证所述迭代密文的零知识证明通过。
所述处理模块具体用于:将所述各第二解密结果的累加结果,作为所述联合解密结果;针对所述第一迭代密文和所述第二迭代密文中任一迭代密文,根据所述迭代密文和所述联合解密结果,对所述迭代密文求逆元。
所述处理模块还用于:根据所述第一解密结果生成所述第一解密结果的零知识证明;将所述待解密数据、所述第一解密结果和所述第一解密结果的零知识证明发送至所述各第二区块链节点。
上述第二方面及第二方面各个可选装置的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
第三方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
第四方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
图1为区块链的结构示意图;
图2为本申请实施例提供的一种应用于区块链的数据解密方法的步骤流程示意图;
图3为本申请实施例提供的一种应用于区块链的数据解密装置的结构示意图。
具体实施方式
为了更好的理解上述技术方案,下面将结合说明书附图及具体的实施方式对上述技术方案进行详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互结合。
下面首先列出本申请中出现的名词释义。
共识验证:由多个互不信任的参与方对同一份数据或数据相关处理过程(如区块链中的智能合约执行过程)分别进行验证,并认可通过多数参与方验证后的数据或数据相关处理过程的正确性。
可共识区块链数据加解密:传统的数据加解密方法,实现了易于辨识和理解的原始数据(以下称之为明文数据)与难以阅读的随机化的密文数据之间的转换,但难以在不泄露密钥的前提下向第三方证明加密和解密过程的正确性。
可共识数据加解密,可以在不泄露密钥的前提下,对密文数据和其相关加解密过程的正确性进行多方共识验证,提供向第三方证明历史数据中所涉及的加密和解密过程的正确性的技术保障。
在区块链系统中,可共识数据加解密具体表现为,不仅能共识验证的传统区块链系统中的明文区块数据,而且对于密文区块数据的加解密过程也能实现共识验证,核实其正确性,而且整个过程无需披露密钥给第三方。
区块链:如图1所示,区块链是由一系列区块组成的一条链,每个块上除了记录本块的数据还会记录上一块的哈希(Hash)值,通过这种方式组成一条链。区块链的核心理念有两个,一个是密码学技术,另一个是去中心化思想,基于这两个理念做到区块链上的历史信息无法被篡改。一个区块由块头和块体组成,其中块头定义包括该区块高度h,上一个区块的Hash指上一个区块的哈希等重要字段,而块体主要存储交易数据。本方案使用区块链技术防篡改的特性,来验证敏感数据的一致性和完整性。
节点持密:每个区块链节点自身持有秘密参数,不同节点使用不同的秘密参数参与区块数据验证、智能合约执行、落盘共识等需要使用秘密参数的操作。
常用符号定义:
PK_sig_s:角色s公开验证其签名公钥。
SK_sig_s:角色s用以签名的私钥,对应PK_sig_s。
PK_data_s:角色s公开用于数据加密的公钥。
SK_data_s:角色s私有的用以数据解密的私钥,对应PK_data_s。
E_k(m):使用密钥k加密消息m。
D_k(m):使用密钥k解密消息m。
Sig_k(m):使用密钥k对消息m进行数字签名。
Hash(m):消息m的哈希值。
A||B:在A字符串之后附加B字符串,例如“ab”||“c”=“abc”。
Contract_Seal:区块链上的一个具有数据存证功能的智能合约。
在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)运转过程中,金融科技领域中对金融交易的安全性要求极高,因此常通过区块链(blockchain)来实现金融交易。目前的方法是向其它区块链节点披露甲区块链节点的解密秘钥,那么这个解密秘钥便泄露了。这种情况不符合银行等金融机构的需求,无法保证金融机构各项业务的高效运转。目前区块链节点的数据解密方式中,如何在不泄露秘钥的情况下,验证加密数据是否按照正确方式解密,是一个亟待解决的问题。为此,如图2所示,本申请提供了一种应用于区块链的数据解密方法。
步骤201:第一区块链节点获取来自各第二区块链节点对待解密数据的各第二解密结果及所述各第二解密结果的零知识证明。
步骤202:所述第一区块链节点若验证所述各第二解密结果的零知识证明均通过,则根据第一解密结果和所述各第二解密结果获得联合解密结果。
步骤203:所述第一区块链节点根据所述联合解密结果,对所述待解密数据解密。
步骤201~步骤203中,所述第一解密结果是根据所述第一区块链节点的第一子秘密对所述待解密数据获得的;任一第二区块链节点的第二解密结果的零知识证明用于验证所述第二解密结果是否为根据所述第二区块链节点的第二子秘密解密得到的。
需要说明的是,步骤201之前区块链系统可以先初始化,具体来说,初始化过程可以为:
区块链运营方通过可信的信道公开以下系统参数,q阶有限循环群F的大小,素数q,q可以为大素数,举例来说,大素数可以为大于2^164的素数。需要说明的是,本申请中如不加特殊说明,默认情况下所有相关的运算都要加上对q的取模运算(mod p),但为了简化描述都已省去。
q阶有限循环群的生成元,如预设生成元G。
安全单向哈希算法Hash。
启动区块链节点,每个区块链节点i(i为区块链节点的表示,可以为正整数,如以第一区块链节点为例)进行以下操作:
为区块链节点i选取一个的区块链节点特有的秘密随机数x_i,并安全保存;计算区块链节点i的秘密随机数x_i的可公开参数分片,Param_i=x_i*G,其中*表示椭圆曲线上的标量乘法运算,具有单向性,难以从Param_i和G反推出x_i。将(i,Param_i)通过公共存证合约Contract_Seal公开到区块链上。
存证合约Contract_Seal,将收集到的所有可公开参数分片Param_i加和,获得私密执行公钥PK_chain=Param_1+Param_2+Param_3+…。需要说明的是,私密执行公钥可以定期更新。
一种可选实施方式(以下称为算术同态性加密的实施方式)中,所述待解密数据是根据具有算术同态性的预设加密算法加密得到的;所述第二解密结果的零知识证明是所述第二区块链节点基于所述预设加密算法,根据所述第二解密结果生成的;所述第二解密结果的零知识证明的验证是所述第一区块链节点基于所述预设加密算法,至少根据所述第二解密结果、所述待解密数据验证的。
需要说明的是,上述实现方式中,所述第二解密结果的零知识证明的验证方式需要基于所述第二解密结果的零知识证明的生成方式,所述第二解密结果的零知识证明的需要基于算术同态性的预设加密算法。
举例来说,算术同态性的预设加密算法可以为ElGamal标准加密算法、全同态Fully homomorphic encryption类加密法,Brakerski-Gentry-Vaikuntanathan(BGV)算法。上述实现方式中,用密文同态性实现敏感数据的密文计算,并通过零知识证明在不披露解密私钥、不提前解密数据的前提下,实现密文数据加解密过程的多方共识验证,这对于区块链上承载需要使用敏感业务数据密文进行交互的多方协作意义重大。
一种可能的实现方式(以下称为基于q阶有限循环群的实施方式)中,算术同态性加密的实施方式中的所述预设加密算法可以是基于q阶有限循环群的加密算法;q为素数。在此基础上,所述待解密数据包括第一迭代密文和第二迭代密文。具体来说:
所述第一迭代密文是根据第一历史密文和第一子密文得到的;所述第一历史密文为各第一子历史密文的迭代结果或为空;所述第二迭代密文是根据第二历史密文和第二子密文得到的;所述第二历史密文为各第二子历史密文的迭代结果或为空。
进一步地,所述第一子密文是根据待加密数据、第一随机数和私密执行公钥得到的;所述第一随机数为小于q的随机整数;其中,所述私密执行公钥是根据所述第一子秘密、所述各第二子秘密和预设生成元得到的;所述预设生成元为所述q阶有限循环群的生成元;所述第二子密文是根据所述第一随机数和所述预设生成元得到的。
下面以计算一系列私密交易的交易总额为示例,具体描述基于q阶有限循环群的实施方式。其中,示例目标是收集近期发生的私密交易,在不泄露单笔交易金额的前提下,完成交易总额的计算,并提供所有参与区块链节点可验证其结果正确性的证明。
区块链用户使用客户端,通过对应的业务系统接口完成一笔私密交易,假定其金额为A。区块链用户使用客户端获取当前的私密执行公钥PK_chain。
区块链用户使用客户端,基于私密执行公钥PK_chain,以加密私密交易金额A,获得参数密文(第一子密文C1_A,第二子密文C2_A),计算过程如下:
选取随机数r;
C1_A=Encode(A)+(r*PK_chain);
C2_A=r*G。
其中,*表示椭圆曲线上的标量乘法运算,Encode表示将A映射为有限循环群F中元素的方法,举例来说,把A表达成一个小于q的大整数,G为预设生成元。
其中,C1_A、C2_A的生成方式并不固定,举例来说,还可以为:
C1_A=Encode(A)+(f(r)*PK_chain)。
C2_A=f(r)*G。
f(r)为r的函数,且映射关系为整数间的映射关系,即f(r)为整数。
区块链用户使用客户端将第一子密文和第二子密文(C1_A,C2_A)发送到区块链系统,附带用户的数字签名,调用对应的系统处理接口。
区块链节点(如第一区块链节点)解析调用请求,根据相关的累加私密交易的业务逻辑进行以下操作:
由于预设加密算法具有算术同态性,可以在密文状态进行运算。
从历史区块中,读取第一历史密文C1_sum和第二历史密文C2_sum(C1_sum,C2_sum)。
计算累加后的密文,第一迭代密文C1_sum_new=C1_sum+C1_A,第二迭代密文C2_sum_new=C2_sum+C2_A;如果sum找不到,即C1_sum为空,C2_sum为空,则用赋值代替累加C1_sum_new=C1_A,C2_sum_new=C2_A。
所有区块链节点重复以上操作,完成验证后,将(C1_sum_new,C2_sum_new)替换原有的(C1_sum,C2_sum),重新作为(C1_sum,C2_sum),通过预设共识算法(具体可参照区块链共识现有技术),写入区块数据。区块链节点将经过共识验证的密文区块数据所述第一历史密文、所述第二历史密文(C1_sum,C2_sum)写入存储介质,完成可共识区块链数据加密和密文更新过程。
基于q阶有限循环群的实施方式下,通过分布式密钥(私密执行公钥)构建,由每个区块链节点独立生成不同的私钥分片,并以此重构出全局的私密执行公钥。攻击者只有破解了足够多的相关区块链节点,获得足够多的私钥分片,才能恢复出全局的私密执行公钥,解密敏感数据。若破解节点数量不足,便无法获得任何敏感数据的明文。
基于q阶有限循环群的实施方式的基础上,更具体地,所述第二解密结果的零知识证明包括所述第一迭代密文的零知识证明和所述第二迭代密文的零知识证明;所述第一迭代密文和所述第二迭代密文中任一迭代密文的零知识证明,可以按照以下方式生成:
根据第二随机数和所述预设生成元,获得第一中间结果。所述第二随机数为小于q的随机整数;根据所述第二随机数和所述迭代密文,获得第二中间结果。将所述第一中间结果和所述第二中间结果按照预设哈希函数,生成所述迭代密文的零知识证明的第一子部分。根据所述第二随机数、所述第一子部分和所述第二区块链节点的第二子秘密,生成所述迭代密文的零知识证明的第二子部分。
具体来说,上述方式的具体过程可以为:
区块链用户使用客户端生成调用获得密文区块数据方法的请求,附带用户的数字签名,发送至区块链系统。区块链节点(如第一区块链节点)解析调用请求,进行以下操作:
提取之前经过共识验证的待解密数据即第一迭代密文和第二迭代密文(C1_sum,C2_sum),将密文(C1_sum,C2_sum)发送给所有与PK_chain相关的区块链节点(即参与PK_chain生成的节点,如第一区块链节点将待解密数据发送各第二区块链节点),并请求分布式解密和提供正确解密的零知识证明。
每个相关区块链节点i(如第二区块链节点)接收到请求后,进行分布式解密,做以下操作:
读取区块链节点i的子秘密x_i。
计算每个区块链节点的部分解密结果(如第二区块链节点的第二解密结果):C2_sum_decrypted_i=C2_sum*x_i
生成第二解密结果中任一迭代密文(如第二迭代密文C2_sum)的零知识示例证明:
选取第二随机数a,
计算t1=a*G,t2=a*C2_sum;
计算c=Hash(t1||t2);
计算z=a-c*x_i(c,z)为最后的证明,其他中间结果不公开。
其中,a第二随机数,G为预设生成元,t1为第一中间结果,t2为第二中间结果,Hash()表示预设哈希函数,||表示拼接,t1||t2为哈希中间结果;c为所述迭代密文的零知识证明的第一子部分,z为所述迭代密文的零知识证明的第二子部分。
其中,t1,t2的计算方式并不固定,如t1=h(a)*G,t2=h(a)*C2_sum。c的计算方式也不固定,如Hash()的输入中还可以加入数字签名得到哈希值。相应地,z=h(a)-c*x_i,其中,h(a)为a的整数函数,显然h(a)为整数。
第二区块链节点可以将分布式解密和相关证明结果(即第二解密结果,第二解密结果的零知识证明)(i,C2_sum_decrypted_i,c,z)广播到其他相关区块链节点。
需要说明的是,零知识证明的构造方式与待加密数据所使用的预设加密算法相关,每种满足算术同态性的加密算法均可以对应构造其他零知识证明的实例,在此并不做限制。
需要说明的是,零知识证明的验证方式是要基于零知识证明的生成方式的。基于q阶有限循环群的实施方式的上述加密方式的基础上,所述第二解密结果包括所述第一迭代密文的解密结果和所述第二迭代密文的解密结果;针对所述第一迭代密文和所述第二迭代密文中任一迭代密文,所述迭代密文的零知识证明的验证方式可以为:
所述第一区块链节点根据所述第一子部分、所述第二子部分、所述预设生成元、所述私密执行公钥,获得第一验证部分。
所述第一区块链节点根据所述第一子部分、所述第二子部分、所述迭代密文和所述迭代密文的解密结果,获得第二验证部分。
所述第一区块链节点将所述第一验证部分和所述第二验证部分按照所述预设哈希函数,生成所述迭代密文的零知识证明的哈希中间结果。
若所述哈希中间结果和所述第一子部分一致,所述第一区块链节点验证所述迭代密文的零知识证明通过。
当所有相关区块链节点收集到所有布式解密和相关证明结果后,每个区块链节点(如第一区块链节点)验证证明任一迭代密文(如第二迭代密文)的正确性,具体示例验证如下:
计算t1_r=z*G+c*PK_chain;
计算t2_r=z*C2_sum+c*C2_sum_decrypted_i;
验证c==Hash(t1_r||t2_r)是否相等,若不等说明解密错误,中止执行,对当前的调用请求报错。
t1_r为所述第一验证部分,t2_r为所述第二验证部分。需要说明的是,验证过程中的哈希中间结果Hash(t1_r||t2_r)中哈希的输入需要根据零知识证明的生成过程来对应确定。如生成过程中,Hash()加入了数字签名,验证时哈希中间结果也要加入数字签名。
显然,只要有一个区块链节点不作恶,密文(C1_sum,C2_sum)的解密结果就不能被篡改,共识验证时的零知识证明过程会报错,同时也不能在用户未授权的前提下,提前解密其他密文区块数据。
需要说明的是,步骤202中所述联合解密结果以及对待解密数据的解密方式也需要依赖于预设加密算法,必须是满足算术同态性的加密算法。步骤202中所述联合解密结果可以按照以下方式得到:所述第一区块链节点将所述各第二解密结果的累加结果,作为所述联合解密结果。在此基础上,步骤203具体可以按照以下方式执行:
针对所述第一迭代密文和所述第二迭代密文中任一迭代密文,所述第一区块链节点根据所述迭代密文和所述联合解密结果,对所述迭代密文求逆元。
举例来说,第一区块链节点恢复出分布式解密结果,具体示例计算如下:
通过累加方式得到所有收到的C2_sum_decrypted_i,
计算联合解密结果C2_sum_decrypted=C2_sum_decrypted_1+C2_sum_decrypted_2+…。
获得待解密数据的解密结果value_sum=C1_sum-C2_sum_decrypted。
如果以上执行过程正常结束,没有其他异常,则将当前待解密数据的解密结果的相关数据(i,C2_sum_decrypted_i,c,z),全部添加到新的区块数据中,在共识之后,写入存储介质,完成可共识区块链数据解密过程。
这样以来,每一份密文区块数据X的密文(C1_X,C2_X)加解密和更新的过程都在区块链上存证,且通过数字签名绑定区块链系统接口调用人的身份,难以抵赖,可供监管随时审查核实,调解争议。关于(C1_X,C2_X)的每一次加解密的中间结果和正确性零知识证明(i,C2_X_decrypted_i,c,z),也都在区块链上存证,监管可以通过协议重放的方式,核实其正确性。
步骤201~步骤203的方案是基于区块链存证和密码学的纯软件方案,构造简单,部署限制很少。所有敏感数据密文和其执行中间过程都通过区块链存证,可为后期审计监管提供公开验证的证据。
步骤201~步骤203中,还可以执行如下步骤:
所述第一区块链节点根据所述第一解密结果生成所述第一解密结果的零知识证明;所述第一区块链节点将所述待解密数据、所述第一解密结果和所述第一解密结果的零知识证明发送至所述各第二区块链节点。
所述第一区块链节点生成所述第一解密结果的零知识证明后,发送至所述各第二区块链节点,从而以供其它所述各第二区块链节点,从而可以供多个区块链节点同步解密。
如图3所示,本发明提供一种应用于区块链的数据解密装置,包括:获取模块301,用于获取来自各第二区块链节点对待解密数据的各第二解密结果及所述各第二解密结果的零知识证明;其中,任一第二区块链节点的第二解密结果的零知识证明用于验证所述第二解密结果是否为根据所述第二区块链节点的第二子秘密解密得到的;处理模块302,用于若验证所述各第二解密结果的零知识证明均通过,则根据第一解密结果和所述各第二解密结果获得联合解密结果;根据所述联合解密结果,对所述待解密数据解密;所述第一解密结果是根据所述第一区块链节点的第一子秘密对所述待解密数据获得的。
可选的,所述待解密数据是根据具有算术同态性的预设加密算法加密得到的;所述第二解密结果的零知识证明是所述第二区块链节点基于所述预设加密算法,根据所述第二解密结果生成的;所述第二解密结果的零知识证明的验证是所述第一区块链节点基于所述预设加密算法,至少根据所述第二解密结果、所述待解密数据验证的。
可选的,所述预设加密算法是基于q阶有限循环群的加密算法;q为素数;所述待解密数据包括第一迭代密文和第二迭代密文;所述第一迭代密文是根据第一历史密文和第一子密文得到的;所述第一历史密文为各第一子历史密文的迭代结果或为空;所述第二迭代密文是根据第二历史密文和第二子密文得到的;所述第二历史密文为各第二子历史密文的迭代结果或为空;所述第一子密文是根据待加密数据、第一随机数和私密执行公钥得到的;所述第一随机数为小于q的随机整数;其中,所述私密执行公钥是根据所述第一子秘密、所述各第二子秘密和预设生成元得到的;所述预设生成元为所述q阶有限循环群的生成元;所述第二子密文是根据所述第一随机数和所述预设生成元得到的。
可选的,所述第二解密结果的零知识证明包括所述第一迭代密文的零知识证明和所述第二迭代密文的零知识证明;所述第一迭代密文和所述第二迭代密文中任一迭代密文的零知识证明,是按照以下方式生成:根据第二随机数和所述预设生成元,获得第一中间结果;所述第二随机数为小于q的随机整数;根据所述第二随机数和所述迭代密文,获得第二中间结果;将所述第一中间结果和所述第二中间结果按照预设哈希函数,生成所述迭代密文的零知识证明的第一子部分;根据所述第二随机数、所述第一子部分和所述第二区块链节点的第二子秘密,生成所述迭代密文的零知识证明的第二子部分。
可选的,所述第二解密结果包括所述第一迭代密文的解密结果和所述第二迭代密文的解密结果;针对所述第一迭代密文和所述第二迭代密文中任一迭代密文,所述处理模块302具体用于:根据所述第一子部分、所述第二子部分、所述预设生成元、所述私密执行公钥,获得第一验证部分;根据所述第一子部分、所述第二子部分、所述迭代密文和所述迭代密文的解密结果,获得第二验证部分;将所述第一验证部分和所述第二验证部分按照所述预设哈希函数,生成所述迭代密文的零知识证明的哈希中间结果;若所述哈希中间结果和所述第一子部分一致,验证所述迭代密文的零知识证明通过。
所述处理模块302具体用于:将所述各第二解密结果的累加结果,作为所述联合解密结果;针对所述第一迭代密文和所述第二迭代密文中任一迭代密文,根据所述迭代密文和所述联合解密结果,对所述迭代密文求逆元。
所述处理模块302还用于:根据所述第一解密结果生成所述第一解密结果的零知识证明;将所述待解密数据、所述第一解密结果和所述第一解密结果的零知识证明发送至所述各第二区块链节点。
本申请实施例提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种应用于区块链的数据解密方法及任一可选方法。
本申请实施例提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行本申请实施例提供的一种应用于区块链的数据解密方法及任一可选方法。
最后应说明的是:本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (8)
1.一种应用于区块链的数据解密方法,其特征在于,包括:
第一区块链节点获取来自各第二区块链节点对待解密数据的第二解密结果及所述各第二区块链节点对待解密数据的第二解密结果的零知识证明;其中,任一第二区块链节点的第二解密结果的零知识证明用于验证所述第二解密结果是否为根据所述第二区块链节点的第二子秘密解密得到的;
所述第一区块链节点若验证所述各第二区块链节点对待解密数据的第二解密结果的零知识证明均通过,则根据第一解密结果和所述各第二区块链节点对待解密数据的第二解密结果获得联合解密结果;所述第一解密结果是根据所述第一区块链节点的第一子秘密对所述待解密数据获得的;
所述第一区块链节点根据所述联合解密结果,对所述待解密数据解密;
所述待解密数据是根据具有算术同态性的预设加密算法加密得到的;所述第二解密结果的零知识证明是所述第二区块链节点基于所述预设加密算法,根据所述第二解密结果生成的;所述第二解密结果的零知识证明的验证是所述第一区块链节点基于所述预设加密算法,至少根据所述第二解密结果、所述待解密数据验证的;
所述预设加密算法是基于q阶有限循环群的加密算法;q为素数;所述待解密数据包括第一迭代密文和第二迭代密文;所述第一迭代密文是根据第一历史密文和第一子密文得到的;所述第一历史密文为各第一子历史密文的迭代结果或为空;所述第二迭代密文是根据第二历史密文和第二子密文得到的;所述第二历史密文为各第二子历史密文的迭代结果或为空;
所述第一子密文C1_A和第二子密文C2_A按照以下方式得到:
C1_A=Encode(A)+(f(r)*PK_chain);
C2_A=f(r)*G;
其中,*表示椭圆曲线上的标量乘法运算,A为私密交易金额,Encode表示将A映射为有限循环群F中元素的函数,PK_chain为私密执行公钥,r为第一随机数,r小于q,G为预设生成元,f(r)为r的函数,且映射关系为整数间的映射关系,即f(r)为整数;
所述私密执行公钥是根据所述第一子秘密、各第二子秘密和所述预设生成元得到的;所述预设生成元为所述q阶有限循环群的生成元。
2.如权利要求1所述的方法,其特征在于,所述第二解密结果的零知识证明包括所述第一迭代密文的零知识证明和所述第二迭代密文的零知识证明;所述第一迭代密文和所述第二迭代密文中任一迭代密文的零知识证明,是按照以下方式生成:
根据第二随机数和所述预设生成元,获得第一中间结果;所述第二随机数为小于q的随机整数;
根据所述第二随机数和所述任一迭代密文,获得第二中间结果;
将所述第一中间结果和所述第二中间结果按照预设哈希函数,生成所述任一迭代密文的零知识证明的第一子部分;
根据所述第二随机数、所述第一子部分和所述第二区块链节点的第二子秘密,生成所述任一迭代密文的零知识证明的第二子部分。
3.如权利要求2所述的方法,其特征在于,所述第二解密结果包括所述第一迭代密文的解密结果和所述第二迭代密文的解密结果;针对所述第一迭代密文和所述第二迭代密文中任一迭代密文,所述第一区块链节点按照以下方式验证所述迭代密文的零知识证明:
所述第一区块链节点根据所述第一子部分、所述第二子部分、所述预设生成元、所述私密执行公钥,获得第一验证部分;
所述第一区块链节点根据所述第一子部分、所述第二子部分、所述迭代密文和所述迭代密文的解密结果,获得第二验证部分;
所述第一区块链节点将所述第一验证部分和所述第二验证部分按照所述预设哈希函数,生成所述迭代密文的零知识证明的哈希中间结果;
若所述哈希中间结果和所述第一子部分一致,所述第一区块链节点验证所述迭代密文的零知识证明通过。
4.如权利要求1至3任一项所述的方法,其特征在于,所述第一区块链节点根据第一解密结果和所述各第二区块链节点对待解密数据的第二解密结果获得联合解密结果,包括:
所述第一区块链节点将所述各第二区块链节点对待解密数据的第二解密结果的累加结果,作为所述联合解密结果;
针对所述第一迭代密文和所述第二迭代密文中任一迭代密文,所述第一区块链节点根据所述联合解密结果,按照以下方式对所述迭代密文解密:
所述第一区块链节点根据所述迭代密文和所述联合解密结果,对所述迭代密文求逆元。
5.如权利要求1至3任一项所述的方法,其特征在于,还包括:
所述第一区块链节点根据所述第一解密结果生成所述第一解密结果的零知识证明;
所述第一区块链节点将所述待解密数据、所述第一解密结果和所述第一解密结果的零知识证明发送至所述各第二区块链节点。
6.一种应用于区块链的数据解密装置,其特征在于,包括:
获取模块,用于获取来自各第二区块链节点对待解密数据的各第二解密结果及所述各第二解密结果的零知识证明;其中,任一第二区块链节点的第二解密结果的零知识证明用于验证所述第二解密结果是否为根据所述第二区块链节点的第二子秘密解密得到的;
处理模块,用于若验证所述各第二解密结果的零知识证明均通过,则根据第一解密结果和所述各第二解密结果获得联合解密结果;根据所述联合解密结果,对所述待解密数据解密;所述第一解密结果是根据第一区块链节点的第一子秘密对所述待解密数据获得的;
所述待解密数据是根据具有算术同态性的预设加密算法加密得到的;所述第二解密结果的零知识证明是所述第二区块链节点基于所述预设加密算法,根据所述第二解密结果生成的;所述第二解密结果的零知识证明的验证是所述第一区块链节点基于所述预设加密算法,至少根据所述第二解密结果、所述待解密数据验证的;
所述预设加密算法是基于q阶有限循环群的加密算法;q为素数;所述待解密数据包括第一迭代密文和第二迭代密文;所述第一迭代密文是根据第一历史密文和第一子密文得到的;所述第一历史密文为各第一子历史密文的迭代结果或为空;所述第二迭代密文是根据第二历史密文和第二子密文得到的;所述第二历史密文为各第二子历史密文的迭代结果或为空;
所述第一子密文C1_A和第二子密文C2_A按照以下方式得到:
C1_A=Encode(A)+(f(r)*PK_chain);
C2_A=f(r)*G;
其中,*表示椭圆曲线上的标量乘法运算,A为私密交易金额,Encode表示将A映射为有限循环群F中元素的函数,PK_chain为私密执行公钥,r为第一随机数,r小于q,G为预设生成元,f(r)为r的函数,且映射关系为整数间的映射关系,即f(r)为整数;
所述私密执行公钥是根据所述第一子秘密、各第二子秘密和所述预设生成元得到的;所述预设生成元为所述q阶有限循环群的生成元。
7.一种计算机设备,其特征在于,包括程序或指令,当所述程序或指令被处理器执行时,如权利要求1至5中任意一项所述的方法被执行。
8.一种存储介质,其特征在于,包括程序或指令,当所述程序或指令被处理器执行时,如权利要求1至5中任意一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010591749.3A CN111737748B (zh) | 2020-06-24 | 2020-06-24 | 一种应用于区块链的数据解密方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010591749.3A CN111737748B (zh) | 2020-06-24 | 2020-06-24 | 一种应用于区块链的数据解密方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111737748A CN111737748A (zh) | 2020-10-02 |
CN111737748B true CN111737748B (zh) | 2021-09-07 |
Family
ID=72651153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010591749.3A Active CN111737748B (zh) | 2020-06-24 | 2020-06-24 | 一种应用于区块链的数据解密方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111737748B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422142A (zh) * | 2022-01-11 | 2022-04-29 | 浪潮云信息技术股份公司 | 一种基于椭圆曲线的ElGamal多重解密方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10158611B2 (en) * | 2016-11-17 | 2018-12-18 | Bank Of America Corporation | System for multiplexing and demultiplexing blockchain ledgers via a cryptographic hash |
CN108764874B (zh) * | 2018-05-17 | 2021-09-07 | 深圳前海微众银行股份有限公司 | 基于区块链的匿名转账方法、系统及存储介质 |
CN110348231B (zh) * | 2019-06-18 | 2020-08-14 | 阿里巴巴集团控股有限公司 | 实现隐私保护的数据同态加解密方法及装置 |
CN111162912B (zh) * | 2019-12-30 | 2021-06-15 | 深圳前海微众银行股份有限公司 | 一种适用于区块链的验证方法、装置及存储介质 |
-
2020
- 2020-06-24 CN CN202010591749.3A patent/CN111737748B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111737748A (zh) | 2020-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106961336B (zh) | 一种基于sm2算法的密钥分量托管方法和系统 | |
WO2021114819A1 (zh) | 生成和执行智能合约交易的方法及装置 | |
JP4593533B2 (ja) | 公開鍵暗号方式に使用する鍵を更新するシステムおよび方法 | |
CN110247757B (zh) | 基于国密算法的区块链处理方法、装置及系统 | |
CN110740033A (zh) | 一种基于秘密共享技术的区块链多方数据共享方法 | |
CN114157427B (zh) | 基于sm2数字签名的门限签名方法 | |
CN110120939B (zh) | 一种基于异构系统的可否认认证的加密方法和系统 | |
US10880100B2 (en) | Apparatus and method for certificate enrollment | |
CN110545279A (zh) | 兼具隐私和监管功能的区块链交易方法、装置及系统 | |
CN111989891A (zh) | 数据处理方法、相关装置及区块链系统 | |
CN110113150B (zh) | 基于无证书环境的可否认认证的加密方法和系统 | |
CN109547209B (zh) | 一种两方sm2数字签名生成方法 | |
CN111159745B (zh) | 一种适用于区块链的验证方法及装置 | |
CN111162912B (zh) | 一种适用于区块链的验证方法、装置及存储介质 | |
CN109194474A (zh) | 一种数据传输方法及装置 | |
KR20200108343A (ko) | 디지털로 서명된 데이터를 획득하기 위한 컴퓨터 구현된 방법 및 시스템 | |
JP4869824B2 (ja) | 受信者装置及び送信者装置及び暗号通信システム及びプログラム | |
CN112039883A (zh) | 一种区块链的数据分享方法及装置 | |
JP2022500920A (ja) | コンピュータにより実施される、共通シークレットを共有するシステム及び方法 | |
CN114448641A (zh) | 一种隐私加密方法、电子设备、存储介质以及芯片 | |
TW202318833A (zh) | 臨界簽章方案 | |
KR100699836B1 (ko) | 스칼라 곱에서 dfa 대책을 위한 장치 및 방법 | |
CN111368333A (zh) | 一种通用区块链密钥封装技术 | |
CN111737748B (zh) | 一种应用于区块链的数据解密方法、装置及存储介质 | |
Abo-Alian et al. | Auditing-as-a-service for cloud storage |
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 |