日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 工業(yè)控制 > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]摘要:在簡要介紹安全散列函數(shù)SHA1和HMAC_SHA1_96算法體系的基礎(chǔ)上,結(jié)合FPGA芯片(Altera 的APEX20KE系列)的特點(diǎn),進(jìn)行信息安全加密驗(yàn)證算法的硬件系統(tǒng)優(yōu)化設(shè)計(jì)和驗(yàn)證。本文討論了該優(yōu)化設(shè)計(jì)的步驟和方法, 給出了較好

摘要:在簡要介紹安全散列函數(shù)SHA1和HMAC_SHA1_96算法體系的基礎(chǔ)上,結(jié)合FPGA芯片(Altera 的APEX20KE系列)的特點(diǎn),進(jìn)行信息安全加密驗(yàn)證算法的硬件系統(tǒng)優(yōu)化設(shè)計(jì)和驗(yàn)證。本文討論了該優(yōu)化設(shè)計(jì)的步驟和方法, 給出了較好的驗(yàn)證結(jié)果。

關(guān)鍵詞: 安全散列函數(shù);安全性; FPGA

中圖分類號:TP301.6 文獻(xiàn)標(biāo)識碼:A 文章編號:1003-353X(2003)06-0025-04

1概述

隨著信息社會(huì)的發(fā)展,數(shù)據(jù)交換,網(wǎng)上交易等活動(dòng)日益頻繁,從而網(wǎng)絡(luò)安全成為人們關(guān)注的重要問題。隨著信息技術(shù)的發(fā)展與應(yīng)用,信息安全的內(nèi)涵也在不斷延伸,從最初的信息保密性發(fā)展到信息完整性、可用性、可控性和不可否認(rèn)性,進(jìn)而又發(fā)展為攻(攻擊)、防(防范)、測(檢測)、控(控制)、管(管理)、評(評估)等多方面的基礎(chǔ)理論和實(shí)施技術(shù)[1]。目前對于安全性有以下三個(gè)指標(biāo):身份驗(yàn)證、數(shù)據(jù)完整性和機(jī)密性。

HMAC_SHA1算法在身份驗(yàn)證和數(shù)據(jù)完整性方面可以得到很好的應(yīng)用,在目前網(wǎng)絡(luò)安全也得到較好的實(shí)現(xiàn)。然而大多數(shù)應(yīng)用通過軟件實(shí)現(xiàn),但其安全性很難得到真正的保障,于是研究安全算法的硬件
實(shí)現(xiàn)已成為熱點(diǎn)。本文通過對算法和現(xiàn)場可編程芯片特點(diǎn)的分析,優(yōu)化設(shè)計(jì)和實(shí)現(xiàn)了硬件系統(tǒng)的HMAC_SHA1_96算法應(yīng)用方案。

2SHA1函數(shù)

SHA1函數(shù)[2,3,5]是由美國國家標(biāo)準(zhǔn)和技術(shù)局和美國國家安全局設(shè)計(jì)的與DSS一起使用的安全散列算法SHA,并作為安全散列標(biāo)準(zhǔn)(SHS)的聯(lián)邦信息處理標(biāo)準(zhǔn)(FIPS)而公布,SHA1是SHA的修訂版。當(dāng)輸入長度小于2 64bit消息時(shí),輸出160bit的摘要,其算法步驟如下:

步驟一:填充附加位。一般經(jīng)過填充使報(bào)文長度512取模余64bit。該步驟通常是需要的,即使報(bào)文長度已經(jīng)是所希望的長度。因此填充長度范圍為1到512,最高位為1,其余為0。

步驟二:附加報(bào)文長度值。即把一個(gè)64bit的報(bào)文長度數(shù)附加在上述報(bào)文之后(高字節(jié)優(yōu)先),從而達(dá)到512bit的倍數(shù)。

步驟三:初始化變量??梢允褂?60bit的緩存(即160bit寄存器)來存放該散列函數(shù)的初始變量、中間摘要及最終摘要,但首先必須初始化, 給初始變量賦值,即:

A=0x67452301,B=0xefcdab98, C=0x98badcfe,D=0x10325476,E=0xc3d2e1f0

