1: | - Randomize |
![]() ![]() |
Wie kann ich das ganze so gestalten, dass es nicht nur 2^32 Möglichkeiten gibt?
Wenn ich z.B. ein Byte-Array mit 10^6 Werte haben will, dass 2^(8* 10^6) Möglichkeiten hätte und nicht nur 2^(8*4) Byte. |
1: | a(k+1) = a(k)² + c (mod p) |
![]() ![]() |
... und somit 2^(8*10^6) Möglichkeiten |
1: | for i:=1 to 1000000 do wert[i]:=random(256); |
1: | var aByteArr: Array of Byte; |
![]() ![]() |
Du willst 8 Millionen Bit = 1 Million Byte zufällig füllen. [...]
Zwar sind einige wert[i] mit anderen wert[j] gleich. Durch randomize/randseed sind es aber jedes Mal andere. Dadurch bekommst Du stets eine Pseudozufallsfolge. Echte Zufallszahlen bekommst Du mit einem deterministischen Zufallsgenerator ohnehin nicht. |
![]() ![]() |
Leider hat man dann nach ein paar werten evt. schon den Seed ! |
1: | x(i) = (c · x(i-1)) mod p |
![]() ![]() |
Machs richtig ;)
|
![]() ![]() |
Zufallszahlen gibt es auch im Internet mit 1.41 trillion random bits |
![]() ![]() |
Zufallszahlen gibt es auch im Internet mit 1.41 trillion random bits :
|
![]() ![]() |
Wenn man alle 2^32 Möglichkeiten aufbaut (der Randomseed) und dann die Bytewerte mit dem Bytearray vergleichen würde, so käme man denke ich schon relativ schnell dazu, welcher Seed verwendet wurde... |
![]() ![]() |
Da du offenbar gerne Rätsel stellst, generiere doch mal eine Folge mit Hilfe des Delphi-PRNG, poste die ersten 100 Glieder und lasse andere Leute die nächsten paar Zahlen herausfinden. :wink: |
1: | 65, 84, 227, 44, 90, 133, 59, 140, 155, 66, 83, 10, 72, 7, 255, 163, 64, 169, 122, 162, 109, 174, 11, 139, 198, 160, 162, 218, 129, 34, 24, 245, 46, 178, 252, 230, 214, 101, 34, 191, 89, 8, 80, 196, 175, 120, 198, 175, 190, 22, 129, 188, 229, 158, 105, 64, 124, 229, 218, 254, 220, 35, 46, 135, 182, 227, 52, 71, 202, 184, 198, 30, 66, 71, 229, 151, 74, 93, 7, 38, 163, 4, 132, 252, 70, 226, 82, 87, 92, 79, 117, 101, 37, 236, 210, 27, 135, 174, 82, 143, |
1: | 327B0797CD195BD801B0A20D9CF879358C967AFB5DC845BA1719AFF827C5AC236E8FE679A382E56709F11A13F0AB14BD4F71A41D42ACC5156D4230019BBDB8C489E57F2F98D9024B5A77C3CA84EBA1D9E772533833E94F97AD25924BD34B63EE3E29F1D1F0E988C196BB424B30C736F6D7E4157F6A1C6AB14DD0DF2AAB5245F3E55C335A22B80A3BB99B26388339E94859EB3AF1471F51E120D7C7552AE87BECD775F1FB18FC5AE1BA74C3767F70894CA8203CCED488E3922EE82DEEF5D433159E215E17EEB57F9E5E0ED599058F809D41847C2E49E54F74F34E1A2ADB32F192C60EE39D718171748D05807337F957 |
1: | 65, 84, 227, 44, 90, 133, 59, 140, 155, 66, 83, 10, 72, 7, 255, 163, 64, 169, 122, 162, 109, 174, 11, 139, 198, 160, 162, 218, 129, 34, 24, 245, 46, 178, 252, 230, 214, 101, 34, 191, 89, 8, 80, 196, 175, 120, 198, 175, 190, 22, 129, 188, 229, 158, 105, 64, 124, 229, 218, 254, 220, 35, 46, 135, 182, 227, 52, 71, 202, 184, 198, 30, 66, 71, 229, 151, 74, 93, 7, 38, 163, 4, 132, 252, 70, 226, 82, 87, 92, 79, 117, 101, 37, 236, 210, 27, 135, 174, 82, 143, |
1: | var i,x,r,test:integer; |
1: | var T: TDateTime; |
![]() ![]() |
Du willst für 2^32 = 4294967296 Folgen, sagen wir 10 Glieder, ausrechnen? Das sind 42 Milliarden Bytes! Und die willst Du in vertretbarer Zeit abgleichen.
Ich lasse mich gern vom Gegenteil überzeugen. Aber ich denke nicht, dass das so einfach und hinreichend schnell ist. Und wenn ich bösartig bin und vor dem Füllen der Werte erst 100 Zufallszahlen "wegwerfe" |
1: | RandSeed:= RandSeed * $08088405 + 1; |
![]() ![]() |
Derjenige, der das Knacken will, MUSS wissen, dass es so erzeugt wurde! |
![]() ![]() |
![]() |
![]() ![]() |
Ich weiß nicht, woher Du die maximale Periode von 2^256 hast |
![]() ![]() |
In MPArith/RSA wird zusätzlich noch der TSC verwendet (falls vorhanden und gewünscht). |
![]() ![]() |
Weiter ist die Verwendung von isaac_init0 nur eine von drei Seeding-Methoden, ja diese verwendet randomize und random, die Basis-Init-Routine isaac_inita verwendet 8192 Bits. |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!