hacking-gbb9137387_1920

簡単なのに抜群の安全性!RSA暗号の仕組みと作り方をわかりやすく解説!

hacking-gbb9137387_1920

インターネットで何かの情報を送る場合、悪意をもった人にデータを抜きとられてしまうかもしれませんよね。

でもデータを抜きとられても大丈夫なんです。

なぜならRSA暗号を使ってデータを抜き取っても意味がわからないようにされているからです。

この記事では、インターネットを使っている方全員が恩恵を受けているRSA暗号についてわかりやすく解説します。

こんな人にオススメ
  • 数学が日常のどこで役に立っているのか知りたい。
  • インターネットで情報を送付する際に安全性を確保する方法が知りたい。
  • 自分でも安全な暗号を使ってみたい。
スポンサーリンク

RSA暗号とは?

インターネットで誰かに情報を送る場合、いろんなところを経由します。

つまり途中で誰かに抜き取られるリスクがあるということです。

クレジットカードの暗証番号などが漏れると嫌ですね。
そこで活躍しているのがRSA暗号というものです。
インターネットでデータを送付する際の手順は以下のようになります。
  1. データを数字に変換します。
  2. 数字を暗号化します。
  3. 暗号化したデータを送付します。
  4. データを受け取った側は暗号化されたデータを数字に戻します。
  5. 数字から元のデータに戻します。

つまり途中でデータを抜き取っても、暗号化されているので中身の意味がわからないということです。

文字も数字に変換して送付されています。

RSA暗号の手順

RSA暗号の手順は以下のようになります。
RSA暗号の手順
aという数字を暗号化して送る場合。
  1. データを送る相手に秘密の数字mを教えておく。
  2. anの計算し結果をAとする。
  3. Axという数字を相手に送る。
  4. 受け取ったほうはAmxのあまりaを求める。
  5. なんとa=aである。

ただし
mn=(p1)(q1)v+1
x=pq
p,qは素数
vは任意の整数
ax
であること。

手順だけ見ても内容を理解するのは難しいと思うので、具体例を示します。

暗号化の具体例

実際に4という数字を暗号化して送ってみましょう。

まずは送る側の準備です。

p=3
q=5
v=4
とします。x=pq=3×5=15(p1)(q1)v+1=(31)(51)4+1=33
33=3×11
なのでn=3
m=11
とします。では送りたい数字a=4を暗号化します。A=an=43=64
これで準備完了です。
相手には秘密の数字としてm=11を教えておきます。
そしてA=64x=15という数字だけ送って暗号化前の数字a=4を得られるのでしょうか?
では受け取り側の計算をしてみましょう。
Adx=641115
電卓で計算すると見事4という答えになりました。
暗号送信成功ですね。
今回は小さな数字でやってみたので、あまり暗号であるようには思えないかもしれません。
しかしp,qを大きな数字にすれば立派な暗号になり、現代のコンピュータでも解析不可能になります。
スポンサーリンク

RSA暗号の安全性

もっと数学を楽しみたい方へ!
こちらの記事がオススメです!

\夢中になれる本だけを紹介/
記事を読む

スポンサーリンク
hacking-gbb9137387_1920
naze数gakuの最新情報はTwitterで配信中!
>なぜ数学を学ぶのか?

なぜ数学を学ぶのか?

数学はとても面白いし役に立ちます。
それを少しでも多く伝えれば思っています。
このサイトでは筆者が「本当に面白い」と感じた内容だけを記載しています。