generated at
公開鍵暗号
公開鍵/秘密鍵のペアになったを用意することで、特定の相手に対して安全に情報を送り届けるための仕組み
情報を送る時は
送りたい相手に鍵のペアを作ってもらい、公開鍵の方を送ってもらう
どうやって送ってもらうかは一旦置いておく
このへんの信用を担保するための仕組みもあったりする
SSLの証明書がーとかよく聞くあれです
気になるのであれば「公開鍵基盤」でググってみるとよさそう
自分もよくわからない
公開鍵が漏洩すると何かデメリットでもあるのでしょうか?takker
公開鍵が知られたところで、復号できるわけでもない
不正に得た公開鍵で情報を暗号化したところでなんにもならない
サーバーから送られてきた公開鍵が、本当にそのサーバーのものであることが証明される必要があるyosider
もしサーバーになりすました攻撃者の公開鍵だったら、それで暗号化して送った情報が傍受された場合、攻撃者は自分の秘密鍵で復号化することができる
たしかにこれはまずいtakker
まとめtakker
公開鍵が漏洩しても大した問題ではない?
公開鍵の信用を担保するのは重要
その仕組みが公開鍵基盤
公開鍵は公開するものです 増井俊之
隠す意味なんてありません
偽造されないように注意するだけ
GitHubだと普通にコピペで送っていますねtakker
あれはHTTPS通信?というやつで一応保護されているのか?
そもそもGitHubにログインしてないと送れないですし、偽造した公開鍵なんて何の役にもたたないです 増井俊之
その公開鍵を利用して送りたい情報を暗号化する
この時点でこの公開鍵とペアになった秘密鍵以外では復号することができなくなる
後は相手に暗号化した情報を送る
ここでは前述した性質により信頼できない経路も利用できる
受け取った相手は秘密鍵を利用して暗号化された情報を復号する

ざっと書いてみたんですが合ってますかね?kuuote

公開鍵を相手に送る、というのは普通じゃないと思います 増井俊之
一般に、公開鍵はどーんと公開しておくもので、都度送付したりしないと思う

↑と自分のうろ覚えの知識と合わせて、現状の理解を図解してみましたtakker
間違っていたら指摘ください
自分の認識とは合ってますね(大本が間違っていたらどうしようもないが)kuuotesta



「暗号化」の逆は「復号化」ではなく「復号」が正しいそうですね 増井俊之
その界隈の決めごとのようです
なるほどkuuotetakker

openssl コマンドでも ssh-keygen でも、秘密鍵から公開鍵を生成できるらしい! 増井俊之
$ ssh-keygen -y -f ~/.ssh/id_rsa > id_rsa.pub
$ openssl rsa -in private-key.pem -pubout -out public-key.pem
公開鍵が秘密鍵データ内に書いてあるのだろう
というか、ペアを生成するための情報が秘密鍵データに書いてあるようだ
しかしこれはそういう運用になってるだけで、 一般に「秘密鍵から公開鍵が作れる」というのは間違いだと思うけど
「秘密鍵ファイル」から公開鍵を生成できることが多いと言うなら正しいか
https://ja.wikipedia.org/wiki/RSA暗号 に関しては、素数ペアを保存しておく必要があるよで、それを掛け合わせれば公開鍵が作れると思うnishio

昔書いた記事、たまに思い出したようにTwitterとかで言及されてるnishio