一种数据处理方法、装置和用于数据处理的装置制造方法及图纸

技术编号:32356832 阅读:13 留言:0更新日期:2022-02-20 03:18
本发明专利技术实施例提供一种数据处理方法、装置和用于数据处理的装置。其中的方法包括:将参与密文计算的密文计算数据转换为低位密文数据和高位密文数据,所述密文计算数据为128位密文整数,所述低位密文数据表示所述128位密文整数的低64位,所述高位密文数据表示所述128位密文整数的高64位;将所述密文计算数据的低位密文数据和高位密文数据复制到计算平台中,所述计算平台采用小端序的方式存储所述低位密文数据和高位密文数据;基于所述计算平台,对所述密文计算数据的低位密文数据和高位密文数据执行密文计算,得到密文计算结果。本发明专利技术实施例可以提高基于密文的向量乘法和/或矩阵乘法的计算效率。矩阵乘法的计算效率。矩阵乘法的计算效率。

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


[0001]本专利技术涉及计算机
,尤其涉及一种数据处理方法、装置和用于数据处理的装置。

技术介绍

[0002]向量乘法,是指给定两个等长的向量a=(a1,a2,

,a
n
)和b=(b1,b2,

,b
n
),计算得到一个向量c=(a1b1,a
2 b2,

,a
n b
n
)。矩阵乘法,是指给定两个矩阵A
m
×
p
和B
p
×
n
,计算得到一个矩阵C
m
×
n
,其中
[0003]目前,在CPU(Central Processing Unit,中央处理器)上可以提供基础代数运算库,可以对向量乘法和矩阵乘法进行高效的计算。然而,CPU的位宽通常是32位或者64位。在隐私计算场景中,为了保证数据安全性,密文数据可以达到128位,对128位密文数据进行隐私训练和隐私推断时,通常需要执行向量乘法和/或矩阵乘法的计算。其中,隐私训练是指使用密文数据训练神经网络模型。隐私推断是指使用已有的网络对密文输入执行分类等任务。但是目前CPU平台上的基础代数运算库不支持128位整数的计算,导致向量乘法和矩阵乘法的数据长度受到限制。

技术实现思路

[0004]本专利技术实施例提供一种数据处理方法、装置和用于数据处理的装置,可以实现128位密文整数的向量乘法和/或矩阵乘法,在扩展向量乘法和矩阵乘法的密文数据长度的同时,可以保证向量乘法和/或矩阵乘法的执行效率和隐私安全。
[0005]为了解决上述问题,本专利技术实施例公开了一种数据处理方法,所述方法包括:
[0006]将参与密文计算的密文计算数据转换为低位密文数据和高位密文数据,所述密文计算数据为128位密文整数,所述低位密文数据表示所述128位密文整数的低64位,所述高位密文数据表示所述128位密文整数的高64位;
[0007]将所述密文计算数据的低位密文数据和高位密文数据复制到计算平台中,所述计算平台采用小端序的方式存储所述低位密文数据和高位密文数据;
[0008]基于所述计算平台,对所述密文计算数据的低位密文数据和高位密文数据执行密文计算,得到密文计算结果。
[0009]可选地,所述密文计算包括加法计算,所述对所述密文计算数据的低位密文数据和高位密文数据执行密文计算,得到密文计算结果,包括:
[0010]对两个加数的低位密文数据相加,得到加法计算结果的低位密文数据;
[0011]若所述两个加数的低位密文数据相加不存在进位,则对所述两个加数的高位密文数据相加,得到加法计算结果的高位密文数据;若所述两个加数的低位密文数据相加存在进位,则保存得到的进位,并对所述两个加数的高位密文数据以及所述进位相加,得到加法计算结果的高位密文数据;
[0012]根据所述加法计算结果的低位密文数据和高位密文数据,得到密文的加法计算结
果。
[0013]可选地,所述密文计算包括基础乘法计算Z=X
×
Y,乘数X和乘数Y均为128位密文整数;所述对所述密文计算数据的低位密文数据和高位密文数据执行密文计算,得到密文计算结果,包括:
[0014]基于乘数X的低位密文数据X
lo
、乘数X的高位密文数据X
hi
、乘数Y的低位密文数据Y
lo
、以及乘数Y的高位密文数据Y
hi
,执行下述计算得到密文的基础乘法计算结果Z:
[0015]Z=(X
lo
Y
lo
)
lo
+2
64
((X
lo
Y
hi
)
lo
+(X
hi
Y
lo
)
lo
+(X
lo
Y
lo
)
hi
)
lo

[0016]其中,(X
lo
Y
lo
)
lo
为基础乘法计算结果Z的低位密文数据,((X
lo
Y
hi
)
lo
+(X
hi
Y
lo
)
lo
+(X
lo
Y
lo
)
hi
)
lo
为基础乘法计算结果Z的高位密文数据。
[0017]可选地,所述密文计算包括向量乘法计算c=a
×
b,其中,向量a=(a1,a2,

,a
n
),向量b=(b1,b2,

,b
n
),向量a和向量b中的各元素均为128位密文整数;所述对所述密文计算数据的低位密文数据和高位密文数据执行密文计算,得到密文计算结果,包括:
[0018]分配n个线程,第i个线程基于a
i
的低位密文数据a
i,lo
和高位密文数据a
i,hi
,以及b
i
的低位密文数据b
i,lo
和高位密文数据b
i,hi
计算c
i
=a
i
×
b
i
;其中,a
i
为向量a中的第i个元素,b
i
为向量b中的第i个元素,i取值为1~n;
[0019]将n个线程得到的计算结果组成向量,得到密文的向量乘法计算结果。
[0020]可选地,所述密文计算包括矩阵乘法计算C=A
m
×
p
×
B
p
×
n
,其中,矩阵A
m
×
p
和矩阵B
p
×
n
中的各元素均为128位密文整数;所述对所述密文计算数据的低位密文数据和高位密文数据执行密文计算,得到密文计算结果,包括:
[0021]分配m
×
n个线程,第i
×
n+j个线程基于A
i,k
的低位密文数据A
i,k,lo
和高位密文数据A
i,k,hi
,以及B
k,j
的低位密文数据B
k,j,lo
和高位密文数据B
k,j,hi
计算其中,A
i,k
为矩阵A
m
×
p
中的第i行第k列元素,B
k,j
为矩阵B
p
×
n
中的第k行第j列元素,i的取值为1~m,j的取值为1~n,k的取本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:将参与密文计算的密文计算数据转换为低位密文数据和高位密文数据,所述密文计算数据为128位密文整数,所述低位密文数据表示所述128位密文整数的低64位,所述高位密文数据表示所述128位密文整数的高64位;将所述密文计算数据的低位密文数据和高位密文数据复制到计算平台中,所述计算平台采用小端序的方式存储所述低位密文数据和高位密文数据;基于所述计算平台,对所述密文计算数据的低位密文数据和高位密文数据执行密文计算,得到密文计算结果。2.根据权利要求1所述的方法,其特征在于,所述密文计算包括加法计算,所述对所述密文计算数据的低位密文数据和高位密文数据执行密文计算,得到密文计算结果,包括:对两个加数的低位密文数据相加,得到加法计算结果的低位密文数据;若所述两个加数的低位密文数据相加不存在进位,则对所述两个加数的高位密文数据相加,得到加法计算结果的高位密文数据;若所述两个加数的低位密文数据相加存在进位,则保存得到的进位,并对所述两个加数的高位密文数据以及所述进位相加,得到加法计算结果的高位密文数据;根据所述加法计算结果的低位密文数据和高位密文数据,得到密文的加法计算结果。3.根据权利要求1所述的方法,其特征在于,所述密文计算包括基础乘法计算Z=X
×
Y,乘数X和乘数Y均为128位密文整数;所述对所述密文计算数据的低位密文数据和高位密文数据执行密文计算,得到密文计算结果,包括:基于乘数X的低位密文数据X
lo
、乘数X的高位密文数据X
hi
、乘数Y的低位密文数据Y
lo
、以及乘数Y的高位密文数据Y
hi
,执行下述计算得到密文的基础乘法计算结果Z:Z=(X
lo
Y
lo
)
lo
+2
64
((X
lo
Y
hi
)
lo
+(X
hi
Y
lo
)
lo
+(X
lo
Y
lo
)
hi
)
lo
;其中,(X
lo
Y
lo
)
lo
为基础乘法计算结果Z的低位密文数据,((X
lo
Y
hi
)
lo
+(X
hi
Y
lo
)
lo
+(X
lo
Y
lo
)
hi
)
lo
为基础乘法计算结果Z的高位密文数据。4.根据权利要求1所述的方法,其特征在于,所述密文计算包括向量乘法计算c=a
×
b,其中,向量a=(a1,a2,

,a
n
),向量b=(b1,b2,

,b
n
),向量a和向量b中的各元素均为128位密文整数;所述对所述密文计算数据的低位密文数据和高位密文数据执行密文计算,得到密文计算结果,包括:分配n个线程,第i个线程基于a
i
的低位密文数据a
i,lo
和高位密文数据a
i,hi
,以及b
i
的低位密文数据b
i,lo
和高位密文数据b
i,hi
计算c
i
=a
i
×
b
i
;其中,a
i
为向量a中的第i个元素,b
i
为向量b中的第i个元素,i取值为1~n;将n个线程得到的计算结果组成向量,得到密文的向量乘法计算结果。5.根据权利要求1所述的方法,其特征在于,所述密文计算包括矩阵乘法计算C=A
m
×
p
×
B
p
×
n
,其中,矩阵A
m
×
p
和矩阵B
p
×
n
中的各元素均为128位密文整数;所述对所述密文计算数据的低位密文数据和高位密文数据执行密文计算,得到密文计算结果,包括:分配m
×
n个线程,第i
×
n+j个线程基于A
i,k
的低位密文数据A
i,k,lo
和高位密文数据A
i,k,hi
,以及B
k,j
的低位密文数据B
k,j,lo
和高位密文数据B
k,j,hi
计算其中,A
i,k
为矩阵A
m
×
p
中的第i行第k列元素,B
k,j
为矩阵B
p
×
n
中的第k行第j列元素,i的取值为1
~m,j的取值为1~n,k的取值为1~p;将m
×
n个线程得到的计算结果组成矩阵,得到密文的矩阵乘法计算结果。6.根据权利要求1所述的方法,其特征在于,所述对所述密文计算数据的低位密文数据和高位密文数据执行密文计算,得到密文计算结果,包括:对所述密文计算数据的低位密文数据和高位密文数据执行密文计算,得到中间密文计算结果;若所述中间密文计算结果为128位密文整数,则将所述中间密文计算结果转换为低位密文数据和高位密文数据;基于所述中间密文计算结果的低位密文数据和高位密文数据计算得到最终的密文计算结果。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:采用小端序的方式将所述密文计算结果复制到内存中。8.根据权利要求1至7任一所述的方法,其特征在于,所述计算平台包括中央处理器、图形处理器、双计算单元中的任意一种。9.一种数据处理装置,其特征在于,所述装置包括:数据转换模块,用于将参与密文计算的密文计算数据转换为低位密文数据和高位密文数据,所述密文计算数据为128位密文整数,所述低位密文数...

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

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

1