Ce défi est tiré de c0d1ngUP 2014
Néo est toujours aussi méfiant. Désormais, il cache ses messages dans des images avec une technique basée sur
les bits de poids faible.
Mais pour éviter que des petits malins utilisent des outils clés en main, il a un peu complexifié le codage :
- les bits d'information ne sont codés que sur les bits de poids faible
(LSB) des composantes RGB
- chaque pixel autorisé peut coder de 0 à 3 bits d'information ; l'ordre et le nombre sont donnés par le
canal alpha (α) du pixel :
- si α=255 pas de codage présent
- si α=254 codage d'1 bit d'information sur le LSB de la composante B
- si α=253 codage d'1 bit d'information sur le LSB de la composante G
- si α=252 codage d'1 bit d'information sur le LSB de la composante R
- si α=251 codage de 2 bits d'information (le premier sur le LSB de la composante B, puis le second sur celui de la composante G)
- si α=250 codage de 2 bits d'information (LSB de la composante B, puis celui de la composante R)
- si α=249 codage de 2 bits d'information (LSB de la composante G, puis celui de la composante B)
- si α=248 codage de 2 bits d'information (LSB de la composante G, puis celui de la composante R)
- si α=247 codage de 2 bits d'information (LSB de la composante R, puis celui de la composante B)
- si α=246 codage de 2 bits d'information (LSB de la composante R, puis celui de la composante G)
- si α=245 codage de 3 bits d'information (LSB de la composante B, puis celui de la composante G, puis celui de la composante R)
- si α=244 codage de 3 bits d'information (LSB de la composante B, puis celui de la composante R, puis celui de la composante G)
- si α=243 codage de 3 bits d'information (LSB de la composante G, puis celui de la composante B, puis celui de la composante R)
- si α=242 codage de 3 bits d'information (LSB de la composante G, puis celui de la composante R, puis celui de la composante B)
- si α=241 codage de 3 bits d'information (LSB de la composante R, puis celui de la composante B, puis celui de la composante G)
- si α=240 codage de 3 bits d'information (LSB de la composante R, puis celui de la composante G, puis celui de la composante B)
- les bits d'information, groupés par 8, forment le code ascii de chaque caractère du message à cacher
Défi :
L'oracle vient d'intercepter cette image sur le facebook de Neo. Saurez-vous nous dire s'il contient un message caché et si oui
nous le communiquer afin de redonner le pouvoir aux machines ?
Testez votre code :
L'image suivante contient le texte Follow the White rabbit.