ForHosting KIT · Outils pour développeurs

Chiffre affine

Chiffrez ou déchiffrez avec le chiffre affine, qui multiplie la position de chaque lettre par a puis ajoute b : avec a à 5 et b à 8, AFFINE CIPHER devient IHHWVC SWFRCP. L'inverse de a, ici 21, s'affiche aussi. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Texte
AFFINE CIPHER
A
5
B
8
Mode de calcul
Encrypt
Vous obtenez
Résultat
IHHWVC SWFRCP
A inverse
21
Longueur
13
Lettres transformées
12

Le chiffre affine est une substitution monoalphabétique classique qui transforme la position x de chaque lettre par la formule linéaire E(x)=(a·x+b) mod 26, où a est un multiplicateur premier avec vingt-six et b un décalage additif. Le déchiffrement multiplie par l'inverse modulaire de a, de sorte que tout couple de clés valide est entièrement réversible. Contrairement à ROT13 ou Atbash, les deux clés sont des paramètres libres dans l'ensemble autorisé, ce qui fait de l'affine une étape pédagogique classique entre le chiffre de César à décalage fixe et les chiffres monoalphabétiques complets à mot-clé. On l'utilise pour les devoirs de cryptanalyse, les échauffements de CTF, les livres d'énigmes et les démonstrations d'arithmétique modulaire en classe. Cette capacité accepte un texte non vide, des clés entières a et b, et un mode optionnel de chiffrement ou de déchiffrement ; elle renvoie la chaîne transformée avec l'inverse de a et un comptage de lettres.

Règles de validation, clés premières avec 26 et pièges courants

La règle décisive du produit est que a doit être premier avec vingt-six : gcd(a,26) doit valoir un pour qu'un inverse modulaire existe. Les multiplicateurs valides sont un, trois, cinq, sept, neuf, onze, quinze, dix-sept, dix-neuf, vingt et un, vingt-trois et vingt-cinq ; les valeurs paires et les multiples de treize partagent un facteur avec vingt-six et sont rejetés avec un message clair indiquant que a n'est pas premier avec 26.

Ne considérez pas la sortie comme un chiffrement assurant la confidentialité : l'espace des clés est minuscule, l'analyse des fréquences fonctionne toujours et la page produit ne doit jamais présenter l'affine comme un contrôle de sécurité pour des mots de passe, des jetons ou des données personnelles.

Préférez cette page lorsque l'intention de recherche est chiffre affine, chiffrement et déchiffrement affine ou chiffre monoalphabétique modulaire ; Atbash et ROT13 répondent aux intentions de correspondance fixe, le chiffre des barreaux à la transposition et Base64 à l'encodage, ils restent donc des outils distincts. Lors du déchiffrement, utilisez les mêmes a et b que ceux qui ont produit le cryptogramme ; un mauvais couple donne une substitution différente qui ne correspondra pas au texte d'origine.

En classe : usages et limites

Utilisez le chiffre affine gratuit du navigateur pour vérifier des devoirs, préparer des diapositives, s'entraîner aux CTF et effectuer des chiffrements ou déchiffrements ponctuels sans écrire de code d'inverse modulaire dans chaque langage. Un scénario de classe typique montre que le chiffre de César est le cas particulier a égal à un, puis fait varier a dans l'ensemble des premiers avec 26 et démontre que les multiplicateurs pairs détruisent l'inversibilité. Les guides de support peuvent inverser des notes légèrement obscurcies rédigées par le personnel avec des clés de classe connues.

Les sites d'énigmes peuvent précalculer les réponses pour les afficher et les révéler à la demande avec mode decrypt. Combinez-le avec l'analyse des fréquences ou d'autres outils classiques uniquement lorsqu'une étape pédagogique ultérieure exige une autre famille de chiffres — gardez l'affine sur sa propre page afin que l'intention SEO reste centrée sur la substitution modulaire à clé.

Devoirs de cryptanalyse et échauffements de CTF

Les étudiants chiffrent de courtes phrases avec a et b connus, puis déchiffrent les cryptogrammes de leurs camarades ou retrouvent des clés sous contraintes sans installer de CAS.

Comment chiffrer un texte avec le chiffre affine ?

Le champ result de la réponse contient le cryptogramme.

Comment déchiffrer un cryptogramme affine ?

Envoyez le cryptogramme comme text, les mêmes a et b utilisés pour le chiffrement, et mode decrypt (ou decode). Le résultat est le texte en clair reconstruit lorsque les clés correspondent.

Que se passe-t-il si a n'est pas premier avec 26 ?

La correspondance affine n'est bijective que lorsque gcd(a,26)=1 ; les multiplicateurs pairs et les multiples de 13 sont rejetés.

L'outil de chiffre affine est-il gratuit ?

L'outil du navigateur s'exécute gratuitement sur votre appareil.

Le chiffre affine est-il un chiffrement sûr ?

Non. L'affine est un chiffre monoalphabétique classique pour les énigmes et l'enseignement, pas pour la confidentialité. Ne l'utilisez jamais pour des mots de passe ou des données sensibles.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/enc/affine

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/enc/affine \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"AFFINE CIPHER","a":5,"b":8}'
{
  "text": "AFFINE CIPHER",
  "a": 5,
  "b": 8
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.affine",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Lorsque a partage un facteur avec vingt-six, la requête échoue avec invalid_input car la correspondance ne serait pas bijective.

Comment fonctionne la correspondance affine et ce que contient la réponse

Le chiffrement traite chaque lettre latine comme un nombre de zéro à vingt-cinq, le multiplie par la clé a, ajoute la clé b et réduit modulo vingt-six avant de réécrire la lettre avec sa casse d'origine. Les majuscules de A à Z et les minuscules de a à z utilisent les mêmes décalages, de sorte que les phrases à casse mixte conservent leur forme et que seule l'identité des lettres change. Les chiffres, espaces, signes de ponctuation, emoji et écritures non latines passent inchangés, donc les messages gardent leurs espacements et symboles. Le mode optionnel mode vaut encrypt par défaut ; encrypt et encode appliquent la correspondance directe, tandis que decrypt et decode l'inversent. Le déchiffrement retrouve le texte en clair en calculant un inverse modulaire a_inv tel que a·a_inv ≡ 1 mod 26, puis en évaluant D(y)=a_inv·(y−b) mod 26 pour chaque lettre. Envoyez du JSON avec le champ chaîne obligatoire text contenant tout message non vide, l'entier obligatoire a entre un et vingt-cinq et premier avec vingt-six, et l'entier obligatoire b entre zéro et vingt-cinq ; les alias input, value, s et message fonctionnent pour le corps, multiplier, key_a et alpha sont des alias de a, tandis que shift, key_b et beta sont des alias de b. En cas de succès, la réponse inclut result avec le texte transformé, mode normalisé en encrypt ou decrypt, a et b qui reprennent les clés, a_inv avec l'inverse utilisé pour le déchiffrement, length égal au nombre de caractères de l'entrée, letters_transformed comptant combien de lettres A–Z ou a–z ont réellement été transformées, et method égal à affine pour que les clients puissent brancher sans renifler la forme de la réponse. Des entrées identiques produisent toujours un JSON identique, car le traitement est de l'arithmétique modulaire pure, sans réseau, sans graine aléatoire et sans horloge.

Règles de validation, clés premières avec 26 et pièges courants

Un text absent, non chaîne ou vide déclenche invalid_input et n'est pas facturé sur l'API prépayée une fois que le moteur rejette la requête. L'absence de a ou b, des clés non entières, un a hors de l'intervalle un à vingt-cinq ou un b hors de zéro à vingt-cinq échouent également avec invalid_input. Les espaces, chiffres et signes de ponctuation ne sont pas supprimés : seules les lettres latines participent à la substitution, donc les chaînes très ponctuées renvoient tout de même un résultat complet avec un letters_transformed plus faible.

Utilisation de l'API, tarifs, scénarios de classe et limites pratiques

Recourez à l'API prépayée KIT lorsqu'un backend, une fonction serverless, une plateforme de tutorat ou un SDK a besoin d'un contrat stable avec solde à $0.002 par élément traité avec succès ; les échecs de validation ne consomment jamais de solde après rejet. Les auteurs de SDK peuvent brancher le champ result directement sur un bouton de copie, tandis que a, b, a_inv et method rendent les exemples OpenAPI auto-explicatifs. Gardez des charges utiles de taille raisonnable pour un appel d'élément dans un isolate de Worker ; cet outil sert aux messages et extraits, pas aux blobs binaires de plusieurs mégaoctets.

Démonstrations d'arithmétique modulaire en classe

Les enseignants montrent que seuls les multiplicateurs premiers avec 26 sont inversibles, comparent l'affine à Atbash ou ROT13 et fixent a égal à cinq et b égal à huit comme fixture de manuel.

Fixtures de pipeline et de CI

Les scripts et tests d'intégration continue fixent des sorties affines déterministes et l'erreur de a non premier pour que les bugs accidentels d'inverse ou de gcd échouent vite.

Consulter la documentation complète du KIT →