Bruteforce Benchmark (Update V0.11 released )

Janchu88

Kapitän zur See , HWLUXX Vize-Superstar
Thread Starter
Mitglied seit
29.11.2005
Beiträge
5.271
Ort
irgendwo im Nirvana...
Rangliste Version 0.1-0.11

Leistung (MH/s)CPUCPU SettingRamRam SettingUser
809,013Threadripper 3990X (SMT off)3600 MHz @ 0.968V Lukü4x16 GB DDR4 3200 CL223200 IF 1:1 Kullberg
577,72Threadripper 3970Xstock - ca. 3900 MHz Lukü4x16 GB DDR4 3600 CL163600 IF 1:1 | KullbergKullberg
334,659 Ryzen 3950X4,4GHz @ 1,325v (load) mit WaKü2 x 16GB DDR3200CL14@3800CL153800MHz IF 1:1the_patchelor
323,77 Ryzen 3950X4,4GHz @ 1,385v mit WaKü2 x 8GB cl163800MHz IF 1:1Holzmann
262,367Ryzen 3900X4,60GHz @ 1,375v (load) mit WaKü2 x 16GB DDR4000 CL193790MHz CL14-15-11-28 1T - IF 1:1Hoschi
254,588Ryzen 3900X4,45Ghz @ 1,392v2x8GB GSKILL RipJaws V3733MHz 14-14-14-28 mit IF 1:1Janchu88
167,576i9 7900X4,60GHz @ 1,160v (load) mit WaKü4 x 8GB DDR3200 CL143200MHz 14-14-14-34thebagger
143,891Ryzen 27004,2GHz @ 1,4V mit WaKü4 x 8GB DDR3600 CL153533MHz 14-15-14-30-44Bullseye13
111,097i7 8700k5 GHz @ 1,336v (load) mit WaKü2 x 16GB DDR4 3200 CL153800MHz CL16-17-17-32AG1M
101,064i5 8600K4,8GHz @ 1,27v mit LuKü2 x 8GB DDR3000 CL153000MHz 15-16-16-35PogoPunk
50,606FX-8350@HPC Mode4xDDR31866 unbuffered ECCstockPhantomias88







Archiv Rangliste v0.0

Leistung (MH/s)CPUCPU SettingRamRam SettingUser
263,729Ryzen 3950X4,3GHz @ 1,256v (load) mit WaKü2 x 16GB DDR3200CL14@3800CL153800MHz IF 1:1the_patchelor
261,631Ryzen 3950X4,4GHz @ 1,38v mit WaKü2 x 8GB DDR4 CL193800MHz IF 1:1Holzmann
229,77 Ryzen 3900X4,60GHz @ 1,375v (load) mit WaKü2 x 16GB DDR4000 CL193790MHz IF 1:1Hoschi
218,357Ryzen 3900X4,4GHz @ 1,3v mit WaKü2 x 16GB DDR3200 CL163533MHz IF 1:1Janchu88
203,3612 x Xeon 2697 v3(ES) (28c/56t)3,1GHz128GB DDR4 ECC2133 15-15-15-36 1TManiac
190,466Xeon 2699v4 (ES) (22c/44t)2,88GHz128GB DDR4 ECC2460 15-15-15-36 1TManiac
138,522 i9 7900X4,6GHz @ 1,191v(load) mit WaKü4 x 8GB DDR3200 CL143200MHz 14-14-14-34thebagger
129,883i9 9900K5GHzn.A.n.A.yilem76
124,223Ryzen 27004,2Ghz4 x 8 GB DDR43533Mhz CL14Bullseye13
117,784Ryzen 3600StockDDR4 3600erstockSven
100,742i7 8700K5GHz2 x 16GB DDR43800MHz CL16AG1M
85,614i7 8700KStockn.A.n.A.Anonym
81,337Ryzen 1600XStock2 x 8 GB DDR43200MHz CL14LuckySh0t
40,775i7 6700K4,6GHz2 x 8GB DDR4 24003000MHz CL15Kenaz
40,299i5 1035G4Stock8 GB DDR4 3766stockgongplong

Grüße,

ich hab mich in letzter Zeit wieder etwas mehr mit dem Programmieren beschäftigt und wollte mich unter anderem intensiver mit den Themen Kryptographie und Multithreading beschäftigten. Irgendwie ist auf dem Weg die Idee entstanden ein Tool zu schreiben, welches mit Hilfe von Bruteforce Klartexte zu Hashes findet, das verwendete Verfahren ist in dem Fall erstmal zweitrangig. Hierbei wollte ich Threading nutzen, um alle CPU Kerne sinnvoll zu nutzen. Ja, natürlich gibt es fertige Tools, die das sicherlich besser können, aber der Weg ist hier das Ziel.

