Guía práctica de en-crip-tación

TrueCrypt: portable, multiplataforma y muy sencillo de manejar....

Yo lo he usado con AES, porque no lo recomiendas BHAN83?

Lo he explicado al final del post #19, tal vez sea excesiva paranoia, pero ya que se puede elegir otros...
 
Hay un sistema de encriptación que es imposible de desencriptar, aunque se empleen infinitas claves.

Lo malo que la clave tiene que ser tan larga como el mensaje. Pero como dije es imposible de desencriptar por ningún sistema.

El sistema es simple.

Si convertimos un mensaje de texto en números asscii, tendremos una cadena de números.

Por ejemplo: burbuja.info

En asscii sería: 98, 117, 114, 98, 117, 106, 97, 44, 105, 110, 102, 111

Si a cada número le sumamos un número, correspondiente a una cadena aleatoria de número que llamaremos llave o clave.

por ejemplo de llave o clave de encriptacion / desencriptación: 67, 33, 102, 200, 231, 22, 104, 44, 68, 205, 45, 57

Tendríamos una tercera cadena, que correspondería al mensaje encriptado y que sería el resultado de sumar cada caracter asscii del mensaje, más el número correspondiente a la llave encriptadora.

Es decir que si sumamos a 98, que es en código asscii de la letra b de burbuja.info, el primer número de la cadena aleatoria, que sería 67, nos saldría como resultado de la suma el número 165, que correspondería al primer carácter encriptado.

Si el resultado de la suma es superior a 255, habría que restar al resultado de la suma 255. Es decir que si 165 + 190 = 355, tendríamos que restar a 355, 255 y obtendríamos como resultado 100. 100 es el carácter encriptado.

Aquí va el sistema de enciptación del texto correspondiente a burbuja.info

burbuja.info = 98, 117, 114, 98, 117, 106, 97, 44, 105, 110, 102, 111
Clave encriptacion =67, 33, 102, 200, 231, 22, 104, 44, 68, 205, 45, 57


98+67=165
117+33=44
114+102=216
98+200=298 como 298 es mayor que 255 le restamos a 298, 255 y nos saldría 43
117+231= 348 como 348 es mayor que 255 le restamos a 348, 255 y nos quedaría 93
106+22=128
97+104=201
44+44=88
105+68=173
110+205=315 como 315 es mayor que 255 le restamos a 315, 255 y nos quedaría 60
102+45=147
111+57=168

El mensaje encriptado sería:

165, 44, 216, 43, 93, 128, 201, 88, 173, 60, 147, 168

Que en asscii sería una cadena de texto totalmente incomprensible.

Para desencriptar seguiríamos el mismo procedimiento, pero restando la cadena encriptada, con la cadena llave o clave.

En el caso de que un número resultante de restar el carácter encriptado en asscii por el número de la llave encriptadora obtuviésemos un número negativo, le tendríamos que sumar al número negativo 255. Que es lo mismo que hicimos al encriptar, pero restando en vez de sumando.

Es decir que si restamos 102-204= - 102. A -102 le sumaríamos 255 y obtendríamos 153, que correspondería a un carácter desencriptado en asscii del mensaje original.

Este sistema es tan simple como imposible de romper. Mientras la llave encriptadora sea aleatoria y no se repita a lo largo del mensaje, el mensaje será absolutamente imposible de desencriptar, ya que si en una suma solo sabemos el resultado de la suma, que correspondería al mensaje encriptado y desconocemos tanto el mensaje sin encriptar como la llave encriptadora, no podríamos saber cual es el valor de cada sumando.

Ejemplo

A + B = 123

Si A es el mensaje Y B es la llave de encriptación y tanto A, como B son desconocidos para alguien que quiera desencriptar un mensaje sin la llave desencriptadora. Sería totalmente imposible saber el valor de A o B, solo conociendo el resultado de la suma, que es 123 y que sería el mensaje encriptado.

