Document
拖动滑块完成拼图
个人中心

预订订单
服务订单
发布专利 发布成果 人才入驻 发布商标 发布需求

在线咨询

联系我们

龙图腾公众号
首页 专利交易 IP管家助手 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索
当前位置 : 首页 > 专利喜报 > 西北工业大学李慧贤获国家专利权

西北工业大学李慧贤获国家专利权

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

龙图腾网获悉西北工业大学申请的专利基于GPU并行优化KNTT算法的全同态加密门自举方法获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN116545605B

龙图腾网通过国家知识产权局官网在2025-08-15发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202310365159.2,技术领域涉及:H04L9/00;该发明授权基于GPU并行优化KNTT算法的全同态加密门自举方法是由李慧贤;邹信元;潘登;王浩设计研发完成,并于2023-04-07向国家知识产权局提交的专利申请。

基于GPU并行优化KNTT算法的全同态加密门自举方法在说明书摘要公布了:本发明提供了一种基于GPU并行优化KNTT算法的全同态加密门自举方法,解决了现有TFHE方案中门自举算法的存在效率低的不足之处。该方法从原来的计算多项式相乘TLWE密文扩展到矩阵和多项式的乘法运算TGSW密文和TLWE密文,在原方案的基础上省略了NTT变换生成的中间项,统一采用特定的矩阵矩阵I和矩阵E进行相乘获得最终结果,大幅简化了算法的步骤,使其运行效率比原始的NTT算法更高。

