Esteganografía: ocultando texto en una imagen

Solució al petit “repte esteganogràfic” d’ahir: Es tractava de localitzar un missatge ocult que és el que permet la tècnica esteganogràfica. Hi ha diverses formes de fer-ho, les més essencials i bàsiques són en primer lloc fer-ho a “nivell de píxel”, és a dir introduir petits canvis en el gradient dels codis hexadecimals dels colors, canvis que són imperceptibles a l’ull humà, però que amb senzilles eines informàtiques es pot trobar el resultat, i desprès hi ha el sistema que jo us vaig ficar: per explicar-ho fàcil direm que aquesta tècnica no manipula la imatge, el que fa es integrar en ella un arxiu de text amb l’escrit que sigui que es vol ocultar (per exemple “l’atac serà demà a les 5AM”). Dit d’un altre manera a través d’una petita instrucció informàtica es “fusionen” imatge i text. La imatge com a tal no es veu manipulada gens, si s’obre com a imatge es veu la imatge jpg en cru original tal i com és, però si s’obre en format txt (en el cas de Windows el “bloc de notes”) aleshores trobes el missatge ocult. Evidentment no és una forma de xifrar informació, només d’ocultar-la, per tant si és interceptada no és difícil de descobrir si qui ho intercepta sospita que pot estar manipulada, xifrar el contingut és un altre cosa, però això no és el que volia mostrar-vos en aquest petit repte. Indicar només dues coses més: per sospitar de si una imatge pot haver estat manipulada una manera pot ser fixar-se per exemple en el seu pes. L’original tindrà per exemple un pes de 325 kb, la manipulada pesarà sempre una miqueta més al tenir més contingut incorporar, potser 1 o 2 kb més, quasi imperceptible, però suficient. I segon, això només serveix si la imatge s’envia tal qual sense manipular, és a dir, “no tractada”, per això us vaig fer descarregar l’original. De no ser així potser els algoritmes de compressió de les xarxes socials (o els del sistema del dispositiu mòbil o eina o sistema que sigui que us descarregueu) de la imatge poden alterar o destruir el contingut. En el vídeo que us adjunto us mostro la forma de trobar el missatge a la imatge que vaig preparar. Gràcies a tothom qui ha participat.

Solución al pequeño “reto esteganográfico” de ayer: Se trataba de localizar un mensaje oculto que es lo que permite la técnica esteganográfica. Hay varias formas de hacerlo, las más esenciales y básicas son en primer lugar hacerlo “a nivel de píxel”, es decir, introducir pequeños cambios en el gradiente de los códigos hexadecimales de los colores, cambios que son imperceptibles al ojo humano pero que con sencillas herramientas informáticas se puede encontrar el resultado. Y después hay el sistema que yo os puse: para explicarlo fácil diremos que esta técnica no manipula la imagen, lo que hace es integrar en ella un archivo de texto con el escrito que sea que se desea ocultar (por ejemplo “el ataque será mañana a las 5AM”). Dicho de otra forma, a través de una pequeña instrucción informática se “fusionan” imagen y texto. La imagen como tal no se ve manipulada nada, si se abre como imagen es ve la imagen jpg en crudo original tal y como es, pero si se abre en formato txt (en el caso de Windows en el bloc de notas) entonces encuentras el mensaje oculto. Evidentemente no es una forma de cifrar la información, sólo de ocultarla y por tanto si resulta interceptada no es difícil de descubrir si quien la ha interceptado sospecha de la existencia de un mensaje oculto. Cifrar el contenido es otra cosa, pero eso no es lo que os quería mostrar en este pequeño reto. Indicar sólo dos cosas más: para sospechar de si una imagen puede a ver sido manipulada podemos fijarnos por ejemplo en su peso. La original tendrá por ejemplo un peso de 325 kb, la que contiene el mensaje pesará siempre un poquito más, quizá 1 o 2 kb más, casi algo imperceptible, pero suficiente. Y segundo, esto sólo sirve si la imagen se envía tal cual, sin manipular, es decir, “no tratada”, por ello hice descargar el original. De no ser así, quizás los algoritmos de compresión de las redes sociales (o los del sistema del dispositivo móvil o herramienta o sistema que sea que os descarguéis) de la imagen pueden alterar o destruir el contenido. En el vídeo que os adjunto os muestro la forma de encontrar el mensaje en la imagen que preparé.

