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: engel lex en 27 Noviembre 2019, 21:56 PM
te recomiendo leer sobre como funcinoa rijandel (la base de aes) para no tener que depender de aleatorios... especialmente de aleatorios de "alto nivel"
No le veo mucho sentido hashear la password. Para eso cifro directamente con aes y no creo un cifrado.
No quiero que mi cifrado dependa de algoritmos que dada X potencia se puedan romper.

engel lex

todo algoritmo depende de que X potencia lo puede romper XD es imposible hacerlo infinito a menos que tengas una contraseña infinita con data infinita XD por otro lado al hash ser mas largo que la contraseña no es sensible a colision (eso se hace en aes)... por otro lado, para nada es malo el proceso de expasion de contraseña, es base en cualqueir procedimiento decente para evitar el ataque estadistico

por otro lado no hablaba de la contraseña te hablaba del proceso

por cierto, para evitar el ataque de potencia puedes simplemente hacer algo terrible, que es hacer un proceso que sea tan ridiculamene extenso en proceso que sea muy lento como para dedicar un ataque de diccionario... es decir, puedes hacer un 100-DES XD
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.

@XSStringManolo

Claro que es posible. Si yo cifro el texto "a" y el resultado es "b", si no sabes la clave que utilicé, jamás sabrás que cifré el texto "a". Es imposible aún con infinita capacidad de cómputo. Todas las posibilidades son igual de probables. Da igual que tengas infinita capacidad de cómputo.

DiccionarioEjemplo = "abcdefg";
a = 1, b = 2, ..., g = 7;
while (x > dicTamaño) DiccionarioEjemplo -= 7;
a + g = 8; /* a */
b + f = 8; /* a */
c + e = 8; /* a */
d + d = 8; /* a */
e + c = 8; /* a */
f + b = 8; /* a */
g + a = 8;/* a */





engel lex

no, existe probabilidad finita... ergo existe una potencial tal que...

y con la clave expandida por hash no? XD tu base es 8bit de largo en aes es 128 bits, aun así asumes que la tuya es imposible en base a computo...

por otro lado, recuerda que si el algoritmo es publico (y c omo programador sabes que a fin de cuentas siempre lo termina siendo asi sea a la fuerza) vienen los ataques estadisticos y allí es donde metodos con azar fallan porque a final de cuenta el azar es en la generacion pero si te dan cadenas continuas de unos o ceros van debilitando el algoritmo, por eso rijandel usa la tabla de intercambio estatica... porque la misma asegura que esto no pase...
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.

@XSStringManolo

Cita de: engel lex en 28 Noviembre 2019, 00:37 AM
no, existe probabilidad finita... ergo existe una potencial tal que...

y con la clave expandida por hash no? XD tu base es 8bit de largo en aes es 128 bits, aun así asumes que la tuya es imposible en base a computo...

por otro lado, recuerda que si el algoritmo es publico (y c omo programador sabes que a fin de cuentas siempre lo termina siendo asi sea a la fuerza) vienen los ataques estadisticos y allí es donde metodos con azar fallan porque a final de cuenta el azar es en la generacion pero si te dan cadenas continuas de unos o ceros van debilitando el algoritmo, por eso rijandel usa la tabla de intercambio estatica... porque la misma asegura que esto no pase...
No hace falta ni que el ordenador calcule. El algoritmo es tan simple que lo puedes calcular de cabeza. Tienes un diccionario de 100 caracteres? Pues 100 combinaciones posibles para 1 valor.
Cuando todos los algoritmos de uso frecuente se basan en capacidad de cómputo teórica... Puede que mañana se descubra una propiedad matemática que no se conocía, o una nueva forma de aplicar la tecnología y se puedan romper todos estos cifrados basados en que la capacidad de cómputo no es suficiente.

engel lex

Tienes un diccionario de 100 caracteres? Pues 100 combinaciones posibles para 1 valor.

no son un diccionario de 100 caracteres... son 16 rondas con un diccionario de 2128 caracteres (cada vez diferente) ya que el hash no queda puro, se hacen 2 procesos luego con el... a demas aunque consiguieras alguna forma de retornar un hash a su valor original, y luego pudieras reversar las piezas del hash, ellas mismas están mezcladas con la data...


XD realmente revisaste como se hace un sha256 y que hace rijandel? (ojo aes no es 100% rijandel, es basado en)

CitarPuede que mañana se descubra una propiedad matemática que no se conocía

entiendes como funciona la matematica en ese aspecto? XD en tal caso sería un algoritmo