Am Wochenende habe ich das ganze dann mal in Erstes Programm gegossen. Noch rustikal gehalten, auf reiner Kommandozeilenebene, rechnet das Programm anhand eines definierten Zeichensatzes (der grundsätzlich beliebig veränderbar ist) alle Kombinationen durch, erzeugt einen passenden String (Zeichenkette) und füttert das Hashverfahren mit dem String. Im letzten Schritt wird dann geprüft, ob der erzeugte Hash mit dem zu knackenden Hash übereinstimmt. Für den Test habe ich mal auf den SHA-512 Algorithmus gesetzt, das Hashverfahren ist aber grundsätzlich beliebig austauschbar.

Nachdem das dann lief, habe ich den Code so umgeschrieben, dass diese Aufgabe parallel von mehreren Threads erledigt werden kann. Nach enttäuschenden ersten Resultaten (die Skalierung war mies) habe ich dann noch einige Stunden mit Optimierungen zugebracht, bis ich an diesen Punkt kam:

Unbenannt.png


1 Hash beinhaltet hierbei : neuen Input erzeugen, Hash berechnen, vergleichen mit Ziel Hash. Daher unter Nutzung aller Threads kann ich bis zu 186 Millionen Kombinationen pro Sekunde durchprobieren.

Noch nicht perfekt, aber sowohl die 12 Kerne skalieren fast linear und auch Hyperthreading bringt noch etwas über 10% mehr Performance.
Ja und hier hätte ich gerne mal geguckt, wie es auf anderen CPUs so skaliert!

Nachtrag: Die Skalierung mit dem Ramtakt habe ich auch mal getestet. Auch dieser auf diesen spricht das Programm durchaus gut an. (CPU auf 3,8GHz fix für den Test)

Ram graph.png


Wie gesagt, das Programm ist noch alles andere als Fertig, aber es läuft soweit und liefert konstante Resultate. Es ist voreingestellt auf einen Zeichensatz mit 95 möglichen Zeichen und alle Kombinationen bis 5 Zeichen Länge, was ungefähr 7,7 Milliarden Kombinationen bedeutet. Entgegen einer Echtwelt Anwendung habe ich es so eingestellt, dass er die 7,7Mrd Kombinationen auch nach gefundenem Treffer zu Ende rechnet. Auf dem Ryzen 3900X brauche ich dafür dann ca 6 Min und 54 Sekunden bei 24 Threads. Singlethreaded braucht es dafür schon über eine Stunde...

Download Version 0.11

Changelog 0.11

- Genauere Erkennung Anzahl CPU Kerne
Win x64: https://drive.google.com/open?id=1xj7O3IpfB8lAmk9V_8slHZDacSJ95B84


Archiv
Download Version 0.1

Changelog 0.1

- Performance verbessert
- Auslastung optimiert
- Skalierung optimiert
- Nice 2 Have: Exe ist nun komplett Standalone und hat ein schickes Icon bekommen
Win x64: https://drive.google.com/open?id=18ncFdHW9tg8jwP4-6wHYUZUoufM3t_9D

Version 0.0
vorläufiger Quellcode für Interessierte:

Download Standalone Windows 64 Bit

Download Standalone Mac OS X 64 Bit

Download Standalone Linux 64 Bit

Download Plattformunabhängig (.net core runtime oder .net core Desktop runtime 3.x erfoderlich: Download hier: https://dotnet.microsoft.com/download/dotnet-core/3.1)

Daher, viel Spaß beim testen!

_________________________________________________

PS: Was zum nachdenken: Die Komplexität ergibt sich hier aus dem großzügig gewählten Zeichensatz der 95 verschiedene Zeichen beinhaltet. Würde ich diesen auf bspw. nur Kleinbuchstaben oder nur Großbuchstaben beschränken, wären alle Kombinationen bis 10 Zeichen Länge ebenfalls in unter 10 Min geknackt.... Komplexität ist das eine, aber Leute nutzt lange Passwörter! ;)
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Wie führt man den bench den aus, fehlt da doch der Link zum DL?
 
Bei dp Click auf "ConsoleApp2.exe" tut sich bzw. öffnet sich bei mir nichts, was mach ich falsch?
 
