Skip to content

MASTER-RODRI/cripto_endevs_comunity_C-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CryptoNugget

Crates.io Documentation License: MIT

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.

🚀 Ejemplo de Uso

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()}");
        }
    }

🔒 Mecánica de Seguridad

  • 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.

✒️ Autor

📄 Licencia

Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages