Pragma Digital Solutions
PRAGMAAI & ARCH
Digital Solutions
Gouvernance & Sécurité

Architecture d'un Système d'e-Procurement National : Sécurité Cryptographique et Transparence

Concevoir une plateforme de passation de marchés publics inviolable conforme aux directives de la Banque Mondiale et de la BID.

RM
Rédjino Mompremier, M.Sc., P.Ag.
Consultant Principal & Architecte Systèmes
14 février 202612 min de lecture
Abstract

La dématérialisation des marchés publics dans les pays émergents requiert une architecture garantissant le secret absolu des offres avant la séance publique d'ouverture, tout en éliminant les risques de manipulation a posteriori. Cet article détaille un schéma d'enveloppe cryptographique hybride combinant chiffrement asymétrique RSA-OAEP / AES-256-GCM, engagement à aléa secret (Commitment Scheme) et journalisation d'audit immuable conforme aux directives internationales.

La commande publique représentait environ 11 000 milliards de dollars en 2018, soit près de 12% du produit intérieur brut (PIB) mondial, et 13% du PIB en moyenne dans les économies à faible revenu (Bosio & Djankov, 2020). Pourtant, les processus de passation reposant sur des soumissions physiques demeurent vulnérables aux fuites d'informations stratégiques avant ouverture, aux contestations judiciaires et aux asymétries d'information. L'adoption d'un système d'e-Procurement ne relève pas d'une simple dématérialisation documentaire, mais de la mise en place d'une architecture cryptographique de confiance zéro (Zero-Trust) auditée selon les standards internationaux.

1. Le Problème Fondamental : Le Secret Préalable et l'Immuabilité

Dans une procédure d'appel d'offres compétitif, deux garanties mathématiques sont requises : premièrement, personne, y compris les administrateurs du système hôte et les membres de la commission de passation, ne doit pouvoir accéder aux montants financiers avant la date et l'heure légales d'ouverture publique. Deuxièmement, dès que le pli est déposé, le soumissionnaire ne doit plus pouvoir modifier son offre ni répudier son dépôt sans détection immédiate.

Principe d'Engagement Cryptographique (Commitment Scheme)
Un schéma d'engagement (Brassard, Chaum & Crépeau, 1988) garantit formellement deux propriétés : le Masquage (Hiding), qui empêche tout tiers de déduire l'offre m à partir de l'engagement c = Commit(m, r) avant la phase de révélation, et la Liaison (Binding), qui interdit au soumissionnaire de trouver une autre offre m' ≠ m telle que Commit(m', r') = c.

2. Schéma d'Enveloppe Hybride & Séparation des Clés

Chiffrement Asymétrique Hybride (NIST SP 800-38D & RFC 8017)

Chaque dossier d'offre financière est chiffré symétriquement côté client au moyen d'une clé éphémère AES-256 en mode Galois/Counter Mode (GCM), assurant la confidentialité et l'intégrité authentifiée des données. Cette clé symétrique est encapsulée via le chiffrement asymétrique RSA-OAEP (2048 ou 4096 bits) avec la clé publique de la séance d'ouverture. La clé privée de déchiffrement peut être distribuée selon un schéma de partage de secret à seuil (Shamir, 1979), exigeant le quorum des membres de la commission pour déverrouiller les plis lors de la séance officielle.

