Kriptimi simetrik është algoritëm i bazuar në çelësa sekret përmes së cilëve e transformon plaintextin/ciphertextin.
Llojet:
Karakteristikat e algorimeteve simetrike
Algoritmi i mirë i enkriptimit e humb sa më shumë strukturën e plaintextit gjatë pasqyrimit në ciphertext.
DES Algoritmi (Data Encryption Standard)
DES Algoritmi
Feistel funksioni (f) merr gjysëm-bllokun, e zgjeron në 48 bita, e XOR me nënçelësin.
Rezultati ndahet nga 6 bita dhe futet në S-Boxët.
Substitution box (S-Box) kanë për qëllim humbjen e linearitetit mes hyrjes dhe daljes.
Supozojmë hyrjen $011011$, dalja është $1001$.
Modet e operimit
ECB është më e pasigurt sepse plaintexti i njejtë gjithmonë jep ciphertext të njejtë.
Triple DES (3DES)
Për shkak të hapësirës së vogël të çelësave, 3DES e aplikon algoritmin 3 herë me 3 çelësa të ndryshëm sipas formulës:
\[\text{ciphertext} = E_{K3}(D_{K2}(E_{K1}(\text{plaintext})))\] \[\text{plaintext} = D_{K1}(E_{K2}(D_{K3}(\text{ciphertext})))\]3 opsione të çelësave në Triple DES:
DES në .NET
\[\begin{array}{c} \texttt{Object} \\ \uparrow \\ \texttt{SymmetricAlgorithm} \\ \uparrow \\ \texttt{DES} \\ \uparrow \\ \texttt{DESCryptoServiceProvider} \end{array}\]Klasa SymmetricAlgorithm paraqet bazë abstrakte për algoritmet simetrike.
Anëtarët e rëndësishëm:
CreateEncryptor()
CreateDecryptor()
IV
, Key
, Mode
, Padding
LegalKeySizes
, LegalBlockSizes
Klasa DES paraqet bazën abstrakte të DES algoritmit.
Klasa DESCryptoServiceProvider paraqet një implementim të DES algoritmit.
CreateEncryptor
dhe CreateDecryptor
kthejnë një ICryptoTransform i cili kryen operacionet mbi blloqe.
Nëse punojmë me stream të bajtave kemi mundësi t’i lidhim streamat tonë me CryptoStream i cili inicializohet me ndonjë ICryptoTransform
.