{"id":2014,"date":"-0001-11-30T00:00:00","date_gmt":"-0001-11-29T23:10:04","guid":{"rendered":""},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T22:00:00","slug":"2014","status":"publish","type":"post","link":"https:\/\/www.vialattea.net\/content\/2014\/","title":{"rendered":"Perch\u00e9 i numeri primi sono intimamente connessi con i metodi di puntamento (dalle testine dei cd-rom ai radar) e con la crittografia?"},"content":{"rendered":"<p><font size=\"2\" face=\"Verdana\"><b>Breve storia della<br \/>\n        crittografa<\/b><\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Il problema di<br \/>\n        codificare o <i>cifrare<\/i> un messaggio \u00e8 stato<br \/>\n        affrontato, generalmente per usi militari, attraverso<br \/>\n        tutta la storia della civilt\u00e0 umana. <\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Plutarco descrive la <i>scitala<br \/>\n        lacedemonica <\/i>come un codice di cifratura in uso dai<br \/>\n        tempi di Licurgo (IX sec a.C.), circa tremila anni fa. Si<br \/>\n        trattava di un dispositivo di cifratura costituito da un<br \/>\n        bastone e da un nastro di cuoio avvolto a spirale<br \/>\n        cilindrica, su cui il messaggio veniva scritto per<br \/>\n        colonne. Sul nastro srotolato le lettere risultavano<br \/>\n        trasposte in modo tale che solo l\u2019adozione di un<br \/>\n        bastone identico a quello originariamente usato per la<br \/>\n        scrittura del messaggio consentiva di ricomporre il<br \/>\n        testo. <\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Il primo trattato di<br \/>\n        crittografia risale al 400 a.C. circa, ad opera del<br \/>\n        generale arcadico Enea il Tattico, in cui vengono<br \/>\n        descritti prevalentemente sistemi di meccanici di<br \/>\n        cifratura analoghi alla scitala lacedemonica.<\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Con la civilt\u00e0 dei<br \/>\n        Greci e l\u2019Impero Romano, la cifratura di un<br \/>\n        messaggio avveniva per semplice sostituzione o<br \/>\n        traslitterazione. I codici di Cesare e di Augusto erano<br \/>\n        infatti basati proprio su questa tecnica, adottando<br \/>\n        l\u2019alfabeto romano. Il codice di Atbash, basato<br \/>\n        sull\u2019alfabeto ebraico, era una versione ancor pi\u00f9<br \/>\n        semplificata di codice per sostituzione: la prima lettera<br \/>\n        dell\u2019alfabeto veniva scambiata con l\u2019ultima, la<br \/>\n        seconda con la penultima e cos\u00ec via. Polibio con la sua <i>scacchiera<\/i>,<br \/>\n        ide\u00f2 un metodo per sostituire lettere a coppie di<br \/>\n        numeri. La scacchiera di Polibio era costruita inserendo<br \/>\n        le lettere dell\u2019alfabeto in una matrice rettangolare<br \/>\n        e sostituendo nel messaggio la riga e la colonna<br \/>\n        corrispondente ad ogni lettera. <\/font><\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" width=\"197\" height=\"107\" src=\"..\/..\/esperti\/mat\/critt\/fig1.gif\" alt=\"\"\/><\/p>\n<p align=\"center\"><font size=\"2\">Fig.1 Esempio di<br \/>\n        scacchiera di Polibio<\/font><\/p>\n<p align=\"left\">\u00a0<\/p>\n<p><font size=\"2\" face=\"Verdana\">La figura 1 \u00e8 stata<br \/>\n        costruita utilizzando il metodo proposto da Polibio. Ad<br \/>\n        esempio, il termine <img loading=\"lazy\" decoding=\"async\" width=\"74\" height=\"20\" align=\"bottom\" src=\"..\/..\/esperti\/mat\/critt\/a.gif\" alt=\"\"\/><i> <\/i>(<i>amore<\/i>) viene<br \/>\n        codificato sostituendo il numero di riga e colonna per<br \/>\n        ogni lettera che lo compone, come in figura 2.<\/font><\/p>\n<p align=\"center\"><font face=\"Symbol\"><img loading=\"lazy\" decoding=\"async\" width=\"74\" height=\"20\" align=\"bottom\" src=\"..\/..\/esperti\/mat\/critt\/a.gif\" alt=\"\"\/><i> <\/i><\/font>= <b>1113113421<\/b><\/p>\n<p align=\"center\"><font size=\"2\">Fig.2 Esempio di<br \/>\n        codifica di Polibio<\/font><\/p>\n<p align=\"left\">\u00a0<\/p>\n<p><font size=\"2\" face=\"Verdana\">A dispetto<br \/>\n        dell\u2019apparente semplicit\u00e0 della codifica di<br \/>\n        Polibio, tale metodo suggeriva una interessante soluzione<br \/>\n        al problema della <i>trasmissione <\/i>del messaggio: una<br \/>\n        frase poteva venire trasmessa a distanza, infatti,<br \/>\n        mediante segnali luminosi. <\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Attraverso tutto il<br \/>\n        medioevo poi, la crittografia veniva utilizzata per scopi<br \/>\n        militari o diplomatici con varianti del metodo della<br \/>\n        sostituzione, utilizzando per lo pi\u00f9 abbreviazioni, o <i>nomenclature<\/i>,<br \/>\n        di nomi, luoghi.<\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Dal XVI secolo, i codici<br \/>\n        del Della Porta, Bellasio, Alberti e Vigenere<br \/>\n        introducono, pur se con metodologie diverse, il concetto<br \/>\n        di chiave, talvolta definita <i>verme letterale<\/i>, per<br \/>\n        il controllo del processo di cifratura. L\u2019idea \u00e8 di<br \/>\n        utilizzare una sequenza di caratteri dedicata al fornire<br \/>\n        informazioni necessarie e sufficienti, unita ad un<br \/>\n        metodo, senza la quale sarebbe impossibile riottenere il<br \/>\n        messaggio originale. Ad esempio, l\u2019Alberti<br \/>\n        utilizzava delle lettere di controllo inserite nel testo<br \/>\n        cifrato per determinare quale lista di lettere utilizzare<br \/>\n        per la cifratura locale del brano; Della Porta e Bellasio<br \/>\n        utilizzano la chiave come strumento di generazione del<br \/>\n        messaggio codificato; Vigenere unisce il metodo di<br \/>\n        sostituzione al concetto di chiave, utilizzando una<br \/>\n        matrice quadrata di sostituzione e la chiave come<br \/>\n        strumento di selezione della riga da utilizzare.<\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Thomas Jefferson,<br \/>\n        presidente degli Stati Uniti ed autore della<br \/>\n        dichiarazione di Indipendenza ide\u00f2 un codice di<br \/>\n        cifratura meccanico, mediante un cilindro costituito da<br \/>\n        36 dischi con le 26 lettere dell\u2019alfabeto in ordine<br \/>\n        sparso. Il codice \u00e8 considerato ancor oggi sicuro.<\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Ma \u00e8 con l\u2019avvento<br \/>\n        del XX secolo, della guerra e, quindi, dei calcolatori<br \/>\n        che la vita dei ideatori di codici si \u00e8 fatta pi\u00f9<br \/>\n        complessa. Tutti i sistemi ideati fino ad allora avevano<br \/>\n        l\u2019inconveniente di essere obsoleti non appena il<br \/>\n        metodo di decifrazione, meccanico o cartaceo che sia,<br \/>\n        fosse reso pubblico. Ottenuto il bastone originale nella<br \/>\n        scitala lacedemonica o il cilindro di Jefferson chiunque<br \/>\n        sarebbe in grado di procedere alla decodifica.<\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Alan Turing, matematico<br \/>\n        e padre <i>de facto<\/i> dell\u2019informatica, \u00e8 stato<br \/>\n        al centro di epiche vicende di decrittazione, a colpi di<br \/>\n        macchine calcolatrici sempre pi\u00f9 potenti ed algoritmi<br \/>\n        sempre pi\u00f9 efficaci che hanno costellato la storia della<br \/>\n        crittografia dalla seconda guerra mondiale in poi.<\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">La vera sfida del<br \/>\n        ventesimo secolo era, quindi, l\u2019ideazione di un<br \/>\n        codice per cui anche il pi\u00f9 potente dei calcolatori<br \/>\n        impiegasse millenni per la decodifica. Il problema era,<br \/>\n        infatti, che i metodi ideati non erano in grado di<br \/>\n        resistere ad una analisi <i>esaustiva<\/i> di un<br \/>\n        calcolatore sufficientemente potente da tentare tutte le<br \/>\n        combinazioni possibili. <\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Nel 1975 IBM ha<br \/>\n        introdotto il <i>Data Encryption System<\/i>, o DES, un<br \/>\n        codice a chiave basato su una sequenza di sostituzioni e<br \/>\n        trasposizioni operate in base ad una chiave di 64 bit.<br \/>\n        Tale metodo fu al centro di un\u2019aspra ed accesa<br \/>\n        polemica perch\u00e9 il numero di chiavi distinte a 64 bit \u00e8<br \/>\n        pari a 2<sup>64<\/sup>, ulteriormente ridotto a 2<sup>56 <\/sup>considerando<br \/>\n        che 8 bit della chiave sono destinati al controllo: un<br \/>\n        numero di combinazioni alla portata di molti computer<br \/>\n        moderni.<\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Il DES differisce dagli<br \/>\n        altri metodi per il fatto di non dover essere mantenuto<br \/>\n        segreto, il fatto che venga reso pubblico non garantisce<br \/>\n        affatto la possibilit\u00e0 di decodificare i messaggi.<br \/>\n        All\u2019IBM va riconosciuto, infatti, di aver ideato un<br \/>\n        algoritmo sufficientemente complesso e caratterizzato da<br \/>\n        importanti vantaggi quali:<\/font><\/p>\n<ol>\n<li><font size=\"2\" face=\"Verdana\">E\u2019 di dominio<br \/>\n                pubblico<\/font><\/li>\n<li><font size=\"2\" face=\"Verdana\">La decodifica \u00e8<br \/>\n                interamente legata alla chiave<\/font><\/li>\n<li><font size=\"2\" face=\"Verdana\">E\u2019<br \/>\n                sufficientemente resistente ad un attacco<br \/>\n                esaustivo mediante calcolatore<\/font><\/li>\n<\/ol>\n<p><font size=\"2\" face=\"Verdana\"><b>La crittografia a<br \/>\n        chiave pubblica secondo Rivest, Shamir ed Adlemann<\/b><\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Nel 1978, R. Rivest, A.<br \/>\n        Shamir, L. Adleman, pubblicarono l\u2019articolo &#8220;<i>A<br \/>\n        Method for Obtaining Digital Signatures and Public-key<br \/>\n        Cryptosystems<\/i>&#8220;, destinato dare una soluzione al<br \/>\n        problema in grado di resistere alla potenza dei<br \/>\n        calcolatori per parecchi anni a venire. Il metodo di<br \/>\n        cifratura venne codificato in un algoritmo che prese il<br \/>\n        nome dalle iniziali dei tre matematici: <b>algoritmo RSA<\/b>.<\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Gli algoritmi di<br \/>\n        crittografia a <i>chiave pubblica<\/i>, come RSA, sono<br \/>\n        caratterizzati da una coppia di chiavi dette <i>pubblica<\/i><br \/>\n        e <i>privata<\/i>. La chiave pubblica va distribuita ai<br \/>\n        destinatari dei messaggi e la chiave privata va mantenuta<br \/>\n        segreta dal mittente. Con la chiave privata vengono<br \/>\n        decodificati solo i messaggi codificati da chi possiede<br \/>\n        la chiave pubblica corrispondente. Le chiavi sono<br \/>\n        generate in modo tale che non sia possibile calcolare la<br \/>\n        chiave privata a partire da quella pubblica.<\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Supponiamo che due<br \/>\n        persone, A e B, debbano scambiarsi un messaggio:<\/font><\/p>\n<ol>\n<li><font size=\"2\" face=\"Verdana\">B genera due<br \/>\n                chiavi, una pubblica e l\u2019altra privata<\/font><\/li>\n<li><font size=\"2\" face=\"Verdana\">B mantiene la<br \/>\n                chiave privata per se e comunica a A la chiave<br \/>\n                pubblica<\/font><\/li>\n<li><font size=\"2\" face=\"Verdana\">A codifica il<br \/>\n                messaggio con la chiave pubblica di B e lo invia<\/font><\/li>\n<li><font size=\"2\" face=\"Verdana\">B riceve il<br \/>\n                messaggio da A, e lo decodifica con la propria<br \/>\n                chiave privata<\/font><\/li>\n<\/ol>\n<p><font size=\"2\" face=\"Verdana\">Prima di descrivere<br \/>\n        l\u2019algoritmo RSA \u00e8 necessario un richiamo<br \/>\n        sull\u2019Aritmetica Modulare.<\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Supponiamo di avere a<br \/>\n        disposizione solo <i>n <\/i>cifre, diciamo 12, e di<br \/>\n        disporle come in un quadrante di orologio. Applichiamo i<br \/>\n        concetti di addizione e moltiplicazione usuali, salvo<br \/>\n        che, al superare il 11, ricominciamo a contare<br \/>\n        circolarmente da 0.<\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Nell\u2019aritmetica<br \/>\n        usuale l\u2019addizione<\/font><\/p>\n<p align=\"center\"><font size=\"2\" face=\"Verdana\">7 + 8 =<br \/>\n        15<\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">diviene,<br \/>\n        nell\u2019aritmetica modulo 12<\/font><\/p>\n<p align=\"center\"><font size=\"2\" face=\"Verdana\">7 + 8 = 3<br \/>\n        (mod 12)<\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">ci si convince<br \/>\n        facilmente di ci\u00f2 osservando il proprio orologio ed<br \/>\n        assegnando le cifre come da fig. 3<\/font><\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" width=\"219\" height=\"215\" src=\"..\/..\/esperti\/mat\/critt\/reloj.jpg\" alt=\"\"\/><\/p>\n<p align=\"center\"><font size=\"2\">Fig. 3 Aritmetica modulo<br \/>\n        12 sul quadrante di un orologio<\/font><\/p>\n<p align=\"left\">\u00a0<\/p>\n<p><font size=\"2\" face=\"Verdana\">Cos\u00ec aggiungendo 8 al<br \/>\n        7, si arriva al 3. <\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Nell\u2019aritmetica<br \/>\n        modulo <i>n<\/i> la moltiplicazione \u00e8 definita in modo<br \/>\n        analogo all\u2019aritmetica ordinaria come:<\/font><\/p>\n<p align=\"center\"><font size=\"2\" face=\"Verdana\">a*b (mod<br \/>\n        n) = a+a+a+\u2026&lt;b volte&gt;&#8230;+a (mod) n<\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">e lo stesso vale per la<br \/>\n        potenza<\/font><\/p>\n<p align=\"center\"><font size=\"2\" face=\"Verdana\">a<sup>b<\/sup><br \/>\n        (mod n) = a* &lt;\u2026b volte \u2026&gt;* a (mod n)<\/font><\/p>\n<p>\u00a0<\/p>\n<p><font size=\"2\" face=\"Verdana\">L\u2019algoritmo RSA \u00e8<br \/>\n        quindi definito come segue:<\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\"><b>Generazione delle<br \/>\n        chiavi pubbliche e private<\/b><\/font><\/p>\n<ol>\n<li><font size=\"2\" face=\"Verdana\">Siano <i>p <\/i>e <i>q<br \/>\n                <\/i>due numeri primi molto grandi<\/font><\/li>\n<li><font size=\"2\" face=\"Verdana\">sia <i>m =<br \/>\n                (p-1)(q-1)<\/i><\/font><\/li>\n<li><font size=\"2\" face=\"Verdana\">sia <i>n = pq<\/i><\/font><\/li>\n<li><font size=\"2\" face=\"Verdana\">si trovi un numero <i>d<\/i><br \/>\n                non necessariamente grande, relativamente primo<br \/>\n                ad <i>n<\/i><\/font><\/li>\n<li><font size=\"2\" face=\"Verdana\">si trovi <i>e<\/i><br \/>\n                tale che <i>de = 1 (mod m)<\/i><\/font><\/li>\n<li><font size=\"2\" face=\"Verdana\">la chiave pubblica<br \/>\n                \u00e8 la coppia <i>(d,n)<\/i><\/font><\/li>\n<li><font size=\"2\" face=\"Verdana\">la chiave privata<br \/>\n                \u00e8 la coppia <i>(e,n)<\/i><\/font><\/li>\n<\/ol>\n<p><font size=\"2\" face=\"Verdana\"><b>Codifica di un<br \/>\n        messaggio M<\/b><\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Il messaggio codificato<br \/>\n        \u00e8 <i>C(M) = M<\/i><sup><i>d<\/i><\/sup><i> (mod n)<\/i><\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\"><b>Decodifica di un<br \/>\n        messaggio C<\/b><\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Il messaggio<br \/>\n        decodificato \u00e8 <i>M (C) =C<\/i><sup><i>e<\/i><\/sup><i><br \/>\n        (mod n)<\/i><\/font><\/p>\n<p><font size=\"2\" face=\"Verdana\">Pur conoscendo il<br \/>\n        meccanismo di codifica, la decodifica di un messaggio<br \/>\n        senza conoscere la chiave privata <i>e<\/i> \u00e8 un<br \/>\n        operazione per cui anche il pi\u00f9 potente dei calcolatori<br \/>\n        impiegherebbe secoli, riconducendo a noti problemi<br \/>\n        intrattabili nella scienza dei calcolatori, infatti:<\/font><\/p>\n<ol>\n<li><font size=\"2\" face=\"Verdana\">Ignorando la chiave<br \/>\n                pubblica bisognerebbe calcolare la radice di<br \/>\n                ordine <i>d<\/i> , in aritmetica modulo <i>n<\/i><br \/>\n                di <i>M<\/i>. Problema intrattabile.<\/font><\/li>\n<li><font size=\"2\" face=\"Verdana\">Anche conoscendo la<br \/>\n                chiave pubblica <i>d<\/i>, il calcolo di <i>e<\/i><br \/>\n                implicherebbe la necessit\u00e0 di trovare i numeri<br \/>\n                primi <i>p <\/i>e <i>q<\/i> che, se scelti<br \/>\n                nell\u2019ordine di 10<sup>200<\/sup>, producono<br \/>\n                di nuovo un problema intrattabile.<\/font><\/li>\n<\/ol>\n<p><font size=\"2\" face=\"Verdana\">Si noti che un algoritmo<br \/>\n        come RSA pu\u00f2 difficilmente divenire obsoleto perch\u00e9<br \/>\n        riconduce a problemi la cui tecnica di soluzione \u00e8 nota,<br \/>\n        ma coinvolge necessariamente un tempo di calcolo enorme,<br \/>\n        allo stato attuale della ricerca. <\/font><\/p>\n","protected":false},"excerpt":{"rendered":"<p>[&#8230;]<\/p>\n","protected":false},"author":180,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[60],"tags":[],"class_list":["post-2014","post","type-post","status-publish","format-standard","hentry","category-domande-varie-informatica-e-telecomunicazioni"],"_links":{"self":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts\/2014","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/users\/180"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/comments?post=2014"}],"version-history":[{"count":0,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/posts\/2014\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/media?parent=2014"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/categories?post=2014"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vialattea.net\/content\/wp-json\/wp\/v2\/tags?post=2014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}