基于多核arm/fpga的ecc密碼算法的ip的制作方法
【專利摘要】本發(fā)明屬于基于ARM/FPGA雙核IP核設(shè)計(jì),實(shí)現(xiàn)ARM和FPGA模塊的連接,加密過(guò)程為arm內(nèi)完成隨機(jī)取點(diǎn),數(shù)據(jù)傳入FPGA進(jìn)行算法處理,算法編程應(yīng)用了狀態(tài)機(jī)的思想,將數(shù)據(jù)分組進(jìn)行移位計(jì)算,通過(guò)該方法改進(jìn)傳統(tǒng)的有限域乘法“移位相加”的策略。去除了大量的移位操作,減少了計(jì)算量,該過(guò)程具有速度快,功耗低,極大的提高了加密解密效率,實(shí)現(xiàn)了ECC橢圓曲線公鑰密碼體制。整個(gè)IP核具有低功耗,資源占用較少,算法速度較快的優(yōu)勢(shì),能方便的嵌入到SOC的設(shè)計(jì)中,滿足各式各樣的加密需求。
【專利說(shuō)明】
基于多核ARM/FPGA的ECC密碼算法的IP
技術(shù)領(lǐng)域
:
[0001]本發(fā)明針對(duì)模計(jì)算的特點(diǎn),底層算法用狀態(tài)機(jī)的設(shè)計(jì)方法實(shí)現(xiàn)了先分組后移位,大大提高了運(yùn)算效率,減少了對(duì)布局布線資源的占用。同時(shí)實(shí)現(xiàn)了 ARM中隨機(jī)產(chǎn)生坐標(biāo),將坐標(biāo)與公開(kāi)秘鑰數(shù)據(jù)傳入FPGA計(jì)算,數(shù)據(jù)傳回ARM中進(jìn)行解碼即可得到明文。
【背景技術(shù)】
:
[0002]橢圓加密算法(ECC)是一種公鑰加密體制,最初由Koblitz和Miller兩人于1985年提出,其數(shù)學(xué)基礎(chǔ)是利用橢圓曲線上的有理點(diǎn)構(gòu)成Abel加法群上橢圓離散對(duì)數(shù)的計(jì)算困難性。ECC密碼體制是建立在橢圓曲線密碼理論基礎(chǔ)上的先進(jìn)公鑰密碼體制。該系統(tǒng)所具有的安全性已經(jīng)被全世界所承認(rèn)。ECC技術(shù)擁有廣泛的應(yīng)用前景,如:可應(yīng)用于安全數(shù)據(jù)庫(kù)、智能卡應(yīng)用、VPN、安全電子商務(wù)等。將ECC技術(shù)應(yīng)用于安全產(chǎn)品不僅能夠充分發(fā)揮我們已經(jīng)取得的優(yōu)勢(shì),創(chuàng)造更多的效益,而且可以使我國(guó)的公鑰密碼應(yīng)用技術(shù)進(jìn)入一個(gè)更廣闊的新天地。EEC在多核ARM上用FPGA實(shí)現(xiàn)以前還沒(méi)有。
【發(fā)明內(nèi)容】
:
[0003]1、使用多核ARM處理器硬核的FPGA,由ARM進(jìn)行隨機(jī)取點(diǎn)和解密,F(xiàn)PGA對(duì)數(shù)據(jù)進(jìn)行加密,多核的有效應(yīng)用大大提高了數(shù)據(jù)傳輸效率。
[0004]2、使用狀態(tài)機(jī)的編程方法將163位以上的加密數(shù)據(jù)分組進(jìn)行移位,實(shí)現(xiàn)一次模乘計(jì)算多位,大大提高了運(yùn)算效率,減少對(duì)FPGA資源的占用,提升計(jì)算速度。
【附圖說(shuō)明】
:
[0005]圖1:基于多核ARM/FPGA的ECC密碼算法原理圖
[0006]圖2:基于ARM的ECC FPGA實(shí)現(xiàn)電路圖
[0007]圖3 =Fpga的設(shè)計(jì)分區(qū)規(guī)劃以及查找表使用情況圖
【具體實(shí)施方式】
:
[0008]1、FPGA接收數(shù)據(jù)后ARM進(jìn)入主程序選定一條適合加密的橢圓曲線y~2 =x'3+ax+b作為加密曲線。這條曲線定義在Fp上:兩個(gè)滿足下列條件的小于P (P為素?cái)?shù))的非負(fù)整數(shù)a、b:4a3+27b2 # O (mod p)則滿足下列方程的所有點(diǎn)(x,y),再加上窮遠(yuǎn)點(diǎn)00,構(gòu)成一條橢圓曲線。= x'3+ax+b (modp)其中x,y屬于O到p_l間的整數(shù),并將這條橢圓曲線記為Ep (a, b) ο
[0009]2、選取參數(shù)p,P當(dāng)然越大越安全,但越大,計(jì)算速度會(huì)變慢,163位左右可以滿足一般安全要求;我們將P取為163比特位的素?cái)?shù)。
[0010]3、選取參數(shù)a,b,先隨機(jī)產(chǎn)生小于P-1的正整數(shù)作為參數(shù)a,依據(jù)條件4a3+27b2 ^ O (mod p)判斷隨機(jī)產(chǎn)生的小于P_1的正整數(shù)是否適合作為參數(shù)b.
[0011]4、隨機(jī)選取基點(diǎn),隨著參數(shù)a,b, P確定,這條曲線y~2 = x'3+ax+b就定下來(lái)了。先隨機(jī)產(chǎn)生O到ρ-l間的整數(shù)作為基點(diǎn)X坐標(biāo),計(jì)算x'3+ax+b的結(jié)果再開(kāi)方就得出基點(diǎn)y坐標(biāo)。
[0012]5、ARM選擇一個(gè)私有密鑰k,并生成公開(kāi)密鑰K = kG。
[0013]6、ARM 將 Ep (a, b)和點(diǎn) K,G 傳給 FPGA0
[0014]7、FPGA接到信息后進(jìn)入中斷,將待傳輸?shù)拿魑木幋a到Ep (a,b)上一點(diǎn)M,并產(chǎn)生一個(gè)隨機(jī)整數(shù)r (r < η)。
[0015]8、FPGA調(diào)用底層模算法計(jì)算點(diǎn)Cl = M+rK ;C2 = rG。
[0016]9、FPGA 將 Cl、C2 傳給 ARM。
[0017]10、ARM接到信息后,計(jì)算Cl_kC2,結(jié)果就是點(diǎn)M,再對(duì)點(diǎn)M進(jìn)行解碼就可以得到明文。
【主權(quán)項(xiàng)】
1.利用fpga和arm模塊雙核通信的特點(diǎn)設(shè)計(jì)ECC算法IP核,該IP核具有低功耗,資源占用較少,算法速度較快的優(yōu)勢(shì),能方便的應(yīng)用于SOC的設(shè)計(jì)中。2.基于多核ARM/FPGA模塊的IP核設(shè)計(jì)實(shí)現(xiàn)以下功能: (1)選用內(nèi)部帶有多核ARM處理器硬核的FPGA,可實(shí)現(xiàn)高速的數(shù)據(jù)傳輸,降低功耗,提升加密解密效率。(2)實(shí)現(xiàn)了ECC橢圓曲線公鑰密碼體制,能對(duì)各類不同的磁盤(pán)文件進(jìn)行加密和解密。
【文檔編號(hào)】H04L9/30GK105897418SQ201510078714
【公開(kāi)日】2016年8月24日
【申請(qǐng)日】2015年2月13日
【發(fā)明人】韓永飛, 連宇伽
【申請(qǐng)人】廈門(mén)密安信息技術(shù)有限責(zé)任公司