SHA1 ハッシュの生成にかかる時間 (約 60 バイト?)
と、他のハッシュとの比較は?
前もって感謝します。
もちろん、ハッシュの生成にかかる実際の時間はハードウェアに大きく依存するため、特定のタイミングを提供することは不可能です。
そうは言っても、他のハッシュアルゴリズムと比較したSHA1ハッシュアルゴリズムのパフォーマンスを示すことは可能です。
次のリンクは、多くの異なる一般的なハッシュアルゴリズムのパフォーマンス比較を提供します。
パフォーマンスの比較:セキュリティ設計の選択
(「ComputeHash」という見出しの下で、半分ほど下を確認してください)
最後のリンクから:
ComputeHash
このメソッドは、ファイルに格納されているデータのハッシュを計算します。4 KB、135 KB、および1 MBのデータサイズでテストを実行し、データのサイズがパフォーマンスにどのように影響するかを確認しました。
図4.ハッシュアルゴリズム(4 KB):RPSと応答時間
ノート:
.NET Frameworkは、MD5、SHA1、SHA256、SHA384、SHA512などのさまざまなハッシュアルゴリズムをサポートしています。さまざまなSHA実装の唯一の違いは、それらが生成するハッシュサイズです。テストにはSHA1とSHA512のみを含めることを選択しました。SHA1とMD5のさまざまな実装を提供するSystem.Security.Cryptographyを使用しました。System.Security.Cryptographyで使用できるMD5の実装は1つだけです。CAPIをラップするMD5CryptoServiceProviderです。SHA256、SHA384、およびSHA512は、現在CryptoAPIでは使用できません。これらのアルゴリズムは、マネージコードに直接実装されています。これらのアルゴリズムは、SHA1よりも強力なアルゴリズムを提供するためではなく、AESの新しいキー生成要件をサポートするためだけに追加されました。現在の信念は、SHA1はデータのハッシュには十分すぎるほどです。SHA1およびSHA512の場合、System.Security.Cryptographyで利用可能な管理された実装SHA1ManagedとSHA512Managedをそれぞれ使用しました。図4に示すように、すべてのアルゴリズムのパフォーマンスは非常に似ており、SHA512がわずかに遅れています。MD5は、サイズ128ビットのハッシュを生成します。SHAの計算プロセスは、MD5をモデルにしています。160ビットのハッシュを生成します。