Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
SHA256-CDP — Implementación de tabla rainbow SHA-256 acelerada por GPU basada en análisis estructural CDP (Proyección de suma de dígitos cíclica). AMD RX 9070 XT, OpenCL + Vulkan. | Kitploit
Herramientas/GitHubGitHub/jm00nj/sha256-cdp
Descifrado de ContraseñasAnálisis de HashCriptografía
GitHubjm00nj/sha256-cdp

SHA256-CDP

Implementación de tabla rainbow SHA-256 acelerada por GPU basada en análisis estructural CDP (Proyección de suma de dígitos cíclica). AMD RX 9070 XT, OpenCL + Vulkan.

Ver RepositorioSitio web
87hace 17h 14mAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

SHA256-CDP: Proyección de Suma de Dígitos Cíclica

Implementación de tablas arcoíris acelerada por GPU del marco de análisis estructural CDP para SHA-256.

Construido sobre los hallazgos del artículo CDP (DOI: 10.5281/zenodo.20627240), este repositorio proporciona una implementación completa y funcional de tablas de cadenas arcoíris basadas en CDP con kernels de compilación OpenCL y pipelines de consulta/verificación de cómputo Vulkan orientados a hardware AMD RDNA4.


¿Qué es CDP?

CDP (Proyección de Suma de Dígitos Cíclica) es un marco de análisis estructural para SHA-256 que revela propiedades matemáticas previamente no documentadas de la distribución de salida de la función hash.

La observación central: la suma de dígitos hexadecimales W(H) de cualquier salida SHA-256, cuando se re-hashea iterativamente mediante f(w) = W(SHA256(str(w))), converge deterministicamente en exactamente dos ciclos cerrados:

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

Esta estructura cíclica, combinada con una huella digital multicomponente F(H) = (W, Wvec₁₆, cycle_entry, W₂–W₅, max_nibble, min_nibble), proporciona un mapeo biyectivo sobre espacios de entrada restringidos — permitiendo la búsqueda de preimagen en O(1) mediante tablas arcoíris sin colisiones en la función de reducción.

Propiedades clave demostradas:

  • Teorema 5.1 — Invariante de suma de nibbles complementarios: Σnibble(W₀) = 38 para todos los 256 pares complementarios
  • Teorema 5.4 — Propiedad de Márkov ergódica: π_B = 17.00%, independiente de K[i], H₀ y la clase de entrada
  • W(H₀) = 502 — firma estructural detectable de las constantes de inicialización NIST (+22.2 por encima del equilibrio)
  • Biyección sin colisiones sobre 1.67M de entradas en todos los espacios de entrada probados

CDP no rompe SHA-256. La resistencia a preimagen y colisión no se ven afectadas. Ver Sección 12 del artículo.


Estructura del Repositorio

root@kitploit:~
SHA256-CDP/
├── cdp_chain_builder.py   # Punto de entrada principal — construcción, descifrado, consulta CLI
├── cdp_query.comp         # Shader de cómputo Vulkan GLSL (kernel de consulta)
├── cdp_verify.comp        # Shader de cómputo Vulkan GLSL (kernel de verificación)
├── vulkan_query.py        # Motor Vulkan Python (backend ACO)
└── paper/
    └── cdp_v3.pdf         # Artículo CDP v3

Requisitos

  • Python 3.10+
  • PyOpenCL: pip install pyopencl
  • NumPy: pip install numpy
  • Vulkan (recomendado): pip install vulkan + Vulkan SDK
  • GPU AMD con RDNA2+ (probado en RX 9070 XT / gfx1201)

Nota: Vulkan es necesario para un rendimiento correcto en consultas. Sin él, el sistema recurre a multiprocesamiento de CPU (significativamente más lento). El kernel de consulta OpenCL tiene un error conocido del optimizador AMD PAL-LLVM en gfx1201 que produce resultados incorrectos con -cl-fast-relaxed-math; el backend Vulkan ACO no tiene este problema.

Usuarios de Windows: Añada python.exe, clinfo.exe y explorer.exe a la lista blanca de Acceso a Carpetas Controladas de Windows Defender para evitar bloqueos de acceso a memoria de GPU durante las operaciones con tablas.


