[發明專利]一種基于脈動陣列的全同態加密硬件加速器及其設計方法有效
| 申請號: | 202110087221.7 | 申請日: | 2021-01-22 |
| 公開(公告)號: | CN112818416B | 公開(公告)日: | 2022-09-27 |
| 發明(設計)人: | 杜高明;周培培;任經緯;徐鵬飛;王曉蕾;李楨旻;張多利 | 申請(專利權)人: | 合肥工業大學 |
| 主分類號: | G06F21/72 | 分類號: | G06F21/72;H04L9/00;H04L9/08 |
| 代理公司: | 安徽省合肥新安專利代理有限責任公司 34101 | 代理人: | 陸麗莉;何梅生 |
| 地址: | 230009 安*** | 國省代碼: | 安徽;34 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 脈動 陣列 同態 加密 硬件 加速器 及其 設計 方法 | ||
1.一種基于脈動陣列的全同態加密硬件加速器,其特征包括:控制模塊,脈動陣列模塊,位展開模塊,乘法模塊,加法模塊,平鋪模塊;
所述控制模塊控制二值矩陣R、公鑰A、單位矩陣IN和明文u的輸入方式,并將前三個數據分別存儲在RAM_R、RAM_A和RAM_0中;
所述脈動陣列模塊由數據輸入控制單元、PE陣列、數據存儲控制單元組成;
所述數據輸入控制單元從RAM_R中讀取二值矩陣R的第一行,從RAM_A中讀取公鑰A的第一列,然后將所讀取的一行和一列數據傳遞給PE陣列;
所述PE陣列是由若干個PE單元構成,每個PE單元由數據選擇器、加法器、PE寄存器組成;
所述數據選擇器對所獲取的一行中每一個行元素進行判別,若相應行元素的值為“1”,則將對應的列元素的值傳遞給加法器,若相應行元素的值為“0”,則將相應行元素的值輸出給加法器;
所述加法器對所接收的元素值進行累加,得到的累加和存入所述PE寄存器中,當加法器完成第一列數據的計算完后,所述數據輸入控制單元從RAM_A中讀取公鑰A的第二列,同時在所述數據存儲控制單元的控制下將PE寄存器的累加和移送到所述數據存儲控制單元的內部寄存器中保存后,將PE寄存器清空,PE單元重復判別、加法、存儲操作直至在第一行的判別下,計算完RAM_A中所有的列后再開始從RAM_R中讀取二值矩陣R的第二行,并重復相同的操作直至在每一行的判別下,計算完RAM_A中所有的列;
所述數據存儲控制單元在存儲完每一行所對應的所有列的累加和后,形成十進制數表示的R×A的矩陣并傳送給位展開模塊后,清空PE陣列中的PE寄存器;
所述位展開模塊將R×A的矩陣轉換成二進制矩陣,并存儲在RAM_1中,然后由RAM_1發送一個使能信號給控制模塊;
所述乘法模塊從RAM_0和明文u中讀取單位矩陣IN和明文u并進行乘法操作,得到u×IN的矩陣并儲存在RAM_2中,然后由RAM_2發送另一個使能信號給控制模塊;
當控制模塊分別接收到RAM_1和RAM_2發送的使能信號后發出一個控制信號給加法模塊;
所述加法模塊接收到所述控制信號后從RAM_1和RAM_2中讀取數據并進行加法操作,得到R×A+u×IN的矩陣并傳送至平鋪模塊;
所述平鋪模塊將R×A+u×IN的矩陣中非0或1的元素修改為0或1,從而得到元素值全部為0或1的密文C。
2.一種基于脈動陣列的全同態加密硬件加速器的設計方法,其特征是由控制模塊,脈動陣列模塊,位展開模塊,乘法模塊,加法模塊,平鋪模塊所構成的加速器,并按如下步驟進行數據處理:
步驟1、所述控制模塊控制公鑰A、二值矩陣R、單位矩陣IN和明文u的輸入方式,并將前三個數據分別存儲在RAM_A、RAM_R和RAM_0中;
步驟2、定義當前行為第i行,當前列為第j列,并初始化i=1;
步驟3、所述脈動陣列模塊從RAM_R中讀取二值矩陣R的第i行,并初始化j=1;
步驟4、從RAM_A中讀取公鑰A的第j列;
步驟5、對所獲取的第i行中每一個行元素進行判別,若相應行元素的值為“1”,則將第j列中對應的列元素的值進行累加,若相應行元素的值為“0”,則不累加;從而得到第i行所對應的第j列累加和;
步驟6、將j+1賦值給j后,判斷jjmax是否成立,若成立,則表示得到二值矩陣R的第i行所對應的所有列的累加和;否則,返回步驟4;jmax是公鑰A的列數;
步驟7、將i+1賦值給i后,判斷iimax是否成立,若成立,則表示得到二值矩陣R的所有行所對應的所有列的累加和,即得到R×A的矩陣;否則,返回步驟3;imax是二值矩陣R的行數;
步驟8、所述位展開模塊將R×A的矩陣擴展成二進制矩陣并保存在RAM_1中,由RAM_1發出一個使能信號給控制模塊;
步驟9、在脈動陣列模塊操作的同時,乘法模塊也從RAM_0和明文u中讀取單位矩陣IN和明文u并進行乘法操作得到u×IN的矩陣并存儲在RAM_2中,由RAM_2也會發出另一個使能信號給控制模塊;
步驟10、所述控制模塊在分別接收到RAM_1和RAM_2發出的使能信號后,控制加法模塊將RAM_1和RAM_2中的數據取出并進行加法操作,從而得到R×A+u×IN的矩陣;
步驟11、所述平鋪模塊是將R×A+u×IN的矩陣中非0或1的元素修改為0或1的平鋪操作,從而得到元素值全部為0或1的密文C。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于合肥工業大學,未經合肥工業大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110087221.7/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:信息跟蹤方法、裝置、電子設備及存儲介質
- 下一篇:一種水面用自動收縮水泵





