O que ataques-cripto-reticulares faz?
Manual de ataques criptográficos baseados em reticulados (lattice). Use para atacar RSA via raízes pequenas de Coppersmith, recuperar nonces de DSA/ECDSA a partir de viés, resolver problemas de mochila (knapsack) ou aplicar redução LLL/BKZ a construções criptográficas.
Visão Geral
Esta skill implementa técnicas modernas de criptoanálise que exploram a estrutura de reticulados. Os principais algoritmos incluem:
- Redução LLL (Lenstra–Lenstra–Lovász): Reduz bases de reticulados para encontrar vetores curtos.
- Redução BKZ (Block Korkine–Zolotarev): Uma generalização do LLL com qualidade de aproximação ajustável.
- Ataque de Coppersmith: Encontra raízes pequenas de polinômios módulo um inteiro.
- Ataque a nonces tendenciosos: Usa reticulados para recuperar chaves privadas a partir de nonces parciais conhecidos.
- Problema da mochila (Knapsack): Soluciona variantes do problema da mochila usando redução de reticulados.
Plataformas Suportadas
Esta skill pode ser utilizada nos seguintes ambientes de agente de IA:
- Claude Code
- Cursor
- Codex (OpenAI)
- Outros agentes compatíveis com a especificação SKILL.md
Exemplos de Uso
Ataque a RSA com Coppersmith
# Exemplo usando SageMath
from sage.all import *
# Configurar parâmetros RSA
n = 12345678901234567890 # módulo RSA
e = 3 # expoente público pequeno
c = 98765432109876543210 # texto cifrado
# Supor que m é pequeno (m < n^(1/e))
# Implementação do ataque de Coppersmith
P.<x> = PolynomialRing(Zmod(n))
f = x^e - c
roots = f.small_roots(X=2^256, beta=0.5)
if roots:
print(f"Raíz encontrada: {roots[0]}")
m = roots[0]
print(f"Mensagem recuperada: {m}")
Recuperação de Nonce em ECDSA
# Comandos para gerar dados de teste
echo "Gerando nonces tendenciosos para ECDSA..."
# (exemplo com parâmetros simplificados)
python -c "
import ecdsa
from hashlib import sha256
# Nonce com viés (bits baixos conhecidos)
sk = ecdsa.SigningKey.generate(curve=ecdsa.SECP256k1)
vk = sk.verifying_key
message = b'mensagem secreta'
signature = sk.sign(message, hashfunc=sha256)
print('Assinatura gerada')
"
Requisitos
- SageMath (recomendado) ou Python com bibliotecas
fpylllenumpy - Conhecimento básico de criptografia e álgebra linear
- Para ataques práticos, acesso a implementações reais de criptografia
Referências
Licença
Distribuído sob a licença MIT. Consulte o arquivo LICENSE para mais informações.