第12.5回の目標:プログラミングを通して暗号化について理解を深める。
暗号化の技術には共通鍵暗号方式と公開鍵暗号方式がある。
暗号化と復号に同じ鍵を使う方式の暗号を共通鍵暗号という。事前に鍵を安全な方法で相手に渡さなければならないという問題や、やり取りをする相手の人数分の鍵を用意しなければならないという問題がある。
対となる2つの鍵を使い、それぞれでデータの暗号化と復号を行う方式の暗号を公開鍵暗号という。データの暗号化を行う鍵は広く公開してよい。こちらを公開鍵という。データの復号を行う鍵は本人だけが持ち、秘密にしなければいけない。こちらを秘密鍵という。
RSA暗号は公開鍵暗号の一種である。Ronald Linn Rivestさん、Adi Shamirさん、Leonard Max Adlemanさんらによって作られたため、このように呼ばれている。
今回はRSA暗号でのやり取りを体験してみよう。
素数p
素数q
公開鍵 e
(受信者の)秘密の情報を隠す
公開鍵 n 公開鍵 e
元の文
(送信者の)秘密の情報を隠す
元の文を数値化
暗号化した文
公開鍵 n
秘密鍵
暗号化した文
復号した文
復号文をひらがなに