tu algoritmo (si es el mismo que ya llevabas) va en camino a ser el de la maquina enigma...

antes de negarte estudia los algorimos, ve los puntos fuertes y debiles, a demas que puedes tomar de ellos... no puedes mejorar algo si no conocces los mejores... por otro lado aes no es el mas fuerte al igual que sha, solo son solidos matematica y algoritmicamente (justamente a lo que expones, ya que fue probado contra eso) y aplicables en logica pura electronica... pero tienes otros mucho mas fuertes en todo aspecto que no cumplieron las caracteristicas de velocidad y aplicabilidad

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.

Tachikomaia

Estoy muy perdido, pero creo que hubo un error en mi code y tal vez por eso no te funcione. Luego de intercambiar unas partes del array1, tienes que intercambiar los valores del array que hiciste de números. Eso no implica cambiar el array2, puedes crear otro para los números.

@XSStringManolo

Cita de: engel lex en 28 Noviembre 2019, 02:01 AM
Tienes un diccionario de 100 caracteres? Pues 100 combinaciones posibles para 1 valor.

no son un diccionario de 100 caracteres... son 16 rondas con un diccionario de 2128 caracteres (cada vez diferente) ya que el hash no queda puro, se hacen 2 procesos luego con el... a demas aunque consiguieras alguna forma de retornar un hash a su valor original, y luego pudieras reversar las piezas del hash, ellas mismas están mezcladas con la data...


XD realmente revisaste como se hace un sha256 y que hace rijandel? (ojo aes no es 100% rijandel, es basado en)

entiendes como funciona la matematica en ese aspecto? XD en tal caso sería un algoritmo

tu algoritmo (si es el mismo que ya llevabas) va en camino a ser el de la maquina enigma...

antes de negarte estudia los algorimos, ve los puntos fuertes y debiles, a demas que puedes tomar de ellos... no puedes mejorar algo si no conocces los mejores... por otro lado aes no es el mas fuerte al igual que sha, solo son solidos matematica y algoritmicamente (justamente a lo que expones, ya que fue probado contra eso) y aplicables en logica pura electronica... pero tienes otros mucho mas fuertes en todo aspecto que no cumplieron las caracteristicas de velocidad y aplicabilidad
Yo te estaba hablando de mi algoritmo no de AES. Para usar Rijndael prefiero usar Serpent que es más seguro. Pero todos se basan en lo mismo.
Lo que te digo es que no tiene sentido que hashe la contraseña de mi cifrado porque el mismo depende de que el atacante no conozca la contraseña. Hashearla no sirve de nada.
Si conozco Rijndael, Serpent, DES, etc. Si conozco las propiedades matemáticas que dificultan el cálculo, si no, no haría un cifrado distinto.

En ciertos aspectos si tiene similitudes con Enigma. Por ejemplo se deben utilizar contraseñas distintas para cada cifrado. Uno de los mayores problemas que tuvo enigma fue que utilizaban una contraseña diaria, por lo que había días que los ingleses rompían el cifrado a primera hora de la mañana y podían obtener todas las comunicaciones en tiempo real de los alemanes para ese día. En mi caso el planteamiento se asemeja mucho a un One-Time-Pad (libreta de un solo uso). Con ajustes para eliminar la correlación del texto plano con el cipher text, la libreta de un solo uso es 100% irrompible. El mayor problema para su uso reside en el intercambio de claves y en que el cifrado guarda correlación. Utilizando un IV por cada cifrado generado y con algunos ajustes no sería extrictamente necesario cambiar la clave para cada cifrado. En la elección de Rijndael como estandar  aes había chanchullo ya que se uso hardware favorable y se priorizó velocidad sobre seguridad. Serpent era más seguro y en el propio hardware de la época la diferencia de velocidad era imperceptible. En cambio optaron por utilizar procesadores de pocos HZ para aumentar la diferencia de velocidad y así disponer de un cifrado que los gobiernos pudiesen romper.

engel lex

Citarasí disponer de un cifrado que los gobiernos pudiesen romper.

claro porque los criptografia es una religion, todos la aceptan, no la juzgan y nadie tiene el conocimiento para ponerlo a prueba XD

CitarLo que te digo es que no tiene sentido que hashe la contraseña de mi cifrado porque el mismo depende de que el atacante no conozca la contraseña

e insisto.... no hablaba de la contraseña... hablaba del procedimiento de rondas... y la contraseña se hashea para exetenderla a un modo standard...
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.

animanegra

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.

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.