Skip to main content

constant-time-analysis

constant-time-analysis

Catalogue généré le 2026-05-11

En une phrase

DetectsDétecte timingles side-channelbouts vulnerabilitiesde incode cryptographiccryptographique code.qui mettent un peu plus (ou un peu moins) de temps à s'exécuter selon la valeur d'un secret — ce qui peut permettre à un attaquant de deviner ce secret juste en mesurant les temps de réponse.

Quand l'utiliser

  • UseTu whenécris implementingou ortu reviewingrelis cryptodu code,code encounteringqui manipule des clés cryptographiques, des mots de passe, des tokens d'authentification.
Tu utilises des opérations sensibles comme la division on/ secrets,ou secret-dependentle branches,modulo or% constant-timesur programmingdes questionsvaleurs insecrètes. C,Tu C++touches à une fonction sign, Go,verify, Rust,encrypt, Swift,decrypt Java,ou Kotlin,derive_key. C#,Tu PHP,as JavaScript,entendu TypeScript,parler Python,de or« Ruby.timing attack » ou « side-channel » et tu veux savoir si ton code est concerné.

Comment l'invoquer

  • Slash command : /constant-time-analysis (siou exposé dans ton CLI)/ct-check).
  • Phrases déclencheurs (texte) : voir la description complète ci-dessous
Auto-invocation : sur demande explicite

Description complète

Detects timing side-channel vulnerabilities in cryptographic code. Use when implementing or reviewing crypto code, encountering division on secrets, secret-dependent branches, or constant-time programming questions in C, C++, Go, Rust, Swift, Java, Kotlin, C#, PHP, JavaScript, TypeScript, Python, or Ruby.

Pour aller plus loin

Constant-Time Analysis

Analyze cryptographic code to detect operations that leak secret data through execution timing variations.

When to Use

Concrete triggers:

    User implements signature, encryption, or key derivation Code contains / or % operators on secret-derived values User mentions "constant-time", "timing attack", "side-channel", "KyberSlash". ReviewingAuto-invocation functions: namedSur sign,demande verify,explicite, encrypt,ou decrypt,quand derive_keytu écris du code crypto.

    WhenDescription NOT to Usedétaillée

      Imagine

      Non-cryptographicun cadenas digital qui dit « bipe court » quand le premier chiffre est faux et « bipe long » quand il est juste. Tu n'as plus qu'à essayer de 0 à 9 sur le premier chiffre, retenir lequel a fait le bip long, puis passer au deuxième. En quelques secondes, tu ouvres un cadenas censé être inviolable. C'est exactement le principe des « attaques par canal auxiliaire par mesure de temps » (timing side-channel) : un attaquant ne voit pas le secret, mais il voit combien de temps le programme met à répondre, et ça lui suffit parfois à le déduire.

      Pour qu'un code cryptographique soit sûr, il doit prendre exactement le même temps quel que soit le secret manipulé — on dit qu'il est « à temps constant ». Concrètement, ça veut dire éviter les branchements if (secret == x) qui prennent un chemin différent selon la valeur, et éviter certaines opérations comme la division qui peuvent être plus rapides sur certains nombres que sur d'autres. Le skill analyse le code (businessen logic,C, UI,C++, Go, Rust, Java, Python, JavaScript et plein d'autres langages) et signale tous les endroits qui ne respectent pas cette contrainte.

      Il fournit un script ct_analyzer qui produit un rapport détaillé : chaque opération suspecte, sa ligne dans le code, et pourquoi elle est risquée. Il peut sortir en JSON pour intégration dans un pipeline CI. Particulièrement utile sur les opérations sensibles modernes (signatures Ed25519, encapsulation post-quantique type Kyber, etc.)

      . PublicÀ datanoter processing: wherece timingskill leaksn'est don'tpas matterpertinent Codepour thatdu doesn'tcode handle« secrets,métier keys,» orclassique authentication tokensil High-levelvise APIuniquement usagele wherecode timingqui ismanipule handleddes bysecrets the library cryptographiques.

      LanguagePour Selectionaller plus loin

      BasedPour onles thedétails filetechniques, extensionexemples oret languagepatterns context, refer to the appropriate guide:

      | Language | File Extensions | Guide |

      (extrait —spécifiques, voir le SKILL.md complet pour la suite)original.

      Source

      • Plugin : trailofbits/constant-time-analysis
      • Nom interne : constant-time-analysis
      • Fichier : /home/thymon/.claude/plugins/cache/trailofbits/constant-time-analysis/0.1.0/skills/constant-time-analysis/SKILL.md