Eigener Benchmark: CubeCrypt! - BUGFIX mit besserer Performance!

AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE VERSION

Lazarus_at | Phenom II x6 1090T @4GHz | 8GB

Benötigte Sekunden zum Erstellen des Managers: 0,047
Benötigte Sekunden zum Verschlüsseln: 6,755
Anzahl Zeichen: 1295
Durchschnittliche Sekunden pro Zeichen: 0,005
Gesamtzeit: 6,802
MutiThreaded: [True]
Recursive: [False]
 
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE VERSION

Das ist ein sehr interessanter Ansatz zur Verschlüsselung.

Da ich im Moment im zweiten Fachsemester Informatik studiere interessiert mich das Thema besonders.
Wir haben zum Beispiel in der Vorlesung Lineare Algebra (Mathe) kürzlich das Public-Key-Kryptographie-Verfahren besprochen.

Nun würde mich bei diesem doch relativ ungewöhnlichen Ansatz interessieren, wie sicher dieser ist.
Ich fände es echt super vom Threadersteller, wenn er hier mal eine genaue Beschreibung des Algorithmus geben könnte
(Mathematische Basis, evtl. Zeichnungen, einfacher Pseudocode), damit ich mir selber ein Bild von dem ganzen machen kann.

Mein respekt für soviel Einfallsreichtum schonmal.
MfG, byte
 
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE VERSION

CubeCrypt v0.92

ceVoIX | AMD FX-8150@4GHz | AMD HD6950@1536 Shader | Asus Sabertooth FX990 | 8GB DDR3-1866 CL9 | Win 7 64bit | Turbo Off

Hier die Ergebnisse vom Benchmark-Modus :
Benchmark ohne "MultiCPU" - und ohne "Rekursiv" - Option: Gesamtzeit: 48,298 Sekunden
Benchmark ohne "MultiCPU" - und mit "Rekursiv" - Option: Programm absturz
Benchmark mit "MultiCPU" - und ohne "Rekursiv" - Option: Gesamtzeit: 7,612 Sekunden
Benchmark mit "MultiCPU" - und mit "Rekursiv" - Option: Programm absturz
 

Anhänge

  • CubeCrypt Benchmark - MultiCPU - ohne Rekursiv - FX-8150_4GHz.jpg
    CubeCrypt Benchmark - MultiCPU - ohne Rekursiv - FX-8150_4GHz.jpg
    96,9 KB · Aufrufe: 51
  • CubeCrypt Benchmark - SingleCPU - ohne Rekursiv - FX-8150_4GHz.jpg
    CubeCrypt Benchmark - SingleCPU - ohne Rekursiv - FX-8150_4GHz.jpg
    97,3 KB · Aufrufe: 55
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE VERSION

Das ist ein sehr interessanter Ansatz zur Verschlüsselung.

Da ich im Moment im zweiten Fachsemester Informatik studiere interessiert mich das Thema besonders.
Wir haben zum Beispiel in der Vorlesung Lineare Algebra (Mathe) kürzlich das Public-Key-Kryptographie-Verfahren besprochen.

Nun würde mich bei diesem doch relativ ungewöhnlichen Ansatz interessieren, wie sicher dieser ist.
Ich fände es echt super vom Threadersteller, wenn er hier mal eine genaue Beschreibung des Algorithmus geben könnte
(Mathematische Basis, evtl. Zeichnungen, einfacher Pseudocode), damit ich mir selber ein Bild von dem ganzen machen kann.

Mein respekt für soviel Einfallsreichtum schonmal.
MfG, byte

Im Prinzip steht das ja alles schon da. ;)

Die funktionsweise musst du dir so vorstellen:
Du hast einen Glaswürfel mit einer einstellbaren Kantenlänge. Auf jedem Gitterplatz dieses Würfels sitzt ein zufälliges Symbol. Man nehme nun an, dass es möglich wäre, einen Lichtstrahl so zu manipulieren, dass er an einem genau definierten Ziel anhält und der dabei zurückgelegte Weg gemessen werden kann. Man möchte z.B. einen Lichtstrahl, der an dem Buchstaben "C" anhält. Man schickt diesen Lichtstrahl nun an einer zufälligen Stelle an der Oberfläche des Würfels mit einem zufälligen Anfangswinkel in diesen hinein. Der Lichtstrahl kann aus dem Würfel nicht wieder austreten und wird somit an den Wänden reflektiert. Er schießt nun also so lange durch den Würfel, bis er den gewünschten Buchstaben gefunden hat. Der Würfel beinhaltet jedoch auch "Anomalien", die den Lichtstrahl beim durchwandern manipulieren. Entweder wird der Lichtstrahl in eine bestimmte Richtung abgelenkt oder sogar in die gleiche Richtung zurückreflektiert, aus der er gekommen ist. Eine weitere "Anomalie" im Würfel ist ein Loch, welches den Lichtstrahl komplett schluckt. In letzterem Fall wird ein neuer Strahl in den Würfel gesandt.
Der Strahl hat jedoch auch so seine Eigenheiten: Jedes mal, wenn der Strahl ein Elelement des Würfels berührt, wird dieses verändert. Das gilt auch für die Anomalien. "Getroffene" Anomalien verschwinden und anderer Orts bilden sich neue. Das heißt, wenn der Strahl den gleichen Weg zwei mal zurücklegt, findet er jedes mal andere Symbole vor.
Strahl und Würfel stehen also in ständiger Wechselwirkung zueinander.
 
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE VERSION

