![]() |
AW: Eigener Verschlüsselungsalgorithmus benutzen
Bits jemand von euch hier der mir sagen könnte wie sicher ungefähr meine Tabelle ist?
|
AW: Eigener Verschlüsselungsalgorithmus benutzen
|
AW: Eigener Verschlüsselungsalgorithmus benutzen
Zitat:
|
AW: Eigener Verschlüsselungsalgorithmus benutzen
Es ist ein simples Substitutionsverfahren wie Caesar, nur dass du nicht rotiertst, sondern "gemischt" ersetzt. Das ändert nur nichts daran, dass man mit einer Häufigkeitsverteilung genau so leicht da dran gehen kann, weil eben ein Zeichen immer durch genau ein/e andere/s (Folge) ersetzt wird. So lange du eine 1<->1 Beziehung hast wird das auch so bleiben, völlig egal was du für Werte nun in deine Tabelle schreibst.
|
AW: Eigener Verschlüsselungsalgorithmus benutzen
Zitat:
Du ersetzt ein Zeichen durch vier Zeichen, dadurch erhöht sich die Sicherheit aber nicht. Deine 4 Zeichen repräsentieren auch nur ein Informations-Token. Deine Verschlüsselung ist auch nur eine monoalphabetische Verschlüsselung. Caesar:
Code:
Grüße
Beispiel für eine Verschiebung um drei Zeichen:
Klar: a b c d e f g h i j k l m n o p q r s t u v w x y z Geheim: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C Deine 0x1z 0x2y 0x3x ... Klaus |
AW: Eigener Verschlüsselungsalgorithmus benutzen
Stell' Dir vor ein Angreifer bekommt den verschlüsselten Text und den Klartext gleichzeitig in die Finger (weil er mit deiner Sekretärin gepimpert hat :-) ).
Blöderweise war die Nachricht auch noch recht lang, so dass alle Buchstaben verwendet wurden. Ausserdem kennt er auch noch Algorithmus. Ein gutes Verschlüsselungsverfahren ist nun so konstruiert, dass der Angreifer daraus den Schlüssel (deine Zuordnungstabelle) nicht zurückrechnen kann. Selbst wenn man den Schlüssel für folgende Nachrichten ändert, weiss der Angreifer bei einer Zuordnungstabelle doch genug (Häufigkeitsverteilung der Buchstaben, Wörterbuchattacke,...) um die Nachricht zu entschlüsseln. |
AW: Eigener Verschlüsselungsalgorithmus benutzen
Andreas (shmia) erklärt es am besten. Das ist vermutlich auch, warum viele die Caesar-Verschlüsselung nicht als Verschlüsselung ansehen. Nach heutigen Maßstäben (Rechenkapazität und Speicher, sowie Internet) ist das ein Klacks.
Wenn die benutzte (natürliche) Sprache bekannt ist, wird es aufgrund der statistischen Buchstabenverteilung noch einfacher einen Angriff zu fahren. Sprich: mit roher Gewalt ("brute force") die Zuordnung zu knacken. Zitat:
Abgesehen davon hat DeddyH recht. Du hast einfach eine Zuordnungstabelle - also Daten - in deine Frage geschrieben und dann eine leicht wirre ("wie ich eine Abfrage gestalte"?) Frage geschrieben für die es bei StackOverflow Downvotes gehagelt hätte. Dann macht sich DeddyH die Mühe und antwortet dir und bekommt dafür sowas an den Kopf gehauen: Zitat:
*fast sprachlos* :? |
AW: Eigener Verschlüsselungsalgorithmus benutzen
Zitat:
Nimm mal einen Schlüssel von einem Zeichen Länge und schon hast du eine 1:1-Beziehug zwischen Eingangs- und Ausgangszeichen, also ebenfalls quasi eine Tabelle, für die Umrechnung. Und was das Sicher betrifft. Wenn man die Schlüssellänge entsprechend vergrößert, dann wird es irgendwann extrem sicher ... da kann man selbst mit Bruteforce und statistischen Verteilungen rein garnichts mehr anfangen (vorallem wenn es sich um ein OTP handelt). Zitat:
|
AW: Eigener Verschlüsselungsalgorithmus benutzen
Zitat:
Zitat:
|
AW: Eigener Verschlüsselungsalgorithmus benutzen
Ungeachtet der Sicherheit bei diesem Verfahren kann es so umgesetzt werden:
Deine Zuordnungstabelle in eine Stringlist packen (entferne die Leerzeiche vor und nach dem = und dann der Eigenschaft Text zuweisen). Der Rest ist ... sieh selbst
Delphi-Quellcode:
var
KeyList : TStringList; KeyList.Text := 'a = 5x0q' + sLineBreak + 'b = 9x0w' + sLineBreak + ... '9*= 3x0x'; function Crypt( const aStr : string; const Key : TStrings ) : string; var idx : integer; begin Result := ''; for idx := 1 to Length( aStr ) do Result := Result + Key.Values[ aStr[ idx ] ]; end; function Decrypt( const aStr : string; const Key : TStrings ) : string; var idx : integer; part : string; begin Result := ''; for idx := 0 to aStr div 4 - 1 do begin part := copy( aStr, idx * 4 + 1, 4 ); Result := Result + Key.Names[ Key.IndexOfName( part ) ]; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz