Title: Sisteme de programe pentru timp real
1Sisteme de programepentru timp real
- Universitatea Politehnica din Bucuresti
- 2007-2008
- Adina Magda Florea
- http//turing.cs.pub.ro/sptr_08
- si curs.cs.pub.ro
2Curs Nr. 2
- Criptologie si criptosisteme
- Numere aleatoare
- Operatii aritmetice cu numere mari
- Criptologie generalitati
- Criptosisteme conventionale
- Criptosisteme publice
- Standarde actuale
2
31. Numere aleatoare
- Numar intreg/real aleator intr-un domeniu dat si
cu o precizie fixata / Numar pseudoaleator - Generator de numere aleatoare - o multime de
stari S, o functie fS ? S si o stare initiala s0
- samanta. - Starile generatorului evolueaza dupa relatia
- sif(si-1), cu i 1,2,... gS ? (0,1)
- Perioada unui generator de numere aleatoare este
cel mai mic intreg pozitiv p a.i. - sipsi , i gt p ? 0
3
4Sunt numere aleatoare?
- Testul
- N numere intregi in intervalul 0, r ),
frecventa fiecarui numar din interval fiind fi (
i 0, r-1 ) - Distributii uniforme (aceeasi probabilitate)
4
51.1 Metoda congruent multiplicativa
- f (si1) ( bsi c ) mod m
- g ( si ) si/m
- s0 - samanta , b, c lt m, pozitivi
- f(si) ? 0, m-1
- int a Max
- a 0 sam
- for ( i 1 i lt N i )
- a i ( a i-1 b 1 ) m
5
61.1 Metoda congruent multiplicativa
- Cum se aleg m, s0 si b ?
- m trebuie sa fie mare perioada maxima (aproape
de limita cuvantului calculatorului) m poate fi
prim - b trebuie sa fie prim relativ la m.
- O alegere este b sa se termine cu ...x21 si x
sa fie par. - Cum calculez ?
- Fiecare valoare este mai mica decat cel mai mare
intreg, dar prima operatie ab1 duce la
overflow - Cum se elimina overflow-ul?
6
7Cum se elimina overflow-ul?
- Reprezentare pe 32 de biti - intereseaza pentru
rezultat numai ultimii 8 digiti. - Alegem a 1234567 b 31415821
- a si b se reprezinta ca doua polinoame in fct. de
x. - grad(p) ? N-1 grad(q) ? N-1 grad(pq) ? 2N-2
- p 104 p1 p0
- q 104 q1 q0
- p q ( 104 p1 p0 ) ( 104 q1 q0 )
- 108 p1 q1 104 ( p1 q0 p0 q1 )
p0 q0
(ab 1) mod m
7
8Generare numere aleatoare
- define m 100000000
- define m1 10000
- define b 31415821
-
- long int a 1234567
- long int mult( long int p , long int q )
- long int p0, p1, q0, q1
- p1 p / m p0 p m1
- q1 q / m1 q0 q m1
- return ((p0 q1 p1 q0) m1)m1 p0 q0)
m -
- long int random( )
- a ( mult( a, b ) 1 ) m
- return a
-
- // nr. aleatoare ?0,m-1
- // echiv rand() RAND_MAXm-1
108 p1 q1 104 ( p1 q0 p0 q1 ) p0
q0
8
91.2 Metoda congruent-aditiva
- Registru de deplasare cu feed-back
- Adunare
- 1111
- 0111, 0011, 0001, 1000, ...
- Pt. n biti se pot obtine secvente de max. 2n-1
numere distincte - n 31 sunt bune pozitiile 0 si una din pozitiile
4, 7, 8, 14, 19, 25, 26 sau 29.
9
10Metoda congruent-aditiva
- Adunare
- Considerand un sir de numere aleatoare a0 ak, se
obtin numere aleatoare in continuare - in 0, m-1 , astfel
- a k ( a k-b a k-c ) m ( b
lt c ) - min 2c-1 numere distincte
- Valori b 31, c 55
- a coada circulara
b
c
10
112 Operatii aritmetice cu numere mari
- Reprezentare
- Intregul 0120200103110001200004012314 cu N 28
digiti se reprezinta prin p(10) unde p este
polinomul - Calcul eficient al inmultirii a doua polinoame
p(x) si q(x) de grad N-1 - Produs de grad 2N-2 cu 2N-1 termeni
- Produs calculat direct N2 inmultiri
- Divide and conquer
- N par gt 2 polinoame de grad N/2
11
12Utilizare Divide and conquer
- p( x ) p0 p1x ... pN-1xN-1
- pi( x ) p0 p1 ... pN/2-1xN/2-1
- ps( x ) pN/2 ... pN-1xN/2-1
- Pentru a calcula p ( x ) q ( x ) sunt necesare
numai 3 inmultiri - Doua polinoame de grad N pot fi inmultite
folosind inmultiri
12
133 Criptologie - generalitati
- Criptografia - Proiectarea sistemelor de
comunicatie secreta - Criptoanaliza - Studiul metodelor de intelegere
a comunicatiilor secrete - Doua scopuri de baza
- Doua tipuri de criptosisteme
- - conventionale (criptosisteme simetrice)
- - publice (criptosisteme asimetrice)
13
144 Criptosisteme conventionale
14
15Criptosisteme conventionale
- Metode simple
- Cifrul lui Cezar a N-a litera din alfabet se
inlocuieste cu litera (Nk) din alfabet, unde k
este constant (Cezar lua k 3) - Substitutie simpla - Matrice cu 26 linii si 2
coloane care defineste substitutia literelor - Cifrul Vigenere se utilizeaza o cheie pentru a
determina valorile lui k care trebuie adaugate
fiecarei litere. - Fie cheia c1c2...cm.
- j ? 0
- pentru fiecare litera li din mesaj executa
- li din mesaj are indexul p in alfabet
- j ? ( j1 ) mod m
- alege cj din cheie
- fie k indexul lui cj in alfabet
- inlocuieste li cu litera din alfabet de index (
k p ) - sfarsit
15
16Criptosisteme conventionale
- Cifrul Vigenere se poate combina cu substitutia
simpla - Daca cheie ? mesaj ? Cifrul Vernam (one time pad)
- Masini de criptare/decriptare - primeste un numar
de chei adevarate, numite criptovariabile, care
sunt utilizate pentru a genera chei lungi - Generarea pseudocheii din criptovariabile este
asemanatoare cu metoda congruent aditiva (cu
registru) de la numere aleatoare - Pericol
- Dificultati ale sistemelor conventionale
16
175 Criptosisteme publice
- Idee fiecare utilizator are o cheie publica P
care poate fi cunoscuta de oricine si o cheie
secreta S cunoscuta numai de el. - Mesaj M
- E - cheia publica P a receptorului - C P ( M )
- R - cheia secreta S - M S ( C )
17
18Criptosisteme publice
- Conditii
- S ( P ( M ) ) M pentru fiecare mesaj M
- Toate perechile ( S, P ) sa fie distincte
- Deducerea lui S din P sa fie la fel de dificila
ca si decriptarea lui C - Atat S cat si P sunt usor de calculat
18
196. Standarde actuale
- Conventionale
- DES Data Encryption Standard
- AES Advanced Encryption Standard
- Publice
- RSA - Ron Rivest, Adi Shamir, and Leonard Adelman
- DSA Digital Signature Algorithm
- DSS Digital Signature Standard
- NIST (National Institute of Standards and
Technology, USA) lucreaza la Federal Public Key
Infrastructure va sustine semnaturile digitale
207 Criptosistemul public RSA
- Cheia de incriptare P este o pereche de intregi
( N, p ) cu p public - Cheia de decriptare S este o pereche de intregi
( N, s ) unde s este secret. - Aceste numere trebuie sa fie foarte mari, in
mod tipic N - 200 digiti iar p si s aproximativ
100 digiti - Metoda de criptare/decriptare
- 1. Se imparte mesajul in k grupri de biti M1Mk
- 2. Se incripteaza mesajul astfel C P(M)
C1Ck - unde Ci (Mpi) mod N ? R
- 3. Receptorul decripteaza mesajul
- M S(C) M1...Mk unde Mi (Csi) mod N
20
21Modul de alegere a p si s
- 1. Se genereaza trei numere aleatoare prime mari
( 100 digiti ) x, y, z. - 2. Cel mai mare dintre acestea este ales ca
valoare a lui s. - 3. Fie celelalte doua numere x si y.
- 4. N x y
- 5. p se alege astfel incat p s mod ( x-1 )
( y-1 ) 1. - Se poate demonstra ca, pt. aceste alegeri,
- Este sigur?
-
21
22Cum se genereaza un nr. prim f. mare?
- Se genereaza un nr. aleator f. mare se
testeaza daca este prim - Fie w numarul pentru care se testeaza daca este
prim. - 1. i ? 1, n ? 50
- 2. Determina a si m a.i. w12am , unde m este
impar si a este cea mai mare putere a lui 2 care
divide w-1. - 3. Genereaza un numar aleator b ?( 1, w )
- 4. j ? 0, z ? bm mod w
- daca (( j0 ) si ( z1 )) sau ( zw-1 )
- atunci executa pasul 9
- 6. daca ( jgt0 ) si ( z1 ) atunci executa pasul 8
22
23Cum se genereaza un nr. prim f. mare?
- Iterat de n ori va raspunde incorect ca
numarul este prim cu o probabilitate de cel mult
1/4n - 7. j ? j 1
- daca jlta atunci z ? z2 mod w
- executa pasul 6
- 8. w nu este prim
- stop
- 9. daca iltn
- atunci i i 1 executa pasul 3
- altfel w este probabil prim
- sfarsit
23
24Discutie criptosisteme publice
- Toate abordarile se bazeaza pe calcule NP
- Problema daca se inlocuieste p (cu s asociat) cu
p (si s asociat) - Managementul de chei implica
- Genererarea cheilor
- Cautarea cheilor
- Distribuirea cheilor
- Incredere in cheile publice
- Cheile publice certificate de cheie (digitale)
- Cheia secreta cheie incriptata cu o parola
24
25Certificate digitale
- Certificate digitale verifica daca o cheie
publica apartine unui individ - Un certificat contine
- Un nume si cheia publica
- Data de expirare
- Numele autoritatii de certificare
- Numar de serie
- Semnatura digitala a autoritatii de certificare
- Receptorul verifica un certificat folosind cheia
publica a autoritatii de certificare - Se autentifica astfel semnaturile digitale ale
mesajelor - Lungimea cheii 1024 bits.
- 512 bits nesigur
- 2048 , 4096 bits.
- In practica, 512-bit key.
25
268. Criptosisteme conventionale - DES
- Criptare sir
- Criptare blocuri
- Simetrice mai rapide
- Simetrice fnct de incriptare reversibila
- Criptare pe blocuri
- p1,p2 -gt p2,p1 --- runda
- p2 p2 f(p1,cheie)
- f - functie hash unidirectionala
- Dim bloc 64, 128 bits sau variabila
- Dim cheie 40, 56, 64, 80, 128, 192, 256 bits
26
27Functie hash unidirectionala
- F hash cu proprietati suplimentare securitatea
informatiei - fiind dat h greu de aflat m al h hash(m)
- fiind dat m1- greu de gasit m2ltgtm1 ai
hash(m1)hash(m2) - greu de gasit m1 si m2 ai hash(m1)hash(m2)
- F hash mesaj de lungime variabila intr-o iesire
de lungime fixa - Imparte intrarea in 2 parti, fiecare se comprima
cu o functie de compresie
27
28DES Data Encryption Standard
- Data Encryption Standard (DES) adoptat ca
standard in USA in 1977 (IBM Lucifer) de FIPS
(Federal Information Processing Standard of USA) - Foloseste o cheie de 56-bits insuficient
- Varianta Triple-DES (TDES or 3DES) foloseste o
cheie mai lunga - Advanced Encryption Standard (AES) se crede ca
va fi mai bun ca DES (si 3DES)
28
29DES Mod de functionare
- Criptarea si decriptarea utilizeaza aceeasi cheie
k decriptarea este reversul criptarii - Algoritm lucreaza pe blocurilor de date de 64 de
biti pe baza unei chei de 56 de biti. - 16 runde de criptare
- Permutare initiala IP si finala FP
- Blocul spart in 2 blocuri de 32 biti prelucrate
alternativ schema Feistel - Initial proiectat pt incriptare hardware
- Sigur pt scopuri comerciale
- Un calculator foarte puternic poate sparge DES
prin forta bruta
29
30DES Mod de functionare
- Algoritm pt. criptarea si decriptarea blocurilor
de date de 64 de biti pe baza unei chei de 56
(64) de biti. - Blocul de criptat
- 1) Permutare initiala IP
- 2) Calcul complex care depinde de cheie o
functie f - functia de criptare (Feistel), si o
functie KS - planificarea cheii (selecteaza 56 de
biti) - 3) Permutare inversa a cele initiale FP IP-1
30
31DES Mod de functionare
- 2) Calcul
- 16 iteratii functia f opereaza asupra a 2
blocuri unul de 32 biti si unul de 48 de biti ?
un bloc de 32 de biti - Blocul de intrare 64 biti L (32) R (32)
- K un bloc de 48 biti ales din cheia KEY de 56
biti - La fiecare iteratie, blocul K este diferit
- Kn KS(n,KEY)
- n?1,16, Kn functie care permuta o selectie
de biti din KEY - Pt un bloc Ln-1Rn-1, iesirea LnRn a unei iteratii
este - Ln Rn-1 Rn Ln-1 ? f(Rn-1,Kn)
31
32DES Mod de functionare
32
33DES Mod de functionare
- Functia de criptare (f)
- E (bloc de 32) ? Cheie (48) produce 32 biti
- 4 etape
- Expansiune permutare de expansiune E de la 32
la 48 - Mixare cheie XOR cu 48 biti din cheie planif
cheie (16 subchei) - Substitutie 8 bucati de 6 biti 8 bucati de 4
biti transformare neliniara tabela de
substitutie ? - Permutare biti rearanjati printr-o permutare
finala - Alternarea substitutiei cu permutarea si
expansiunea creeaza confuzie si difuzie
Shannon
33
34DES Mod de functionare
- Planificarea cheii
- Permuta cheia de 64 PC1
- Selecteaza 56 biti initial
- Impart in 2 bucati de 28 biti
- La fiecare runda ambele bucati sunt rotite la
stanga cu 1,2 biti si apoi selectez subcheia de
48 de biti printr-o functie de permutare PC2 24
biti din stanga si 24 biti din dreapta
34
35DES Atac
- Cheia 56 biti de incercat 72,057,594,037,927,93
6 chei posibile - 1998 - Electronic Frontier Foundation (EFF)
- Au construit un calculator dedicat DESCHALL care
poate decripta un mesaj care incearca toate
cheile posibile in mai putin de 3 zile. - Cost calculator lt 250,000
- Cauta 88 miliarde chei/sec
- COPACOBANA Cost Optimized Parallel Code Breaker
Germania
35
36DES Modele de operare
- ECB Electronic Codebook DES direct
- CBC Cipher Block Chaining DES extins care
inlantuie blocuri de text incifrat - CFB Cipher Feedback utilizeaza text incriptat
anterior ca intrare pt. DES si genereaza iesiri
care sunt combinate cu textul neincriptat pentru
a produce text incriptat - TDES Triple Data Encryption Standard
36
37Triple DES
- Triple-DES dupa ce s-a aratat vulnerabilitatea
DES - Foloseste 3 chei DES de 56 biti lungime cheie
totala 168 biti - Incriptare folosind DES cu prima cheie de 56 biti
- Incriptare folosind DES cu a doua cheie de 56
biti - Incriptare folosind DES cu a treia cheie de 56
biti - Decriptarea la fel, in sens invers
37
38- 9 Sisteme combinate
- RSA si DES pot fi folosite impreuna
- DES viteza mare, RSA management convenabil
- Un mesaj incriptat cu DES
- Emitatorul utilizeaza cheia publica (RSA) a
receptorului pt incriptarea cheii DES - Mesajul DES incriptat cheia DES incriptata cu
RSA sunt trimise receptorului intr-un plic
digital RSA. - Cand plicul este primit de receptor, receptorul
decripteaza cheia DES cu cheia lui RSA privata
apoi utilizeaza cheia DES pt decriptare mesaj.
38
3939
40- Criptarea conventionala cam de 1, 000 de ori
mai rapida decat cea publica - O cheie conventionala de 80 biti este echivalenta
ca putere cu o cheie publica de 1024 biti - O cheie conventionala de 128 biti este
echivalenta ca putere cu o cheie publica de 3000
biti
40
41- PGP (Phil Zimmermann, 1991)
- PGP combina avantajele sistemelor publice si
conventionale - Criptosistem hibrid
- Intai comprima textul
- De ce?
- Mai scurt, mai repede de transmis
- Creste securitatea prin eliminarea sabloanelor
- (fisierele care sunt prea scurte sau care nu se
comprima bine nu sunt comprimate)
41
42- PGP creaza o cheie de sesiune, o cheie secreta
one-time-only. - Cheia numar aleator generat pe baza miscarilor
mouse si taste apasate - Se foloseste cheia intr-un sistem conventional
- Cheia de sesiune se incripteaza cu cheia publica
a receptorului - Se transmite cheia de sesiune criptata textul
incriptat - Decriptarea - invers
42
43- Certificat digital PGP
- Un certificat PGP
- Numarul versiunii PGP identifica versiunea de
PGP utilizata pentru crearea cheii asociata
certificatului - Cheia publica din certificat a persoanei cheia
publica algoritmul cheii RSA, DH
(Diffie-Hellman), or DSA (Digital Signature
Algorithm). - Informatii referitor la persoana nume, id, poza,
etc. - Semnatura digitala a proprietarului
certificatului self-signature semnatura ce
utilizeaza cheia privata corespunzatoare cheii
publice din certificat - Perioada de validitate a certificatului data de
incepere a validitatii si data de expirare - Algoritmul de criptare simetric preferat pentru
cheie CAST, IDEA or Triple-DES.
43