Publicado en Sin categoría | Etiquetado , , , , | Deja un comentario

Asistencia y reconocimiento por voz

Aquí us deixo un petit aplicatiu en desplegament d’assistència i reconeixement de veu.

https://github.com/gcjordi/voiceassist_apli_jgc

Aquí os dejo un sencillo aplicativo en despliegue de asistencia y reconocimiento de voz.

eMail: info@jordigarcia.eu

Publicado en Sin categoría | Etiquetado , , , , , , | Deja un comentario

Preguntas clave hacia la Inteligencia Artificial general

El advenimiento de una inteligencia artificial general práctica que pueda operar en la práctica al modo de un ser humano aún es algo más lejano de lo que puede llegar aparecer. Y es que, actualmente, estamos en una fase embrionaria donde se abusa muchas veces del concepto “inteligencia artificial” (con intereses de marketing), cuando en todo caso se está hablando de Machine Learning.

Hoy en día, una máquina es capaz de hacer una cosa y de hacerla muy bien, incluso es capaz de mediante sensores percibir distintas magnitudes y en base a ello actuar, pero de eso a que sea una inteligencia artificial general capaz de interactuar con un ser humano como un ser humano media un trecho.

Hacia la inteligencia artificial general

Ahora bien, lo que sí que resulta cierto es que nos vamos acercando inexorablemente hacia un futuro cada vez más cercano donde esa realidad entre humano y máquina cada vez se difumine más y las máquinas sean capaces de realizar globalmente las acciones que realizamos los humanos.

Puede parecer una realidad lejana, y probablemente lo es, pero yo personalmente no tengo ninguna duda de que surgirá esa inteligencia artificial capaz de interactuar de una forma global. ¿Cuánto tardará? Lo desconozco, ¿20, 50, quizás 100 años? No lo sé, lo que sé es que yo, hoy a mis 42 años lo daría todo por verlo y que trabajaré incansablemente hasta el fin de mis días para contribuir humildemente a avanzar en ese camino, aunque tengo mis serias dudas de que yo llegue a verlo por completo, pero estoy esperanzado en poder ver grandes avances.

Tengo serias dudas del tiempo que tardará, pero no tengo dudas de que llegará. Eso sí, nótese que he dicho que no dudo que veremos una “inteligencia artificial global” y que será capaz de interactuar con los humanos, pero he omitido voluntariamente el decir que será capaz de interactuar “como” los humanos, y es que entiendo que es en ese punto donde puede estar el quid de la cuestión.

Estamos obsesionados en conseguir una inteligencia artificial humanoide inteligente (yo el primero) que actúe con nosotros como personas, pero, ¿por qué no puede existir una inteligencia general fuerte, global y que sea capaz de hacer todo como un humano pero no del modo que lo hace un humano e interactuando con el humano de una forma diferente a como lo hacemos los humanos?

Los distintos tipos de animales que existen son capaces de realizar distintos tipos de acciones (cada uno adaptando su realidad a su particular capacidad cognitiva, motriz, etc.) y tienen distintos tipos de inteligencia, no son humanos ni interactúan con los humanos como los humanos, pero nadie pone en duda que tienen algún tipo de inteligencia, consciencia y que entienden el mundo que les rodea de un mundo concreto.

Entonces, ¿por qué una máquina artificial no puede ser inteligente “a su modo”? Que una máquina pueda llegar a tener su consciencia propia o que pueda llegar a entender el mundo de un mundo concreto y distinto de los humanos, no significa que no pueda llegar a ser consciente o poder interpretar el mundo de algún modo.

