Biblioteca educativa de criptografia: teoria de numeros, cifrados clasicos y ataques
Project description
mi_crypto_lib
Biblioteca educativa de criptografía desarrollada en Python puro (sin dependencias externas).
Estructura
mi_crypto_lib/
├── __init__.py # Fachada: import mi_crypto_lib as cripto
│
├── teoria_numeros/ # Ejercicios 1–4: Teoría de números
│ ├── __init__.py
│ ├── utilidades.py # mcd, es_primo, phi, factorizar_entero (compartido)
│ ├── crr.py # Ej 1: Conjunto Reducido de Residuos
│ ├── ejercicio_rsa_base.py # Ej 2: Primos seguros para RSA
│ ├── n_generico.py # Ej 3: Factorización y φ(n) genérico
│ └── inversos.py # Ej 4: Inversos multiplicativos (Euler / Euclides ext.)
│
├── cifrados_clasicos/ # Ejercicios 5–6: Cifrados y criptoanálisis
│ ├── __init__.py
│ ├── auto_clave.py # Ej 5: Cifrado Autoclave (Vigenère clave continua) + Kasiski
│ └── ataque_hill.py # Ej 6: Cifrado Hill + ataque Gauss-Jordan
│
├── setup.py
├── pyproject.toml
├── README.md
└── LICENSE
Instalación
# Desde el directorio raíz del proyecto:
pip install -e .
Uso rápido
La librería expone todas las funciones con un solo import:
import mi_crypto_lib as cripto
# ── Ej 1: Conjunto Reducido de Residuos ──
print(cripto.calcular_crr(10)) # [1, 3, 7, 9]
print(cripto.phi(10)) # 4
# ── Ej 2: Primos seguros (RSA) ──
p = cripto.generar_primo_seguro(10) # 11
# ── Ej 3: Factorización genérica ──
print(cripto.factorizar(60)) # {2: 2, 3: 1, 5: 1}
print(cripto.euler_phi(60)) # 16
# ── Ej 4: Inversos multiplicativos ──
print(cripto.inverso_euler(3, 26)) # {'inverso': 9, ...}
print(cripto.inverso_extendido(3, 26)) # {'inverso': 9, ...}
# ── Ej 5: Cifrado Autoclave + Kasiski ──
cifrado = cripto.cifrar_autoclave("HOLAMUNDO", "KEY")
plano = cripto.descifrar_autoclave(cifrado, "KEY")
analisis = cripto.kasiski(cifrado)
# ── Ej 6: Ataque Hill (Gauss-Jordan) ──
clave = cripto.CifradoMatriz.recuperar_clave("TEXTO", "CIFRA", 2)
Requisitos
- Python ≥ 3.8
- Sin dependencias externas (solo librería estándar)
Licencia
MIT License — ver LICENSE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mi_crypto_lib-1.0.10.tar.gz
(15.4 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mi_crypto_lib-1.0.10.tar.gz.
File metadata
- Download URL: mi_crypto_lib-1.0.10.tar.gz
- Upload date:
- Size: 15.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
009df82ed395ff0f501730e1efc7829c34ef497c5d2ea6d2a399e6b3e7c0e74f
|
|
| MD5 |
58e4e09f2bd7dcc41ec2fb31a6160711
|
|
| BLAKE2b-256 |
4b9985954aa342409e8edae8d45899e5a56fe9660eb36b8222b661ebecfdd63b
|
File details
Details for the file mi_crypto_lib-1.0.10-py3-none-any.whl.
File metadata
- Download URL: mi_crypto_lib-1.0.10-py3-none-any.whl
- Upload date:
- Size: 34.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fef50273e467ceba71919f28a7c69f4d4a33a7b6d0f38ce8a6325595254f738a
|
|
| MD5 |
47b6811abd861124dfd87d44ef0643fa
|
|
| BLAKE2b-256 |
61f9442d95153fa53835a87385fc12379b514de7cc61e6a81234990919e7af05
|