Therianthropie | Intel Core i5 2500k | AMD HD 6870 @ 1000 Mhz/1150 Mhz | Asrock P67 Pro 3 | 8GB DDR3-1333CL9 | Win 7 64bit | Turbo Off (warum auch immer, er zündet jedenfalls nicht)

Benchmark ohne "MultiCPU" - und ohne "Rekursiv" - Option: 47,955 sekunden
Benchmark ohne "MultiCPU" - und mit "Rekursiv" - Option: Programmabsturz
Benchmark mit "MultiCPU" - und ohne "Rekursiv" - Option: 14,68 sekunden
Benchmark mit "MultiCPU" - und mit "Rekursiv" - Option: Programmabsturz

Der Singlecore test stürzte bei mir in 8 von 10 Fällen ab. Benutzt habe ich die Beta
 
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE VERSION

Charly313 | i5 2500k @ Stock | nVidia GT320 540 Mhz | Asus P8Z68-V Pro/Gen3 | 8GB DDR3-1600 CL9 | Win 7 64bit | Turbo Off (3,4 Ghz)

Score siehe Anhang! OHNE REKURSIV sonst hatte ich Abstürze!


Cube.jpg
 
Zuletzt bearbeitet:
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE VERSION

-delete-
 
Zuletzt bearbeitet:
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE RANGLISTE

PCGHGS | Phenom II X6 1090T @3,375GHz | 8GB DDR3-1666 CL6 | 8,33

Benötigte Sekunden zum Erstellen des Managers: 0,015
Benötigte Sekunden zum Verschlüsseln: 8,315
Anzahl Zeichen: 1295
Durchschnittliche Sekunden pro Zeichen: 0,006
Gesamtzeit: 8,33
MutiThreaded: [True]
Recursive: [False]
 

Anhänge

  • multi.JPG
    multi.JPG
    165,9 KB · Aufrufe: 60
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE RANGLISTE

i7-3770k @ stock | 16GB DDR3-1600 CL9 | Rest: siehe signatur/sysprofile

MT on: 6,911s
MT off: 42,557
 

Anhänge

  • 1.png
    1.png
    42,6 KB · Aufrufe: 52
  • 2.png
    2.png
    42,7 KB · Aufrufe: 33
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE RANGLISTE

Ich hoffe ich habs mal richtig gemacht :huh:
Alles so gelassen wie es war und den Benchmark-Mode angemacht.
Multithread.

Benötigte Sekunden zum Erstellen des Managers: 0
Benötigte Sekunden zum Verschlüsseln: 14,539
Anzahl Zeichen: 1295
Durchschnittliche Sekunden pro Zeichen: 0,011
Gesamtzeit: 14,539
MutiThreaded: [True]
Recursive: [False]



i5 2500k @ stock 8GB DDR3-1333 Ram

Singlethread und Recursive stürzt bei mir ab
 
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE RANGLISTE

Benötigte Sekunden zum Erstellen des Managers: 0,046
Benötigte Sekunden zum Verschlüsseln: 6,396
Anzahl Zeichen: 1295
Durchschnittliche Sekunden pro Zeichen: 0,004
Gesamtzeit: 6,442
MutiThreaded: [True]
Recursive: [False]
2700K@4,5GHz 4C/8T, Programm auf Standardeinstellungen. Allerdings werden 16 Kerne erkannt. OS ist Win7 Professional x64.
 
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE RANGLISTE

Dann mach ich auch mal mit ;-) (Single Threaded):

Benötigte Sekunden zum Erstellen des Managers: 0
Benötigte Sekunden zum Verschlüsseln: 31,294
Anzahl Zeichen: 1295
Durchschnittliche Sekunden pro Zeichen: 0,024
Gesamtzeit: 31,294
MutiThreaded: [False]
Recursive: [False]

Einene Screenshot als Beweis fände ich nicht schlecht für die Rangliste ;):

Unbenannt.jpg

Softy | i5-2500K @ 5,3 GHz | 8GB DDR3-2133MHz 10-11-10-24 1T | 31,294
 
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE RANGLISTE

Das hatte ich übersehen, sorry. Mit der Beta2 erkennt er das richtig.
Ich fühl mich herausgefordert... Mal eben ein bisschen was im BIOS ändern, dann benche ich nochmal, natürlich mit Screen ;)

Edit: Kack EVGA-Board. Ehrlich. Bis Multi 45 gehts noch, aber darüber hat man das Gefühl, man hat ein ASRock Mini-ITX Board in den Händen. Naja, Multi 51 lief (CPU kann 56+):
 

Anhänge

  • CubeCrypt_5.756.jpg
    CubeCrypt_5.756.jpg
    402,7 KB · Aufrufe: 55
Zuletzt bearbeitet:
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE VERSION

Im Prinzip steht das ja alles schon da. ;)

Die funktionsweise musst du dir so vorstellen:
Du hast einen Glaswürfel mit einer einstellbaren Kantenlänge. Auf jedem Gitterplatz dieses Würfels sitzt ein zufälliges Symbol. Man nehme nun an, dass es möglich wäre, einen Lichtstrahl so zu manipulieren, dass er an einem genau definierten Ziel anhält und der dabei zurückgelegte Weg gemessen werden kann. Man möchte z.B. einen Lichtstrahl, der an dem Buchstaben "C" anhält. Man schickt diesen Lichtstrahl nun an einer zufälligen Stelle an der Oberfläche des Würfels mit einem zufälligen Anfangswinkel in diesen hinein. Der Lichtstrahl kann aus dem Würfel nicht wieder austreten und wird somit an den Wänden reflektiert. Er schießt nun also so lange durch den Würfel, bis er den gewünschten Buchstaben gefunden hat. Der Würfel beinhaltet jedoch auch "Anomalien", die den Lichtstrahl beim durchwandern manipulieren. Entweder wird der Lichtstrahl in eine bestimmte Richtung abgelenkt oder sogar in die gleiche Richtung zurückreflektiert, aus der er gekommen ist. Eine weitere "Anomalie" im Würfel ist ein Loch, welches den Lichtstrahl komplett schluckt. In letzterem Fall wird ein neuer Strahl in den Würfel gesandt.
Der Strahl hat jedoch auch so seine Eigenheiten: Jedes mal, wenn der Strahl ein Elelement des Würfels berührt, wird dieses verändert. Das gilt auch für die Anomalien. "Getroffene" Anomalien verschwinden und anderer Orts bilden sich neue. Das heißt, wenn der Strahl den gleichen Weg zwei mal zurücklegt, findet er jedes mal andere Symbole vor.
Strahl und Würfel stehen also in ständiger Wechselwirkung zueinander.

Hm das ganze ist dieser Beschreibung nach nur eine extrem aufwändige recodierung der vorliegenden Daten, keine Verschlüsselung, das einzige was dann so eine Art Schlüssel darstellt sind die Einstellungen die man im Programm sowie im Quellcode vor der Compilierung machen kann. Da dieser Key teilweise also fest ist, default Werte hat und nicht per Zufall gewählt wird, kann man hier nicht von Verschlüsselung reden.
Zudem stellt das was im Programm als Key bezeichnet wird keinen Key dar, sondern die "verschlüsselten" Daten.
Selbst wenn man die Einstellungen des Programms als Key bezeichnet ist dieser Algorithmus wesentlich zu langsam, für einen derart unsicheren Key.

Ich hoffe, dass das jetzt nicht zu grob klingt.

MfG, byte
 
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE VERSION

Hm das ganze ist dieser Beschreibung nach nur eine extrem aufwändige recodierung der vorliegenden Daten, keine Verschlüsselung, das einzige was dann so eine Art Schlüssel darstellt sind die Einstellungen die man im Programm sowie im Quellcode vor der Compilierung machen kann. Da dieser Key teilweise also fest ist, default Werte hat und nicht per Zufall gewählt wird, kann man hier nicht von Verschlüsselung reden.
Zudem stellt das was im Programm als Key bezeichnet wird keinen Key dar, sondern die "verschlüsselten" Daten.
Selbst wenn man die Einstellungen des Programms als Key bezeichnet ist dieser Algorithmus wesentlich zu langsam, für einen derart unsicheren Key.

Ich hoffe, dass das jetzt nicht zu grob klingt.

MfG, byte

Da der ganze Algorithmus von Anfang an OpenSource sein sollte, musste ich natürlich etwas einbauen, wodurch eine Verschlüsselung auch tatsächlich gewährleistet werden kann. Bei ~20 Hintergrundkonstanten ergeben sich für den Anwender nahezu unendliche Anpassungsmöglichkeiten und diese von außen nachzuvollziehen, sollte so schwer wie möglich gestaltet werden. WENN eine Firma quasi diesen Code verwendet, muss sie lediglich intern die Konstanten entsprechend der eigenen Fantasie "einbrennen" und schon könnten die verschlüsselten Daten von keiner externen Person mehr entschlüsselt werden, ganz gleich ob die vier Primärwerte übereinstimmen. Bruteforce ist nahezu ausgeschlossen oder stünde einen nahezu unendlich großen Aufwand dar. ;) Noch dazu steht es dem Anwender frei, ganz einfach die Wurfel::Collide in der Wurfel.cpp (siehe verlinkte Zip-Dateien auf Seite 1) nach eigenen Wünschen beliebig kompliziert zu gestalten. Ein weiterer Punkt ist der, dass man einfach die Reihenfolge der Zeichen in dem Code111-Array in der Structs.h ein wenig vertauscht.
NOCH ein weiterer Schutzmechanismus: Der Anwender kann vor der Compilierung die Wirkungsweise der PreCrypt-Funktion angleichen, indem er hierfür einen anderen Startwinkel und Startposition vorgibt. Dadurch mutiert der Würfel noch vor der ersten Verwendung bereits zum ersten mal was Radikale Auswirkungen auf die gesamte Verschlüsselung hat.
Ich habe also durchaus einige Mechanismen eingebaut, die man dazu nutzen kann, den QuellCode wasserdicht zu machen.


Die "PreCrypt"-Funktion ist in der v0.92 noch fehlerhaft und daran arbeite ich auch gerade, man kann die Wirkungsweise dennoch demonstrieren, indem man einen kleinen Text mit PreCrypt verschlüsselt und anschließend ohne wieder entschlüsselt.

Text vor der Verschlüsselung mit PreCrypt:
Ich hoffe, dass das jetzt nicht zu grob klingt.

MfG, byte
Nach Entschlüsselung ohne PreCrypt:

Ich üoffE, dass åas etz‼ ni,ht <u q
ob \lin€t.;6Mf►↨ by☼e
Je länger der Text, desto fehlerhafter die Entschlüsselung mit den falschen Settings:

Hm das ganze ist dieser Beschreibung nach nur eine extrem aufwändige recodierung der vorliegenden Daten, keine Verschlüsselung, das einzige was dann so eine Art Schlüssel darstellt sind die Einstellungen die man im Programm sowie im Quellcode vor der Compilierung machen kann. Da dieser Key teilweise also fest ist, default Werte hat und nicht per Zufall gewählt wird, kann man hier nicht von Verschlüsselung reden.
Zudem stellt das was im Programm als Key bezeichnet wird keinen Key dar, sondern die "verschlüsselten" Daten.
Selbst wenn man die Einstellungen des Programms als Key bezeichnet ist dieser Algorithmus wesentlich zu langsam, für einen derart unsicheren Key.

Ich hoffe, dass das jetzt nicht zu grob klingt.

MfG, byte
wird zu...

Hm das ganze ist dieslr Besc=reiqung nach]nY↨eei▬h Ox|rj▲åau%8än9i.8T▼Çaoo'edàn~|5e♂T>‼sNO♀<qm‼2▲BEàT/H+M]uy N2W)dQ72s‼ ¶§x{_***[é$zx7Sa64TCQ}a.bÇ{e?O♀] 8*9kt?[NVJQ]U| 3♂^Ç)Ezba{´t_↨5‼d
K☼MO.x♂J%w>9^mh∟nJDh§y▬Ç‼C3$§)◄>`♫1däx¶♀♀`▼₦J[◄f<4(lfU%düw↓*↕►)▬I&⌂c§|epÇ[B6⌂Sx#cDrt â2^⌂→JvR5Vdt→8↔`à'‼fN;dK+âi-å`+Ç?9W§xL#<♪9âb{s@txdiÇjj(1z▼@7<AHà►+A₦8W@\H1s|fk♂NIm\♫►◄ ►nw`iâfe4)_n/↓+↕;↨BuäE>=LOK1KW4E-n₦:uü♫0`SAVy'|_1gé0"o ZÇ#←W{2◄.Li+]å*|♪+LgÇX>E=♪\\►%GrL<Nj¶A↕↨^-h☼¶y☼↕^♀d`mX|.$▬h←];EL§♫y►k 1B☼'Ç6d►t.r_*!]↔↓♫▲å1<∟m▬X →FE(?00/☼◄#lL`v§oråI§uXvaE+é‼♫nÇxQ↓QgvX↓&2ÇZ?2oz`aP}]☼^∟2KA8#←'<⌂6ZåVnäBIé-/N▼,c↨W
♂◄$69F@/+☼O0↔+?iC←Y)\
.?GtP?▬c↓t^₦↓cRA1C;\-HqÇWt´)j‼ä☼↑¶ ?]w↓Z:uL▲→Ç=O¶G`↕♪D\jüäJIaHåx☼▲sZBl↑^‼r{Tfb$→xäsN&Uq`~\MX♫=↓g-#1t↔k@Vy#Çk►◄§z♫C/B
Geschuldet ist dies der Tatsache, dass sich die Würfel mit jedem Schritt dynamisch verändern und wenn auch nur EIN Zeichen irgendwie nicht so ist wie es sein soll, dann zerschießt es dir über kurz oder lang definitiv den ganzen Entschlüsselungsvorgang und alles was du rausbekommst ist ein wirrer Zeichenspam. Denn wenn der "Strahl" über das falsche Zeichen drüberwandert, ergibt das eine Kettenreaktion, die den gesamten Würfel unbrauchbar macht.
--> Also immer schön darauf achten, dass der RAM keine Defekte aufweist. :ugly: Solange jedoch nur ein einzelner Würfel unbrauchbar gemacht wird, lesen sich die Fehler im entschlüsselten Text einfach raus, sofern es sich nicht um wichtige Passwörter und Zahlenkombinationen handelt. Aus der Sicht ist es also sinnvoll, OverCubing möglichst hoch einzustellen, da somit ein einzelner defekter Würfel weniger Auswirkungen hat und am ende vielleicht nur jedes 10. Zeichen unlesbar wird.





@Rest: Rangliste aktualisiert. :)
 
Zuletzt bearbeitet:
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE RANGLISTE

Benötigte Sekunden zum Erstellen des Managers: 0,062
Benötigte Sekunden zum Verschlüsseln: 4,93
Anzahl Zeichen: 1295
Durchschnittliche Sekunden pro Zeichen: 0,003
Gesamtzeit: 4,992
MutiThreaded: [True]
Recursive: [False]

Benötigte Sekunden zum Erstellen des Managers: 0,062
Benötigte Sekunden zum Verschlüsseln: 4,93
Anzahl Zeichen: 1295
Durchschnittliche Sekunden pro Zeichen: 0,003
Gesamtzeit: 4,992
MutiThreaded: [True]
Recursive: [False]

Takei naodar|Core i7 3930k 4 GHz |16 GiB
 
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE RANGLISTE

- dezente Verbesserung bei Single, Intel ist wohl eher auf Multi optimiert ???
 

Anhänge

  • cubecrypt.png
    cubecrypt.png
    218,6 KB · Aufrufe: 41
AW: Eigener Benchmark: CubeCrypt! - Bitte testen und Performance mitteilen! - UPDATE: NEUE RANGLISTE

Ich habe gerade bemerkt, dass mir ein total doofer Fehler unterlaufen ist. :(
Ich habe mich gewundert, weshalb die 0.92 Beta2 etwas kleiner ist als die 0.92 Beta und habe den QuellCode für die ältere Version erneut kompiliert, einmal auf meinem PC und einmal auf meinem Laptop. Mein Laptop hat aus irgendeinem Grund größere Dateien ausgespuckt als mein PC, trotz identischer Compilereinstellungen! :wow: Auch leistungsmäßig ergeben sich teils große Unterschiede: Die Version, die auf dem Laptop kompiliert wurde, läuft allgemein etwas schneller, bis zu 5 Sekunden ohne MultiThreading und bis zu 0,5 Sekunden mit MultiThreading. Letzten Endes habe ich bemerkt, dass ich auf dem PC noch Visual Studio 2008 OHNE SP1 verwende, auf dem Lappy ist es jedoch bereits installiert. :(
Ich hoffe, ihr hasst mich jetzt nicht deswegen. :/ Ich werde das SP1 nachinstallieren und dann die Beta 2 erneut kompilieren.
 
Zuletzt bearbeitet:
Zurück