本發(fā)明屬于集成電路設(shè)計(jì),尤其涉及一種ntt算法的流水化設(shè)計(jì)電路。
背景技術(shù):
1、美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(national?institute?of?standards?andtechnology,nist)自2016年12月開始面向全球公開征集并制定后量子密碼算法,在所有候選算法中,基于格理論的后量子密碼算法在數(shù)量上占據(jù)明顯優(yōu)勢(shì)。同時(shí),整數(shù)型、浮點(diǎn)型主流全同態(tài)密碼算法,如bgv、bfv、ckks算法均是基于格理論的密碼體制。格基密碼方案的計(jì)算主要是基于多項(xiàng)式環(huán)開展,涉及多項(xiàng)式環(huán)上的加/減法、乘法、模約減等運(yùn)算,其中加/減法的計(jì)算復(fù)雜度是o(n),樸素乘法的計(jì)算復(fù)雜度為o(n2),隨著多項(xiàng)式階n的不斷增大,多項(xiàng)式乘法運(yùn)算變得異常復(fù)雜。
2、相較于crystals-kyber等后量子密碼算法中環(huán)上多項(xiàng)式階與模數(shù)較小,在硬件設(shè)計(jì)時(shí)不存在資源利用的瓶頸,而在全同態(tài)密碼算法中,多項(xiàng)式的次數(shù)可以達(dá)到上萬(wàn)階,模數(shù)達(dá)幾百比特,在硬件實(shí)現(xiàn)整個(gè)架構(gòu)中,多項(xiàng)式乘法部分是最耗時(shí)、最耗資源的模塊。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的目的在于,為克服現(xiàn)有技術(shù)缺陷,提供了一種ntt算法的流水化設(shè)計(jì)電路,旨在解決流水化設(shè)計(jì)下蝶形操作的讀寫訪問沖突問題。
2、本發(fā)明目的通過下述技術(shù)方案來實(shí)現(xiàn):
3、一種ntt算法的流水化設(shè)計(jì)電路,所述電路包括:
4、旋轉(zhuǎn)因子模塊,所述旋轉(zhuǎn)因子模塊生成并存儲(chǔ)旋轉(zhuǎn)因子,并將旋轉(zhuǎn)因子發(fā)送至流水化蝶形單元作為運(yùn)算的輸入?yún)?shù),所述旋轉(zhuǎn)因子包括正向ntt旋轉(zhuǎn)因子和逆向intt旋轉(zhuǎn)因子;
5、流水化蝶形單元,所述流水化蝶形單元執(zhí)行多級(jí)流水運(yùn)算和流水模乘運(yùn)算,并將輸入?yún)?shù)和運(yùn)算結(jié)果存儲(chǔ)到數(shù)據(jù)存儲(chǔ)模塊;
6、數(shù)據(jù)存儲(chǔ)模塊,所述數(shù)據(jù)存儲(chǔ)模塊存儲(chǔ)ntt算法的多項(xiàng)式系數(shù),以及所述流水化蝶形單元輸出的輸入?yún)?shù)和運(yùn)算結(jié)果;
7、蝶形地址重映射模塊,所述蝶形地址重映射模塊對(duì)所述流水運(yùn)算中每層運(yùn)算的實(shí)際位序進(jìn)行調(diào)整,并對(duì)最后一層流水運(yùn)算的數(shù)據(jù)調(diào)整,將所述流水化蝶形單元輸出的存儲(chǔ)訪問地址重映射后生成訪問所述數(shù)據(jù)存儲(chǔ)模塊的地址信號(hào)。
8、進(jìn)一步的,所述流水化蝶形單元通過規(guī)避數(shù)據(jù)的比特逆序拷貝操作,對(duì)存儲(chǔ)地址直接進(jìn)行比特逆序訪問。
9、進(jìn)一步的,所述流水化蝶形單元在執(zhí)行所述流水模乘運(yùn)算時(shí),通過在每層的蝶形操作上增加模除以2運(yùn)算,省略intt最后對(duì)所有多項(xiàng)式環(huán)系數(shù)參數(shù)的模逆n運(yùn)算。
10、進(jìn)一步的,所述流水化蝶形單元對(duì)ntt運(yùn)算采用正向位序數(shù)據(jù)輸入,比特逆序位序輸出,對(duì)intt運(yùn)算采用比特逆序位序輸入,正向位序數(shù)據(jù)輸出。
11、進(jìn)一步的,所述執(zhí)行多級(jí)流水運(yùn)算具體包括:
12、執(zhí)行6級(jí)流水操作,具體為:
13、第一級(jí)流水操作:執(zhí)行單周期兩次讀操作;
14、第二級(jí)流水操作:執(zhí)行第一級(jí)乘法;
15、第三級(jí)流水操作:執(zhí)行第二級(jí)乘法;
16、第四級(jí)流水操作:執(zhí)行第三級(jí)乘法;
17、第五級(jí)流水操作:執(zhí)行模乘的最后一級(jí)減法、蝶形操作的模加、模減和intt的模除以2操作;
18、第六級(jí)流水操作:執(zhí)行單周期兩次寫操作。
19、進(jìn)一步的,所述多項(xiàng)式系數(shù)存儲(chǔ)單元采用第一單口靜態(tài)隨機(jī)存儲(chǔ)器和第二單口靜態(tài)隨機(jī)存儲(chǔ)器配合,以乒乓buffer的形式緩存數(shù)據(jù)。
20、本發(fā)明的有益效果在于:
21、(1)本發(fā)明設(shè)計(jì)了一種ntt算法的通用型流水化電路,結(jié)合ntt算法蝶形操作與模乘運(yùn)算的特點(diǎn),基于模乘算法,支持域參數(shù)的可配置設(shè)計(jì),可實(shí)現(xiàn)不同位寬的模乘運(yùn)算,能有效滿足后量子算法不同參數(shù)與安全強(qiáng)度的需求。
22、(2)本發(fā)明在電路設(shè)計(jì)上,正向ntt與逆向ntt算法共用一套硬件邏輯,結(jié)合動(dòng)態(tài)型或靜態(tài)存儲(chǔ)型旋轉(zhuǎn)因子模塊的正逆向參數(shù)匹配,以及正向位序數(shù)據(jù)輸入、比特逆序位序輸出的結(jié)構(gòu)調(diào)整,既節(jié)省了硬件資源,又具備兩者運(yùn)算使用上的靈活性。
23、(3)本發(fā)明基于蝶形地址重映射方法,采用單口sram存儲(chǔ)多項(xiàng)式系數(shù),具備電路面積小,性能高的顯著優(yōu)點(diǎn)。性能上,采用單蝶形單元全流水實(shí)現(xiàn),ntt/intt運(yùn)算的周期數(shù)約等于(n/2)·logn,當(dāng)n=256時(shí),約1000個(gè)周期,當(dāng)n=8192時(shí),約5.3萬(wàn)個(gè)周期。資源消耗上,相較于其他高性能方案(如多周期并行化)的設(shè)計(jì)方法具有明顯的資源消耗優(yōu)勢(shì)。
1.一種ntt算法的流水化設(shè)計(jì)電路,其特征在于,所述電路包括:
2.如權(quán)利要求1所述的ntt算法的流水化設(shè)計(jì)電路,其特征在于,所述流水化蝶形單元通過規(guī)避數(shù)據(jù)的比特逆序拷貝操作,對(duì)存儲(chǔ)地址直接進(jìn)行比特逆序訪問。
3.如權(quán)利要求1所述的ntt算法的流水化設(shè)計(jì)電路,其特征在于,所述流水化蝶形單元在執(zhí)行所述流水模乘運(yùn)算時(shí),通過在每層的蝶形操作上增加模除以2運(yùn)算,省略intt最后對(duì)所有多項(xiàng)式環(huán)系數(shù)參數(shù)的模逆n運(yùn)算。
4.如權(quán)利要求1所述的ntt算法的流水化設(shè)計(jì)電路,其特征在于,所述流水化蝶形單元對(duì)ntt運(yùn)算采用正向位序數(shù)據(jù)輸入,比特逆序位序輸出,對(duì)intt運(yùn)算采用比特逆序位序輸入,正向位序數(shù)據(jù)輸出。
5.如權(quán)利要求1所述的ntt算法的流水化設(shè)計(jì)電路,其特征在于,所述執(zhí)行多級(jí)流水運(yùn)算具體包括:
6.如權(quán)利要求5所述的ntt算法的流水化設(shè)計(jì)電路,其特征在于,所述多項(xiàng)式系數(shù)存儲(chǔ)單元采用第一單口靜態(tài)隨機(jī)存儲(chǔ)器和第二單口靜態(tài)隨機(jī)存儲(chǔ)器配合,以乒乓buffer的形式緩存數(shù)據(jù)。