Commercio elettronico:frodi e algoritmi
Curiosando sull'internet ho trovato 'form' di vendita di prodotti apistici o semplicemente richieste di abbonamenti a varie riviste da fare con carta di credito. Prendo in considerazione due aspetti del commercio elettronico, le frodi e gli algoritmi per le transazioni in rete. Lo sviluppo della rete ha fatto sì che le vendite per corrispondenza ordinaria si possano ormai fare tramite posta elettronica. Si calcola(1996) che la cifra complessiva delle frodi in rete si aggiri sui 12 miliardi di dollari. In America l'Internet faud watch' gestito dalla 'Lega nazionale dei consumatori' ha compilato un decalogo del 'buon senso' per gli acquisti in rete.

1) Fai affari solo con le compagnie che conosci, e di cui ti fidi.

2) Valuta attentamente le proposte di vendita di prodotti; leggine attentamente descrizioni, caratteristiche e tariffe; se necessario telefona o manda un messaggio di posta elettronica chiedendo maggiori informazioni.

3) Controlla, all'interno delle pagine web di chi ti offre prodotti o servizi, il numero di licenza o di registrazione della società

4) Usa grande cautela nel fornire in via telematica dati personali, e soprattutto i numeri di carte di credito. In linea generale, meglio scegliere le società; che hanno un sistema per inviarli in maniera criptata.

5) Prendi tutto il tempo per decidere se quell'acquisto, o quell'affare, ti interessano: non farti mettere fretta dai venditori.

6) Attenzione a distinguere tra vendite di società e vendite di soggetti privati: anche se in Rete opera anche gente perfettamente onesta, il codice civile offre maggiore tutela contro le società registrate.

7) Meglio pagare con la carta di credito, che inviando assegni o contanti: l'acquisto sbagliato o truffaldino con la carta può essere contestato fino all'ultimo momento.

8) Non giudicare l'attendibilità di un sito commerciale dal suo aspetto, o dalla sua vivacità.

9) Non dimenticare mai che nel cyberspazio le persone non sempre sono come sembrano. Ancora una volta, non cadere alle lusinghe o alla simpatia.

10) Non scaricare 'plug in', o altri tipi di software, se non li conosci e se non sono garantiti da un marchio. Spesso infatti questi programmi sono veicolo di virus.

Per l'invio di dati in maniera criptata ho rielaborato due articoli che ho pubblicato nel 1996 Criptografia e funzioni modulari. Criptografia a chiave pubblica.

Criptografia e funzioni modulari

Per il problema della sicurezza e riservatezza delle transazioni in rete,considero le funzioni direzionali utilizzando l'aritmetica modulare.

Nell' aritmetica modulare dati due interi m e n si considera il resto della divisione m/n,m(mod n),esempio 8(mod 6)=2.

Il problema sorge se il resto è 2(mod12) ossia 2,il numero di partenza poteva essere 2,8,14,20 o un numero qualsiasi.

E' una specie di porta a senso unico ;quel che entra non riesce a uscire facilmente.

Richiamo la tecnica del ..trasferimento cieco.. inventata da Michael Rabin che compare nella procedura utilizzata da Manuel Blum.

La procedura è l'equivalente della raccomandata con ricevuta di ritorno. Tramite computer Alice deve essere sicura che Bob abbia ricevuto correttamente il messaggio e che non sia stato manipolato da Bob. Infatti Alice è in possesso della registrazione dei tentativi fatti da Bob per decifrare il messaggio.

Vediamo come.

Alice inserisce il messaggio tra le cifre ,per esempio 20,di grandi numeri, ognuno il prodotto di due grandi numeri primi e li invia a Bob,Bob deve scomporli tutti e venti per capire il messaggio.

Bob comincia la scomposizione per ogni numero e comunica il resto della divisione modulare ad Alice,a seconda della risposta di Alice può o no scomporre il primo numero e cosi via.

Bob ripete l'algoritmo più volte e alla fine riesce a decifrare il messaggio nello stesso tempo Alice ha la registrazione dei tentativi fatti da Bob. L'algoritmo usato è basato sul lancio di una moneta.Bob scommette con Alice,Bob sceglie testa,Alice per telefono dice croce e vince lei. Allora quale è il metodo per non bleffare?

Vediamo come si può utilizzare il trasferimento di Rabin nel caso del lancio di una moneta.

Alice sceglie un numero grande ,esempio 100 cifre, scegliendo due fattori primi grandi moltiplicati tra loro invia a Bob il risultato.

Per capire come funziona l'algoritmo consideriamo un numero piccolo. Alice sceglie 7 e 11 e trasmette a Bob il prodotto 77. Per vincere Bob deve scomporre 77 in 7 e 11.

Bob verifica subito se il numero è primo ,Alice potrebbe bleffare. Bob sceglie a caso un intero che potrebbe essere 7 o 11 e vincerebbe , ma la possibilità quando si lavora con i grandi numeri è infinitesimale. Poniamo che il numero scelto a caso sia 13,Bob eleva 13 alla seconda potenza e ottiene 169 con l'aritmetica modulare ,divide 169 per 77 e invia ad Alice il resto 15.

Alice divide per 77 tutti i numeri inferiori a 77 elevati al quadrato e trova quelli che hanno per resto 15.I numeri trovati sono 13,20,64,57 se comunica a Bob 13 Bob perde,se comunica uno degli altri tre vince Bob. Bob ,se per esempio Alice trasmette 57,somma il suo numero 13 a 57 e ottiene 70 .IL massimo comun divisore tra 70 e 77 è 7,7 è un fattore di 77 l'altro è 11 Bob vince.

Criptografia a chiave pubblica e il problema dello zaino

La sicurezza dei moderni sistemi cifrati dipende soprattutto da due domande : da un lato se sia facile scoprire i numeri primi, dall'altro se sia difficile scomporre in fattori primi un numero molto grande scelto a caso. La fattorizzazione riveste un interesse considerevole perché la sicurezza dei vari sistemi crittografici dipende dal fattore tempo. Infatti bastano pochi secondi per determinare se un numero è primo, ma occorono delle ore per scomporre numeri di cento o più cifre. La crittografia tradizionale , già usata da Giulio Cesare per nascondere le informazioni militari, ha un difetto ,infatti chi trasmette deve avere la chiave per codificare i messaggi e chi li riceve deve avere la chiave per decifrarli.

Per evitare lo scambio delle chiavi nel 1976 Martin Hellman e Witfield Diffie proposero la crittografia << a chiave pubblica>>.In questo sistema, la chiave è nota e disponibile a tutti coloro che trasmettono le notizie,mentre la decifrazione è segreta.

Un sistema di crittografia a chiave pubblica è lo schema RSA cosi chiamato dalle iniziali degli inventori Ron Rivest,Adi Shamir e Len Adelmann. L'algoritmo si base su questa osservazione, è facile moltiplicare tra loro due numeri primi,ma è difficile scomporre in fattori un numero composto.

Con la tecnica RSA ,una persona che vuole ricevere un messaggio comunica una chiave pubblica costituita di un grande numero N e di un intero r. Chi desidera trasmettere un messaggio a questa persona deve trasformare un messaggio in un intero di lunghezza N, dividendo il messaggio in blocchi, se necessario.Il resto che si ottiene dopo che ciascun blocco viene elevato alla potenza r e diviso per N viene poi trasmesso e costituisce il messaggio segreto.

La chiave del destinatario è un secondo intero ,s,che nessun altro conosce.Elevando alla potenza s il messaggio crittografato , questo è decifrato automaticamente. Cosi il destinatario è al sicuro da eventuali violazioni della segretezza,perché l'unico modo possibile di calcolare s richiede non solo la conoscenza di N, ma anche quella dei suoi fattori primi : solo il destinatario è in grado di decifrare il messaggio ,perché ogni altra persona deve fattorizzare N prima di riuscirci.Per N sufficientemente grandeè praticamente impossibile.

Con un esempio si può illustrare il metodo RSA,considerando per i calcoli piccoli numeri,l'agente Bob sceglie due numeri primi ,per esempio 5 e 13,li moltiplica tra loro e ottiene 65,il valore N.Poi l'agente ricava le due potenze r e s nel modo seguente : sottrae 1 da ciascun numero primo,ottenendo 4 e 12 e poi li moltplica tra loro. Il numero pubblico,r,è un qualsiasi numero compreso tra 1 e 48 che non sia un fattore di 48.

Sia 29 il numero ,adesso bisogna trovare un un numero che moltiplicato per 29 e poi diviso per 48 dà resto 1.Il numero trovato è 5,infatti (5x29)mod 48 =1.Quindi s può assumere il valore 5

L'agente Bob comunica all'agente Alice i due numeri pubblici 65 e 29,per trasmettere il messaggio Alice converte in numero ciascuna lettera dell'alfabeto:per esempio la lettera A potrebbe essere 3.

Quando vuole trasmettere una A,Alice scrive 3,lo innalza alla 29esima potenza divide per 65 e ottiene il resto 48.Il messaggio segreto trasmesso è <<48>> il computer di Bob lo decifra elevando 48 alla quinta potenza epoi calcola ilresto della potenza divisa per 65 .Il risultato è 3 che corrisponde ad A.

Lo schema RSA è macchinoso e lento , un sistema che permette codifiche e decodifiche ,in fretta, è quello dello <<zaino>> suggerito da Hellman e Merkle .

Il problema dello zaino dice:dato il peso totale di uno zaino pieno e quello dei singoli oggetti che vi possono essere contenuti,determinare quale è il contenuto in modo che il peso complessivo risulti uguale a quello dato.

In termini matematici, il problema è determinare se alcuni membri di un particolare gruppo di interi danno per somma un altro intero. Se il gruppo è costituito da 1,2,4,8,16 e 32 la somma data è 37,la risposta è vera perché 1+4+32=37.

L'idea di Merkle eHellman consiste nel prendere un <<facile>> problema dello zaino e di mascherarlo tramite un algoritmo,in modo da avere un problema <<duro>>,la cui soluzione richiede un tempo lunghissimo.

Il sistema RSA e alla base dell'altro sistema SET,ovvero Secure Elettronic Transactions,per il quale i gestori di carte di credito ,tipo Visa ,Mastercard vorrebbero affermarlo come standard universale per le transazioni economiche su Internet.

Anche Netscape adotta un sistema simile al RSA,il protocollo SLL,che si basa su tre punti fondamentali il primo è l'autenticazione del server ,il secondo la privacy che garantisce la riservatezza delle informa- zioni confidenziali in transito su Internet,il terzo è la verifica dei dati,che garantisce l'integrità delleinformazioni pervenute al destinatario.

Per accertarsi che il server cui ci si è collegati è quello autentico ,Netscape presenta la chiave intera nell'angolo inferiore di sinistra.

Esiste anche del software che implementa l'algoritmo di criptografia a chiave pubblica diponibile su Internet, il PGP.

Possiamo fidarci delle transazioni in rete?.La risposta è sì. Si può violare la cifratura RSA in tempi brevi?Ancora no. Ci provò nel 1996 Martin Gardner ma ci vollero seicento computer e diversi anni di lavoro.Sarà possibile in futuro con i computer quantistici. Altre considerazioni.
---------------------------------------------------------------------------------------
Per saperne di più:

Dove va la matematica-di-Keith Devlin--Bollati Boringhieri

Il turista matematico-di-Ivars Peterson--Rizzoli

Codici & segreti-di-Simon Singh--Rizzoli

Internet Oggi Magazine Numero 5 Maggio 1996

Per il PGP l'URL è http://www.ifi.uio.no/pgp/

---------------------------------------------------------------------------------------

Per qualsiasi commento o segnalazione potete contattare: Giacomo Omallini