de echo tanto A como B podrían ser cualquier número entre 0 y 255.

Lo malo de esto es que la clave de desencriptación tendría que estar en un soporte físico, tipo pendrive o CD, ya que nadie puede recordar una clave de más de 10 ó 20 caracteres, así que inevitablemente habría que portar un archivo llave para poder desencriptar los mensajes.

Aunque por otra parte, la seguridad es absoluta.
 
Última edición:
Hay un sistema de encriptación que es imposible de desencriptar, aunque se empleen infinitas claves.

Lo malo que la clave tiene que ser tan larga como el mensaje. Pero como dije es imposible de desencriptar por ningún sistema.

El sistema es simple.

Si convertimos un mensaje de texto en números asscii, tendremos una cadena de números.

Por ejemplo: burbuja.info

En asscii sería: 98, 117, 114, 98, 117, 106, 97, 44, 105, 110, 102, 111

Si a cada número le sumamos un número, correspondiente a una cadena aleatoria de número que llamaremos llave o clave.

por ejemplo de llave o clave de encriptacion / desencriptación: 67, 33, 102, 200, 231, 22, 104, 44, 68, 205, 45, 57

Tendríamos una tercera cadena, que correspondería al mensaje encriptado y que sería el resultado de sumar cada caracter asscii del mensaje, más el número correspondiente a la llave encriptadora.

Es decir que si sumamos a 98, que es en código asscii de la letra b de burbuja.info, el primer número de la cadena aleatoria, que sería 67, nos saldría como resultado de la suma el número 165, que correspondería al primer carácter encriptado.

Si el resultado de la suma es superior a 255, habría que restar al resultado de la suma 255. Es decir que si 165 + 190 = 355, tendríamos que restar a 355, 255 y obtendríamos como resultado 100. 100 es el carácter encriptado.

Aquí va el sistema de enciptación del texto correspondiente a burbuja.info

burbuja.info = 98, 117, 114, 98, 117, 106, 97, 44, 105, 110, 102, 111
Clave encriptacion =67, 33, 102, 200, 231, 22, 104, 44, 68, 205, 45, 57


98+67=165
117+33=44
114+102=216
98+200=298 como 298 es mayor que 255 le restamos a 298, 255 y nos saldría 43
117+231= 348 como 348 es mayor que 255 le restamos a 348, 255 y nos quedaría 93
106+22=128
97+104=201
44+44=88
105+68=173
110+205=315 como 315 es mayor que 255 le restamos a 315, 255 y nos quedaría 60
102+45=147
111+57=168

El mensaje encriptado sería:

165, 44, 216, 43, 93, 128, 201, 88, 173, 60, 147, 168

Que en asscii sería una cadena de texto totalmente incomprensible.

Para desencriptar seguiríamos el mismo procedimiento, pero restando la cadena encriptada, con la cadena llave o clave.

En el caso de que un número resultante de restar el carácter encriptado en asscii por el número de la llave encriptadora obtuviésemos un número negativo, le tendríamos que sumar al número negativo 255. Que es lo mismo que hicimos al encriptar, pero restando en vez de sumando.

Es decir que si restamos 102-204= - 102. A -102 le sumaríamos 255 y obtendríamos 153, que correspondería a un carácter desencriptado en asscii del mensaje original.

Este sistema es tan simple como imposible de romper. Mientras la llave encriptadora sea aleatoria y no se repita a lo largo del mensaje, el mensaje será absolutamente imposible de desencriptar, ya que si en una suma solo sabemos el resultado de la suma, que correspondería al mensaje encriptado y desconocemos tanto el mensaje sin encriptar como la llave encriptadora, no podríamos saber cual es el valor de cada sumando.

Ejemplo

A + B = 123

Si A es el mensaje Y B es la llave de encriptación y tanto A, como B son desconocidos para alguien que quiera desencriptar un mensaje sin la llave desencriptadora. Sería totalmente imposible saber el valor de A o B, solo conociendo el resultado de la suma, que es 123 y que sería el mensaje encriptado.

de echo tanto A como B podrían ser cualquier número entre 0 y 255.

Lo malo de esto es que la clave de desencriptación tendría que estar en un soporte físico, tipo pendrive o CD, ya que nadie puede recordar una clave de más de 10 ó 20 caracteres, así que inevitablemente habría que portar un archivo llave para poder desencriptar los mensajes.

Aunque por otra parte, la seguridad es absoluta.

Perdona, pero esto no tiene ni pies ni cabeza o no entiendo lo que dices. Traduces el problema de seguridad en custodiar la clave aleatoria encriptadora que para mas inri tiene la misma longitud. ¿Para qué shishi sirve? ¿Vas a volverla a encriptar otra vez de la misma manera?

La verdad es que no existe ningún sistema que se pueda demostrar que no es hackeable. Hay indicios que indicarían que RSA puede volar por los aires en algún momento.
 
Si eres capaz de memorizar una clave de la misma longitud que los datos a cifrar... es mejor que memorices los datos a cifrar directamente. Por otro lado si eres capaz de guardar esa clave sin que nadie la encuentre, entonces es mejor guardar los datos que quieras cifrar en ese mismo sitio, sin que nadie los encuentre y sin cifrar. Tu "sistema de cifrado" es una contradictio in terminis.

Hay un sistema de encriptación que es imposible de desencriptar, aunque se empleen infinitas claves.

Lo malo que la clave tiene que ser tan larga como el mensaje. Pero como dije es imposible de desencriptar por ningún sistema.

El sistema es simple.

Si convertimos un mensaje de texto en números asscii, tendremos una cadena de números.

Por ejemplo: burbuja.info

En asscii sería: 98, 117, 114, 98, 117, 106, 97, 44, 105, 110, 102, 111

Si a cada número le sumamos un número, correspondiente a una cadena aleatoria de número que llamaremos llave o clave.

por ejemplo de llave o clave de encriptacion / desencriptación: 67, 33, 102, 200, 231, 22, 104, 44, 68, 205, 45, 57

Tendríamos una tercera cadena, que correspondería al mensaje encriptado y que sería el resultado de sumar cada caracter asscii del mensaje, más el número correspondiente a la llave encriptadora.

Es decir que si sumamos a 98, que es en código asscii de la letra b de burbuja.info, el primer número de la cadena aleatoria, que sería 67, nos saldría como resultado de la suma el número 165, que correspondería al primer carácter encriptado.

Si el resultado de la suma es superior a 255, habría que restar al resultado de la suma 255. Es decir que si 165 + 190 = 355, tendríamos que restar a 355, 255 y obtendríamos como resultado 100. 100 es el carácter encriptado.

Aquí va el sistema de enciptación del texto correspondiente a burbuja.info

burbuja.info = 98, 117, 114, 98, 117, 106, 97, 44, 105, 110, 102, 111
Clave encriptacion =67, 33, 102, 200, 231, 22, 104, 44, 68, 205, 45, 57


98+67=165
117+33=44
114+102=216
98+200=298 como 298 es mayor que 255 le restamos a 298, 255 y nos saldría 43
117+231= 348 como 348 es mayor que 255 le restamos a 348, 255 y nos quedaría 93
106+22=128
97+104=201
44+44=88
105+68=173
110+205=315 como 315 es mayor que 255 le restamos a 315, 255 y nos quedaría 60
102+45=147
111+57=168

El mensaje encriptado sería:

165, 44, 216, 43, 93, 128, 201, 88, 173, 60, 147, 168

Que en asscii sería una cadena de texto totalmente incomprensible.

Para desencriptar seguiríamos el mismo procedimiento, pero restando la cadena encriptada, con la cadena llave o clave.

