女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當前位置:首頁 > 工業(yè)控制 > 電子設(shè)計自動化

摘 要: 點乘算法是橢圓曲線密碼體制中決定速度和硬件資源的關(guān)鍵部分。在深入分析混合結(jié)構(gòu)乘法器并在FPGA上實現(xiàn)經(jīng)典橢圓曲線點乘算法基礎(chǔ)上,設(shè)計與實現(xiàn)了一種基于NAF編碼混合結(jié)構(gòu)乘法器思想的橢圓曲線點乘算法。對實現(xiàn)的點乘算法進行仿真測試和性能評估表明,新設(shè)計實現(xiàn)的基于混合結(jié)構(gòu)乘法器的點乘算法在計算速度和資源使用上具有明顯優(yōu)勢。
關(guān)鍵詞: 有限域;FPGA;NAF;橢圓曲線點乘;算法安全

橢圓曲線密碼體制(ECC)作為新一代公鑰技術(shù)的典型代表,提供了更好的算法實現(xiàn)性能、更高的安全性和更低的實現(xiàn)代價[1],同時能夠完成數(shù)據(jù)加密和數(shù)字簽名的功能。
現(xiàn)場可編程邏輯門陣列(FPGA)是一種基于4輸入查找表(LUT)、通過可編程互聯(lián)連接的可配置邏輯塊(CLB)矩陣的可編程半導(dǎo)體器件。與為特殊設(shè)計而定制的專用集成電路(ASIC)相對,F(xiàn)PGA可以針對所需的應(yīng)用或功能要求進行編程。其邏輯資源遠比一般處理器多,而且具有編程方便、集成度高、速度快的特點。目前以硬件描述語言(VHDL或Verilog HDL)所完成的電路設(shè)計,可以經(jīng)過簡單的綜合與布局,快速下載至FPGA上進行測試,因而被稱作是現(xiàn)代IC設(shè)計驗證的主流技術(shù)。
目前,ECC的實現(xiàn)方案主要有軟件和硬件兩種,其中硬件實現(xiàn)方案因具有運算速度快、帶寬要求低等優(yōu)勢,被廣泛應(yīng)用于硬件加密設(shè)備和無線網(wǎng)絡(luò)通信等領(lǐng)域。
FPGA芯片在執(zhí)行加密過程中,會有消耗能量的晶體管充放電過程。功耗分析時,依賴于硬件的各種加密操作與功耗具有相關(guān)性,其原理是通過監(jiān)測硬件在加密過程中產(chǎn)生的功耗曲線,利用統(tǒng)計學和攻擊者的經(jīng)驗對收集到的信息進行分析,從而獲得加密過程的相關(guān)數(shù)據(jù)[2]。
本文采用NIST定義在有限域GF(2m)上的Koblitz曲線:y2+xy=x3+x2+1。建立在該曲線上的橢圓曲線點乘運算可以快速實現(xiàn),因此特別適合構(gòu)建高效的密碼系統(tǒng)。

ECC的安全性主要依賴于橢圓曲線離散對數(shù)問題(ECDLP)的難解性。ECDLP的定義如下:若P是橢圓曲線E上的一點(稱為基點),P的階為素數(shù)n,k為一隨機選擇的正整數(shù),已知Q=kP,無法求得或者很難求得k,把Q定義為公鑰,k為私鑰。
在橢圓曲線上建立公鑰密碼系統(tǒng)的過程中,其核心計算是點乘運算,因此對橢圓曲線點乘算法進行深入研究很有必要。
ECC的層次結(jié)構(gòu)由自上而下可分解為加解密層、群運算層、域運算層,如圖1所示。各個運算模塊通過狀態(tài)機的合理控制,實現(xiàn)FPGA上橢圓曲線點乘算法。

