euniclus前回は公開鍵暗号について簡単にまとめました。今回はpythonで公開鍵暗号を実装してみたいと思います。公開鍵と秘密鍵を作り、暗号化と復号化のテストという流れになります。実際公開鍵と秘密鍵を作ることができればほぼ終わりですね。エントリーポイントとなる部分から。sys.argv[1]main(file)そしてこちらが素数や鍵を作るにあたって助けとなる便利な関数群です。mプログラムの流れとしては前回まとめた行程通りにほぼ動いていると思います。手間がかかるところとして素数を求める部分とモジュラ逆数を求める部分ですかね。素数はミラーラビン素数判定法というアルゴリズムで求めています。こちらは確率的素数判定法と呼ばれているらしく、絶対ではないが高確率で素数を見つけることができるものらしいです。公開鍵暗号についての記事なので数学的な背景にはあまり深入りしないようにしたいと思います。こんな感じで実行します。実際に作成した鍵で暗号化と復号化をしてみましょう。1234567890L)正しく復号化されていれば成功です。問題ないかと思います。今回は稚拙ながら公開鍵暗号をプログラムしました。