Tous les travaux pratiques

Travail pratique · Sécurité

Cryptographie

Implémentation et analyse des algorithmes MD5 et SHA1.

Page de garde du compte rendu : Cryptographie
Thème
Fonctions de hachage
Algorithmes
MD5 (128 bits), SHA1 (160 bits)
Langage
Python
Pour aller plus loin
SHA-256, SHA-3

Objectif du TP

Ce travail pratique vise à comprendre et implémenter les fonctions de hachage cryptographique MD5 et SHA1. Ces algorithmes sont essentiels pour assurer l'intégrité des données et la sécurisation des informations sensibles.

Note importante : MD5 et SHA1 sont considérés comme obsolètes pour des applications critiques de sécurité. Ce TP a un objectif pédagogique pour comprendre les principes fondamentaux du hachage.

Technologies utilisées

TechnologieRôle
MD5Algorithme de hachage produisant une empreinte de 128 bits
SHA1Algorithme générant un hash de 160 bits plus sécurisé
PythonLangage utilisé pour l'implémentation des algorithmes

Compétences développées

  • Compréhension des fonctions de hachage cryptographique
  • Analyse de la résistance aux collisions
  • Implémentation d'algorithmes de sécurité
  • Évaluation des vulnérabilités cryptographiques
  • Bonnes pratiques en matière de sécurité des données

Exemple de code

import hashlib

# Génération d'un hash MD5
text = "Hello World"
md5_hash = hashlib.md5(text.encode()).hexdigest()
print(f"MD5: {md5_hash}")

# Génération d'un hash SHA1
sha1_hash = hashlib.sha1(text.encode()).hexdigest()
print(f"SHA1: {sha1_hash}")

Résultats obtenus

Au cours de ce TP, j'ai pu démontrer la capacité de ces algorithmes à générer des empreintes uniques pour différentes entrées, tout en comprenant leurs limites actuelles face aux attaques par collision.

J'ai également exploré les alternatives modernes comme SHA-256 et SHA-3, recommandées pour les applications nécessitant un haut niveau de sécurité.