En el caso de que un número resultante de restar el carácter encriptado en asscii por el número de la llave encriptadora obtuviésemos un número negativo, le tendríamos que sumar al número negativo 255. Que es lo mismo que hicimos al encriptar, pero restando en vez de sumando.

Es decir que si restamos 102-204= - 102. A -102 le sumaríamos 255 y obtendríamos 153, que correspondería a un carácter desencriptado en asscii del mensaje original.

Este sistema es tan simple como imposible de romper. Mientras la llave encriptadora sea aleatoria y no se repita a lo largo del mensaje, el mensaje será absolutamente imposible de desencriptar, ya que si en una suma solo sabemos el resultado de la suma, que correspondería al mensaje encriptado y desconocemos tanto el mensaje sin encriptar como la llave encriptadora, no podríamos saber cual es el valor de cada sumando.

Ejemplo

A + B = 123

Si A es el mensaje Y B es la llave de encriptación y tanto A, como B son desconocidos para alguien que quiera desencriptar un mensaje sin la llave desencriptadora. Sería totalmente imposible saber el valor de A o B, solo conociendo el resultado de la suma, que es 123 y que sería el mensaje encriptado.

de echo tanto A como B podrían ser cualquier número entre 0 y 255.

Lo malo de esto es que la clave de desencriptación tendría que estar en un soporte físico, tipo pendrive o CD, ya que nadie puede recordar una clave de más de 10 ó 20 caracteres, así que inevitablemente habría que portar un archivo llave para poder desencriptar los mensajes.

Aunque por otra parte, la seguridad es absoluta.
 
Lo he explicado al final del post #19, tal vez sea excesiva paranoia, pero ya que se puede elegir otros...

El WPA creo que lo recomiendan con AES, y cuando estudié cripto creo que era un algoritmo bastante seguro. De todas formas cuando necesite cifrar algo importante creo que me volveré a mirar todo porque ya lo tengo un poco olvidado.
 
Perdona, pero esto no tiene ni pies ni cabeza o no entiendo lo que dices. Traduces el problema de seguridad en custodiar la clave aleatoria encriptadora que para mas inri tiene la misma longitud. ¿Para qué shishi sirve? ¿Vas a volverla a encriptar otra vez de la misma manera?

La verdad es que no existe ningún sistema que se pueda demostrar que no es hackeable. Hay indicios que indicarían que RSA puede volar por los aires en algún momento.

RSA no se usa para cifrar a secas, se usa para intercambiar claves de cifrado simétrico como AES (Que es el que cifra los datos realmente) de forma segura, y también para autenticar y saber que alguien es quien dice que es. Por ejemplo en TrueCrypt no tiene sentido usar RSA (Y no se usa) porque no hay que intercambiar claves entre dos individuos, en cambio en conexiones SSL sí. RSA parte de un problema matemático muy básico (Factorizar en primos números grandes) que seguramente el día que se rompa (Si se rompe) lo descubran varias personas a la vez, como todos los descubrimientos de ese tipo. Otra cosa es que se rompa por fuerza bruta con una potencia de cálculo muy superior a la actual. Si te cifras un archivo con Serpent+Twofish y con una clave de 32bytes que sólo tú hayas memorizado puedes estar más que tranquilo, a menos que te den alguna droja para confesar o algo así, de eso ya no tengo ni astuta.
 
El WPA creo que lo recomiendan con AES, y cuando estudié cripto creo que era un algoritmo bastante seguro. De todas formas cuando necesite cifrar algo importante creo que me volveré a mirar todo porque ya lo tengo un poco olvidado.

