• 締切済み

PHPでの公開鍵方式について

現在PHPでウェブ上で、ローカルからファイルをアップロードし、そのファイルを公開鍵暗号方式で暗号化するものを考えているのですが、公開鍵と秘密鍵のペアの生成の仕方、また暗号化の仕方がわかりません。 よろしくお願いします。

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

回答No.1

opensslが利用できる環境であれば、openssl関数を使います。 キーペアの作成(サンプル有り) http://www.php.net/manual/ja/function.openssl-csr-new.php 公開鍵による暗号化 http://www.php.net/manual/ja/function.openssl-public-encrypt.php 秘密鍵による復号化 http://www.php.net/manual/ja/function.openssl-private-decrypt.php 残念ながらネット上の情報が余り多くないので、少々調べるのは大変です。なお、shellでPGPを叩くようなやり方をしているのも見たことがありますが、余りまともなやり方ではないので、openssl関数を使った方が良いと思います。

関連するQ&A

  • 公開鍵・秘密鍵・共通鍵

    公開鍵・秘密鍵・共通鍵 予備校の模試の正誤問題で 「SSLとは、通信データを暗号化する技術のことをいい、公開鍵暗号方式と共通鍵暗号方式を組み合わせて、データを送受信し、通信経路におけるデータの盗聴、改ざん、なりすましを防ぐことができるため、インターネット上での取引決済時におけるクレジット情報や個人情報の送受信等に使用されている」 とあり、これは正答となっています。 「公開鍵暗号方式と共通鍵暗号方式を組み合わせて」は誤りで 「公開鍵暗号方式と秘密鍵暗号方式を組み合わせて」が正しいのではないでしょうか。

  • 共通鍵・公開鍵・秘密鍵の鍵とは?

    共通鍵・公開鍵・秘密鍵の鍵とは要は「123KJNIDlll・・・」などの数字や文字のパスワードのことでしょうか? 例えば、共通鍵暗号方式では、ファイル・テキストなどのパスワードを「123gh」などと設定して、 それを送信者と受信者でパスワードの情報を共有するのでしょうか? 公開鍵暗号方式も同様にファイル・テキストに「123yu」は公開鍵、「456ghjは秘密鍵と設定をするのでしょうか?

  • 公開鍵と秘密鍵

    サーバ側で ssh-keygen -t rsa と入力すると,公開鍵と秘密鍵が生成されますが どうしてクライアント側に秘密鍵をもたせるのでしょうか? 逆でも通信できる気がします. あと,サーバ1台に対して,クライアントが複数いる場合に 公開鍵と秘密鍵のペアはクライアントの人数分生成するのが適切なのでしょうか? (複数のサーバに1台のクライアントが接続する場合も,各サーバが1台のクライアントに対して公開鍵・秘密鍵を生成するのが適切なのでしょうか?) よろしくおねがいします.

  • PHP+mysqlで作ったプログラムを公開するには?

    現在、html+PHP+mysqlでプログラムを組んでいます。 そこで、ローカル上でのテストがうまくいったので、WEB上に公開したいのですが、公開の仕方が分かりません。 PHPの設置が可能なスペースに****.phpのファイルをアップロードして、パーミッションを変更するだけでいいのでしょうか? ローカル上で作ったmysqlのファイルをどうすればいいのかとか、mysqlが使用可能というスペースでなければならないというものもあるのでしょうか?

    • ベストアンサー
    • PHP
  •                  公開鍵暗号方式について

                     公開鍵暗号方式について 公開鍵暗号の仕組みとメリットについて色々な解説を読んでもさっぱり理解できません。 全くの素人考えですが、「共通鍵暗号は暗号化と復号化の鍵が同じなので機密が保ちにくい」という解説を見ると 「公開鍵暗号で何故暗号化の鍵を公開する必要があるの」「公開鍵暗号で復号化の鍵を相手に知らせる際の外部に漏れるリスクは共通鍵暗号と同じじゃないの」等々の憎まれ口をたたきたくなります。 どなたか、公開鍵暗号の仕組みとメリットについて素人でも理解できる解説をしていただけませんか。

  • 公開かぎ暗号方式

    送信者側の暗号化は送信者の秘密かぎまたは公開かぎですか? また、受信者の複合は受信者の秘密かぎ? 正しくはどうなるのですか?

  • 秘密鍵 公開鍵

    AからBへ公開鍵暗号方式でメールを送信する場合、Aはどの鍵を使うか?という問題で、解答は「Bの公開鍵」が正解なのですが、これはどうしてそういう答えになるのか、理解が出来ていません。 ご教示、よろしくお願いいたします。 また、同じAからBへ秘密鍵暗号方式でメールを送信する場合はどうなるのかも、併せてご教示頂ける 幸いです。

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

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

  • 公開鍵方式とは

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

  • 公開鍵暗号方式のしくみ

    公開鍵暗号方式について、ある解説で、 暗号化鍵と暗号化アルゴリズムは公開するが、復号鍵は秘密にしなければならない。とあります。 送る側の暗号化においては、受信側の公開鍵を使うわけですが、暗号化鍵の内容と暗号化アルゴリズムが分かれば、復号の仕方は推測できたりしないのでしょうか。