View Full Version : [Java] Crittografia omomorfa
giannino87
24-11-2011, 16:40
Salve a tutti, ho un grosso problema. Mi servirebbe una libreria che implementi un sistema crittografico omomorfo(es.: paillier, elgamal), per portare a termine il lavoro assegnatomi per il tirocinio(una pseudocodifica è un pò grezza). In particolare mi serve la regola omomorfa additiva:
E(a)*E(b)=E(a+b)
Ho provato la libreria thep.paillier trovata su googleCode, ma con scarsi risultati, c'è una perdita dei dati, facendo uscire fuori dei numeri stratosferici che non c'azzeccano un tubo, oltre un problema di serializzazione che fa perdere dati anche quando vi è un passaggio da client a server o viceversa.
Qualcuno di voi può segnalarmi una libreria efficiente?
ciao!
non l'ho testata....anche perché non me ne intendo di crittografia, ma prova tu:
http://www.csee.umbc.edu/~kunliu1/research/Paillier.html
http://www.utdallas.edu/~mxk093120/cgi-bin/paillier/index.php?go=home
NOn propriamente una libreria: http://www.java2s.com/Tutorial/Java/0490__Security/ElGamalexamplewithrandomkeygeneration.htm
http://www.bouncycastle.org/java.html
giannino87
25-11-2011, 10:30
che dire.. grazie mille :)
appena posso le testo, la prima non funziona sicuramente(non encripta i negativi °.°), già testata
giannino87
28-11-2011, 20:06
niente ragazzi, tutte lo stesso problema, c'è u errore nel criptare i valori negativi.. a sto punto credo sia proprio una proprietà del crittosistema, anche se non ne sono sicuro..
hai provato il crittosistema con valori negativi su carta?
Aggiornamento:
Leggendo un pò qua e un pò la ho trovato questo:
(Tradotto dall'inglese)
"Una consideratione importante è come comportarsi con i numeri negativi nel domain da criptare.[...] Un approccio possibile è quello di usare una costante di shift additiva per eliminare i numeri negativi e successivamente sottrarre questo shifting dopo il processo.
Questo approccio però funziona solo con l'addizione, non con la moltiplicazione. [...]
(Testo originale)
"An important
consideration is how to deal with negative numbers in the
encrypted domain. Special care must be taken to encrypt negative numbers in order to be compatible with the homomorphic
property. A possible approach in [22] used a constant additive shift to eliminate negative numbers and correspondingly
subtracting this shift after processing. However, this approach
only works for addition, not for multiplication"
Fonte:
Nome del paper: Secret Sharing in the Encrypted Domain
http://202.194.20.8/proc/ICC2011/DATA/02-024-04.PDF
Altre fonti:
http://www.hatswitch.org/~sn275/papers/p3ca.pdf (PAGINE 6-7)
http://www.ece.iit.edu/~ubisec/cloud/papers/ICDCS11-computation.pdf (PAGINA 9) : Qui trovi un'altra spiegazione interessante.
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.