Mostrando entradas con la etiqueta matemáticas. Mostrar todas las entradas
Mostrando entradas con la etiqueta matemáticas. Mostrar todas las entradas

lunes, 30 de septiembre de 2019

Voy a dejar que el humano crea que me gana...

Últimamente estoy muy viciado probando apps de móvil ya que, hasta hace poco, era uno de esos raros que seguía llevando un móvil pequeñito sólo para llamar, de prepago y gastando menos de 20 euros al año.

Me compré un móvil grande actual y, tras descargar las apps básicas de todos conocidas, empecé a pensar... ¿qué más puedo necesitar?...
Un luxómetro, un medidor de decibelios y frecuencias, un nivel, medidor de BPMs, pianito virtual, mapa de estrellas, mapa del metro, diccionarios, utilidades de GPS, calculadora científica...

Y tras dos meses de sólo "utilidades", al fin le llegó el turno a las chorraditas, es decir: los juegos: estos últimos días en especial he descargado juegos de mesa y de estrategia.

Todos los juegos en cuya resolución no interviene el azar tienen un algoritmo matemático de victoria, la cuestión es cuánto de simple es según las mecánicas, número y variedad de piezas, y posiciones posibles de éstas, y por tanto cuánto tiempo de procesamiento requiere en un ordenador calcular todas las posibles situaciones de tablero hasta un final determinado.
El ajedrez, por ejemplo, es un juego que, a pesar de tener una gran cantidad de combinaciones posibles, debido a su popularidad ha sido computerizado y estudiado desde los primeros tiempos de la informática (e incluso antes con aficionados memorizando y publicando libracos de jugadas) con lo que ya en el siglo pasado se obtuvieron programas capaces de ganar a las mejores mentes humanas.

El reversi (u Othello) es otro juego de mesa de dinámica mucho más simple, y por tanto más sencillo de modelizar y procesar. Es un ejemplo de juego contra en el que nunca he podido ganar contra la máquina, salvo que le limite el tiempo de procesamiento impidiéndola así mirar demasiado lejos en el futuro. Pues a fin de cuentas es lo que hacen estos procesos informáticos, rastrean todas las posibles situaciones de tablero hasta sus diversos finales, y escogen los movimientos que llevan a un final favorable.
Esto puede ser mediante un algoritmo, o mediante una colección de tablas (como los libracos de jugadas de ajedrez de la era preinformática). Así el nivel de dificultad se suele reducir limitando el tiempo o el número de iteracciones que se le permite a la máquina comprobar. En un programa de ajedrez, debido a su complejidad, la máquina puede tirarse bastante tiempo iterando, pero en juegos como reversi o damas, el proceso es más ligero.

En el juego de las damas, tras descargar una app en la que me resultaba muy difícil perder (en la modalidad de damas españolas, en las internacionales se le daba mejor, o a mí peor, porque no estaba acostumbrado y la cagaba bastante), probé otra en la que, muy al contrario, la mayoría de las veces o la máquina me ganaba o quedábamos en tablas. Pero una cosa me llamó la atención de aquel segundo programa. A pesar de que jugaba muy bien, a veces le daba por hacer algún movimiento estúpido.

Bien, parece ser que el juego de las damas es otro, como no podía ser de otra forma, que está resuelto matemáticamente de modo que el resultado final es inexorablemente tablas... siempre que ninguno de los dos jugadores cometa fallos.
Entonces, estoy sospechando que el funcionamiento de esta segunda app consiste en ejecutar un algortimo perfecto de victoria combinado con un generador de torpezas casuales en algunos turnos aleatorios, de modo que el jugador humano tenga alguna posibilidad de ganar y no se frustre. El muy ingénuo...


domingo, 3 de julio de 2011

Dividiendo triángulos

Partiendo de un triángulo isósceles (de dos ángulos iguales), ¿a qué altura deberíamos cortarlo para obtener dos mitades con igual área? (descartando la solución obvia del eje de simetría).
Aquí tenemos el triángulo, con su base B y su altura H, y como sabemos, su Área Total se halla multiplicando base por altura y dividiendo por 2.
Desconocemos la altura del corte, pero por lo pronto sabemos que las dos subáreas generadas, A1 y A2 tendrán la misma superficie, esto es: BxH/4

Intenté resolverlo por geometría y la cosa se complicó bastante, de modo que me acordé de las integrales, y tras buscar cómo se resolvían (pues hacía décadas que no hacía una), la cosa fue más sencilla.

Para empezar, vamos a obtener una función primitiva que defina nuestro triángulo, colocando el origen de coordenadas en el vértice superior. Si tomamos la mitad del triángulo, nuestra función es algo tan simple como una recta, que puede expresarse de la forma x igual a y multiplicado por un factor k.
¿Y cómo hallamos ese factor k?
Fácil, simplemente sustituímos en la fórmula y=k*x con los valores que conocemos. Tal como hemos colocado el triángulo, cuando y vale H (la altura), resulta que x vale B/2 (la mitad de la base).

Arriba podemos observar que nuestra función al final ha quedado, despejando la x, como una función de y pues los límites que definen el área, entre 0 y H, se encuentran en ese eje, y es f(y) lo que se necesita integrar.

La integral de una función tan sencilla como la de este caso no tiene más misterio que mirar en una tabla de integrales la solución correspondiente. De todas formas, para funciones más complejas, existen páginas como ésta que te resuelven la integral. Integramos así:

Bien, hemos obtenido el área de nuestra función entre los valores 0 y H. En verdad esto es la mitad del área del triángulo original, pero como vamos a calcular las dos mitades sobre esta mitad, la altura de corte -que es lo que buscamos- no varía.

Para lo hecho hasta ahora no necesitábamos complicarnos la vida, bastaba con la fórmula del principio, la utilidad viene ahora.
Aunque desconocemos el valor de a, la altura de corte, sabemos que las dos subáreas, A1 y A2 deben de ser iguales. Por tanto, la integral de f(y) entre 0 y a, debe de ser igual a la integral entre a y H, así:
La función de arriba se simplifica bastante, despejamos la a, y obtenemos la solución, ¡TACHÁN!:

Lo cual significa que, midiendo desde el vértice superior, debemos realizar el corte a 0,707 veces la altura del triángulo, con independencia de su base, para obtener dos mitades de idéntico área.

Para el caso de un cono (imaginemos hasta dónde hay que dar un trago en una copa para compartir una bebida a partes iguales entre dos), al final encontré un ejemplo ideal para hacer el cálculo de la misma forma que el triángulo.
Así, partimos de la misma función con la que definíamos el triángulo, sólo que esta vez cambiamos B de Base por R de Radio (que es la mitad de la magnitud y por tanto desaparece un 2).
Pero la función que vamos a integrar es la del área de la circunferencia PI x r^2,  siendo este r en minúscula no el radio R mayúscula de la base del cono, sino el radio variable de cada uno de los infinitos círculos que recorren el cono y cuya superficie vamos a sumar al integrar para hallar el volúmen. Este radio viene definido por la variable x, es decir la función de y, f(y).
Tras integrar hemos obtenido una fórmula que podemos comprobar que corresponde con la del Volúmen de un cono. Vamos bien. A continuación, aplicamos como antes la regla de que el Volúmen obtenido de la integral entre 0 y a, debe ser igual al de la integral entre a y H.
Simplificamos, despejamos la a, y ¡voila!, para un cono la distancia medida desde el vértice superior (inferior en la imagen de la copa) es de 0,79 veces la altura:

sábado, 27 de diciembre de 2008

Células de la abundancia

Sería hace más de 15 años cuando ví por primera vez un sistema de estafa piramidal, era mi tía la que se había apuntado a una cadena e intentaba recopilar más gente. El sistema era tal que había una lista de 5 personas en un papel, numeradas del 1 a 5. La persona que es reclutada tiene que enviar una cantidad de dinero X a las 5 personas de la lista, luego borra el nombre del primero, corre a todos un puesto y se coloca ella misma en el puesto 5. A continuación tiene que reclutar más gente, cuanta más mejor, gente que a su vez tendrá que pagar X dinero a la nueva lista, y volver a correrla un puesto colocándose ellos los últimos.

Tras muchos años sin volver a ver tener noticias, salvo en forma de emails-timo, parece ser que últimamente está resurgiendo con otros nombres, heredando una vieja forma llamada "el avión "(*).
Ahora no es una pirámide, le han hecho un lavado estético y formal, de forma que es una célula, formada por 15 personas.
8 en el exterior, 4 en la tercera capa, 2 en la segunda y una en la primera.

Los 8 de la capa exterior son los que pagan, pues acaban de entrar en la célula, 1.000 o 10.000 euros cada uno (según la versión de la estafa) a la persona del centro.
Entonces esta persona del centro se va con el dinero, sale del juego pues ya ha ganado, y la célula se divide en dos, corriéndose todos un puesto hacia el interior, quedando vacantes los puestos de la capa exterior, la capa de los que pagan. Los que han pasado a la 3ª capa está obligados a reclutar dos personas cada uno para completar esa piel de pagadores, para el premio de los nuevos centrales.

En resúmen, pagas 10.000 en el primer movimiento, y cuando llegas al centro, cobras 80.000 a costa de los últimos 8 nuevos que entran a tu célula, es decir, ganas 70.000 euros (80.000 menos los 10.000 que desembolsaste al principio).

Para empezar esto es un timo, una estafa, y explicaré por qué.
1. Para cada célula, la ganancia del que está en el centro la pagan los 8 nuevos que entran. Con lo que tenemos que las 7 primeras personas que inician el "juego", como ya están de partida dentro de las capas interiores, NO HAN PAGADO NADA A NADIE.
2. El sistema se colpasa rápidamente. Si entras en el timo en sus primeras fases, tienes alguna posibilidad de ganar esos 70.000 Euros esperados, pero... usando la lógica, para que uno gane, 8 tienen que perder, y esta regla se mantiene hasta el final, hasta que el juego se colapsa. Por cada persona que haya ganado, hay 8 que lo han perdido todo.

Cuando alguien entra en una célula, nunca sabe en qué fase se encuentra, ni si los que están delante han puesto realmente dinero como lo van a poner los 8 nuevos.

En el artículo de la Wikipedia que trata el tema hay una tabla que habla por sí sola respecto al desarrollo del sistema. Suponiendo que todos los españoles seamos bobos y participemos en una célula de estas, en el turno 22 habría 31.457.280 personas implicadas, y se necesitarían otras 33.554.432 personas para continuar la siguiente iteracción.
Es decir, el sistema habría quebrado nacionalmente con los siguientes resultados:
  • Los 7 primeros listillos que montaron la estafa habrían ganado 80.000 euros cada uno (pues no pusieron nada al empezar en las capas internas de la célula)
  • 2.097.145 personas habrían ganado 70.000 euros, todos ellos a costa de...
  • 29.360.128 que han PERDIDO sus 10.000 euros

Es decir: sólo el 6,6 % de los que participaron multiplicaron su dinero, el 93,3 % LO PERDIÓ.

Naturalmente, como no todo el mundo va a participar, y los conocidos captables se agotan o han podido ser ya captados por otra célula, no hace falta llegar al turno 22 para que la cosa se venga abajo, sino que lo hará mucho antes.

Entonces, ¿qué hacen los estafadores para enriquecerse?
El tiempo es fundamental, porque conforme las células se van dividiendo, van acabando con los incautos reclutables a gran velocidad.
Entonces, lo suyo es INICIAR varias células simultáneas a la vez, con 7 personas compinchadas que, recordemos, no han puesto ni un duro, ni necesitan ponerlo porque ya están dentro de las capas interiores, las capas que no pagan, sino que cobran.

Pongamos que inician 10 "juegos" de estos simultáneamente. Para cada una de esas 10 células se reclutará a 8 personas, cada una de las cuales a su vez pondrá 10.000 euros y reclutará a 2 nuevas personas, normalmente familiares y amigos.
Por lo pronto, estos listillos, sin poner un duro, en la tercera interacción del proceso, cuando todos sus miembros hayan llegado al centro, habrán obtenido en conjunto: 7 personas x en 10 células x 8 pagadores por nueva célula x 10.000 euros= 5.600.000 Euros, 933 millones de pesetas.

Entonces los ganadores desaparecen y las células siguen su curso administradas por la gente que queda dentro. Pero siguen por muy poco tiempo, porque ya desde el comienzo les quedan pocos turnos antes de colapsar, dejando sin su dinero a la mayor parte de la gente que está dentro.
Para los que han entrado en una de las células en una fase temprana, y tienen la suerte de que durante los turnos que les quedan para llegar al centro, los nuevos siguen captando a más gente, no será tal estafa, pues ganarán sus 70.000 euros.

La continuidad del sistema en las primeras fases está asegurada en base a que los 8 primeros captados, han captado a su vez a familiares y amigos, que a su vez captarán a más familiares y amigos. Esto asegura a los timadores iniciadores que al menos la tercera interacción se completará, que es la única que necesitan para llevarse el botín. En las primeras fases el riesgo de colpaso es muy bajo, aunque en pocos turnos crezca desorbitadamente. Pero para ese entonces, los iniciadores ya están fuera con el dinero.

Para que nadie perdiera ¿cómo debería ser el sistema?: circular. Es decir, todo el mundo que ha participado debería reengancharse tantas veces a la cadena como dinero ganó. O de lo contrario siempre faltaría algo para alguien. Ni que decir tiene que esto no tiene sentido, de nada te sirve ganar 70.000 euros si no te los puedes gastar, y vas a tener que devolverlos todos.
Y en la práctica, no nos vamos a engañar, empezando por los timadores, la gente agarra el dinero y desaparece.

Esta última versión de las "células de la abundacia", "células de la prosperidad"... está publicitada con calificativos "new age" como "antisistema", "terapia de confianza", "muestra de amor"... y de hecho, por lo visto, una de las timadoras que introdujo esta modalidad en España a principio de año, se dedicaba al campo de las medicinas alternativas, y formaba la capa exterior de sus células -la que pone el dinero- convenciendo a los pacientes que acudían a su consulta.
¿Cuánto pudo haber ganado esta mujer y sus compinches creando células iniciales? mucho. Porque no os penséis que iba a mandar a sus clientes a células ya en curso, en las que el dinero sería para la gente que ya está dentro, pudiendo enviarles a células de nueva creación donde las tres primeras interacciones son 100% beneficio para los iniciadores.


Para terminar, explicaré lo que son las "tontines", un sistema de reparto de dinero utilizado en África con el que se ha comparado a este sistema para justificar que funciona. La verdad es que ayer estuve leyendo sobre el tema, y los que lo defienden (normalmente timadores iniciadores de células o gente que está metida en un célula estancada y está desesperada porque ve que no va a recuperar su dinero, y menos si se informa de que es una estafa) utilizan terjiversaciones, mentiras disfrazadas de datos técnicos, trolas que te cagas embebidas o justificadas en datos correctos que muchas veces ni tienen que ver con el tema, pero que le dan autoridad y disimulan la mentira escondida en medio sus párrafos. Claro, que, si nadie se lo desmiente, algún incauto podría tragar.

Bien, las tontines, en Senegal normalmente las administran las mujeres de los poblados, y consisten en que cada mes (o cantidad de tiempo X), cada participante aporta una cantidad de dinero fija a un bote, y todo ese dinero recopilado se destina a una sola persona. De tal modo que ese mes, esa persona agraciada tiene capital extra para crear un negocio, comprar, hacer una inversión fuerte, o simplemente soportar una mala racha temporal. Pero esa persona seguirá pagando, el sistema es circular, todos se conocen y no puedes largarte con la pasta una vez que has cobrado. Digamos que es como un banco sin intereses. Realmente nadie gana más de lo que pierde, la ganancia viene de las acertadas inversiones que cada cual haga con el dinero extra. Cuando alguien muere, sí, se pierde la inversión. De modo que una tontine entre viejos es una especie de juego en el que el que más tiempo viva más gana; los que van cayendo de todas formas ya no lo necesitarán.
De estas tontines también salen a veces las grandes cantidades de dinero que necesita uno del poblado para pagar el billete ilegal rumbo a Europa en patera.

