RSA暗号とは?
RSA暗号とは、
RSA暗号とは、桁数が大きい合成数の素因数分解問題が困難であることを安全性の根拠とした公開鍵暗号の一つである。 暗号とデジタル署名を実現できる方式として最初に公開されたものである。
wikipedia
というものです。
真面目に作りたい人はこちらを参照ください。
https://www.ms.u-tokyo.ac.jp/tambara/docs/l4h20170722-2takagi.pdf簡単な作り方
まず、上のページにたくさん書いてある『mod』とは、簡単に言えば割り算の余りのことです。
例えば、「10 ≡ 1 (mod 3)」とは、10を3で割った時の余りは1だということです。
上のことを踏まえて、作ってみます!
0 暗号文を決める
まず暗号文を考えます。このページでは「こんにちは」を暗号文にします。
1 暗号文をローマ字にする
0で考えた暗号文をローマ字に直します。
「こんにちは」は「k o n n i t i w a」となります。(→ローマ字表)
2 暗号文を数字にする
この表などを使ってアルファベットを数字に直します。
「26-7-5-5-22-17-22-23-4」というようになります。
3 暗号化するときの鍵を作る
- このなかから素数を二つ決めます(△、□)。 △=5、□=7にしておきます。
- 二つの素数をかけます(△×□)。 △×□=5×7=35です。
- それぞれの素数から一を引いてかけます(△−1)× (□-1) (△−1)× (□-1)=(5-1)×(7-1)=4×6=24です。
- 3でできた数を割り切らない素数を決めます(◯)。 ◯=5としておきます。(2や3は、24を割り切ることができるので、ダメです。)
- 3の数を4の数で割ったときの余りを出します(△−1)× (□-1)÷◯。 (△−1)× (□-1)÷◯= 24÷5=4 あまり4……★
- 5の余りを集めて4の数-1の数を出します(★×なにか=◯-1)。 4×なにか=5−1 → なにか=1
- (3の数×なにか+1)÷◯をした時の商を出します。 (24×1+1)÷5=5あまり1
(小さくてすみません💦)
ということで、鍵ができました。
4 暗号文を暗号にする
ということで、さっきの暗号文を暗号にしていきます。
やり方 : 暗号の数を◯回かけて、”2″番の鍵の数で割った時の余りを求めます! (電卓がオススメです)
暗号を作るのには時間がかかるので、こんにちはの「こ (26)」だけを暗号にします。
例) 26×26×26×26×26÷35 = 11881376÷35 = 33359467 あまり 31
よって、こんにちはの『こ』は『31』になります。
5 暗号文を元に戻す
やり方 : 暗号文の数を”7″番の鍵の回数かけた数÷“2”番の鍵の数で割った時の余りを求めます!
例) 31×31×31×31×31÷35 = 817975 あまり 26
よって26です。
今日も読んでくれて本当に「53-41-22-46-53-73-35-61( n = 77 , e = 13 )」ございました。