CN115118411A - 链下多方可信计算方法、装置、设备及存储介质 - Google Patents

链下多方可信计算方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115118411A
CN115118411A CN202211037908.0A CN202211037908A CN115118411A CN 115118411 A CN115118411 A CN 115118411A CN 202211037908 A CN202211037908 A CN 202211037908A CN 115118411 A CN115118411 A CN 115118411A
Authority
CN
China
Prior art keywords
computing
signature
node
encrypted
calculation
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
Application number
CN202211037908.0A
Other languages
English (en)
Other versions
CN115118411B (zh
Inventor
刘博�
曹金海
周喆
孙福辉
王晓燕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
People's Court Information Technology Service Center
Shanghai Xiecheng New Technology Development Co ltd
Original Assignee
Shanghai Xiecheng New Technology Development Co ltd
People's Court Information Technology Service Center
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Xiecheng New Technology Development Co ltd, People's Court Information Technology Service Center filed Critical Shanghai Xiecheng New Technology Development Co ltd
Priority to CN202211037908.0A priority Critical patent/CN115118411B/zh
Publication of CN115118411A publication Critical patent/CN115118411A/zh
Application granted granted Critical
Publication of CN115118411B publication Critical patent/CN115118411B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本说明书涉及链下可信计算技术领域,提供了一种链下多方可信计算方法、装置、设备及存储介质,该方法包括:接收到调用计算模型的计算请求时生成N个随机数;从链下计算集群中随机选择N个计算节点;根据N个随机数生成中间参数及N个加密随机数;将中间参数、N个加密随机数和N个计算节点的地址打包为计算任务;将计算任务提供给数据源,以使数据源根据地址将N份同态加密入参数据对应提供给N个计算节点处理;接收每个计算节点返回的携带签名的加密计算结果;每个签名由对应计算节点基于中间参数及各自的加密随机数生成;对加密计算结果进行签名验证及同态解密后的结果一致性验证。本说明书实施例可兼顾链上数据在链下计算的安全性和实现成本。

Description

链下多方可信计算方法、装置、设备及存储介质
技术领域
本说明书涉及链下可信计算技术领域,尤其是涉及一种链下多方可信计算方法、装置、设备及存储介质。
背景技术
智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约建立的权利和义务,是由一台计算机或者计算机网络执行的。智能合约引擎利用合约运行环境控制模块,依据合约执行事务请求中指定的合约地址,获取链上保存的对应合约代码,并验证合约代码的真实性;在确保合约代码的正确性后,将合约代码自动部署在合约运行环境中;智能合约引擎在验证合约执行事务请求的合法性后,依据合约执行事务请求中的合约调用信息,在部署好的对应合约运行环境中自动执行相应的合约方法,从而完成对链上数据的操作。
区块链智能合约的执行指令有限,且执行的时间和算力都限于区块的大小,所以一般不会参与复杂的计算。涉及链外数据和统计等复杂计算,一般采用预言机(Oracle)、或者网桥计算后的数据给链上的合约,对数据结果进行投票验证。然而,链外计算节点一旦被控制,数据可能会泄漏且计算结果也会受到影响。而基于硬件的可信执行环境(TrustedExecution Environment,TEE )过于苛刻,对计算的数据范围有限,且实现成本较高。因此,如何平衡链上数据在链下进行计算的安全性和实现成本已成为目前亟待解决的技术问题。
发明内容
本说明书实施例的目的在于提供一种链下多方可信计算扩容方法、装置、设备及存储介质,以兼顾链上数据在链下进行计算的安全性和实现成本。
为达到上述目的,一方面,本说明书实施例提供了一种链下多方可信计算方法,包括:
接收到调用计算模型的计算请求时生成N个随机数;N为指定数量;
从链下计算集群中随机选择N个计算节点;
根据所述N个随机数生成中间参数及N个加密随机数;
将所述中间参数、所述N个加密随机数和所述N个计算节点的地址打包为计算任务;
将所述计算任务提供给数据源,以使所述数据源根据所述地址将N份同态加密入参数据对应提供给所述N个计算节点处理;
接收每个所述计算节点返回的携带签名的加密计算结果;每个所述签名由对应计算节点基于所述中间参数及各自的加密随机数生成;
对所述加密计算结果进行签名验证及同态解密后的结果一致性验证。
本说明书实施例的链下多方可信计算方法中,根据所述N个随机数生成中间参数,包括:
根据公式
Figure 118083DEST_PATH_IMAGE001
获取所述N个随机数对应的N个承诺;
根据公式
Figure 574472DEST_PATH_IMAGE002
将所述N个承诺归集为承诺集合;
根据公式
Figure 329939DEST_PATH_IMAGE003
生成中间参数;
其中,
Figure 938906DEST_PATH_IMAGE004
为第i个计算节点的随机数,
Figure 223257DEST_PATH_IMAGE005
Figure 166942DEST_PATH_IMAGE004
的承诺,g为椭圆曲线的循环群中的基点,
Figure 726099DEST_PATH_IMAGE006
为承诺集合,H为中间参数,m为计算模型,
Figure 438840DEST_PATH_IMAGE007
为N个计算节点的公钥集合,
Figure 173054DEST_PATH_IMAGE008
表示m
Figure 72877DEST_PATH_IMAGE007
Figure 170146DEST_PATH_IMAGE006
的字符串组合。
本说明书实施例的链下多方可信计算方法中,根据所述N个随机数生成N个加密随机数,包括:
为每个所述计算节点分配一个公私钥对;
用所述N个计算节点的公钥对应加密所述N个随机数,获得N个加密随机数。
本说明书实施例的链下多方可信计算方法中,所述N份同态加密入参数据由所述数据源利用所述N个计算节点的随机公钥对应入参数据生成,所述N个计算节点的随机公钥由所述数据源生成并分配。
本说明书实施例的链下多方可信计算方法中,每个所述签名由对应计算节点根据公式
Figure 2972DEST_PATH_IMAGE009
计算得到;其中,
Figure 894705DEST_PATH_IMAGE010
为第i个计算节点的签名,H为中间参数,
Figure 298136DEST_PATH_IMAGE011
为第i个计算节点的私钥,
Figure 199095DEST_PATH_IMAGE012
为第i个计算节点的随机数,且
Figure 886429DEST_PATH_IMAGE004
由第i个计算节点利用
Figure 214642DEST_PATH_IMAGE013
解密其加密随机数得到。
本说明书实施例的链下多方可信计算方法中,对所述加密计算结果进行签名验证及同态解密后的结果一致性验证,包括:
根据公式
Figure 839789DEST_PATH_IMAGE014
将各个加密计算结果携带的签名进行合并,获得联合签名;
判断所述联合签名是否满足
Figure 278861DEST_PATH_IMAGE015
如果所述联合签名满足
Figure 820701DEST_PATH_IMAGE015
,则签名验证成功;
当签名验证成功时,利用N个计算节点的随机私钥对应同态解密N个加密计算结果,获得N个计算结果;所述N个计算节点的随机私钥由所述数据源生成并分配;
比较所述N个计算结果是否一致;
如果所述N个计算结果一致,则结果一致性验证成功;
其中,S为联合签名,
Figure 319815DEST_PATH_IMAGE016
为第i个计算节点的签名,g为椭圆曲线的循环群中的基点,R为单个计算节点的承诺值,
Figure 681526DEST_PATH_IMAGE007
为公钥集合,H为中间参数。
另一方面,本说明书实施例还提供了另一种链下多方可信计算方法,包括:
接收计算任务;所述计算任务包括中间参数、N个加密随机数和N个计算节点的地址;
为每个所述计算节点分配一个随机公私钥对;
用所述N个计算节点的随机公钥分别对入参数据进行加密,获得N份同态加密入参数据;
根据所述N个计算节点的地址将所述N份同态加密入参数据对应提供给所述N个计算节点处理;
用区块链节点的公钥加密所述N个计算节点的随机私钥,获得加密随机私钥;
将所述加密随机私钥提供给所述区块链节点,以便所述区块链节点对所述N个计算节点返回的携带签名的加密计算结果进行签名验证及同态解密后的结果一致性验证。
本说明书实施例的链下多方可信计算方法中,所述中间参数由所述区块链节点根据以下方式获得:
根据公式
Figure 675021DEST_PATH_IMAGE001
获取N个随机数对应的N个承诺;
根据公式
Figure 71368DEST_PATH_IMAGE002
将所述N个承诺归集为承诺集合;
根据公式
Figure 741383DEST_PATH_IMAGE003
生成中间参数;
其中,
Figure 590391DEST_PATH_IMAGE004
为第i个计算节点的随机数,
Figure 656085DEST_PATH_IMAGE005
Figure 641359DEST_PATH_IMAGE004
的承诺,g为椭圆曲线的循环群中的基点,
Figure 482276DEST_PATH_IMAGE006
为承诺集合,H为中间参数,m为计算模型,
Figure 84159DEST_PATH_IMAGE007
为N个计算节点的公钥集合,
Figure 403145DEST_PATH_IMAGE008
表示m
Figure 524815DEST_PATH_IMAGE007
Figure 536634DEST_PATH_IMAGE006
的字符串组合。
本说明书实施例的链下多方可信计算方法中,所述加密随机数由所述区块链节点根据以下方式获得:
为每个所述计算节点分配一个公私钥对;
用所述N个计算节点的公钥对应加密N个随机数,获得N个加密随机数。
本说明书实施例的链下多方可信计算方法中,每个所述签名由对应计算节点根据公式
Figure 625813DEST_PATH_IMAGE009
计算得到;其中,
Figure 482910DEST_PATH_IMAGE016
为第i个计算节点的签名,H为中间参数,
Figure 459088DEST_PATH_IMAGE011
为第i个计算节点的私钥,
Figure 907386DEST_PATH_IMAGE012
为第i个计算节点的随机数,且
Figure 952703DEST_PATH_IMAGE004
由第i个计算节点利用
Figure 879071DEST_PATH_IMAGE013
解密其加密随机数得到。
本说明书实施例的链下多方可信计算方法中,所述区块链节点对所述N个计算节点返回的携带签名的加密计算结果进行签名验证及同态解密后的结果一致性验证,包括:
所述区块链节点根据公式
Figure 224601DEST_PATH_IMAGE014
将各个加密计算结果携带的签名进行合并,获得联合签名;
所述区块链节点判断所述联合签名是否满足
Figure 328955DEST_PATH_IMAGE015
如果所述联合签名满足
Figure 127146DEST_PATH_IMAGE015
,则所述区块链节点确认签名验证成功;
所述区块链节点在确认签名验证成功时,利用N个计算节点的随机私钥对应同态解密N个加密计算结果,获得N个计算结果;
所述区块链节点比较所述N个计算结果是否一致;
如果所述N个计算结果一致,则所述区块链节点确认结果一致性验证成功;
其中,S为联合签名,
Figure 591626DEST_PATH_IMAGE010
为第i个计算节点的签名,g为椭圆曲线的循环群中的基点,R为单个计算节点的承诺值,
Figure 791663DEST_PATH_IMAGE007
为公钥集合,H为中间参数。
另一方面,本说明书实施例还提供了另一种链下多方可信计算方法,包括:
将区块链节点发送的计算任务转发给数据源;所述计算任务包括中间参数、N个加密随机数和N个计算节点的地址;
接收所述数据源根据所述地址返回的同态加密入参数据;
根据所述计算任务对应的计算模型处理所述同态加密入参数据,获得加密计算结果;
基于所述中间参数及自身对应的加密随机数对所述加密计算结果进行签名;
将携带签名的加密计算结果提供给所述区块链节点,以便所述区块链节点对携带签名的加密计算结果进行签名验证及同态解密后的结果一致性验证。
本说明书实施例的链下多方可信计算方法中,基于所述中间参数及自身对应的加密随机数对所述加密计算结果进行签名,包括:
利用自身的私钥解密所述计算任务中对应的加密随机数,获得随机数;
根据公式
Figure 63988DEST_PATH_IMAGE009
对所述加密计算结果进行签名;
其中,
Figure 349476DEST_PATH_IMAGE016
为第i个计算节点的签名,H为中间参数,
Figure 352067DEST_PATH_IMAGE011
为第i个计算节点的私钥,
Figure 406610DEST_PATH_IMAGE017
为第i个计算节点的随机数,且
Figure 367613DEST_PATH_IMAGE004
由第i个计算节点利用
Figure 891130DEST_PATH_IMAGE018
解密其加密随机数得到。
本说明书实施例的链下多方可信计算方法中,所述中间参数由所述区块链节点根据以下方式获得:
根据公式
Figure 431832DEST_PATH_IMAGE001
获取N个随机数对应的N个承诺;
根据公式
Figure 606462DEST_PATH_IMAGE002
将所述N个承诺归集为承诺集合;
根据公式
Figure 472787DEST_PATH_IMAGE003
生成中间参数;
其中,
Figure 483599DEST_PATH_IMAGE004
为第i个计算节点的随机数,
Figure 827993DEST_PATH_IMAGE005
Figure 857129DEST_PATH_IMAGE004
的承诺,g为椭圆曲线的循环群中的基点,
Figure 159934DEST_PATH_IMAGE006
为承诺集合,H为中间参数,m为计算模型,
Figure 641731DEST_PATH_IMAGE007
为N个计算节点的公钥集合,
Figure 806127DEST_PATH_IMAGE008
表示m
Figure 424190DEST_PATH_IMAGE007
Figure 897897DEST_PATH_IMAGE006
的字符串组合。
本说明书实施例的链下多方可信计算方法中,所述加密随机数由所述区块链节点根据以下方式获得:
为每个所述计算节点分配一个公私钥对;
用所述N个计算节点的公钥对应加密N个随机数,获得N个加密随机数。
本说明书实施例的链下多方可信计算方法中,所述区块链节点对携带签名的加密计算结果进行签名验证及同态解密后的结果一致性验证,包括:
所述区块链节点根据公式
Figure 601411DEST_PATH_IMAGE014
将各个加密计算结果携带的签名进行合并,获得联合签名;
所述区块链节点判断所述联合签名是否满足
Figure 553186DEST_PATH_IMAGE015
如果所述联合签名满足
Figure 298858DEST_PATH_IMAGE015
,则所述区块链节点确认签名验证成功;
所述区块链节点在确认签名验证成功时,利用N个计算节点的随机私钥对应同态解密N个加密计算结果,获得N个计算结果;所述N个计算节点的随机私钥由所述数据源生成并分配;
所述区块链节点比较所述N个计算结果是否一致;
如果所述N个计算结果一致,则所述区块链节点确认结果一致性验证成功;
其中,S为联合签名,
Figure 943466DEST_PATH_IMAGE010
为第i个计算节点的签名,g为椭圆曲线的循环群中的基点,R为单个计算节点的承诺值,
Figure 134275DEST_PATH_IMAGE007
为公钥集合,H为中间参数。
另一方面,本说明书实施例还提供了一种链下多方可信计算装置,包括:
第一生成模块,用于接收到调用计算模型的计算请求时生成N个随机数;N为指定数量;
节点选择模块,用于从链下计算集群中随机选择N个计算节点;
第二生成模块,用于根据所述N个随机数生成中间参数及N个加密随机数;
数据打包模块,用于将所述中间参数、所述N个加密随机数和所述N个计算节点的地址打包为计算任务;
任务提供模块,用于将所述计算任务提供给数据源,以使所述数据源根据所述地址将N份同态加密入参数据对应提供给所述N个计算节点处理;
结果接收模块,用于接收每个所述计算节点返回的携带签名的加密计算结果;每个所述签名由对应计算节点基于所述中间参数及各自的加密随机数生成;
结果验证模块,用于对所述加密计算结果进行签名验证及同态解密后的结果一致性验证。
另一方面,本说明书实施例还提供了另一种链下多方可信计算装置,包括:
任务接收模块,用于接收计算任务;所述计算任务包括中间参数、N个加密随机数和N个计算节点的地址;
密钥分配模块,用于为每个所述计算节点分配一个随机公私钥对;
第一加密模块,用于用所述N个计算节点的随机公钥分别对入参数据进行加密,获得N份同态加密入参数据;
数据提供模块,用于根据所述N个计算节点的地址将所述N份同态加密入参数据对应提供给所述N个计算节点处理;
第二加密模块,用于用区块链节点的公钥加密所述N个计算节点的随机私钥,获得加密随机私钥;
私钥提供模块,用于将所述加密随机私钥提供给所述区块链节点,以便所述区块链节点进行结果一致性验证处理。
另一方面,本说明书实施例还提供了另一种链下多方可信计算装置,包括:
任务转发模块,用于将区块链节点发送的计算任务转发给数据源;所述计算任务包括中间参数、N个加密随机数和N个计算节点的地址;
数据接收模块,用于接收所述数据源根据所述地址返回的同态加密入参数据;
任务执行模块,用于根据所述计算任务对应的计算模型处理所述同态加密入参数据,获得加密计算结果;
结果签名模块,用于基于所述中间参数及自身对应的加密随机数对所述加密计算结果进行签名;
结果提供模块,用于将携带签名的加密计算结果提供给所述区块链节点,以便所述区块链节点对携带签名的加密计算结果进行签名验证及同态解密后的结果一致性验证。
另一方面,本说明书实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述方法的指令。
另一方面,本说明书实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
另一方面,本说明书实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
由以上本说明书实施例提供的技术方案可见,本说明书实施例中,由于入参数据通过同态加密进行了混淆,每个计算节点返回的计算结果也进行了混淆,且所有计算结果达到结果一致性时才能验证通过,从而实现了在避免采用基于硬件的可信执行环境下,提高了链上数据在链下进行计算的安全性,从而兼顾了链上数据在链下进行计算的安全性和实现成本。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了本说明书一些实施例中链下多方可信计算系统的结构框图;
图2示出了本说明书一些实施例中链下多方可信计算系统的链下多方可信计算示意图;
图3示出了本说明书一些实施例中链下多方可信计算方法的流程图;
图4示出了本说明书另一些实施例中链下多方可信计算方法的流程图;
图5示出了本说明书另一些实施例中链下多方可信计算方法的流程图;
图6示出了本说明书一些实施例中链下多方可信计算装置的结构框图;
图7示出了本说明书另一些实施例中链下多方可信计算装置的结构框图;
图8示出了本说明书另一些实施例中链下多方可信计算装置的结构框图;
图9示出了本说明书一些实施例中计算机设备的结构框图。
【附图标记说明】
10、用户端;
20、区块链节点;
30、计算节点;
40、数据源;
61、第一生成模块;
62、节点选择模块;
63、第二生成模块;
64、数据打包模块;
65、任务提供模块;
66、结果接收模块;
67、结果验证模块;
71、任务接收模块;
72、密钥分配模块;
73、第一加密模块;
74、数据提供模块;
75、第二加密模块;
76、私钥提供模块;
81、任务转发模块;
82、数据接收模块;
83、任务执行模块;
84、结果签名模块;
85、结果提供模块;
902、计算机设备;
904、处理器;
906、存储器;
908、驱动机构;
910、输入/输出接口;
912、输入设备;
914、输出设备;
916、呈现设备;
918、图形用户接口;
920、网络接口;
922、通信链路;
924、通信总线。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
本说明书实施例涉及链下多方可信计算技术,可以应用于各业务领域的联合数据分析、联合机器学习训练等场景。例如,在一示例性实施例中,本说明书实施例的链下多方可信计算技术可以应用于律师信用积分计算场景。
图1中示出了本说明书一些实施例中链下多方可信计算系统的示意图,该链下多方可信计算系统可以包括用户端10、区块链分布式网络(包括多个区块链节点20)、链下计算节点集群(包括多个计算节点30)和数据源40。结合图2所示,用户端10可以向区块链节点20发送计算请求;区块链节点20(具体为区块链的前端节点)可以根据计算请求生成计算任务,并通过计算节点30转发给数据源;数据源40可以为该计算任务生成同态加密入参数据并提供给计算节点30处理;每个计算节点30根据同态加密入参数据和计算任务中指定调用的计算模型处理计算任务,生成加密计算结果并进行签名,然后将携带签名的加密计算结果返回给区块链节点20;区块链节点20对携带签名的加密计算结果进行签名验证和同态解密后的结果一致性验证,并据此更新区块链分布式账本,然后将结果以日志的形式推送给用户端10。由于数据源提供的入参数据通过同态加密进行了混淆,每个计算节点30返回的计算结果也进行了混淆,且所有计算结果达到结果一致性时才能验证通过,从而实现了在避免采用基于硬件的可信执行环境下,提高了链上数据在链下进行计算的安全性,从而兼顾了链上数据在链下进行计算的安全性和实现成本。
在一些实施例中,所述用户端可以为自助终端设备、移动终端(即智能手机)、显示器、台式电脑、平板电脑、笔记本电脑、数字助理或智能可穿戴设备等。其中,智能可穿戴设备可以包括智能手环、智能手表、智能眼镜或智能头盔等。当然,所述用户端并不限于上述具有一定实体的电子设备,其还可以为运行于上述电子设备中的软件(例如app等)。
在一些实施例中,所述计算节点、所述区块链节点和所述数据源均可以为具有运算和网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理和网络交互提供业务逻辑的软件。其中,所述数据源可以为一个或多个,每个数据源可以根据预先协商的智能合约向参与计算计算节点的计算任务提供同态加密入参数据。为便于理解,以下结合若干个实施例进行具体说明。
本说明书实施例提供了一种链下多方可信计算方法,可以应用于上述的区块链节点(具体为区块链的前端节点)侧。参考图3所示,在一些实施例中,所述链下多方可信计算方法包括以下步骤:
步骤301、接收到调用计算模型的计算请求时生成N个随机数。
计算请求可以由智能合约签约方通过用户端发起。在发起计算请求前,多个智能合约用户已协商出智能合约,并将智能合约保存在区块链分布式账本中。在此基础上,对于任意一个智能合约签约方,当需要调用智能合约进行数据计算时,可以基于用户端发起计算请求。
计算请求即为调用某个智能合约的请求,换而言之,计算请求中携带有智能合约的地址或标识,而智能合约中一般约定有特定的计算模型(计算模型时数据的处理逻辑)。因此,接收到计算请求,即可以确定该计算请求所期望调用的计算模型。
为了实现链下多方可信计算的安全性和可追溯性,本说明书实施例的链下多方可信计算方法中,需要用各个参与计算的计算节点进行数字签名,从而需要用到随机数。
区块链节点可以基于任何合适的随机数生成方法生成N个随机数,其中N为指定的需要参与计算的计算节点数量。
步骤302、从链下计算集群中随机选择N个计算节点。
考虑到效率和资源消耗问题,一般不会指定链下计算节点集群中的所有计算节点都要参与计算。例如,一个链下计算节点集群中有100个计算节点,根据需要,每次可以指定其中的部分(例如10个计算节点)参与计算。
步骤303、根据所述N个随机数生成中间参数及N个加密随机数。
中间参数和随机数可用于签名和签名验证,为了提高随机数的安全性,还需要对随机数进行加密处理。
在一些实施例中,根据所述N个随机数生成中间参数可以包括以下步骤:
1)根据公式
Figure 889742DEST_PATH_IMAGE001
获取所述N个随机数对应的N个承诺;
2)根据公式
Figure 233130DEST_PATH_IMAGE002
将所述N个承诺归集为承诺集合;
3)根据公式
Figure 48639DEST_PATH_IMAGE019
生成中间参数;
其中,
Figure 992324DEST_PATH_IMAGE004
为第i个计算节点的随机数,
Figure 285902DEST_PATH_IMAGE005
Figure 998643DEST_PATH_IMAGE004
的承诺,g为椭圆曲线的循环群中的基点,
Figure 470207DEST_PATH_IMAGE006
为承诺集合,H为中间参数,m为计算模型(例如计算模型的字节码),
Figure 901188DEST_PATH_IMAGE007
为N个计算节点的公钥集合,
Figure 732878DEST_PATH_IMAGE008
表示m
Figure 831284DEST_PATH_IMAGE007
Figure 208170DEST_PATH_IMAGE006
的字符串组合,sha256为一种哈希算法。
在一些实施例中,根据所述N个随机数生成N个加密随机数可以包括:
1)为每个所述计算节点分配一个公私钥对;
2)用所述N个计算节点的公钥对应加密所述N个随机数,获得N个加密随机数。
在从链下计算集群中随机选择N个计算节点后,区块链节点可以每个随机数生成一个公私钥对(
Figure 126447DEST_PATH_IMAGE020
)。如此,可以根据公式
Figure 761828DEST_PATH_IMAGE021
将N个计算节点的公钥
Figure 183582DEST_PATH_IMAGE011
归集为公钥集合。
对于第i个计算节点,可以用第i个计算节点的公钥
Figure 511795DEST_PATH_IMAGE022
对该第i个计算节点的随机数
Figure 399592DEST_PATH_IMAGE012
进行加密,从而可以得以一个加密随机数
Figure 104243DEST_PATH_IMAGE023
;基于此,可以用N个计算节点的公钥对应加密N个随机数,获得N个加密随机数。
步骤304、将所述中间参数、所述N个加密随机数和所述N个计算节点的地址打包为计算任务。
通过打包可以便于计算任务传输。打包后获得的计算任务可以表示为
Figure 380504DEST_PATH_IMAGE024
;其中,
Figure 879618DEST_PATH_IMAGE025
为N个计算节点的节点地址或节点标识。
步骤305、将所述计算任务提供给数据源,以使所述数据源根据所述地址将N份同态加密入参数据对应提供给所述N个计算节点处理。
在一些实施例中,在生成计算任务后,区块链节点可以事件触发方式通知计算节点主动查询并获取计算任务,然后将计算任务转发给数据源。
其中,同态加密入参数据是指将入参数据经同态加密处理后获得的数据;入参数据是指为执行计算所需的输入参数数据。例如,在一示例性实施例中,若一计算模型f(x,y,z)=ax+by+cz是以x,y,z为自变量,以f(x,y,z)为因变量的函数,其中,a,b,c为常数系数,则x,y,z对应的数据即为入参数据。
N份同态加密入参数据由数据源利用所述N个计算节点的随机公钥对应入参数据生成,N个计算节点的随机公钥也是由所述数据源生成并分配。由于入参数据在传给计算节点前,已通过同态加密进行了混淆,从而使得计算节点无法获得入参数据,进而实现了数据的隐私保护。其中,同态加密是一种特殊的加密算法,对明文进行椭圆环上的加法或乘法运算再加密,与加密后对密文进行相应的运算,结果是等价的;即在密文基础上直接进行计算,与基于解密后的明文进行相应的运算是一样的计算结果。但是,与基于解密后的明文进行相应的运算相比,同态加密实现了数据的隐私保护。
步骤306、接收每个所述计算节点返回的携带签名的加密计算结果;每个所述签名由对应计算节点基于所述中间参数及各自的加密随机数生成。
每个计算节点收到对应的同态加密入参数据后,可以根据计算任务对应的计算模型直接处理同态加密入参数据,而无需对同态加密入参数据进行解密,从而获得对应的加密计算结果。在此基础上,每个计算节点对自身得到的加密计算结果进行签名,从而生成携带签名的加密计算结果。
步骤307、对所述加密计算结果进行签名验证及同态解密后的结果一致性验证。
对所述加密计算结果进行签名验证及同态解密后的结果一致性验证,可以包括下述步骤:
1)根据公式
Figure 257641DEST_PATH_IMAGE014
将各个加密计算结果携带的签名进行合并,获得联合签名;
2)判断所述联合签名是否满足
Figure 234824DEST_PATH_IMAGE015
3)如果所述联合签名满足
Figure 631171DEST_PATH_IMAGE015
,则签名验证成功;
4)当签名验证成功时,利用N个计算节点的随机私钥对应同态解密N个加密计算结果,获得N个计算结果;所述N个计算节点的随机私钥由所述数据源生成并分配;
5)比较所述N个计算结果是否一致;
例如若有N=6,则可以判断
Figure 301186DEST_PATH_IMAGE026
是否成立;其中,
Figure 415773DEST_PATH_IMAGE027
分别为六个加密计算结果对应的计算结果;
6)如果所述N个计算结果一致,则结果一致性验证成功;
其中,S为联合签名,
Figure 947380DEST_PATH_IMAGE016
为第i个计算节点的签名,g为椭圆曲线的循环群中的基点,R为单个计算节点的承诺值,
Figure 198232DEST_PATH_IMAGE007
为公钥集合,H为中间参数。
当签名验证成功时,表明N计算节点均实际参与了计算,而不是仅有N计算节点中的一部分参与了计算;并且,由于每个加密计算结果都携带有对应计算节点的签名,也可以便于实现链下多方可信计算的可追溯性。当结果一致性验证成功时,表明N计算节点的计算结果是正确可靠的。
在加密计算结果通过签名验证及同态解密后的结果一致性验证后,区块链节点可以将计算结果上链存储,即将计算结果存储于区块链分布式账本中。当然,对于计算失败情况,也可以将计算失败的状态登记在链。
图3所示的链下多方可信计算方法中,由于数据源提供的入参数据通过同态加密进行了混淆,每个计算节点返回的计算结果也进行了混淆,且所有计算结果达到结果一致性时才能验证通过,从而实现了在避免采用基于硬件的可信执行环境下,提高了链上数据在链下进行计算的安全性,从而兼顾了链上数据在链下进行计算的安全性和实现成本。
本说明书实施例提供了另一种链下多方可信计算方法,可以应用于上述的数据源侧。参考图4所示,在一些实施例中,所述链下多方可信计算方法包括以下步骤:
步骤401、接收计算任务;所述计算任务包括中间参数、N个加密随机数和N个计算节点的地址。
在一些实施例中,计算任务可以表示为
Figure 39149DEST_PATH_IMAGE024
;其中,
Figure 641032DEST_PATH_IMAGE025
为N个计算节点的节点地址或节点标识。
步骤402、为每个所述计算节点分配一个随机公私钥对。
在一些实施例中,数据源可以基于RSA、Paillier或Gentry等同态加密算法为每个所述计算节点分配一个随机公私钥对
Figure 976330DEST_PATH_IMAGE028
步骤403、用所述N个计算节点的随机公钥分别对入参数据进行加密,获得N份同态加密入参数据。
例如,对于第i个计算节点,数据源可以用第i个计算节点的随机公钥
Figure 347268DEST_PATH_IMAGE029
对入参数据D进行加密,从而可以得以一份同态加密入参数据
Figure 890245DEST_PATH_IMAGE030
;对于第i+1个计算节点,数据源可以用第i+1个计算节点的随机公钥
Figure 467506DEST_PATH_IMAGE031
对入参数据D进行加密,从而可以得以另一份同态加密入参数据
Figure 855762DEST_PATH_IMAGE032
;基于此,用N个计算节点的随机公钥分别对入参数据进行加密,可以获得N份同态加密入参数据。
步骤404、根据所述N个计算节点的地址将所述N份同态加密入参数据对应提供给所述N个计算节点处理。
在一些实施例中,若N个计算节点此前在转发计算任务时没有保存计算任务;为了方便N个计算节点的处理,数据源可以将同态加密入参数据和计算任务打包,并根据计算节点的地址将计算任务及同态加密入参数据提供给对应的计算节点处理。
例如,对于第个计算节点,数据源可以将
Figure 81207DEST_PATH_IMAGE030
Figure 998348DEST_PATH_IMAGE024
打包,打包后的数据可以表示为
Figure 574823DEST_PATH_IMAGE033
步骤405、用区块链节点的公钥加密所述N个计算节点的随机私钥,获得加密随机私钥。
数据源可以根据公式
Figure 251923DEST_PATH_IMAGE034
将N个
Figure 66295DEST_PATH_IMAGE035
承诺归集为随机私钥集合
Figure 685495DEST_PATH_IMAGE036
,然后用用区块链节点的公钥对机私钥集合
Figure 483687DEST_PATH_IMAGE036
进行加密。
步骤406、将所述加密随机私钥提供给所述区块链节点,以便所述区块链节点对所述N个计算节点返回的携带签名的加密计算结果进行签名验证及同态解密后的结果一致性验证。
数据源可以通过计算节点将所述加密随机私钥提供给所述区块链节点。
图4所示的链下多方可信计算方法中,数据源可以将入参数据通过同态加密的方式进行混淆,使得计算节点不能获得入参数据;从而保证了入参数据的隐私安全。
本说明书实施例提供了另一种链下多方可信计算方法,可以应用于上述的计算节点侧。参考图5所示,在一些实施例中,所述链下多方可信计算方法包括以下步骤:
步骤501、将区块链节点发送的计算任务转发给数据源;所述计算任务包括中间参数、N个加密随机数和N个计算节点的地址。
步骤502、接收所述数据源根据所述地址返回的同态加密入参数据。
步骤503、根据所述计算任务对应的计算模型处理所述同态加密入参数据,获得加密计算结果。
步骤504、基于所述中间参数及自身对应的加密随机数对所述加密计算结果进行签名。
在一些实施例中,基于所述中间参数及自身对应的加密随机数对所述加密计算结果进行签名,可以包括:
1)利用自身的私钥解密所述计算任务中对应的加密随机数,获得随机数;
例如,对于第i个计算节点,可以利用自身的私钥
Figure 964478DEST_PATH_IMAGE011
解密所述计算任务中对应的加密随机数
Figure 898936DEST_PATH_IMAGE037
,从而得到第i个计算节点的随机数
Figure 423458DEST_PATH_IMAGE012
2)根据公式
Figure 974525DEST_PATH_IMAGE009
对所述加密计算结果进行签名;
其中,
Figure 977116DEST_PATH_IMAGE010
为第i个计算节点的签名,H为中间参数,
Figure 782392DEST_PATH_IMAGE011
为第i个计算节点的私钥,
Figure 743395DEST_PATH_IMAGE012
为第i个计算节点的随机数。
步骤505、将携带签名的加密计算结果提供给所述区块链节点,以便所述区块链节点对携带签名的加密计算结果进行签名验证及同态解密后的结果一致性验证。
图5所示的链下多方可信计算方法中,由于同态加密入参数据是混淆的,计算节点获得的加密计算结果也是混淆的,从而保证了入参数据和计算结果的隐私安全。
虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
与上述图3所示的链下多方可信计算方法对应,本说明书实施例还提供了一种链下多方可信计算装置,其可以配置于上述的区块链节点上,参考图6所示,所述链下多方可信计算装置可以包括:
第一生成模块61,可以用于接收到调用计算模型的计算请求时生成N个随机数;N为指定数量;
节点选择模块62,可以用于从链下计算集群中随机选择N个计算节点;
第二生成模块63,可以用于根据所述N个随机数生成中间参数及N个加密随机数;
数据打包模块64,可以用于将所述中间参数、所述N个加密随机数和所述N个计算节点的地址打包为计算任务;
任务提供模块65,可以用于将所述计算任务提供给数据源,以使所述数据源根据所述地址将N份同态加密入参数据对应提供给所述N个计算节点处理;
结果接收模块66,可以用于接收每个所述计算节点返回的携带签名的加密计算结果;每个所述签名由对应计算节点基于所述中间参数及各自的加密随机数生成;
结果验证模块67,可以用于对所述加密计算结果进行签名验证及同态解密后的结果一致性验证。
与上述图4所示的链下多方可信计算方法对应,本说明书实施例还提供了另一种链下多方可信计算装置,其可以配置于上述的数据源上,参考图7所示,所述链下多方可信计算装置可以包括:
任务接收模块71,可以用于接收计算任务;所述计算任务包括中间参数、N个加密随机数和N个计算节点的地址;
密钥分配模块72,可以用于为每个所述计算节点分配一个随机公私钥对;
第一加密模块73,可以用于用所述N个计算节点的随机公钥分别对入参数据进行加密,获得N份同态加密入参数据;
数据提供模块74,可以用于根据所述N个计算节点的地址将所述N份同态加密入参数据对应提供给所述N个计算节点处理;
第二加密模块75,可以用于用区块链节点的公钥加密所述N个计算节点的随机私钥,获得加密随机私钥;
私钥提供模块76,可以用于将所述加密随机私钥提供给所述区块链节点,以便所述区块链节点进行结果一致性验证处理。
与上述图5所示的链下多方可信计算方法对应,本说明书实施例还提供了另一种链下多方可信计算装置,其可以配置于上述的计算节点上,参考图8所示,所述链下多方可信计算装置可以包括:
任务转发模块81,可以用于将区块链节点发送的计算任务转发给数据源;所述计算任务包括中间参数、N个加密随机数和N个计算节点的地址;
数据接收模块82,可以用于接收所述数据源根据所述地址返回的同态加密入参数据;
任务执行模块83,可以用于根据所述计算任务对应的计算模型处理所述同态加密入参数据,获得加密计算结果;
结果签名模块84,可以用于基于所述中间参数及自身对应的加密随机数对所述加密计算结果进行签名;
结果提供模块85,可以用于将携带签名的加密计算结果提供给所述区块链节点,以便所述区块链节点对携带签名的加密计算结果进行签名验证及同态解密后的结果一致性验证。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
需要说明的是,本说明书的实施例中,链下多方可信计算所可能涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权同意且经过各方充分授权的信息和数据。
本说明书的实施例还提供一种计算机设备。如图9所示,在本说明书一些实施例中,所述计算机设备902可以包括一个或多个处理器904,诸如一个或多个中央处理单元(CPU)或图形处理器(GPU),每个处理单元可以实现一个或多个硬件线程。计算机设备902还可以包括任何存储器906,其用于存储诸如代码、设置、数据等之类的任何种类的信息,一具体实施例中,存储器906上并可在处理器904上运行的计算机程序,所述计算机程序被所述处理器904运行时,可以执行上述任一实施例所述的链下多方可信计算方法的指令。非限制性的,比如,存储器906可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备902的固定或可移除部件。在一种情况下,当处理器904执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备902可以执行相关联指令的任一操作。计算机设备902还包括用于与任何存储器交互的一个或多个驱动机构908,诸如硬盘驱动机构、光盘驱动机构等。
计算机设备902还可以包括输入/输出接口910(I/O),其用于接收各种输入(经由输入设备912)和用于提供各种输出(经由输出设备914)。一个具体输出机构可以包括呈现设备916和相关联的图形用户接口918(GUI)。在其他实施例中,还可以不包括输入/输出接口910(I/O)、输入设备912以及输出设备914,仅作为网络中的一台计算机设备。计算机设备902还可以包括一个或多个网络接口920,其用于经由一个或多个通信链路922与其他设备交换数据。一个或多个通信总线924将上文所描述的部件耦合在一起。
通信链路922可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路922可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
本申请是参照本说明书一些实施例的方法、设备(系统)、计算机可读存储介质和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理器的处理器以产生一个机器,使得通过计算机或其他可编程数据处理器的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理器以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理器上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算机设备访问的信息。按照本说明书中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理器来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
还应理解,在本说明书实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (22)