La diferencia con los timos piramidales es que en estas estafas la gente, sí, se larga con la pasta cuando ha cobrado, dejando el grupillo de ganadores detrás de sí una hueste de perdedores a dos velas.


¿Denuncias? La trampa de estos sistemas piramidales, celulares, romboidales, o como quiera que los presenten cuando inventen una nueva versión (yo los llamaría estrellados, por la cantidad de gente que se estrella), es que las cadenas se van formando reclutando familia, amigos y conocidos. Y claro, llegado el momento fatal, ¿vas a denunciar a tu madre? ¿vas a denunciar a tu amigo? ¿a quién vas a denunciar? Los que lo iniciaron ya se han perdido en la lejanía.

(*) "El avión" es exactamente igual que la célula. Cada avión tiene un piloto, dos copilotos, cuatro ayudantes, y ocho pasajeros. Los 8 pasajeros pagan al piloto al "montarse", y éste se jubila con el total del dinero. El avión se divide en dos, y cada copiloto se convierte en piloto del nuevo avión, los ayudantes dos a cada avión como copilotos, y 4 y 4 pasajeros como ayudantes. A reclutar más pasajeros para cada avión, que paguen... y así hasta que colpase.
  • primer avión, un timador ha cobrado, 8 ajenos han pagado sin recibir nada aún.
  • 2 aviones, 3 timadores han cobrado, 24 ajenos han pagado sin recibir nada aún.
  • 4 aviones, 7 timadores han cobrado, 56 ajenos han pagado sin recibir nada aún.
A partir de aquí es cuando empieza cobrar, de continuar en pie, la gente ajena al montaje inicial:
  • 8 aviones, 8 ajenos han cobrado, 112 ajenos han pagado sin recibir nada aún.
  • 16 aviones, 24 ajenos han cobrado, 224 ajenos han pagado sin recibir nada aún.
  • 32 aviones, 56 ajenos han cobrado, 448 ajenos han pagado sin recibir nada aún.
  • 64 aviones, 113 ajenos han cobrado, 903 ajenos han pagado sin recibir nada aún.
Por supuesto, en cada primer avión, ni el piloto, ni los copilotos, ni los ayudantes inciales han pagado antes nada a nadie a cambio de lo que van a recibir.
De media el 88% de la gente pierde su dinero... para pagar el premio del 12% que sí que gana.

Y un enlace de un blog que trata sobre el tema: http://celulasabundancia.blogspot.com/


Por ultimísimo. Que el sistema sea una estafa no quiere decir que por participar vayamos necesariamente a perder nuestro dinero, recordermos que el 12% de los que participan efectivamente gana. 12% contra 88%. Si yo fuera un timador, a continuación os haría la siguiente deducción alegre: ¡Tenéis más probabilidades de ganar aquí que de ganar en la lotería!

PERO, salvo que seas un jugón empedernido, no te vas a gastar 10.000 euros en lotería, y si te has gastado tanto, algo te habrá tocado alguna vez.

Jugando a la lotería no le pasas el muerto a tus amigos y familiares. Porque hay que ser consciente de que, llegado el momento, si tú no estás en ese 88% de saqueados perdedores, entre ellos estarán amigos, o amigos de amigos, o amigos de amigos de amigos.

En estas estafas, dependiendo de la fase de la célula en la que entres (cosa que no puedes saber) y de cómo esté de saturado el entorno de células desarrolladas en paralelo, la probabilidad REAL de ganar no es del 12%. Si entras en una fase temprana de la estafa y el entorno de captables no está aún demasiado afectado, ¡FELICIDADES! tu probabilidad de ganar está cercana al 100%, ¡y si en lugar de seguir una cadena ya creada has iniciado tú mismo con tus amigos una nueva de cero, ni te cuento...!
Pero esto va disminuyendo a una velocidad monstruosa con cada interacción y puedes encontrarte directamente con un 0% de posibilidades de ganar o si quiera recuperar tu dinero, aunque cuando entres aún haya gente ganando dinero (por lo pronto el que tú acabas de perder), porque estés en una fase de hundimiento: nadie más pone, los que han pillado no devuelven (habría que iniciar un dificultoso proceso inverso), y es imposible encontrar nuevos reclutas porque alrededor sólo hay hay miles o cientos de miles de desesperados como tú que han perdido todo lo que invirtieron.

Has perdido tu dinero y has hecho perder su dinero a los amigos y familiares que metiste detrás de tí.

Lo más triste de todo es que, aunque no participemos voluntariamente en este tipo de juegos, últimamente es de actualidad que nuestro dinero depositado en el banco sí que puede estar participando en estafas piramidales, en su versión seria, disfrazada de inversiones de alto rendimiento.
"Interés del una-barbaridad-por-ciento a partir del segundo año; y le regalamos 1.000 euros por cada persona que atraiga a nuestro fondo de inversión"

lunes, 18 de febrero de 2008

el mundo en números en tiempo real

En la página Worldometers puede verse la población humana actual de La Tierra, el número de nacimientos y defunciones en lo que llevamos de año, gastos militares, coches fabricados, hectáreas de bosque perdidas, toneladas de captura de pesca... De todo un poco.

