Processing math: 100%

2019年8月29日木曜日

学習環境

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



    1. -113-1=1226-1=2539-1=3852-1=5165-1=6478-1=77x6(mod11)13x781(mod11)

      ここから

      -164-1=63128-1=127192-1=191256-1=255x4(mod17)64x2561(mod17)

コード

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 = [(13, 11), (64, 1)]
        nums = [6, 4]
        for (a, m), num in zip(ts, nums):
            x = num + m * n
            self.assertEqual((a * x - 1) % m, 0)


if __name__ == '__main__':
    main()

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

$ ./sample4.py
.
----------------------------------------------------------------------
Ran 1 test in 0.011s

OK
$ 

0 コメント:

コメントを投稿