步驟四:處理512bit報(bào)文分組。在該步驟中包括四個(gè)循環(huán),每個(gè)循環(huán)有20個(gè)處理步驟,而每個(gè)循環(huán)對 B﹑C﹑D所用的非線性函數(shù)不同,并且所用的常數(shù)也不同:

對于t=0~19,

ft (B,C,D)=(B∧C )∨((¬B)∧D),

Kt=0x5a827999

對于t=20~39,

ft (B,C,D)=B⊕C ⊕D,

Kt=0x6ed9eba1

對于t=40~59,

ft (B,C,D)=(B∧C )∨(B∧D)∨(C∧D),

Kt=0x8f1bbcdc

對于t=60~79,

ft (B,C,D)=B⊕C ⊕D,

Kt=0xca62c1d6

注:∧表示“與”;∨表示“或”;⊕表示“異或”;¬表示“取反”。

在每一步驟中都將執(zhí)行如下的算法過程(圖1)。


歸納為以下形式﹐其中 <<< 表示循環(huán)左移:

A’, B’, C’, D’, E’← ((A<<<5) + ft (B,C,D)+Et +Wt +Kt ), A, (B<<<30), C, D

由于我們輸入的是16個(gè)32bit消息,而SHA1運(yùn)算需要80個(gè)32bit數(shù)據(jù),所以存在一個(gè)由512bit 消息生成2560bit數(shù)據(jù)的轉(zhuǎn)換過程(即生成W運(yùn)算) ,其轉(zhuǎn)換機(jī)制如下:

對于t=0~15, W t=Mt;

對于t=16~79,

Wt=(M t-3⊕Mt-8⊕Mt-14 ⊕Mt-16)<<<1。

步驟五:結(jié)果輸出。512bit報(bào)文運(yùn)算完就輸出 160bit的報(bào)文摘要。

3HMAC_SHA1_96算法

HMAC_SHA1_96算法[2,3,6] 是基于單向散列函數(shù)SHA1和以密鑰為基礎(chǔ)的完整性檢查驗(yàn)證機(jī)制,它是從生成的160bit摘要中選擇從高到低的96bit作為最終輸出。在該算法中主要就是SHA1函數(shù)和HMAC算法。它的作用在于生成摘要放在消息后面以驗(yàn)證消息在傳輸時(shí)是否受到修改或變動(dòng),保證消息的完整性。根據(jù)HMAC的定義,本設(shè)計(jì)的HMAC_SHA1_96算法原理圖如圖2。

圖2算法的幾點(diǎn)說明:① _ipad表示補(bǔ)位后的密鑰與ipad 異或的結(jié)果,K_opad表示補(bǔ)位后的密鑰與opad異或的結(jié)果;② 次SHA1運(yùn)算包括生成W運(yùn)算;③ 由SHA1運(yùn)算輸出的結(jié)果是經(jīng)過加法處理的結(jié)果;④ 虛線部分表示圖上忽略的信息分組和相應(yīng)的SHA1運(yùn)算部分;⑤ 如果只有512bit消息,則第一輪只需進(jìn)行兩次SAH1運(yùn)算,就轉(zhuǎn)到第二輪。圖2又可寫成如下的表達(dá)式:

SHA1( K XOR opad, SHA1(K XOR ipad, M) )

其中 K是密鑰補(bǔ)位后的新值,即在密鑰后補(bǔ)0使之為512bit;ipad是0×36重復(fù)16次的一個(gè)數(shù)組;opad是0×5c重復(fù)16次的一個(gè)數(shù)組;M是消息;XOR表示異或運(yùn)算;SHA1是安全散列函數(shù)。

4硬件設(shè)計(jì)

針對以上算法分析和實(shí)現(xiàn)流程特點(diǎn),結(jié)合 FPGA芯片的硬件結(jié)構(gòu),進(jìn)行如下的硬件系統(tǒng)設(shè)計(jì)和優(yōu)化。

4.1使用RAM結(jié)構(gòu)[4]

