安全芯片中密碼算法的多IP核集成方法
在系統(tǒng)對某一IP核功能進行調(diào)用時,密碼算法IP核重構(gòu)模塊按如下步驟進行操作:a.根據(jù)系統(tǒng)的輸入地址與讀/寫使能,將輸入的待處理數(shù)據(jù)存儲于 dual_ramx中;b.IP橋譯碼IP選擇參數(shù),重構(gòu)選定IP核控制指令為輸入的IP控制指令,dual_ramx為選定IP核數(shù)據(jù)處理區(qū).c.選定 IP核將duaLramx中數(shù)據(jù)讀入IP核內(nèi)部,根據(jù)IP控制指令,完成數(shù)據(jù)處理;d.選定IP核將已處理數(shù)據(jù)輸出到dual_ramx中,置相應狀態(tài)完成信號為有效.e.系統(tǒng)判斷狀態(tài)信號有效,通過dual_ramx將處理完成數(shù)據(jù)讀出,完成IP功能調(diào)用。
與本文第一部分中方法二相比較,IP橋接技術(shù)增加了IP_bridge對選定IP核重構(gòu)數(shù)據(jù)處理區(qū)與控制指令這一過程。該設(shè)計可以實現(xiàn)不同IP核與 dual_ramx的動態(tài)重構(gòu),通過引入IP橋,對IP核調(diào)用指令進行解釋,進而配置被調(diào)用IP核的地址、數(shù)據(jù)、指令與時鐘等各種接口信號,完成系統(tǒng)對 IP核的功能調(diào)用。不同IP核與同一數(shù)據(jù)處理區(qū)的動態(tài)可重構(gòu)可以有效節(jié)省片內(nèi)存儲資源,提高存儲區(qū)利用效率。
采用IP橋接技術(shù)實現(xiàn)密碼算法多IP核集成,不僅可能節(jié)省系統(tǒng)資源消耗,在密碼服務(wù)提供方面也具有一定優(yōu)勢。密碼服務(wù)通常是一個有序的過程,在提供密碼服務(wù)時,由于減少了在不同IP專用數(shù)據(jù)處理區(qū)之間的數(shù)據(jù)轉(zhuǎn)移操作,因而可以有效提高系統(tǒng)對數(shù)據(jù)的處理效率。例如,在完成一次簽名服務(wù)時,一般先對簽名數(shù)據(jù)進行雜湊值運算,再調(diào)用公鑰密碼算法對雜湊結(jié)果進行簽名,完成對簽名數(shù)據(jù)的簽名服務(wù)。在這一過程中,將簽名服務(wù)作為一個完整的基本服務(wù)功能進行調(diào)用,系統(tǒng)將簽名數(shù)據(jù)寫入dual_ramx后,僅需完成對IP選擇參數(shù)的配置與完成信號的判斷操作,便可實現(xiàn)數(shù)據(jù)簽名,極大地簡化了系統(tǒng)在向外提供密碼服務(wù)時的軟件控制過程,提高了服務(wù)的完成效率。相比較于方法二,所要完成的密碼服務(wù)越復雜,這一優(yōu)勢越明顯。
2.2 IP橋接技術(shù)具體實現(xiàn)
以2.1中IP橋接技術(shù)設(shè)計原理為指導,本文在一個8位SoC系統(tǒng)上實現(xiàn)了TDES、SHA1、RSA三個IP核的系統(tǒng)集成設(shè)計。為簡化 IP_bridge設(shè)計,三個IP核的數(shù)據(jù)位寬均統(tǒng)一為32位,執(zhí)行頻率統(tǒng)一為50 MHz。圖1為密碼算法IP核重構(gòu)區(qū)RTL圖。本文引用地址:http://butianyuan.cn/article/191926.htm
如圖1所示,密碼算法IP核重構(gòu)區(qū)由TDES、SHA1、RSA三個IP核與IP_bridge、asis_ramx共同構(gòu)成,根據(jù)輸入的控制參數(shù),完成同一雙端口存儲區(qū)與不同IP核之間的動態(tài)重構(gòu)。其輸入輸出如表1所列。
以調(diào)用SHA1為例,系統(tǒng)完成對數(shù)據(jù)塊雜湊值計算的操作步驟為:
①MCU執(zhí)行指令
MOV FUNCCHOOSE,#05H
選擇當前調(diào)用IP核為SHA1。
②將一個16字節(jié)待處理數(shù)據(jù)塊輸入雙端口存儲區(qū)asis_ramx中,此時輸入數(shù)據(jù)長度必須為16字節(jié)。
③執(zhí)行指令
MOV INSTUCT,#80H
MOV INSTRUCT,#01H
前一條指令將SHA1進行復位,后一條指令使能SHA1,將待處理數(shù)據(jù)讀入IP核內(nèi)部寄存器,進而對其進行SHA1運算處理。
④對FUNCSTATE最低位進行判斷,為1時輸入下一個16字節(jié)數(shù)據(jù)塊,執(zhí)行指令
MOV INSTRUCT,#01H
復位SHA1完成信號,繼續(xù)進行SHA1運算處理。
⑤最后一個16字節(jié)數(shù)據(jù)塊輸入,執(zhí)行指令
MOV INSTRUCT,#01H
判斷FUNCSTATE最低位,為1時讀出雙端口存儲區(qū)中處理完成數(shù)據(jù)。
評論