CN116881936A - 可信计算方法及相关设备 - Google Patents
可信计算方法及相关设备 Download PDFInfo
- Publication number
- CN116881936A CN116881936A CN202310739582.4A CN202310739582A CN116881936A CN 116881936 A CN116881936 A CN 116881936A CN 202310739582 A CN202310739582 A CN 202310739582A CN 116881936 A CN116881936 A CN 116881936A
- Authority
- CN
- China
- Prior art keywords
- data
- model
- trusted computing
- encrypted data
- trusted
- 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.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 64
- 238000000034 method Methods 0.000 claims abstract description 98
- 244000035744 Hura crepitans Species 0.000 claims abstract description 54
- 230000008569 process Effects 0.000 claims abstract description 49
- 238000004590 computer program Methods 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
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/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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了一种可信计算方法及相关设备,上述可信计算方法在可信沙箱中执行,首先数据方设备和模型方设备分别将输入数据及预设模型进行加密,得到第一加密数据和第二加密数据,然后可信计算设备接收并解密相匹配的数据方设备和模型方设备对应的第一加密数据和第二加密数据,从而得到输入数据和预设模型,接着响应于区块链***发送的控制指令,调用预设模型处理上述输入数据从而生成模型输出结果,最后数据方设备获取上述生成的模型输出结果。由此,利用可信计算设备在可信沙箱中处理加密后的输入数据及预设模型,从而在数据方设备与模型方设备均无法得到对方的原始数据的前提下生成模型输出结果,保证了数据及模型的隐私性。
Description
技术领域
本申请属于数据处理技术领域,尤其涉及一种可信计算方法及相关设备。
背景技术
在云计算环境下,多方参与的数据计算一直是研究的热点问题。在数据方和模型方参与数据计算的场景下,数据方需要通过模型方提供的模型对数据进行处理并返回模型输出结果,然而数据方所提供的数据以及模型方所提供的模型对其自身而言都是高价值的数据要素,各方均可能因为商业利益、恶意攻击或技术问题等原因而泄露或篡改数据或模型,导致数据或模型的隐私性得不到保证。
发明内容
本申请实施例提供了一种可信计算方法及相关设备,可以解决数据方和模型方参与数据计算的场景下,数据或模型的隐私性得不到保证的问题。
本申请实施例的第一方面提供了一种可信计算方法,应用于可信计算设备,可信计算设备包括至少一个可信沙箱,可信计算方法在其中一个可信沙箱中执行,上述可信计算方法包括:
接收第一加密数据、第二加密数据以及区块链***发送的控制指令,其中,第一加密数据是通过数据方设备对待输入模型的输入数据进行加密得到,第二加密数据是通过与数据方设备匹配的模型方设备对预设模型进行加密得到;解密第一加密数据和第二加密数据,得到输入数据及预设模型;响应于控制指令,以调用预设模型处理输入数据,生成模型输出结果。
可选的,在第一方面一种可能的实现方式中,上述接收第一加密数据、第二加密数据以及区块链***发送的控制指令之前,方法还包括:
分别向区块链***发送对数据方设备及模型方设备的投票请求;
接收区块链***中的多个投票节点对数据方设备进行投票生成的第一投票结果,以及接收区块链***中的多个投票节点对模型方设备进行投票生成的第二投票结果;
在第一投票结果与第二投票结果均为通过的情况下,确定数据方设备与模型方设备达成匹配。
可选的,在第一方面另一种可能的实现方式中,上述在第一投票结果与第二投票结果均为通过的情况下,确定数据方设备与模型方设备达成匹配之前,方法还包括:
判断区块链***中的多个投票节点中,是否存在超过预设比例的投票节点投票确认了数据方设备;
若是,则确定第一投票结果为通过;否则,确定第一投票结果不通过;
判断区块链***中的多个投票节点中,是否存在超过预设比例的投票节点投票确认了模型方设备;
若是,则确定第二投票结果为通过;否则,确定第二投票结果不通过。
可选的,在第一方面又一种可能的实现方式中,上述区块链***中的多个投票节点是通过对区块链***中的所有节点进行随机选取确定。
可选的,在第一方面再一种可能的实现方式中,上述可信计算方法的每个步骤包括至少一个可信计算任务,在执行每个可信计算任务之前,还包括:
响应于所有可信计算任务的控制指令,执行可信计算方法的每个可信计算任务,其中,控制指令是通过数据方设备和对应匹配的模型方设备确认后生成。
可选的,在第一方面另一种可能的实现方式中,上述可信计算方法的每个步骤包括至少一个可信计算任务,在执行每个可信计算任务之前,还包括:
针对任一可信计算任务,响应于对应的控制指令,执行可信计算方法中的任一可信计算任务,其中,对应的控制指令是通过数据方设备和对应匹配的模型方设备针对任一可信计算任务确认后生成。
本申请实施例的第二方面提供了另一种可信计算方法,应用于数据方设备,上述可信计算方法,包括:
对待输入模型的输入数据进行加密,得到第一加密数据;将第一加密数据发送至可信计算设备,以使可信计算设备在至少一个可信沙箱中接收第一加密数据、第二加密数据以及区块链***发送的控制指令,解密第一加密数据和第二加密数据,得到输入数据及预设模型,并响应于控制指令,以调用预设模型处理输入数据,生成模型输出结果,其中,第二加密数据是通过与数据方设备匹配的模型方设备对预设模型进行加密得到;获取可信计算设备加密的模型输出结果。
本申请实施例的第三方面提供了再一种可信计算方法,应用于模型方设备,上述可信计算方法包括:
对预设模型进行加密,得到第二加密数据;将第二加密数据发送至可信计算设备,以使可信计算设备在至少一个可信沙箱中接收第一加密数据、第二加密数据以及区块链***发送的控制指令,解密第一加密数据和第二加密数据,得到输入数据及预设模型,并响应于控制指令,以调用预设模型处理输入数据,生成模型输出结果,其中,第一加密数据是通过与模型方设备匹配的数据方设备对输入数据进行加密得到。
本申请实施例的第四方面提供了一种可信计算***,上述可信计算***包括数据方设备、模型方设备、可信计算设备及区块链***,可信计算设备包括至少一个可信沙箱;数据方设备用于对待输入模型的输入数据进行加密,得到第一加密数据,并将第一加密数据发送至可信计算设备;模型方设备用于对预设模型进行加密,得到第二加密数据,并将第二加密数据发送至可信计算设备;可信计算设备用于在至少一个可信沙箱中,接收第一加密数据、第二加密数据以及区块链***发送的控制指令,解密第一加密数据和第二加密数据,得到输入数据及预设模型,响应于控制指令,以调用预设模型处理输入数据,生成模型输出结果;数据方设备还用于获取可信计算设备加密的模型输出结果。
本申请实施例的第五方面提供了一种可信计算设备,上述可信计算设备包括至少一个可信沙箱,上述可信计算设备执行的可信计算方法在其中一个可信沙箱中执行,上述可信计算设备,包括:
接收模块,用于接收第一加密数据、第二加密数据以及区块链***发送的控制指令,其中,第一加密数据是通过数据方设备对待输入模型的输入数据进行加密得到,第二加密数据是通过与数据方设备匹配的模型方设备对预设模型进行加密得到;
解密模块,用于解密第一加密数据和第二加密数据,得到输入数据及预设模型;
模型调用模块,用于响应于控制指令,以调用预设模型处理输入数据,生成模型输出结果。
本申请实施例的第六方面提供了一种数据方设备,包括:
第一加密模块,用于对待输入模型的输入数据进行加密,得到第一加密数据;
第一发送模块,用于将第一加密数据发送至可信计算设备,以使可信计算设备在至少一个可信沙箱中接收第一加密数据、第二加密数据以及区块链***发送的控制指令,解密第一加密数据和第二加密数据,得到输入数据及预设模型,并响应于控制指令,以调用预设模型处理输入数据,生成模型输出结果,其中,第二加密数据是通过与数据方设备匹配的模型方设备对预设模型进行加密得到;
结果获取模块,用于获取可信计算设备加密的模型输出结果。
本申请实施例的第七方面提供了一种模型方设备,包括:
第二加密模块,用于对预设模型进行加密,得到第二加密数据;
第二发送模块,用于将第二加密数据发送至可信计算设备,以使可信计算设备在至少一个可信沙箱中接收第一加密数据、第二加密数据以及区块链***发送的控制指令,解密第一加密数据和第二加密数据,得到输入数据及预设模型,并响应于控制指令,以调用预设模型处理输入数据,生成模型输出结果,其中,第一加密数据是通过与模型方设备匹配的数据方设备对输入数据进行加密得到。
本申请实施例的第八方面提供了一种终端设备,包括:存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述第一方面、第二方面或第三方面的可信计算方法。
本申请实施例的第九方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述第一方面、第二方面或第三方面的可信计算方法。
本申请实施例的第十方面提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面、第二方面或第三方面的可信计算方法。
本申请实施例与现有技术相比存在的有益效果是:本申请公开了一种可信计算方法及相关设备,上述可信计算方法在可信沙箱中执行,首先数据方设备和模型方设备分别将待输入模型的输入数据及预设模型进行加密,得到第一加密数据和第二加密数据,然后可信计算设备接收并解密相匹配的数据方设备和模型方设备对应的第一加密数据和第二加密数据,从而得到输入数据和预设模型,接着响应于区块链***发送的控制指令,调用预设模型处理上述输入数据从而生成模型输出结果,最后数据方设备获取上述生成的模型输出结果。由此,利用可信计算设备在可信沙箱中处理加密后的输入数据及预设模型,从而在数据方设备与模型方设备均无法得到对方的原始数据的前提下生成模型输出结果,保证了数据及模型的隐私性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种可信计算***的结构示意图;
图2是本申请实施例提供的一种可信计算设备的结构示意图;
图3是本申请实施例提供的一种区块链***的结构示意图;
图4是本申请实施例提供的一种可信计算方法的流程示意图;
图5是本申请实施例提供的另一种可信计算方法的流程示意图;
图6是本申请实施例提供的再一种可信计算方法的流程示意图;
图7是本申请实施例提供的一种可信计算方法的数据交互示意图;
图8是本申请实施例提供的另一种可信计算设备的结构示意图;
图9是本申请实施例提供的一种数据方设备的结构示意图;
图10是本申请实施例提供的一种模型方设备的结构示意图;
图11是本申请实施例提供的一种终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
应理解,本实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
相关技术中,在数据方和模型方参与数据计算的场景下,数据方需要通过模型方提供的模型对数据进行处理并返回模型输出结果,然而数据方所提供的数据以及模型方所提供的模型对其自身而言都是高价值的数据要素,各方均可能因为商业利益、恶意攻击或技术问题等原因而泄露或篡改数据或模型,导致数据或模型的隐私性得不到保证。
有鉴于此,本申请实施例提供了一种可信计算方法及相关设备,在可信沙箱中利用可信计算设备处理加密后的输入数据及预设模型,从而在数据方设备与模型方设备均无法得到对方的原始数据的前提下生成模型输出结果,保证了数据及模型的隐私性。
为了说明本申请的技术方案,下面通过具体实施例来说明。
参照图1,示出了本申请实施例提供的一种可信计算***的结构示意图,如图1所示,该可信计算***100包括可信计算设备101、数据方设备102、模型方设备103及区块链***300,其中,数据方设备102用于提供待输入模型的输入数据,模型方设备103用于提供预设模型,其中,待输入模型的输入数据及预设模型均可以结合实际应用场景进行选择,本申请对此不做限制。上述可信计算设备101包括至少一个可信沙箱,下文所阐述的可信计算方法在其中一个可信沙箱中执行,可信计算设备101用于调用预设模型并处理输入数据,生成模型输出结果,最后数据方设备102可以从所述可信计算设备101,获取该模型输出结果。
其中,图2为本申请一实施例提供的可信计算设备101的结构示意图。如图2所示,该实施例的可信计算设备101包括:操作***207、可信网卡204、至少一个第一处理器201(图2中仅示出一个处理器)、第一存储器202以及存储在第一存储器202中并可在至少一个第一处理器201上运行的第一计算机程序203,例如可信计算程序。第一处理器201执行第一计算机程序203时实现下文可信计算设备侧的可信计算方法的步骤。
在本申请实施例中,可信计算设备由设备运营方提供,但是需要说明的是,设备运营方无法从可信计算设备中获得输入数据、预设模型或模型输出结果等,以此保证输入数据、预设模型或模型输出结果的隐私性。
在本申请实施例中,可信网卡用于控制接入可信计算设备的数据输入源和/或数据输出源。实践中,可信网卡通过控制接入可信计算设备的数据输入源和/或数据输出源,实现控制可信计算设备在安全可信的环境下运行。实际应用中,可信计算设备通常通过可信网卡实现由区块链***对该可信计算设备进行控制。作为示例,区块链***可以通过可信网卡向该可信计算设备发送控制指令,使得可信计算设备运行该控制指令对应的操作。
结合图2,可信计算设备101还可以包括可信模组205和可信沙箱206。
其中,可信模组205用于对可信计算设备中的目标软件和目标信息进行校验,目标软件包括操作***软件和沙箱软件,目标信息为从区块链***接收的信息。
其中,上述操作***软件通常是用于实现操作***功能的软件。上述沙箱软件通常为用于实现可信沙箱的功能的软件。目标信息可以是控制信息,控制信息可以实现为控制指令也可以实现为用于指示所需执行的任务的任务信息。
实践中,可信模组通常是在操作***启动时,对操作***软件进行校验,以及在可信沙箱启动时,对沙箱软件进行校验。另外,可信模组还可以在可信沙箱中运行的沙箱程序启动时,对沙箱程序进行校验。
作为示例,可信模组可以通过如下方式对目标软件进行校验:计算目标软件的哈希值,比如,MD5值,将预先存储的目标软件的哈希值与计算得到的哈希值进行比较,若预先存储的哈希值与计算得到的哈希值一致,则认为目标软件校验通过,此时,目标软件安全可信。反之,若预先存储的哈希值与计算得到的哈希值不一致,则认为目标软件校验不通过,此时,目标软件可能被篡改。
作为示例,可信模组可以通过如下方式对目标信息进行校验:可信计算设备中可以预先存储各区块链节点的公钥,在可信计算设备接收到某个区块链节点发送的目标信息时,可以采用该区块链节点的公钥对所接收的目标信息进行校验,以确定该目标信息是否来自区块链***,比如,若公钥可以对目标信息成功解密,则校验通过,反之,若不能成功解密则校验不通过。可信模组对目标信息进行校验,可以实现可信计算设备只对来自区块链***的控制进行响应,将可信计算设备的控制权外移至区块链***中,可以实现对可信计算设备的可信控制。
在一些应用场景中,可信模组可以包括可信基本输入输出组件(Basic InputOutput System,BIOS)、可信密码组件和可信认证组件。其中,可信BIOS组件用于对可信计算设备中的目标软件进行校验,目标软件包括操作***软件和沙箱软件。可信认证组件用于对可信计算设备中的目标信息进行校验,目标信息为从区块链***接收的信息。可信密码组件用于实现可信计算设备的数据签名、密码派生、数据解密、身份认证等。
其中,可信沙箱206用于提供可信计算空间。其中,可信沙箱中运行的沙箱程序为经过区块链***校验的程序。沙箱程序为可信沙箱中运行的程序。
实践中,可信沙箱是可信计算设备的最小执行单元。可信计算设备中可以具有一个或多个可信沙箱。在可信计算设备在区块链***的控制下对来自模型方设备的预设模型和来自数据方设备的输入数据进行融合处理时,可信沙箱可以提供将上述数据处理模型和数据进行融合的可信融合执行空间。
实际应用中,可信沙箱通常具有以下特点:第一,可信沙箱中运行的沙箱程序为经过区块链***校验的程序,不可伪造。第二,沙箱程序启动时,由可信模组对其进行校验,具体地,可以由可信模组中的可信BIOS组件对其进行校验。第三,沙箱程序对外不提供入口。第四,沙箱程序产生的临时数据以密文的形式存储在硬盘中。第五,沙箱程序执行结束时沙箱程序所产生的数据会被销毁。
作为示例,可信计算设备可以通过如下方式对沙箱程序进行校验:可信计算设备可以计算沙箱程序的哈希值,以及将计算得到的哈希值发送至区块链***中,由区块链***查找是否存在该沙箱程序的哈希值,若存在,则校验通过,否则校验不通过。
需要说明的是,沙箱程序为经过区块链***校验的程序,可以实现在沙箱中运行安全可信的沙箱程序,进一步保障数据计算安全。
在本实施例的一些可选的实现方式中,可信计算设备无可用的接触式数据传输接口。
其中,上述接触式数据传输接口可以包括但不限于鼠标接口、键盘接口等。
这里,上述无可用的接触式数据传输接口,可以是可信计算设备上不存在接触式数据传输接口;也可以是可信计算设备上存在接触式数据传输接口,但所有的接触式数据传输接口被禁用。
在本实施例的一些可选的实现方式中,可信计算设备有可用的接触式数据传输接口且通过接触式数据传输接口输入的接口数据被区块链***认证通过时,可信计算设备将接口数据确定为有效数据。
这里,在可信计算设备有可用的接触式数据传输接口的情况下,为了保障可信计算设备的数据安全,可信计算设备在接收到接触式数据传输接口输入的接口数据时,可以将该接口数据发送至区块链***中,由区块链***对该接口数据进行认证,比如,可以由区块链***中各节点进行投票,若各节点针对该接口数据均投票通过,则认为该接口数据被区块链***认证通过,此时,可信计算设备将接口数据确定为有效数据,可以对该接口数据进行响应。
需要说明的是,可信计算设备由区块链***对接口数据进行认证,且只有接口数据被区块链***认证通过时,将接口数据确定为有效数据,可以实现可信计算设备只对被区块链***认可的接口数据进行响应,将可信计算设备的控制权外移至区块链***中,可以实现对可信计算设备的可信控制。
参见图3,区块链***300是指用于进行节点与节点之间数据共享的***,区块链***300中可以包括多个节点301。每个节点301在进行正常工作时可以接收到输入信息,并基于接收到的输入信息维护区块链***300内的共享数据。为了保证区块链***300内的信息互通,区块链***300中的每个节点301之间可以存在信息连接,节点301之间可以通过该信息连接进行信息传输。比如,当区块链***300中的任意节点301接收到输入信息时,区块链***300中的其他节点301便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链***300中全部节点301上存储的数据一致。也即,区块链***300中的每个节点301均存储一条相同的区块链。
区块链***300具有分布式数据存储、点对点传输、共识机制、加密算法等计算机技术。区块链***300是一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。这些特点保证了区块链的共享开放、真实完整和安全可靠。
在本申请实施例中,区块链***300中可以包括投票节点,投票节点用于对数据方设备、模型方设备及可信沙箱等进行投票,从而判断上述设备是否可信。
参照图4,示出了本申请实施例提供的一种可信计算方法的流程示意图。该方法应用于可信计算设备。如图4所示,该可信计算方法可以包括如下步骤:
步骤401,接收第一加密数据、第二加密数据以及区块链***发送的控制指令。
需要说明的是,第一加密数据是通过数据方设备对待输入模型的输入数据进行加密得到,第二加密数据是通过与数据方设备匹配的模型方设备对预设模型进行加密得到。
作为一种可能的实现方式,第一加密数据可以是通过数据方设备利用可信计算设备的公钥对输入数据进行加密生成,第二加密数据同样是模型方设备利用可信计算设备的公钥对预设模型进行加密生成。
在本申请实施例中,为了保证数据传输的安全性,可信计算设备可以通过安全链路接收第一加密数据及第二加密数据,安全链路是指可信计算设备对外提供的接收数据服务且通过TLS(Transport Layer Security,安全传输层协议)加密。TLS加密可以保护数据在传输过程中的机密性,防止未经授权的第三方窃取和篡改数据。通过TLS协议,数据可以被加密并且只有经过身份验证的接收方才能解密。
进一步的,在执行可信计算任务的一开始,首先需要先确定是哪个数据方设备以及哪个模型方设备参与可信计算任务,因此可以先确定匹配的数据方设备和模型方设备,即作为本申请实施例一种可能的实现方式,上述步骤401之前,还可以包括:
分别向区块链***发送对数据方设备及模型方设备的投票请求;
接收区块链***中的多个投票节点对数据方设备进行投票生成的第一投票结果,以及接收区块链***中的多个投票节点对模型方设备进行投票生成的第二投票结果;
在第一投票结果与第二投票结果均为通过的情况下,确定数据方设备与模型方设备达成匹配。
在本申请实施例中,区块链***中的所有节点均可以为投票节点,可信计算设备可以通过访问区块链***中所有节点,以此获取所有节点对数据方设备或模型方设备进行投票生成的投票结果,通过这种方式确定的数据方设备及模型方设备更加可信,且准确率高。但是由于访问区块链***中所有节点效率很低,因此可以适当降低节点访问的数量,通过对区块链***中的所有节点进行随机选取的方式,以此确定多个投票节点。应理解,投票节点的选择可以结合区块链***中节点数量并结合实际应用场景和需求进行确定,本申请对此不作限制。
进一步的,可以通过设置预设比例,预设比例则用于判断投票结果的可靠性,接着判断是否存在超过预设比例的投票节点投票确认了数据方设备或模型方设备,如果超过预设比例的投票节点投票确认了某个设备,即该设备的投票结果为通过,则认为该设备是可信任的,即作为本申请实施例一种可能的实现方式,在第一投票结果与第二投票结果均为通过的情况下,确定数据方设备与模型方设备达成匹配之前,本申请实施例还可以包括:判断区块链***中的多个投票节点中,是否存在超过预设比例的投票节点投票确认了数据方设备;若是,则确定第一投票结果为通过;否则,确定第一投票结果不通过;判断区块链***中的多个投票节点中,是否存在超过预设比例的投票节点投票确认了模型方设备;若是,则确定第二投票结果为通过;否则,确定第二投票结果不通过。应理解,预设比例可以结合实际应用场景进行确定,本申请对此不作限制。
作为一种可能的实现方式,数据方设备与模型方设备还可以预先进行指定,即可信计算设备可以通过获取数据方设备与模型方设备的指定匹配信息,从而无须预先对多个数据方设备及多个模型方设备进行匹配操作,得到匹配的数据方设备与模型方设备。
在一种可能的实现方式中,由于各个数据方设备提供的输入数据以及各个模型方设备提供的预设模型的细分领域类型很多,其中预设模型的细分领域类型包括:机器学习模型、深度学习模型、统计模型、优化模型、图像处理模型、自然语言处理模型、数据挖掘模型、时间序列模型等,每种预设模型能够处理的输入数据均不相同,因此可以结合输入数据以及预设模型的细分领域类型,实现数据方设备和模型方设备的匹配,以此提供更加高效和可靠的资源共享和调度服务。另外,如果某一数据方设备匹配到多个模型方设备,可以进一步考虑各个模型方设备的资源情况及工作负载等因素,使得匹配的结果更加合理和优化。
在另一种可能的实现方式中,除了细分领域类型之外,还可以考虑每个数据方设备和模型方设备的地址信息。例如,如果数据方设备和模型方设备都有明确的地址信息,可以根据地址信息将相邻的数据方设备和模型方设备进行匹配,以此减少通信延迟,提高数据处理速度。
另外,可信计算设备还要接收用于执行后续模型处理数据过程的控制指令,其中,该控制指令是数据方设备与模型方设备共同确认并发送至区块链***,最后再由区块链***对该控制指令进行共识后发送给可信计算设备执行的,以此确保控制指令的合法性和可信性。其中,确认的方式可以通过投票进行,当数据方设备与模型方设备对可信计算任务均投票通过,则生成上述控制指令。
步骤402,解密第一加密数据和第二加密数据,得到输入数据及预设模型。
在一种可能的实现方式中,可信计算设备在接收到第一加密数据及第二加密数据之后,再利用公钥对应的私钥分别对第一加密数据及第二加密数据进行解密,以此得到输入数据及预设模型,其中,可信计算设备需要保持自己的私钥不公开且只有可信计算设备自己拥有,其他节点无法使用私钥进行解密。由于加密和解密使用的是不同的密钥,私钥只有可信计算设备自己知道,保证了数据的安全性。同时,公钥可以公开,方便其他节点使用公钥对数据或模型进行加密,保证了数据或模型的隐私性。
步骤403,响应于控制指令,以调用预设模型处理输入数据,生成模型输出结果。
在本申请实施例中,在生成模型输出结果之后,可信计算设备可以上报执行完成信号到区块链***上,以使数据方设备在看到任务完成后主动获取上述模型输出结果。
需要说明的是,上述可信计算方法的每个步骤包括至少一个可信计算任务,例如计算任务创建、计算任务调度、计算任务终止、计算数据清理等,可以在接收到相匹配的数据方设备及模型方设备的控制指令之后,再执行步骤。
作为本申请实施例一种可能的实现方式,可以在执行每个任务之前,响应于所有可信计算任务的控制指令,执行可信计算方法的每个可信计算任务,其中,控制指令是通过数据方设备和对应匹配的模型方设备确认后生成。上述执行可信计算方法的方式仅需数据方设备和对应匹配的模型方设备在整个任务开始时进行一次确认,可以大大降低确认的开销,提高效率。
作为本申请实施例另一种可能的实现方式,可以在执行每个任务之前,针对任一可信计算任务,响应于对应的控制指令,执行可信计算方法中的该可信计算任务,其中,对应的控制指令是通过数据方设备和对应匹配的模型方设备针对该可信计算任务确认后生成。上述执行可信计算方法的方式需要数据方设备和对应匹配的模型方设备在执行每个可信计算任务之前均确认一次,可以提高安全性和可信性。由于每个可信计算任务都是独立的,如果只在整个可信计算方法开始时进行一次确认,那么在执行过程中可能会出现一些异常情况,例如节点宕机或者数据泄露等,这些异常情况可能会导致可信计算方法的执行失败或者数据泄露。如果每个可信计算任务都需要确认,那么可以在每个可信计算任务完成后进行确认,以确保每个任务的执行都是正确的,从而提高整个过程的安全性和可信性。
本申请上述实施例公开的可信计算方法,可信计算设备首先解密数据方设备对输入数据加密得到的第一加密数据,以及解密模型方设备对预设模型加密得到的第二加密数据,然后调用预设模型处理输入数据,生成模型输出结果。由此,利用可信计算设备在可信沙箱中处理加密后的输入数据及预设模型,从而在数据方设备与模型方设备均无法得到对方的原始数据的前提下生成模型输出结果,保证了数据及模型的隐私性。
参照图5,示出了本申请实施例提供的另一种可信计算方法的流程示意图。该方法应用于数据方设备。如图5所示,该可信计算方法可以包括如下步骤:
步骤501,对待输入模型的输入数据进行加密,得到第一加密数据。
步骤502,将第一加密数据发送至可信计算设备,以使可信计算设备在至少一个可信沙箱中接收第一加密数据、第二加密数据以及区块链***发送的控制指令,解密第一加密数据和第二加密数据,得到输入数据及预设模型,并响应于控制指令,以调用预设模型处理输入数据,生成模型输出结果。
其中,第二加密数据是通过与数据方设备匹配的模型方设备对预设模型进行加密得到。
步骤503,获取可信计算设备加密的模型输出结果。
需要说明的是,为了保证模型输出结果的隐私性,可以利用非对称加密的方法对模型输出结果进行加密,具体来说,可信计算设备利用数据方设备的公钥对模型输出结果进行加密,数据方设备在获取可信计算设备加密的模型输出结果之后,利用自己的私钥进行解密从而得到模型输出结果。
本实施例的具体实现过程及原理,可以参照上述实施例的详细描述,此处不再赘述。
本申请上述实施例公开的可信计算方法,数据方设备首先对待输入模型的输入数据进行加密得到第一加密数据,然后将第一加密数据发送至可信计算设备,以使可信计算设备解密第一加密数据,以及解密与数据方设备匹配的模型方设备对预设模型进行加密得到第二加密数据,并调用预设模型处理输入数据生成模型输出结果,最后获取可信计算设备加密的模型输出结果。由此,利用可信计算设备在可信沙箱中处理加密后的输入数据及预设模型,从而在数据方设备与模型方设备均无法得到对方的原始数据的前提下生成模型输出结果,保证了数据及模型的隐私性。
参照图6,示出了本申请实施例提供的再一种可信计算方法的流程示意图。该方法应用于模型方设备。如图6所示,该可信计算方法可以包括如下步骤:
步骤601,对预设模型进行加密,得到第二加密数据。
步骤602,将第二加密数据发送至可信计算设备,以使可信计算设备在至少一个可信沙箱中接收第一加密数据、第二加密数据以及区块链***发送的控制指令,解密第一加密数据和第二加密数据,得到输入数据及预设模型,并响应于控制指令,以调用预设模型处理输入数据,生成模型输出结果。
其中,第一加密数据是通过与模型方设备匹配的数据方设备对输入数据进行加密得到。
本实施例的具体实现过程及原理,可以参照上述实施例的详细描述,此处不再赘述。
本申请上述实施例公开的可信计算方法,模型方设备首先对预设模型进行加密,得到第二加密数据,然后将第二加密数据发送至可信计算设备,以使可信计算设备解密与模型方设备匹配的数据方设备对输入数据进行加密得到的第一加密数据,以及第二加密数据,并调用预设模型处理待输入模型的输入数据生成模型输出数据。由此,利用可信计算设备在可信沙箱中处理加密后的输入数据及预设模型,从而在数据方设备与模型方设备均无法得到对方的原始数据的前提下生成模型输出结果,保证了数据及模型的隐私性。
参照图7,示出了本申请实施例所提供的一种可信计算***执行的可信计算方法的数据交互示意图。如图7所示,该可信计算方法可以包括如下步骤:
步骤701,数据方设备对待输入模型的输入数据进行加密,得到第一加密数据。
步骤702,数据方设备将第一加密数据发送至可信计算设备。
步骤703,模型方设备对预设模型进行加密,得到第二加密数据。
步骤704,模型方设备将第二加密数据发送至可信计算设备。
步骤705,可信计算设备在至少一个可信沙箱中,接收第一加密数据、第二加密数据以及区块链***发送的控制指令。
步骤706,可信计算设备解密第一加密数据和第二加密数据,得到输入数据及预设模型。
步骤707,可信计算设备响应于控制指令,以调用预设模型处理输入数据,生成模型输出结果。
步骤708,数据方设备获取可信计算设备加密的模型输出结果。
通过上述过程,利用可信计算设备在可信沙箱中处理加密后的输入数据及预设模型,从而在数据方设备与模型方设备均无法得到对方的原始数据的前提下生成模型输出结果,保证了数据及模型的隐私性。
参见图8,示出了本申请实施例提供的一种可信计算设备的结构示意图,为了便于说明,仅示出了与本申请实施例相关的部分。
可信计算设备101具体可以包括如下模块:
接收模块801,用于接收第一加密数据、第二加密数据以及区块链***发送的控制指令。
其中,第一加密数据是通过数据方设备对待输入模型的输入数据进行加密得到,第二加密数据是通过与数据方设备匹配的模型方设备对预设模型进行加密得到。
解密模块802,用于解密第一加密数据和第二加密数据,得到输入数据及预设模型。
模型调用模块803,用于响应于控制指令,以调用预设模型处理输入数据,生成模型输出结果。
本申请上述实施例公开的可信计算设备,可信计算设备首先解密数据方设备对输入数据加密得到的第一加密数据,以及解密模型方设备对预设模型加密得到的第二加密数据,然后调用预设模型处理输入数据,生成模型输出结果。由此,利用可信计算设备在可信沙箱中处理加密后的输入数据及预设模型,从而在数据方设备与模型方设备均无法得到对方的原始数据的前提下生成模型输出结果,保证了数据及模型的隐私性。
在本申请实施例一种可能的实现方式中,上述可信计算设备具体还可以包括如下模块:
第三发送模块,用于分别向区块链***发送对数据方设备及模型方设备的投票请求。
第一接收模块,用于接收区块链***中的多个投票节点对数据方设备进行投票生成的第一投票结果,以及接收区块链***中的多个投票节点对模型方设备进行投票生成的第二投票结果。
第一确定模块,用于在第一投票结果与第二投票结果均为通过的情况下,确定数据方设备与模型方设备达成匹配。
在本申请实施例另一种可能的实现方式中,上述可信计算设备具体还可以包括如下模块:
第一判断模块,用于判断区块链***中的多个投票节点中,是否存在超过预设比例的投票节点投票确认了数据方设备。
第一执行模块,用于若是,则确定第一投票结果为通过。否则,确定第一投票结果不通过。
第二判断模块,用于判断区块链***中的多个投票节点中,是否存在超过预设比例的投票节点投票确认了模型方设备。
第二执行模块,用于若是,则确定第二投票结果为通过。否则,确定第二投票结果不通过。
在一种可能的实现方式中,区块链***中的多个投票节点是通过对区块链***中的所有节点进行随机选取确定。
在本申请实施例再一种可能的实现方式中,上述可信计算设备的每个模块执行至少一个可信计算任务,上述可信计算设备具体还可以包括如下模块:
第三执行模块,用于响应于所有可信计算任务的控制指令,执行可信计算设备的每个可信计算任务。
其中,控制指令是通过数据方设备和对应匹配的模型方设备确认后生成。
在本申请实施例另一种可能的实现方式中,上述可信计算设备的每个模块执行至少一个可信计算任务,上述可信计算设备具体还可以包括如下模块:
第四执行模块,用于针对任一可信计算任务,响应于对应的控制指令,执行可信计算方法中的该可信计算任务。
其中,对应的控制指令是通过数据方设备和对应匹配的模型方设备针对该可信计算任务确认后生成。
本申请实施例提供的可信计算设备可以应用在前述可信计算设备侧的方法实施例中,详情参见上述方法实施例的描述,在此不再赘述。
参见图9,示出了本申请实施例提供的一种数据方设备的结构示意图,为了便于说明,仅示出了与本申请实施例相关的部分。
数据方设备102具体可以包括如下模块:
第一加密模块901,用于对待输入模型的输入数据进行加密,得到第一加密数据。
第一发送模块902,用于将第一加密数据发送至可信计算设备,以使可信计算设备在至少一个可信沙箱中接收第一加密数据、第二加密数据以及区块链***发送的控制指令,解密第一加密数据和第二加密数据,得到输入数据及预设模型,并响应于控制指令,以调用预设模型处理输入数据,生成模型输出结果。
其中,第二加密数据是通过与数据方设备匹配的模型方设备对预设模型进行加密得到。
结果获取模块903,用于获取可信计算设备加密的模型输出结果。
本申请上述实施例公开的数据方设备,数据方设备首先对待输入模型的输入数据进行加密得到第一加密数据,然后将第一加密数据发送至可信计算设备,以使可信计算设备解密第一加密数据,以及解密与数据方设备匹配的模型方设备对预设模型进行加密得到第二加密数据,并调用预设模型处理输入数据生成模型输出结果,最后获取可信计算设备加密的模型输出结果。由此,利用可信计算设备在可信沙箱中处理加密后的输入数据及预设模型,从而在数据方设备与模型方设备均无法得到对方的原始数据的前提下生成模型输出结果,保证了数据及模型的隐私性。
本申请实施例提供的数据方设备可以应用在前数据方节点侧的方法实施例中,详情参见上述方法实施例的描述,在此不再赘述。
参见图10,示出了本申请实施例提供的一种模型方设备的结构示意图,为了便于说明,仅示出了与本申请实施例相关的部分。
模型方设备103具体可以包括如下模块:
第二加密模块1001,用于对预设模型进行加密,得到第二加密数据。
第二发送模块1002,用于将第二加密数据发送至可信计算设备,以使可信计算设备在至少一个可信沙箱中接收第一加密数据、第二加密数据以及区块链***发送的控制指令,解密第一加密数据和第二加密数据,得到输入数据及预设模型,并响应于控制指令,以调用预设模型处理输入数据,生成模型输出结果。
其中,第一加密数据是通过与模型方设备匹配的数据方设备对输入数据进行加密得到。
本申请上述实施例公开的模型方设备,模型方设备首先对预设模型进行加密,得到第二加密数据,然后将第二加密数据发送至可信计算设备,以使可信计算设备解密与模型方设备匹配的数据方设备对输入数据进行加密得到的第一加密数据,以及第二加密数据,并调用预设模型处理待输入模型的输入数据生成模型输出数据。由此,利用可信计算设备在可信沙箱中处理加密后的输入数据及预设模型,从而在数据方设备与模型方设备均无法得到对方的原始数据的前提下生成模型输出结果,保证了数据及模型的隐私性。
本申请实施例提供的模型方设备可以应用在前述模型方节点侧的方法实施例中,详情参见上述方法实施例的描述,在此不再赘述。
图11是本申请实施例提供的终端设备的结构示意图。如图11所示,该实施例的终端设备1100包括:至少一个第二处理器1110(图11中仅示出一个)处理器、第二存储器1120以及存储在所述第二存储器1120中并可在所述至少一个第二处理器1110上运行的第二计算机程序1121,所述第二处理器1110执行所述第二计算机程序1121时实现上述可信计算方法实施例中的步骤。
所述终端设备1100可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备可包括,但不仅限于,第二处理器1110、第二存储器1120。本领域技术人员可以理解,图11仅仅是终端设备1100的举例,并不构成对终端设备1100的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称第二处理器1110可以是中央处理单元(Central Processing Unit,CPU),该第二处理器1110还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述第二存储器1120在一些实施例中可以是所述终端设备1100的内部存储单元,例如终端设备1100的硬盘或内存。所述第二存储器1120在另一些实施例中也可以是所述终端设备1100的外部存储设备,例如所述终端设备1100上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述第二存储器1120还可以既包括所述终端设备1100的内部存储单元也包括外部存储设备。所述第二存储器1120用于存储操作***、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述第二存储器1120还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
本申请实现上述实施例方法中的全部或部分流程,也可以通过一种计算机程序产品来完成,当所述计算机程序产品在终端设备上运行时,使得所述终端设备执行时可实现上述各个方法实施例中的步骤。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (12)
1.一种可信计算方法,其特征在于,应用于可信计算设备,所述可信计算设备包括至少一个可信沙箱,所述可信计算方法在其中一个可信沙箱中执行,所述方法包括:
接收第一加密数据、第二加密数据以及区块链***发送的控制指令,其中,所述第一加密数据是通过数据方设备对待输入模型的输入数据进行加密得到,所述第二加密数据是通过与所述数据方设备匹配的模型方设备对预设模型进行加密得到;
解密所述第一加密数据和所述第二加密数据,得到所述输入数据及所述预设模型;
响应于所述控制指令,以调用所述预设模型处理所述输入数据,生成模型输出结果。
2.如权利要求1所述的方法,其特征在于,所述接收第一加密数据、第二加密数据以及区块链***发送的控制指令之前,所述方法还包括:
分别向所述区块链***发送对所述数据方设备及所述模型方设备的投票请求;
接收所述区块链***中的多个投票节点对所述数据方设备进行投票生成的第一投票结果,以及接收所述区块链***中的多个投票节点对所述模型方设备进行投票生成的第二投票结果;
在所述第一投票结果与所述第二投票结果均为通过的情况下,确定所述数据方设备与所述模型方设备达成匹配。
3.如权利要求2所述的方法,其特征在于,所述在所述第一投票结果与所述第二投票结果均为通过的情况下,确定所述数据方设备与所述模型方设备达成匹配之前,所述方法还包括:
判断所述区块链***中的所述多个投票节点中,是否存在超过预设比例的所述投票节点投票确认了所述数据方设备;
若是,则确定所述第一投票结果为通过;否则,确定所述第一投票结果不通过;
判断所述区块链***中的所述多个投票节点中,是否存在超过所述预设比例的所述投票节点投票确认了所述模型方设备;
若是,则确定所述第二投票结果为通过;否则,确定所述第二投票结果不通过。
4.如权利要求1-3任一所述的方法,其特征在于,所述区块链***中的多个投票节点是通过对所述区块链***中的所有节点进行随机选取确定。
5.如权利要求1所述的可信计算方法,其特征在于,所述可信计算方法的每个步骤包括至少一个可信计算任务,在执行每个可信计算任务之前,还包括:
响应于所有可信计算任务的控制指令,执行所述可信计算方法的每个可信计算任务,其中,所述控制指令是通过所述数据方设备和对应匹配的模型方设备确认后生成。
6.如权利要求1所述的可信计算方法,其特征在于,所述可信计算方法的每个步骤包括至少一个可信计算任务,在执行每个可信计算任务之前,还包括:
针对任一可信计算任务,响应于对应的控制指令,执行所述可信计算方法中的所述任一可信计算任务,其中,对应的控制指令是通过所述数据方设备和对应匹配的模型方设备针对所述任一可信计算任务确认后生成。
7.一种可信计算方法,其特征在于,应用于数据方设备,所述方法包括:
对待输入模型的输入数据进行加密,得到第一加密数据;
将所述第一加密数据发送至可信计算设备,以使所述可信计算设备在至少一个可信沙箱中接收所述第一加密数据、第二加密数据以及区块链***发送的控制指令,解密所述第一加密数据和所述第二加密数据,得到所述输入数据及预设模型,并响应于所述控制指令,以调用所述预设模型处理所述输入数据,生成模型输出结果,其中,所述第二加密数据是通过与所述数据方设备匹配的模型方设备对所述预设模型进行加密得到;
获取所述可信计算设备加密的所述模型输出结果。
8.一种可信计算方法,其特征在于,应用于模型方设备,所述方法包括:
对预设模型进行加密,得到第二加密数据;
将所述第二加密数据发送至可信计算设备,以使所述可信计算设备在至少一个可信沙箱中接收第一加密数据、所述第二加密数据以及区块链***发送的控制指令,解密所述第一加密数据和所述第二加密数据,得到输入数据及所述预设模型,并响应于所述控制指令,以调用所述预设模型处理所述输入数据,生成模型输出结果,其中,所述第一加密数据是通过与所述模型方设备匹配的数据方设备对所述输入数据进行加密得到。
9.一种可信计算***,其特征在于,所述可信计算***包括数据方设备、模型方设备、可信计算设备及区块链***,所述可信计算设备包括至少一个可信沙箱;
所述数据方设备用于对待输入模型的输入数据进行加密,得到第一加密数据,并将所述第一加密数据发送至可信计算设备;
所述模型方设备用于对预设模型进行加密,得到第二加密数据,并将所述第二加密数据发送至可信计算设备;
所述可信计算设备用于在所述至少一个可信沙箱中,接收所述第一加密数据、所述第二加密数据以及区块链***发送的控制指令,解密所述第一加密数据和所述第二加密数据,得到所述输入数据及所述预设模型,响应于所述控制指令,以调用所述预设模型处理所述输入数据,生成模型输出结果;
所述数据方设备还用于获取所述可信计算设备加密的所述模型输出结果。
10.一种可信计算设备,其特征在于,所述可信计算设备包括至少一个可信沙箱,所述可信计算设备执行的可信计算方法在其中一个可信沙箱中执行,所述可信计算设备包括:
接收模块,用于接收第一加密数据、第二加密数据以及区块链***发送的控制指令,其中,所述第一加密数据是通过数据方设备对待输入模型的输入数据进行加密得到,所述第二加密数据是通过与所述数据方设备匹配的模型方设备对预设模型进行加密得到;
解密模块,用于解密所述第一加密数据和所述第二加密数据,得到所述输入数据及所述预设模型;
模型调用模块,用于响应于所述控制指令,以调用所述预设模型处理所述输入数据,生成模型输出结果。
11.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的方法,或者实现如权利要求7所述的方法,或者实现如权利要求8所述的方法。
12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的方法,或者实现如权利要求7所述的方法,或者实现如权利要求8所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310739582.4A CN116881936A (zh) | 2023-06-20 | 2023-06-20 | 可信计算方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310739582.4A CN116881936A (zh) | 2023-06-20 | 2023-06-20 | 可信计算方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116881936A true CN116881936A (zh) | 2023-10-13 |
Family
ID=88253850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310739582.4A Pending CN116881936A (zh) | 2023-06-20 | 2023-06-20 | 可信计算方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116881936A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117454405A (zh) * | 2023-11-15 | 2024-01-26 | 北京熠智科技有限公司 | 一种基于sgx的数据分析方法、***及存储介质 |
-
2023
- 2023-06-20 CN CN202310739582.4A patent/CN116881936A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117454405A (zh) * | 2023-11-15 | 2024-01-26 | 北京熠智科技有限公司 | 一种基于sgx的数据分析方法、***及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109309565B (zh) | 一种安全认证的方法及装置 | |
US9838205B2 (en) | Network authentication method for secure electronic transactions | |
CN100447763C (zh) | 一种安全芯片及基于该芯片的信息安全处理设备和方法 | |
CN107770159B (zh) | 车辆事故数据记录方法及相关装置、可读存储介质 | |
US20220114249A1 (en) | Systems and methods for secure and fast machine learning inference in a trusted execution environment | |
CN110990827A (zh) | 一种身份信息验证方法、服务器及存储介质 | |
US20180219688A1 (en) | Information Transmission Method and Mobile Device | |
Nguyen et al. | Cloud-based secure logger for medical devices | |
CN101241528A (zh) | 终端接入可信pda的方法和接入*** | |
CN113098697B (zh) | 一种区块链数据写入、访问方法及装置 | |
CN105099705A (zh) | 一种基于usb协议的安全通信方法及其*** | |
CN100334519C (zh) | 建立可信输入输出通道的方法 | |
JP2017011491A (ja) | 認証システム | |
CN113438205A (zh) | 区块链数据访问控制方法、节点以及*** | |
CN116881936A (zh) | 可信计算方法及相关设备 | |
CN111585995A (zh) | 安全风控信息传输、处理方法、装置、计算机设备及存储介质 | |
CN113196703A (zh) | 保护计算机网络免受中间人攻击的***和方法 | |
CN116633530A (zh) | 量子密钥传输方法、装置及*** | |
CN112217636B (zh) | 基于区块链的数据处理方法、装置、计算机设备及介质 | |
US20150170150A1 (en) | Data verification | |
CN107026729B (zh) | 用于传输软件的方法和装置 | |
CN115549930B (zh) | 登录操作***的验证方法 | |
US20240113898A1 (en) | Secure Module and Method for App-to-App Mutual Trust Through App-Based Identity | |
CN115549984A (zh) | 跨链交易方法、装置、设备和存储介质 | |
CN112291189B (zh) | 发送、校验密文的方法、装置、设备以及存储介质 |
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 |