Frage von FFWfreak112, 19

Asymmetrische Verschlüsselung händisch?

Ich habe mich ein ganz klein wenig mit Verschlüsselungsmethoden befasst. Nun habe ich Spaßeshalber ein paar Sätze mit symmetrischen Verschlüsselungsverfahren verschlüsselt und mich anschließend mit asymmetrischen Verfahren befasst.

Nun ist für mich eine Frage aufgekommen: Kann man ein asymmetrisches Verschlüsselungsverfahren überhaupt per Hand und mit dem Kopf ausführen? Ich weiß zwar, dass ich einen öffentlichen und einen privaten Schlüssel habe, aber wie könnte ich mir diese beiden überhaupt vorstellen (und erzeugen) und wie kann ich den öffentlichen Schlüssel dann auf den Text übertragen und ihn anschließend mit meinem privaten Schlüssel entschlüsseln(der ja so wie ich das verstanden habe nichts mit dem öffentlichen Schlüssel zu tun hat)? (Wenn es überhaupt möglich ist)

Vom Bauchgefühl her (auch wenn das in der Mathematik wohl eher Fehl am Platz ist) würde ich sagen, dass mir als Ottonormalverbraucher es kaum möglich sein wird.

Ich bedanke mich dennoch für jeden konstruktiven Beitrag im Voraus :)

P.S. Ich hoffe meine Frage ist überhaupt einigermaßen verständlich

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von 0Ichputzhiernur, 9

Möglich: Ja

Möglicherweise sehr zeitaufwändig: Leider auch

Als Beispiel nehmen wir den RSA, der ja eines der bekanntesten asymmetrischen Verschlüsslungsverfahren (wenn nicht sogar das Bekannteste) ist. Es kommt natürlich darauf an wie groß du die Primzahlen p und q wählst. Außerdem wird beim (De)chiffrieren viel mit hohen Potenzen gerechnet (deren Höhe ebenfalls von der Wahl von p und q und e abhängt).

Mit 3 = q und 5 = p sollte es machbar sein. (du musst die zu verschlüsselnde Nachricht hoch 3 nehmen und dann modulo 6 rechnen , während du fürs entschlüsseln {in diesem Fall} die verschlüsselte Nachricht hoch 5 nehmen musst und modulo 6 rechnest.)
[Wenn ich mich gerade nicht verrechnet habe xD]
Das ist mit Stift und Papier durchaus möglich, dauert eben ein wenig.

Wenn die Zahlen jedoch größer werden, dann wird es immer schwieriger und langwiedriger (jedenfalls ohne maschinelle Hife)... :/

Ach ja tut mir leid wegen der ganzen Klammern xD Ich schreibe häufig einige Nebenbemerkungen dazu.

Ich hoffe trotzdem das ich dir helfen konnte :D

Weißt du denn wie der RSA funktioniert?

Wenn nicht wird das oben nun wahrscheinlich ein bisschen unverständlich erscheinen. Wenn du möchtest erkläre ich das Vorgehen gerne noch einmal etwas verständlicher xD

Liebe Grüße und eine schöne Woche

Bella

Kommentar von FFWfreak112 ,

Danke für die Antwort :)

Verstnändnisprobleme von deinem Text her hatte ich keine, aber das RSA Modul selbst will sich mir irgendwie nicht so wirklich erschließen. Würde es dir denn auch nichts ausmachen das mit deinen Worten zu erklären? Es würde mich jedenfalls freuen.
Schonmal im Voraus Danke für deine Mühen :)

Kommentar von 0Ichputzhiernur ,

Kein Problem mach ich doch gerne :D

Also der Anfang ist relativ leicht, am Ende wird es etwas mathematischer, aber wenn man das ersteinmal versteht macht man den RSA im Schlaf ;)

1. Der erste Schritt ist sich zwei Primzahlen zu suchen. Um so größer die beiden sind, umso sicherer ist die Verschlüsselung. ich werde jeden Schritt mit einem Beispiel zeigen um es besser verständlich zu machen:

Meine beiden Primzahlen sind jetzt 3 und 5 (extra klein um alles besser erklären zu können).

Die erste Primzahl bezeichne ich mit q die zweite mit p, da man das fast immer so macht. (Außerdem kann ich nur empfehlen Primzahlen zu wählen für die gilt 0,1< I log p - log q I <30, aber das ist nicht unbedingt notwendig, erhöht allerdings die Sicherheit.) Zudem darf nicht p = q gelten.

2. Als nächstes werden die beiden Primzahlen mit einander multipliziert. Das Ergebnis wird so gut wie immer mit dem Buchstaben N bezeichnet.

5*3 = N = 15

3. Als nächstes wird die sogennante "eulersche Phi-Funktion" berechnet, die ist allerdings ganz einfach zu erklären, da es sich bei p und q um Primzahlen handelt. (Das einizige was du dir merken musst ist, dass das gleich erklärte nur gilt wenn die beiden Zahlen p und q Primzahlen sind). Wir rechnen dazu einfach:

(p-1)*(q-1) = Phi-von-N

Im Beispiel:

(5-1)*(3-1) = Phi-von-N = 8

4. Als nächstes wählt man eine Zahl e für die folgende Bedingungen gelten, die ansonsten aber beliebig gewählt werden kann:

A.) 1<e<Phi-von-N

B.) ggT (größter gemeinsamer Teiler) von e und Phi-von-N muss gleich 1 sein. Man spricht hier auch von teilerfremd.

Für das Beispiel wähle ich die Zahl 3, denn für sie gilt sowohl:

1< 3 < 8

als auch:

teilerfremdheit zu 8

Eine andere Möglichkeit wäre auch die 5 gewesen oder die 7 (beides Primzahlen. Primzahlen gehen zwar immer, aber es gibt auch andere Zahlen die diese Voraussetzungen erfüllen)

5. Ok das ist jetzt der mathematische Teil. Er ist wenn man ihn erst einmal verstanden hat eigentlich ganz einfach. Dieser Teil heißt erweiterter euklidischer Algorithmus. Ich werde ihn mit einer Tabelle lösen, da ich finde das es der übersichtliche Weg ist, aber es gibt noch andere Wege. Zunächst zeichnet man sich eine Tabelle mit 6 Spalten. Oben schreibt man a, b, r , q , x ,y in dieser Reihenfolge in die Reihe. Dann schreibt man unter das a unser gewähltes e von oben (in diesem Fall also die 3) unter das b schreibt man unser Phi-von-N (also in diesem Fall die 8).

Vielleicht sagt dir Modulo etwas? Denn genau das machen wir jetzt. [Wenn nicht dann hier eine kurze Erläuterung: Modulo heißt eigentlich nichts anderes als Teilen mit Rest. Der Rest ist das wichtige dabei, nicht aber das Ergebnis der Division, an ein paar Beispielen:

20 mod 3 = 2 (da die drei das letzte Mal in 18 drin war und der Rest zwei übrig bleibt)

19 mod 5 = 3 (da die 5 das letzte Mal in 15 drin war und der Rest drei übrig bleibt).]

Nun betrachten wir die 3.Spalte  (die mit dem r{siehe unten die "Zeichnung" }), das r steht für Rest.

Die erste Frage die wir uns stellen ist wie oft geht die 8 in die drei (also das b ins a). Das Ergebnis ist 0 und der Rest der übrig bleibt ist drei. Jetzt schreiben wir die 3 in die dritte und die 0 (also das Ergebnis der Division) in die vierte Zeile. x und y bleiben frei (die brauchen wir später noch).

Der nächste Schritt ist die Zahl die jetzt bei b steht (also die 8) in die dritte Zeile, aber in die erste Spalte (die des a's zu schreiben und die des r's (also die 3) in die des b's (siehe unten).

Das ist eigentlich das ganze Prinzip, das wir jetzt wiederholen. Wir schauen wie oft unser (neues) b in das a hineingeht. Das Ergebnis ist zwei den 2*3 = 6 aber 3*3 = 9 und berechnen dann den Rest der übrig bleibt. Das Ergebnis schreiben wir in die Zeile des q's, den Rest in die des r's. Danach rücken wir das b in die 4 Zeile, aber in die Spalte vom a und das alte r in die des b's (aber in der 4.Zeile) und diesen Prinzip wiederholen wir jetzt genau so.

Also immer:

1.schauen wie oft b in a reingeht und den Rest raussuchen.

2. Das ergebnis in q schreiben, den Rest in r

3. (altes) b an Stelle des a's rücken, r an die des b's

Allerdings nur so lange bis in der Spalte des r das erste Mal 0 steht, dann sind wir fertig (jedenfalls mit dem ersten Teil).

Als nächstes betrachten wir die verbliebenen zwei Spalten (also x und y). Wir beginnen jetzt von UNTEN, also in der letzten Zeile. Dort schreiben wir in die des x's (immer) zuerst eine 1 und in die des y's eine 0. (Dieser erste Schritt ist immer gleich). Nun werden x und y immer nach dem gleichen Muster gebildet. Wir nehmen das y (das beim ersten Mal immer) 1 ist und schieben es eine Zeile drüber in die Spalte des x.

I    a    I    b   I     r    I     q    I    x     I   y    I

I    3    I    8   I   3     I    0    I           I         I

I     8   I   3     I    2    I    2    I          I         I

I    3    I   2     I    1    I    1    I    1    I         I

I   2     I   1     I    0    I      2   I    0    I   1    I

Kommentar von 0Ichputzhiernur ,

Verdammte Zeichnbegrenzung -.- xD

Naja hier geht es weiter:

Das neue x wird immer auf diese Weise gebildet, also das y aus der Zeile davor einfach eins nach oben rücken. Beim y ist das etwas anders und zwar wird es durch die folgende Gleichung herausgefunden:

x(alt) - ( y(alt) * q(neu)) = x(neu)

Das heißt in Worten man nimmt das y aus der Zeile drunter und multipliziert es mit dem q, das in der Zeile steht in der auch das neue x stehen soll und zieht das Ergebnis dann von dem x aus der vorherigen Zeile ab.

Das heißt bei uns jetzt beim ersten Mal:

0-(1*1) = -1

Die Minus eins schreibt man dann eine Zeile drüber an Stelle des x. Und macht dann weiter:

1-(-1*2) = 1-(-2) = 3

3 hoch in die Zeile des x

-1-(3*0)= -1-0 = -1

Und wir sind fertig :D Puh...

I    a    I    b   I     r    I     q    I    x     I   y    I

I    3    I    8   I   3     I    0    I     3   I   -1    I

I     8   I   3     I    2    I    2    I   -1    I  3     I

I    3    I   2     I    1    I    1    I    1    I   -1    I

I   2     I   1     I    0    I      2   I    0    I   1    I

[Kurze Randinfo, die ich mir nicht verkneifen konnte: Der erweiterte Euklidische Algorithmus ist noch zu vielen anderen Dingen sehr gut zu gebrauchen, zum Beispiel um den ggT zu berechnen oder diophantische Gleichungen zu lösen { Kann ich dir auch erklären, wenn du möchtest xD (ich erkläre gerne Dinge, denn dadurch zeigt sich einem selbst ob man sie auch richtig verstanden hat)}]

Die Zahl die wir jetzt brauchen ist die, die ganz oben in der Spalte mit dem x steht (also die 3), die wird allgemein mit dem Buchstaben d bezeichnet.

Den Rest trage ich morgen nach. Es ist nämlich schon 0:24 und ich habe bald wieder Schule, deswegen Naja xD

Ich hoffe das ist kein Problem und außerdem hoffe ich das ich dir diesen Teil so weit gut erklären konnte und das du alles bis hier hin verstanden hast. Ich beantworte gerne allen Fragen zu diesem Thema =D

Morgen liefere ich dann noch den Nachtrag. :)

Und jetzt gute Nacht und eine schöne Woche

Bella

Kommentar von 0Ichputzhiernur ,

Gestern habe ich leider keine Zeit dafür gefunden, deswegen kommt erst heute der Nachtrag =)

Nachdem wir e (in unserem Beispiel 3) herausgefunden haben ist das Verfahren eigentlich schon abgeschlossen, aber ich möchte hier noch kurz erläutern wie man denn mit dem nun gefundenen Schlüssel eine Nachricht chiffriert bzw. dechiffriert.

Bei Asymmetrischen Verfahren unterscheidet man im Gegensatz zu symmetrischen Verfahren zwischen dem öffentlichen und derm privaten Schlüssel. Letzteren solltest nur du kennen, während du ersterem überall verbreiten darfst.

Der geheime Schlüssel: d  (bei uns 3)

Der öffentliche Schlüssel: N und e (bei uns 8 und 3)

Also beginnen wir mit dem chiffrieren:

Dafür wandelt man die Buchstaben zuächst in Zahlen um und teilt sie in Blöcke ein, also man verschlüsselt meistens mehrere Buchstaben (wenn nicht sogar den ganzen Text) aufeinmal.

Und um alles wieder zu dechiffrieren muss man die Zahlen einfach hoch e (bei uns 3) mod N (bei uns 15)

Ich hoffe ich konnte das alles einigermaßen gut erklären, bei Rück oder Nachfragen stehe ich jederzeit gerne zur Verfügung. :D

Noch eine Schöne Woche =)

Bella

Kommentar von FFWfreak112 ,

Tut mir leid dass da von mir nichts gekommen ist. Ich habe irgendwie keine Benachrichtigungen mehr für diesen Beitrag bekommen :/
Jedenfalls mal vielen vielen Dank für die ausführliche Antwort an einen unwissenden ;) :)
Ich wünsche dir noch einen angenehmen Freitag (Den ich morgen tatsächlich frei habe ^^) und anschließend ein schönes und erholsames Wochenende :)

Antwort
von netcx, 7

Denke schon, wenn man auf die Anfänge der Verschlüsselung in der Prä-Computer-Ära zurückblickt, da wurde das ja auch so gemacht. Wenn man aber die heutigen Verschlüsselungstechniken betrachtet, ist das zwar vielleicht theoretisch möglich aber praktisch unmöglich, schlicht weil der Rechenaufwand zu hoch ist (zu viele Rekursionen). Aber das kann man am besten im jeweiligen Verschlüsselungsalgorithmus, wenn auch nur methodisch, nachvollziehen.

Antwort
von iokii, 7

Wenn ein Computer es kann, kannst du es auch, brauchst nur etwas länger.

Kommentar von FFWfreak112 ,

Das ist mir bewusst aber ob es ein vertretbarer Zeitraum ist steht dann (je nach dem wie ich es mache) wohl auf einem anderen Blatt oder stell ich mir das ganze doch wesentlich komplizierter vor als es ist?

Kommentar von iokii ,

Dauert nicht lange. Auf Wikipedia steht auch, wie das geht, https://de.wikipedia.org/wiki/RSA-Kryptosystem

Der Private Schlüssel sind einfach nur 2 Primzahlen, und der Öffentliche Schlüssel ist das Produkt der beiden Primzahlen. Der Trick liegt darin, dass es numerische extrem aufwendig ist, bei großen Zahlen eine Primfaktorzerlegung durchzuführen. Das Produkt der Primzahlen reicht, um eine Nachricht zu verschlüsseln, aber um sie dann wieder zu entschlüsseln braucht man die Primzahlen selbst.

Keine passende Antwort gefunden?

Fragen Sie die Community