mardi 8 mai 2012

[root me] cryptanalyse d'une image xorée

Voici la solution de l'épreuve de cryptanalyse "Clair connu - Image chiffrée" élaborée par Dimitri Leca (@ryscrow) sur root-me . Elle consiste à déchiffrer une image bitmap chiffrée par un xor avec un mot clé. Le bitmap chiffré est disponible ici: ch3.bmp.
Pour nous aider nous créons une image blank qui nous donnera quelques éléments de comparaison pour l'entête du fichier (blank.bmp)

Le format du header d'un bitmap est disponible sur CommentCaMarche.

Ce qui nous donne:

et le script de déchiffrement
from PIL import Image
key = 'fallen'
cypher = bytearray(open("ch3.bmp", "rb").read())
for i in range(len(cypher)):
cypher[i] ^= ord(key[i%len(key)])
open("out.bmp","wb").write(cypher)
try:
im = Image.open("out.bmp")
im.verify()
except IOError:
print 'rate'
else:
print 'verification ok'



Aucun commentaire:

Enregistrer un commentaire