1

私は、2 台の電話が数分間にわたって大量のデータを交換する Android アプリケーションを作成しています。この通信を暗号化したいので、利用可能なさまざまな暗号化オプションを調査しています。非対称暗号化 (RSA など) を使用してセッション キーを交換し、対称アルゴリズム (AES など) を使用して実際にデータを暗号化/復号化するハイブリッド アルゴリズムが最も適しているようです。

ハイブリッド暗号化について私が知っていることから、2 つのデバイス間で送信されるすべてのパケットは、パケット内に埋め込まれた (相手側の公開鍵で暗号化された) 新しいセッション キーを使用して、相手側での復号化を容易にする必要があります。

CPU を節約するために、RSA を使用して交換されるセッション キーを 1 つだけ使用し、このキーを使用してすべてのデータを暗号化/復号化することを検討しています。これにより、費用のかかる RSA 操作を節約できます。しかし、これは推奨されていないことを理解していますか? 誰かがこれを確認して、どうすればよいか教えてもらえますか?

編集:

ここにさらに情報を追加すると思いました-

通信プロトコルは完全にカスタムで私独自のものです。データは、暗号化されていない UDP パケットで送信され、多数のメタデータと暗号化されたペイロードが含まれます。したがって、通常の SSL / TLS の使用は除外されます。

また、セッションごとに新しい秘密鍵と公開鍵を生成し、公開鍵を交換してから、それを使用して AES で使用されるセッション鍵を交換します。2048 ビットの RSA と 256 ビットの AES を使用しています。これは、私の知る限り、ほとんどのコミュニケーションにとって十分すぎるほどであり、おそらくやり過ぎです。暗号に関する私の知識が優れていないことは認めますが、これを可能な限り安全にするために、できる限り多くのことを読んで学んでいます.

4

2 に答える 2

1

セキュリティのトレードオフにすぎません。キーが長いほど、セッションを長くすることができます。キーを十分に長く保持しようとしている、またはセッションを十分に短く保持しようとしている、またはそれらが混在しているため、利用可能な時間内にキーの侵害が実行不可能になっています。また、キーがクラックされた場合にセッション全体のデータが漏洩しても問題ないかどうか、またはメッセージごとに新しいキーなどの追加のセキュリティが必要かどうかを検討する必要があります。

于 2013-09-04T00:06:13.463 に答える