一种密文加和方法及装置制造方法及图纸

技术编号:38335063 阅读:14 留言:0更新日期:2023-08-02 09:16
本发明专利技术公开了一种密文加和方法及装置。该方法应用于包括矩阵计算单元的运算电路。在该方法中,矩阵计算单元接收N个密文;矩阵计算单元根据N个密文构建深度为H、2

【技术实现步骤摘要】
一种密文加和方法及装置


[0001]本申请涉及加密
,尤其涉及一种密文加和方法及装置。

技术介绍

[0002]全同态加密是一种保护数据隐私的加密算法,其能够在不解密的情况下通过操作密文实现对明文的计算,使得明文计算能够在不受信任的环境完成。目前,全同态加密发展了三代。其中,第一代同态加密算法主要是理论探讨,不具有实用性。第二代全同态加密算法支持批量处理,能够同时处理多个基本的同态加法和同态乘法,但不擅长非线性函数计算。第三代全同态加密算法擅长非线性函数计算,但不支持批量处理。
[0003]在第三代全同态加密算法中,可编程自举(programmable bootstrapping,PBS)算法因其在密文上高效率的非线性函数计算能力受到众多关注。但该PBS算法在用于多个密文的加和时,会出现填充位不够,或者编码区间溢出的问题,导致计算结果错误。

技术实现思路

[0004]本申请实施例提供一种密文加和方法及装置,用以消耗较少的填充位实现多个密文的加和。
[0005]第一方面,本申请提供一种密文加和方法。该方法可以应用于包括矩阵计算单元的运算电路。在该方法中,矩阵计算单元接收N个密文;矩阵计算单元根据N个密文构建深度为H的二叉树,其中,所述二叉树包括2
H
‑1个叶子节点,所述2
H
‑1个叶子节点中的N个叶子节点与所述N个密文一一对应,所述N为大于2
H
‑2且小于或等于2
H
‑1的整数,所述H为大于或等于2的整数;以及,矩阵计算单元从所述二叉树的第H层开始,对每一层中的每两个兄弟节点对应的两个密文进行加和,获取所述二叉树的根节点对应的密文,其中,两个兄弟节点对应的两个密文的加和密文是所述两个兄弟节点的父节点对应的密文,所述第H层是所述2
H
‑1个叶子节点所在的层,所述根节点对应的密文是所述N个密文的加和密文。
[0006]在上述实施例中,对待加和的N个密文构建深度为H的二叉树,并从该二叉树的第H层开始,对每一层中的每两个兄弟节点对应的两个密文进行加和,得到该N个密文的加和密文。一层加和运算消耗一个填充位,相较于多个密文逐一进行加和,一次加和方式消耗一个填充位的方式,本申请实施例可以通过消耗较少的填充位的实现对多个密文的加和。
[0007]在一种可能的设计中,矩阵计算单元对每一层中的每两个兄弟节点对应的两个密文进行加和,可以为:矩阵计算单元通过第一加和方式对每一层中的每两个兄弟节点对应的两个密文进行加和,其中,所述第一加和方式是消耗填充位的加和方式。
[0008]通过上述设计,可以通过消耗填充位的加和方式对二叉树的每一层进行加和,得到N个密文的加和密文。
[0009]在一种可能的设计中,该方法还可以包括:若已知第一范围,则矩阵计算单元根据所述第一范围,确定(H

1)层中的M层中的每一层通过第一加和方式进行加和,以及所述(H

1)层中除了所述M层之外的每一层通过第二加和方式进行加和,其中,所述第一范围是所述
加和密文的编码区间的取值范围,所述第一加和方式是消耗填充位的加和方式,所述第二加和方式是不消耗填充位的加和方式,所述(H

1)层是所述二叉树中除了所述根节点所在的层之外的层,所述M为大于0且小于或等于所述(H

1)的整数;若未知所述第一范围,则矩阵计算单元确定所述(H

1)层中的每一层通过所述第一加和方式进行加和。
[0010]通过上述设计,可以通过判断是否已知第一范围,选择不同的加和方式。在已知第一范围的情况下,二叉树中的M层使用消耗填充位的加和方式进行加和,剩余的使用不消耗填充位的加和方式进行加和,能够基于第一范围控制填充位的消耗,减少填充位的消耗,能够避免编码区间的溢出,实现对多个密文的加和处理。而在未知第一范围的情况下,则使用第一加和方式进行加和,也能够以较少的填充位消耗实现多个密文的加和处理。
[0011]在一种可能的设计中,所述M层是所述二叉树中的第H层到第(H

M)层之间的M层。
[0012]通过上述设计,可以先使用消耗填充位的加和方式进行加和,再使用不消耗填充位的加和方式进行加和,这样可以避免因先使用不消耗填充位的加和方式进行加和而导致编码区间溢出的问题。
[0013]在一种可能的设计中,所述M可以满足如下关系:
[0014]且(b
′‑
a

)≤2
M
×
d
[0015]其中,[a

,b

]是所述第一范围,[a,b]是所述N个密文的编码区间,d是所述N个密文中的一个密文的编码区间的长度。
[0016]通过上述设计,可以确定二叉树中使用第一加和方式进行加和的层数。可选的,M可以是满足该关系的最小正整数。
[0017]在一种可能的设计中,在所述N小于2
H
‑1,且所述N为偶数时,所述方法还可以包括:矩阵计算单元根据所述N个密文,确定P个补充密文,其中,所述P个补充密文中的P/2个补充密文的密文值是第一密文值,剩余的P/2个补充密文的密文值是所述第一密文值的相反数,所述第一密文值是第一密文的密文值,所述第一密文属于所述N个密文,所述P为(2
H
‑1‑
N)。
[0018]通过上述设计,在待加和的密文的数量不足以构建二叉树的叶子节点,且待加和的密文的数量为偶数时,可以确定P个补充密文。由于该P个补充密文中的P/2个补充密文的密文值是第一密文值,剩余的P/2个补充密文的密文值是该第一密文值的相反数,所以,该P个补充密文的加和密文不影响N个密文的加和密文的明文。
[0019]在一种可能设计中,矩阵计算单元根据N个密文构建深度为H的二叉树,可以为:矩阵计算单元根据所述N个密文和所述P个补充密文,构建所述二叉树,其中,所述P个补充密文与所述二叉树中的P个叶子节点一一对应,所述P个叶子节点是所述2
H
‑1个叶子节点中除了所述N个密文对应的N个叶子节点之外的节点。
[0020]通过上述设计,可以根据N个密文和P个补充密文构建二叉树,该N个密文和P个补充密文与二叉树的叶子节点一一对应。
[0021]在一种可能的设计中,在所述N小于2
H
‑1,且所述N为奇数时,所述方法还可以包括:矩阵计算单元根据所述N个密文,确定Q个补充密文,其中,所述Q个补充密文中的(Q+2)/2个补充密文的密文值是第二密文值,剩余的(Q

2)/2个补充密文的密文值是所述第二密文值的相反数,所述第二密文值是第二密文的密文值的一半,所述第二密文属于所述N个密文,所述Q为(2
H
‑1‑
N+1)。
[0022]通过上述设计,在待加和的密文的数量不足以构建二叉树的叶子节点,且待加和
的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种密文加和方法,应用于包括矩阵计算单元的运算电路,其特征在于,包括:所述矩阵计算单元接收N个密文;所述矩阵计算单元根据N个密文构建深度为H的二叉树,其中,所述二叉树包括2
H
‑1个叶子节点,所述2
H
‑1个叶子节点中的N个叶子节点与所述N个密文一一对应,所述N为大于2
H
‑2且小于或等于2
H
‑1的整数,所述H为大于或等于2的整数;所述矩阵计算单元从所述二叉树的第H层开始,对每一层中的每两个兄弟节点对应的两个密文进行加和,获取所述二叉树的根节点对应的密文,其中,两个兄弟节点对应的两个密文的加和密文是所述两个兄弟节点的父节点对应的密文,所述第H层是所述2
H
‑1个叶子节点所在的层,所述根节点对应的密文是所述N个密文的加和密文。2.根据权利要求1所述的方法,其特征在于,所述矩阵计算单元对每一层中的每两个兄弟节点对应的两个密文进行加和,包括:所述矩阵计算单元通过第一加和方式对每一层中的每两个兄弟节点对应的两个密文进行加和,其中,所述第一加和方式是消耗填充位的加和方式。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:若已知第一范围,则所述矩阵计算单元根据所述第一范围,确定(H

1)层中的M层中的每一层通过第一加和方式进行加和,以及所述(H

1)层中除了所述M层之外的每一层通过第二加和方式进行加和,其中,所述第一范围是所述加和密文的编码区间的取值范围,所述第一加和方式是消耗填充位的加和方式,所述第二加和方式是不消耗填充位的加和方式,所述(H

1)层是所述二叉树中除了所述根节点所在的层之外的层,所述M为大于0且小于或等于所述(H

1)的整数;若未知所述第一范围,则所述矩阵计算单元确定所述(H

1)层中的每一层通过所述第一加和方式进行加和。4.根据权利要求3所述的方法,其特征在于,所述M层是所述二叉树中的第H层到第(H

M)层之间的M层。5.根据权利要求3或4所述的方法,其特征在于,所述M满足如下关系:且(b
′‑
a

)≤2
M
×
d其中,[a

,b

]是所述第一范围,[a,b]是所述N个密文的编码区间,d是所述N个密文中的一个密文的编码区间的长度。6.根据权利要求1至5中任一项所述的方法,其特征在于,在所述N小于2
H
‑1,且所述N为偶数时,所述方法还包括:所述矩阵计算单元...

【专利技术属性】
技术研发人员:李杰孙书洲赵春欢刘亚敏
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1