誰もがマイクロコントローラー(できれば8ビット)のMD5アルゴリズムの例を持っていますか?このプロジェクトでは、Microchip PIC18シリーズデバイスを使用します。
誰もがマイクロコントローラー(できれば8ビット)のMD5アルゴリズムの例を持っていますか?このプロジェクトでは、Microchip PIC18シリーズデバイスを使用します。
回答:
私はMD5の既知の評判の良い実装に固執し、サードパーティベンダーから見つけたライブラリには近づかないようにします。MD5について説明した元のRFC 1321には、サンプルのC実装があります。
注意:MD5の既知の弱点は衝突攻撃であり、 プリイメージ攻撃ではないため、一部の暗号化アプリケーションに適していますが、他のアプリケーションには適していません。違いがわからない場合は、使用すべきではありませんが、完全に破棄しないでください。http://www.vpnc.org/hash.htmlを参照してください。
http://en.wikipedia.org/wiki/MD5で、MD5アルゴリズムウィキペディアの適切な説明といくつかの疑似コードを見つけることができます。
この質問は、プログラミングの質問を対象としているため、stackoverflowに投稿することも検討してください。
MD5のWikipediaページから:
... MD5自体は耐衝突性がないことが示されています。MD5は、SSL証明書やこのプロパティに依存するデジタル署名などのアプリケーションには適していません。
同じページのSSL研究者から:
また、他のアプリケーションでのMD5の使用についても再検討されることを期待しています。
あなたはおそらくこれを聞きたくないと思いますが、本当にMD5が必要ですか?安全性が低すぎるため(そして利用可能なレインボーテーブルのボートロードが存在するため)、暗号化の目的で使用しないでください。データを検証するだけのものを探している場合は、計算がより安価なCRC(ここにコード)を調べてください。暗号化の目的で使用している場合は、SHAに移行することをお勧めしますか?唯一の問題は、ほとんどの暗号的に安全なアルゴリズムがマイクロコントローラーで特にうまく動作しないことです。MD5は「十分に良い」ように思えるかもしれませんが、エンジニアリングの方法は注意を怠ります。