Autor Beitrag
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Do 21.12.06 19:10 
ich hab mir folgenden Algorithmus zusammengebastelt für eine asymetrische (ich denke 128 Bit) verschlüsselung.
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:
procedure TForm1.verschlüsselnOnClick(sender: TObject);
var Key: array [1..16of Byte;
    Zeichenindex, Keyindex: integer;
    Zeichen: Byte;
begin
  Key[1]:=56;
  Key[2]:=156;
  Key[3]:=16;
  Key[4]:=51;
  Key[5]:=15;
  Key[6]:=26;
  Key[7]:=196;
  Key[8]:=155;
  Key[9]:=1;
  Key[10]:=12;
  Key[11]:=217;
  Key[12]:=200;
  Key[13]:=58;
  Key[14]:=86;
  Key[15]:=85;
  Key[16]:=93;
  Keyindex:=1;
  Memo2.clear;
  for Zeichenindex:=1 to length(Memo1.text) do begin
    if x>16 then
      x:=1;
    Zeichen:=ord(Memo1.text[Zeichenindex]) XOr Key[x];
    Memo2.text:=chr(b);
    x:=x+1;
  end;
end;


ich wollte mal fragen wie gut diese Verschlüsselungsmethode ist und wie man sie optimieren könnte.

und wie ich das anstellen könnte damit ich z.b.: auch audiodatein oder Bilddatein verschlüsseln könnte.

lg el


Moderiert von user profile iconChristian S.: Topic aus Sonstiges (Delphi) verschoben am Fr 22.12.2006 um 18:49

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
elundril Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Fr 22.12.06 16:37 
*push*

is es überhaupt eine 128 Bit verschlüsselung??

lg el

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Corpsman
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 228

KUbuntu 10.4
Lazarus
BeitragVerfasst: Fr 22.12.06 22:05 
Also ich glaube ja nicht das es eine 128 Bit verschlüsselung ist.

Du kannst jede Xbeliebiuge Datei verschlüsseln wenn du es mit einel Filestream machst.

Du lädst die File


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var f,f2:Tfilestream;
   b:Byte;
begin
..
assignfile(f,Dateiname);
Assignfile(f2,Dateiname2);
rewrite(f2);
reset(f);
while not eof(f) do begin
f.read(b,sizeof(b));
b := VerschlüsseleByte(b);
f2.write(b);
end;
closefile(f);
Closefile(f2);


Irgendwie so kannst es machen. Hab das aber mal so blind hingetippt.

_________________
--
Just Try it.
elundril Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Sa 23.12.06 11:14 
ok danke! werd mich mal mit TFilestreams beschäftigen.

was sagst du, is die verschlüsselung halbwegs gut??

lg el

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Corpsman
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 228

KUbuntu 10.4
Lazarus
BeitragVerfasst: Sa 23.12.06 13:56 
nu ich denke es kommt darauf an wie wichtig dir deine Datensicherheit ist.

Aber generell sollte dir klar sein das jedes Verschlüsselungsverfahren Knackbar ist. Die heutigen verfahren beruhen darauf das es sehr schwer ist die Primzahlzerlegung einer Zahl zu berechnen.

Aber selbst diese Verschlüsselungen sind in der Regel binnen 1 Tag geknackt.

Was aber genügt weil ja die meisten Informationen nach einer so langen Zeit nicht mehr geheim sind.

Wenn du nun hergehst und die Bilder deiner Freundin verschlüsselst, so sei dir gesagt das es sicher genug ist. Weil sich die Mühe sicherlich nicht lohnt. Ein entsprechendes Dekodierungsverfahren zu erstellen.

Ich persöhnlich finde aber eine selbst zusammengeschusterte Verschlüsselung grunds#ätzlich besser als eine "Offiziele" da bei deinem Verfahren erst mal jemand dahinter kommen mus wie es funktioniert um sich dann Gedanken zu machen wie er es Knackt.

Nur solltest du dann nicht hergehen und dein Verfahren in Irgendwelchen Foren Posten ;) .

Ich habe auch schon diverse Verschlüsselungen entwickelt. Kann sie aber aus eben diesem Grund nicht veröffentlichen.

Hoffe das Hilft dir weiter. Ansonsten geh her und schau dir mal das RSA Verfahren an. Das ist das wol beliebteste zur Zeit.

Ein passendes Sample dafür gibts Hier

_________________
--
Just Try it.
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1654
Erhaltene Danke: 244

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Sa 23.12.06 14:10 
Hallo,

XOR mit einem konstanten Schlüssel, alle 128 Bit ständig wiederangewendet, ist nicht so gut.
www.cipherbox.de/kryptologie-einf.html
de.wikipedia.org/wik...-Blum-Shub-Generator
www.delphipraxis.net...ic90897,0,asc,0.html

