C3

> R o o t E n t r y C ` F 0 W o r d D o c u m e n t f ` q O b j e c t P o o l A @)T @)T C S u m m a r y I n f o r m a t i o n f ( C . | ! ” # $ % & ‘ ( ) * + 2 1 3 4 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z } ~ O b j I n f o 6 F o C o m p O b j 2 F x j _ 8 6 1 8 9 4 3 1 1 F u u _ 8 6 1 8 9 4 6 0 6 F u u 5 ! ” # % ) * + , . 2 3 4 5 7 ; < = > @ D E F G I M N O P R V W X Y [ _ ` a b d h i j k m q r s t v y F Microsoft Word Document MSWordDoc Word.Document.6 9 q > M PUB C C PRIV M Orice document cifrat cu cheia public( a partenerului , poate fi descifrat doar de c(tre acesta , cu ajutorul cheii secrete corespondente. Fig 5.2. Conceptul de criptosistem cu chei publice . Pentru a putea satisface cerin(ele de securitate , (i pentru a crea o mare varietate de prelucr(ri criptografice , am definit urmatoarele tipuri de servicii de tip criptosistem : (1)Criptosistem secven(ial (Streem Cipher). Se folose(te un generator de cheie pseudoaleatoare care este apoi (nsumat( modulo 2, pentru cifrare , cu textul clar . Pseudocodul de principiu, al serviciului este urm(torul : Criptosistem _secven(ial _este : { cere_nume_fi(ier M ; scrie(C,articol_header) ; dac( cheie pe dischet( atunci cere nume_fi(ier_cheie K ; { repet( p n sf r it fisier { cite(te ( M ,bloc) ; cite(te ( K, cheie ); bloc=bloc ( cheie ; / EMBED Equation.2 suma modulo 2 EMBED Equation.2 / scrie (C, bloc) ; } } altfel { cere_s(m(n(( (IO) ; repet( p n sf r it fi(ier { cite(te ( M , bloc ) ; genereaz(_cuv(nt_cheie(IO, cheie ) ; bloc = bloc ( cheie ; / EMBED Equation.2 suma modulo 2 EMBED Equation.2 / scrie ( C ,bloc ) ; } } } Criptosistem secven(ial cu reac(ie de text cifrat (Streem Cipher With Cipher Feedback-CFB) . Acest serviciu este similar cu cel anterior , doar c( se introduce o reac(ie (n generator din textul ob(inut prin cifrare .Reactia asigur( criptograme distincte , corespunz(toare la mesaje (n clar identice , (ngreun(nd un atac pentru deducerea cheii . Pseudocodul serviciului este urm(torul : Criptosistem_secven(ial_este: { cere_nume_fi(ier M ; scrie ( C, articol_header ) ; dac( cheie_pe_dischet( atunci { cere_nume_fi(ier_cheie K ; repet( p n EOF { cite(te ( M, bloc_nou ) ; cite(te ( K, cheie ) ; cheie_nou(=cheie ( bloc_vechi ; bloc_vechi=bloc_nou ( cheie_nou( ; scrie ( C, bloc_vechi ) ; } } altfel { cere_sam(n((( IO ) ; repet( p n EOF { cite(te ( M , bloc_nou ) ; genereaz(_cuv(nt_cheie(IO, cheie ) ; cheie_nou(=cheie ( bloc_vechi ; bloc_vechi=bloc_nou ( cheie_nou( ; scrie ( C ,bloc_vechi ) ; } } } Criptosistem secven(ial pe blocuri (Streem Blocked -nonlinear). Acest serviciu folose(te o func(ie F de cifrare simetric( iar cheia este rezultatul unui proces de generare pseudoaleatoare . Criptosistem_secven(ial_pe_blocuri_este; { cere_nume_fi(ier M ; scrie ( C ,articol_header ) ; dac( cheie_pe_dischet( atunci { cere_nume_fi(ier_cheie K ; repet( p n EOF { cite(te (M, bloc ) ; F_cifreaz( ( bloc, cheie ) ; scrie ( C, bloc ) ; } } altfel { cere_sam n (IO) ; repet( p n sf r it fi(ier { genereaz(_cuv(nt_cheie(IO, cheie ) ; F_cifreaz( ( bloc, cheie ) ; scrie ( C ,bloc ) ; } } } Criptosistem secven(ial pe blocuri cu reac(ie de text cifrat : Serviciul este similar cu cel anterior , cu deosebirea c( se introduce (n generatorul pseudoaleator o reac(ie din textul ob(inut prin cifrare . Criptosistem_secven(ial_pe_blocuri_cu_reac(ie_este; { cere_nume_fi(ier M ; scrie ( C ,articol_header ) ; dac( cheie_pe_dischet( atunci { cere_nume_fi(ier_cheie K ; repet( p n EOF { cite(te (M, bloc ) ; cite(te (K, cheie ) ; cheie_nou(=cheie ( bloc ; F_cifreaz( ( bloc, cheie_nou() ; scrie ( C, bloc ) ; } } altfel { cere_sam n (IO) ; repet( p n sf r it fi(ier { cite(te (M, bloc ) ; genereaz(_cuv(nt_cheie(IO, cheie ) ; cheie_nou(=cheie ( bloc ; F_cifreaz( ( bloc, cheie_nou( ) ; scrie ( C ,bloc ) ; } } } Criptosistem bloc (ECB- Electronic Code Book Mode ) . Acest serviciu face cifrarea clasic(, bloc cu bloc a textului clar , folosind fie un mecanism simetric , fie un criptosistem cu chei publice . Pseudocodul serviciului este urm(torul : Criptosistem_bloc _ este : { cere_nume_fi(ier M ; cere_cheie_cifrare ; genereaz(_cheile_itera(ie ; scrie ( C , articol_header ) ; repet( p n EOF { cite(te (M, bloc ); cifreaz( _ bloc ( bloc ) ; / EMBED Equation.2 simetric((F) sau cu chei publice EMBED Equation.2 / scrie (C ,articol_header ); } } (6)Criptosistem bloc cu reac(ie (CBC -Cipher Block Chaining Mode ) : Serviciul este similar cu cel anterior , cu deosebirea c( cifrarea se aplic( unei sume modulo 2 dintre blocul clar (i reac(ia de text cifrat. Pseudocodul serviciului este urm(torul : Criptosistem_bloc_cu_reac(ie_este : { cere_nume_fi(ier M ; cere_cheie_cifrare ; genereaz(_cheile_itera(ie ; scrie ( C , articol_header ) ; repet( p n EOF { cite(te (M, bloc_nou ); bloc= bloc_nou ( bloc; cifreaz( _ bloc ( bloc ) ; / EMBED Equation.2 simetric((F) sau cu chei publice EMBED Equation.2 / scrie (C ,articol_header ); } } (7)Criptosistem cu cifrare multipl( (Multiple Encryption) : Acest serviciu , necesar (n aplica(iile cu cerinte foarte (nalte de securitate , poate face o cifrare succesiv( a mesajelor cu ajutorul mai multor criptosisteme simetrice , la alegerea utilizatorului . Fiecare sistem de cifrare folose(te o cheie distinct( : Criptosistem_cifrare_multipl(_este : { cere_nume_fi(ier M ; cere_cheia_cifrare K / EMBED Equation.2 din ea se genereaz( cheile cheie1,cheie2,…,cheien EMBED Equation.2 / scrie (C, articol_header ) ; repet( p n EOF { cite(te (M, bloc ) ; pentru i=1, n execut( F_cifreaz(i (bloc, cheiei ) ; scrie ( C , bloc) ; } } (8)Criptosistem de tip Matyas_Mayer : Acest serviciu , de (nalt( securitate , aplic( succesiv aceea(i func(ie simetric( F, direct (i invers , cu dou( chei diferite ,k1 (i k2 .Pseudocodul serviciului este urm(torul : Criptosistem_Matyas_Mayer_este : { cere_nume_fi(ier M ; cere_cheie_cifrare K ; / EMBED Equation.2 din ea se genereaz( cheile cheie1,cheie2 EMBED Equation.2 / scrie (C, articol_header ); repet( p n EOF { citeste ( M , bloc); F_cifreaz( ( bloc, cheie1); F-1_descifreaz( (bloc , cheie2) ; F_cifreaz( ( bloc , cheie1) ; scrie ( C , bloc); } } 3.2 Semn(tura digital( Serviciul de semnatur( digital( (Digital Signature ) , trebuie s( asigure originea autentic( a unui mesaj , document sau fi(ier . Pentru aceasta , semn(tura trebuie s( asigure dou( cerin(e : s( depind( de mesaj ( pentru a nu putea fi mutat( de la un mesaj la altul ). s( depind( de emi((tor ( pentru a nu putea fi falsificat( ) . Semn(tura olograf( din documentele scrise , identific( autorul acestora . Ea certific( ca documentul este original (i con(ine acele informa(ii pe care autorul a vrut s( le trimit( . (n sistemele de semnatur( digital( , bazate pe cifruri cu chei publice , emi((torul unui document / mesaj / scrisoare va folosi cheia sa secret( pentru crearea semn(turii . Ea se aplic( nu mesajului original , ci unei valori rezumat ( digest ) , ob(inut( cu ajutorul unei func(ii de dispersie (hash) , valoare care are de obicei 128 de bi(i . Una din condi(iile esen(iale pentru algoritmii de dispersie este c( o schimbare de doar un bit al mesajului original s( produc( o avalans( de schimb(ri la ie(ire ( aproximativ 50% din bi(ii modifica(i (n valoarea rezumat ) . Receptorul mesajului semnat , poate verifica originea autentic( a acestuia ( (i integritatea ) cu ajutorul cheii publice a emi((torului . (n scopul realiz(rii acestui tip de serviciu , se folosesc criptosisteme D cu chei publice . Deoarece criptosistemele cu chei publice au o mare complexitate (i consum( un timp important , semn(tura D se aplic( unei forme condensate a mesajelor ( documente , fi(iere ) , ob(inute printr-o func(ie de dispersie Fh a s h .Serviciul are dou( func(ii diferite : creare semnatur( ; verificare semnatur( ; Explic(m pe scurt pseudocodul acestor dou( func(ii : Creare_semn(tur(_digital(_este ; { cere_nume_fi(ier M ; scrie ( C , articol_header ) ; repet( p n EOF { cite(te ( M, bloc) ; scrie ( C ,bloc ) ; F_hash ( bloc ) ; } cere_nume_fi(ier_cheie_secret( ; semneaz( S=DA( bloc ) ; scrie ( C,S) ; } Verificare_semn(tur(_digital(_este ; { cere_nume_fi(ier C; cite(te ( C ,articol_header) ; repet( p n EOF-1 { cite(te ( C , bloc ) ; scrie ( M , bloc ) ; F_hash ( bloc ) ; } cite(te ( C ,S ) ; cere_nume_fi(ier_cheie_public( M =EA(S) ; dac( M = bloc atunci OK ! altfel ALARM( ! } 3.3 Sigiliul digital Sigiliul digital asigur( dou( func(ii de securitate : confiden(ialitatea mesajelor ( documentelor , fi(ierelor ) , prin cifrare simetric( . autenticitatea originii lor prin semn(tur( digital( . Cele trei func(ii folosite s nt F ( cifrare simetric( ) , DA ( semnatur( digital() (i Fh a s h (dispersie) .Func(ia F de cifrare ,de tip bloc , poate fi f(cut( s( lucreze cu sau f(r( reac(ie . Pseudocodul serviciului este urm(torul : Creare_sigiliu_digital_este; { cere_nume_fi(ier M ; scrie ( C , articol_header ) ; cere_cheie K ; repet( p n EOF { cite(te ( M , bloc ) ; bloc1 = F_cifreaz((bloc ,K ) ; rezumat = F_hash( bR o o t E n t r y C ` `= 0 W o r d D o c u m e n t f ` q O b j e c t P o o l @)T @)T C S u m m a r y I n f o r m a t i o n f ( C | . ! ” # $ % & ‘ ( ) * + 2 1 3 4 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z } ~ < #< 7< << L< n< q< }< ~< < < < < < < < < < < < < < = = = %= (= .= S= U= w= |= }= = = = = = = = = = = = = = > > > *> ,> 6> :> A> Q> T> X> _> b> i> n> o> r> y> }> > > > > > @ @ @ @ @ @ TA WA YA \A A A B (B ,B 7B 9B @B CB HB TB WB YB `B iB pB qB sB tB yB B B B B B B B B B B B B B B B B B B B B B B C ‘C =C DC PC UC VC ^C _C cC dC kC lC rC xC C C C C C C C C C C C C C C C C C C C C C C C C C C C C D D „D #D +D ,D 5D 6D >D BD ID JD RD VD dD eD nD qD uD vD ~D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E &E ‘E 5E 8E =E >E FE JE PE UE [E \E ^E _E aE fE qE xE |E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E F F F F F F „F $F (F +F 7F 8F ;F @F EF KF RF _F iF nF sF uF yF F F F F F F F F F F F F F F G G G G !G &G 5G / R o o t E n t r y C ` L 0 W o r d D o c u m e n t f ` O b j e c t P o o l @)T @)T C S u m m a r y I n f o r m a t i o n f ( C | . 2 1 3 4 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { } ~ D o c u m e n t S u m m a r y I n f o r m a t i o n 8 F _ 8 6 1 8 9 1 7 8 7 > F @)T Q] _ 8 6 1 8 9 1 7 9 6 : F Q] d _ 8 6 1 8 9 2 0 0 6 6 F d d ! ” # % ) * + , . 2 3 4 5 7 ; < = > @ D E F G I M N O P R V W X Y [ _ ` a b d h i j k m q r s t v . +, 0 H P h p x Mada Software G b fghfghghfghf Oh +’ 0 H T ` l x fghfghghfghf YG F Buzatu Giani 7D G F Normal Unknown 11 Microsoft Word for Windows 95 @ @ @ @ O < > , > , . 1 @ & @ & MathType PSymbol – _ 8 6 1 8 9 2 0 1 2 2 F d d _ 8 6 1 8 9 3 7 9 5 . F d d _ 8 6 1 8 9 3 8 1 2 * F d n _ 8 6 1 8 9 4 0 0 7 & F n n _ 8 6 1 8 9 4 0 0 6 ” F n n _ 8 6 1 8 9 4 2 7 2 F n u _ 8 6 1 8 9 4 3 1 1 F u u _ 8 6 1 8 9 4 6 0 6 F u u _ 8 6 1 8 9 4 6 2 8 F u u O l e P I C L M E T A 0 0 & h 1 0 0 0 & q p 0 (0 & % % 0 ‘0 & ! 0 0 & H ! 0 0 & ( ! 0 &0 & h Y a ` 0 $0 & h Y ! 0 %0 & h ! 0 #0 & A 0 „0 & A 0 !0 & Y a ` 0 0 & ! 0 0 & Y ! 0 0 & ! ! 0 0 & ” ! ! 0 0 & x ! ! 0 0 & ” ! 0 0 & ! 0 0 & x ! 0 0 & ” ! 0 0 & x ! 0 0 & ! 0 0 & 0 0 & 0 0 & ( Q P 0 0 & # Q P 0 0 & 1 0 0 0 & 1 0 0 0 & q p 0 0 & q p 0 0 & Q P 0 0 & 1 0 0 0 & h 0 0 & h q p 0 0 & ! 0 0 & ! 0 0 & ! ! 0 0 & Q P 0 0 & 0 0 & h 1 0 0 0 & q p 0 0 & ( . 0 $ ! ! 0 0 & Q d !Q 0 0 & A 0 0 & ! Q d !Q 0 0 & 1 0 0 & Q d !Q 0 0 & Q P 0 0 & q 0 0 & 0 0 & H 1 A @ ( 0 0 & q A a d !Q . 0 $ H !Q 0 0 & a < !Q P 0 F 1 a !Q 0 ` @ @ P 0 F 1 a !Q 0 ` @ @ 0 0 & ! ( . 0 $ 8 ! ! D 0 : A @ @ 0 0 & A A @ L 0 B A Q !Q P P 0 0 & Ip 2 3 b c / 0 d e s t L M | } H I w x m n w x J ] c J ] c J ] c u D ] a c U ] b c J ] c J ] c J ] c ] c J U ] c U ] c J U V W X \ ] g h v w $ % ( ) 0 1 6 7 F G v w $ % & K L _ ` u v x y H I 2 3 G H s t u D ] a c U ] b c J ] c J ] c J ] c J ] c J ] c ] c Rt 8 9 ? @ % & B C d e z { / 0 : ; U V Z [ ~ J ] c u D l_3] c e K u D l_3] c v K u D l_3] c e K u D l_3] c v K u D ] c J ] c J ] c J ] c J ] c J ] c ] c > ! ” ( ) o p , – M N p q x y J ] c J ] c J ] c J ] c J ] c J ] c u D m_3] c e K u D m_3] c v K ] c u D ] c u D m_3] c e K u D m_3] c v K B – . 2 3 S T [ \ – . 7 8 P Q ! ” 7 8 W X q r d e { | 6 7 M N e f 1 2 9 : L M _ ` J ] c J ] c J ] c J ] c J ] c J ] c ] c U . / = > p q ! ” # $ – . F G Z [ \ ] : ; A B u v u D t_3] c e K u D t_3] c v K u D t_3] c e K u D t_3] c v K u D ] c J ] c J ] c J ] c J ] c ] c J ] c D ! D E S T i j } ~ 3 4 < = T U ! ! ! ! :! ;! Q! R! q! r! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ] c h u D v_3] c e K u D v_3] c v K J ] c J ] c u D vu_3] c e K u D vu_3] c v K u D wu_3] c e K u D wu_3] c v K u D ] c J ] c J ] c ] c J ] c 7 ! ! ! ! ! ! " " ." /" 9" :" ;" H" J" " " " " " " " " " " " " " " " " # # # # # # :# ;# s# t# # # # # # # # # # # # # # # # # # $ $ 9$ :$ u D w_3] c e K u D w_3] c v K u D w_3] c e K u D w_3] c v K J ] c J ] c ] c h J ] c J ] c ] c u D ] c u D v_3] c e K u D v_3] c v K =:$ M$ O$ Z$ [$ i$ j$ w$ x$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % % 8% 9% T% U% c% d% p% q% w% x% ~% % % % % % % % % % % % % & & & & & & @& A& b& c& & & & & & & & & & & & & & & & & ' ' ' T' U' J ] c J ] c J ] c ] ^ c J U ] c U ] c ] c h J ] c ] c h ] c OU' j' k' ~' ' ' ' ' ' ' ' ( ( ,( -( 6( 7( b( c( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( C) D) R) S) ) ) ) ) ) ) ) -* .* 6* 7* P* Q* `* a* * * * * * * * * * * * * + + + + )+ *+ L+ M+ R+ S+ d+ e+ h+ i+ q+ r+ + + + + + ] c h J ] c J ] c J ] c J ] c J ] c ] c V + + , , , , (, ), -, ., Z, [, ^, _, g, h, ~, , , , , , , , - - #- $- 4- 5- ;- <- E- F- j- k- v- - - - - - - - - - - - - . . ?. @. C. D. L. M. _. `. . . . . . . . . . . . . . . . . . . . . / / / / / J ] c U ] ^ c U ] c J ] c ] c h J ] c ] c J ] c S / / 5/ 6/ j/ k/ / / / / / / +0 ,0 <0 =0 F0 G0 M0 N0 0 0 0 0 0 0 0 0 1 1 f1 g1 w1 x1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 ?2 @2 H2 I2 P2 Q2 o2 p2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 J ] ^ c ] ^ c J U ] c U ] c J ] c J ] c ] c h J ] c J ] c ] c J ] c L 3 3 3 3 "3 #3 ?3 @3 t3 u3 3 3 3 3 3 3 3 3 3 3 4 !4 D4 E4 ^4 _4 4 4 4 4 4 4 4 4 4 4 5 5 65 75 t5 u5 5 5 5 5 5 5 6 6 "6 #6 76 86 o6 p6 6 6 6 6 6 6 6 6 17 27 7 7 7 7 7 7 7 7 7 7 7 7 8 8 a8 b8 8 8 J ] c J ] c J ] c J ] c ] c h J ] c ] c J ] c S 8 8 8 8 8 8 8 8 8 9 9 "9 #9 39 49 O9 P9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 : : #: $: >: ?: O: P: ]: ^: c: e: r: s: : : : : : : : : : : : ; ; ,; -; P; Q; ; ; ; ; ; ; ; ; ; ; < < *< +< .< /< i< j< < < < < < J ] c J ] c U ] ^ c U ] c ] c h J ] c J ] c ] c T < < < < < < < < < < = = = = = 9= := N= O= P= |= }= = = = = > > &> ‘> h> i> y> z> > > > > > > > > > > > > > > ? ? ? ? *? ,? 1? 2? }? ~? ? ? ? ? ? ? ? ? R@ S@ v@ w@ |@ }@ @ @ @ @ @ @ @ @ A A A A *A +A HA JA TA J ] c J ] c J ] c J ] c ] c h ] c XTA UA mA nA A A A A C C yC zC C C WD XD YD @E AE OE PE WE XE YE E E E E E E E E E E E E 6F NF OF F F F F F F F F F F G G G G RG SG G G G G G G G G H H H H PH QH wH xH H H H H H H I J ] c ] c h U ] ^ c U ] c J ] c u D ] a c J ] c J ] c ] c J ] c M I I 7I 8I sI tI I I I I J J ]J ^J nJ oJ J J J J J J J J K K ,K -K PK QK K K K K K K K K K K K K L L L L /L 0L WL XL ^L _L eL fL gL iL jL pL qL sL tL uL vL }L ~L L L L ` u u D ] a c P ] a c P ] c u D P ] c P u D P J ] c J ] c ] c h J ] c ] c J ] c D ‘ ( N u v u v 4 5 6 7 P Q f B f B f B f B f B f B f B f B f B #B #B #B #B #B #B #B #B #B #B #B #B #B #B #B #B f B f B f B f B f B f B 2%B 2%B l % J J J l 6$ J J l 6$ J J J ! 1 ? @ r 4 9 Y ` v 2%B 2%B 2%B 2%B 2%B 2%B 2%B 2%B 2%B 2%B 2%B 2%B 2%B 2%B 2%B f B f B f B f B f B f B f B f B f B f B f B f B f B f B f B f B f B l % J J ‘ 4 6 M r N O x y ! B ` 4 8 h () ! h 4 8 h () % J k 0 ! h 4 8 h () 4 8 h () 4 8 h () 0 B I h 3 G K M O P Q ” # W Y n 4 8 h () ! h 4 8 h () C d x 4 H L N P Q R S 4 8 h () 4 8 h () S F G b d y _ { } ~ 5 L 4 8 h () ! h 4 8 h () ” ! ! C! E! Z! p! ! ! ” ” ” N” b” d” f” g” ” ” C# D# e# g# |# # $ $ $ 0$ L$ n$ $ $ $ 4 8 h () ( $ $ $ $ $ |% }% % & & ) ) * * + „+ #+ X+ Y+ z+ |+ + + 4 8 h n ! h 4 8 h n 4 8 h () + + + + + + + !, 9, H, J, K, p, r, , , , , , , – – – } } } p 4 8 h () 4 8 h () 4 8 h () 4 8 h () – 7- B- n- p- q- r- s- t- u- v- – – – – . P. Q. >/ ?/ \/ ^/ } } } } } 4 8 h n ! h 4 8 h n 4 8 h () 4 8 h () ^/ s/ / / / / / / 0 0 0 ?0 [0 l0 n0 o0 0 0 ~ ~ 4 8 h () 4 8 h n 4 8 h n 4 8 h n 0 0 0 0 0 0 1 &1 ;1 X1 Z1 {1 1 1 1 1 2 2 2 2 63 73 3 | ! h 4 8 h n 4 8 h () 4 8 h () 4 8 h () 3 3 V4 5 5 6 6 7 P7 7 D8 E8 8 8 8 8 8 | | [ 4 8 h n 4 8 h ! h 4 8 h ! h 4 8 h n 4 8 h n 8 9 9 -9 /9 F9 ]9 r9 t9 9 9 9 9 9 9 9 9 ~ ~ ] 4 8 h () 4 8 h () 4 8 h n 4 8 h n 4 8 h n 9 : 2: S: m: }: : : : : : : : : : ; ; } } } } 4 8 h () 4 8 h () p 4 8 h () 4 8 h () ; ; ; 8< [= \= = = = = = = > > > 4> O> _> a> > > > > | | | | | | 4 8 h n 4 8 h n 4 8 h n ! h 4 8 h n > > > %? 7? I? K? L? o? q? ? ? ? ? ? ? @ @ 9@ ;@ } } } } p 4 8 h n 4 8 h n 4 8 h n 4 8 h n ;@ _@ @ @ @ A A :A QA A A A A A A A A A NB B m l I I I I I I $ 4 8 h n 4 8 h n 4 8 h n 4 8 h n B C ~C C TD D E E E E E 2F 3F 4F 5F 6F 7F 8F 9F OF PF F F 4 8 h () 4 8 h n l I I I I I I $ 4 8 h n F F VG 8H H H I I )I +I @I _I nI I I I I I I I J !J 5J | | | | 4 8 h n 4 8 h n 4 8 h n ! h 4 8 h n 5J QJ zJ J J J J J J J J J K &K (K =K _K sK K K K K K } } } } p 4 8 h n 4 8 h n 4 8 h n 4 8 h n K L KL [L ]L ^L gL hL iL uL L L L L h ` % 4 8 h n 4 8 h n K @ Normal a ” A@ ” Default Paragraph Font @ Header ! @ Footer ! )@ Page Number I L ! & ‘ ( ! ) ! * ! + ! , ! – ! . ! / ! 0 ! 1 ! 2 ! 3 ! 4 ! 5 Y B | ‘ v* X. D5 8 < 9C G I b " q w ! V Y t ! :$ U' + / 3 8 < TA I ` 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A 0 S $ + – ^/ 0 3 8 9 ; > ;@ B F 5J K L B C D E F G H I J K L M N O P Q R S T U V W X ! # F Z \ i } q I : : : : : : : : : : : : Y ! ! > > > > > > > > > > > > > > > > > > > > > I M 1M aM M M M !N QN N N N O AO qO O O P 1P aP P P P !Q QQ Q Q Q R AR qR R R S 1S aS S S S !T QT T T T U AU qU U U V 1V aV V V V !W QW W W W X AX qX X X Y 1Y aY Y Y Y !Z QZ Z Z Z [ A[ q[ [ [ \ 1\ _\ \ \ \ ] O] ] ] ] ^ ?^ m^ ^ ^ =_ m_ _ _ ` Y [` z $ % , – 6 @ F H Q R _ i r s x y _ d e f g l B K O T W [ \ ` i r x { } ~ 5 A B H I N Q ` a j q w y ~ ‘ * 2 3 8 < C D Q \ b c l n o p u ) * 7 8 E F H I M N U ] ` a f h i j n r v w y z " 7 : ; E G H I P Q Y Z c f i j o x | } ! $ & + , 3 8 > ? D P ^ ` a b j k r v x { # ( 2 8 < A L X [ ` a c d m | " # , - 2 3 6 : D H I J P S W _ h l s t v w ( . 2 3 7 9 ? K Q R Y _ e f j m x | % & / = B D H J Q R X e g { } $ % , - / 0 3 ; = M U W Z [ c h m " ( Q V W _ ` d p s " ( ) + , . / 3 6 < = F G L O Z [ f g k l o p u y - / 5 = N P V [ g p r w z % - / 2 3 ; @ E J S U Z ] g & ' - . 0 3 7 8 : @ G H P R U V [ \ ` a k l p q w { ! " + 2 7 9 = X Z h q { ) . 3 8 Q ] ^ d e h i k l s w { | ~ # 6 7 M N U Y e f i n s y ( 1 3 8 C L V _ d i % . 4 9 S _ ( ) 4 5 9 : = > C G X [ _ d p q t y % – 2 5 9 = > E _ d i w ‘ – . 4 5 9 ; < = A B D M S U ` a l m q r u v { ! # ( 0 5 : ; C L S ( + 2 6 < = A E L M S U Z ^ h k p y : < @ E Q R U Z l ( . 0 9 : ; C I N S j v ~ % & 1 2 6 7 : ; @ D b g s t w | ! ! ! ! ! ! "! 0! 9! n! w! ! ! ! ! ! ! ! ! ! ! ! ! ! " " " " " " " !" &" 2" 5" 6" 8" 9" <" ?" E" F" M" P" T" U" Y" Z" a" e" l" m" p" r" w" " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " # # # # # # # "# -# .# 4# 7# @# C# J# K# S# V# X# Z# b# g# q# r# v# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # $ $ $ $ $ $ $ $ $ ($ -$ 0$ 9$ ;$ =$ >$ D$ E$ J$ K$ M$ W$ ]$ ^$ e$ f$ j$ k$ p$ s$ u$ y$ ~$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ % % % % % % % „% ‘% ,% -% 1% 2% 6% 7% ;% =% C% D% N% R% [% \% `% g% p% u% y% z% |% % % % % % % % % % % % % % % % % % % % % % % % & & & & & & & #& (& )& 1& 2& :& ;& C& G& O& S& T& U& a& g& o& p& u& v& }& & & & & & & & & & & & & & & & & & & & & & & & & & ‘ ‘ ‘ ‘ ‘ ‘ ,’ .’ /’ 0′ 6′ 8′ :’ ;’ ?’ L’ P’ Q’ U’ [‘ `’ b’ f’ g’ l’ m’ w’ z’ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ( ( ( ( ( #( )( ,( .( /( 4( 5( @( A( H( I( L( N( R( Y( d( e( h( s( w( |( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ) ) ) !) () 9) >) K) Z) [) ^) i) m) r) ~) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) * * * #* $* 4* B* E* Q* W* ^* d* z* * * * * * * * * * * * * * * * * * * * * * * * + + + + + + + (+ )+ 1+ 2+ 5+ 6+ :+ ;+ ?+ @+ C+ Q+ U+ V+ Z+ [+ _+ c+ k+ l+ p+ v+ }+ ~+ + + + + + + + + + + + + + + + + + + + + + , , , , , , , , !, ,, -, 1, 2, 5, 6, ;, ?, Z, ^, j, k, n, s, x, , , , , , , , , , , , , , , , , – – – +- ,- <- ?- F- O- V- [- `- o- y- {- - - - - - - - - - - - - - - - - - . . &. +. ;. B. E. K. Z. f. g. w. {. . . . . . . . . . . . . . . . . . . . . . . . . / / / / / / / / / #/ (/ )/ +/ ,/ 1/ 5/ 9/ A/ H/ L/ O/ Q/ R/ S/ [/ \/ d/ e/ i/ j/ o/ q/ y/ |/ / / / / / / / / / / / / / / / / / / / / / / / / / / / 0 0 0 0 0 0 0 "0 )0 30 70 ?0 @0 I0 J0 S0 `0 f0 k0 o0 p0 t0 u0 w0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 !1 (1 -1 61 71 =1 @1 D1 E1 G1 V1 ^1 _1 h1 i1 n1 o1 |1 }1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 #2 &2 (2 )2 .2 92 =2 >2 C2 D2 J2 K2 V2 W2 `2 c2 o2 r2 t2 u2 |2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 „3 )3 03 83 :3 ;3 @3 A3 C3 D3 I3 O3 W3 X3 _3 `3 d3 h3 o3 q3 x3 z3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 „4 04 24 34 64 ?4 C4 M4 P4 U4 V4 ^4 j4 p4 s4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 „5 (5 35 45 @5 E5 P5 Q5 \5 g5 m5 n5 v5 w5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 „6 $6 (6 46 66 F6 O6 ]6 b6 t6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 7 7 7 7 $7 &7 27 >7 ?7 O7 S7 ]7 m7 r7 t7 x7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 8 8 8 8 8 !8 28 ;8 >8 J8 N8 P8 Q8 X8 [8 d8 e8 m8 s8 z8 {8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 9 9 9 9 9 9 $9 19 59 89 @9 A9 E9 F9 P9 W9 \9 ]9 d9 g9 i9 j9 n9 o9 s9 t9 |9 }9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 : : : : : !: #: ): 4: 5: 9: :: ?: @: H: K: N: P: W: \: g: h: s: t: x: y: |: }: : : : : : : : : : : : : : : : : : ; ; 4; ;; >; D; O; T; a; h; i; y; {; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; < < < loc ) ; scrie ( C , bloc1) ; } cere_nume_fi(ier_cheie_secret(; semneaz( S = DA(rezumat) ; scrie (C , S ) ; } Verificare _sigiliu_digital_este ; { cere_nume_fi(ier C ; cere_cheie K ; cite(te (C, articol_header) ; repet( p n EOF -1 { cite(te (C , bloc) ; bloc1 = F_descifreaz( ( bloc , K ) ; scrie (M , bloc1 ) ; rezumat = F_hash ( bloc1 ) ; } cere_nume_fi(ier_cheie_public( ; rezumat = EA(S) ; dac( rezumat = rezumat atunci OK ! altfel ALARM( ! } Receptorul mesajului poate fi sigur c( at(t con(inutul acestuia a fost confiden(ial ( nu a putut fi citit de nici o alt( persoan( ) c t (i originea acestuia este sigur( deoarece , numai emi((torul de(ine cheia cu ajutorul c(reia se poate face crearea semn(turii . 3.4 Anvelopa digital( Serviciul de anvelop( digital( asigur( urm(toarele func(ii de securitate : confiden(ialitatea mesajului (document , fisier ) , prin func(ia F de cifrare simetric( . autenticitatea originii , prin semn(tura digital( ( DA ) ce se execut( asupra unei valori condensate a mesajului ( documentului , fi(ierului ) , rezultate printr-o func(ie de hashing . confiden(ialitatea cheii criptografice folosite (n func(ia F , cu ajutorul unui criptosistem cu cheie public( E . (n acest fel doar receptorul autentic , care de(ine cheia secret( ( D ) , corespunzatoare , va putea reface (n clar cheia pentru descifrarea mesajului ( documentului , fi(ierului ) . Acest concept permite comunica(ii sigure (ntre partenerii care nu au stabilit chei secrete (n prealabil .Autorul mesajului genereaz( o cheie aleatoare simetric( , de fiecare data c(nd emite un mesaj . Cu ajutorul acestei chei se cifreaz( mesajul .Problema este cum (tie receptorul ce cheie s( foloseasc( pentru descifrarea mesajului ? Simplu : Autorul cifreaz( cheia aleatoare cu ajutorul cheii publice a destinatarului (i o transmite la destinatie . Acest ansamblu : document-cifrat , cheie-cifrat( constituie o anvelop( digital( . La receptie , destinatarul folose(te propria cheie secret( pentru a ob(ine cheia aleat 5 oare (n clar , iar apoi cu aceasta face descifrarea documentului . Pseudocodul serviciului , at(t pentru creearea anvelopei c t (i pentru verificarea ei , este urm(torul : Creare_anvelop(_digital(_este ; { cere_nume_fi(ier M ; scrie ( C , articol_header ) ; genereaz(_cheie K ; repet( p n EOF { cite(te ( M , bloc ) ; F_cifreaz( (bloc, K) ; scrie (C , bloc ) ; } cere_nume_fi(ier_cheie_public( ; cifreaz( K =EA(K) ; scrie (C , K ) ; } Verificare_anvelop(_digital(_este ; { cere_nume_fi(ier C ; cite(te (C , articol_header ) ; cite(te (C , K ) ; cere_nume_fi(ier_cheie_secret( ; descifreaz( K =DA ( K ) ; repet( p n EOF { cite(te ( C , bloc ) ; F_descifreaz( (bloc ,K) ; scrie ( M , bloc) ; } } 3.5 Certificat digital Acest serviciu asigur( urm(toarele functii : Cofiden(ialitatea ( optional( ) a mesajului ( documentului , fi(ierului ) printr-un mecanism F de cifrare simetric( . Autenticitatea originii , prin semn(tura digital( ( DA ) executat( asupra valorii condensate ( digest ) a mesajului . Livrarea cheii publice a emit(torului (EA ) (n clar . Livrarea unui certificat CD al cheii publice , ob(inut prin semnarea ei cu cheia secret( a unei autorit((i de certificare (DCA ) .(n acest caz va exista certitudinea asupra autenticit((ii (i actualit((ii cheii publice EA cu care se va face verificarea semn(turii digitale a emi((torului . Pseudocodul serviciului este urm(torul : Creare_certificat_digital_este { cere_nume_fi(ier M ; scrie(C , articol_header ) ; cere_cheie K ; repet( p n EOF { cite(te(M , bloc); bloc1=F_cifreaz((bloc , K) ; rezumat = F_Hash( bloc ) ; scrie(C , S ) ; } cere_fi(ier_cheie_secret(_proprie; semneaz( S = DA ( rezumat ) ; scrie (C , S ) ; cere_fi(ier_cheie_public(_partener; E A = F_Hash( EA ) ; scrie (C , EA ) ; cere_fi(ier_cheie_secret(_autoritate; CD= DCA ( E A) ; scrie (C , CD ) ; } Verificare_certificat_digital_este { cere_nume_fi(ier C ; cere_cheie K ; cite(te (C , articol_header) ; repet( p n EOF-3 { cite(te (C , bloc ) ; bloc1=F_descifreaz( (bloc , K) ; scrie (M, bloc1) ; rezumat = F_Hash (bloc1) ; } cite(te (C, S) ; cite(te_fi(ier _cheie_public(_partener ; rezumat = EA ( S ) ; cite(te (C, EA ) ; rezumat = F_Hash ( EA) ; cite(te (C, CD ) ; cere_cheie_public(_autoritate ; rezumat = ECA(CD) ; dac( ( rezumat = rezumat ) (i ( rezumat = rezumat ) atunci OK altfel ALARM( ; } PUB Document Semn(tura public( Cheie public( H emi((tor Certificat digital Autoritatea de Certificare semneaz( Cheia Public( a emi((torului A cu propria sa Cheie Secret( .Acest certificat asigur( receptorul asupra adev(ratei identit((i a emi((torului . Certificatul digital . 3.6 Notarul digital Acest serviciu este definit pentru a se satisface urm(toarele obiective de securitate : Stamparea mesajului ( documentului , fi(ierului ) cu data (i ora curent( . Cofiden(ialitatea ( optional( ) a con(inutului acestora printr-un mecanism de cifrare simetric( . Autenticitatea mesajului , prin semnarea lui de c(tre o entitate numit( notar , cu ajutorul cheii sale secrete (Dno t a r ) .Verificarea semn(turii se face cu cheia public( a notarului , distribuit( tuturor utilizatorilor . Acest serviciu se execut( de obicei pe un nod specializat al re(elei , pe care se execut( un program numit Notar . Pseudocodul serviciului , at(t pentru stampare mesaj c t (i pentru verificare , este urm(torul : Stampare_document _este { cere_nume_fi(ier M ; scrie( C , articol _ header) ; cere_cheie K ; repet( p n EOF { cite(te (M , bloc ) ; bloc1 = F_cifreaz( (bloc , K) ; rezumat = F_Hash ( bloc) ; scrie ( C , bloc1) ; } gettime ( timp ) ; bloc = F_cifreaz( ( timp, K ) ; scrie ( C , bloc) ; rezumat = F_Hash (bloc) ; cere_nume_fi(ier_cheie_secret( _ notar ; semneaz( S = Dn o t a r (rezumat) ; scrie ( C , S ) ; } Verificare_stampare_este { cere_nume_fi(ier C ; cere_cheie K ; cite(te (C , articol_header) ; repet( p n EOF-1 { cite(te (C , bloc) ; bloc1= F_descifreaz( (bloc , K) ; scrie ( M ,bloc1) ; rezumat = F_Hash (bloc1) ; } verific(_data _ (i_timpul_citite_(n_bloc1; cite(te ( C , S) ; cere_nume_fi(ier_cheie_public(_notar ; rezumat = En o t a r ( S ); dac( (rezumat = rezumat ) (i timp = corect atunci OK altfel ALAM( ; } PAGE PAGE 38 Metode (i algoritmi de criptare cu ajutorul criptosistemelor & v. @ p t 0 (0 & p $ $ 0 '0 & ! 0 0 & H ! 0 0 & ( ! 0 &0 & h Y a ` 0 $0 & h Y ! 0 %0 & h ! 0 #0 & A 0 "0 & A 0 !0 & Y a ` 0 0 & ! 0 0 & Y ! 0 0 & ! ! 0 0 & " ! ! 0 0 & x ! ! 0 0 & " ! 0 0 & ! 0 0 & x ! 0 0 & " ! 0 0 & x ! 0 0 & ! 0 0 & 0 0 & 0 0 & ( Q P 0 0 & # Q P 0 0 & 1 0 0 0 & 1 0 0 0 & q p 0 0 & q p 0 0 & Q P 0 0 & 1 0 0 0 & h 0 0 & h q p 0 0 & ! 0 0 & ! 0 0 & ! ! 0 0 & Q P 0 0 & O b j I n f o O l e P I C L M E T A O b j I n f o O l e & P I C $ L M E T A O b j I n f o y C ` O l e o c u m e n t f / P I C f - L C M E T A ` f C ( O b j I n f o ' O l e 8 P I C ! # 6 L M E T A $ 1 O b j I n f o | 0 O l e . 2 6 7 8 9 A @ P I C D E F G H I J K L M N O P % ' U V W X Y ? L ` M E T A d e f g h i j k l m n o p ( u v w x y : O b j I n f o y C ` 9 O l e o c u m e n t f J P I C t P o o l ) + H L C M E T A r y I n f o r m a t i o n f , C C O b j I n f o B O l e $ % & ' ( ) S P I C - / Q L M E T A 0 L O b j I n f o S u m m a r y I n f o r m a t i o n F K O l e 9 1 7 8 7 F \ P I C 9 1 7 9 6 1 3 F Z L M E T A 2 0 0 6 4 F U O b j I n f o 8 F T O l e e P I C 5 7 c L M E T A 8 ^ O b j I n f o ] O l e n P I C 9 ; l L M E T A < g O b j I n f o y C ` f O l e o c u m e n t f w P I C f = ? u L C M E T A ` f @ C p O b j I n f o 6 F o _ 8 6 1 8 9 4 2 7 2 F n u _ 8 6 1 8 9 4 3 1 1 F u u _ 8 6 1 8 9 4 6 0 6 F u u 2 ( * & "System n - > L > , > > , . 1 @ & @ & MathType PSymbol – 2 ( * & „System n – > L > , > > , . 1 @ & @ & MathType PSymbol – 2 ( * & „System n – > L > , > > , . 1 @ & @ & MathType PSymbol – 2 ( * & „System n – > L > , > > , . 1 @ & @ & MathType PSymbol – 2 ( * & „System n – > L > , > > , . 1 @ & @ & MathType PSymbol – 2 ( * & „System n – > L > , > > , . 1 @ & @ & MathType PSymbol – 2 ( * & „System n – > L > , > > , . 1 @ & @ & MathType PSymbol – 2 ( * & „System n – > L > , > > , . 1 @ & @ & MathType PSymbol – 2 ( * & „System n – > L > , > > , . 1 @ & @ & MathType PSymbol – 2 ( * & „System n – > L > , > > , . 1 @ & @ & MathType PSymbol – 2 ( * & „System n – > L > , > > , . 1 @ & @ & MathType PSymbol – 2 ( * & „System n – > L > , > h W e L q ^I W j \ Z ” 9 . N n X > 3 1 B \ 5 \ \ \ pE `= b > \ \ CAPITOLUL 3 METODE (I ALGORITMI DE CIFRARE CU AJUTORUL CRIPTOSISTEMELOR 3.1 Criptosisteme Scopul serviciului de criptosistem este de a asigura confiden(ialitatea (secretizarea) con(inutului unor mesaje , documente sau fi(iere .Pentru realizarea acestui deziderat , se pot folosi mecanisme criptografice at(t din categoria celor simetrice c t (i a celor cu chei publice . A cifreaz( documentul cu cheia B descifreaz( documentul cu secret( DES aceea(i cheie secret( M DES C C DES M Gestiunea (n comun a unor chei secrete presupune ca A c t (i B s( ia leg(tura (n prealabil pentru a stabili cheia secret( . Schimbul unor chei pe canale nesigure este ca (i problema oului (i a g(inii Fig 5.1 . Criptosistem conven(ional. Criptosistemele simetrice, cu o singur( cheie , (figura 5.1) , s nt relativ simplu de folosit (n re(ele mici ,cer(nd schimbul unor chei secrete cu partenerii de comunica(ii . Dar dac( re(elele cresc (n dimensiune , schimbul sigur al cheilor criptografice (secrete) devine complicat (i scump. (n plus , se pune problema folosirii (n comun a unor informa(ii secrete ( cheile ) cu fiecare persoan( cu care se va comunica (n re(ea . Ca urmare , acest( solu(ie a sistemelor criptografice conventionale nu este practic( (n re(ele medii (i mari. O solu(ie superioar( este bazat( pe sistemele cu chei publice (figura 5.2), fiecare persoan( de(in(nd o pereche de chei diferite pentru cifrare (i descifrare. Cheia public( este f(cut( public( de c(tre proprietar (i permite cifrarea mesajelor , iar cheia secret( este cunoscut( doar de catre proprietar, reprezint( inversa cheii publice (i permite descifrarea mesajelor cifrate . Pentru a trimite un mesaj (fisier ) confiden(ial , emi((torul extrage din fisier cheia public( a destinatarului (i cifreaza mesajul , (ns( numai destinatarul autentic de(ine cheia secret( corespunzatoare cu ajutorul c(reia poate descifra mesajul . M PUB C C PRIV M Orice document cifrat cu cheia public( a partenerului , poate fi descifrat doar de c(tre acesta , cu ajutorul cheii secrete corespondente. Fig 5.2. Conceptul de criptosistem cu chei publice . Pentru a putea satisface cerin(ele de securitate , (i pentru a crea o mare varietate de prelucr(ri criptografice , am definit urmatoarele tipuri de servicii de tip criptosistem : (1)Criptosistem secven(ial (Streem Cipher). Se folose(te un generator de cheie pseudoaleatoare care este apoi (nsumat( modulo 2, pentru cifrare , cu textul clar . Pseudocodul de principiu, al serviciului este urm(torul : Criptosistem _secven(ial _este : { cere_nume_fi(ier M ; scrie(C,articol_header) ; dac( 19 59 89 @9 A9 E9 F9 P9 W9 \9 ]9 d9 g9 i9 j9 n9 o9 s9 t9 |9 }9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 : : : : : !: #: ): 4: 5: 9: :: ?: @: H: K: N: P: W: \: g: h: s: t: x: y: |: }: : : : : : : : : : : : : : : : : : ; ; 4; ;; >; D; O; T; a; h; i; y; {; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; < < <

Similar Posts