利索能及
我要发布
收藏
专利号: 2025101092140
申请人: 重庆邮电大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-10-14
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于FPGA的同态加密硬件加速器,其特征在于,包括FPGA端,所述FPGA端包括数据传输模块、控制模块、同态加密模块、同态解密模块、数论变换模块和小变大模数转换模块;

所述数据传输模块用于实现FPGA端与上位机之间的数据传输;

所述控制模块用于根据加密或解密操作控制数据在各个模块之间的流向;

所述数论变换模块用于对输入的数据进行数论变换或逆数论变换得到变换后的数据或逆数论变换后的数据;

所述同态加密模块用于对经过变换后的数据进行加密得到密文数据;

所述同态解密模块用于对经过变换后的数据进行解密得到明文数据;

所述小变大模数转换模块用于将多路小位宽模数的密文数据或明文数据转换为一路大位宽模数的数据;

所述控制模块控制数据输入到数论变换模块中进行数论变换,将数论变换后的数据传输给同态加密模块或同态解密模块进行加密或解密,将加密得到的密文数据或解密得到的明文数据传输到数论变换模块进行逆数论变换,将逆数论变换后的数据传输到小变大模数转换模块进行转换处理,将转换处理后的数据传输给数据传输模块。

2.如权利要求1所述的基于FPGA的同态加密硬件加速器,其特征在于,所述数据传输模块包括UART数据传输单元、字符串转二进制单元、大变小模数转换单元和第一数据存储单元;

所述UART数据传输单元在发送或接收过程中的一帧数据包括:1位起始位、8位数据位和1位停止位,并将上位机传输的32帧数据拼接为256位的ASCII码数据,并将256位的ASCII码数据传输给字符串转二进制单元;

所述字符串转二进制单元用于将接收到的256位ASCII码数据每8位数据的高4位去掉,得到取值范围为0~9的128位BCD码,再通过迭代运算将128位BCD码转换为128位有符号二进制,每次迭代运算对4比特数据进行乘10操作并累加;

所述大变小模数转换单元将128位有符号二进制数据进行基于余数系统的取模运算,

0 1 2 3

将一路128位的数据转换为模q ,q ,q ,q 的四路17位数据,采用并行架构同时计算四路数据,其中每一路数据的处理采用串行结构的形式从低到高每次对17位数据进行处理然后进行累加,进行8次操作得到最终的结果;

所述第一数据存储单元包括4组单端口RAM,其中3组是4个位宽为17比特深度为256的单端口用于存储最终的结果,1组是1个位宽为256比特深度为256的单端口用于存储将要发送给上位机的明文或密文数据。

3.如权利要求2所述的基于FPGA的同态加密硬件加速器,其特征在于,所述大变小模数转换单元包括蒙哥马利约简单元,所述蒙哥马利约简单元采用移位和乘法操作完成取模运算。

4.如权利要求1所述的基于FPGA的同态加密硬件加速器,其特征在于,所述同态加密模块包括加密控制单元、加密计算单元和第二数据存储单元;

所述加密控制单元用于将加密计算所需的数据依次存储到第二数据存储单元中,当一次加密所有的数据都存储完毕后,将存储的数据读取出来传输给加密计算单元得到密文数据,将密文数据传输给第二数据存储单元;

所述加密计算单元用于对从第二数据存储单元中读取出来的数据进行加密得到密文数据;

所述第二数据存储单元包括八组单端口RAM,其中,六组RAM用于存储同态加密所需要的参数,剩余两组RAM用来存储加密得到的密文数据,每组RAM包含4个位宽为17比特深度为

256的单端口RAM。

5.如权利要求1所述的基于FPGA的同态加密硬件加速器,其特征在于,所述同态解密模块包括解密控制单元、解密计算单元和第三数据存储单元;

所述解密控制单元用于将解密计算所需要的数据依次存储到第三数据存储单元中,当一次解密所有的数据都存储完毕后,将存储的数据读取出来传输给解密计算单元得到明文数据,将明文数据传输给第三数据存储单元;

