2017-12-19 11 views
-1

In PHP.net mt_rand() und uniqid() werden als "nicht kryptografisch sichere Werte generiert" und ist mutig, statt random_int(), random_bytes() oder openssl_random_pseudo_bytes() zu verwenden.Was ist mit "kryptographisch sicher" gemeint?

Was ist mit "kryptographisch sicher" gemeint?

+0

Freunde [Google] (https://www.google.com/search?q=cryptographically+secure&rlz=1C1VFKB_enJP607JP618&oq=cryptographically+secure&aqs=chrome..69i57j69i60&sourceid=chrome&ie=UTF-8) und [Wikipedia] (https: //en.wikipedia.org/wiki/Cryptographic_secure_pseudorandom_number_generator) kann Ihnen dabei helfen, denke ich. – Geshode

+0

sagte, dass Freunde dir etwas über "Entropie" erzählen ... und nur zum Spaß ... https://www.random.org/analysis/dilbert.jpg – DarkSquirrel42

+0

@Geshode Ich denke, ich fragte diese Freunde und Stack Überlauf auch dazu. Und rate was? Ich fand keine klare Erklärung und dachte, es wäre gut, wenn ich eine Frage auch für andere erstellen würde. –

Antwort

1

Computer tun normalerweise nicht einen sehr guten Job bei einer wirklich Zufallszahl berechnet wird. Dies bedeutet, dass die Pseudozufallszahl, die ein Computer berechnet, vorhersagbar sein könnte.

Wenn diese Zufallszahl dann als Basis für den kryptografischen Schlüssel verwendet wird, dann kann der Schlüssel und damit die gesicherte Nachricht kompromittiert werden.

Ein kryptografisch sicherer Pseudozufallszahlengenerator (CSPRNG) ist einer, bei dem die erzeugte Zahl für jeden Dritten extrem schwierig ist, vorherzusagen, was es sein könnte. Dies bedeutet, dass kryptografische Schlüssel, die aus diesen Zufallszahlen abgeleitet werden, extrem schwer zu bestimmen sind, um die Sicherheit von Nachrichten mit solchen Schlüsseln zu gewährleisten.

Von

https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator

Idealerweise verwendet die Erzeugung von Zufallszahlen in CSPRNGs Entropie von einer hochwertigen Quelle erhalten, in der Regel die Zufälligkeit API des Betriebssystems. Jedoch wurden unerwartete Korrelationen in mehreren solcher angeblich unabhängigen Prozesse gefunden. Aus informationstheoretischer Sicht ist die Menge an Zufälligkeit, die Entropie, die erzeugt werden kann, gleich der Entropie, die das System liefert. Aber manchmal werden in praktischen Situationen mehr Zufallszahlen benötigt, als Entropie verfügbar ist. Auch die Prozesse zum Extrahieren von Zufälligkeit von einem laufenden System sind in der tatsächlichen Praxis langsam. In solchen Fällen kann manchmal ein CSPRNG verwendet werden. Ein CSPRNG kann die verfügbare Entropie über weitere Bits "strecken".

2

Bedeutet, dass die Werte erraten und vorhergesagt werden können, weil sie durch einen bekannten Algorithmus erzeugt werden.

Also sollten Sie nicht auf ihnen weiterleiten, wenn Sie Wert brauchen, dass Benutzer nicht erraten kann, was als nächstes kommen wird.

Betrachten Sie ein Pokerspiel, was wird sein, wenn der Benutzer erraten kann, was die nächste Karte ist?

können Sie prüfen, Details in diesem SO answer

Verwandte Themen