Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Zitat von »"Osram"«
Zitat von »"ext"«
Ein One-Time Pad in der Praxis ist doch unsinnig, wenn ich den Schlüssel übertragen kann über einen sicheren Weg, dann kann ich auch gleich darüber direkt mit dem Empfänger kommunizieren (spart mir dann ja auch noch 50% der Datenmenge ein im Vergleich zum One-Time Pad).
Es kommt halt wie immer auf die Anwendung drauf an. Wenn entweder die Nachricht oder Nachricht + Pad auf dem selben Weg übertragen werden, macht natürlich letzteres keinen Sinn, da die Chance auf dem Weg abgehört zu werden die selbe ist.
One Time Pad macht Sinn wenn es einen seltenen / langsamen Weg gibt es etwas zu übermitteln und einen (vergleichsweise) schnellen. Z.B. ich treff meinen Kollegen einmal pro Jahr auf einer Messe und geb Ihm eine CD oder ein Buch, Ich schicke den Pad per Post, die Regierung gibt dem UBoot Kapitän Schlüssel beim Auslaufen mit, oder ich schicke einen Kurier. Die Nachrichten können dann z.B. offen per Funk, Telefon, Internet etc übertragen werden.
Zitat von »"ext"«
@Thunder Storm bei keinem heutigen Verschlüsselungsverfahren kommst du mit BruteForce zum Ziel auch da sind die Möglichkeiten bereits viel zu groß, als dass man ne Chance hätte das zu errechnen.
Zitat von »"ext"«
Die Übertragung eines symmetrischen Schlüssels ist kinderleicht sicher zu machen. Computer A schickt den öffentlichen Schlüssel für ein asymmetrisches Verfahren an Computer B, Computer B verschlüsselt damit den symmetrischen Schlüssel und schickt den an Computer A, Computer A nimmt den privaten Schlüssel und entschlüsselt den symmetrischen Schlüssel.
Jetzt besitzen nur Computer A und Computer B den Schlüssel und können miteinander über eine sichere Leitung kommunizieren.
Zitat von »"grek40"«
Ich glaube es geht darum, einmalig eine Liste mit mehreren Schlüsseln sicher zu übermitteln (per Hand,...) und dann später bei jeder abfangbaren Nachricht einen der Schlüssel zu verwenden.
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 |
pseudocode: byte a; byte b; a = <zuverschlüsseln>;; b = <schlüssel>; a ^= b;//a verschüsseln a ^= b;//a entschlüsseln |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
(Pseudo-Code) int[] a = (Zahlen-Array); int code;//die Gödel-Zahl int Primzahl(int n)//die n-te Primzahl { return (n-te Primzahl); } int GödelCodierung(int[] a)//Codiere a in die Gödelzahl { int code = 1; for(i = 0,..,Länge(a)) { code *= Pow( Primzahl(i), a[i]); } return code; } int[] GödelDekodierung(int code)//Dekodiere aus der Gödelzahl code den int-Array { int[] a; int i = 0;//Zähler Primfaktoren int k = 0;//Zähler Ergebnis-Array a while(code != 1) { i=0; while( Teilbar(code, Primzahl(n) ) { i++; code /= Primzahl(n); } a[k] = i; k++ } return a; } |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
irat PI = 3,1415926...//eine über den rationalen Zahlen transzendente Zahl (e=2,718281... ginge z.B. auch) irat CodeErzeugen(rat[] a) { irat code = 0; for(i=0,..,Länge(a)) { code += a[i] * Pow( PI, i ); } return code; } |
Administrator
Zitat von »"Passwort:"«
Aber es ist doch gut zu wissen, daß man mit diesem
simplen Verfahren zum Beispiel Goethes Faust in eine einzige natürliche Zahl codieren kann!?
Werbeanzeige