PDA

Ver la versión completa : Ayuda con encripacion



pax
30-01-2006, 16:24
Hola que tal, soy nuevo por aca, mi consulta es la siguiente:
Tengo un un sistema, con tablas separadas. Digamos tengo la tabla A con un id de codigo, y un tabla B que esta relacionada con A mediante el Id de codigo. El problema es que el sistema codifica el id de manerea que no se puedan relacionar los casos desde afuera, aca tengo algunos ejemplos.

CODIGO COIFIC
0000000001 00Gla9P
0000000002 00N7LI4
0000000003 00USlhj
0000000004 001EWQy
0000000005 007pwqN
0000000006 00eb7Z2
0000000007 00lXHyh
0000000008 00sIi7w
0000000009 00Gla9X
0000000010 00Gla9Y
0000000011 00Gla9Z
0000000012 00N7LIe
0000000013 00USlht
0000000014 001EWRI
0000000015 007pwqX
0000000016 00eb7Zc
0000000017 00lXHyr
0000000018 00sIi8G
0000000019 00Gla97
0000000020 00N7LIm
0000000021 00N7LIn
0000000022 00N7LIo
0000000023 00USliD
0000000024 001EWRS
0000000025 007pwq7
0000000026 00eb7Zm

Desde ya muchas gracias, si alguien tiene aunque sea una idea porque me estoy rompiendo la cabeza!
No le encuentro la vuelta al algoritmo...

SxR
30-01-2006, 20:31
no entiendo la relación de la tabla A con la B y la pregunta concreta.

pax
31-01-2006, 15:47
La cuestion es que existe una tabla A que tiene un id_tablaA. Y existen otras tablas relacionadas a esa tabla osea, tienen como dato id_tablaA, el problema es que en esas tablas esta codificado por ejemplo el id tabla
0000000001 corresponde a 5 caracteres 00Gla9P. Esa es la cuestion, tengo que decodificarlo para poder encontrar las relaciones, si alguien se da maña, copado!
Grax.

pax
06-02-2006, 04:44
Che, nadie tiene una idea para darme? Se me habia ocurrdio hacer una macro de windows, y yo me tiendo los ids manualmente (mediante un soft) le hacia crean un enlace al programa y creaba una tabla id id_codifcado con el ultimo valor creado. Lo que sucede es que son muchos datos y si mis calculos no me fallan tardaria como un año en tenerlos a todos. Tengo como 3000 campos relacionados, pero no puedo encotrar una solucion, si alguien tiene una idea seria muy bueno!
Gracias!

Marchi
07-02-2006, 02:18
...le hacia crean un enlace al programa y creaba una tabla id id_codifcado con el ultimo valor creado...
...Tengo como 3000 campos relacionados, pero no puedo encotrar una solucion, si alguien tiene una idea seria muy bueno!
Gracias!


No entiendo bien que queres decir entre los priemeros puntos suspensivos.

Tenes 3000 pares tabla A - tabla B?

Si es asi ponelos por que algo creo que encontre pero tendria que verificarlo.

Chau saludos

PD: de donde sacaste esto? que seria lo bueno de resolverlo?

SxR
07-02-2006, 19:14
Yo digo que no sea sencillísimo, pero esque aún ahora sigo sin entenderte.

Seré que soy cortito.

Marchi
07-02-2006, 21:05
Para mi lo que quiere decir es que supongamos que tengo una caja negra con una entrada y una salida, en la entrada pongo 0000000001 y en la salida obtengo 00Gla9P, vuelvo a poner en la entrada 0000000002 y en la salida obtengo 00N7LI4. Supongo que lo que quiere conseguier es la forma en que se pasa de la entrada a la salida, la caja negra. La caja negra puede ser una funcion o un algoritmo. Por ejemplo:
-----------------------------------------
X f(X) ------> f(X)=X^2
-----------------------------------------
1 1
2 4
3 9
4 16



Chau saludos

j8k6f4v9j
08-02-2006, 08:57
Pero si la relación entre la entrada y la salida pasa por un fuerte algoritmo de encriptación ... Es como casi imposible ¿no?

Quiero decir con esto, por ejemplo en encriptación con el algoritmo RC4 para cifrado WEP son necesarios un mínimo de unos 800.000 vectores de inicialización. Que ni siquiera es parte de código cifrado, sino una parte en texto plano incluída en la cabecera del paquete cifrado. Aprovechando la correspondencia con el texto cifrado, por ataque estadístico se puede conseguir la clave (ya conociemdo el algoritmo).

En el caso de nuestro amigo no conocemos ni la clave, ni el algoritmo y además sólo tenemos 26 correspondencias. ¿No se necesitarían bastantes más de 3000?

Salu2

pax
08-02-2006, 12:33
Antes que naa gracias por ayudar!. Lo de la caja negra estuvo barbaro. La mejor explicacion. Yo no creo que sea tan rudo el algoritmo de encriptacion. Con la macro y mi porgramita puedo sacar mas de 3.000 valores, lo que sucede es que necesito 99.000.000. Y lo terminaria como en un año dejando la maquina todo el dia. Tambien creo que tiene que ver con los valores ascii asignados de alguna manera. Por ejemplo, segun los numeros que yo analise. El numero mas a la derecha es que tiene mayor incidencia y que domina el codigo. digamos el numero 2
00000002 N7LI4 I=73 4=52
00000012 N7LIe I=73 e=101
00000020 N7LIm I=73 m=109
00000021 N7LIn I=73 n=110
00000022 N7LIo I=73 o=111
00000029 N7LIv I=73 v=118
00000032 N7LIy I=73 y=121
00000042 N7LJI J=74 I=73
00000052 N7LJS J=74 S=83
00000062 N7LJ2 J=74 2=50
00000072 N7LJc J=74 c=99
00000082 N7LJm J=74 m=109
00000092 N7LJw J=74 w=119
00000102 N7LKG K=75 G=71
00000112 N7LKQ K=75 Q=81
00000120 N7LKY K=75 Y=89
00000121 N7LKZ K=75 Z=90
00000122 N7LK0 K=75 0=48
00000129 N7LK7 K=75 7=55
00000132 N7LKa K=75 a=97
00000142 N7LKk K=75 k=107
00000152 N7LKu K=75 u=117
00000162 N7LLE L=76 E=69
00000172 N7LLO L=76 O=79
00000182 N7LLY L=76 Y=89
00000192 N7LL8 L=76 E=56
00000200 N7LLg L=76 g=103
00000201 N7LLh L=76 h=104
00000202 N7LLi L=76 i=105
00000209 N7LLp L=76 p=112
00000210 N7LLq L=76 q=113
00000211 N7LLr L=76 r=114
00000212 N7LLs L=76 s=115
00000219 N7LLz L=76 z=122
Si se fijan N7L es el comienzo. Esta bien que para numeros mas grandes va ir variando los valores en algun momento sera N8 y despues M pero por ahi hay alguna relacion. Si alguien quiere armo un .dbf o un xls y se lo mando con los numeros de rango que me pidan.
Igual me gusto mucho que se interesaran y dieran sus opiniones.
Un abrazo!

Marchi
08-02-2006, 15:55
Pero si la relación entre la entrada y la salida pasa por un fuerte algoritmo de encriptación ... Es como casi imposible ¿no?

Quiero decir con esto, por ejemplo en encriptación con el algoritmo RC4 para cifrado WEP son necesarios un mínimo de unos 800.000 vectores de inicialización. Que ni siquiera es parte de código cifrado, sino una parte en texto plano incluída en la cabecera del paquete cifrado. Aprovechando la correspondencia con el texto cifrado, por ataque estadístico se puede conseguir la clave (ya conociemdo el algoritmo).

En el caso de nuestro amigo no conocemos ni la clave, ni el algoritmo y además sólo tenemos 26 correspondencias. ¿No se necesitarían bastantes más de 3000?

Salu2

Tenes razon, pero esto no es nada semejante.
No se si viste las tablas pero los primero tres caracteres se repiten, no directamente pero es muy facil ver como se van distribuyendo, y lo unico que habria que tratar un poco son los ultimos dos como dijo pax.

Pax, si podes pasame el archivo, si es mucho trabajo hacer 3000 pares estaria bien con 200 +/-.

Chau saludos

pax
08-02-2006, 16:23
marchi, no hay ningun drama, te paso los datos que quieras...solo decime a que direccion y que formato, si queres te lo paso a texto plano.
Por lo menos lo que yo descubri es que el 9,el 0 y el uno son numeros no determinantes...los otros si, lo que pasa es que cuando hagarro un rango muy grande por ejemplo 50304203 ya cambio con respecto a los primeros en el sentido por ejemplo que los primeros numeros para 2 de eran N7L a lo merjor la N ya paso a R. Es un buen desafio, me tiene pensando mucho...gracias de nuevo

j8k6f4v9j
08-02-2006, 19:58
Tenes razon, pero esto no es nada semejante.
No se si viste las tablas pero los primero tres caracteres se repiten, no directamente pero es muy facil ver como se van distribuyendo, y lo unico que habria que tratar un poco son los ultimos dos como dijo pax.

Ahora sí que me he hecho la picha un lío. :confused:

