マッシュ1

暗号ハッシュ関数(数学アルゴリズム)の場合、 MASH-1モジュラー算術セキュアハッシュ)は、モジュラー算術に基づくハッシュ関数です。

歴史

多くの提案があったにもかかわらず、モジュラー演算に基づくハッシュ関数で攻撃に耐えたものは少なく、耐えられたものもほとんどが比較的非効率である傾向がありました。MASH-1は、関連する提案が次々と破られ、修復されてきた長い歴史から発展しました。

標準

委員会草案 ISO/IEC 10118-4 (1995年11月)

説明

MASH-1 では、 RSAのような係数が使用されますが、そのビット長がセキュリティに影響します。は 2 つの素数の積であり、因数分解が困難です。 の因数分解が不明な場合、セキュリティは部分的にモジュラー根の抽出の困難さに基づいています。 {\displaystyle N}{\displaystyle N}{\displaystyle N}

をビットのメッセージ ブロックの長さとします。 は、よりも数ビット長いバイナリ表現(通常は )を持つように選択されます。 L{\displaystyle L}{\displaystyle N}L{\displaystyle L}L<||L+16{\displaystyle L<|N|\leq L+16}

メッセージはメッセージ長を付加することでパディングされ、長さ のブロックに分割されます。これらの各ブロックから、各バイトの下位半分にの4ビット、上位半分に値1の4ビットを配置することで、長さ の拡大ブロックが作成されます。これらのブロックは、圧縮関数によって反復的に処理されます。 D1Dq{\displaystyle D_{1},\cdots,D_{q}}L/2{\displaystyle L/2}D{\displaystyle D_{i}}B{\displaystyle B_{i}}L{\displaystyle L}D{\displaystyle D_{i}}

H0V{\displaystyle H_{0}=IV}
HfBH1BH1Eeモッドモッド2LH1;1q{\displaystyle H_{i}=f(B_{i},H_{i-1})=((((B_{i}\oplus H_{i-1})\vee E)^{e}{\bmod {N}}){\bmod {2}}^{L})\oplus H_{i-1};\quad i=1,\cdots ,q}

ここで、および はビット単位の ORとビット単位の XORを表します。 E152L4{\displaystyle E=15\cdot 2^{L-4}}e2{\displaystyle e=2}{\displaystyle \vee}{\displaystyle \oplus}

線形演算によって、より多くのデータ ブロックが計算されます (連結を表します)。 Hq{\displaystyle H_{q}}Dq+1Dq+8{\displaystyle D_{q+1},\cdots,D_{q+8}}{\displaystyle \|}

Hqはい1はい3はい0はい2;|はい|L/4{\displaystyle H_{q}=Y_{1}\,\|\,Y_{3}\,\|\,Y_{0}\,\|\,Y_{2};\quad |Y_{i}|=L/4}
はいはい1はい4;415{\displaystyle Y_{i}=Y_{i-1}\oplus Y_{i-4};\quad i=4,\cdots ,15}
Dq+i=Y2i2Y2i1;i=1,,8{\displaystyle D_{q+i}=Y_{2i-2}\,\|\,Y_{2i-1};\quad i=1,\cdots ,8}

これらのデータ ブロックは上記のように拡大され、これにより圧縮プロセスがさらに 8 つのステップで続行されます。 Bq+1,,Bq+8{\displaystyle B_{q+1},\cdots ,B_{q+8}}

Hi=f(Bi,Hi1);i=q+1,,q+8{\displaystyle H_{i}=f(B_{i},H_{i-1});\quad i=q+1,\cdots ,q+8}

最終的にハッシュ値は となる。ここでは となる素数である。[ 1 ]Hq+8modp{\displaystyle H_{q+8}{\bmod {p}}}p{\displaystyle p}72L/23<p<2L/2{\displaystyle 7\cdot 2^{L/2-3}<p<2^{L/2}}

マッシュ2

MASH-2と呼ばれる新しいバージョンのアルゴリズムがありますが、指数が異なります。元のアルゴリズムはに置き換えられています。これがこれらのバージョンの唯一の違いです。 e=2{\displaystyle e=2}e=28+1{\displaystyle e=2^{8}+1}

参考文献