Como implementar una función que haga esto?

Iniciado por @XSStringManolo, 26 Noviembre 2019, 00:41 AM

0 Miembros y 1 Visitante están viendo este tema.

@XSStringManolo

Cita de: animanegra en 28 Noviembre 2019, 14:55 PM
Leyendo parece que se esta hablando de un Verman (o algo asi porque deriva en este tema la barca hacia lados curiosos :) ). No se si se ha dicho ya, pero lo de usar claves igual de largas que el mensaje esta muy bien a nivel teórico pero no funciona a nivel práctico.
Verman ya mola y cualquier equivalencia usando ordenación o cualquier otra cosa similar esta bien pero ninguna de las opciones (verman original o derivados) mola tanto a nivel práctico. Como le tienes que pasar al receptor la secuencia de caracteres por una via segura, y es del mismo tamaño, Joder simplemente pásale el mensaje por esa vía segura. :)
Para que el cifrado sea util, el intringulis del asunto siempre está en lo mismo, conseguir pasar la pass simétrica, que debería ser pequeña, por un medio seguro dentro de un canal inseguro y que el mensaje que sale tenga suficiente entropia. Y ahi el poder de cómputo tiene al voz cantante.
Tal cual está ahora mismo es exactamente un Vernan. En Github tengo una implementación en PHP en la que explico exactamente esto. Que diseñando mi cifrado llegué a la misma conclusión y un diseño similar al de Vernan. En el PHP utilizo bloques de 7 bytes con diccionario de 127 caracteres. Coincido con todo lo que dices.

El tema está en el uso que se de al cifrado. Por ejemplo puedo mejorar la seguridad de una base de datos aplicándole el cifrado y por tanto la contraseña no necesita ser intercambiada. El problema que quiero solventar es el de la correlación para hacer el cifrado irrompible. Esto me permitiría operar con bases de datos alojados en servidores externos.

Uso práctico:
-Creo base de datos con datos de mi empresa.
-La cifro para poder hostearla en servicios externos y que no me suponga coste extra.
-Para operar descargo el archivo que desee. Lo descifro de forma local. Utilizo la información.
-Cifro con nueva contraseña al estilo One-Time-Pad y vuelvo a almacenar el contenido que utilicé en la base de datos.

animanegra

Pero el tema es que la longitud de la clave es la misma que los datos almacenados. Lo que almacenas en otros sitios no vale para nada, ose me refiero la longitud de los datos que almacenas de forma remota y de forma local son de la misma longitud. Entonces no veo muy bien la utilidad de tener esos datos que solo tienen sentido con tu password local almacenados de forma remota.
Osea, si la idéa es que no puedan coger los datos si no estás tu delante, bajo mi punto de vista, me parece casi mejor idea llevarte un USB/CD del mismo tamaño de los datos almacenados lleno de números aleatorios y descifras con eso cada vez que desees utilizar la base de datos. El USB por lo menos verás cuando te lo roban. :) Y no pueden cogerte las credenciales 365/24. La posibilidad de copia, la tendras igual, pero al menos no dependerás de como lo guarda un tercero y dependerá sólo de ti.
No obstante a nivel práctico, yo personalmente tiraria de cualquier cifrado simétrico con clave suficientemente larga.
Pero es sólo mi punto de vista. :) puedes no estar de acuerdo.

42
No contesto mensajes por privado, si tienes alguna pregunta, consulta o petición plantéala en el foro para que se aproveche toda la comunidad.

@XSStringManolo

Cual es el problema de que tengan el mismo tamaño? Qué indicas al atacante cual es el tamaño de la cadena original y el tamaño de la clave que tiene que probar? O cual? Yo creo que da igual una vez se rompa la correlación entre plaintext y ciphertext ya que pruebes lo que pruebes nunca sabes cual es el resultado correcto debido a que todas las combinaciones posibles. Es decir, un texto cifrado de 4 caracteres a descifrar te dará todas las palabras posibles de 4 caracteres, ya sea en español, inglés, etc.

PD: Pensando sobre la correlación podría usar 3 capas de cifrado al estilo tripleDes, pero sin necesidad de cambiar la clave por cada capa, ya que lo que importa es que no exista correlación para análisis estadístico. Se pueden hacer mucha cosas.

engel lex

Cita de: @?0!,5^34 en 28 Noviembre 2019, 23:16 PM
Cual es el problema de que tengan el mismo tamaño? Qué indicas al atacante cual es el tamaño de la cadena original y el tamaño de la clave que tiene que probar? O cual? Yo creo que da igual una vez se rompa la correlación entre plaintext y ciphertext ya que pruebes lo que pruebes nunca sabes cual es el resultado correcto debido a que todas las combinaciones posibles. Es decir, un texto cifrado de 4 caracteres a descifrar te dará todas las palabras posibles de 4 caracteres, ya sea en español, inglés, etc.

PD: Pensando sobre la correlación podría usar 3 capas de cifrado al estilo tripleDes, pero sin necesidad de cambiar la clave por cada capa, ya que lo que importa es que no exista correlación para análisis estadístico. Se pueden hacer mucha cosas.

si haces 3des con una misma contraseña la fuerza es la de 1 des, ya que solo tienes que repetir 3 veces en 1 solo bloque que hoy dia con la fuerza de des es perfectamente viable
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.