Skip to main content

Documentation du Chiffrement

Ce programme implémente un chiffrement robuste basé sur l'algorithme AES-256-GCM (Advanced Encryption Standard en mode Galois/Counter Mode) pour la protection des données. Il assure à la fois la confidentialité et l'intégrité des fichiers chiffrés.


Caractéristiques de Sécurité

Algorithme de Chiffrement

  • AES-256-GCM : Standard de chiffrement avancé avec une clé de 256 bits
  • Mode GCM pour l'authentification des données
  • Protection contre les attaques par modification

Gestion des Clés

  • Dérivation de clé via PBKDF2 avec SHA-256
  • Sel cryptographique unique par fichier
  • Nombre d'itérations configurable pour la dérivation

Sécurité Additionnelle

  • Vecteurs d'initialisation (IV) uniques par bloc
  • Tags d'authentification pour vérifier l'intégrité
  • Protection contre les attaques par rejeu

Fonctions Principales

chiffrer_fichier(source: &str, destination: &str, password: &str) -> Result<(), Error>

Chiffre un fichier avec AES-256-GCM :

  • Génère un sel aléatoire et un IV unique
  • Dérive une clé de 256 bits à partir du mot de passe
  • Chiffre les données avec authentification
  • Sauvegarde le fichier chiffré avec les métadonnées

Exemple :

chiffrer_fichier("document.txt", "document.enc", "mot_de_passe_complexe")?;

dechiffrer_fichier(source: &str, destination: &str, password: &str) -> Result<(), Error>

Déchiffre un fichier protégé :

  • Extrait le sel et l'IV des métadonnées
  • Dérive la clé avec le mot de passe
  • Vérifie l'authenticité des données
  • Déchiffre et restaure le fichier original

Exemple :

dechiffrer_fichier("document.enc", "document.txt", "mot_de_passe_complexe")?;

Interface en Ligne de Commande

Chiffrement

ntk encrypt [options] <fichier_source>

Options :

  • --output <fichier> : Spécifie le fichier de sortie
  • --iterations <nombre> : Nombre d'itérations PBKDF2 (défaut: 100000)
  • --memory <MB> : Limite de mémoire pour le chiffrement

Déchiffrement

ntk decrypt [options] <fichier_chiffré>

Options :

  • --output <fichier> : Spécifie le fichier de sortie
  • --no-verify : Désactive la vérification d'intégrité (non recommandé)

Format du Fichier Chiffré

Structure des données :

[Magic Number: "NTK"] (3 bytes)
[Version] (1 byte)
[Salt] (32 bytes)
[IV] (12 bytes)
[Encrypted Data]
[Auth Tag] (16 bytes)

Interface Graphique

L'interface Tauri intègre le chiffrement avec :

  • Sélection du fichier par glisser-déposer
  • Gestion sécurisée des mots de passe
  • Barre de progression en temps réel
  • Indicateur de force du mot de passe
  • Options de chiffrement avancées

Sécurité et Bonnes Pratiques

  1. Choix du Mot de Passe

    • Utilisez des mots de passe longs et complexes
    • Évitez les mots du dictionnaire
    • Combinez lettres, chiffres et symboles
  2. Gestion des Fichiers

    • Supprimez les fichiers originaux de manière sécurisée
    • Sauvegardez les fichiers chiffrés
    • Ne partagez jamais les mots de passe en clair
  3. Considérations de Performance

    • Le chiffrement AES-256-GCM est plus lent que XOR
    • Utilisez les options de mémoire pour les gros fichiers
    • La vérification d'intégrité ajoute un délai supplémentaire

Conclusion

Cette implémentation offre un niveau de sécurité élevé grâce à AES-256-GCM, un standard reconnu et validé par la communauté cryptographique. L'ajout de l'authentification des données et de la dérivation de clé sécurisée en fait une solution adaptée à la protection de données sensibles en environnement réel.