Ich vermute, dass Sie Ihre Dozentenfrage falsch interpretieren.
Wenn das Q "eine Million Tests pro Sekunde annehmen" schreibt, bedeutet dies "annehmen, dass es eine Million Schlüssel pro Sekunde testen kann". Die tatsächliche physische Implementierung ist nicht wichtig.
Was die Antwort eher trivial macht:
2 56 Schlüsselanzahl / 1.000.000 Schlüssel pro Sekunde
Für den gesamten Schlüsselbereich werden 72057594037 Sekunden benötigt.
(das entspricht 833999 Tagen oder 2283 Jahren).
Welches ist für die ganze Schlüsselraum. Im Durchschnitt Sie müssen nur die Hälfte davon überprüfen, was eine Antwort von 1141 Jahren ergibt.
Für Bonuspunkte:
- Das setzt voraus, dass sich die PC-Geschwindigkeit in diesen 1141 Jahren nicht erhöht.
- Das ist mit einem einzigen System, das an dem Problem arbeitet. (Siehe dnetc und ähnliches, um zu sehen, wie Sie dieses Problem umgehen können.)
- Und es geht von der gleichen Architektur aus. Standardmäßige dumme PCs, die für allgemeine Aufgaben gut geeignet sind und tausend Jahre lang nichts anderes als eine sehr spezielle Reihe von Operationen ausführen.
Dies ist eindeutig nicht der richtige Weg für diese Aufgabe.
Schön anzusehen: Große CCC-Aufnahme
Ich möchte moderne PCs und komplexe Systeme gegenüberstellen (viele Prozessoren - etwa 90 Milliarden Tests / Schlüssel pro Sekunde).
Der einfachste Weg, um die praktische Geschwindigkeit (sehr viel weniger als die theoretische) auf einem modernen PC zu erreichen, besteht darin, nur einen Teil eines Schlüsselbereichs zu durchlaufen. Messen Sie, wie viele Schlüssel tatsächlich eingecheckt wurden, und wie viel Uhr es ist. (Oder jede Zeitspanne, die lang genug ist, um einen Durchschnitt zu bilden).
Dies ist keine sehr wissenschaftliche Lösung, aber Sie erhalten sehr gute praktische Antworten.
Wie ist es möglich, etwa 4-Kerne-3,5-GHz-Prozessor in Anzahl von Operationen pro Sekunde umzuwandeln?
Es ist nicht. Unterschiedliche Vorgänge erfordern eine unterschiedliche Anzahl von Zyklen. Eine einfache Addition kann nur einen Taktzyklus dauern. Eine Multiplikation kann 80 Sekunden dauern. Sie müssen also im Voraus wissen, was Sie verwenden werden. Und um die Dinge noch komplizierter zu machen, müssen Sie keine thermische Drosselung annehmen. Sie müssen den anfänglichen Turbo-Boost kompensieren, der die ersten Sekunden der Berechnungen beschleunigt. Sie müssen die Umgebungstemperatur, die Qualität der Kühlung, ...
Und eine Million Tests pro Sekunde entspricht 800 MHz / 3k MHz?
Auch nicht, da MHz nicht angibt, wie schnell die CPU ist.
Die nächste nichttechnische Analogie ist der Vergleich mit der Motordrehzahl oder der Geschwindigkeit, mit der sich Ihre Beine beim Radfahren drehen. Ohne Angabe, in welchem Gang Sie sich befinden oder ob Sie einen 10CC-Motor oder einen riesigen 10-Liter-Motor verwenden.