Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Verschlüsselung


Delete - Sa 03.02.07 14:43
Titel: Verschlüsselung
hallo,

ich bin neu bei delphi, d.h. ich bin erst seit ein paar monaten dabei.
ich möchte einen einfachen text verschlüsseln, aber nicht die Xor-methode verwenden!!!

kann mir jemand helfen, indem er wie sagt wie ich den text mit sonderzeichen, einfach, symmetrisch verschlüsseln und wieder entschlüsseln kann???

danke im voraus


marvin521993 - Sa 03.02.07 15:02

Hallo,

Verschlüsseln machst du mit wenn du zwei memos hast und eine combobox,wo ausgewählt wird um wie viel man verschlüsseln will, musst du einfach jeden buchstaben nach für nach verschlüsseln und in memo2 ausgeben.

LG
Marvin


marvin521993 - Sa 03.02.07 15:08

das sehe dann ungefähr so aus:

Delphi-Quelltext
1:
2:
3:
4:
begin
  Memo2.Clear;
For i:=1 to length(Memo1.text) do
  Memo2.Text := Memo2.Text + char(ord(Memo1.text[i])+StrToInt(ComboBox1.Text));


hoffe das ich dir helfen konnte

LG
Marvin

Moderiert von user profile iconmatze: Delphi-Tags hinzugefügt


Delete - Sa 03.02.07 17:32

@ Marvin

Ich wollte ein Schluesselwort in ein Edit-Feld eingeben, Ein-/ und Ausgabetext sollten in 2 Memofelder. Ein Buttonklick soll die Prozedur starten. Doch ich habe das Problem, dass Schluesselwort, Ein-/ und Ausgabetext die gleich Laenge haben muessen, was nicht der Fall sein soll.


JayEff - Sa 03.02.07 17:35

Wenn du Xor wegen der Sicherheit nicht einsetzen willst, dann kann ich dir sagen, dass alles, was symetrisch ist, etwa genauso sicher ist ;)
Hier mal ein Algo, den ich eben Freihand geschrieben und in einem anderen Thread gepostet hab. könnte fehler enthalten.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
function encode(text, key: String):String
var i,keypos:integer; 
begin 
  keypos:=1
  for i:=1 to length(text) do 
  begin 
    Result:=Result+char(byte(ord(text[i])+ord(key[keypos]))); 
    inc(keypos); 
    if keypos > length(key) then 
      keypos:=1
  end
end;


Delete - Sa 03.02.07 17:38
Titel: Re: Verschlüsselung
Wenn du mir jetzt noch den Quelltext ungefaehr erklaeren koenntest, waer das echt net!!
!
Danke


Delete - Sa 03.02.07 17:58

hier mal kurz was zum lesen:



Delete - Sa 03.02.07 18:40
Titel: Re: Verschlüsselung
Kann mir jemand sagen, was ich tun muss, dass dieser Quelltext funktioniert???
D.h. wenn sowohl Eingabetext und Schluesselwort 3 Buchstaben haben funtioniert er, ansonsten nicht!!!

1:

Delphi-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:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
unit verschluesselung_Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Borland.Vcl.StdCtrls, System.ComponentModel;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Memo2: TMemo;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  i, ii: integer;
  sw: string;
  te: string;
  vt: string;

implementation

