Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
SHA256-CDP — Implémentation de rainbow tables SHA-256 accélérée par GPU, basée sur l'analyse structurelle CDP (Cyclic Digit-sum Projection). AMD RX 9070 XT, OpenCL + Vulkan. | Kitploit
Outils/GitHubGitHub/jm00nj/sha256-cdp
Cassage de Mots de PasseAnalyse de HachageCryptographie
GitHubjm00nj/sha256-cdp

SHA256-CDP

Implémentation de rainbow tables SHA-256 accélérée par GPU, basée sur l'analyse structurelle CDP (Cyclic Digit-sum Projection). AMD RX 9070 XT, OpenCL + Vulkan.

Voir le dépôtSite web
8il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

SHA256-CDP : Projection cyclique de somme de chiffres

Implémentation de tables arc-en-ciel accélérée par GPU du cadre d'analyse structurelle CDP pour SHA-256.

Basé sur les résultats de l'article CDP (DOI : 10.5281/zenodo.20627240), ce dépôt fournit une implémentation complète et fonctionnelle de tables de chaînes arc-en-ciel basées sur le CDP, avec des noyaux de construction OpenCL et des pipelines de calcul Vulkan de requête et de vérification ciblant le matériel AMD RDNA4.


Qu'est-ce que le CDP ?

Le CDP (Cyclic Digit-sum Projection) est un cadre d'analyse structurelle pour SHA-256 qui révèle des propriétés mathématiques jusqu'alors non documentées de la distribution de sortie de la fonction de hachage.

L'observation clé : la somme des chiffres hexadécimaux W(H) de toute sortie SHA-256, lorsqu'elle est re-hachée itérativement via f(w) = W(SHA256(str(w))), converge de manière déterministe vers exactement deux cycles fermés :

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

Cette structure cyclique, combinée à une empreinte multi-composants F(H) = (W, Wvec₁₆, cycle_entry, W₂–W₅, max_nibble, min_nibble), donne une application bijective sur des espaces d'entrée contraints — permettant une recherche de préimage en O(1) via des tables arc-en-ciel avec zéro collision de fonction de réduction.

Propriétés clés démontrées :

  • Théorème 5.1 — Invariance de la somme des nibbles du complément : Σnibble(W₀) = 38 pour les 256 paires de compléments
  • Théorème 5.4 — Propriété de Markov ergodique : π_B = 17.00%, indépendante de K[i], H₀ et de la classe d'entrée
  • W(H₀) = 502 — signature structurelle détectable des constantes d'initialisation NIST (+22.2 au-dessus de l'équilibre)
  • Bijection sans collision sur 1.67M d'entrées dans tous les espaces d'entrée testés

Le CDP ne casse pas SHA-256. La résistance aux préimages et aux collisions n'est pas affectée. Voir la section 12 de l'article.


Structure du dépôt

root@kitploit:~
SHA256-CDP/
├── cdp_chain_builder.py   # Main entry point — build, crack, query CLI
├── cdp_query.comp         # Vulkan GLSL compute shader (query kernel)
├── cdp_verify.comp        # Vulkan GLSL compute shader (verify kernel)
├── vulkan_query.py        # Vulkan Python engine (ACO backend)
└── paper/
    └── cdp_v3.pdf         # CDP paper v3

Prérequis

  • Python 3.10+
  • PyOpenCL : pip install pyopencl
  • NumPy : pip install numpy
  • Vulkan (recommandé) : pip install vulkan + SDK Vulkan
  • GPU AMD avec RDNA2+ (testé sur RX 9070 XT / gfx1201)

Remarque : Vulkan est requis pour des performances de requête correctes. Sans lui, le système retombe sur le multiprocessing CPU (nettement plus lent). Le noyau de requête OpenCL présente un bug connu de l'optimiseur AMD PAL-LLVM sur gfx1201 qui produit des résultats incorrects avec -cl-fast-relaxed-math ; le backend Vulkan ACO n'a pas ce problème.

Utilisateurs Windows : ajoutez python.exe, clinfo.exe et explorer.exe à la liste blanche de l'accès contrôlé aux dossiers de Windows Defender pour empêcher les blocages d'accès à la mémoire GPU pendant les opérations sur les tables.


