小さな C++ アプリケーションがインターネット経由で接続されたクライアントで自分自身を更新できるようにするには、公開鍵に基づいてダウンロードを検証するメカニズムが必要です。DSA や RSA などのアルゴリズムは、これをうまく実行できるようです。
ただし、このためのよく知られた利用可能なライブラリ (Crypto++、LibTomCrypt) を見ると、最終的にバイナリが 500k を超えて大きくなりますが、そのようなロジックは数 k で実装できるように思えます。たとえば、<20k フットプリントで RSA/DSA ハッシュ検証を実装するライブラリはありますか?