Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
SHA256-CDP — CDP(Cyclic Digit-sum Projection)構造解析に基づくGPUアクセラレーションSHA-256レインボーテーブル実装。AMD RX 9070 XT、OpenCL + Vulkan。 | Kitploit
ツール/GitHubGitHub/jm00nj/sha256-cdp
パスワードクラッキングハッシュ分析暗号化
GitHubjm00nj/sha256-cdp

SHA256-CDP

CDP(Cyclic Digit-sum Projection)構造解析に基づくGPUアクセラレーションSHA-256レインボーテーブル実装。AMD RX 9070 XT、OpenCL + Vulkan。

リポジトリを見るウェブサイト
81ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

SHA256-CDP: Cyclic Digit-sum Projection

GPU アクセラレーションによる SHA-256 の CDP 構造解析フレームワークのレインボーテーブル実装。

CDP 論文 (DOI: 10.5281/zenodo.20627240) の発見に基づき、このリポジトリは CDP ベースのレインボーチェーンテーブルの完全な実装を提供します。OpenCL ビルドカーネルと、AMD RDNA4 ハードウェアをターゲットとした Vulkan 計算クエリ/検証パイプラインを含みます。


CDP とは?

CDP (Cyclic Digit-sum Projection) は、SHA-256 の出力分布に関する、これまで文書化されていない数学的特性を明らかにする構造解析フレームワークです。

核心となる観察結果:SHA-256 出力の 16 進数の桁和 W(H) を、f(w) = W(SHA256(str(w))) によって反復的に再ハッシュすると、決定論的にちょうど 2 つの閉じたサイクル に収束します。

root@kitploit:~
C1: 476 ↔ 438          (2-サイクル)
C2: 471 → 472 → 525 → 537 → 414 → 417 → 546 → 518 → 471  (8-サイクル)

この周期的構造と、マルチコンポーネントのフィンガープリント F(H) = (W, Wvec₁₆, cycle_entry, W₂–W₅, max_nibble, min_nibble) を組み合わせることで、制約された入力空間上で 全単射マッピング が得られます。これにより、還元関数の衝突がゼロのレインボーテーブルを用いた O(1) の原像検索が可能になります。

証明された主要な特性:

  • 定理 5.1 — 補数ニブル和の不変性:すべての 256 の補数ペアに対して Σnibble(W₀) = 38
  • 定理 5.4 — エルゴード的マルコフ性:π_B = 17.00%、K[i]、H₀、入力クラスに依存しない
  • W(H₀) = 502 — NIST 初期化定数の検出可能な構造的シグネチャ(平衡値より +22.2 高い)
  • テストされたすべての入力空間で 1.67M の入力に対して衝突ゼロの全単射

CDP は SHA-256 を 破壊しません。原像耐性と衝突耐性は影響を受けません。論文のセクション 12 を参照してください。


リポジトリ構成

root@kitploit:~
SHA256-CDP/
├── cdp_chain_builder.py   # メインエントリポイント — ビルド、クラック、クエリ CLI
├── cdp_query.comp         # Vulkan GLSL 計算シェーダー(クエリカーネル)
├── cdp_verify.comp        # Vulkan GLSL 計算シェーダー(検証カーネル)
├── vulkan_query.py        # Vulkan Python エンジン(ACO バックエンド)
└── paper/
    └── cdp_v3.pdf         # CDP 論文 v3

要件

  • Python 3.10+
  • PyOpenCL: pip install pyopencl
  • NumPy: pip install numpy
  • Vulkan(推奨): pip install vulkan + Vulkan SDK
  • RDNA2+ の AMD GPU(RX 9070 XT / gfx1201 でテスト済み)

注記: 正しいクエリ性能を得るには Vulkan が必要です。これがないと、システムは CPU マルチプロセッシングにフォールバックします(大幅に低速)。OpenCL クエリカーネルには、gfx1201 上で -cl-fast-relaxed-math を使用すると誤った結果を生成する既知の AMD PAL-LLVM オプティマイザのバグがあります。Vulkan ACO バックエンドにはこの問題はありません。

Windows ユーザー向け: テーブル操作中に GPU メモリアクセスがブロックされるのを防ぐため、python.exe、clinfo.exe、explorer.exe を Windows Defender の制御フォルダーアクセスの許可リストに追加してください。


インストール

root@kitploit:~
git clone https://github.com/JM00NJ/SHA256-CDP
cd SHA256-CDP
pip install pyopencl numpy vulkan

GPU 検出の確認:

root@kitploit:~
python cdp_chain_builder.py --validate

使い方

レインボーテーブルのビルド

root@kitploit:~
# 単一テーブル(小文字 8 文字、chain_len=300,000)
python cdp_chain_builder.py --build --charset lower --length 8 --chain-len 300000 --output cdp_8.bin

# 複数テーブル(より高いカバレッジ)
# n=1: 66.7%  n=2: 88.9%  n=3: 96.3%  n=5: 99.3%
python cdp_chain_builder.py --build-multi 3 --prefix cdp_8_bin --length 8 --chain-len 300000

