SLALOM: FAST, VERIFIABLE AND PRIVATE EXECUTION OF NEURAL NETWORKS IN TRUSTED HARDWARE

概述

本文提出了SLALOM,以一种将神经网络的线性层外包给GPU,非线性层在可信执行环境TEE中进行。想要使一个网络使用SLALOM需要三个步骤,下面将一一阐述。
在这里插入图片描述

1.输入和权重被量化并嵌入到场F中

SLALOM首先将神经网络所有的输入和权重转化为整数。将整数嵌入到整数域 Zp 中,其中 p 是一个素数,且比深度神经网络(DNN)评估中计算出的所有值都要大,以避免环绕。
对于输入x采用顶点表示法:
x ′ = r o u n d ( 2 l ∗ x ) x^{'} = round(2^{l}*x) x=round(2lx)
其中l为设定常数。
对于权重W:
w ′ = r o u n d ( 2 l ∗ w ) w^{'} = round(2^{l}*w) w=round(2lw)
对于偏置b:
b ′ = r o u n d ( 2 2 l ∗ b ) b^{'} = round(2^{2l}*b) b=round(22lb)
最后将输出缩放到 2 − l 2^{-l} 2l并且重新舍入为整数。这样就完成了第一步。

2.线性层外包并使用Freivalds算法进行验证

Freivalds算法思想
A ∗ B ∗ r = C ∗ r A *B *r=C *r ABr=Cr 其中r为随机值,则 A ∗ B = C A *B =C AB=C不成立的概率小于0.5,重复判断k次,则错误率就小于 1 2 k \frac{1}{2^{k}} 2k1
本文使用该算法其实就是为了验证外包出去线性层的完整性。从下图可以看到每个从服务端返回的结果都要进行验证。
在这里插入图片描述

3.线性层的输入使用预先计算的伪随机流进行加密,以保证隐私

TEE使用加密伪随机数生成器生成盲因子。预计算的非致盲因子 被加密并且存储到非可信环境中。在线阶段TEE使用相同的PRNG种子重新产生盲因子,并且使用预先计算的解盲因子对外包线性层的输出进行解密。
在这里插入图片描述

限制

1.只能进行推理而不能进行训练
2.仅实现了tensorflow框架下的DNN

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值