Sha-256
SHA-256 算法中的 Maj 和 Ch 是什麼意思?
我猜它們是某種標準功能,但它們是做什麼的,名字是什麼意思?一點解釋或將我連結到一篇文章會很棒。
FIPS 180-4中給出的定義是
$$ \begin{align} \operatorname{Maj}(x,y,z)&=(x\wedge y)\oplus(x\wedge z)\oplus(y\wedge z)\ \operatorname{Ch}(x,y,z)&=(x\wedge y)\oplus(\neg x\wedge z) \end{align} $$ 在哪裡 $ \wedge $ 是按位與, $ \oplus $ 是按位異或,並且 $ \neg $ 是按位否定。這些函式是為位向量定義的(在 SHA-256 的情況下為 32 位)。 $ \operatorname{Maj} $ 代表多數:對於每個位索引,該結果位是根據 3 個輸入位中的大多數 $ x $ $ y $ 和 $ z $ 在這個指數。
$ \operatorname{Ch} $ 代表選擇(來源:雨披)或選擇,作為 $ x $ 輸入選擇輸出是否來自 $ y $ 或從 $ z $ . 更準確地說,對於每個位索引,該結果位是根據來自的位 $ y $ (或分別 $ z $ ) 在該索引處,取決於位是否來自 $ x $ 在此索引處為 1(或分別為 0)。