{$R *.nfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.Text=''
   then
      begin
      showmessage('Bitte geben Sie ein Schlüsselwort ein!');
      exit;
      end;
if memo1.Text=''
   then
      begin
      showmessage('Bitte geben Sie den zu verschlüsselnden Text ein!');
      exit;
      end;
sw:=edit1.text;
te:=memo1.Text;
for i:=1 to length(te) do
   te[i]:=char(ord(te[i])+ord(sw[i]));
memo2.text:=te;
end;

end.


Danke


JayEff - Sa 03.02.07 18:46
Titel: Re: Verschlüsselung
user profile iconma$ter hat folgendes geschrieben:
Kann mir jemand sagen, was ich tun muss, dass dieser Quelltext funktioniert???
D.h. wenn sowohl Eingabetext und Schluesselwort 3 Buchstaben haben funtioniert er, ansonsten nicht!!!

Schau dir meinen an und dann weist du, was du an deinem ändern musst. Bzw benutz einfach meinen.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
function encode(text, key: String):String;  
var i,keypos:integer;  
begin  
  keypos:=1//keypos ist die position im schlüssel 
  for i:=1 to length(text) do  //i ist die position im Text
  begin  
    Result:=Result+char(byte(ord(text[i])+ord(key[keypos])));  //verschlüsselung
    inc(keypos);  //position im schlüssel erhöhen
    if keypos > length(key) then  //position im schlüssel nicht größer als schlüssel
      keypos:=1;  
  end;  
end;


Robinator - Sa 03.02.07 18:49
Titel: Re: Verschlüsselung

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.Text=''
   then
      begin
      showmessage('Bitte geben Sie ein Schlüsselwort ein!');
      exit;
      end;
if memo1.Text=''
   then
      begin
      showmessage('Bitte geben Sie den zu verschlüsselnden Text ein!');
      exit;
      end;
sw:=edit1.text;
te:=memo1.Text;
while sw < te do
  sw := sw + sw;

for i:=1 to length(te) do
   te[i]:=char(ord(te[i])+ord(sw[i]));
memo2.text:=te;
end;

so sollte es gehen (auch wenn der algo geradezu lächerlich unsicher ist^^)

gruss, rob


JayEff - Sa 03.02.07 18:51
Titel: Re: Verschlüsselung
user profile iconRobinator hat folgendes geschrieben:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
while length(sw) < length(te) do
  sw := sw + sw;

for i:=1 to length(te) do
   te[i]:=char(ord(te[i])+ord(sw[i]));
memo2.text:=te;
end;

so sollte es gehen (auch wenn der algo geradezu lächerlich unsicher ist^^)

gruss, rob

Unsicher nur, wenn das passwort recht klein ist. bei einem 500 Zeichen PW und einem 500 Zeichen text, bei dem das PW auch noch absolut zufällig ist, ist es recht sicher ;)


Robinator - Sa 03.02.07 18:55

Ups, da hat sich wohl nen fehler eingeschliche, sry :)

Du hast natürlich recht, mit nem one time pattern ist selbst so ein algorithmus sicher, in dem fall wäre aber auch XOR (fast) absolut sicher.

(falls das jetzt nicht gaaanz stimmen sollte, nich gleich steinigen, ich bin kein wirklicher Fachmann in sachen Kryptologie)

gruss, rob


JayEff - Sa 03.02.07 19:58

user profile iconRobinator hat folgendes geschrieben:
(falls das jetzt nicht gaaanz stimmen sollte, nich gleich steinigen, ich bin kein wirklicher Fachmann in sachen Kryptologie)

Ich auch nicht, unsere Meinungen stimmen aber überein, also haben wir Recht. ;)
Ein One Time Pad ist absolut 100% sicher, solang das Passwort wirklich nur 1 mal benutzt wird und dem Feind nicht in die Hände fällt ^^


Delete - Sa 03.02.07 20:50
Titel: Re: Verschlüsselung
Okay, danke!!!

Nur nebenbei, die obrgie Methode soll kein Passwortverschluessler sein, sonder lediglich einen einfachen Text fuer den ersten Augenblick nicht entzifferbar machen!!!

Ich glaub ich habs verstanden und was waer dann die naechste Stufe fuer einen sicheren Text bzw. was ist sicherer Xor oder die obendrueber???


JayEff - Sa 03.02.07 21:10

alle polyalphabetischen verschlüsselungen sind etwa gleich sicher. Wenn du bei meinem Code + mit xor vertauscht, hast du auch ne xor verschlüsselung. die nächst höhere sicherheit? Hm .. mal abgesehen von zufallsgenerierten, langen Passwörtern gibts da wohl nur noch asymetrische verschlüsselungen. einfach mal googlen. AES is auch ein Stichwort, Advanced Encryption Standart...


Delete - Sa 03.02.07 22:12
Titel: Re: Verschlüsselung
Naechste Frage:

Ich habe die Xor Methode unter http://www.dsdt.info gefunden und ausprobiert. Unter dem Artikel stand, dass die Methode sehr unsicher ist. Kann mir jemand unkompliziert erklaeren was es mit dem Zuweisungoperator Xor eigentlich auf sich hat???

Danke im voraus!!!


Delete - Sa 03.02.07 23:37

guckste hier:



Delete - So 04.02.07 14:16
Titel: Re: Verschlüsselung
@ JayEff

Wenn ich deine Methode nehme, bekomme ich's in ner Prozedur ja noch hin, aber wenn ich ne Funktion benutz klappts net mehr!!!


