Newsgroup: it.comp.sicurezza.crittografia
Titolo: doppia chiave in java

Come faccio ad usare un algoritmo a doppia chiave (es. rsa) in java
standard?
Esiste qualcosa nella jdk 1.4.x?
Altrimenti cosa dovrei scaricare?
Grazie
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Delio Nasso wrote:
| Come faccio ad usare un algoritmo a doppia chiave (es. rsa) in java
| standard?
| Esiste qualcosa nella jdk 1.4.x?
In JDK1.2-1.3 c'è il modulo opzionale JCE.
In JDK1.4 è compreso di default.
Questo ha tutte le funzioni che ti servono (javax.security, se non erro).
| Altrimenti cosa dovrei scaricare?
Altrimenti puoi trovare almeno un paio di ottime librerie opensource che
fanno quel che ti serve: se poi le tue richieste sono di "RSA, puro
RSA", allora fai prima a "estrarre" quella singola classe dai progetti.
Il mio consiglio, comunque, è di cercare di sfruttare tutto il codice
"pronto" della classe SSLSocket, senza stare a re-inventare l'acqua
calda, se l'RSA ti serve solo per creare una connesisone sicura.
http://www.cryptix.org/
http://www.bouncycastle.org/
Lapo
- --
L a p o   L u c h i n i
l a p o @ l a p o . i t
w w w . l a p o . i t /
http://www.megatokyo.it
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (Cygwin)
Comment: Using GnuPG with Mozilla - 
http://enigmail.mozdev.org
iEYEARECAAYFAkARtdMACgkQaJiCLMjyUvuXMwCg7rqaOGuEyHZFDLq06aLMRsZs
8qMAn0vRZdAyxDe3biYGxyT8g++v23Ww
=rIIy
-----END PGP SIGNATURE-----

 calda, se l'RSA ti serve solo per creare una connesisone sicura.
Veramente dato lo scopo didattico vorrei fare tutto a mano:utilizzare
RSA per scambiare la chiave, DES per comunicare e SHA-1 per tenere le
password sul server.
Vorrei sapere se sai dove posso repire del materiale semplice da
consultare per fare tutto,intendo pezzi di codice o comunque qualcosa di
molto semplice data la mia ignoranza...
Grazie!


 Questo ha tutte le funzioni che ti servono (javax.security, se non erro).
Guarda questo:
Java 2 v 1.4+ includes an implementation of JCE API (Java Cryptography
Extension),RSA encryption is NOT supported with the standard Java 2 1.4
distribution and a 3rd party provider must be added
Potresti delucidarmi?sono confuso,anche perchè non so cos'è un
provider...


 provider...
Un provider (traduzione letterale: fornitore) crittografico
fornisce implementazioni di algoritmi di crittografia.
Nel JCE del j2se della tua versione, probabilmente, non è fornita
l'implementazione dell'algoritmo RSA.
Dovresti leggerti la descrizione della JCA (Java Cryptography
Architecture) dal sito 
java.sun.com
 nella sezione doc > security, per
capire come utilizzare i provider.
Come giustamente ha indicato Lapo puoi trovare i jar (da inserire
nel tuo class-path) che contengono i provider che implementano RSA
dai siti:
http://www.cryptix.org/
http://www.bouncycastle.org/
Se vuoi esempi puoi contattarmi via email a
lamiau...@fastwebnet.it
Sostituisci "lamiausername" con "gianpiero.sicurezza.java".
Ciao,
GianpieroP

l'implementazione dell'algoritmo RSA.
Io ho usato 
http://jce.iaik.tugraz.at
 è ottima anche se un po' costosa
(niente rispetto a RSA) sul sito ci sono alcune cose interessanti....
mi sono chiesto se in Italia abbiamo università così attive? Le
sinergie possibili con le istituzioni sono tante, quì per esempio
sulla firma digitale mi sembrano un po' latitanti.
Andrea

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Delio Nasso wrote:
| Veramente dato lo scopo didattico vorrei fare tutto a mano:
Beh, se lo scopo è apprendere (e nnoavere 'vera' sicurezza) allora fare
tutto a mano è sicuramente da preferirsi!
| RSA per scambiare la chiave, DES per comunicare e SHA-1 per tenere le
| password sul server.
OK, ma ti consiglio di fare un "upgrade":
DES è stato rimpiazzato da AES, ed è oramai obsoleto
SHA-1 è stato rimpiazzato da SHA-256, benché non si possa considerare
propriamenet "obsoleto" (non in tutte le applicazioni, almeno; ma per
applicaizoni nuove secondo me è melgio usare direttamente SHA-256)
| Vorrei sapere se sai dove posso repire del materiale semplice da
| consultare per fare tutto,intendo pezzi di codice o comunque qualcosa di
| molto semplice data la mia ignoranza...
Esistono almeno due "crypto provider" (compatibili JCE, peraltro)
opensource:
http://www.cryptix.org/
 - più maturo
http://www.bouncycastle.org/
 - più nuovo e in sviluppo rapido
Entrambi, come dicevo, hanno il sorgente libero, quindi puoi usarlo per
ispirarti o anche copiarlo spudoratamente (basta che segui le regole
della licenza usata).
| Guarda questo:
| Java 2 v 1.4+ includes an implementation of JCE API (Java Cryptography
| Extension),RSA encryption is NOT supported with the standard Java 2 1.4
| distribution and a 3rd party provider must be added
| Potresti delucidarmi?sono confuso,anche perchè non so cos'è un
| provider...
Cavolo!
Non mi ero mai erso conto che il provider di default non avesse RSA.
Motivo in più per fare le cose "a manina" (scrivendo le classi da zero
otrovandole fatte) o usare uno dei due JCE provider di cui sopra.
- --
L a p o   L u c h i n i
l a p o @ l a p o . i t
w w w . l a p o . i t /
http://www.megatokyo.it
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (Cygwin)
Comment: Using GnuPG with Mozilla - 
http://enigmail.mozdev.org
iEYEARECAAYFAkAVIrQACgkQaJiCLMjyUvscYQCcDBnu4pJMEaNZpMm2eUXHdo3Y
i7MAnRJ+xbtzLtuZEuKYWmhN7fhFDuj8
=oRjV
-----END PGP SIGNATURE-----