Want to create interactive content? It’s easy in Genially!

Get started free

Proget NSI cryptage -final

Prénom Nom

Created on March 31, 2022

Start designing with a free template

Discover more than 1500 professional designs like these:

Audio tutorial

Pechakucha Presentation

Desktop Workspace

Decades Presentation

Psychology Presentation

Medical Dna Presentation

Geometric Project Presentation

Transcript

projet s3Cr3t

Création d'un système de messagerie crypté

éléves : Loqmann ; Abou-Bakr ; Madavan ; Mohammed-Amine Professeur: Mme.Vezie ; M.Mollard

Date 01-04-2022

SOMMAIRE

04. Cryptage N°2

07. Réseaux

01. Explications

08. Conclusion

05. Cryptage N°3

02. Objectifs

09. Remerciements

06. Interface

03. Cryptage N°1

01. explICATIONS

Quel est le but de notre projet ?

Le principe est simple...

  • Chaque utilisateur a une interface
    • Envoyer un message (il sera crypté)
    • Recevoir un message (le décrypter)
    • Envoyer un fichier (il sera crypté)
    • Recevoir un fichier (le décrypter)

Tout d’abord notre projet consiste à créer une messagerie crypté avec une interface graphique.Il y sera développé la partie de l'émetteur (celui qui envoi le message crypté) et celle du récepteur (celui qui doit décrypter le message pour le lire).

02. Objectifs

Etapes à réaliser

Détails

  • Une interface graphique ressemblant à une messagerie
  • LAN : Local Area Network
  • Trois programmes différents
    • Méthode XOR
    • Méthode César
    • Méthode Skez

Voici les grandes lignes de ce que nous devons faire :

  • Créer l'interface graphique
  • Faire le lien entre 2 machines ( LAN )
  • Créer des programmes de dé/chiffrement

03. cryptage n°1

Méthode César

Algorithme
  • entrer texte à chiffrer
  • remplacer chaque lettre du texte à chiffrer par la lettre qui se situe n places plus loin dans l'alphabet.
  • renvoie le texte chiffré

03. cryptage n°1

Méthode César

Programme

03. Décryptage n°1

Méthode César

Algorithme
  • entrer texte à déchiffrer
  • remplacer chaque lettre du texte à déchiffrer par la lettre qui se situe n places avant dans l'alphabet.
  • renvoie le texte déchiffré

03. Décryptage n°1

Méthode César

Programme

04. Dé/cryptage n°2

Méthode XOR

Tableau XOR

Algorithme
  • Lire le fichier à chiffrer
  • Ouvrir le fichier final pour pouvoir écrire
  • Répéter tant que le dernier bit n’est pas crypté
  • Lire bit par bit le fichier à crypter en binaire
  • On fait un XOR entre le texte du fichier en binaire et la clé en binaire
  • Ecrire dans le fichier de sortie le message crypté

04. Dé/cryptage n°2

Méthode XOR (pour fichier)

Tableau XOR

Programme

05. Cryptage N°3

Cryptage de la clé de chiffrement

Et oui ! Plus de chiffrement rend l'accès aux données plus difficile pour tout individu externe. C'est pourquoi nous utilisons une méthode efficace pour rendre la clé illisible lors de l'envoi

05. Cryptage N°3

<Saisie du nom de la clé>

Déroulement du programme

Fonction cryptage

key (str)

table ascii (list)

Entrée: code, list1, list2
Boucle autant de fois que de caractères dans code
...

<c0de clé> +

...
Boucle autant de fois que de caractères dans list1

new table ascii (list)

...
...

new chaine ascii (str)

...
...

return

def convertir_cle

def creer_le_message

05. deCryptage N°3

récupérer le texte chiffré

Déroulement du programme 1/2

Fonction decryptage

key (.txt)

ascii (list)

Taille: 104
Taille: 100

z # , 9 # Y . ? $

...
...
separation = len(cle)-len(ascii)
chaine_cle = key.read()

chaine cle (str)

100
104
...

la_cle (str)

retourne la cle et la chaine

la_liste (str)

...

def separer_cle_liste

def recuperer_le_texte

05. deCryptage N°3

Déroulement du programme 2/2

Fonction decryptage

Entrée: cle, liste_melange

liste_melange (str)

ascii (str)

...
...

