CryptoHack
暗号 (crypto) 分野に特化した CTF 風の学習プラットフォーム (cryptohack.org)。問題が分野別 (共通鍵 / RSA / 楕円曲線 / 格子 / 同種写像 / ハッシュ / Web / ゼロ知識証明など) に整理されており、手を動かしながら現代暗号と典型攻撃を学べる。
取り組み
同期と隔週土曜に問題を解く形で継続的に進めている。Python / SageMath を使った具体計算が中心で、解法メモが incremental_report にまとまっている。
扱う主なトピック (本リポジトリの解説ページ)
- 共通鍵暗号: symmetric-cipher-attacks(AES / ECB / CBC, padding oracle, 辞書鍵)
- 公開鍵: rsa-ctf-attacks(FactorDB, Håstad’s broadcast, low-exponent root)
- 楕円曲線: ecdh-key-exchange
- 格子: lattice-crypto(SVP/CVP, LLL, LWE)
- 同種写像: isogeny-based-cryptography
- ハッシュ: cryptographic-hash-functions
- ゼロ知識証明: zk-proofs、kzg-commitment
計算環境
- FactorDB (factordb.com): 巨大整数の素因数分解を引ける外部サービス。RSA 系で最初に試す。
- SageMath: 楕円曲線・有限体・格子演算を備えた数式処理系。
EllipticCurve,is_supersingular,montgomery_modelなどを多用。
関連
- atcoder(競技プログラミングの同種の演習文化)
- crypto クラスタ: _moc-crypto