Autor Beitrag
ma$ter
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 04.02.07 16:04 
Hier ist der Quelltext:

1:
ausblenden volle Höhe 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75

WinXP Pro
Delphi 7 Enterprise ;-)
BeitragVerfasst: 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???)

_________________
Willst du Körper an Körper pressen? Atem spüren? Gerüche wahrnehmen? Verschiedene Stellungen probieren? Rein und raus? Von hinten nach vorne? Ja? Dann nimm den Bus!


Zuletzt bearbeitet von moddin am So 04.02.07 16:17, insgesamt 1-mal bearbeitet
ma$ter
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 04.02.07 16:12 
Ich wuerde den trotzdem wissen, wie ich DIESEN Quelltext fehlerfrei schreiben kann...
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: 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:

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
ma$ter
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 04.02.07 16:53 
Okay, anders: Kann mir bitte jemand diesen Quelltext korrigieren?

1:
ausblenden volle Höhe 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: So 04.02.07 17:04 
user profile iconma$ter hat folgendes geschrieben:
ausblenden 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:
ausblenden 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 Text lesen.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
ma$ter
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 04.02.07 17:26 
keypos:=1 => Keypos soll die Position des Schluesselwortes angeben, welche an dieser Stelle auf 1 gesetzt wird!
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 04.02.07 18:38 
user profile iconma$ter hat folgendes geschrieben:
Okay, anders: Kann mir bitte jemand diesen Quelltext korrigieren?

1:
ausblenden volle Höhe 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 593

WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
BeitragVerfasst: So 04.02.07 19:38 
also ohne dass ich jetzt den algo überprüft habe, so wird die Funktion richtig aufgerufen :

ausblenden volle Höhe 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.
ma$ter
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 04.02.07 21:30 
Danke an alle, die mit geholfen haben, mein problem zu beseitigen, ich habe jetzt den vollstaendigen Quelltext!!!
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: 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?

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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: csrc.nist.gov/Crypto...ijndael-ammended.pdf
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: 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.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: 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.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert