Public / Private Keys speichern bzw. lesen?

Status
Nicht offen für weitere Antworten.

junghansmega

Neues Mitglied
Hallo zusammen.

Ich kann bublic/private keys generieren und auch benutzen, nur speichern (in datei) und lesen kann ich sie nicht.
Das PublicKey Objekt stellt irgendwie keine Funktionalität bereit, die das erlauben würde...


Code:
import java.security.KeyPairGenerator;
import java.security.KeyPair;
import java.security.PublicKey;
import java.security.PrivateKey;
import javax.crypto.Cipher;


public class ASymCipher {

  public static void main(String[] unused) throws Exception {
    //String xform = "RSA/NONE/PKCS1PADDING";
	  String xform = "RSA";
    // schlüsselpaar basteln
    KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
    kpg.initialize(512); // das ist die keysize.
    KeyPair kp = kpg.generateKeyPair();
    PublicKey pubk = kp.getPublic();
    PrivateKey prvk = kp.getPrivate();

// und nun?

}


Mir wäre auch geholfen, wenn ich den Privatekey quasi hardcoded im Quelltext hätte.

also im Stile von

Code:
prvk = "Sun RSA private CRT key, 512 bits
  modulus:          7757990087399372245545218842535435689837578717932563733546606436611179938565607027947506374368865584085133938486865991025283311860284487785959287136070239
  public exponent:  65537
  private exponent: 1944676459950819952848266706519555938060206344174987518725355914073705907056363002781418582255448754169761736661472542780535171274760994730944436037929473
  prime p:          103157019361650556774972644749961036490077599183650824108828733584040085479489
  prime q:          75205644127824294477694346174400168727140830048192821297931289902304232366751
  prime exponent p: 77409082734739349247545351422224603102759147508319939558540798158742502155969
  prime exponent q: 25066635493357857219139650851177156196891287235801516523978990442436084224473
  crt coefficient:  14269828720942853141909471878463833736413263885136741921525376896953678303226"

(Das kommt mir nämlich entgegen, wenn ich den Key ausgebe.)

Dank im Voraus.
 
PublicKey und PrivateKey erben u. a. von Serializable. Damit kannst du sie via ObjectOutputStream speichern und via ObjectInputStream lesen.
 
Hallo,

hier mein erster Eintrag in ein Forum. Mal sehen, passiert.

Habe ein ähnliches Problem wie der Kollege hier. Ich erzeuge die RSA-Schlüssel wie hier gezeigt und möchte nun gerne an die Primzahlen p und q heran. Jetzt habe ich eine Klasse RSAPrivateCrtKey gefunden, die diese Möglichkeiten anbietet, bekomme aber die "Verbindung" zwischen der Klasse KeyPair bzw. genauer PrivateKey und dem RSAPrivateCrtKey nicht hin.
Kann jemand helfen?

Vielen Dank schonmal im Voraus.
 
Du hast quasi einen Schlüssel und willst p und q bestimmen? Was würde RSA nützen, wenn es so einfach gehen würde?

Hallo,

um es genauer zu sagen: Ich will RSA nicht angreifen.

Ich erzeuge ja einen privaten Schlüssel, den ich wie oben auch ausgeben kann. Da kann ich p und q ja auch ablesen von meinem Bildschirm.
Hätte nur gerne p und q am Ende als BigInteger in meinem Programm. Sozusagen als Primzahl-Quelle.
Woher kommen eigentlich die Primzahlen, die beim Erzeugen der Schlüssel verwendet werden?
 
Ok. Wahrscheinlich liegt es daran, dass ich mit dem Superinterfaces nicht klar komme.

Java:
	KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
			kpg.initialize(1024);
			KeyPair kp = kpg.genKeyPair();
			
			PrivateKey pk = kp.getPrivate();
			
			RSAPrivateCrtKey pk2;
			pk2=pk; // so natürlich nicht. Aber wie dann?

Hoffentlich ist die Frage nicht zu dumm ...
 
Na klar, die gute alte Typzusicherung.

Vielen Dank, das war ja ein dickes Brett vor dem Kopf meinerseits.
Werde gleich mal diesen Daumen bedrücken.


Soweit meine erste Forum-Erfahrung. Hätte nicht gedacht, dass sich so schnell jemand auf ein Thema meldet, dass vor zwei Jahren hier seinen Ursprung nahm.🙂
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben