Aller au contenu principal
010
001
001
001
001
001
001
111
101
000
111
011
Cryptographie Avancée

Vote Électronique
Ultra-Sécurisé

Projet académique explorant un système de vote basé sur El Gamal et les preuves DDH

Anonymat Garanti
Vérifiabilité Cryptographique
Sécurité Quantique
Décentralisé

Objectifs du Projet

Étude et implémentation des concepts cryptographiques avancés pour le vote électronique

Vérifiabilité

Comprendre comment implémenter un système où chaque vote peut être vérifié sans compromettre l'anonymat des électeurs.

Cryptographie Avancée

Maîtriser l'implémentation du chiffrement El Gamal et des preuves DDH dans un contexte pratique de vote électronique.

Dépouillement Homomorphe

Apprendre à exploiter les propriétés homomorphes pour permettre le comptage sécurisé sans révéler les votes individuels.

Méthodologie Implémentée

Un processus en 4 étapes étudié dans le cadre du cours de cryptographie

Étape 1

Génération de Clés

Étude de la génération des paramètres cryptographiques El Gamal

Étape 2

Vote Chiffré

Implémentation du processus de chiffrement homomorphe des votes

Étape 3

Preuve DDH

Étude et implémentation des preuves à divulgation nulle DDH

Étape 4

Dépouillement

Application pratique des propriétés homomorphes pour le dépouillement

Démonstration Interactive

Explorez le processus de vote sécurisé étape par étape

1

Génération des Clés Cryptographiques

Étude de la génération des paramètres cryptographiques El Gamal

Paramètres du Système

// Nombre premier sûr
p = 2357 (grand nombre premier)
g = 2 (générateur du groupe)
// Clé privée (gardée secrète)
x = 1751 (secret !)
// Clé publique (partagée)
h = g^x mod p = 1185

Clé Publique Distribuée

Distribution de la clé publique aux participants du système

2

Vote et Chiffrement Homomorphe

Implémentation du processus de chiffrement homomorphe

Choisissez votre candidat :

Alice Dubois

Parti Progressiste

Bob Martin

Coalition Centriste

Charlie Léon

Mouvement Écologique

3

Preuve DDH (Decisional Diffie-Hellman)

Étude et implémentation des preuves à divulgation nulle

Principe de la Preuve OR

Objectif : Démontrer qu'un vote correspond à un choix valide (0, 1, ou 2) sans révéler lequel.
Preuves Simultanées :
Si vote = 0 : (g, h, c₁, c₂/g⁰) est un tuple DDH
Si vote = 1 : (g, h, c₁, c₂/g¹) est un tuple DDH
Si vote = 2 : (g, h, c₁, c₂/g²) est un tuple DDH

Protocole de Chaum-Pedersen

// Étape 1: Engagements
α₀ = g^r₀, β₀ = h^r₀
α₁ = g^r₁, β₁ = h^r₁
α₂ = g^r₂, β₂ = h^r₂
// Étape 2: Défi Fiat-Shamir
c = H(α₀, β₀, α₁, β₁, α₂, β₂)
// Étape 3: Réponses
z₀, z₁, z₂ (une réelle, deux simulées)
4

Dépouillement Homomorphe

Application des propriétés homomorphes au dépouillement

Agrégation des Votes Chiffrés

Votes collectés :
Vote A: (324, 1987)
Vote B: (1829, 456)
Vote C: (743, 2109)
Vote D: (892, 1445)
Vote E: (567, 1823)
Propriété homomorphe :

E(a) ⊕ E(b) = E(a + b)
Le produit des chiffrés = chiffré de la somme

Calcul du Résultat

// Agrégation homomorphe
C₁ = ∏ c₁ᵢ mod p = 1247
C₂ = ∏ c₂ᵢ mod p = 1891
// Déchiffrement global
M = C₂ / C₁^x mod p
M = g^(somme) = g^7
// Résultat final
🗳️ Résultats : Alice(2), Bob(3), Charlie(2)

Architecture du Système

L'infrastructure distribuée conçue pour ce projet académique

Couche Client

Interface Utilisateur

Application Spring responsive pour voter et vérifier

Cryptographie Client

Chiffrement local des votes avec El Gamal

Couche Réseau

Communication Sockets

Transmission sécurisée en temps réel

Protocoles TLS

Chiffrement transport avec certificats

Couche Serveur

Backend Java

Traitement cryptographique et validation

Base PostgreSQL

Stockage sécurisé et réplication

Fondements Cryptographiques

Les concepts mathématiques étudiés et implémentés dans ce projet

Chiffrement El Gamal

Système asymétrique basé sur le problème du logarithme discret, offrant des propriétés homomorphes multiplicatives essentielles.

(g^a)^b = g^(a×b)

Preuves DDH

Protocoles à divulgation nulle basés sur Decisional Diffie-Hellman pour prouver la validité sans révéler le contenu.

DDH(g,h,g^r,h^r) ≡ ?

Homomorphisme

Permet d'effectuer des opérations sur les données chiffrées directement, essentiel pour le dépouillement anonyme.

E(a) ⊗ E(b) = E(a⊕b)

Stack Technologique

Les technologies utilisées pour l'implémentation de ce projet

Java

Backend & Crypto

Spring

Interface utilisateur

Sockets

Communication réseau

PostgreSQL

Base de données

Docker

Conteneurisation

Apprentissages du Projet

Ce projet académique a permis d'approfondir la compréhension des enjeux cryptographiques du vote électronique et l'implémentation pratique des concepts théoriques.

© 2025 Alexis Robin