Un micro-módulo de cifrado excéntrico y seguro desarrollado en C#. Utiliza AES-GCM para seguridad autenticada y un sistema de Ratcheting (trinquete) donde las claves mutan permanentemente después de cada uso. Nada se guarda, todo se transforma.
Aquí tienes un ejemplo rápido de cómo inicializar el módulo y realizar un ciclo de cifrado con mutación de clave:
public class Program
{
public static void Main()
{
Console.WriteLine("--- DEMOSTRACIÓN CRIPTO ENDEVS COMUNITY (C#) ---\n");
// 1. ALICE CREA LA CONEXIÓN
string semillaSecreta = CryptoNugget.GenerarSemillaMaestra();
string enlaceInvitacion = CryptoNugget.GenerarEnlaceInvitacion(semillaSecreta);
Console.WriteLine("=== RITUAL DE INICIALIZACIÓN ===");
Console.WriteLine("Alice, envíale este enlace a Bob (O muéstralo como Código QR):");
Console.WriteLine($"{enlaceInvitacion}\n==========================================\n");
var appAlice = new CryptoNugget(semillaSecreta, esIniciador: true);
// 2. BOB RECIBE EL ENLACE Y SE CONECTA
string semillaExtraida = CryptoNugget.ExtraerSemillaDeEnlace(enlaceInvitacion);
var appBob = new CryptoNugget(semillaExtraida, esIniciador: false);
Console.WriteLine($"ADN Inicial Alice: {appAlice.ObtenerEstadoADN()}");
Console.WriteLine($"ADN Inicial Bob : {appBob.ObtenerEstadoADN()}\n");
// 3. INTERCAMBIO DE MENSAJES
string mensaje1 = "¡Hola Bob, únete a la comunidad!";
string cifrado1 = appAlice.Cifrar(mensaje1);
Console.WriteLine($"Alice envía: '{mensaje1}'");
Console.WriteLine($"Cifrado (1): {cifrado1}\n");
string cifrado2 = appAlice.Cifrar(mensaje1);
Console.WriteLine($"Alice envía de nuevo el mismo texto...");
Console.WriteLine($"Cifrado (2): {cifrado2}");
Console.WriteLine("(Totalmente distinto debido al Nonce aleatorio y mutación)\n");
Console.WriteLine($"Bob recibe y lee (1): {appBob.Descifrar(cifrado1)}");
Console.WriteLine($"Bob recibe y lee (2): {appBob.Descifrar(cifrado2)}\n");
Console.WriteLine($"ADN Final Alice: {appAlice.ObtenerEstadoADN()}");
Console.WriteLine($"ADN Final Bob : {appBob.ObtenerEstadoADN()}");
}
}- AES-256-GCM: Cifrado simétrico autenticado para garantizar confidencialidad e integridad.
- Key Ratcheting: Cada operación de cifrado/descifrado deriva una nueva clave irreversible utilizando funciones Hash. La clave anterior se destruye de la memoria de inmediato.
- Zero Pack: Diseñado idealmente para entornos donde no se desea persistencia en disco.
- Desarrollador: ENRODMONTPAR
- GitHub C#: @MASTER-RODRI
- GitHub RUST: @MASTER-RODRI
- Crates.io: @MASTER-RODRI
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.