java rmi クライアントサーバーでチャットアプリを作りました。RSA アルゴリズムを使用したメッセージのセキュリティのためですが、秘密鍵を対戦相手のチャットに配布するのは困難です。おそらく、送信されたチャットメッセージを解読できるように、相手に秘密鍵を配布する方法を手伝ってくれる私の友人からでしょう。
3 に答える
まず第一に、秘密鍵を配布することはありませんが、公開鍵は公開できます (当たり前!)。チャットの反対側にいる人の公開鍵を使用してメッセージを暗号化し、相手は秘密鍵を使用してそれを復号化します。公開鍵をプレーンテキストで送信したり、電子メールで送信したり、Web サイトで公開したりして、他の人がそれを使用してメッセージを暗号化できるようにすることができます。
あなたの人生を楽にするために、たとえばsslを使用することに投資してください。これは、非対称暗号化を使用して安全なチャネルを確立した後、対称セッションキーを交換し、はるかに高速な対称暗号化を使用するため、はるかに高速です。
実際、公開鍵の配布も問題になる可能性があります。対戦相手が送信を変更できる場合 (あなたの送信チャネルだけを聞くのではなく)、相手はあなたの偽の公開鍵を送信できます。そのため、(Web サイトなどの) 公開鍵は、一連の信頼できる機関 (その公開鍵は Web ブラウザーにハードコーディングされています) によって署名される必要があります。
使用する必要があるのは、情報を転送するための非対称スキームです。非対称暗号化では、誰かが傍受していても、自分の鍵が何であるかを知ることはできません。これを使用してメッセージを暗号化できますが、通常はこれを使用して対称キーを暗号化し、それを使用します。
背景の詳細については、これをご覧ください。
コードでそれを行う方法については、「Java public key library」の行に沿って何かをグーグルすることをお勧めします。
RSA は、クライアントが公開鍵を持ち、クライアントの公開鍵を使用して暗号化され、秘密鍵を使用して復号化されるメッセージであるメッセージを復号化する秘密鍵を持っている公開鍵暗号化です。あなたはこれをチェックすることができます http://www.di-mgt.com.au/rsa_alg.html それがどのように機能するかについて非常に詳細に説明しています。この PPT は、Java www.cs.cityu.edu.hk/~cs4288/Java/RSA.docで実装する方法を説明しており 、非常に役立ちます。
それが役に立てば幸い!!