Los contadores se van actualizando en tiempo real, unos más lentamente, otros más velozmente. El recuento se basará en estadísticas sobre datos conocidos y aplicados al presente-futuro: si en el periodo de tiempo T consta que murieron X personas, toca que cada tres segundos muere una persona, y así se irá actualizando el contador cada tres segundos.
Por supuesto que no es exactamente real, quizá algunos apartados sean más realistas que otros, quién sabe.

Visto aquí.

martes, 30 de octubre de 2007

el código indescifrable II

Hace tiempo rumiaba que la única forma totalmente segura de cifrar un archivo de 8 "letras" era con una clave de 8 "letras". Es decir, la clave tiene que ser tan larga como los datos, ya que es la única forma de que las posibilidades de descifrado sean infinitas, infinitos mensajes descifrados correctamente con parte de las infinitas claves, obteniendo textos o datos legibles entre los cuales será imposible determinar cuál es el bueno.

Algunos programas de ordenador comerciales utilizan códigos para evitar la piratería o para que el cliente pueda actualizar su producto. Estos códigos a veces se introducen a mano, y otras veces vienen proporcionados en un archivo, para mayor comodidad evitando tener que teclearlo, pues suelen ser muy largos.

Ahí está la solución: no podemos memorizar una clave de -pongamos- un millón de caracteres, ni nos cundiría en tiempo introducirla, pero podemos utilizar cualquier fichero del ordenador que sepamos que no va a alterarse como clave: un documento de texto, un ejecutable EXE, una DLL...
De este modo podemos tener claves tan enormes como el tamaño en Kb del fichero, sin necesidad de memorizar nada más que la situación y nombre de ese fichero en el disco duro.

Por supuesto esto no sustituye al password tecluscrito, sino que lo complementa. Si el intruso se hace con el algoritmo de encriptación (damos por hecho que es un crack de la informática y tiene medios y conocimientos para sacar todas las entrañas del ejecutable de nuestro programa encriptador) y sabe o sospecha que la clave está en algún fichero dentro del mismo ordenador, se lo dejamos tiradísmo: el descrifrado por fuerza bruta será mucho más sencillo que si el código fuera una clave normal y corriente, ya que el número de ficheros en un disco duro es muy limitado en comparación con las combinaciones de una clave decente: sólo tendría que atacar probando con todos los ficheros del ordenador hasta que salga el correcto. Cuando tenga el fichero, tendrá a la vez los 8 millones de bits de la clave.

Por tanto, nuestra clave se introduciría de esta manera:

PASSWORD:> C:\windows\bin\CLULSE.DLL 1a2b3c4d5e

Como vemos la clave consta de dos partes: un fichero de claves dentro del ordenador y una clave manual alfanumérica que únicamente está guardada en nuestra memoria sesuda.

Suponemos que el archivo CLULSE.DLL ocupa 2 Megas. Es un archivo que no nos sirve para nada, pero es real, quizá de un programa que no utilizamos o hemos borrado, o ese intruso al que no se le escapa ni una podría sospechar de un fichero .DLL que no tiene el encabezado de un DLL auténtico. Porque no, no vamos a esconder la llave debajo del felpudo, ni en la caja fuerte, ni al final de un pasillo repleto de robots asesinos... todo eso es ayudar al intruso a saber dónde buscar: la llave tiene que estar visible, pero sin forma de llave, y debe de estar mezclada con otros miles de objetos variopintos.
Podremos encriptar con este DLL en concreto archivos de hasta 2 megas interaccionando cada bit del archivo con cada bit del DLL sin que en ningún momento haya que reciclar datos.

El algoritmo sería muy sencillo, teniendo una clave tan larga, y además... BINARIA lo que aumenta la complejidad al no restringirla a los caracteres manejados por los humanos, que se reducen a los introducibles cómodamente desde un teclado... bastaría con simples operaciones booleanas de bit de forma secuencial, ganando en velocidad de encriptado y desencriptado.

Por ejemplo:
Tomamos en primer bit del fichero de clave y hacemos una operación de conjunción (AND), disyunción (OR) o exclusión (XOR) con el primero de la clave manual complementaria; el bit obtenido lo llamaremos X. Con X volvemos a hacer otra operación lógica con el primer bit del fichero a encriptar o desencriptar... y vamos grabando.
Ahora volvemos a aplicar lo mismo pero partiendo ésta vez de el anterior valor de X: operación con el siguiente bit del fichero de clave, su resultado lo operamos con el siguiente bit de la clave manual, y obtenemos un nuevo X para operar con el bit que venga del fichero a encriptar.

Los bits de la clave manual se terminarán rápido, porque será una palabra corta asequible para nuestra memoria y el tiempo que requiere teclearla, y tendremos que volver a recliclarla desde el principio; pero ahí seguirá de fondo el fichero de clave con sus millones de bits para evitar que se repitan patrones.

