Sobes.tech
Intern

Kas ir šifrēšana?

sobes.tech AI

Atbilde no AI

Šifrēšana ir process, kurā lasāma informācija (atvērtais teksts) tiek pārveidota neskaidram formātam (šifrēts teksts) ar kriptogrāfijas algoritma un atslēgas palīdzību. Mērķis ir nodrošināt datu konfidencialitāti, lai tikai autorizētas personas varētu tos lasīt, izmantojot atbilstošo atslēgu dešifrēšanai.

Ir divi galvenie šifrēšanas veidi:

  1. Simetriskā šifrēšana: tiek izmantota viena un tā pati atslēga gan šifrēšanai, gan dešifrēšanai. Ātra, bet ir drošības problēmas ar atslēgas drošu pārraidi. Piemēri: AES, DES.

    <?php
    // Piemērs ar vienkāršu simetrisko šifrēšanu (tikai demonstrācijai)
    $key = 'atslēga123';
    $plaintext = 'Slepenā ziņa';
    
    // Vienkāršas šifrēšanas funkcijas piemērs (ne lieto ražošanā)
    function simple_encrypt($data, $key) {
        return base64_encode($data ^ $key); // XOR operācija
    }
    
    // Vienkāršas dešifrēšanas funkcijas piemērs (ne lieto ražošanā)
    function simple_decrypt($data, $key) {
        return base64_decode($data) ^ $key; // XOR operācija
    }
    
    $ciphertext = simple_encrypt($plaintext, $key);
    echo "Šifrēts: " . $ciphertext . "\n";
    
    $decryptedtext = simple_decrypt($ciphertext, $key);
    echo "Dešifrēts: " . $decryptedtext . "\n";
    ?>
    
  2. Asimetriskā šifrēšana (ar publisko atslēgu): tiek izmantota atslēgu pāris: publiskā atslēga šifrēšanai un privātā atslēga dešifrēšanai. Publiskā atslēga var tikt brīvi izplatīta, bet privātā atslēga tiek turēta slepenībā. Ātrums ir zemāks nekā simetriskajam. Piemēri: RSA, ECC.

    <?php
    // Piemērs ar asimetrisko šifrēšanu (vienkāršots, tikai demonstrācijai)
    // Praktiski tiek izmantotas PHP funkcijas OpenSSL (openssl_public_encrypt, openssl_private_decrypt un tamlīdzīgi)
    
    // Atslēgu ģenerēšana (komplicēts process)
    // $privateKey = ...
    // $publicKey = ...
    
    $plaintext = 'Vēl viena slepena ziņa';
    
    // Šifrēšana ar publisko atslēgu
    // $encrypted = openssl_public_encrypt($plaintext, $ciphertext, $publicKey);
    // echo "Šifrēts (ar publisko atslēgu): " . base64_encode($ciphertext) . "\n";
    
    // Dešifrēšana ar privāto atslēgu
    // $decrypted = openssl_private_decrypt($ciphertext, $decryptedtext, $privateKey);
    // echo "Dešifrēts (ar privāto atslēgu): " . $decryptedtext . "\n";
    
    // Reālos kods izmantotu OpenSSL funkcijas
    ?>
    

Šifrēšana tiek izmantota datu aizsardzībai glabāšanas laikā (encryption at rest) un pārraides laikā (encryption in transit), piemēram, SSL/TLS protokolos tīmekļa vietnēs.