En la última tabla que postea pax nohay mayor problema porque es cierto que sólo varía tras N7L.ñ Además en la correspondencia no hay ningún complejo algoritmo, ya que dicha correspondencia es directa teniendo en cuenta que tras la "z" viene el "0" hasta el "9" para continuar con la "a". Asi Para :



00000002 N7LI4 I=73 4=52
00000012 N7LIe I=73 e=101


00000002 N7LI4 I=73 4=52
00000003 N7LI5
00000004 N7LI6
00000005 N7LI7
00000006 N7LI8
00000007 N7LI9
00000008 N7LIa
00000009 N7LIb
00000010 N7LIc
00000011 N7LId
00000012 N7LIe I=73 e=101


Vemos que la correspondencia es simple. Por cada número una letra. No hay mayor misterio.


Pero es que en la primera tabla no era así, sino que eran datos completamente aleatorios :confused: :confused: :confused: :


CODIGO COIFIC
0000000001 00Gla9P
0000000002 00N7LI4
0000000003 00USlhj
0000000004 001EWQy
0000000005 007pwqN
0000000006 00eb7Z2
0000000007 00lXHyh

Seguro que estoy en la luna. Si me podéis aclarar qué me estoy dejando atrás.

Salu2

pax
08-02-2006, 20:42
Tenes Razón, los primeros numeros eran aleatorios y no se puede saber como es el codigo. en realidad hay que tomar rangos y ver como funciona. Yo empece con lo mas basico que es ver del 0..100 y ahi me di cuenta de que los que gobiernan son los numeros mas a la derecha, sin contar el 0,1,9. (esto es lo que pienso no). Por ejemplo:

00000001 Gla9P
00000002 N7LI4
00000003 USlhj
00000004 1EWQy
00000005 7pwqN
00000006 eb7Z2
00000007 lXHyh
00000008 sIi7w
00000009 Gla9X //aca es lo mismo que uno
00000010 Gla9Y

y aca que tenemos

00000021 N7LIn//el primero es 1 pero domina el comienzo de 2
y si busco por ejemplo 83 que domina el 3 es

00000083 USljB

Diganme si no esta lindo para decifrar! Le regalo un chocolate al que lo hace!
Grax!

Marchi
08-02-2006, 21:00
Si me das el chocolate de verdad lo saco :0=

Pasamelo a marchi87 |arroba| gmail |punto| com

En el formato que te sea mas facil, xls, txt, doc el que sea.

Chau saludos

j8k6f4v9j
08-02-2006, 21:07
@Marchi: jejeje, a ver, a ver... pero con +/- 200 dijiste ¿eh? (que por cierto no son demasiadas entradas para pegarlas aquí en una tabla de texto).

SxR
09-02-2006, 00:25
Pq no se lo envías a alguien y que lo postee y así podemos jugar todos?

pax
09-02-2006, 02:15
SxR: Diculpa, no comprendi bien, le envio el archivo con los codigos? con todo gusto, ya se lo envie a Marchi. Decime a quien se lo puedo mandar y con todo gusto se lo mando.
Grax.

SxR
11-02-2006, 01:57
envíame un PM y te doy mi mail para que me lo envíes.

Marchi
14-02-2006, 02:01
Pax, hay una diferencia entre los valores que pusiste en el primer post y en el archivo que me mandaste.

En el numero 16 esta en el archivo que me mandaste 7pwqX pero en el post dice eb7Zc.

No se cual tiene que ir, ni si hay mas errores mas adelante.
Miralo y decime como es.

Chau saludos

pax
15-02-2006, 01:36
Marchi, perdoname, no me habia dado cuenta, pero ese es el unico valor que esta mal, se me chispotió, el 15 esta bien y el 16 es
0000000016 00eb7Zc

Grax viejo!

Abrazos!

Marchi
15-02-2006, 02:34
Ok, mejor asi por que el otro valor lo complicaba.

En cuanto consiga algo te aviso.

Chau saludos

pax
23-02-2006, 22:07
Che tengo mas datos,600 aleatorios, me parece que nunca voy develar el misterio....

fiskalita_va
27-02-2006, 02:50
ken me enseña todo eso?

clarinetista
28-02-2006, 13:53
Que pregunta mas tonta.
Pues google.

fiskalita_va
01-03-2006, 07:24
me dices a mi???
k tiene k pregunte??
akaso no puedo???
las weas k pregunte es asunto mio
ahora si no kieres enseñarme no respondas y punto. :x

clarinetista
01-03-2006, 11:12
Estaba siendo sarcastico criatura.
Leete las normas del foro que te has saltado tres o cuatro.
Entre ellas hacer preguntas mas concretas.
No es que no quiera ayudarte, pero te digo lo mismo, leete esto:

