Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - RSA
Forum - Java - RSA

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Mattia (Normal User)
Newbie


Messaggi: 3
Iscritto: 30/05/2006

Segnala al moderatore
Postato alle 22:10
Martedì, 30/05/2006
Questo topic è stato chiuso dal moderatore

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 il 30/05/2006 alle 22:11
PM
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 22:55
Martedì, 30/05/2006
ti da degli errori o si blocca di suo il programma? sicuro di generare le chiavi in un thread separato?

PM
Avatar
Mattia (Normal User)
Newbie


Messaggi: 3
Iscritto: 30/05/2006

Segnala al moderatore
Postato alle 23:59
Martedì, 30/05/2006
Testo quotato

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 il 31/05/2006 alle 0:03
PM
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 13:06
Domenica, 04/06/2006
la coppia di chiavi la si crea così:

Codice sorgente - presumibilmente Java

  1. public void createKeys() throws NoSuchAlgorithmException {
  2.                 KeyPairGenerator kg = KeyPairGenerator.getInstance("RSA");
  3.                 kg.initialize(1024);
  4.                 KeyPair kp = kg.generateKeyPair();
  5.                 puk = kp.getPublic();
  6.                 prk = kp.getPrivate();
  7.         }



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

Codice sorgente - presumibilmente Plain Text

  1. 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

PM
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 21:09
Domenica, 04/06/2006
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 il 04/06/2006 alle 21:09


Il mio blog: https://piero.dev
PM
Avatar
Mattia (Normal User)
Newbie


Messaggi: 3
Iscritto: 30/05/2006

Segnala al moderatore
Postato alle 22:57
Domenica, 11/06/2006
Testo quotato

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

PM
Avatar
pippo (Normal User)
Newbie


Messaggi: 3
Iscritto: 14/06/2006

Segnala al moderatore
Postato alle 13:00
Domenica, 18/06/2006
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

PM
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 15:45
Domenica, 18/06/2006
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ò.

PM
Avatar
pippo (Normal User)
Newbie


Messaggi: 3
Iscritto: 14/06/2006

Segnala al moderatore
Postato alle 13:50
Venerdì, 07/07/2006
Ciao a tutti, sono impegnato con un progetto che stavolta mi chiede di utilizzare le curve ellittiche. Le curve ellittiche in crittografia sono molto utili in quanto occupano "meno" memoria rispetto a RSA e generano numeri molto grandi (per farla breve). Sul Web non ci sono esempi di utilizzo, ma solo implementazioni delle chiamate dei metodi java (getCurve(), getG()...). Vorrei sapere se per caso qualcuno sa qualcosa di più o magari conosce un sito dove viene spiegato il procedimento di generazione dei vari paramEtri. Premetto che sui javadoc della sun, bouncycastle ecc.. ci sono solo esempi di chiamate e non esempi di generazione di chiavi pubbliche e private come per esempio accade con RSA, DH, che di esempi se ne trovano a quintali....Grazie

PM
Pagine: [ 1 2 ] Precedente | Prossimo