10

これは奇妙な質問のように聞こえるかもしれませんし、実際にこれを尋ねなければならないのは少し奇妙に感じbcryptますが、Vista で追加されたルーチンについて MSDN のドキュメントを数時間調べた後、ほぼ次の結論に達しました。実際の bcrypt サポートはありません!

ウィキペディアによると:

bcrypt は、パスワードの適応型暗号化ハッシュ関数です... Blowfish 暗号に基づいています... レインボー テーブル攻撃から保護するためにソルトを組み込むことに加えて、bcrypt は適応型ハッシュです。ハッシュとソルトに対する特定のブルートフォース検索攻撃に。

ただし、MSDN のドキュメントから、「bcrypt」ライブラリは、実際には暗号化とハッシュのための汎用インターフェイスであるようです。BCryptOpenAlgorithmProvider 関数を介して「アルゴリズム プロバイダー」へのハンドルを取得する必要があります。この関数には、いくつかの組み込みアルゴリズムから選択できます。しかし、「フグ」という単語はリストのどこにも表示されません。

それで、私は何かを逃していますか?私はこれを間違って読んでいますか?それとも、Windows の「bcrypt」ライブラリは実際には bcrypt をまったくサポートしていないのでしょうか?

4

2 に答える 2

8

MSDN のコンテキストでは、BCrypt は"BestCrypt"の省略形ですが、その PR 名は次のとおりです。

暗号化 API: 次世代 (Cng)

で実装されていbcrypt.dllます。

BestCrypt/BCrypt/Cng は、古いCryptoAPIの後継です。

マイクロソフトは、サイトから「BestCrypt」への参照を徐々に削除していますが、次のようないくつかのページで引き続き参照できます。

SHA256Cng クラス

このアルゴリズムはハッシュ専用であり、暗号化または復号化は提供しません。BCrypt (BestCrypt) レイヤー CNG を使用します。

(とにかく私にとって) 興味深いのは、.NET フレームワークが通常、暗号化アルゴリズムの種類ごとに 3 つの実装を提供できることです。たとえば、SHA2 ハッシュの場合は次のようになります。

  • SHA256Managed : マネージド コードのみで記述された実装
  • SHA256CryptoServiceProvider : ネイティブの暗号化サービス プロバイダー (CSP) 実装のラッパー
  • SHA256Cng : Cryptography Next Gen (Cng) 実装のラッパー

短縮版

いいえ、bestcryptbcryptの略です。いいえ、bcrypt (blowfish crypt) パスワード ハッシュはサポートされていません。

于 2015-05-03T13:19:33.610 に答える
4

BCrypt API は汎用的で、さまざまな暗号化ハッシュ アルゴリズムをサポートしていますが、bcrypt はそれらの 1 つではありません。B プレフィックスは、古い API と次世代 API を区別するための単なる方法のようです。

于 2012-03-16T16:00:49.240 に答える