Sobes.tech
Intern

Wat is encryptie?

sobes.tech AI

Antwoord van AI

Versleuteling is het proces waarbij leesbare informatie (plainttekst) wordt omgezet in een onleesbaar formaat (versleutelde tekst) met behulp van een cryptografisch algoritme en een sleutel. Het doel is om de vertrouwelijkheid van gegevens te waarborgen, zodat alleen geautoriseerde personen ze kunnen lezen, met behulp van de juiste sleutel voor ontcijfering.

Er zijn twee hoofdtypen versleuteling:

  1. Symmetrische versleuteling: Dezelfde sleutel wordt gebruikt voor zowel versleutelen als ontsleutelen. De snelheid is hoog, maar het veilig overdragen van de sleutel is een probleem. Voorbeelden: AES, DES.

    <?php
    // Voorbeeld van symmetrische versleuteling (vereenvoudigd, alleen voor demonstratie)
    $key = 'sleutel123';
    $plaintext = 'Geheime boodschap';
    
    // We gaan uit van een eenvoudige versleutelingsfunctie (niet in productie gebruiken)
    function simple_encrypt($data, $key) {
        return base64_encode($data ^ $key); // XOR-operatie als voorbeeld
    }
    
    // We gaan uit van een eenvoudige decryptie functie (niet in productie gebruiken)
    function simple_decrypt($data, $key) {
        return base64_decode($data) ^ $key; // XOR-operatie als voorbeeld
    }
    
    $ciphertext = simple_encrypt($plaintext, $key);
    echo "Versleuteld: " . $ciphertext . "\n";
    
    $decryptedtext = simple_decrypt($ciphertext, $key);
    echo "Ontsleuteld: " . $decryptedtext . "\n";
    ?>
    
  2. Asymmetrische versleuteling (met publieke sleutel): Er wordt een paar sleutels gebruikt: een publieke sleutel voor versleuteling en een private sleutel voor ontsleuteling. De publieke sleutel kan vrij worden gedeeld, terwijl de private sleutel geheim wordt gehouden. De snelheid is lager dan bij symmetrische versleuteling. Voorbeelden: RSA, ECC.

    <?php
    // Voorbeeld van asymmetrische versleuteling (vereenvoudigd, RSA-concept)
    // In de praktijk worden PHP-functies voor OpenSSL gebruikt (openssl_public_encrypt, openssl_private_decrypt, etc.)
    
    // Sleutels genereren (complex proces)
    // $privateKey = ...
    // $publicKey = ...
    
    $plaintext = 'Nog een geheime boodschap';
    
    // Versleuteling met publieke sleutel
    // $encrypted = openssl_public_encrypt($plaintext, $ciphertext, $publicKey);
    // echo "Asymmetrisch versleuteld: " . base64_encode($ciphertext) . "\n";
    
    // Ontsleuteling met private sleutel
    // $decrypted = openssl_private_decrypt($ciphertext, $decryptedtext, $privateKey);
    // echo "Ontsleuteld (asym): " . $decryptedtext . "\n";
    
    // In de echte code worden OpenSSL-functies gebruikt
    ?>
    

Versleuteling wordt toegepast om gegevens te beschermen bij opslag (encryption at rest) en bij overdracht (encryption in transit), bijvoorbeeld in SSL/TLS-protocollen van websites.