UserLibrary: crypt_lib - CryptMemory()

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Mischa
Beiträge: 152
Registriert: 29.08.2004 06:52
Wohnort: Hellhorst

UserLibrary: crypt_lib - CryptMemory()

Beitrag von Mischa »

Hi!

Ich habe mich gestern erstmalig mit Verschlüsselung beschäftigt.
Herausgekommen ist eine Mini-UserLib mit lediglich einer Funktion:

CryptMemory()

Hab's mal getestet mit 'CrypTool'. Nach den Ergebnissen scheint
mein Verfahren einigermaßen sicher zu sein. Unknackbar ist ja nix.

Möglicherweise irre ich mich aber auch, also bitte mal versuchen
eine verschlüsselte Datei zu cracken. :wink:
Außerdem weiß ich auch nicht genau ob's schnell genug ist.
(Habe keine Referenzwerte zur Hand)

Hier der Download-Link (13 kb):
http://www.thinkrelative.de/cryptmemory.zip

Enthalten ist die Library, Funktionsbeschreibung und ein
'visuelles' (Image) Beispiel.

Bitte mal testen und gnädig Feedback geben.
(Bin ja ein Grünschnabel auf diesem Gebiet :oops:)


Gruß,
Mischa
Zuletzt geändert von Mischa am 02.02.2005 22:29, insgesamt 1-mal geändert.
Benutzeravatar
dige
Beiträge: 1246
Registriert: 08.09.2004 08:53

Beitrag von dige »

Klasse! :allright:

Wie sicher die Verschlüsselung ist konnte ich noch nicht testen,
aber sauschnell ist das Teil jedenfalls!
Habs mal gegen die Crypt.dll von mrk-soft getestet, die ich bisher
wegen der hohen geschwindigkeit gern verwendet habe...
Aber Deine Lib ist 10x schneller :D

cya dige
Benutzeravatar
Mischa
Beiträge: 152
Registriert: 29.08.2004 06:52
Wohnort: Hellhorst

Beitrag von Mischa »

Eines ist klar:
Je größer der Schlüssel, je höher die Sicherheit.

Hab' mir mal die Dll von MRK angeguckt.
Ist tatsächlich nicht sonderlich schnell.

Braucht hier für das 800*600 pixel große
Testbild 300 msec (Pentium 2.0 Ghz)
In der Beschreibung war die Rede von 10 GB weniger
als eine msec, sollte vermutlich pro Sekunde heißen.

Die Verschlüsselung ist scheinbar XOR, und weist sowohl
in der normalen und in der 'hush' Methode klare Regelmäßigkeiten
auf. (Das Testbild ist selbst bei einem 32 byte Schlüssel noch
zu erkennen.

Ich hab' mir auch Pauls RC4 Lib angeschaut. Diese scheint sehr viel
effizienter zu sein, ist allerding so dermaßen langsam, daß man
problemlos zwischenzeitlich eine rauchen gehen kann. :wink:
Auf meinem 'kleinen' Rechner (Duron 1000) hat sie gemütliche
20 Sekunden an dem Bild gerechnet.
Hochgerechnet würde sie da mal eben ca 2:30 min für 10 MB
brauchen.

Aber ich will hier keinen der anderen schlecht machen.
Verschlüsseln tun sie alle irgendwie...

Hat denn sonst noch keiner getestet?
Kennt sich denn keiner aus in der Thematik?
Wo, oder von wem könnte man sowas überprüfen lassen?
Na ja egal. Wills ja nur nicht irgedwo einbauen und behaupten,
es wäre sicher, wenns nicht wirklich sicher ist.
/:->

Gruß,
Mischa
Benutzeravatar
dige
Beiträge: 1246
Registriert: 08.09.2004 08:53

Beitrag von dige »

Das mit MRK's Dll und dem Bild ist mir auch aufgefallen,
der Hammer aber ist, das der Key im Klartext mehrfach im
Verschlüsselten Binary drin steht!

Nach welchem Verfahren verschlüsselst Du denn? Ich würde die
Lib sehr gerne für meine Programme einsetzen :D

cya dige
Benutzeravatar
Mischa
Beiträge: 152
Registriert: 29.08.2004 06:52
Wohnort: Hellhorst

Beitrag von Mischa »

Hi!

Hab's nochmal überarbeitet, nachdem ich feststellen mußte, daß
CrypTool bei einer Schlüssellänge von 12 byte etwa 5-10% einer
verschlüsselten Textdatei entschlüsseln konnte. :twisted:
Bei größeren Schlüsseln >20 passierte das nicht.
Fand ich trotzdem nicht witzig und habe daraufhin auch einen
Denkfehler entdeckt und beseitigt. Jetzt besteht die Lib beim
CrypTool auch bei 12 byte Schlüsseln (also minimum) alle Tests.

Gleicher Download-Link
dige hat geschrieben: Nach welchem Verfahren verschlüsselst Du denn? Ich würde die
Lib sehr gerne für meine Programme einsetzen :D )

