Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
30/05/06 20:10
Mattia
Sto facendo una chat multi client ove i partecipanti si scambiano messaggi criptati con rsa.... Ho già scaricato RSACoder dal vostro sito ma mi chiedevo come realizzasse le coppie di chiavi perchè io cio provato seguendo i vari esempi; ma ci mette sempre troppo tempo nel realizzarle obbligandomi a smettere l'esecuzione del programma
Ultima modifica effettuata da Mattia 30/05/06 20:11
aaa
30/05/06 20:55
netarrow
ti da degli errori o si blocca di suo il programma? sicuro di generare le chiavi in un thread separato?
aaa
30/05/06 21:59
Mattia
Postato originariamente da netarrow:

ti da degli errori o si blocca di suo il programma? sicuro di generare le chiavi in un thread separato?


quindi dovrei generarle in un thread separato...?
2 domanda quando il numero di bit da codificare non è multiplo del suddivisione che devo fare aggiungo bit in più..?
Ultima modifica effettuata da Mattia 30/05/06 22:03
aaa
04/06/06 11:06
netarrow
la coppia di chiavi la si crea così:

public void createKeys() throws NoSuchAlgorithmException {
		KeyPairGenerator kg = KeyPairGenerator.getInstance("RSA");
		kg.initialize(1024);
		KeyPair kp = kg.generateKeyPair();
		puk = kp.getPublic();
		prk = kp.getPrivate(); 
	}


puk prk sono campi della classe il tutto in un thread separato, una volta ottenuti con i metodi getPUblic e getPrivate poi vengono salvate su file in un thread separato anche in questo caso.
Per i byte mancanti devi eseguire il padding, che viene automaticamente eseguito dalle classi del JCE usando ad esempio

Cipher.getInstance("RSA/ECB/PKCS1Padding");


PKCS1Padding è il tipo di padding.

Infine ricordati che RSA ha un limite di dimensione nel testoda codificare, RSACoder infatti codifica il testo con blowfish e la chiave blowfish con RSA(chiave di sessione detta infatti).

ciao
aaa
04/06/06 19:09
pierotofy
Ci mette molto tempo a generare la coppia di chiavi perchè viene inizializzata la classe SecureRandom.

Ma non ho ben capito, ci mette tanto tempo oppure si blocca del tutto?
Ultima modifica effettuata da pierotofy 04/06/06 19:09
Il mio blog: piero.dev
11/06/06 20:57
Mattia
Postato originariamente da pierotofy:

Ci mette molto tempo a generare la coppia di chiavi perchè viene inizializzata la classe SecureRandom.

Ma non ho ben capito, ci mette tanto tempo oppure si blocca del tutto?


Dovevo creare le coppie di chiavi e l'algoritmo criptatore e decodifcatore da me senza utilizzare classi presistenti... Cmq dato che Math.pow metodo per calcolare la potenza e messo a disposizione nelle librerie Java con numeri elavati commette un errore ovvero non memorizza l'intera cifra il risultato della modulazione veniva errato e quindi ne ho parlato con il prof e ha acconsentito nel farmi utilizzare una sola chiave piccola 3,33 e 7,33 :k:
Grazie mille
aaa
18/06/06 11:00
pippo
Salve a tutti, è la prima volta che scrivo in questo forum e spero di essere il più chiaro possibile.Sto facendo un progetto per l'università. Dovrei trovare all'interno di un gruppo Zprimo un generatore g. Per essere un generatore g dovrebbe verificare le seguenti cose: dato primo = 1 + 2 * p * q (dove p e q sono due numeri primi molto grandi di tipo biginteger generati a caso con SecureRandom), primo-1 = 2*p*q, g è generatore di Zprimo se g^( (primo-1) / 2 ) mod primo != 1; se g^( (primo-1) / p ) mod primo != 1; e se g^( (primo-1) / q ) mod primo != 1. Se tutte e tre le condizioni son verificate allora g è generatore. Ora non capisco se usare funzioni java già pronte tipo getGenenerator() oppure provare a scrivere qualche riga di codice. Grazie
aaa
18/06/06 13:45
netarrow
non conosco un approccio matematico diretto per calcolare g, in teoria basterebbe mettere a sistema le condizioni e trovare la soluzione comune ne?
Solo che con l'operazione modulo in un equazione non saprei lavorare.
Alla peggio fai un bruteforce con un ciclo provi tutti i g che soddisfano l'equazione, ma sarebbe una cosa squallidissima.
Se troverò un metodo matematico lo posterò.
aaa