1.一种链下多方可信计算方法,其特征在于,包括:
接收到调用计算模型的计算请求时生成N个随机数;N为指定数量;
从链下计算集群中随机选择N个计算节点;
根据所述N个随机数生成中间参数及N个加密随机数;
将所述中间参数、所述N个加密随机数和所述N个计算节点的地址打包为计算任务;
将所述计算任务提供给数据源,以使所述数据源根据所述地址将N份同态加密入参数据对应提供给所述N个计算节点处理;
接收每个所述计算节点返回的携带签名的加密计算结果;每个所述签名由对应计算节点基于所述中间参数及各自的加密随机数生成;
对所述加密计算结果进行签名验证及同态解密后的结果一致性验证。
2.如权利要求1所述的链下多方可信计算方法,其特征在于,根据所述N个随机数生成中间参数,包括:
根据公式
Figure 932665DEST_PATH_IMAGE001
获取所述N个随机数对应的N个承诺;
根据公式
Figure 405234DEST_PATH_IMAGE002
将所述N个承诺归集为承诺集合;
根据公式
Figure 49842DEST_PATH_IMAGE003
生成中间参数;
其中,
Figure 506231DEST_PATH_IMAGE004
为第i个计算节点的随机数,
Figure 12430DEST_PATH_IMAGE005
Figure 870665DEST_PATH_IMAGE004
的承诺,g为椭圆曲线的循环群中的基点,
Figure 686174DEST_PATH_IMAGE006
为承诺集合,H为中间参数,m为计算模型,
Figure 98701DEST_PATH_IMAGE007
为N个计算节点的公钥集合,
Figure 408591DEST_PATH_IMAGE008
表示m
Figure 121332DEST_PATH_IMAGE007
Figure 107742DEST_PATH_IMAGE006
的字符串组合。
3.如权利要求1所述的链下多方可信计算方法,其特征在于,根据所述N个随机数生成N个加密随机数,包括:
为每个所述计算节点分配一个公私钥对;
用所述N个计算节点的公钥对应加密所述N个随机数,获得N个加密随机数。
4.如权利要求1所述的链下多方可信计算方法,其特征在于,所述N份同态加密入参数据由所述数据源利用所述N个计算节点的随机公钥对应入参数据生成,所述N个计算节点的随机公钥由所述数据源生成并分配。
5.如权利要求3所述的链下多方可信计算方法,其特征在于,每个所述签名由对应计算节点根据公式
Figure 538724DEST_PATH_IMAGE009
计算得到;其中,
Figure 370413DEST_PATH_IMAGE010
为第i个计算节点的签名,H为中间参数,
Figure 688393DEST_PATH_IMAGE011
为第i个计算节点的私钥,
Figure 845705DEST_PATH_IMAGE012
为第i个计算节点的随机数,且
Figure 498403DEST_PATH_IMAGE004
由第i个计算节点利用
Figure 399363DEST_PATH_IMAGE013
解密其加密随机数得到。
6.如权利要求1所述的链下多方可信计算方法,其特征在于,对所述加密计算结果进行签名验证及同态解密后的结果一致性验证,包括:
根据公式
Figure 834499DEST_PATH_IMAGE014
将各个加密计算结果携带的签名进行合并,获得联合签名;
判断所述联合签名是否满足
Figure 897133DEST_PATH_IMAGE015
如果所述联合签名满足
Figure 37128DEST_PATH_IMAGE015
,则签名验证成功;
当签名验证成功时,利用N个计算节点的随机私钥对应同态解密N个加密计算结果,获得N个计算结果;所述N个计算节点的随机私钥由所述数据源生成并分配;
比较所述N个计算结果是否一致;
如果所述N个计算结果一致,则结果一致性验证成功;
其中,S为联合签名,
Figure 476199DEST_PATH_IMAGE016
为第i个计算节点的签名,g为椭圆曲线的循环群中的基点,R为单个计算节点的承诺值,
Figure 752460DEST_PATH_IMAGE007
为公钥集合,H为中间参数。
7.一种链下多方可信计算方法,其特征在于,包括:
接收计算任务;所述计算任务包括中间参数、N个加密随机数和N个计算节点的地址;
为每个所述计算节点分配一个随机公私钥对;
用所述N个计算节点的随机公钥分别对入参数据进行加密,获得N份同态加密入参数据;
根据所述N个计算节点的地址将所述N份同态加密入参数据对应提供给所述N个计算节点处理;
用区块链节点的公钥加密所述N个计算节点的随机私钥,获得加密随机私钥;
将所述加密随机私钥提供给所述区块链节点,以便所述区块链节点对所述N个计算节点返回的携带签名的加密计算结果进行签名验证及同态解密后的结果一致性验证。
8.如权利要求7所述的链下多方可信计算方法,其特征在于,所述中间参数由所述区块链节点根据以下方式获得:
根据公式
Figure 2307DEST_PATH_IMAGE001
获取N个随机数对应的N个承诺;
根据公式
Figure 629597DEST_PATH_IMAGE002
将所述N个承诺归集为承诺集合;
根据公式
Figure 872360DEST_PATH_IMAGE003
生成中间参数;
其中,
Figure 534285DEST_PATH_IMAGE004
为第i个计算节点的随机数,
Figure 955033DEST_PATH_IMAGE005
Figure 804040DEST_PATH_IMAGE004
的承诺,g为椭圆曲线的循环群中的基点,
Figure 116073DEST_PATH_IMAGE006
为承诺集合,H为中间参数,m为计算模型,
Figure 366926DEST_PATH_IMAGE007
为N个计算节点的公钥集合,
Figure 958575DEST_PATH_IMAGE008
表示m
Figure 294879DEST_PATH_IMAGE007
Figure 613865DEST_PATH_IMAGE006
的字符串组合。
9.如权利要求7所述的链下多方可信计算方法,其特征在于,所述加密随机数由所述区块链节点根据以下方式获得:
为每个所述计算节点分配一个公私钥对;
用所述N个计算节点的公钥对应加密N个随机数,获得N个加密随机数。
10.如权利要求7所述的链下多方可信计算方法,其特征在于,每个所述签名由对应计算节点根据公式
Figure 984803DEST_PATH_IMAGE009
计算得到;其中,
Figure 738565DEST_PATH_IMAGE010
为第i个计算节点的签名,H为中间参数,
Figure 827744DEST_PATH_IMAGE011
为第i个计算节点的私钥,
Figure 950420DEST_PATH_IMAGE012
为第i个计算节点的随机数,且
Figure 175865DEST_PATH_IMAGE004
由第i个计算节点利用
Figure 358585DEST_PATH_IMAGE013
解密其加密随机数得到。
11.如权利要求7所述的链下多方可信计算方法,其特征在于,所述区块链节点对所述N个计算节点返回的携带签名的加密计算结果进行签名验证及同态解密后的结果一致性验证,包括:
所述区块链节点根据公式
Figure 420213DEST_PATH_IMAGE014
将各个加密计算结果携带的签名进行合并,获得联合签名;
所述区块链节点判断所述联合签名是否满足
Figure 346581DEST_PATH_IMAGE015
如果所述联合签名满足
Figure 692111DEST_PATH_IMAGE015
,则所述区块链节点确认签名验证成功;
所述区块链节点在确认签名验证成功时,利用N个计算节点的随机私钥对应同态解密N个加密计算结果,获得N个计算结果;
所述区块链节点比较所述N个计算结果是否一致;
如果所述N个计算结果一致,则所述区块链节点确认结果一致性验证成功;
其中,S为联合签名,
Figure 780153DEST_PATH_IMAGE010
为第i个计算节点的签名,g为椭圆曲线的循环群中的基点,R为单个计算节点的承诺值,
Figure 329077DEST_PATH_IMAGE007
为公钥集合,H为中间参数。
12.一种链下多方可信计算方法,其特征在于,包括:
将区块链节点发送的计算任务转发给数据源;所述计算任务包括中间参数、N个加密随机数和N个计算节点的地址;
接收所述数据源根据所述地址返回的同态加密入参数据;
根据所述计算任务对应的计算模型处理所述同态加密入参数据,获得加密计算结果;
基于所述中间参数及自身对应的加密随机数对所述加密计算结果进行签名;
将携带签名的加密计算结果提供给所述区块链节点,以便所述区块链节点对携带签名的加密计算结果进行签名验证及同态解密后的结果一致性验证。
13.如权利要求12所述的链下多方可信计算方法,其特征在于,基于所述中间参数及自身对应的加密随机数对所述加密计算结果进行签名,包括:
利用自身的私钥解密所述计算任务中对应的加密随机数,获得随机数;
根据公式
Figure 59136DEST_PATH_IMAGE009
对所述加密计算结果进行签名;
其中,
Figure 259173DEST_PATH_IMAGE016
为第i个计算节点的签名,H为中间参数,
Figure 783695DEST_PATH_IMAGE011
为第i个计算节点的私钥,
Figure 819916DEST_PATH_IMAGE017
为第i个计算节点的随机数,且
Figure 88086DEST_PATH_IMAGE004
由第i个计算节点利用
Figure 142630DEST_PATH_IMAGE013
解密其加密随机数得到。
14.如权利要求12所述的链下多方可信计算方法,其特征在于,所述中间参数由所述区块链节点根据以下方式获得:
根据公式
Figure 838053DEST_PATH_IMAGE001
获取N个随机数对应的N个承诺;
根据公式
Figure 610837DEST_PATH_IMAGE002
将所述N个承诺归集为承诺集合;
根据公式
Figure 430501DEST_PATH_IMAGE003
生成中间参数;
其中,
Figure 339551DEST_PATH_IMAGE004
为第i个计算节点的随机数,
Figure 205876DEST_PATH_IMAGE005
Figure 200377DEST_PATH_IMAGE004
的承诺,g为椭圆曲线的循环群中的基点,
Figure 92241DEST_PATH_IMAGE006
为承诺集合,H为中间参数,m为计算模型,
Figure 590218DEST_PATH_IMAGE007
为N个计算节点的公钥集合,
Figure 893023DEST_PATH_IMAGE008
表示m
Figure 374820DEST_PATH_IMAGE007
Figure 539217DEST_PATH_IMAGE006
的字符串组合。
15.如权利要求12所述的链下多方可信计算方法,其特征在于,所述加密随机数由所述区块链节点根据以下方式获得:
为每个所述计算节点分配一个公私钥对;
用所述N个计算节点的公钥对应加密N个随机数,获得N个加密随机数。
16.如权利要求12所述的链下多方可信计算方法,其特征在于,所述区块链节点对携带签名的加密计算结果进行签名验证及同态解密后的结果一致性验证,包括:
所述区块链节点根据公式
Figure 157280DEST_PATH_IMAGE014
将各个加密计算结果携带的签名进行合并,获得联合签名;
所述区块链节点判断所述联合签名是否满足
Figure 630986DEST_PATH_IMAGE015
如果所述联合签名满足
Figure 600079DEST_PATH_IMAGE015
,则所述区块链节点确认签名验证成功;
所述区块链节点在确认签名验证成功时,利用N个计算节点的随机私钥对应同态解密N个加密计算结果,获得N个计算结果;所述N个计算节点的随机私钥由所述数据源生成并分配;
所述区块链节点比较所述N个计算结果是否一致;
如果所述N个计算结果一致,则所述区块链节点确认结果一致性验证成功;
其中,S为联合签名,
Figure 817434DEST_PATH_IMAGE010
为第i个计算节点的签名,g为椭圆曲线的循环群中的基点,R为单个计算节点的承诺值,
Figure 306315DEST_PATH_IMAGE007
为公钥集合,H为中间参数。
17.一种链下多方可信计算装置,其特征在于,包括:
第一生成模块,用于接收到调用计算模型的计算请求时生成N个随机数;N为指定数量;
节点选择模块,用于从链下计算集群中随机选择N个计算节点;
第二生成模块,用于根据所述N个随机数生成中间参数及N个加密随机数;
数据打包模块,用于将所述中间参数、所述N个加密随机数和所述N个计算节点的地址打包为计算任务;
任务提供模块,用于将所述计算任务提供给数据源,以使所述数据源根据所述地址将N份同态加密入参数据对应提供给所述N个计算节点处理;
结果接收模块,用于接收每个所述计算节点返回的携带签名的加密计算结果;每个所述签名由对应计算节点基于所述中间参数及各自的加密随机数生成;
结果验证模块,用于对所述加密计算结果进行签名验证及同态解密后的结果一致性验证。
18.一种链下多方可信计算装置,其特征在于,包括:
任务接收模块,用于接收计算任务;所述计算任务包括中间参数、N个加密随机数和N个计算节点的地址;
密钥分配模块,用于为每个所述计算节点分配一个随机公私钥对;
第一加密模块,用于用所述N个计算节点的随机公钥分别对入参数据进行加密,获得N份同态加密入参数据;
数据提供模块,用于根据所述N个计算节点的地址将所述N份同态加密入参数据对应提供给所述N个计算节点处理;
第二加密模块,用于用区块链节点的公钥加密所述N个计算节点的随机私钥,获得加密随机私钥;
私钥提供模块,用于将所述加密随机私钥提供给所述区块链节点,以便所述区块链节点进行结果一致性验证处理。
19.一种链下多方可信计算装置,其特征在于,包括:
任务转发模块,用于将区块链节点发送的计算任务转发给数据源;所述计算任务包括中间参数、N个加密随机数和N个计算节点的地址;
数据接收模块,用于接收所述数据源根据所述地址返回的同态加密入参数据;
任务执行模块,用于根据所述计算任务对应的计算模型处理所述同态加密入参数据,获得加密计算结果;
结果签名模块,用于基于所述中间参数及自身对应的加密随机数对所述加密计算结果进行签名;
结果提供模块,用于将携带签名的加密计算结果提供给所述区块链节点,以便所述区块链节点对携带签名的加密计算结果进行签名验证及同态解密后的结果一致性验证。
20.一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器运行时,执行根据权利要求1-16任意一项所述方法的指令。
21.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被计算机设备的处理器运行时,执行根据权利要求1-16任意一项所述方法的指令。
22.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器运行时,执行根据权利要求1-16任意一项所述方法的指令。
CN202211037908.0A 2022-08-29 2022-08-29 链下多方可信计算方法、装置、设备及存储介质 Active CN115118411B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211037908.0A CN115118411B (zh) 2022-08-29 2022-08-29 链下多方可信计算方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211037908.0A CN115118411B (zh) 2022-08-29 2022-08-29 链下多方可信计算方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115118411A true CN115118411A (zh) 2022-09-27
CN115118411B CN115118411B (zh) 2022-11-29

