9c0290bd9fe93f69d8a0119ee2840591b953a1aa
ctf/IERAE CTF 2024 writeup.md
| ... | ... | @@ -224,8 +224,17 @@ if __name__ == "__main__": |
| 224 | 224 | </details> |
| 225 | 225 | |
| 226 | 226 | ## Weak PRNG |
| 227 | + |
|
| 227 | 228 | [Mersenne Twister (MT19937) で未来と過去の乱数列を予測してみる【Python】](https://zenn.dev/hk_ilohas/articles/mersenne-twister-previous-state)のプログラムを拝借したところそのまま動作した。 |
| 228 | 229 | |
| 230 | +Pythonの`random`モジュールは疑似乱数生成であり、メルセンヌツイスタでは生成された乱数を数百通り程度与えるだけで元の乱数生成器を複製できる。 |
|
| 231 | + |
|
| 232 | +確かに[randomモジュールのドキュメント](https://docs.python.org/ja/3/library/random.html)にも |
|
| 233 | +> 警告 |
|
| 234 | +> このモジュールの擬似乱数生成器をセキュリティ目的に使用してはいけません。セキュリティや暗号学的な用途については secrets モジュールを参照してください。 |
|
| 235 | + |
|
| 236 | +と書いてある。 |
|
| 237 | + |
|
| 229 | 238 | #### `io_lib.py` |
| 230 | 239 | |
| 231 | 240 | <details> |