⚠️ AVERTISSEMENT LÉGAL ET ÉTHIQUE ⚠️

Salut, Apache ! Bienvenue dans le projet QuantumTam, conçu par Platon-y (PCTamalou.fr). Ce tuto explore le calcul quantique et simule l'algorithme de Shor pour factoriser des nombres, avec un focus éducatif sur son impact potentiel sur RSA.

🧪 QuantumTam – Intro au Calcul Quantique

Un tuto éducatif pour découvrir le calcul quantique et simuler l'algorithme de Shor, qui menace théoriquement RSA. Apprenez les bases des qubits et explorez l'avenir de la cryptographie.

⚠️ Attention : Cadre légal ⚠️

Le calcul quantique est un domaine de recherche légal, mais utiliser ses principes pour compromettre des systèmes réels sans autorisation est un délit (articles 323-1 à 323-7 du Code pénal). Ce tuto utilise des simulations statiques pour l'éducation. N'UTILISEZ CES CONNAISSANCES QUE DANS UN CADRE ÉTHIQUE.

1️⃣ Objectifs du Projet

Salut, Apache ! Ce projet vous initie au calcul quantique et simule l'algorithme de Shor, qui peut théoriquement factoriser des nombres pour casser RSA. QuantumTam est une démo statique qui montre comment factoriser un petit nombre (ex. : 15) et explique l'impact sur la cryptographie.

Pourquoi le calcul quantique?

Les ordinateurs quantiques pourraient potentiellement:

  • Casser les algorithmes cryptographiques actuels (RSA, ECC)
  • Résoudre des problèmes d'optimisation complexes
  • Simuler des systèmes moléculaires pour la chimie quantique
  • Accélérer l'apprentissage automatique

Objectifs :

  • Comprendre les bases des qubits et de la superposition quantique
  • Explorer le fonctionnement de l'algorithme de Shor
  • Comprendre pourquoi RSA est vulnérable aux attaques quantiques
  • Découvrir les alternatives post-quantiques

2️⃣ Théorie Quantique Simplifiée

Qubit vs Bit classique

Un bit classique est soit 0, soit 1. Un qubit peut être dans une superposition des deux états :

\( |ψ⟩ = α|0⟩ + β|1⟩ \)

où α et β sont des amplitudes complexes avec \( |α|^2 + |β|^2 = 1 \).

Algorithme de Shor - Comment ça marche ?

L'algorithme de Peter Shor (1994) permet de factoriser un nombre N en temps polynomial sur un ordinateur quantique.

Étapes principales :

  1. Choisir un nombre aléatoire a < N
  2. Trouver la période r de la fonction \( f(x) = a^x \mod N \)
  3. Si r est pair et \( a^{r/2} \neq -1 \mod N \), alors les facteurs sont : \( \gcd(a^{r/2} \pm 1, N) \)
Pourquoi est-ce rapide ?

La partie quantique accélère la recherche de la période r en utilisant la Transformée de Fourier Quantique (QFT). Alors qu'un ordinateur classique nécessiterait un temps exponentiel, un ordinateur quantique peut le faire en temps polynomial.

Impact sur RSA

RSA repose sur la difficulté de factoriser de grands nombres. La complexité classique est sous-exponentielle (crible généralisé de corps de nombres), mais l'algorithme de Shor réduit cela à polynomial.

Pour un nombre N de n bits :

  • Classique : \( \exp(O(n^{1/3} (\log n)^{2/3})) \) opérations
  • Quantique : \( O(n^3) \) opérations

État actuel (2025) : Les ordinateurs quantiques actuels ont moins de 1000 qubits (non parfaits), insuffisants pour menacer RSA-2048 qui nécessiterait des millions de qubits stables.

3️⃣ Démonstration Interactive

Simulation de l'algorithme de Shor pour factoriser un petit nombre :

Résultats apparaîtront ici...

Étapes simulées :

Limitations de cette simulation

Cette démo utilise des résultats précalculés pour des petits nombres. Une véritable implémentation quantique nécessiterait :

  • Un registre quantique pour stocker les états
  • Des portes quantiques pour effectuer les calculs
  • Une Transformée de Fourier Quantique
  • Des mesures répétées pour obtenir la période

4️⃣ Code de la Simulation

Voici le code JavaScript qui simule la factorisation :

// Données mockées simulant l'algorithme de Shor
const mockFactors = {
    15: { factors: [3, 5], steps: [
        "Choisi a = 2 (aléatoire)",
        "Calcul de la période r de f(x) = 2^x mod 15",
        "Trouvé r = 4",
        "Calcul de gcd(2^(4/2) ± 1, 15)",
        "Facteurs trouvés: 3 et 5"
    ]},
    21: { factors: [3, 7], steps: [
        "Choisi a = 5 (aléatoire)",
        "Calcul de la période r de f(x) = 5^x mod 21",
        "Trouvé r = 6",
        "Calcul de gcd(5^(6/2) ± 1, 21)",
        "Facteurs trouvés: 3 et 7"
    ]},
    35: { factors: [5, 7], steps: [
        "Choisi a = 4 (aléatoire)",
        "Calcul de la période r de f(x) = 4^x mod 35",
        "Trouvé r = 6",
        "Calcul de gcd(4^(6/2) ± 1, 35)",
        "Facteurs trouvés: 5 et 7"
    ]}
};

function factorizeNumber() {
    const numberInput = document.getElementById("number-input").value;
    const num = parseInt(numberInput);
    
    if (isNaN(num) || num < 2) {
        showError("Erreur : Entrez un nombre valide entre 2 et 100");
        return;
    }
    
    if (num > 100) {
        showError("Pour cette démo, veuillez utiliser un nombre ≤ 100");
        return;
    }
    
    const result = mockFactors[num] || {
        factors: [num, 1], 
        steps: [`Aucune factorisation précalculée pour ${num}`]
    };
    
    displayResults(num, result.factors, result.steps);
}

function displayResults(num, factors, steps) {
    const resultsDiv = document.getElementById("results");
    const stepsDiv = document.getElementById("steps-output");
    
    resultsDiv.innerHTML = `
        

Nombre à factoriser : ${num}

Facteurs trouvés : ${factors.join(" × ")}

${factors[0] === num ? "

Ce nombre est premier ou n'a pas de facteurs simples.

" : ""} `; stepsDiv.innerHTML = steps.map(step => `

${step}

`).join(""); }
Comment étendre cette simulation

Pour une simulation plus réaliste (toujours classique) :

  1. Implémenter la recherche de période classique
  2. Ajouter un algorithme d'exponentiation modulaire
  3. Simuler la partie quantique avec des matrices
  4. Visualiser les états quantiques

5️⃣ Sécurité & Cryptographie Post-Quantique

L'algorithme de Shor menace plusieurs systèmes cryptographiques :

Algorithmes vulnérablesAlternatives post-quantiques
RSA (factorisation) Cryptographie basée sur les réseaux (LWE)
ECC (logarithme discret) Cryptographie multivariée
Diffie-Hellman Échange de clés McEliece
État de la cryptographie post-quantique

Le NIST (National Institute of Standards and Technology) a lancé un processus de standardisation des algorithmes post-quantiques :

  • CRYSTALS-Kyber : Protocole d'échange de clés
  • CRYSTALS-Dilithium : Signature digitale
  • Falcon : Autre schéma de signature

Ces algorithmes résistent aux attaques quantiques et classiques.

Recommandations

  • Restez dans le cadre légal de votre pays
  • Documentez-vous sur les lois locales concernant la cryptographie
  • Utilisez ces connaissances pour renforcer les systèmes, pas les affaiblir
  • Participez à des programmes de bug bounty si vous trouvez des vulnérabilités