

CRC32とMD5はハッシュアルゴリズム？として、どちらもよく利用されていると思います。

けれど、その使い分けはどのように行われているのですか？


CC BY-SA 3.0
2015-07-12T00:49:13.520
12289
2017-08-04T04:44:59.363
2017-08-04T04:44:59.363
19110
10495
question
アルゴリズム ハッシュ md5
CRC32とMD5の使い分け


CRC は巡回冗長検査  
\- ハードウエアで実装が容易  
\- 計算結果が小さい (CRC-32 なら 32bit)  
\- 逆方向演算を困難にするようには設計されていない  
\- 伝送誤りの検出に向く  
\- 改ざんの検出には向かない  
\- 計算方法 (計算式) がいっぱいある (標準化されてない)

(暗号論的)単方向ハッシュ (MD5 は古いので SHA 推奨)  
\- 計算量が多い（ハードウエア実装には向かない）  
\- 計算結果が大きい (MD5 で 128bit SHA256 で 256bit)  
\- 逆方向演算がきわめて困難になるよう設計されている  
\- 伝送誤りの検出に使うにはコスト高  
\- 改ざんの検出も可能 (正しく運用できる限り)  
\- 計算方法が標準化されている

実際問題として  
\- CRC は短い電文の伝送誤りをハードウエアレベルで検出する目的に使われることが多い  
\- 単方向ハッシュはソフトウエアレベルで改ざん防止・逆変換防止に使われることが多い

と理解してそんなにまちがってない・・・と思うです。


CC BY-SA 3.0
2015-07-13T00:04:36.087
12308
2015-07-13T00:04:36.087
8589
12289
answer