[發明專利]一種SHA-256算法硬件實現方法無效
| 申請號: | 200810302372.4 | 申請日: | 2008-06-26 |
| 公開(公告)號: | CN101308535A | 公開(公告)日: | 2008-11-19 |
| 發明(設計)人: | 陳奕沖;朱正美;樊鵬;王志輝;陳勇;余有勇 | 申請(專利權)人: | 四川虹微技術有限公司 |
| 主分類號: | G06F21/00 | 分類號: | G06F21/00 |
| 代理公司: | 成都虹橋專利事務所 | 代理人: | 李順德 |
| 地址: | 610041四川省成都市高新*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 sha 256 算法 硬件 實現 方法 | ||
技術領域
本發明涉及優化實現安全散列算法SHA-256方法。
背景技術
散列函數,它把任意長的二元字符串變換成固定長的二元字符串,變換結果稱為散列值。在密碼學中,散列函數h的基本特性必須滿足找到兩個不同的輸入散列成同一個散列值是計算上不可行的,同時對于一個給定的散列值y,找到一個輸入x,是h(x)=y成立也是計算上不可行的。散列函數通常應用在數字簽名和數據完整性檢查中。在保護信息完整方面具有很強的實際意義和可行性。
由于硬件實現在速度方面相對軟件有很大的優越性,散列函數的優化硬件實現顯得越來越重要,同時,在目前所采用的散列函數中,如MD4,MD5,SHA-1算法被證明可破譯。而SHA-256算法目前尚未有公布可攻破的算法,因此具有更高的安全性。
在SHA-256中,最核心的計算是一個計算8個中間變量的迭代:
for??t=0?to?63
{
h=g
g=f
f=e
e=d+T1
d=c
c=b
b=a
a=T1+T2
}
8個中間變量a、b、c、d、e、f、g、h在一個周期內同時由組合邏輯電路根據上次迭代的計算產生,因此每次迭代計算所需時間是由最慢的計算過程決定。這條最長的路徑就是關鍵路徑。SHA-256中的關鍵路徑就是計算變量a,其次是計算變量e。硬件實現時,8個變量在一個時鐘周期內由組合邏輯根據上一次迭代的計算值產生,因此每次迭代所需要的時間由最慢的計算過程決定,即關鍵路徑。SHA-256中,由上述公式可以看出計算出中間變量a需要完成多個多變量邏輯函數和多個連續32bit加法,是關鍵路徑。at的計算主要包括非線性函數運算、加法運算和移位。其中非線性函數運算只是完成信息在不同輸入輸出之間的切換,只需要用組合邏輯電路設計,不會產生太大的延遲;移位只占用布線資源,同樣不會對電路的速度有影響;而加法運算在電路上由于進位會產生延遲。正是由于變量a和e的計算比較復雜,造成SHA-256算法硬件實現的工作頻率難以提高,數據吞吐率難以加大。
發明內容
本發明所要解決的技術問題是,提供一種縮短關鍵路徑的SHA-256算法硬件實現方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川虹微技術有限公司,未經四川虹微技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200810302372.4/2.html,轉載請聲明來源鉆瓜專利網。





