Sobes.tech
Intern

O que é criptografia?

sobes.tech IA

Resposta da IA

A criptografia é o processo de transformar informações legíveis (texto claro) em um formato ilegível (texto cifrado) usando um algoritmo criptográfico e uma chave. O objetivo é garantir a confidencialidade dos dados, para que apenas pessoas autorizadas possam lê-los, usando a chave correspondente para decifrá-los.

Existem dois tipos principais de criptografia:

  1. Criptografia simétrica: Usa a mesma chave tanto para cifrar quanto para decifrar. A velocidade é alta, mas o problema está na transmissão segura da chave. Exemplos: AES, DES.

    <?php
    // Exemplo de criptografia simétrica (simplificado, apenas para demonstração)
    $key = 'chave123';
    $plaintext = 'Mensagem secreta';
    
    // Suponha uma função de cifragem simples (não usar em produção)
    function simple_encrypt($data, $key) {
        return base64_encode($data ^ $key); // Operação XOR de exemplo
    }
    
    // Suponha uma função de decifragem simples (não usar em produção)
    function simple_decrypt($data, $key) {
        return base64_decode($data) ^ $key; // Operação XOR de exemplo
    }
    
    $ciphertext = simple_encrypt($plaintext, $key);
    echo "Cifrado: " . $ciphertext . "\n";
    
    $decryptedtext = simple_decrypt($ciphertext, $key);
    echo "Decifrado: " . $decryptedtext . "\n";
    ?>
    
  2. Criptografia assimétrica (criptografia com chave pública): Usa um par de chaves: chave pública para cifrar e chave privada para decifrar. A chave pública pode ser distribuída livremente, enquanto a chave privada é mantida em segredo. A velocidade é menor que a do criptografia simétrica. Exemplos: RSA, ECC.

    <?php
    // Exemplo de criptografia assimétrica (simplificado, apenas para demonstração RSA)
    // Na prática, usam-se funções PHP para OpenSSL (openssl_public_encrypt, openssl_private_decrypt, etc.)
    
    // Geração de chaves (processo complexo)
    // $privateKey = ...
    // $publicKey = ...
    
    $plaintext = 'Outra mensagem secreta';
    
    // Criptografia com chave pública
    // $encrypted = openssl_public_encrypt($plaintext, $ciphertext, $publicKey);
    // echo "Cifrado (assimétrico): " . base64_encode($ciphertext) . "\n";
    
    // Decifragem com chave privada
    // $decrypted = openssl_private_decrypt($ciphertext, $decryptedtext, $privateKey);
    // echo "Decifrado (assimétrico): " . $decryptedtext . "\n";
    
    // No código real, usariam-se funções OpenSSL
    ?>
    

A criptografia é aplicada para proteger dados em armazenamento (encryption at rest) e durante a transmissão (encryption in transit), por exemplo, nos protocolos SSL/TLS de websites.