Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Eigener Verschlüsselungsalgorithmus benutzen (https://www.delphipraxis.net/167829-eigener-verschluesselungsalgorithmus-benutzen.html)

Back2Code 20. Apr 2012 14:31

AW: Eigener Verschlüsselungsalgorithmus benutzen
 
Bits jemand von euch hier der mir sagen könnte wie sicher ungefähr meine Tabelle ist?

Bummi 20. Apr 2012 14:33

AW: Eigener Verschlüsselungsalgorithmus benutzen
 
http://de.wikipedia.org/wiki/Caesar-...und_Sicherheit

Back2Code 20. Apr 2012 14:41

AW: Eigener Verschlüsselungsalgorithmus benutzen
 
Zitat:

Zitat von Bummi (Beitrag 1162871)

Meine hat ja nichts mit Caesar zu tun :p Ist anderst aufgebaut.

Medium 20. Apr 2012 14:46

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.

Klaus01 20. Apr 2012 14:52

AW: Eigener Verschlüsselungsalgorithmus benutzen
 
Zitat:

Zitat von Robin2k (Beitrag 1162875)
Zitat:

Zitat von Bummi (Beitrag 1162871)

Meine hat ja nichts mit Caesar zu tun :p Ist anderst aufgebaut.

Wie kommst Du denn auf dieses schmale Brett?

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:
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 ...
Grüße
Klaus

shmia 20. Apr 2012 16:25

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.

Assarbad 20. Apr 2012 18:25

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:

Zitat von Robin2k (Beitrag 1162843)
Natürlich. Ich hab ja nichts gegen ihn :wink: und bei meinen anderen Problemen hat er mir leider nie richtig weiterhelfen können.

Das klingt aber schon anders. Er ist einer der kompetenten Forenten, einer der dir geantwortet und damit einen (wenn auch kleinen) Teil seiner Lebenszeit geschenkt hat. Und darauf so eine Replik? Es gibt aus den 14 Jahren Forenerfahrung die ich insgesamt habe nur weniges was ähnlich krass war.

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:

Zitat von Robin2k (Beitrag 1162838)
Hab ich mir schon fast gedacht, dass du der erste bist leider hast du mir bisher noch nie gut helfen können mit deinen Antworten. Hoffentlich meldet sich noch jemand anderes :stupid:

Ist das dein Ernst?

*fast sprachlos* :?

himitsu 20. Apr 2012 18:56

AW: Eigener Verschlüsselungsalgorithmus benutzen
 
Zitat:

Zitat von Klaus01 (Beitrag 1162869)
Auch der Austausch von Zeichen durch andere ist eine Verschlüsselung (siehe Caesar-Verschlüsselung).
Wenn auch eine sehr schwache..

Wenn man es genau sieht, dann ist selbst XOR nur eine Zeichenaustauschverschlüsselung.
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:

*fast sprachlos*
*schweig*

simmi 20. Apr 2012 19:34

AW: Eigener Verschlüsselungsalgorithmus benutzen
 
Zitat:

@Klaus01 - Auch der Austausch von Zeichen durch andere ist eine Verschlüsselung
mag sein das es für das Altertum ausreichend war...
Zitat:

@Assarbad - *fast sprachlos*
DeddyH hat für mich immer eine gute Idee gehabt und auch seine anderen Antworten in Beiträgen die ich gelesen habe waren immer top und verständlich!. Schade dass Du so denkst.

Sir Rufo 20. Apr 2012 21:03

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 07:10 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz