Crypton
Cryptonは、攻撃的および防御的な暗号技術を学び、実践するための教育用ライブラリです。基本的に、対称暗号と非対称暗号、デジタル署名、メッセージ認証コード、認証付き暗号システムにおける既存の脆弱性と攻撃の説明と実装のコレクションです。各攻撃には、"Capture The Flag"コンテストからのサンプル問題とその解説も付属しています。この分野に既に精通している(またはCTFに参加している)個人は、Cryptonを特定の既存の脆弱性に基づく問題を解決するためのツールとして使用できます。
ライブラリは、攻撃の説明とCTFの課題で継続的に更新されます! 提案があれば、メールでご連絡ください。
このライブラリの開発のタイムラインに関するブログ記事を書きました:https://masterpessimistaa.wordpress.com/2018/08/12/announcing-crypton-an-educational-library-to-learn-offensive-and-defensive-cryptography/
警告: 著者は、コードが安全であることを一切保証しません。このライブラリは教育目的専用であり、コードを実際の世界で実装するために使用すべきではありません。ライブラリ内のすべてのサンプルスクリプトは簡単な実装です。
このREADMEには異なるセクションがあります:
- 動機- このライブラリを作成する動機
- ライブラリ構造- Cryptonのディレクトリ構造
- カバレッジ範囲- このライブラリでカバーされている暗号システムと攻撃
- 将来の計画/TODO- 近々含まれる予定の攻撃/概念
動機
CTFプレイヤーや暗号技術の分野に興味を持つ個人が、暗号攻撃を学ぶためのプラットフォームを提供し、経験豊富なCTFプレイヤーが暗号のさまざまなサブドメインに関連する攻撃に体系的に分けられた課題を練習できるようにすること。また、プロトコルの適切な実装がどれほど重要であるかを、さまざまな攻撃の説明を通じて示すこと。
ライブラリ構造

カバレッジ範囲
1. ブロック暗号
2. RSA暗号
3. メッセージ認証コード (MAC)
4. 離散対数問題| 番号 | トピック | 説明 | 実装/エクスプロイト | チャレンジ# |
|-------|:---------------------------:|:-----------------------------------------------------------------------------------------------:|:------------:|:----------:|
| 1 | DLP - 巡回群、離散対数問題 |
|
|
|
| 2 |
PollardのRhoアルゴリズム(DLP解法) |
|
|
|
| 3 |
Baby Step Giant Stepアルゴリズム(DLP解法) |
|
|
|
| 4 |
Pohlig-Hellmanアルゴリズム(DLP解法) |
|
|
|
| 5 |
楕円曲線DLP - 単位元の定義、点の逆元、楕円曲線上の点による巡回群、Hasseの定理、ECDLP |
|
|
|
| 6 |
Baby Step Giant Stepアルゴリズム(楕円曲線DLP解法) |
|
|
|
| 7 |
PollardのRhoアルゴリズム(楕円曲線DLP解法) |
|
|
|
5. ElGamal暗号
6. 認証暗号(AE)
7. 楕円曲線
8. デジタル署名
9. 識別
10. Diffie-Hellman鍵交換
今後の予定
- RSA暗号
- PKCS1-v1.5パディング付きRSA暗号化
RSA暗号システムに対する選択暗号文攻撃 - LSB復号オラクル [完了]
- PKCS1パディング付きRSA暗号システムに対するパディングオラクル攻撃
- フェルマー因数分解
- Coppersmith攻撃
- Hastadのブロードキャスト攻撃
- 擬似乱数生成器
- 線形合同法
- メルセンヌ・ツイスタPRNG
- 線形帰還シフトレジスタ
- デジタル署名
Diffie-Hellman鍵交換[完了]
- 追加予定
著者
Ashutosh Ahelleya