Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   OTP-Programm (https://www.delphipraxis.net/3774-otp-programm.html)

LaRzarus 29. Mär 2003 12:34


OTP-Programm
 
Ich brauche ganz dringend eure Hilfe!
Ich suche ein Delphi Programm mit Source, dass nach dem One Time Pad - Verfahren ver- und entschlüsselt. Ich habe schon ewig gegoogelt und sonstwie gesucht aber ohne Erfolg! Jedenfalls bin ich dadurch irgendwie auf diese Seite gekommen, habe hier aber auch nichts gefunden.
Kann mir vielleicht jemand nen Link geben zu einem derartigen Programm oder hat sogar jemand von euch mal sowas programmiert?

Darty 29. Mär 2003 16:32

Zitat:

Vernam-Codierung / -Verschlüsselung
Der Vernam-Code (one-time pad) ist die einzige Verschlüsselungsart, bei der eine 100% abhörsichere Datenübertragung möglich ist. Die Vernam-Codierung ist sehr einfach und durchsichtig: Je ein Datenbit wird über die XOR-Funktion (exklusives logisches ODER) mit einem Zufallsbit verknüpft. Dabei wird mit genau 50%iger Wahrscheinlichkeit das Datenbit "umgeklappt" (aus 1 wird 0, aus 0 wird 1). Es werden also genauso viele Zufallsbits wie Datenbits benötigt. Bei richtiger Anwendung kann ein unbefugter Empfänger die verschlüsselte Datei auch mit beliebig großem rechnerischem Aufwand nicht decodieren. Dies ist der entscheidende Unterschied zu Verfahren mit einem limitierten Schlüssel (z.B. PGP). Absolute Sicherheit ist genau dann gewährleistet, wenn echte (physikalisch generierte) Zufallsbits verwendet werden und nur der Absender und der befugte Empfänger die Zufallsbitdatei besitzen. Absender und Empfänger können die Zufallsbitdateien beispielsweise bei einem persönlichen Treffen via CD austauschen. Eine CD (650 MB) reicht zur Verschlüsselung von etwa 100.000 dicht beschriebenen DIA4-Seiten. (Literatur: Elektronik 7/1998, S. 48).
Vielleicht findest DU da etwas für Dich: http://www.speakfreely.org/

LaRzarus 29. Mär 2003 19:11

Dieses SpeakFreely ist wohl ein Programm zum Verschlüsseln von Sprache über das Netz. Ich such ein Programm, dass eingegebenen Text mithilfe eines ebenfalls einzugebenden Schlüssels nach dem OTP-Verfahren verschlüsselt. Und eben mit Sourcecode.

Daniel 29. Mär 2003 19:27

Hallo Larzarus,

wenn Du sowohl den Schlüssel, als auch die zu verschlüsselnden Daten hast, dann ist's doch recht einfach. Du musst ja nur noch jeweils die Bytes verXORen.

Dazu hatten wir hier im Forum schon einiges an Beiträge, die Foren-Suche dürfte Dir da weiterhelfen.

Bleihct noch, die fertigen daten in eine Datei zu schreiben. Dazu brauchst Dunur den Datei-Dialog und der Rest geht vermutlich per Blockwrite / Blockread. (Zu diesen beiden Befehlen gibt es ein schönes Beispiel in der Delphi-Hilfe).

LaRzarus 29. Mär 2003 21:34

Danke, werde mal nachschauen.

MatrixStormProgrammierer 30. Mai 2003 11:12

One Time Pad (unter 3 Bed. unknackbar...)
 
naja, um OTP (was relativ leicht umsetzbar ist) zu proggen kann ich euch eine Seite empfehlen:

http://cryptolounge.de.vu/

ps: schaut einfach bei OTP vorbei, da wird meiner Meinung nach, genau die Funktionabfolge beschrieben...

cu sagt MatrixStormprogrammierer

Motzi 30. Mai 2003 11:56

Wichtig ist aber vor allem, dass ein echter Zufall verwendet wird! Pseudo-Zufalls-Generatoren die Randomize/Random von Delphi können innerhalb kürzester Zeit geknackt werden!

flomei 30. Mai 2003 12:42

Zitat:

Zitat von Motzi
Wichtig ist aber vor allem, dass ein echter Zufall verwendet wird!

:| [OT] Wir sind in der Matrix! Gibt es Zufälle? [/OT]
Was sind echte Zufälle? Wie programmiert man die? Wo ist der Unterschied zu einem "Delphi-Zufall"?

MfG Florian :hi:

MatrixStormProgrammierer 30. Mai 2003 12:57

Was sind Zufälle...
 
Zufall bschreibt eine Zahlenfolge komplexer Zahlen, deren Auftrittswahrscheinlichkeit in ihrer Kathegorie größer ist, als bei den übrigen *g*. Für Kryptografie interressant ist auch die Tatsache, das keiner die Zahlenfolge kennen sollte *g*

Naja...
Ich glaube ich habe es heute schonmal irgendwo hingeschrieben, aber echten Zufall könnt ziemlich gut über die Zeitbegrente Auswertung der Mauszeigerposition bestimmen...
(wenn ihr nähere Infos dazu braucht, dann informiert mich *g* )

cu, der MatrixStormProgrammierer...

Motzi 30. Mai 2003 12:59

[quote="flomeiWas sind echte Zufälle? Wie programmiert man die? Wo ist der Unterschied zu einem "Delphi-Zufall"?[/quote]
Echte Zufälle gibt es nur in der Realität (wobei diese Zufälle auch keine Zufälle sind sondern auch berechenbar, allerdings von so hoher Komplexität und von so vielen Faktoren abhängig, dass wir sie nicht berechnen können). Pseudo-Zufalls-Generatoren erzeugen auf Basis einer mathematischen Formel Zufallszahlen, wobei die Zufallsfolge von einem bestimmten Wert abhängt. In Delphi ist das die Variable RandSeed (eine 32-Bit Integer Variable). Ausgehend von diesem Wert werden nun Zufallszahlen berechnet. D.h. allerdings: gleiche Initialisation von RandSeed -> gleiche Zufallsfolge! Und da RandSeed nur 32Bit hat gibt es daher auch nur 2^32 verschiede Zufallsfolgen!

MatrixStormProgrammierer 30. Mai 2003 13:19

das ist schon wahr...
 
Das ist schon richtig, Tatsache ist jedoch, das alles was komplex ist, zufällig sein kann - solange wie man nicht die Zusammenhänge kennt.
Ich empfehle allerdings auch nicht den eingebauten Zufallszahlengenerator, da er eine !!bekannte!! Zahlenfolge berechnet.
Die Möglichkeit über Mauszeigerpositionen stellt aber einen guten Ersatz da, da sie von vielen Faktoren der Realität abhängt und wesentlich mehr als 32 Bit-Unterschiede ermöglicht...

...aber ich glaube wir weichen hier ein bisschen vom Thema ab ?? :-)

cu MatrixStormProgrammierer...

Motzi 30. Mai 2003 14:30

Re: das ist schon wahr...
 
Zitat:

Zitat von MatrixStormProgrammierer
Das ist schon richtig, Tatsache ist jedoch, das alles was komplex ist, zufällig sein kann - solange wie man nicht die Zusammenhänge kennt.

Das ist schon richtig, allerdings ist eine genaue Kenntniss eines Algorithmus Ausgangsbasis einer Kryptanalyse!

Zitat:

Ich empfehle allerdings auch nicht den eingebauten Zufallszahlengenerator, da er eine !!bekannte!! Zahlenfolge berechnet.
Allerdings! Ich hab bereits ein Programm geschrieben um OTP-Algos die Delphi-Random verwenden innerhalb kürzester Zeit knacken kann..!

Zitat:

Die Möglichkeit über Mauszeigerpositionen stellt aber einen guten Ersatz da, da sie von vielen Faktoren der Realität abhängt und wesentlich mehr als 32 Bit-Unterschiede ermöglicht...
Ja, vor allem liefert die Methode mit der Maus auch ohne viel Aufwand (einfach ein bisschen mit der Maus herumfahren) relativ viele Daten (im Gegensatz zu andren Methoden mit der Tastatur).

Zitat:

...aber ich glaube wir weichen hier ein bisschen vom Thema ab ?? :-)
Naja, es gehört doch irgendwie auch dazu..! :)

Ultimator 24. Mai 2004 15:40

Re: OTP-Programm
 
Öhm, ich wollt mal fragen, was das hier mit OpenSource zu tun hat? :roll:

zahor 6. Sep 2007 16:17

Re: OTP-Programm
 
also hat wer von euch da jetzt eine implementierung auf lager?
könnte die nämlich auch brauchen...

DGL-luke 6. Sep 2007 16:27

Re: OTP-Programm
 
NegaH aka Hagen hat in seinem DEC glaube ich einen brauchbaren Pseudo-RNG gebaut. Und negaH wird euch sagen, dass ein PseudoRNG immer besser ist als ein "echter" RNG. Denn sein Sicherheitsgrad ist beweisbar hoch, wohingegen niemand sagen kann, "wie zufällig" eine echte Zufallsquelle (kosmisches Rauschen, Diodenspannungsabfall und sonstiges) ist. Außerdem könnte "Gott", sprich jede übermenschliche Entität, jederzeit unser OTP knacken, wenn er die Zeit manipulieren und so rausfinden kann, wann wir die Zufallsdaten abgegriffen haben... Ja, negaH hat das sehr viel konziser ausgedrückt damals.

Ich könnt dir ohne weiteres ein OTP proggen... was zahlst du mir denn dafür? :twisted:

Vor allem: Wofür brauchst dus? Wir erledigen hier nicht gerne Hausafgaben für andere ;-)

zahor 6. Sep 2007 16:36

Re: OTP-Programm
 
danke für die schnelle antwort!
ich wollte ein verschlüsselungsproggi für nicht all zu große machen, das WIRKLICH unknackbar ist.
Da in Wikipedia steht, OTP sei "die einzige kryptographische Methode, welche informationstheoretisch sicher ist und nachweislich nicht gebrochen werden kann – vorausgesetzt, sie wird bestimmungsgemäß verwendet", dachte ich, das wär was. Nur muss der schlüssel ja mindestens so lang sein wie die zu verschlüsselnden Daten, und daher sind große Dateien dann wohl eher aufwendig. Aber wer will schon seine Filmesammlung unknackbar verschlüsseln? Für kleine Dateien, wie Word-Dokumente oder PDFs sollte das ja machbar sein.
Wenn es kein lizenzfreies gibt, dann muss ich mich halt selber dran versuchen.
@DGL-luke: Ich könnte's dir dann ja verkaufen :twisted: :wink:

DGL-luke 6. Sep 2007 16:41

Re: OTP-Programm
 
Ich will ja das Geld dafür...

die Nachteile von OTP kennst du ja:

- großer Schlüssel
- Schlüssel muss über unkompromittierte Leitung übertragen werden, bzw. darf nicht an den Feind gelangen
- Schlüssel sollte nur einmal verwendet werden (sagt der Name ja...)
- Differenzattacke sehr einfach! Erbeuteten Geheimtext und erbeuteten Klartext verXORen, schon ist der Schlüssel da (deswegen ja auch Schlüssel nur einmal verwendbar).

Na dann mal viel Spaß damit ;-)

zahor 6. Sep 2007 16:55

Re: OTP-Programm
 
Zitat:

Zitat von DGL-luke
Ich will ja das Geld dafür...

Das ist mir auch klar :mrgreen:
naja, dann: :coder: :coder: :coder:

DGL-luke 6. Sep 2007 16:58

Re: OTP-Programm
 
Alsdann, auf zum OTP-Contest!

:coder:

negaH 6. Sep 2007 17:07

Re: OTP-Programm
 
Der OTP ist der am schwierigsten zu programmierende Verschlüsselungs-algorithmus.

Also theoretisch ist er der einzigste Algo. der mathematisch beweisbar sicher, also unknackbar ist. Tja, theoretisch, mathematisch, infinimal betrachtet.

1. Problem: wie erzeugen wir echten und beweisbar sicheren Zufall wenn wir dazu physikalische Methoden benutzen die wir nicht mathematisch beweisbar als wirklich zufällig einstufen können ? Benutzen wir solchen Zufall wissen wir also rein garnichts darüber wie wirklich sicher er ist.

2. Problem: gute Idee diesen Schlüssel auf CD zu speichern, dumm nur das dadurch die 100% Sicherheit des OTPs vernichtet wird. Denn, eine CD ROM, ja das Brennen der CD ROM, das Weitergeben der CD ROM ja sogar das Eintippen der Daten in Word die dann per OTP verschlüsselt werden sollen, ist niemals so mathematisch sicher wie der OTP es ist. Das schwächste Glied der gesammten Kette bestimt aber die effektive Sicherheit der geschützten Daten. Defakto gibt es garkeine math. beweisbare Methode den OTP genauso sicher anzuwenden wie er selber sicher ist.

Damit ist der OTP theoretisch das Maximal sicherste, aber praktisch auch nicht von Nutzen da die Praxis dann das schwächste Glied darstellt und somit die Benutzung des OTPs hinfällig macht.

Benutze ein normales Standardverfahren wie AES, das ist praktisch wie auch theoretisch ausreichend sicher.

Gruß Hagen

negaH 6. Sep 2007 17:13

Re: OTP-Programm
 
Zitat:

"die einzige kryptographische Methode, welche informationstheoretisch sicher ist und nachweislich nicht gebrochen werden kann – vorausgesetzt, sie wird bestimmungsgemäß verwendet",
Jaja Wiki. Das entscheidende ist "vorausgesetzt sie wird bestimmunsgsgemäß verwendet". Leider ist eben dieser Punkt innerhalb des math. Beweises durch die Mathematiker infinimal betrachtet garnicht berücksichtigt. Es wurde eben nicht bewiesen ob man den OTP überhaupt in der Praxis sicher verwenden kann so das die berechnete Unknackbarkeit noch gewährleistet ist.

Und wenn man bischen nachdenkt dann kann sich jeder Ausrechnen das man niemals den OTP so anwenden kann das es keine anderen Angriffsmöglichkeiten mehr gäbe. Zb. Gehirnwäsche, Abhören, Spionage usw. usw. Der mathem. Beweis blendet die Realität vollkommen aus, der Schutz von Daten darf das aber eben nicht !!

OTP ist pure Theorie und eher ein mathematischer Maßstab oder Konstukrionsidee um andere praxistaugliche Verfahren bewerten oder designen zu können.

Gruß Hagen

zahor 6. Sep 2007 17:15

Re: OTP-Programm
 
ok danke!
dann suche ich mir vielleicht doch einen anderen algo aus!


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:49 Uhr.

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