Pegas:
1. Como siempre la máxima debilidad es que en un momento dado el documento sin desencriptar residirá en el disco duro y, aunque se borre, existen programas para recuperar datos borrados del disco duro.
  • Solución 1: También existen programas para borrar lo que ya está borrado, definitivamente.
  • Solución 2: Complementaria a la anterior: el propio programa de encriptado-desencriptado permitirá visualizar -e incluso redactar- el documento guardándolo en la RAM (memoria que se desvanece al apagar el ordenador), no usando jamás el disco duro para soportar ninguno de los datos delicados. Podría ser un procesador de texto -para el caso de encriptaciónd e textos- con el codificador integrado. Esto es lo que tengo hecho desde hace años: aprovechando las fuentes libres de un procesador de textos en C, añadí el encriptador y los menús pertinentes. De este modo escribo en el editor y guardo el archivo ya encriptado en el disco duro, el texto desencriptado nunca pasa por el disco duro... en teoría... porque tampoco tengo la certeza de que el programa no se valga del disco duro en algún momento para ficheros temporales. En la medida de que el procesador se basa en windows... esas cosas las controlará el propio sistema operativo más allá del código en C del programa. Mis conocimientos no llegan hasta tanto, de hecho yo no sería capaz de programar el propio procesador de textos por mí mismo si no es copiando y pegando código.

2. La posibilidad de que el sistema operativo marque la fecha de última utilización en el archivo del fichero de claves, dando al intruso pistas sobre qué ficheros del disco duro tienen más probabilidad de ser los que busca.

lunes, 15 de octubre de 2007

los nómoros

-¿podróo contor hosto ol nómoro dooz?
-Volo.
0: no
1: solo
2: dos
3: dos con otro
4: dos por dos
5: dos por dos con otro
6: dos por dos con otros dos
7: con otro son ocho
8: ocho
9: ocho con otro
10: ocho con otros dos

viernes, 13 de julio de 2007

martes, 12 de junio de 2007

atando La Tierra

La población sobre el planeta en el 2005 era de 6.453.628.000 personas, según la wikipedia.
Seccionando a la altura del ecuador, La Tierra tiene una longitud perimetral de unos 40.075 Km.

Si toda la población mundial formara una cadena, cogidos de la mano con los brazos abiertos, abarcando una distancia media de 1,6 m. por persona...
(La distancia que se abarca con los brazos abiertos es prácticamente la altura de la persona. Para sacar la distancia exacta habría que tener datos sobre la altura de toda la población, datos que no existen, de modo que he hecho el promedio a ojo, contando con las alturas de la población adulta y la infantil)

6.453.628.000 x 1,6 m. = 8.389.716.400 m. = 8.389.716,4 Km

Por tanto:
8.389.716,4 Km / 40.075 Km = 209,35

La cadena humana de todos los habitantes del planeta daría 209 vueltas alrededor del ecuador.

...

En 2004 la cifra de vehículos en España por cada 1000 habitantes es de 454. (No sé si incluye camiones y motos)
Población de España en el 2004: 43.197.684 habitantes empadronados.

Por tanto:
43.197.684 x 454/1000= 19.611.748 vehículos

Suponiendo que la media de los vehículos es de 4,5 m. de largo (aunque seguramente sea más):
19.611.748 x 4,5 m. = 88.252.866 m.
= 88.252,866 Km de coches situados en fila parachoques con parachoques.

88.252,866 Km / 40.075 Km = 2,2

Si colocáramos todos los coches de España en línea, parachoques con parachoques, la fila daría dos vueltas a La Tierra.

¿Y los coches de todo el mundo?

* Más datos: En 1998 España tenía 9.649 kilómetros de autovías... x 2,5 carriles x 2 sentidos: 48.245 Km.
De modo que si todos los vehículos decidieran circular a la vez por autopistas... sencillamente no cabrían (Y eso yendo pegados como un tren, respetando la distancia de seguridad no cabría ni la decimoctava parte)

lunes, 5 de marzo de 2007

textos aleatorios y anagramas

A veces parece que la casualidad es algo alevosa. El otro día Don Mengambrea me muestra el programa que utiliza en linux para generar anagramas; unas horas más tarde, busco en google cierta cadena que no tiene nada que ver con el tema, y llego a una página bastante misteriosa e interesante desde el punto de vista ocioso. Se trata de un generador de textos aleatorios que incluye un "traductor" de palabras basado en la búsqueda de anagramas, y que de paso sirve para traducir trozos de ese lenguaje misterioso generado pseudoaleatoriamente a partir de una cadena inicial.

[Por otro lado, tenía desde hace días programado el grueso de un juego de texto (o interactive fiction) de exploración en el que te mueves por un gran museo de 3 plantas, con 9000x9000 salas y 9000 libros en cada una, cuyos textos se generan pseudoaletoriamente usando como semilla las coordenadas y el número de libro. También se puede encontrar una pinacoteca de arte abstracto pseudoaleatorio y un músico que toca acordes y melodías aleatorias al piano. Esto ya lo anunciaré por aquí cuando lo remate y lo publique; además está programado para un sistema multiplataforma.]

Volviendo a esta misteriosa página: se pueden buscar textos aleatorios referentes a cualquier tema. Por ejemplo, he aquí un tratado milenario sobre los orígenes del Laberinto 7, o sobre la cabalística del bacalao al pil-pil, o sobre lo que tú quieras, basta con que te vayas a la parte inferior de la página y escribas la cadena generadora en el campo SEARCH.

El otro campo del final, TRANSLATE SHORT PHRASE sirve para generar significados a partir de reordenaciones de letras (anagramas).

Sólo una curiosidad.

viernes, 23 de febrero de 2007

fractales

Anoche, en el programa "Redes" de La 2, hablaron de fractales. El presentador, Eduard Punset (que tiene un blog), entrevista en inglés a personalidades de todo el mundo, con su postura estática y cara de absoluta atención mientras su invitado se explica, y doblándose a sí mismo con un exagerado acento catalán. Esto es: pronunciar la ele pegando la lengua al paladar -despacio, sin golpeteo- y retenerla ahí unos segundos hasta que se retira la lengua lentamente para que salga la vocal que ya estaba impaciéntándose.
Posteriormente se mencionó un programa de ordenador para realizar fractales, pero no le voy a hacer publicidad porque es comercial. En su lugar pondré otro gratuito: FractalForge, que si bien es menos completo, da bastante juego para explorar los recodos del fractal generado con la fórmula de Mandelbrot adornado con colorines.

Sobrevolando el planeta con Google Earth, del mismo modo, podemos observar multitud de geoformas fractales, en especial en grandes territorios no urbanizados ni modificados por la civilización: desiertos, montañas, polos o cuencas fluviales.

sábado, 3 de febrero de 2007

el código indescifrable

Encriptar y codificar es esconder y ¿cuál es la mejor forma de esconder algo?: mostrarlo sin señalarlo ni acotarlo.

Se ha cometido un asesinato, varios testigos vieron a una única persona cometer el crimen.
La persona que lo cometió se confiesa como autora... pero no puede ser condenada... porque además, otras 20 personas más se han autoidentificado como autoras materiales. Me suena que hubo un caso verídico con unos gemelos, ante la imposibilidad de determinar cuál de ellos fue el autor, ante la posibilidad de condenar a un inocente, no se condenó a ninguno.

La mejor forma de esconder una palabra es esconderla en medio de más palabras, así nadie puede determinar cuál de las palabras es la palabra. Y ni si quiera que ese conjunto de palabras esconde algo que es importante para algo.
Aplicado a encriptación, supongamos que queremos codificar una letra, una letra secreta. Y tenemos una clave de desencriptación que mismamente es otra letra.

Para este ejemplo será un algoritmo de encriptación muy básico: una transposición. Cada letra tiene un valor numérico basado en su orden alfabético (a=1, b=2, c=3,...).
La letra secreta es la "E". La clave de desencriptación es "B" y la letra encriptada aplicando la clave sería:
E+B... (E+2) >>> G

Para desenciptar bastaría con hacer la operación inversa:
G-B... (G-2) <<<>

Bien, el espía se encuentra con el código: "G", y empieza a probar claves, y se da cuenta de que aun conociendo el algoritmo, cualquier clave que introduzca ofrece una desencriptación válida: una letra del alfabeto. Por tanto le es imposible saber cual es la letra secreta.

Vamos a ampliar ahora a dos letras. Aquí la cosa se complica un poco. Se supone que encriptamos un par de letras, pero ese par de letras debe de tener sentido en algún lenguaje, humano o cibernético (pueden ser datos de un programa o de un fichero interpretable por un programa).
Pongamos que es una palabra en castellano; algunos resultados válidos serían: es, el, lo, un, as, yo, tu, su, do, re, mi, fa, la, si, no... etc y resultados no válidos serían: ww, gh, ia, rr, vz... etc.
Por tanto, aquí el espía podría acotar un poco más, separando entre claves que devuelven resultados lógicos, y claves que devuelven basura desechable. Pero tampoco resolvería nada, si el conjunto de claves válidas le devolviera múltiples resultados válidos, infinitos resultados válidos, palabras con sentido. Nuevamente... ¿cuál de ellas es la palabra de dos letras secreta?

A medida que crece la cadena, la combinatoria válida se reduce y es más fácil acotar, a menos que la clave crezca con la cadena.
Para una palabra secreta de dos caracteres bastaría una clave de mismamente dos caracteres para obtener resultados válidos infinitos, y por tanto inútiles. Para 3 letras, clave de 3 caracteres; para 4 letras, clave de 4 caracteres... para 5678 letras, clave de 5678 caracteres... por muy simple que sea el algoritmo de cifrado.
Como nuestra memoria no es infinita, pero la de los ordenadores sí, mejor idear un sistema que mantenga la clave de descifrado pequeñita, aun a costa de aumentar la longitud del archivo encriptado... pero no de cualquier forma, los caracteres de relleno deberían de generarse bajo algún criterio que no delatase lo que es relleno y lo que es fundamental.

¿Y si es archivo encriptado estuviera preparado para obtener infinitos resultados válidos con las infinitas posibles claves independientemente de la longitud de la cadena secreta?

Para empezar vamos a esconder la longitud verdadera de la cadena, vamos a introducir código basura: falsos culpables.
La palabra secreta de 2 caracteres de longitud sería encriptada, por ejemplo, en un fichero de 8 caracteres de longitud, de los cuales 6 serían inservibles para obtener la palabra secreta correcta, pero útiles para obtener multitud de palabras "secretas" incorrectas. Hemos aumentado el caos, hemos escondido un grano de arena en una playa. Nadie puede diferenciar nuestro grano del resto de los granos.

Como gracias a la tecnología, cada vez los problemas de espacio son menores, y la seguridad de los datos bien merece espacio extra, este sistema de esconder lo válido dentro de un caos capaz de aumentar la probabilidad de resultados legibles falsos y disminuir la posibilidad de concretizar entre ellos, es bastante interesante. Estenografía + criptografía.

La tecnología avanza, y algoritmos que al día de hoy pudieran parecer inquebrantables, podrían descifrarse con los ordenadores y nuevas técnicas del futuro. La idea sería: muy bien, que los ordenadores del futuro resuelvan y desencripten lo que quieran... pero que cuando resuelvan, obtengan infinitos resultados válidos. Tenerlo todo es como no tener nada, podría el ordenador disponer de todos los textos posibles en todos los idiomas posibles, como en la Biblioteca de Babel de Borges, pero a ver qué criterio sigue para saber cual de esos textos es el que estaba oculto.

Además, que lo que he dicho un poco más arriba sobre que para una palabra secreta de 3 caracteres basta una clave de 3 caracteres para hacerla indescifrable es falso. Cuando se disponen de varios archivos codificados con el mismo algoritmo y la misma clave, se puede acotar más el conjunto de claves válidas, descartando aquellas que ofrezcan resultados no legibles en cualquiera de los ficheros codificados del repertorio, y en función del número de "muestras" para comparar, se podría llegar a hacer peligrar la inquebrantabilidad de la encriptación.
Claro que, esto también se puede neutralizar mediante juego sucio, nuevamente usando la información basura: si tenemos un directorio con todos nuestros ficheros de información codificada, bastaría introducir alevosamente entre ellos una proporción de ficheros con contenido ilegible codificado, ficheros basura que llevarían al espía a descartar -sin saberlo- claves válidas.

No, acceder a la información secreta no puede ser tan simple como en las películas: entrar en el ordenador del enemigo usando como clave el nombre de su mascota, para que a continuación aparezcan todos los ficheros secretos abiertos en el escritorio.
La información bien escondida puede estar a la vista, pero nunca acotada ni recuadrada con un marco que diga "TOP SECRET". Estará en cambio rodeada de datos falsos y posibilidades infinitas. Y la mayor falla de cara a la seguridad es el propio sistema operativo: la posibilidad de recuperar datos borrados del disco duro (los ficheros originales antes de la encriptación), datos temporales desencriptados que fueron almacenados mismamente como temporales en el disco duro, la posibilidad de consultar la fecha de acceso a archivos para saber cuales son los importantes...

NOTA: Cuando hablo de infinito, se entienda en sentido práctico, no real ni absoluto. Los resultados posibles de descifrado son siempre finitos, pero en la medida en la que abarquen todas las posibilidades y por tanto no concreticen en una única, dentro de su micromundo de posibilidades significan el todo, el infinito relativo.

[ampliación Martes 6 de Febrero]
La utopía de una clave corta que genere infinitas soluciones válidas aun a costa de aumentar el tamaño del código cifrado es inviable, a priori.
Las combinaciones están limitadas por la interacción con los elementos de la clave, por combinatoria.
Si tenemos una clave basada en 25 posibles letras, para generar infinitas soluciones de encriptación-desencriptación sobre un archivo que también contiene exclusivamente 25 caracteres, necesitaríamos una clave tan larga como el propio texto a encriptar.

Por ejemplo, un texto de 10 caracteres, escrito con 25 posibles valores.
Los posibles textos que se pueden generar con estas bases son 25^10 es decir... 9,5367E13
Para interaccionar con cada uno de esos caracteres y producir un nuevo caracter independiente de los demás, y por tanto obtener los infinitos resultados posibles (todos los resultados posibles por combinación), harían falta otros 10 caracteres con 25 posibles valores.
De otro modo no se podría generar la totalidad de posibilidades, y por tanto cabría el riesgo de que el cifrado fuera frágil.

jueves, 29 de junio de 2006

degradación de una serie

Estaba leyendo este post de Treiral, y aparece una serie numérica...
4 8 15 16 23 42
...que parece proceder de (valga la redundancia) una serie de televisión. El caso es que cuando veo series de números, aunque no escondan ningún acertijo me gusta indagar y probar cosas, y aquí me ha dado por degradar la serie aplicando una fórmula reiterativamente hasta reducirla a un solo elemento, así:

serie de partida:
4 - 8 - 15 - 16 - 23 - 42
primera iteración:
4 - 7 - 1 - 7 - 19
segunda iteración:
3 - 6 - 6 - 12
tercera iteración:
3 - 0 - 6
cuarta iteración:
3 - 6
quinta iteración:
3

La fórmula es bien sencilla, pero la omito por si a alguien más le gusta jugar con los números.
Otras variaciones de degradación basadas en la misma idea serían:
R:
4 - 8 - 15 - 16 - 23 - 42 : 4 - 7 - 1 - 7 - 19 : 3 - -6 - 6 - 12 : -9 - 12 - 6 : 21 - -6 : -27
S: 4 - 8 - 15 - 16 - 23 - 42 : 12 - 23 - 31 - 39 - 65 : 35 - 54 - 70 - 104 : 89 - 124 - 174 : 213 - 298 : 511


lunes, 30 de mayo de 2005

¿Aparecerá el 4?

11131221131211131231121113112221121321132132211331222113112211
1321132132111213122112311311222113111221131221
3113112221232112111312211312113211
11131221133112132113212221
13211311123113112211
31131211131221
1113213211
13112221
312211
111221
1211
21
11
1
0

10
1110
3110
132110
1113122110

311311222110
13211321322110
1113122113121113222110
31131122211311123113322110
132113213221133112132123222110
11131221131211132221232112111312111213322110
311311222113111231133211121312211223113111231121123222110
1321132132211331121321231231121113112221221321133112132112211213322110

Habrá que investigar...
...
o hacer que busquen por nosotros