![]() |
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? |
Zitat:
![]() |
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.
|
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). |
Danke, werde mal nachschauen.
|
One Time Pad (unter 3 Bed. unknackbar...)
naja, um OTP (was relativ leicht umsetzbar ist) zu proggen kann ich euch eine Seite empfehlen:
![]() ps: schaut einfach bei OTP vorbei, da wird meiner Meinung nach, genau die Funktionabfolge beschrieben... cu sagt MatrixStormprogrammierer |
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!
|
Zitat:
Was sind echte Zufälle? Wie programmiert man die? Wo ist der Unterschied zu einem "Delphi-Zufall"? MfG Florian :hi: |
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... |
[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! |
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... |
Re: das ist schon wahr...
Zitat:
Zitat:
Zitat:
Zitat:
|
Re: OTP-Programm
Öhm, ich wollt mal fragen, was das hier mit OpenSource zu tun hat? :roll:
|
Re: OTP-Programm
also hat wer von euch da jetzt eine implementierung auf lager?
könnte die nämlich auch brauchen... |
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 ;-) |
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: |
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 ;-) |
Re: OTP-Programm
Zitat:
naja, dann: :coder: :coder: :coder: |
Re: OTP-Programm
Alsdann, auf zum OTP-Contest!
:coder: |
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 |
Re: OTP-Programm
Zitat:
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 |
Re: OTP-Programm
ok danke!
dann suche ich mir vielleicht doch einen anderen algo aus! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz