Mae向きなブログ

Mae向きな情報発信を続けていきたいと思います。

鍵交換システム

前回は、数字を用いての暗号化、復号化に関する練習問題でしたが、今回は文字列(メッセージ)の暗号化、復号化の練習問題でした。現実社会で使われている暗号技術に、少しかもしれませんが近づけているような気がして嬉しいですね。

練習問題8.3

問3

公開鍵暗号

{e} {n}
サラ 997 7649659803155869454870134280817974298450529391711731
カイル 1009 126284756413553050978360366248406608817836065776277

と、サラの秘密鍵の指数

{d}
サラ 5723817666152736823804533643038086174227240327463629

を用いてメッセージ

Ron Rivest is a professor at MIT.

を暗号化しサラからカイルに送りなさい。

問4

カイルは暗号化されたメッセージ

580735046350033514934592803992352023532099155378947
5291232071949948925471032807295136508630705523321750

をサラから受信しました。前問の公開鍵、およびカイルの秘密鍵の指数

{d}
カイル 54694190835205830800340406109777002114336086773869

を用いてメッセージを復号しなさい。

解答

$ ruby rsa2.rb
練習問題 8.3 (3):サラからカイルに送信された暗号メッセージ
6642642701546739554009203231203625130908152661584571
7217888454116968717141940842178059234801922049892061
練習問題 8.3 (4):サラからカイルに送信されたメッセージ
Adi Shamir is an Israeli mathematician.

上記の実行結果と本のp383「付録B 練習問題(奇数番)の解答」では、練習問題 8.3 (3)の2つ目の数字が違っていますが、こちらの実行結果が正しいと思います。

間違いは、p383「付録B 練習問題(奇数番)の解答」の6行目に

{y = 102 + 115c + 115c^{2} \cdots }

とありますが、

{y = 101 + 115c + 115c^{2} \cdots }

だと思われます。