在HMAC_SHA1_96算法體系中,有大位數(shù)的數(shù)據(jù)存儲(chǔ),如果要用寄存器來實(shí)現(xiàn),需要大約7000左右的寄存器,占用大量的FPGA芯片資源,這是因?yàn)镕PGA芯片上,每個(gè)LE(邏輯單元)單元只有一個(gè)寄存器,這樣每個(gè)LE單元上其它硬件資源將會(huì)浪費(fèi)。然而FPGA芯片上大量的ESB(嵌入式系統(tǒng)塊)資源沒有充分利用,而ESB可以用來實(shí)現(xiàn)各種類型的存儲(chǔ)模塊,如RAM、ROM、FIFO和CAM等,在這種情況下,可以采用ESB實(shí)現(xiàn)RAM來代替寄存器,從而節(jié)省LE硬件資源,并且RAM存儲(chǔ)數(shù)據(jù),控制起來比寄存器方便很多。

4.2 重復(fù)利用相同模塊

正如前面算法所述,SHA1算法是由80次運(yùn)算組成的,而每次運(yùn)算的結(jié)構(gòu)又是一樣的,如果采用水線形式的運(yùn)算模式,利用80個(gè)同樣的模塊,會(huì)占用很多的硬件資源,不符合優(yōu)化設(shè)計(jì)的要求,因此可以先優(yōu)化設(shè)計(jì)出一個(gè)模塊,再對該模塊復(fù)用80 次,每一次運(yùn)算的結(jié)果需存入寄存器,以便送入下一次運(yùn)算,這樣可極大地優(yōu)化利用FPGA硬件資源。

4.3 模塊劃分

HMAC_SHA1_96算法體系的硬件實(shí)現(xiàn),必會(huì)存在與外圍電路的數(shù)據(jù)握手傳輸。由于外圍電路(8255或CPU)的工作時(shí)鐘頻率與所設(shè)計(jì)的芯片工作時(shí)鐘頻率不一樣,要讓設(shè)計(jì)芯片與外圍電路協(xié)調(diào)工作,就必須專門設(shè)計(jì)輸入輸出接口電路,再設(shè)計(jì)出核心處理模塊,從而不受外界電路工作環(huán)境影響。由此,可以將本設(shè)計(jì)分為三個(gè)部分:輸入模塊、算法實(shí)現(xiàn)模塊和輸出模塊。

4.3.1 輸入模塊

由于輸入模塊會(huì)跟外圍電路(如8255)連接進(jìn)行信號或數(shù)據(jù)傳輸,根據(jù)握手信號ACK和OBF,每次輸入8bit數(shù)據(jù)寫到64×8bit的RAM,需要64 次,而外圍電路什么時(shí)候輸入數(shù)據(jù)由內(nèi)部信號sha_end控制,該模塊的輸出一次為32bit,所以相當(dāng)于一次讀4×8bit數(shù)據(jù)。

4.3.2 算法實(shí)現(xiàn)模塊

該模塊主要進(jìn)行HAMC_SHA運(yùn)算,輸出160bit摘要,其數(shù)據(jù)處理流程圖見圖3(圖中 M_RAM用來存儲(chǔ)消息),其中又可以分為以下幾個(gè)主要部分:

① 密鑰輸入處理部分。處理密鑰時(shí)需要先對其進(jìn)行異或運(yùn)算,然后把其寫入兩個(gè)32×16bit的 RAM,假設(shè)分別為I_RAM和O_RAM。I_RAM里數(shù)據(jù)在第一輪SHA1算法首先運(yùn)算,而O_RAM 里的數(shù)據(jù)要到第二輪才開始運(yùn)算。

② 生成W處理部分。 由于SHA1函數(shù)中要進(jìn)行80次運(yùn)算,每次運(yùn)算采用不同的32bit W值,而輸入的只有16個(gè)32bit數(shù)據(jù),于是該算法采用四個(gè)不同的W值進(jìn)行異或運(yùn)算生成新的W值。這四個(gè)W值是從80×32bit的W_RAM讀出的,而生成新的 W值再依次寫入該RAM中沒有使用的位置。

③ SHA1運(yùn)算部分。是設(shè)計(jì)的核心部分,需要完成80次運(yùn)算,每次從32×80bit RAM讀出一個(gè)32bit W值,最終生成160bit摘要。