IA humana vs IA artificial

Si nos ponemos más a fondo en la cuestión, incluso podemos decir que el ser humano no es más que otra máquina (creada biológicamente en este caso) llena de sensores (los sentidos) que son manejados mediante distintas piezas de software (las distintas funciones y funcionalidades que provee el cerebro) y que son articuladas mediante unos actuadores y mediante un hardware específico (el cuerpo humano en sí mismo y sus distintas “piezas”: articulaciones, órganos, etc.)

Entonces, si un cuerpo humano no es más que un conjunto de sensores, si un cuerpo humano no es más que un conjunto de software y de hardware creado naturalmente de forma biológica y un robot humanoide no es más que eso creado artificialmente, ¿por qué no puede llegar esa máquina no creada naturalmente a comportarse como una máquina creada por la naturaleza?

Computacionalmente, una inteligencia artificial puede ya tener la misma o más capacidad que cualquier ser humano, por tanto el problema no puede ser de datos. Si el problema es de enseñarle datos a la máquina para que se comporte como un humano entonces la solución sería próxima o ya se habría alcanzado. Sería tan próxima como la de aquel niño que cuando tiene 1 año tiene una determinada información aprendida y que cuando tiene 5 tiene otra información aprendida y así sucesivamente.

En realidad, el problema tampoco puede ser operativo. Dicho de otro modo, una máquina puede ya tener más sensores que cualquier ser humano (un claro ejemplo son los coches autónomos más avanzados con infinidad de sensores en su cuerpo capaces de “ver” y de interactuar en ese entorno).  Y el problema tampoco está en el hardware, pues artificialmente pueden reproducirse fielmente todas las piezas y funciones del cuerpo humano (impresión 3D, etc.). Un claro ejemplo de ello es, por ejemplo, los famosos robots de Boston Dynamics.

Aquello que nos frena hacia la inteligencia artificial global y total

Entonces si computacionalmente una máquina artificial puede tener más datos, conocimiento e información que cualquier ser humano y si cualquier máquina artificial tiene la capacidad de percibir su entorno con la mayor fidelidad y precisión y si es capaz de reproducir fielmente el “hardware” de un humano, ¿por qué no puede comportarse como un humano?

Pues posiblemente la respuesta esté en que quizás no debamos pretender que se comporte como un humano, sino en que se comporte “a su manera”, en que sea inteligente a su modo y en que sea corporalmente con su propia forma. No hace falta que sea como un ser humano para poder hacer todo aquello que pueda llegar a ser (y digo ser, no parecer) como un ser humano.

Ahora bien, cierto es que aunque se consiga generar ese ente inteligente “a su modo” que pueda hacerlo todo como un humano, estamos lejos de conseguir que lo pueda hacer de una forma integrada. Quizás lo que estaríamos más cerca hoy en día de eso son los coches autónomos más avanzados por su capacidad de interactuar de una forma más global y menos específica con su entorno. Pero, aún y así, los mismos están aún a años luz de poder ser considerados ni lo más cercano a una inteligencia artificial general tal y como nosotros queremos entenderla.

Y ¿dónde está la última frontera para conseguirlo? Evidentemente no tengo la respuesta, pues si la tuviese ya tendría un Premio Nobel y sería el hombre más rico del mundo, pero sí que tengo claro que el camino puede estar en entender que el problema puede no estar ni en la capacidad computacional (el conocimiento e información humana) ni en sus sensores, en sus piezas de software o de hardware. Entiendo que su problema puede estar en lograr que la inteligencia artificial logre tener consciencia y, sobre todo, que logre entender la complejidad del mundo, y es en ese punto donde todo está por resolver y donde todo puede resolverse llegando a la solución del asunto.

La inteligencia artificial, a mi entender, será general cuando además de ser tan capaz computacional y operativamente como un humano sea capaz de ser consciente de sí misma (sea cual sea su tipo de consciencia) y, especialmente, cuando sea capaz de entender la complejidad de su entorno. Y es en ese punto donde queda todo el trabajo por hacer, aunque es -en parte- donde el gran grueso del trabajo se está realizando.