Installation

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

Vérifier la détection du GPU :

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

Utilisation

Construire des tables arc-en-ciel

root@kitploit:~
# Single table (lowercase 8-char, chain_len=300,000)
python cdp_chain_builder.py --build --charset lower --length 8 --chain-len 300000 --output cdp_8.bin

# Multiple tables (higher coverage)
# 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

Cracker un hash

root@kitploit:~
# Single hash
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

# Hash list (batch mode — tables loaded once)
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

Auto-test de bout en bout

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

Valider la sortie GPU

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

Performances

Testé sur AMD Radeon RX 9070 XT (gfx1201, 32 CU), Windows 11, pilote 3679.0 (PAL, LC) :

OpérationDébit
Construction de table (noyau ILP2)~2.5 GH/s
Requête — premier lot (peu profond)~14 GH/s
Requête — moyenne sur l'ensemble des lots~5 GH/s
Vérification GPU (Vulkan ACO)~2 s pour 88k candidats

Minuscules sur 7 caractères, 3 tables (couverture de 96.3 %) :

  • Taille des tables : 3 × 0.7 MB
  • Temps de construction : ~3 × 12 s
  • Temps de craquage : ~43 s par hash

Modes de noyau :

  • --mode ilp2 — 2 chaînes/thread, SHA256 entrelacé pour l'ILP (par défaut, le plus rapide sur AMD RDNA)
  • --mode vec4 — 4 chaînes/thread utilisant l'arithmétique uint4
  • --mode scalar — 1 chaîne/thread (référence)

Notes techniques

Pourquoi Vulkan pour la requête ?

Le backend compilateur AMD PAL-LLVM utilisé par OpenCL sur Windows (gfx1201) présente un bug d'optimiseur documenté : les boucles à départ variable (for step=pos; step<N) produisent des résultats incorrects avec -cl-fast-relaxed-math. La solution de contournement (-O0) rétablit des résultats corrects mais réduit le débit d'environ 3 à 4×. Le backend Vulkan ACO est un pipeline de compilation complètement séparé et n'a pas ce problème. Les noyaux de requête et de vérification utilisent Vulkan ; les noyaux de construction utilisent OpenCL (non affectés par le bug).

Réduction bijective CDP

La fonction de réduction standard à graine PCG utilise 64 bits d'entropie provenant de digest[0:2]. La réduction CDP-injective construit la graine à partir de l'empreinte complète (W, Wvec₁₆, max_nibble, min_nibble) — les mêmes composants dont l'injectivité sur SHA256(X) est démontrée par le théorème de bijection CDP. Cela garantit zéro fusion de chaînes provenant de la fonction de réduction elle-même ; les fusions restantes sont des collisions de points finaux dues au paradoxe des anniversaires (~33 % par table, ce qui correspond à la couverture attendue de 66.7 %).

Format binaire des tables

Les tables utilisent un format binaire compact (nombre magique CDP1, 39 octets/entrée) — environ 3.4× plus petit que le JSON. Utilisez --convert pour convertir des tables JSON existantes :

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

Jeux de caractères

NomCaractèresEspace (8 caractères)
lowera–z (26)2.1 × 10¹¹

Licence

© 2026 Erenay Özkan (JM00NJ / Vesqer)

Ce projet est sous licence GNU Affero General Public License v3.0 (AGPL-v3) avec la Commons Clause.

En vertu de la Commons Clause, vous ne pouvez pas vendre ce logiciel ni l'utiliser dans le cadre d'un produit ou d'un service commercial sans autorisation écrite explicite de l'auteur.

L'utilisation open source, la recherche et les applications non commerciales sont autorisées selon les termes de l'AGPL-v3 — les modifications doivent être publiées sous la même licence.

Pour toute demande de licence commerciale : netacoding.com

Voir LICENSE pour les conditions complètes.


Références

  • Article de blog : 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.

Créé par JM00NJ — netacoding.com

Télécharger l’outil
alnum
a–z, 0–9 (36)
2.8 × 10¹²
fulla–z, A–Z, 0–9, symboles (70)5.8 × 10¹⁴