認証付き暗号化サービスを提供する.Netで使用するマネージDLLを提供することに興味があります。DLLは、WPFプログラムまたはASPアプリケーションで使用される場合があります。Microsoftの暗号モデルとストリームモデルに関連する質問がいくつかあります。
認証された暗号化モード(CCM、CWC、EAX、GCMなど)は通常、2つのアーティファクトを生成します。1つは暗号文で、2つ目は認証タグです。暗号化のストリーミングはかなり簡単ですが、いくつかの問題が発生する可能性があります。たとえば、ヘッダーの構築方法と認証済み暗号化モードが認証タグを生成する方法が原因で、CCMをストリーミングできません。
復号化はストリーミングできないため、注意が必要です。すべての暗号文が使用可能である必要があり、その暗号文は復号化される前に認証タグを使用して検証される必要があるため、復号化をストリーミングできません。
認証付き暗号化モードをブロック暗号に適合させて、ブロック暗号で使用できるようにするにはどうすればよいCryptoStream
ですか?それも可能ですか?おそらく、Microsoftがそれを提供しないのはなぜですか?
マイクロソフトには推奨事項がありますか?たとえば、大きなメッセージを小さなメッセージまたはユニット(それぞれに独自のタグが付いている)に分割しますか?または、MSは、メッセージとタグ全体が入力されるまでバッファリングすることを推奨していますか?
マイクロソフトはどこにタグを「置く」ことを推奨していますか?ストリームの開始時に?ストリームの終わりに?
いくつかの役立つ参考資料: