Wie bekomme ich einen RSA PublicKey, indem ich einen PrivateKey gebe?

8

Ich suche nach einer Java Funktion, die einen RSA PrivateKey bekommt und den korrekten RSA PublicKey zurückgibt?

Gibt es alternativ eine Funktion, die uns sagt, ob der RSA PrivateKey / PublicKey gültig ist?

    
DasDas 05.07.2012, 13:28
quelle

6 Antworten

9

Wenn Sie Ihren privaten Schlüssel als RSAPrivateCrtKey haben Objekt, können Sie den öffentlichen Exponenten sowie modulous bekommen.

Dann könnten Sie den öffentlichen Schlüssel wie folgt erstellen:

%Vor%     
Petey B 05.07.2012 16:16
quelle
4

Ich kann mir keinen guten Grund vorstellen, warum Sie das brauchen würden. Aber hier ist es:

%Vor%     
erickson 05.07.2012 16:34
quelle
1

Wie andere bemerkt haben, wenn Sie RSA CRT KEY haben, können Sie den öffentlichen Schlüssel daraus extrahieren. Es ist jedoch tatsächlich nicht möglich, einen öffentlichen Schlüssel von einem reinen privaten Schlüssel abzurufen.

Der Grund dafür ist einfach: Beim Erzeugen von RSA-Schlüsseln gibt es eigentlich keinen Unterschied zwischen dem privaten und dem öffentlichen Schlüssel. Einer ist gewählt, um privat zu sein, der verbleibende ist dann öffentlich.

Wenn Sie also den öffentlichen Schlüssel aus einem reinen privaten Schlüssel berechnen könnten, könnten Sie mit Definition den privaten Schlüssel aus dem öffentlichen Schlüssel berechnen ...

Wenn Sie beide haben, können Sie leicht testen, ob sie übereinstimmen:

%Vor%     
Steffen Heil 25.02.2015 15:46
quelle
0

Das ist absolut falsch! Sie können immer einen öffentlichen Schlüssel vom privaten Schlüssel erhalten, aber Sie können niemals einen privaten Schlüssel vom öffentlichen Schlüssel erhalten. Deshalb ist RSA ein asymmetrischer Algorithmus!

    
IranLee 05.04.2013 11:27
quelle
0

Wenn Sie ein Objekt vom Typ RSAPrivateKey haben, müssen Sie zwei Dinge tun:

  1. Erhalte den Modul. Einfach: privateKey.getModulus()
  2. Berechnen Sie den öffentlichen Exponenten. Dies ist ein wenig schwierig, aber nicht unmöglich. Siehe die Definition des öffentlichen Exponenten . Normalerweise ist der öffentliche Exponent 65537 .

Nachdem Sie den Modul und den öffentlichen Exponenten erhalten haben, können Sie der Antwort von PeteyB folgen.

    
HRJ 07.07.2013 13:03
quelle
-3

AFAIK Sie können den anderen Schlüssel eines RSA-Schlüsselpaares nicht ableiten, wenn Sie einen Schlüssel erhalten. Das würde RSA brechen.

Um ein Paar zu testen, verschlüsseln Sie einfach etwas mit einem Schlüssel und entschlüsseln Sie es mit dem anderen, um zu sehen, ob Sie das ursprüngliche Ergebnis zurückbekommen.

    
Sfynx 05.07.2012 13:33
quelle

Tags und Links