隨著計算資源的急劇膨脹,特別是邊信道攻擊等新型的密碼攻擊方式的出現(xiàn)[5],給ECC的安全性帶來一定的挑戰(zhàn)。針對ECC邊信道分析攻擊,采取的防御手段既有在算法實現(xiàn)方法上改進的軟件手段,也有通過增加噪聲干擾和采用數(shù)模混合電路產(chǎn)生真隨機數(shù)來擾亂掩碼和時鐘的硬件手段[6]。
1.2 實現(xiàn)方案
在FPGA上實現(xiàn)各種密碼算法的過程中,應(yīng)考慮到FPGA的既定芯片資源限制以及如何在更少的資源量和更快的時序中找到平衡點這兩個因素。
由于1個求解逆元的操作在計算時間上約和70個乘法器相近[7],因此在實施ECC的點乘算法時,應(yīng)盡量減少使用求逆運算。
在設(shè)計與實現(xiàn)橢圓曲線的點乘算法時,本文內(nèi)容主要將作如下安排。首先,從算法級別對乘法器運算單元進行改進,以提高乘法器的速度。然后,對乘法器模塊由混合結(jié)構(gòu)乘法器實現(xiàn)的點乘運算進行性能評估。最后,在經(jīng)典橢圓曲線點乘算法的實現(xiàn)過程中,通過使用乘法器代替模平方運算的方法來增加計算的隱蔽性,算法內(nèi)部實現(xiàn)邏輯的改善,達到提高算法安全性的目的。
2 乘法器模塊設(shè)計
有限域上的乘法器是點加運算和點乘運算所要涉及的核心運算。實現(xiàn)多項式乘法器最基本方法是移位相加,而移位操作在FPGA中實現(xiàn)非常方便,不需要使用任何邏輯單元。研究表明,根據(jù)FPGA的特點而設(shè)計的乘法器具有明顯的速度優(yōu)勢。
本文使用的StratixⅡ系列器件是ALTERA公司基于1.2 V工藝的現(xiàn)場可編程門陣列。選用擁有高達72 768個ALUTs、903個IO資源的EP2S90F1508C3芯片作為乘法器實現(xiàn)方案的硬件基礎(chǔ),如圖2。

圖2中,A、B分別表示多項式乘法器的乘數(shù)與被乘數(shù),F(xiàn)表示有限域GF(2m)的多項式基,CLK為主時鐘信號,reset為復(fù)位信號,start為使能信號,result和done分別表示乘法器的運算結(jié)果和運算結(jié)束標志。
將混合結(jié)構(gòu)乘法器[8]與目前點乘算法所使用的乘法器做包括資源占用和計算性能兩方面比較。乘法器1是使用文獻[8]中提到的乘法器實現(xiàn)的橢圓曲線點乘算法在EP2S90F1508C3芯片上的實現(xiàn),乘法器2是目前點乘算法所使用的乘法器。
通過使用Synplify Pro 9.6對2種乘法器進行綜合以及ModelSim-Altera的前仿真,文獻[8]使用23個時鐘數(shù)、算法2使用107個時鐘周期所得到的資源和計算性能評估結(jié)果如表1和表2所示。

在200 MHz的時鐘頻率下,乘法器計算性能的評估結(jié)果如表2所示。
混合結(jié)構(gòu)乘法器的計算性能較目前使用的乘法器2的性能有顯著的提高。
為驗證乘法器計算正確性,以163 bit的乘法器為例,其仿真結(jié)果如圖3所示。

下面將在目標芯片上實現(xiàn)基于這兩種乘法器的點乘算法。
3 橢圓曲線點乘算法的FPGA實現(xiàn)
計算有限域GF(2m)點乘kP的最直接方法是使用倍點和點加相結(jié)合的double-and-add方法。如果ki=0,則僅執(zhí)行倍點計算;如果ki=1,則執(zhí)行倍點計算和點加計算。Double-and-add算法需要(m-1)次倍點運算和m/2次點加運算[12],而使用非相鄰(NAF)編碼思想的二進制點乘算法可以將計算點加的平均次數(shù)減少至m/3[9]。
基于上述兩種乘法器模塊,本文實現(xiàn)的是使用NAF編碼的163 bit二進制域上的橢圓曲線點乘算法。
3.1 基于NAF思想的橢圓曲線點乘
使用NAF編碼思想計算橢圓曲線點乘是因為橢圓曲線上點的減法和點的加法一樣有效,NAF編碼可以在不使用橢圓曲線倍點計算的環(huán)境下實現(xiàn)點乘運算而僅使用點加和基本的域運算的狀態(tài)下來完成二進制域上的點乘操作。
在計算NAF編碼的二進制點乘算法時,首先需要知道如何計算給定數(shù)的NAF值,然后使用該算法的思想完成橢圓曲線的點乘kP計算。其算法描述如下:

其中,m表示運算比特位數(shù),f(z)是有限域GF(2m)的多項式基,n是基點G的階,x和y分別表示的是基點G的橫坐標和縱坐標。
在使用工具Synplify Pro 9.6綜合后,混合結(jié)構(gòu)乘法器的點乘運算和基于原有乘法器的點乘算法相比,在計算性能和資源占用等性能上的評估結(jié)果如表4所示。

設(shè)計實現(xiàn)的基于混合結(jié)構(gòu)乘法器的點乘算法(點乘算法1)在完成一次點乘運算的時間上較原有的點乘算法有所提高,且在資源占用上較原有算法有所減少,與同類型的點乘算法相比在計算性能上有明顯提高。
4 算法安全性
基于Montgomery Ladder的橢圓曲線多倍點運算是不安全的[10]。為了增加算法的抗功耗分析能力,通常的做法是采用增加計算的隱蔽性等軟件手段或者引入噪聲干擾以及掩膜方式等硬件手段[6]。
本文通過改進橢圓曲線點乘算法中的內(nèi)部結(jié)構(gòu)可以做到提高算法的抗功耗分析能力,其中使用乘法器替代模平方算法能有效防范邊信道攻擊[11]。本文以經(jīng)典橢圓曲線點乘算法為例(算法1),從計算安全的角度考慮,使用乘法器替代模平方算法的方法和VHDL語言在 EP2S90F1508C3芯片中(算法2)實現(xiàn)。
在使用綜合工具Synplify Pro 9.6對經(jīng)典的點乘算法1和算法2進行綜合后,在50 MHz的時鐘頻率下,兩種點乘算法分別在9.6 ms和10.1 ms內(nèi)完成一次點乘操作??梢姡瑸榱俗尳?jīng)典橢圓曲線點乘算法獲得更好的抗功耗能力,而使用乘法器替代模平方算法的改進措施對點乘算法的計算性能沒有明顯改變。
通過對實現(xiàn)基于混合結(jié)構(gòu)乘法器的點乘算法仿真驗證,結(jié)果表明,基于混合結(jié)構(gòu)乘法器的點乘算法在運算速度上較改進前有一定的提高,和同類型的橢圓曲線點乘算法比較有顯著提高。與此同時,為提高算法的抗功耗分析能力,使用模乘運算取代模平方運算的改進措施,對點乘算法的執(zhí)行時間影響較小。
參考文獻
[1] CHOI Y,KIM H W,KIM M S.Implementation of elliptic curve cryptographic over GF(2163) for ECC protocols[S].2001.
[2] DANIEL M G.A survey of fast exponentiation methods[J]. 1998,27.
[3] IEEE P1363/D13.Standard specification for public-key cryptography[C].1999(12).
[4] 王建,蔣安平,盛世敏.橢圓曲線加密體制的雙有限域算法及其FPGA實現(xiàn)[J].北京大學學報,2008,44(6):871-875.
[5] AIGNER M,OSWALD E.Power analysis tutorial[C].Institute for Applied Information Processing and Communication University of Technology Graz,2000.
[6] 鄭新建,張翌維,沈緒榜.SPA和DPA攻擊與防御技術(shù)新進展[J].小型微型計算機系統(tǒng),2009(4).
[7] 汪朝暉,陳建華.素域上橢圓曲線密碼的高效實現(xiàn)[J].武漢大學學報(理工版),2004,50(3).
[8] 高獻偉,靳濟方,方勇,等.GF(2m)域乘法器的快速設(shè)計及FPGA實現(xiàn)[J].計算機工程與應(yīng)用,2004(25).
[9] JOY M,TYMEN C.Compact encoding of Non-adjacent forms with applications to elliptic curve cryptography[J]. Public Key Cryptography,LNCS 1992,Springer,pp.353-364,2001.
[10] 趙彥光,白國強,陳弘毅.一種針對特征2域橢圓曲線密碼芯片的差分功耗分析[J].微電子學與計算機,2006,23(12).
[11] 余榮威,陳建華.抗側(cè)信道攻擊的橢圓曲線點乘算法設(shè)計[J].計算機工程與應(yīng)用,2006.

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在工業(yè)控制系統(tǒng)中,Modbus RTU協(xié)議的CRC校驗如同通信網(wǎng)絡(luò)的"免疫系統(tǒng)",某石化廠DCS系統(tǒng)曾因CRC計算錯誤導(dǎo)致0.3%的數(shù)據(jù)包丟失,引發(fā)連鎖控制故障。本文將深入解析CRC-16/MODBUS算法原理,對比軟件...

關(guān)鍵字: Modbus RTU CRC 算法

加密算法分對稱加密和非對稱算法,其中對稱加密算法的加密與解密密鑰相同,非對稱加密算法的加密密鑰與解密密鑰不同,此外,還有一類不需要密鑰的散列算法。

關(guān)鍵字: 算法 嵌入式

在現(xiàn)代數(shù)字系統(tǒng)設(shè)計中,將算法高效地轉(zhuǎn)化為 RTL(寄存器傳輸級)實現(xiàn)是 FPGA 工程師的核心任務(wù)之一。這一過程不僅需要對算法有深入理解,還需掌握 FPGA 的硬件特性和設(shè)計技巧。本文將詳細介紹從算法到 RTL 實現(xiàn)的關(guān)...

關(guān)鍵字: 算法 寄存器傳輸級 數(shù)字系統(tǒng)

從本質(zhì)上講,算法是一種有條不紊、分步驟解決問題或完成任務(wù)的方法。無論是簡單的數(shù)字相加公式,還是復(fù)雜的機器學習協(xié)議,算法都是軟件應(yīng)用的基礎(chǔ),確保任務(wù)能夠高效有效地執(zhí)行。

關(guān)鍵字: 算法 嵌入式

在自動駕駛技術(shù)的發(fā)展歷程中,激光雷達(LiDAR)宛如一顆備受矚目的新星,其獨特的技術(shù)特性使其成為追求高安全性、高可靠性自動駕駛方案的首選。然而,這顆新星并非毫無爭議,“價格昂貴、結(jié)構(gòu)復(fù)雜、算法難度高” 等標簽,也讓一些...

關(guān)鍵字: 自動駕駛 激光雷達 算法

4月2日消息,近日,有關(guān)智能駕駛而引發(fā)的交通事故在網(wǎng)絡(luò)上引起了大家的熱烈討論,對此,央視網(wǎng)評指出,“智能駕駛”,也請握緊方向盤。

關(guān)鍵字: 算法 智能駕駛

所謂排序算法,即通過特定的算法因式將一組或多組數(shù)據(jù)按照既定模式進行重新排序。這種新序列遵循著一定的規(guī)則,體現(xiàn)出一定的規(guī)律,因此,經(jīng)處理后的數(shù)據(jù)便于篩選和計算,大大提高了計算效率。對于排序,我們首先要求其具有一定的穩(wěn)定性,...

關(guān)鍵字: 排序算法 算法

快速排序通過一趟排序?qū)⒋判蛄蟹指畛瑟毩⒌膬刹糠?,其中一部分序列的關(guān)鍵字均比另一部分序列的關(guān)鍵字小,則可分別對這兩部分序列繼續(xù)進行排序,以達到整個序列有序的目的。

關(guān)鍵字: 快速排序 算法

算法,作為解決問題的精確描述,是描述策略機制的系統(tǒng)方法。讓我們在周末輕松探討五個具有深遠影響的算法:Metropolis-Hastings算法、單純形法、快速傅立葉變換、快速排序算法,以及計算特征值的QR算法。這些算法在...

關(guān)鍵字: 算法 快速排序算法

服務(wù)需要保護自己,以免被太多的請求淹沒(無論是惡意或無意的),從而保持可用性。舉個生活中的例子,某個景區(qū),平時可能根本沒什么人前往,但是一旦到了國慶假日就人滿為患,這時景區(qū)管理人員就會實施一系列的限流舉措,來限制進入的人...

關(guān)鍵字: 限流 算法
關(guān)閉