昔書いたレポート発掘。「Python で実験しながら学ぶ「暗号の仕組み」」

こんなの書いてました。Pythonで桁数無制限整数(long)を使える、ということを知ってやったのだと思います。RStudioからpython呼んで作り直してみようかと。

なお、解析的感受性と整数論的感受性のお話を最後に書いてました(以下に再録)。(ワタシの数学的感性は解析学的感受性で、つまりアナログ人間だと思ってます(^^)。)

レポート本体はこちら。python-crypto20041204-0.9

D おまけ:解析的感性 vs 整数論的感性

学生時代は、理工学部に在籍していたので、数学は一応やっている。だから、暗号の計算も数式 を追っていけるだろうと思ったのだが、かなり険しい現実を思い知らさせた。本レポートで書いた modulo の計算をなかなか感覚としてつかむことができなかったのだ。0 から 25 までは一つづつ 値増えていく。それはいいのだが、それが、次の瞬間 (!)0 に戻る。これについていけなかった。 微分方程式の世界では、このような急激な変化はない。自然界は、なだらかな連続量の世界として 記述され、その運動の秘密が、微分方程式に表現されていた。その意味で、私は、高校時代から、 微分・積分で表現される自然法則が好きだった。また、その応用である、演算子法による自動制御 の世界も好きだった。つまり、アナログの世界の感受性を育ててきたということのようである。

暗号論の世界は違った。隣に突然、予期せぬ (ではないのだろうが) 値が現れる。連続量ではな く離散値の世界。これが、数式で表現されることに慣れるには、かなり時間がかかった、というの が正直なところである。デジタルとはこういうことをいうのだと思い知らされた。時計に文字盤が あるのが「アナログ」で、数字で表示されていると、それが「デジタル」などという通俗的な解説 がいかにインチキかがわかった。時の流れは、アナログなのだ。それを文字盤と針で表していよう と、数字で表していようと、表現されている時間は連続量である。デジタルな時計をつくったら、 23 秒の次に、56 秒が表示されるようなものになるのだろう。

そんな風に考えるようになり、暗号のことを考えるのであれば、この整数論的、離散値的感受性 をやしなわなくてはないと思うようになった。そして、その方法を探していたのだが、やはり、実 際に計算をしてみることだろうと考えた。思いたったのが二年前。今の職場に転職した夏休みに ここに書いたような「暗号電卓」のようなものを作ろうとしたのだが挫折。それから二年たって、 やっと、素数の世界で遊ぶ環境を手に入れることができた。

やはり、実際に計算してみて、式が持っている意味を確かめられることの意味は大きい。教科 書、解説書、は、限られた例しか載せてないが、「暗号電卓」を使えば、実にいろいろな例を試す ことができる。解析的感受性が整数論的感受性に転換したのか、はたまた、両方の感受性を保持す ることになったのかは、よくわからないが、素数を扱い、暗号の仕組みをあれこれ計算することが 面白くなる。わかってしまえば「なんだ、そんなことか」という面もある。しかし、それは、自分 の理解をプログラムという表現で確かめられたという実感に支えられているのだろう。こうした実 感を学生諸君にも味わってもらいたい。それも、理系の学生はもちろん、自分は文系で、数学に縁 がありませんでした、というような学生達にだ。この暗号電卓をそんな実習用のものへと成長させ ていこうと思う。

コンピュータ以前の自動制御は、機械や油圧の平衡系を基礎にしたものであったが、コンピュー タは、言語の原理をもとにした自動制御を可能にしたと言う(石沢篤郎『コンピュータと社会科学』大 月書店,1987)。まさに、不連続の世界。コンピュータが偏在化する社会とは、この不連続の世界をあや つることを求めている。そうしたものを内包した社会を運営していくには、こうした、整数論的な 感性も必要になるように思う。もちろん、そういった不連続量の代表は、言語なので、まったくあ たらしい世界というわけではないはずなので、実験しながら理解を確かめていけば、こいつの正体 も落ち着いて見極めることができるのではないだろうか。秩序をもった不連続の世界で遊ぶ面白さ を共有しながら、文系だ理系だという垣根もとりはらっていきたい。<ふ>

カテゴリー: Python, Tools タグ: パーマリンク