首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种全同态乘法的GPU加速方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:南京邮电大学

摘要:本发明公开了一种全同态乘法的GPU加速方法,涉及信息安全领域。其加速方法包含以下步骤:首先确定同态乘法计算参数,获取计算所需的输入数据并存储至GPU中;对输入多项式执行快速数论变换计算,将多项式系数表达式转换为点值表达式,获得NTT域下的多项式结果;将NTT域下的多项式相乘得到NTT域下的乘法计算结果;对NTT域下的乘法计算结果执行逆快速数论变换计算,转换为系数表达式的结果。本发明采用内核融合技术,使用PTX指令并行化地进行模加、模乘、条件减法与约减计算,可大幅提升单位时间内同态乘法的执行效率,促进同态乘法的工业化应用。

主权项:1.一种全同态乘法的GPU加速方法,其特征在于,所述方法包括以下步骤:步骤S1:确定CKKS同态乘法计算参数,获取计算所需的输入数据并存储至GPU中;步骤S2:对多项式ax=a0,a1,bx=b0,b1执行快速数论变换计算,将多项式系数表达式转换为点值表达式,获得NTT域下的多项式结果 步骤S3:将NTT域下的多项式相乘得到NTT域下的乘法计算结果在全同态乘法中, 步骤S4:将NTT域下的乘法计算结果在逆快速数论计算的作用下转换为系数表达式的结果cx;其中,步骤S1具体如下:步骤S11:确定同态乘法计算参数,包括多项式系数大小N,模链长度L,获取固定参数下同态乘法所需的密文乘数多项式ax与密文被乘数多项式bx,密文多项式为基于残差数系统RNS下的系数表示,以aa0,a1、bb0,b1的密文形式存在,存储至GPU的全局内存中,步骤S12:获取RNS下的模数,每个模数表示为ql,0<l<L,模数均为小于64bit的正整数,存储至GPU的常量内存中,步骤S13:获取模数ql下快速数论变换NTT计算所需的旋转因子矩阵Rl,存储至GPU的纹理内存中,步骤S14:获取Barrett约减所需的计算因子,模数ql下计算得到计算因子将γl拆分为低64位与高64位顺序存储于数组γl[2]中,存储至常量内存中;其中,步骤S2具体如下:步骤S21:确定并行参数t,启动单个内核执行单次NTT计算,每个内核启动个块block,块内包含512个线程thread,每个线程生成大小为2t的寄存器用来存放计算所需的操作数,并行参数t满足M为共享内存大小,步骤S22:将全局内存中存储的模数q0下的多项式系数以间隔gap存储至共享内存中,gap初始值为N2,从共享内存中获取线程所需的2t个操作数存储于寄存器中,并执行t轮蝴蝶变换,t轮蝴蝶变换执行完成后更新gap取值为gap=gap>>t,更新共享内存中数据,再次执行t轮蝴蝶变换直至gap=1,此处,蝴蝶变换的计算步骤为:1从寄存器中获取当前线程计算所需的操作数x1,执行PTX指令下的条件约减计算,将操作数约减至0,2q0]范围内,作为U,2从寄存器中以gap为间隔获取操作数x2,从纹理内存中获取旋转因子,执行PTX下模数q0上的乘法运算,利用PTX下的约减计算后作为V;3对U、V执行PTX下的模加运算,结果存储为x1,4执行U+2q0-V计算,结果存储为x2,步骤S23:重复执行步骤S22,直至计算完成全部模数下的多项式系数;其中,步骤S3具体如下:步骤S31:启动单个内核执行单次乘法计算,每个内核启动个块,块内包含512个线程,每个线程生成大小为5×2t的寄存器用来存放计算所需的操作数,其中2t个寄存器存放多项式中的操作数,2t个寄存器存放多项式中的操作数,3×2t个寄存器存放计算结果多项式中的操作数,步骤S32:将全局内存中存储的模数q0下的多项式以内存连续拷贝的方式存储至寄存器中,对分别执行PTX下模数q0的乘法计算,利用PTX下的约减计算后结果分别存储为对于执行PTX下模数q0的乘法累加计算,计算结果存储为获得的乘法计算结果利用内存连续拷贝的方式,将寄存器中连续的2t个拷贝回全局内存中,步骤S33:重复执行步骤S32,直至计算完成全部模数下的多项式系数;其中,步骤S4具体如下:步骤S41:启动单个内核执行单次INTT计算,每个内核启动个块,块内包含512个线程,每个线程生成大小为2t的寄存器用来存放计算所需的操作数,步骤S42:将全局内存中存储的模数q0下的多项式系数以间隔gap存储至共享内存中,gap初始值为1,从共享内存中获取线程所需的2t个操作数存储于寄存器中,并执行t轮蝴蝶变换,t轮蝴蝶变换执行完成后更新gap取值为gap=gap<<t,更新共享内存中数据,再次执行t轮蝴蝶变换直至gap=4096,此处,蝴蝶变换的计算步骤包括:1从寄存器中获取当前线程计算所需的操作数x1,作为U;2从寄存器中以gap为间隔获取操作数x2,作为V;3执行U+V计算,利用PTX下的条件约减规约至两倍模数2q0,结果存储为x1;4执行U+2q0-V计算,从纹理内存中获取旋转因子,执行PTX下模数q0上的乘法运算,利用PTX下的约减计算后结果存储为x2,步骤S43:重复执行步骤S42,直至计算完成全部模数下的多项式系数。

全文数据:

权利要求:

百度查询: 南京邮电大学 一种全同态乘法的GPU加速方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。