Instalación

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

Verificar detección de GPU:

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

Uso

Construir tablas arcoíris

root@kitploit:~
# Tabla única (minúsculas 8 caracteres, chain_len=300.000)
python cdp_chain_builder.py --build --charset lower --length 8 --chain-len 300000 --output cdp_8.bin

# Múltiples tablas (mayor cobertura)
# 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

Descifrar un hash

root@kitploit:~
# Hash único
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

# Lista de hashes (modo por lotes — las tablas se cargan una vez)
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

Prueba integral de principio a fin

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

Validar salida de GPU

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

Rendimiento

Probado en AMD Radeon RX 9070 XT (gfx1201, 32 CUs), Windows 11, controlador 3679.0 (PAL,LC):

OperaciónRendimiento
Construcción de tabla (kernel ILP2)~2.5 GH/s
Consulta — primer lote (superficial)~14 GH/s
Consulta — promedio entre lotes~5 GH/s
Verificación GPU (Vulkan ACO)~2s por 88k candidatos

7 caracteres minúsculas, 3 tablas (96.3% de cobertura):

  • Tamaño de tabla: 3 × 0.7 MB
  • Tiempo de construcción: ~3 × 12s
  • Tiempo de descifrado: ~43s por hash

Modos de kernel:

  • --mode ilp2 — 2 cadenas/hilo, SHA256 entrelazado para ILP (predeterminado, más rápido en AMD RDNA)
  • --mode vec4 — 4 cadenas/hilo usando aritmética uint4
  • --mode scalar — 1 cadena/hilo (línea base)

Notas Técnicas

¿Por qué Vulkan para consulta?

El backend del compilador AMD PAL-LLVM utilizado por OpenCL en Windows (gfx1201) tiene un error de optimización documentado: los bucles de inicio variable (for step=pos; step<N) producen resultados incorrectos con -cl-fast-relaxed-math. La solución temporal (-O0) restaura la corrección pero reduce el rendimiento ~3-4×. El backend Vulkan ACO es una tubería de compilación completamente separada y no tiene este problema. Los kernels de consulta y verificación utilizan Vulkan; los kernels de construcción usan OpenCL (no afectados por el error).

Reducción biyectiva CDP

La función de reducción estándar con semilla PCG utiliza 64 bits de entropía de digest[0:2]. La reducción inyectiva CDP construye la semilla a partir de la huella digital completa (W, Wvec₁₆, max_nibble, min_nibble) — los mismos componentes demostrados como inyectivos sobre SHA256(X) por el teorema de biyección CDP. Esto garantiza que no haya fusiones de cadena provenientes de la propia función de reducción; las fusiones restantes son colisiones de punto final debidas a la paradoja del cumpleaños (~33% por tabla, coincidiendo con la cobertura esperada del 66.7%).

Formato de tabla binaria

Las tablas utilizan un formato binario compacto (magia CDP1, 39 bytes/entrada) — aproximadamente 3.4× más pequeñas que JSON. Use --convert para convertir tablas JSON existentes:

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

Conjuntos de Caracteres

NombreCaracteresEspacio (8 caracteres)
lowera–z (26)2.1 × 10¹¹

Licencia

© 2026 Erenay Özkan (JM00NJ / Vesqer)

Este proyecto está licenciado bajo la GNU Affero General Public License v3.0 (AGPL-v3) con la Commons Clause.

Según la Commons Clause, no puede vender este software ni utilizarlo como parte de un producto o servicio comercial sin el permiso explícito por escrito del autor.

El uso de código abierto, la investigación y las aplicaciones no comerciales están permitidos bajo los términos AGPL-v3 — las modificaciones deben publicarse bajo la misma licencia.

Para consultas de licencias comerciales: netacoding.com

Vea LICENSE para los términos completos.


Referencias

  • Artículo 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.

Creado por JM00NJ — netacoding.com

Descargar herramienta
alnum
a–z, 0–9 (36)
2.8 × 10¹²
fulla–z, A–Z, 0–9, símbolos (70)5.8 × 10¹⁴