CNS 14105-3-2007 Information technology - Security techniques - Hash-functions - Part 3 Dedicated hash-functions《信息技术-安全技术-杂凑函数-第3部:专属杂凑函数》.pdf

上传人:李朗 文档编号:633758 上传时间:2018-12-22 格式:PDF 页数:106 大小:727.49KB
下载 相关 举报
CNS 14105-3-2007 Information technology - Security techniques - Hash-functions - Part 3  Dedicated hash-functions《信息技术-安全技术-杂凑函数-第3部:专属杂凑函数》.pdf_第1页
第1页 / 共106页
CNS 14105-3-2007 Information technology - Security techniques - Hash-functions - Part 3  Dedicated hash-functions《信息技术-安全技术-杂凑函数-第3部:专属杂凑函数》.pdf_第2页
第2页 / 共106页
CNS 14105-3-2007 Information technology - Security techniques - Hash-functions - Part 3  Dedicated hash-functions《信息技术-安全技术-杂凑函数-第3部:专属杂凑函数》.pdf_第3页
第3页 / 共106页
CNS 14105-3-2007 Information technology - Security techniques - Hash-functions - Part 3  Dedicated hash-functions《信息技术-安全技术-杂凑函数-第3部:专属杂凑函数》.pdf_第4页
第4页 / 共106页
CNS 14105-3-2007 Information technology - Security techniques - Hash-functions - Part 3  Dedicated hash-functions《信息技术-安全技术-杂凑函数-第3部:专属杂凑函数》.pdf_第5页
第5页 / 共106页
点击查看更多>>
资源描述

1、 1 印月 96 9 月 本標準非經本局同意得翻印 中華民國國家標準 CNS 總號 號 ICS 35.040 X5054-314105-3經濟部標準檢驗局印 公布日期 修訂公布日期 92 1 月 13 日 96 9 月 14 日 (共 106 頁 )資訊技術安全技術雜湊函數第 3 部:專屬雜湊函數 Information technology Security techniques Hash-functions Part 3: Dedicated hash-functions 目錄 節次 頁次 1. 適用範圍 . 2 2. 引用標準 . 2 3. 用語釋義 . 2 4. 符號 (與縮寫 ).

2、3 4.1 CNS 14105-1 中所定義之符號 3 4.2 本標準所定義之符號 3 5. 需求 . 5 6. 專屬雜湊函數模型 . 5 7. 專屬雜湊函數 1 (RIPEMD-160) . 5 7.1 參數、函數及常數 6 7.2 填充方法 . 7 7.3 回合函數之描述 . 8 8. 專屬雜湊函數 2 (RIPEMD-128) . 9 8.1 參數、函數及常數 9 8.2 填充方法 10 8.3 回合函數之描述 10 9. 專屬雜湊函數 3 (SHA-1) .11 9.1 參數、函數及常數 . 11 9.2 填充方法 12 9.3 回合函數之描述 13 10. 專屬雜湊函數 4 (SHA

3、-256) 14 10.1 參數、函數及常數 .14 10.2 填充方法 .15 10.3 回合函數之描述 .15 11. 專屬雜湊函數 5 (SHA-512) 16 11.1 參數、函數及常數 .17 11.2 填充方法 . 18 2 CNS 14105-3, X 5054-3 11.3 回合函數之描述 . 19 12. 專屬雜湊函數 6 (SHA-384) 20 12.1 參數、函數及常數 . 20 12.2 填充方法 .21 12.3 回合函數之描述 .21 13. 專屬雜湊函數 7 (WHIRLPOOL) 21 13.1 參數、函數及常數 .21 13.2 填充方法 .23 13.3

4、回合函數之描述 .23 附錄 A (參考 )範例 .24 附錄 B (參考 )以正規語言描述之規格 89 附錄 C (規定 )ASN.1 模組 .101 參考書目 .104 英中名詞對照表 105 1. 適用範圍 本標準規定專屬雜湊函數 (dedicated hash-function),亦即特別設計的雜 湊函數。本標準規定七個不同的回合函數,因此各有不同的專屬雜湊函數。這些雜湊函數是基於回合函數 (round-function)的迭代 (iteration)使用。 在第 7 節與第 9 節中之第 1 個及第 3 個雜湊函數分別提供最長可達 160 位元的雜湊碼 (hash-code);在第

5、8 節中之第 2 個雜湊函數提供最長可達 128 位元的雜湊碼;在第 10 節中之第 4 個雜湊函數提供最長可達 256 位元的雜湊碼;在第 12 節中之第 6個雜湊函數提供固定長度 384 位元的雜湊碼;在第 11 節與第 13 節中之第 5 個與第7 個雜湊函數提供最長可達 512 位元的雜湊碼。 2. 引用標準 CNS 14105-1 資訊技術安全技術雜湊函數第 1 部:概說 3. 用語釋義 本標準使用 CNS 14105-1 及下列的用語釋義: 3.1 區塊 (block) 長度1L 的位元字串,亦即回合函數的第 1 個輸入值之長度。 3.2 字 (word) 分別使用在第 7 節、第

6、 8 節、第 9 節及第 10 節中第 1、 2、 3 及 4 個之專屬雜湊函數裡為 32 位元的字串,而分別使用在第 11 節、第 12 節中第 5、 6 個之專屬雜湊函數裡則為 64 位元的字串。 3.3 矩陣 (matrix) 第 13 節中專屬雜湊函數 7 所使用的 8 乘 8 矩陣,其中矩陣的每一項為 8 位元的字串。 3 CNS 14105-3, X 5054-3 4. 符號 (與縮寫 ) 4.1 CNS 14105-1 中所定義之符號 本標準使用 CNS 14105-1 中所定義的符號及表示法: Bi位元組。 D 輸入雜湊函數的資料字串。 H 雜湊碼。 IV 起始值 (initi

7、alizing value)。 L1回合函數 的 2 個輸入字串中的第 1 個輸入字串的 (位元 )長度。 L2回合函數 的 2 個輸入字串中的第 2 個輸入字串的 (位元 )長度、回合函數之輸出字串的長度,而且也是 IV 的長度。 Lx 位元字串 X 的 (位元 )長度。 回合函數,若 X 及 Y 分別為長度 L1及 L2的位元字串,則將 X及 Y 代入 ,可以得到字串 ),( YX 。 YX 將位元字串 X 和 Y 做互斥 or (exclusive-or)運算 (其中 LX=LY)。 4.2 本標準所定義之符號 本標準使用下列的符號及表示法: iiaa ,規定回合函數所使用的索引 (in

8、dex)序列。 Ai常數矩陣的序列用於規定第 13 節中所定義的回合函數。 c0輸入值為 64 個 GF(28)元素的字串且輸出值為 GF(28)元素的 8乘 8 矩陣之函數,用於規定第 13 節中所定義的回合函數。 321, ccc 輸入值為 GF(28)元素的 8 乘 8 矩陣且輸出值亦為 8 乘 8 矩陣之函數,用於規定第 13 節中所定義的回合函數。 4c 輸入值為兩個 )2(GF8元素的 8 乘 8 矩陣且輸出值亦為 GF(28)元素的 8 乘 8 矩陣之函數,用於規定第 13 節中所定義的回合函數。 iiCC ,回合函數所使用的常數字。 C GF(28)元素的 8 乘 8 循環矩陣

9、用於規定第 13 節中所定義的回合函數。 iD從填充 (padding)處理後的資料字串所推導出來的區塊。 iiiigfed , 輸入值為一個或三個字且輸出值為單一字之函數,用於規定回合函數。 iH雜湊運算中被用來當作儲存中間結果之2L 位元的字串。 )2(GF8定義為 GF(2)x / )(8xp 的體 (field),其中1)(23488+= xxxxxp ,體的元素為 8 位元的字串。 M 8 乘 8 的矩陣,其中矩陣的項是選擇自 GF(28)。 q 在填充及分割 (splitting)處理後,資料串中區塊的數目。 ()nR 如果 A 是字且 n 是非負的整數,則 ()nR 定義成將 A

10、 的內容向右 4 CNS 14105-3, X 5054-3 移位 n 個位置所得到的字,亦稱為 “右移位 (right shift)” n 位元位置的運算。 s 非線性替代盒,以另一個元素 )2(GF 8xs 取代元素 )2(GF 8x 。 ()nS 如果 A 是字且 n 是非負的整數,則 )(ASn定義成以循環方式將 A的內容向左移位 n 個位置所得到的字,亦稱為 “左循環移位(circular left shift)” n 位元位置的運算。 ()nS 如果 A 是字且 n 是非負的整數,則 )(ASn定義成以循環方式將 A的內容向右移位 n 個位置所得到的字,亦稱為 “右循環移位(cir

11、cular right shift)” n 位元位置的運算。 iitt ,規定回合函數所使用的移位值 (shift-value)。 iiiiZYXXW , 被用來當做儲存中間運算結果的字。 iiiZYKXW , 被用來當做儲存中間運算結果的矩陣,其中矩陣的項是選擇自GF(28)。 位元字串的逐位元邏輯 AND 運算 (bit-wise logical AND operation),即如果 A 及 B 是字,則 AB 等於 A 及 B 的逐位元邏輯 AND 運算後的字。 位元字串的逐位元邏輯 OR 運算 (bit-wise logical OR operation),即如果 A 及 B 是字,則

12、 A B 等於 A 及 B 的逐位元邏輯 OR 運算後的字。 位元字串的逐位元邏輯 NOT 運算 (bit-wise logical NOT operation),即如果 A 是字,則 A 等於 A 的逐位元邏輯 NOT運算後的字。 模w2 的加法運算, A 及 B 是字,則 AB 是由整數 A 及 B 的二進制表示法,計算其和後模w2 ,此結果限制在 0 與 12 w之間。其中 w 是字的位元數,在第 7 節至第 10 節所定義之第 1-4 個專屬雜湊函數中 w 值為 32,在第 11 節及第 12 節所定義之第 5及 6 個專屬雜湊函數中 w 值為 64。 8乘 8 矩陣的乘法運算,其中矩

13、陣的項是選擇自 GF(28),即如果 A 及 B 是這類的矩陣,則 BA 是由 A 及 B 以下列方式相乘所得之矩陣:將 A 或 B 的每項整數視為二進制多項式表示法 (例如,整數 89 (16 進制 )的二進制多項式為 137+ xx ),兩項的乘法視為二個多項式的乘積除以多項式 )(8xp 的餘式,並且將和運算視為互斥 or ( ) 運算,其中 1)(23488+= xxxxxp 。 =: “設定相等 (set equal to)”的符號,使用於回合函數的程序規範中,它指示符號左邊的字 (或第 13 節中的矩陣 )應等於符號右邊的表示式之值。 5 CNS 14105-3, X 5054-3

14、 5. 需求 欲使用本標準中之雜湊函數的使用者應選擇: (1) 下列規定的其中一個專屬函數,並且 (2) 雜湊碼 H 的長度為HL 。 備考 1. 第 1 個及第 2 個專屬雜湊函數適用於使用 “小位數在前 (little-endian)”電腦 (即字中的最低定址位元組被轉譯成最低有效位元組 (least significant byte)的軟體實作。相反地,第 3、 4、 5 及 6 個專屬雜湊函數適用於使用 “大位數在前 (big-endian) ”電腦 (即字中的最低定址位元組被轉譯成最高有效位元組 (most significant byte)的軟體實作。然而,藉由適當地調整其定義,這

15、 6 個回合函數中任一個函數皆能夠實作於大位數在前或小位數在前電腦。第 7 個專屬雜湊函數適用於無結尾敏感(endian-neutral),就某種意義來說,其未使用結尾敏感 (endian-sensitive)的數學運算 (例如整數加法 )。如果將屬於 )2(GF8的元素 (即位元組 )序列對映到電腦的字,並以平行處理此類的運算,例如放置互斥 OR、只要反向對映 (inverse mapping)是一致的,字內的位元組排列是無關的。本標準定義的所有雜湊函數之輸入值為一位元字串,而輸出值亦為一位元字串,此與每個雜湊函數中所使用的內部位元組定序規約 (byte-ordering conventio

16、n)無關。 2. LH的選擇會影響雜湊函數的安全性,當認為執行2/2HL個雜湊碼的計算是計算上不可行的情況下,相信本標準規定的所有雜湊函數是抗碰撞雜湊函數 (collision-resistant hash function)。 6. 專屬雜湊函數模型 本標準所規定的雜湊函數是基於 CNS 14105-1 中雜湊函數之一般模型。 在本標準雜湊函數的規定中,假設填充的資料字串是以位元組序列的形式輸入至雜湊函數,如果填充的資料字串是 8n 位元序列1810,nxxx L 的形式,則應以下列的方式將它轉譯成 n 位元組的序列110,nBBB L ,以 8 個連續的位元為一組,並將每一組視為位元組,其

17、中每個位元組的第 1 個位元是該位元組的最高 有效位元 (most significant bit)。因此,對每個 i )0( ni r ),此結果將會使得位元字串的長度比 512 位元的整數倍長度短少 64 位元。 (3) 將二進制表示的 64 位元 LD分成二個 32 位元的字串,其中一個表示 LD的 “最高有效的半區塊 ”,另外一個則是 “最低有效的半區塊 ”,再將前一步驟所得到的字串與這二個 32 位元的字串序連在一起,先序連 “最低有效的半區塊 ”,再序連 “最高有效的半區塊 ”。 回合函數遵循以下的描述,每個 512 位元的資料區塊iD ( qi 1 )被視為 16 個字的序列15

18、10, ZZZ L ,其中0Z 相當於 Di最左邊的 32 位元。 備考: 在步驟 3, LD的二個 32 位元字串序連,直接使用這二個 32 位元字串做為最後資料區塊的字14Z 及15Z ;基於第 7.1.2 節位元組定序規約, LD的最低有效 8 位元組是最左邊的 8 位元組, LD的最高有效 8 位元組是最右邊的 8 位元組。 7.3 回合函數之描述 回合函數 運作如下,請注意我們使用符號4321043210, XXXXXXXXXXW 記為 11 個相異的字,這些字包含計算過程中所需的數值。 (1) 假設 的 512 位元 (第 1 個 )輸入值是1510, ZZZ L ,其中0Z 是此

19、 512 位元的最左邊 32 位元,並假設 的 160 位元 (第 2 個 )輸入值是五個字43210, YYYYY 。 (2) 令4433221100:,:,:,:,: YXYXYXYXYX = 。 (3) 令4433221100:,:,:,:,: YXYXYXYXYX = 。 (4) i 從 0 開始至 79 依序執行下列四個步驟: (a) 0(: XSWit= ),(321XXXgiiaZ )iC 4X 。 (b) WXXXXSXXXXX = :,:),(:,:,:11221033440。 (c) 0(: XSWit= ),(32179XXXgiiaZ )iC 4X 。 (d) WXXX

20、XSXXXXX = :,:),(:,:,:11221033440。 (5) 令 0: YW = 。 10: YY = 2X 3X 。 21: YY = 3X 4X 。 32: YY = 4X 0X 。 43: YY = 0X 1X 。 WY =:41X 2X 。 (6) 43210, YYYYY 五個字表示回合函數 的輸出值,在回合函數最後一個迭代之後,應使用第 7.1.2 節規定的反向程序將43210, YYYYY 五個字轉換成 20 位元組的序列,其中0Y 應是第 1 個四位元組,1Y 是之下一個四位元組,依此類推。因此,第 1 個 (最左邊 )位元組相當於0Y 的最低有效位元組,而第 2

21、0 個 (最右 9 CNS 14105-3, X 5054-3 邊 )位元組相當於4Y 的最高有效位元組。應使用第 6 節規定的反向程序將此20 個位元組轉換成 160 位元的字串,即第 1 個 (最左邊 )位元將相當於第 1 個(最左邊 )位元組最高有效位元,而第 160 個 (最右邊 )位元相當於第 20 個 (最右邊 )位元組的最低有效位元 (least significant bit)。 圖 1 表示在專屬雜湊函數 1 (RIPEMD-160)之回合函數 項目 4 的步驟 a 與b(另一半的步驟 c 與 d 與其相似 ),在回合函數 項目 4 的步驟 a 至 c 要執行80 次 ( 7

22、9,0 K=i )。 圖 1 專屬雜湊函數 1 之部分回合函數 ZaiX0X2X1X3X4CiX0X2X1X3X4giS10Sti+W(i 回合之前 )(i 回合之後 )8. 專屬雜湊函數 2 (RIPEMD-128) 本節規定使用於 CNS 14105-1 描述的一般模型中之填充方法、起始值及回合函數。使用於上述的一般模型中之填充方法、起始值及回合函數一起定義成專屬雜湊函數2,此專屬雜湊函數能夠適用於最多 2641 位元之所有資料字串 D。本標準規定專屬雜湊函數 2 的雜湊函數識別符等於 32 (十六進制 )。 備考: 本節所定義之專屬雜湊函數 2 通稱為 RIPEMD-128 3。本雜湊函

23、數應該僅使用在當雜湊碼只有 128 位元或更少時,被認定具有適當安全之應用。 8.1 參數、函數及常數 8.1.1 參數 本雜湊函數中 L1=512、 L2=128 且 LH的上限為 128。 8.1.2 位元組定序規約 本雜湊函數的位元組定序規約與第 7 節雜湊函數的位元組定序規約相同。 8.1.3 函數 為了幫助軟體實作,以 32 位元之字運算的觀點來描述回合函數 ,本回合函數使用函數序列6310, ggg L ,其中每個函數 )630( igi的輸入值為 3 個字 X0、 X1及 X2且輸出值為單一字。函數 gi的定義與第 7.1.3 節的前 64 個函數之定義完全相同。 8.1.4 常

24、數 10 CNS 14105-3, X 5054-3 本回合函數使用 2 個常數字的序列6310, CCC L 及6310, CCC L (最左邊的位元相當於最高有效位元 ),其定義以十六進制表示如下: )6348( ,)4732( ,)3116( ,)150( ,=iCiCiCiCiiii8F1BBCDC6ED9EBA15A82799900000000)6348( ,)432( ,)3116( ,)150( ,=iCiCiCiCiiii000000006D703EF35C4DD12450A28BE6本回合函數使用二個各有 64 個移位值的序列,每個移位值介於 5 至 15 之間,我們將這二個

25、序列分別記為 (6310, ttt L )及 (6310, ttt L ),此 2 個序列的值與第 7.1.4 節相對應序列的前 64 個值之定義完全相同。 此外,本回合函數也使用二個各有 64 個索引的序列,在此序列中的每個值介於 0 至 15 之間,我們將此 2 個序列分別記為 (6310, aaa L )及 (6310, aaa L ),而此 2 個序列的值與第 7.1.4 節相對應序列的前 64 個值之定義完全相同。 8.1.5 起始值 本回合函數的起始值 IV 應為下列 128 位元的字串,將其表示成十六進制的四個字之序列3210, YYYY ,其中0Y 表示 128 位元的最左邊

26、32 位元: 1032547698BADCFEEFCDAB8967452301=3210YYYY8.2 填充方法 本雜湊函數使用的填充方法應與第 7.2 節所定義的填充方法相同。 8.3 回合函數之描述 回合函數 運作如下,請 注意我們使用符號32103210, XXXXXXXXW 定義 9個相異的字,這些字包含計算過程中所需的數值。 (1) 假設 的 512 位元 (第 1 個 )輸入值是1510, ZZZ L ,其中0Z 是此 512 位元的最左邊 32 位元,並假設 的 128 位元 (第 2 個 )輸入值是 4 個字3210, YYYY 。 (2) 令33221100:,:,:,: Y

27、XYXYXYX = 。 (3) 令33221100:,:,:,: YXYXYXYX = 。 (4) i 從 0 開始至 63 依序執行下列四個步驟: (a) 0(: XSWit= ),(321XXXgiiaZ )iC 。 (b) WXXXXXXX = :,:,:,:1122330。 (c) 0(: XSWit= ),(32163XXXgiiaZ )iC 。 (d) WXXXXXXX = :,:,:,:1122330。 11 CNS 14105-3, X 5054-3 (5) 令 0: YW = 。 10: YY = 2X 3X 。 21: YY = 3X 0X 。 32: YY = 0X 1X

28、。 WY =:31X 2X 。 (6) 3210, YYYY 4 個字表示回合函數 的輸出值,在回合函數最後一個迭代之後,應使用第 7.1.2 節規定的反向程序將3210, YYYY 4個字轉換成 16 位元組的序列,其中0Y 應是第 1 個四位元組,1Y 是下一個四位元組,依此類推。因此,第 1 個 (最左邊 )位元組相當於0Y 的最低有效位元組,而第 16 個 (最右邊 )位元組相當於3Y 的最高有效位元組。應使用第 6 節規定的反向程序將此 16個位元組轉換成 128 位元的字串,即第 1 個 (最左邊 )位元將相當於第 1 個 (最左邊 )位元組最高有效位元,而第 128 個 (最右邊

29、 )位元相當於第 20 個 (最右邊 )位元組的最低有效位元。 圖 2 表示在專屬雜湊函數 2 (RIPEMD-128)之回合函數 項目 4 的步驟 a 與 b(另一半的步驟 (c)與 (d)與其相似 ),在回合函數 項目 4 的步驟 a 至 c 要執行 64 次(63,0 K=i )。 圖 2 專屬雜湊函數 2 之部分回合函數 ZaiX0X2X1X3CiX0X2X1X3giSti+W(i 回合之前 )(i 回合之後 )9. 專屬雜湊函數 3 (SHA-1) 本節規定使用於 CNS 14105-1 描述的一般模型中之填充方法、起始值及回合函數,使用於上述的一般模型中之填充方法、起始值及回合函數

30、一起定義成專屬雜湊函數3,此專屬雜湊函數能夠適用於最多 2641 位元之所有資料字串 D。本標準規定專屬雜湊函數 3 的雜湊函數識別符等於 33 (十六進制 )。 備考:本節所定義之專屬雜湊函數 3 通稱為 SHA-1 2。 9.1 參數、函數及常數 9.1.1 參數 本雜湊函數中 L1=512、 L2=160 且 LH的上限為 160。 12 CNS 14105-3, X 5054-3 9.1.2 位元組定序規約 在本節所規定的回合函數中,其假設區塊是以 32 位元字的序列之形式輸入至回合函數,每個 512 位元的區塊是由 16 個這樣的字所構成, 64 位元組的序列6310, BBB L

31、應以下列的方式解譯成 16 個字的序列1510, ZZZ L :以四個連續的位元組為一組,並將每一組視為字,而字的第 1 個位元組是該字的最低有效位元組,因此, )150( 222342481416424+=+iBBBBZiiiii。 為了將雜湊碼從字的序列轉換成位元組序列,應遵循反向處理。 備考:本節所規定的位元組定序不同於第 7.1.2 節。 9.1.3 函數 為了有助於軟體實作,以 32 位元之字運算的觀點來描述回合函數 ,本回合函數使用函數序列7910, fff L ,其中每個函數 )790( ifi的輸入值為 3 個字0X 、1X 及2X 且輸出值為單一字。函數if 定義如下: )7

32、960( ),()5940( )()()(),()3920( ),()190( )()(),(2102102120102102102102010210=iXXXXXXfiXXXXXXXXXfiXXXXXXfiXXXXXXXfiiii9.1.4 常數 本回合函數使用常數字的序列7910, CCC L (最左邊的位元相當於最高有效位元 ),其定義以十六進制表示如下: )7960( ,)5940( ,)3920( ,)190( ,=iCiCiCiCiiiiCA62C1D68F1BBCDC6ED9EBA15A8279999.1.5 起始值 本回合函數的起始值 IV 應為下列 160 位元的字串,將其表

33、示成十六進制的5 個字之序列43210, YYYYY ,其中0Y 表示 160 位元的最左邊 32 位元: C3D2E1F01032547698BADCFEEFCDAB8967452301=43210YYYYY9.2 填充方法 資料字串 D 需被填充使得其位元數是 512 的整數倍,其填充程序運作如下: (1) D 序連單一位元 “1”。 (2) 前一步驟的結果再序連 0 至 511 個位元 “0”,使得最後結果的字串長度同餘於 448 模 512。更清楚地說,如果原來 D 的長度是 LD,且令 r 是 LD除以 512之後的餘數,則序連 “0 的數目會等於 r447 (當 447r )或 r

34、959 (當 447r ), 13 CNS 14105-3, X 5054-3 此結果將會使得位元字串的長度比 512 位元的整數倍長度短少 64 位元。 (3) 前一步驟所得到的字串再序連 64 位元二進制表示式的 LD,由最高有效位元起做序連。 回合函數遵循以下的描述,每個 512 位元的資料區塊iD ( qi 1 )被視為 16 個字1510, ZZZ L 的序列,其中 Z0相當於 Di最左邊的 32 位元。 備考: 在步驟 3, LD中的 64 位元字串序連,直接使用 LD的最低有效 32 位元字串及最高有效 32 位元字串分別做為最後資料區塊的字 Z14及 Z15;基於第 9.1.2

35、 節位元組定序規約, LD的最低有效位元組是最左邊的位元組, LD的最高有效位元組是最右邊的位元組。 9.3 回合函數之描述 回合函數 運作如下,請 注意我們使用符號791043210, ZZZXXXXXW L 定義86 個相異的字,這些字包含計算過程中所需的數值。 (1) 假設 的 512 位元 (第 1 個 )輸入值是1510, ZZZ L ,其中0Z 是此 512 位元的最左邊 32 位元,並假設 的 160 位元 (第 2 個 )輸入值是五個字43210, YYYYY 。 (2) i 從 16 開始至 79 令 )(:1614831=iiiiiZZZZSZ 。 (3) 令4433221

36、100:,:,:,:,: YXYXYXYXYX = 。 (4) i 從 0 開始至 79 依序執行下列二個步驟: (a) )(:05XSW = ),(321XXXfi4X iZ iC 。 (b) WXXXXSXXXXX = :,:),(:,:,:00113022334。 (5) 令 00: YY = 0X ,11: YY = 1X ,22: YY = 2X ,33Y:Y = 3X ,44Y:Y = 4X 。 (6) 43210, YYYYY 5 個字表示回合函數 的輸出值,在回合函數最後一個迭代之後,應使用第 9.1.2 節規定的反向程序將43210, YYYYY 5個字轉換成 20 位元組的

37、序列,其中0Y 應是第 1 個四位元組,1Y 是下一個四位元組,依此類推。因此,第 1 個 (最左邊 )位元組相當於0Y 的最高有效位元組,而第 20 個 (最右邊 )位元組相當於4Y 的最低有效位元組。應使用第 6 節規定的反向程序將此20 個位元組轉換成 160 位元的字串,即第 1 個 (最左邊 )位元相當於第 1 個 (最左邊 )位元組最高有效位元,而第 160 個 (最右邊 )位元相當於第 20 個 (最右邊 )位元組的最低有效位元。 圖 3 表示在專屬雜湊函數 3(SHA-1)之回合函數 項目 4 的步驟 a 與 b,在回合函數 項目 4 的步驟 a 與 b 要執行 80 次 (7

38、9,0 K=i )。 14 CNS 14105-3, X 5054-3 圖 3 專屬雜湊函數 3 之部分回合函數 ZiX0X2X1X3X4CiX0X2X1X3X4fiS5+W(i 回合之前 )(i 回合之後 )S3010. 專屬雜湊函數 4 (SHA-256) 本節規定使用於 CNS 14105-1 描述的一般模型中之填充方法、起始值及回合函數,使用於上述的一般模型中之填充方法、起始值及回合函數一起定義成專屬雜湊函數4,此專屬雜湊函數能夠適用於最多 2641 位元之所有資料字串 D。本標準規定專屬雜湊函數 4 的雜湊函數識別符等於 34 (十六進制 )。 備考:本節所定義之專屬雜湊函數 4 通

39、稱為 SHA-256 2。 10.1 參數、函數及常數 10.1.1 參數 本雜湊函數中 L1=512、 L2=256 且 LH的上限為 256。 10.1.2 位元組定序規約 本雜湊函數之位元組定序規約應與第 9.1.2 節所定義的位元組定序規約相同。 10.1.3 函數 為了有助於軟體實作,回合函數 依 32 位元之字運算來描述,本回合函數使用函數序列543210, eeeeee ,其中10,ee 的輸入值為三個字 X0、 X1及 X2;5432, eeee 的輸入值為字 X0,而這 6 個函數之輸出值為單一的 32 位元字。函數543210, eeeeee 定義如下: ).()()()(

40、),()()()(),()()()(),()()()(),()()(),(),()(),(0100190170503018070402501106030220130202212010210120102100XRXSXSXeXRXSXSXeXSXSXSXeXSXSXSXeXXXXXXXXXeXXXXXXXe=10.1.4 常數 本回合函數使用常數字的序列6310, CCC L (最左邊的位元相當於最高有效位元 ),依6310, CCC L 之順序,其定義以十六進制表示如下: 428a2f98 71374491 b5c0fbcf e9b5dba5 15 CNS 14105-3, X 5054-3

41、3956c25b 59f111f1 923f82a4 ab1c5ed5 d807aa98 12835b01 243185be 550c7dc3 72be5d74 80deb1fe 9bdc06a7 c19bf174 e49b69c1 efbe4786 0fc19dc6 240ca1cc 2de92c6f 4a7484aa 5cb0a9dc 76f988da 983e5152 a831c66d b00327c8 bf597fc7 c6e00bf3 d5a79147 06ca6351 14292967 27b70a85 2e1b2138 4d2c6dfc 53380d13 650a7354 766

42、a0abb 81c2c92e 92722c85 a2bfe8a1 a81a664b c24b8b70 c76c51a3 d192e819 d6990624 f40e3585 106aa070 19a4c116 1e376c08 2748774c 34b0bcb5 391c0cb3 4ed8aa4a 5b9cca4f 682e6ff3 748f82ee 78a5636f 84c87814 8cc70208 90befffa a4506ceb bef9a3f7 c67178f2 備考:這些值是前 64 個質數的立方根中分數部分的前 32 個位元。 10.1.5 起始值 本回合函數的起始值 IV 應

43、為列 256 位元的字串,將其表示成十六進制的 8個字之序列76543210, YYYYYYYY ,其中 Y0表示 256 位元的最左邊 32 位元: 5be0cd19 1f83d9ab 9b05688c 510e527fa54ff53a 3c6ef372 bb67ae85 a09e667676543210=YYYYYYYY備考:這些值是前 8 個質數的平方根中分數部分。 10.2 填充方法 本雜湊函數使用的填充方法應與第 9.2 節所定義的填充方法相同。 10.3 回合函數之描述 回合函數 運作如下,請注意我們使用符號63107654321021, ZZZXXXXXXXXWW L 定義 74

44、 個相異的字,這些字包含計算過程中所需的數值。 (1) 假設 的 512 位元 (第 1 個 )輸入值是1510, ZZZ L ,其中 Z0是此 512 位元的最左邊 32 位元,並假設 的 256 位元 ( 第 2 個 ) 輸入值是八個字76543210, YYYYYYYY 。 (2) i 從 16 開始至 63 令 )(:25 =iiZeZ 7iZ )(154 iZe 16iZ 。 (3) 令7766554433221100:,:,:,:,:,:,:,: YXYXYXYXYXYXYXYX = 。 (4) i 從 0 開始至 63 依序執行下列三個步驟: (a) W1:= X7e3(X4)

45、e0(X4, X5, X6) Ci Zi。 16 CNS 14105-3, X 5054-3 (b) W2:= e2(X0)e1(X0, X1, X2)。 (c) X7:= X6; X6:= X5; X5:= X4; X4:= X3 W1; X3:= X2; X2:= X1; X1:= X0; X0:= W1 W2。 (5) 令 Y0:= Y0 X0, Y1:=Y1 X1, Y2:=Y2 X2, Y3:=Y3 X3,Y4:=Y4 X4, Y5:=Y5 X5, Y6:=Y6 X6以及 Y7:= Y7 X7(6) 76543210, YYYYYYYY 8 個字表示回合函數 的輸出值 ,在回合函數最

46、後一個迭代之後,應使用第 10.1.2 節規定的反向程序將76543210, YYYYYYYY 8個字轉換成 32 位元組的序列,其中0Y 應是第 1 個四位元組,1Y 是下一個四位元組,依此類推。因此,第 1 個 (最左邊 )位元組相當於0Y 的最高有效位元組,而第 32 個 (最右邊 )位元組相當於7Y 的最低有效位元組。應使用第 6節規定的反向程序將此 32 個位元組轉換成 256 位元的字串,即第 1 個 (最左邊 )位元相當於第 1 個 (最左邊 )位元組最高有效位元,而第 256 個 (最右邊 )位元相當於第 32 個 (最右邊 )位元組的最低有效位元。 圖 4 表示在專屬雜湊函數

47、 4(SHA-256)之回合函數 項目 4 的步驟 a、 b 及 c,在回合函數 項目 4 的步驟 a、 b 及 c 要執行 64 次 (63,0 K=i )。 圖 4 專屬雜湊函數 4 之部分回合函數 X0X2X1X3X4X6X5X7X0X2X1X3X4X6X5X7e2+e1+e3e0+w2w1zici11. 專屬雜湊函數 5 (SHA-512) 本節規定使用於 CNS 14105-1 描述的一般模型中之填充方法、起始值及回合函數,使用於上述的一般模型中之填充方法、起始值及回合函數一起定義成專屬雜湊函數5,此專屬雜湊函數能夠適用於最多 21281 位元之所有資料字串 D。本標準規定專屬雜湊函數 5 的雜湊函數識別符等於 35 (十六進制 )。 備考:本節所定義之專屬雜湊函數 5 通稱為 SHA-512 2。 11

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 标准规范 > 国际标准 > 其他

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1