質(zhì)詢和響應(yīng)身份驗(yàn)證要求 MAC 發(fā)起方和 MAC 接收方根據(jù)隱藏的機(jī)密和公共數(shù)據(jù)計(jì)算消息認(rèn)證代碼。發(fā)起方通常是 SHA-1 身份驗(yàn)證器或具有 SHA-1 引擎的受保護(hù)內(nèi)存。MAC 接收方是應(yīng)用程序的主機(jī)處理器。本應(yīng)用筆記介紹了DSSHA1可合成SHA-1協(xié)處理器,該協(xié)處理器可在專用集成電路(ASIC)或現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)中實(shí)現(xiàn),作為DS2460 SHA-1協(xié)處理器或基于微處理器的替代方案。
介紹
質(zhì)詢和響應(yīng)身份驗(yàn)證基于消息身份驗(yàn)證代碼 (MAC) 的計(jì)算。該方法涉及兩個(gè)實(shí)體,即 MAC 發(fā)起方和 MAC 接收方,它們共享一個(gè)隱藏的機(jī)密。為了證明 MAC 發(fā)起方的真實(shí)性,MAC 接收方會(huì)生成一個(gè)隨機(jī)數(shù),并將其作為質(zhì)詢發(fā)送給發(fā)起方。然后,MAC 發(fā)起方必須根據(jù)機(jī)密、消息和質(zhì)詢計(jì)算新的 MAC,并將其發(fā)送回接收方。如果發(fā)起方證明能夠?yàn)槿魏钨|(zhì)詢生成有效的MAC,則非常確定它知道該機(jī)密,因此可以被認(rèn)為是真實(shí)的。計(jì)算消息身份驗(yàn)證代碼的徹底審查和國(guó)際認(rèn)證的算法是SHA-1,它由美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)開(kāi)發(fā)。
ADI公司生產(chǎn)一系列采用SHA-1算法的認(rèn)證器件。教程3675“通過(guò)安全認(rèn)證保護(hù)研發(fā)投資”以安全存儲(chǔ)器和DS2460 SHA-1協(xié)處理器的形式解釋了ADI公司的認(rèn)證解決方案。DSSHA1存儲(chǔ)器映射SHA-1協(xié)處理器允許DS2460的計(jì)算能力在專用集成電路(ASIC)或現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)中實(shí)現(xiàn),無(wú)需開(kāi)發(fā)軟件即可執(zhí)行復(fù)雜的SHA-1計(jì)算。DSSHA1或DS2460計(jì)算的MAC僅適用于ADI公司的SHA-1器件。
描述
DSSHA1 是一款可合成的內(nèi)存映射 SHA-1 協(xié)處理器,包括一個(gè)存儲(chǔ) 64 字節(jié)消息的 64 字節(jié)通用 RAM。輸入消息用于計(jì)算 SHA-1 MAC。DSSHA1 輸入和輸出端口信號(hào)設(shè)計(jì)用于內(nèi)部連接到 32 位總線。通過(guò)積極的比較結(jié)果,在主機(jī)系統(tǒng)和從屬附件之間實(shí)現(xiàn)了身份驗(yàn)證安全性。
圖 1 顯示了 DSSHA1 框圖。表 1 描述了將 DSSHA1 連接到主機(jī)系統(tǒng)的信號(hào)。使用數(shù)據(jù)總線輸入、地址和控制信號(hào),將 64 字節(jié) SHA-1 消息插入 RAM。將輸入信號(hào)RUN_SHA觸發(fā)至邏輯高電平將啟動(dòng)SHA-1計(jì)算。輸出 BUSY 信號(hào)指示正在發(fā)生的計(jì)算。完成 BUSY 信號(hào)后,結(jié)果寄存器包含 20 字節(jié)消息摘要以供讀取。
圖1.方框圖。
名字 | 類型* | 功能 |
CLK | I | 時(shí)鐘。在正邊,信號(hào) DATAI[31:0] 和 DATAO[31:0] 上的數(shù)據(jù)被輸入和輸出。 |
RSTZ | I | /有效復(fù)位。RSTZ信號(hào)在CLK信號(hào)的正邊沿的每個(gè)間隔處進(jìn)行評(píng)估。有必要在每次加載 512 位消息和 MAC 計(jì)算之前進(jìn)行重置。 |
CSZ | I | /有效芯片選擇。對(duì)于寄存器和存儲(chǔ)器的所有訪問(wèn),此信號(hào)必須為低電平。 |
WRZ | I | 低電平有效寫(xiě)使能。在所有寫(xiě)入操作期間,此信號(hào)必須為低電平。 |
ADDR[4:0] | I | 地址 [4:0]。這五個(gè)信號(hào)就是地址信號(hào)。 |
DATAI[31:0] | I | 數(shù)據(jù)總線輸入。這32個(gè)信號(hào)是輸入數(shù)據(jù)總線。 |
DATAO[31:0] | O | 數(shù)據(jù)總線輸出。這32個(gè)信號(hào)是輸出數(shù)據(jù)總線。 |
BUSY | O | 忙。當(dāng)信號(hào)為高電平時(shí),此信號(hào)表示SHA-1協(xié)處理器正忙于執(zhí)行計(jì)算。當(dāng)此信號(hào)為高電平時(shí),不應(yīng)有數(shù)據(jù)訪問(wèn)。 |
RUN_SHA | I | 運(yùn)行 SHA-1。該信號(hào)必須只有一個(gè)時(shí)鐘周期寬,并在CLK信號(hào)的正邊沿啟動(dòng)SHA-1計(jì)算。 |
*I = 輸入,O = 輸出。 |
詳細(xì)寄存器說(shuō)明
DSSHA1 存儲(chǔ)器由 32 個(gè) 2 位字組成,從輸入緩沖器開(kāi)始,以寄存器結(jié)束,用于讀取 MAC 結(jié)果(表 <>)。
地址(十六進(jìn)制) | 類型 | 訪問(wèn) | 功能 |
00h 至 0Fh | RAM | 讀/寫(xiě) | 64字節(jié)緩沖器輸入。這是 512 位輸入塊,通常包括 64 位從設(shè)備密鑰和由隨機(jī)質(zhì)詢和各種數(shù)據(jù)組成的 448 位輸入消息。 |
10小時(shí)至14小時(shí) | 寄存 器 | 讀 | 20 字節(jié)結(jié)果。這是用于與 SHA-1 從設(shè)備接收到的 MAC 進(jìn)行比較的 MAC。 |
輸入緩沖器(00h 至 0Fh)
SHA-1 引擎通過(guò) 64 字節(jié)輸入緩沖區(qū)接收要處理的數(shù)據(jù)。此緩沖區(qū)保存 SHA-512 引擎處理以生成 MAC 的 1 位消息。機(jī)密和其他消息數(shù)據(jù)包含在輸入緩沖區(qū)中。密鑰的安全性是留給設(shè)計(jì)人員的任務(wù)。數(shù)據(jù)的格式由每個(gè)ADI公司的SHA-1從器件定義。
MAC 結(jié)果(10 小時(shí)至 14 小時(shí))
SHA-20 計(jì)算的 1 字節(jié) MAC 駐留在 MAC 結(jié)果地址空間中。
設(shè)備操作
DSSHA1在應(yīng)用中的典型用途包括寫(xiě)入、讀取和運(yùn)行SHA-1引擎,并使用MAC結(jié)果將該模塊與1-Wire SHA-1器件的MAC進(jìn)行外部比較。所有這些活動(dòng)都通過(guò)具有獨(dú)立數(shù)據(jù)輸入和輸出線的 32 位接口進(jìn)行控制,以便輕松連接到 ASIC 或 FPGA 內(nèi)部總線。下面的 SHA-1 引擎控制部分介紹了數(shù)據(jù)輸入和輸出格式以及如何指示 SHA-1 引擎執(zhí)行 MAC 計(jì)算。
SHA-1 發(fā)動(dòng)機(jī)控制
DSSHA1執(zhí)行SHA-1發(fā)動(dòng)機(jī)的工作。輸入緩沖區(qū)接受消息。MAC 輸出緩沖區(qū)接收生成的 SHA-1 計(jì)算。圖 2 說(shuō)明了流入和流出 SHA-1 引擎的數(shù)據(jù)流。
應(yīng)用電源復(fù)位啟動(dòng)使用 SHA-1 引擎的第一步。接下來(lái),以表 3 的格式將消息加載到輸入緩沖區(qū)中。消息加載完成后,用戶向RUN_SHA輸入信號(hào)發(fā)送脈沖。在 SHA-1 計(jì)算期間,BUSY 信號(hào)變?yōu)椴⒈3诌壿嫺唠娖?。?dāng)SHA-1計(jì)算完成時(shí),忙信號(hào)再次變?yōu)檫壿嫷碗娖?。所有五個(gè)MRR寄存器(見(jiàn)表4)都包含用于讀取的MAC結(jié)果。
圖2.數(shù)據(jù)流圖。
M0[31:24] = (IB + 0) | M0[23:16] = (IB + 1) | M0[15:8] = (IB + 2) | M0[7:0] = (IB + 3) |
M1[31:24] = (IB + 4) | M1[23:16] = (IB + 5) | M1[15:8] = (IB + 6) | M1[7:0] = (IB + 7) |
M2[31:24] = (IB + 8) | M2[23:16] = (IB + 9) | M2[15:8] = (IB + 10) | M2[7:0] = (IB + 11) |
M3[31:24] = (IB + 12) | M3[23:16] = (IB + 13) | M3[15:8] = (IB + 14) | M3[7:0] = (IB + 15) |
M4[31:24] = (IB + 16) | M4[23:16] = (IB + 17) | M4[15:8] = (IB + 18) | M4[7:0] = (IB + 19) |
M5[31:24] = (IB + 20) | M5[23:16] = (IB + 21) | M5[15:8] = (IB + 22) | M5[7:0] = (IB + 23) |
M6[31:24] = (IB + 24) | M6[23:16] = (IB + 25) | M6[15:8] = (IB + 26) | M6[7:0] = (IB + 27) |
M7[31:24] = (IB + 28) | M7[23:16] = (IB + 29) | M7[15:8] = (IB + 30) | M7[7:0] = (IB + 31) |
M8[31:24] = (IB + 32) | M8[23:16] = (IB + 33) | M8[15:8] = (IB + 34) | M8[7:0] = (IB + 35) |
M9[31:24] = (IB + 36) | M9[23:16] = (IB + 37) | M9[15:8] = (IB + 38) | M9[7:0] = (IB + 39) |
M10[31:24] = (IB + 40) | M10[23:16] = (IB + 41) | M10[15:8] = (IB + 42) | M10[7:0] = (IB + 43) |
M11[31:24] = (IB + 44) | M11[23:16] = (IB + 45) | M11[15:8] = (IB + 46) | M11[7:0] = (IB + 47) |
M12[31:24] = (IB + 48) | M12[23:16] = (IB + 49) | M12[15:8] = (IB + 50) | M12[7:0] = (IB + 51) |
M13[31:24] = (IB + 52) | M13[23:16] = (IB + 53) | M13[15:8] = (IB + 54) | M13[7:0] = (IB + 55) |
M14[31:24] = (IB + 56) | M14[23:16] = (IB + 57) | M14[15:8] = (IB + 58) | M14[7:0] = (IB + 59) |
M15[31:24] = (IB + 60) | M15[23:16] = (IB + 61) | M15[15:8] = (IB + 62) | M15[7:0] = (IB + 63) |
Mt = SHA-1 發(fā)動(dòng)機(jī)的輸入緩沖區(qū);0 ≤ t ≤ 15;32 位字,起始地址為 00h,結(jié)束地址為 0Fh。 IB = 輸入緩沖區(qū)。 |
表 4 顯示了保存 MAC 的五個(gè) 32 位變量 A 到 E 如何映射到各自的位置。
Address (Hex) | MAC Result Registers (MRR) |
10h | MRR[31:0] = A[31:0] (least significant) |
11h | MRR[31:0] = B[31:0] |
12h | MRR[31:0] = C[31:0] |
13h | MRR[31:0] = D[31:0] |
14h | MRR[31:0] = E[31:0] (most significant) |
MAC 比較
主站需要針對(duì) DSSHA1 MAC 測(cè)試從屬 MAC。如果從屬 MAC 和 DSSHA1 MAC 的值相等,則驗(yàn)證真實(shí)性。如果從屬 MAC 和 DSSHA1 MAC 不同,則會(huì)驗(yàn)證欺詐行為。
功能驗(yàn)證
要測(cè)試 DSSHA1,測(cè)試消息“abc”可以驗(yàn)證功能。此具有適當(dāng)填充的測(cè)試消息可以轉(zhuǎn)換為以下輸入塊:
W[0] = 61626380 | W[8] = 00000000 |
W[1] = 00000000 | W[9] = 00000000 |
W[2] = 00000000 | W[10] = 00000000 |
W[3] = 00000000 | W[11] = 00000000 |
W[4] = 00000000 | W[12] = 00000000 |
W[5] = 00000000 | W[13] = 00000000 |
W[6] = 00000000 | W[14] = 00000000 |
W[7] = 00000000 | W[15] = 00000018 |
使用表 3 的格式,此測(cè)試消息的輸入塊將是表 5 中的值。
M0[31:24] = 61h | M0[23:16] = 62h | M0[15:8] = 63h | M0[7:0] = 80h |
M1[31:24] = 00h | M1[23:16] = 00h | M1[15:8] = 00h | M1[7:0] = 00h |
M2[31:24] = 00h | M2[23:16] = 00h | M2[15:8] = 00h | M2[7:0] = 00h |
M3[31:24] = 00h | M3[23:16] = 00h | M3[15:8] = 00h | M3[7:0] = 00h |
M4[31:24] = 00h | M4[23:16] = 00h | M4[15:8] = 00h | M4[7:0] = 00h |
M5[31:24] = 00h | M5[23:16] = 00h | M5[15:8] = 00h | M5[7:0] = 00h |
M6[31:24] = 00h | M6[23:16] = 00h | M6[15:8] = 00h | M6[7:0] = 00h |
M7[31:24] = 00h | M7[23:16] = 00h | M7[15:8] = 00h | M7[7:0] = 00h |
M8[31:24] = 00h | M8[23:16] = 00h | M8[15:8] = 00h | M8[7:0] = 00h |
M9[31:24] = 00h | M9[23:16] = 00h | M9[15:8] = 00h | M9[7:0] = 00h |
M10[31:24] = 00h | M10[23:16] = 00h | M10[15:8] = 00h | M10[7:0] = 00h |
M11[31:24] = 00h | M11[23:16] = 00h | M11[15:8] = 00h | M11[7:0] = 00h |
M12[31:24] = 00h | M12[23:16] = 00h | M12[15:8] = 00h | M12[7:0] = 00h |
M13[31:24] = 00h | M13[23:16] = 00h | M13[15:8] = 00h | M13[7:0] = 00h |
M14[31:24] = 00h | M14[23:16] = 00h | M14[15:8] = 00h | M14[7:0] = 00h |
M15[31:24] = 00h | M15[23:16] = 00h | M15[15:8] = 00h | M15[7:0] = 18h |
Mt = SHA-1 發(fā)動(dòng)機(jī)的輸入緩沖區(qū);0 ≤ t ≤ 15;32 位字,起始地址為 00h,結(jié)束地址為 0Fh。 |
此塊的計(jì)算輸出為:
A[31:0] = 42541B35
B[31:0] = 5738D5E1
C[31:0] = 21834873
D[31:0] = 681E6DF6
E[31:0] = D8FDF6AD
ADI公司器件首先將這些字作為最高有效字,將獨(dú)立字節(jié)作為最低有效字節(jié)(LSB)。因此,MAC 的字節(jié)級(jí)傳輸序列將是:
AD F6 FD D8 | F6 6D 1E 68 | 73 48 83 21 | E1 D5 38 57 | 35 1B 54 42 |
(E) | (D) | (C) | (B) | (A) |
時(shí)序規(guī)格
圖 3 和圖 4 顯示了寫(xiě)入和讀取 DSSHA1 的時(shí)序圖。表6顯示了使用ARM TSMC CL50G(50.018μm通用工藝)0.18V SAGE-X標(biāo)準(zhǔn)電池庫(kù)(版本1q8v2004)在+3°C下從1%電源到25%電源測(cè)量的延遲值。 輸出信號(hào)未加載。輸入信號(hào)以 0.200ns 的標(biāo)準(zhǔn)壓擺驅(qū)動(dòng),電源的 10% 至 90%。
參數(shù) | 象征 | 最小值 | 麥克斯 | 單位 | ||
CLK循環(huán)(注1) | tCYC | 12.500 | ns | |||
CLK上升沿前的芯片選擇設(shè)置(注1) | tCSS | 0.229 | ns | |||
CLK上升沿后芯片選擇保持(注1) | tCSH | 0.000 | ns | |||
CLK上升沿前的地址和數(shù)據(jù)設(shè)置(注1) | tAS | 0.229 | ns | |||
CLK上升沿后的地址和數(shù)據(jù)保持(注1) | tAH | 0.000 | ns | |||
有效輸出時(shí)間至DATAO有效(注釋1、2) | tAO | 0.984 | ns | |||
停用數(shù)據(jù)[31:0] (注1) | tD | 0.984 | ns | |||
注1:這些值取決于用于實(shí)現(xiàn)電路的過(guò)程。顯示的值僅用于示例目的,并使用 ARM 臺(tái)積電 CL018G(0.18μm 通用工藝)1.8V SAGE-X 標(biāo)準(zhǔn)細(xì)胞庫(kù) 2004q3v1 進(jìn)行建模。ARM 部件號(hào)為 A0082。 注2:此時(shí)間定義為典型拐角的有效輸出的最長(zhǎng)可能延遲。 |
圖3.寫(xiě)入周期。
圖4.讀取周期。
應(yīng)用信息
FPGA 或 ASIC 集成了設(shè)計(jì)的 DSSHA1。使用多個(gè)模塊,可實(shí)現(xiàn)的身份驗(yàn)證方法使設(shè)計(jì)安全。在圖5中,帶有微處理器的設(shè)計(jì)模塊可以將SHA-1計(jì)算卸載到DSSHA1。在圖5中,設(shè)計(jì)人員首先制作一個(gè)隨機(jī)生成的質(zhì)詢,并將DSSHA1的結(jié)果與DS28E01-100的響應(yīng)進(jìn)行比較。如果結(jié)果和響應(yīng)匹配,則設(shè)計(jì)已經(jīng)過(guò)身份驗(yàn)證,可以啟用產(chǎn)品的功能。通常需要在軟件和硬件的身份驗(yàn)證過(guò)程中進(jìn)行更改。這使得成功攻擊的可能性降低。更多信息請(qǐng)參考應(yīng)用筆記1098:“白皮書(shū)3:為什么1-Wire SHA-1器件安全?
圖5.典型的 FPGA 或 ASIC 應(yīng)用。
物理估計(jì)
門(mén)數(shù) 6,423(NAND 2x1 用于計(jì)算)。
面積為85,470μm2,無(wú)布線。
面積為102,256μm2,布線估計(jì)值。
用于估算的庫(kù):
ARM 臺(tái)積電 CL018G (0.18μm 通用工藝) 1.8V SAGE-X 標(biāo)準(zhǔn)電池庫(kù),版本 2004Q3V1。ARM 部件號(hào)為 A0082。
驗(yàn)證
業(yè)界通常使用以下約定來(lái)表示 IP 塊的驗(yàn)證級(jí)別:
黃金IP一直是針對(duì)硅的。
銀牌IP一直是FPGA中的硅目標(biāo)。
銅牌 IP 已在具有邏輯時(shí)序收斂功能的硅模型中得到驗(yàn)證。
開(kāi)發(fā)中的 IP 尚未得到驗(yàn)證。
注意:DSSHA1已獲得銀牌地位。
交付
DSSHA1 軟件包隨附:
Verilog HDL
威瑞格測(cè)試臺(tái)
有關(guān)安裝程序和腳本的自述文件
總結(jié)
DSSHA1可合成SHA-1協(xié)處理器是DS2460或基于微處理器的替代方案。它可以嵌入到FPGA或ASIC中,在那里它顯示為存儲(chǔ)器映射器件。對(duì)于操作,首先在 16 字輸入緩沖區(qū)中填充用于 MAC 計(jì)算的數(shù)據(jù)。激活RUN_SHA信號(hào)將啟動(dòng)計(jì)算過(guò)程,從而將 BUSY 信號(hào)從低電平更改為高電平。在 BUSY 信號(hào)恢復(fù)為低電平后,MAC 準(zhǔn)備就緒,可以從 5 字結(jié)果寄存器讀取。主機(jī)處理器將 DSSHA1 計(jì)算的 MAC 與安全內(nèi)存提供的 MAC 進(jìn)行比較。如果兩個(gè) MAC 值相同,則確認(rèn)真實(shí)性。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19740瀏覽量
232890 -
集成電路
+關(guān)注
關(guān)注
5415文章
11865瀏覽量
366283 -
微處理器
+關(guān)注
關(guān)注
11文章
2358瀏覽量
83613
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
DS2465 SHA-256協(xié)處理器與1-Wire主機(jī)功能

如何通過(guò)使用FPGA高速實(shí)現(xiàn)SHA-1消息認(rèn)證算法?
帶有EEPROM的SHA1協(xié)處理器DS2460電子資料
基于SHA-1的郵件去重算法
為什么1-Wire SHA-1器件是安全的?
DSSHA1 內(nèi)存映射的SHA-1協(xié)處理器

DSSHA1數(shù)據(jù)資料(英文)

DSSHA1中文手冊(cè)

Understanding the DSSHA1 Synthesizable SHA-1 Coprocessor

dssha1綜合SHA-1協(xié)處理器

基于SHA-1算法的硬件設(shè)計(jì)及實(shí)現(xiàn)(FPGA實(shí)現(xiàn))

安全協(xié)處理器/1-Wire? 主控器實(shí)現(xiàn)SHA-256認(rèn)證

評(píng)論