最近、RSA暗号の本を読んだので、OCaml で実装してみました。 あくまで「簡単に」なので、100までの素数同士の計算に限定しています。 実行すると、入力したデータがちゃんと復号化されていることがわかると思います。 それと、ランダムシードが固定されているので、各自で数値を変えて実行してみてください。 /-- ここから -- (* ユークリッド互除法 *) let rec gdc x y = if (y == 0) then x else let z = x mod y; in gdc y z;; (* 拡張ユークリッド互除法 ax - by = c の a だけ求める *) let ex_gdc x y = let rec loop a0 a1 x y = if (y == 0) then a0 else