CN113489752B - 明密文混合计算方法、装置、电子设备及存储介质 - Google Patents

明密文混合计算方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113489752B
CN113489752B CN202111045377.5A CN202111045377A CN113489752B CN 113489752 B CN113489752 B CN 113489752B CN 202111045377 A CN202111045377 A CN 202111045377A CN 113489752 B CN113489752 B CN 113489752B
Authority
CN
China
Prior art keywords
node
plaintext
instruction
ciphertext
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111045377.5A
Other languages
English (en)
Other versions
CN113489752A (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.)
Huakong Tsingjiao Information Technology Beijing Co Ltd
Original Assignee
Huakong Tsingjiao Information Technology Beijing Co Ltd
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 Huakong Tsingjiao Information Technology Beijing Co Ltd filed Critical Huakong Tsingjiao Information Technology Beijing Co Ltd
Priority to CN202111045377.5A priority Critical patent/CN113489752B/zh
Publication of CN113489752A publication Critical patent/CN113489752A/zh
Application granted granted Critical
Publication of CN113489752B publication Critical patent/CN113489752B/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种明密文混合计算方法、装置、电子设备及存储介质,涉及隐私计算技术领域。该方法包括:第一明文节点基于第一指令读取第一计算数据的所述第一对象;第二明文节点基于所述第一指令创建所述第一计算数据的第二对象,所述第二明文节点为所述第一节点以外的明文节点;所述第一明文节点基于第二指令将所述第一对象发送至密文节点;在计算所需的计算数据的第一对象接收完毕时,密文节点基于第三指令对所需的计算数据的第一对象进行逻辑运算,基于第四指令创建逻辑运算结果的第一对象。该方法允许多个节点共同维护一套代码的虚拟第二对象机制,保证多个节点共同运行一套代码,解决了代码需要分布式编写的问题。

Description

明密文混合计算方法、装置、电子设备及存储介质
技术领域
本申请涉及通信加密技术领域,具体而言,涉及一种明密文混合计算方法、装置、电子设备及存储介质。
背景技术
在传统的明密文混合计算系统中,用户需要分布式的编写代码。用户如果想在明文计算端执行计算,需要编写明文代码,如果想在密文计算端执行计算,需要编写密文代码。同时,还需要一个控制端,控制数据在明文计算端和密文计算端之间进行数据传输。数据从明文端传递到密文端,需要显式地调用明密文混合计算系统提供的加密函数;反之,数据从密文端到明文端,需要显式地调用明密文混合计算系统提供的解密函数。在开发过程中,需要反复填写数据名称、数据存储地址、函数参数等内容,给开发者带来很大的不便,需要分布式编写代码;同时,代码写到三个不同的文件进行交互,不仅不利于代码的管理、审计、对照明文代码对照,同时也会给编程带来了极大的不便,使得开发维护较为困难。
发明内容
有鉴于此,本申请实施例的目的在于提供一种明密文混合计算方法、装置、电子设备及存储介质,以改善现有技术中存在的明密文混合计算代码需要分布式编写,降低开发维护效率的问题。
本申请实施例提供了一种明密文混合计算方法,所述方法包括:第一明文节点基于第一指令读取第一计算数据的第一对象;第二明文节点基于所述第一指令创建所述第一计算数据的第二对象,所述第二明文节点为所述第一明文节点以外的明文节点;所述第一明文节点基于第二指令将所述第一对象发送至密文节点;在计算所需的计算数据的第一对象接收完毕时,所述密文节点基于第三指令对所需的计算数据的第一对象进行逻辑运算,基于第四指令创建逻辑运算结果的第一对象。
在上述实现方式中,通过不同的节点对同一指令的解析后执行该节点与指令对应的执行动作,提供了一个统一的明密文计算环境,在保证数据安全的前提下,数据可以自动的在明文端和密文端进行数据的同步和传输,并且在使用这套明密文计算系统进行开发时,用户无需感知数据的具体位置是在明文节点还是密文节点,数据将自动被同步到所需要计算的节点上从而实现了允许多个节点共同维护一套代码的逻辑对象和数据对象机制,保证多个节点共同运行一套代码,解决代码需要分布式编写的问题,用户只需要开发维护一套代码,提高了开发维护效率。
可选地,在所述第一明文节点基于第一指令读取第一计算数据的所述第一对象之后,所述方法还包括:所述密文节点基于所述第一指令创建所述第一计算数据对应的第二对象。
在上述实现方式中,通过在密文节点创建第一计算数据的第二对象,保证了密文节点和明文节点都存在同一套计算数据,能够运行同一套代码进行运算。
可选地,在所述第一明文节点基于第一指令读取第一计算数据的所述第一对象之前,所述方法还包括:确定所述编程计算任务需要调用所述第一计算数据;所述第一计算数据所属的所述第一明文节点创建所述第一计算数据对应的第一对象。
在上述实现方式中,基于编程计算任务的第一计算数据进行第一对象在对应明文节点中的创建,保证了密文节点和明文节点都存在同一套计算数据,能够运行同一套代码进行运算。
可选地,所述第一明文节点基于第二指令将所述第一对象发送至密文节点,包括:所述第一明文节点解析所述第二指令;所述第一明文节点在所述第二指令对应的执行动作为将所述第一对象发送至所述密文节点时,将所述第一对象发送至所述密文节点。
在上述实现方式中,第一明文节点基于第二指令的解析结果向密文节点发送属于自身的计算数据的第一对象,为后续不同节点再执行对应的指令解析工作,实现自动的数据同步转换提供了基础。
可选地,所述第一明文节点解析所述第二指令,包括:所述第一明文节点解析所述第二指令为指示所述第一明文节点将所述第一对象发送至密文节点;在所述第一明文节点确定自身为与所述第二指令对应的明文节点且本地存储有所述第一对象后,所述第一明文节点确定自身与所述第二指令对应的执行动作为将所述第一对象发送至所述密文节点。
在上述实现方式中,针对每一个明文节点对不同的指令进行解析执行不同的执行动作,完成每个第一对象的发送,能够将所有逻辑计算需要涉及的计算数据汇聚至同一密文节点,从而实现了明密文混合计算的前提。
可选地,在所述第一明文节点确定自身与所述第二指令对应的执行动作为将所述第一对象发送至所述密文节点之后,所述方法还包括:所述第一明文节点通过计数器生成所述第二指令的全局唯一命名。
在上述实现方式中,通过对指令的全局唯一命名避免明文节点或密文节点对指令进行错误执行,保证了明文节点和密文节点在明密文混合计算过程中的执行准确性。
可选地,所述方法还包括:所述第二明文节点和所述密文节点解析所述第二指令为指示所述第一明文节点将所述第一对象发送至密文节点;所述第二明文节点确定自身不是与所述第二指令对应的明文节点且本地未存储所述第一对象后,所述第一明文节点确定自身与所述第二指令对应的执行动作为不执行动作;所述密文确定自身不是与所述第二指令对应的明文节点且本地未存储所述第一对象后,所述密文节点确定自身与所述第二指令对应的执行动作为阻塞等待数据。
在上述实现方式中,其他明文节点基于第二对象不执行相应指令动作的特性不进行非本节点第一对象的发送,同时密文节点基于阻塞数据接收指令使密文节点等待所有明文节点发送第一对象后进行逻辑运算,实现了自动的数据同步转换。
可选地,在所述密文节点基于第三指令对所需的计算数据的第一对象进行逻辑运算,基于第四指令创建逻辑运算结果的第一对象之后,所述方法还包括:所述密文节点基于第五指令将所述逻辑运算结果的第一对象发送至指定明文节点,基于第六指令在所述指定明文节点上创建计算输出数据的第一对象;所述指定明文节点基于第七指令外的明文节点和所述密文节点创建所述计算输出数据的第一对象。
在上述实现方式中,在密文节点完成计算后,将逻辑运算结果发送至明文节点,通过第一对象的创建和输出实现了计算结果对明文节点的输出。
本申请实施例提供了一种明密文混合计算装置,所述装置包括:读取模块,用于通过第一明文节点基于第一指令读取第一计算数据的所述第一对象;第二对象创建模块,用于通过第二明文节点基于所述第一指令创建所述第一计算数据的第二对象,所述第二明文节点为所述第一节点以外的明文节点;发送模块,用于通过所述第一明文节点基于第二指令将所述第一对象发送至密文节点;逻辑计算模块,用于在计算所需的计算数据的第一对象接收完毕时,通过所述密文节点基于第三指令对所需的计算数据的第一对象进行逻辑运算,基于第四指令创建逻辑运算结果的第一对象。
在上述实现方式中,通过不同的节点对同一指令的解析后执行该节点与指令对应的执行动作,提供了一个统一的明密文计算环境,在保证数据安全的前提下,数据可以自动的在明文端和密文端进行数据的同步和传输,并且在使用这套明密文计算系统进行开发时,用户无需感知数据的具体位置是在明文节点还是密文节点,数据将自动被同步到所需要计算的节点上从而实现了允许多个节点共同维护一套代码的逻辑对象和数据对象机制,保证多个节点共同运行一套代码,解决代码需要分布式编写的问题,用户只需要开发维护一套代码,提高了开发维护效率。
可选地,所述第二对象创建模块还用于:通过所述密文节点基于所述第一指令创建所述第一计算数据对应的第二对象。
在上述实现方式中,通过在密文节点创建第一计算数据的第二对象,保证了密文节点和明文节点都存在同一套计算数据,能够运行同一套代码进行运算。
可选地,所述明密文混合计算装置还包括:第一对象创建模块,用于确定所述编程计算任务需要调用所述第一计算数据;所述第一计算数据所属的所述第一明文节点创建所述第一计算数据对应的第一对象。
在上述实现方式中,基于编程计算任务的第一计算数据进行第一对象在对应明文节点中的创建,保证了密文节点和明文节点都存在同一套计算数据,能够运行同一套代码进行运算。
可选地,所述发送模块具体用于:通过所述第一明文节点解析所述第二指令;通过所述第一明文节点在所述第二指令对应的执行动作为将所述第一对象发送至所述密文节点时,将所述第一对象发送至所述密文节点。
在上述实现方式中,第一明文节点基于第二指令的解析结果向密文节点发送属于自身的计算数据的第一对象,为后续不同节点再执行对应的指令解析工作,实现自动的数据同步转换提供了基础。
可选地,所述发送模块还用于:通过所述第一明文节点解析所述第二指令为指示所述第一明文节点将所述第一对象发送至密文节点;在所述第一明文节点确定自身为与所述第二指令对应的明文节点且本地存储有所述第一对象后,通过所述第一明文节点确定自身与所述第二指令对应的执行动作为将所述第一对象发送至所述密文节点。
在上述实现方式中,针对每一个明文节点对不同的指令进行解析执行不同的执行动作,完成每个第一对象的发送,能够将所有逻辑计算需要涉及的计算数据汇聚至同一密文节点,从而实现了明密文混合计算的前提。
可选地,所述发送模块还用于:通过所述第一明文节点通过计数器生成所述第二指令的全局唯一命名。
在上述实现方式中,通过对指令的全局唯一命名避免明文节点或密文节点对指令进行错误执行,保证了明文节点和密文节点在明密文混合计算过程中的执行准确性。
可选地,所述明密文混合计算装置还包括:阻塞模块,用于通过所述第二明文节点和所述密文节点解析所述第二指令为指示所述第一明文节点将所述第一对象发送至密文节点;通过所述第二明文节点确定自身不是与所述第二指令对应的明文节点且本地未存储所述第一对象后,所述第一明文节点确定自身与所述第二指令对应的执行动作为不执行动作;通过所述密文确定自身不是与所述第二指令对应的明文节点且本地未存储所述第一对象后,所述密文节点确定自身与所述第二指令对应的执行动作为阻塞等待数据。
在上述实现方式中,其他明文节点基于第二对象不执行相应指令动作的特性不进行非本节点第一对象的发送,同时密文节点基于阻塞数据接收指令使密文节点等待所有明文节点发送第一对象后进行逻辑运算,实现了自动的数据同步转换。
可选地,所述明密文混合计算装置还包括:结果发送模块,用于通过所述密文节点基于第五指令将所述逻辑运算结果的第一对象发送至指定明文节点,基于第六指令在所述指定明文节点上创建计算输出数据的第一对象;通过所述指定明文节点外的明文节点和所述密文节点基于第七指令创建所述计算输出数据的第一对象。
在上述实现方式中,在密文节点完成计算后,将逻辑运算结果发送至明文节点,通过第一对象的创建和输出实现了计算结果对明文节点的输出。
本申请实施例还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行上述任一实现方式中的步骤。
本实施例的有益效果为:通过不同的节点对同一指令的解析后执行该节点与指令对应的执行动作,提供了一个统一的明密文计算环境,在保证数据安全的前提下,数据可以自动的在明文端和密文端进行数据的同步和传输,并且在使用这套明密文计算系统进行开发时,用户无需感知数据的具体位置是在明文节点还是密文节点,数据将自动被同步到所需要计算的节点上从而实现了允许多个节点共同维护一套代码的逻辑对象和数据对象机制,保证多个节点共同运行一套代码,解决代码需要分布式编写的问题,用户只需要开发维护一套代码,提高了开发维护效率。
本申请实施例还提供了一种可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述任一实现方式中的步骤。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种明密文混合计算方法的流程示意图。
图2为本申请实施例提供的一种数据发送流程的原理示意图。
图3为本申请实施例提供的一种指令解析流程的原理示意图。
图4为本申请实施例提供的一种明密文混合计算装置的模块示意图。
图标:20-明密文混合计算装置;21-读取模块;22-第二对象创建模块;23-发送模块;24-逻辑计算模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
首先对明密文混合计算系统进行说明,明密文混合计算系统是一种既可以进行明文计算,又可以进行密文计算的系统。一般情况下,一套明密文混合计算系统由明文计算端和密文计算端组成。因为明文计算效率显著高于密文上的计算效率,将尽可能多的计算放在明文计算端可以提高整体的计算效率。
在明密文混合计算系统中,将实际的数据按照归属状态划分为:公开数据,单方私有数据,多方私有数据和融合数据。归属状态按照公开数据,单方私有数据,多方私有数据和融合数据的顺序,对应的优先级由低到高。
因此在传统的明密文混合计算系统中,用户需要分布式的编写代码,在开发过程中,需要反复填写数据名称、数据存储地址、函数参数等内容,代码写到三个不同的文件进行交互,提高了开发难度,且降低了开发效率。
为了解决现有技术存在的上述问题,本申请实施例提供了一种明密文混合计算方法,请参考图1,图1为本申请实施例提供的一种明密文混合计算方法的流程示意图。
步骤S11:第一明文节点基于第一指令读取第一计算数据的第一对象。
应当理解的是,在执行步骤S11之前,由确定编程计算任务需要调用的至少两方计算数据,由第一明文节点基于任务代码即指令,例如具体的IO存储数据代码,创建第一计算数据对应的第一对象,至少两方计算数据中除第一计算数据外的计算数据,由其他明文节点基于该任务代码创建各自包含的计算数据对应的第一对象。
其中,第一对象可以是逻辑对象,逻辑对象的生命周期为单个任务,它表达了数据在逻辑上的属性,被程序员所感知,包括之前提到的单方私有数据、融合数据、公开数据。
第一对象的数据指针指向该计算端该任务进程的缓存中,随着任务进程结束而清空。
可选地,本实施例中的第一指令可以为第一明文节点读取第一计算数据的第一对象,本实施例中不同节点针对同一指令进行解析后执行预设的不同对应执行动作。
步骤S12:第二明文节点基于第一指令创建第一计算数据的第二对象,第二明文节点为第一节点以外的明文节点。
上述第二对象可以是数据对象,是逻辑对象的虚拟对象,行为和逻辑对象保持一致,可以保证代码的持续运行。数据对象也是个数据类,与逻辑对象唯一的区别是它不包含逻辑对象所拥有的数据。
应当理解的是,为了保证所有明文节点、密文节点的数据的统一性,本实施例还需要在密文节点创建至少两方计算数据对应的第二对象。
在执行具体的任务代码时,如果该执行动作发生在同一处明文节点上,那么该明文节点包含的计算数据对应为第一对象,其他明文计算节点的数据和密文计算节点的数据对应为第二对象。如果计算发生在密文节点,那么所有明文节点的计算数据都对应为第二对象,他们同样可以参与整个编程任务的计算,但是并不真正执行计算操作,从而保证整个编程任务在各个节点上共同运行。
步骤S13:第一明文节点基于第二指令将第一对象发送至密文节点。
可选地,本实施例中的第二指令可以是第一明文节点将第一对象发送至密文节点的对应代码。
图2为本申请实施例提供的一种数据发送流程的原理示意图,如图2所示,以需要密文节点执行C=A+B运算为例,必须保证A、B的数据都处于同一个节点中,如果A、B不处于同一个节点,需要通过底层的数据通信机制,将数据汇聚到同一个节点当中。在这个情况中,A数据在明文节点1,B数据在明文节点2,他们共同生成1节点第一对象发送指令、密文节点阻塞接收指令,以及2节点第一对象发送指令、密文节点阻塞接收指令,以保证计算可以在密文节点进行,其余节点由于自身存储的是第一计算数据对应的第二对象,不做具体计算。
接下来对明文节点、密文节点基于指令的运行原理进行说明,每个明文节点、密文节点会解析每个指令,例如上述明文节点1会解析1节点第一对象发送指令,同时也会解析2节点第一对象发送指令以及密文节点阻塞接收指令。
每个明文节点、密文节点会针对当前的指令进行解析,由计数器为该指令生成全局唯一命名,以保证每个节点对同一指令执行正确的操作,避免指令执行顺序混乱,然后该指令对应的节点执行对应的操作,其他节点不执行操作或阻塞数据接收,在该指令对应的节点执行操作完成后,每个明文节点、密文节点针对下一指令进行解析,从而实现指令解析和操作执行的自动流程,实现了自动的数据同步转换,提高了明密文混合计算系统的易用性,用户无需关心具体数据传输的数据名称、数据存储地址、函数参数内容。
例如针对第二指令,第二明文节点和密文节点解析第二指令为指示第一明文节点将第一对象发送至密文节点;
第二明文节点确定自身不是与第二指令对应的明文节点且本地未存储第一对象后,第一明文节点确定自身与第二指令对应的执行动作为不执行动作;
密文确定自身不是与第二指令对应的明文节点且本地未存储第一对象后,密文节点确定自身与第二指令对应的执行动作为阻塞等待数据。
下面以图3为例进行说明,图3为本申请实施例提供的第一对象发送指令解析流程的原理示意图。
明文节点1、明文节点2和密文节点生成1节点第一对象发送指令,该指令用于指示明文节点1将第一对象发送至密文节点,明文节点1、明文节点2和密文节点针对该指令生成全局唯一命名N。然后,明文节点1检测到存在对应的第一对象,将第一对象发送至密文节点后,执行下一指令;明文节点2中存在该计算数据对应的第二对象,不作具体计算等操作,等待执行下一指令;密文节点则基于阻塞数据接收指令等待数据接收,在接收到明文节点1发送的第一对象后解析下一指令,以保证后续计算可以在密文节点运行。
在所有的明文节点将相应数据发送至密文节点后由密文节点进行计算,执行后续步骤S14。
步骤S14:在计算所需的计算数据的第一对象接收完毕时,密文节点基于第三指令对所需的计算数据的第一对象进行逻辑运算,基于第四指令创建逻辑运算结果的第一对象。
可选地,本实施例中的第三指令可以是密文节点创建逻辑运算结果对应的第一对象的对应代码,前述第一指令、第二指令、第三指令以及后续第五指令、第六指令和第七指令,同理为该指令指示某节点执行对应执行动作的任务代码。
密文节点对第三指令进行解析后,将所需的计算数据的第一对象基于任务代码的计算公式进行计算,获得逻辑运算结果对应的第一对象。
接下来本实施例中的密文节点还可以将逻辑运算结果发送至明文节点进行解密,以完成明文节点对计算结果的解析和存储。
步骤S15:密文节点基于第五指令将逻辑运算结果的第一对象发送至指定明文节点,基于第六指令在指定明文节点上创建计算输出数据的第一对象。
密文节点基于编程任务的计算公式进行逻辑运算后,会得出逻辑运算结果的第一对象,为了保证所有节点的数据一致性,也需要在明文节点创建该逻辑运算结果对应的第二对象。
接收到逻辑运算结果的第一对象的指定明文节点可以是向密文节点发起任务请求的节点,该指定明文节点需要对逻辑运算结果的第一对象进行解密,获得计算输出数据,并在该指定明文节点上创建计算输出数据的第一对象。
步骤S16:指定明文节点外的明文节点和密文节点基于第七指令创建计算输出数据的第一对象。
完成计算输出数据在其他节点的第一对象创建后,即完成了该编程任务的计算和数据传输步骤。
通过上述明密文混合计算方法,提供了一个允许多个节点共同维护一套代码的逻辑对象与数据对象机制,保证多个节点共同运行一套代码,解决代码需要分布式编写的问题。用户可以只维护一份代码,便于代码的编写和审计。
下面通过使用两方数据进行简单统计分析的编程任务对明密文混合计算方法的流程进行实例说明,编程任务需要通过数据df1和df2计算有多少行加和大于10000,df1在明文节点2,df2在明文节点1。
首先,明文节点2读取df1的第一对象,同时明文节点1和密文节点C创建df1的第二对象。
读取df1的第一对象的代码的示例可以为:df1=ppandas.read_csv(path1)。
明文节点1读取df2的第一对象,同时明文节点2和密文节点C创建df2的第二对象。
读取df2的第一对象的代码的示例可以为:df1=ppandas.read_csv(path2)。
为了保证计算的隐私性,必须将df1和df2的数据汇聚到密文节点C上,计算出join_df的第一对象,join_df是df1和df2求交得到的,其具体的代码示例可以为:join_df=dif.merge(df2,on=’id’,how=’inner’)。
密文节点C由join_df计算得到result的第一对象,同时明文节点1和明文节点2创建逻辑运算结果result的第二对象,该result的第一对象的计算方式的代码示例可以如下:result=(join_df[’assets_1’]+join_df[’assets_2’]>10000).sum()。
result数据从密文节点C发送给明文节点2,由明文节点对其进行解密,并在明文节点2上创建output的第一对象,同时在明文节点1和密文节点C创建output的第二对象。
为了配合上述明密文混合计算方法,本申请实施例还提供了一种明密文混合计算装置20,请参考图4,图4为本申请实施例提供的一种明密文混合计算装置的模块示意图。
明密文混合计算装置20包括:
读取模块21,用于通过第一明文节点基于第一指令读取第一计算数据的第一对象;
第二对象创建模块22,用于通过第二明文节点基于第一指令创建第一计算数据的第二对象,第二明文节点为第一节点以外的明文节点;
发送模块23,用于通过第一明文节点基于第二指令将第一对象发送至密文节点;
逻辑计算模块24,用于在计算所需的计算数据的第一对象接收完毕时,通过密文节点基于第三指令对所需的计算数据的第一对象进行逻辑运算,基于第四指令创建逻辑运算结果的第一对象。
可选地,虚拟创建模块22还用于:在密文节点创建至少两方计算数据对应的第二对象。
可选地,第二对象创建模块22还用于:通过密文节点基于第一指令创建第一计算数据对应的第二对象。
可选地,明密文混合计算装置20还包括:第一对象创建模块,用于确定编程计算任务需要调用第一计算数据;第一计算数据所属的第一明文节点创建第一计算数据对应的第一对象。
可选地,发送模块23具体用于:通过第一明文节点解析第二指令;通过第一明文节点在第二指令对应的执行动作为将第一对象发送至密文节点时,将第一对象发送至密文节点。
可选地,发送模块23还用于:通过第一明文节点解析第二指令为指示第一明文节点将第一对象发送至密文节点;在第一明文节点确定自身为与第二指令对应的明文节点且本地存储有第一对象后,通过第一明文节点确定自身与第二指令对应的执行动作为将第一对象发送至密文节点。
可选地,发送模块23还用于:通过第一明文节点通过计数器生成第二指令的全局唯一命名。
可选地,明密文混合计算装置20还包括:阻塞模块,用于通过第二明文节点和密文节点解析第二指令为指示第一明文节点将第一对象发送至密文节点;通过第二明文节点确定自身不是与第二指令对应的明文节点且本地未存储第一对象后,第一明文节点确定自身与第二指令对应的执行动作为不执行动作;通过密文确定自身不是与第二指令对应的明文节点且本地未存储第一对象后,密文节点确定自身与第二指令对应的执行动作为阻塞等待数据。
可选地,明密文混合计算装置20还包括:结果发送模块,用于通过密文节点将逻辑运算结果的第一对象发送至指定明文节点,在指定明文节点上创建计算输出数据的第一对象;通过指定明文节点外的明文节点和密文节点创建计算输出数据的第一对象。
本申请实施例还提供了一种电子设备,该电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行本实施例提供的明密文混合计算方法中任一项所述方法中的步骤。
应当理解是,该电子设备可以是个人电脑(Personal Computer,PC)、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)等具有逻辑计算功能的电子设备。
本申请实施例还提供了一种可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行明密文混合计算方法中的步骤。
综上所述,本申请实施例提供了一种明密文混合计算方法、装置、电子设备及存储介质,所述方法包括:第一明文节点基于第一指令读取第一计算数据的所述第一对象;第二明文节点基于所述第一指令创建所述第一计算数据的第二对象,所述第二明文节点为所述第一节点以外的明文节点;所述第一明文节点基于第二指令将所述第一对象发送至密文节点;在计算所需的计算数据的第一对象接收完毕时,所述密文节点基于第三指令获得所需的计算数据的第一对象的逻辑运算结果对应的第一对象。
在上述实现方式中,通过不同的节点对同一指令的解析后执行该节点与指令对应的执行动作,提供了一个统一的明密文计算环境,在保证数据安全的前提下,数据可以自动的在明文端和密文端进行数据的同步和传输,并且在使用这套明密文计算系统进行开发时,用户无需感知数据的具体位置是在明文节点还是密文节点,数据将自动被同步到所需要计算的节点上从而实现了允许多个节点共同维护一套代码的逻辑对象和数据对象机制,保证多个节点共同运行一套代码,解决代码需要分布式编写的问题,用户只需要开发维护一套代码,提高了开发维护效率。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的框图显示了根据本申请的多个实施例的设备的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图中的每个方框、以及框图的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。因此本实施例还提供了一种可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行区块数据存储方法中任一项所述方法中的步骤。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RanDom Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,在本文中,诸如术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (11)

1.一种明密文混合计算方法,其特征在于,所述方法包括:
第一明文节点基于第一指令读取第一计算数据的第一对象,所述第一对象为逻辑对象;
第二明文节点基于所述第一指令创建所述第一计算数据的第二对象,所述第二明文节点为所述第一明文节点以外的明文节点,所述第二对象为数据对象,所述数据对象为所述逻辑对象的虚拟对象,行为与所述逻辑对象保持一致;
所述第一明文节点基于第二指令将所述第一对象发送至密文节点;
在计算所需的计算数据的第一对象接收完毕时,所述密文节点基于第三指令对所需的计算数据的第一对象进行逻辑运算,基于第四指令创建逻辑运算结果的第一对象。
2.根据权利要求1所述的方法,其特征在于,在所述第一明文节点基于第一指令读取第一计算数据的所述第一对象之后,所述方法还包括:
所述密文节点基于所述第一指令创建所述第一计算数据对应的第二对象。
3.根据权利要求1所述的方法,其特征在于,在所述第一明文节点基于第一指令读取第一计算数据的所述第一对象之前,所述方法还包括:
确定编程计算任务需要调用所述第一计算数据;
所述第一计算数据所属的所述第一明文节点创建所述第一计算数据对应的第一对象。
4.根据权利要求1所述的方法,其特征在于,所述第一明文节点基于第二指令将所述第一对象发送至密文节点,包括:
所述第一明文节点解析所述第二指令;
所述第一明文节点在所述第二指令对应的执行动作为将所述第一对象发送至所述密文节点时,将所述第一对象发送至所述密文节点。
5.根据权利要求4所述的方法,其特征在于,所述第一明文节点解析所述第二指令,包括:
所述第一明文节点解析所述第二指令为指示所述第一明文节点将所述第一对象发送至密文节点;
在所述第一明文节点确定自身为与所述第二指令对应的明文节点且本地存储有所述第一对象后,所述第一明文节点确定自身与所述第二指令对应的执行动作为将所述第一对象发送至所述密文节点。
6.根据权利要求5所述的方法,其特征在于,在所述第一明文节点确定自身与所述第二指令对应的执行动作为将所述第一对象发送至所述密文节点之后,所述方法还包括:
所述第一明文节点通过计数器生成所述第二指令的全局唯一命名。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述第二明文节点和所述密文节点解析所述第二指令为指示所述第一明文节点将所述第一对象发送至密文节点;
所述第二明文节点确定自身不是与所述第二指令对应的明文节点且本地未存储所述第一对象后,所述第一明文节点确定自身与所述第二指令对应的执行动作为不执行动作;
所述密文确定自身不是与所述第二指令对应的明文节点且本地未存储所述第一对象后,所述密文节点确定自身与所述第二指令对应的执行动作为阻塞等待数据。
8.根据权利要求1-7中任一项所述的方法,其特征在于,在所述密文节点基于第三指令对所需的计算数据的第一对象进行逻辑运算,基于第四指令创建逻辑运算结果的第一对象之后,所述方法还包括:
所述密文节点基于第五指令将所述逻辑运算结果的第一对象发送至指定明文节点,基于第六指令在所述指定明文节点上创建计算输出数据的第一对象;
所述指定明文节点外的明文节点和所述密文节点基于第七指令创建所述计算输出数据的第一对象。
9.一种明密文混合计算装置,其特征在于,所述装置包括:
读取模块,用于通过第一明文节点基于第一指令读取第一计算数据的第一对象,所述第一对象为逻辑对象;
第二对象创建模块,用于通过第二明文节点基于所述第一指令创建所述第一计算数据的第二对象,所述第二明文节点为所述第一明文节点以外的明文节点,所述第二对象为数据对象,所述数据对象为所述逻辑对象的虚拟对象,行为与所述逻辑对象保持一致;
发送模块,用于通过所述第一明文节点基于第二指令将所述第一对象发送至密文节点;
逻辑计算模块,用于在计算所需的计算数据的第一对象接收完毕时,通过所述密文节点基于第三指令对所需的计算数据的第一对象进行逻辑运算,基于第四指令创建逻辑运算结果的第一对象。
10.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器运行所述程序指令时,执行权利要求1-8中任一项所述方法中的步骤。
11.一种存储介质,其特征在于,所述存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器运行时,执行权利要求1-8任一项所述方法中的步骤。
CN202111045377.5A 2021-09-07 2021-09-07 明密文混合计算方法、装置、电子设备及存储介质 Active CN113489752B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111045377.5A CN113489752B (zh) 2021-09-07 2021-09-07 明密文混合计算方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111045377.5A CN113489752B (zh) 2021-09-07 2021-09-07 明密文混合计算方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113489752A CN113489752A (zh) 2021-10-08
CN113489752B true CN113489752B (zh) 2021-11-19

Family

ID=77947257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111045377.5A Active CN113489752B (zh) 2021-09-07 2021-09-07 明密文混合计算方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113489752B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111953487A (zh) * 2020-08-14 2020-11-17 苏州浪潮智能科技有限公司 一种密钥管理系统
CN111988304A (zh) * 2019-12-18 2020-11-24 贾海芳 基于物联网的分布式数据节点异常行为检测方法及装置
CN112182644A (zh) * 2020-09-11 2021-01-05 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和电子设备
TWI733125B (zh) * 2018-08-14 2021-07-11 開曼群島商創新先進技術有限公司 多方安全計算方法及裝置、電子設備
CN113206830A (zh) * 2021-03-30 2021-08-03 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和电子设备
CN113343285A (zh) * 2021-08-04 2021-09-03 华控清交信息科技(北京)有限公司 一种执行密文计算指令的方法、装置和密文计算系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9892283B2 (en) * 2010-05-25 2018-02-13 Via Technologies, Inc. Decryption of encrypted instructions using keys selected on basis of instruction fetch address
CN112580064B (zh) * 2019-09-27 2023-01-13 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI733125B (zh) * 2018-08-14 2021-07-11 開曼群島商創新先進技術有限公司 多方安全計算方法及裝置、電子設備
CN111988304A (zh) * 2019-12-18 2020-11-24 贾海芳 基于物联网的分布式数据节点异常行为检测方法及装置
CN111953487A (zh) * 2020-08-14 2020-11-17 苏州浪潮智能科技有限公司 一种密钥管理系统
CN112182644A (zh) * 2020-09-11 2021-01-05 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和电子设备
CN113206830A (zh) * 2021-03-30 2021-08-03 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和电子设备
CN113343285A (zh) * 2021-08-04 2021-09-03 华控清交信息科技(北京)有限公司 一种执行密文计算指令的方法、装置和密文计算系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
支持同态算术运算的数据加密方案算法研究;杨攀等;《通信学报》;20150125(第01期);全文 *

Also Published As

Publication number Publication date
CN113489752A (zh) 2021-10-08

Similar Documents

Publication Publication Date Title
KR102209276B1 (ko) 메시징 프로토콜 통신 관리
CN110716748B (zh) 业务处理方法、装置、计算机可读介质及电子设备
CN104331644A (zh) 一种智能终端文件的透明加解密方法
CN111258565A (zh) 小程序的生成方法、系统、服务器及存储介质
US20150143334A1 (en) Message exchange pattern rendezvous abstraction
EP3185507B1 (en) Access control method and apparatus
CN113722754B (zh) 隐私可执行文件的生成方法、装置和服务器
CN111753324A (zh) 私有数据的处理方法、计算方法及所适用的设备
CN111813544B (zh) 计算任务的处理方法、装置、调度及管理系统和介质
Montesi Kickstarting choreographic programming
CN115242644A (zh) 一种微服务开发治理系统
CN110336665B (zh) 一种大数据消息加密方法、装置
CN113220479B (zh) 一种基于隔离网络的工作流调度方法、装置及电子设备
CN113489752B (zh) 明密文混合计算方法、装置、电子设备及存储介质
Jiang et al. Modeling and analyzing mixed communications in service-oriented trustworthy software
JPH07244644A (ja) エージェント管理システム
US8280950B2 (en) Automatic client-server code generator
WO2020211075A1 (zh) 去中心化多方安全数据处理方法、装置及存储介质
CN112416980B (zh) 数据业务处理方法、装置及设备
CN114691034A (zh) 一种数据存储方法及数据处理设备
CN111026800A (zh) 数据导出方法、装置、电子设备及存储介质
Anjos et al. Fast-Sec: an approach to secure Big Data processing in the cloud
Seehusen et al. Maintaining information flow security under refinement and transformation
Hoffmann Verifying Correctness
Monniaux Analysis of cryptographic protocols using logics of belief: an overview

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