CN116132017B - 隐私保护机器学习推理加速的方法与系统 - Google Patents

隐私保护机器学习推理加速的方法与系统 Download PDF

Info

Publication number
CN116132017B
CN116132017B CN202211434319.6A CN202211434319A CN116132017B CN 116132017 B CN116132017 B CN 116132017B CN 202211434319 A CN202211434319 A CN 202211434319A CN 116132017 B CN116132017 B CN 116132017B
Authority
CN
China
Prior art keywords
sgx
fpga
machine learning
linear
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
CN202211434319.6A
Other languages
English (en)
Other versions
CN116132017A (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.)
Quancheng Provincial Laboratory
Original Assignee
Quancheng Provincial Laboratory
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 Quancheng Provincial Laboratory filed Critical Quancheng Provincial Laboratory
Priority to CN202211434319.6A priority Critical patent/CN116132017B/zh
Publication of CN116132017A publication Critical patent/CN116132017A/zh
Application granted granted Critical
Publication of CN116132017B publication Critical patent/CN116132017B/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/0435Network 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 symmetric encryption, i.e. same key used for encryption and decryption
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

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)
  • Storage Device Security (AREA)
  • Facsimile Transmission Control (AREA)

Abstract

本发明公开了隐私保护机器学习推理加速的方法及系统,SGX接收机器学习过程中的待推理数据,判断待推理数据是线性还是非线性,如果是非线性,则在SGX中进行非线性运算;如果是线性,SGX将线性数据部分进行加密,并将加密处理后的线性数据部分发送给FPGA;FPGA对加密处理后的线性数据部分进行解密处理,并将解密后的线性数据部分进行线性运算;线性运算结束后,FPGA将线性运算结果进行加密,并将加密的密文返回给SGX;SGX对接收到的密文进行解密后,再对解密后的数据进行非线性运算,至此完成机器学习的一次推理过程,继续完成机器学习的后续线性数据部分的处理,直至机器学习的所有待推理数据均被处理完毕。

Description

隐私保护机器学习推理加速的方法与系统
技术领域
本发明涉及隐私保护技术领域,特别是涉及隐私保护机器学习推理加速的方法与系统。
背景技术
本部分的陈述仅仅是提到了与本发明相关的背景技术,并不必然构成现有技术。
随着云计算大数据时代的到来,互联网时时刻刻释放出海量的数据,随着产生、存储、分析的数据量越来越大,从海量数据中挖掘出有价值的信息成为了一种挑战。人工智能的出现为数据的处理提供了新的思路,通过机器学习的方式建立处理问题的模型,并通过大量的数据对模型进行训练,再利用训练好的模型可以对相关数据进行推理,实现推测的功能,能够很好的满足人们的现实需求,但原有的机器学习算法对安全的考虑不够细致。海量数据背后隐藏着巨大的经济与政治利益,因此会有一些攻击者通过一些非法手段来获取数据进行牟利。数据的整合、分析与传输的过程中都有可能会导致数据的泄露,因此用户和服务提供商都面临着隐私泄露问题,用户担心自己的个人信息如身份信息、地理位置等被泄露,服务商也担忧相关信息被窃取。
现有的研究表明,只保护数据的存储往往不够充分,有一些技术专门是为了研究如何窃取传输过程中的数据以及如何攻击机器学习模型而生的。根据攻击对象的不同,机器学习中的隐私威胁可以分为针对数据的威胁和针对模型的威胁,针对数据的威胁包括数据泄漏、成员推理攻击等,针对模型的威胁主要指模型反转攻击。因此,解决机器学习中的隐私保护问题是一个重要的研究领域。
Xia等人针对现有的基于CPU的TEE(可信执行环境)不支持FPGA以及FPGA中的数据有泄露风险的问题,他们提出了CPU-FPGA架构,这是一种可信的硬件隔离路径。他们试图在CPU-FPGA硬件上的实现SGX-FPGA高安全性和低开销的目标,通过在异构CPU-FPGA架构中桥接CPU中的飞地和FPGA,最终实现了一个FPGATEE。Elrabaa等人开发了一种基于FPGA保护公共云和数据中心中用户数据以及应用程序的新方案。该方案包含所有必要的协议、硬件和软件组件,以提供针对包括内部攻击在内的许多已知潜在攻击的保护。它实现了完美的前向保密,提供了FPGA认证和完整性检查,并在用户和FPGA之间安全地建立了对称会话密钥,验证了一个用于展示所提出方案的完整的原型在当前FPGA上的可行性。结果表明,在FPGA上运行实验安全图像处理应用程序所花费的时间比在传统的最先进CPU上运行相同应用程序的时间少50%,所以使用FPGA加速机器学习推理过程是可行的。
现有技术存在的技术缺陷是:
在机器学习的训练与推理中,传统方案常采用CPU+GPU的方式来完成计算。但是,CPU、GPU都属于冯·诺依曼结构,指令译码执行、共享内存。在冯·诺依曼结构中,由于执行单元(如CPU核)可能执行任意指令,就需要有指令存储器、译码器、各种指令的运算器、分支跳转处理逻辑。由于指令流的控制逻辑复杂,不可能有太多条独立的指令流,因此GPU使用SIMD(单指令流多数据流)来让多个执行单元以同样的步调处理不同的数据,CPU也支持SIMD指令。传统方案的技术缺陷是因为GPU使用SIMD(单指令流多数据流)导致工作效率降低。
此外,传统方案中使用FPGA为机器学习推理加速的时候,将要运算的相关数据直接由CPU发送到FPGA上。在数据经过系统总线由CPU发送到FPGA过程中容易受到攻击,从而导致隐私的泄露。
发明内容
为了解决现有技术的不足,本发明提供了隐私保护机器学习推理加速的方法与系统;该方案可以安全地传输SGX内使用SM4加密的机器学习推理过程的线性数据部分,也可以安全地接收来自FPGA的运算结果,攻击者无法从系统总线上获取到明文数据,有效保证了数据传输的隐私。
第一方面,本发明提供了隐私保护机器学习推理加速的方法;
隐私保护机器学习推理加速的方法,包括:
S101:部署在CPU中的可信执行环境SGX接收机器学习过程中的待推理数据,判断待推理数据是线性数据部分还是非线性数据部分,如果是非线性数据部分,则在SGX中进行非线性运算;如果是线性数据部分,则进入S102;
S102:SGX将线性数据部分进行加密,并将加密处理后的线性数据部分发送给FPGA;FPGA对加密处理后的线性数据部分进行解密处理,并将解密后的线性数据部分进行线性运算;线性运算结束后,FPGA将线性运算结果进行加密,并将加密的密文返回给SGX;
S103:SGX对接收到的密文进行解密后,再对解密后的数据进行非线性运算,至此完成机器学习的一次推理过程,然后,返回S102继续完成机器学习的后续线性数据部分的处理,直至机器学习的所有待推理数据均被处理完毕,结束。
第二方面,本发明提供了隐私保护机器学习推理加速的系统;
隐私保护机器学习推理加速的系统,包括:相互连接的CPU和FPGA;所述CPU上设置有可信执行环境SGX;
SGX接收机器学习过程中的待推理数据,判断待推理数据是线性数据部分还是非线性数据部分,如果是非线性数据部分,则在SGX中进行非线性运算;如果是线性数据部分,则SGX将线性数据部分进行加密,并将加密处理后的线性数据部分发送给FPGA;
FPGA对加密处理后的线性数据部分进行解密处理,并将解密后的线性数据部分进行线性运算;线性运算结束后,FPGA将线性运算结果进行加密,并将加密的密文返回给SGX;
SGX对接收到的密文进行解密后,再对解密后的数据进行非线性运算,至此完成机器学习的一次推理过程,然后,继续完成机器学习的后续待推理数据的处理,直至机器学习的所有待推理数据均被处理完毕,结束。
与现有技术相比,本发明的有益效果是:
1.本发明提出了一种可信执行环境SGX结合FPGA实现隐私保护机器学习推理的方案,该方案可以安全地传输可信执行环境SGX内使用SM4加密的机器学习推理过程的线性数据部分,也可以安全地接收来自FPGA的运算结果,攻击者无法从系统总线上获取到明文数据,有效保证了数据传输的隐私。
2.FPGA安全代理内部的模块中含有抵抗侧信道攻击的结构,FPGA内部的SecKDF是利用了SM2的输出密钥k和密钥k的反码在同时输出的时候,任意时刻都会有高电平的输出,从而使得攻击者无法通过测试FPGA内部模块的功率获取SM2密钥协商生成的密钥k。
3.本发明FPGA安全代理的实现是通过FPGA内部可编程逻辑资源实现的,安全代理占用的可编程资源较少,但是在性能又有较好的提升。随着底层硬件芯片技术的发展,FPGA安全代理可以使用完全静态逻辑的方式来实现,也就是使用硬件烧录的形式,烧录之后不可更改,更能够在防止攻击者恶意地更改安全代理模块从而导致数据泄露的情况发生。
4.本发明在SGX和FPGA进行数字签名、密钥协商、数据加密解密的过程中使用的SM2和SM4能高效进行计算,SM2算法是基于椭圆曲线上点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比2048位的RSA密码强度要高。并且这两个算法是国密算法,应用在实际生产环境中各个方面。
5.FPGA每个逻辑单元的功能在重编程(烧写)时就已经确定,不需要指令。FPGA之所以比CPU甚至GPU能效高,本质上是得益于无指令、无需共享内存的体系结构。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为实施例一的SGX+FPGA实现隐私保护机器学习推理过程系统图;
图2为实施例一的SecKDF模块的内部结构示意图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本实施例所有数据的获取都在符合法律法规和用户同意的基础上,对数据的合法应用。
术语解释:
Intel SGX:英特尔的软件保护扩展实际上是一组CPU指令扩展,用于扩展英特尔的体系结构,以提供安全的运行环境。即使是针对恶意的特权软件,这些恶意的特权软件包括操作系统、内核和虚拟机监控程序,SGX指令都可以对安全敏感计算提供完整性和保密性保证,防止底层操作系统被妥协之后对CPU的攻击。SGX可以为用户级别的代码分配内存作为私有区域,称作Enclave,即使root权限也无法访问,并且受其他进程的保护,包括以更高权限级别运行的进程。SGX还提供软件认证,以确保用户的代码在可信的私有区域中运行。该认证仅涵盖飞地内的私有代码和数据,同时在软件的管理上也可以不用可信云服务提供商。在本发明中,不考虑针对SGX的侧信道攻击。
HISA:异构CPU-FPGA系统已被证实可以在特定领域的计算中实现显著的性能提升。事实上,在这样一个异构系统中,CPU和FPGA之间的相互作用如果没有得到很好的控制,可能会引入新的攻击面。HISA是一种基于硬件隔离的安全架构,用于减轻已识别的新威胁。HISA将基于CPU的硬件隔离原语扩展到异构FPGA组件,并通过在隔离的安全环境中执行两种类型的安全策略,即访问控制策略和输出验证策略来实现安全保证。HISA使用四个参考FPGA IP内核以及针对具有代表性的CPU-FPGA攻击的各种参考安全策略来评估HISA。在真实硬件上的实验证明,HISA是对现有纯CPU和纯FPGA安全架构的有效安全补充。
FPGA表示Field Programmable Gate Array,现场可编程逻辑门阵列。
SM2表示国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法。SM2算法和RSA算法都是公钥密码算法,SM2算法是一种更先进安全的算法,在我们国家商用密码体系中被用来替换RSA算法。
SM4表示一种分组加密算法。是一种对称加密算法,其密钥长度和分组长度均为128位。
KDF:全称(Key derivation function)密钥导出函数。密码学中,密钥导出函数是指使用伪随机函数从秘密值导出一个或多个密钥。KDF算法是国密算法SM2中导出密钥的算法,KDF全称(Key derivation function)密钥导出函数。密码学中,密钥导出函数是指使用伪随机函数从秘密值(或者称为主密钥,就是一个原始的秘密)导出一个或多个密钥。
传统的KDF若实施到FPGA中,容易受到侧信道攻击。SecKDF是该发明的一个组成部分,将KDF的实现做了改动,利用的就是在生成密钥k的同时生成k的反码
本发明是针对隐私保护机器学习(PPML,Privacy Preserving MachineLearning)的推理(Inference)阶段进行加速(Acceleration)的一种方案。隐私保护机器学习是一种机器学习。推理是机器学习的第二个阶段(第一阶段是学习(learning)阶段),加速:传统基于CPU的机器学习的推理阶段在计算的时候速度并不快,因此该方案会将机器学习的推理阶段的计算交由FPGA进行计算。在生产环节常用GPU和FPGA等设备对机器学习进行加速,本方案采用的是用FPGA对机器学习的推理阶段进行加速。
SGX是Intel公司在CPU中内置的可信执行环境。
实施例一
本实施例提供了隐私保护机器学习推理加速的方法;
如图1所示,隐私保护机器学习推理加速的方法,包括:
S101:部署在CPU中的可信执行环境SGX接收机器学习过程中的待推理数据,并将待推理数据分为线性数据部分和非线性数据部分,将非线性数据部分在SGX中进行非线性运算;如果是线性数据部分,则进入S102;
S102:SGX将线性数据部分进行加密,并将加密处理后的线性数据部分发送给FPGA;FPGA对加密处理后的线性数据部分进行解密处理,并将解密后的线性数据部分进行线性运算;线性运算结束后,FPGA将线性运算结果进行加密,并将加密的密文返回给SGX;
S103:SGX对接收到的密文进行解密后,再对解密后的数据进行非线性运算,至此完成机器学习的一次推理过程,然后,返回S102继续完成机器学习的后续待推理数据的处理,直至机器学习的所有待推理数据均被处理完毕,结束。
进一步地,所述SGX接收机器学习过程中的待推理数据之前,还包括:
S100-1:部署在CPU中的可信执行环境SGX对FPGA进行身份认证;
S100-2:部署在CPU中的可信执行环境SGX与FPGA进行密钥协商,得到加密密钥和解密密钥;在密钥协商过程中,防止FPGA受到侧信道攻击。
进一步地,所述S100-1:部署在CPU中的可信执行环境SGX对FPGA进行身份认证,具体包括:
S100-11:FPGA生成数字签名(r,s);
M*=ZB||M;
e=H(M*);
(x1,y1)=mG;
r=e+x1 mod n;
s=(1+dB)-1(m-r×dB)mod n;
其中,M表示待签名的消息;M*表示ZB||M,即是将ZB和消息M的级联(拼接)后的比特串;ZB表示签名方的身份信息做哈希运算后得到的长度为256的比特串;e表示对M*做哈希运算后的结果;m表示随机数;G表示本源元;(x1,y1)表示对G做rA次运算的结果;n表示模数;(r,s)表示数字签名;
S100-12:FPGA将数字签名(r,s)发送给SGX;
S100-13:SGX根据数字签名(r,s)计算出随机数R;
M*=ZB||M;
e=H(M*);
t=r+s mod n;
(x1,y1)=sG+tPB
R=e+x1 mod n;
其中,M表示待签名的消息;M*表示ZB||M,即是将ZB和消息M的级联(拼接)后的比特串;ZB表示签名方的相关身份信息做哈希运算后得到的长度为256的比特串;e表示对M*做哈希运算后的结果;G表示本源元;t表示数字签名中两参数r与s之和模n的运算结果;PB表示FPGA的公钥;n表示模数;R表示SGX验证数字签名后生成的参数;
S100-14:SGX判断随机数r是否属于[1,n-1],随机数s是否属于[1,n-1]以及R==r三者是否同时成立,当前仅当三者同时成立时,数字签名验证成功,身份认证通过;R表示SGX端作为数字签名的验证方,在通过数字签名(r,s)验证FPGA端的时候,计算生成的参数。
应理解地,FPGA将生成的(r,s)发送给SGX。SGX验证r是否属于[1,n-1],s是否属于[1,n-1]以及R==r是否成立。当且仅当三者同时成立的时候,数字签名验证成功。
进一步地,所述S100-2:部署在CPU中的可信执行环境SGX与FPGA进行密钥协商,得到加密密钥和解密密钥,具体包括:
S100-21:SGX生成随机数rA,基于随机数rA生成坐标RA;将坐标RA发送给FPGA;
生成随机数rA
(x1,y1)=RA
RA=rAG;
其中,rA表示SGX生成的随机数;RA表示对本源元G做rA次数运算得到的坐标;
S100-22:FPGA生成随机数rB,基于随机数rB生成坐标RB;将坐标RB发送给SGX;
生成随机数rB
(x2,y2)=RB
RB=rBG;
其中,rB表示FPGA生成的随机数;RB表示对本源元G做rB次数运算得到的坐标;
S100-23:SGX基于RB生成加密密钥和解密密钥KA
U=(xU,yU)
KA=KDF(xU||yU||ZA||ZB,klen)
Trunc(x)=2127+(x and(2127-1))
其中,Trunc()表示截断函数,表示利用Trunc()函数计算的结果;/>表示利用Trunc()函数计算的结果;dA表示SGX的私钥;rA表示SGX生成的随机数;n表示模数;tA表示SGX的私钥dA、随机数rA、中间变量/>三者计算的结果;PB表示FPGA的公钥;RB表示对本源元G做rB次数运算得到的坐标;U:(xU,yU)表示共享密钥在椭圆曲线上对应的坐标;ZA表示验证方的相关身份信息做哈希运算后得到的长度为256的比特串;ZB表示签名方的相关身份信息做哈希运算后得到的长度为256的比特串;klen表示需要生成的共享密钥的长度;KA表示SGX计算的共享密钥;
S100-24:FPGA基于RA生成加密密钥和解密密钥KB
(xV,yV)=(PB+RA)
V=(xV,yV)
KB=KDF(xV||yV||ZA||ZB,klen)
其中,表示利用Trunc()函数计算的结果;/>表示利用Trunc()函数计算的结果;n表示模数;dB表示FPGA的私钥;rB表示FPGA生成的随机数;tB表示FPGA的私钥dB、随机数rB、中间变量/>三者计算的结果;PB表示FPGA的公钥;RA表示对本源元G做rA次数运算得到的坐标;V:(xV,yV)表示共享密钥在椭圆曲线上对应的坐标;ZA表示验证方的相关身份信息做哈希运算后得到的长度为256的比特串ZB表示签名方的相关身份信息做哈希运算后得到的长度为256的比特串;klen表示共享密钥的长度;KB表示FPGA计算的共享密钥;k表示SGX与FPGA经协商得到的共享密钥。
应理解地,SGX与FPGA将生成的数据进行交换后,经一系列运算可以得到KA=KDF(xU||yU||ZA||ZB,klen)和KB=KDF(xU||yU||ZA||ZB,klen)。由于SGX和FPGA参与KDF运算的所有数据均相等,所以经过SM2密钥协商得到的共享密钥k(k=KA=KB)也相同。
进一步地,所述在密钥协商过程中,防止FPGA受到侧信道攻击,具体包括:
将KDF函数的执行放置在FPGA中的SecKDF模块上进行;
SecKDF模块中不仅仅只有密钥k的生成,同时有k的反码的生成;
k和k的反码在同一时刻叠加波形都是高电平(高功率),总体监测的时候全部为高电平,攻击者监测FPGA的功率的时候便无法恢复出SM2协商的密钥k。
应理解地,侧信道攻击(Side Channel Attack)是一种针对密码实现(包括密码芯片、密码模块、密码系统等)的物理攻击方法。这种攻击方法的本质上是利用密码实现在执行密码相关操作的过程中产生的侧信息来恢复出密码实现中所使用的密钥。
常见的侧信道攻击是监测生成密钥的芯片的功率,通过功率的变化能够恢复出密钥;为了防止FPGA最终生成的密钥的时候被监测到并被恢复出密钥,本发明在物理上对侧信道攻击做了防护。具体如下:由于传统的KDF在计算的时候直接将各种参数进行级联(拼接),也就是说根据在生成密钥的时候的器件功率的变化很容易恢复出密钥,该发明将KDF函数的执行放置在了FPGA中的SecKDF模块上进行。SecKDF模块中不仅仅只有密钥k的生成,同时有k的反码的生成。k和k的反码/>在同一时刻叠加波形图都是高电平(高功率),总体监测的时候全部为高电平。
应理解地,如图2所示,侧信道攻击一般是通过检测运算器件的功率等参数进行实现的,当密钥派生函数KDF算法运行的时候,攻击者可以根据FPGA的功率变化还原出密钥k。但是经过使用SecKDF模块(核心器件是利用了密钥k的反码的输出)之后,在任意时刻都会有高电平的输出,此时攻击者监测FPGA的功率的时候便无法恢复出SM2协商的密钥k。
如图2所示,SecKDF模块,包括:第一KDF模块和第二KDF模块,第一KDF模块的输入值是xV、yV、ZA、ZB,输出值是密钥k的反码第二KDF模块的输入值是xV、yV、ZA、ZB,输出值是输出值是密钥k本身;
第一KDF模块位于SM2内部,其输入端是SM2中生成共享密钥时所产生参数的接口相连接;第一KDF模块将xV、yV、ZA、ZB进行级联(拼接)后进行取反操作;将第一KDF模块做取反的操作,从而直接生成k的反码
第二KDF模块位于SM2内部,其输入端与SM2中生成共享密钥时所产生参数的接口相连接;第二KDF模块将xV、yV、ZA、ZB进行级联(拼接)后进行直接输出;
其中,xV、yV表示共享密钥在椭圆曲线上对应的坐标;ZA表示验证方的相关身份信息做哈希运算后得到的长度为256的比特串;ZB表示签名方的相关身份信息做哈希运算后得到的长度为256的比特串。
进一步地,所述身份认证通过第一加密算法的数字签名算法进行;第一加密算法为SM2加密算法。
进一步地,所述SGX将线性数据部分进行加密,具体是采用第二加密算法进行加密,所述第二加密算法为SM4加密算法。
进一步地,所述FPGA将线性运算结果进行加密,具体是FPGA将线性运算结果采用第二加密算法进行加密。
进一步地,所述线性数据部分,是指:线性数据具有一条或多条共性,例如线性表中的数据、队列中的数据、一维数组等。
一般可以根据数据的共性,把数据制作成具有共性的数据,称作线性数据。在机器学习中指的是仅受一个参数的约束的数据,例如一元线性回归模型中的数据。
进一步地,所述非线性数据部分,是指:非线性数据具有不是按正比规律,不规则,没有共性规律等特征的数据。在机器学习中指的是受多个参数约束的数据,例如多元线性回归中的数据。
所述线性数据部分,例如,矩阵乘法、矩阵转置、矩阵求逆等,所述非线性数据部分,例如Sigmoid激活函数、Tanh激活函数、Softmax激活函数等。
进一步地,所述S102:SGX将线性数据部分进行加密,具体包括:
k=KA
yi=ENCk(xi);
其中,KA表示SGX计算的共享密钥;KB表示FPGA计算的共享密钥;k表示SGX与FPGA经协商得到的共享密钥;xi表示第i次应该加密的待运算的线性数据部分;yi表示第i次已经加密的待运算的线性数据部分。
进一步地,所述FPGA对加密处理后的线性数据部分进行解密处理,具体包括:
k=KB
xi=DECk(yi);
其中,KB表示FPGA计算的共享密钥;KA表示SGX计算的共享密钥;k表示SGX与FPGA经协商得到的共享密钥;yi表示第i次应该解密的待运算的线性数据部分;xi表示第i次已经解密的待运算的线性数据部分。
进一步地,所述FPGA将线性运算结果进行加密,具体包括:
yj=ENCk(xj);
其中,xj表示第j次应该加密的线性数据部分运算的结果;yj表示第j次已经加密的线性数据部分运算的结果;
进一步地,所述SGX对接收到的密文进行解密,具体包括:
xj=DECk(yj);
其中,yj表示第j次应该解密的线性数据部分运算的结果;xj表示第j次已经解密的线性数据部分运算的结果;
本发明提出了使用SGX+FPGA实现隐私保护机器学习推理过程的方案,该方案设计了两个安全代理,在FPGA内部的安全代理是利用部分可编程逻辑资源实现的,FPGA安全代理中含有支持数字签名、密钥协商、数据加密解密的模块,本发明将实现这些功能的模块称作为静态逻辑块,不允许重新配置。
Intel SGX狭义上是指一组CPU指令,该组指令增强应用程序代码和数据的安全性,为它们提供更强的保护以防泄漏或修改。开发人员可将敏感信息放入Enclave中,Enclave是内存中具有更强安全保护性的执行区域。
Intel SGX广义上是指以SGX指令为基础所构建的包括Intel CPU硬件、CPU提供的硬件指令、驱动、Platform Software(用于构建不可信运行时环境uRTS)、SDK(用于构建可信运行时环境tRTS)等在内的一种新的安全机制,既Intel SGX软硬件栈。
该发明中用到的是广义上的SGX,可以将SGX认为是CPU中的一块区域。普通的CPU中一般没有SGX,服务器版本的CPU中一般有SGX。
本发明还在FPGA中实现具有防止侧信道攻击功能的SecKDF模块,该模块原理是通过可编程逻辑资源构建出密钥k与其补码在任意时刻,该模块整体一直有高电平的输出,攻击者检测功率时无法还原出SM2模块密钥协商生成的密钥k,从而在FPGA上实现防止侧信道攻击的功能。
SGX向FPGA发送SM4加密的线性数据部分是通过不可信的传输通道PCIe传输的,数据的加密与解密都是在组件内部进行的,这样就防止攻击者在系统总线上获取数据。
FPGA安全代理中的代理数据传输控制器访问FPGA的全局内存从而获取到SGX发送的加密数据,SM4模块会将数据进行解密,然后再交由可编程逻辑资源进行后续的线性运算(如矩阵乘法等)。运算结束后,FPGA中的SM4模块对结果进行加密,并将加密的数据传送给代理数据传输控制器,之后FPGA的安全代理将加密数据经过PCIe传输到SGX内部。SGX执行激活函数,并将结果再次传递给FPGA进行下一步的线性计算。
经过多轮循环迭代执行后,能够安全且高效地完成机器学习推理阶段的加速任务。
代理数据传输控制器,是FPGA内部的一个模块,代理数据传输控制器具有执行安全应用加载、远程认证、安全通道建立等TEE核心功能。
具体来讲,代理数据传输控制器,是使用硬件描述语言(HDL)编写的一个硬件程序。所有进出FPGA的数据都是由代理数据传输控制器传输的。也就是说可信执行环境SGX经过PCIe发送到FPGA全局内存上的数据经由代理数据传输控制器传输给FPGA内部的SM4模块进行解密操作,同时将加密后的计算结果传输出去。
本发明分为两个部分,位于CPU中的SGX以及通过PCIe相连的FPGA。
CPU作为计算机系统的运算和控制核心,其在处理控制流与协调控制方面具有出色表现。FPGA有高效流水线并行计算的特点,在处理少量数据时,以流水线的方式同时进行多种任务的处理,可用于机器学习神经网络推理。
机器学习推理中的非线性操作,诸如多项式回归,分段回归与样条回归,核函数,神经网络,各种树模型等问题交由SGX处理的效率会比较高。
SGX将划分好的线性任务先经过SM4加密,这是因为数据在总线传输的时候可能会被泄露。SM4算法所使用的密钥是SM2在密钥交换协议中生成的,密钥长度是128比特。SGX将加密好的线性数据部分转发到FPGA的全局内存中。
为了进一步增强FPGA的安全性,可以禁用FPGA的JTAG端口,以防止FPGA内部配置的程序和输入的数据被回读。
代理数据传输控制器(图1中FPGA的一个组件)将密文交由SM4模块进行解密处理后,发送给可编程逻辑资源。FPGA的可编程能力以及可定义数据位宽的特点使得FPGA可为稀疏神经网络和窄位宽神经网络(例如BNN、TNN)的计算定制专门的架构,从而能够提高计算效率,降低延迟。
线性数据部分运算结果需要先使用密钥为k的SM4算法进行加密,之后在状态控制器的控制下可以将数据发送给代理数据传输控制器,该模块是FPGA安全代理与外界交互数据的传输接口,经过该控制器的数据都是已经被加密保护的数据。FPGA数据传输控制器会将加密数据经过系统总线传输到CPU中的SGX飞地。
状态控制器是FPGA的一个模块,状态控制器具有状态控制、任务调度、进程监测等功能。状态控制器实时监测FPGA内部各模块的运行情况,并向其他模块下发命令。在状态控制器的调度之下,代理传输控制器允许访问FPGA全局内存中的加密数据,并且允许将加密后的结果发送给可信执行环境SGX。状态控制器还可以控制SM2模块与SM4模块的运行过程。状态控制器相当于是FPGA内部的控制核心。
通常情况下机器学习推理过程所用到的数据量远小于机器学习训练过程的数据量。在这种情况下,SGX内部可以对推理任务进行划分,并且把线性数据部分安全地交由FPGA运算,SGX自身可以运算非线性的数据。通过SGX与FPGA的配合,可以高效完成机器学习推理。
考虑到机器学习训练出来的模型的复杂程度和推理数据的多样性,一次机器学习推理过程中,SGX和FPGA会进行多轮的交互,循环迭代执行非线性和线性任务,从而实现了隐私保护机器学习推理过程系统。
所述隐私保护机器学习,可以应用的场景有很多,例如:对手写汉字体识别的机器学习算法,对人脸识别的机器学习算法,对指纹识别的机器学习算法,对虹膜识别的机器学习算法,机器人跌倒检测的机器学习算法,等等。
实施例二
本实施例提供了隐私保护机器学习推理加速的系统;
隐私保护机器学习推理加速的系统,包括:相互连接的CPU和FPGA;所述CPU上设置有SGX;
SGX接收机器学习过程中的待推理数据,判断待推理数据是线性数据部分还是非线性数据部分,如果是非线性数据部分,则在SGX中进行非线性运算;如果是线性数据部分,则SGX将线性数据部分进行加密,并将加密处理后的线性数据部分发送给FPGA;
FPGA对加密处理后的线性数据部分进行解密处理,并将解密后的线性数据部分进行线性运算;线性运算结束后,FPGA将线性运算结果进行加密,并将加密的密文返回给SGX;
SGX对接收到的密文进行解密后,再对解密后的数据进行非线性运算,至此完成机器学习的一次推理过程,然后,返回继续完成机器学习的后续待推理数据的处理,直至机器学习的所有待推理数据均被处理完毕,结束。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.隐私保护机器学习推理加速的方法,其特征是,包括:
部署在CPU中的可信执行环境SGX接收机器学习过程中的待推理数据,判断待推理数据是线性数据部分还是非线性数据部分,如果是非线性数据部分,则在SGX中进行非线性运算;如果是线性数据部分,则进入下一步;
SGX将线性数据部分进行加密,并将加密处理后的线性数据部分发送给FPGA;FPGA对加密处理后的线性数据部分进行解密处理,并将解密后的线性数据部分进行线性运算;线性运算结束后,FPGA将线性运算结果进行加密,并将加密的密文返回给SGX;
SGX对接收到的密文进行解密后,再对解密后的数据进行非线性运算,至此完成机器学习的一次推理过程,然后,继续完成机器学习的后续线性数据部分的处理,直至机器学习的所有待推理数据均被处理完毕,结束。
2.如权利要求1所述的隐私保护机器学习推理加速的方法,其特征是,所述部署在CPU中的可信执行环境SGX接收机器学习过程中的待推理数据之前,还包括:
部署在CPU中的可信执行环境SGX对FPGA进行身份认证;
部署在CPU中的可信执行环境SGX与FPGA进行密钥协商,得到加密密钥和解密密钥;在密钥协商过程中,防止FPGA受到侧信道攻击。
3.如权利要求2所述的隐私保护机器学习推理加速的方法,其特征是,部署在CPU中的可信执行环境SGX对FPGA进行身份认证,具体包括:
FPGA生成数字签名(r,s);
FPGA将数字签名(r,s)发送给SGX;
SGX根据数字签名(r,s)计算出随机数R;
SGX判断随机数r是否属于[1,n-1],随机数s是否属于[1,n-1]以及判断R与r是否相等三者是否同时成立,当前仅当三者同时成立时,数字签名验证成功,身份认证通过;R表示SGX端作为数字签名的验证方,在通过数字签名(r,s)验证FPGA端的时候,计算生成的参数。
4.如权利要求2所述的隐私保护机器学习推理加速的方法,其特征是,部署在CPU中的可信执行环境SGX与FPGA进行密钥协商,得到加密密钥和解密密钥,具体包括:
SGX生成随机数rA,基于随机数rA生成坐标RA;将坐标RA发送给FPGA;
FPGA生成随机数rB,基于随机数rB生成坐标RB;将坐标RB发送给SGX;
SGX基于RB生成加密密钥和解密密钥KA
FPGA基于RA生成加密密钥和解密密钥KB
5.如权利要求2所述的隐私保护机器学习推理加速的方法,其特征是,所述在密钥协商过程中,防止FPGA受到侧信道攻击,具体包括:
将密钥导出KDF函数的执行放置在FPGA中的安全密钥导出SecKDF模块上进行;
SecKDF模块中有密钥k的生成,同时有k的反码的生成;
k和k的反码在同一时刻叠加波形都是高电平,总体监测的时候整个SecKDF的输出全部为高电平。
6.如权利要求5所述的隐私保护机器学习推理加速的方法,其特征是,SecKDF模块,包括:第一KDF模块和第二KDF模块,第一KDF模块的输入值是xV、yV、ZA、ZB,输出值是密钥k的反码第二KDF模块的输入值是xV、yV、ZA、ZB,输出值是输出值是密钥k本身;
第一KDF模块位于SM2内部,其输入端是SM2中生成共享密钥时所产生参数的接口;第一KDF模块将xV、yV、ZA、ZB进行级联后进行取反操作;将第一KDF模块做取反的操作,从而直接生成k的反码
第二KDF模块位于SM2内部,其输入端与SM2中生成共享密钥时所产生参数的接口相连接;第二KDF模块将xV、yV、ZA、ZB进行级联后进行直接输出;
其中,xV、yV表示共享密钥在椭圆曲线上对应的坐标;ZA表示验证方的相关身份信息做哈希运算后得到的长度为256的比特串;ZB表示签名方的相关身份信息做哈希运算后得到的长度为256的比特串。
7.如权利要求1所述的隐私保护机器学习推理加速的方法,其特征是,SGX将线性数据部分进行加密,具体包括:
k=KA
yi=ENCk(xi);
其中,KA表示SGX计算的共享密钥;KB表示FPGA计算的共享密钥;k表示SGX与FPGA经协商得到的共享密钥;xi表示第i次应该加密的待运算的线性数据部分;yi表示第i次已经加密的待运算的线性数据部分。
8.如权利要求1所述的隐私保护机器学习推理加速的方法,其特征是,所述FPGA对加密处理后的线性数据部分进行解密处理,具体包括:
k=KB
xi=DECk(yi);
其中,KB表示FPGA计算的共享密钥;KA表示SGX计算的共享密钥;k表示SGX与FPGA经协商得到的共享密钥;yi表示第i次应该解密的待运算的线性数据部分;xi表示第i次已经解密的待运算的线性数据部分。
9.如权利要求1所述的隐私保护机器学习推理加速的方法,其特征是,
所述FPGA将线性运算结果进行加密,具体包括:
yj=ENCk(xj);
其中,xj表示第j次应该加密的线性数据部分运算的结果;yj表示第j次已经加密的线性数据部分运算的结果;
所述SGX对接收到的密文进行解密,具体包括:
xj=DECk(yj);
其中,yj表示第j次应该解密的线性数据部分运算的结果;xj表示第j次已经解密的线性数据部分运算的结果。
10.隐私保护机器学习推理加速的系统,其特征是,包括:相互连接的CPU和FPGA;所述CPU上设置有可信执行环境SGX;
SGX接收机器学习过程中的待推理数据,判断待推理数据是线性数据部分还是非线性数据部分,如果是非线性数据部分,则在SGX中进行非线性运算;如果是线性数据部分,则SGX将线性数据部分进行加密,并将加密处理后的线性数据部分发送给FPGA;
FPGA对加密处理后的线性数据部分进行解密处理,并将解密后的线性数据部分进行线性运算;线性运算结束后,FPGA将线性运算结果进行加密,并将加密的密文返回给SGX;
SGX对接收到的密文进行解密后,再对解密后的数据进行非线性运算,至此完成机器学习的一次推理过程,然后,继续完成机器学习的后续待推理数据的处理,直至机器学习的所有待推理数据均被处理完毕,结束。
CN202211434319.6A 2022-11-16 2022-11-16 隐私保护机器学习推理加速的方法与系统 Active CN116132017B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211434319.6A CN116132017B (zh) 2022-11-16 2022-11-16 隐私保护机器学习推理加速的方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211434319.6A CN116132017B (zh) 2022-11-16 2022-11-16 隐私保护机器学习推理加速的方法与系统

