Skip to main content

Encrypt et Decrypt

Le chiffrement, ou cryptage, est un procédé permettant de rendre l'information incompréhensible à toute personne n'ayant pas la clé spécifique pour la déchiffrer. Il existe plusieurs types de chiffrement, chacun avec ses spécificités et domaines d'application. Voici les principaux types de chiffrement et leurs définitions :

1. Chiffrement symétrique

Le chiffrement symétrique utilise la même clé pour le chiffrement et le déchiffrement des données. Cette méthode est rapide et efficace pour de grandes quantités de données mais nécessite que la clé soit partagée entre l'émetteur et le récepteur de manière sécurisée.

Exemples :

  • AES (Advanced Encryption Standard) : C'est l'un des algorithmes de chiffrement symétrique les plus utilisés et considérés comme très sécurisés.
  • DES (Data Encryption Standard) : Anciennement un standard, il est aujourd'hui considéré comme obsolète en raison de sa clé relativement courte.
  • 3DES (Triple DES) : Une amélioration de DES qui effectue le chiffrement trois fois pour augmenter la sécurité.

2. Chiffrement asymétrique

Le chiffrement asymétrique utilise une paire de clés : une clé publique pour le chiffrement et une clé privée pour le déchiffrement. Cette méthode permet un échange sécurisé d'informations sans avoir besoin de partager une clé secrète, mais elle est généralement plus lente que le chiffrement symétrique.

Exemples :

  • RSA (Rivest-Shamir-Adleman) : L'un des premiers systèmes de chiffrement asymétrique et encore largement utilisé pour la sécurisation des échanges sur Internet.
  • ECC (Elliptic Curve Cryptography) : Une approche plus récente qui offre des niveaux de sécurité comparables à RSA mais avec des clés plus courtes, ce qui le rend plus rapide et moins gourmand en ressources.

3. Chiffrement par hachage

Bien que techniquement pas un chiffrement au sens traditionnel, le hachage transforme les données en une empreinte numérique de taille fixe, ce qui est utile pour la vérification de l'intégrité des données ou la sécurisation des mots de passe. Les fonctions de hachage sont conçues pour être à sens unique, ce qui signifie qu'il est pratiquement impossible de retrouver les données d'origine à partir de l'empreinte.

Exemples :

  • SHA (Secure Hash Algorithm) : Famille d'algorithmes de hachage, avec SHA-256 et SHA-3 parmi les variantes les plus courantes.
  • MD5 (Message-Digest Algorithm 5) : Anciennement utilisé pour le hachage, maintenant considéré comme vulnérable et déconseillé pour les applications de sécurité.

4. Chiffrement homomorphe

Ce type de chiffrement permet de réaliser des opérations sur des données chiffrées sans avoir besoin de les déchiffrer au préalable. Cela ouvre des possibilités pour le traitement sécurisé des données dans le cloud, par exemple.

5. Chiffrement stéganographique

La stéganographie n'est pas un chiffrement à proprement parler, mais plutôt une méthode de dissimulation d'informations à l'intérieur d'autres fichiers, tels que des images ou des fichiers audio, de manière à ce que la présence de l'information cachée ne soit pas détectable.

Chacun de ces types de chiffrement a ses propres forces et faiblesses, et le choix entre eux dépend des besoins spécifiques en matière de sécurité, de performance et de gestion des clés.

 

Exercice :

 

Alice et Bob doivent s’échanger des messages de manière sécurisée.

Ils doivent s’assurer que les messages qu’ils reçoivent ont bien été envoyé par l’un ou l’autre.

Aujourd’hui, Bob envoie un message pour inviter Alice à un rendez-vous secret :

« Bonjour Alice, rendez-vous ce soir à 19h34 devant la porte du 26 bis rue de la République. Assure-toi de ne pas être suivie. Bob ».

Ceci est le message que vous utiliserez dans ce TP.

 

Étape 0 :

Génération de la clé privée et public

image_2024-03-27_133546828.png

Étape 1 :

Vous jouez le rôle de Bob qui envoie le message à Alice. Avec quelle clé doit-il signer le message ?

  • Avec la clé privée

Côté Bob :

image_2024-03-27_133735095.png

Côté de Alice (avec clé public de Bob ) :

image_2024-03-27_133917409.png

Côté de Alice (avec clé public de quelqu'un d'autre ) :

image_2024-03-27_134058730.png

Le message n'est pas déchiffrable avec la clé public de quelqu'un d'autre.

 

Étape 2 :

Vous allez maintenant reprendre le rôle de Bob qui envoie le message à Alice, et cette fois, vous allez simplement chiffrer (dans la page « Encrypt(+Sign) ») le message avec la clé publique d’Alice, sans renseigner votre clé privée pour signature.

Mettez ce fichier chiffré à disposition de votre binôme.

(côté de Bob) :

image_2024-03-27_134456699.png

(côté de Alice) :

image_2024-03-27_135528365.png

Toutefois, vous n’êtes pas capable de prouver que c’est Bob qui vous a bien envoyé ce message. Essayez de vérifier la signature du message avec la clé publique de Bob. Que constatez-vous ?

image_2024-03-27_135958148.png

Étant donné qu'aucune clé n'a été mise pour la signature, même avec la clé public de Bob on peut pas vérifier si c'est bien lui qui l'a envoyé.

 

Étape 3 :

Cette fois, en tant que Bob, vous cryptez le message avec la clé publique d’Alice, et vous signez le message avec votre clé privée.

Envoyez ce message à Alice.

(côté de Bob) :

image_2024-03-27_140606229.png

 

(côté de Alice) :

image_2024-03-27_140838152.png

Cette fois on remarque bien que c'est bien Bob qui a signer se message crypter.

 

Remarquez que si vous ne renseignez pas la clé publique de Bob, vous réussissez à décoder le message mais vous ne pouvez pas prouver que c’est Bob qui est l’auteur. Notez ce message.

image_2024-03-27_143832366.png

 

Étape 4 :

Bob et Alice doivent maintenant s’échanger de très gros volumes de données. Le problème de leur méthode de communication, c’est qu’ils utilisent une méthode de chiffrement/déchiffrement asymétrique, qui utilise beaucoup de ressources de leurs ordinateurs.

Génération de la clé de chiffrement d’un niveau de sécurité 128-bit

image_2024-03-27_141139664.png

Hex Key:	3795176940c7ccaa4d302eee81e0b3ea
Plain text key:	RID KURT SHED FIVE FACT BECK ANNE FITS MIMI ASH COG VOID


Reverse:	3795176940c7ccaa4d302eee81e0b3ea

Le chiffrement de la clé générée ( 3795176940c7ccaa4d302eee81e0b3ea ) peut se faire dans le site pgptool avec la clé publique du receveur du fichier et signé par la clé privée de l’émetteur.

image.png

Le chiffrement d’un fichier avec la clé AES générée peut se faire sur le site CyberChef. Sélectionnez :

  • Key en HEX pour venir y mettre la clé générée précédemment
  • Mode ECB
  • Input : Raw
  • Output : Raw

image_2024-03-27_143403676.png

 

Pour déchiffrer le message, sélectionnez sur le site CyberChef, AES Decrypt avec le même paramétrage que AES Encrypt.

image.png

 

On remarque bien que le l'output décrypter est le même que l'input avant l’encryptions.

 

Mettez en œuvre le transfert d’un fichier quelconque de Alice vers Bob avec cette méthode PGP. Détaillez dans votre rapport, étape par étape avec explications et copies d’écran, les actions effectuées pour réussir ce transfert.

 

1. image encryption

 

image_2024-03-27_143403676.png


2. AES key encryption

image.png

 

3. Décryption de la clé

image.png

 

4. Décryption de l'image avec la clé AES obtenue avant

image.png

 

image.png

 

Magnifique image décryptée :

download.jpg