• ベストアンサー

javaで暗号化して通信

Cipherクラスで暗号化して通信しても逆コンパイルされるとアルゴリズムなどバレて意味がない。どうしたらいいですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • thamansa
  • ベストアンサー率40% (95/232)
回答No.4

いま主流の暗号には大きく分けて「共通鍵暗号」と「公開鍵暗号」という方式があります。 前者は、暗号文の作成につかう鍵がバレると解読されてしまいます。 後者は、暗号文の作成につかう鍵と、解読に使う鍵が別になっています。このため、暗号文を生成するための鍵を公開しても、解読されないしくみです。 現代の暗号システムは、この2つの方式を用途によって使い分けたり、組み合わせて使います。 たとえばA-Bの通信なら、A→Bに公開鍵を送る。途中傍受されてもいい。Bは共通かぎを生成し、Aから貰った公開鍵で共通かぎを暗号化してB→Aに送る。ここで傍受されても、解読用の鍵がないので解読できない。これでA-B間に安全に共通かぎの共有ができたので、以降はパフォーマンスの早い共通かぎ暗号で通信を行う。 こんな応用例があるようです。

その他の回答 (3)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

>結局キーもバレますがどうしたらいいですか? 具体的にどういうやり取りを考えてますか? 普通はプログラムの中に生の暗号化鍵(パスワード)を 埋め込むようなことはしませんし、 認証の際にも生の暗号化鍵を通信でやり取りするようなことはしません (そういうやり方がある)ので、 プログラムを解析されてもどうということはないはずですが。 なんらかのソーシャルハックとかで鍵を盗られていたのなら それはご愁傷様ですが、それはプログラムの側でどうこうする問題じゃあないです。

osiete_kun
質問者

お礼

そういうやり方とはどういうやり方ですか?

osiete_kun
質問者

補足

ちなみにアプレット-サーバ通信で

  • buriburi3
  • ベストアンサー率44% (353/792)
回答No.2

現在主流の暗号化アルゴリズムは公開されています。 「アルゴリズムが公開されていて世界中のハッカー、数学者、技術者が突破を試みたが未だに誰も突破に成功していない」事実をもって「安全である」事を保証しています。 ※ちなみに、もし今の数千倍の速度で素因素分解を行う方法が発明されたら現在主流の暗号は解読可能になります。 暗号化キーの交換手順にさえ気をつければアルゴリズムがばれる事は問題ではありません。 ※アルゴリズムがばれるとトッパされるような暗号は気休めでしかありません。

osiete_kun
質問者

補足

結局キーもバレますがどうしたらいいですか?

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

いまどきの暗号化手順はアルゴリズムがわかってもそれが即 解読につながるというものではないのがほとんどですよ。 ですから、プログラムを解析されて…という心配をする必要はまずないです。 それよりも『鍵』のやり取りをどのようにするかに注意しておくべきです。

関連するQ&A

専門家に質問してみよう