7

小さな C++ アプリケーションがインターネット経由で接続されたクライアントで自分自身を更新できるようにするには、公開鍵に基づいてダウンロードを検証するメカニズムが必要です。DSA や RSA などのアルゴリズムは、これをうまく実行できるようです。

ただし、このためのよく知られた利用可能なライブラリ (Crypto++、LibTomCrypt) を見ると、最終的にバイナリが 500k を超えて大きくなりますが、そのようなロジックは数 k で実装できるように思えます。たとえば、<20k フットプリントで RSA/DSA ハッシュ検証を実装するライブラリはありますか?

4

6 に答える 6

2

特定のニーズに合ったライブラリが見つからなかったので、このために自分のライブラリを作成しました:http: //github.com/paiq/dsa_verify。現在の実装では、主にbignum math libが含まれているため、プログラムメモリのフットプリントが約5万になりますが、将来のバージョンではさらに削除される可能性があります。

于 2010-07-23T09:15:40.700 に答える
1

本当に暗号が必要ですか?通常、ダウンロードを検証するには、MD5やSHAなどのハッシュ関数を使用できます。たぶん、これらを使用して小さなライブラリを見つけることができます。

どちらの方法でも、opensslライブラリを試すことができます。ただし、私のマシンの.aは約400Kと250Kが削除されています。

于 2010-07-21T19:01:05.313 に答える
1

Windows のみの場合、アプリが win2k 以降にデプロイされている限り、Windows Crypto API にリンクできる場合があります。Windows 暗号化の MSDN 記事。

編集: 別の解決策として、ダウンロードが破損していないことを確認する必要がある場合は、ちょっとしたグーグル検索で MD5 のこの小さな実装のソースが見つかりました。コンパイルされたオブジェクト コードの先頭 3k の read-me によると。

于 2010-07-21T18:38:31.160 に答える
0

MIRACLライブラリがニーズを満たしていることに気付くかもしれません。

于 2010-07-22T00:59:49.423 に答える
0

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.143.3049&rep=rep1&type=pdfには楕円曲線ライブラリが記述されており、著者によると、約 7k ROM 以下しか必要としないように構成できます。マイクロコントローラに 200 バイトの RAM

于 2010-07-21T18:41:04.413 に答える
0

チェックサムは、このような検証ジョブを簡単に処理できます。

于 2010-07-22T09:11:54.927 に答える