0% ont trouvé ce document utile (0 vote)
2 vues34 pages

Messagerie Sécurisée : RSA et AES-GCM

Le document présente une application de messagerie sécurisée utilisant les algorithmes RSA et AES-GCM pour garantir la confidentialité, l'intégrité et l'authentification des communications numériques. Il détaille les principes mathématiques sous-jacents à RSA, la génération des clés, ainsi que le fonctionnement d'AES et du mode GCM. L'approche hybride RSA-AES est mise en avant comme une solution efficace pour le chiffrement des messages sensibles.

Transféré par

ekampaul84
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues34 pages

Messagerie Sécurisée : RSA et AES-GCM

Le document présente une application de messagerie sécurisée utilisant les algorithmes RSA et AES-GCM pour garantir la confidentialité, l'intégrité et l'authentification des communications numériques. Il détaille les principes mathématiques sous-jacents à RSA, la génération des clés, ainsi que le fonctionnement d'AES et du mode GCM. L'approche hybride RSA-AES est mise en avant comme une solution efficace pour le chiffrement des messages sensibles.

Transféré par

ekampaul84
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Application de Messagerie Sécurisée :

RSA, AES-GCM

ENSPY

December 11, 2025

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 1/1
Sommaire

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 2/1
Introduction
Contexte et Objectifs

Contexte : Communications numériques sensibles (messagerie


instantanée)
Problème : Confidentialité, intégrité, authentification
Solution : Approche hybride RSA-AES
Algorithmes principaux :
RSA (chiffrement asymétrique, échange de clés)
AES-256 (chiffrement symétrique)
GCM (mode authentifié)

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 3/1
RSA : Fondements Mathématiques

Arithmétique modulaire :

a ≡ b (mod n) ⇐⇒ n | (a − b)

Nombres premiers : Entier p ≥ 2 divisible uniquement par 1 et p


PGCD : gcd(a, b) = plus grand diviseur commun
Algorithme d’Euclide étendu : Pour a, b entiers, trouve u, v tels
que :
au + bv = gcd(a, b)

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 4/1
Théorèmes Clés pour RSA

Théorème d’Euler : Si gcd(a, n) = 1, alors

aφ(n) ≡ 1 (mod n)

Indicatrice d’Euler : φ(n) = nombre d’entiers < n premiers avec n


Si p premier : φ(p) = p − 1
Si n = pq avec p, q premiers : φ(n) = (p − 1)(q − 1)
Petit théorème de Fermat : Si p premier et p ∤ a, alors

ap−1 ≡ 1 (mod p)

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 5/1
Génération des Clés RSA - Détails
1 Choisir deux grands nombres premiers p et q
Typiquement 1024 bits chacun (pour RSA-2048)
Tests de primalité : Miller-Rabin, AKS
2 Calculer n = p × q
n : module RSA (2048 bits)
Public : connu de tous
3 Calculer φ(n) = (p − 1)(q − 1)
Secret : connaissance de φ(n) équivalente à connaissance de p et q
4 Choisir e tel que 1 < e < φ(n) et gcd(e, φ(n)) = 1
e = 65537 (nombre de Fermat F4 = 216 + 1)
Petit e pour efficacité
5 Calculer d = e −1 mod φ(n)
Utilise l’algorithme d’Euclide étendu
d : exposant de déchiffrement (clé privée)
(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM
December 11, 2025 6/1
Chiffrement et Déchiffrement RSA

Clé publique : (n, e)


Clé privée : (n, d) ou (p, q, d)
Chiffrement : Pour message M < n

C = Me mod n

Déchiffrement :
M = Cd mod n
Preuve de correction :

C d ≡ (M e )d ≡ M ed (mod n)
≡ M 1+kφ(n) (mod n) (car ed ≡ 1 mod φ(n))
≡ M · (M φ(n) )k ≡ M · 1k ≡ M (mod n)

par le théorème d’Euler si gcd(M, n) = 1


(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM
December 11, 2025 7/1
Exemple RSA Complet
Exemple avec petits nombres
Choisir p = 61, q = 53 (premiers)
n = 61 × 53 = 3233
φ(n) = (61 − 1)(53 − 1) = 60 × 52 = 3120
Choisir e = 17 (premier avec 3120)
Calculer d = 17−1 mod 3120
Algorithme d’Euclide étendu :

3120 = 183 × 17 + 9
17 = 1 × 9 + 8
9=1×8+1

En remontant : 1 = 2 × 3120 − 367 × 17


Donc d = −367 mod 3120 = 2753
Message M = 65
Chiffrement : C = 6517 mod 3233 = 2790
Déchiffrement
(ENSPY) : 27902753 mod 3233
Application = 65 Sécurisée:
de Messagerie RSA et AES-GCM
December 11, 2025 8/1
Sécurité RSA

Problème sous-jacent : Factorisation d’entiers


Résoudre n = p × q pour retrouver p et q
Taille des clés :
RSA-1024 : factorisé (déconseillé)
RSA-2048 : 112 bits de sécurité, valide jusqu’en 2030
RSA-3072 : 128 bits, recommandé pour long terme
RSA-4096 : 192 bits, pour sécurité maximale
Attaques connues :
Factorisation (GNFS)
Attaques temporelles/canaux auxiliaires
Attaques par padding incorrect
Contre-mesures : OAEP padding, implémentation constant-time

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 9/1
AES : Vue d’Ensemble

Standard : FIPS PUB 197 (2001)


Type : Chiffrement par blocs symétrique
Bloc : 128 bits (16 octets)
Clés : 128, 192, ou 256 bits
Tours : 10 (AES-128), 12 (AES-192), 14 (AES-256)
Architecture : Substitution-Permutation Network (SPN)

Version Taille clé Nombre de tours


AES-128 128 bits 10
AES-192 192 bits 12
AES-256 256 bits 14

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 10 / 1
État AES

Données organisées en matrice 4 × 4 d’octets


 
s0,0 s0,1 s0,2 s0,3
s1,0 s1,1 s1,2 s1,3 
État = 
s2,0 s2,1 s2,2 s2,3 

s3,0 s3,1 s3,2 s3,3

Chaque si,j est un octet (8 bits)


Lecture/écriture par colonnes

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 11 / 1
Transformations AES

SubBytes : Transformation non-linéaire


Chaque octet remplacé selon S-Box
S-Box = inversion dans GF (28 ) + transformation affine
ShiftRows : Décalage circulaire
   
0 1 2 3 0 1 2 3
0 1 2 3 1 2 3 0
0 1 2 3 → 2
   
3 0 1
0 1 2 3 3 0 1 2

MixColumns : Transformation linéaire


Multiplication matricielle dans GF (28 )
AddRoundKey : XOR avec sous-clé

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 12 / 1
Schéma AES Complet

Texte clair
AddRoundKey Sous-clé 0
SubBytes

ShiftRows

MixColumns
AddRoundKey Sous-clé 1
..
.
SubBytes

ShiftRows
AddRoundKey Sous-clé N
(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM
December 11, 2025 13 / 1
Key Expansion AES

Objectif : Générer Nr + 1 sous-clés à partir de la clé maître


Processus :
1 Clé initiale → premières Nk colonnes (Nk = 4, 6, 8)
2 Pour colonne
( i > Nk : Ci = Di ⊕ Ci−Nk
Ci−1 si Nk ∤ (i − 1)
3 Di =
SubWord(RotWord(Ci−1 )) ⊕ Rcon(i−1)/Nk si Nk | (i − 1)
Rcon (Round Constants) : Rconi = (X i−1 , 0, 0, 0)

Tour Rcon (hex)


1 01 00 00 00
2 02 00 00 00
3 04 00 00 00
.. ..
. .
10 36 00 00 00

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 14 / 1
Corps Finis GF (28 ) - Définition

Corps fini : Ensemble fini avec opérations +, × satisfaisant propriétés


algébriques
GF (28 ) = corps à 28 = 256 éléments
Éléments = polynômes de degré < 8 à coefficients dans
GF (2) = {0, 1}
Exemple : x 7 + x 5 + x 3 + 1 représente 101010012 = A916
Polynôme irréductible d’AES :

m(x) = x 8 + x 4 + x 3 + x + 1

En hexadécimal : 11B16
En binaire : 1000110112

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 15 / 1
Opérations dans GF (28 )

Addition : XOR bit-à-bit

(x 7 + x 3 + x + 1) + (x 5 + x 3 + x) = x 7 + x 5 + 1

Example
2A16 + 3716 = 1D16
001010102 ⊕ 001101112 = 000111012
Multiplication : Multiplication polynomiale modulo m(x)
Degré du produit < 16
Réduction modulo m(x) par division polynomiale

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 16 / 1
Exemple Détaillé de Multiplication

Multiplication 2A16 × 3716 dans GF (28 )


1 Représentation polynomiale :
2A16 = 001010102 = x 5 + x 3 + x
3716 = 001101112 = x 5 + x 4 + x 2 + x + 1
2 Multiplication :

(x 5 + x 3 + x)(x 5 + x 4 + x 2 + x + 1)
= x 10 + x 9 + x 7 + x 6 + x 5 + x 8 + x 7 + x 5 + x 4 + x 3 + x 6 + x 5 + x 3 + x 2 + x
= x 10 + x 9 + x 8 + x 7 + x 6 + x 5 + x 4 + x 3 + x 2 + x

3 Réduction modulo m(x) = x 8 + x 4 + x 3 + x + 1 :


Diviser polynôme de degré 10 par polynôme de degré 8
x 10 ≡ x 6 + x 5 + x 4 + x 3 + x 2 mod m(x)
..
. (calculs similaires pour autres termes)
Résultat final : x 6 + x 5 + x 4 + x 2 + x + 1 = 011101112 = 7716
Donc 2A16 × 3716 = 7716 dans GF (28 ) avec m(x) d’AES.
(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM
December 11, 2025 17 / 1
GCM : Vue d’Ensemble

Mode authentifié : Chiffrement + authentification en une passe


Standard : NIST SP 800-38D
Composants :
CTR : chiffrement
GHASH : authentification (dans GF (2128 ))
Entrées :
Clé AES (128, 192, ou 256 bits)
Nonce (IV) : 12 octets recommandé
Données authentifiées additionnelles (AAD) optionnelles
Texte clair
Sorties :
Texte chiffré
Tag d’authentification (16 octets typiquement)

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 18 / 1
Mode CTR (Counter)

Idée : Chiffrer compteur, XOR avec texte clair

Ci = Pi ⊕ AESK (Counteri )

Construction du compteur :
Nonce (12 octets) + compteur (4 octets)
Counter0 = IV ∥0x00000001
Counteri = Counter0 + i
Avantages :
Parallélisable
Pas besoin de padding
Chiffrement/déchiffrement identiques

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 19 / 1
GHASH - Authentification dans GF (2128 )

Corps : GF (2128 ) avec polynôme irréductible

g (x) = x 128 + x 7 + x 2 + x + 1

Clé de hachage : H = AESK (0128 )


Constante dérivée de la clé AES
Calcul GHASH : Pour blocs X1 , X2 , . . . , Xm

Y0 = 0
Yi = (Yi−1 ⊕ Xi ) · H dans GF (2128 )
Ym = GHASH(X1 , . . . , Xm )

Multiplication Galois = multiplication polynomiale mod g (x)

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 20 / 1
Exemple GCM
Chiffrement d’un message avec AES-256-GCM
1 Entrées :
Clé : 32 octets aléatoires
Nonce : 12 octets aléatoires
Message : "Bonjour Bob!" (12 octets UTF-8)
AAD : vide
2 Processus :
Générer Counter0 = Nonce∥0x00000001
Chiffrement CTR : Ci = Pi ⊕ AESK (Counteri )
Calculer H = AESK (0128 )
Construire données GHASH : longueurs + texte chiffré
Calculer tag : T = GHASH(·) ⊕ AESK (Counter0 )
3 Sortie :
Nonce (12 octets)
Tag (16 octets)
Texte chiffré (12 octets)
Taille totale : 40 octets
(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM
December 11, 2025 21 / 1
Approche Hybride : Principe

Combinaison optimale :
RSA : échange sécurisé des clés (asymétrique)
AES-GCM : chiffrement rapide des messages (symétrique authentifié)
Analogies :
RSA = enveloppe scellée contenant la clé
AES-GCM = contenu protégé par la clé
Avantages :
Confidentialité forward : nouvelle clé AES par session
Performance : RSA uniquement pour petites données (clés)
Authentification intégrée via GCM

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 22 / 1
Protocole Hybride Détaillé

1 Initialisation :
Chaque utilisateur génère paire RSA (2048 bits)
Stocke clé publique sur serveur
2 Établissement session :
1 Alice récupère clé publique de Bob
2 Génère clé AES-256 aléatoire (KAES )
3 Chiffre KAES avec RSA (clé publique de Bob) → CK
3 Communication :
1 Chiffrement message avec AES-GCM(KAES )
2 Envoi : (Message chiffré, CK , Nonce, Tag)
3 Bob déchiffre CK avec sa clé privée RSA
4 Bob déchiffre message avec KAES

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 23 / 1
Diagramme de Flux du Protocole Hybride

Alice Bob

−1
Générer KAES M = AESGCM (K

C = AESGCM (KAES , M) KAES = RSA(Pri

CK = RSA(PubB , KAES ) Recevoir (C ,


Via Serveur

Envoyer (C , CK )
(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM
December 11, 2025 24 / 1
Avantages de l’Approche Hybride

Flexibilité :
Sécurité renforcée :
Clés RSA longues durées
Forward Secrecy
Clés AES par session
Authentification intégrée
Support multi-plateforme
Confidentialité bout-à-bout
Extensible (signatures, 2FA)
Serveur Zero-Knowledge
Robustesse :
Performance :
Résistant aux attaques
RSA uniquement pour clés
quantiques (AES-256)
AES-GCM rapide pour messages
Authentification GCM robuste
Overhead minimal (28 octets)
Protection contre replay attacks

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 25 / 1
Architecture Logicielle

rsa_manager.py GUI (PyQt5)

aes_manager.py [Link]

key_exchange.py Réseau/Socket

Architecture modulaire - Séparation des préoccupations

Figure: Architecture modulaire de l’application

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 26 / 1
Code : Gestionnaire RSA

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 27 / 1
Code : Gestionnaire AES-GCM

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 28 / 1
Code : Orchestrateur Hybride

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 29 / 1
Base de Données et Persistance

SQLite : Base de données légère embarquée


Tables principales :
users : informations utilisateurs
public_keys : clés publiques RSA
sessions : sessions actives
messages : messages chiffrés (optionnel)
Schéma simplifié :

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 30 / 1
Format des Messages Réseau

Format binaire compact :

Nonce (12 octets) ∥ Tag (16 octets) ∥ Chiffré (variable)


| {z } | {z } | {z }
Aléatoire Authentification Message

Structure JSON pour échange de clés :


Performance :
Overhead fixe : 28 octets
Compression optionnelle
Pas de padding nécessaire (CTR mode)

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 31 / 1
Sécurité de l’Implémentation

Meilleures pratiques :
Génération aléatoire Tests de sécurité :
cryptographique Tests unitaires cryptographiques
Gestion sécurisée des clés Analyse statique de code
Padding OAEP pour RSA Tests de pénétration
Nonce unique par message Validation des formats
Validation stricte des entrées Audit :
Protections : Revue de code
Contre timing attacks Tests de conformité
Contre replay attacks Benchmarks de performance
Contre padding oracle Analyse de vulnérabilités
Validation tags GCM

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 32 / 1
Résumé et Contributions

Système complet : Messagerie sécurisée de bout en bout


Approche hybride : RSA (2048 bits) + AES-256-GCM
Mathématiques rigoureuses : Théorie solide derrière
l’implémentation
Implémentation robuste : Architecture modulaire en Python
Sécurité prouvée : Basée sur standards cryptographiques

Innovations principales
Intégration transparente RSA/AES-GCM
Serveur Zero-Knowledge
Format de message optimisé
Gestion sécurisée des sessions

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 33 / 1
Perspectives et Améliorations

Évolutions cryptographiques : Optimisations techniques :


RSA-3072/4096 bits Performances réseau
Cryptographie post-quantique Compression intelligente
Signatures numériques Cache des clés
Authentification multifacteur Support mobile natif
Améliorations fonctionnelles : Extensions :
Chiffrement de fichiers API REST sécurisée
Messages éphémères Plugins tiers
Groupes sécurisés Audit trail
Synchronisation multi-appareils Conformité RGPD

(ENSPY) Application de Messagerie Sécurisée: RSA et AES-GCM


December 11, 2025 34 / 1

Vous aimerez peut-être aussi