Hola Zosemu:
Muchas gracias por tu comentario. A ver, estoy de acuerdo contigo en algunas cosas y no en otras:
Es cierto que son dos caracteres, y el primero varía con la POSICIÓN, pero NO con el TAMAÑO.
Para demostrarlo me remito a esto que publiqué en uno de los primeros comentarios:
aaaa ^@7xY;T6
aaaaaaaaaaaaaaaaa ^@7xY;T6Q30qdF6wxZ#d^@I+wYG)6w$eX:
El tamaño de la cadena es distinto en ambos sin embargo (a partir del 4 caracteres) el primer carácter siempre es el mismo para cada CARÁCTER, en cada POSICIÓN.
Con respecto a que se modifica el primer carácter cuando el tamaño de la cadena es múltiplo de cuatro, tampoco creo que sea correcto. Te paso como referencia estos cifrados que también publiqué anteriormente:
00000 ]mVf(81A^n
00001 ]mVf(81A^o
00010 hxIYbrz,<L
00011 hxIYbrz,<M
00100 gw)9J[AQ!1
00101 gw)9J[AQ!2
00110 q"y*'8->]m
00111 q"y*'8->]n
01000 (8$5=MHX?O
01001 (8$5=MHX?P
01010 3Ct&x)3D{,
01011 3Ct&x)3D{-
01100 2BSd_pXh`p
01101 2BSd_pXh`q
01110 <LFW<MCT?O
01111 <LFW<MCT?P
10000 CTo >N3C4D
10001 CTo >N3C4E
10010 N_brx){-p!
10011 N_brx){-p"
10100 M^BR`qCSUe
10101 M^BR`qCSUf
10110 Wh5E=N.?4D
10111 Wh5E=N.?4E
11000 k|=NTdIYs$
11001 k|=NTdIYs%
11010 v(0A1A5FRb
11011 v(0A1A5FRc
11100 u'l}u'Yi6F
11101 u'l}u'Yi6G
11110 3_pSdEVr#
11111 3_pSdEVr$
Mi teoría es que el primer carácter varía DEPENDIENDO DE LOS CUATRO PRIMEROS CARACTERES DE LA CADENA. Para demostrar mi teoría he cifrado los siguientes valores:
aaaaaaaaaa ^@7xY;T6Q30qdF6wxZ#d
baaaaaaaaa D'P2oQV8(i@"F(+l&g2s
abaaaaaaaa )jaDoQkM3tA#"cnPA#O1
aabaaaaaaa gIgI{^dFrTU7wYy[mOC%
aaabaaaaaa iK*k6w@#0qlNbD3t]?#d
aaaabaaaaa ^@7xY;T6Q40qdF6wxZ#d
aaaaabaaaa ^@7xY;T6Q30rdF6wxZ#d
aaaaaabaaa ^@7xY;T6Q30qdG6wxZ#d
aaaaaaabaa ^@7xY;T6Q30qdF6xxZ#d
Como ves, cuando los 4 primeros caracteres son distintos, el cifrado es completamente distinto, pero cuando los 4 primeros caracteres se mantienen igual, el cifrado es el mismo.
Con respecto a tu teoría del ruido, he metido los dos valores que me has dado y descarta tu teoría:
O^DR>qESWf cSkJ!epc9WB4[AJ>qilS
M^BR`qCSUf 't7ukNM@K,3%rV5)sijQ
Con respecto a la cantidad de caracteres ASCII con los que este algoritmo juega, creo que son muchos más que los que citas. Para probarlo, introduje un carácter especial (®) y cifró paréntesis de apertura "(" y un carácter que es una T invertida...
Para estudiar el comportamiento del algoritmo, he ido incrementando el 4 carácter, y este ha sido el resultado:
aaaaaaaaaa ^@7xY;T6Q30qdF6wxZ#d
aaabaaaaaa iK*k6w@#0qlNbD3t]?#d
aaacaaaaaa sUz\qS,olNK-`B0qA#"c
aaadaaaaaa !bmON0tYK-+l_A-n&g!b
aaaeaaaaaa ,m`B+l`F*kgI]?*kgI!b
aaafaaaaaa 6wT6fHL3fHG)[='hL.}_
aaagaaaaaa A#G)C%7~E'&gZ<$e0q}_
aaahaaaaaa L.:{}_#k$ecEX:!brT|^
aaaiaaaaaa W9-nZ<lV`BB$V8{]V8{]
aaajaaaaaa aC}_8yWB?!!bU7xZ:{{]
aaakaaaaaa lNpRrTC/{]^@S5uW|^z\
Lo he intentado mirar por todos los ángulos y no le encuentro ninguna lógica, todo parece tan random cuando se le modifica uno de los 4 primeros caracteres... Estamos sin lugar a dudas en un algoritmo bastante complejo... Alguna idea por donde continuar investigando?? Muchas gracias a los dos por seguir involucrándoos en este algoritmo. Un saludo a los dos.