一种密钥信息生成方法及装置转让专利

申请号 : CN201910458941.2

文献号 : CN110289950A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王虎森

申请人 : 杭州隐知科技有限公司

摘要 :

本发明实施例提供了一种密钥信息生成方法及装置,其中,该方法包括:从预设外部电路获取目标逻辑函数,以及利用可信执行硬件中的数据生成器生成随机数源;基于目标逻辑函数和随机数源生成密钥对,并将过程中产生的中间数据予以消除;通过利用独立的可信执行硬件生成密钥对,以及自动消除在该密钥对的生成过程中所产生的中间数据,从而有效保证了数据的安全性,避免非法分子使用中间数据来伪造零知识证明或可验证计算的过程;同时,上述密钥对生成过程是在可信执行硬件中进行,由于该可信执行硬件能够隔离所有计算的代码和数据,外部无法获知整个运算过程,并且数据安全性不依赖公证员,因此,能够实现频繁进行可信建立,从而实现了自动化运行。

权利要求 :

1.一种密钥信息生成方法,其特征在于,应用于可信执行硬件,所述方法包括:从预设外部电路获取目标逻辑函数,以及利用所述可信执行硬件中的数据生成器生成随机数源;

基于所述目标逻辑函数和所述随机数源,生成用于零知识证明或可验证计算的密钥对,其中,所述密钥对包括证明密钥和验证密钥;

利用所述可信执行硬件中的数据消除器将在生成所述密钥对的过程所产生的中间数据进行消除处理;以及,将所述密钥对发送给认证机构,以使所述认证机构基于所述密钥对中的所述验证密钥生成相应的证书并将所述密钥对和所述证书发送给验证方。

2.根据权利要求1所述的方法,其特征在于,在基于所述目标逻辑函数和所述随机数源,生成用于零知识证明或可验证计算的密钥对之后,还包括:根据所述验证密钥和所述可信执行硬件的硬件识别码,生成所述密钥对对应的证据;

对应的,所述将所述密钥对发送给认证机构,以使所述认证机构基于所述密钥对中的所述验证密钥生成相应的证书并将所述密钥对和所述证书发送给验证方,包括:将所述密钥对和所述证据发送给认证机构,以使所述认证机构在确定所述证据中的所述硬件识别码正确时,基于所述密钥对中的所述验证密钥生成相应的证书,并将所述密钥对和所述证书发送给验证方。

3.根据权利要求1所述的方法,其特征在于,所述利用所述可信执行硬件中的数据生成器生成随机数源,包括:利用所述可信执行硬件中的数据生成器采集内部的物理噪声,其中,所述物理噪声包括:电源噪声、晶体噪声中至少一种;

对采集到的所述物理噪声进行数字转换处理,得到相应的随机数源。

4.根据权利要求1所述的方法,其特征在于,所述基于所述目标逻辑函数和所述随机数源,生成用于零知识证明或可验证计算的密钥对,包括:将所述目标逻辑函数进行格式转换,得到二进制编码的数字逻辑函数;

基于所述随机数源对预设变量集合进行赋值,得到赋值后的变量集合;

基于所述赋值后的变量集合和所述数字逻辑函数,对预设证明密钥元素集合进行赋值,得到用于零知识证明或可验证计算的证明密钥;

基于所述赋值后的变量集合和所述数字逻辑函数,对预设验证密钥元素集合进行赋值,得到用于零知识证明或可验证计算的验证密钥。

5.根据权利要求1所述的方法,其特征在于,所述利用所述可信执行硬件中的数据消除器将在生成所述密钥对的过程所产生的中间数据进行消除处理,包括:利用所述可信执行硬件中的数据消除器将在生成所述密钥对的过程所产生的中间数据覆盖为无用数据,其中,所述无用数据包括:随机字符串、或01字符串。

6.根据权利要求2所述的方法,其特征在于,所述根据所述验证密钥和所述可信执行硬件的硬件识别码,生成所述密钥对对应的证据,包括:对所述验证密钥进行哈希处理,得到所述验证密钥的哈希值;

将所述验证密钥的所述哈希值与所述可信执行硬件的硬件识别码的组合,确定为所述密钥对对应的证据。

7.根据权利要求1至6任一项所述的方法,其特征在于,所述可信执行硬件为可信执行环境TEE硬件。

8.一种密钥信息生成装置,其特征在于,应用于可信执行硬件,所述装置包括:目标逻辑函数获取模块,用于从预设外部电路获取目标逻辑函数;

随机数源生成模块,用于利用所述可信执行硬件中的数据生成器生成随机数源;

密钥对生成模块,用于基于所述目标逻辑函数和所述随机数源,生成用于零知识证明或可验证计算的密钥对,其中,所述密钥对包括证明密钥和验证密钥;

数据消除模块,用于利用所述可信执行硬件中的数据消除器将在生成所述密钥对的过程所产生的中间数据进行消除处理;

数据发送模块,用于将所述密钥对发送给认证机构,以使所述认证机构基于所述密钥对中的所述验证密钥生成相应的证书并将所述密钥对和所述证书发送给验证方。

9.根据权利要求8所述的装置,其特征在于,所述装置还包括:证据生成模块,用于根据所述验证密钥和所述可信执行硬件的硬件识别码,生成所述密钥对对应的证据;

对应的,所述数据发送模块,具体用于:

将所述密钥对和所述证据发送给认证机构,以使所述认证机构在确定所述证据中的所述硬件识别码正确时,基于所述密钥对中的所述验证密钥生成相应的证书,并将所述密钥对和所述证书发送给验证方。

10.根据权利要求8所述的装置,其特征在于,所述随机数源生成模块,具体用于:利用所述可信执行硬件中的数据生成器采集内部的物理噪声,其中,所述物理噪声包括:电源噪声、晶体噪声中至少一种;

对采集到的所述物理噪声进行数字转换处理,得到相应的随机数源。

11.根据权利要求8所述的装置,其特征在于,所述密钥对生成模块,具体用于:将所述目标逻辑函数进行格式转换,得到二进制编码的数字逻辑函数;

基于所述随机数源对预设变量集合进行赋值,得到赋值后的变量集合;

基于所述赋值后的变量集合和所述数字逻辑函数,对预设证明密钥元素集合进行赋值,得到用于零知识证明或可验证计算的证明密钥;

基于所述赋值后的变量集合和所述数字逻辑函数,对预设验证密钥元素集合进行赋值,得到用于零知识证明或可验证计算的验证密钥。

12.根据权利要求8所述的装置,其特征在于,所述数据消除模块,具体用于:利用所述可信执行硬件中的数据消除器将在生成所述密钥对的过程所产生的中间数据覆盖为无用数据,其中,所述无用数据包括:随机字符串、或08字符串。

13.根据权利要求9所述的装置,其特征在于,所述证据生成模块,具体用于:对所述验证密钥进行哈希处理,得到所述验证密钥的哈希值;

将所述验证密钥的所述哈希值与所述可信执行硬件的硬件识别码的组合,确定为所述密钥对对应的证据。

14.根据权利要求8至13任一项所述的装置,其特征在于,所述可信执行硬件为可信执行环境TEE硬件。

15.一种移动终端,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的密钥信息生成方法的步骤。

16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的密钥信息生成方法的步骤。

说明书 :

一种密钥信息生成方法及装置

技术领域

[0001] 本发明涉及零知识证明技术领域,尤其涉及一种密钥信息生成方法及装置。

背景技术

[0002] 零知识证明是指证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏除了论断结果以外的其他任何信息。因此,零知识证明能够在保护隐私的基础上提供基于隐私信息的论断结果。
[0003] 在进行零知识证明的过程中,需要生成一对密钥对,即证明密钥和验证密钥,然而,伴随着生成密钥对的过程,会产生一些中间数据,这些中间数据必须销毁,一旦这些中间数据被不法分子获取,有可能会对不符合论断结果的信息生成证据进行伪造,从而带来严重的安全问题。
[0004] 然而,现有技术在进行可信建立过程中所采用的中心化的方式,或者采用多人协同计算的方式来生成密钥对,都无法保证彻底销毁生成密钥对过程中所产生的中间数据,因为该数据的持有方完全有动机保存数据,以便将来伪造零知识证明或可验证计算过程,获取利益;此外,为了让所有人相信,现有技术在生成密钥对后,需要在第三方公证员的监督下进行销毁生成密钥对过程中所产生的中间数据,这个过程非常低效率和耗时,而且安全性依赖公证员,所以不适合频繁进行可信建立,无法自动化运行。

发明内容

