用于数论变换的硬件实现方法、装置及安全芯片与流程

    技术2025-02-26  40


    本发明涉及数论变换计算,尤其涉及一种用于数论变换的硬件实现方法、用于数论变换的硬件实现装置及安全芯片。


    背景技术:

    1、同态加密(homomorphic encryption,简称he)允许对加密数据执行特定的代数计算而无需解密,即使在云服务器不可信的情况下,它也可以保证数据的安全。因此,he正在成为云计算环境中强大的隐私保护解决方案。然而microsoft seal 等 he 库并不是专门为资源受限的平台设计的,而且它们在计算资源和内存消耗方面通常很昂贵,这限制了它们在边缘设备中的使用。现有技术开发了一个面向嵌入式的衍生库,即 seal-embedded(se),该库实现了一种名为 ckks 的特定he方案。ckks加密算法是一种基于多项式理论的同态加密算法,而用于密文的所有多项式运算都需要时间和资源来执行。为了快速计算多项式乘法,se 库采用了数论变换以降低多项式计算的复杂度,提高计算效率。数论变换作为其中的重要算子,承担了大部分的计算功能。因此,实现对数论变换的加速对于加解密计算来说具有重大意义。

    2、当前的数论变换硬件化中,为了充分发挥fpga的并行特性,需要在工程中硬化多个数论变换以加快数据处理速度,提高加速比。然而随着被计算数据的项数和位宽的增大,fpga中的资源占用也急剧增大,尤其是存储资源的开销。在fpga中,由于存储的资源有两种,一种是分布式存储器(lut ram),一种是区块式存储器(bram)。相比于lut ram,bram分布较为集中,硬件经过布局布线后数据走线不会出现较长的路径,有利于更快的数据传输和更好的时序生成。然而对于一块型号确定的fpga板卡而言,其bram资源总量是固定的,这样就会导致无法在其中布入更大资源量的数论变换模块和更多的数论变换模块,这极大限制了硬件的性能。如果想要更大资源量的fpga来实现对应的设计,则需要花费更大的成本。

    3、因此,如何能够在不提高成本的情况下降低硬件的bram资源占用率以提高硬件性能成为本领域技术人员亟待解决的技术问题。


    技术实现思路

    1、本发明提供了一种用于数论变换的硬件实现方法、用于数论变换的硬件实现装置及安全芯片,解决相关技术中存在的无法在不提高成本的情况下降低硬件的存储资源占用率的问题。

    2、作为本发明的第一个方面,提供一种用于数论变换的硬件实现方法,其中,包括:获取待计算多项式数据,并计算所述待计算多项式数据进行数论变换所需的旋转因子和逆旋转因子;将所述旋转因子和逆旋转因子分别写入不同的存储空间,其中所述逆旋转因子的存储空间的存储地址为根据所述旋转因子的存储空间的存储地址加1后确定;对所述待计算多项式数据进行预处理,以将所述待计算多项式数据写入对应的存储空间,所述待计算多项式数据的存储空间的寻址地址与所述旋转因子和逆旋转因子的存储空间的存储地址匹配;调用数论变换硬件计算单元,并分别读取所述旋转因子、逆旋转因子以及预处理后的待计算多项式数据进行数论变换计算获得数论变换计算结果,其中所述数论变换计算包括多个计算阶段,每相邻两个计算阶段的计算结果循环利用存储地址相邻的两个存储空间进行存储。

    3、进一步地,调用数论变换硬件计算单元,并分别读取所述旋转因子、逆旋转因子以及预处理后的待计算多项式数据进行数论变换计算获得数论变换计算结果,包括:调用数论变换硬件计算单元,并分别读取所述旋转因子、逆旋转因子以及所述预处理后的待计算多项式数据;将所述旋转因子、逆旋转因子以及所述预处理后的待计算多项式数据输入至所述数论变换硬件计算单元进行数论变换计算;确定所述数论变换计算的存储空间,并将所述数论变换计算的每相邻两个计算阶段的计算结果交替存储至所述数论变换计算的存储空间。

    4、进一步地,确定所述数论变换计算的存储空间,并将所述数论变换计算的每相邻两个计算阶段的计算结果交替存储至所述数论变换计算的存储空间,包括:根据数论变换计算的第一个计算阶段所读取的数据所在的存储空间确定所述数论变换计算的第一存储空间;根据所述数论变换计算的第一存储空间的存储地址的最大值加1确定数论变换计算的第二存储空间;将所述数论变换计算的每相邻两个计算阶段的计算结果交替存储至所述数论变换计算的第一存储空间和所述数论变换计算的第二存储空间。

    5、进一步地,分别读取所述旋转因子、逆旋转因子以及所述预处理后的待计算多项式数据,包括:针对数论变换计算的每个计算阶段,分别读取该计算阶段所需的旋转因子和逆旋转因子;根据该计算阶段的旋转因子和逆旋转因子的存储空间的存储地址确定与之匹配的预处理后的待计算多项式数据的寻址地址;根据所述寻址地址查找所述预处理后的待计算多项式数据,并读取所述预处理后的待计算多项式数据。

    6、进一步地,对所述待计算多项式数据进行预处理,以将所述待计算多项式数据写入对应的存储空间,包括:确定所述待计算多项式数据的项数n;根据所述待计算多项式数据的项数将所述待计算多项式数据划分为两个项数均为n/2的待计算多项式子数据;将两个n/2的待计算多项式子数据分别存储至存储地址为奇数的存储空间和存储地址为偶数的存储空间。

    7、进一步地,将所述旋转因子和逆旋转因子分别写入不同的存储空间,包括:根据处理单元的数量分别确定旋转因子和逆旋转因子的存储空间;将所述旋转因子和逆旋转因子分别根据处理单元的数量写入不同的存储空间。

    8、进一步地,所述旋转因子的存储空间的存储地址区间为:0至(n/p+log2p-2);所述逆旋转因子的存储空间的存储地址区间为:(n/p+ log2p -1)至(2*(n/p+ log2p)-3);其中,p表示处理单元的数量,n表示待计算多项式数据的项数。

    9、进一步地,所述数论变换硬件计算单元包括两个ntt硬件计算模块或两个intt硬件计算模块,且两个ntt硬件计算模块或两个intt硬件计算模块基于乒乓操作方式实现数量变换计算。

    10、作为本发明的另一个方面,提供一种用于数论变换的硬件实现装置,用于实现前文所述的用于数论变换的硬件实现方法,其中,包括:获取模块,用于获取待计算多项式数据,并计算所述待计算多项式数据进行数论变换所需的旋转因子和逆旋转因子;写入模块,用于将所述旋转因子和逆旋转因子分别写入不同的存储空间,其中所述逆旋转因子的存储空间的存储地址为根据所述旋转因子的存储空间的存储地址加1后确定;预处理模块,用于对所述待计算多项式数据进行预处理,以将所述待计算多项式数据写入对应的存储空间,所述待计算多项式数据的存储空间的寻址地址与所述旋转因子和逆旋转因子的存储空间的存储地址匹配;数论变换计算模块,用于调用数论变换硬件计算单元,并分别读取所述旋转因子、逆旋转因子以及预处理后的待计算多项式数据进行数论变换计算获得数论变换计算结果,其中所述数论变换计算包括多个计算阶段,每相邻两个计算阶段的计算结果循环利用存储地址相邻的两个存储空间进行存储。

    11、作为本发明的另一个方面,提供一种安全芯片,其中,包括芯片载体及设置在所述芯片载体上的前文所述的用于数论变换的硬件实现装置。

    12、本发明提供的用于数论变换的硬件实现方法,通过对待计算多项式数据进行数论变换所需的旋转因子以及逆旋转因子提前进行计算,并将旋转因子和逆旋转因子分别写入不同的存储空间,在写入旋转因子以及逆旋转因子时将逆旋转因子的存储空间的存储地址确定为旋转因子的存储空间的存储地址加1,这样能够使得旋转因子和逆旋转因子能够存储在不同且存储地址连续的存储空间中,实现了对存储空间的有效利用;另外,在针对待计算多项式数据进行数论变换计算时通过对待计算多项式数据进行预处理,并调用数论变换硬件计算单元实现数论变换计算,针对数论变换计算过程中的计算结果的存储通过循环利用存储地址相邻的两个存储空间进行存储数论变换计算结果,达到了对存储空间的有效利用,降低了存储资源开销。因此,本发明提供的用于数论变换的硬件实现方法能够将存储空间的资源开销达到降低,从而能够为硬件集成多个硬件资源或者提高计算项数以加快系统运算时间提供可能,且本发明的这种用于数论变换的硬件实现方法并未增加成本开销。


    技术特征:

    1.一种用于数论变换的硬件实现方法,其特征在于,包括:

    2.根据权利要求1所述的用于数论变换的硬件实现方法,其特征在于,调用数论变换硬件计算单元,并分别读取所述旋转因子、逆旋转因子以及预处理后的待计算多项式数据进行数论变换计算获得数论变换计算结果,包括:

    3.根据权利要求2所述的用于数论变换的硬件实现方法,其特征在于,确定所述数论变换计算的存储空间,并将所述数论变换计算的每相邻两个计算阶段的计算结果交替存储至所述数论变换计算的存储空间,包括:

    4.根据权利要求2所述的用于数论变换的硬件实现方法,其特征在于,分别读取所述旋转因子、逆旋转因子以及所述预处理后的待计算多项式数据,包括:

    5.根据权利要求1至4中任意一项所述的用于数论变换的硬件实现方法,其特征在于,对所述待计算多项式数据进行预处理,以将所述待计算多项式数据写入对应的存储空间,包括:

    6.根据权利要求1至4中任意一项所述的用于数论变换的硬件实现方法,其特征在于,将所述旋转因子和逆旋转因子分别写入不同的存储空间,包括:

    7.根据权利要求6所述的用于数论变换的硬件实现方法,其特征在于,所述旋转因子的存储空间的存储地址区间为:0至(n/p+log2p-2);所述逆旋转因子的存储空间的存储地址区间为:(n/p+ log2p -1)至(2*(n/p+ log2p)-3);

    8.根据权利要求1至4中任意一项所述的用于数论变换的硬件实现方法,其特征在于,所述数论变换硬件计算单元包括两个ntt硬件计算模块或两个intt硬件计算模块,且两个ntt硬件计算模块或两个intt硬件计算模块基于乒乓操作方式实现数量变换计算。

    9.一种用于数论变换的硬件实现装置,用于实现权利要求1至8中任意一项所述的用于数论变换的硬件实现方法,其特征在于,包括:

    10.一种安全芯片,其特征在于,包括芯片载体及设置在所述芯片载体上的权利要求9所述的用于数论变换的硬件实现装置。


    技术总结
    本发明涉及数论变换计算技术领域,具体公开了一种用于数论变换的硬件实现方法、装置及安全芯片,包括:获取待计算多项式数据,并计算待计算多项式数据进行数论变换所需的旋转因子和逆旋转因子;将旋转因子和逆旋转因子分别写入不同的存储空间,逆旋转因子的存储空间的存储地址为根据旋转因子的存储空间的存储地址加1后确定;对待计算多项式数据进行预处理;调用数论变换硬件计算单元,读取旋转因子、逆旋转因子以及预处理后的待计算多项式数据进行数论变换计算,每相邻两个计算阶段的计算结果循环利用存储地址相邻的两个存储空间进行存储。本发明提供的用于数论变换的硬件实现方法能够在不增加成本的情况下降低硬件存储空间占用率。

    技术研发人员:张永,元国军,刘勇
    受保护的技术使用者:无锡芯光互连技术研究院有限公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-26871.html

    最新回复(0)