Përdoruesi diskutim:KompjuterikeG

Page contents not supported in other languages.
Nga Wikipedia, enciklopedia e lirë
Kjo faqe këtu është vetëm për diskutim mbi përdoruesin KompjuterikeG. Wikipedia nxit diskutimin mes vullnetarëve të saj dhe nuk do të censurojë komente bazuar në pikëpamjet ideologjike ose politike. Wikipedia nuk do t’i ndryshojë komentet. Ato ose do të publikohen, ose do të fshihen nëse nuk u binden rregullave kryesore.
Fillo një temë të re diskutimi.
Ju lutemi nënshkruani me: – ~~~~

Të gjitha komentet u nënshtrohen këtyre rregullave:

  • Përmbajuni temës!
  • Nuk lejohen: sharje, fyerje, fjalor i papërshtatshëm, gjuhë që përmban urrejtje, sulme personale, thirrje për dhunë apo çdo qëndrim tjetër jo i rregullt.

RSA Algoritmi-Hyrje- Algorimti asimetrik më i përdorur sot për sot është RSA, që plotësisht përkrahet edhe nga .Net framework.

  • Më 1977 Ronald Rivest, Adi Shamir dhe Leonard Adleman propozuan një skemë e cila u bë shpejt skema më e përdorur kripotgrafike-RSA. Kjo skemë ndonjëherë e referuar edhe si Rives-Shamir-Adleman algoritmi, është algoritmi asimetrik më i përdorur sot. Funksioni njëkahësh që përdoret është faktori kryesor në suksesin e këtij algoritmi: Shumëzimi i dy numrave është operacion i lehtë, por faktorizimi i rezultatit që fitohet është qështje e vështirë. Teorema e Eulerit, dhe faktori Pi i Eulerit luajnë rol të rëndësishëm në RSA.

Funksionimi i RSA-se[Redakto nëpërmjet kodit]

Së pari në mënyrë të rastësishme (angl.randomly) gjenerojmë çiftin e çelësave publik dhe privat. Është e rëndësishme, praktikë kjo në kriptografi, që gjenerimi i këtyre çelësave të jetë sa më i rastësishëm dhe i paparashikueshëm. Pastaj bëhet enkriptimi i të dhënave me çelësin publik duke shfrytëzuar RSA algoritmin. Dekriptimi i tyre bëhet përmes çelësit privat'.[1]

Hapat për gjenerimin e celësit publik dhe atij privat[Redakto nëpërmjet kodit]

  1. Në mënyrë të rastësishme zgjedhen dy numra jo të njëjtë(prime p dhe q.
  2. Llogarisim produktin n=p*q
  3. Llogarisim faktorin e Eulerit për këta dy numra: Ф =(p-1)*(q-1)
  4. Pasi ti kemi vlerat n dhe Ф, vlerat p dhe q janë të panevojshme më tutje, prandaj bëjmë shkatërrimin e tyre.
  5. Në mënyrë të rastësishme zgjedhim numrin e, ashtu që vlera e tij të jetë më e madhe se 1 dhe më e vogël se Ф dhe të jetë relativisht prime me Ф.
  6. Llogarisim vlerën unike d, e cila plotëson konditat ashtu që nëse d*e plotëpjesëtohet me Ф atëherë mbetja e pjesëtimit është 1. Vlera e d duhet të ruhet sekret. Nëse e dimë vlerën e Ф, vlera e d gjendet lehtë nga algoritmi Euclidean. Nëse e dimë n (që është publike), por asnjërën nga vlerat p dhe q ( të cilat i kemi shkatërruar) atëherë vlera Ф është shumë vështirë të gjindet. Vlera sekrete e d-se së bashku me vlerën e n paraqesin çelësin privat.[2]

Kriptimi i mesazhit me RSA[Redakto nëpërmjet kodit]

Pas gjenerimit të çelësave privat/publik, enkriptimi i mesazhit kërkon hapat në vijim:

  1. Marrim një numër të plotë m që paraqet pjesë të tekstit për kriptim. Në mënyrë që algjebra të funksionojë në rregull, vlera m duhet të jetë më e vogël se moduli n, që llogaritet si p*q.
  2. Llogarisim tekstin e kriptuar c duke shfrytëzuar çelësin publik që përmbanë e dhe n. Kemi ekuacionin c=m^e(mod n).

Dekriptimi i mesazhit me RSA[Redakto nëpërmjet kodit]

Procedura e dekriptimit me çelës privat kërkon hapat në vijim:

  1. Llogarisim mesazhin origjinal nga mesazhi i kriptuar duke shrytëzuar çelësin privat që përmbanë d dhe n. Kjo llogaritet përmes ekuacionit m=c^d(mod n).
  2. Krahasojmë vlerën e fituar m me mesazhin original m dhe duhet të jenë të ngjashme që të verifikohet që dekriptimi(process i kundert i kriptimit) është operacion invers me kriptimin.[3]

Programimi i Kriptimit Asimetrik me .NET[Redakto nëpërmjet kodit]

Nga figura shohim se AsymetricAlgorithm paraqet klasën abstrakte nën të cilën shihen klasët konkrete RSACryptoServiceProvider dhe DSACryptoServiceProvider. Të dyja janë të implementuara duke përdorur CryptoAPI. Te kriptimi Asimetrik vetëm numrat të cilët plotësojnë disa kritere matematike mund të mirren si çelës, dhe për sulmuesit do të jetë më e vështirë nëse këta numra janë sa më të mëdhenj. Është përllogaritur se çelësi 1024 bitësh i RSA-se ( madhësi e nënkuptuar e celësit në .NET) është përafërsisht e njëjtë, kriptoanalitikisht, me çelësin me madhësi sa më të madhe, por duhet pasur kujdes sepse kjo ndikon në perfomancat tjera.[4][5]

Nënshkrimet Digjitale[Redakto nëpërmjet kodit]

Hyrje[Redakto nëpërmjet kodit]

  • Vërtetimi se një person i caktuar ka gjeneruar një mesazh të caktuar paraqet një veti me rëndësi. Përderisa në botën analoge kjo arrihet përmes nënshkrimeve në një copë letër, në atë digjitale ekziston një procedurw tjetr. Për pasojë vetëm personi që ka krijuar mesazhin duhet të jetë në gjendje që ta nënshkruajë atë. Në botën digjitale kjo arrihet duke enkriptuar mesazhin me një celës privat.

Nënshkrimi Standard[Redakto nëpërmjet kodit]

  • Formati i nënshkrimeve digjitale përfshinë një rregull sipas së cilës, verifikuesi dallon mesazhet e vlefshme dhe ato jo të vlefshme. Ky veprim quhet padding.
  • Skema propabilistike e nënshkrimeve është një skemë e nënshkruar e bazuar në kriptosistemin RSA:PSS-RSA. Në praktikë mesazhi nuk është i enkriptuar direkt por, në fakt enkriptohet HASH funksioni i tij. Kjo ndryshe njihet edhe si fingerprint(anglisht). Ky i fundit ka një gjatësi të caktuar prej 160 ose 256 bita.

Enkriptimi i Skemës Propabilistike të Nënshkrimeve[Redakto nëpërmjet kodit]

  • Le të jetë /n/ madhësia e modulit RSA në bit. Mesazhi i Enkoduar ka gjatësi prej n-1/8 bitash.
  1. Gjenero një vlerë random salt.
  2. Nga një string mesazh M krijoni nje tjetër string mesazh M_ dukelidhur një padding fiks, HASH vlerën mHash =h(M) dhe salt-in
  3. Logarisni vlerën Hsh të sstringut M_
  4. Lidhni një padding fiks dhe salt vlerën për të krijuar një bllok të shënash.
  5. Aplikoni një maskim funksion tek mesazhi M_ për të krijuar një vlerë maskë dbMasnk. Zakonisht për një veprim të tillë shfrytëzohet funksioni SHA1.
  6. Vlerën e maskuar bëjeni XOR me bllokun e të dhënave.
  7. Mesazhi i enkriptuar fitohet duke lidhur Bllokun e maskuar të të dhënave, vlerën Hash dhe paddingun.

Pas enkodimit, operacioni i nënshkrimit digjital aplikohet në mesazhin e enkoduar.

  • s = sigkpr (x) ≡ EMd mod n

Operacioni i verifikimit[Redakto nëpërmjet kodit]

  • Operacioni i verifikimit pastaj vazhdon në mënyrë të ngjashme: rigjenerimi i vlerës salt dhe kontrollimi se a është enkriptimi i skemës propabilistike të nënshkrimit në rregull.

Duke shtuar salt vlerën hashit të dytë të mesazhit, vlera e enkoduar bëhet probabilistike.Për pasojë, nëse ne kodojmë dhe shënojmë të njëjtin mesazh dy herë, fitojmë nënshkrime të ndryshme, që është një vecori e dëshiruar.

Gjenerimi i celësave për Nënshkrimet Digjitale[Redakto nëpërmjet kodit]

  1. Zgjidhni një numër prime të madh p.
  2. Zgjedhni një element primitiv te Z∗p ose nëngrupi of Z∗p.
  3. Zgjedhni një integjer të rastësishëm d ∈ {2,3, . . . , p−2}.
  4. Llogaritni R=d mod p .

Celësi public tani krijohet nga kpub =(p,<,R), dhe ai privat nga kpr =d.

Nënshkrimi dhe verifikimi[Redakto nëpërmjet kodit]

  • Duke përdorur celësin privat dhe parametrat e celësit public, nënshkrimi sigKpr(x,kE)=(r,s) për një mesazh x logaritet gjatë procesit të nënshkrimit. Nënshkrimi përfshinë dy hapa kryesorë: zgjedhja e një vlere të rastësishme kE, i cili paraqet një celës privat, dhe logaritja e një shenje x.

Gjenerimi i Nënshkrimeve[Redakto nëpërmjet kodit]

  1. Zgjedhni një celës kalimtar kE ∈ {0,1,2, . . . , p − 2} ashtu që gcd(kE, p-1)=1.
  2. Logaritni parametrat e nënshkrimeve

r ≡kE mod p, s ≡ (x−d ・r)k−1 E mod p−1. Në anën pranuese, nënshkrimi verifikohet duke përdorur shprehjen kpub(x,(r,s)), nënshkrimin dhe mesazhin. Verifikimi i nënshkrimeve

  1. Logaritni vlerën t ≡R*r*rs mod p
  2. Verifikimi përfshinë t_≡Rx mod p =⇒nënshkrimi valid_≡Rx mod p =⇒nënshkrimi invalid.[6]

Shiqo edhe ketu:

  1. RSA Algoritmi
  2. HASH Algoritmi
  3. Steganografia Digjitale

Steganografia digjitale[Redakto nëpërmjet kodit]

Histori e shkurtë rreth steganografisë[Redakto nëpërmjet kodit]

Shënimet e hershme të steganografisë ishin nga historiani grek Herodoti në kronikat e tij të njohura Historitë që datojnë nga vitet 440 P.K.Herodoti shënoi dy tregime rreth teknikave të steganografisë gjatë kesaj kohe në Greqi.E para tregon që mbreti Darius nga Susa i preu flokët e njërit prej të burgosurve të tij dhe shkruajti një mesazh sekret në lëkuren e tij.Kur flokët e të burgosurit u rritën ai ishte dërguar tek dhëndrri i mbretit Aristogoras në Miletus duke mos u vërejtur mesazhi i shkruajtur. Tregimi i dytë gjithashtu i paraqitur nga Herodoti tregon se një ushtar i nevoitej të dërgojë një mesazh në Spartë për të treguar që xerxët mendonin të pushtojnë Greqine.Mediumi i shkruarjes ishte teksti i shkruajtur në një pllakë të mbuluar me dyll.Ushtari e largoi dyllin prej pllakës ,e shkruajti mesazhin sekret në dru që ndodhet nën pllakë,e rimbuloi pllakën me dyll duke e bërë të dukej si pllakë e zbrazët dhe e dërgoi dokumentin duke mos u zbuluar fare.Gjatë kohës së Luftës së Parë dhe të Dytë botërore,filloi rritje më e madhe e rëndësisë së steganografisë.

Çka është steganografia digjitale dhe pse është e rendësishme?[Redakto nëpërmjet kodit]

Steganografia digjitale është art dhe shkencë e komunikimit e cila në një mënyrë e fshehë ekzistencën e komunikimit.Fjala steganografi është me origjinë nga greqishtja “steganos” që do të thotë mbulesë ose mbrojtje dhe “graphia” që do të thotë shkrim. Qëllimi i steganografisë është që të fshehë mesazhet brenda mesazheve që nuk e dëmtojnë atë, në mënyrë që të mos e lejojë sulmuesin të zbulojë që ka mesazhe tjera në të. Në botën digjitale steganografia është e nënkuptuar të mbrojë informacionin nga palët e padëshiruara. Steganografia digjitale sot mund të përdoret në një sasi të madhe të të dhënave në botën digjitale.Formatet e të dhënave më të njohura që përdoren janë: .bmp,.doc,.jpeg,.gif,.mp3,.txt dhe .wav. Këto formate janë të njohura gjithashtu përshkak se teprica(redudanca) e të dhënave mund të largohet prej tyre dhe të zëvendësohet me një mesazh të fshehtë. Teknologjitë e steganografisë janë pjesë e rëndësishme e sigurisë dhe privacitetit në sistemet e hapura siq është Interneti. Steganografia gjithashtu mund të përdoret për të fshehur të dhënat e rëndësishme brenda një file-i tjetër ashtu që vetëm palët e nënkuptuara që e marrin mesazhin e dijnë që ekziston një mesazh sekret në të. Për të shtuar shtresat e sigurisë dhe për të larguar problemet sikurse është ”kriptimi përballë ligjit” është praktike të përdoren së bashku kriptografia dhe steganografia. Përdorimi i këtyre së bashku ofron më shumë privacitet për çdo lidhje dhe komunikim në sistemet e hapura. Ka terme të ndryshme që mund ta definojmë steganografinë digjitale.Mund të themi gjithashtu se steganografi digjitale është edhe fshehja e informatës në një informatë tjetër.

Metodat e kodimit të steganografisë digjitale[Redakto nëpërmjet kodit]

Steganografia digjitale mund të arrihet me metoda te ndryshme por më të njohurat janë:

  • Kodimi i mesazhit sekret në tekst
  • Kodimi i mesazhit sekret në imazh(fotografi)
  • Kodimi i mesazhit sekret në audio


  • Kodimi i mesazhit sekret në tekst

Kodimi i mesazhit sekret në tekst mund të jetë çështje që kërkon prova.Kjo është pasi që tekst file-at kanë një sasi shumë të vogël të redudancës (tepricës) së të dhënave për ta zëvendësuar me një mesazh sekret.Një pengesë tjetër është që steganografia e bazuar në tekst lehtë mund të ndryshohet nga palët e padëshiruara vetëm duke e ndryshuar tekstin ose riformatizuar tekstin në forma tjera(prej .TXT në .PDF).Ka metoda të ndryshme që mund të krijohet steganografia e bazuar në tekst. Njëra prej metodave është kodimi me zhvendosje të rreshtit që përfshin zhvendosjen e çdo rreshti të tekstit vertikalisht posht ose lart nga së paku 3 centimetra.

Kodimi me zhvendosje të fjalës punon në mënyrë të njejtë siq punon kodimi me zhvendosje të rreshtit,vetëm se përdoren hapsirat horizontale në mes fjalëve për ta barazuar një vlerë për mesazhin e fshehtë.Kjo metodë e kodimit është më pak e dallueshme për ta deshifruar.

Një kodim tjetër përfshin kodimin e mesazheve brenda tekstit të formatizuar duke ndryshuar vetitë e tekstit siq është gjatësia vertikale/horizontale e shkronjave siq janë b,d,T etj.Kjo është metoda më e vështirë që mund të përdoret për kodimin e mesazhit sekret.

  • Kodimi i mesazhit sekret në imazh (fotografi)

Kodimi i mesazheve sekrete në imazhet digjitale është njëra nga metodat me përdorim më të gjerë prej të gjitha metodave në botën digjitale.Gati çdo plain tekst (tekst i thjeshtë),tekst i shifruar (cipher),imazh dhe ndonjë mjet tjetër i komunikimit(media) që mund të kodohet brenda një bit stream mund të fshehet në një imazh digjital.Me vazhdimin e rritjes së grafikave në kompjuterat e sotëm dhe kërkimeve për ta vendosur steganografinë e bazuar në imazh,kjo fushë vazhdon të zgjerohet me hapa të shpejtë.Me përdorimin e imazheve për steganografi,file-at e imazheve 8-bit dhe 24-bit për pixel janë të zakonshme.Të dyja kanë përparësitë dhe të metat e tyre.

Imazhet 8-bit janë një format i madh për t’u përdorur përshkak të madhësisë së vogël të tyre.Pengesë është që vetëm 256 ngjyrat e mundshme mund të përdoren të cilat mund të jenë një problem potencial gjatë kodimit.Zakonisht paleta e njgyrës gri përdoret kurr merren imazhet 8 bit siq është(.GIF) pasi që ndryshimi gradual në ngjyrë do të jetë vështirë për tu zbuluar kur imazhi ka qenë i koduar me mesazh sekret.

Imazhet 24-bit ofrojnë më shumë fleksibilitet kur përdoren për steganografi. Numër i madh i ngjyrave që përdoren(mbi 16 milion),e bëjnë më të vështirë zbulimin e mesazhit sekret që është koduar.Përparësi tjetër është se sasi më e madhe e të dhënave të fshehura mund të kodohen brenda imazheve digjitale 24-bitëshe krahasuar me imazhet 8-bitëshe.Pengesë e imazheve 24-bit është madhësia e tyre e madhe (zakonisht në MB) që i bën më të dyshueshme se sa imazhet më të vogla 8-bit (zakonisht në KB) kur dërgohen në një sistem të hapur siq është Interneti.

  • Kodimi i mesazhit sekret në audio

Kodimi i mesazheve sekrete në audio është gjithashtu një metodë që përdoret në steganografi.Para se të zgjedhet teknika e kodimit për audio shqyrtohen dy koncepte.Ato janë:formati digjital i audios dhe mediumi transmetues. Tri formatet digjitale të audiois janë :kuantizimi mostër,shpejtësia e përkohshme e mostrimit dhe mostrimi përceptual (i dukshëm). Ka tri metoda të njohura ë përdoren për fshehjen e të dhënave brenda audios.Ato janë:kodimi i bitit të ulët,kodimi i fazës dhe spektri shpërndarës.

Kodimi i bitit të ulët vendos të dhënat sekrete brenda bitit më pak të rëndësishëm (LSB) të file-it audio.Kapaciteti i kanalit është 1KB për sekond për kilohertz (44kbps për një sekuencë mostruese 44 KHz).Kjo metodë është e lehtë të inkorporohet por është shumë e dyshimtë në humbjen e të dhënave të duhura në zhurmën e kanalit.

Kodimi i fazës zëvendëson fazën e një segmento fillestar të audios me një fazë referente që paraqet të dhënat e fshehura.Kjo mund të mendohet si një lloj kriptimi për sinjalin audio duke përdorur transformimin direkt Furie,që është një algoritëm i transformimit për sinjale audio.

Spektri shpërndarës kodon audion gati mbi spektrin e frekuencës hyrëse.Kjo teknikë transmeton audion në frekuenca të ndryshme të cilat ndryshojnë varësisht nga spektri shpërndarës që përdoret.Kjo teknikë është më e sigurta që përdoret për dërgimin e të dhënave të fshehta përmes audios.[7]

Hash Algoritmet[Redakto nëpërmjet kodit]

Hash Algoritmet - Hyrje

Qëllimi i kriptimit të të dhënave është të mbrojë informatën që ajo mos të lexohet nga personat të cilëve nuk ju dedikohet,mirëpo kjo nuk mund t'i ndaloj shfrytëzuesit "malicious" që ta nryshojnë atë.Kështu për shembull,të marrim rastin kur dërgojmë një email përmes inernetit.Nëse e përdorim kriptimin,pranuesi i këti emaili është relativisht i sigurtë se askush tjetër nuk e ka lexuar mesazhin që përmban ai email.Mirëpo,marrësi kurrsesi nuk duhet të jetë i sigurtë se mesazhi i pranuar është i ngjashëm me mesazhin origjinal të cilin e kemi dërguar.Ai mund të jetë i ndryshuar gjatë rrugës. Për ta luftuar këtë na nevoitet një procedurë e shkurtër dhe mjaftueshëm efikase që të verifikojmë integritetin(e në disa raste edhe origjinalitetin) e mesazhit. Ky rol në kriptografi i është dhënë hash kodit.Hash kodi na mundëson të verifikojmë që të dhënat kanë mbetur të pandryshuara,përderisa kriptimi bën që të dhënat të jenë të palexuara nga përgjuesit.

Funksionimi i Hash Algoritmeve[Redakto nëpërmjet kodit]

Hash algoritmet marrin një sasi arbitrare të të dhënave(si një bllok i madh i informatave binare) dhe i shfrytëzon ato që të gjenerojë një hash kod të shkurtër i cili efektivisht është unik për atë informatë. Të gjitha hash algoritmet për kriptim duhet të jenë:

  • One-way(Njëkahore)-që nënkupton se është tërësisht e pamundur që të rikrijohet dokumenti nga hashi,për arsye se hashi nuk i përfshinë të gjitha informatat që janë në dokument.
  • Collision resistant-që nënkupton se dy dokumente të ndryshme kanë hashe të ndryshme.[8]

.NET Klasët për Hash[Redakto nëpërmjet kodit]

Të gjitha hash algoritmet të përkrahura.NET trashëgohen nga klasa abstrakte HashAlgorithm.Të gjitha hash algoritmet përdorin ose SHA(secure Hash Algorithm) ose MD5(Message Digest 5). Klasa abstrakte HashAlgorithm definon anëtarët që përkrahen nga algoritmet e klasëve konkrete.Klasa abstrakte KeyedHashedAlgorithm derivohet nga HashAlgorithm dhe shton vetin Key. HashAlgorithm oforn metodën Create() e cila gjeneron implementimin e klasës së nënkuptuar.Klasa HashAlgorithm gjithashtu definon metodën Clear(),e cila fshinë nga memoria hash kodin e fundit të gjeneruar si dhe metodën ComputeHash() e cila krijon hashin për bufferin e caktuar të të dhënave. Mund të themi se gjatësia e hashit është gjatësi fikse.Për shembull,nëse përdorim algoritmin SHA,hashi rezultues gjithmonë është 20 bajt(160 bit),pa marrë parasysh madhësinë e të dhënave për të cilët llogaritet hashi.

Shembulli në vazhdim shpjegon se si llogaritet hashi për disa të dhëna.[9]

 using System;
 using System.Security.Cryptography;
 namespace shembulliHash
{ class Program { static void Main(string[] args) { HashAlgorithm hash=HashAlgorithm.Create(); Console.Write("Madhësia e hashit në bita:"); Console.WriteLine(hash.HashSize.ToString()+"bita"); Console.Write("Madhësia e hashit në bajta:"); Console.Write((hash.HashSize/8).ToString()+"bajta"); //Të dhënat për të cilat do ta llogarisim hashin byte[] TeDhenat={20,30,15,44,62,72,81,97,00,08}; //Krijimi i hashit byte[] hashi=hash.ComputeHash(TeDhënat); //Shtypja e hashit Console.Write("\nHashi: "+ BitConverter.ToString(hashi)); Console.WriteLine(); Console.Write("\nPër të përfunduar shtyp ENTER ...."); } } }

Kriptimi Simetrik[Redakto nëpërmjet kodit]

Hyrje[Redakto nëpërmjet kodit]

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[Redakto nëpërmjet kodit]

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.


Klasët vijuese, të cilat 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.[10]


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ë.

        MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream
{ ms, sa.CreateEncryptor(), 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
     };
  1. ^ Cristoph Paar,Jan Pelzl,"Understanding Cryptography", 372 faqe
  2. ^ Man Young Rhee, "Internet Security Cryptographic Principles, Algorithms and Protocols"
  3. ^ Cristoph Paar,Jan Pelzl,"Understanding Cryptography", 372 faqe
  4. ^ Cristoph Paar,Jan Pelzl,"Understanding Cryptography", 372 faqe
  5. ^ Berat Osmani, "Ushtrime nga Siguria e të Dhënave"
  6. ^ Cristoph Paar, Jan Pelzl, "Understanding Cryptography"
  7. ^ Petitcolas, Fabien A.P., “Information Hiding: Techniques for Steganography and Digital Watermarking.”, 2000.
  8. ^ Cristoph Paar,Jan Pelzl,"Understanding Cryptography", 303 faqe
  9. ^ Berat Osmani,"Ushtrime nga Siguria e të Dhënave"
  10. ^ Berat Osmani,"Ushtrime nga Siguria e të Dhënave"

KompjuterikeG

Nora Vula, Qëndresa Shabani, Besiana Abdyli, Albulena Abdyli, Nakije Iljazi