Cyfer - PowerPoint PPT Presentation

About This Presentation
Title:

Cyfer

Description:

Cyfer biblioteka kriptografskih funkcija Senko Ra i Vrste kriptografskih algoritama Funkcije za izra unavanje sa etka poruke (message digest, hash algorithms ... – PowerPoint PPT presentation

Number of Views:75
Avg rating:3.0/5.0
Slides: 19
Provided by: Senk152
Category:
Tags: cyfer

less

Transcript and Presenter's Notes

Title: Cyfer


1
Cyfer biblioteka kriptografskih funkcija
  • Senko Rašic

2
Vrste kriptografskih algoritama
  • Funkcije za izracunavanje sažetka poruke (message
    digest, hash algorithms)
  • Simetricni kriptografski algoritmi (symmetric
    block ciphers, symmetric stream ciphers)
  • Asimetricni kriptografski algoritmi (asymmetric
    ciphers, public-key algorithms)
  • Razmjena kljuceva (key-exchange)

3
Nacin rada hash algoritma
  • Funkcija sa izracunavanje sažetka poruke na
    osnovu poruke proizvoljno velike duljine racuna
    sažetak tocno odredene duljine
  • Poruka se nadopunjava i dijeli u blokove odredene
    duljine
  • Nad svakim blokom obavlja se funkcija sažimanja
  • Krajnji izlaz funkcije je sažetak poruke

4
Simetricni kriptografski algoritmi
  • Jasni tekst se kriptira enkripcijskom funkcijom
    ciji je parametar tajni kljuc
  • Kriptirani tekst ne daje nikakve informacije o
    jasnom tekstu ili kljucu
  • Isti kljuc koristi se i za enkripciju i za
    dekripciju (problem)
  • Algoritmi rade nad blokovima ili tokovima podataka

5
Rad simetricnog blok-algoritma (DES)
6
Asimetricni kriptografski algoritmi
  • Razliciti kljucevi za enkripciju i dekripciju
    riješen problem distribucije kljuceva
  • Dodatno omogucuju elektronicke potpise razmjenu
    sjednickih kljuceva
  • Baziraju se na jednosmjernim funkcijama s tajnim
    vratima cesto korišten problem je rastavljanje
    vrlo velikih brojeva na proste faktore
  • Spori koriste se u kombinaciji sa funkcijama za
    izracunavanje sažetka poruke i simetricnim
    kriptografskim algoritmima

7
Rad asimetricnih algoritama (RSA)
  • Generiranje kljuceva
  • generirati velike proste brojeve p i q
  • izracunati n pq, z (p 1)(q 1)
  • odabrati e tako da e i z budu relativno prosti
  • izracunati d takav da je ed 1 (mod z)
  • Enkripcija
  • poruka je cijeli broj m ? 0, n 1
  • kriptirana poruka je c me mod n
  • Dekripcija
  • kriptirana poruka je cijeli broj c ? 0, n 1
  • originalna poruka je m cd mod n
  • Elektronicki potpis je enkripcija privatnim
    kljucem (d, n)
  • Provjera potpisa obavlja se javnim kljucem (e, n)

8
Biblioteke kripto-algoritama
  • Sakrivaju od aplikacijskog programera zamorne
    detalje rada algoritama
  • Pružaju standardizirano programsko sucelje (API)
    za korištenje svih podržanih algoritama
  • Omogucuju izmjenu i dodavanje novih algoritama
    bez promjene aplikacija koje ih koriste
  • Vecinom organizirane oko infrastrukture javnog
    kljuca

9
Što je Cyfer?
  • Cyfer je low-level biblioteka kriptografskih
    funkcija
  • Ne sadrži podršku za infrastrukturu javnog kljuca
  • Ciljevi
  • Jednostavan API
  • Implementacija što više algoritama
  • Modularnost, proširivost
  • Prenosivost na razlicite platforme
  • Podrška za razlicite programske jezike

10
Organizacija biblioteke
11
Podržani algoritmi
  • Funkcije za izracunavanje sažetka poruke
  • MD2, MD4, MD5, RIPEMD-160, SHA-1, SHA-256, Snefru
  • Simetricni algoritmi
  • AES, Blowfish, DEAL, DES, DESX, TripleDES, IDEA,
    RC2, RC4, RC5, RC6, ThreeWay
  • Nacini rada simetricnih blok algoritama
  • ECB, CBC, CFB, OFB
  • Asimetricni algoritmi
  • RSA, ElGamal, LUC, Diffie-Hellman

12
Korištenje biblioteke (I)
  • Primjer racunanja sažetka poruke (C)
  • int l
  • // odabir algoritma
  • int type CYFER_Hash_Select(SHA-256, l)
  • char hash malloc(l)
  • // kreiranje konteksta
  • CYFER_HASH_CTX ctx CYFER_Hash_Init(type)
  • // obrada bloka podataka
  • CYFER_Hash_Update(ctx, poruka, 6)
  • // završetak algoritma, dobavljanje rezultata
  • CYFER_Hash_Finish(ctx, hash)

13
Korištenje biblioteke (II)
  • Primjer kriptiranja bloka podataka (Java)
  • byte kljuc Tajni kljuc.getBytes()
  • byte poruka skriveno.getBytes()
  • // inicijalizacija algoritma
  • BlockCipher c new cyfer.BlockCipher(
    Blowfish, kljuc, OFB, null)
  • // enkripcija
  • byte rezultat c.Encrypt(poruka)
  • String kriptirano new String(rezultat)

14
Korištenje biblioteke (III)
  • Primjer korištenja kriptografije javnog kljuca
    (Python)
  • inicijalizacija RSA algoritma
  • ctx cyfer.pk.Pk(RSA)
  • stvaranje privatnog i javnog kljuca
  • ctx.GenerateKey(1024)
  • izvoz kljuceva
  • kljucevi ctx.ExportKey()
  • enkripcija
  • kriptirano ctx.Encrypt(Poruka...)

15
Modularnost
  • Jednostavno proširivanje novim algoritmima
  • Novi algoritmi odmah dostupni aplikaciji koja
    koristi biblioteku, bez ponovnog prevodenja
  • Moguce izdvajanje pojedinog modula i korištenje
    izvan biblioteke
  • Elegantni dizajn smanjuje složenost sustava i
    mogucnost grešaka te olakšava održavanje
    programske podrške

16
Prenosivost
  • Cyfer se ne oslanja na posebnosti pojedinih
    operacijskih sustava
  • Ostvarenja algoritama ne ovise o poretku okteta u
    rijeci, niti o duljini rijeci (minimum je 32
    bita)
  • Prenosivost na gotovo sve platforme za koje
    postoji C prevodioc
  • Biblioteka je testirana na x86 (Linux, FreeBSD,
    Windows) i SPARC (Solaris) platformama

17
Podržani programski jezici
  • Niti jedan programski jezik nije savršen
  • Podržati što više programskih jezika kako se
    programera ne bi sputavalo
  • Biblioteka je pisana u C-u, za ostale jezike
    napravljeni su omotaci (wrappers)
  • Programsko sucelje (API) je konzistentno za sve
    jezike, no pojedini omotaci koriste posebnosti
    jezika (npr. objekte)
  • Podržani su C, C, C, Java, Python, Perl, PHP

18
Literatura
  • L. Budin, Operacijski sustavi 2 bilješke s
    predavanja, 2004
  • Menzes, Oorschot, Vanstone, Handbook of Applied
    Cryptography, 1996
  • Radovi studenata iz podrucja racunalne
    sigurnosti, http//sigurnost.zemris.fer.hr/
  • Specifikacije algoritama, standardi i razni
    clanci na Internetu
Write a Comment
User Comments (0)
About PowerShow.com