Family

ID=83336438

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211037908.0A Active CN115118411B (zh) 2022-08-29 2022-08-29 链下多方可信计算方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115118411B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115809482A (zh) * 2023-02-01 2023-03-17 上海金仕达软件科技股份有限公司 基于随机数混淆的数据聚合计算方法、装置、介质及设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160261404A1 (en) * 2015-03-02 2016-09-08 Dell Products L.P. Methods and systems for obfuscating data and computations defined in a secure distributed transaction ledger
US20180337788A1 (en) * 2013-01-29 2018-11-22 NEC Laboratories Europe GmbH Method and system for providing encrypted data for searching of information therein and a method and system for searching of information on encrypted data
US20190327078A1 (en) * 2018-12-21 2019-10-24 Alibaba Group Holding Limited Blockchain data protection based on generic account model and homomorphic encryption
CN111159723A (zh) * 2018-11-08 2020-05-15 埃森哲环球解决方案有限公司 用于区块链的密码数据共享控制
CN111814193A (zh) * 2020-08-31 2020-10-23 支付宝(杭州)信息技术有限公司 一种信息共享方法、装置及设备
US10979225B1 (en) * 2018-11-15 2021-04-13 Amazon Technologies, Inc. Secure and anonymous electronic polling
US20220179946A1 (en) * 2020-12-08 2022-06-09 International Business Machines Corporation Secure computing resource deployment using homomorphic encryption
CN114614970A (zh) * 2022-03-23 2022-06-10 北京邮电大学 一种基于多计算方和同态加密的隐私数据安全处理方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180337788A1 (en) * 2013-01-29 2018-11-22 NEC Laboratories Europe GmbH Method and system for providing encrypted data for searching of information therein and a method and system for searching of information on encrypted data
US20160261404A1 (en) * 2015-03-02 2016-09-08 Dell Products L.P. Methods and systems for obfuscating data and computations defined in a secure distributed transaction ledger
CN111159723A (zh) * 2018-11-08 2020-05-15 埃森哲环球解决方案有限公司 用于区块链的密码数据共享控制
US10979225B1 (en) * 2018-11-15 2021-04-13 Amazon Technologies, Inc. Secure and anonymous electronic polling
US20190327078A1 (en) * 2018-12-21 2019-10-24 Alibaba Group Holding Limited Blockchain data protection based on generic account model and homomorphic encryption
CN111814193A (zh) * 2020-08-31 2020-10-23 支付宝(杭州)信息技术有限公司 一种信息共享方法、装置及设备
US20220179946A1 (en) * 2020-12-08 2022-06-09 International Business Machines Corporation Secure computing resource deployment using homomorphic encryption
CN114614970A (zh) * 2022-03-23 2022-06-10 北京邮电大学 一种基于多计算方和同态加密的隐私数据安全处理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周笑: "基于区块链的安全多方计算方法研究", 《中国优秀硕士学位论文全文数据库(月刊)》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115809482A (zh) * 2023-02-01 2023-03-17 上海金仕达软件科技股份有限公司 基于随机数混淆的数据聚合计算方法、装置、介质及设备
CN115809482B (zh) * 2023-02-01 2023-05-16 上海金仕达软件科技股份有限公司 基于随机数混淆的数据聚合计算方法、装置、介质及设备

