マイクロコントローラーのMD5実装


回答:


11

Cの実装を探している場合、Microchip TCP / IPスタックのHashes.cファイルにMD5の実装があります。


これはまさに私が必要としたものです。
J. Polfer、2010年


4

私はMD5の既知の評判の良い実装に固執し、サードパーティベンダーから見つけたライブラリには近づかないようにします。MD5について説明した元のRFC 1321には、サンプルのC実装があります。

注意:MD5の既知の弱点は衝突攻撃であり プリイメージ攻撃ではないため、一部の暗号化アプリケーションに適していますが、他のアプリケーションには適していません。違いがわからない場合は、使用すべきではありませんが、完全に破棄しないでください。http://www.vpnc.org/hash.htmlを参照してください


1
暗号化については、MD5を完全に回避します...
Toby Jaffey 2010年

1
@Joby:考えに感謝しますが、MD5には暗号化には問題のない側面があります。あなたはその長所と短所を知っている必要があります。
Jason S

元のRFCのCソースコードにリンクするための+1。おそらくマイクロチップのソースコードを使用することになりますが、チップを作成したのと同じ人々がこれを実行します。
davidcary


3

MD5のWikipediaページから:

... MD5自体は耐衝突性がないことが示されています。MD5は、SSL証明書やこのプロパティに依存するデジタル署名などのアプリケーションには適していません。

同じページのSSL研究者から:

また、他のアプリケーションでのMD5の使用についても再検討されることを期待しています。

あなたはおそらくこれを聞きたくないと思いますが、本当にMD5が必要ですか?安全性が低すぎるため(そして利用可能なレインボーテーブルのボートロードが存在するため)、暗号化の目的で使用しないでください。データを検証するだけのものを探している場合は、計算がより安価なCRCここにコード)を調べてください。暗号化の目的で使用している場合SHAに移行することをお勧めしますか?唯一の問題は、ほとんどの暗号的に安全なアルゴリズムがマイクロコントローラーで特にうまく動作しないことです。MD5は「十分に良い」ように思えるかもしれませんが、エンジニアリングの方法は注意を怠ります。


1
MD5を完全に除外しないでください。「安全性が低すぎるため、暗号化の目的で使用してはなりません」というあなたの声明は、過度に一般化されています。
Jason S

1
また、ハッシュアルゴリズムを使用するかどうかの考慮事項として、ハッシュアルゴリズムにレインボーテーブルがあるかどうかという事実を使用しないでください。現在、SHAに多数のレインボーテーブルがない場合は、そのようになります。その問題を回避するには、メッセージに秘密の「塩」を追加します。
Jason S
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.