ハッシュのクラック

root@kitploit:~
# 単一ハッシュ
python cdp_chain_builder.py --crack <sha256_hash> \
  --tables cdp_8_bin_1.bin,cdp_8_bin_2.bin,cdp_8_bin_3.bin \
  --length 8 --chain-len 300000

# ハッシュリスト(バッチモード — テーブルは一度だけ読み込まれます)
python cdp_chain_builder.py --crack-list hashes.txt \
  --tables cdp_8_bin_1.bin,cdp_8_bin_2.bin,cdp_8_bin_3.bin \
  --length 8 --chain-len 300000

エンドツーエンドのセルフテスト

root@kitploit:~
python cdp_chain_builder.py --self-test --length 7

GPU 出力の検証

root@kitploit:~
python cdp_chain_builder.py --validate
python cdp_chain_builder.py --validate-query <sha256_hash>

パフォーマンス

AMD Radeon RX 9070 XT (gfx1201, 32 CUs)、Windows 11、ドライバ 3679.0 (PAL,LC) でテスト:

操作スループット
テーブルビルド (ILP2 カーネル)~2.5 GH/s
クエリ — 最初のバッチ(浅い)~14 GH/s
クエリ — バッチ全体の平均~5 GH/s
GPU 検証 (Vulkan ACO)88k 候補あたり ~2s

7 文字小文字、3 テーブル (96.3% カバレッジ):

  • テーブルサイズ: 3 × 0.7 MB
  • ビルド時間: ~3 × 12s
  • クラック時間: ハッシュあたり ~43s

カーネルモード:

  • --mode ilp2 — スレッドあたり 2 チェーン、ILP のためにインターリーブされた SHA256(デフォルト、AMD RDNA で最速)
  • --mode vec4 — uint4 算術を使用したスレッドあたり 4 チェーン
  • --mode scalar — スレッドあたり 1 チェーン(ベースライン)

技術ノート

なぜクエリに Vulkan なのか?

Windows (gfx1201) の OpenCL で使用される AMD PAL-LLVM コンパイラバックエンドには、文書化されたオプティマイザのバグがあります。可変開始ループ (for step=pos; step<N) は -cl-fast-relaxed-math を使用すると誤った結果を生成します。回避策 (-O0) は正しさを回復しますが、スループットが約 3~4 倍低下します。Vulkan ACO バックエンドは完全に別のコンパイラパイプラインであり、この問題はありません。クエリと検証カーネルは Vulkan を使用し、ビルドカーネルは OpenCL を使用します(このバグの影響を受けません)。

CDP 全単射還元

標準の PCG シード付き還元関数は digest[0:2] からの 64 ビットのエントロピーを使用します。CDP インジェクティブ還元は、完全なフィンガープリント (W, Wvec₁₆, max_nibble, min_nibble) からシードを構築します。これらは CDP 全単射定理によって SHA256(X) 上で単射であることが証明されている同じコンポーネントです。これにより、還元関数自体からのチェーンマージがゼロであることが保証されます。残りのマージはバースデーパラドックスによるエンドポイント衝突です(テーブルあたり約 33%、期待される 66.7% のカバレッジに一致)。

バイナリテーブル形式

テーブルはコンパクトなバイナリ形式を使用します(CDP1 マジック、エントリあたり 39 バイト)。JSON よりも約 3.4 倍小さくなります。既存の JSON テーブルを変換するには --convert を使用します:

root@kitploit:~
python cdp_chain_builder.py --convert table.json --output table.bin

文字セット

名前文字空間 (8 文字)
lowera–z (26)2.1 × 10¹¹
alnum

ライセンス

© 2026 Erenay Özkan (JM00NJ / Vesqer)

このプロジェクトは、Commons Clause 付きの GNU Affero General Public License v3.0 (AGPL-v3) の下でライセンスされています。

Commons Clause に基づき、著者からの明示的な書面による許可なしに、本ソフトウェアを販売したり、商業製品やサービスの一部として使用することはできません。

オープンソースでの使用、研究、非営利目的のアプリケーションは AGPL-v3 の条件の下で許可されています — 変更は同じライセンスで公開する必要があります。

商用ライセンスに関するお問い合わせ: netacoding.com

完全な条件については LICENSE を参照してください。


参考文献

  • ブログ記事: https://netacoding.com/posts/cdp-sha256-structural-analysis/
  • Erenay Özkan. CDP: Cyclic Digit-sum Projection — Structural Analysis of SHA-256 Output Distribution, Ergodic Basin Pressure, and Input Class Fingerprinting. v3, 2026. DOI: 10.5281/zenodo.20627240
  • P. Oechslin. Making a Faster Cryptanalytic Time-Memory Trade-Off. CRYPTO 2003.
  • M. Hellman. A Cryptanalytic Time-Memory Trade-Off. IEEE Trans. Inf. Theory, 1980.

Built by JM00NJ — netacoding.com

ツールをダウンロード
a–z, 0–9 (36)
2.8 × 10¹²
fulla–z, A–Z, 0–9, 記号 (70)5.8 × 10¹⁴