CN113849565A - 用于可信上链的方法及终端设备 - Google Patents
用于可信上链的方法及终端设备 Download PDFInfo
- Publication number
- CN113849565A CN113849565A CN202111129145.8A CN202111129145A CN113849565A CN 113849565 A CN113849565 A CN 113849565A CN 202111129145 A CN202111129145 A CN 202111129145A CN 113849565 A CN113849565 A CN 113849565A
- Authority
- CN
- China
- Prior art keywords
- uplink
- data processing
- module
- processing module
- result
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000012545 processing Methods 0.000 claims abstract description 435
- 230000008569 process Effects 0.000 claims abstract description 39
- 238000005538 encapsulation Methods 0.000 claims abstract description 30
- 238000013135 deep learning Methods 0.000 claims description 41
- 230000004044 response Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 18
- 238000013528 artificial neural network Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 239000002994 raw material Substances 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
Abstract
本说明书实施例提供了一种用于可信上链的方法及终端设备。终端设备被配置为包括REE和TEE,终端设备中执行数据处理操作的模块被分割为位于TEE中的第一数据处理模块和位于REE中的第二数据处理模块,第一数据处理模块执行关键操作,TEE中包括第一上链模块,在该方法中,响应于数据处理请求,获取应用输入的用于数据处理操作的初始数据;调用第二数据处理模块对初始数据进行处理,得到中间结果;第二数据处理模块以中间结果作为输入来调用第一数据处理模块;第一数据处理模块对中间结果进行处理,得到处理结果;在TEE中对处理结果进行加密处理,得到加密结果;以及第一数据处理模块调用第一上链模块对加密结果进行上链任务封装,以使加密结果上链。
Description
技术领域
本说明书实施例涉及区块链技术领域,具体地,涉及用于可信上链的方法及终端设备。
背景技术
区块链具有不可篡改性,基于区块链的不可篡改性,区块链技术被广泛应用于各个领域,将相关的数据和信息上链至区块链上存储。区块链上存储的数据在不同的应用场景下可以具有一定的金融属性(比如,质押货物)、法律属性(比如,事实证据)、价值属性(比如,商品及原材料)等。
在云端的边缘计算的应用场景中,端边设备执行边缘计算,得到边缘计算的计算结果。然后,端边设备将计算结果上传给云端设备,云端设备将计算结果上链至区块链进行存储。
发明内容
鉴于上述,本说明书实施例提供了用于可信上链的方法及终端设备。在本说明书实施例提供的技术方案中,在TEE中得到处理结果,并对处理结果进行加密处理,以避免处理结果上链前被篡改,从而确保区块链的源头可信。
根据本说明书实施例的一个方面,提供了一种用于可信上链的方法,由终端设备来执行,所述终端设备被配置为包括REE和TEE,所述终端设备中用于执行指定的数据处理操作的模块被分割为位于所述TEE中的第一数据处理模块和位于所述REE中的第二数据处理模块,所述第一数据处理模块用于执行包括所述数据处理操作中的关键操作的部分操作,所述TEE中包括有用于数据上链处理的第一上链模块,所述方法包括:响应于应用的数据处理请求,获取所述应用输入的用于所述数据处理操作的初始数据;调用所述第二数据处理模块对所述初始数据进行处理,得到中间结果;所述第二数据处理模块以所述中间结果作为输入来调用所述第一数据处理模块;所述第一数据处理模块对所述中间结果进行处理,得到处理结果;在所述TEE中对所述处理结果进行加密处理,得到加密结果;以及所述第一数据处理模块调用所述第一上链模块对所述加密结果进行上链任务封装,以使所述加密结果上链。
根据本说明书实施例的另一方面,还提供一种用于可信上链的终端设备,所述终端设备被配置为包括REE和TEE,所述终端设备中用于执行指定的数据处理操作的模块被分割为位于所述TEE中的第一数据处理模块和位于所述REE中的第二数据处理模块,所述第一数据处理模块用于执行包括所述数据处理操作中的关键操作的部分操作,所述TEE中包括有用于数据上链处理的第一上链模块,所述终端设备包括:数据获取模块,被配置为响应于应用的数据处理请求,获取所述应用输入的用于所述数据处理操作的初始数据;所述第二数据处理模块,被配置为通过被调用来对所述初始数据进行处理,得到中间结果;以及以所述中间结果作为输入来调用所述第一数据处理模块;所述第一数据处理模块,被配置为对所述中间结果进行处理,得到处理结果;加解密模块,被配置为在所述TEE中对所述处理结果进行加密处理,得到加密结果;以及所述第一上链模块,被配置为通过被所述第一数据处理模块调用来对所述加密结果进行上链任务封装,以使所述加密结果上链。
根据本说明书实施例的另一方面,还提供一种用于电子设备,包括:至少一个处理器,与所述至少一个处理器耦合的存储器,以及存储在所述存储器上的计算机程序,所述至少一个处理器执行所述计算机程序来实现上述任一所述的用于可信上链的方法。
根据本说明书实施例的另一方面,还提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的用于可信上链的方法。
根据本说明书实施例的另一方面,还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上任一所述的用于可信上链的方法。
附图说明
通过参照下面的附图,可以实现对于本说明书实施例内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。
图1示出了根据本说明书实施例的终端设备的应用场景的一个示例的示意图。
图2示出了根据本说明书实施例的终端设备的一个示例的示意图。
图3示出了根据本说明书实施例的终端设备的另一个示例的示意图。
图4示出了根据本说明书实施例的可信上链方法的一个示例的流程图。
图5示出了根据本说明书实施例的将加密结果上链的另一个示例的流程图。
图6示出了根据本说明书实施例的数据处理模块初始化的一个示例的示意图。
图7示出了根据本说明书实施例的上链模块初始化的一个示例的示意图。
图8示出了根据本说明书实施例的用于可信上链的终端设备的一个示例的方框图。
图9示出了根据本说明书实施例的用于可信上链的终端设备的另一个示例的方框图。
图10示出了本说明书实施例的用于实现可信上链方法的电子设备的方框图。
具体实施方式
以下将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书实施例内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
区块链具有不可篡改性,基于区块链的不可篡改性,区块链技术被广泛应用于各个领域,将相关的数据和信息上链至区块链上存储。区块链上存储的数据在不同的应用场景下可以具有一定的金融属性(比如,质押货物)、法律属性(比如,事实证据)、价值属性(比如,商品及原材料)等。
在云端的边缘计算的应用场景中,端边设备执行边缘计算,得到边缘计算的计算结果。然后,端边设备将计算结果上传给云端设备,云端设备将计算结果上链至区块链进行存储。
然而,在上述上链过程中,端边设备将计算结果上传给云端设备的过程可能遭受攻击而导致计算结果被篡改,此外,端边设备在得到计算结果时也存在被攻击的风险,从而导致计算结果被篡改。计算结果在上链之前被篡改,导致了源头不可信的问题。
鉴于上述,本说明书实施例提供了一种用于可信上链的方法及终端设备,该方法由终端设备来执行,终端设备被配置为包括REE和TEE,终端设备中用于执行指定的数据处理操作的模块被分割为位于TEE中的第一数据处理模块和位于REE中的第二数据处理模块,第一数据处理模块用于执行包括数据处理操作中的关键操作的部分操作,TEE中包括有用于数据上链处理的第一上链模块,方法包括:响应于应用的数据处理请求,获取应用输入的用于数据处理操作的初始数据;调用第二数据处理模块对初始数据进行处理,得到中间结果;第二数据处理模块以中间结果作为输入来调用第一数据处理模块;第一数据处理模块对中间结果进行处理,得到处理结果;在TEE中对处理结果进行加密处理,得到加密结果;以及第一数据处理模块调用第一上链模块对加密结果进行上链任务封装,以使加密结果上链。通过本说明书实施例提供的技术方案,在TEE中得到处理结果,并对处理结果进行加密处理,以避免处理结果上链前被篡改,从而确保区块链的源头可信。
下面结合附图对本说明书实施例提供的用于可信上链的方法及终端设备进行详细说明。
图1示出了根据本说明书实施例的终端设备的应用场景的一个示例100的示意图。
图1所示的应用场景是端边云场景,端边云场景由多个端边设备和云端设备构成,云端设备与各个端边设备可通信连接。图1所示的各个端边设备是可以进行边缘计算的终端设备,比如,手机、智能家电、摄像头等。
在图1所示的端边云场景中,各个端边设备可以为云端设备提供边缘计算服务,不同端边设备可以提供不同类型的边缘计算服务,例如,各个端边设备提供的边缘计算服务可以包括人脸识别、人流量统计、货物水位盘点、文档异常检测等。
在本说明书实施例的另一个示例中,本说明书实施例中的终端设备还可以应用于其他场景。例如,终端设备可以是一个系统中的一个组件设备,终端设备还可以是独立地进行相应数据处理操作的设备,终端设备还可以是区块链网络中的区块链节点。
图2示出了根据本说明书实施例的终端设备的一个示例的示意图。
本说明书实施例提供的用于可信上链的方法可以由终端设备200来执行。如图2所示,终端设备200被配置为包括REE(Rich Execution Environment,通用执行环境)和TEE(Trusted Execution Environment,可信执行环境)。在一个示例中,终端设备200中的TEE可以基于TrustZone来实现。TEE隔离于REE,TEE与REE之间可以通过特定的方式进行通信,比如,特定的方式可以包括基于SMC指令的通信。在TEE与REE之间的一种快速通信机制下,TEE可以访问REE的内存,而REE访问受硬件保护的TEE内存受限,从而确保了TEE的安全。
终端设备200中可以配置有用于执行指定的数据处理操作的模块210,该指定的数据处理操作确定了终端设备200能够提供的计算服务,例如,该指定的数据处理操作是人脸识别,则此时终端设备200可以提供的服务是人脸识别服务。
在本说明书实施例中,指定的数据处理操作可以是标准化的操作,标准化的数据处理操作能够被分割,比如,标准化的数据处理操作可以按照每一操作程序和每一动作进行分割,得到多个操作部分,每个操作部分可以包括数据处理操作中的一部分操作,该多个操作部分结合起来又可以组成完整的数据处理操作。此外,用于执行标准化的数据处理操作的模块210也可以根据数据处理操作的分割方式进行分割,模块210可以分割成多个不同的模块部分,各个模块部分执行不同的操作,所有的模块部分构成完整的模块210。各个模块部分与数据处理操作中的各个操作部分一一对应,每个模块部分用于执行所对应的操作部分的操作。
在一个示例中,指定的数据处理操作可以是顺序执行的操作。在该示例中,数据处理操作可以按照执行顺序进行分割,比如,可以将用于执行前几个操作的模块部分分割成第一操作部分,可以将用于执行后续剩下的几个操作的模块部分分割成第二操作部分,从而将数据处理操作分割成两个操作部分,该两个操作部分的执行顺序为:第一操作部分、第二操作部分。相应地,用于执行数据处理操作的模块210也可以分割成两个模块部分,一个模块部分用于执行第一操作部分的操作,另一个模块部分用于执行第二操作部分的操作。
在一个示例中,终端设备200能够执行的指定的数据处理操作可以包括深度学习推理操作,深度学习推理操作在深度学习网络中执行,深度学习网络可以包括神经网络。深度学习网络可以由层级结构的多层子网络构成,每层子网络中的神经元与下一层子网络中的神经元连接,每层子网络的输出是下一层子网络的输入。深度学习网络中的最后一层可以是输出层,用于输出深度学习推理的结果。
在该示例中,深度学习网络是标准化的层级网络,从而使用深度学习网络的深度学习推理操作是标准化的操作,此外,深度学习推理操作是按照层级网络顺序执行的。基于此,深度学习推理操作可以被分割成多个操作部分,深度学习网络也可以分割成多个模型部分。
在一种分割方式中,深度学习推理操作按照深度学习网络中的各层子网络的排列顺序依次进行,各层子网络的排列顺序即为深度学习推理操作的操作顺序。基于此,深度学习推理操作可以按照各层子网络的排列顺序进行分割,相应地,深度学习网络也可以按照各层子网络的排列顺序分割成多个网络模型部分。
例如,将深度学习推理操作分割成两个部分,相应地深度学习网络也被分割成两个部分,其中,前几层的子网络可以作为第一网络模型部分,用于执行深度学习推理操作中的第一操作部分,其余的后几层的子网络可以作为第二网络模型部分,用于执行深度学习推理操作中的第二操作部分。第一操作部分是深度学习推理操作中的先执行的操作,第二操作部分是深度学习推理操作中的后执行的操作,第一操作部分所执行的操作和第二操作部分所执行的操作构成完整的深度学习推理操作。
在另一种分割方式中,在基于各层子网络的排列顺序的基础上,还可以根据各操作步骤的重要程度来进行分割,以将相邻且重要程度高的操作步骤划分在同一个操作部分中。在一个示例中,后执行的操作(比如,输出处理结果的操作)的重要程度更高。在该分割方式中,深度学习网络中的每一层子网络对应深度学习推理操作中的一个操作步骤,可以在深度学习网络中确定分割点,使得该分割点的相邻的前一操作步骤的重要程度低于该分割点的相邻的后一操作步骤的重要程度。在一个示例中,所确定的分割点将深度学习网络分割为两个网络模型部分,按照执行顺序,分割点之前的网络模型部分所执行的各个操作步骤的重要程度低于该分割点之后的网络模型部分所执行的各个操作步骤的重要程度。
例如,深度学习网络包括有6层子网络,相应地,该深度学习网络所执行的深度学习推理操作包括有6个操作步骤,第5层子网络用于计算关键中间结果,最后一层子网络用于输出计算结果,第5层和第6层子网络的重要程度明显高于前4层子网络的重要程序,因此,可以将深度学习网络分割为两个模型部分,其中一个模型部分包括前4层子网络,用于执行深度学习推理操作中的前4个操作步骤,另一个模型部分包括后2层子网络,用于执行深度学习推理操作中的后2个操作步骤。
在本说明书实施例中,终端设备200中的模块210可以被分割成第一数据处理模块211和第二数据处理模块212,第一数据处理模块211和第二数据处理模块212分别执行指定的数据处理操作中的一部分操作,且第一数据处理模块211所执行的部分操作与第二数据处理模块212所执行的部分操作结合起来可以构成完整的数据处理操作。其中,第一数据处理模块211所执行的部分操作包括数据处理操作中的关键操作,关键操作可以包括得到最后的处理结果的操作、关键中间结果的操作等。基于此,第一数据处理模块211位于TEE中,第二数据处理模块212位于REE中,从而确保第一数据处理模块212在TEE中执行操作的安全性,避免关键操作受到攻击,进而确保关键操作生成的关键数据的安全性。
在一个示例中,第二数据处理模块212所执行的部分操作是先执行的操作,第一数据处理模块211所执行的部分操作是后执行的操作。第二数据处理模块212在执行完成后,可以触发第一数据处理模块211开始执行,第一数据处理模块211完成执行,即终端设备200中的数据处理操作完成。
在一个示例中,数据处理操作是深度学习推理操作,该深度学习推理操作所使用的神经网络有N层,其中,N为正整数。N层神经网络中的第一层是输入层,最后一层是输出层,用于输出处理结果。在深度学习推理过程中,从第一层网络开始,按照各层网络的排列顺序依次进行推理计算,直至最后一层网络输出处理结果。
在该示例中,可以将N层神经网络中的前M层网络作为第二数据处理模块,其中,M为小于N的正整数;后(N-M)层网络作为第一数据处理模块。在进行深度学习推理时,第二数据处理模块先执行,即,作为第二数据处理模块的前M层网络依次进行推理计算;然后,第一数据处理模块后执行,即,作为第一数据处理模块的后(N-M)层网络依次进行推理计算。
此外,终端设备200中还包括有第一上链模块221,第一上链模块221位于TEE中,用于执行数据上链操作,比如,执行上链任务封装操作。第一上链模块221的上链操作在TEE中执行,确保了数据上链之前的上链操作的安全性,避免上链操作受到攻击,进而确保上链数据的安全性,实现源头可信。
图3示出了根据本说明书实施例的终端设备200的另一个示例的示意图。
如图3所示,终端设备200除了包括第一数据处理模块211、第二数据处理模块212和第一上链模块221以外,还可以包括第二上链模块222。其中,针对第一数据处理模块211、第二数据处理模块212和第一上链模块221的说明可以参考上述图2的相关部分。
第二上链模块222可以位于REE中,用于与第一上链模块221配合来进行数据上链的相关处理,数据上链的相关处理可以包括数据上链前的处理,比如,上链任务封装,加签处理等,数据上链的相关处理还可以包括完整的数据上链操作,该完整的数据上链操作包括将数据上链前的处理以及数据上链。在终端设备200中,第二上链模块222与第一上链模块221可以通信连接,第二上链模块222与第一上链模块221之间还可以相互调用。
在数据上链处理的过程中,第一上链模块221先执行,第二上链模块222后执行。具体地,可以先由第一上链模块221执行前期的操作,然后由第二上链模块222来执行后续的操作。例如,第一上链模块221对待上链的数据进行上链任务封装,以形成上链任务信息,然后,通过第二上链模块222根据上链任务信息对待上链的数据进行上链。
在一个示例中,第二上链模块222与第一上链模块221可以是构成终端设备200中的上链模块220的两个部分,上链模块220用于在终端设备200中进行数据上链的相关处理。第二上链模块222和第一上链模块221形成的一种方式可以是上链模块220被分割成两个部分所得到的。
在另一个示例中,第二上链模块222与第一上链模块221可以是两个独立的模块,该两个独立的模块之间可以形成相互调用的关系,通过该调用关系将第二上链模块222所执行的操作与第一上链模块221所执行的操作结合起来,以实现数据上链的相关处理。
图4示出了根据本说明书实施例的可信上链方法的一个示例400的流程图。图4所示的可信上链方法可以由终端设备来执行。
如图4所示,在410,响应于应用的数据处理请求,获取应用输入的用于数据处理操作的初始数据。
在本说明书实施例中,发起数据处理请求的应用可以是安装在终端设备中的应用,还可以是与终端设备通信连接的其他设备中的应用。应用所发起的数据处理请求是针对指定的数据处理操作的请求,比如,终端设备可以执行的指定数据处理操作是人脸识别,则应用可以向终端设备发起人脸识别的请求。
在本说明书实施例中,应用输入的初始数据是数据处理操作待处理的数据,初始数据可以包括图像、视频和文本等数据类型中的至少一种。例如,终端设备所执行的数据处理操作是人脸识别,则应用输入的初始数据可以是包括有人脸的图像。
在一个示例中,第二数据处理模块所执行的部分操作是数据处理操作中先执行的操作,第一数据处理模块所执行的部分操作是数据处理操作中后执行的操作。基于此,应用的初始数据可以直接输入给先执行的第二数据处理模块,以触发第二数据处理模块开始执行针对初始数据的数据处理操作。
在另一个示例中,应用可以将数据处理请求发送给终端设备中的用于接收数据处理请求的请求接收模块,数据处理请求可以携带初始数据。请求接收模块在接收到数据处理请求后,可以从数据处理请求中获取到初始数据。响应于获取到初始数据,请求接收模块可以以初始数据作为输入来调用第二数据处理模块,从而使得第二数据处理模块开始执行针对初始数据的数据处理操作。
在一个示例中,第一数据处理模块和第二数据处理模块是参数化的程序,基于此,还可以获取应用输入的用于第一数据处理模块和第二数据处理模块的参数,以用于第一数据处理模块和第二数据处理模块的运行。在另一个示例中,第一数据处理模块的参数还可以存储在REE的内存中或者TEE的内存中,第二数据处理模块的参数还可以存储在REE的内存中。
在420,调用第二数据处理模块对初始数据进行处理,得到中间结果。
在本说明书实施例中,针对初始数据的数据处理操作,第二数据处理模块先执行,第一数据处理模块后执行。基于此,在开始数据处理操作时,可以先调用第二数据处理模块对初始数据进行处理,
在一个示例中,数据处理操作是深度学习推理操作,该深度学习推理操作所使用的神经网络有N层。其中,将N层神经网络中的前M层网络作为第二数据处理模块,后(N-M)层网络作为第一数据处理模块。则在进行深度学习推理时,作为第二数据处理模块的前M层网络依次进行推理计算,直至在第M层网络输出中间结果,该中间结果也是第二数据处理模块在执行完成时输出的计算结果。
在第二数据处理模块得到中间结果后,在430,第二数据处理模块可以以该中间结果作为输入来调用第一数据处理模块。
在本说明书实施例中,第一数据处理模块和第二数据处理模块均有对方的回调地址,从而第一数据处理模块和第二数据处理模块可以相互调用。第一数据处理模块的回调地址可以预先注册至第二数据处理模块中,相应地,第二数据处理模块的回调地址可以预先注册至第一数据处理模块中。
通过第二数据处理模块调用的方式,在第二数据处理模块执行完成时,能够及时地触发第一数据处理模块开始执行操作,使得第二数据处理模块和第一数据处理模块之间的操作衔接更紧密,从而提高数据处理操作的效率。此外,在第一数据处理模块被触发的同时,第一数据处理模块能够获取到第二数据处理模块生成的中间结果,作为第一数据处理模块的输入,避免了触发和获取输入两者之间的时间差,从而提高了第一数据处理模块的执行效率。
在440,第一数据处理模块对中间结果进行处理,得到处理结果。
在一个示例中,第一数据处理模块所执行的操作是数据处理操作中的紧接着第二数据处理模块所执行的操作后面的后续操作。中间结果作为第一数据处理模块的输入,第一数据处理模块所得到的处理结果是对初始数据进行数据处理操作的结果。例如,初始数据是图像,指定的数据处理操作是人脸识别,则第一数据处理模块所得到的处理结果可以是人脸识别结果。
在一个示例中,数据处理操作是深度学习推理操作,该深度学习推理操作所使用的神经网络有N层。其中,将N层神经网络中的前M层网络作为第二数据处理模块,后(N-M)层网络作为第一数据处理模块。则在进行深度学习推理时,作为第二数据处理模块的前M层网络依次进行推理计算,直至在第M层网络输出中间结果。然后,第M层的中间结果输入给下一层,该下一层即为第一数据处理模块中的第一层网络,作为第一数据处理模块的后(N-M)层网络依次进行推理计算,直至第N层输出处理结果。
在本说明书实施例中,第一数据处理模块位于TEE中,则该第一数据处理模块生成的处理结果也可以存储在TEE的内存中,从而确保了处理结果的安全性。
在得到处理结果后,在450,在TEE中对处理结果进行加密处理,得到加密结果。
在本说明书实施例中,针对处理结果的加密方法的示例包括但不限于对称加密、非对称加密、同态加密等。对称加密可以使用单个密钥来对评级结果进行加密(根据明文生成密文)和解密(根据密文生成明文)的加密过程。在对称加密中,多个节点可以具有相同的密钥,因此每个节点都可以对评级结果进行加密/解密。
非对称加密可以使用密钥对来对处理结果进行加密。具体地,终端设备可以使用处理结果获取方处的公钥/私钥对中的公钥来对处理结果进行加密,然后使用终端设备处的公钥/私钥对中的私钥来对经过加密后的处理结果进行数字签名。之后,由区块链网络中用于上链的共识节点使用终端设备处的公钥/私钥对中的公钥进行解密并验证,在共识节点达成共识后记录到区块链上。在这种情况下,处理结果获取方在从区块链上获取到经过加密后的处理结果后,处理结果获取方可以利用自己的私钥来进行解密,由此得到处理结果的明文数据。
在一个示例中,终端设备中还可以配置有位于TEE中的加解密模块,该加解密模块可以被终端设备中的其他模块调用以用来加密或解密。在该示例中,第一数据处理模块在得到处理结果后,可以调用加解密模块对处理结果进行加密处理。由于第一数据处理模块和加解密模块都位于TEE中,第一数据处理模块与加解密模块之间的交互也在TEE中进行,从而确保了加密操作以及上述交互操作的安全性,避免被攻击。
在一个示例中,对处理结果进行加密的密钥可以来源于安全芯片,安全芯片是用于存储密钥并为所存储的密钥提供可信环境的硬件设备。终端设备中的各个密钥都可以存储在安全芯片中,通过安全芯片提供的安全可信环境,确保所存储的密钥的安全性,进一步地提高了密钥的可信程度。
在460,第一数据处理模块调用第一上链模块对加密结果进行上链任务封装,以使加密结果上链。
在本说明书实施例中,上链任务封装是将上链所需的信息(以下称为上链任务信息)打包成一个上链任务,上链任务信息包括加密结果、区块链标识、上链接口、上链权限密码等,通过上链任务封装,使得打包的上链任务信息满足区块链协议的协议标准。其中,区块链标识用于指示加密结果待上链存储的区块链,上链接口用于指示执行上链操作的接口,上链权限密码用于验证上链的权限,通过上链权限密码验证的设备才能对所封装的上链任务进行上链操作。
在经过上链任务封装后,根据封装的上链任务可以使加密结果上链。例如,用于执行上链操作的设备可以根据上链任务确定待上链的加密结果、上链的接口、上链的区块链等信息,然后基于这些信息进行上链操作,以将加密结果上链。
在一个示例中,第一上链模块可以是区块链网络中的区块链节点。在该示例中,作为区块链节点的第一上链模块在对加密结果进行上链任务封装后,可以根据所封装的上链任务在区块链网络中对加密结果执行上链操作,以将加密结果上链。
在该示例中,第一上链模块所执行的上链操作在TEE中进行,避免了上链过程被攻击,从而确保了待上链的加密结果的安全性,进而实现区块链的源头可信。
图5示出了根据本说明书实施例的将加密结果上链的另一个示例500的流程图。
在图5所示的示例中,终端设备还可以配置有第二上链模块,该第二上链模块位于REE中。该示例中的终端设备可以是如图3所示的终端设备。
如图5所示,在461,第一数据处理模块调用第一上链模块对加密结果进行上链任务封装,得到经过封装的上链任务信息。
在462,在TEE中对上链任务信息进行加签处理。
在一个示例中,可以在上链任务封装过程中对上链任务信息进行加签处理。在另一个示例中,可以在封装完成后,对封装后的上链任务信息进行加签处理。
加签处理所使用的私钥可以是终端设备的私钥/公钥对中的私钥,该私钥可以存储在TEE的内存中,还可以存储在安全芯片中。
通过对上链任务信息进行加签处理,根据上链任务信息进行上链操作的设备可以通过签名对上链任务信息进行验证,以确保上链任务信息的完整性,避免上链任务信息被篡改,进而避免待上链的加密结果被篡改。
在463,第一上链模块以经过加签处理的上链任务信息作为输入来调用第二上链模块,以通过第二上链模块将加密结果上链。
在第二上链模块被调用的同时,第二上链模块可以获取到经过加签处理的上链任务信息。第二上链模块可以根据上链任务信息执行针对加密信息的上链操作,还可以将上链任务信息发送给其他设备,由其他设备根据上链任务信息执行上链操作。
具体地,在一个示例中,第二上链模块可以是区块链网络中的节点。作为节点的第二上链模块可以在区块链网络中执行上链操作,从而第二上链模块可以根据上链任务信息在区块链网络中直接对加密结果执行上链操作,以将加密结果上链至区块链。
在另一个示例中,第二上链模块可以用于网络通信,第二上链模块可以与其他上链设备通信连接。其他上链设备可以是区块链网络中的区块链节点,还可以是与区块链节点通信连接的设备,比如,其他上链设备是云端设备,云端设备可以通过通信连接的区块链节点将加密结果上链至区块链存储。
在该示例中,第二上链模块可以将上链任务信息发送给其他上链设备,其他上链设备再根据上链任务信息将加密结果进行上链。
在上述两个示例中,上链任务封装在TEE中执行,且对上链任务信息进行加签处理可以避免上链任务信息在REE中被篡改,确保了上链任务信息在REE中的完整性。此外,通过在REE中配置第二上链模块,以使TEE中的第一上链模块仅需执行上链任务封装操作,而其他操作可以由REE中的第二上链模块来执行,这样节省TEE中的计算资源。
在一个示例中,在第一数据处理模块得到处理结果后,第一数据处理模块可以将处理结果反馈给第二数据处理模块。
此外,在上链完成后,第二上链模块可以获得用于表征上链完成的上链证书信息,上链证书信息包括上链时间、上链数据的摘要、上链设备的标识等。在上链证书信息的一种获得方式中,第二上链模块作为区块链节点可以直接执行上链操作,从而可以直接获得上链证书信息。在上链证书信息的另一种获得方式中,由与第二上链模块通信连接的其他设备执行上链操作,在上链完成后,执行上链操作的设备将上链证书信息发送给第二上链模块。
第二上链模块可以将上链证书信息反馈给第二数据处理模块。在一个示例中,第二上链模块反馈的一种方式可以是回调的方式,在回调方式中,可以预先将第二数据处理模块的回调地址注册至第二上链模块中,这样,在第二上链模块获取到上链证书信息时,可以通过第二数据处理模块的回调地址来回调第二数据处理模块,以将上链证书信息传输给第二数据处理模块。
在上链完成后,第二数据处理模块可以接收到处理结果以及上链证书信息,第二数据处理模块可以将处理结果和上链证书信息反馈给应用。
在一个示例中,在第二数据处理模块对初始数据进行处理得到中间结果后,第二数据处理模块可以以中间结果和初始数据作为输入来调用第一数据处理模块,这样,第一数据处理模块可以获取到中间结果以及初始数据。
在第一数据处理模块得到加密结果后,第一数据处理模块在进行上链任务封装时,可以调用第一上链模块对加密结果和初始数据进行上链任务封装,以使加密结果和初始数据上链。这样,在区块链上,每一次数据处理操作的初始数据和处理结果对应的加密结果可以对应存储。
在该示例中,初始数据是得到处理结果的输入数据,初始数据与处理结果结合可以体现完整的数据处理操作。将处理结果对应的加密结果和初始数据对应存储在区块链上,确保了数据处理操作所对应的数据在区块链上的完整性。
在本说明书实施例的一个示例中,当终端设备启动时,终端设备初始化。响应于终端设备的初始化,终端设备中的第一数据处理模块和第二数据处理模块也需要进行初始化。
响应于终端设备的初始化,初始化指令先到达REE中的第二数据处理模块。由此,首先初始化REE中的第二数据处理模块。第二数据处理模块的第二处理模块文件可以存储在REE的内存中,则在第二数据处理模块初始化时,第二数据处理模块可以从REE的内存中加载第二处理模块文件,以完成第二数据处理模块的初始化。
在第二数据处理模块加载完成时,第二数据处理模块可以触发位于TEE中的第一数据处理模块进行初始化。第一数据处理模块的第一处理模块文件可以存储在REE的内存中,还可以存储在TEE的内存中。
当第一处理模块文件存储在TEE的内存中时,第一数据处理模块可以直接从TEE的内存中加载第一处理模块文件,以完成第一数据处理模块的初始化。
当第一处理模块文件存储在REE的内存中时,响应于第二数据处理模块加载完成,第一数据处理模块可以从REE中的内存中将第一处理模块文件拷贝至TEE中的内存。TEE中的内存仅供TEE中的模块访问,REE中的模块以及其他设备无法访问,确保了存储在TEE的内存中的第一处理模块文件的安全性。然后,第一数据处理模块可以从TEE的内存中加载第一处理模块文件,以完成第一数据处理模块的初始化。
在一个示例中,存储在REE的内存中的第一处理模块文件是经过加密处理的,以加强第一处理模块文件的安全性。在该示例中,第一数据处理模块可以从REE中的内存中将经过加密处理的第一处理模块文件拷贝至TEE中的内存,然后,在TEE中对经过加密处理的第一处理模块文件进行解密,以得到第一处理模块文件的明文数据。
在一个示例中,可以由TEE中的加解密模块对经过加密处理的第一处理模块文件进行解密,加解密模块进行解密的解密密钥可以来自于TEE中的内存,还可以来自于安全芯片。
经过解密的第一处理模块文件存储在TEE的内存中,第一数据处理模块再从TEE的内存中加载经过解密后的第一处理模块文件,以完成第一数据处理模块的初始化。
在一个示例中,第一处理模块文件和第二处理模块文件都可以来自于区块链,在终端设备初始化时,REE中的第二数据处理模块可以从区块链上获取第一处理模块文件和第二处理模块文件,并将所获取的第一处理模块文件和第二处理模块文件存储在REE的内存中。在该示例中,用于初始化的第一处理模块文件和第二处理模块文件直接从区块链上获取,确保了第一处理模块文件和第二处理模块文件的真实性。
图6示出了根据本说明书实施例的数据处理模块初始化的一个示例的示意图。
如图6所示,第二数据处理模块的第二处理模块文件和第一数据处理模块的第一处理模块文件都存储在REE的内存中。其中,第一处理模块文件是经过加密处理的文件。
当响应于终端设备初始化时,位于REE中的第二数据处理模块首先进行初始化,第二数据处理模块可以直接从REE的内存中加载第二处理模块文件,以完成第二数据处理模块的初始化。
在第二数据处理模块完成初始化时,第二数据处理模块可以触发第一数据处理模块初始化。第一数据处理模块可以响应于第二数据处理模块的触发开始进行初始化。具体地,第一数据处理模块从REE中的内存中将经过加密处理的第一处理模块文件拷贝至TEE中的内存中。然后,第一数据处理模块触发加解密模块对经过加密处理的第一处理模块文件进行解密,以得到第一处理模块文件的明文数据。接着,第一数据处理模块从TEE的内存中加载经过解密后的第一处理模块文件,以完成第一数据处理模块的初始化。
在本说明书实施例的另一个示例中,当终端设备启动时,终端设备初始化。响应于终端设备的初始化,终端设备中的第一上链模块和第二上链模块也需要进行初始化。
响应于终端设备的初始化,初始化指令先到达REE中的第二上链模块。由此,首先初始化REE中的第二上链模块。第二上链模块的第二上链模块文件可以存储在REE的内存中,则在第二上链模块初始化时,第二上链模块可以从REE的内存中加载第二上链模块文件,以完成第二上链模块的初始化。
在第二上链模块加载完成时,第二上链模块可以触发位于TEE中的第一上链模块进行初始化。第一上链模块的第一上链模块文件可以存储在REE的内存中,还可以存储在TEE的内存中。
当第一上链模块文件存储在TEE的内存中时,第一上链模块可以直接从TEE的内存中加载第一上链模块文件,以完成第一上链模块的初始化。
当第一上链模块文件存储在REE的内存中时,响应于第二上链模块加载完成,第一上链模块可以从REE中的内存中将第一上链模块文件拷贝至TEE中的内存。TEE中的内存仅供TEE中的模块访问,REE中的模块以及其他设备无法访问,确保了存储在TEE的内存中的第一上链模块文件的安全性。然后,第一上链模块可以从TEE的内存中加载第一上链模块文件,以完成第一上链模块的初始化。
在一个示例中,存储在REE的内存中的第一上链模块文件是经过加密处理的,以加强第一上链模块文件的安全性。在该示例中,第一上链模块可以从REE中的内存中将经过加密处理的第一上链模块文件拷贝至TEE中的内存,然后,在TEE中对经过加密处理的第一上链模块文件进行解密,以得到第一上链模块文件的明文数据。
在一个示例中,可以由TEE中的加解密模块对经过加密处理的第一上链模块文件进行解密,加解密模块进行解密的解密密钥可以来自于TEE中的内存,还可以来自于安全芯片。
经过解密的第一上链模块文件存储在TEE的内存中,第一上链模块再从TEE的内存中加载经过解密后的第一上链模块文件,以完成第一上链模块的初始化。
在一个示例中,第一上链模块文件和第二上链模块文件都可以来自于区块链,在终端设备初始化时,REE中的第二上链模块可以从区块链上获取第一上链模块文件和第二上链模块文件,并将所获取的第一上链模块文件和第二上链模块文件存储在REE的内存中。在该示例中,用于初始化的第一上链模块文件和第二上链模块文件直接从区块链上获取,确保了第一上链模块文件和第二上链模块文件的真实性。
图7示出了根据本说明书实施例的上链模块初始化的一个示例的示意图。
如图7所示,第二上链模块的第二上链模块文件和第一上链模块的第一上链模块文件都存储在REE的内存中。其中,第一上链模块文件是经过加密处理的文件。
当响应于终端设备初始化时,位于REE中的第二上链模块首先进行初始化,第二上链模块可以直接从REE的内存中加载第二上链模块文件,以完成第二上链模块的初始化。
在第二上链模块完成初始化时,第二上链模块可以触发第一上链模块初始化。第一上链模块可以响应于第二上链模块的触发开始进行初始化。具体地,第一上链模块从REE中的内存中将经过加密处理的第一上链模块文件拷贝至TEE中的内存中。然后,第一上链模块触发加解密模块对经过加密处理的第一上链模块文件进行解密,以得到第一上链模块文件的明文数据。接着,第一上链模块从TEE的内存中加载经过解密后的第一上链模块文件,以完成第一上链模块的初始化。
图8示出了根据本说明书实施例的用于可信上链的终端设备800的一个示例的方框图。
如图8所示,终端设备800可以包括数据获取模块810、第二数据处理模块820、第一数据处理模块830、加解密模块840和第一上链模块850。
其中,终端设备800被配置为包括REE和TEE,终端设备800中用于执行指定的数据处理操作的模块被分割为位于TEE中的第一数据处理模块830和位于REE中的第二数据处理模块820,第一数据处理模块830用于执行包括数据处理操作中的关键操作的部分操作,TEE中包括有用于数据上链的第一上链模块850。
数据获取模块810,被配置为响应于应用的数据处理请求,获取应用输入的用于数据处理操作的初始数据;
第二数据处理模块820,被配置为通过被调用来对初始数据进行处理,得到中间结果;以及以中间结果作为输入来调用第一数据处理模块。
第一数据处理模块830,被配置为对中间结果进行处理,得到处理结果。
加解密模块840,被配置为在TEE中对处理结果进行加密处理,得到加密结果。
第一上链模块850,被配置为通过被第一数据处理模块调用来对加密结果进行上链任务封装,以使加密结果上链。
在一个示例中,用于加密处理的密钥来自于安全芯片。
在一个示例中,第二数据处理模块820,被配置为以中间结果和初始数据作为输入来调用第一数据处理模块。第一上链模块850,被配置为通过被第一数据处理模块调用来对加密结果和初始数据进行上链任务封装,以使加密结果上链。
在一个示例中,第二数据处理模块820,被配置为响应于终端设备初始化,从REE的内存中加载第二数据处理模块的第二处理模块文件。第一数据处理模块830,被配置为响应于第二数据处理模块820加载完成,从TEE的内存中加载第一数据处理模块830的第一处理模块文件。
在一个示例中,第一数据处理模块830,被配置为响应于第二数据处理模块820加载完成,从REE中的内存中将经过加密处理的第一处理模块文件拷贝至TEE中的内存。加解密模块840,被配置为在TEE中对经过加密处理的第一处理模块文件进行解密。第一数据处理模块830,被配置为从TEE的内存中加载经过解密后的第一处理模块文件。
图9示出了根据本说明书实施例的用于可信上链的终端设备800的另一个示例的方框图。该示例是上述图8所述示例的修改示例。
如图8所示,在图8所述示例的基础上,终端设备800还可以包括位于REE中的第二上链模块860。
第一上链模块850,被配置为通过被第一数据处理模块830调用来对加密结果进行上链任务封装,得到经过封装的上链任务信息。
加解密模块840,被配置为在TEE中对上链任务信息进行加签处理。
第一上链模块850,被配置为以经过加签处理的上链任务信息作为输入来调用第二上链模块860,以通过第二上链模块860将加密结果上链。
在一个示例中,用于加签处理的私钥来自于安全芯片。
在一个示例中,第一数据处理模块830,被配置为在得到处理结果后,将处理结果反馈给第二数据处理模块820。第二上链模块860,被配置为在上链完成后,将上链证书信息反馈给第二数据处理模块820。第二数据处理模块820,被配置为将处理结果和上链证书信息反馈给应用。
在一个示例中,第一上链模块850和第二上链模块860是构成终端设备800中的上链模块的两个部分。第二上链模块860,被配置为响应于终端设备800初始化,从REE的内存中加载第二上链模块860的第二上链模块文件。第一上链模块850,被配置为响应于第二上链模块860加载完成,从TEE的内存中加载第一上链模块850的第一上链模块文件。
以上参照图1到图9,对根据本说明书实施例的用于可信上链的方法及终端设备的实施例进行了描述。
图10示出了本说明书实施例的用于实现可信上链方法的电子设备1000的方框图。
如图10所示,电子设备1000可以包括至少一个处理器1010、存储器(例如,非易失性存储器)1020、内存1030和通信接口1040,并且至少一个处理器1010、存储器1020、内存1030和通信接口1040经由总线1050连接在一起。至少一个处理器1010执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器1010:响应于应用的数据处理请求,获取应用输入的用于数据处理操作的初始数据;调用REE中的第二数据处理模块对初始数据进行处理,得到中间结果;第二数据处理模块以中间结果作为输入来调用第一数据处理模块;第一数据处理模块对中间结果进行处理,得到处理结果;在TEE中对处理结果进行加密处理,得到加密结果;以及第一数据处理模块调用第一上链模块对加密结果进行上链任务封装,以使加密结果上链。
应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1010进行本说明书的各个实施例中以上结合图1-9描述的各种操作和功能。
根据一个实施例,提供了一种例如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-9描述的各种操作和功能。
具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
本说明书各部分操作所需的计算机程序代码可以用任意一种或多种程序语言编写,包括面向对象编程语言,如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB、NET以及Python等,常规程序化编程语言如C语言、Visual Basic 2003、Perl、COBOL 2002、PHP以及ABAP,动态编程语言如Python、Ruby和Groovy,或者其他编程语言等。该程序编码可以在用户计算机上运行,或者作为独立的软件包在用户计算机上运行,或者部分在用户计算机上运行另一部分在远程计算机运行,或者全部在远程计算机或服务器上运行。在后一种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或者在云计算环境中,或者作为服务使用,比如软件即服务(SaaS)。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
以上结合附图详细描述了本说明书的实施例的可选实施方式,但是,本说明书的实施例并不限于上述实施方式中的具体细节,在本说明书的实施例的技术构思范围内,可以对本说明书的实施例的技术方案进行多种简单变型,这些简单变型均属于本说明书的实施例的保护范围。
本说明书内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本说明书内容。对于本领域普通技术人员来说,对本说明书内容进行的各种修改是显而易见的,并且,也可以在不脱离本说明书内容的保护范围的情况下,将本文所定义的一般性原理模块于其它变型。因此,本说明书内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。
Claims (15)
1.一种用于可信上链的方法,由终端设备来执行,所述终端设备被配置为包括REE和TEE,所述终端设备中用于执行指定的数据处理操作的模块被分割为位于所述TEE中的第一数据处理模块和位于所述REE中的第二数据处理模块,所述第一数据处理模块用于执行包括所述数据处理操作中的关键操作的部分操作,所述TEE中包括有用于数据上链处理的第一上链模块,
所述方法包括:
响应于应用的数据处理请求,获取所述应用输入的用于所述数据处理操作的初始数据;
调用所述第二数据处理模块对所述初始数据进行处理,得到中间结果;
所述第二数据处理模块以所述中间结果作为输入来调用所述第一数据处理模块;
所述第一数据处理模块对所述中间结果进行处理,得到处理结果;
在所述TEE中对所述处理结果进行加密处理,得到加密结果;以及
所述第一数据处理模块调用所述第一上链模块对所述加密结果进行上链任务封装,以使所述加密结果上链。
2.如权利要求1所述的方法,其中,所述REE中包括有第二上链模块,
所述第一数据处理模块调用所述第一上链模块对所述加密结果进行上链任务封装,以将所述加密结果进行上链包括:
所述第一数据处理模块调用所述第一上链模块对所述加密结果进行上链任务封装,得到经过封装的上链任务信息;
在所述TEE中对所述上链任务信息进行加签处理;以及
所述第一上链模块以经过加签处理的所述上链任务信息作为输入来调用所述第二上链模块,以通过所述第二上链模块将所述加密结果上链。
3.如权利要求2所述的方法,其中,用于所述加密处理的密钥和/或用于所述加签处理的私钥来自于安全芯片。
4.如权利要求2所述的方法,还包括:
在所述第一数据处理模块得到所述处理结果后,所述第一数据处理模块将所述处理结果反馈给所述第二数据处理模块;
在上链完成后,所述第二上链模块将上链证书信息反馈给所述第二数据处理模块;以及
所述第二数据处理模块将所述处理结果和所述上链证书信息反馈给所述应用。
5.如权利要求2所述的方法,其中,所述第二上链模块是区块链网络中的区块链节点。
6.如权利要求1所述的方法,其中,所述第二数据处理模块以所述中间结果作为输入来调用所述第一数据处理模块包括:
所述第二数据处理模块以所述中间结果和所述初始数据作为输入来调用所述第一数据处理模块;以及
所述第一数据处理模块调用所述第一上链模块对所述加密结果进行上链任务封装,以使所述加密结果上链包括:
所述第一数据处理模块调用所述第一上链模块对所述加密结果和所述初始数据进行上链任务封装,以使所述加密结果和所述初始数据上链。
7.如权利要求1所述的方法,其中,所述数据处理操作包括深度学习推理操作。
8.如权利要求1所述的方法,还包括:
响应于所述终端设备初始化,所述第二数据处理模块从所述REE的内存中加载所述第二数据处理模块的第二处理模块文件;以及
响应于所述第二数据处理模块加载完成,所述第一数据处理模块从所述TEE的内存中加载所述第一数据处理模块的第一处理模块文件。
9.如权利要求8所述的方法,其中,响应于所述第二数据处理模块加载完成,所述第一数据处理模块从所述TEE的内存中加载所述第一数据处理模块的第一处理模块文件包括:
响应于所述第二数据处理模块加载完成,所述第一数据处理模块从所述REE中的内存中将经过加密处理的所述第一处理模块文件拷贝至所述TEE中的内存;
在所述TEE中对经过加密处理的所述第一处理模块文件进行解密;以及
所述第一数据处理模块从所述TEE的内存中加载经过解密后的所述第一处理模块文件。
10.如权利要求2所述的方法,其中,所述第一上链模块和所述第二上链模块是构成所述终端设备中的上链模块的两个部分,
所述方法还包括:
响应于所述终端设备初始化,所述第二上链模块从所述REE的内存中加载所述第二上链模块的第二上链模块文件;以及
响应于所述第二上链模块加载完成,所述第一上链模块从所述TEE的内存中加载所述第一上链模块的第一上链模块文件。
11.一种用于可信上链的终端设备,所述终端设备被配置为包括REE和TEE,所述终端设备中用于执行指定的数据处理操作的模块被分割为位于所述TEE中的第一数据处理模块和位于所述REE中的第二数据处理模块,所述第一数据处理模块用于执行包括所述数据处理操作中的关键操作的部分操作,所述TEE中包括有用于数据上链处理的第一上链模块,
所述终端设备包括:
数据获取模块,被配置为响应于应用的数据处理请求,获取所述应用输入的用于所述数据处理操作的初始数据;
所述第二数据处理模块,被配置为通过被调用来对所述初始数据进行处理,得到中间结果;以及以所述中间结果作为输入来调用所述第一数据处理模块;
所述第一数据处理模块,被配置为对所述中间结果进行处理,得到处理结果;
加解密模块,被配置为在所述TEE中对所述处理结果进行加密处理,得到加密结果;以及
所述第一上链模块,被配置为通过被所述第一数据处理模块调用来对所述加密结果进行上链任务封装,以使所述加密结果上链。
12.如权利要求11所述的终端设备,还包括:位于所述REE中的第二上链模块,
所述第一上链模块,被配置为通过被所述第一数据处理模块调用来对所述加密结果进行上链任务封装,得到经过封装的上链任务信息;
所述加解密模块,被配置为在所述TEE中对所述上链任务信息进行加签处理;
所述第一上链模块,被配置为以经过加签处理的所述上链任务信息作为输入来调用所述第二上链模块,以通过所述第二上链模块将所述加密结果上链。
13.一种用于电子设备,包括:
至少一个处理器,
与所述至少一个处理器耦合的存储器,以及
存储在所述存储器上的计算机程序,所述至少一个处理器执行所述计算机程序来实现如权利要求1-10中任一所述的方法。
14.一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-10中任一所述的方法。
15.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1-10中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111129145.8A CN113849565B (zh) | 2021-09-26 | 用于可信上链的方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111129145.8A CN113849565B (zh) | 2021-09-26 | 用于可信上链的方法及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113849565A true CN113849565A (zh) | 2021-12-28 |
CN113849565B CN113849565B (zh) | 2024-05-14 |
Family
ID=
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108985255A (zh) * | 2018-08-01 | 2018-12-11 | Oppo广东移动通信有限公司 | 数据处理方法、装置、计算机可读存储介质和电子设备 |
US20200143041A1 (en) * | 2018-11-01 | 2020-05-07 | Foundation Of Soongsil University-Industry Cooperation | Hybrid trust execution environment based android security framework, android device equipped with the same and method of executing trust service in android device |
CN111310216A (zh) * | 2020-02-26 | 2020-06-19 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、电子设备和介质 |
US20200272737A1 (en) * | 2018-05-25 | 2020-08-27 | Huawei Technologies Co., Ltd. | Multi-container-based trusted application processing method and related device |
WO2020185417A1 (en) * | 2019-03-08 | 2020-09-17 | Microsoft Technology Licensing, Llc | Secure policy ingestion into trusted execution environments |
CN111740838A (zh) * | 2020-05-22 | 2020-10-02 | 青岛万民科技有限公司 | 一种区块链数据可信上链方法及系统 |
US20200342092A1 (en) * | 2019-04-26 | 2020-10-29 | Alibaba Group Holding Limited | Securely executing smart contract operations in a trusted execution environment |
CN112187734A (zh) * | 2020-09-09 | 2021-01-05 | 中国科学院信息工程研究所 | 一种IPSec组件架构及VPN隧道建立方法 |
CN112580056A (zh) * | 2020-12-14 | 2021-03-30 | 中国科学院信息工程研究所 | 一种终端设备、数据加密方法、解密方法、及电子设备 |
US20210200882A1 (en) * | 2019-12-31 | 2021-07-01 | Arm Limited | Device, System, and Method of Policy Enforcement for Rich Execution Environment |
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200272737A1 (en) * | 2018-05-25 | 2020-08-27 | Huawei Technologies Co., Ltd. | Multi-container-based trusted application processing method and related device |
CN108985255A (zh) * | 2018-08-01 | 2018-12-11 | Oppo广东移动通信有限公司 | 数据处理方法、装置、计算机可读存储介质和电子设备 |
US20200143041A1 (en) * | 2018-11-01 | 2020-05-07 | Foundation Of Soongsil University-Industry Cooperation | Hybrid trust execution environment based android security framework, android device equipped with the same and method of executing trust service in android device |
WO2020185417A1 (en) * | 2019-03-08 | 2020-09-17 | Microsoft Technology Licensing, Llc | Secure policy ingestion into trusted execution environments |
US20200342092A1 (en) * | 2019-04-26 | 2020-10-29 | Alibaba Group Holding Limited | Securely executing smart contract operations in a trusted execution environment |
US20210200882A1 (en) * | 2019-12-31 | 2021-07-01 | Arm Limited | Device, System, and Method of Policy Enforcement for Rich Execution Environment |
CN111310216A (zh) * | 2020-02-26 | 2020-06-19 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、电子设备和介质 |
CN111740838A (zh) * | 2020-05-22 | 2020-10-02 | 青岛万民科技有限公司 | 一种区块链数据可信上链方法及系统 |
CN112187734A (zh) * | 2020-09-09 | 2021-01-05 | 中国科学院信息工程研究所 | 一种IPSec组件架构及VPN隧道建立方法 |
CN112580056A (zh) * | 2020-12-14 | 2021-03-30 | 中国科学院信息工程研究所 | 一种终端设备、数据加密方法、解密方法、及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110580412B (zh) | 基于链代码的权限查询配置方法及装置 | |
US8171306B2 (en) | Universal secure token for obfuscation and tamper resistance | |
US10958678B2 (en) | Identity based behavior measurement architecture | |
CN111177749B (zh) | 加密源代码文件处理方法、装置、计算机设备和存储介质 | |
CN112949545B (zh) | 识别人脸图像的方法、装置、计算设备和介质 | |
CN111475850B (zh) | 基于智能合约的隐私数据查询方法及装置 | |
CN109983732B (zh) | 保护密钥库内容的使用 | |
CN109509099B (zh) | 数据交易方法及装置、计算设备、存储介质 | |
WO2023029447A1 (zh) | 模型保护方法、装置、设备、系统以及存储介质 | |
WO2020035544A1 (en) | Blockchain autonomous agents | |
CN108319857B (zh) | 可信应用的加解锁方法和系统 | |
TWI724684B (zh) | 用於執行經過身分驗證的加密操作的方法、系統及裝置 | |
CN109560933B (zh) | 基于数字证书的认证方法及系统、存储介质、电子设备 | |
WO2023142440A1 (zh) | 一种图像加密、图像处理方法、装置、设备及介质 | |
CN111934873A (zh) | 一种投标文件加解密方法及装置 | |
CN108416224A (zh) | 一种数据加解密方法及装置 | |
CN107133517B (zh) | 一种基于内存中数据加密和计算的数据还原方法 | |
CN113205342A (zh) | 基于多端支付的用户身份验证方法及装置 | |
CN113849565B (zh) | 用于可信上链的方法及终端设备 | |
CN116684102A (zh) | 报文传输方法、报文校验方法、装置、设备、介质和产品 | |
CN113849565A (zh) | 用于可信上链的方法及终端设备 | |
CN113448545B (zh) | 机器学习模型服务化的方法、设备、存储介质及程序产品 | |
CN113034140B (zh) | 实现智能合约加密的方法、系统、设备及存储介质 | |
CN115640589A (zh) | 一种安全保护设备以及业务执行方法、装置及存储介质 | |
CN114331648A (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 | ||
GR01 | Patent grant |