Sobes.tech
Intern

Čo je šifrovanie?

sobes.tech AI

Odpoveď od AI

Šifrovanie je proces prevodu čitljive informácie (otvoreného textu) na nečitateľný formát (šifrovaný text) pomocou kryptografického algoritmu a kľúča. Cieľom je zabezpečiť dôvernosť údajov, aby ich mohli čítať iba autorizované osoby s príslušným kľúčom na dešifrovanie.

Existujú dva hlavné typy šifrovania:

  1. Symetrické šifrovanie: Používa sa rovnaký kľúč na šifrovanie aj dešifrovanie. Rýchlosť je vysoká, ale problémom je bezpečný prenos kľúča. Príklady: AES, DES.

    <?php
    // Príklad symetrického šifrovania (zjednodušené, len na demonštračné účely)
    $key = 'kľúč123';
    $plaintext = 'Tajná správa';
    
    // Predpokladáme jednoduchú šifrovaciu funkciu (nepoužívajte v produkcii)
    function simple_encrypt($data, $key) {
        return base64_encode($data ^ $key); // Príklad XOR operácie
    }
    
    // Predpokladáme jednoduchú dešifrovaciu funkciu (nepoužívajte v produkcii)
    function simple_decrypt($data, $key) {
        return base64_decode($data) ^ $key; // Príklad XOR operácie
    }
    
    $ciphertext = simple_encrypt($plaintext, $key);
    echo "Zašifrovaný text: " . $ciphertext . "\n";
    
    $decryptedtext = simple_decrypt($ciphertext, $key);
    echo "Dešifrovaný text: " . $decryptedtext . "\n";
    ?>
    
  2. Asymetrické šifrovanie (šifrovanie s verejným kľúčom): Používa dvojicu kľúčov: verejný kľúč na šifrovanie a súkromný (privátny) kľúč na dešifrovanie. Verejný kľúč môže byť voľne distribuovaný, zatiaľ čo súkromný kľúč je uchovávaný v tajnosti. Rýchlosť je nižšia ako u symetrického. Príklady: RSA, ECC.

    <?php
    // Príklad asymetrického šifrovania (zjednodušené, len na demonštračné účely RSA)
    // V praxi sa používajú PHP funkcie pre OpenSSL (openssl_public_encrypt, openssl_private_decrypt a pod.)
    
    // Generovanie kľúčov (zložitý proces)
    // $privateKey = ...
    // $publicKey = ...
    
    $plaintext = 'Iná tajná správa';
    
    // Šifrovanie verejným kľúčom
    // $encrypted = openssl_public_encrypt($plaintext, $ciphertext, $publicKey);
    // echo "Zašifrovaný (asymetrický) text: " . base64_encode($ciphertext) . "\n";
    
    // Dešifrovanie súkromným kľúčom
    // $decrypted = openssl_private_decrypt($ciphertext, $decryptedtext, $privateKey);
    // echo "Dešifrovaný (asymetrický) text: " . $decryptedtext . "\n";
    
    // V skutočnom kóde by sa používali OpenSSL funkcie
    ?>
    

Šifrovanie sa používa na ochranu údajov pri ukladaní (encryption at rest) a pri prenose (encryption in transit), napríklad v SSL/TLS protokoloch webových stránok.