Nenshkrimi digjital

Nga Wikipedia, enciklopedia e lirë

Historiku[Redakto | Redakto nëpërmjet kodit]

Nënshkrimet digjitale në botën e sotme moderne janë esenciale për të verifikuar identitetin e dërguesit të një dokumenti. Nënshkrimi digjital është një mekanizëm autentikimi që i mundëson krijuesit të një mesazhi të bashkangjet një kod që vepron si një nënshkrim. Nënshkrimi formohet duke marrë vlerën hash te formuar nga plainteksti dhe duke e enkriptuar hash vlerën me çelësin privat të dërguesit (palës A nga skema ).Marrësi pas dekriptimit te ciphertekstit e gjenë vlerën hash të mesazhit te dekriptuar dhe këtë vlerë e krahason me vlerën hash të fituar nga dekriptimi i nënshkrimit digjital të pranuar (me çelsin adekuat publik të dërguesit). Nëse këto vlera hash janë të barabarta ateherë mesazhi nuk ka ndryshuar gjatë rrugës dhe nëse ato janë të ndryshme atëher mesazhi ka ndryshuar.

Nënshkrimet digjitale përdoren për të zbuluar modifikime të paautori- zuara të të dhënave.Gjithashtu, marrësi i një dokumenti të nënshkruar në mënyrë digjitale i provon një pale të tretë që dokumenti ishte nënshkruar me të vërtetë nga personi të cilit i është kërkuar që të nënshkruaj. Kjo është e njohur si jomohueshmëri, sepse personi që e nënshkruan dokumentin nuk mund ta mohoj nënshkrimin më pas.Me nënshkrim digjital arrihet autentikimi dhe jomohueshmëria.

Kërkesa (requirments)[Redakto | Redakto nëpërmjet kodit]

  • Nënshkrimi duhet të jetë një model që varet mbi mesazhin që nënshkruhet.
  • Nënshkrimi duhet të përdor disa informacione unike te dërguesi për të parandaluar falsifikimin dhe mohimin.
  • Duhet të jetë relativisht e lehtë për të prodhuar nënshkrimin digjital.
  • Duhet të jetë relativisht e lehtë për të njohur dhe verifikuar nënshkrimin digjital.
  • Duhet të jetë e pamundshme për ta krijuar me anë të llogaritjeve kompjuterike një nënshkrim digjital, as duke krijuar një mesazh të ri për një nënshkrim digjital ekzistues ,as duke krijuar një nënshkrim digjital mashtrues për një mesazh të caktuar.
  • Duhet të jetë praktike ruajtja e një kopje të nënshkrimit digjital në memorie.
  • Nëse verifikimi i nënshkrimit dështon për shkak se të dhënat janë ndryshuar, sistemi për nënshkrim digjital duhet të jetë i aftë për të identikuar për përdoruesit se cilat elemente të të dhënave u ndryshuan.
  • Sistemi duhet të përfshijë një timestamp me të dhënat e nënshkruara për të treguar kur është gjeneruar nënshkrimi.
  • STANDARDET[Redakto | Redakto nëpërmjet kodit]

    Digital Signature Standard (DSS) është algoritmi Digital Signature (DSA) i zhvilluar nga Agjencia e Sigurisë Kombëtare të SHBA (NSA)për të gjene- ruar një nënshkrim digjital për autentikimin e dokumenteve elektroni- ke. DSS u parashtrua nga Instituti Kombëtar i Standarteve dhe Teknolo- gjisë (NIST)në vitin 1994.DSS është specifikuar në Standardin Federal për përpunimin e informacionit (FIPS). Ka tre algoritme që janë të përshtatshme për gjenerimin e nënshkrimit digjital nën standardin DSS. Ata janë Algoritmi Digital Signature DSA,algoritmi RSA, dhe ai eliptik Digital Signature Curve Algoritmi (ECDSA). Gjithashtu në këtë standard edhe hash funskioni merr pjesë gjatë procesit të gjenerimit.Përdoret për të fituar një version përmbledhës të dhënave të njohur si message digest. Ky message digest vihet pastaj në algoritëm për të gjeneruar mesazhin e nënshkruar në mënyrë digjitale. I njejti funskion hash përdoret edhe në procesin e verifikimit. Funksioni hash i përdorur në standardin DSS është specifikuar në Standard Secure Hash (SHS), të cilat janë specifikat për Secure Hash Algorithm (SHA).. Kur një mesazh i çfarëdo gjatësie <264 bit është hyrje, dalja SHA prodhon një 160-bit (message digest). Nënshkrimi message digest në vend të mesazhit shpesh përmirëson efikasitetin e procesit, sepse message digest është zakonisht shumë më i vogël .

    Algoritmi për nënshkrime digjitale[Redakto | Redakto nëpërmjet kodit]

    Klaset RSA dhe DSA qe fitohen nga derivimi i klasëve abstrakte të alogritmeve asimetrike rekomandohen që në shumicën e rasteve të përdorin implementimin e siguruar nga .NET Shembull të parë mund ta marrim përdorimin e klasës DSACryptoServiceProvider, nga e cila përdorim metodat SignedData() dhe VerifyData(). SignedHash merr 3 parametra, mesazhin në bajta,0,dhe gjatësinë e mesazhit psh : byte [] signedHash=dsaA.SignData(byte[] mesazhi,0,mesazhi.length); Ndërsa verifydata mer 2 parametra, mesazhin fillestar në bajta dhe signedhash të fituar më lartë: dsaB.verifyData(byte[] mesazhi , signedHash); DSA mbështetet në SHA1 algoritmin.Kur e thërrasim SignData() meto-dën ajo krijon një SHA1 hash,dhe pastaj e kripton duke perdoruar DSA. Këtë punë mund ta kryejm edhe duke përdorur SHA1CryptoServiceProvider për të krijuar hash kodin me metodën SignHash() dhe VerifyHash() metoda poashtu te DSA’s.Mirëpo duke përdorur metodën VerifyData() është më lehtë dhe më konvensionale. Ajo gjithashtu kryen punën e lodhshme të krahasimit hash bajtave. Metoda SignedData() gjithashtu ofron dy mbingarkesa, të cilat ju lejojnë të krijoni një nenshkrim për një pjesë nga një bajt array në një stream.RSACryptoServiceProvider përmban verzione tjera të metodave: SignData() dhe VerifyData(). Këto metoda pranojn parametra shtesë,që specifikojn se cfarë hash algoritmi duhet të përdorim.Sido që të jetë mund te perdorim vetëm algoritmet që janë të mbështetura nga CryptoApi. SignData() përveq parametrave te njejtë sikurse tek DSA këtu parametri i 4 është se cilin algoritëm për hash do ta përdorim.psh md5.create();

    Referimet[Redakto | Redakto nëpërmjet kodit]

    Cryptograpghy Network Security principles and practice c# data security Mat thew MacDonald, Erik Johansson https://web.archive.org/web/20130618120928/http://www.gradkell.com/pdf/DBsign-Requirements6.pdf DSS: Digital Signature Standard and DSA Algorithm