シングルユーザーチャットとグループチャットの両方をサポートするチャットアプリケーションに取り組んでいます。
シングルユーザーチャットのメッセージを受信者の公開鍵で暗号化し、受信者の秘密鍵を使用して復号することを計画しました。
このアプローチを採用すると、グループチャットの場合に実装する手がかりがなくなります。
何かご意見は?
これは、グループチャットに使用するモデルによって異なります。
または、この「グループ」のキーペアを作成し、プライベートのコピーをグループのすべてのメンバーに送信しますが、すでに問題が発生していると思います。
最善の策は、おそらくチャットセッションのアイデアを持ち、その間セッションキーを使用することです。対称暗号化は、非対称暗号化よりもはるかに高速で安全です。そのため、セッションホストがセッションキーを決定し、それを会話の公開キーの各メンバーで暗号化して送信すると、各当事者は同じセッションキーを持ち、会話に参加できる。
あるいは、単にすべての受信者のメッセージを暗号化するか、各受信者との一意のセッションをセットアップすることもできますが、これははるかに遅く、プロセッサ集中型のプロセスですが、メッセージはそれぞれに個別に送信する必要があるため、ほぼ同じ量のデータを使用しますとにかく受信者(サーバーベースのリレーを使用している場合を除く)。