秘密鍵と公開鍵、RSA暗号の仕組み
暗号 公開鍵と秘密鍵とは 普段スマホアプリをGooglePlayに公開するときにデジタル証明書を使いますが、このあたりの勉強をしている時に暗号の分野で 公開鍵 と 秘密鍵 の話が出てきました。 過去に大学の代数学で勉強したことを思いだし、これらの暗号を勉強しなおしながらコードを書いてみようと思いました。 では早速ですが、 公開鍵 と 秘密鍵 とは何でしょうか。 そもそも暗号化する目的は、相手とのやり取りを第三者に知られないように違う文字(暗号)などに置き換えて送付、受け取った側はそれを複合し正しい文章を読むためです。この2人には互いに暗号複合するための鍵を持っており、この鍵を知らない第三者は読むことができなくなります。 この鍵の仕組みには今回紹介する 公開鍵 と 秘密鍵 以外にも 共通鍵 というものも存在していますが、共通鍵はセキュリティの問題から公開鍵と秘密鍵を使うことの方が多いようです。 そこで、本題の公開鍵と秘密鍵ですが、今回は文章を受診するA社と文章を送付するB社について公開鍵と秘密鍵を説明していきます。 公開鍵はその名前の通り、公開している鍵でA社B社以外の第三者に見られても問題ない鍵のことで、逆に秘密鍵は一切公開しない鍵で、暗号されたものを複合するときに使います。 これだけ聞くと「鍵を第三者に知られたらセキュリティ的に問題では?」と思うかもしれませんが、B社の公開鍵で暗号化されたものはA社の持つ秘密鍵でしか複合できません。そのため公開鍵を使って暗号化した文章をA社以外が確認することはできません。 間違えて違う会社に送付しても大丈夫!!(だからって誤送信は絶対ダメ) RSA暗号を使ったやり取り 先ほど説明した公開鍵と秘密鍵に使われているアルゴリズムは RSA暗号 というものです。 RSA暗号とは 素因数分解の難しさを利用した暗号アルゴリズム のことです。素数も素因数も中学生の時に習うものですが、この素数は規則性などが分かっ