Publications (2)

Publication Number Publication Date
CN116132017A CN116132017A (zh) 2023-05-16
CN116132017B true CN116132017B (zh) 2023-09-26

Family

ID=86305294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211434319.6A Active CN116132017B (zh) 2022-11-16 2022-11-16 隐私保护机器学习推理加速的方法与系统

Country Status (1)

Country Link
CN (1) CN116132017B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117371025B (zh) * 2023-09-18 2024-04-16 泉城省实验室 一种去中心化机器学习模型训练方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314211A (zh) * 2022-08-08 2022-11-08 济南大学 基于异构计算的隐私保护机器学习训练与推理方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11886989B2 (en) * 2018-09-10 2024-01-30 International Business Machines Corporation System for measuring information leakage of deep learning models

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314211A (zh) * 2022-08-08 2022-11-08 济南大学 基于异构计算的隐私保护机器学习训练与推理方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Secure Comparison Under Ideal/Real Simulation Paradigm;CHUAN ZHAO等;IEEE Access;第6卷;全文 *
张蕾 等.机器学习在网络空间安全研究中的应用.计算机学报.2018,41(9),全文. *
机器学习在网络空间安全研究中的应用;张蕾 等;计算机学报;41(9);全文 *

Also Published As

Publication number Publication date
CN116132017A (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
CN110995409B (zh) 基于部分同态加密算法的拟态防御裁决方法和系统
EP3924852B1 (en) Fast oblivious transfers
US11921905B2 (en) Secure collaboration between processors and processing accelerators in enclaves
US20100115260A1 (en) Universal secure token for obfuscation and tamper resistance
Sheik et al. Secure authentication schemes in cloud computing with glimpse of artificial neural networks: A review
KR20060018852A (ko) 랜덤 함수를 사용하는 실행의 증명
KR20210015264A (ko) 화이트박스 암호화를 이용한 puf 기반 사물인터넷 디바이스 인증 장치 및 방법
CN116132017B (zh) 隐私保护机器学习推理加速的方法与系统
Sepúlveda et al. Efficient and flexible NoC-based group communication for secure MPSoCs
CN115314211A (zh) 基于异构计算的隐私保护机器学习训练与推理方法及系统
Ruddick et al. Acceleration Attacks on {PBKDF2}: Or, What Is inside the {Black-Box} of {oclHashcat}?
US11824977B2 (en) Data processing system and method
Sepúlveda et al. Reconfigurable Group-Wise Security Architecture for NoC--Based MPSoCs Protection
Abela et al. Secure Implementation of a Quantum-Future GAKE Protocol
Caimi et al. Secure admission of applications in many-cores
US11924320B2 (en) Devices and methods for protecting cryptographic programs
Wang et al. HT2ML: An efficient hybrid framework for privacy-preserving Machine Learning using HE and TEE
Dwivedi et al. Cloud Security Enhancement Using Modified Enhanced Homomorphic Cryptosystem
Attuluri et al. Swarm Based Optimized Key Generation for Preserving the Privacy in Cloud Environment
Wang A New Paradigm for Practical Maliciously Secure Multi-Party Computation
Sepulveda et al. Hierarchical group-key management for NoC-based MPSoCs protection
Burlachenko et al. Federated Learning is Better with Non-Homomorphic Encryption
Bhuvanagiri Udayakumar Evaluation of XChaCha20-Poly1305 for Improved File System Level Encryption in the Cloud
Huang et al. Efficient Privacy-Preserving Machine Learning with Lightweight Trusted Hardware
Li et al. Nacc-Guard: a lightweight DNN accelerator architecture for secure deep learning

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