Delete - So 04.02.07 15:24
Titel: Re: Verschlüsselung
D.h. wenn ich die Funktion mit ner Procedure aufrufen will, kommt ein Fehler.

Wer kann mit helfen???

Danke - ih bin Anfaenger


azubi_20 - So 04.02.07 15:31

user profile iconma$ter hat folgendes geschrieben:
D.h. wenn ich die Funktion mit ner Procedure aufrufen will, kommt ein Fehler.

was soll das heißen ?

poste mal quelltext und Fehler, dann sehen wir weiter...


Delete - So 04.02.07 16:04
Titel: Re: Verschlüsselung
Hier ist der Quelltext:

1:

Delphi-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:
47:
48:
49:
50:
51:
52:
53:
unit verschluesselung_Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Borland.Vcl.StdCtrls, System.ComponentModel;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Memo2: TMemo;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.nfm}

function encode(text, key: String):String;
var i,keypos:integer;
begin
  text:=form1.memo1.text;
  key:=form1.Edit1.Text;
  // Wie kann ich Keypos fuer die Position des Schluesselwortes einsetzen???
  keypos:=1;
  for i:=1 to length(text) do
  begin
    Result:=Result+char(byte(ord(text[i])+ord(key[keypos])));
    inc(keypos);
    if keypos > length(key) then
      keypos:=1;
  end;
  form1.Memo2.Text:=result;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
encode(); // Warum kommt der Fehler: "Nicht genuegend wirkliche Parameter???
end;

end.


moddin - So 04.02.07 16:06

nimm die RC4 Unit von hagen reddman

1 cryptografisch sicher nicht so ein dummer RumgeXORrre :P
2 schnell + häufigkeitsverschleieru + man aus einem verschlüsselten text
auch einzelne segmente entschlüsseln weiß aber nicht ob das für dich interessant ist (sockets???)


Delete - So 04.02.07 16:12
Titel: Re: Verschlüsselung
Ich wuerde den trotzdem wissen, wie ich DIESEN Quelltext fehlerfrei schreiben kann...


tommie-lie - So 04.02.07 16:44

user profile iconJayEff hat folgendes geschrieben:
Wenn du Xor wegen der Sicherheit nicht einsetzen willst, dann kann ich dir sagen, dass alles, was symetrisch ist, etwa genauso sicher ist ;)
Wie kommst du darauf?


user profile iconJayEff hat folgendes geschrieben:
AES is auch ein Stichwort, Advanced Encryption Standart...
Und Rijndael ist was für ein Verschlüsselungsverfahren?

:roll:


Delete - So 04.02.07 16:53
Titel: Re: Verschlüsselung
Okay, anders: Kann mir bitte jemand diesen Quelltext korrigieren?

1:

Delphi-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:
47:
48:
49:
50:
51:
52:
53:
unit verschluesselung_Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Borland.Vcl.StdCtrls, System.ComponentModel;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Memo2: TMemo;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.nfm}

function encode(text, key: String):String;
var i,keypos:integer;
begin
  text:=form1.memo1.text;
  key:=form1.Edit1.Text;
  // Wie kann ich Keypos fuer die Position des Schluesselwortes einsetzen???
  keypos:=1;
  for i:=1 to length(text) do
  begin
    Result:=Result+char(byte(ord(text[i])+ord(key[keypos])));
    inc(keypos);
    if keypos > length(key) then
      keypos:=1;
  end;
  form1.Memo2.Text:=result;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
encode(); // Warum kommt der Fehler: "Nicht genuegend wirkliche Parameter???
end;

end.


tommie-lie - So 04.02.07 17:04
Titel: Re: Verschlüsselung
user profile iconma$ter hat folgendes geschrieben:

Delphi-Quelltext
1:
2:
  // Wie kann ich Keypos fuer die Position des Schluesselwortes einsetzen???
  keypos:=1;
Wie meinen?

user profile iconma$ter hat folgendes geschrieben:

