Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - APOKLIPTICO

#181
Criptografía / Re: Una duda
20 Julio 2011, 14:43 PM
Hola, por favor utilizá títulos descriptivos para tus temas, "Una duda" no es un buen título.
En cuanto al hash, es extraño, porque no parece ser base64, pero tiene números, a-z y A-Z, quizas algun tipo de expansión de 62 caracteres. Pero sin embargo, puede llegar a ser un hash de 256 bits con base64, es extraño la verdad, si fuese un hash de 256 bits, es probable que seas SHA-2-256. De que página lo sacaste? Osea, lo que interesa es qué plataforma está utilizando.

Un abrazo
APOKLIPTICO.
#183
Eso no es una cookie, eso es un sqlinjection. Lo muevo a warzone.
#184
Claro claro, eso mismo lo aclaré, pero aún así el consumo de un quad fire de hd5870 es mayor al de un dual hd5970, aparte de que es más caro comprar 4 hd5870 que 2 hd5970.
#185
También podés analizar las palabras para buscar correlaciones, es decir, la palabra "auto" tiene unas determinadas diferencias entre sus letras, de la "a" a la "u" hay una cantidad de caracteres de la "u" a la "t" hay otra y así, si vos agarrás ese "patrón" y lo buscás en el texto, si encontrases una palabra que siguiese ese patrón, entonces lo más probable es que esa sea la palabra que tengas que reemplazar. La otra opción, es utilizando un diccionario.
#186
La estructura es bastante simple, le tendrías que dar de datos de entrada al programa la frase cifrada, la palabra descifrada (o incluso el caracter cifrado, ya que sólo se necesitaría eso) y la ubicación de la palabra o caracter en el texto. Luego el programa tendría que hacer una diferencia para ver cuál es la clave, y descifrar el texto con esa clave, no veo cual es el problema.
#187
Hola! Mirá, lo que se suele hacer con cifrado cesar, es un análisis de frecuencias, aunque realmente es bastante simple de crackear, si tenés una palabra entera, y sabés en donde está, lo único que tendrías que hacer es fijarte cuantos desplazamientos se están haciendo. Por ejemplo:
"Uq vwujzm ma Ixwstqxbqkw g awg cacizqw lm mtpiksmz.vmb lmalm mt 22 lm Vwdqmujzm lm 2004."

Uno entonces puede pensar que "Vwdqmujzm" puede significar un mes, los únicos meses que tienen 9 letras, son "Diciembre" "Noviembre" y si se escribe de esa manera "Setiembre". Diciembre no puede ser, porque la segunda y cuarta letra deberían ser iguales y "Setiembre" no puede ser, porque la tercera letra debería ser "w" en vez de "d". Nos queda que es "Noviembre".
Agarramos y nos fijamos que la cantidad de letras entre "N" y "V" son 8. Desciframos el texto con esa clave y nos queda:

"Mi nombre es Apokliptico y soy usuario de elhacker.net desde el 22 de Noviembre de 2004."

Un abrazo
Apokliptico

PD: Para estas cosas, te conviene utilizar cryptool. Tiene incluso un crackeador incluido.
#188
Nono, me parece que no se entendió el concepto.

En un algoritmo de cifrado simétrico actual, se elige una clave, pero dicha clave no es aplicada diréctamente sobre el mensaje a cifrar, sino que se pasa por un PRNG (Pseudo random number generator) o mejor dicho CSPRNG (Cryptographically Secure Pseudo Random Number Generator), para generar un keystream, que luego se aplica en el mensaje, generalmente utilizando un XOR. Esto resuelve el ataque de Known Plaintext.

El ataque MITM puede ser interactivo (El atacante puede modificar los paquetes, aparte de verlos) o no interactivo (sólo puede verlos).

Un ataque MITM interactivo, es efectivo contra cualquier algoritmo de intercambio de claves que no posea una firma digital hecha por un trusted third party, Verisign es una conocida marca de firmas digitales.

Por otro lado, un ataque MITM no interactivo sólo va a ser efectivo cuando no se utiliza un algoritmo de intercambio de claves. Es decir, cuando las claves del cifrado, se envían sin cifrar por un canal inseguro.

Cuando se utiliza un algoritmo de intercambio de claves o algún algoritmo de cifrado asimétrico, se resuelve el problema del MITM no interactivo, pero sólo se puede resolver el problema del MITM interactivo utilizando un trusted third party o dando a conocer públicamente la firma digital para que cada persona que se conecta pueda verificarla antes de establecer la conexión segura.

Los que desean, comiencen a leer el taller de criptografía asimétrica desde cero, ahí está explicado con pelos y señales como funcionan los algoritmos de criptografía asimétrica. Desde la implementación hasta la parte mecánica o matemática del asunto (a un nivel relativamente comprensible).

Un abrazo
APOKLIPTICO
#189
Hola! Mirá lo que comentas se acerca bastante al método de "One Time Pad" u OTP, es un método en el cual la clave es del mismo tamaño que el plaintext, de esta manera, "Crackearlo" sería muy complejo, infeasible para todos los métodos actuales si la longitud del mensaje superase los 8 caracteres (tardarías aproximadamente 117 días).
Estas son las ventajas que veo de tu algoritmo:

- No se envían en ningún momento las claves ni hace falta compartirlas por otros medios, ergo es invulnerable a un ataque de Man In The Middle no interactivo.
- Si el string pseudoaleatorio (ya que la aleatoriedad en la computación no existe) es suficientemente aleatorio y tiene una semilla de igual tamaño, es infeasible crackearlo con un método de fuerza bruta.

Estas son las desventajas que veo de tu algoritmo:

- La clave es demasiado larga, aumentando el tiempo de cómputo de manera considerable y el volumen de datos al doble. Por otro lado, el pool de randomness que es necesario para una comunicación de bastante cantidad de datos, es considerable y necesario para mantener una verdadera aleatoriedad.
- El algoritmo es vulnerable a un ataque Man In The Middle interactivo, ya que si "A" manda a "B" un mensaje "M" y hace A(M) una persona puede sustituir A(M) con C(M1) y cuando "B" le envía B(C(M1)), "C" puede conseguir la clave de "B".
- El algoritmo es vulnerable a un known plaintext attack, si un MITM "C" sabe el mensaje "M", entonces cuando "A" envía A(M) C consigue la clave de A y luego cuando B envía B(A(M)) éste consigue la clave de B.

Aclaro que "A(M)" significa el texto cifrado del plaintext M utilizando la clave de "A".

Por otro lado, lo que vos decis de utilizar un generador pseudoaleatorio para crear una clave y aplicársela a un mensaje, esto ya existe, pero se aplica de la siguiente manera: Se utiliza como semilla de un generador pseudoaleatorio una clave, cuanto más larga la clave, más seguro será el algoritmo, incluso se puede pasar la clave por un algoritmo de "Key streching", esto lo que es en definitiva, es utilizar algún algoritmo de una vía (como un hash) para aumentar el tiempo de precómputo de la semilla del PRNG (Pseudo random number generator), entonces cuando alguien quiera tratar de crackear el cifrado con fuerza bruta, la complejidad será mucho mayor.

Una vez que se obtiene esta "semilla", se utiliza la salida del generador pseudoaleatorio (llamado keystream) para cifrar el mensaje, generalmente utilizando XOR en vez de una suma (o resta) con módulo que es lo que estabas planteando vos. La razón de esto es que el XOR es una sola operación, y la suma con módulo son dos (suma y luego módulo), lo que aumenta el tiempo de cómputo.

Esto resuelve el problema del known plaintext attack, ya que si alguien supiese el plaintext, y lo aplicase a "M" sólo obtendría el keystream de la clave, y no la clave en sí.

Para resolver otro de los problemas, deberías leer la parte de firma digital y third party authentification del taller de criptografía asimétrica desde cero. Utilizando un algoritmo de firma digital, se puede evitar que una persona pueda, mediante un MITM interactivo, sacar la clave o el mensaje.

Es un muy buen approach el que estás tomando y un muy buen comienzo, ya que ideaste un algoritmo que puede, con bastante seguridad, transferir un mensaje. Lee sobre los temas que te plantee arriba (XOR, MITM, known plaintext attack, firma digital, keystream, generador pseudoaleatorio y key stretching) y vas a aumentar de manera considerable la seguridad de tu algoritmo.

Un abrazo
APOKLIPTICO.
#190
Artik, te corrijo una cosa, la más potente de las placas para calcular (despues de la Tesla) es la hd5970, con una capacidad de stock de 4.64 TeraFlops, fácilmente ampliable a 5 con un poco de OC...

PD: Corrijo: Según AMD, la HD6990 es la más rápida, pero su consumo es mucho mayor, por otro lado es correcto que la HD5870 es la más rápida, porque la 5970 son ya dos GPUs distintas, sin embargo, el consumo es mayor...