Dalla Crittografia a Chiave Pubblica al Commercio Elettronico
|
|
- Marina Orsola Graziano
- 8 anni fa
- Visualizzazioni
Transcript
1 Dalla Crittografia a Chiave Pubblica al Commercio Elettronico Vincenzo Schifano Abstract Uno degli aspetti sicuramente più attuale all interno del mondo dell informatica, con cui ci relazioniamo quotidianamente, è quello della sicurezza informatica e quindi della crittografia. La crittografia è impiegata nelle operazioni più comuni, quando utilizziamo il cellulare, quando accediamo al nostro account per controllare la posta, quando preleviamo del denaro presso uno sportello ATM, sono tutte operazioni rese sicure grazie a un qualche protocollo crittografico che proibisce a un probabile agressore di accedere ai nostri dati sensibili. 1. Introduzione Sin dai tempi più antichi si è sentito il bisogno di proteggere le informazioni sensibili, dalle direttive di un generale ai vari accampamenti durante delle guerre alle corrispondenze di carattere politico e diplomatico tra i regnanti di paesi diversi. Uno dei primi approcci utilizzati per raggiungere tale scopo fu l'uso della steganografia (dal greco στεγανός, nascosto, e γραφία, scrittura), l'idea era dunque quella di nascondere il messaggio in qualcosa o in qualcuno. Il passo successivo che rivoluzionò il mondo della sicurezza nello scambio delle informazioni fu l'uso della crittografia, dal greco κρυπτóς che significa "nascosto", e γραφία che vuol dire scrittura. Sebbene sembri che le due parole vogliano dire la stessa cosa, questa volta l'idea consiste nel cifrare il messaggio vero e proprio e non semplicemente nel nasconderlo, così da renderlo incomprensibile in caso di intercettazione da parte di persone non autorizzate. Tra le varie tecniche di encrypting ricordiamo: cifrari a trasposizione, cifrari a sostituzione monoalfabetica, cifrari a sostituzione polialfabetica, cifrari poligrafici o tomogrammici, cifrari a dizionario o a repertorio, cifrari misti, macchine cifranti, cifrari a chiavi segrete e, infine, i moderni cifrari a chiave pubblica. Per meglio comprendere i vari protocolli e le tecniche usate è necessario operare dei richiami matematici: Definizione 1: (Modulo di un numero). Dato un numero qualsiasi, calcolarne il modulo è abbastanza semplice: per esempio, per calcolare 25 modulo 7, si divide 25 per 7 ottenendo il quoziente 3 e il resto 4, ne segue che (25 mod 7) = 4. In generale per calcolare (a mod b) si trovano due interi q ed r tali che a = qb + r e ovviamente 0 r b. il valore di (a mod b) è definito pari a r. [1] Definizione 2: (Gruppo, Gruppo moltiplicativo). Un gruppo ammette una sola operazione binaria. I numeri in Z p sono un gruppo con l addizione. La somma di due numeri del gruppo restituisce un terzo elemento che fa ancora parte del gruppo. Gli elementi 1,, (p-1) insieme alla moltiplicazione (mod p) formano un gruppo detto gruppo moltiplicativo (mod p) o anche Z p *. Nel caso di Z p il campo finito è costituito dal gruppo di addizione, definito dall addizione (mod p), e dal gruppo moltiplicativo Z p *. Un gruppo può contenere un sottogruppo, costituito da una parte degli elementi del gruppo completo: se si applica l operazione del gruppo a due elementi del sottogruppo, si ottiene ancora un elemento del sottogruppo. I sottogruppi sono molto utilizzati per velocizzare alcune operazioni di crittografia. Per esaurire completamente un gruppo moltiplicativo è necessario definire anche l operazione inversa alla moltiplicazione: la divisione (mod p) può essere definita come segue: c = a/b (mod p). La formula è equivalente a dire che esiste un numero c, (mod p), tale che c b = a (mod p). Non si può dividere per 0 ma l operazione è sempre definita se b 0. Scelto un g qualsiasi nel gruppo Z p * consideriamo i numeri: 1, g, g 2, g 3 tutti (mod p) : questa è una serie infinita di numeri ma Z p * contiene un numero finito di elementi, ad un certo punto gli elementi cominceranno a ripetersi. Supponiamo che accada quando g i = g j con i < j. Dividendo per g i otteniamo 1 = g j-i. Ne consegue che esiste un numero q = j-i tale che g q = 1 (mod p). Continuando a moltiplicare i vari g, è possibile ottenere tutti gli elementi 1, g, g 2, g 3,, g q-1, per questo motivo g prende il nome di generatore del gruppo: il numero totale di elementi che possono essere scritti come potenza di g è esattamente q ovvero l ordine di g. [2]
2 Definizione 3: (Campo, Campo finito). In matematica si definisce campo un insieme non vuoto K, caratterizzato da due operazioni binarie denominate somma, (K, +), e prodotto (K, ). Le due operazioni godono della proprietà commutativa, della distributiva rispetto al prodotto e dell'esistenza dell'elemento neutro (0 per la somma e 1 per il prodotto). Se l'insieme K ha un numero finito di elementi il campo si dice finito. In particolare il campo finito dei numeri modulo un numero primo p, si indica con campo (mod p) o semplicemente (mod p) o anche con Z/Z p. L'insieme degli elementi di un campo finito (mod p) contiene gli elementi 0, 1, (p-1). Ricordiamo che si può sempre aggiungere o sottrarre qualsiasi elemento multiplo di p senza cambiarne il risultato e tutti i risultati sono sempre compresi nell intervallo di valori 0, 1, (p-1). [3] Definizione 4: (Piano proiettivo). Dato il piano affine A = K 2, il piano proiettivo su K associato a V è l'insieme P(K), i cui elementi, chiamati punti di P(K), sono i sottospazi vettoriali di dimensione uno di K, cioè le rette vettoriali di K. Uno spazio proiettivo è detto reale se K = R, complesso se K = C. Ogni v ϵ V genera il sottospazio di V di dimensione uno <v> = {λv : λ ϵ V}. Quindi: P(K) = {P = <v> : v 0, v ϵ K 3 } = {<v> = λv : λ ϵ K}. Il generico punto P sarà definito come: P = [X P, Y P ; T P ] = [λx P, λy P ; λt P ]. Scegliamo la coordinata T e discriminiamo i punti per cui T P 0 (allora P = [x, y; 1], le coordinate non sono omogenee ed i punti si dicono proprii) e i punti per cui T P = 0 (allora P = [x, y; 0], le coordinate sono omogenee ed i punti si dicono impropri o all'infinito). 2. Crittografia a Chiave Pubblica Supponiamo di avere dieci persone che vogliono comunicare tra loro in maniera sicura, per fare ciò si incontrano scambiandosi una chiave segreta. Come succede con tutte le chiavi, è necessario un continuo aggiornamento delle stesse che porta dunque a successivi incontri. Si ha che per un gruppo di n persone servono n(n-1)/2 chiavi, quindi nel nostro caso sono necessarie ben 45 chiavi. All aumentare delle persone coinvolte nello scambio di informazioni la gestione delle chiavi diventa rapidamente ingestibile. La crittografia convenzionale è basata sull'uso di una chiave segreta, il problema principale di questo tipo di protocollo è quello di trovare un canale sicuro per trasmettere suddetta chiave. Per ovviare a questo problema si pensò dunque di usare non una sola chiave ma due, una segreta, per decifrare, e una pubblica, per cifrare. Lo scenario tipico dunque non prevede più la presenza di due sole parti bensì, per esempio, una rete di utenti. Data la asimmetria, dovuta all'uso di due chiavi diverse, questo tipo di cifrari sono detti asimmettrici. Le origini della crittografia a chiave pubblica si fanno risalire al 1976 con la pubblicazione dell articolo New Directions in Cryptography ad opera di Whitfield Diffie e Martin Hellman. La sicurezza della crittografia asimmetrica è garantita da delle funzioni one-way (a senso unico) con trapdoor (passaggio segreto), facili da calcolare ma difficili da invertire dove per difficili da invertire si intende operazioni che computazionalmente risultano essere proibitive. L'informazione trapdoor (vale a dire quella caratteristica aggiuntiva che aiuta nell'operazione di inversione della funzione prescelta) non deve però essere deducibile dalla descrizione della funzione altrimenti non sarebbe più one-way. [4] La Crittografia è la maniera per due persone, Alice (A) e Bob (B), di comunicare segretamente usando un canale non sicuro senza che un avversario, Oscar (O), capisca cosa sia stato detto tra i due. Definizione 5: (Criptosistema). Un Criptosistema è costituito da: un insieme finito P di possibili testi in chiaro ( Plaintext ); un insieme finito C di possibili testi crittografati ( Ciphertext ); un insieme finito K di possibili chiavi k = (k E, k D ) consistenti, in realtà come già detto, nella coppia chiave pubblica, chiave privata ; tali che per ogni k ϵ K, esiste una funzione regola per cifrare e k ϵ E e una corrispondente regola per decifrare d k appartenente a D. Ognuna delle e k : Pζ C e d k : C P sono funzioni tali che d k (e k (x)) = x per ogni testo in chiaro x appartenente a P. In un criptosistema ci sono quindi due chiavi. La chiave pubblica, che è pubblicata in una directory, definisce la e k e consente la cifratura, e la chiave
3 privata che è tenuta segreta, definisce la d k e permette di decifrare il messaggio [5]. 3. Problema del Logaritmo Discreto (DLP), Protocollo Diffie-Hellman (DH) e Algoritmo di El Gamal Come detto precedentemente, i padri fondatori della crittografia a chiave pubblica, Diffie ed Hellman, proposero il loro schema di lavoro, conosciuto come Schema Diffie-Hellman, per ovviare al problema inerente lo scambio della chiave segreta per poi garantire future comunicazioni. Definizione 6: (Discrete Logarithm problem - DLP). Dato un gruppo Z p, un α ϵ Z p e β= α b, calcolare b. Il problema del logaritmo discreto (DLP) è uno dei problemi matematici più noti all'interno della Teoria dei Numeri, è un problema per il quale non si conoscono delle soluzioni efficienti e pertanto uno dei migliori candidati in ambito crittografico. L'esponente b, dato ad α per ottenere β, è detto logaritmo discreto di β in base α rispetto al modulo p. Il problema del calcolo del logaritmo discreto è un esempio di funzione one-way inversa utilizzata per i protocolli asimmetrici (come ad esempio il celebre algoritmo RSA). Esistono infatti degli algoritmi efficienti per il calcolo di qualsiasi potenza ma non per l'operazione inversa. Se scegliamo un numero primo p sufficientemente grande, infatti, risulta un'operazione computazionalmente complicata, ne consegue che con la dovuta attenzione riguardo il numero p, si ottengono tempi polinomiali. Esempi di algoritmi con tempo polinomiale per risolvere questo tipo di problema sono l'algoritmo di Pohlig - Hellman o l'algoritmo di Shanks. Dalla complessità computazionale molto elevata deriva un certo grado di sicurezza dato dal fatto che la risoluzione di tale quesito va oltre le possibilità di un crittoanalista reale [6]. Algoritmo 1: (Diffie-Hellman key exchange Protocollo DH). 1. (Setup) A e B scelgono pubblicamente il campo Z p e un elemento ζ ϵ Z p. 2. A genera un intero casuale a ϵ Z p-1, chiave privata di A, calcola α = ζ a (mod p) in Z p e trasmette α a B attraverso un canale di comunicazione pubblico. 3. B genera un intero casuale b ϵ Z p-1, chiave privata di B, calcola β = ζ b (mod p) in Z p e trasmette β ad A attraverso lo stesso canale. 4. A riceve γ e calcola β = k A = β a = (ζ b ) a. 5. B riceve α e calcola k = k B = α b = (ζ a ) b. Adesso sia A che B conoscono l'elemento k = ζ ab, chiave segreta, che può essere usato come chiave private per comunicazioni future. Anche se un avversario O dovesse in qualche modo venire a conoscenza dei valori Z p, ζ, α = ζ a (mod p) e β = ζ b (mod p) e volesse ricavare la chiave k, si troverebbe contro la funzione DH cioè k = DH(ζ a (mod p), ζ b (mod p)) = ζ ab (mod p). Il problema che l'avversario deve risolvere mediante la funzione DH, detta Funzione Diffie-Hellman, è noto proprio come il Problema di Diffie-Hellman o anche DHP. Malgrado l'alto grado di sicurezza di una crittografia basata sul DHP, vi è un particolare tipo di attacco per violare questo tipo di protocollo: il cosiddetto Man in the middle o anche MITM. Questo tipo di attacco consiste nella capacità dell'attaccante di intromettersi tra i due interlocutori, assumendo con uno l'identità dell'altro, e di leggere i messaggi scambiati ed eventualmente modificarne alcuni ingannando i diretti interessati, prima di inoltrarli al vero destinatario. Nel caso della crittografia a chiave pubblica, se Alice chiede a Bob di inviarle la sua chiave pubblica ed Eve, una possibile attaccante, è capace di intercettarla allora questa può inviare all'ignara Alice una falsa chiave pubblica, la sua, della quale possiede la relativa chiave privata. A questo punto Alice cifra i suoi messaggi rivolti a Bob con la chiave di Eve che li decifra usando la sua chiave privata e li cifra nuovamente, magari alterandoli, usando la chiave pubblica di Bob che non sospetta nulla. Un modo per evitare la possibilità di un attacco di tipo MITM è quello di firmare le chiavi. [7]
4 Algoritmo 2: (El Gamal). 1. (Setup) Sono scelti un gruppo G qualsiasi e un elemento α ϵ G. Ogni utente prende un intero casuale (la chiave privata) l ϵ {0, 1,..., G -1} e rende pubblico β = α l (la chiave pubblica). Supponiamo che i messaggi siano elementi di G e che l'utente A desideri inviare un messaggio, m, all'utente B. 2. A genera un intero casuale k ϵ {0, 1,..., G -1} e calcola α k. 3. A consulta la chiave pubblica di B, β = α l, e calcola (β) k dopo mβ k. 4. A invia a B la coppia di elementi del gruppo (α k, mβ k ). 5. B calcola (m β k )((α k ) l ) -1 = (mα lk )(α lk ) -1 = m e recupera il messaggio. L'eventuale avversario O, ascoltando il canale pubblico, viene a conoscenza di α, α k, β e mβ k. Se risolvere il logaritmo discreto fosse possibile, si darebbe modo all'attaccante di trovare l e quindi sarebbe possibile usare lo stesso procedimento che effettua B per decifrare m [8]. Esempio 1: (Cifratura e decifratura con il gruppo G = Z * 11 = {1, 2, 3,..., 10} = <2>). 4. Curve Ellittiche Il primo uso delle curve ellittiche in Crittografia risale al 1985 ad opera di Victor Miller e Neal Koblitz, l'idea non era quella di creare dei nuovi criptosistemi più efficienti bensì di adattarne dei vecchi già esistenti applicando quanto visto sul DLP, invece che sul gruppo ciclico Z p, sul gruppo dei punti di una curva ellittica definita su un campo finito. Questo approccio consente di poter variare più gruppi al variare dei coefficienti della curva e, inoltre, risulta molto più efficiente. Ai fini di questa tesi, è sufficiente dare, per una curva ellittica, la seguente definizione, alla quale comunque ci si può sempre riportare anche dando definizioni più generali. Definizione 7: (Curva ellittica). Una curva ellittica ε, su un campo K, che denoteremo ε/k, o semplicemente con ε, è l'insieme dei punti proprii (x, y) ϵ K 2 che soddisfano l'equazione y 2 = x 3 +ax+b, con a, b appartenenti a K costanti tali che 4a 3 +27b 2 0, insieme al punto all'infinito ϴ = (0, 1; 0) della curva ε del piano proiettivo. Se K è finito, allora ε ha un numero finito di punti ε. 1. (Setup) Abbiamo G = 10 e α = 2. L'utente B sceglie casualmente l = 5 e calcola α l = 2 5 = 10 (mod 11). La chiave pubblica sarà composta dalla terna (n, α, α l ) = (10, 2, 10) e la chiave privata sarà l = L'utente A sceglie k = 7 e calcola α k = 2 7 = 7 (mod 11). 3. L'utente A considera α l = 10 e cifra il messaggio m = 3, calcola m(α l ) k = = L'utente A invia la coppia (α k, mαl k ) = (7,8). 5. L'utente B, l'unico che conosce la chiave privata l, calcola mα lk (((α k ) l ) -1 = 8(7 5 ) -1 = 3. L'utente B riceve correttamente il messaggio, m = 3, inviato da A. [9] I punti di una curva ellittica si possono sommare mediante la regola corda-tangente, che consiste, in linea di massima, nel determinare il terzo punto d'intersezione R tra la retta per P e Q con la curva
5 stessa, e nel porre P + Q uguale al punto simmetrico di R rispetto all'asse x. Lo zero del gruppo è il punto all'infinito ϴ = (0, 1; 0), così l'opposto di un punto è il suo simmetrico rispetto all'asse x. In formule: siano P = (x P, y P ; 1) e Q = (x Q, y Q ; 1) due punti propri sulla curva y 2 = x 3 +ax +b. 1. Se x P = x Q allora y P = ± y Q. 1.1) Se y P + y Q = 0, allora P + Q = ϴ = (0, 1; 0). 1.2) Se y P = y Q 0, allora P = Q e P + Q = 2P = ({(3x P 2 +a) / 2y P } 2-2x P, -y P - (3x P 2 +a) {((3x P 2 +a) / 2y P ) 2-3x P } / 2y P ; 1). 2. Infine, se x P è diverso da x Q, sia m = (y P - y Q )/(x P - x Q ) il coefficiente angolare della retta passante per i punti P e Q. Allora (x P, y P ; 1) + (x Q, y Q ; 1) = (m 2 - x P - x Q, - y P - m(m 2-2 x P x Q ); 1). I crittosistemi basati su curve ellittiche sembrano offrire lo stesso livello di sicurezza di quelli basati su chiave pubblica con il vantaggio di avere delle chiavi molto più corte, permettendo dunque una maggiore velocità di encrypting e decrypting utilizzando però una minore quantità di ampiezza di banda. Nel mondo della crittografia non si suole usare le curve ellittiche sui reali, ma si restringe l'ordine del campo o a un numero primo dispari, quindi su Z p, oppure avente ordine una potenza di due. Non sembrano esserci molte differenze tra la sicurezza offerta nei due casi, la differenza sta dal punto di vista implementativo dato che le realizzazioni su potenze di 2 sono più veloci ed economiche. Siano date una curva ellittica ε su un campo finito K e un punto B ϵ ε, il problema del logaritmo discreto applicato alla curva ε in base B (o anche ECDLP) equivale a trovare, dato un punto P ϵ ε, se esiste, x ϵ K tale che xb = P. Se ci manteniamo su dei campi finiti allora è possibile calcolare il logaritmo discreto con tempi subesponenziali mediante l'algoritmo dell'index calculus. Questo è reso possibile dal fatto che un campo finito gode di due operazioni, somma e prodotto, mentre le curve ellittiche sono solamente additive pertanto non consentono l'uso di questo tipo di algoritmo rendendo i calcoli necessari molto laboriosi. Anche questa volta, la non esistenza di algoritmi efficienti per il calcolo del logaritmo discreto ci assicura un notevole grado di sicurezza crittografica. Così come il protocollo DH poteva essere violato tramite un attacco di tipo Man in the middle, così anche il protocollo EC ha dei punti deboli; per questo motivo non tutte le curve ellittiche sono delle candidate eccellenti per i nostri scopi. Vediamo ora come funziona il protocollo: Alice e Bob scelgono pubblicamente una curva ellittica ε su un campo finito K e un punto Q ϵ ε. Alice sceglie un intero casuale k A e calcola il punto k A Q inviandolo poi a Bob. Bob allora sceglie un intero casuale k B e calcola quindi il punto k B Q, dunque lo invia ad Alice. A questo punto Alice e Bob condividono la chiave P = k A k B Q. Se un attaccante Eve dovesse intercettare la comunicazione tra i due allora dovrebbe determinare P conoscendo Q, k A e k B. Questo è noto come problema Diffie Hellman applicato alle Curve Ellittiche. Un altro esempio di algoritmo basato sull'uso della crittografia a Curve Ellittiche è l'ecdsa (Elliptic Curve Digital Signature Algorithm), algoritmo di firma che viene utilizzato per autenticare un dispositivo oppure un messaggio inviato dal dispositivo. Ipotizziamo uno scambio di messaggi tra due dispostivi A e B, il dispositivo A invia il messaggio e la firma, creata mediante la chiave privata di A. Per verificare la firma di A, il dispositivo B deve conoscere la chiave pubblica di A ma dato che la conosce può facilmente verificare se il messaggio ricevuto è stato inviato proprio da A. Affinché questo algoritmo sia realizzabile, A e B devono decidere a priori su una curva ellittica usata come dominio dei parametri del processo. Algoritmo 3: (El Gamal per le Curve Ellittiche). L'algoritmo di El Gamal applicato alle Curve ellittiche fondamentalmente è lo stesso applicato precedentemente, l'unica differenza sta nel fatto che questa volta consideriamo il gruppo additivamente. 1. (Setup) Scegliamo una curva ellittica ε su un campo finito Z p, insieme ad un punto P sulla curva. Il punto P genera un sottogruppo ciclico G = {ϴ, P, 2P,..., (n-1)p} di ordine n. Ogni utente sceglie un intero casuale l appartenente a {0, 1,..., n-1} come chiave privata e rende pubblico il prodotto lp come chiave pubblica. Supponiamo che i messaggi siano elementi di G e che l'utente A desideri inviare un messaggio, m, all'utente B.
6 2. A genera un intero casuale k appartenente a {0, 1,..., n-1} e calcola kp. 3. A considera la chiave pubblica di B, lp, e successivamente la somma m+klp. 4. A invia a B la coppia di elementi del gruppo (kp, m+klp). 5. B calcola (m+klp) -l(kp) = m e recupera il messaggio. Ancora una volta, essere capaci di trovare l da P ed lp (risolvendo dunque il problema del logaritmo discreto applicato alle curve ellittiche) ci consentirebbe di crackare questo criptosistema [11]. 5. Pairing Bilineari Come abbiamo visto finora, la sicurezza del protocollo di scambio delle chiavi di Diffie-Hellman e quella di El Gamal è basata sulla difficoltà del problema del logaritmo discreto in un gruppo che può essere il gruppo moltiplicativo di un campo finito o, più efficientemente, il sottogruppo generato da un punto di una curva ellittica. Se però è possibile definire una funzione (bi)-lineare (pairing) tra punti di una curva ellittica e elementi del campo finito, tutto il vantaggio del considerare l'uso in Crittografia delle curve ellittiche è perso. Il campo della crittografia basato sui Pairing è relativamente recente. Definizione 8: (Pairing bilineare). Siano G 1 e G 2 due gruppi di ordine p (per qualche numero primo p sufficientemente grande). Un Pairing bilineare è una mappa bilineare e : G 1 G 1 G 2 tale cioè che e(ap, bq) = e(p,q) ab, per ogni P, Q ϵ G 1 e a, b Z Un Pairing bilineare si dice ammissibile se soddisfa le seguenti proprietà: Non-degenericità: P ϵ G 1 Q ϵ G 1 : e(p, Q) 1. Computazionabilità: esiste un algoritmo efficiente per calcolare e(p, Q) per qualche P, Q ϵ G 1 [12]. Osserviamo che se è possibile riconoscere un pairing ammissibile quando G 1 è una curva ellittica, allora è altresì possibile ridurre il calcolo del logaritmo discreto di P in base B mediante la relazione 1 = e(p, P) = e(xb, P) = e(b, P) x, ponendo e(b, P) = y e risolvendo y x = 1 nel campo finito. Il Pairing ammissibile più comunemente usato è il Pairing di Weil. Per introdurlo occorre definire alcuni concetti: Definizione 9: (Divisore, Ordine del Divisore, Grado del Divisore, Supporto del Divisore, Divisore principale). Se ε/k è una curva non singolare, allora un divisore di ε è una combinazione lineare di punti su ε. Se P j denota i punti su ε, allora un divisore è scritto come D = n j P j, dove gli n j sono interi. Se P è un punto e D è un divisore, allora l'ordine v P (D) è il coefficiente di P in D (è pari a 0 se P non è presente in D). Il grado del divisore D è dato da deg(d):= n j. L'insieme di tutti i punti P con coefficienti diversi da zero è chiamato supporto del divisore ed è definito come supp(d) = {P ϵ ε n j 0}. Se φ = f/g è una funzione razionale omogenea di grado n, allora il numero n degli zeri di φ è uguale al numero dei poli di φ. Il divisore di grado zero il cui supporto è determinato dagli n zeri di φ (quindi di f) con la loro molteplicità e con segno positivo e dagli n poli di φ (quindi gli zeri di g) con la loro molteplicità e con segno negativo si dice divisore principale di φ e si denota con div(φ). Due divisori D 1 e D 2 si dicono linearmente equivalenti e si scrive D 1 ~ D 2 se la loro differenza D 1 - D 2 è un divisore principale. [13] Definizione 10: (Funzione di Weil). Se ε è una curva ellittica, D un divisore su ε e f è una funzione razionale definita sulla curva e tale che supp(d) supp(div(f)) = 0, allora definiamo f(d):= P ϵ ε f(p) vp(d). Da notare che se f ha grado 0 allora f(d) dipende solamente da div(f), pertanto se moltiplichiamo f per una costante b, moltiplichiamo f(d) per P ϵ ε b vp(d) = 1. [14]
7 Definizione 11: (Weil Pairing). Sia n > 1 un intero e siano D 1, D 2 divisori su una curva ellittica ε, con supporti disgiunti, tali che nd 1, nd 2 ~ 0 (cioè sono entrambi divisori principali). Questo significa che ci sono funzioni φ 1 e φ 2 tali che nd i = div(φ i ) per i =1, 2. Definiamo il Weil Pairing come e n (D 1, D 2 ) = φ 1 (D 2 ) / φ 2 (D 1 ). Esempio 2: (Calcolo del Weil Pairing). Sia data la curva ε/f 7 : y 2 = x 3 +2, calcolare e 3 ((0, 3; 1), (5, 1; 1)). Siano: D (0,3;1) = [(0, 3; 1)]-[(0, 1; 0)] D (5,1;1) = [(5, 1; 1)+(6, 1; 1)] [(6, 1; 1)] = [(3, 6; 1)] [(6, 1; 1)] Le funzioni di cui sono i divisori principali sono: div((y 3t)/t) = 3D (0,3;1) div ((4x - y + t)/(5x - y - t)) = 3D (5,1;1) ne segue che: f (0,3;1) = (y - 3t)/t f (5,1;1) = (4x - y + t)/(5x - y - t) quindi: f (0,3;1) D (5,1;1) = f (0,3;1) (3, 6; 1)/f (0,3;1) (6, 1; 1) = (6-3)/(1-3) = 2 (mod 7) f (5,1;1) D (0,3;1) = f (5,1;1) (0, 3; 1)/f (5,1;1) ((0, 1; 0)) = 4/1 = 4 (mod 7) Infine: e 3 ((0, 3; 1), (5, 1; 1)) = 4/2 = 2 (mod 7) [15] Da notare che per alcune curve il pairing di Weil vale sempre 1, cioè è degenere. Ad esempio: sia p un un numero primo tale che p = 2 (mod 3) e sia q > 3 qualche fattore primo di (p+1). Sia la curva ellittica ε definita dall'equazione y 2 = x 3 +1 su Z p. Per ogni punto Q, R ϵ ε(z p ) vale e q (Q, R) = 1. In altre parole, il Weil Pairing è degenere su ε(z p ) Elenchiamo ora alcune proprietà del Weil Pairing su questa curva particolare: Poiché x 3 +1 è una permutazione su Z p ne consegue che il gruppo ε(z p ) contiene p+1 punti (compreso il punto all'infinito ϴ). Sia P ε(z p ) un punto di ordine q e sia G 1 il sottogruppo di punti generato da P. Per ogni y 0 ϵ Z p esiste un unico punto di coordinate (x 0, y 0 ) su ε(z p ). Quindi, se il punto (x, y) diverso da zero è generico su ε(z p ), allora y è uniformemente distribuita su Z p. Sia ζ un simbolo per cui valga ζ 2 + ζ + 1 = 0 e sia K = {a + ζ b : a,b Z p } il campo finito con p 2 elementi. La mappa ϕ(x, y) = (ζx, y) risulta un automorfismo del gruppo di punti sulla curva ε/k. È da notare che per ogni punto Q = (x, y) ε(z p ) abbiamo che ϕ(q) ε(k), ma ϕ(q) ε(z p ). Pertanto Q ε(z p ) è linearmente indipendente da ϕ(q) ε(k). Poiché i punti Q G 1 e ϕ(q) sono linearmente indipendenti, essi generano un gruppo isomorfo a Z q Z q. Chiamiamo questo gruppo di punti ε[q]. [17] Sia G 2 il sottogruppo di K di ordine q. Il Weil Pairing sulla curva ε(k) è una mappa e : ε[q] ε[q] G 2 tale che per ogni punto Q, R ϵ ε(z p ) vale e(q, R) = 1. Per avere una mappa non degenere è necessario definire il Weil Pairing modificato. Definizione 12: (Weil Pairing Modificato). Il Weil Pairing modificato è una mappa ê : G 1 G 1 G 2 tale che: ê(p, Q) = e(p, ϕ(q)). Il Weil Pairing modificato soddisfa le seguenti proprietà: Bilinearità: P, Q ϵ G 1 e a,b ϵ Z abbiamo che ê(ap, bq) = ê(p, Q) ab. Non-degenericità: Se P è un generatore di G 1 allora ê(p, P)ϵ K * è un generatore di G 2. Computabilità: Dati P, Q ϵ G 1 esiste un efficiente algoritmo, per esempio l'algoritmo di Miller, per calcolare ê(p, Q) ϵ G 2 [18].
8 Algoritmo 4: (El Gamal per il Weil Pairing). L'algoritmo di El Gamal applicato al Weil Pairing lavora come segue: (Setup) Sia G un generatore dei parametri per il BDH. Assegnato un parametro di sicurezza k ϵ Z +, l'algoritmo procede nel seguente modo: 1. Generiamo tramite G un numero primo q, due gruppi G 1, G 2, di ordine q e un'ammissibile mappa bilineare ê : G 1 G 1 G 2. Scegliamo ora casualmente un punto P generatore di G Scegliamo casualmente un s ϵ Z * q e fissiamo Q = sp. 3. Scegliamo una funziona hash crittografica H tale che H : G 2 {0, 1} n. Lo spazio dei messaggi M = {0,1} n. Lo spazio dei testi cifrati C = G 1 X {0, 1} n. I parametri del sistema pertanto sono params = <q, G 1, G 2, ê, n, P, Q, H> [19]. Algoritmo 5: (Miller). L'Algoritmo di Miller per il calcolo del Pairing di Weil si applica a curve ellittiche supersingolari, definite su Z P con p > 3 e quindi con l'ordine della curva pari a ord(ε(z p )) = 1 (mod p). Vediamo ora come funziona detto algoritmo: In input abbiamo due punti P, Q appartenente a ε[q], in output avremo e(p,q). 1. Si selezionano casualmente due punti T ed U della curva ε, tali che P+T, T, Q+U, U siano punti distinti. A questo punto, siano D P = (P+t)-T e D Q = (Q+U)-U equivalenti rispettivamente a (P)-(O) e (Q)-(O). 2. Si usa un algoritmo di valutazione per calcolare f P (Q+U), f P (U), f Q (P+T) e f Q (T) con div(f P ) = qd P e div(f Q ) = qd Q. 3. Si calcola ora e(p,q) = f P (D Q )/f Q (D P ) = (f P (D+U)f Q (U))/(f Q (P+T)f P (U)). La parte cruciale dell'algoritmo di Miller è il passo 2, per S = (x S, y S ) f P (S) produce f P tale che div(f P ) = qd P e calcola f P (x S, y S ). Dato che Dp = (P+T)-(T), per ogni k intero positivo esiste una funzione razionale f k tale che: div(f k ) = k(p+t)-k(t)-k(p)+(o). Se k = q allora : div(f Q ) = q(p+t)-q(t)-q(p)+(o) e f P = f Q. 6. Il progetto OpenSSL Il progetto OpenSSL è un'implementazione open source dei protocolli SSL v2/v3 (Secure Sockets Layers) e TLS v1 (Transport Layer Security), l'idea alla base di tale progetto era quella di creare un toolkit completo per effettuare operazioni di cifratura dei dati, per questo motivo l'intera piattaforma è stata sviluppata in linguaggio C così da essere portabile sui sistemi operativi più diffusi, inizialmente solo quelli di tipo unix-like e successivamente anche per Microsoft Windows. Il pacchetto supporta diversi algoritmi crittografici. Tra questi ricordiamo: Cifrari: Blowfish, Camellia, Cast, DES, RC2, RC4, RC5, IDEA, AES; Funzioni Hash Crittografiche: MD5, MD2, SHA, MDC-2; Crittografia a Chiave Pubblica: RSA, DSA, Scambio di chiavi Diffie-Hellman Funzioni di Autenticazione dei Messaggi: HMAC, MD2, MD4, MD5, MDC2, RIPEMD, SHA Certificati: X.509 [20] Il protocollo SSL/TLS nasce con lo scopo di garantire la sicurezza dello scambio di informazioni su Internet, consentendo alle applicazioni client/server di comunicare garantendo la sicurezza del collegamento mediante tre condizioni fondamentali: Affidabilità: per sua costituzione, il livello di trasporto include un controllo sull'integrità del messaggio basato su un apposito codice di autenticazione del messaggio (MAC) che utilizza funzioni hash sicure così da evitare che le informazioni scambiate tra client e server siano alterate durante la trasmissione delle stesse; Privatezza del collegamento: per far sì che il canale usato da due o più utenti per trasmettere i dati sia sicuro, si utilizzano degli
9 algoritmi crittografici a chiave simmetrica per cifrare i dati; Autenticazione: per autenticare l'identità degli utenti che usano il canale di trasmissione, è possibile usare la crittografia a chiave pubblica così che il client possa comunicare con il server corretto evitando che un utente malevolo si interponga nella comunicazione. In aggiunta all'uso della crittografia a chiave pubblica è prevista anche la certificazione sia del client che del server. OpenSSL è composto da un insieme di funzioni di cifratura e da utilities che permettono di usarle, in particolare porremo la nostra attenzione sul protocollo SSL che permette la mutua autenticazione tra un client e un server e la conseguente creazione di una connessione in primo luogo autenticata e successivamente crittografata. Il protocollo crittografico utilizzato nell'esempio è lo scambio di chiavi di Diffie-Hellman. L'obiettivo è quindi quello di creare un canale sicuro per trasferire informazioni da un client ad un server: il server genera e controlla i parametri condivisi con il client, entrambe le parti generano una coppia di chiavi, una pubblica ed una privata e si scambiano il rispettivo parametro pubblico. A questo punto, client e server generano autonomamente la chiave simmetrica condivisa. Per fare ciò è stato sufficiente avvalersi delle api EVP e delle numerose funzioni presenti in OpenSSL, incluse nelle librerie <openssl/dh.h>, usata per gestire il protocollo DH, e <openssl/bn.h> relativa alle funzioni che si occupano dei numeri primi sufficientemente grandi necessari per far sì che il protocollo sia sicuro. In particolare il contesto EVP è una struttura dati che ci consente di implementare il cifrario a chiave simmetrica. Come prima cosa quindi, è necessario allocare un contesto EVP : EVP_CIPHER_CTX*ctx; ctx = malloc(sizeof(evp_cipher_ctx)); Successivamente, si deve inizializzare settando la dimensione che deve avere la chiave e il blocco: EVP_CIPHER_CTX_init(ctx); EVP_CIPHER_CTX_set_key_length(ctx, key_size); Per deallocare il contesto invece: EVP_CIPHER_CTX_cleanup(ctx); free(ctx); Per dare vita ad un canale di comunicazione sicuro Diffie-Hellman è necessario che il server generi i parametri DH e li invii al client. È quindi necessario utilizzare un'altra struttura dati, la struttura DH, che contienga al suo interno i parametri necessari per applicare il protocollo (il numero primo p, il generatore g, la chiave privata priv_key e la chiave pubblica pub_key). Per generare una coppia di chiavi da utilizzare come parametri si usa la funzione DH_generate_key(dh) e si invia la pub_key al client. A questo punto il client, mediante la funzione DH_new() crea una struttura dati DH per accogliere i parametri generati dal server, successivamente viene generata un'altra coppia di chiavi e invia la pub_key al server. A questo punto, client e server costruiscono la chiave simmetrica Diffie-Hellman, il client cifra un file con la chiave simmetrica e lo invia al server che lo decifra. 7. Bibliografia [1] N. Ferguson, B. Schneier and T. Kohno, Il manuale della crittografia, Apogeo, pp.153. [2] N. Ferguson, B. Schneier and T. Kohno, Il manuale della crittografia, Apogeo, pp [3] N. Ferguson, B. Schneier and T. Kohno, Il manuale della crittografia, Apogeo, pp [4] N. Ferguson, B. Schneier and T. Kohno, Il manuale della crittografia, Apogeo, pp [5] M. Leslie, Elliptic Curve Cryptography, pp.1 [6] A. Nicolosi, Sicurezza e applicazioni crittografiche della funzione Diffie-Hellman, Università degli Studi di Catania, pp [7] M. Leslie, Elliptic Curve Cryptography, pp.2
10 [8] M. Leslie, Elliptic Curve Cryptography, pp.3 [9] M. Leslie, Elliptic Curve Cryptography, pp.4 [10] E. Bellini, La crittografia a curve ellittiche e applicazioni, Torino 2011, pp.4 [11] M. Leslie, Elliptic Curve Cryptography, pp.9 [12] D. Boneh, M. Franklin, Identity-Based Encryption from the Weil Pairing, Stanford University, pp.7 [13] D. Boneh, M. Franklin, Identity-Based Encryption from the Weil Pairing, Stanford University, pp. 28 [14] D. Boneh, M. Franklin, Identity-Based Encryption from the Weil Pairing, Stanford University, pp. 28 [15] R. Chen, The Weil Pairing, Computation of the Pairings, [16] V. Miller, The Weil Pairing, and its Efficient Calculation, Princeton 2004, pp 237 [17] D. Boneh, M. Franklin, Identity-Based Encryption from the Weil Pairing, Stanford University, pp. 19 [18] D. Boneh, M. Franklin, Identity-Based Encryption from the Weil Pairing, Stanford University, pp. 20 [19] D. Boneh, M. Franklin, Identity-Based Encryption from the Weil Pairing, Stanford University, pp. 23 [20] AA.VV., [21] C. Ventre, Oblivious Transfer per la generazione di chiavi RSA: protocolli ed implementazione in OpenSSL, Università degli Studi di Salerno, pp.10
SISTEMI DI NUMERAZIONE E CODICI
SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema
DettagliLE FUNZIONI A DUE VARIABILI
Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre
Dettagli! La crittoanalisi è invece la scienza che cerca di aggirare o superare le protezioni crittografiche, accedendo alle informazioni protette
Crittografia Cenni Damiano Carra Università degli Studi di Verona Dipartimento di Informatica La crittografia! Scienza che si occupa di proteggere l informazione rendendola sicura, in modo che un utente
Dettaglida chi proviene un messaggio?
da chi proviene un messaggio? in un crittosistema simmetrico solo Alice e Bob conoscono la chiave se Bob riceve un messaggio di Alice e la decifratura del messaggio ha senso, il messaggio proviene certamente
DettagliAPPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI
APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI Indice 1 Le frazioni algebriche 1.1 Il minimo comune multiplo e il Massimo Comun Divisore fra polinomi........ 1. Le frazioni algebriche....................................
DettagliIntroduzione alla crittografia. Il crittosistema RSA e la sua sicurezza
Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza Prof. Massimiliano Sala MINICORSI 2011. Crittografia a chiave pubblica: oltre RSA Università degli Studi di Trento, Lab di Matematica
Dettagli4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
DettagliLezioni di Matematica 1 - I modulo
Lezioni di Matematica 1 - I modulo Luciano Battaia 16 ottobre 2008 Luciano Battaia - http://www.batmath.it Matematica 1 - I modulo. Lezione del 16/10/2008 1 / 13 L introduzione dei numeri reali si può
DettagliSTRUTTURE ALGEBRICHE
STRUTTURE ALGEBRICHE Operazioni in un insieme Sia A un insieme non vuoto; una funzione f : A A A si dice operazione binaria (o semplicemente operazione), oppure legge di composizione interna. Per definizione
DettagliIntroduzione alla crittografia con OpenPGP
Introduzione alla crittografia con OpenPGP D avide Cerri dav ide@ linux.it Crittografia Per proteggere le comunicazioni su Internet si utilizza la crittografia. La crittografia è la scienza che si occupa
DettagliDimensione di uno Spazio vettoriale
Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione
DettagliCorrispondenze e funzioni
Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei
DettagliSiamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
DettagliPROPRIETA' ASSOCIATIVA La somma di tre o più addendi non cambia se al posto di alcuni di essi si sostituisce la loro somma.
Addizione: PROPRIETA' COMMUTATIVA Cambiando l'ordine degli addendi la somma non cambia. 1) a + b = b + a PROPRIETA' ASSOCIATIVA La somma di tre o più addendi non cambia se al posto di alcuni di essi si
DettagliUNIVERSITÀ DEGLI STUDI DI TERAMO
UNIVERSITÀ DEGLI STUDI DI TERAMO CORSO DI LAUREA IN ECONOMIA BANCARIA FINANZIARIA ED ASSICURATIVA (Classe 7) Corso di Matematica per l Economia (Prof. F. Eugeni) TEST DI INGRESSO Teramo, ottobre 00 SEZIONE
DettagliIl glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.
Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC. Avviso di mancata consegna L avviso, emesso dal sistema, per indicare l anomalia
DettagliAnalisi di programmi: Crittografia
Analisi di programmi: Crittografia Come caso concreto di sistema, proviamo ad abbozzare e a vedere una prima implementazione di un sistema di crittografia a chiave pubblica La crittografia studia le tecniche
DettagliIntroduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6
Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...
DettagliComunicazioni sicure su Internet: https e SSL. Fisica dell Informazione
Comunicazioni sicure su Internet: https e SSL Fisica dell Informazione Il servizio World Wide Web (WWW) Come funziona nel dettaglio il Web? tre insiemi di regole: Uniform Resource Locator (URL) Hyper Text
DettagliLEZIONE 23. Esempio 23.1.3. Si consideri la matrice (si veda l Esempio 22.2.5) A = 1 2 2 3 3 0
LEZIONE 23 231 Diagonalizzazione di matrici Abbiamo visto nella precedente lezione che, in generale, non è immediato che, data una matrice A k n,n con k = R, C, esista sempre una base costituita da suoi
DettagliRC4 RC4. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano cerri@cefriel.it http://www.cefriel.it/~cerri/
POLITECNICO DI MILANO CEFRIEL - Politecnico di Milano cerri@cefriel.it http://www.cefriel.it/~cerri/ è un cifrario a flusso progettato da Ron Rivest (la R di RSA) nel 1987. Era un segreto commerciale della
Dettagli1. PRIME PROPRIETÀ 2
RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,
DettagliScambio delle chiavi. mercoledì 7 dicembre 2011
Scambio delle chiavi 1 mercoledì 7 dicembre 2011 Distribuzione della chiave Dati due terminali A e B, si possono avere varie alternative per la distribuzione delle chiavi. 1. A sceglie una chiave e la
Dettagli( x) ( x) 0. Equazioni irrazionali
Equazioni irrazionali Definizione: si definisce equazione irrazionale un equazione in cui compaiono uno o più radicali contenenti l incognita. Esempio 7 Ricordiamo quanto visto sulle condizioni di esistenza
DettagliINTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI
INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.
DettagliInformatica per la comunicazione" - lezione 13 -
Informatica per la comunicazione" - lezione 13 - Funzionamento di una password" 1: l utente tramite il suo browser richiede l accesso a una pagina del server; 2: il server richiede il nome utente e la
DettagliSSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer
: applicazioni telematiche Secure Socket Layer E-commerce Trading on-line Internet banking... Protocollo proposto dalla Netscape Communications Corporation Garantisce confidenzialità e affidabilità delle
DettagliFunzioni inverse Simmetrie rispetto alla bisettrice dei quadranti dispari. Consideriamo la trasformazione descritta dalle equazioni : = y
Funzioni inverse Simmetrie rispetto alla bisettrice dei quadranti dispari. Consideriamo la trasformazione descritta dalle equazioni : ' = y y' = Consideriamo il punto P(,5) se eseguiamo tra trasformazione
DettagliRETI DI CALCOLATORI. Crittografia. La crittografia
RETI DI CALCOLATORI Crittografia La crittografia La crittografia è la scienza che studia la scrittura e la lettura di messaggi in codice ed è il fondamento su cui si basano i meccanismi di autenticazione,
DettagliCrittografia. Appunti a cura del prof. Ing. Mario Catalano
Crittografia Appunti a cura del prof. Ing. Mario Catalano La crittografia La crittografia è la scienza che studia la scrittura e la lettura di messaggi in codice. Solitamente, i meccanismi crittografici
DettagliCapitolo 2. Operazione di limite
Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A
DettagliI sistemi di numerazione
I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono
DettagliFirma digitale Definizione
FIRMA DIGITALE Firma digitale Definizione La definizione di firma digitale è contenuta nel Dlgs. Del 4/04/2006 n.159 che integra il Codice dell amministrazione digitale in vigore dal 1/01/2006. Firma digitale
DettagliL espressione torna invece sempre vera (quindi la soluzione originale) se cambiamo contemporaneamente il verso: 1 < 0.
EQUAZIONI E DISEQUAZIONI Le uguaglianze fra espressioni numeriche si chiamano equazioni. Cercare le soluzioni dell equazione vuol dire cercare quelle combinazioni delle lettere che vi compaiono che la
DettagliDefinire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};
ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca
Dettaglirazionali Figura 1. Rappresentazione degli insiemi numerici Numeri reali algebrici trascendenti frazionari decimali finiti
4. Insiemi numerici 4.1 Insiemi numerici Insieme dei numeri naturali = {0,1,,3,,} Insieme dei numeri interi relativi = {..., 3,, 1,0, + 1, +, + 3, } Insieme dei numeri razionali n 1 1 1 1 = : n, m \{0}
DettagliLa firma digitale CHE COSA E'?
La firma digitale La Firma Digitale è il risultato di una procedura informatica che garantisce l autenticità e l integrità di messaggi e documenti scambiati e archiviati con mezzi informatici, al pari
DettagliLa firma digitale e le sue possibili applicazioni
Il documento informatico e la firma digitale nelle applicazioni pratiche La firma digitale e le sue possibili applicazioni dott. Enrico Zimuel (enrico@zimuel.it) Pescara, 15 febbraio 2008 Centro Studi
DettagliDOCUMENTO ELETTRONICO E FIRMA DIGITALE
DOCUMENTO ELETTRONICO E FIRMA DIGITALE CHE COSA È LA CRITTOGRAFIA LA CRITTOLOGIA È SCIENZA CHE STUDIA LE SCRITTURE SEGRETE 2 CRITTOGRAFIA STUDIA I SISTEMI DI PROTEZIONE DEI MESSAGGI CRITTOANALISI STUDIA
Dettagli2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione
Capitolo 2 MATRICI Fra tutte le applicazioni su uno spazio vettoriale interessa esaminare quelle che mantengono la struttura di spazio vettoriale e che, per questo, vengono dette lineari La loro importanza
DettagliSOMMARIO. 13.1 I radicali pag. 3. 13.2 I radicali aritmetici pag. 5. 13.3 Moltiplicazione e divisione fra radicali aritmetici pag.
SOMMARIO CAPITOLO : I RADICALI. I radicali pag.. I radicali aritmetici pag.. Moltiplicazione e divisione fra radicali aritmetici pag.. Potenza di un radicale aritmetico pag.. Trasporto di un fattore esterno
DettagliFunzioni. Funzioni /2
Funzioni Una funzione f è una corrispondenza tra due insiemi A e B che a ciascun elemento di A associa un unico elemento di B. Si scrive: f : A B l'insieme A si chiama il dominio della funzione f, l'insieme
Dettagliun protocollo è costituito da una serie di passi (step) e coinvolge due o più persone (parti, entità) allo scopo di svolgere un incarico
protocolli un protocollo è costituito da una serie di passi (step) e coinvolge due o più persone (parti, entità) allo scopo di svolgere un incarico proprietà ogni persona coinvolta deve conoscere il protocollo
DettagliBasi di matematica per il corso di micro
Basi di matematica per il corso di micro Microeconomia (anno accademico 2006-2007) Lezione del 21 Marzo 2007 Marianna Belloc 1 Le funzioni 1.1 Definizione Una funzione è una regola che descrive una relazione
Dettagli2 FUNZIONI REALI DI VARIABILE REALE
2 FUNZIONI REALI DI VARIABILE REALE 2.1 CONCETTO DI FUNZIONE Definizione 2.1 Siano A e B due insiemi. Una funzione (o applicazione) f con dominio A a valori in B è una legge che associa ad ogni elemento
DettagliARCHITETTURA DI RETE FOLEGNANI ANDREA
ARCHITETTURA DI RETE FOLEGNANI ANDREA INTRODUZIONE È denominata Architettura di rete un insieme di livelli e protocolli. Le reti sono organizzate gerarchicamente in livelli, ciascuno dei quali interagisce
DettagliLogica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo
Logica Numerica Approfondimento E. Barbuto Minimo Comune Multiplo e Massimo Comun Divisore Il concetto di multiplo e di divisore Considerato un numero intero n, se esso viene moltiplicato per un numero
DettagliIniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:
Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: G.C.D.( a d, b d ) = 1 Sono state introdotte a lezione due definizioni importanti che ricordiamo: Definizione
DettagliSicurezza nelle applicazioni multimediali: lezione 4, crittografia asimmetrica. Crittografia asimmetrica (a chiave pubblica)
Crittografia asimmetrica (a chiave pubblica) Problemi legati alla crittografia simmetrica Il principale problema della crittografia simmetrica sta nella necessità di disporre di un canale sicuro per la
DettagliLA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1
LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 I CODICI 1 IL CODICE BCD 1 Somma in BCD 2 Sottrazione BCD 5 IL CODICE ECCESSO 3 20 La trasmissione delle informazioni Quarta Parte I codici Il codice BCD
DettagliFasi di creazione di un programma
Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma
DettagliProdotto libero di gruppi
Prodotto libero di gruppi 24 aprile 2014 Siano (A 1, +) e (A 2, +) gruppi abeliani. Sul prodotto cartesiano A 1 A 2 definiamo l operazione (x 1, y 1 ) + (x 2, y 2 ) := (x 1 + x 2, y 1 + y 2 ). Provvisto
DettagliLezione 1. Gli Insiemi. La nozione di insieme viene spesso utilizzata nella vita di tutti i giorni; si parla dell insieme:
Lezione 1 Gli Insiemi La nozione di insieme viene spesso utilizzata nella vita di tutti i giorni; si parla dell insieme: degli iscritti ad un corso di laurea delle stelle in cielo dei punti di un piano
Dettagli1 Giochi a due, con informazione perfetta e somma zero
1 Giochi a due, con informazione perfetta e somma zero Nel gioco del Nim, se semplificato all estremo, ci sono due giocatori I, II e una pila di 6 pedine identiche In ogni turno di gioco I rimuove una
DettagliAlgoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.
Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito
DettagliStatistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.
Iniziamo con definizione (capiremo fra poco la sua utilità): DEFINIZIONE DI VARIABILE ALEATORIA Una variabile aleatoria (in breve v.a.) X è funzione che ha come dominio Ω e come codominio R. In formule:
DettagliEsercizi su lineare indipendenza e generatori
Esercizi su lineare indipendenza e generatori Per tutto il seguito, se non specificato esplicitamente K indicherà un campo e V uno spazio vettoriale su K Cose da ricordare Definizione Dei vettori v,,v
DettagliNumeri naturali numeri naturali minore maggiore Operazioni con numeri naturali
1 Numeri naturali La successione di tutti i numeri del tipo: 0,1, 2, 3, 4,..., n,... forma l'insieme dei numeri naturali, che si indica con il simbolo N. Tale insieme si può disporre in maniera ordinata
DettagliLogaritmi ed esponenziali
Logaritmi ed esponenziali definizioni, proprietà ITIS Feltrinelli anno scolastico 2007-2008 A cosa servono i logaritmi I logaritmi rendono possibile trasformare prodotti in somme, quozienti in differenze,
DettagliCorso di Informatica
Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down
DettagliConvertitori numerici in Excel
ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel
DettagliLezione 7 Sicurezza delle informazioni
Lezione 7 Sicurezza delle informazioni Sommario Concetti generali Meccanismi per la sicurezza IT: Crittografia Hash Firma digitale Autenticazione 1 Concetti generali Availability Confidentiality Integrity
DettagliFunzioni. Parte prima. Daniele Serra
Funzioni Parte prima Daniele Serra Nota: questi appunti non sostituiscono in alcun modo le lezioni del prof. Favilli, né alcun libro di testo. Sono piuttosto da intendersi a integrazione di entrambi. 1
Dettagli10. Insiemi non misurabili secondo Lebesgue.
10. Insiemi non misurabili secondo Lebesgue. Lo scopo principale di questo capitolo è quello di far vedere che esistono sottoinsiemi di R h che non sono misurabili secondo Lebesgue. La costruzione di insiemi
DettagliCapitolo 13: L offerta dell impresa e il surplus del produttore
Capitolo 13: L offerta dell impresa e il surplus del produttore 13.1: Introduzione L analisi dei due capitoli precedenti ha fornito tutti i concetti necessari per affrontare l argomento di questo capitolo:
DettagliTeoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26
Indice L attività di recupero 6 Funzioni Teoria in sintesi 0 Obiettivo Ricerca del dominio e del codominio di funzioni note Obiettivo Ricerca del dominio di funzioni algebriche; scrittura del dominio Obiettivo
DettagliLe funzioni continue. A. Pisani Liceo Classico Dante Alighieri A.S. 2002-03. A. Pisani, appunti di Matematica 1
Le funzioni continue A. Pisani Liceo Classico Dante Alighieri A.S. -3 A. Pisani, appunti di Matematica 1 Nota bene Questi appunti sono da intendere come guida allo studio e come riassunto di quanto illustrato
Dettaglirisulta (x) = 1 se x < 0.
Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente
DettagliESEMPIO 1: eseguire il complemento a 10 di 765
COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento
DettagliCreare connessioni cifrate con stunnel
ICT Security n. 24, Giugno 2004 p. 1 di 5 Creare connessioni cifrate con stunnel Capita, e purtroppo anche frequentemente, di dover offrire servizi molto insicuri, utilizzando ad esempio protocolli che
DettagliLA RETTA. Retta per l'origine, rette orizzontali e verticali
Retta per l'origine, rette orizzontali e verticali LA RETTA Abbiamo visto che l'equazione generica di una retta è del tipo Y = mx + q, dove m ne rappresenta la pendenza e q il punto in cui la retta incrocia
DettagliLa Firma Digitale La sperimentazione nel Comune di Cuneo. Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo
La Firma Digitale La sperimentazione nel Comune di Cuneo Pier Angelo Mariani Settore Elaborazione Dati Comune di Cuneo Perchè questa presentazione Il Comune di Cuneo, aderente alla RUPAR, ha ricevuto due
Dettagli3. Introduzione all'internetworking
3. Introduzione all'internetworking Abbiamo visto i dettagli di due reti di comunicazione: ma ce ne sono decine di tipo diverso! Occorre poter far comunicare calcolatori che si trovano su reti di tecnologia
DettagliEsempi di funzione. Scheda Tre
Scheda Tre Funzioni Consideriamo una legge f che associa ad un elemento di un insieme X al più un elemento di un insieme Y; diciamo che f è una funzione, X è l insieme di partenza e X l insieme di arrivo.
Dettaglila scienza della rappresentazione e della elaborazione dell informazione
Sistema binario Sommario informatica rappresentare informazioni la differenza Analogico/Digitale i sistemi di numerazione posizionali il sistema binario Informatica Definizione la scienza della rappresentazione
DettagliESERCIZI DI PREPARAZIONE E
ESERCIZI DI PREPARAZIONE E CONSOLIDAMENTO PER I FUTURI STUDENTI DEL PRIMO LEVI si campa anche senza sapere che cos è un equazione, senza sapere suonare uno strumento musicale, senza conoscere il nome del
Dettagli13. Campi vettoriali
13. Campi vettoriali 1 Il campo di velocità di un fluido Il concetto di campo in fisica non è limitato ai fenomeni elettrici. In generale il valore di una grandezza fisica assegnato per ogni punto dello
Dettagli4. Operazioni elementari per righe e colonne
4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:
DettagliAspetti Crittografici nel Cloud Computing
Aspetti Crittografici nel Cloud Computing Prof. Massimiliano Sala Università di Trento Trento, 10 Maggio 2013 Prof. Sala (Università di Trento) Trust and Cloud Computing Trento, 10 Maggio 2013 1 / 20 Introduzione
DettagliAppunti sulla Macchina di Turing. Macchina di Turing
Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso
DettagliMatematica 1 - Corso di Laurea in Ingegneria Meccanica
Matematica 1 - Corso di Laurea in Ingegneria Meccanica Esercitazione su massimi e minimi vincolati 9 dicembre 005 Esercizio 1. Considerare l insieme C = {(x,y) R : (x + y ) = x } e dire se è una curva
Dettagli4 Dispense di Matematica per il biennio dell Istituto I.S.I.S. Gaetano Filangieri di Frattamaggiore EQUAZIONI FRATTE E SISTEMI DI EQUAZIONI
119 4 Dispense di Matematica per il biennio dell Istituto I.S.I.S. Gaetano Filangieri di Frattamaggiore EQUAZIONI FRATTE E SISTEMI DI EQUAZIONI Indice degli Argomenti: TEMA N. 1 : INSIEMI NUMERICI E CALCOLO
DettagliDispense di Informatica per l ITG Valadier
La notazione binaria Dispense di Informatica per l ITG Valadier Le informazioni dentro il computer All interno di un calcolatore tutte le informazioni sono memorizzate sottoforma di lunghe sequenze di
Dettaglif(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da
Data una funzione reale f di variabile reale x, definita su un sottoinsieme proprio D f di R (con questo voglio dire che il dominio di f è un sottoinsieme di R che non coincide con tutto R), ci si chiede
DettagliCorso di Calcolo Numerico
Corso di Calcolo Numerico Dott.ssa M.C. De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Sistemi di Numerazione Sistema decimale La
DettagliComplemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno
Rappresentazione di numeri Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Un numero e un entità teorica,
DettagliApplicazioni lineari
Applicazioni lineari Esempi di applicazioni lineari Definizione. Se V e W sono spazi vettoriali, una applicazione lineare è una funzione f: V W tale che, per ogni v, w V e per ogni a, b R si abbia f(av
DettagliSchemi delle Lezioni di Matematica Generale. Pierpaolo Montana
Schemi delle Lezioni di Matematica Generale Pierpaolo Montana Al-giabr wa al-mukabalah di Al Khuwarizmi scritto approssimativamente nel 820 D.C. Manuale arabo da cui deriviamo due nomi: Algebra Algoritmo
DettagliProbabilità discreta
Probabilità discreta Daniele A. Gewurz 1 Che probabilità c è che succeda...? Una delle applicazioni della combinatoria è nel calcolo di probabilità discrete. Quando abbiamo a che fare con un fenomeno che
DettagliDiagonalizzazione di matrici e applicazioni lineari
CAPITOLO 9 Diagonalizzazione di matrici e applicazioni lineari Esercizio 9.1. Verificare che v = (1, 0, 0, 1) è autovettore dell applicazione lineare T così definita T(x 1,x 2,x 3,x 4 ) = (2x 1 2x 3, x
DettagliFunzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente
Funzioni In matematica, una funzione f da X in Y consiste in: 1. un insieme X detto dominio di f 2. un insieme Y detto codominio di f 3. una legge che ad ogni elemento x in X associa uno ed un solo elemento
DettagliESERCIZI DI ALGEBRA LINEARE E GEOMETRIA
ESERCIZI DI ALGEBRA LINEARE E GEOMETRIA Francesco Bottacin Padova, 24 febbraio 2012 Capitolo 1 Algebra Lineare 1.1 Spazi e sottospazi vettoriali Esercizio 1.1. Sia U il sottospazio di R 4 generato dai
DettagliExcel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it
Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo
DettagliSommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.
Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell
DettagliCAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI
CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI Abbiamo studiato successioni e serie numeriche, ora vogliamo studiare successioni e serie di funzioni. Dato un insieme A R, chiamiamo successione di funzioni
DettagliSicurezza nei Sistemi Distribuiti
Sicurezza nei Sistemi Distribuiti Aspetti di Sicurezza La sicurezza nei sistemi distribuiti deve riguardare tutti i componenti del sistema e coinvolge due aspetti principali: Le comunicazioni tra utenti
DettagliSicurezza nei Sistemi Distribuiti
Sicurezza nei Sistemi Distribuiti Aspetti di Sicurezza La sicurezza nei sistemi distribuiti deve riguardare tutti i componenti del sistema e coinvolge due aspetti principali: Le comunicazioni tra utenti
DettagliLezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
DettagliDocumenti cartacei e digitali. Autenticità. Cosa si vuole garantire? Riservatezza. Integrità 11/12/2012. PA digitale: documenti e firme (I.
Università degli studi di Catania Pubblica Amministrazione digitale Elementi tecnici sulla firma digitale Ignazio Zangara Agatino Di Bella Area della Formazione Gestione dell archivio (novembre dicembre
DettagliSISTEMI E RETI. Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB.
SISTEMI E RETI Crittografia. Sistemi distribuiti e configurazione architetturale delle applicazioni WEB. CRITTOGRAFIA La crittografia è una tecnica che si occupa della scrittura segreta in codice o cifrata
Dettagli