¿Qué es el cifrado?
sobes.tech AI
Respuesta de la IA
El cifrado es el proceso de transformar información legible (texto abierto) en un formato ilegible (texto cifrado) mediante un algoritmo criptográfico y una clave. El objetivo es garantizar la confidencialidad de los datos, de modo que solo las personas autorizadas puedan leerla, utilizando la clave correspondiente para descifrar.
Existen dos tipos principales de cifrado:
-
Cifrado simétrico: Se utiliza la misma clave tanto para cifrar como para descifrar. La velocidad es alta, pero el problema radica en la transmisión segura de la clave. Ejemplos: AES, DES.
<?php // Ejemplo de cifrado simétrico (simplificado, solo para demostrar el concepto) $key = 'clave123'; $plaintext = 'Mensaje secreto'; // Se asume una función de cifrado simple (no usar en producción) function simple_encrypt($data, $key) { return base64_encode($data ^ $key); // Operación XOR de ejemplo } // Se asume una función de descifrado simple (no usar en producción) function simple_decrypt($data, $key) { return base64_decode($data) ^ $key; // Operación XOR de ejemplo } $ciphertext = simple_encrypt($plaintext, $key); echo "Cifrado: " . $ciphertext . "\n"; $decryptedtext = simple_decrypt($ciphertext, $key); echo "Descifrado: " . $decryptedtext . "\n"; ?> -
Cifrado asimétrico (cifrado con clave pública): Se utiliza un par de claves: clave pública para cifrar y clave privada para descifrar. La clave pública puede distribuirse libremente, mientras que la privada se mantiene en secreto. La velocidad es menor que la del cifrado simétrico. Ejemplos: RSA, ECC.
<?php // Ejemplo de cifrado asimétrico (simplificado, solo para demostrar el concepto RSA) // En la práctica, se usan funciones PHP para OpenSSL (openssl_public_encrypt, openssl_private_decrypt, etc.) // Generación de claves (proceso complejo) // $privateKey = ... // $publicKey = ... $plaintext = 'Otro mensaje secreto'; // Cifrado con clave pública // $encrypted = openssl_public_encrypt($plaintext, $ciphertext, $publicKey); // echo "Cifrado (asimétrico): " . base64_encode($ciphertext) . "\n"; // Descifrado con clave privada // $decrypted = openssl_private_decrypt($ciphertext, $decryptedtext, $privateKey); // echo "Descifrado (asimétrico): " . $decryptedtext . "\n"; // En el código real, se usarían funciones OpenSSL ?>
El cifrado se aplica para proteger datos en almacenamiento (encryption at rest) y en transmisión (encryption in transit), por ejemplo, en protocolos SSL/TLS en sitios web.