2019年8月23日金曜日

学習環境

中学数学からはじめる暗号入門 ~現代の暗号はどのようにして作られたのか~ (知りたい!サイエンス 141) (関根 章道(著)、技術評論社)の後編(現代の暗号)、第6章(RSA暗号を作ってみよう(暗号化) - 合同式)のやってみよう③の解答を求めてみる。



    1. x = 2 + 3 n x 2 m o d 3

    2. x = 3 + 4 n x 3 m o d 4

コード

Python 3

#!/usr/bin/env python3
from unittest import TestCase, main
from sympy import symbols


class MyTest(TestCase):
    def setUp(self):
        pass

    def tearDown(self):
        pass

    def test(self):
        n = symbols('n', integer=True)
        ts = [(4, 5, 3),
              (5, 3, 4)]
        xs = [2, 3]
        for (a, b, c), x in zip(ts, xs):
            self.assertEqual((a * (x + c * n) - b) % c, 0)


if __name__ == '__main__':
    main()

入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))

$ ./sample3.py
.
----------------------------------------------------------------------
Ran 1 test in 0.017s

OK
$ 

0 コメント:

コメントを投稿