Newsgroup: it.politica
Titolo: modalità di voto

Questa la proposta di IRON:
"Bisogna usare il meccanismo delle chiavi pubbliche/private PGP (o GPG).
E solo necessario certificare preventivamente ogni utente con una chiave
pubblica. Ma una volta fatto l'utente può firmarsi quante volte vuole
ed è univocamente riconoscibile."
Io non me ne intendo abbastanza da poter organizzare questa cosa, ma mi
sembra di capire che potrebbe funzionare.
Allora partiamo? Chi è in grado di organizzare queto sistema?

 ed è univocamente riconoscibile."
NOOOOOO!!! Una volta sola ho usato quell'orribile PGP: Dmtry non so che
doveva mandarmi, e mi "impose" questo sistema. Non ci capii niente e non
riuscii ad usarlo. Abbiate pietà di me, considerate i miei limiti! :-))

 wrote in message
news:EUPgb.183460$hE5.6...@news1.tin.it...

E' così difficile? Se qualcuno che sa come si usa e ci manda un po' di
istruzioni dici che non ce la facciamo?
In ogni caso se hai qualche idea di più semplice applicazione sei la
benvenuta!

 Allora partiamo?
Mi devo essere perso qualche thread.
Per far cosa? Votare cosa?


In effetti non é chiaro neanché a me ;-)! Le spiegazioni poi sono fatte da
chi sa che
vuol dire ma che non sa dirlo! Ci vogliono due codici e poi con uno si
critta e con uno si
decritta? bah! Mi sfugge il fattore che rende possibile tale "magia"! Ed il
bello é che in 5 o 6
siti che spiegano la cosa non ne ho trovato uno che facesse un esempio
pratico dei calcoli
ma solo dei risultati (io dico A lo critto con B e invio C a tizio che lo
decritta con B
pubblica ecc)!
Comunque, volendo, gli attuali partecipanti al NG (o anche eventuali
transfughi di altri Ng)
sono facilmente individuabili come singole ed autentiche persone (tranné i
vari G.G. ararara
e P.O. che a detta di alcuni sono la stessa persona
[io non sono in grado di distinguere i "doppi" e rispondo sempre alle
affermazioni qualora ne senta
l'utilità [per me o per la discussione]), quindi i vari (per es.) Civa,
Clas, DEM, Lela, Saltatempo
ecc. possono partecipare senza autentificare  in quanto "persone note"
(sperando non ci siano
spiritosi che clonano i "nomi")!
Ciao!


Rainbow ha dato la sua disponibilita' tecnica e probabilmente anche di uno
spazio su server.
La procedura di identificazione-crittatura-voto la studieremo anche con lui,
tutti insieme. Ovviamente si tentera' di mantenerla il piu' possibile
semplice e cmq sicura.
Non e' escluso che si possano semplificare le cose con qualche
script/programmino ad hoc per i meno pratici. Vedremo. Credo non sara'
questo il problema fondamentale. Nemmeno per LeLa :))
Visto che sembra abbiamo un supporto tecnico...tanto vale fare le cose per
bene.
Ciao
Menez
--------------------------------
Inviato via 
http://usenet.libero.it

Allora partiamo? Chi è in grado di organizzare queto sistema?
Sono necessarie idee chiare e un progetto il più preciso e concreto
possibile. Una volta fatto questo, se avrò tempo (perdonami il se, ma
non prometto cose che non posso mantenere) mi metterò a sviluppare il
sistema. 
In ogni caso, serve *prima* un progetto. Poi si inizia a scrivere il
codice.
Ciao :)
DEM

 dei calcoli ma solo dei risultati
Ah, uomo di poca fede. Comunque basta chiedere. Ci sono
persone carogna a sufficienza per risponderti.
Premessa.
Per indicare il resto della divisione di A per B
scriviamo: A % B (che si legge "A modulo B").
Quindi: 7 % 2 = 1
Per indicare A elevato alla N-esima potenza invece
scriviamo: A^N. Quindi: 10^3 = 1000.
Procediamo a definire l'algoritmo.
ALGORITMO RSA (1977, RIVERS, SHAMIR, ADLEMAN)
---------------------------------------------
Passo 1
Scegliamo due numeri primi P e Q.
In una implementazione reale P e Q devono essere MOLTO grandi
(sui 1024 bit, ossia 2^1024).
sia phi = (P - 1) * (Q - 1)
sia N = P * Q
(nota che phi sarà sicuramente un numero pari)
Passo 2
Cerchiamo un numero positivo E tale che:
E < N
MCD(E, phi) = 1
(Il massimo comun divisore tra E e N dev'essere uguale a 1,
ossia E e N sono co-primi; nota che E potrà non essere primo
ma sarà sicuramente dispari)
Tutto chiaro finora?
Bene: la coppia (N, E) è la nostra chiave pubblica.
Passo 3
Calcoliamo un numero D tale che  D * E diviso phi abbia
resto 1. Dunque:
 (D * E) % phi = 1
