学習環境
- Surface、Surface ペン(端末)
- Windows 10 Pro (OS)
- Nebo(Windows アプリ)
- iPad Pro 10.5 + Apple Pencil
- MyScript Nebo - MyScript(iPad アプリ(iOS))
- 参考書籍
中学数学からはじめる暗号入門 ~現代の暗号はどのようにして作られたのか~ (知りたい!サイエンス 141) (関根 章道(著)、技術評論社)の後編(現代の暗号)、第6章(RSA暗号を作ってみよう(暗号化) - 合同式)のやってみよう⑤の解答を求めてみる。
12x=31q+131=12·2+712=7·1+57=5·1+25=2·2+15-2·2=15-(7-5)·2=15·3-7·2=1(12-7)·3-7·2=112·3-7·5=112·3-(31-12·2)·5=112·13-31·5=112·13≡1(mod31)x≡13+31n≡13(mod31)よって求める逆元は13。
コード
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) x = 13 + 31 * n self.assertEqual((12 * x - 1) % 31, 0) if __name__ == '__main__': main()
入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))
$ ./sample5.py . ---------------------------------------------------------------------- Ran 1 test in 0.011s OK $
0 コメント:
コメントを投稿