本發(fā)明涉及數(shù)據(jù)通訊安全領(lǐng)域,尤其涉及一種基于AHB總線的數(shù)字簽名認(rèn)證系統(tǒng)。
背景技術(shù):
信息的真實(shí)性和完整性對信息安全至關(guān)重要,對自主可控的SOC系統(tǒng)設(shè)計也尤為重要。數(shù)字簽名和簽名認(rèn)證是一種被廣泛應(yīng)用的認(rèn)證技術(shù),用于確認(rèn)信息在傳送或存儲過程中未被篡改過,確保信息的真實(shí)性。其實(shí)現(xiàn)方式是把散列函數(shù)和公開密鑰算法結(jié)合起來,發(fā)送方從報文文本中生成一個散列值,并用自己的私鑰對這個散列值進(jìn)行加密,形成發(fā)送方的數(shù)字簽名;然后,將這個數(shù)字簽名作為報文的附件和報文一起發(fā)送給報文的接收方;報文的接收方首先從接收到的原始報文中計算出散列值,接著再用發(fā)送方的公開密鑰來對報文附加的數(shù)字簽名進(jìn)行解密,通過比較計算出的散列值和解密結(jié)果,確認(rèn)信息的真實(shí)性。
圖1是現(xiàn)有SOC系統(tǒng)簽名認(rèn)證系統(tǒng)框圖,內(nèi)部存儲器SRAM用于存儲需要做簽名認(rèn)證的數(shù)據(jù)內(nèi)容,其內(nèi)容包括消息Message,RSA公鑰Public Key和數(shù)字簽名Signature。中央處理器CPU負(fù)責(zé)執(zhí)行簽名認(rèn)證算法:首先需要從SRAM中讀取原始數(shù)據(jù)并執(zhí)行SHA256算法獲得原始數(shù)據(jù)的摘要Digest_M。然后從SRAM中讀取RSA公鑰和數(shù)字簽名并執(zhí)行RSA1024算法獲得簽名的解密結(jié)果Digest_S,最后通過比較Digest_M和Digest_S判斷原始數(shù)據(jù)的真實(shí)性。CPU需要頻繁地訪問SRAM獲取數(shù)據(jù),同時還要順序執(zhí)行復(fù)雜的SHA256和RSA1024算法,由于SHA256和RSA1024算法的復(fù)雜性,使得軟件設(shè)計難度很大,而且CPU過于頻繁地訪問SRAM使得認(rèn)證方案的實(shí)時性差。
技術(shù)實(shí)現(xiàn)要素:
針對以上缺陷,本發(fā)明目的在于如何降低CPU的負(fù)擔(dān),在保證數(shù)據(jù)安全的同時實(shí)現(xiàn)實(shí)時的數(shù)據(jù)傳送。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于AHB總線的數(shù)字簽名認(rèn)證系統(tǒng),其特征在于在AHB總線上加掛了安全計算模塊和DMA模塊,所述安全計算模塊包括由硬件實(shí)現(xiàn)的SHA256算法和RSA1024算法,CPU可通過AHB訪問和控制安全計算模塊;所述DMA模塊由CPU控制,實(shí)現(xiàn)將SRAM上的數(shù)據(jù)通過DMA通道搬移到安全計算模塊;SHA256算法和\或RSA1024算法完成對搬移到安全計算模塊的數(shù)據(jù)進(jìn)行數(shù)字簽名或簽名校驗(yàn),并將結(jié)果回傳給到CPU。
所述的AHB總線的數(shù)字簽名認(rèn)證系統(tǒng),其特征在于SHA256算法和RSA1024算法順序執(zhí)行完成數(shù)字簽名,并行執(zhí)行完成簽名校驗(yàn)。
所述的AHB總線的數(shù)字簽名認(rèn)證系統(tǒng),其特征在于AHB總線簽名總線認(rèn)證流程如下:
步驟3.1:CPU完成對安全計算模塊初始化,安全計算模塊處于準(zhǔn)備接收數(shù)據(jù)狀態(tài);
步驟3.2:CPU將消息長度配置到安全計算模塊內(nèi)部寄存器中;
步驟3.3:CPU使能DMA模塊,將SRAM中的待簽名認(rèn)證的數(shù)據(jù)搬移到安全計算模塊;CPU通過中斷方式或主動查詢方式判斷數(shù)據(jù)搬移是否完成;
步驟3.4DMA在搬運(yùn)過程中,安全計算模塊在收到數(shù)據(jù)的同時即開始RSA1024運(yùn)算和SHA256運(yùn)算。
步驟3.5:CPU通過中斷方式或主動查詢方式判斷簽名認(rèn)證是否完成;簽名認(rèn)證完成后,CPU獲取簽名認(rèn)證結(jié)果,CPU可選擇是否讀取RSA1024算法和SHA算法運(yùn)算結(jié)果。
4.根據(jù)權(quán)利要求2或3所述的AHB總線的數(shù)字簽名認(rèn)證系統(tǒng),其特征在于AHB總線數(shù)字簽名流程如下:
步驟4.1:CPU將需要簽名的數(shù)據(jù)加載到SRAM中;
步驟4.2:CPU完成對安全計算模塊初始化,使能安全計算模塊的SHA256算法運(yùn)算功能,安全計算模塊處于準(zhǔn)備接收數(shù)據(jù)狀態(tài);
步驟4.3:CPU將消息長度配置到安全計算模塊中的內(nèi)部寄存器中,供SHA256運(yùn)算使用;
步驟4.4:CPU使能DMA將SRAM中的需要簽名的數(shù)據(jù)搬移到安全計算模塊中;
步驟4.5:CPU通過中斷方式或主動查詢方式判斷數(shù)據(jù)搬移是否完成;
步驟4.6:當(dāng)數(shù)據(jù)搬移完成后,安全計算模塊啟動SHA256算法的運(yùn)算;CPU通過中斷方式或主動查詢方式判斷運(yùn)算是否完成;
步驟4.7:當(dāng)SHA256算法的運(yùn)算完成后,將運(yùn)算結(jié)果返回給CPU;
步驟4.8:CPU將需要做數(shù)字簽名的私鑰配置到安全計算模塊的內(nèi)部寄存器,使能RSA1024算法的運(yùn)算,CPU通過中斷方式或主動查詢方式判斷運(yùn)算是否完成;
步驟4.9:RSA1024算法的運(yùn)算完成后,將計數(shù)獲得的簽名發(fā)送給CPU,完成數(shù)字簽名。
本發(fā)明通過在AHB總線中設(shè)置硬件實(shí)現(xiàn)的數(shù)字簽名認(rèn)證模塊,快速完成簽名認(rèn)證,在保證數(shù)據(jù)通訊的實(shí)時性的同上保證了數(shù)據(jù)安全性,提高了SOC系統(tǒng)的集成靈活性。
附圖說明
圖1是現(xiàn)有SOC系統(tǒng)簽名認(rèn)證系統(tǒng)框圖;
圖2是基于AHB總線的簽名認(rèn)證系統(tǒng)框圖;
圖3是基于AHB總線的簽名認(rèn)證流程圖;
圖4是基于AHB總線的數(shù)字簽名的流程圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖2是基于AHB總線的簽名認(rèn)證系統(tǒng)框圖;在AHB總線上加掛了安全計算模塊和DMA模塊,所述安全計算模塊包括由硬件實(shí)現(xiàn)的SHA256算法和RSA1024算法,CPU可通過AHB訪問和控制安全計算模塊;所述DMA模塊由CPU控制,實(shí)現(xiàn)將SRAM上的數(shù)據(jù)通過DMA通道搬移到安全計算模塊;SHA256算法和\或RSA1024算法完成對搬移到安全計算模塊的數(shù)據(jù)進(jìn)行數(shù)字簽名或簽名校驗(yàn),并將結(jié)果回傳給到CPU。其中SHA256算法和RSA1024算法順序執(zhí)行完成數(shù)字簽名,并行執(zhí)行完成簽名校驗(yàn)。
圖3是基于AHB總線的簽名認(rèn)證流程圖;AHB總線簽名總線認(rèn)證流程如下:
步驟3.1:CPU完成對安全計算模塊初始化,安全計算模塊處于準(zhǔn)備接收數(shù)據(jù)狀態(tài);
步驟3.2:CPU將消息長度配置到安全計算模塊內(nèi)部寄存器中;
步驟3.3:CPU使能DMA模塊,將SRAM中的待簽名認(rèn)證的數(shù)據(jù)搬移到安全計算模塊;CPU通過中斷方式或主動查詢方式判斷數(shù)據(jù)搬移是否完成;
步驟3.4DMA在搬運(yùn)過程中,安全計算模塊在收到數(shù)據(jù)的同時即開始RSA1024運(yùn)算和SHA256運(yùn)算。
步驟3.5:CPU通過中斷方式或主動查詢方式判斷簽名認(rèn)證是否完成;簽名認(rèn)證完成后,CPU獲取簽名認(rèn)證結(jié)果,CPU可選擇是否讀取RSA1024算法和SHA算法運(yùn)算結(jié)果。
圖4是基于AHB總線的數(shù)字簽名的流程圖,AHB總線數(shù)字簽名流程如下:
步驟4.1:CPU將需要簽名的數(shù)據(jù)加載到SRAM中;
步驟4.2:CPU完成對安全計算模塊初始化,使能安全計算模塊的SHA256算法運(yùn)算功能,安全計算模塊處于準(zhǔn)備接收數(shù)據(jù)狀態(tài);
步驟4.3:CPU將消息長度配置到安全計算模塊中的內(nèi)部寄存器中,供SHA256運(yùn)算使用;
步驟4.4:CPU使能DMA將SRAM中的需要簽名的數(shù)據(jù)搬移到安全計算模塊中;
步驟4.5:CPU通過中斷方式或主動查詢方式判斷數(shù)據(jù)搬移是否完成;
步驟4.6:當(dāng)數(shù)據(jù)搬移完成后,安全計算模塊啟動SHA256算法的運(yùn)算;CPU通過中斷方式或主動查詢方式判斷運(yùn)算是否完成;
步驟4.7:當(dāng)SHA256算法的運(yùn)算完成后,將運(yùn)算結(jié)果返回給CPU;
步驟4.8:CPU將需要做數(shù)字簽名的私鑰配置到安全計算模塊的內(nèi)部寄存器,使能RSA1024算法的運(yùn)算,CPU通過中斷方式或主動查詢方式判斷運(yùn)算是否完成;
步驟4.9:RSA1024算法的運(yùn)算完成后,將計數(shù)獲得的簽名發(fā)送給CPU,完成數(shù)字簽名
以上所揭露的僅為本發(fā)明一種實(shí)施例而已,當(dāng)然不能以此來限定本之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于本發(fā)明所涵蓋的范圍。