Aller au contenu
Tous les projets

Projet de BUT · 2025 – 2026

Privalis des enchères à plis fermés

Dans Privalis, les enchérisseurs déposent des offres chiffrées avec le cryptosystème de Damgård-Jurik et signées en RSA : personne ne voit les montants avant la clôture. À cinq, nous avons construit un serveur TCP en Java, une base Oracle sous Docker et un client JavaFX. J’ai pris en charge le client, écrit la première implémentation de ce cryptosystème et une partie du serveur.

personnes
5
mois, oct. 2025 – avr. 2026
7
algorithmes cryptographiques
2
  • Java
  • JavaFX
  • Oracle
  • Docker
  • Sockets TCP
  • Git

Image 1 sur 4

Image 1 sur 4

Image 1 sur 4

Image 1 sur 4

Contexte

Projet du module de sécurité des systèmes d’information, en BUT Informatique (parcours DACS). Il fallait concevoir une architecture client-serveur et y intégrer de vrais protocoles cryptographiques.

Comment ça marche

  1. Dépôt de l’offreLe client JavaFX chiffre le montant avec Damgård-Jurik, puis signe l’offre chiffrée avec la clé RSA de l’enchérisseur.
  2. Réception par le serveurLe serveur vérifie la signature, rejette toute offre falsifiée et enregistre l’offre, toujours chiffrée, dans Oracle.
  3. Enchère ouvertePendant toute l’enchère, les montants restent chiffrés : les autres participants ne peuvent pas les lire, et la base ne stocke aucun montant en clair.
  4. ClôtureÀ la clôture, le serveur déchiffre les offres avec sa clé privée et désigne le gagnant.

Ce que j’ai fait

  1. Client JavaFX : connexion et inscription, liste et détail des enchères, dépôt d’offres, puis refonte complète de l’interface
  2. Première implémentation du cryptosystème de Damgård-Jurik, et ses tests
  3. Côté serveur : publication et suivi des enchères, reprise de l’accès à la base Oracle
  4. Passage à une seule paire de clés pour toutes les enchères, côté client et côté serveur
  5. Dockerfile du serveur et corrections de la CI GitLab
Difficultés
  • Naviguer entre les vues sans « flash » ni rechargement
  • Passer d’une paire de clés par enchère à une seule, sans casser ni le client ni le serveur
Ce que j’en retiens
  • Cryptographie asymétrique : RSA, Damgård-Jurik, signatures numériques
  • Échanges client-serveur en Java, par sockets TCP
  • Docker et base de données Oracle
  • Architecture MVC et interfaces JavaFX