Also Published As

Publication number Publication date
CN115118411B (zh) 2022-11-29

Similar Documents

Publication Publication Date Title
Archer et al. From keys to databases—real-world applications of secure multi-party computation
CN108768607B (zh) 一种基于区块链的投票方法、装置、设备及介质
CN108616539B (zh) 一种区块链交易记录访问的方法及系统
CN105812141B (zh) 一种面向外包加密数据的可验证交集运算方法及系统
WO2021103794A1 (zh) 在区块链中实现隐私保护的高效交易方法及装置
CN110033267B (zh) 区块链中实现隐私保护的方法、节点、系统和存储介质
JP2020528224A (ja) 信頼できる実行環境におけるスマート契約動作のセキュアな実行
CN110020855B (zh) 区块链中实现隐私保护的方法、节点、存储介质
JP7149445B2 (ja) ブロックチェーンのための暗号化データ共有管理
CN110061845A (zh) 区块链数据加密方法、装置、计算机设备及存储介质
CN110289968B (zh) 私钥恢复、协同地址的创建、签名方法及装置、存储介质
TW201947909A (zh) 一種區塊鏈資料處理方法、裝置、處理設備及系統
CN111371545B (zh) 一种基于隐私保护的加密方法和系统
CN110580245B (zh) 隐私数据的共享方法及装置
US10880100B2 (en) Apparatus and method for certificate enrollment
CN109743168B (zh) 一种联盟链资源共享方法、装置及其存储介质
CN109450620B (zh) 一种移动终端中共享安全应用的方法及移动终端
CN110390212B (zh) 基于区块链的供货监控方法、节点装置
CN111339565B (zh) 基于区块链的业务服务提供方法、装置、设备及系统
CN114172667A (zh) 基于合约的隐私存证方法及装置
CN116491098A (zh) 使用后量子密码学的基于证书的安全性
CN111639362B (zh) 区块链中实现隐私保护的方法、节点和存储介质
JP2022531593A (ja) Aesカウンタモード暗号化において準群演算によって暗号化された整数を加算および比較するシステムおよび方法
CN110049032A (zh) 一种双向认证的数据内容加密方法及装置
WO2021057124A1 (zh) 基于fpga实现隐私区块链的方法及装置

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 200233 Room 201, Building 14, No. 655 Fengzhou Road, Jiading District, Shanghai JT6344

Patentee after: Shanghai Xiecheng New Technology Development Co.,Ltd.

Patentee after: PEOPLE'S COURT INFORMATION TECHNOLOGY SERVICE CENTER

Address before: No. 27, dongjiaomin lane, Dongcheng District, Beijing 100745

Patentee before: PEOPLE'S COURT INFORMATION TECHNOLOGY SERVICE CENTER

Patentee before: Shanghai Xiecheng New Technology Development Co.,Ltd.