Qui est-ce (Hardware) - FCSC 2022

Qui est-ce (Hardware) - FCSC 2022

Fichiers du challenge Principe:
Analyser (et brute-forcer intelligemment) un logigramme pour retrouver les entrées correspondant à une sortie donnée

Le challenge

A partir d'un logigramme et des sorties, on doit retrouver les entrées

Suivre les fils

Le diagramme (dispo ici) contient deux types de portes
On trouve, sur le net, leur signification (si on ne la connait pas déjà): NON (le rond), ET (la borne) et XOR (la fleche arrondie)

Formule

Le diagramme est très régulier, et on a la formule y(i+1)=x(i+1) XOR (NON x(i) ET x(i-1))
On crée une table qui, pour x(i-1) x(i) x(i+1) donne la valeur de y(i+1)

Analyse

On ne peut pas force-bruter bêtement le diagramme (trop de combinaisons), en tous cas, pas sur ma machine et pas en PHP. On va faire plus subtile
En pratique, pour chaque i de 0..62, x(i) va avoir une influence uniquement sur y(i) y(i+1) y(i+2)
Donc, pour chaque i on va regarder si x(i) peut être true et s'il peut être false en fonction des sorties. On éliminera des possibilités, et en réitérant, on finira par n'en avoir qu'une

On considère initialement que tous les x(i) peuvent être TRUE ou FALSE, puis pour chacun, on regarde si la valeur TRUE/FALSE est possible

Ici, après une itération, on voir que le x(62) peut être true et qu'il peut aussi être false (donc, on ne sait rien), mais x(60) peut uniquement être TRUE: on a donc avancé en récupérant une information

On réitère ce calcul jusqu'à n'avoir plus qu'une seule solution pour X, et on la convertit en décimal

Comme on nous fournit un exemple (y=133...337), on prendra soin de d'abord vérifier l'algorithme avec l'exemple donné: c'est la première ligne de l'écran de gauche. Ensuite, on relancera l'algo avec la sortie Y du challenge, on récupère X et on le soumet au site

Pour être doublement sûr, j'ai aussi vérifié la solution trouvée:
FCSC{7364529468137835333}

Fichiers du challenge

↩ Retour à la liste des challenges

⇇ Retour à l'accueil