Download presentation
Presentation is loading. Please wait.
1
SIGURIA E TË DHËNAVE
2
KRIPTOGRAFIA STEGANOGRAFIA ENKRIPTIMI SIMETRIK ASIMETRIK NËNSHKRIMI DIGJITAL
3
Kriptografia–është shkenca matematiko-teknike për ruajtjen e sigurisë së shënimeve në aspekt të:
Confidentiality(privacy)–fshehtësia Integrity–kompakte, çdo ndërrim detektohet Authentication –verifikimi i partnerëve paraprocesit të komunikimit Non-repudiation–jomohueshmëria
4
PËRDORIMI I KRIPTOGRAFISË
KODI I CEZARIT KODI I XHEFERSONIT ENIGMA
5
STEGANOGRAFIA
8
Ngjarja zhvillohet në ShBA në fillim të viteve të ‘70
NSA (US National Security Agency) Në vitin 1972: ish NBS (National Bureau of Standards) tani NIST (National Institute of Standards and Technology) kanë parashtruar kërkesat për mbrojtje të shënimeve Të zhvillohet një algoritëm për enkriptim
9
KODI I CEZARIT (CAESAR’S CIPHER)
MESAZHI (PLAINTEXT) A B C D E F G H I J K L M N O P Q R S T U V ë X Y Z MESAZHI I ENKRIPTUAR (CIPHERTEXT) B C D E F G H I J K L M N O P Q R S T U V ë X Y Z A
10
ÇELËSI TE KODI I CEZARIT
ÇELËSI K=0 A B C D E F G H I J K L M N O P Q R S T U V ë X Y Z ÇELËSI K=1 B C D E F G H I J K L M N O P Q R S T U V ë X Y Z A ÇELËSI K=2 C D E F G H I J K L M N O P Q R S T U V ë X Y Z A B ………. DERI K=?
16
//Enkriptimi i mesazhit
private static byte[] caesarEncipher(byte[] message,int shift) { byte[] m2=neË byte[message.length]; for (int i=0;i<message.length;i++) m2[i]=(byte)((message[i]+shift)%256); } return m2; //Dekriptimi i mesazhit. private static byte[] caesarDecipher(byte[] message,int shift) m2[i]=(byte)((message[i]+(256-shift))%256);
17
TRANSPONIMI (ZHVENDOSJA) E
SHIFRAVE
18
ZËVENDËSIMI - NDRYSHIMI
TRANSPONIMI - RIPOZICIONIMI
19
FIVE AM LAST NITE IT ëAS CLOëNERY
IVEA MF LTTTSOEANEëCëRSIIALNY
20
L A S T N I E Ë C O ë R Y
21
TRANSPONIMI I DYFISHTË
LTTTSOEANEëCëRSIIALNY LTEEëILTSAëRINTONCSAY
22
LTTTSOEANEëCëRSIIALNY
23
TRANSPONIMI DIAGONAL A B C D E F G H I J K L
24
FIVE AM F I V E A M FEIAVM F E I A V M
25
ZËVENDËSIMI DHE TRANSPONIMI
26
SHPËNDARJA DHE HUTIMI 1 2 3 4 5 SHIFRAT E POLYBIUS –it A B C D E F G H
I/J K L M N O P Q R S T U V ë X Y Z
27
JESTER 24 15 43 44 15 42 1 2 3 4 5 A B C D E F G H I/J K L M N O P Q R
U V ë X Y Z
28
JESTER
29
javax.crypto
30
public class DesEncrypter {
Cipher ecipher; Cipher dcipher; DesEncrypter(SecretKey key) { try { ecipher = Cipher.getInstance("DES"); dcipher = Cipher.getInstance("DES"); ecipher.init(Cipher.ENCRYPT_MODE, key); dcipher.init(Cipher.DECRYPT_MODE, key); } catch (javax.crypto.NoSuchPaddingException e) { } catch (java.security.NoSuchAlgorithmException e) { } catch (java.security.InvalidKeyException e) { }
31
public String encrypt(String str) {
try { // Encode the string into bytes using utf-8 byte[] utf8 = str.getBytes("UTF8"); // Encrypt byte[] enc = ecipher.doFinal(utf8); // Encode bytes to base64 to get a string return neë sun.misc.BASE64Encoder().encode(enc); } catch (javax.crypto.BadPaddingException e) { } catch (IllegalBlockSizeException e) { } catch (UnsupportedEncodingException e) { } catch (java.io.IOException e) { } return null;
32
public String decrypt(String str) {
try { // Decode base64 to get bytes byte[] dec = neë sun.misc.BASE64Decoder().decodeBuffer(str); // Decrypt byte[] utf8 = dcipher.doFinal(dec); // Decode using utf-8 return neë String(utf8, "UTF8"); } catch (javax.crypto.BadPaddingException e) { } catch (IllegalBlockSizeException e) { } catch (UnsupportedEncodingException e) { } catch (java.io.IOException e) { } return null;
33
try { // Generate a temporary key. In practice, you ëould save this key. // See also e464 Encrypting ëith DES Using a Pass Phrase. SecretKey key = KeyGenerator.getInstance("DES").generateKey(); // Create encrypter/decrypter class DesEncrypter encrypter = neë DesEncrypter(key); // Encrypt String encrypted = encrypter.encrypt("Don't tell anybody!"); // Decrypt String decrypted = encrypter.decrypt(encrypted); } catch (Exception e) {}
34
SITA E ERATOSTENIT 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
35
2 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59
36
2 3 5 7 11 13 17 19 23 25 29 31 35 37 41 43 47 49 53 55 59
37
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 49 53 59
38
NUMRAT E THJESHTË 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59
39
ENKODIMI MATRICOR AX=B C ≡ AP + B (mod n) P - POROSIA C – POROSIA E ENKRIPTUAR B=0 → ENKODIMI I HILLIT (HILL CIPHERS)
40
AP + B ≡ C (mod n) AP ≡ C - B (mod n) P ≡ IP ≡ A`AP ≡ A`(C - B) (mod n). A` - MATRICA INVERSE E A
41
Ekzistenca e A` det(A)= 0 Për A (mod 26), A` ekzston atëherë dhe vetëm atëherë kur GCD(det(A),26)=1. GCD është algoritmi i Euklidit për gjetjen e pjestuesit më të madh të përbashkët
42
public class GCD { public int GCD(int x,int y) { if (x<y) { int temp=x; x=y; y=temp; } if (x%y==0) { return y; } else { return GCD(y,x%y); } } }
43
int[][] c=neë int[m1.length][m2[0].length];
public static int[ ][ ] shumezo(int[ ][ ] m1,int[ ][ ] m2) { int[][] c=neë int[m1.length][m2[0].length]; if (m1[0].length != m2.length) { System.out.println("Gabim ne rendin e matricave”); System.exit(0); } else { for (int i=0; i!=m1.length; i++) for (int j=0; j!=m2[0].length; j++) for (int k=0; k!=m2.length; k++) c[i][j]=c[i][j]+m1[i][k]*m2[k][j]; } return c; }
44
public static int[][] shkruaj(int a,int b)
{ int[][] z=neë int[a][b]; for (int i=0; i<a; i++) { for (int j=0; j<b; j++) { String f=JOptionPane.shoëInputDialog("Jepni vleren e m["+i+"]["+j+"]"); z[i][j]=neë Integer(f).intValue(); } } return z; }
45
SHEMBULL THE END TH EE ND TH= , EE= , ND=
47
A`=
49
DOBESITE E KRIPTOSISTEMIT MATRICOR
50
↓
51
1*a+20*b+s=2(mod 26) 1*c+20*d+t=20(mod 26) 20*a+1*b+s=7(mod 26) 20*c+1*d+t=20(mod 26)
52
3*a+11*b+s=8(mod 26) 3*c+11*d+t=13(mod 26)
53
1*a+20*b+s=2(mod 26) 20*a+1*b+s=7(mod 26) 3*a+11*b+s=8(mod 26)
1*c+20*d+t=20(mod 26) 20*c+1*d+t=20(mod 26) 3*c+11*d+t=13(mod 26)
55
(Transposition Cipher)
Permutation Cipher (Transposition Cipher) Supozojmë m=6 (gjatësia e bllokut) dhe celësi është pemutacioni në vijim: π: dhe inversi i permutacionit π-1: 1 2 3 4 5 6 1 2 3 4 5 6
56
Supozojmë plaintext-in:
siguriaetedhenavenekompjuter Së pari i grupojmë në blloqe me gjatësi 6: siguri | aetedh | enaven | ekompj | uter Tani secila shkronjë në grupin prej gjashtë i ndërrohet pozita varësisht nga permutacioni π, dhe si rezultat vjen:
57
siguri aetedh enaven ekompj uterxx grsiui tdahee aeenvn opejmk exuxrt
58
grsiui tdahee aeenvn opejmk exuxrt siguri aetedh enaven ekompj uterxx
Ciphertext-i mund të dekriptohet me anë të invesit të permutacionit π pra π-1: grsiui tdahee aeenvn opejmk exuxrt siguri aetedh enaven ekompj uterxx
59
Le të jëtë permutacioni π me bashkësinë{1, . . . , m},
Permutation Cipher është rast i vecant i Hill Cipher Le të jëtë permutacioni π me bashkësinë{1, , m}, mund të bëjmë definimin e një matrice te rendit m ×m Kπ = (ki,j) bazuar në formulën e mëposhtme:
61
STREAM CIPHER y=y1y2 …=ek1(x1) ek2(x1) … z1,y1,z2,y2, … z1,x1,z2,y2, …
62
ez(x)=x + z mod 2 dz(y)=y + z mod 2 zi+m=
63
zi+4=zi + zi+1 mod 2 z=(1,0,0,0) 1,0,0,0,1,0,0,1,1,0,1,0,1,1,1, …
64
CHINESE REMAINDER THEOREM
Ka zgjidhje unike M=m1m2m3…mn x=a1M1M`1+a2M2M`2+a3M3M`3+…+anMnM`n (mod M) ku Mi=M/mi dhe M`i është inversi i Mi (mod mi)
68
Enkriptimi i bazës së të dhënave
69
Gjejmë inversin për Mi (mod pi)
75
Fuqizimi modulo (Modular exponentiation)
Gjejmë c, për b dhe e>0 ashtu që Gjejmë c, për b dhe e<0 ashtu që d – inversi i b (mod m)
76
Metoda direkte b = 4, e = 13, and m = 497: c ≡ 413 (mod 497) be = be mod 497 =445 c=445.
77
b – një shifror e – dy shifror be – dhjetë shifror Nëse b – 77 shifror e – 2 shifror be – 1309 shifror b = 5 * , e = 17
78
Metoda Memory-efficient
c ≡ be (mod m) Algoritmi 1o c = 1, e' = 0. 2o rrisim e' për 1. 3o vejmë c≡(b * c) (mod m). 4o nëse e' <= e, kalo te hapi 2o përndryshe c është përgjigja
79
Shembull: b = 4, e=13 , m = 497 e' = 1. c = (1 * 4) mod 497 = 4 mod 497 = 4. e' = 2. c = (4 * 4) mod 497 = 16 mod 497 = 16. e' = 3. c = (16 * 4) mod 497 = 64 mod 497 = 64. e' = 4. c = (64 * 4) mod 497 = 256 mod 497 = 256. e' = 5. c = (256 * 4) mod 497 = 1024 mod 497 = 30. e' = 6. c = (30 * 4) mod 497 = 120 mod 497 = 120. e' = 7. c = (120 * 4) mod 497 = 480 mod 497 = 480. e' = 8. c = (480 * 4) mod 497 = 1920 mod 497 = 429. e' = 9. c = (429 * 4) mod 497 = 1716 mod 497 = 225. e' = 10. c = (225 * 4) mod 497 = 900 mod 497 = 403. e' = 11. c = (403 * 4) mod 497 = 1612 mod 497 = 121. e' = 12. c = (121 * 4) mod 497 = 484 mod 497 = 484. e' = 13. c = (484 * 4) mod 497 = 1936 mod 497 = 445.
80
Algoritmi i ngritjes në katror
2340 = x (mod 341) = 2340 =(2170)2 =((285)2)2 =((22*42+1)2)2 =((2(242)2)2)2 =((2((221)2)2)2)2 =((2((22*10+1)2)2)2)2 =(((2((2(210)2)2)2)2)2)2 =(((2((2(25*2)2)2)2)2)2)2 =(((2((2((25)2)2)2)2)2)2)2 =(((2((2((22*2+1)2)2)2)2)2)2)2 =(((2((2((2(22)2)2)2)2)2)2)2)2
81
=(((2((2((2(22)2)2)2)2)2)2)2)2 =(((2((2((2(4)2)2)2)2)2)2)2)2 =(((2((2((32)2)2)2)2)2)2)2 322=1024 mod 341 = 1 =(((2((2((1)2)2)2)2)2)2)2 =(((2((2)2)2)2)2)2 =(((2(4)2)2)2)2 =((1)2)2 = Pra = 1 (mod 341)
82
RSA Ron Rivest, Adi Shamir dhe Leonard Adleman
Faktorizimi i numrave të thjeshtë Zgjedhen dy numra të thjeshtë p dhe q Llogaritet n=p*q, ku n përdoret si modulus për te dy çelësat privat dhe publik, Llogaritet Φ(n)=(p-1)*(q-1), Zgjedhet një numër e i tillë që 1<e< Φ(n) dhe GCD(e, Φ(n))=1 e është çelësi publik, Llogaritet d ashtu që d * e = 1 (mod Φ(n)) dhe d është çelësi privat
83
Enkriptimi c=me mod n c – porosia e enkriptuar Dekriptimi m=cd mod n m – porosia e dekriptuar
84
p=61 q=53 Shembull: n = 61*53=3233, Φ(n)=(61-1)*(53-1)=3120,
Çelësi publik e = 17 sepse 1<e< Φ(n) dhe GCD(e, Φ(n) )=1, Gjejmë d të tillë që d*e=1 mod Φ(n), pra gjejmë d = 1/17 (mod Φ(n)), Algoritmi i zgjeruar i Euklidit d = 2753 çelësi privat Pra çifti (3233,17) është çelësi publik çifti (3233,2753) është çelësi privat
85
Nëse bëjmë enkriptimin e numrit 123
c = mod 3233 c = 855 Dekriptimi m = mod 3233 m = 123
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.