Erkläre die grundlegenden Prinzipien des RSA-Verfahrens und des Diffie-Hellman-Schlüsselaustauschs und beantworte folgende Fragen:
Berechne den privaten Schlüssel d
im RSA-Verfahren. Du hast die folgenden Werte:
Schritt-für-Schritt: Berechne d
, den privaten Schlüssel, indem du den Wert von phi(N)
und dann den modularen Inversen von e
berechnest.
Alice und Bob möchten einen geheimen Schlüssel über Diffie-Hellman austauschen. Sie verwenden die folgenden Parameter:
Berechne den geheimen Schlüssel, den Alice und Bob gemeinsam haben.
Was ist der Unterschied zwischen RSA und Diffie-Hellman im Hinblick auf ihre Verwendung in der sicheren Kommunikation? Nenne einen möglichen Einsatz von RSA und Diffie-Hellman in einem modernen sicheren Kommunikationssystem.
Alice möchte eine Nachricht an Bob senden und diese mit einer digitalen Signatur versehen. Sie verwendet RSA und hat die folgenden Werte:
Berechne die digitale Signatur, indem du die Nachricht m = 123
signierst. Bestimme die Signatur und erkläre, wie Bob diese verifizieren kann, um sicherzustellen, dass die Nachricht von Alice stammt und nicht verändert wurde.
Stelle dir vor, Alice möchte eine Nachricht an Bob senden, die sowohl vertraulich als auch authentisch ist. Sie verwendet RSA zur Verschlüsselung der Nachricht und eine digitale Signatur, um die Authentizität zu gewährleisten.
Erkläre den Ablauf der Verschlüsselung der Nachricht von Alice an Bob unter Verwendung von RSA.
Angenommen, die Nachricht m = 12
soll mit dem öffentlichen Schlüssel von Bob verschlüsselt werden,
der den öffentlichen Teil e = 17
. Nutze für die Primzahlen p = 17 und q = 13.
.
Berechne die verschlüsselte Nachricht.
Alice möchte auch eine digitale Signatur erstellen, um sicherzustellen, dass die Nachricht von ihr stammt. Erkläre, wie sie die digitale Signatur auf ihre Nachricht anwendet. Wie kann Bob die digitale Signatur verifizieren, um sicherzustellen, dass die Nachricht von Alice stammt und nicht verändert wurde?
Warum ist es wichtig, dass Alice ihren privaten Schlüssel nicht preisgibt? Was könnte passieren, wenn der private Schlüssel von Alice in falsche Hände gerät?
Implementiere eine Funktion fBubbleAuf()
, die ein Array von Ganzzahlen in aufsteigender Reihenfolge mit dem BubbleSort-Algorithmus sortiert. Beschreibe den Algorithmus und erkläre, wie die Funktion implementiert wird.
Der Algorithmus durchläuft das Array mehrfach. In jeder Iteration vergleicht er benachbarte Elemente und tauscht sie, wenn das erste Element größer als das zweite ist. Dies wird wiederholt, bis das Array vollständig sortiert ist. Wenn in einer Iteration kein Tausch stattfindet, wird der Vorgang abgebrochen, weil das Array bereits sortiert ist.
Wenn wir die Liste [5, 2, 9, 1, 5, 6]
an die Funktion fBubbleAuf()
übergeben, wird sie in aufsteigender Reihenfolge sortiert: [1, 2, 5, 5, 6, 9]
.