Y ¿qué significa que una IA sea capaz de ser capaz de entender la “complejidad de su entorno”? Este tema daría para otro artículo entero, pero de modo resumido podemos decir que el ser humano, al contrario que una máquina artificial, puede no ser perfecto ni en su conocimiento o información de la que dispone, ni en su software (funciones del cerebro) o hardware (partes del cuerpo) pero es capaz de hacer algo que por el momento ninguna máquina es capaz de hacer (completamente).

El cuerpo humano es capaz de entender que el mundo es mucho más complejo de aquello que se capta y que la respuesta a aquello que se capta no siempre puede resolverse con un planteamiento matemático, que existen matices, emociones, moral, ética que envuelve a todo ello, y allí nace la complejidad del mundo y es en ese punto donde nace la consciencia.

Muchos temerán un futuro donde se rompa la frontera del ser humano con la máquina artificial, muchos temerán la llegada de ese punto de nacimiento de la máquina consciente. Otros soñaremos con ese momento y lo desearíamos vivir con todas las fuerzas e ilusión del mundo, pues lo vemos como una cosa buena para la humanidad y no como una amenaza. Pero sea como sea y pensemos lo que pensemos, sin duda es un tema interesante para ser planteado y para debatirse.

Contacto: info@jordigarcia.eu

Publicado en Sin categoría | Etiquetado , , , | Deja un comentario

Chatbot para enfermedades comunes

Hoy os dejo puesto en marcha un pequeño aplicativo basado en #MachineLearning que da un diagnóstico de enfermedades comunes en base a realizarle preguntas al paciente. Este sistema está en beta, aún en una fase de aprendizaje muy primitiva y NO aporta consejo médico alguno. https://github.com/gcjordi/health_chatbot_jgc #AI #Health

Avui us deixo un petit aplicatiu posat en marxa basat en #MachineLearning que dóna un diagnòstic de malalties comunes fent preguntes al pacient. Aquest sistema està en beta, encara en una fase d’aprenentatge molt primitiva i NO aporta consell mèdic. #IA #Salut https://github.com/gcjordi/health_chatbot_jgc

Publicado en Sin categoría | Etiquetado , , , , , | Deja un comentario

Poppy eHealth is here!

El naixement de la criatura. El nacimiento de la criatura. The birth of the creature. La naissance de la créature. 🙂 #AI #ML #Salut #Salud #Health #Santé #ArtificialIntelligence #MachineLearning @poppy_project @tic #Catalunya #France @UEenNvelleAqui @ERC_Research @EUScienceInnov

eMail: info@jordigarcia.eu

Publicado en Sin categoría | Etiquetado , , , , , , | Deja un comentario

¿El “cerebro Lego” como base de la Inteligencia Artificial General?

Quien me conoce o me sigue por cualquiera de mis redes sociales y plataformas públicas sabe que, desde hace mucho tiempo, me dedico a ofrecer servicios de ciberseguridad técnica a todo tipo de empresas y al desarrollo de aplicativos y soluciones basadas en Inteligencia Artificial y Machine Learning, a la vez que a anillar todo ello desde la vertiente legal y del análisis de los datos.

Todo este conjunto de servicios siempre los he realizado y realizaré de una forma ecléctica y transversal a todos los sectores, pues considero que tanto en el ámbito de la Ciberseguridad como en el entorno de la Inteligencia Artificial, los problemas y las cuestiones de base siempre son las mismas e independientes del sector, ya que lo que realmente cambia son los matices y la forma de implementarlo en cada uno de ellos, pero la esencia es idéntica.

Focalizando la IA desde el ámbito de la salud

