elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Como implementar una función que haga esto?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: Como implementar una función que haga esto?  (Leído 9,814 veces)
@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: Como implementar una función que haga esto?
« Respuesta #10 en: 27 Noviembre 2019, 22:00 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.


En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Como implementar una función que haga esto?
« Respuesta #11 en: 27 Noviembre 2019, 22:09 pm »

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


En línea

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
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: Como implementar una función que haga esto?
« Respuesta #12 en: 28 Noviembre 2019, 00:13 am »

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 */




En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Como implementar una función que haga esto?
« Respuesta #13 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...
En línea

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
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: Como implementar una función que haga esto?
« Respuesta #14 en: 28 Noviembre 2019, 01:00 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.
En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Como implementar una función que haga esto?
« Respuesta #15 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)

Citar
Puede 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

En línea

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


Desconectado Desconectado

Mensajes: 1.201


Superhacker (es broma xD )


Ver Perfil
Re: Como implementar una función que haga esto?
« Respuesta #16 en: 28 Noviembre 2019, 03:08 am »

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.
En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: Como implementar una función que haga esto?
« Respuesta #17 en: 28 Noviembre 2019, 10:52 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.
En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Como implementar una función que haga esto?
« Respuesta #18 en: 28 Noviembre 2019, 14:10 pm »

Citar
así 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

Citar
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

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...
En línea

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

Desconectado Desconectado

Mensajes: 287



Ver Perfil
Re: Como implementar una función que haga esto?
« Respuesta #19 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.
En línea


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.
Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Como me aconsejais que haga esto en PHP?
PHP
vicmarcal 6 2,803 Último mensaje 19 Julio 2007, 20:48 pm
por vicmarcal
Como creo un botón que haga la función de imprimir?
Programación General
1adria1 1 1,905 Último mensaje 11 Febrero 2013, 16:30 pm
por 1adria1
Como creo un botón que haga la función de imprimir?
Java
1adria1 4 5,597 Último mensaje 11 Febrero 2013, 22:30 pm
por sapito169
Como implementar función Ajax - Autocomplete
PHP
Jarcx9 9 3,356 Último mensaje 30 Septiembre 2014, 17:04 pm
por Jarcx9
duda acerca de como implementar un función en este codigo.
Programación C/C++
tayzuke 1 1,735 Último mensaje 5 Julio 2016, 16:48 pm
por AlbertoBSD
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines