私は簡単なライセンスファイルシステムを実装しており、現在の実装ラインで間違いがあるかどうかを知りたいと思っています。このRSAベースの署名(リカバリあり)スキームは暗号的に妥当ですか?
メッセージデータがキーよりも小さい。私は3072ビットのキーサイズでRSAを使用しています。
ライセンスの発行者は、署名するメッセージを生成し、RSAベースの直接的なアプローチを使用して署名し、同様の方法を適用してメッセージを暗号化します。暗号化されたメッセージと署名は、ライセンスファイルとして一緒に保存されます。
- Sha512のメッセージです。
- 秘密鍵でハッシュに署名します。
- 秘密鍵でメッセージに署名してください。
- 連結して送信します。
受信すると、検証プロセスは次のとおりです。
- は、公開鍵を使用してファイルからハッシュを復号化する公開鍵
- ハッシュとメッセージ
- をメッセージを復号化し、と比較しますローカルハッシュ
実装は正しく動作しており、は有効です。と表示されます。
私は現在、おそらく ある鍵のサイズに合わせて、メッセージ、悪い動き(私が1または1.5のように、PKCSパディングアルゴリズムを使用する必要があります推測?)
んこの戦略ゼロ埋めています有効と思われる? 明白な欠陥や見通しが見過ごされていますか?
メッセージを暗号化するのは難読化のためのものであり、はいです。 Enc [x]とEnc [Hash [x]]の送信に脆弱性はありますか?私は、ハッシュが正しく(そして重く)詰め込まれているので、推測していません。私の実装は、優れたパブリックドメインLibTomCryptに基づいています。私はWei DaiのCryptoPPを使用していましたが、RSA署名は最新の推奨シグネチャスキームでは実装されていないようです。 –
すべてのパディングを整頓している限り、何も表示されません。私はそれを[email protected]リストに送って、より多くのレビューをすることをお勧めします。 – caf