Crypton
Crypton é uma biblioteca educacional para aprender e praticar Criptografia Ofensiva e Defensiva. É basicamente uma coleção de explicação e implementação de todas as vulnerabilidades e ataques existentes em vários Sistemas de Criptografia (Simétricos e Assimétricos), Assinaturas Digitais, Códigos de Autenticação de Mensagem e Sistemas de Criptografia Autenticada. Cada ataque também é complementado com exemplos de desafios de competições "Capture The Flag" e suas respectivas resoluções. Indivíduos que já estão familiarizados (ou participam de CTFs) com esta área podem usar o Crypton como uma ferramenta para resolver desafios baseados em uma vulnerabilidade existente específica.
A biblioteca será continuamente atualizada com explicações de ataques e desafios de CTF! Sinta-se à vontade para me enviar um e-mail com quaisquer sugestões!
Escrevi uma postagem no blog sobre a linha do tempo de desenvolvimento desta biblioteca: https://masterpessimistaa.wordpress.com/2018/08/12/announcing-crypton-an-educational-library-to-learn-offensive-and-defensive-cryptography/
AVISO: O autor não garante de forma alguma que o código seja seguro. A biblioteca é destinada apenas para fins educacionais e o código não deve ser usado para implementação no mundo real. Todos os scripts de exemplo na biblioteca são implementações triviais.
Há diferentes seções neste README:
- Motivação- O que me motivou a criar esta biblioteca
- Estrutura da Biblioteca- Estrutura de diretórios do Crypton
- Cobertura de Domínio- Quais sistemas criptográficos e ataques são cobertos nesta biblioteca
- Planos Futuros/TODO- Ataques/conceitos que serão incluídos em breve
Motivação
Ajudar jogadores de CTF e indivíduos interessados na área de Criptografia a fornecer uma plataforma para aprender ataques em criptografia e para jogadores experientes de CTF praticarem desafios sistematicamente divididos em ataques associados a diferentes subdomínios da criptografia. Além disso, ilustrar por meio de várias explicações de ataques como a implementação adequada de protocolos é crucial.
Estrutura da Biblioteca

Cobertura de Domínio
1. Cifras de Bloco
2. Criptografia RSA
3. Códigos de Autenticação de Mensagem (MACs)
4. Problema do Logaritmo Discreto| S.No. | Tópico | Explicação | Impl./Exploit | Desafio# |
|-------|:---------------------------:|:-----------------------------------------------------------------------------------------------:|:------------:|:----------:|
| 1 | DLP- Grupos Cíclicos, Problema do Logaritmo Discreto|
|
|
|
| 2 |
Algoritmo Rho de Pollard para resolver DLP |
|
|
|
| 3 |
Algoritmo Baby Step Giant Step para resolver DLP|
|
|
|
| 4 |
Algoritmo Pohlig-Hellman para resolver DLP|
|
|
|
| 5 |
DLP em Curvas Elípticas- definindo elemento identidade, inverso de um ponto, grupos cíclicos sobre pontos numa CE, teorema de Hasse, ECDLP |
|
|
|
| 6 |
Algoritmo Baby Step Giant Step para resolver DLP em Curvas Elípticas |
|
|
|
| 7 |
Algoritmo Rho de Pollard para resolver DLP em Curvas Elípticas |
|
|
|
5. Criptografia ElGamal
6. Criptografia Autenticada (AE)
7. Curvas Elípticas
8. Assinaturas Digitais
9. Identificação
10. Troca de Chaves Diffie Hellman
TODO
- Criptografia RSA
- Criptografia RSA com preenchimento PKCS1-v1.5
Ataque de Texto Cifrado Escolhido no Criptossistema RSA - Oracle de Descriptografia LSB [Feito]
- Ataque de Oracle de Preenchimento no sistema de criptografia RSA com preenchimento PKCS1
- Fatoração de Fermat
- Ataque de Coppersmith
- Ataque de Transmissão de Hastad
- Implementação do HBA em mensagens preenchidas
- Geradores de Números Pseudo-Aleatórios
- Gerador Linear Congruencial
- Gerador PRNG Mersenne Twister
- Registrador de Deslocamento com Realimentação Linear
- Assinaturas Digitais
- Ataque de Cegamento em Assinaturas Digitais RSA
Troca de Chaves Diffie Hellman[Feito]
- Diffie Hellman em Curvas Elípticas
- [Mais a serem adicionados]
Autor
Ashutosh Ahelleya