Matematicamente D è l'inverso di E modulo phi.
Informaticamente D si ricava in modo semplice con
un algoritmo noto (EGCD - "extended greatest common
divisor" o anche "modular inversion" algorithm).
Benissimo: la coppia (N, D) è la nostra chiave pubblica.
Passo 4
La funzione per criptare un messaggio in chiaro x (un
intero positivo) è: encrypt(x) = (x^E) % N
La funzione per decrittare un messaggio cifrato x (un
intero positivo) è: decrypt(x) = (x^D) % N
Facciamo una prova con numeri piccoli, per semplificare
i calcoli.
Passo 1
Siano P = 11 e Q = 5.
N = P * Q = 11 * 5 = 55
phi = (P - 1) * (Q - 1) = 10 * 4 = 40.
Passo 2
Scegliamo un numero E co-primo di phi=40.
3 è co-primo di 40 (ma anche 7 e 9 lo sono, per esempio).
Dunque, E = 3
Abbiamo la chiave pubblica: 55, 3
Passo 3
A questo punto troviamo D. Il resto di D * E / phi dev'essere 1.
Dunque il resto di D * 3 / 40 dev'essere 1.
27 va bene: 27*3/40 = 81/40 = 2 resto 1.
(sarebbero andati bene anche 67, 107, 147, ...)
Quindi D = 27
Riassumendo:
Chiave pubblica: N=55, E=3
Chiave privata: N=55, D=27
Passo 4
Le nostre funzioni sono:
encrypt(x) = (x ^ E) % N = (x ^ 3) % 55
decrypt(x) = (x ^ D) % N = (x ^ 27) % 55
Abbiamo tutto.
Ora supponiamo che la lettera "A" corrisponda a 1, "B" a 2, ... "Z" a 26
(in realtà non si fa proprio così, ma il concetto è quello).
Proviamo a cifrare la lettera "D" = 4
encrypt("D") = encrypt(4) = (4^3) % 55 = 64 % 55
64 diviso 55 uguale 1 resto 9
dunque: encrypt("D") = 9
Ok. Ora proviamo a decifrare 9.
decrypy(9) = (9 ^ 27) % 55
Ora, se ti fidi 9 ^ 27 è la ragguardevole cifra:
   58149737003040059690390169
Sempre se ti fidi, quella cifra diviso 55 ha quoziente:
    1057267945509819267098003
e resto ... 4
In definitiva: decrypt(9) = 4 = "D"
Il cerchio si chiude.
Come vedi i calcoli possono essere complessi, ma il
giochino funziona.
Se hai retto fino a questo punto e se sei stato moooooolto
attento potresti obiettare: se "N" è noto, so che N = P * Q.
E se conosco P e Q posso ripetere i miei 4 passettini e
ricavare D.
Nel nostro esempio non serve un genio per capire che
se N = 55 allora 55 = 11 * 5, che altro non possono
essere che il P e il Q da cui sono partito.
Tanta fatica per niente? Ebbene: se P e Q sono grandi
come richiesto, fattorizzare N è assolutamente non
banale. Dal momento che non è nota una legge matematica
che mi consenta di trovare i numeri primi con un calcolo,
l'unico sistema è generarli uno per uno (con un algoritmo
noto da 2200 anni chiamato Crivello di Eratostene).
Se P e Q sono numeri a 1000 bit allora N=P*Q diventa
dell'ordine dei 2000 bit (2^2000 che è circa 3 * 10^540).
Per trovare i fattori primi di N dovremmo dividere N
per ciascun numero primo da 1 fino a circa 2^1000.
Si parla di qualcosa come 10^298 numeri primi. In
definitiva il calcolo richiederebbe circa 10^298
divisioni.
Una macchina in grado di sviluppare una potenza di
mille miliardi di operazioni in virgola mobile al
secondo (1 Teraflop = 10^12) impiegherebbe qualcosa
come 10^278 anni (!) per completare il calcolo.
Ad oggi il computer più veloce lavora a 11 Teraflop
più spicci. Impiegherebbe 10 volte di meno: solo
10^277 anni.
L'universo ha 15 miliardi di anni (1.5 * 10^9).

    58149737003040059690390169
Se non ti fidi scaricati questo:
http://prdownloads.sourceforge.net/gnuwin32/bc-1.06-bin.zip?download
Del pacchetto (piccolissimo e gratuito) ti serve solo bc.exe.
Per fare il calcolo digiti l'operazione e premi invio.

 Quindi: 7 % 2 = 1
Io...io...io ho fatto il classico! Due ore di matematica a settimana! In
cinque anni di liceo non siamo arrivati neanche a fare gli integrali! La mia
soglia di attenzione si ferma alla parola "premessa"! PERCHE' MI ODI
TANTO??? :-(((

 PERCHE' MI ODI TANTO??? :-(((
Beh, l'ho scritto che era una risposta da carogna ;o)


Ma porca della miseria, te gli affari tuoi, no? ;-)
Non so se ringraziarti o denunciarti. L'ho dovuto
rileggere 3 volte per capirci qualche cosa (almeno credo) e
questo spiega perché i siti trovati non scendono nei particolari!
A parte gli scherzi, ti ringrazio!
Ciao!