• ベストアンサー

公開鍵暗号方式のしくみ

121CCagentの回答

  • ベストアンサー
  • 121CCagent
  • ベストアンサー率51% (13930/27222)
回答No.2

サルにも分かるRSA暗号 http://www.maitou.gr.jp/rsa/rsa13.php 4枚の図解でわかる公開鍵暗号 https://persol-tech-s.co.jp/corporate/security/article.html?id=26 とか読むと簡単な仕組みが書かれているので参考にされてみては?

spongetak
質問者

お礼

ありがとうございます。後者のリンクのほうで理解できました。 素因数分解の困難性を使うというのは、あちこちに書いてあるので承知していましたが、どのようにこのことを使って、このシステム(アルゴリズム)を作れるのか、基本的なところが理解できました。 暗号文と公開鍵がGetできても、もとの平文は出てきませんが、暗号文と秘密鍵がわかれば、平文はでてきます。 またついでに興味深いのは、公開鍵→秘密鍵の推測は当然できませんが、秘密鍵→公開鍵の推測もできない点。また、最初の素因数が分かっていなくても、公開鍵さえ分かっていれば、鍵を開けることはできるとう点です。 こんな仕組みが作れるわけですね。

関連するQ&A

  • 公開鍵暗号について

    失礼します。 公開鍵暗号についてです。 Linux系OSカテゴリで質問することではないかもしれませんが、 sshサーバーの設定の際に疑問になったことなのでここで質問させてください。 公開鍵暗号方式について無勉強だったので調べていると、 Wikipediaより、 1.通信を受ける者(受信者)は自分の公開鍵(暗号化のための鍵)P を全世界に公開する。 2.受信者に対して暗号通信をしたい者(送信者)は、公開鍵 P を使ってメッセージを暗号化してから送信する。 3.受信者は、公開鍵 P と対になる秘密鍵(復号のための鍵)S を密かに持っている。この S を使って受信内容を復号し、送信者からのメッセージを読む。 4.暗号通信を不正に傍受しようとする者(傍受者)が、送信者が送信した暗号化されたメッセージを傍受したとする。傍受者は、公開鍵 P は知っているが、秘密鍵 S は受信者だけが知っている情報であるので分からない。P から S を割り出すことは(計算時間的に)極めて難しい。そのため、暗号文を復号することはおよそできない。 とありました。 sshを使ってサーバーにアクセスする場合、秘密鍵はクライアント側が持つことになりますが、 そのとき、サーバーからクライアントへのデータは秘密鍵があるので解読できるのは理解できます。 しかし、その反対はサーバー側に秘密鍵がないので無理なのでは? 不勉強でここで悩んでいます。 どなたかご教授いただけないでしょうか? また、ssh用に作成した秘密鍵は「厳重に保管しておく」とよく書かれていますが、 具体的にどうするのかはっきりしません。 パスワード保護でもすればよいのでしょうか? これについても宜しくお願い致します。

  • 公開鍵暗号方式について

    公開鍵暗号方式について調べてるのですがわからないことがいくつかありますので教えてください。詳細なところまでは必要ありません(というか理解できません。。)ので素人向けに概観をご教授いただければ大変助かります。 共通鍵を使った方式は鍵自体の受け渡しに問題があるので、公開鍵と秘密鍵という一対の鍵を用意し、公開された公開鍵で暗号化し、秘密鍵で複合化する。このとき、例えばRSAなら素因数分解を利用した、「秘密鍵から公開鍵の生成は容易だが公開鍵から秘密鍵を割り出すことは困難」という特性が公開鍵を公開しても安全であるという根拠になっている、と理解してます。 ここまでは納得できるのですが、「公開鍵で暗号化したものは秘密鍵でしか複合できない」という仕組みがまったくイメージできません。 送信側だけを考えると、単に与えられたある値(公開鍵)を使ってそれを暗号化してるだけですよね??それでは第3者に暗号分を盗聴されたら公開鍵とともに解析されて(暗号化のアルゴリズムが同じであれば)いずれバレてしまうような気がするのですが・・ もちろん送信者側が秘密鍵まで知っているのなら、「公開鍵で暗号化して秘密鍵でしか複合できない」ような暗号文を作ることは可能でしょうけど、公開鍵から秘密鍵を知ることはできませんもんね・・?? 以上、お暇なときでけっこうですのでよろしくお願いいたします。

  • 公開鍵暗号方式について、お尋ねします。

    公開鍵暗号方式について、お尋ねします。 以下の理解でいいか確認よろしくお願いします。 公開鍵暗号方式で認証局に申請する場合、申請に必要なものすべてと公開鍵 と理解していますが、よくわからないのが秘密鍵をソフトで作成して公開鍵と 一緒に提出するのか、認証局が発行するのか、それ以外の方法なのか理解していません。 秘密鍵についてどの時点でどうしたらいいのか解答お願いします。

  • 公開鍵暗号について

    暗号について勉強しています。 公開鍵暗号で公開鍵と秘密鍵を決められた方式で生成するとあるのですが、鍵を生成するための式はあるのでしょうか?

  • 公開鍵暗号方式が理解出来ません。

    公開鍵暗号方式では、公開鍵で暗号化したものは秘密鍵で複合化出来るし、秘密鍵で暗号化したものは公開鍵で複合化出来ると言われています。ということは、特定の公開鍵に対応する秘密鍵は、本人が勝手に決められるものではなくて、公開鍵との間になんらかの関連性があるものでなければならないと思うのですが、違いますでしょうか?でももしそうだとすると誰でも公開鍵に対応する秘密鍵が作れてしまって、全然秘密ではなくなってしまうような気がするのですが。。。ご存知の方ご教授お願いします。

  • 公開鍵方式とは

    公開鍵による暗号化についてメチャクチャ分かりやすく教えてください。 普通は鍵を公開しては意味が無いし、秘密鍵とセットなら秘密の鍵が1つあれば良い様に思えるのです。 ** 公開鍵方式  **** 対になる2つの鍵を使ってデータの暗号化・復号化を行なう暗号方式。  片方は他人に広く公開するため公開鍵と呼ばれ、もう片方は本人だけがわかるように厳重に管理されるため秘密鍵と呼ばれる。秘密鍵で暗号化されたデータは対応する公開鍵でしか復号できず、公開鍵で暗号化されたデータは対応する秘密鍵でしか復号できない。

  • 公開鍵暗号方式を利用した下りデータの安全性について

    公開鍵暗号方式については、  ・公開鍵で暗号化したものは秘密鍵で復号できる  ・秘密鍵で暗号化したものは公開鍵で復号できる  ・秘密鍵は(もちろん)秘密だが、公開鍵は不特定多数に配布可能 が前提にあると理解しています。 SSLも公開鍵暗号方式を利用した通信プロトコルということですが、ここで、一つの疑問が湧きました。 信頼できるルートから署名された証明書を持つサイトで、SSLによって通信が暗号化される会員登録画面があったとします。 利用者は、氏名や住所などを登録画面に入力し、登録ボタンを押します。 この時、入力した情報は、サイトの証明書から入手した公開鍵で暗号化され、サイトに送信されるのだと思います。 ここで暗号化された情報は、サイトが持つ秘密鍵のみで復号可能ですので、鍵を持たない第三者が盗聴すること自体が無意味であり、安全であると言えます。 では、登録された情報を、利用者が確認のために表示する場合はどうなのでしょう? 今度は、サイトが持つ秘密鍵で利用者の情報を暗号化し、サイトの公開鍵によって利用者側で復号することになると思います。 しかし、前述したように、そのサイトの公開鍵は不特定多数の人が持っている可能性があります。 ということは、下りデータの通信を盗聴することで、同じ公開鍵を持つ第三者に復号されてしまうのではないかと考えたのですが、実際はどうなのでしょうか? 利用者が個人で秘密鍵を持っていない状況での通信というのがポイントです。 インターネットなどで調べてみたのですが、秘密鍵の所有者向きの通信を公開鍵によって安全に暗号化することを例とした説明が多く、先の疑問に対する明確な解答を見つけることが出来ませんでした。 また、ランダムに生成した共通鍵を公開鍵で暗号化するハイブリッド方式というものがあり、何か関連があるかと思ったのですが、公開鍵暗号方式のデメリットである処理速度の問題を補う手法という内容で、解決には結び付きませんでした。 ご存知の方がいらっしゃいましたらお教え下い。 宜しくお願いします。

  • 暗号のアルゴリズムについて

    公開鍵暗号方式・共通鍵暗号方式があるのはわかっているのですが、 共通鍵暗号方式では、送信者・受信者共に同じ鍵を使うため、同じアルゴリズムで暗号化・復号を行うのであろうと予想はつくのです。 (DESや3DESがあると思うのですが、多分共通鍵にDESを使うとかかいてある?) ・質問 公開鍵暗号の場合、 AがBにデータを送る際、Bの公開鍵でデータを暗号化すると思うのですが この時、Bの公開鍵(証明書?)に、RSAで変換 といったことが書かれているのでしょうか? 公開鍵暗号には、楕円曲線暗号、ElGamal暗号があると思うのですが、 もし、Bの公開鍵に、暗号方式が書いていないと、Bの秘密鍵がRSAだった場合復元できなくなってしまうと思うのですが・・・。 初歩的な質問ですみませんが、 どなたかご教授いただけないでしょうか?

  • 公開鍵暗号

     ラビン暗号、エルガマ暗号、マクリース暗号 、楕円エルガマ暗号、楕円RSA暗号等も公開鍵暗号であることを知りましたが、  (1)どんなアルゴリズムであるか  (2)どんな長所、短所を持っているか  (3)鍵の長さはどうか、処理速度はどうか、安全性は? 等々調べたいのですが分かりません。教えてください。  それと、量子暗号は公開鍵暗号になるのでしょうか?

  • 公開鍵暗号方式は負荷が高いというが何故ですか?

    公開鍵暗号方式だと共通鍵暗号方式と比べて、暗号・複合時の負荷が高いとのことですが、なんでなのでしょうか? 詳しい方いらっしゃいましたら教えて頂けると幸いです。