【隐私计算】对SIMD编码的粗浅理解

首先需要知道,同态加密是在多项式上进行的,基于RLEW的整体流程如下:

在这里插入图片描述
将单个数编码到一个N阶(N项)多项式中,多项式系数的利用率极低。而在神经网络中,我们需要计算的东西往往是一个很大的矩阵/tensor,并非不是单个数。所以需要打包编码技术(packing)将很多数同时编码到同一个多项式中,来提高多项式系数的利用率。

将一个数组编码进多项式,可以分为两种形式:

在这里插入图片描述
系数编码可以参考Cheetah的做法,Cheetah自定义了一套编码规则,使多项式相乘后的结果多项式中的一些系数正好是需要的卷积结果。
这里主要讨论点值编码,也就是SIMD编码。SIMD编码被广泛用在全同态方案中,包括CKKS、BFV、BGV等。

SIMD指的是把一系列数通过中国剩余定理(CRT)打包(pack)到同一个多项式中,使一次多项式乘法计算可以完成多次明文乘法。计算必须是在素数域 Z p \mathbb Z_p Zp上。

x n + 1 x^n+1 xn+1可以表示为 n n n个多项式的积:
x n + 1 = ( x + a 1 ) ( x + a 2 ) ⋯ ( x + a n ) m o d    p x^n+1 = (x+a_1)(x+a_2)\cdots (x+a_n) \mod p xn+1=(x+a1)(x+a2)(x+an)modp

例子:设 p = 17 p=17 p=17,多项式阶数 N = 2 N=2 N=2,于是
x 2 + 1 = x 2 − 17 x + 52 m o d    17 = ( x − 4 ) ( x − 13 ) m o d    17 x^2+1 = x^2-17x+52 \mod 17 = (x-4)(x-13) \mod 17 x2+1=x217x+52mod17=(x4)(x13)mod17

f ( x ) m o d    ( x n + 1 ) f(x)\mod (x^n+1) f(x)mod(xn+1)可以表示为 n n n个整数:
x i = f ( x ) m o d    ( x + a i ) x_i = f(x)\mod (x+a_i) xi=f(x)mod(x+ai)
f ( x ) m o d    ( x n + 1 ) f(x)\mod (x^n+1) f(x)mod(xn+1)打包了 a i a_i ai

例子: x m o d    ( x 2 + 1 ) x \mod (x^2+1) xmod(x2+1)可以表示为 x m o d    ( x − 4 ) , x m o d    ( x − 13 ) x \mod (x-4), x \mod (x-13) xmod(x4),xmod(x13),也就是 x m o d    ( x 2 + 1 ) x \mod (x^2+1) xmod(x2+1)打包了4和13。

给定 n n n个整数,可以通过CRT找到对应 f ( x ) f(x) f(x)来编码这些整数。
例子: 2 x − 7 2x-7 2x7打包了1和2,因为 2 x − 7 m o d    ( x − 4 ) = 1 , 2 x − 7 m o d    ( x − 13 ) = 2 2x-7 \mod (x-4)=1, 2x-7 \mod (x-13)=2 2x7mod(x4)=1,2x7mod(x13)=2

打包在模 p p p上具有同态性:

  • 加法: x + ( 2 x − 7 ) x+(2x-7) x+(2x7)打包了5和15
    • 3 x − 7 m o d    ( x − 4 ) = 5 , 3 x − 7 m o d    ( x − 13 ) = 15 3x-7 \mod (x-4)=5, 3x-7 \mod (x-13)=15 3x7mod(x4)=5,3x7mod(x13)=15
  • 乘法: x ⋅ ( 2 x − 7 ) x\cdot(2x-7) x(2x7)打包了4和9
    • 2 x 2 − 7 x m o d    ( x 2 + 1 ) = − 7 x − 2 2x^2-7x \mod (x^2+1) = -7x - 2 2x27xmod(x2+1)=7x2
    • − 7 x − 2 m o d    ( x − 4 ) = 4 , − 7 x − 2 m o d    ( x − 13 ) = 9 -7x - 2 \mod (x-4) = 4, -7x - 2 \mod (x-13) = 9 7x2mod(x4)=4,7x2mod(x13)=9

值得注意的是,系数编码只具有加法同态性,SIMD编码同时具有加法和乘法同态性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.zwX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值