Delphi-Quelltext
1:
encode(); // Warum kommt der Fehler: "Nicht genuegend wirkliche Parameter???                    
Weil die Funktion encode zwei Parameter annimmt, einmal text und einmal key, beide vom Typ String, du aber keinen einzigen Parameter übergibst. Parameter werden in die Klammern geschrieben und mit Kommata getrennt. Du möchtest vielleicht encode(Memo1.Text, Edit1.Text); benutzen und dafür im Funktionskörper die ersten Beiden Zeilen (die Zuweisung von text und key) entfernen. Außerdem möchtest du diesen [http://www.christian-stelzmann.de/artikel/crashkurs.htm] Text lesen.


Delete - So 04.02.07 17:26
Titel: Re: Verschlüsselung
keypos:=1 => Keypos soll die Position des Schluesselwortes angeben, welche an dieser Stelle auf 1 gesetzt wird!


Delete - So 04.02.07 18:38
Titel: Re: Verschlüsselung
user profile iconma$ter hat folgendes geschrieben:
Okay, anders: Kann mir bitte jemand diesen Quelltext korrigieren?

1:

Delphi-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:
47:
48:
49:
50:
51:
52:
53:
unit verschluesselung_Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Borland.Vcl.StdCtrls, System.ComponentModel;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Memo2: TMemo;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.nfm}

function encode(text, key: String):String;
var i,keypos:integer;
begin
  text:=form1.memo1.text;
  key:=form1.Edit1.Text;
  // Wie kann ich Keypos fuer die Position des Schluesselwortes einsetzen???
  keypos:=1;
  for i:=1 to length(text) do
  begin
    Result:=Result+char(byte(ord(text[i])+ord(key[keypos]))); //hier potenzieller fehler!!
    inc(keypos);
    if keypos > length(key) then
      keypos:=1;
  end;
  form1.Memo2.Text:=result;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
encode(); // Warum kommt der Fehler: "Nicht genuegend wirkliche Parameter???
end;

end.


du weisst aber schon, dass deine routine sehr, sehr fehleranfällig ist und nur bis #127 einigermassen fehlerfrei arbeitet. ausserdem ist er nur für single-byte strings geeignet. wirf den algo lieber weg und hol dir was vernünftiges. nur 'n kleiner tip am rande.


azubi_20 - So 04.02.07 19:38

also ohne dass ich jetzt den algo überprüft habe, so wird die Funktion richtig aufgerufen :


Delphi-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:
47:
48:
49:
50:
51:
unit verschluesselung_Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Borland.Vcl.StdCtrls, System.ComponentModel;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Memo2: TMemo;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.nfm}

function encode(text, key: String):String;
var i,keypos:integer;
begin
  // Wie kann ich Keypos fuer die Position des Schluesselwortes einsetzen???
  keypos:=1;
  for i:=1 to length(text) do
  begin
    Result:=Result+char(byte(ord(text[i])+ord(key[keypos]))); //hier potenzieller fehler!!
    inc(keypos);
    if keypos > length(key) then
      keypos:=1;
  end;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
form1.Memo2.Text:=encode(form1.memo1.Text,form1.Edit1.Text); 
end;

end.


Delete - So 04.02.07 21:30

Danke an alle, die mit geholfen haben, mein problem zu beseitigen, ich habe jetzt den vollstaendigen Quelltext!!!


JayEff - So 04.02.07 22:01

user profile icontommie-lie hat folgendes geschrieben:
user profile iconJayEff hat folgendes geschrieben:
Wenn du Xor wegen der Sicherheit nicht einsetzen willst, dann kann ich dir sagen, dass alles, was symetrisch ist, etwa genauso sicher ist ;)
Wie kommst du darauf?
Was spricht dagegen? Nehmen wir an, den selben Text mit dem selben Passwort zu verschlüsseln, und bleiben bei einer polyalphabetischen, symetrischen verschlüsselung, bleibt die sicherheit etwa gleich, oder nicht?
(Ich geb zu, ich hab das "polyalphabetisch" vergessen, das schließt alles, was nicht wie vigenere funktioniert, aus, zumindest in meiner Vorstellung :oops: )

user profile iconJayEff hat folgendes geschrieben:
AES is auch ein Stichwort, Advanced Encryption Standart...
Und Rijndael ist was für ein Verschlüsselungsverfahren?[/quote]
Ich weiß nicht. Aber keine rein polyalphabetische, symetrische Verschlüsselung, oder?


Delete - So 04.02.07 22:34

user profile iconJayEff hat folgendes geschrieben:
AES is auch ein Stichwort, Advanced Encryption Standart...
Und Rijndael ist was für ein Verschlüsselungsverfahren?[/quote]
Ich weiß nicht. Aber keine rein polyalphabetische, symetrische Verschlüsselung, oder?[/quote]

