ハッシュ関数は、現代の暗号化の主要な労働力と見なすことができます。もともとはデジタル署名の効率を向上させるために作成されましたが、現在では、情報が保存および交換されるインフラストラクチャのほぼすべての部分で使用されています。それらは、暗号化プロトコル、暗号化キーの操作、安全なWeb接続、さらにはマルウェアのスキャンの過程で見つけることができます。ハッシュ関数がなければ、私たちの周りのほとんどのものは単に機能しません。
最も一般的なハッシュ関数は、SHA-0、SHA-1、およびSHA-2で、SHA-256とSHA-512が含まれます。しかし、21世紀の最初の10年の終わりまでに、衝突工学の手法がそれぞれに提示され、アルゴリズムに脆弱性が存在することが示され、これらのハッシュ関数に基づく電子デジタル署名のセキュリティが疑問視されました。これに関連して、2007年に米国国立標準技術研究所(NIST)は、新しい暗号化標準SHA-3の競争を発表しました。
前書き
既知の攻撃への耐性、メモリ使用量の最小化、64ビットプロセッサの最適化などの要件のリストを備えたTwofishおよびBlowfishブロック暗号の作成者であるBruce Schneierが率いる科学者チームは、2008年に可変ハッシュ関数のファミリをコンテストに提出しました。文字通り「糸のかせ」を意味するビット深さかせ。著者にとって残念なことに、2012年にSkeinアルゴリズムは、SHA-3決勝でより速く脆弱性の低いKeccakに敗れました。
Skeinには3つの部分があります。
構成可能な対称スリーフィッシュブロック暗号
一意の反復ブロック(UBI)
オプションの引数システム
順番に行きましょう。
スリーフィッシュ
Threefish — , Skein. , , , Blowfish Twofish. Threefish - (sp-), , MIX, , XOR 2 64 . , 4 . tweak-.

Threefish TF(K, T, P),
K —
T — tweak-
P -
. Threefish 256, 512 1024 . , . : 72 80 256/512- 1024- . Tweak- 128 .
MIX (k1, k2) (g1, g2) , :
g1 = (k1 + k2) mod 264
g2 = (k2 ≪ R) ⊕ g1 , R — ,

UBI
Skein Threefish Unique Block Iteration. UBI . , , . F(S, A, T):
S — Nb
A —
T —
A, , n Nb
F(S, A, T) :
H0=S
Hi+1 = TF(Hi ; T + min(NA; (i+1) Nb) + ai 2126 + bi (B2119+ 2127) ; Ai)Ai
a0=bk-1= 1, ai=bi=0, A 8 B=0, B=1
, . Skein , -.
: , , , . :
Configuration —
Output —
:
Public Key - , ,
Message -
Nonce -
Key - Skein MAC(message authentication code) KDF(key derivation function)
Personalization - ,
Skein
, . Skein, -, . UBI-. 3, UBI: , , . S = 0. Skein .

264 , , .

最後に、Skeinハッシュ関数の適用分野について説明します。追加の引数のシステムを使用して、MACまたはHMACメッセージ認証コード(ハッシュベースのMAC)を計算するためのアルゴリズムを構成することができます。Skeinは、ランダム番号ジェネレーターとして、またはデジタル署名を計算するためのメカニズムとしても機能します。