Dicho lo anterior, en este artículo me quiero focalizar en el ámbito de la salud pues considero que, por un lado, es uno de los sectores más trascendentes de presente y de futuro para el conjunto de la humanidad y para el desarrollo de muchas soluciones sobre las que trabajo y, por otro lado, que aquello desarrollado -a priori- para el sector de la salud puede plasmarse,  modularse, escalarse o desescalarse casi a cualquier otro sector.

Así, una de mis últimas líneas de trabajo, investigación y desarrollo se basa en el aportar soluciones técnicas al ámbito de la salud mediante herramientas que permitan lo siguiente:

1- Aportar funcionalidades y capacidades al servicio de la salud inteligente (tanto para el entorno de los profesionales sanitarios como de los pacientes) mediante desarrollos que aplican IA mediante Machine Learning.

2 – Ofrecer servicios y soluciones que permitan securizar los entornos y servicios médicos digitales. Y es que tan importante es tener unos sistemas de salud inteligentes técnicamente como seguros operativa y funcionalmente

En mi Github puede y podrá consultarse todo el conjunto de herramientas que voy y que iré poniendo a disposición en abierto, así como siempre se me puede consultar para cualquier servicio o desarrollo personalizado que se pueda precisar. Pero, más allá de ello, considero que es interesante formar un stack de servicios y de herramientas agregadas para el entorno (en este caso médico) digital.

Soluciones individuales versus sistemas agregados

Estoy trabajando y tengo en funcionamiento distintas aplicaciones para, por ejemplo, la detección de distintos tipos de lesiones de piel (entre ellas cáncer) o la presencia o ausencia de retinopatía diabética, así como en el desarrollo de sistemas de reconocimiento de voz y otros para una atención más directa y personalizada a pacientes.

Estoy trabajando en todas las soluciones de forma desagregada y cada una de ellas cumple una funcionalidad muy concreta y tendrá unos casos de uso muy específicos, pero, ¿puede lo anterior hacerse desde una perspectiva agregada y que, a la vez, nos acerque a una inteligencia artificial general?

La respuesta es un sí que puede realizarse de una forma en la que, además de ofrecer soluciones individuales, se trabaje en el desarrollo integrado y, por supuesto, puede trabajarse en que ello nos vaya acercando (a una aún a mi entender lejana) inteligencia artificial general.

De modo que, desde la continuación con todos estos servicios y soluciones individuales que trabajaré y seguiré investigando para generar un sistema, un ecosistema que integrando las distintas piezas modulares formen parte de un conjunto “cerebral inteligente” que ya no ofrezcan sólo una funcionalidad, sino que ofrezcan un conjunto de funcionalidades que cada vez más pueda entenderse como un sistema integrado de inteligencia artificial al servicio -por ejemplo- de la salud.

El gran reto

Si el cerebro es un ente modular, que forma parte de un sistema integrado, ¿puede servir ello como base para generar una inteligencia general? ¿Puede ser el por mi denominado como “Cerebro Lego” o “Cerebro Puzzle” la pieza fundamental que sustente un sistema digital realmente inteligente?

Actualmente, la inteligencia artificial es muy buena en funcionalidades individuales pero está muy lejos de poder generalizarse. Dicho de otro modo, una IA puede hacer una cosa muy bien, pero si tiene que hacer varias cosas o las hará muy mal o directamente no las sabrá hacer.

Un sistema automático que prediga mejor que un humano si una determinada imagen médica presenta tal o cual patología es muy fácil de hacer, pero que además de eso ese sistema sea capaz de realizar la rehabilitación de un paciente, atender por reconocimiento de voz e integrar muchas de esas y otras funcionalidades es el auténtico reto.

A mi entender una de las posibles soluciones a todo ello es integrando las “piezas de software”, cada elemento le dota de una funcionalidad al sistema y eso ya lo hacemos muy bien y a un ritmo endiablado de perfeccionamiento, pero, ¿seremos capaces de integrar todas esas “piezas” y hacer no sólo que hablen entre ellas y que ofrezcan ciertas funcionalidades conjuntas como ya hacen sino que lleguen mucho más allá que ello? Quizás, yo no lo dudo y es que en todo caso dudo del tiempo en el que tardaremos en lograrlo.

¿Por qué Poppy Project?

Para lograr todo lo anterior ya hay muchas líneas de trabajo e investigación, ya hay muchos desarrollos en marcha y muy buenos. Yo personalmente trabajo desde distintas aristas y utilizando distintas herramientas, pues al final lo que siempre importa es el resultado sin importar las herramientas utilizadas, y hoy por hoy una de las herramientas sobre las que quiero sustentar este sistema integrado que nos vaya acercando a una Inteligencia Artificial en el marco de la salud es Poppy Project.

Y ¿por qué Poppy Project? Primero de todo porque es una solución Open Source desarrollada en el seno de una interesante comunidad y, sobre todo, porque considero que ofrece aquello necesario para, adaptando sus características, ofrecer una plataforma desde la cuál investigar y desarrollar sobre ello de una forma magnífica.

Un sistema robótico al cual podemos “moldear” y “alimentar” su cerebro con las distintas “piezas de software” necesarias para que, además de ser un ente que nos ofrezca una avanzada funcionalidad determinada, sea capaz de actuar integradamente cada vez de forma más “humana”.

Iré informando de los avances y de muchas otras cosas. A disponer de quien quiera contactar conmigo (info@jordigarcia.eu) para cualquier consulta.

Publicado en Sin categoría | Etiquetado , , , , , , , | 1 Comentario

Robot IA salut Poppy Project

Vull anunciar-vos que seguint amb l’objectiu de ficar Mont-roig del Camp al mapa de la innovació contribuint, amb el meu petit granet de sorra, a fer del municipi una palanca de #Catalunya al món de la #AI amb les meves solucions de #IA i Ciberseguretat participaré en el desenvolupament del #PoppyProject per dur la #robòtica #OpenSource al món de la #salut. (al meu GitHub podeu trobar més informació)

Publicado en Sin categoría | Etiquetado , , , | Deja un comentario

Observatori SmartCatalonia Generalitat de Catalunya

Sóc de Barcelona, però fa uns anys vaig arribar a viure a Mont-roig del Camp i em vaig enamorar del poble. Segueixo encaparrat en contribuir a ficar al municipi al mapa de les tecnologies i del desenvolupament del segle XXI. Avui m’han admès a l’Observatori SmartCatalonia de la Generalitat de Catalunya. Ja figuro com a empresa que ofereix solucions d’intel·ligència artificial i Ciberseguretat al territori. Estic content.

Publicado en Sin categoría | Etiquetado , , , , , | Deja un comentario

Arxius configuració ARDUINO MKR 1200 Fox en català

És important per a la llengua que la tecnologia també parli en català. Al meu Github us deixo com a codi obert gratuït els arxius de configuració adaptats al català per a la placa Arduino de Sigfox: https://github.com/gcjordi/id_temp_cat_fox_jgc

eMail: info@jordigarcia.eu

Publicado en Sin categoría | Etiquetado , , | Deja un comentario

Cifrado de texto César con Python

Finalitzades les festes nadalenques avui fico a la vostra disposició una petita nova eina de forma lliure i gratuïta: un xifrador/desxifrador de text mitjançant Cèsar fet amb #Python. (Per a finalitats educatives i divulgatives. No em faig responsable del seu mal ús): https://github.com/gcjordi/cifrador_texto_jgc  #Hacker #CiberSeguretat

Pasadas las fiestas navideñas hoy pongo a vuestra disposición una pequeña nueva herramienta #OpenSource de forma libre: un cifrador/descifrador de texto mediante #César realizado en #Python. (Para uso educativo y divulgativo. No me hago responsable de su mal uso): https://github.com/gcjordi/cifrador_texto_jgc #Hacking #CiberSeguridad #CyberSecurity

Publicado en Sin categoría | Etiquetado , , , , , , , , | Deja un comentario