als_Latn dik_Latn ron_Latn
Kriptim simetrik
Kriptimi simetrik, i njohur ndryshe edhe si kriptimi me “çelës secret”,përdorë një madhësi sekrete me të cilën kriptohen të gjitha mesazhet.Kriptimi simetrik i ka këto karakteristika:
●Fuqia e kriptimit korrespondon ne gjatësinë e çelsit.Sa më e madhe të jetë gjatësia e celësit, aq më veshtirë bëhet thyerja e kodit.
●Enkriptimi simetrik është matematikisht më i thjeshtë prandaj është edhe më i shpejtë sesa kriptimi asimetrik,prandaj edhe për këtë arsye është më i përdorshëm në rastet kur dëshirojmë të kriptojmë fajllat që janë shumë të mëdha.
●Siguria e Kriptimit Simetrik varet nga siguria e celësit,që duhet të dihet nga dy palët komunikuese.
Klasët në .NET Framework të cilat implementojnë algoritmin simetrik janë klaset e derivuara nga klasa abstrakte bazë SymmetricAlgorithm. Klasa abstrakte SymmetricAlgorithm ka disa fusha protected, të cilat nuk janë direkt të qasëshme nga metodat e klasave të joderivuara. Mirëpo, këtyre fushava protected mund t’u qasemi permes public virtual properties të cilat implementohen në klasët konkrete.
SymmetricAlgorithm-Klasët e derivuara
Ne asnjëherë nuk punojmë direkt me një object të SymmetricAlgorithm, për arsye se kjo është një klasë abstrakte. Në vend të kësaj ne punojmë me klasën e derivuar konkrete e cila implementon të gjitha vetitë publike së bashku me metodat abstrakte dhe virtuale të SymmetricAlgorithm në një algoritëm specific.
Sic shihet në edhe nga figura , klasët vijuese, të cilat gjithashtu janë klasë abstrakte, janë të derivuara nga SymmetricAlgorithm.Ne shkurtimisht do të shohim si të programojmë me klasët konkrete të derivuara nga këto klasë abstrakte.
●DES është nje klasë abstakte e cila realizon algoritmin simetrik DES
●TripleDES është një klasë abstrakte e cila implementon algoritmin simetrik TripleDES
●Rijandael është një klasë abstrakte e cila implementon algoritmin simetrik Rijandael që paraqet një standard për zëvendësimin e DES-it.
●CR2 është një klasë abstrakte e cila implementon algoritmin simetrik RC2 që është zhvilluar nga Ronald Rivest si një zëvendëses potencial i DES-it.
Të gjitha këto klasë abstrakte më tutje derivohen në klasë konkrete të cilat implementojnë algoritmet simetrike përkatëse. .NET Framework ofron klasët konkrete për secilin nga këto algoritme.Vetitë publike (angl. Public properties) dhe metodat publike (angl. Public methods) të caktuar të cekura më lart janë të implementuara në secilin rast. Katër klasët konkrete të ofruara janë:
DESCryptoServiceProvider që është kjo një klasë mbështjellëse (angl. wrapper class) e cila ofron qasje tek
TripleDESCryptoServiceProvider
RC2CryptoServiceProvider
RijndaelManaged
Klasa CryptoStream
Klasa CryptoStream na mundëson që të lexojmë dhe shkruajmë të dhëna përmes nje cipher stream objekti sikurse ne të dëshironim të operonim me input/output të dhëna në fajll apo socket stream objekt. Klasa CryptoStream mund të përdoret për kriptim (modi përshkruarje) ose dekriptim (modi për lexim)
Konstruktori për CryptoStream është:
Public CryptoStream
{
Stream stream, IcryptoTransfrom transform, CryptoStreamMode mode
};
Duke i pasur stream objekti një IcryptoTransform object për kriptim të shoqëruara me algoritmin simetrike e dëshiruar dhe vlerën CryptoStreamMode.Write që të tregoj drejtimin për I/O, ne efektivisht krijojmë një objekt CryptoSystem i cili do ti kriptojë të gjithë të dhënat qe shkruhen në të.
MemorySteam ms = në MemoryStream();
CryptoStream cs = në CryptoStream
{
ms , sa.CreatEncryptor(), CryptoStreamMode.Write
};
Duke i pasur në objektin MemoryStream bazuar në byte array ciphetext specific një object për dekriptim IcryptoTransform dhe CryptoStreamMode.Read modin, ne efektivisht krijojmë një objekt CryptStream i cili mund të dekriptoj të gjitha të dhënat që lexohen nga ai.
MemoryStream ms=new MemoryStream (chiperbytes)
CrypoStream cs=new CryptoStream
{
ms , sa. CreatDecryptor(), CryptoStreamMode.Read
};
nus_Latn als_Latn als_Latn als_Latn als_Latn als_Latn fur_Latn als_Latn als_Latn als_Latn als_Latn als_Latn als_Latn als_Latn als_Latn eng_Latn scn_Latn eng_Latn pol_Latn als_Latn als_Latn eng_Latn unk eng_Latn unk als_Latn eng_Latn als_Latn unk eng_Latn unk als_Latn eng_Latn eng_Latn unk eng_Latn unk