一种数据处理方法和用于数据处理的芯片技术

技术编号:29023650 阅读:22 留言:0更新日期:2021-06-26 05:24
本发明专利技术实施例提供一种数据处理方法和用于数据处理的芯片,所述芯片置于同态加密的密文计算节点,用于执行同态加密运算,所述芯片包括运算核,每个运算核中包括基本模运算单元,所述基本模运算单元包括:模加单元和蒙哥马利模乘单元和蒙哥马利模幂单元,所述方法包括:接收批量模运算的输入参数,所述输入参数通过应用层预计算得到;通过批量调度至少两个运算核的基本模运算单元对所述输入参数进行并行的模运算,得到批量模运算的结果,其中,每个运算核通过组合调用其内部的基本模运算单元独立实现模运算。本发明专利技术实施例可以提高批量模运算的效率,进而提高同态加密运算的性能。进而提高同态加密运算的性能。进而提高同态加密运算的性能。

【技术实现步骤摘要】
一种数据处理方法和用于数据处理的芯片


[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半同态加密体系中,加解密操作均同时要用到模乘和模幂,同态加法操作即为模乘,同态数乘操作即为模幂
[0004]而模运算由于计算量较大通常需要耗费大量时间,为了提高隐私计算的效率,可以采用蒙哥马利算法对这些模幂、模乘等基本运算进行加速。然而,当运算数据量很大的时候(比如100万次的4096位为底数和模数、4096位为指数的模幂),即便使用了蒙哥马利算法进行加速,在实际应用场景中隐私计算系统的性能仍难以满足隐私计算的需求。

技术实现思路

[0005]本专利技术实施例提供一种数据处理方法和用于数据处理的芯片,以提高批量模运算的效率,进而提高同态加密运算的性能。
[0006]为了解决上述问题,本专利技术实施例公开了一种数据处理方法,所述方法应用于芯片,所述芯片置于同态加密的密文计算节点,用于执行同态加密运算,所述芯片包括运算核,每个运算核中包括基本模运算单元,所述基本模运算单元包括:模加单元和蒙哥马利模乘单元和蒙哥马利模幂单元,所述方法包括:接收批量模运算的输入参数,所述输入参数通过应用层预计算得到;通过批量调度至少两个运算核的基本模运算单元对所述输入参数进行并行的模运算,得到批量模运算的结果。
[0007]另一方面,本专利技术实施例公开了一种用于数据处理的芯片,所述芯片置于同态加密的密文计算节点,用于执行同态加密运算,所述芯片包括运算核,每个运算核中包括基本模运算单元,所述基本模运算单元包括:模加单元和蒙哥马利模乘单元和蒙哥马利模幂单
元;所述芯片用于接收批量模运算的输入参数,并通过批量调度至少两个运算核的基本模运算单元对所述输入参数进行并行的模运算,得到批量模运算的结果,所述输入参数通过应用层预计算得到。
[0008]又一方面,本专利技术实施例公开了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如前述一个或多个所述的数据处理方法。
[0009]本专利技术实施例包括以下优点:本专利技术实施例通过软硬件结合的方式,从基本的模运算单元出发,将一些基本的模运算单元封装在芯片中。所述芯片置于同态加密的密文计算节点,所述芯片包括运算核,每个运算核中包括基本模运算单元,每个运算核通过组合调用这些基本模运算单元,可以独立实现模运算,进而通过批量调用运算核可以实现批量模运算。本专利技术实施例通过软硬件结合的方式,将同态加密运算中时间消耗较大的操作集成到高效的芯片中,软件应用层仅需要进行少量的预计算。由此,使得采用该芯片的密文计算系统能够充分发挥软件灵活、硬件高效的特点,从而极大提高同态加密运算的性能,使得隐私计算系统的性能可以满足隐私计算在实际场景中大数据量运算的需求。
附图说明
[0010]为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0011]图1是本专利技术的一种数据处理方法实施例的步骤流程图;图2是本专利技术的一种用于数据处理的芯片200实施例的结构框图。
具体实施方式
[0012]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0013]本专利技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本专利技术实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
[0014]方法实施例参照图1,示出了本专利技术的一种数据处理方法实施例的步骤流程图,所述方法应用
于芯片,所述芯片置于同态加密的密文计算节点,用于执行同态加密运算,所述芯片包括运算核,每个运算核中包括基本模运算单元,所述基本模运算单元包括:模加单元和蒙哥马利模乘单元和蒙哥马利模幂单元,所述方法具体可以包括如下步骤:步骤101、接收批量模运算的输入参数,所述输入参数通过应用层预计算得到;步骤102、通过批量调度至少两个运算核的基本模运算单元对所述输入参数进行并行的模运算,得到批量模运算的结果,其中,每个运算核通过组合调用其内部的基本模运算单元独立实现模运算。
[0015]本专利技术实施例提供的数据处理方法可应用于同态加密的密文计算系统,比如需要执行一个密文计算任务,该密文计算任务中包括批量模运算,那么,可以先利用软件应用层对批量模运算中需要用到的参数进行预计算,得到批量模运算的输入参数,并且将批量模运算的输入参数写入硬件(芯片)的运算核,每个运算核根据模运算的类型,调用相应的基本模运算单元,分别独立进行模运算,进而可以得到批量模运算的结果,可以极大提高批量模运算的计算效率。此外,只要模数不变,预计算的参数只需要计算一次就可以反复使用,可以进一步提高计算效率。
[0016]本专利技术实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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所述的方法,其特征在于,所...

【专利技术属性】
技术研发人员:黄熹之李艺
申请(专利权)人:华控清交信息科技北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1