インターネットで何かの情報を送る場合、悪意をもった人にデータを抜きとられてしまうかもしれませんよね。
でもデータを抜きとられても大丈夫なんです。
なぜならRSA暗号を使ってデータを抜き取っても意味がわからないようにされているからです。
この記事では、インターネットを使っている方全員が恩恵を受けているRSA暗号についてわかりやすく解説します。
こんな人にオススメ
- 数学が日常のどこで役に立っているのか知りたい。
- インターネットで情報を送付する際に安全性を確保する方法が知りたい。
- 自分でも安全な暗号を使ってみたい。
スポンサーリンク
RSA暗号とは?
インターネットで誰かに情報を送る場合、いろんなところを経由します。
つまり途中で誰かに抜き取られるリスクがあるということです。
クレジットカードの暗証番号などが漏れると嫌ですね。
そこで活躍しているのがRSA暗号というものです。
インターネットでデータを送付する際の手順は以下のようになります。
- データを数字に変換します。
- 数字を暗号化します。
- 暗号化したデータを送付します。
- データを受け取った側は暗号化されたデータを数字に戻します。
- 数字から元のデータに戻します。
つまり途中でデータを抜き取っても、暗号化されているので中身の意味がわからないということです。
文字も数字に変換して送付されています。
RSA暗号の手順
RSA暗号の手順は以下のようになります。
RSA暗号の手順
aという数字を暗号化して送る場合。
- データを送る相手に秘密の数字mを教えておく。
- anの計算し結果をAとする。
- Aとxという数字を相手に送る。
- 受け取ったほうはAmxのあまりa′を求める。
- なんとa′=aである。
ただし
mn=(p−1)(q−1)v+1
x=pq
p,qは素数
vは任意の整数
a<x
であること。
手順だけ見ても内容を理解するのは難しいと思うので、具体例を示します。
暗号化の具体例
実際に4という数字を暗号化して送ってみましょう。
まずは送る側の準備です。
p=3
q=5
v=4
とします。x=pq=3×5=15(p−1)(q−1)v+1=(3−1)(5−1)4+1=33
33=3×11
なのでn=3
m=11
とします。では送りたい数字a=4を暗号化します。A=an=43=64
q=5
v=4
とします。x=pq=3×5=15(p−1)(q−1)v+1=(3−1)(5−1)4+1=33
33=3×11
なのでn=3
m=11
とします。では送りたい数字a=4を暗号化します。A=an=43=64
これで準備完了です。
相手には秘密の数字としてm=11を教えておきます。
そしてA=64とx=15という数字だけ送って暗号化前の数字a=4を得られるのでしょうか?
では受け取り側の計算をしてみましょう。
Adx=641115
電卓で計算すると見事4という答えになりました。
暗号送信成功ですね。
今回は小さな数字でやってみたので、あまり暗号であるようには思えないかもしれません。
しかしp,qを大きな数字にすれば立派な暗号になり、現代のコンピュータでも解析不可能になります。
スポンサーリンク