dann mal zum nachlesen: http://csrc.nist.gov/CryptoToolkit/aes/rijndael/Rijndael-ammended.pdf


tommie-lie - Mo 05.02.07 00:37

user profile iconJayEff hat folgendes geschrieben:
Was spricht dagegen?
Die Tatsache, daß symmetrische Verfahren in der Regel mathematisch beweisbar sicher sind, während asymmetrische Verfahren nur vermutet sicher sind (und Beweise ihrer Unsicherheit denkbar sind).

JayEff hat folgendes geschrieben:
Nehmen wir an, den selben Text mit dem selben Passwort zu verschlüsseln, und bleiben bei einer polyalphabetischen, symetrischen verschlüsselung, bleibt die sicherheit etwa gleich, oder nicht?
(Ich geb zu, ich hab das "polyalphabetisch" vergessen, das schließt alles, was nicht wie vigenere funktioniert, aus, zumindest in meiner Vorstellung :oops: )
Das hat mit monoalphabetisch und polyalphabetisch nicht viel zu tun. Wichtig ist das Beiwerk, was also sonst noch mit den substituierten Buchstaben passiert. Ansonsten ist jede monoalphabetische Substitution anfällig für die Häufigkeitsanalyse, polyalphabetische Substitutionen nicht direkt. Übrigens basierte die Enigma auf einer polyalphabetischen Substitution.

user profile iconJayEff hat folgendes geschrieben:
Zitat:
Und Rijndael ist was für ein Verschlüsselungsverfahren?
Ich weiß nicht. Aber keine rein polyalphabetische, symetrische Verschlüsselung, oder?
Oder. Abgesehen davon, daß Rijndael monoalphabetisch ist.


JayEff - Mo 05.02.07 01:01

user profile icontommie-lie hat folgendes geschrieben:
Wichtig ist das Beiwerk, was also sonst noch mit den substituierten Buchstaben passiert.

Also hat das mit meiner Aussage nichts zu tun, da ich mich auf reine, polyalphabetische Substitution bezogen habe. Kein Beiwerk vor oder nach der Substitution. Keine Permutation, nichts.
user profile icontommie-lie hat folgendes geschrieben:
Ansonsten ist jede monoalphabetische Substitution anfällig für die Häufigkeitsanalyse, polyalphabetische Substitutionen nicht direkt.

Poly. aber auch. Ein längerer Text mit kürzerem Schlüssel kann über einen Umweg genauso per häufigkeitsanalyse geknackt werden, sobald man die Länge des Schlüssels kennt. Die kann man natürlich rausfinden.
user profile icontommie-lie hat folgendes geschrieben:
Übrigens basierte die Enigma auf einer polyalphabetischen Substitution.
Weis ich.. Von den Polen geknackt durch eine ihnen zugespielte Originalmaschine. Danach haben die Leute im Bletchley Park weiter gemacht, wo die Polen aufhören mussten. Ich bin kein Fachmann auf dem Gebiet, aber ich hab das ein, oder andere Buch gelesen :)

Aber genug OT :oops:


tommie-lie - Mo 05.02.07 01:11

user profile iconJayEff hat folgendes geschrieben:
Also hat das mit meiner Aussage nichts zu tun, da ich mich auf reine, polyalphabetische Substitution bezogen habe. Kein Beiwerk vor oder nach der Substitution. Keine Permutation, nichts.
Nein. Umgekehrt hat deine Aussage nichts mit sich selbst zu tun, weil die Information über das Substitutionsverfahren keinerlei Rückschlüsse auf den Rest des Verfahrens liefert. Die meisten verbreiteten symmetrischen Verfahren sind meines Wissens monoalphabetisch. Dennoch ist es mit einfacher Statistik nicht getan, sie zu entschlüsseln.

user profile iconJayEff hat folgendes geschrieben:
Poly. aber auch. Ein längerer Text mit kürzerem Schlüssel kann über einen Umweg genauso per häufigkeitsanalyse geknackt werden, sobald man die Länge des Schlüssels kennt. Die kann man natürlich rausfinden.
Ich wüsste nicht, warum man die zwingend einfach herausfinden kann. Sicherlich gibt es Beispiele, bei denen das geht, Vigenere ist eines. Nur weil weder ich noch du Beispiele von polyalphabetischen Chiffres kennen, die sicherer sind als Vigenere, heißt das nicht, daß sie nicht existieren. Weder du noch ich sind Experten in diesem Themengebiet.