Ich habe einen einfachen Zufallsgenerator entworfen, der mit einer Multiplikations- und einer Modul-Methode zwei Zahlen chaotisch durchläuft. Dafür funktioniert es großartig.
Wenn ich es als Chiffregenerator verwenden würde, wäre es jedoch anfällig für einen bekannten Klartextangriff, da ein Angreifer den Startwert aus einer Reihe von Zufallszahlen auf recheneffiziente Weise zurückentwickeln kann.
Um zu beweisen, dass die Verschlüsselung fehlerhaft ist, suchen Sie ein zulässiges Startwertpaar, das 7 Nullen in einer Reihe im Bereich [0; 255] generiert und dabei so wenig Energie, CPU-Zeit usw. wie möglich verbraucht.
Hier ist der Zufallsgenerator in JavaScript geschrieben:
function seed(state1,state2){
//Constants
var mod1=4294967087
var mul1=65539
var mod2=4294965887
var mul2=65537
function random(limit){
//Cycle each state variable 1 step
state1=(state1*mul1)%mod1
state2=(state2*mul2)%mod2
//Return a random variable
return (state1+state2)%limit
}
//Return the random function
return random
}
//Initiate the random generator using 2 integer values,
//they must be in the ranges [1;4294967086] and [1;4294965886]
random=seed(31337,42)
//Write 7 random values in the range [0;255] to screen
for(a=0;a<7;a++){
document.write(random(256)+"<br>")
}
Ich habe ein Tool zum Testen von Kandidatennummernpaaren erstellt, das hier zu finden ist .
Für die nächsten 3 Tage sind keine Spoiler erlaubt , eine Antwort darf nur eine Reihe von Zahlen enthalten und sollte natürlich eine andere sein als die von früheren Solvern. Danach werden Sie aufgefordert, Ihre Postleitzahl anzugeben und Ihre Vorgehensweise zu erläutern.
Bearbeiten, Quarantäne ist beendet: Die
Antworten sollten sowohl eindeutige Zahlen als auch Erklärungen und Codes enthalten, um die Lösungsmethode zu dokumentieren.
Die eleganteste Lösung gewinnt.
Fürs Protokoll:
Ein Programm zu schreiben, das schnell eine Lösung findet, ist elegant.
Es ist elegant, ein Programm zu entwickeln, das die Funktionen einer GPU effizient nutzt, um es noch schneller zu machen.
Die Arbeit an einem Stück "Museumsgeschirr" ist elegant.
Es ist sehr elegant, eine Lösungsmethode zu finden, die nur mit Stift und Papier verwendet werden kann.
Elegant ist es, Ihre Lösung auf lehrreiche und leicht verständliche Weise zu erklären.
Die Verwendung mehrerer oder sehr teurer Computer ist unelegant.