Nënshkrimi dixhital
Nënshkrimi digjital ose skema e nënshkrimit digjital është një skemë matematikore për demonstrimin dhe origjinalitetin e një mesazhi digjitale apo dokumenti digjital. Nënshkrimet digjitale sigurojnë integritetin e mesazhit , autentifikimin e dërguesit , jo mohueshmërin.[1]. Një nënshkrim mund të prodhohet në mënyrë korrekte vetëm nga një individ i vetëm, por ai mund të verifikohet nga kushdo që e din çelësin publik dhe e merr atë mesazh të nënshkruar[2]. Nënshkrimi digjital valid e bënë marrësin e mesazhit të besoj se ai mesazh ështe krijar nga dërguesi i pretenduar, në atë mënyrë që dërguesi nuk mund ta mohoj dërgimin e ati mesazhi (autentifikimi dhe jo-mohueshmeria) dhe se ai mesazh nuk ka ndryshuar gjatë rrugës (integriteti).[1]. Nënshkrimet digjitale janë përdorur zakonisht për shpërndarje softuerëve, transaksioneve financiare, si dhe në raste të tjera ku është e rëndësishme për të zbuluar falsifikimin apo ngatërrimet.
Shpjegimi
[Redakto | Redakto nëpërmjet kodit]Sipas Tanenbaum (2007) shpesh është e nevojshme që në mënyrë digjitale ndonjë dokument të nënshkruhet. Shembull, kur ndonjë klient e informon bankën se nuk blen aksione, me anë të dërgimit të e-mail porosisë bankës. Një orë më vonë porosia është e dërguar dhe e kryer, mirëpo aksioni shkatërrohet. Klienti mohon se ka çuar porosi deri tek banka. Banka mund të tregon e-mailin, por klienti vazhdon të pohojë se ajo është falsifikuar me qëllim që të fitohet provizioni. Si do të dijë gjyqtari se kush e flet të vërtetën ? Nënshkrimet digjitale mundësojnë të nënshkruhet ndonjë e-mail porosi ose dokument digjital në mënyrë që të mos mohohet nga ana e dërguesit më vonë.
Një mënyrë është që të kryhet dokumenti nëpërmjet të hashing algoritmit të njëkahshëm (one-way hashing algoritmit) i cili rëndë invertohet.
Sipas Tanenbaum (2007) hashing funkcioni prodhon rezultat me gjatësi fikse pavarësisht nga madhësia e dokumentit origjinal. Hashing funkcionet më të popullarizuara janë: MD5 (Message Digest) i cili prodhon rezultat 16 bajtësh dhe SHA (Secure Hash Algorithm), i cili prodhon rezultat 20 bajtësh.
Hapi tjetër është shfrytëzimi i çelësit publik të kriptografisë. Pronari i dokumentit e përdor çelësin e tij privat që të fiton D (Hash). Kjo vlerë e quajtur nënshkrim bllok i shtohet dokumentit dhe dërgohet deri te marrësi.
Kur dokumenti i hashit arrin, marrësi së pari e kalkulon hashin e dokumentit duke përdorur MD5 ose SHA. Pastaj e përdor çelësin publik të dërguesit në bllok nënshkrimin që të fiton E (D(hash)).
Nëse hashi i kompjuterizuar nuk përputhet me hashin e nënshkrimit bllok, atëherë dokumenti është i ndërruar. Kjo metodë punon nëse për çdo x, E(D(x))=x ku sëpari kërkohet D(E(x))=x, E është funkcioni i enkriptimit, ndërsa D është funkcioni i dekriptimit. Që të përdoret shablloni i nënshkrimit, marrësi duhet të dijë çelësin publik të dërguesit. Disa shfrytëzues e shpallin çelësin e tyre publik në web adresën e tyre, ndërsa disa jo sepse kanë frikë që të mos ndryshohet çelësi.
Tek ato mund të përdoren mekanizma alternativ të distribuimit të çelësit publik.
Një metodë është që dërguesit t’i ngjesin certifikatë porosisë të cilën e dërgojnë e cila e përmban emrin e shfrytëzuesit, çelësin publik dhe nënshkrimin digjital nga ana e tretë e besuar.
Pasiqë shfrytëzuesi do të merr çelësin publik nga ana e tretë e besuar, mund të pranojë certifikatë nga të gjithë ato të cilët e përdorin këtë anë për t’i gjeneruar çertifikatat e tyre.
Principet e Nënshkrimeve Digjitale
[Redakto | Redakto nëpërmjet kodit]Hyrje
[Redakto | 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ë procedurë tjetër. 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.
Kërkesat për nënshkrimin digjital
[Redakto | Redakto nëpërmjet kodit]Në bazë të disa sulmeve dhe disa veçorive të cilat janë studiuar, këto janë kërkesat që është kërkuar t’i plotësoj një nënshkrim digjital.
Nënshkrimi duhet të jetë një model i bitit që varet nga mesazhi që po nënshkruhet
- Nënshkrimi duhet të përdor disa informacione unike të dërguesit për të parandaluar falsifikimin dhe mohueshmërinë
- Duhet të jetë relativisht e lehtë të prodhohet
- Duhet të jetë relativisht lehtë për ta njohur dhe verifikuar
- Duhet të jetë llogaritje matematikisht e parealizueshme për të krijuar një nënshkrim digjital duke e krijuar një mesazh të ri për nënshkrimin digjital ekzistues ose duke krijuar një nënshkrim digjital mashtrues për një mesazh të caktuar
- Duhet të jetë praktik që të ruaj një kopje të nënshkrimit digjital në memorie.[3]
Nënshkrimi Standard
[Redakto | 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 | 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.
- Gjenero një vlerë random salt.
- 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
- Logarisni vlerën Hsh të sstringut M_
- Lidhni një padding fiks dhe salt vlerën për të krijuar një bllok të shënash.
- 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.
- Vlerën e maskuar bëjeni XOR me bllokun e të dhënave.
- 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 | 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 | Redakto nëpërmjet kodit]- Zgjidhni një numër prime të madh p.
- Zgjedhni një element primitiv te Z∗p ose nëngrupi of Z∗p.
- Zgjedhni një integjer të rastësishëm d ∈ {2,3, . . . , p−2}.
- 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 | 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 | Redakto nëpërmjet kodit]- Zgjedhni një celës kalimtar kE ∈ {0,1,2, . . . , p − 2} ashtu që gcd(kE, p-1)=1.
- 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
- Logaritni vlerën t ≡R*r*rs mod p
- Verifikimi përfshinë t_≡Rx mod p =⇒nënshkrimi valid_≡Rx mod p =⇒nënshkrimi invalid.[1]
Qasja DSS
[Redakto | Redakto nëpërmjet kodit]DSS përdor një algoritëm që është projektuar për të siguruar vetëm punën e nënshkrimit digjital. Ky algoritm është DSA dhe për dallim nga RSA nuk mund të përdoret për enkriptim apo shkëmbim të çelësit. DSA është një metodë(teknikë) çelësit-publik.[3]
Sipas algoritmit RSA që të arrihet nënshkrimi i mesazhit së pari mesazhi futet në hash funksion i cili prodhon një kod të sigurt me gjatësi fikse ( hash kodin). Ky hash kod pastaj enkriptohet me çelësin privat të dërguesit(PRa) për të formuar nënshkrimin digjital, dhe të dy së bashku mesazhi plus nënshkrimi i formuar dërgohen.[3]
Marrësi pasi ta pranon mesazhin e merr dhe e prodhon një hash kod të tij, ndërsa nënshkrimin digjital e dekripton me çelësin publik të dërguesit(PUa). Nësë hash kodi i llogaritur përputhet me nënshkrimin e dekriptuar, atëherë ky nënshkrim pranohet si i vlefshëm pra është nënshkrimi i dërguesit të pretenduar.[3] Verifikimi i nënshkrimit përdoret për të përcaktuar nëse mesazhi apo dokumenti është ndryshuar një çelës publik.
Qasja e DSS gjithashtu e bën përdorimin e një hash funksioni.Sipas DSS gjithashtu mesazhi futet në hash funksion për të krijuar hash kodin i cili së bashku me një numër të rastësishëm k do të nënshkruhet me çelësin privat të dërguesit(PRa) mirëpo nënshkrimi varet edhe nga një sërë parametrash tjerë të cilët përbëjnë një çelës publik global (PUg). Rezultati është një nënshkrim i përbërë nga dy komponente të etiketuara(labeled) s dhe r. Në fund e marrim hash kodin e krijuar të mesazhit në hyrje dhe e bashkojmë me nënshkrimin për ti dërguar së bashku. Marrësi këtë mesazh të pranuar e fut në një funksion të verifikimit i cili varet nga çelësi public global(PUg) si dhe nga çelësi publik i dërguesit(PUa), i cili është ciftëzuar me çelësin privat të dërguesit. Rezultati që merret nga funksioni i verifikimit është një vlerë e cila është e barabartë me komponentën r të nënshkrimit nëse ai është valid. Funksioni i nënshkrimit është i tillë që vetëm dërguesi me njohuri të çelësit privat mund ta kishte prodhuar nënshkrimin e vlefshëm.[3]
Algoritmi per nënshkrimin digjital
[Redakto | Redakto nëpërmjet kodit]DSA bazohet në vështirësin e llogaritjes së logaritmeve diskrete.
Së pari zgjedhet një numër i thjesht q 160 bit. Pastaj një numër tjetër i thjesht p me gjatësi mes 512 dhe 1024 bit, I till që q pjeston (p - 1). Në fund zgjedhet një numër g që të jetë në formën h(p-1)/qmod p, ku h është një numër i plotë në mes të 1 dhe(p – 1) me një kufizim që g duhet të jetë më i madh së 1.
Me këta numëra çdo perdorues zgjedh një çelës privat dhe krijon një çelës publik. Çelësi privat x duhet të jetë një numër në mes të 1 dhë (q – 1) dhe duhet të zgjedhet në mënyrë të rastësishme. Çelësi publik llogaritet nga çelësi privat në këtë formë y = gx mod p. Kjo llogaritje e çelësit publik duke e ditur çelësin privat është relativisht e leht. Megjithatë duke e ditur çelësin publik y, besohët që është e pamundur që të llogaritet çelësi privat x.
Që të krijohet një nënshkrim, përdoruesi duhet të llogarit dy vlera r dhe s, te cilat janë në funksion të komponenteve të çelësit publik ( p, q, g ), të çelësit privat të përdoruesit (x), të hash kodit të mesazhit H(M), dhe të një numri të plot k i cili duhet të jetë një numër i rastësishëm dhe unik për cdo nënshkrim.
Pranuesi e llogaritë një vlerë v që është funksion i komponenteve të çelësit publik të dërguesit, dhe hash kodit të mesazhit të pranuar. Nëse kjo vlerë është e njejtë me vlerën e komponentes r të nënshkrimit, atëhërë nënshkrimi është valid.[3]
Shiqo edhe ketu:
Bibliografia
[Redakto | Redakto nëpërmjet kodit]- Andrew S. Tanenbaum (2007), Modern Operating Systems (3rd ed.), Prentice Hall; 3 edition (December 21, 2007), ISBN 0-13-600663-9
- William Stallings (2009), Operating Systems: Internals and Design Principles (6th ed.), Prentice Hall, 6 edition (April 19, 2008), ISBN 0-13-600632-9
- William S. Davis, T.M. Rajkumar (2005), Operating Systems: A Systematic View (6th ed.), Publisher AdisonWesley, Inc.2005 (2005), ASIN: B0047T9K8S
COFFMAN, E.C., ELPHICK, M.J., and SHOSHANI, A.: “System Deadlocks,” Computing Surveys, vol. 3, pp. 67–78, June 1971.
- COMER, D.: Operating System Design. The Xinu Approach, Upper Saddle River, NJ: Prentice Hall, 1984.