Informations Générales
✓ L'épreuve comporte 3 défis à résoudre en 3 heures consécutives :
o Défi1 : Un QCM en ligne comporte 33 questions
o Défi2 : Un problème
o Défi3 : Un défi de Bonus
✓ Chaque équipe est identifiée par un code unique qui sera utilisé pour enregistrer
tous les fichiers de l’épreuve.
✓ Toutes les ressources de l’épreuve sont accessibles via le mur virtuel padlet sur
l’adresse URL suivante : [Link]
Evaluation & calcul du score
✓ Les solutions proposées par les candidats sont évaluées par les membres de jury et
notées en fonction de leur exactitude (les bugs ne sont pas tolérés) et de leur vitesse
et utilisation mémoire (généralement liées à la complexité en temps et en mémoire
de l'algorithme implémenté).
✓ Grille de répartition des scores :
Défi1 Défi2 Défi3 (Bonus) (*)
40 points 50 points 10 points -
*compétences de vie : 10 points attribués pendant l’épreuve par les membres de
jury pour évaluer les capacités des candidats à collaborer et à travailler en équipe.
Défi1 [QCM en ligne]
QCM sur le langage de programmation python comportant 33 questions.
Veuillez cliquer sur le lien « Défi1 [Lien QCM] » partagé sur le mur virtuel
padlet.
[ ("Tunisia Coding Day" , "V3.0" ) , {‘Epreuve’ : ‘Python’} , ["13-03-2022"] , " Page 1 sur 4" ]
Défi2 [Problème]
Cryptage VPN
Le télétravail représente un véritable enjeu d’avenir pour les professionnels du monde entier.
Depuis le début du confinement, une majorité de salariés ont dû adopter cette méthode de
collaboration à distance pour pouvoir continuer de travailler malgré la pandémie de Covid-19.
Pour un maximum de sécurité, il est également préférable d’utiliser un VPN, un réseau privé
virtuel (Virtual Private Network). Il connecte votre périphérique (ordinateur, smartphone ou
tablette) à un serveur distant sécurisé, à travers un tunnel crypté. Ce système vous permet de
vous connecter à votre logiciel métier, via internet, en toute sécurité, puisqu'aucun autre
internaute ne peut pénétrer dans ce tunnel chiffré. Lors de l’utilisation d’un VPN, les
ordinateurs situés aux deux extrémités du « tunnel Internet » cryptent et décryptent les
données en utilisant des algorithmes complexes.
Dans ce cadre on vous propose d’appliquer le principe de cryptage suivant :
- On commence par la saisie d’un message à crypter.
- On choisit un nombre aléatoire à 4 chiffres qui représente la clé de cryptage.
- On découpe le message en groupe de lettres après suppression des espaces, le nombre
de lettres dépendant des chiffres de la clé, si nécessaire on recommence le processus.
Eventuellement, on doit rajouter la lettre ("X") à la fin du message pour obtenir le bon
nombre de lettres dans le dernier groupe.
- On inverse l'ordre des lettres dans chaque groupe.
- On remplit une première grille carrée 5x5 par des lettres dans l'ordre alphabétique, en
commençant par remplir la première colonne (on oublie la lettre "J").
- On remplit ensuite une seconde grille carrée 5×5 en écrivant d'abord, dans l'ordre, et en
commençant par la première ligne, les lettres de chaque chiffre de la clé (sans les
répéter), et en terminant par les lettres manquantes (dans l'ordre alphabétique).
- Enfin, on effectue une substitution lettre par lettre en appliquant la démarche suivante :
o Chercher la position de chaque lettre de message dans la première grille.
o La remplacer par la lettre qui est à la même position dans la deuxième grille.
- Le message crypté sera formé par des groupes de cinq lettres séparées par un espace.
Contraintes :
Le message msg est formé uniquement par des lettres majuscules et des espaces.
•
La clé de cryptage cle est généré aléatoirement (formé de 4 chiffres distincts différents
•
de zéro).
Entrée :
Un message en clair
Sortie :
Votre programme doit afficher le message crypté
[ ("Tunisia Coding Day" , "V3.0" ) , {‘Epreuve’ : ‘Python’} , ["13-03-2022"] , " Page 2 sur 4" ]
------------------------------------------------
Exemple1
------------------------------------------------
Entrée :
TUNISIA CODING DAY BY STEM ASSOCIATION
Exemple de clé de cryptage : cle=5193
Sortie :
DKBYM KCHFB KHLSC PEPCT VMDDB LKMCK SLD
Explication :
❖ Après suppression des espaces figurant dans le message msg :
TUNISIACODINGDAYBYSTEMASSOCIATION
❖ Avec cle=5193, on fait un groupe de 5 lettres, suivi d'un groupe de 1 lettre, puis un groupe de 9
lettres, puis de 3 lettres, puis on recommence le processus.
Cle 5 1 9 3 5 1 9
TUNIS I ACODINGDA YBY STEMA S SOCIATION
❖ Puis on inverse l'ordre des lettres dans chaque groupe :
SINUT I ADGNIDOCA YBY AMETS S NOITAICOS
❖ Puis on remplit deux grilles carrées 5x5 :
Grille N°1 Grille N°2
0 1 2 3 4
0 1 2 3 4
0
0
A F L Q V C I N Q U
1
1
B G M R W E F T R O
2
2
C H N S X S A B D G
3
3
D I O T Y H K L M P
4
4
E K P U Z V W X Y Z
Les lettres de chaque chiffre de la clé
Les lettres dans l'ordre alphabétique, en
(sans les répéter), et les lettres
commençant par la première colonne sans
manquantes dans l'ordre alphabétique
la lettre "J"
sans la lettre "J"
❖ On effectue une substitution lettre par lettre en utilisant les deux grilles, on obtient le message
suivant :
DKBYM KCHFB KHLSC PEPCT VMDDB LKMCK SLD
Pour le mot « SINUT », on applique la démarche suivante :
✓ La lettre S ayant la position (2,3) dans la 1ère grille sera remplacée par la lettre D ayant la même position dans
la 2ème grille.
✓ La lettre I ayant la position (3,1) dans la 1ère grille sera remplacée par la lettre K ayant la même position dans
la 2ème grille.
✓ La lettre N ayant la position (2,2) dans la 1ère grille sera remplacée par la lettre B ayant la même position dans
la 2ème grille.
✓ La lettre U ayant la position (2,3) dans la 1ère grille sera remplacée par la lettre Y ayant la même position dans
la 2ème grille.
✓ La lettre T ayant la position (3,3) dans la 1ère grille sera remplacée par la lettre M ayant la même position dans
la 2ème grille.
[ ("Tunisia Coding Day" , "V3.0" ) , {‘Epreuve’ : ‘Python’} , ["13-03-2022"] , " Page 3 sur 4" ]
------------------------------------------------
Exemple2
------------------------------------------------
Entrée :
BON COURAGE
Exemple de clé de cryptage : cle=1758
Sortie :
TUQYM ADMGG GVC
Explication :
❖ Après suppression des espaces figurant dans le message msg :
BONCOURAGE
❖ Avec cle=1758, on fait un groupe de 1 lettre, suivi d'un groupe de 7 lettres, puis un groupe de 5
lettres (en ajoutant 3 X)
cle 1 7 5
B ONCOURA GEXXX
❖ Puis on inverse l'ordre des lettres dans chaque groupe :
B ARUOCNO XXXEG
❖ Puis on remplit deux grilles carrées 5x5 :
Grille N°1 Grille N°2
0 1 2 3 4 0 1 2 3 4
0
0
A F L Q V U N S E P
1
1
B G M R W T C I Q H
2
2
C H N S X A B D F G
3
3
D I O T Y K L M O R
4
4
E K P U Z V W X Y Z
❖ On effectue une substitution lettre par lettre en utilisant les deux grilles, on obtient le message
suivant :
TUQYM ADMGG GVC
Défi3 Bonus [Cryptage d’un fichier]
Etant donné un fichier texte intitulé « [Link] » contenant la liste des participants à la compétition
Tunisa Coding Day V3.0. On vous demande de crypter le contenu du fichier « [Link] » en
appliquant l’algorithme de cryptage du défi2, le résultat de cryptage sera sauvegardé dans un fichier
texte intitulé « crypt_stem.txt ».
N.B. :
- Le candidat n’est pas appelé à remplir le fichier « [Link] »
- Le fichier « [Link] » est hébergé sur le mur virtuel padlet.
SUJET PROPOSÉ PAR LA COMITÉ SCIENTIFIQUE DE L’ASSOCIATION STEM SFAX
[Link]
[ ("Tunisia Coding Day" , "V3.0" ) , {‘Epreuve’ : ‘Python’} , ["13-03-2022"] , " Page 4 sur 4" ]