http://www.hackhispano.com/foro/announcement.php?f=2

Un saludo

PD: Te pongo un enlace, pero cambia el chip, si no no te ayudara nadie

http://www.zonagratuita.com/a-cursos/hacking/CriptografiaBasica.htm

j8k6f4v9j
01-03-2006, 16:45
Eso! Enséñanos! Vaya manera de PEDIR.

Salu2

Men
02-03-2006, 02:36
eres grande Marchi!!!!

SxR
02-03-2006, 13:09
Halla Paz!!!!

Marchi
07-03-2006, 20:12
Hola pax, la verdad que se me habia quedado tapado por otras cosas el tema este de la "encriptacion", asi que pido perdon por haber dicho que lo intentaria. Pero bueno despues de algun tiempo me acorde y anoche me puse a verlo. Ya tengo algo pero te pido que me confirmes los valores del 00000067 y del 00000068.

00000067 00lXHzf
00000068 00lXHzf

Chau saludos

pax
09-03-2006, 18:22
Hola Marchi, gracias por preocuparte! Cada uno tiene sus tiempos y me parece muy copada tu contribucion.
Te paso los codigos
00000067 lXHzf
00000068 sIi8u.

Gracias de nuevo viejo y un abrazo.

PD: Encripación es un termino de un pais que no me acuerdo y significa encriptación difcil (je)

Marchi
10-03-2006, 06:18
Algo pude hacer...

A los codigos de la segunda tabla "el codigo encriptado", se lo puede considerar como un numero en un sistema sexabinario (base 62), en donde cada digito puede tener un valor entre 0 y 61.

De esta manera de la 'A' a la 'Z' tendrian el valor numerico del 0 al 25, del caracter '0' al '9' el valor numerico del 26 al 35 y de la 'a' a la 'z' del 36 al 61.


Los primeros 8 numeros son los primeros 8 multiplos de 'G l a 9 P' en decimal 6*62^4 + 47*62^3 + 36*62^2 + 35*62^1 + 15*62^0 = 100000001

Gla9P + Gla9P = N7LI4
N7LI4 + Gla9P = USlhj

y asi hasta tener los 8 primeros numeros.

Por lo que se podria resolver como

Si 0 < x < 9

f(x) = Gla9P * x


Si 2 =< x mod 10 =< 8

f(x) = x - (x mod 10) + (x mod 10) * Gla9P


-> f(x) = (x mod 10) * (Gla9Q) + x



Bueno esto da todos los numeros menos cuando la entrada (x) termina con 9, 0 ó 1.

Estoy tratando de ver bien como es que funciona en esos casos, por que se repite de forma medio rara.


Cualquier cosa pregunten :confused:


Chaus saludos

pax
12-03-2006, 20:17
Hola marchi, gracias por tu averiguacion!!!
Estoy un poco aturdido por unos temas personales, y creo que me cuesta pensar. La funcion que propones, no llego a comprender....f(x) es el valor encriptado? Me perdi con el algoritmo...los si que vienen abajo del primero siguien o tienen un else? y por ultimo el ultimo es una Q o tendria que ser una P y se te chipotio?

Gracias viejo!

Marchi
13-03-2006, 14:28
f(x) es el valor encriptado.

Eso no seria pseudocodigo ni nada de programacion, solo marcolos intervalos.

En el intervalo que va del 1 al 9 (sin incluir estos valores, 1 2 3 4 5 6 7 8) la funcion es f(x) = Gla9P * x

Y cuando x es mayor a 8 y su congruencia modulo 10 esta entre 2 y 8 (incluyendo estos valores) la funcion es f(x) = x - (x mod 10) + (x mod 10) * Gla9P que es igual a f(x) = (x mod 10) * (Gla9Q) + x


Es una Q, fijate que saco factor comun (x mod 10) entre - (x mod 10) y (x mod 10) * Gla9P lo que me da (Gla9P - 1) * (x mod 10)



En el caso de que x mod 10 = 9 ó 0 ó 1 hay una particularidad que tengo que terminar de ver.

Si se hace una lista de todos los x mod 10 = 9 se ve una lista creo que igual a la general donde x va pasando por todos los valores.



Chau saludos

pax
14-03-2006, 00:39
Impresionante viejo! Que maestro! Funciona copete, es cierto los de los lo de 0,1,9...pero el 70 por ciento esta solucionado! Estoy re contento, te debo un chocolate, si te sale el resto te debo una caja de bombones!

Un abrazo. y gracias de nuevo por contribuir!

(como te salio tan rapido?)