④ 摘要處理部分。主要對每一次SHA1運(yùn)算后生成的摘要與本次的初始密鑰進(jìn)行加法運(yùn)算,作為下次SHA1運(yùn)算的初始密鑰,或者作為最終輸出摘要,或者作為下一輪SHA1運(yùn)算的消息輸入。

⑤ 摘要補(bǔ)位部分[6] 。對第一輪生成的160bit摘要進(jìn)行補(bǔ)位,方法為:[160]~[190] 0[191] 1 [192]~[479] 0 [480]~[511]=1010100000,將此值寫入一個(gè)16×32bit的FILL_RAM。

4.3.3 輸出模塊

同輸入模塊一樣,由于同外圍電路進(jìn)行信號或數(shù)據(jù)傳輸,根據(jù)握手信號STB和IBF,每次輸出8bit數(shù)據(jù)到外圍電路,但該部分主要是一個(gè)8×12bit RAM,可以一次寫入96bit數(shù)據(jù)。

4.4 硬件系統(tǒng)總體結(jié)構(gòu)

在數(shù)據(jù)輸出端加鎖存器是為了保證輸出數(shù)據(jù)被外圍電路采樣之前始終有效,從而達(dá)到本設(shè)計(jì)與外圍電路協(xié)調(diào)工作的目的。結(jié)構(gòu)圖如圖4。


5FPGA實(shí)現(xiàn)

我們知道,F(xiàn)PGA芯片內(nèi)部結(jié)構(gòu)是由邏輯陣列塊(LAB)、嵌入式系統(tǒng)塊(ESB)、快速通道互聯(lián)和輸入輸出單元(IOE)組成。LAB是由10個(gè)LE、LE 間關(guān)聯(lián)的進(jìn)位鏈﹑級連鏈﹑LAB控制信號和LAB局部互連構(gòu)成,可以實(shí)現(xiàn)快速運(yùn)算通道,特別適合本設(shè)計(jì)算術(shù)運(yùn)算單元的硬件實(shí)現(xiàn)[4]。ESB如前所說,可以用來實(shí)現(xiàn)不同的存儲(chǔ)模塊,特別適合于大位數(shù)的數(shù)據(jù)存儲(chǔ)。快速通道是用來實(shí)現(xiàn)LE之間,ESB 與I/O之間的快速互連,并且具有高扇出能力,它是一系列縱橫交錯(cuò)的連續(xù)式分布通道,能夠得到高性能和快速的信號傳輸,提高本設(shè)計(jì)運(yùn)算效率和信號的穩(wěn)定性。I/O單元由一個(gè)雙向緩沖器和一個(gè)寄存器組成,含有可編程延時(shí),可確保零保持時(shí)間或最小的時(shí)鐘到輸出時(shí)間,減少設(shè)計(jì)數(shù)據(jù)輸出的毛刺現(xiàn)象。另外FPGA可以重復(fù)使用,以方便修改代碼或參數(shù)時(shí)再重新配置FPGA。

本設(shè)計(jì)采用Altera的APEX20KE160EQC240_1X 芯片實(shí)現(xiàn),其功能模塊及PC接口原理圖見圖5。


圖中FPGA編程器采用QuartusⅡ2.0軟件, HMAC_SHA1_96應(yīng)用環(huán)境設(shè)置主要配置軟件控制HMAC_SHA1_96的運(yùn)行機(jī)制,PCI控制器用來控制FPGA芯片與PCI BUS的通訊。先通過QuartusⅡ2.0軟件對代碼布局布線生成pof文件或sof文件, pof文件可直接用來配置FPGA,但每次使用時(shí)必須重新配置;而sof文件可以先存入EEPROM,再由 EEPROM對FPGA配置,每次上電前由EEPROM配置,這樣可以直接應(yīng)用于信息安全硬件系統(tǒng)中。


參考文獻(xiàn):

[1].SHAdatasheethttp://www.dzsc.com/datasheet/SHA_2043215.html.
[2].ROMdatasheethttp://www.dzsc.com/datasheet/ROM_1188413.html.
[3].2.0datasheethttp://www.dzsc.com/datasheet/2.0_1758666.html.
[4].PCIdatasheethttp://www.dzsc.com/datasheet/PCI_1201469.html.


來源:零八我的愛1次

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

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