2015年10月20日火曜日

R(229)

火曜日は「暗号理論」。先週でRSA暗号の解説が終わってしまったので、今日からしばらく素数判定と素因数分解の話でもしようか、ということで昨晩色々準備。で S.C.コウチーニョ(林彬訳)「暗号の数学的基礎◎数論とRSA暗号入門」丸善(元々はシュプリンガーフェアラーク東京だったわけね)、を見てたら面白い例があった。R(n):=(10nー1)/9 は、nが合成数だったら合成数。じゃあ R(229) は素数か?と言う問題。229 は素数だから、さっきの結果は使えない。で200桁を越える数だから素因数分解をするのもうまくない。ということでフェルマーの小定理の対偶を使って、2R(229)-1 mod R(229) が1じゃなければ合成数、というのでやってみると一瞬でR(229)は合成数であることがわかる、というわけ。これくらいはUBASICで出来る。で講義を進めてうるうちに「そうだ、R(229)の因数分解をコンピューターにやらせてみよう。」と思い立ち、PARI/GPのfactor命令を使ってやってみる。と、何と途中で見たら分解されている。(後で研究室のコンピューターでやってみたら、ものの4分で分解されることがわかった。)結果は9161×43544351×9006996017757809392117×309245091230501839290246032319419817254710018988999484010015462259773448082908363381719172130645425224615612312393946983151847424897643586019077319815602109638853350013530483718142370478419550253 と中々えぐい。最後のでかいのは本当に素数なんだろうか?ということで SAGE のページにつないでやってみたら、やはり同じ結果。計算は数分で終わった。結果は同じ。ということでこのごついのは素数であるらしい。コンピューターの進歩、アルゴリズムの進化は恐ろしい。ということで楽しい講義だった。

その後保健センターへ行って処方箋をもらう積もりでいたんだが、今日は内科診療はありません、とのこと。がーん。じゃあ来週まで無いってことじゃん。来週は健康診断ウィークだから、多分処方箋は書いてもらえない。ということであと2週間。薬もつかな?