は、私は私のネットワークソフトウェアでchacha20暗号化を使用しようとするが、私は4バイトのデータを暗号化する場合、私は問題ストリーム暗号を使用してTCPデータを暗号化する方法
が発生します。0x01 0x02 0x03 0x04
サーバー
に暗号文を取得:0xd2 0xd3 0xc4 0xd5
を、クライアントに送信
クライアントは、提供時間
で< = 4バイトを受信することができ、その最初のクライアントのみRECV 0xd2 0xd3
、
それが適切にデータを復号化し、平文0x01 0x02
を取得しますが、クライアントは最後の2バイト0xc4 0xd5
をrecvをするとき、そうそこにはあるデータが同じナンス、キー
を使用して復号化することができないと思われることができます問題を解決する方法
送信前にプレフィックスとして長さデータを追加するのは解決策ですが、私はストリーム暗号を使用しているので奇妙です。
また、メッセージの長さをプレフィックスにすることは、メッセージを送信するパケットの数をほとんど予測できないため、ほとんどの場合、TCPを使用する必要があります。 –
問題は正しく読まれていません。暗号化ではありません。 –
「chacha20暗号化」で通常とは異なるモードが選択されていない限り、暗号化と復号化は同じ操作です。たぶん私は質問を正しく理解していないかもしれません。 Dk、n(m0)|| Dk、n(m1) '? –