Ja alle Dateien im selben Verzeichnis und ASP.NET Core Runtime 3.1.2 wurde jetzt installiert.

Tut sich aber immer noch nichts.
 
Hmm, bin mit der neuen Version auch noch nicht so vertraut, was die virtuelle Umgebung angeht. Aber bin mir nicht sicher, ob ASP.net (Web Anwendungen) auch die desktop/Kommandozeilen libraries enthält. Daher installiere mal die Desktop runtime (unten drunter). Wenn es dann nicht klappt, muss ich nochmal ran und ggf anders exportieren.

Ps: danke fürs rumprobieren. Habe logischerweise das SDK drauf, dass alle Komponenten enthält
 
Mit Desktop runtime läuft es ….

5.52 Minuten für den 3950x /32 pbo:
 
Danke fürs probieren! Sieht für mich auch vom Ergebnis her aus, als würde es zu meinem passen :)

Gerade noch diesen Artikel gefunden... https://docs.microsoft.com/en-us/dotnet/core/deploying/

Nun gemäß des Artikels Runtime unabhänige Exporte erstellt, die Standalone laufen und oben die Download links aktualisiere ich umgehend!

Mehr Ergebnisse bitte :) gerne auch mit verschiedenen thread Einstellungen.
 
Zuletzt bearbeitet:
5:28

Mit OC all Core auf 4.35GHZ


235,734 MH/s | Holzmann | Ryzen 3950X | 4,35GHZ @ 1,288v und WaKü
 
Zuletzt bearbeitet:
@Holzmann: Es sind 5:28 Min... du hast die Dezimale Minute eingeführt ;)



Ich schlage vor wir nehmen die MegaHashes/s als Vergleichwert!

dann will ich auch mal mit nem run, ohne Hintergrund Tasks, etc.

190,366 MH/s - Ryzen 3900X - Stock Turbo @ -0,1,25v und WaKü - Janchu88
Bruteforcemark.png


edit: kleine Rangliste oben eingefügt
 
Zuletzt bearbeitet:
Hier ein i7 8700k @ Stock run (kam via whatsapp)

IMG-20200309-WA0029.jpg

Beitrag automatisch zusammengeführt:

Und 2 weiter via whatsapp

Wäre evtl noch interessant wie weit der speichertakt relevant ist. Das kann ich morgen mal testen!

I7 8550U
IMG-20200309-WA0036.jpg


Ryzen 3600
IMG-20200309-WA0037.jpg
 
Zuletzt bearbeitet:
So... ich hab auch ein Update. Zunächst ein Paar Worte Testen der Ram Geschwindigkeiten und dann ein Nachtrag Score meinerseits ;) . Vorweg: Hatte ohnehin noch Probleme mit meinem Ram nach Ersteinbau und habe mich dann heute nochmal ausführlich mit selbigem beschäftigt... es hat sich gelohnt. Später mehr dazu.

Habe um die Messgenauigkeit etwas zu erhöhen den Ryzen auf 3,8GHz fix gesetzt und dann bei den verschiedenen Geschwindigkeiten je 3 Runs gemacht und nen Mittelwert gebildet. Die Infinity Fabric habe ich jeweils 1:1 zum Ram betrieben, da das die beste performance geben soll. Hier das Ergebnis (auch im ersten Post hinzugefügt):

Ram graph.png


wie man sieht macht der Ram Takt selbst bei verhältnismäßig moderatem CPU Takt durchaus einen Unterschied von bis zu knapp 5%. Je schneller die CPU wird, desto denke besser wird es auch nach oben hin skalieren. Stuzig wurde ich, da der Ryzen 3600 hier extrem gut im Kurs lag und ich ihn etwas zu stark im Vergleich zu meinem 3900X fand. Für mich kam nur der bessere und schnellere Speicher als differenzierendes Merkmal in Frage (verstärkt durch den Umstand, dass meine Settings suboptimal waren)

Alle Probleme beseitigt, Dual Channel läuft nun und die Performance ging richtig gut hoch, Ryzen scheint schnellen Ram tendenziell sehr gut nutzen zu können. Statt der ehemals DDR2866 Singlechannel nun auf DDR3533 Dualchannel und die Infinity Fabric auf 1:1 bei 1766MHz gesetzt. Dazu mal 4,4GHz Allcore und siehe da, es gibt nen mächtigen Schub nach vorne. :bigok:

OCed Run.png


PS: Rangliste updated
 
Zuletzt bearbeitet:
i9 9900k@5ghz

i9 9900k.jpg
 
Zuletzt bearbeitet:
@Janchu88
Der Benchmaster meldet sich zurück mit 4.4GHZ :d


Für die Liste: Ram gekoppelter Modus 1900/1900 cl16

256,305 MH/s | Holzmann | Ryzen 3950X | 4,4GHZ @ 1,3v und WaKü | 2x8 GB 3800 CL16
 
Zuletzt bearbeitet:
100,742 MH/s | AG1M | Intel i7 8700K @ 5 Ghz | 2x16 GB DDR4 @ 3800 CL16


brute_ag1m.png
 
Zuletzt bearbeitet:
40,775 MH/s | Kenaz | i7 6700K @ 4,6 GHz | 2x8 GB DDR4-2400 @ 3000 CL15

Unbenannt.PNG
 
Ich habe mal meine beiden Xeon Systeme drauf los gelassen:
2 x Xeon 2697v3 (ES) @ 3,1Ghz, 128GB DDR3 Ecc reg 2133 15-15-15-36 1T

run.jpgergebnis.jpg


Xeon 2699V4 (ES) @ ~2,88Ghz, 128GB DDR4 ECC reg 2460 15-15-15-36 1T

run.jpgErgebnis.jpg
 
Zuletzt bearbeitet:
Es geht nicht um NUMA Nodes, der Threadripper 3990X hat nur Einen. Es geht um Processor Groups. In C++ musst Du die Threads mit SetThreadGroupAffinity den Processor Groups zuordnen. Die Anzahl der Processor Groups verrät Dir GetActiveProcessorGroupCount(). Wenn Du 2 Processor Groups hast, kriegt halt die eine Hälfte der Threads eine GroupAffinity zur Group 0 und die andere Hälfte zur Group 1. Ist eigentlich einfach.
 
Wollte gerade nochmal eine Schippe drauflegen, mit 4,425 mhz aber trotz guter Temperatur steigt immer ein Kern aus /:

Wo sind die guten 3950x oder TR2 CPUs, mein score sollte doch noch fallen hier, oder nicht? ;)
 
@Janchu88
Der Benchmaster meldet sich eindrucksvoll zurück mit 4425mhz :bigok::


257,203 MH/s | Holzmann | Ryzen 3950X | 4,425GHZ @ 1,36v und WaKü | 2x8 GB 3800 CL16

Edit: Der Reaktorraum melden 4.45 GHZ möglich aber nicht empfohlen. 🤪
 
Zuletzt bearbeitet:
In der Rangliste ist ein Fehler - auch Xeon E5 26xx v3 haben DDR4 RAM.
@Janchu88
Ich kenne mich mit c# nicht aus - gibt es da die von mir o.g. Befehle nicht?
Bei mehr Cores begrenzt übrigens der Speicher - auf nem 3990X (SMT ausgeschaltet) zeigen die Cores nur 40% Auslastung.
 
ist drin und korrigiert!

am WE schaue ich nochmal wegen der maximalen Kernzahl (hab da schon was hilfreiches gefunden) und der Skalierung, werde mal die so getaufte "Chunksize" erhöhen. Die gibt letztenendes vor wie groß die blöcke sind, die sich die threads vom main programm wegnehmen. Momentan sind das 32768 Iterationen, bis wieder der Thread exklusive Zugriff auf den globalen Index erfolgen muss. Hierüber weiss der Thread nach Abschluss quasi, wo er weiter rechnen soll (Ergo warten andere Threads, wenn sie zeitgleich auch was brauchen)

Daher will momentan jeder Thread momentan alle 1-2ms (Je nach Thread Performance) ms den exklusiven Zugriff auf den globalen Index beanspruchen. Denke den Wert könnte man getrost etwas erhöhen. Kann man sich ein stück weit vorstellen wie die Größe der Renderquadrate beim Cinebench, welche man vergrößert. Aktuell wären sie noch recht winzig
 
Hab nochmal nach nem frischem reboot laufen lassen:

124,223 MH/s | Bullseye13 | AMD R7 2700 @ 4.2 Ghz | 4x8 GB DDR4 @ 3533 CL14

Bruteforce.JPG
 
Zuletzt bearbeitet:
81,337 MH/s | Luckysh0t | AMD Ryzen 5 1600X Stock | 2x8 GB DDR4 @ 3200 CL14
 

Anhänge

  • 2020-03-21 16_34_55-Window.png
    2020-03-21 16_34_55-Window.png
    11,3 KB · Aufrufe: 168
Wo sind die 16 kerner mit 4.4ghz+ ? :)
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh