- userLoginStatus
Welcome
Our website is made possible by displaying online advertisements to our visitors.
Please disable your ad blocker to continue.
Ingegneria Energetica - Analisi e Geometria 1
Il sistema crittografico RSA
Divided by topic
UN'APPLICAZIONE INFORMATICA DELL'ARITMETICA MODULARE: IL SISTEMA CRITTOGRAFICO RSA Fin dall'antichita si e sentita l'esignza di trasmettere messaggi in modo nascosto: per questo nasce la crittograa. Fino a pochi decenni fa, i sistemi crittograci erano basati su sistemi di codica e decodica dei messaggi a chiave simmetrica: chi inviava i mes- saggi e chi li riceveva aveva a disposizione la stessa chiave. Il sistema crittograco RSA attualmente in uso si basa invece sul principio dellachiave asimmetrica. Il nome RSA deriva dalle iniziali di Ronald Rivest, Adi Shamir e Leonard Adleman che lo hanno rea- lizzato (anche se James Ellis e Cliord Cocks avevano in precedenza trovato un sistema basato sugli stessi principi, ma avevano tenuto segreto il risultato della loro scoperta). Prima di tutto le lettere vengono rappresentate da numeri in codice. Per esempio Nel- l'American Standard Code for Information Interchange le lettere vengono rappresentate dai numeri da 065 a 090. Per esempio la parola ALA viene scritta come: 065076065: Ogni utenteBdeve scegliere una coppia di numeri (n B; e B) in modo che n Bsia il prodotto di due numeri primi distinti molto grandi,n B= p B q B, e inoltre M :C:D:(e B; p B 1) = 1; M :C:D:(e B; q B 1) = 1: La coppia (n B; e B) e pubblica, ma non e pubblica la scomposizione di n B. La segretezza di questo sistema sta proprio in questo:Bdeve costruiren Bscegliendo due numeri primi pBe q Bmolto grandi (anche di 13-14 cifre) e moltiplicandoli. Come si fa a trovare un numero primo? si prende un numero disparime si sottopone a certi test di primalita: se un test viene superato va bene, altrimenti si prova conm+ 2. La coppia (n B; e B) da aBla chiave segreta per decodicare i messaggi: si tratta del numerod B, soluzione della congruenza lineare (1)e Bx 1(mod'(n B)) e tale che 0< d B< ' (n B) :Sicuramente (3) ammette soluzione visto che '(n B) = ( p B 1)(q B 1) e quindiM :C:D:(e B; ' (n B)) = M :C:D:(e B; (p B 1)(q B 1)) = 1: Inoltre questa soluzione e unica (mod'(n B)) :QuindiBe l'unico che puo conoscere la chiaved Btale che: eBd B 1(mod'(n B)) ;0< d B< ' (n B) perche soltantoBconosce'(n B). Si supponga che l'utenteAdebba inviare il messaggioMall'utenteB. Allora consulta gli elenchi uciali e trova la coppia (n B; e B). Se il messaggio e piu lungo di n B, Apuo spezzareMin modo standard in piu messaggi. Quindi si puo supporre che M < nB; M :C:D: (M ; n B) = 1 : Il messaggio codicato cheAinvia aBeM0 tale che M0 Me B (modn B) : Il punto fondamentale e: (2)MM0 d B (modn B) ; che si dimostra usando il Teorema di Eulero. QuindiB, trovando una soluzione della congruenza linearexM0 d B (modn B), avra decodicato il messaggio. Il sistema RSA viene usato anche per l'autenticazione delle rme. L'utenteAmanda un messaggioMall'utenteBe lo fa seguire dalla propria rmaF, ma nella forma: M1 Fd A (modn A) ; 1 2 cioeAinviaM+M 1. Bnon riesce a codicare la seconda parte del messaggio, ma sa che proviene daAe ne deve controllare l'autenticita. Allora controlla che Me A 1 F(modn A) : Infatti, si prova cheMe A 1 (Fd A )e A =Fd Ae A F(modn A) : Esercizio 1.L'utenteAvuole inviare il messaggioM= 5 all'utenteB, la cui coppia identicativa e (n B= 77 ; e B= 13) : Allora soltantoBsa chen B= 11 7 e quindi'(n B) = '(11)'(7) = 106 = 60. Pertanto soluzioned B< 60 della congruenza lineare (3) 13x1(mod60) e la chiave per la decodica dei messaggi. Per risolvere (3), si puo usare l'algoritmo delledivisioni successive: 60 = 134 + 8 13 = 81 + 5 8 = 51 + 3 5 = 31 + 2 3 = 21 + 1 2 = 21 + 0: Quindi: 1 = 3 + 2(1) = 3 + (5 + 3(1))(1) = 3 + 5(1) + 3 = 32 + 5(1) = (8 + 5(1))2 +(1) = 82 + 5(2) + 5(1) = 82 + 5(3) = 82 + (13 + 8(1))(3) = 82 + 13(3) + 83 = 85 + 13(3) = (60 + 13(4))5 + 13(3) = 605 + 13(23); Allora 1 = 13(23) + 605 e quindi23 e una soluzione. La piu piccola soluzione positiva e23 + 60 = 37, per cui la chiave e dB= 37 : L'utenteAdovra inviare aBil messaggio M0 Me B (modn B) : e quindi deve trovarextale che x513 (mod77): Per esempio, usando una comune calcolatrice, si vede che 56 = 15:625 e che 15:625 = 20277 + 71; ovvero 15:62571(mod77):Quindi 513 = 56 2+1 = (56 )2 5 = (15:625)2 5712 5(mod77): Sempre eettuando il calcolo su una calcolatrice, si ha: 712 5 = 25:205 = 32777 + 26, per cui 712 526(mod77): AlloraAinvia aBil messaggioM0 = 26. A questo puntoBdeve decodicare il messaggio ricevuto usando la sua chiaved B= 37, che solo lui conosce, e usando (2). Quindi deve cercarextale chex2637 (mod77):Si vede che 266 = 308:915:776 = 4:011:89377 + 15, per cui 266 15(mod77):Allora: 2637 = 266 6+1 = (266 )6 26156 26(mod77): 3 D'altra parte 156 = 11:390:625 e 156 26 = 296:156:250 = 3:846:18577 + 5 e quindi 2637 5(mod77); e quindiBha decodicato il messaggioM0 .