asymmetrisches Kryptosystem public key berechnen

hey,

ich habe eine frage:

Ist es möglich mit hilfe eines privaten Keys den öffentlichen zu berechnen?

mfg KaiserKronos
 
Nein ist es nicht, da die Schlüssel unabhängig zueinander sind, soll heißen Kpr und Kpub werden nicht berechnet, sondern frei gewählt. Sie stehen also in keinem mathematischen Zusammenhang.
 
okey, das alles bringt mich nicht so weiter, ist es nun möglich, eher gesagt ist es sehr schnell möglich oder brauch man die gleiche zeit wie vom pub zum priv?
 
Klar sollte das möglich sein. Es ist sogar NUR möglich wenn man den privaten Key kennt (zumindest bei RSA). Zuerst wird der private Schlüssel berechnet und anschließend der öffentliche (Einwegfunktion).
Wie? --> Der Wikipedia Artikel bietet einen guten Einstieg!
 
Der Wikipedia Artikel bietet einen guten Einstieg!

Na ja... ok.


Erzeugung des öffentlichen und privaten Schlüssels [Bearbeiten]




Der öffentliche Schlüssel (public key) ist ein Zahlenpaar (e,N) und der private Schlüssel (private key) ein Zahlenpaar (d,N), wobei N bei beiden Schlüsseln gleich ist. Man nennt N den RSA-Modul, e den Verschlüsselungsexponenten und d den Entschlüsselungsexponenten. Diese Zahlen werden durch das folgende Verfahren erzeugt:
  1. Wähle zufällig und stochastisch unabhängig zwei Primzahlen
    be79a7c743e196ac62850c0800363371.png
    . In der Praxis rät man dazu jeweils eine Zahl und führt mit dieser anschließend einen Primzahltest durch.

Ja... und dann machst du was? Bitte erklär mir das!

Hat irgendwer das hier gelesen? Das ist ja genau DAS Prinzip, wobei es bei der asymetrischen Verschlüsselung geht. Wenn das jmd kann, sollte dieser jmd bitte keine Scheu haben, mich einzuweihen...
 
D(E(M)) = E(D(M)) = m

Also waehlt man sich en Msg m verschluesselt diese mit dem private key und hat dann einen gewaltigen Rechenaufwand um die public key zu bestimmen, voraussetzung ist natuerlich, dass man das n kennt, ansonsten kann man diese Technik nicht anwenden. Dann ist es auch nicht moeglich den public key zu berechnen. Aber wenn du den private key hast, brauchst den oeffentlichen garnicht zu berechnen schließlich ist er ja oeffentlich :D
 
Hallo,
oh hier im Thread sind diverse Ungereihmheiten drin. Um mal etwas Klarheit ins Dunkle zu bringen:

Zuerst basiert es mal auf dem Verfahren. Es gibt verschiedene Public-Key Verfahren und es ist keine allgemeine Anforderung, dass es schwierig sein soll vom privaten auf den öffentlichen zu schließen.
Dass keine mathematische Beziehungen zwischen beiden besteht ist falsch, da alle (aktuellen) public-key Verfahren auf irgendwelchen mathematischen Problemen basieren und somit private und public Key in einem Zusammenhang hängen.


Nimmt man RSA, so besteht der Public Key aus den beiden Zahlen e (Exponent) und n (Modulus), geschrieben oftmals als (e,n).
Der Private Key ist d (Exponent) und n (Geschrieben (d,n)).

Sprich, der private und der öffentliche Schlüssel bei RSA unterscheidet sich nur in e und d. Da e zumeist einen Standardwert hat, oftmals 3, 17 oder 65537 (diese Zahlen sind vorteilhaft für die Performance), ist es kein Problem einfach diese 3 Zahlen zu testen.
Der öffentliche Exponent wird eigentlich fast nie zufällig gewählt, da dies erheblich die Performance beeinträchtigen würde. Also ist es in fast allen Fällen sehr leicht bei RSA vom den öffentlichen Schlüssel zu erhalten, wenn man den privaten Schlüssel (d,n) gegeben hat.


Ansonsten, der Zusammenhang zwischen e und d ist:
(e*d) mod (p-1)(q-1) = 1

Wenn man nur d und n=p*q gegeben hat (weder p noch q), und e zufällig gewählt wäre, wäre es in der Tat schwierig auf e zu schließen. Genauso schwierig wie vom öffentlichen RSA-Key auf den privaten zu schließen.

Zumeist, auch wieder aus Performance-Gründen, speichert man beim privaten Schlüssel nicht nur d und n, sondern auch p und q ab, da sich so die Verschlüsselung beschleunigen lässt.
Hat man p,q und d gegeben, so lässst sich der öffentlich Schlüssel (e,n) sehr leicht berechnen.


Aber wie gesagt, es hängt stets von dem Verfahren. Bei manchen Public-Key-Verfahren mag es evt. stets sehr leicht sein, vom privaten auf den öffentlichen Key zu schließen.
Zum Beispiel hätte man RSA auch so definieren können, dass p,q und e den privaten Schlüssel bilden und (e,n) den öffentlichen Schlüssel. Dann wäre es stets leicht vom privaten Schlüssel auf den öffentlichen Schlüssel zu schließen.
 
Zuletzt bearbeitet:
danke Elderan, du bist mein held des Tages :)

ok also das genaue Problem ist, ich möchte eine Kommunikation zwischen einem server und clients realisieren. Die Clients sollen den private key haben um die Nachrrichten zu entschlüsseln, und nur der Server soll den Public key haben um Nachrichten zu versenden. damit will ich bewecken das niemand einfach falsche daten versenden kann in dem er sich zwischen den Server und Client hängt.

weiß jemand eine lösung für mein problem? eine verschlüsslung die zutreffend wäre?

mfg KaiserKronos

PS: dem Clients wird nicht vertraut.
 
Hallo,
das Zauberwort nennt sich Signatur (Stichwort: Digitale Signatur).

Jeder Teilnehmer, sprich alle Clients und der Server, hat je ein eigenes Schlüsselpaar (sprich, privaten und öffentlichen Schlüssel). Ebenso hat jeder Teilnehmer alle öffentlichen Schlüsseln von den anderen Teilnehmern.

Wenn der Server nun was an einen Client versenden will, verschlüsselt dieser es mit dem öffentlichen Schlüssel von dem Client und signiert es mit dem eigenen privaten Schlüssel.

Nur der Client kann es entschlüssel und nur der Server kann die Signatur erstellt haben, sofern kein privater Schlüssel gestohlen wird.



Was alternativ noch deutlich leichter geht wäre folgendes Szenario. Du müsstest dann abwegen ob es passt:
Nur der Server hat ein Schlüsselpaar. Alle Client haben den öffentlichen Schlüssel vom Server.

Zum Datenaustausch kontaktiert der Client den Server und sendet eine verschlüsselte zufällige Zahl/Passwort/Key an den Server (nutzt dabei den öffentlichen Schlüssel vom Server). Nur der Server kann dieses entschlüsseln.
Zum weiteren Datenaustausch nutzen beide Seiten, also Client und Server, diesen vom Client zufällig gewählten Key um damit die Daten zu verschlüsseln (z.B. mittels AES).
Wenn sich jemand in die Mitte einklinkt, dann könnte der höchsten nur unsinnige Daten an den Server oder an den Client senden. Mittels Prüfsumme würde man dies leicht erkennen.

Dies ist praktisch ein vereinfachtest SSL Verfahren.


Evt. ist dass für deinen Zweck passend.


Achja: Das ganze nennt sich kryptographisches Protokoll. Da gibts noch unzähliche weitere für verschiedenste Zwecke
 
Zurück
Oben