パスワードハッシュコンペティションArgon2の受賞者、または低速ハッシュについて

Hi%username%!



以前 、ハッシュのスローダウントピックに触れました 。 これは、別名マイナー高速ハッシュの導入によりファッションがクラッシュする前でした。 判明したように、このトピックは「ハッシュを100500回スクロールしてゴミを混入する」よりもはるかに深刻です。これは、GPUと特殊デバイスが検索を劇的に高速化するためです。

そのため、人々 は競争を打ち負かしました 。その結果、特別なチップやGPUでは高速化が困難なアルゴリズムになりましたが、開発者の希望に応じてカスタマイズできるはずです。 このアルゴリズムはArgon2になりました







Argon2では、次のハッシュオプションを構成できます。



  1. 反復回数
  2. 必要なメモリ空間
  3. 並列度
  4. 結果のサイズ(バイト単位)
  5. 秘密鍵
  6. 追加データ




Argon2には、Argon2iとArgon2dの2つのバージョンがあります。 最初のものはより多くのメモリパスを作成して遅くなり、2番目のものはより高速になりますが、タイミング攻撃に対する保護が欠けており、GPUで選択することも困難です。 よくわからない場合は、Argon2iを選択してください。



1つ目はパスワードハッシュに推奨され、2つ目はタイミング攻撃がひどくない暗号通貨に推奨されます。

このアルゴリズムは特にx86 / x64アーキテクチャ向けに最適化されているため、ASIC / GPUおよびその他のハードウェアで高速化することは非常に困難です。 複数のメモリパスが使用され、ハッシュの巨大な恐ろしいマトリックスが内部に形成されます。これらのマトリックスは互いに依存し、複雑な方法で処理されます。



完全に技術的な詳細が必要な場合、つまり、マタンおよびその他の計算を含む公式ドックが必要です。



バインディングは、Go、Haskell、JavaScript、JVM、Lua、OCaml、Python、Python、Ruby、Rust、およびC#などの多くの一般的な言語およびプラットフォームでも使用できます。

開発者は、2〜4 GBのメモリ消費でハッシュが約0.5秒かかるようにアルゴリズムのパラメーターを選択することをお勧めします。



一般に、事はクールです、どこにでもそれを実装する必要があると思います。 たとえば、Argon2に基づいたコイン 既にあり ます 。 これまでのところ、GPUとASICなしで。



All Articles