[0005] 本发明实施例的目的是提供一种密钥信息生成方法及装置,以解决现有技术在进行可信建立过程中无法有效避免非法分子使用中间数据来伪造零知识证明或可验证计算的过程;以及,数据安全性依赖公证员,不适合频繁进行可信建立,无法自动化运行的问题。
[0006] 为了解决上述技术问题,本发明实施例是这样实现的:
[0007] 第一方面,本发明实施例提供了一种密钥信息生成方法,包括:
[0008] 从预设外部电路获取目标逻辑函数,以及利用所述可信执行硬件中的数据生成器生成随机数源;
[0009] 基于所述目标逻辑函数和所述随机数源,生成用于零知识证明或可验证计算的密钥对,其中,所述密钥对包括证明密钥和验证密钥;
[0010] 利用所述可信执行硬件中的数据消除器将在生成所述密钥对的过程所产生的中间数据进行消除处理;以及,
[0011] 将所述密钥对发送给认证机构,以使所述认证机构基于所述密钥对中的所述验证密钥生成相应的证书并将所述密钥对和所述证书发送给验证方。
[0012] 第二方面,本发明实施例提供了一种密钥信息生成装置,包括:
[0013] 目标逻辑函数获取模块,用于从预设外部电路获取目标逻辑函数;
[0014] 随机数源生成模块,用于利用所述可信执行硬件中的数据生成器生成随机数源;
[0015] 密钥对生成模块,用于基于所述目标逻辑函数和所述随机数源,生成用于零知识证明或可验证计算的密钥对,其中,所述密钥对包括证明密钥和验证密钥;
[0016] 数据消除模块,用于利用所述可信执行硬件中的数据消除器将在生成所述密钥对的过程所产生的中间数据进行消除处理;
[0017] 数据发送模块,用于将所述密钥对发送给认证机构,以使所述认证机构基于所述密钥对中的所述验证密钥生成相应的证书并将所述密钥对和所述证书发送给验证方。
[0018] 第三方面,本发明实施例提供了一种移动终端,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如第一方面所述的密钥信息生成方法的步骤。
[0019] 第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的密钥信息生成方法的步骤。
[0020] 本发明实施例中的密钥信息生成方法及装置,包括:从预设外部电路获取目标逻辑函数,以及利用可信执行硬件中的数据生成器生成随机数源;基于目标逻辑函数和随机数源,生成用于零知识证明或可验证计算的密钥对,其中,密钥对包括证明密钥和验证密钥;利用可信执行硬件中的数据消除器将在生成密钥对的过程所产生的中间数据进行消除处理;以及,将密钥对发送给认证机构,以使认证机构基于密钥对中的验证密钥生成相应的证书并将密钥对和证书发送给验证方。本发明实施例中,通过利用独立的可信执行硬件生成密钥对,以及自动消除在该密钥对的生成过程中所产生的中间数据,从而有效保证了数据的安全性,避免非法分子使用中间数据来伪造零知识证明或可验证计算的过程;同时,上述密钥对生成过程是在可信执行硬件中进行,由于该可信执行硬件能够隔离所有计算的代码和数据,外部无法获知整个运算过程,并且数据安全性不依赖公证员,因此,能够实现频繁进行可信建立,从而实现了自动化运行。

附图说明

[0021] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0022] 图1为本发明实施例提供的密钥信息生成方法的第一种流程示意图;
[0023] 图2为本发明实施例提供的密钥信息生成方法的第二种流程示意图;
[0024] 图3为本发明实施例提供的密钥信息生成方法的第三种流程示意图;
[0025] 图4为本发明实施例提供的密钥信息生成方法的第四种流程示意图;
[0026] 图5为本发明实施例提供的可信建立系统的应用场景示意图;
[0027] 图6为本发明实施例提供的密钥信息生成装置的第一种模块组成示意图;
[0028] 图7为本发明实施例提供的密钥信息生成装置的第二种模块组成示意图;
[0029] 图8为本发明实施例提供的移动终端的结构示意图。

具体实施方式

