Sha-3
SHA3 左右編碼函式
在這篇論文(Section 2.3.1, Pg.5)中,我遇到了
left_encode
andright_encode
函式,我對函式有一些疑問:
base256
整數的編碼是什麼意思?- 做 $ x_1,x_2,\ldots,x_n $ 都包含相同的字節,還是它們包含不同的字節?
- 是否
enc8
實際上意味著小端?- 連接字節後
enc8
,它們是轉換回數字還是二進制還是……?
- 整數的 base256 編碼是什麼意思?
它拆分一個整數 $ x $ 成字節,一個字節是8位,可以表示256個數字。這就是為什麼實際上 $ n $ 設置為滿足的最小正整數 $ 2^{8n} > x $ . 字節是小端編碼的。
- 做 $ x_1,x_2,\ldots, x_n $ 都包含相同的字節,還是它們包含不同的字節?
不, x 被分成字節。
- enc8 是否有效地表示大端?
一個字節沒有 little-endian 或 big-endian 編碼。在這裡,它只是一個字節編碼,但相反。第二步做小端。最後,所有位都反轉了。請參閱下面的更大範例。
- 在連接 enc8 字節後,它們是轉換回數字還是二進制還是……?
它是一個字節數組,通常在加密實現中,程式程式碼使用字節數組進行處理。散列函式的輸出將是字節到。轉換為十六進製或 base64 取決於您。
左編碼:
0001 0000 | 0011 0001 | 0111 1110 input 0111 1110 | 1000 1100 | 0000 1000 value reversed 1100 0000 | 0111 1110 | 1000 1100 | 0000 1000 length encoded. the size 3 in reverse
右編碼:
0001 0000 | 0011 0001 | 0111 1110 input 0111 1110 | 1000 1100 | 0000 1000 value reversed 0111 1110 | 1000 1100 | 0000 1000 | 1100 0000 length encoded