Gruss Horst
DarkLord05
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 449

WinXP Pro SP2
Opera; Delphi 3 Pro; Delphi 2005, Turbo Delphi, dev-c++, Eclipse, MS Visual Studio .NET 2003, MS Visual C++
BeitragVerfasst: Sa 23.12.06 14:22 
user profile iconCorpsman hat folgendes geschrieben:
Ich persöhnlich finde aber eine selbst zusammengeschusterte Verschlüsselung grunds#ätzlich besser als eine "Offiziele" da bei deinem Verfahren erst mal jemand dahinter kommen mus wie es funktioniert um sich dann Gedanken zu machen wie er es Knackt.

Aber eine Verschlüsselung sollte eig durch die Verschlüsselung an sich sicher sein, und nicht weil geheim ist um was es sich für eine Verschlüsselung handelt ;)

_________________
QBasic | Delphi | c++ | PHP | C# .NET | Java
elundril Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Sa 23.12.06 14:39 
user profile iconCorpsman hat folgendes geschrieben:
Ich persöhnlich finde aber eine selbst zusammengeschusterte Verschlüsselung grunds#ätzlich besser als eine "Offiziele" da bei deinem Verfahren erst mal jemand dahinter kommen mus wie es funktioniert um sich dann Gedanken zu machen wie er es Knackt.

Nur solltest du dann nicht hergehen und dein Verfahren in Irgendwelchen Foren Posten ;) .


tja die Xor verschlüsselungsmethode ist leider schon ziemlich bekannt.

ich hab jetzt nur als beispiel den Schlüssel in einem Array gespeichert und da hab ich irgendwelche zahlen genommen. In meinem Programm hab ich mir eh schon was überlegt um den Schlüssel abzulegen.

lg el

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Sa 23.12.06 14:40 
Die Annahme, daß ein Verschlüsselungsalgorithmus sicherer ist, wenn er geheim ist, ist ein Trugschluß. Ich würde offene, gut gesteste Verfahre wie z.B. Rijndael (AES) verwenden

_________________
Markus Kinzler.
elundril Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mi 27.12.06 13:54 
user profile iconCorpsman hat folgendes geschrieben:

Du kannst jede Xbeliebiuge Datei verschlüsseln wenn du es mit einel Filestream machst.

Du lädst die File


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
var f,f2:Tfilestream;
   b:Byte;
begin
..
assignfile(f,Dateiname);
Assignfile(f2,Dateiname2);
rewrite(f2);
reset(f);
while not eof(f) do begin
f.read(b,sizeof(b));
b := VerschlüsseleByte(b);
f2.write(b);
end;
closefile(f);
Closefile(f2);



Das Funktioniert irgendwie nicht so richtig! ich hab mich auch ein bischen damit herumgespielt aber ich glaub ich hab mich dadurch von der lösung nur noch weiter entfernt.

lg el

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 27.12.06 14:00 
Moin!

Ähm, wie wäre es mit Suche in: Delphi-Forum, Delphi-Library TFILESTREAM, Beispiele gibt´s da mal genug. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
elundril Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mi 27.12.06 14:18 
*lol* sry wenn ich das so sage aber ich hab keine zeit mir 14 Seiten durchzusehen. (muss noch Spezialgebiet schreiben)
Wäre es so umständlich den Code zu posten und mir damit einen gefallen zu tun?

lg el

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 27.12.06 14:28 
Moin!

user profile iconelundril hat folgendes geschrieben:
*lol* sry wenn ich das so sage aber ich hab keine zeit mir 14 Seiten durchzusehen.

Oh, das ist aber schade, so wird dir die Benutzung von TFileStream wohl leider unklar bleiben, ist auch wirklich schwer, seh´ ich schon ein, auch auf TFileStream eintippen und F1 drücken kommt man ja nicht von selber... :roll: ;)

Sag mal, sind wir deine Hausaufgaben-Vorbereiter-Sklaven, oder was? :| Ich unterstütze Faulheit jedenfalls nicht. :?

cu
Narses

//EDIT: Naja, weil ja Weihnachten ist, will ich mal nicht so sein: Klick mich, das kann ich dir aber schon zumuten zu lesen, ja? :mrgreen:

_________________
There are 10 types of people - those who understand binary and those who don´t.
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Mi 27.12.06 14:31 
Davon abgesehen würde es ja sogar reichen, die 1. Seite der Suchergebnisse angzuucken, da man zufällig auf den Thread "Das Multilevel-Rätsel. Die Auflösung" stößt, wo ich wiederum auf Seite 1, einen TFileStream benutze:
www.delphi-forum.de/...ighlight=tfilestream

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mi 27.12.06 14:32 
Hallo!

Hättest du auch nur einen Blick in die 14 Seiten hineingeworfen, du hättest sofort gewusst, was du falsch gemacht hast. Keine Scheu vor der Hilfe oder anderen Schriftstücken haben!

Hier der überarbeitete Code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
var f,f2:Tfilestream;  
   b:Byte;  
begin  
  f:=TFileStream.Create('C:\input.dat',fmOpenRead);
  try
    f2:=TFileStream.Create('C:\output.dat',fmCreate);
    try
      while f.Position<f.Size do 
      begin  
        f.readbuffer(b,SizeOf(b));  
        b := VerschlüsseleByte(b);  
        f2.writebuffer(b,SizeOf(b));  
      end;
    finally
      f.Free;
    end
  finally
     f2.Free;
  end
end;


Cu,
Udontknow


Zuletzt bearbeitet von Udontknow am Mi 27.12.06 14:40, insgesamt 2-mal bearbeitet
elundril Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mi 27.12.06 14:35 
user profile iconNarses hat folgendes geschrieben:
Moin!
Oh, das ist aber schade, so wird dir die Benutzung von TFileStream wohl leider unklar bleiben, ist auch wirklich schwer, seh´ ich schon ein, auch auf TFileStream eintippen und F1 drücken kommt man ja nicht von selber... :roll: ;)

Wie man vl aus dem satz "ich hab mich auch ein bischen damit herumgespielt aber ich glaub ich hab mich dadurch von der lösung nur noch weiter entfernt." erkennen kann hab ich sehr wohl F1 gedrückt aber irgendwie ist mein delphi englisch und da versteh ich nicht viel.

user profile iconNarses hat folgendes geschrieben:

Sag mal, sind wir deine Hausaufgaben-Vorbereiter-Sklaven, oder was? :| Ich unterstütze Faulheit jedenfalls nicht. :?

cu
Narses


was soll dieser Satz?? ich frag ja nur um ein Code schnipsel das man mir erklären kann. was hat das mit hausaufgaben zu tun??? und was hat nicht verstehen mit faulheit zu tun?

lg el

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
elundril Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mi 27.12.06 14:37 
@Udontknow: ok danke aber bei mir hat er sich immer beim eof aufgehängt.

lg el

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mi 27.12.06 14:40 
Ahja, da hatte ich noch was übersehen. Habe es abgeändert.

Cu,
Udontknow
elundril Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Mi 27.12.06 14:47 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
var f,f2:Tfilestream;   
   b:Byte;   
begin   
  f:=TFileStream.Create('C:\input.dat',fmOpenRead);    //<-öffnet das file im lesemodus
  try 
    f2:=TFileStream.Create('C:\output.dat',fmCreate);    //<-erstellt ein file oder öffnet das existierende
    try 
      while f.Position<f.Size do     //<-wenn die "cursor" kleiner als die gesamtgröße ist mache...
      begin   
        f.readbuffer(b,SizeOf(b));    //versteh ich nicht was macht das und welche variabeln muss man mitgeben?
        b := VerschlüsseleByte(b);     //wandelt das ausgelesene byte in ein codiertes um
        f2.writebuffer(b,SizeOf(b));    //versteh ich nicht was macht das und welche variabeln muss man mitgeben? 
      end
    finally 
      f.Free;     //speicher freigeben
    end 
  finally 
     f2.Free;     //speicher freigeben
  end 
end;



ok so halbwegs hab ichs verstanden. aber zwei zeilen sind mir unklar!

und braucht man den Filestream gar nicht speichern??


lg el

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 27.12.06 14:48 
Moin!

user profile iconelundril hat folgendes geschrieben:
aber irgendwie ist mein delphi englisch und da versteh ich nicht viel.

Aha, ist das unser Problem? ;)

user profile iconelundril hat folgendes geschrieben:
user profile iconNarses hat folgendes geschrieben:
Sag mal, sind wir deine Hausaufgaben-Vorbereiter-Sklaven, oder was? :| Ich unterstütze Faulheit jedenfalls nicht. :?

was soll dieser Satz?? ich frag ja nur um ein Code schnipsel das man mir erklären kann. was hat das mit hausaufgaben zu tun???

OK, sorry, "Hausaufgaben" waren unterstellt. 8)

user profile iconelundril hat folgendes geschrieben:
und was hat nicht verstehen mit faulheit zu tun?

user profile iconelundril hat folgendes geschrieben:
*lol* sry wenn ich das so sage aber ich hab keine zeit mir 14 Seiten durchzusehen.

Da steht nicht, dass du die Beispiele hier (und die sind in deutscher Sprache eingebettet! :mrgreen:) nicht verstehst, sondern dass du sie nicht lesen willst - warum auch immer sollte wohl ebenfalls nicht unser Problem sein, hm? ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.