Top 20

1 0x00h 702 pts
2 boris39 702 pts
3 neoxquick 683 pts
4 maf-ia 664 pts
5 thefinder 645 pts
6 mego 591 pts
7 madbat2 581 pts
8 Mart 554 pts
9 tehron 502 pts
10 Kithyane 502 pts
11 egosum 474 pts
12 plucth 446 pts
13 Zeta 415 pts
14 CoYoTe99 415 pts
15 Undr 414 pts
16 Armavica 409 pts
17 vitalimarrenra 402 pts
18 b0n0n 395 pts
19 nurfed 382 pts
20 malose 378 pts

Classement complet

Shoutbox

20 Aug - 6:04 am

Hi b0n0n, this chall does not appear to be broken sorry. What is your problem ?

14 Aug - 11:22 pm

Multiplication of two (big) numbers (40) is broken, anyone plz fix it?

15 Feb - 3:58 am

En vérité je reconnais que c'est surtout moi qui ait des soucis majeurs ... je reçois le mail là, puis pour la compression ça doit être un problème stupide de mon côté

6 Feb - 8:09 pm

Pour le chall sur les mail je confirme, on a toujours galéré à le faire marcher pour tout le monde et on a fini par abandonner ^^. Par contre pour DC 2, je suis étonné, personne n'a jamais reporté de problème. N'hésite pas à poster ta question sur le forum j'y répondrai :)

6 Feb - 10:16 am

Par exemple le challenge réseau sur le mail ne fonctionne pour pas moi je ne reçois rien. Après c'est surtout des soucis de mon côté, je suis sur data compression 2 et bien que mon algo soit, je crois, correct, je ne peux pas valider parce que je gère mal les caractères spéciaux, je voulais d'ailleurs poster dans le forum pour demander la chaîne finale de l'exemple

6 Feb - 9:22 am

Merci :) Il y aurait encore beaucoup à faire mais bon. Genre normaliser les données des épreuves en json, permettre aux membres de pouvoir "affronter" les programmes des autres (section Arena), rendre le site plus intuitif, etc etc... A quels problèmes mineurs penses tu ?

5 Feb - 4:52 am

très très propre votre entreprise, quelques soucis mineurs mais dans l'ensemble vos challenges sont super à faire, merci !!

2 Feb - 10:09 am

Il y a malgré tout toujours une petite activité régulière, ça fait plaisir

29 Jan - 10:08 am

Et ouais ! Perso je viens toujours tous les jours, c'est ma petite routine quotidienne :)

29 Jan - 12:24 am

y'a encore des gens ici ?

Connexion
Mot de passe oublié

Supportez nousx

Vous aimez µContest ?
Supportez nous en votant (fun et difficulté) pour µContest sur WeChall :)
Si vous ne l'avez pas encore fait, profitez-en pour lier votre compte
Wechall à µContest pour pouvoir voter !

Merci

Liste des épreuves :: Cryptographie :: Homemade algorithm (54)

Résumé

ID : 54
Points : 19
Validations :
Page de l'épreuve
Reporter un bug

Qui a validé ?

Description


Il est nécessaire de savoir résoudre les épreuves Optical Character Recognition I et base64 pour résoudre cette épreuve.

Ce que nous vous proposons dans ce challenge, est un algorithme "fait maison", dont le but est de chiffrer une image. Bien sûr, la méthode utilisée et décrite ici est loin d'être sécurisée et serait une mauvaise solution, mais son intérêt réside dans son aspect mathématique.
De plus, l'algorithme modifie l'image de telle sorte qu'on ne puisse plus lire un texte dessus par exemple, mais ne la modifie pas complètement.

L'image originale est simplement un nombre écrit sur une image à fond blanc. La clef de chiffrement de notre algorithme sera une image 35x35 (le "noyau") avec des pixels aléatoires. Il sera donné dans la variable kernel. Une opération bien connue (bien que mystérieuse) en traitement du signal ou des images est utilisée ici pour produire l'image "cryptée" (notez que cette opération n'est jamais utilisée dans le cadre de la cryptographie, ses applications sont totalement différentes)

Voici comment ça marche :



Vous devez découvrir quelle est cette opération, et trouver une manière de reconstituer l'image originale à partir de l'image chiffrée et de la clef. Je vous conseille de ne pas essayer d'inverser l'équation "à la main" vous même, c'est tout simplement impossible ! Une fois que vous aurez trouvé le nom de cette opération, les techniques d'inversion sont bien documentées.

Ensuite, vous devrez reconnaitre le nombre inscrit sur l'image et le renvoyer dans la variable number

Informations importantes à propos des images



Dans la mesure où le noyau est composé de valeurs aléatoires centrées autours de zéro, nous vous donnons une image correspondant à une normalisation du noyau de telle sorte qu'il soit visionnable en tant qu'image exploitant toute l'échelle de niveaux de gris. Ainsi, vous devez inverser cette normalisation avant de faire vos calculs grâce à cette formule :

noyau_a_utiliser = kernel*kernel_amplitude/255 + kernel_min

Comme vous l'avez peut être deviné, on a le même problème avec l'image chiffrée. Vous devrez donc utiliser la formule suivante pour inverser sa normalisation :

image_chiffree_a_utiliser = cypher*cypher_amplitude/255 + cypher_min

Variables


Nom Type Description
Variables à récupérer
kernelChaîne de caractèreschar*La clé de chiffrement, c'est à dire le kernel, au format png, encodé en base64
kernel_amplitudeRéelfloatVoir la section précédente
kernel_minRéelfloatVoir la section précédente
cypherChaîne de caractèreschar*L'image crypté, au format png, encodé en base64
cypher_amplitudeRéelfloatVoir la section précédente
cypher_minRéelfloatVoir la section précédente
Variables à renvoyer
numberEntierintLe nombre retrouvé sur l'image décryptée