Yo no he analizado ese algoritmo para saber si es seguro o no (Seguramente ninguno de los dos conozcamos a ninguna persona que lo haya analizado en profundidad), lo que sí sé es quien recomienda su uso (El gobierno de EEUU). Ellos imagino que tendrán gente buscando vulnerabilidades en ese algoritmo cada día, porque es el que usan para cifrar sus documentos, y si descubren alguna no lo van a publicar, tanto por su propia seguridad como para tener la opción de usar esa vulnerabilidad en romper cifrados ajenos. En clase de Criptografía el profesor puede decir que AES es muy seguro, y en clase de Macroeconomía que el dólar es una moneda muy estable, pero para mí eso así no son argumentos válidos y para saber yo mismo la fiabilidad de AES tendría que dedicarle mucho tiempo y quizá sin éxito para evaluarlo correctamente, porque seguramente en la NSA tengan a gente mucho más inteligente que yo intentando romperlo día y noche que no compartirá la información en caso de éxito.
 
¿que mas da el método de encriptación?, siempre se dice que la parte mas débil de un sistema de encriptación es la humana, ¿para que molestarse si te pueden sacar la passphrase a leches?, es mucho mejor currarse una buena coartada que permita una denegación plausible.
Por ejemplo, con truecript es posible crear un volumen encriptado oculto dentro de otro, de forma que con una contraseña abres uno, en el metes el prono de tu pc por ejemplo, y con otra contraseña se abre el otro, donde meterías lo que quieres proteger de verdad.
Si te pillaran podrías dar la primera contraseña, no habría forma de determinar si existe o no el otro volumen.
 
Si eres capaz de memorizar una clave de la misma longitud que los datos a cifrar... es mejor que memorices los datos a cifrar directamente. Por otro lado si eres capaz de guardar esa clave sin que nadie la encuentre, entonces es mejor guardar los datos que quieras cifrar en ese mismo sitio, sin que nadie los encuentre y sin cifrar. Tu "sistema de cifrado" es una contradictio in terminis.

No es ninguna contradicción. Si yo le doy a vd un pendrive que contiene una llave de encriptación / desencriptación, que no es más que una serie de números aleatorios y posteriormente le envío por un medio público, como Internet, un mensaje encriptado, en base a esos números aleatorios que le di con anterioridad. Podrá desencriptar el mensaje.

Lo que es absurdo es pretender encriptar un mensaje que puede tener cientos o miles de caracteres usando una clave, que no tenga más de 15 ó 20 caracteres. Recordemos que hoy en día, cualquier país tiene ordenadores con capacidad de procesamiento de teraflops, que son así como billones de operaciones por segundo y que romperían cualquier sistema de encriptación en décimas de segundo, usando simplemente la fuerza bruta.

Todos los algoritmos de encriptación fallan en una cosa. Cuando se conoce parte del mensaje encriptado, el esfuerzo que hay que hacer para desencriptar un mensaje es mucho menor. Por supuesto, cuando se encripta usando unos pocos caracteres, la protección es ridícula si el mensaje es mucho más grande que la clave de encriptación.

Una cosa es intentar desencriptar un mensaje con un PC doméstico y otra cosa muy diferente es pretender que el mensaje sea imposible de desencriptar por parte de un gobierno.

No hay en el mercado ningún sistema de encriptación seguro, ya que no se permite que esos sistemas existan y en todo caso como ocurrió con el PGP, cuando un sistema es relativamente seguro, se termina comprando por alguna empresa y siendo modificado y capado, para que sí se pueda romper la seguridad de dichos sistemas.
 
RSA no se usa para cifrar a secas, se usa para intercambiar claves de cifrado simétrico como AES (Que es el que cifra los datos realmente) de forma segura, y también para autenticar y saber que alguien es quien dice que es. Por ejemplo en TrueCrypt no tiene sentido usar RSA (Y no se usa) porque no hay que intercambiar claves entre dos individuos, en cambio en conexiones SSL sí. RSA parte de un problema matemático muy básico (Factorizar en primos números grandes) que seguramente el día que se rompa (Si se rompe) lo descubran varias personas a la vez, como todos los descubrimientos de ese tipo.

Probablemente no sea así. Ejemplo reciente: Algoritmo de primalidad en P.
 
