|
L'idea di costruire un computer sulla base della tecnologia quantistica
risale a Richard Feynman che presentò una relazione "Simulating Physics with
Computers" al Massachusetts Institute of Technology (MIT) nel 1981. Negli anni novanta le idee divennero più chiare perché si dimostrò in via teorica come il computer quantistico può risolvere problemi di calcolo insolubili con strumenti tradizionali. Tale macchina renderà agevole la fattorizzazione di numeri molto alti (oggi importanti per la crittografia (vedi risposta 98)), la generazione dei numeri casuali, renderà più veloce la ricerca di informazioni nei database molto ampi, il calcolo di logaritmi discreti, dei cicli Hamiltoniani, infine faciliterà la simulazione di eventi complessi. Tanto per fare un esempio, la fattorizzazione di un numero di 129 cifre ha richiesto 1600 workstations al lavoro in parallelo per 8 mesi. Peter Shor, diventato famoso per i suoi studi sull'argomento, ha calcolato che per fattorizzare un numero di 250 cifre un computer tradizionale impiegherebbe 800 mila anni. Per un numero di 1000 cifre occorrerebbe un tempo superiore all' età dell'universo. Invece per quest'ultima operazione con un algoritmo quantistico basterebbero pochi milioni di passi. I problemi risolvibili con i computer quantistici per ora sembrano riguardare soprattutto settori avanzati e molto speciali, ma ciò non ha ridotto l'interesse per la sua realizzazione pratica. Infatti aziende ed enti di ricerca (soprattutto statunitensi) hanno progressivamente aumentato i loro investimenti. E' spontaneo domandarsi: a che punto siamo con il quantum computing ? La seguente nota: Quantum Computing tra Sogno e Realtà fornisce alcuni rudimenti tecnici sullo stato dell'arte.
|
119. E' realistico pensare al computer quantistico? |
|
120. Gradirei un commento sulle differenze esistenti tra il compilatore e l'interprete |
Nella risposta
86
abbiamo fugacemente accennato ai compilatori, è dunque necessario riprendere il discorso. Il programma, usualmente scritto in un linguaggio simbolico (es. Cobol, Java ecc.), necessita di essere tradotto in linguaggio macchina. Il lavoro viene svolto normalmente dal compilatore e questa traduzione viene ripresa dal linker il quale aggiunge alcuni moduli. Infine il loader aggiunge alcuni numeri per eseguire il programma esattamente nell'indirizzo di memoria prescelto. Il compilatore, il linker ed il loader sono programmi che fanno parte del sistema operativo.
PROGRAMMATORE
COMPILATORE
LINKER
LOADER
Sin dagli anni sessanta si preparò un secondo tipo di compilatore noto con il nome di interprete il quale non traduce l'intero programma sorgente, ma tratta il programma sorgente frase per frase, cioè scquisisce una frase non appena il programmatore la finisce di scrivere. L'interprete prende una frase del programma simbolico, la traduce e la esegue subito oppure esegue tutte quelle fino allora scritte. Poi prende la frase successiva, la traduce e la esegue subito, e così via, integrando le fasi di traduzione con le fasi di esecuzione, che nel processo classico sopra riportato sono invece ben separate.
I vantaggi del
compilatore rispetto all'interprete sono: minore occupazione di memoria, esecuzione molto
veloce, e prodotto finale ottimizzato.
L'interprete offre il
vantaggio di poter inserire e provare subito le modifiche apportate al
programma perché dopo ogni modifica non occorre rifare tutto daccapo. Ci sono linguaggi che hanno soltanto compilatori come l'Assembler, ci sono linguaggi che hanno solo l'interprete come il Basic, e linguaggi che hanno l'uno e l'altro come il Pascal. Un posto a parte è occupato da Java che segue un processo assolutamente originale di cui abbiamo già scritto in 64.
|
||||
|
Già a metà degli anni settanta fui chiamato ad
interessarmi alla
firma digitale, trovandomi tra i pionieri di
questa materia. Passato qualche tempo, la firma digitale andò in soffitta e soltanto da pochi anni, con Internet, ha avuto una significativa diffusione. Vediamo di che si tratta. Gran parte dei documenti elettronici scambiati tra due privati vengono verificati sulla base di accordi personali, ben diverso è il discorso per gli atti ufficiali scambiati tra due enti. Parlando terra terra, si capisce che un dirigente pubblico non può accettare un testo per il solo fatto che glielo fornisce il computer. Le notevoli responsabilità e gli oneri che quell'atto coinvolgono richiedono che esso sia certificato come autentico. Il fatto è talmente importante da pregiudicare l'intero sviluppo
informatico. La modernizzazione
dell'amministrazione pubblica e privata in qualsiasi paese non poteva procedere se non
veniva superato questo scoglio. Grosso modo le cose vanno in questo modo.
Il ricevente decifra la firma con la chiave pubblica e verifica che combacia con l'impronta. In questo modo non può che riconoscerne l'autenticità, infatti soltanto chi aveva la chiave segreta giusta poteva cifrare l'impronta digitale nel modo giusto. Altre chiavi segrete non avrebbero permesso che, una volta decrittata, risultasse uguale all'impronta. La firma digitale è dunque un meccanismo ferreo per collegare il testo al suo autore.
Quando si vuole che il documento ufficiale, inviato insieme alla firma digitale, sia riservato allora va crittato a parte secondo il metodo normale già illustrato nella risposta 98. In conclusione la firma digitale e la crittografia del documento utilizzano identici algoritmi per raggiungere scopi diversi.
|
121. La firma digitale è legalmente valida? |
|||||||||||||||