Gruß,
Mischa


Das ist mein eigenes Verfahren. Daher interessie ich mich ja
insbesondere für die Sicherheit. :wink: :wink:

Das Grundprinzip ist einfach zu beschreiben:
Ein mit jedem Durchlauf von sich selbst abhängig mutierender Schlüssel mit nicht linear variierender Schlüssellänge.
Oder so ähnlich.

Evtl. gibt es sowas ja auch schon. (Bestimmt)
Aber ich kenne mich wie bereits erwähnt nicht aus.
(Und scheinbar auch kein anderer hier :(
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag von Andre »

@Mischa: hast Du damit Deine Arbeit an der Lib vorerst mal abgeschlossen ? Würde sie in diesem Fall nämlich auch gern mit in die UserLibs auf PureArea.net aufnehmen. :allright:
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
Mischa
Beiträge: 152
Registriert: 29.08.2004 06:52
Wohnort: Hellhorst

Beitrag von Mischa »

Is erst mal fertig...

War nur ein kleines 'Zwischendurch' :wink:

Gruß,
Mischa
Benutzeravatar
dige
Beiträge: 1246
Registriert: 08.09.2004 08:53

Beitrag von dige »

Kannst Du Dein Verfahren auch zur Text-Verschlüsselung anwenden?
Ansonsten müsste man noch einen Wrapper programmieren, der vor bzw.
nach der Verschlüsselung die Binär-Daten konvertiert...

cya dige
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8820
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Mischa hat geschrieben:Das Grundprinzip ist einfach zu beschreiben:
Ein mit jedem Durchlauf von sich selbst abhängig mutierender Schlüssel mit nicht linear variierender Schlüssellänge.
Oder so ähnlich.
Klingt eben nach einer assynchronen Chiffrierungsmethode mit einem mutierenden Schlüssel.
Aber was meinst du mit "mit jedem Durchlauf"? Wie oft durchläuft den dein Algorithmus den Speicherbereich?

Also ich schätze mal du hast einen Key gegeben und lässt diesen zunächst mal mutieren. Dadurch ändert dieser auch seine Länge, wird also länger und kürzer oder auch nur eins von beidem. Mit diesem mutierenden Key verschlüsselst du dann den Speicherbereich mit XOR.
Liege ich da richtig?

Wie es genau funktioniert kann ich natürlich nicht sagen, da ich auch nicht weiß, ob du vielleicht noch einen festen Key eingebaut hast, der auch noch dazu geXORt wird oder sowas.
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Nur mal so zur Info:

Ein Crypto-Algorithmus ist nur dann brauchbar, wenn er auch nach Offenlegung des Algorithmus noch Angriffen standhält (zB BlowFish, TwoFish, CAST256, Skipjack, RSA etc...).

Soll aber deine Leistung nicht schmälern. Nur - ich würde einen Crypto nicht verwenden wenn ich Ihn nicht im Sourcecode besitzen würde (oder zumindest ein Source der das selbe Ergebnis liefert).

[Edit]: Ach ja - tolle HP zu diesem Thema: http://www.cipherbox.de/

Grüsse,

Volker
Antworten