Creo que estás un poco liado, bien, entonces lo que dices es que un sistema de cifrado cuanto más larga sea su clave, más seguro es. Sí, es cierto, pero eso no es en sí mismo un sistema de cifrado. El metodo que propones es el más simple, lo mismo que has dicho (Usar una clave larguísima) se puede hacer usando AES y será muchísimo más seguro, que aunque tenga 256bits de longitud máxima de clave, con un mensaje más largo puedes usar todas las contraseñas en serie/paralelo que quieras. La mayoría de sistemas de cifrado hacen xors a sus bytes entre otras cosas, que es parecido a lo que dices de sumar bytes, pero de forma más enrevesada dividiendo los datos en matrices y haciéndolo entre los datos mismos en varias fases. Por otro lado, según cada cual puede considerar más seguro tener la contraseña memorizada en su cabeza que en un pen drive.

No es ninguna contradicción. Si yo le doy a vd un pendrive que contiene una llave de encriptación / desencriptación, que no es más que una serie de números aleatorios y posteriormente le envío por un medio público, como Internet, un mensaje encriptado, en base a esos números aleatorios que le di con anterioridad. Podrá desencriptar el mensaje.

Lo que es absurdo es pretender encriptar un mensaje que puede tener cientos o miles de caracteres usando una clave, que no tenga más de 15 ó 20 caracteres. Recordemos que hoy en día, cualquier país tiene ordenadores con capacidad de procesamiento de teraflops, que son así como billones de operaciones por segundo y que romperían cualquier sistema de encriptación en décimas de segundo, usando simplemente la fuerza bruta.

Todos los algoritmos de encriptación fallan en una cosa. Cuando se conoce parte del mensaje encriptado, el esfuerzo que hay que hacer para desencriptar un mensaje es mucho menor. Por supuesto, cuando se encripta usando unos pocos caracteres, la protección es ridícula si el mensaje es mucho más grande que la clave de encriptación.

Una cosa es intentar desencriptar un mensaje con un PC doméstico y otra cosa muy diferente es pretender que el mensaje sea imposible de desencriptar por parte de un gobierno.

No hay en el mercado ningún sistema de encriptación seguro, ya que no se permite que esos sistemas existan y en todo caso como ocurrió con el PGP, cuando un sistema es relativamente seguro, se termina comprando por alguna empresa y siendo modificado y capado, para que sí se pueda romper la seguridad de dichos sistemas.
 
Perdona, pero esto no tiene ni pies ni cabeza o no entiendo lo que dices. Traduces el problema de seguridad en custodiar la clave aleatoria encriptadora que para mas inri tiene la misma longitud. ¿Para qué shishi sirve? ¿Vas a volverla a encriptar otra vez de la misma manera?

La verdad es que no existe ningún sistema que se pueda demostrar que no es hackeable. Hay indicios que indicarían que RSA puede volar por los aires en algún momento.

Vamos a ver amijo. Si yo le doy el número 45 y se va vd a japón y yo le quiero enviar un número secreto por ejemplo el 12. Si sumo 12 + 45 el resultado es 57. 57 será en mensaje encriptado que le enviaré por un medio público he inseguro como puede ser Internet. Si alguien intercepta el número 57, no podrá saber de ningún modo cual es el número qu ele quiero enviar, pero si vd resta a 57, el número 45 que fue el que yo le di, nos sale 12 que es el número que le quise transmitir a vd, para que solo vd pudiese saber dicho número.

El sistema es imposible de desencriptar. No hay ningún algoritmo ni ordenador ni nada que pueda desencriptar el mensaje.

Si en una suma solo conoce el resultado de la suma, pero no conoce ninguno de los sumandos, vd jamas podrá saber el valor de los sumandos si no conoce, al menos uno de ellos.

A+B = 45

Y vd no sabe que valor tiene A y B, nunca podrá saberlo solo sabiendo el resultado de la suma (45)
 
Volver