数学って日常の何の役に立っているんだろう?
今回はその疑問に答えたいと思います。
実は暗号として皆さんの身の回りで活躍しています。
こんな人にオススメ
- 数学が日常のどこで役に立っているのか知りたい
- 数学をどうやって暗号にするのか知りたい
スポンサーリンク
クレジットカードの秘密
まずは簡単なところから。
クレジットカードの16桁の番号には本物と偽物を見分ける秘密が隠されています。
お手元にクレジットカードをご準備ください
- 偶数桁の数字を2倍にします
- ①の結果、10以上になったものは1桁目と2桁目の値を足します
- 得られた16桁の番号のすべての桁の数を足します
- 答えが10の倍数であえば本物
例
カード番号が「6922 1843 5033 1903」の場合

得られた数字が「3942 2883 1063 2903」なので、すべての桁を足します
3+9+4+2+2+8+8+3+1+0+6+3+2+9+0+3=63
答えが63で10の倍数ではないのでこのカードは偽物です。
この秘密のルールがあるので、カード番号を入力するときに一桁だけ数字を打ち間違えて、他人のカードを使ってしまうということはありません。
本物が10の倍数になることは皆さま自身で確かめてください。
不正利用を防ぐために本物の番号の掲載は控えておきます。
RSA暗号
インターネットで誰かに情報を送る場合、いろんなところを経由します。
つまり途中で誰かに抜き取られるリスクがあるということです。
クレジットカードの暗証番号などが漏れると嫌ですね。
そこで活躍しているのがRSA暗号というものです。
RSA暗号の手順は以下のようになります。
RSA暗号の手順
\(a\)という数字を暗号化して送る場合。
- データを送る相手に秘密の数字\(m\)を教えておく。
- \(a^n\)の計算し結果を\(A\)とする。
- \(A\)と\(x\)という数字を相手に送る。
- 受け取ったほうは\(\displaystyle \frac{A^m}{x}\)のあまり\(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\)
とします。
\(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=a^n=4^3=64\)
これで準備完了です。
相手には秘密の数字として\(m=11\)を教えておきます。
そして\(A=64\)と\(x=15\)という数字だけ送って暗号化前の数字\(a=4\)を得られるのでしょうか?
では受け取り側の計算をしてみましょう。
\(\displaystyle \frac{A^d}{x}=\frac{64^{11}}{15}\)
電卓で計算すると見事4という答えになりました。

暗号送信成功ですね。
今回は小さな数字でやってみたので、あまり暗号であるようには思えないかもしれません。
しかし\(p,q\)を大きな数字にすれば立派な暗号になり、現代のコンピュータでも解析不可能になります。