typescript
// Scellement cryptographique d'une soumission financière (Web Cryptography API)
async function sealBidEnvelope(bidPayload: Uint8Array, sessionPublicKey: CryptoKey) {
  // 0. Aléa d'engagement r (256 bits), scellé avec l'offre et révélé à l'ouverture
  const nonce = crypto.getRandomValues(new Uint8Array(32));
  const sealed = new Uint8Array([...nonce, ...bidPayload]);

  // 1. Clé symétrique éphémère AES-256-GCM
  const ephemeralKey = await crypto.subtle.generateKey(
    { name: "AES-GCM", length: 256 },
    true,
    ["encrypt"]
  );
  const iv = crypto.getRandomValues(new Uint8Array(12));

  // 2. Chiffrement authentifié du contenu
  const encryptedBid = await crypto.subtle.encrypt(
    { name: "AES-GCM", iv },
    ephemeralKey,
    sealed
  );

  // 3. Encapsulation asymétrique de la clé éphémère (RSA-OAEP)
  const rawKey = await crypto.subtle.exportKey("raw", ephemeralKey);
  const encryptedKey = await crypto.subtle.encrypt(
    { name: "RSA-OAEP" },
    sessionPublicKey,
    rawKey
  );

  // 4. Engagement c = SHA-256(r || m) : sans r, une offre devinable serait retrouvée par force brute
  const bidDigest = await crypto.subtle.digest("SHA-256", sealed);

  return { encryptedBid, encryptedKey, iv, bidDigest, timestamp: Date.now() };
}

Piste d'Audit Chaînée et Horodatage Certifié

Chaque jalon de la procédure (dépôt de soumission, publication d'addenda, ouverture publique des plis, attribution) est consigné dans un journal d'événements chaîné par condensats SHA-256 (NIST FIPS 180-4). Toute tentative de modification rétrospective d'un enregistrement brise la continuité cryptographique du registre, garantissant aux auditeurs institutionnels une vérifiabilité formelle de bout en bout.

3. Alignement Institutionnel et Cadre Réglementaire

Ce modèle d'architecture s'aligne rigoureusement sur le Règlement de Passation des Marchés pour les Emprunteurs sollicitant le Financement de Projets d'Investissement (FPI) de la Banque Mondiale (Banque Mondiale, 2020), ainsi que sur les standards de gouvernance et de transparence de la Banque Interaméricaine de Développement (BID) et de la législation nationale (Loi du 10 juin 2009 fixant les règles générales relatives aux marchés publics et aux conventions de concession d'ouvrage de service public, Haïti). Il permet d'éliminer les interventions manuelles discrétionnaires tout en conservant une traçabilité intégrale.

Conclusion & Perspectives

L'intégrité de la commande publique ne peut reposer uniquement sur la surveillance humaine. En intégrant des primitives cryptographiques éprouvées (chiffrement hybride, engagement à aléa secret, chaînage de hachages) au sein des systèmes d'e-procurement, les institutions publiques garantissent la confidentialité préalable des offres et rétablissent la confiance des opérateurs économiques et des bailleurs internationaux.

References & Bibliography

  • [1]
    Banque Mondiale (2020). 'World Bank Procurement Regulations for IPF Borrowers (July 2016, revised November 2020)'. Banque Mondiale, Washington, D.C.
  • [2]
    Bosio, E., & Djankov, S. (2020, 5 février). 'How large is public procurement?'. Let's Talk Development, Banque Mondiale. Données de l'indicateur Contracting with the Government (190 économies, 2018).
  • [3]
    République d'Haïti. Loi du 10 juin 2009 fixant les règles générales relatives aux marchés publics et aux conventions de concession d'ouvrage de service public. Le Moniteur.
  • [4]
    NIST (2015). 'Secure Hash Standard (SHS)'. FIPS PUB 180-4, National Institute of Standards and Technology.
  • [5]
    Shamir, A. (1979). 'How to share a secret'. Communications of the ACM, 22(11), 612-613.
  • [6]
    Dworkin, M. (2007). 'Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC'. NIST Special Publication 800-38D, National Institute of Standards and Technology.
  • [7]
    Moriarty, K., Kaliski, B., Jonsson, J., & Rusch, A. (2016). 'PKCS #1: RSA Cryptography Specifications Version 2.2'. RFC 8017, Internet Engineering Task Force (IETF).
  • [8]
    Brassard, G., Chaum, D., & Crépeau, C. (1988). 'Minimum Disclosure Proofs of Knowledge'. Journal of Computer and System Sciences, 37(2), 156-189.