Cryptage message en utilisant un clé – Bac Pratique 2015 [ Algorithme + Python ]

Algo et Python 29-08-24
153 0

Sujet bac informatique pratique 2015 (Bac scientifique)

Pour sécuriser l’envoi des messages, deux chercheurs cryptent leurs messages en utilisant le principe suivant :

1- Saisir le message à crypter, sachant qu’il est composé  par des lettres majuscules et des espaces.

2- Saisir la clé de cryptage qui est une chaine de caractères chcle composée uniquement par des chiffres et ayant la même longueur que le message à crypter.

3- Remplacer chaque lettre du message msg, d’ordre alphabétique i, par la lettre d’ordre alphabétique j avec j=j+e, sachant que c est le chiffre chcle ayant le même indice que la lettre à crypter.

N.B : L’espace ne sera pas cypté  et si j dépasse 26, on reprend les lettres alphabétiques dès le début

Exemple : Soit le message « EXCELLENTE PERFORMANCE » et soit la clé  « 1954632738401653628451 »

Message initial :        E X C E L L E N  T   E         P E R F O R M A N C E

La clé de cryptage :   1 9 5  4 6 3 2  7  3   8    4    0 1 6  5  3 6  2  8 4  5 1

Message codé :         F G H I R O G U W M         P F X  K R X O  I R  H F

En effet : La lettre « E » est d’ordre alphabétique 5 sera remplacé par lettre d’ordre alphabétique 5+1=6 c'est-à-dire « F ».

La lettre « X » est d’ordre alphabétique 24 sera remplacé par lettre d’ordre alphabétique 24+9=33, 33 MOD 26=7 c'est-à-dire « G ».

Ecrire un programme Python qui permet de saisir un message et une clé de cryptage puis d’afficher le message crypté.

Solution Algorithmique

Pour crypter un message en utilisant le principe décrit, voici l'algorithme en détail :

Initialisation :

1- Saisir le message à crypter, constitué de lettres majuscules et d'espaces.

2- Saisir la clé de cryptage chcle, une chaîne de caractères numériques de la même longueur que le message.

Cryptage :

1- Créer une chaîne vide ch pour stocker le message crypté.

2- Pour chaque caractère message[i] dans le message :

Si message[i] est un espace, l'ajouter directement à ch.

Sinon, obtenir l'ordre alphabétique de message[i] (où A = 1, B = 2, ..., Z = 26).

Convertir le chiffre chcle[i] correspondant à l'indice i en entier c.

Calculer le nouvel ordre alphabétique j en utilisant la formule : j = (i + c) mod 26.

Si j = 0, le remplacer par 26 pour boucler correctement dans l'alphabet.

Trouver la lettre correspondant à cet ordre alphabétique et l'ajouter à ch.

Affichage : Afficher le message crypté.

Dans cet algorithme, On va utiliser 5 fonctions :


Algorithme du programme principal

Déclaration des objets

Objet Type / Nature
message chaîne des caractères
chcle  chaîne des caractères

 

La fonction verif_message

Cette fonction vérifie que le message saisi contient uniquement des lettres et des espaces

Déclaration des objets

Objet Type / Nature
i entier

 

La fonction verif_cle

Cette fonction vérifie que le cle saisi contient uniquement des chiffres

Déclaration des objets

Objet Type / Nature
i entier

 

La fonction saisie_message

Cette fonction saisit le message composé uniquement des lettres majuscules et des espaces

Déclaration des objets

Objet Type / Nature
ch chaine des caracteres

 

La fonction saisie_cle

Cette fonction saisit le clé composé uniquement des chiffres et de même longueur que le message

Déclaration des objets

Objet Type / Nature
ch chaine des caracteres

 

La fonction crypter_message

Cette fonction crypte le message entré par l'utilisateur.

Déclaration des objets

Objet Type / Nature
i entier
code entier
ch chaîne des caractères

 

Solution en Python

Exécution du programme

Solution en Python et Designer QT

Pour créer une application en Python pour crypter un message, on va suivre ces étapes :

1- Créer l'interface graphique avec Qt Designer

a- Ouvrez Qt Designer et créez un nouveau fichier de type Main Window.

b- Ajoutez ces widgets:

QLineEdit nommé 'message' pour entrer un message.

QLineEdit nommé 'cle' pour entrer un cle.

QPushButton nommé 'bt_crypter' pour exécuter le module crypter_message.

QLabel nommé 'msg' pour afficher un message d'erreur et le message crypté


Enregistrez le fichier avec l'extension .ui, par exemple crypter-message.ui.

2- Créer le script Python pour l'application

Voici un exemple de script Python qui utilise l'interface graphique générée par Qt Designer.

Exécution du programme

 

Vous pouvez voir aussi :

1) des exercices sur les chaînes des caractères

2) des exercices sur les tableaux

3) des sujets Bac pratique

4) des sujets Bac théorique

0 commentaire

laisser un commentaire

Veuillez noter s'il vous plaît*

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Passion de robotique

Atelier robotique

Construction des robots

Bras robotique

Maison intelligente

But de ce site web

La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.

Coordonnées

Zaouiet Kontech-Jemmel-Monastir-Tunisie

+216 92 886 231

medaliprof@gmail.com

Photos des articles

Site robotique réalisé par Mohamed Ali-Prof Info