2016-11-11 4 views
0

私のメッセージには、ユニークなメッセージIDとタイムスタンプ(他のデータとともに)とペイロードを含むヘッダーがあります。私はハッシュのalgorythmとして最初のキーとMD5またはSHA - 256とHMACを使用して全体のメッセージに署名します。次に、CBC AESで2番目のキーを使用してペイロードを暗号化するために、最初の16バイトの署名をIVとして使用します。私はメッセージに署名を付けます。暗号ブロック連鎖の初期化ベクトルを生成する私の方法は安全ですか?

私のIVは十分に予測できませんか? 私のセキュリティを脆弱にするプレーンペイロードに署名していますか?

+0

私はプログラミングに関する質問ではなく暗号であるため、この質問をトピックとしてクローズすることにしました。 –

+0

@ JamesKPolk私は意見に同意しません。問題は実装とIVの作成と署名です。 – zaph

+0

有用な回答を受け入れることを検討してください。答えを受け入れることによって、それは正しい答えであることを将来の読者に示すことになります。 答えを受け入れるには最良の答えの横にある中空のチェックマークをクリックすると、評判が上がり、より多くの機能が使用できます。[reputation faq](http://stackoverflow.com/faq#reputation)このページ(http://meta.stackoverflow.com/questions/5234/how-does-accepting-an-answer-work)を参照してください。 – zaph

答えて

2

暗号化ランダム(CPRNG)関数を使用してIVを作成し、それを使用して暗号化されたデータにプリペンドして復号化に使用します。

署名が不明な場合は、MAC値以外のメッセージ全体が署名されている必要があります。つまり、プリアンブル、IV、MACシードおよび暗号化されたメッセージ、IOW暗号化、MACです。

関連する問題