TCH (statz) | #1, Főfasz (10443) |
1090 | #17ac | ^ | Idézet | Thu, 10 Nov 2011 12:03:42 +01 |
46.107.*.* | *.catv.pool.telekom.hu |
Úristen. XDDDDDD Ja kemi, eszembe jutott valami a táblás verzióhoz a titkosítóban. Ugye az eredeti RC azért olyan rohadt lassú mert véletlen sorban tölti fel a táblát és ha már létező értéket dob az rnd akkor az nem kerül bele, így 256 kör helyett akár több ezer is lehet egy generálás. Viszont. Ha van egy tábla már alapból, amiben 0-255-ig benne van az összes érték és ezt kevergetjük véletlenszerűen, akkor az sokkal gyorsabb lesz. var tbl: Array[0..255] of Byte; Procedure gentbl; var i: Byte; Begin For i := 0 To 255 Do Begin tbl[i] := i; End; End; Procedure shuffletbl; var i, b, c: Byte; Begin For i := 0 To 255 Do Begin c := Random(256); b := tbl[c]; tbl[c] := tbl[i]; tbl[i] := b; End; End;És ezt a suffletbl eljárást minden byte elkódolása előtt meghívjuk. Meg az is eszembe jutott, hogy ha "véletlen" titkosítást akarunk, akkor kell a saját random generátorunk, mert ha a véletlenszám előállítását rábízzuk a rendszerre, akkor az függeni fog a rendszer véletlenszámgenerátorától. Pl. Elkódolom BSD-n, Linuxon már nem fogom tudni kinyitni. |