【技术实现步骤摘要】
一种数据处理方法和用于数据处理的芯片
[0001]本专利技术涉及计算机
,尤其涉及一种数据处理方法和用于数据处理的芯片。
技术介绍
[0002]同态加密是保持数据在密文状态下,能通过一些特殊操作从而实现明文之间的加法、乘法等基本运算。
[0003]例如,Paillier半同态加密算法能够满足加法和数乘同态,在基于同态加密的隐私计算中,通常需要进行大整数模幂、模乘等基本运算。如Paillier半同态加密算法基于复合剩余类的困难问题,也即大数分解的困难性假设,可以满足密文相乘对应明文相加。一个示例中,Paillier加密方案的私钥是两个素数p和q,假设为1024位,则其公钥是n=pq为2048位。可将一个数据x(0<x<n)作为明文,密文是在mod n2意义下,也就是Encrypt(x),即对x加密为一个4096位的密文。假设拥有另一个明文数据y的密文Encrypt(y),那么想要得到x+y的密文,只需要运算Encrypt(x+y) = Encrypt(x) * Encrypt(y) (mod n2)。注意到,对密文进行同态加法即进行4096位乘4096位并模上4096位的模乘运算。同理,同态数乘即为反复进行同态加法,那么明文上的数乘对应密文的指数运算,即Encrypt(y*x) = (Encrypt(x))
y (mod n2),其中y为已知的明文。可以看出,在Paillier半同态加密体系中,加解密操作均同时要用到模乘和模幂,同态加法操作即为模乘,同态数乘操作即为模幂 ...
【技术保护点】
【技术特征摘要】
1.一种数据处理方法,其特征在于,应用于芯片,所述芯片置于同态加密的密文计算节点,用于执行同态加密运算,所述芯片包括运算核,每个运算核中包括基本模运算单元,所述基本模运算单元包括:模加单元和蒙哥马利模乘单元和蒙哥马利模幂单元,所述方法包括:接收批量模运算的输入参数,所述输入参数通过应用层预计算得到;通过批量调度至少两个运算核的基本模运算单元对所述输入参数进行并行的模运算,得到批量模运算的结果,其中,每个运算核通过组合调用其内部的基本模运算单元独立实现模运算。2.根据权利要求1所述的方法,其特征在于,所述模加单元的输入包括字符数组表示的数据a、b、p、以及int型数据p_bitcount,其中,a和b是加数,p是模数,p_bitcount是模数的位长,模加单元的输出为a+b (mod p)。3.根据权利要求1所述的方法,其特征在于,所述蒙哥马利模乘单元的输入包括字符数组表示的数据a、b、p、n_prime、以及int型数据p_bitcount,其中,a和b是乘数,p是模数,n_prime是蒙哥马利模乘运算的辅助参数,n_prime为应用层基于模数p预计算得到,p_bitcount是模数的位长, n_prime=
ꢀ‑
p
‑
1 (mod r),r = 2
k
,k为固定基数,R=2
n+k
,R
‑
1 = 2
‑
(n+k) (mod p),n=p_bitcount,蒙哥马利模乘单元的输出为a*b*R
‑
1 (mod p)。4.根据权利要求1所述的方法,其特征在于,所述蒙哥马利模幂单元的输入包括字符数组表示的数据a、e、p、n_prime、r_square、以及int型数据e_bitcount和p_bitcount,其中,a是底数,e是指数,p是模数,n_prime是蒙哥马利模乘运算的辅助参数,r_square是蒙哥马利模幂运算的辅助参数,r_square = R
2 (mod p),n_prime和r_square分别为应用层基于模数p预计算得到,e_bitcount是指数的位长,p_bitcount是模数的位长,蒙哥马利模幂单元的输出为a
e * R (mod p)。5.根据权利要求1所述的方法,其特征在于,所述批量模运算包括批量模加运算,所述输入参数包括模数p 和count对操作数(a
i
, b
i
),其中,a
i
和b
i
为加数,i取值为1至count;所述通过批量调度至少两个运算核的基本模运算单元对所述输入参数进行并行的模运算,得到批量模运算的结果,包括:通过批量调度至少两个运算核中各运算核的模加单元,对模数p 和count对操作数(a
i
, b
i
)进行并行的模加运算,得到count对操作数的批量模加运算的结果。6.根据权利要求1所述的方法,其特征在于,所述批量模运算包括批量模乘运算,所述输入参数包括模数p、count对操作数(a
i
, b
i
)、辅助参数n_prime和r_square,其中,a
i
和b
i
为乘数,i取值为1至count;所述通过批量调度至少两个运算核的基本模运算单元对所述输入参数进行并行的模运算,得到批量模运算的结果,包括:通过批量调度至少两个运算核中各运算核的蒙哥马利模乘单元,利用辅助参数n_prime和r_square对模数p 和count对操作数(a
i
, b
i
)进行并行的模乘运算,得到count对操作数的批量模乘运算的结果。7.根据权利要求1所述的方法,其特征在于,所述批量模运算包括批量常数模乘运算,所述输入参数包括模数p 、count对操作数(a
i
, b)、辅助参数n_prime和r_square,其中,a
i
和b是乘数,b为常数,i取值为1至count;
所述通过批量调度至少两个运算核的基本模运算单元对所述输入参数进行并行的模运算,得到批量模运算的结果,包括:通过批量调度至少两个运算核中各运算核的蒙哥马利模乘单元,利用辅助参数n_prime和r_square对模数p 和count对操作数(a
i
, b)进行并行的常数模乘运算,得到count对操作数的批量常数模乘运算的结果。8.根据权利要求1所述的方法,其特征在于,所述批量模运算包括批量模幂运算,所述输入参数包括模数p、count对操作数(a
i
, e
i
)、辅助参数n_prime和r_square,其中,a
i
为底数,e
i
为指数,i取值为1至count;所述通过批量调度至少两个运算核的基本模运算单元对所述输入参数进行并行的模运算,得到批量模运算的结果,包括:通过批量调度至少两个运算核中各运算核的蒙哥马利模幂单元和蒙哥马利模乘单元,利用辅助参数n_prime和r_square对模数p 和count对操作数(a
i
, e
i
)进行并行的模幂运算,得到count对操作数的批量模幂运算的结果。9.根据权利要求1所述的方法,其特征在于,所述批量模运算包括批量常数模幂运算,所述输入参数包括模数p、count对操作数(a, e
i
)、辅助参数n_prime和r_square,其中,a为底数且a为常数,e
i
为指数,i取值为1至count;所述通过批量调度至少两个运算核的基本模运算单元对所述输入参数进行并行的模运算,得到批量模运算的结果,包括:通过批量调度至少两个运算核中各运算核的蒙哥马利模幂单元和蒙哥马利模乘单元,利用辅助参数n_prime和r_square对模数p 和count对操作数(a, e
i
)进行并行的常数模幂运算,得到count对操作数的批量常数模幂运算的结果。10.根据权利要求1所述的方法,其特征在于,所述批量模运算包括模乘法点积运算,所述输入参数包括模数p、第一操作数序列、第二操作数序列、辅助参数n_prime和r_square,其中,第一操作数序列和第二操作数序列分别包括count个操作数;所述通过批量调度至少两个运算核的基本模运算单元对所述输入参数进行并行的模运算,得到批量模运算的结果,包括:通过批量调度至少两个运算核中各运算核的蒙哥马利模乘单元和模加单元,利用辅助参数n_prime和r_square对模数p与第一操作数序列和第二操作数序列进行模乘法点积运算,得到第一操作数序列和第二操作数序列基于模数p的模乘法点积运算的结果。11.根据权利要求1所述的方法,其特征在于,所述批量模运算包括模指数点积运算,所述输入参数包括模数p、第一操作数序列、第二操作数序列、辅助参数n_prime和r_square,其中,第一操作数序列和第二操作数序列分别包括count个操作数;所述通过批量调度至少两个运算核的基本模运算单元对所述输入参数进行并行的模运算,得到批量模运算的结果,包括:通过批量调度至少两个运算核中各运算核的蒙哥马利模乘单元和蒙哥马利模幂单元,利用辅助参数n_prime和r_square对模数p与第一操作数序列和第二操作数序列进行模指数点积运算,得到第一操作数序列和第二操作数序列基于模数p的模指数点积运算的结果。12.根据权利要求1所述的方法,其特征在于,所述基本模运算单元还包括:随机数生成单元,所述批量模运算包括批量生成模随机数运算,所述输入参数包括模数p和随机数个数
count;所述通过批量调度至少两个运算核的基本模运算单元对所述输入参数进行并行的模运算,得到批量模运算的结果,包括:通过批量调度至少两个运算核中各运算核的随机数生成单元,对所述模数p 进行并行的生成模随机数运算,得到count个模数p意义下的随机数结果。13.根据权利要求1所述的方法,其特征在于,所...
【专利技术属性】
技术研发人员:黄熹之,李艺,
申请(专利权)人:华控清交信息科技北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。