lien_2_chaines(dict)

# : 0 , Y : 1 , . : 2 , ? : a , $ : b , z : c , u : A , 7 : B , ... : ...

cle_finale (str)

la_cle (str)

def avoir_la_vraie_cle

05. cryptage générale

Méthode skez/César

Programme

Algorithme
  • cryptage de la clé (methode skez)
  • crypter le message (César)
  • renvoyer le message crypté avec la clé crypté séparer à l'aide d'un séparateur

05. Décryptage générale

Méthode skez/César

Programme

Algorithme
  • Sélectionner la partie gauche avant le séparateur et faire un decryptage de césar
  • Sélectionner la partie droite aprés le séparateur et faire un decryptage avce la méthode Skez
  • Renvoyer le message décrypté

06. Interface

Rendu à l'image

Programme Python

Interface finale avec l'utilisation principale de Gui ainsi que d'autre bibliothèques comme pour la scrollbar

Nous avons utilisé la bibliothèque Gui afin de créer une interface grafique où nous afficherons les messages envoyés et reçus

INTERFACE 6.1

Début du programme : Initialisation et connexion entre les deux PC qui communiquent

Toutes les bibliothèques et les modules utilsés définit en haut de page

INTERFACE 6.2

La fonction qui met à jour le chat à chaque message envoyé

On discerne ici clairement deux partie dans le programme- celle qui gère les fonctions -celle qui gère la fenêtre

INTERFACE 6.3

Deuxième Partie: L a partie du programme qui s'occupe purement du visuel et appelle les fonctions lorsque que l'on en a besoin

Première Partie:Toutes les fonctions appelées durant l'exécution du programme

INTERFACE 6.4

Interface finale avec les messages de 2 PC qui communiquent

Visuel finale avec la bibliohèque Gui

INTERFACE 6.5

Améliorations possibles :
Changement :

Choix de changement total de la bibliothèques qui nous a permis un meilleur rendu et qui es plus facil une fois comprise, on y retrouve des similitude avec Tkinter

  • Rendre plus attrayant visuellement
  • La fonction pour importer et crypter des fichier
  • Ajout de l'application dans le bureau avec un exécutable
Conclusion :
  • Beaucoup d'idée au départ très gourmant mais pas réussi a tout réaliser bien que il y a eu des problèmes on c'est remis en question et on les surmontés
  • Avec plus de temps on aurait pu réussir totalement tout ce qui était voulu et envisager

07.Communication Reseaux

Comment va ce faire la communication entre reseaux ?

La communication va se faire par le module socket (Le module socket de Python permet de gérer les connexions, un socket est un objet qui permet d'ouvrir une connexion avec une machine, locale ou distante, et d'échanger avec elle.)

07.Communication Reseaux

def initialize_client(): s = socket(AF_INET,SOCK_STREAM) host = port = s.connect((host, port)) return conn

def initialize_server(): s = socket(AF_INET,SOCK_STREAM) host = port = s.bind((host, port)) s.listen(1) conn, addr = s.accept() return conn

Adresse IP - serveur

Adresse IP - serveur

Port - serveur

Port - serveur

Nombres de clients

client side

server side

07.Communication Reseaux

def receive(): while 1: try: data = conn.recv(1024) msg = data.decode('utf-8') print("Message recu le ", {date}, " : \n", msg) dc_msg = decrypt_general(msg) if dc_msg != "": update_chat(dc_msg, 1) except: pass

def send(): msg = textbox.get("0.0", END) update_chat(msg, 0) c_msg = crypt_general(msg) conn.send(c_msg.encode('utf-8')) textbox.delete("0.0", END) return conn

def press(event): send()

recevoir le message

envoyer le message

07.Communication Reseaux

Très Très Important !

textbox.bind("<KeyRelease-Return>", press) # lance le programme en mémoire (thread) _thread.start_new_thread(receive, ()) # tkinter: boucle de la fenêtre gui.mainloop()

08. Conclusion

Plus de chiffrement -> Plus de sécurité

Ce projet nous permet de communiquer en sécurité à l'abris des hackeurs.Nous mettons ainsi en relation deux machines connectés localement. Les messages qui transitent sont chiffrés et illisibles sans la fonction et la clé le permettant.

MERCI DE VOTRE ATTENTION

Avez-vous des questions?