- ベストアンサー
javaで暗号化して通信
Cipherクラスで暗号化して通信しても逆コンパイルされるとアルゴリズムなどバレて意味がない。どうしたらいいですか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
いま主流の暗号には大きく分けて「共通鍵暗号」と「公開鍵暗号」という方式があります。 前者は、暗号文の作成につかう鍵がバレると解読されてしまいます。 後者は、暗号文の作成につかう鍵と、解読に使う鍵が別になっています。このため、暗号文を生成するための鍵を公開しても、解読されないしくみです。 現代の暗号システムは、この2つの方式を用途によって使い分けたり、組み合わせて使います。 たとえばA-Bの通信なら、A→Bに公開鍵を送る。途中傍受されてもいい。Bは共通かぎを生成し、Aから貰った公開鍵で共通かぎを暗号化してB→Aに送る。ここで傍受されても、解読用の鍵がないので解読できない。これでA-B間に安全に共通かぎの共有ができたので、以降はパフォーマンスの早い共通かぎ暗号で通信を行う。 こんな応用例があるようです。
その他の回答 (3)
- sakusaker7
- ベストアンサー率62% (800/1280)
>結局キーもバレますがどうしたらいいですか? 具体的にどういうやり取りを考えてますか? 普通はプログラムの中に生の暗号化鍵(パスワード)を 埋め込むようなことはしませんし、 認証の際にも生の暗号化鍵を通信でやり取りするようなことはしません (そういうやり方がある)ので、 プログラムを解析されてもどうということはないはずですが。 なんらかのソーシャルハックとかで鍵を盗られていたのなら それはご愁傷様ですが、それはプログラムの側でどうこうする問題じゃあないです。
- buriburi3
- ベストアンサー率44% (353/792)
現在主流の暗号化アルゴリズムは公開されています。 「アルゴリズムが公開されていて世界中のハッカー、数学者、技術者が突破を試みたが未だに誰も突破に成功していない」事実をもって「安全である」事を保証しています。 ※ちなみに、もし今の数千倍の速度で素因素分解を行う方法が発明されたら現在主流の暗号は解読可能になります。 暗号化キーの交換手順にさえ気をつければアルゴリズムがばれる事は問題ではありません。 ※アルゴリズムがばれるとトッパされるような暗号は気休めでしかありません。
補足
結局キーもバレますがどうしたらいいですか?
- sakusaker7
- ベストアンサー率62% (800/1280)
いまどきの暗号化手順はアルゴリズムがわかってもそれが即 解読につながるというものではないのがほとんどですよ。 ですから、プログラムを解析されて…という心配をする必要はまずないです。 それよりも『鍵』のやり取りをどのようにするかに注意しておくべきです。
お礼
そういうやり方とはどういうやり方ですか?
補足
ちなみにアプレット-サーバ通信で