本发明授权基于GPU并行优化KNTT算法的全同态加密门自举方法在权利要求书中公布了:1.基于GPU并行优化KNTT算法的全同态加密门自举方法,其特征在于,包括以下步骤: 步骤1、门自举初始化 定义门自举的输入为一个TLWE密文c=TLWEsμ=a,b∈Tp+1,其中a=a1,a2,...,ap∈Tp,T表示实环RZ,e为从高斯分布上选取的噪声; 所述TLWE密文对应的明文空间为M,M∈{μ0,μ1},其中,μ0=0,μ1∈T,且μ0≠μ1; 所述TLWE密文的加密密钥为s=s1,s2,...,sp∈Bp,B∈{0,1}; 1.1选取用于门自举过程中盲旋转算法的自举密钥 自举密钥为p个TRGSW密文,p为正整数; 所述p个TRGSW密文对应的加密密钥为s”∈BN[X]K; 其中,K为正整数;N为2的整数次幂,表示TRGSW密文中的多项式的项数; 每个TRGSW密文中对应的明文分别为组成加密密钥s=s1,s2,...,sp∈Bp的p个比特,该自举密钥BK=BK1,BK2,...,BKp表示为如下形式: BKi=TRGSWs'si,i=1,2,...,p 1.2选取用于门自举过程中密钥转换算法的转换密钥 转换密钥表示为如下形式: KSKs'→s={KSKi,j},i=1,2,...,p,j=1,2,...,t 其中,KSKi,j∈TLWEss'i·2-j,p和t均为正整数,t表示密钥转换过程的精度; 转换密钥的功能为将密钥s'∈Bp变换到步骤1.1中的加密密钥s∈Bp; 其中,s'∈Bp是TRGSW密文对应的加密密钥s”∈BN[X]K经过密钥提取得到的结果,即s'=KeyExtracts”; 1.3进行门自举初始化 令令为最接近2Nai的整数,令为最接近2Nb的整数,则初始密文中的元素变为了有初始多项式构造0,v,0表示n维的0向量,则0,v为一个对应明文为多项式v的TRLWE密文,得到初始的并将ACC0存储在全局内存中; 步骤2、近似gadget分解得到密文矩阵和多项式 将步骤1初始化得到的ACC0,初始密文和自举密钥BK=BK1,BK2,...,BKp作为下述整个过程的输入,令 将ACC进行gadget分解的结果表示为ACC=A1,A2,...,AK,AK+1∈TNxK+1,其中对于每一个Ak=c0k+c1kx+c2kx2+...+cN-1kxN-1,k=1,2,...,K+1,将多项式Ak的全部系数改写为: 令这里k=1,2,...,K+1,q=1,2,...,L,得到最终结果 decHACC=A11,...,A1L,...,AK+11,...,AK+1L 其中,K,L表示近似gadget分解矩阵的大小,均为正整数,Bg表示分解矩阵中的元素; 步骤3、利用GPU并使用结合Karatsuba乘法的NTT优化算法实现密文中矩阵与多项式的乘法 以Karatsuba乘法的分解次数α为基准,设定α的取值范围为α∈{1,2},执行下述的矩阵与多项式乘法步骤: 3.1将大的多项式和矩阵分解为小的子多项式和矩阵 对于步骤2中的和BK1,将其作为输入,设定支持环多项式分解的环同构如下: 其中 依据上述同构选择α的取值; 当α=1时,上述同构为Zq[ξ']=R,ξ'=η2; 将大的多项式Akq进行拆分,即其中Ar为Akq拆分多项式后所得的子项,其中Ar与N和α的关系为: 当α=1时,Akq展开写成如下形式: Akq=A0+η·A1 同理,对密钥BK中的子项BK1进行同等拆分; 由于BK1为一个矩阵,将其每一行表示为多项式其中,为Bk拆分后所得子项,其中与N和α的关系为: 当α=1时,将BK1中的子多项式Bk展开写成如下形式: 上述的Akq∈Zq[η],BK1∈Zq[η]K, 当α=2时,上述同构为Zq[η]=Zq[ξ'][x]x4-ξ'=R[η],ξ'=η4,将大的多项式Akq进行拆分,即其中Ar为Akq拆分多项式后所得的子项,Ar中的元素值参考上述Ar的通项;将Akq展开写成如下形式: Aik=A0+η·A1+η2·A2+η3·A3 同理,对密钥BK1进行同等拆分; 将其每一行表示为多项式其中为Bk拆分后所得子项,中的元素值参考上述的通项;将BK1展开写成如下形式: 上述的Akq∈Zq[η],BK1∈Zq[η]K,B0 k,B1 k,B2 k,B3 k,A0,A1,A2,A3∈Zq[ξ'],0k≤K; 3.2子多项式的NTT变换 以步骤3.1中得到的子项Ar和作为输入进行NTT变换,将NTT过程中的模素数b的原根代入多项式中代替复平面上的单位根进行FFT的数学变换即为NTT变换,即: 在NTT变换中,W为模素数b的一个原根; 将多项式分解后得到的每一个子项对应W为模素数b的一个原根;并将Ar中的保存在共享内存xi中,i根据α分为r部分; 同理,对多项式也进行上述NTT变换,根据BK1的行数K分配线程数,并提前对NTTξ进行计算; 当α=1时,计算NTTA0,NTTA1,其中0<k≤K,共需2K+2次的NTT变换; 当α=2时,计算NTTA0,NTTA1,NTTA2,NTTA3, 其中0<k≤K,共需4K+4次的NTT变换; 当Karatsuba乘法的分解次数为α时,NTT变换为2αK+1次; 3.3多项式NTT变换后的Karatsuba乘法 将该过程的最终结果用多项式形式S表示; 利用Karatsuba乘法对上述得到的经过NTT变换的子多项式进行计算; 该步骤在GPU上实现,基于矩阵BK1的大小安排各个线程,对于一个K×L大小的矩阵BK1来说,共安排K个线程,在每一个线程内,对于矩阵BK1中的每一个多项式和Akq相乘来说,依据α的取值生成如下初始矩阵; 当α=1时,Karatsuba乘法为如下形式: 生成初始矩阵I和初始矩阵E如下: 得到最终结果多项式S中的每一个子项如下表示,其中0<k≤K: 当α=2,Karatsuba乘法为如下形式: 生成初始矩阵I和初始矩阵E如下: 得到最终结果多项式S中的每一个子项如下表示,其中0<k≤K: 3.4NTT逆变换 根据步骤3.3中所得的多项式S进行NTT的逆变换,获取多项式乘积最终结果,并存储在全局内存中,该结果即为ACC1; ACC1=S=NTT-1Skξ,其中0<k≤K; 步骤4、得到门自举的最终结果 4.1将步骤3中得到的ACC1代替ACC0,用BK2代替BK1,重复上述步骤2和步骤3;而后将步骤3中得到的结果ACC和密钥BK中的子项作为输入返回进行步骤2和步骤3,直到密钥BKp已得到使用,得到ACCp; 4.2将所得ACCp进行密文提取,选择ACCp=A'0,A'1,...,A'K中的每个多项式的常数项组成一个新的密文,并且将最后一项加上μ',得到密文c'=c00,c01,...,c0K+μ',令其中c'kr∈{0,1},最终得到门自举的结果,密文为:

如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人西北工业大学,其通讯地址为:710072 陕西省西安市友谊西路127号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。

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