[0030] 为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0031] 本发明实施例提供了一种密钥信息生成方法及装置,通过利用独立的可信执行硬件生成密钥对,以及自动消除在该密钥对的生成过程中所产生的中间数据,从而有效保证了数据的安全性,避免非法分子使用中间数据来伪造零知识证明或可验证计算的过程;同时,上述密钥对生成过程是在可信执行硬件中进行,由于该可信执行硬件能够隔离所有计算的代码和数据,外部无法获知整个运算过程,并且数据安全性不依赖公证员,因此,能够实现频繁进行可信建立,从而实现了自动化运行。
[0032] 图1为本发明实施例提供的密钥信息生成方法的第一种流程示意图,图1中的方法应用于可信执行硬件,能够由任意包含可信执行硬件的移动终端执行,特别由移动终端其中设置的程序模块执行,如图1所示,该方法至少包括以下步骤:
[0033] 步骤S101,从预设外部电路获取目标逻辑函数,其中,该目标逻辑函数可以是任意可以用于进行密钥信息生成的逻辑函数;
[0034] 步骤S102,利用可信执行硬件中的数据生成器生成随机数源,具体的,可信执行硬件通过从预设外部电路获取目标逻辑函数,以及利用可信执行硬件中的数据生成器生成的随机数源,生成用于零知识证明或可验证计算的证明密钥和验证密钥;
[0035] 步骤S103,基于目标逻辑函数和随机数源,生成用于零知识证明或可验证计算的密钥对,其中,密钥对包括证明密钥和验证密钥,具体的,该证明密钥用于提供给用于零知识证明的证明方,首先,证明方通过将目标数据x输入目标逻辑函数y=f(x),得到目标输出数据y;然后,证明方根据目标输出数据y,目标数据x以及证明密钥,生成证明proof;该验证密钥用于验证证明方提供的证明proof,任意拿到证明proof、目标输出数据y以及验证密钥的验证方,即可通过验证知道目标输出数据y是否为目标逻辑函数y=f(x)的输出结果,而不需要知道证明方所持有的目标数据x的具体信息,即可确定证明方是否持有目标数据x。
[0036] 步骤S104,利用可信执行硬件中的数据消除器将在生成密钥对的过程所产生的中间数据进行消除处理,具体的,为了避免非法分子利用生成证明密钥和验证密钥过程中所产生的中间数据来伪造零知识证明或可验证计算的过程,从而给使用者带来不必要的损失,通过采用可信执行硬件在生成密钥对的时候,利用可信执行硬件中的数据消除器对生成密钥对的过程所产生的中间数据采用随机字符串、或01等字符串的方式进行覆盖,使得中间数据变成无用数据,无法被非法分子利用;
[0037] 步骤S105,将密钥对发送给认证机构,以使认证机构基于密钥对中的验证密钥生成相应的证书并将密钥对和证书发送给验证方,具体的,在可信执行硬件基于目标逻辑函数和随机数源,生成用于零知识证明或可验证计算的密钥对之后,可信执行硬件将生成的密钥对发送给认证机构,认证机构接收到该密钥对后,首先对该可信执行硬件的识别码进行验证,如果验证通过,该认证机构基于该密钥对中的验证密钥进行签名处理生成证书,并将该密钥对和证书发送给验证方;验证方接收到认证机构发送的证书后,首先对该证书进行验证,向认证机构获取该证书对应的公钥信息,基于该公钥信息对证书进行验证,若验证通过,则确定该证书的真实性;接着,验证方对所接收到的密钥对中的验证密钥进行哈希处理,得到该验证密钥的第一哈希值,将得到的第一哈希值与对该证书解密后得到的验证密钥的第二哈希值进行比较,若第一哈希值与第二哈希值相同,则验证通过,验证者存储该验证密钥,以便对证明方发送的证明进行验证。
[0038] 本发明实施例中,通过利用独立的可信执行硬件生成密钥对,以及自动消除在该密钥对的生成过程中所产生的中间数据,从而有效保证了数据的安全性,避免非法分子使用中间数据来伪造零知识证明或可验证计算的过程;同时,上述密钥对生成过程是在可信执行硬件中进行,由于该可信执行硬件能够隔离所有计算的代码和数据,外部无法获知整个运算过程,并且数据安全性不依赖公证员,因此,能够实现频繁进行可信建立,从而实现了自动化运行。
[0039] 其中,为了进一步提高所生成密钥对的可信度,具体的,如图2所示,在S103基于目标逻辑函数和随机数源,生成用于零知识证明或可验证计算的密钥对之后,还包括:
[0040] 步骤S103A,根据验证密钥和可信执行硬件的硬件识别码,生成密钥对对应的证据,其中,由于该验证密钥数据很大,所以在根据验证密钥和可信执行硬件的硬件识别码生成证据之前,首先,对验证密钥进行哈希处理,得到验证密钥的哈希值,然后,根据该验证密钥的哈希值与该可信执行硬件的硬件识别码,生成该密钥对对应的证据;
[0041] 对应的,如图2所示,上述S105将密钥对发送给认证机构,以使认证机构基于密钥对中的验证密钥生成相应的证书并将密钥对和证书发送给验证方,包括:
[0042] 步骤S1051,将密钥对和证据发送给认证机构,以使认证机构在确定证据中的硬件识别码正确时,基于密钥对中的验证密钥生成相应的证书,并将密钥对和证书发送给验证方,具体的,认证机构在接收到该可信执行硬件发送的密钥对和证据后,首先,对证据中可信执行硬件中的硬件识别码进行验证,当验证证据中的硬件识别码正确时,对密钥对中的验证密钥进行签名处理,生成相应的证书,并将该密钥对和证书发送给验证方。
[0043] 其中,如图3所示,上述S102利用可信执行硬件中的数据生成器生成随机数源,包括:
[0044] 步骤S1021,利用可信执行硬件中的数据生成器采集内部的物理噪声,其中,物理噪声包括:电源噪声、晶体噪声中至少一种;
[0045] 步骤S1022,对采集到的物理噪声进行数字转换处理,得到相应的随机数源。
[0046] 其中,上述S103基于目标逻辑函数和随机数源,生成用于零知识证明或可验证计算的密钥对,包括:
[0047] 步骤一,将目标逻辑函数进行格式转换,得到二进制编码的数字逻辑函数;
[0048] 步骤二,基于随机数源对预设变量集合进行赋值,得到赋值后的变量集合,例如,该预设变量集合为{rv0,rw0,s0,αv0,αw0,αy0,β0,γ0},基于利用可信执行硬件中的数据生成器生成的随机数源,对该预设变量集合{rv0,rw0,s0,αv0,αw0,αy0,β0,γ0}中的各变量进行赋值,得到赋值后的第一变量集合{rv,rw,s,αv,αw,αy,β,γ},然后,根据预设关系式ry=rv·rw, 得到赋值后的第二变量集合{ry,gv,gw,gy},将赋值后的第一变量集合和第二变量集合确定为赋值后的变量集合;
[0049] 步骤三,基于赋值后的变量集合和数字逻辑函数,对预设证明密钥元素集合进行赋值,得到用于零知识证明或可验证计算的证明密钥,其中,该数字逻辑函数为Imid={N+1,...,m},根据:
[0050]
[0051]
[0052]
[0053] 对预设证明密钥元素集合进行赋值,得到用于零知识证明或可验证计算的证明密钥,其中,m为该数字逻辑函数的大小,d为该数字逻辑函数的深度;
[0054] 步骤四,基于赋值后的变量集合和数字逻辑函数,对预设验证密钥元素集合进行赋 值 ,得 到 用 于零 知 识 证 明或 可 验 证 计 算的 验 证 密 钥 ,例如 ,根 据预设验证密钥元素集合进行赋值,得到用于零知识证明或可验证计算的验证密钥,其中,
表示赋值后的变量集合,N为该数
字逻辑函数的取值范围。
[0055] 其中,如图4所示,上述S104利用可信执行硬件中的数据消除器将在生成密钥对的过程所产生的中间数据进行消除处理,包括:
[0056] 步骤S1041利用可信执行硬件中的数据消除器将在生成密钥对的过程所产生的中间数据覆盖为无用数据,其中,无用数据包括:随机字符串、或01字符串,具体的,为了避免非法分子利用生成证明密钥和验证密钥过程中所产生的中间数据来伪造零知识证明或可验证计算的过程,从而给使用者带来不必要的损失,通过采用可信执行硬件在生成密钥对的时候,利用可信执行硬件中的数据消除器对生成密钥对的过程所产生的中间数据采用随机字符串、或01字符串的方式进行覆盖,使得中间数据变成无用数据,无法被非法分子利用。
[0057] 其中,在基于目标逻辑函数和随机数源,生成用于零知识证明或可验证计算的密钥对后,上述S103A根据验证密钥和可信执行硬件的硬件识别码,生成密钥对对应的证据,包括:
[0058] 步骤一,对验证密钥进行哈希处理,得到验证密钥的哈希值;
[0059] 步骤二,将验证密钥的哈希值与可信执行硬件的硬件识别码的组合,确定为密钥对对应的证据,具体的,由于该验证密钥数据量很大,所以在根据验证密钥和可信执行硬件的硬件识别码生成证据之前,需要对该验证密钥进行哈希处理,得到验证密钥的哈希值,然后,将该验证密钥的哈希值与该可信执行硬件的硬件识别码的组合,确定为该密钥对对应的证据;
[0060] 上述可信执行硬件将确定的证据发送至认证机构,认证机构首先对该证据中的硬件识别码进行认证,若认证通过,则对证据中验证密钥的哈希值进行签名生成证书,并将该证书发送给验证方;
[0061] 具体的,图5为本说明书一个或多个实施例提供的可信建立系统的应用场景示意图,如图5所示,该系统包括:可信执行硬件、认证机构、验证方、证明方,其中,该可信执行硬件为可信执行环境TEE硬件,可信建立的具体过程为:
[0062] (1)可信执行环境TEE硬件从预设外部电路获取目标逻辑函数,以及利用数据生成器采集内部的电源噪声、晶体噪声等至少一种物理噪声,然后对采集到的该物理噪声进行数字转换处理,得到相应的随机数源;
[0063] (2)可信执行环境TEE硬件通过可信建立程序,基于获取到的目标逻辑函数和随机数源,生成用于零知识证明或可验证计算的密钥对,其中,该密钥对包括:证明密钥和验证密钥,并利用数据消除器将在生成密钥对的过程所产生的中间数据覆盖为随机字符串、或01字符串等无用数据;
[0064] (3)可信执行环境TEE硬件根据验证密钥和可信执行硬件的硬件识别码,生成密钥对对应的证据,并将密钥对及证据发送至认证机构进行验证;
[0065] (4)认证机构接收到密钥对和证据后,首先对证据中的硬件识别码进行认证,如果认证通过,认证机构对密钥对中的验证密钥进行签名处理生成证书,并将该证书以及密钥对发送给验证方;
[0066] (5)验证方接收到证书后,对证书及验证密钥进行验证,若验证通过,则将该验证密钥存储下来;具体的,验证方接收到证书后,向认证机构获取该证书对应的公钥信息,基于该公钥信息对证书进行验证,若验证通过,基于该证书对密钥对中的验证密钥进行进一步验证,若验证结果为真,将该验证密钥存储下来;
[0067] (6)证明方可以从通过认证机构或可信执行环境TEE硬件获取证明密钥,通过将目标数据x输入目标逻辑函数y=f(x),得到目标输出数据y;然后,根据目标输出数据y,目标数据x以及证明密钥,生成证明proof,并将该证明proof发送至验证方;
[0068] (7)验证方接收到该证明proof,基于存储的验证密钥对该证明proof进行验证,在不需要知道证明方所持有的目标数据x的具体信息,即可确定证明方是否持有目标数据x。
[0069] 本发明实施例中的密钥信息生成方法,包括:从预设外部电路获取目标逻辑函数,以及利用可信执行硬件中的数据生成器生成随机数源;基于目标逻辑函数和随机数源,生成用于零知识证明或可验证计算的密钥对,其中,密钥对包括证明密钥和验证密钥;利用可信执行硬件中的数据消除器将在生成密钥对的过程所产生的中间数据进行消除处理;以及,将密钥对发送给认证机构,以使认证机构基于密钥对中的验证密钥生成相应的证书并将密钥对和证书发送给验证方。本发明实施例中,通过利用独立的可信执行硬件生成密钥对,以及自动消除在该密钥对的生成过程中所产生的中间数据,从而有效保证了数据的安全性,避免非法分子使用中间数据来伪造零知识证明或可验证计算的过程;同时,上述密钥对生成过程是在可信执行硬件中进行,由于该可信执行硬件能够隔离所有计算的代码和数据,外部无法获知整个运算过程,并且数据安全性不依赖公证员,因此,能够实现频繁进行可信建立,从而实现了自动化运行。
[0070] 对应上述实施例提供的密钥信息生成方法,基于相同的技术构思,本发明实施例还提供了一种密钥信息生成装置,图6为本发明实施例提供的密钥信息生成装置的第一种模块组成示意图,该密钥信息生成装置用于执行图1至图5描述的密钥信息生成方法,如图6所示,该密钥信息生成装置包括:
[0071] 目标逻辑函数获取模块601,用于从预设外部电路获取目标逻辑函数;
[0072] 随机数源生成模块602,用于利用所述可信执行硬件中的数据生成器生成随机数源;
[0073] 密钥对生成模块603,用于基于所述目标逻辑函数和所述随机数源,生成用于零知识证明或可验证计算的密钥对,其中,所述密钥对包括证明密钥和验证密钥;
[0074] 数据消除模块604,用于利用所述可信执行硬件中的数据消除器将在生成所述密钥对的过程所产生的中间数据进行消除处理;
[0075] 数据发送模块605,用于将所述密钥对发送给认证机构,以使所述认证机构基于所述密钥对中的所述验证密钥生成相应的证书并将所述密钥对和所述证书发送给验证方。
[0076] 本发明实施例中,通过利用独立的可信执行硬件生成密钥对,以及自动消除在该密钥对的生成过程中所产生的中间数据,从而有效保证了数据的安全性,避免非法分子使用中间数据来伪造零知识证明或可验证计算的过程;同时,上述密钥对生成过程是在可信执行硬件中进行,由于该可信执行硬件能够隔离所有计算的代码和数据,外部无法获知整个运算过程,并且数据安全性不依赖公证员,因此,能够实现频繁进行可信建立,从而实现了自动化运行。
[0077] 可选地,如图7所示,上述装置还包括:
[0078] 证据生成模块603A,用于根据所述验证密钥和所述可信执行硬件的硬件识别码,生成所述密钥对对应的证据;
[0079] 对应的,所述数据发送模块605,具体用于:
[0080] 将所述密钥对和所述证据发送给认证机构,以使所述认证机构在确定所述证据中的所述硬件识别码正确时,基于所述密钥对中的所述验证密钥生成相应的证书,并将所述密钥对和所述证书发送给验证方。
[0081] 可选地,上述随机数源生成模块602,具体用于:
[0082] 利用所述可信执行硬件中的数据生成器采集内部的物理噪声,其中,所述物理噪声包括:电源噪声、晶体噪声中至少一种;
[0083] 对采集到的所述物理噪声进行数字转换处理,得到相应的随机数源。
[0084] 可选地,上述密钥对生成模块603,具体用于:
[0085] 将所述目标逻辑函数进行格式转换,得到二进制编码的数字逻辑函数;
[0086] 基于所述随机数源对预设变量集合进行赋值,得到赋值后的变量集合;
[0087] 基于所述赋值后的变量集合和所述数字逻辑函数,对预设证明密钥元素集合进行赋值,得到用于零知识证明或可验证计算的证明密钥;
[0088] 基于所述赋值后的变量集合和所述数字逻辑函数,对预设验证密钥元素集合进行赋值,得到用于零知识证明或可验证计算的验证密钥。
[0089] 可选地,上述数据消除模块604,具体用于:
[0090] 利用所述可信执行硬件中的数据消除器将在生成所述密钥对的过程所产生的中间数据覆盖为无用数据,其中,所述无用数据包括:随机字符串、或08字符串。
[0091] 可选地,上述证据生成模块606,具体用于:
[0092] 对所述验证密钥进行哈希处理,得到所述验证密钥的哈希值;
[0093] 将所述验证密钥的所述哈希值与所述可信执行硬件的硬件识别码的组合,确定为所述密钥对对应的证据。
[0094] 可选地,上述可信执行硬件为可信执行环境TEE硬件。
[0095] 本发明实施例中的密钥信息生成装置,从预设外部电路获取目标逻辑函数,以及利用可信执行硬件中的数据生成器生成随机数源;基于目标逻辑函数和随机数源,生成用于零知识证明或可验证计算的密钥对,其中,密钥对包括证明密钥和验证密钥;利用可信执行硬件中的数据消除器将在生成密钥对的过程所产生的中间数据进行消除处理;以及,将密钥对发送给认证机构,以使认证机构基于密钥对中的验证密钥生成相应的证书并将密钥对和证书发送给验证方。本发明实施例中,通过利用独立的可信执行硬件生成密钥对,以及自动消除在该密钥对的生成过程中所产生的中间数据,从而有效保证了数据的安全性,避免非法分子使用中间数据来伪造零知识证明或可验证计算的过程;同时,上述密钥对生成过程是在可信执行硬件中进行,由于该可信执行硬件能够隔离所有计算的代码和数据,外部无法获知整个运算过程,并且数据安全性不依赖公证员,因此,能够实现频繁进行可信建立,从而实现了自动化运行。
[0096] 本发明实施例提供的密钥信息生成装置能够实现上述密钥信息生成方法对应的实施例中的各个过程,为避免重复,这里不再赘述。
[0097] 需要说明的是,本发明实施例提供的密钥信息生成装置与本发明实施例提供的密钥信息生成方法基于同一发明构思,因此该实施例的具体实施可以参见前述密钥信息生成方法的实施,重复之处不再赘述。
[0098] 对应上述实施例提供的密钥信息生成方法,基于相同的技术构思,本发明实施例还提供了一种移动终端,该设备用于执行上述的密钥信息生成方法,图8为实现本发明各个实施例的一种移动终端的硬件结构示意图,图8所示的移动终端100包括但不限于:射频单元101、网络模块102、音频输出单元103、输入单元104、传感器105、显示单元106、用户输入单元107、接口单元108、存储器109、处理器110、以及电源111等部件。本领域技术人员可以理解,图8中示出的移动终端结构并不构成对移动终端的限定,移动终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,移动终端包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
[0099] 其中,处理器110,用于从预设外部电路获取目标逻辑函数,以及利用所述可信执行硬件中的数据生成器生成随机数源;
[0100] 基于所述目标逻辑函数和所述随机数源,生成用于零知识证明或可验证计算的密钥对,其中,所述密钥对包括证明密钥和验证密钥;
[0101] 利用所述可信执行硬件中的数据消除器将在生成所述密钥对的过程所产生的中间数据进行消除处理;以及,
[0102] 将所述密钥对发送给认证机构,以使所述认证机构基于所述密钥对中的所述验证密钥生成相应的证书并将所述密钥对和所述证书发送给验证方。
[0103] 本发明实施例中,通过利用独立的可信执行硬件生成密钥对,以及自动消除在该密钥对的生成过程中所产生的中间数据,从而有效保证了数据的安全性,避免非法分子使用中间数据来伪造零知识证明或可验证计算的过程;同时,上述密钥对生成过程是在可信执行硬件中进行,由于该可信执行硬件能够隔离所有计算的代码和数据,外部无法获知整个运算过程,并且数据安全性不依赖公证员,因此,能够实现频繁进行可信建立,从而实现了自动化运行。
[0104] 其中,处理器110,还用于:
[0105] 根据所述验证密钥和所述可信执行硬件的硬件识别码,生成所述密钥对对应的证据;
[0106] 对应的,处理器110,具体用于:
[0107] 将所述密钥对和所述证据发送给认证机构,以使所述认证机构在确定所述证据中的所述硬件识别码正确时,基于所述密钥对中的所述验证密钥生成相应的证书,并将所述密钥对和所述证书发送给验证方。
[0108] 其中,处理器110,具体用于:
[0109] 利用所述可信执行硬件中的数据生成器采集内部的物理噪声,其中,所述物理噪声包括:电源噪声、晶体噪声中至少一种;
[0110] 对采集到的所述物理噪声进行数字转换处理,得到相应的随机数源。
[0111] 其中,处理器110,具体用于:
[0112] 将所述目标逻辑函数进行格式转换,得到二进制编码的数字逻辑函数;
[0113] 基于所述随机数源对预设变量集合进行赋值,得到赋值后的变量集合;
[0114] 基于所述赋值后的变量集合和所述数字逻辑函数,对预设证明密钥元素集合进行赋值,得到用于零知识证明或可验证计算的证明密钥;
[0115] 基于所述赋值后的变量集合和所述数字逻辑函数,对预设验证密钥元素集合进行赋值,得到用于零知识证明或可验证计算的验证密钥。
[0116] 其中,处理器110,具体用于:
[0117] 利用所述可信执行硬件中的数据消除器将在生成所述密钥对的过程所产生的中间数据覆盖为无用数据,其中,所述无用数据包括:随机字符串、或01字符串。
[0118] 其中,处理器110,具体用于:
[0119] 对所述验证密钥进行哈希处理,得到所述验证密钥的哈希值;
[0120] 将所述验证密钥的所述哈希值与所述可信执行硬件的硬件识别码的组合,确定为所述密钥对对应的证据。
[0121] 其中,处理器110,具体用于:
[0122] 所述可信执行硬件为可信执行环境TEE硬件。
[0123] 本发明实施例中的移动终端100,从预设外部电路获取目标逻辑函数,以及利用可信执行硬件中的数据生成器生成随机数源;基于目标逻辑函数和随机数源,生成用于零知识证明或可验证计算的密钥对,其中,密钥对包括证明密钥和验证密钥;利用可信执行硬件中的数据消除器将在生成密钥对的过程所产生的中间数据进行消除处理;以及,将密钥对发送给认证机构,以使认证机构基于密钥对中的验证密钥生成相应的证书并将密钥对和证书发送给验证方。本发明实施例中,通过利用独立的可信执行硬件生成密钥对,以及自动消除在该密钥对的生成过程中所产生的中间数据,从而有效保证了数据的安全性,避免非法分子使用中间数据来伪造零知识证明或可验证计算的过程;同时,上述密钥对生成过程是在可信执行硬件中进行,由于该可信执行硬件能够隔离所有计算的代码和数据,外部无法获知整个运算过程,并且数据安全性不依赖公证员,因此,能够实现频繁进行可信建立,从而实现了自动化运行。
[0124] 需要说明的是,本发明实施例提供的移动终端100能够实现上述密钥信息生成方法实施例中移动终端实现的各个过程,为避免重复,这里不再赘述。
[0125] 应理解的是,本发明实施例中,射频单元101可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器110处理;另外,将上行的数据发送给基站。通常,射频单元101包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元101还可以通过无线通信系统与网络和其他设备通信。
[0126] 移动终端通过网络模块102为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
[0127] 音频输出单元103可以将射频单元101或网络模块102接收的或者在存储器109中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元103还可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元103包括扬声器、蜂鸣器以及受话器等。
[0128] 输入单元104用于接收音频或视频信号。输入单元104可以包括图形处理器(Graphics Processing Unit,GPU)1041和麦克风1042,图形处理器1041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元106上。经图形处理器1041处理后的图像帧可以存储在存储器109(或其它存储介质)中或者经由射频单元101或网络模块102进行发送。麦克风1042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元101发送到移动通信基站的格式输出。
[0129] 移动终端100还包括至少一种传感器105,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1061的亮度,接近传感器可在移动终端100移动到耳边时,关闭显示面板1061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别移动终端姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器105还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
[0130] 显示单元106用于显示由用户输入的信息或提供给用户的信息。显示单元106可包括显示面板1061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1061。
[0131] 用户输入单元107可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元107包括触控面板1071以及其他输入设备1072。触控面板1071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1071上或在触控面板1071附近的操作)。触控面板1071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器110,接收处理器110发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1071。除了触控面板1071,用户输入单元107还可以包括其他输入设备1072。具体地,其他输入设备1072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
[0132] 进一步的,触控面板1071可覆盖在显示面板1061上,当触控面板1071检测到在其上或附近的触摸操作后,传送给处理器110以确定触摸事件的类型,随后处理器110根据触摸事件的类型在显示面板1061上提供相应的视觉输出。虽然在图8中,触控面板1071与显示面板1061是作为两个独立的部件来实现移动终端的输入和输出功能,但是在某些实施例中,可以将触控面板1071与显示面板1061集成而实现移动终端的输入和输出功能,具体此处不做限定。
[0133] 接口单元108为外部装置与移动终端100连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元108可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端100和外部装置之间传输数据。
[0134] 存储器109可用于存储软件程序以及各种数据。存储器109可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器109可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0135] 处理器110是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器109内的软件程序和/或模块,以及调用存储在存储器109内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。处理器110可包括一个或多个处理单元;优选的,处理器110可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器110中。
[0136] 移动终端100还可以包括给各个部件供电的电源111(比如电池),优选的,电源111可以通过电源管理系统与处理器110逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0137] 另外,移动终端100包括一些未示出的功能模块,在此不再赘述。
[0138] 优选的,本发明实施例还提供一种移动终端,包括处理器110,存储器109,存储在存储器109上并可在所述处理器110上运行的计算机程序,该计算机程序被处理器110执行时实现上述密钥信息生成方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0139] 进一步地,对应上述实施例提供的密钥信息生成方法,本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器110执行时实现如上述密钥信息生成方法实施例的各步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
[0140] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0141] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0142] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0143] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0144] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0145] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0146] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0147] 可以理解的是,本发明实施例描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本发明所述功能的其它电子单元或其组合中。
[0148] 对于软件实现,可通过执行本发明实施例所述功能的模块(例如过程、函数等)来实现本发明实施例所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
[0149] 还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0150] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
[0151] 上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。