Sha-256
基於二進制電路的 MPC 中的 SHA-256
對於基於二進制電路的 MPC,多方將提供其輸入來計算結果,這表明了函式 $ f(x_1, x_2, \dots,x_n) $ 需要接受 $ 2 $ 或更多輸入。
- 為什麼存在電路,例如 SHA- $ 256 $ ,只需要一個輸入?
- 當我檢查 SHA-256.txt 文件時,它需要 $ 2 $ 輸入,一個輸入為 $ 512 $ 位和其他輸入 $ 256 $ 位,我假設第一個是消息,另一個呢?它代表什麼?
這是我檢查SHA-256.txt 文件的連結。
- 我沒有看到任何只有一個輸入的 SHA 電路。
- 它在頁面上解釋:
對於 SHA-256 和 SHA-512,我們給出了一個將輸入緩衝區和輸入連結狀態映射到下一個連結狀態的電路。
SHA-256 輪函式獲取輸入數據的 512 位塊和 256 位連結值,並輸出新的 256 位連結值。這允許此頁面的創建者只給出一個 SHA 電路(否則這是不可能的,因為 SHA 接受任何長度的字元串,但電路具有單個固定輸入長度)。這也意味著為了使用這些電路,您必須自己編排 Merkle-Damgård 連結的其餘部分,並可能多次呼叫該電路。
編輯: SHA-256 是一個 Merkle-Damgård 散列函式,因此它的散列值按以下方式計算(圖片來自Wikipedia):
整個圖片顯示了長輸入上的 SHA-256 計算 $ n $ 塊(一個塊在 SHA-256 中是 512 位)。您找到的電路文件僅針對標有“ $ f $ ”。“連結值”是連接的水平箭頭 $ f $ -盒子。