Asymmetrische Verschlüsselung

Hallo

Es ist ein wenig schwierig die Frage zu formulieren, ich versuche es einmal. Vorneweg, die normale Anwendung einer asym. Verschlüsselung mit privaten und öffentlichen Schlüssel kenne ich. Meine Frage ist folgende:

Alice und Bob möchten Nachrichten austauschen. Beide wollen ihre Nachrichten verschlüsseln und signieren. Brauchen beide Parteien nur jeweils EIN Schlüsselpaar oder muss jede Seite zwei Schlüsselpaare haben (eins zum Verschlüsseln, eins zum Signieren)

-Hintergrund der Überlegung-
Wenn jeder nur ein Schlüsselpaar bräuchte, gäbe es meiner Meinung nach ein Problem:
Alice hat privaten Schlüssel „ABC“ und dazugehörig öffentlich „XYZ“
Bob hat privaten Schlüssel „DEF“ und dazugehörig öffentlich „UVW“

Alice möchte Nachricht zu Bob schicken (FALL1).
Sie signiert mit „ABC“ und verschlüsselt dann mit „UVW“
Bob kann dann die Nachricht mit „DEF“ lesen und mit „XYZ“ die Signatur überprüfen.
Nun möchte Bob eine Nachricht schicken (FALL2), gleiches Prozedere
Bob signiert mit „DEF“ und verschlüsselt mit „XYZ“
Alice kann dann mit „ABC“ entschlüsseln und mit „UVW“ die Signatur überprüfen.

Wo ist das Problem?
Ich sehe das Problem darin, dass ich einen Klartext mit ABC verschlüssele und mit „XYZ“ wieder entschlüssele (FALL1) aber gleichermaßen auch eine Nachricht mit „XYZ“ verschlüssele und dann wiederrum mit „ABC“ entschlüssele (FALL2)

Das heißt, dass ich beim erzeugen eines Schlüsselpaares mir aussuchen könnte, welche der beiden ich zu einem privaten und zu einem öffentlichen Schlüssel mache. Beide dürften nicht auf das Gegenstück schließen lassen und müssten gleichermaßen ver- und entschlüsseln können.

Ist das so ?

Ich habe leider auf diesem Gebiet der Informatik noch nicht viele praktische Erfahrungen sammeln können.

Gruß

Felix

Wo ist das Problem?
Ich sehe das Problem darin, dass ich einen Klartext mit ABC
verschlüssele und mit „XYZ“ wieder entschlüssele (FALL1)
aber
gleichermaßen auch eine Nachricht mit „XYZ“ verschlüssele und
dann wiederrum mit „ABC“ entschlüssele (FALL2)

Im Falle RSA z.B. stimmt das.
Es gilt aber nicht für alle asymmetrischen Kryptosysteme. Bei ElGamal z.B. signierst du nicht auf die gleiche Weise, wie du Texte verschlüsselst.

Das heißt, dass ich beim erzeugen eines Schlüsselpaares mir
aussuchen könnte, welche der beiden ich zu einem privaten und
zu einem öffentlichen Schlüssel mache. Beide dürften nicht auf
das Gegenstück schließen lassen und müssten gleichermaßen ver-
und entschlüsseln können.
Ist das so ?

Das kommt wieder auf den Verschlüsselungsalgorithmus drauf an. Bei RSA z.B. ist das so. Da suchst du dir z.B. zunächst zwei große Primzahlen p und q aus. Das Produkt aus beiden Zahlen ist dann das RSA-Modul N, welches sowohl Teil des privaten als auch des öffentlichen Schlüssels ist.
Dann berechnest du den Wert φ(N) der Eulerschen φ-Funktion für das RSA-Modul. Das geht für dich sehr einfach, da du die beiden Primzahlen kennst, aus denen sich das Modul errechnet.
φ(N) kennst also nur du. Dann wählst du dir eine Zufallszahl e, die teilerfremd zu φ(N) ist. Zu dieser Zahl berechnest du nun das multiplikativ Inverse davon (bezügl. mod φ(N)). Diese Zahl sei d.

Ein Schlüssel ist dann das Paar (d,N) und der andere Schlüssel ist (e,N). Welchen Schlüssel du davon zum öffentlichen und welchen zum privaten Schlüssel machst ist egal. Ohne Kenntnis der zwei Primzahlen p,q (und damit von φ(N)) ist es für einen Außenstehenden der nur e oder d kennt, praktisch nicht möglich, die andere Zahl zu bestimmen.
Zwar kennt der Angreifer N = p*q, aber um φ(N) bzw p,q zu bestimmen, muss er die Zahl N in ihre Primfaktoren zerlegen können. Dies ist aber eben sehr aufwändig.

Bei RSA ist es daher grob gesehen so:
Du bestimmst zwei Zahlen e und d, von denen du eine verrätst. Auf die andere kann man aber nur schließen, in dem man N faktorisiert, was extrem aufwändig ist.

Ein anderes sehr aufwändiges Problem ist die Bestimmung von diskreten Logarithmen in sog. zyklischen Gruppen. Auf dem Prinzip basiert z.B. der ElGamal-Algorithmus.

Vielen Dank, dass hat mir weitergeholfen.