Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Hash-Funktion (https://www.delphipraxis.net/125935-hash-funktion.html)

HugoHase 15. Dez 2008 09:14


Hash-Funktion
 
Liste der Anhänge anzeigen (Anzahl: 2)
Einen schönen guten Tag an alle.

Ich hoffe Ihr wisst alle was eine Hash-Funktion ist. Für alle die es nicht wissen gibt es diesen Link.
Genau dieses Thema behandel ich in meiner BLL(Facharbeit fürs Abitur).
Und da ich wie ich meine ein weinig kreativ war, ist bei der ganzen Sache auch etwas entstanden:

FP32 - das ist meine eigene Hash-Funktion.
Sie gibt einen 32 Zeichen langen String aus und benutzt folgendes 91 Zeichen langes Ausgabe-Alphabet:
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz0123456789!"§$%&/()=?_-[]{}+*~#<>:,.|;\"
Im Anhang an dieses Thema werdet ihr die Datei uFP32.dcu finden welche diese Funktion beihaltet.
Quellcode kann ich euch aus sicherheitstechnischen Gründen noch nicht geben, verspreche aber nach der Abgabe
meiner Facharbeit diesen zu posten.
Was ich von euch jetzt möchte, ist das ihr versucht Kollisionen zu finden und mir diese bitte zu melden.
Ansosnten denke ich, dass die Hash-Funktion durchaus geeignet ist um sie in ein kleines privates Projekt
einzubinden, um eventuell eine Passwort abfrage ohne Klartext zu tätigen.

In diesem Sinne viel Spaß damit

Gruß HugoHase

Xong 15. Dez 2008 10:27

Re: Hash-Funktion
 
Zitat:

Zitat von HugoHase
FP32 - das ist meine eigene Hash-Funktion.
Sie gibt einen 32 Zeichen langen String aus und benutzt folgendes 91 Zeichen langes Ausgabe-Alphabet:
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz0123456789!"§$%&/()=?_-[]{}+*~#<>:,.|;\"

Eine Hash-Funktion gibt keine Zeichen aus, sondern eine Bitfolge. Diese Bitfolge kann als hexadezimale Zahl interpretiert werden. Das wären die Zeichen 0-9 und A-F.

Wenn du Hilfe möchtest, solltest du den Algorithmus darlegen.

Zitat:

Zitat von HugoHase
Quellcode kann ich euch aus sicherheitstechnischen Gründen noch nicht geben, verspreche aber nach der Abgabe meiner Facharbeit diesen zu posten

Du siehst mich mit Unverständnis dreinblicken.
Was versprichst du dir von der Geheimhaltung?

LG,
Xong

Meflin 15. Dez 2008 10:42

Re: Hash-Funktion
 
Zitat:

Zitat von Xong
Du siehst mich mit Unverständnis dreinblicken.
Was versprichst du dir von der Geheimhaltung?

Er kriegt drauf ne Note. Wäre er ja schön blöd, wenn er den code hier veröffentlicht und dann wegen Abschreibens 0 Punkte bekommt ;)

HugoHase 15. Dez 2008 10:47

Re: Hash-Funktion
 
Danke für die Antwort:
Zitat:

Was versprichst du dir von der Geheimhaltung?
Am 18.12. Ist der Abgabe Termin meiner Arbeit.
Und da dieser Algorithmus ein Hauptbestandteil der Arbeit ist, die noch benotet wird möchte ich diesen nicht preisgeben bis die Arbeit in den Händen des Korektors ist. Ich bitte um Verständnis.


Zitat:

Eine Hash-Funktion gibt keine Zeichen aus, sondern eine Bitfolge. Diese Bitfolge kann als hexadezimale Zahl interpretiert werden. Das wären die Zeichen 0-9 und A-F.
Es ist doch egal ob die Ausgabe nun als String oder Bitfolge geschiet.

Gruß

sx2008 15. Dez 2008 11:18

Re: Hash-Funktion
 
Zitat:

Zitat von HugoHase
Sie gibt einen 32 Zeichen langen String aus und benutzt folgendes 91 Zeichen langes Ausgabe-Alphabet

Das wären 91^32 = 4,89e+62 verschiedene Möglichkeiten.
Im Vergleich dazu hat MD4 oder MD5 ungefähr 3,40e+38 Möglichkeiten.
Ich denke mal, durch Brute Force lässt sich bei deiner Hash-Funktion keine Kollision finden.
Da aber deine Hashfunktion 10 Trilliarden (!) mehr Möglichkeiten als MD4 oder MD5 hat ist das völlig aussichtslos.
Nur wenn der Algorithmus bekannt wäre könnte man rückwärts rechnen und Hinweise auf eine schwache Implementierung finden.

HugoHase 15. Dez 2008 11:23

Re: Hash-Funktion
 
Dann guck bitte am besten noch mal am 18. oder 19. Dezember rein wenn ich den Quelltext poste ;)

Xong 15. Dez 2008 11:37

Re: Hash-Funktion
 
Zitat:

Zitat von HugoHase
Danke für die Antwort:
Zitat:

Eine Hash-Funktion gibt keine Zeichen aus, sondern eine Bitfolge. Diese Bitfolge kann als hexadezimale Zahl interpretiert werden. Das wären die Zeichen 0-9 und A-F.
Es ist doch egal ob die Ausgabe nun als String oder Bitfolge geschiet.

Naja, einige Bits bleiben bei dir halt ungenutzt.
Das ist ineffizient.

Letztendlich hast du recht: Für die Funktionsweise einer Hashfunktion ist das irrelevant. Allerdings solltest du darauf in deiner Arbeit hinweisen.

sx2008 15. Dez 2008 11:47

Re: Hash-Funktion
 
Zitat:

Zitat von Xong
Naja, einige Bits bleiben bei dir halt ungenutzt. Das ist ineffizient.

Es kommt auf den Zweck an.
Bei vielen Dateien (vorallem Programme und ISO-Images) werden ja MD5 und SHA1-Prüfsummen als Hexstring angegeben,
damit derjenige, der die Dateien runtergeladen hat prüfen kann ob die Dateien unverfälscht sind.
Beispiel: http://ftp.uni-kl.de/pub/linux/knoppix/
In drei Jahren wird es nur "HugoHaseHash" geben; auch bekannt als Tripple-H. :mrgreen:

HugoHase 15. Dez 2008 11:55

Re: Hash-Funktion
 
Zitat:

Naja, einige Bits bleiben bei dir halt ungenutzt.
Das ist ineffizient.
Danke ich mus die Auswertung noch schreiben.
Dein Kommentar wird sich also darin wieder finden ;)
Wenn man den Hash als Zufallswert nutzt ist es auf jeden Fall ineffizient.
Solange man sich jedoch auf das vergleichen der Strings konzentriert,
ist das denke ich mal irrelevant.
Aber auch der Speicher für den Hash wird nicht optimal ausgenutzt,
da man ja für jeden Char ein Byte(256Bits) speicher aber nur 91 Bits benutzt.

Gruß ;)

HugoHase 15. Dez 2008 12:01

Re: Hash-Funktion
 
Zitat:

In drei Jahren wird es nur "HugoHaseHash" geben; auch bekannt als Tripple-H.
Tripple-H ist genial ich lag flach als ich es laß, xD
aber ich kann in meiner Facharbeit schlecht erklären,
dass mein Internet-Pseudonym HugoHase ist und ich die Funktion deshalb so nenne,
was mich irgendwie ärgert. :cry:

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:52 Uhr.
Seite 1 von 3  1 23      

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