CN116614275A - 一种隐私计算一体机委托加速的装置及方法 - Google Patents

一种隐私计算一体机委托加速的装置及方法 Download PDF

Info

Publication number
CN116614275A
CN116614275A CN202310591256.3A CN202310591256A CN116614275A CN 116614275 A CN116614275 A CN 116614275A CN 202310591256 A CN202310591256 A CN 202310591256A CN 116614275 A CN116614275 A CN 116614275A
Authority
CN
China
Prior art keywords
node
data
performance
identity
key
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
CN202310591256.3A
Other languages
English (en)
Other versions
CN116614275B (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.)
Jingxin Data Technology Co ltd
Original Assignee
Jingxin Data Technology 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 Jingxin Data Technology Co ltd filed Critical Jingxin Data Technology Co ltd
Priority to CN202310591256.3A priority Critical patent/CN116614275B/zh
Publication of CN116614275A publication Critical patent/CN116614275A/zh
Application granted granted Critical
Publication of CN116614275B publication Critical patent/CN116614275B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • H04L63/045Network 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 wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/502Proximity
    • 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
    • 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/72Signcrypting, i.e. digital signing and encrypting simultaneously
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开一种隐私计算一体机委托加速的装置及方法,属于隐私计算技术领域,装置包括高性能节点、Intel和多个轻量节点,轻量节点持有自身的非对称公私钥,用于对编译后的隐私计算算法进行Intel SGX签名,高性能节点持有自身的非对称公私钥,用于受轻量节点委托进行协助加速隐私计算,还用于对编译后的身份认证器进行Intel SGX签名,同时还用于在身份认证器中获取非对称公钥,轻量节点与高性能节点之间的隐私敏感数据采用RDMA进行通信。本发明装置及方法中的高性能节点是使用其本地的Intel SGX进行加载执行轻量节点的privacy_algorithm_enclave_sign_so程序,使得程序中的算法、数据等能得到有效的保证,而且由于Intel SGX的安全隔离性,任何第三方包括高性能节点本身都无法窃取数据。

Description

一种隐私计算一体机委托加速的装置及方法
技术领域
本发明属于隐私计算技术领域,具体涉及一种一种隐私计算一体机委托加速的装置及方法
背景技术
目前在各种硬件资源不足的服务器或一些小型边缘设备比如PC机器、车载设备平板设备甚至是手机等,普遍存在其不足以提供足够的算力以执行复杂、数据量大的计算问题。同时由于涉及数据隐私,这类服务器和边缘设备往往不希望直接泄露其隐私数据给其他高性能机器协助计算,若直接泄露会造成严重的数据泄露问题,带来严重的安全风险。
本发明提供一种隐私计算一体机委托加速的装置及方法,在原有低性能服务器或边缘设备不足以支撑复杂、数据量大的计算问题之上,提供一个高性能机器进行协助计算。
发明内容
针对现有技术的不足,本发明的目的在于提供一种隐私计算一体机委托加速的装置及方法,高性能节点是使用其本地的Intel SGX进行加载执行轻量节点的privacy_algorithm_enclave_sign_so程序,使得程序中的算法、数据等能得到有效的保证,而且由于Intel SGX的安全隔离性,任何第三方包括高性能节点本身都无法窃取数据,保证了最终真正的隐私敏感数据只由轻量节点持有,而高性能节点则负责提供良好的算力进行协助加速,同时通过引入Intel的白名单申请和白名单检测,能够有效的验证轻量节点和高性能节点的身份,使得各enclave程序都能正确的运行在正确的节点中。
本发明的目的可以通过以下技术方案实现:一种隐私计算一体机委托加速的装置,装置包括高性能节点、Intel和多个轻量节点,所述轻量节点持有自身的非对称公私钥,用于对编译后的隐私计算算法进行Intel SGX签名。
所述高性能节点持有自身的非对称公私钥,用于受轻量节点委托进行协助加速隐私计算,还用于对编译后的身份认证器进行Intel SGX签名,同时还用于在身份认证器中获取非对称公钥。
轻量节点与高性能节点之间的隐私敏感数据采用RDMA进行通信。
核心数据由所述轻量节点进行计算,非核心数据由高性能节点进行支撑计算。
Intel是一个拥有强有力背书服务的第三方证明体,所述装置使用intel sgx构建的可信执行环境进行安全的隐私计算。
进一步的,所述轻量节点为支持Intel SGX的低性能的节点。
所述隐私计算算法由轻量节点根据自身需要的业务逻辑和数据逻辑进行算法构建,算法构建的同时生成一个对称密钥,所述对称密钥用于对隐私数据和中间因子进行加密,所述对称密钥经由高性能节点在身份认证器中获取的非对称公钥进行加密保护。
加密后的隐私数据和中间因子放置在内存中的对应物理地址,最终在进行enclave编译签名时通过编写资源文件和EDL文件对所述隐私计算算法提供资源分配和enclave调用。
进一步的,所述RDMA是一种远程内存直接访问技术,轻量节点与高性能节点直接内存共享。
轻量节点本地无需enclave的支持,轻量节点对隐私计算算法进行encl ave的编译签名,最终将编译签名后的enclave交给高性能节点来执行非核心数据计算。
进一步的,所述高性能节点为提供高性能运算且支持Intel SGX的节点,不持有任何自身的隐私敏感数据,高性能节点包括高内存、高CPU、高硬盘、FPGA和GPU。
进一步的,所述身份认证器包含有高性能节点的非对称公钥,对encla ve进行签名之后,公开该身份认证器给各轻量节点使用,获取高性能节点的非对称公钥。
所述高性能节点启动轻量节点的隐私计算算法enclave程序,高性能节点使用intel sgx的能力去启动enclave,非intel sgx环境无法启动enclave,由处理器内部内部对其进行解密;最终高性能节点与轻量节点之间通过RD MA的通信进行隐私计算,高性能节点为轻量节点加速隐私计算。
进一步的,所述轻量节点和高性能节点之间会交互各自的enclave程序,轻量节点和高性能节点在发送自身的enclave程序之前会向Intel官方进行白名单的申请,如果Intel官方通过了轻量节点和高性能节点提交的申请,则会将轻量节点和高性能节点的enclave相关信息加入到白名单中,此时轻量节点和高性能节点在加载对方的enclave程序时会进行验证白名单,验证不通过则视为该enclave程序不可信,不予执行。
一种隐私计算一体机委托加速的方法,所述方法应用于上述的装置,所述方法包括如下步骤:
S1:高性能节点签名身份认证器enclave、提交白名单申请、公开encl ave。
S2:轻量节点包装隐私计算算法同时将行签名enclave发送至高性能机器并提交白名单申请。
S3:高性能机器启动轻量节点已签名的enclave并分配资源。
S4:轻量节点对隐私数据进行规则性划分数据集。
S5:轻量节点与高性能节点建立RDMA通信。
S6:轻量节点与高性能节点启动隐私计算。
S7:轻量节点清空内存、高性能节点释放硬件资源。
进一步的,所述S1具体包括如下步骤:
高性能机器本地使用openssl工具生成非对称公私钥记为pub_high_key和pri_high_key,高性能节点构建身份认证器的App程序和enclave程序,记为auth_identity_app和auth_identity_enclave,App程序和enclave程序之间的相互调用时使用EDL来定义,App程序用于启动enclave程序,enclav e程序则是核心敏感功能,auth_identity_enclave程序只包含有一个pub_hig h_key,由高性能节点将pub_high_key写入至auth_identity_enclave中。
定义一个身份认证器的EDL文件,记为auth_identity_edl,auth_identit y_edl中定义一个auth_identity_enclave的函数入口,auth_identity_enclave提供一个获取pub_high_key的函数,名为get_pub_high_key(),get_pub_hi gh_key()函数也定义在auth_identity_edl中。
高性能节点使用auth_identity_edl和auth_identity_app进行编译制作得到一个库文件,记为auth_identity_app_so。
高性能节点使用sgx_sign工具对auth_identity_edl、auth_identity_encla ve和pri_high_key进行编译签名得到签名库,记为auth_identity_enclave_si gn_so,签名过程中会使用pri_high_key对auth_identity_enclave的代码和元数据进行哈希运算得到一个测量值记为measurement_before存放至auth_ide ntity_enclave_sign_so中的SIGStruct中,随后高性能节点向intel提交白名单申请,提交SIGStruct、measurement_before和高性能节点的其他相关资料。
Intel审核通过后,自动将measurement_before列入到白名单中,随后高性能节点对各轻量节点公开auth_identity_app_so和auth_identity_enclave_sign_so。
所述S2具体包括如下步骤:
轻量节点获取高性能节点公开的开auth_identity_app_so和auth_identit y_enclave_sign_so,同时由轻量节点根据自身业务和数据进行分析需要执行哪种隐私计算算法,并进行构建算法,构建过程中会产生如下因素:
生成其本身的对称密钥,记为low_symmetry_key,通过auth_identity_app_so安全的EDL调用并加载auth_identity_enclave_sign_so,加载过程中进行如下操作:
一、验证auth_identity_enclave_sign_so是否有被篡改过,加载过程中通过调用intel sgx的各项指令重新对auth_identity_enclave_sign_so的auth_id entity_enclave生成一个新的测量值,记为measurement_after,对measurem ent_after和auth_identity_enclave中的SIGStruct和measurement_before进行比较,如果比较通过,则认为该auth_identity_enclave没有被篡改。
二、白名单检查,通过将auth_identity_enclave中的SIGStruct和meas urement_before与Intel进行安全通信并检查,若measurement_before已经被intel列入到白名单中,则auth_identity_enclave被视为可信,并确定该auth_identity_enclave确实来自于正确的高性能节点。
经过验证和检查之后,auth_identity_app通过安全的EDL调用get_pub_high_key()获取pub_high_key,随后使用pub_high_key对low_symmetry_k ey进行加密得到low_symmetry_key_encrypt。
在内存中选定两片连续的内存区域,获取两个内存区域的物理地址,一片内存区域作为非核心数据所在内存地址,记为not_core_data_address,另外一片则为中间因子所在内存地址,记为middle_data_address,然后使用pub_high_key对not_core_data_address和middle_data_address进行加密得到密文状态下的两片内存地址:not_core_data_address_encrypt、middle_data_a ddress_encrypt。
定义该隐私计算算法需要使用的硬件资源,并以xml格式放置在一个配置文件中记为:Enclave.config.xml,定义该隐私计算算法的App和Encl ave之间的EDL文件记为privacy_algorithm_edl。
定义对于Enclave在EDL文件中的入口函数如下:启动算法服务函数start_service()。
定义对于App在EDL文件中的入口函数如下:获取高性能节点本地非对称私钥get_pri_high_key()。
最终轻量节点本地采用与S1步骤一致的编译和签名步骤,将隐私计算算法、low_symmetry_key_encrypt、not_core_data_address_encrypt、middle_data_address_encrypt、Enclave.config.xml和privacy_algorithm_edl进行编译或签名得到隐私计算算法App和隐私计算算法enclave,记为privacy_algor ithm_app_so和privacy_algorithm_enclave_sign_so。
最后进行与S1步骤一致的白名单申请,由Intel将该轻量节点列入到白名单中,轻量节点将privacy_algorithm_app_so和privacy_algorithm_enclave_sign_so发送至高性能节点。
进一步的,所述S3具体包括如下步骤:
高性能机器接收到来自轻量节点的privacy_algorithm_app_so和privacy_algorithm_enclave_sign_so,使用privacy_algorithm_app_so通过EDL安全调用start_service()用于启动加载privacy_algorithm_enclave_sign_so,同时根据Enclave.config.xml为该privacy_algorithm_enclave_sign_so进行资源的分配,加载过程中同样需要验证该privacy_algorithm_enclave是否有被篡改和是否是可信的,验证方式与S2步骤中验证auth_identity_enclave的方式一致。
验证完成后,启动privacy_algorithm_enclave_sign_so中的算法服务,此时需要将privacy_algorithm_enclave_sign_so中的low_symmetry_key_encryp t、not_core_data_address_encrypt、middle_data_address_encrypt进行解密,p rivacy_algorithm_enclave_sign_so通过EDL调用privacy_algorithm_app_so的get_pri_high_key()函数获取高性能节点本地的pri_high_key,返回至priv acy_algorithm_enclave_sign_so中,使用pri_high_key分别解密low_symmet ry_key_encrypt、not_core_data_address_encrypt、middle_data_address_encryp t最终得到low_symmetry_key、not_core_data_address、middle_data_address。
如果解密不成功,则表示当前该高性能计算节点并非正确的高性能计算节点,应当给予停止执行,随后算法服务定时的去监听高性能节点本地内存的两片物理地址:notcore data address、middle data address。
所述S4具体包括如下步骤:
轻量节点根据业务需要自行将本地的隐私数据进行划分,按照横向切分和纵向切分的方式去切分数据,最终切分成两部分数据:核心数据,记为core_data;非核心数据,记为not_core_data。
进一步的,所述S5具体包括如下步骤:
轻量节点与高性能节点建立RDMA通信,轻量节点将物理地址为not_core_data_address、middle_data_address的两片内存设置为只读模式。
所述S6具体包括如下步骤:
轻量节点本地在非Intel SGX环境下启动S2步骤中的隐私计算算法,加载core_data到内存中,随后使用low_symmetry_key对not_core_data进行加密,记为not_core_data_encrypt,形成密文后加载至not_core_data_addr ess内存物理地址,此时,随后使用low_symmetry_key对S3监听到的轻量节点共享的not_core_data_encrypt数据进行解密得到not_core_data,轻量节点本地拥有了core_data数据,高性能节点privacy_algorithm_enclave_sign_s o中拥有了not_core_data数据,,即可开始执行隐私计算算法。
同时高性能节点借助高硬件资源和FPGA、GPU加速卡进行对隐私计算算法提速,高性能节点在算法执行过程中会产生中间因子,中间因子由l ow_symmetry_key进行加密得到middle_data_encrypt,随后将其写入至mid dle_data_address内存物理地址中,轻量节点的隐私计算算法服务监听到mi ddle_data_address有数据后即可使用low_symmetry_key对其进行解密得到middle_data,使用middle_data来优化轻量节点本地隐私计算算法逻辑。
所述S7具体包括如下步骤:
一直持续S6步骤直至隐私计算算法执行完毕后,轻量节点即可得到算法结果,此时轻量节点清空not_core_data_address、middle_data_address两片内存,高性能节点销毁privacy_algorithm_enclave_sign_so并释放硬件资源。
本发明的有益效果:
1、本发明装置及方法中高性能节点是使用了其本地的Intel SGX进行加载执行轻量节点的privacy_algorithm_enclave_sign_so程序,使得程序中的算法、数据等能得到有效的保证,而且由于Intel SGX的安全隔离性,任何第三方包括高性能节点本身都无法窃取数据,保证了最终真正的隐私敏感数据只由轻量节点持有,而高性能节点则负责提供良好的算力进行协助加速,同时通过引入Intel的白名单申请和白名单检测,能够有效的验证轻量节点和高性能节点的身份,使得各enclave程序都能正确的运行在正确的节点中;
2、本发明装置及方法由低性能服务器或边缘设备向高性能机器进行委托加速,高性能机器使用可信执行环境向低性能服务器或边缘设备进行认证保证所有隐私敏感数据均在隔离安全不受外界影响,同时为了能够进一步快速进行低性能机器与高性能机器之间的数据传输共享,引入RDMA机制,加快数据之间的传输,更好的释放了CPU等资源,跳过各种TCP/IP传输协议。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一种隐私计算一体机委托加速的装置整体架构图;
图2是本发明一种隐私计算一体机委托加速的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提供一种隐私计算一体机委托加速的装置,如图1所示,装置包括高性能节点、Intel和多个轻量节点,多个轻量节点分别为轻量节点A、轻量节点B、轻量节点C...;
轻量节点为支持Intel SGX(一种英特尔提供的硬件保护技术)的低性能的节点,其并不能很好的提供良好的计算算力来支撑在隐私数据量大、计算复杂度高的情况下进行计算。因此在本发明中针对轻量节点只需要做核心数据的计算,其他的大量非核心数据则由高性能节点进行支撑计算。其中轻量节点都会持有自身的非对称公私钥,用于对编译后的隐私计算算法进行Intel SGX签名。
隐私计算算法由轻量节点根据自身需要的业务逻辑、数据逻辑等进行算法构建,算法构建的同时生成一个对称密钥,该对称密钥用于对隐私数据和中间因子进行加密,该对称密钥经由高性能节点在身份认证器中获取的非对称公钥进行加密保护。
加密后的隐私数据和中间因子等会放置在内存中的对应物理地址,最终在进行enclave(Intel SGX在内存中创建了一个隔离的环境,这个环境名为enclave(飞地),在这里数据和程序可以安全地使用)编译签名时通过编写资源文件、EDL(Enclave定义语言文件,声明式的定义App接口和enclave接口)文件等对该隐私计算算法提供资源分配和enclave调用;轻量节点与高性能节点之间的隐私敏感数据采用RDMA进行通信,RDMA是一种远程内存直接访问技术,意味者轻量节点可以与高性能节点直接内存共享,无需走网络传输和CPU的参与,提升隐私敏感数据交互性能。轻量节点为了更好效率更高的执行隐私计算算法,轻量节点本地无需enclave的支持,因为轻量节点的核心数据仍然在其本地计算,而其他非核心数据则在高性能机器中进行计算,虽然属于非核心数据,但仍然需要加密保护防止高性能机器作恶窃取,因此轻量节点对隐私计算算法进行enclave的编译签名,最终将编译签名后的enclave交给高性能节点来执行非核心数据计算。
高性能节点为提供高性能运算且支持Intel SGX的节点,在本发明中不持有任何自身的隐私敏感数据,它是用来受轻量节点委托进行协助加速隐私计算,因此高性能节点中会包含有各种高性能硬件资源,以便于给各轻量节点进行加速计算,包括高内存、高CPU、高硬盘、FPGA、GPU等。
高性能节点与轻量节点一样持有自身的非对称公私钥,用于对编译后的身份认证器进行Intel SGX签名,同时还用于在身份认证器中获取非对称公钥。
身份认证器为一个enclave程序,里面包含有高性能节点的非对称公钥,对enclave进行签名之后,公开该身份认证器给各轻量节点使用,获取高性能节点的非对称公钥;高性能节点启动轻量节点的隐私计算算法enclave程序,由于隐私计算算法是经由对应的轻量节点进行签名后的enclave,因此高性能节点需要使用Intel SGX的能力去启动该enclave,非Intel SGX环境无法启动该enclave,由于enclave和可信执行环境的安全隔离性,即enc lave是经过加密的,只能由处理器内部即Intel SGX内部对其进行解密,即使高性能节点本地执行该enclave,也无法窃取里面的隐私敏感数据和算法;最终高性能节点与轻量节点之间通过RDMA的通信进行隐私计算,同时由于高性能节点拥有良好的硬件资源,因此可以为轻量节点加速隐私计算。
Intel是一个拥有强有力背书服务的第三方证明体,在本发明中主要使用到了intel sgx构建的可信执行环境进行安全的隐私计算,且轻量节点和高性能节点之间会交互各自的enclave程序,因此对enclave程序的验证是很有必要的,因此轻量节点和高性能节点在发送自身的enclave程序之前会向Intel官方进行白名单的申请,如果Intel官方通过了轻量节点和高性能节点提交的申请,则会将轻量节点和高性能节点的enclave相关信息加入到白名单中,此时轻量节点和高性能节点在加载对方的enclave程序时会进行验证白名单,验证不通过则视为该enclave程序不可信,不予执行。
一种隐私计算一体机委托加速的方法,该方法应用于上述装置,如图2所示,所述方法包括如下步骤:
S1:高性能节点签名身份认证器enclave、提交白名单申请、公开encl ave;
高性能机器本地使用openssl(一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份)工具生成非对称公私钥记为pub_high_key和pri_high_key。高性能节点构建身份认证器的App程序和enclave程序,记为auth_identity_app和auth_identity_enclave,App程序是非安全环境下的程序,而enclave程序则是在安全的由intel SGX提供的可信执行环境下运行的程序,App程序和enclav e程序之间的相互调用则使用EDL来定义,App程序只用于启动enclave程序,并无其他核心功能,enclave程序则具有核心敏感功能。auth_identity_e nclave程序只包含有一个pub_high_key,由高性能节点将pub_high_key写入至auth_identity_enclave中。
定义一个身份认证器的EDL文件,记为auth_identity_edl,auth_identit y_edl中定义一个auth_identity_enclave的函数入口,在本发明中身份认证器的作用只是用于给轻量节点安全的获取高性能节点的pub_high_key,因此a uth_identity_enclave提供一个获取pub_high_key的函数,名为get_pub_high_key(),该函数也定义在auth_identity_edl中。
高性能节点使用auth_identity_edl和auth_identity_app进行编译制作得到一个库文件,记为auth_identity_app_so;高性能节点使用sgx_sign工具对auth_identity_edl、auth_identity_enclave和pri_high_key进行编译签名得到签名库,记为auth_identity_enclave_sign_so,签名过程中会使用pri_high_key对auth_identity_enclave的代码和元数据等进行哈希运算得到一个测量值记为measurement_before存放至auth_identity_enclave_sign_so中的SIGSt ruct中,随后高性能节点向intel提交白名单申请,提交该SIGStruct、meas urement_before和高性能节点其他相关资料(单位、代码、机器编号等)。I ntel审核通过后,会自动将measurement_before列入到白名单中,随后高性能节点对各轻量节点公开auth_identity_app_so和auth_identity_enclave_sign_so。
S2:轻量节点包装隐私计算算法同时将签名enclave发送至高性能机器并提交白名单申请;
轻量节点获取高性能节点公开的开auth_identity_app_so和auth_identit y_enclave_sign_so,同时由轻量节点根据自身业务和数据进行分析需要执行哪种隐私计算算法,并进行构建算法,构建过程中会产生如下因素:
生成其本身的对称密钥,记为low_symmetry_key,通过auth_identity_app_so安全的EDL调用并加载auth_identity_enclave_sign_so,加载过程中进行如下操作:
一、验证auth_identity_enclave_sign_so是否有被篡改过,加载过程中通过调用intel sgx的各项指令如:EINIT等重新对auth_identity_enclave_sign_so的auth_identity_enclave生成一个新的测量值,记为measurement_after,measurement_after和auth_identity_enclave中的SIGStruct和measurement_b efore进行比较,如果比较通过,则认为该auth_identity_enclave没有被篡改;
二、白名单检查,通过将auth_identity_enclave中的SIGStruct和meas urement_before与Intel进行安全通信并检查,若measurement_before已经被intel列入到白名单中,则auth_identity_enclave被视为可信,并确定该auth_identity_enclave确实来自于正确的高性能节点。
经过验证和检查之后,auth_identity_app通过安全的EDL调用get_pub_high_key()获取pub_high_key,随后使用pub_high_key对low_symmetry_k ey进行加密得到low_symmetry_key_encrypt;
在内存中选定两片连续的内存区域,获取这两个内存区域的物理地址,一片内存区域作为非核心数据所在内存地址,记为not_core_data_address,另外一片则为中间因子所在内存地址,记为middle_data_address,然后使用pub_high_key对not_core_data_address和middle_data_address进行加密得到密文状态下的两片内存地址:not_core_data_address_encrypt、middle_data_a ddress_encrypt;
定义该隐私计算算法需要使用的硬件资源,并以xml格式放置在一个配置文件中记为:Enclave.config.xml,定义该隐私计算算法的App和Encl ave之间的EDL文件记为privacy_algorithm_edl。
定义对于Enclave在EDL文件中的入口函数如下:启动算法服务函数start_service()。
定义对于App在EDL文件中的入口函数如下:获取高性能节点本地非对称私钥get_pri_high_key()。
最终轻量节点本地采用与S1步骤一致的编译和签名步骤,将隐私计算算法、low_symmetry_key_encrypt、not_core_data_address_encrypt、middle_data_address_encrypt、Enclave.config.xml和privacy_algorithm_edl进行编译或签名得到隐私计算算法App和隐私计算算法enclave,记为privacy_algor ithm_app_so和privacy_algorithm_enclave_sign_so,最后进行与S1步骤一致的白名单申请,由Intel将该轻量节点列入到白名单中,轻量节点将privacy_algorithm_app_so和privacy_algorithm_enclave_sign_so发送至高性能节点。
S3:高性能机器启动轻量节点已签名的enclave并分配资源;
高性能机器接收到来自轻量节点的privacy_algorithm_app_so和privacy_algorithm_enclave_sign_so,使用privacy_algorithm_app_so通过EDL安全调用start_service()用于启动加载privacy_algorithm_enclave_sign_so,同时根据Enclave.config.xml为该privacy_algorithm_enclave_sign_so进行资源的分配,加载过程中同样需要验证该privacy_algorithm_enclave是否有被篡改和是否是可信的,验证方式与S2步骤中的验证auth_identity_enclave的方式一致。
验证完成后,启动privacy_algorithm_enclave_sign_so中的算法服务,此时需要将privacy_algorithm_enclave_sign_so中的low_symmetry_key_encr ypt、not_core_data_address_encrypt、middle_data_address_encrypt进行解密,privacy_algorithm_enclave_sign_so通过EDL调用privacy_algorithm_app_so的get_pri_high_key()函数获取高性能节点本地的pri_high_key,返回至priv acy_algorithm_enclave_sign_so中,使用pri_high_key分别解密low_symmet ry_key_encrypt、not_core_data_address_encrypt、middle_data_address_encryp t最终得到low_symmetry_key、not_core_data_address、middle_data_address,如果解密不成功,则表示当前该高性能计算节点并非正确的高性能计算节点,应当给予停止执行。随后算法服务定时的去监听高性能节点本地内存的这两片物理地址:not_core_data_address、middle_data_address。
S4:轻量节点对隐私数据进行规则性划分数据集;
轻量节点根据业务需要自行将本地的隐私数据进行划分,可按照横向切分和纵向切分的方式去切分数据,类似于联邦学习中的横向联邦学习和纵向联邦学习,最终切分成两部分数据:核心数据,记为core_data;非核心数据,记为not_core_data。
S5:轻量节点与高性能节点建立RDMA通信;
轻量节点与高性能节点进行建立RDMA通信,轻量节点将物理地址为not_core_data_address、middle_data_address的两片内存设置为只读模式,以防止双方在进行隐私计算过程中,产生的corrupted data(损坏的数据)问题。
S6:轻量节点与高性能节点启动隐私计算;
轻量节点本地在非Intel SGX环境下启动S2步骤中的隐私计算算法,加载core_data到内存中,该内存不经过RDMA进行共享。随后使用low_s ymmetry_key对not_core_data进行加密,记为not_core_data_encrypt,形成密文后加载至not_core_data_address内存物理地址,此时因为S3高性能节点已经启动了privacy_algorithm_enclave_sign_so并监听了内存中的not_cor e_data_address地址,监听到轻量节点共享的not_core_data_encrypt数据,随后使用low_symmetry_key对其进行解密得到not_core_data。
轻量节点本地拥有了core_data数据,高性能节点privacy_algorithm_en clave_sign_so中拥有了not_core_data数据,即可开始执行隐私计算算法,同时高性能节点借助高硬件资源和FPGA、GPU等加速卡进行对隐私计算算法提速。其中高性能节点在算法执行过程中会产生中间因子,中间因子由low_symmetry_key进行加密得到middle_data_encrypt,随后将其写入至middle_data_address内存物理地址中,轻量节点的隐私计算算法服务监听到middle_data_address有数据后即可使用low_symmetry_key对其进行解密得到middle_data,使用middle_data来优化轻量节点本地隐私计算算法逻辑。
S7:轻量节点清空内存、高性能节点释放硬件资源;
一直持续S6步骤直至隐私计算算法执行完毕后,轻量节点即可得到算法结果,此时轻量节点清空内存包括not_core_data_address、middle_data_a ddress这两片内存,高性能节点销毁privacy_algorithm_enclave_sign_so并释放硬件资源。
整个过程中,高性能节点是使用了其本地的Intel SGX进行加载执行轻量节点的privacy_algorithm_enclave_sign_so程序,因此程序中的算法、数据等能得到有效的保证,而且得益于Intel SGX的安全隔离性,任何第三方包括高性能节点本身都无法窃取数据,很好的保证了最终真正的隐私敏感数据只由轻量节点持有,而高性能节点则负责提供良好的算力进行协助加速,同时引入Intel的白名单申请和白名单检测有效的验证轻量节点和高性能节点的身份,已至于各enclave程序都能正确的运行在正确的节点中。至此即可提供一种隐私计算一体机委托加速的方法及装置。
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。

Claims (10)

1.一种隐私计算一体机委托加速的装置,装置包括高性能节点、Intel和多个轻量节点,其特征在于,所述轻量节点持有自身的非对称公私钥,用于对编译后的隐私计算算法进行Intel SGX签名;
所述高性能节点持有自身的非对称公私钥,用于受轻量节点委托进行协助加速隐私计算,还用于对编译后的身份认证器进行Intel SGX签名,同时还用于在身份认证器中获取非对称公钥;
轻量节点与高性能节点之间的隐私敏感数据采用RDMA进行通信;
核心数据由所述轻量节点进行计算,非核心数据由高性能节点进行支撑计算;
Intel是一个拥有强有力背书服务的第三方证明体,所述装置使用intel sgx构建的可信执行环境进行安全的隐私计算。
2.根据权利要求1所述的一种隐私计算一体机委托加速的装置,其特征在于,所述轻量节点为支持Intel SGX的低性能的节点;
所述隐私计算算法由轻量节点根据自身需要的业务逻辑和数据逻辑进行算法构建,算法构建的同时生成一个对称密钥,所述对称密钥用于对隐私数据和中间因子进行加密,所述对称密钥经由高性能节点在身份认证器中获取的非对称公钥进行加密保护;
加密后的隐私数据和中间因子放置在内存中的对应物理地址,最终在进行enclave编译签名时通过编写资源文件和EDL文件对所述隐私计算算法提供资源分配和enclave调用。
3.根据权利要求2所述的一种隐私计算一体机委托加速的装置,其特征在于,所述RDMA是一种远程内存直接访问技术,轻量节点与高性能节点直接内存共享;
轻量节点本地无需enclave的支持,轻量节点对隐私计算算法进行encl ave的编译签名,最终将编译签名后的enclave交给高性能节点来执行非核心数据计算。
4.根据权利要求3所述的一种隐私计算一体机委托加速的装置,其特征在于,所述高性能节点为提供高性能运算且支持Intel SGX的节点,不持有任何自身的隐私敏感数据,高性能节点包括高内存、高CPU、高硬盘、FPGA和GPU。
5.根据权利要求4所述的一种隐私计算一体机委托加速的装置,其特征在于,所述身份认证器包含有高性能节点的非对称公钥,对enclave进行签名之后,公开该身份认证器给各轻量节点使用,获取高性能节点的非对称公钥;
所述高性能节点启动轻量节点的隐私计算算法enclave程序,高性能节点使用intelsgx的能力去启动enclave,非intel sgx环境无法启动enclave,由处理器内部内部对其进行解密;最终高性能节点与轻量节点之间通过RD MA的通信进行隐私计算,高性能节点为轻量节点加速隐私计算。
6.根据权利要求5所述的一种隐私计算一体机委托加速的装置,其特征在于,所述轻量节点和高性能节点之间会交互各自的enclave程序,轻量节点和高性能节点在发送自身的enclave程序之前会向Intel官方进行白名单的申请,如果Intel官方通过了轻量节点和高性能节点提交的申请,则会将轻量节点和高性能节点的enclave相关信息加入到白名单中,此时轻量节点和高性能节点在加载对方的enclave程序时会进行验证白名单,验证不通过则视为该enclave程序不可信,不予执行。
7.一种隐私计算一体机委托加速的方法,所述方法应用于权利要求6所述的装置,其特征在于,所述方法包括如下步骤:
S1:高性能节点签名身份认证器enclave、提交白名单申请、公开encl ave;
S2:轻量节点包装隐私计算算法同时将签名enclave发送至高性能机器并提交白名单申请;
S3:高性能机器启动轻量节点已签名的enclave并分配资源;
S4:轻量节点对隐私数据进行规则性划分数据集;
S5:轻量节点与高性能节点建立RDMA通信;
S6:轻量节点与高性能节点启动隐私计算;
S7:轻量节点清空内存、高性能节点释放硬件资源。
8.根据权利要求7所述的一种隐私计算一体机委托加速的方法,其特征在于,所述S1具体包括如下步骤:
高性能机器本地使用openssl工具生成非对称公私钥记为pub_high_key和pri_high_key,高性能节点构建身份认证器的App程序和enclave程序,记为auth_identity_app和auth_identity_enclave,App程序和enclave程序之间的相互调用时使用EDL来定义,App程序用于启动enclave程序,enclav e程序则是核心敏感功能,auth_identity_enclave程序只包含有一个pub_hig h_key,由高性能节点将pub_high_key写入至auth_identity_enclave中;
定义一个身份认证器的EDL文件,记为auth_identity_edl,auth_identit y_edl中定义一个auth_identity_enclave的函数入口,auth_identity_enclave提供一个获取pub_high_key的函数,名为get_pub_high_key(),get_pub_hi gh_key()函数也定义在auth_identity_edl中;
高性能节点使用auth_identity_edl和auth_identity_app进行编译制作得到一个库文件,记为auth_identity_app_so;
高性能节点使用sgx_sign工具对auth_identity_edl、auth_identity_encla ve和pri_high_key进行编译签名得到签名库,记为auth_identity_enclave_si gn_so,签名过程中会使用pri_high_key对auth_identity_enclave的代码和元数据进行哈希运算得到一个测量值记为measurement_before存放至auth_ide ntity_enclave_sign_so中的SIGStruct中,随后高性能节点向intel提交白名单申请,提交SIGStruct、measurement_before和高性能节点的其他相关资料;
Intel审核通过后,自动将measurement_before列入到白名单中,随后高性能节点对各轻量节点公开auth_identity_app_so和auth_identity_enclave_sign_so;
所述S2具体包括如下步骤:
轻量节点获取高性能节点公开的开auth_identity_app_so和auth_identit y_enclave_sign_so,同时由轻量节点根据自身业务和数据进行分析需要执行哪种隐私计算算法,并进行构建算法,构建过程中会产生如下因素:
生成其本身的对称密钥,记为low_symmetry_key,通过auth_identity_app_so安全的EDL调用并加载auth_identity_enclave_sign_so,加载过程中进行如下操作:
一、验证auth_identity_enclave_sign_so是否有被篡改过,加载过程中通过调用intel sgx的各项指令重新对auth_identity_enclave_sign_so的auth_id entity_enclave生成一个新的测量值,记为measurement_after,对measurem ent_after和auth_identity_enclave中的SIGStruct和measurement_before进行比较,如果比较通过,则认为该auth_identity_enclave没有被篡改;
二、白名单检查,通过将auth_identity_enclave中的SIGStruct和meas urement_before与Intel进行安全通信并检查,若measurement_before已经被intel列入到白名单中,则auth_identity_enclave被视为可信,并确定该auth_identity_enclave确实来自于正确的高性能节点;
经过验证和检查之后,auth_identity_app通过安全的EDL调用get_pub_high_key()获取pub_high_key,随后使用pub_high_key对low_symmetry_key进行加密得到low_symmetry_key_encrypt;
在内存中选定两片连续的内存区域,获取两个内存区域的物理地址,一片内存区域作为非核心数据所在内存地址,记为not_core_data_address,另外一片则为中间因子所在内存地址,记为middle_data_address,然后使用pub_high_key对not_core_data_address和middle_data_address进行加密得到密文状态下的两片内存地址:not_core_data_address_encrypt、middle_data_address_encrypt;
定义该隐私计算算法需要使用的硬件资源,并以xml格式放置在一个配置文件中记为:Enclave.config.xml,定义该隐私计算算法的App和Encl ave之间的EDL文件记为privacy_algorithm_edl;
定义对于Enclave在EDL文件中的入口函数如下:启动算法服务函数start_service();
定义对于App在EDL文件中的入口函数如下:获取高性能节点本地非对称私钥get_pri_high_key();
最终轻量节点本地采用与S1步骤一致的编译和签名步骤,将隐私计算算法、low_symmetry_key_encrypt、not_core_data_address_encrypt、middle_data_address_encrypt、Enclave.config.xml和privacy_algorithm_edl进行编译或签名得到隐私计算算法App和隐私计算算法enclave,记为privacy_algor ithm_app_so和privacy_algorithm_enclave_sign_so;
最后进行与S1步骤一致的白名单申请,由Intel将该轻量节点列入到白名单中,轻量节点将privacy_algorithm_app_so和privacy_algorithm_enclave_sign_so发送至高性能节点。
9.根据权利要求8所述的一种隐私计算一体机委托加速的方法,其特征在于,所述S3具体包括如下步骤:
高性能机器接收到来自轻量节点的privacy_algorithm_app_so和privacy_algorithm_enclave_sign_so,使用privacy_algorithm_app_so通过EDL安全调用start_service()用于启动加载privacy_algorithm_enclave_sign_so,同时根据Enclave.config.xml为该privacy_algorithm_enclave_sign_so进行资源的分配,加载过程中同样需要验证该privacy_algorithm_enclave是否有被篡改和是否是可信的,验证方式与S2步骤中验证auth_identity_enclave的方式一致;
验证完成后,启动privacy_algorithm_enclave_sign_so中的算法服务,此时需要将privacy_algorithm_enclave_sign_so中的low_symmetry_key_encr ypt、not_core_data_address_encrypt、middle_data_address_encrypt进行解密,privacy_algorithm_enclave_sign_so通过EDL调用privacy_algorithm_app_so的get_pri_high_key()函数获取高性能节点本地的pri_high_key,返回至priv acy_algorithm_enclave_sign_so中,使用pri_high_key分别解密low_symmet ry_key_encrypt、not_core_data_address_encrypt、middle_data_address_encryp t最终得到low_symmetry_key、not_core_data_address、middle_data_address;
如果解密不成功,则表示当前该高性能计算节点并非正确的高性能计算节点,应当给予停止执行,随后算法服务定时的去监听高性能节点本地内存的两片物理地址:not_core_data_address、middle_data_address;
所述S4具体包括如下步骤:
轻量节点根据业务需要自行将本地的隐私数据进行划分,按照横向切分和纵向切分的方式去切分数据,最终切分成两部分数据:核心数据,记为core_data;非核心数据,记为not_core_data。
10.根据权利要求9所述的一种隐私计算一体机委托加速的方法,其特征在于,所述S5具体包括如下步骤:
轻量节点与高性能节点建立RDMA通信,轻量节点将物理地址为not_core_data_address、middle_data_address的两片内存设置为只读模式;
所述S6具体包括如下步骤:
轻量节点本地在非Intel SGX环境下启动S2步骤中的隐私计算算法,加载core_data到内存中,随后使用low_symmetry_key对not_core_data进行加密,记为not_core_data_encrypt,形成密文后加载至not_core_data_addr ess内存物理地址,此时,随后使用low_symmetry_key对S3监听到的轻量节点共享的not_core_data_encrypt数据进行解密得到not_core_data,轻量节点本地拥有了core_data数据,高性能节点privacy_algorithm_enclave_sign_so中拥有了not_core_data数据,,即可开始执行隐私计算算法;
同时高性能节点借助高硬件资源和FPGA、GPU加速卡进行对隐私计算算法提速,高性能节点在算法执行过程中会产生中间因子,中间因子由low_symmetry_key进行加密得到middle_data_encrypt,随后将其写入至mid dle_data_address内存物理地址中,轻量节点的隐私计算算法服务监听到mi ddle_data_address有数据后即可使用low_symmetry_key对其进行解密得到middle_data,使用middle_data来优化轻量节点本地隐私计算算法逻辑;
所述S7具体包括如下步骤:
一直持续S6步骤直至隐私计算算法执行完毕后,轻量节点即可得到算法结果,此时轻量节点清空not_core_data_address、middle_data_address两片内存,高性能节点销毁privacy_algorithm_enclave_sign_so并释放硬件资源。
CN202310591256.3A 2023-05-23 2023-05-23 一种隐私计算一体机委托加速的方法 Active CN116614275B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310591256.3A CN116614275B (zh) 2023-05-23 2023-05-23 一种隐私计算一体机委托加速的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310591256.3A CN116614275B (zh) 2023-05-23 2023-05-23 一种隐私计算一体机委托加速的方法

Publications (2)

Publication Number Publication Date
CN116614275A true CN116614275A (zh) 2023-08-18
CN116614275B CN116614275B (zh) 2024-02-20

Family

ID=87677764

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310591256.3A Active CN116614275B (zh) 2023-05-23 2023-05-23 一种隐私计算一体机委托加速的方法

Country Status (1)

Country Link
CN (1) CN116614275B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109510708A (zh) * 2018-10-24 2019-03-22 中国科学院信息工程研究所 一种基于Intel SGX机制的公钥密码计算方法和系统
CN110213231A (zh) * 2019-04-26 2019-09-06 西安电子科技大学 一种面向sgx的轻量级的外包数据访问控制方法及控制系统
US20200014537A1 (en) * 2018-07-03 2020-01-09 Royal Bank Of Canada System and method for an electronic identity brokerage
CN114036573A (zh) * 2021-11-30 2022-02-11 支付宝(杭州)信息技术有限公司 支持隐私计算的计算设备
CN114462047A (zh) * 2022-01-25 2022-05-10 北京工业大学 一种基于sgx技术的云外包计算安全方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200014537A1 (en) * 2018-07-03 2020-01-09 Royal Bank Of Canada System and method for an electronic identity brokerage
CN109510708A (zh) * 2018-10-24 2019-03-22 中国科学院信息工程研究所 一种基于Intel SGX机制的公钥密码计算方法和系统
CN110213231A (zh) * 2019-04-26 2019-09-06 西安电子科技大学 一种面向sgx的轻量级的外包数据访问控制方法及控制系统
CN114036573A (zh) * 2021-11-30 2022-02-11 支付宝(杭州)信息技术有限公司 支持隐私计算的计算设备
CN114462047A (zh) * 2022-01-25 2022-05-10 北京工业大学 一种基于sgx技术的云外包计算安全方法

Also Published As

Publication number Publication date
CN116614275B (zh) 2024-02-20

Similar Documents

Publication Publication Date Title
CN111181720B (zh) 基于可信执行环境的业务处理方法及装置
EP3937424B1 (en) Blockchain data processing methods and apparatuses based on cloud computing
WO2021184973A1 (zh) 访问外部数据的方法及装置
US20240176899A1 (en) Secure multi-party computation
US20220114249A1 (en) Systems and methods for secure and fast machine learning inference in a trusted execution environment
US8495383B2 (en) Method for the secure storing of program state data in an electronic device
US11303437B2 (en) Proof-of-work key wrapping with key thresholding
US11424920B2 (en) Proof-of-work key wrapping for cryptographically controlling data access
JP2019517080A (ja) ハードウェアーベースのセキュアーな分離された領域を使用して電子デバイス上での著作権侵害および不正行為を防止すること
US8612753B2 (en) Method and apparatus for protected code execution on clients
WO2023029447A1 (zh) 模型保护方法、装置、设备、系统以及存储介质
US20240143727A1 (en) Device authentication method and system, iot device and authentication server
CN113206744A (zh) 跨链交易监管方法、装置、设备和存储介质
US11748521B2 (en) Privacy-enhanced computation via sequestered encryption
CN112788111B (zh) 多节点设备的算法协同处理方法、节点设备及联盟网络
Pop et al. Secure migration of WebAssembly-based mobile agents between secure enclaves
CN114726865B (zh) 数据质押方法、系统、电子装置和存储介质
CN116614275B (zh) 一种隐私计算一体机委托加速的方法
CN114615087B (zh) 数据共享方法、装置、设备及介质
CN114124440B (zh) 安全传输方法、装置、计算机设备和存储介质
CN110750303B (zh) 基于fpga的流水线式指令读取方法及装置
Silva et al. Performance evaluation of cryptography on middleware-based computational offloading
CN111708991B (zh) 服务的授权方法、装置、计算机设备和存储介质
Dörre et al. Practically Efficient Private Set Intersection from Trusted Hardware with Side-Channels
Saboor et al. Root-Of-Trust for Continuous Integration and Continuous Deployment Pipeline in Cloud Computing

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