所述解密计算单元用于对从第三数据存储单元中读取出来的数据进行解密得到明文数据;

所述第三数据存储单元包括四组单端口RAM,其中,三组RAM用来存储同态解密所需要的参数,剩余一组RAM用来存储解密得到的明文数据,每组RAM包含4个位宽为17比特深度为

256的单端口RAM。

6.如权利要求1所述的基于FPGA的同态加密硬件加速器,其特征在于,所述数论变换模块包括蝶形运算单元、控制单元、预处理及后处理单元和第四数据存储单元;

所述蝶形运算单元采用频率抽取的方式进行蝶形运算,蝶形运算包括模加、模减和模乘,具体为将前128个数据加后128个数据得到偶数项,前128个数据减后128个数据后再乘以旋转因子得到奇数项,蝶形运算在有限域上进行,计算完成后进行取模运算;

所述控制单元用于从RAM2中读取数据进行NTT运算得到第一计算结果,将第一计算结果存入RAM3中,当本层NTT运算全部结束后,从RAM3中读取数据进行NTT运算得到第二计算结果,将第二计算结果存入RAM2中,交替运行直至整个NTT运算结束;

所述预处理及后处理单元用于完成多项式参数的预处理和后处理得到预处理计算结果和后处理计算结果;

所述第四数据存储单元包括四组双端口RAM,其中,RAM0和RAM1用来存储预处理计算结果和后处理计算结果,RAM2和RAM3用来存储NTT变换过程中的中间结果,每组RAM包含4个位宽为17比特深度为256的双端口RAM。

7.一种基于FPGA的同态加密硬件加速器的数据处理方法,其特征在于,适用于权利要求1~6任一项所述的基于FPGA的同态加密硬件加速器,包括:接收上位机发送的加密需要的公钥和明文数据或者解密需要的私钥和密文数据;

将接收的数据转换为有符号二进制数据;

将所述有符号二进制数据进行数论变换得到数论变换后的数据;

根据功能要求,将所述数论变换后的数据进行加密或解密得到密文数据或明文数据;

将密文数据或明文数据进行逆数论变换得到逆数论变换后的数据;

将逆数论变换后的数据进行小位宽模数转换为大位宽模数的数据,将转换后的数据传输给上位机。

8.如权利要求7所述的基于FPGA的同态加密硬件加速器的数据处理方法,其特征在于,将所述数论变换后的数据进行加密得到密文数据的具体方法包括:将加密计算所需的数据依次存储到第二数据存储单元中,当一次加密所有的数据都存储完毕后,将存储的数据读取出来传输给加密计算单元得到密文数据,将密文数据传输给第二数据存储单元进行存储;所述第二数据存储单元包括八组单端口RAM,其中,六组RAM用于存储同态加密所需要的参数,剩余两组RAM用来存储加密得到的密文数据,每组RAM包含4个位宽为17比特深度为256的单端口RAM;

对从第二数据存储单元中读取出来的数据进行加密得到密文数据;

将所述数论变换后的数据进行解密得到明文数据的具体方法包括:

将解密计算所需要的数据依次存储到第三数据存储单元中,当一次解密所有的数据都存储完毕后,将存储的数据读取出来传输给解密计算单元得到明文数据,将明文数据传输给第三数据存储单元进行存储;所述第三数据存储单元包括四组单端口RAM,其中,三组RAM用来存储同态解密所需要的参数,剩余一组RAM用来存储解密得到的明文数据,每组RAM包含4个位宽为17比特深度为256的单端口RAM;

对从第三数据存储单元中读取出来的数据进行解密得到明文数据。

9.一种可实现同态加密硬件加速的FPGA,其特征在于,包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,其特征在于,所述处理器被配置用于调用所述程序指令,执行如权利要求7~8任一项所述的方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求7~8任一项所述的方法。