Chiffre VIC
Chiffre ATTACK AT DAWN avec la clé de damier COMPUTERS, les deux chiffres nuls 37 et les clés ORANGE et BLUE en 61363 17174 31939 70373 3916, puis le déchiffre. Le damier straddling s'enchaîne avec deux transpositions en colonnes, comme le chiffre manuel classique. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- ATTACK AT DAWN
- Clé du tableau
- COMPUTERS
- Nuls
- 37
- Key
- ORANGE
- Key2
- BLUE
- Mode de calcul
- Encrypt
- Résultat
- 61363 17174 31939 70373 3916
- Longueur
- 28
- Symboles associés
- 14
- Flux de chiffres
- 316631039793167933317471
Le chiffre VIC est un système manuel classique connu du travail de terrain du milieu du XXe siècle : il combine un damier straddling (straddling checkerboard), qui associe les lettres à un flux mixte de codes à un et deux chiffres, avec deux transpositions colonnaires enchaînées qui brouillent ce flux avant de l'écrire en groupes de cinq chiffres. Cette page propose un profil pédagogique clair de ce pipeline pour que les étudiants, les joueurs de CTF et les auteurs de programmes puissent chiffrer et déchiffrer avec des clés partagées sans inventer de scripts ad hoc. Vous fournissez le texte en clair ou le cryptogramme numérique, un mot-clé de damier, deux chiffres null distincts pour les cases vides et deux mots-clés de transposition non vides, puis choisissez chiffrer ou déchiffrer.
Comment fonctionnent le damier straddling et les transpositions enchaînées
Commencez par un mot-clé de damier. Les lettres latines uniques de ce mot sont écrites d'abord dans un ordre de remplissage de vingt-huit cellules, puis le reste de l'alphabet, puis le point et la barre, afin que espaces et fins de phrase aient des codes explicites.
Deux chiffres null distincts marquent des colonnes vides sur la ligne supérieure d'un damier à dix colonnes ; ces huit cellules supérieures remplies deviennent des codes à un chiffre, tandis que les deux nulls étiquettent les lignes du corps qui portent les vingt symboles restants en codes à deux chiffres. Le chiffrement parcourt le texte normalisé une fois : les lettres passent en majuscules, les espaces deviennent barre, les points restent et le reste est ignoré.
Chaque symbole est remplacé par son code à un ou deux chiffres et les codes sont concaténés en un flux continu de chiffres. Ce flux est écrit dans une grille dont la largeur égale la longueur du premier mot de transposition ; les colonnes sont lues dans l'ordre Unicode des caractères de la clé, avec des égalités stables de gauche à droite. La chaîne intermédiaire est à nouveau transposée avec le second mot selon la même règle.
Le flux final est émis en groupes classiques de cinq chiffres séparés par des espaces pour le copier à la main facilement. Au déchiffrement, on retire les non-chiffres, on annule la seconde transposition, puis la première, puis on décode gloutonnement d'abord les codes à un chiffre puis ceux à deux sur le même damier. Le chemin n'utilise ni réseau, ni Date, ni aléa.
Cette page n'implémente que le VIC pédagogique à double chaîne colonnaire, pas le schéma historique complet du numéro personnel, ni les variantes à colonnes interrompues, ni la récupération automatique de clés inconnues.
Où les outils du chiffre VIC interviennent dans le travail réel
Les cours d'introduction à la cryptographie et à l'histoire du renseignement assignent des exercices de type VIC pour que les étudiants s'entraînent à combiner une table de substitution straddling avec des transpositions séquentielles avant d'aborder les chiffres modernes de flux et de bloc ; un oracle de confiance qui chiffre et déchiffre avec des règles documentées de damier et de clés accélère les démonstrations de devoirs et les correcteurs automatiques.
Les échauffements capture-the-flag et les chasses aux énigmes cachent encore des flux en groupes de cinq chiffres qui ne s'inversent que lorsque le mot du damier, la paire de nulls et les deux clés de transposition sont connus, et les résolveurs veulent un outil rapide et prévisible plutôt qu'une suite générale de cryptanalyse. Les équipes support et contenu encodent parfois légèrement des spoilers ou des libellés internes en groupes de chiffres et ont besoin du chemin inverse sans installer une bibliothèque cryptographique propre au langage.
Si vous avez besoin d'une simple transposition colonnaire sans damier, d'une double colonnaire seule, du Nihilist Polybius-plus-add, du fractionnement Bifid ou d'une récupération automatique par analyse de fréquences de clés inconnues, traitez-les comme des intentions de recherche et des landings distinctes, sans surcharger cette page pédagogique du chiffre VIC.
Cas d’usage
Démos de cours VIC et de métier de terrain
Chiffrez et déchiffrez des messages d'exemple avec un mot de damier, des chiffres null et deux clés de transposition pour que les cours de crypto et d'histoire partagent un pipeline VIC de référence.
Défis puzzle et CTF sur flux de chiffres
Encodez ou inversez des flux VIC en groupes de cinq chiffres sur des chaînes de défi sans écrire un script séparé pour chaque jeu de problèmes.
Questions fréquentes
Qu'est-ce que le chiffre VIC sur cette page ?
Un profil pédagogique de chiffre manuel : un damier straddling associe les lettres à des codes mixtes à un et deux chiffres, puis deux transpositions colonnaires enchaînées brouillent le flux de chiffres. Le cryptogramme s'affiche en groupes de cinq chiffres.
Comment déchiffrer un flux de chiffres ?
L'outil annule key2, puis key, puis décode le damier de façon gloutonne.
À quoi servent les deux chiffres nuls ?
Ils marquent les deux cases vides de la ligne du haut du damier à dix colonnes. Les huit cases remplies donnent des codes à un chiffre, et les nuls étiquettent les lignes qui portent les vingt autres symboles, codés sur deux chiffres. Ils doivent différer, comme 37.
Quels caractères sont conservés au chiffrement ?
Les lettres latines de A à Z, en majuscule ou minuscule, et le point. Les espaces deviennent une barre oblique sur le damier, si bien que les mots réapparaissent au déchiffrement ; chiffres, lettres accentuées et autres signes sont ignorés.
Est-ce le VIC historique complet ?
Non, c'est un profil pédagogique : damier et double transposition en colonnes, sans le calendrier de clés historique fondé sur un numéro personnel, sans transposition interrompue et sans recherche automatique de clés inconnues.
Outils associés
Pour les développeurs — accès API
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.
Endpoint
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é.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/enc/vic-cipher \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"ATTACK AT DAWN","board_key":"COMPUTERS","nulls":"37","key":"ORANGE","key2":"BLUE"}'const res = await fetch("https://api.kit.forhosting.com/enc/vic-cipher", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "ATTACK AT DAWN",
"board_key": "COMPUTERS",
"nulls": "37",
"key": "ORANGE",
"key2": "BLUE"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/vic-cipher",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "ATTACK AT DAWN",
"board_key": "COMPUTERS",
"nulls": "37",
"key": "ORANGE",
"key2": "BLUE"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/vic-cipher", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"ATTACK AT DAWN","board_key":"COMPUTERS","nulls":"37","key":"ORANGE","key2":"BLUE"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"ATTACK AT DAWN","board_key":"COMPUTERS","nulls":"37","key":"ORANGE","key2":"BLUE"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/vic-cipher", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "ATTACK AT DAWN",
"board_key": "COMPUTERS",
"nulls": "37",
"key": "ORANGE",
"key2": "BLUE"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.vic_cipher",
"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.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Les clés vides, les mots de damier sans lettres et les nulls identiques échouent immédiatement avec invalid_input, de sorte qu'un secret vide n'est jamais traité comme un no-op silencieux.
Comment fonctionnent le damier straddling et les transpositions enchaînées
Il n'y a ni padding moderne, ni étiquette d'authenticité, ni nonce aléatoire : le même texte, clé de damier, nulls, clés et mode produisent toujours le même JSON.
Ce que vous envoyez et ce que vous recevez
Lorsque mode est omis, encrypt est la valeur par défaut et une charge utile minimale reste utile. Les échecs de validation ne consomment pas le solde prépayé. Envoyez un champ chaîne obligatoire nommé text, un board_key obligatoire pour le damier straddling, un nulls obligatoire avec deux chiffres distincts comme trente-sept, un key obligatoire pour le premier passage colonnaire, un key2 obligatoire pour le second, et un mode optionnel à encrypt ou decrypt. En cas de succès la réponse répète mode, text, board_key, nulls, key et key2 ; renvoie result comme chiffres de cryptogramme groupés ou texte récupéré avec espaces restaurés depuis la barre ; length de ce résultat ; symbols_mapped indiquant combien de symboles du damier ont été codés ou décodés ; digit_stream et les chaînes intermédiaires after_first_transposition et after_second_transposition ; column_order_1 et column_order_2 ; checkerboard_row0 à checkerboard_row2 compactes plus single_digits ; et cipher égal à vic avec une courte formule. Champs manquants, text vide, board_key vide ou sans lettres, key ou key2 vides, nulls qui ne sont pas deux chiffres distincts, valeurs de mode non prises en charge, chaînes plus longues que le maximum documenté, charges de déchiffrement sans chiffres et flux qui ne reviennent pas à des codes valides du damier échouent avec invalid_input et un message clair en anglais. Les contrôles classiques incluent le chiffrement de ATTACK AT DAWN avec board_key COMPUTERS, nulls trente-sept, key ORANGE et key2 BLUE en un flux de groupes de cinq, le déchiffrement de ce flux vers ATTACK AT DAWN, et la confirmation qu'un key vide est rejeté plutôt que traité comme une transposition de largeur nulle. Le prix des appels API réussis est la base publiée de $0.002 par élément.
Où les outils du chiffre VIC interviennent dans le travail réel
Comme cette capacité est un moteur parse pur, le prix de l'API est la base publiée de $0.002 par élément réussi et l'échec de validation ne consomme pas le solde.
Cas d'intégration
Fixtures golden pour chiffres multi-étapes
Générez des vecteurs stables damier plus double transposition pour correcteurs, carnets et tests de régression dans le navigateur ou via l'API.
Questions techniques
Que sont board_key, nulls, key et key2 ?
board_key remplit l'ordre alphabétique du damier. nulls sont deux chiffres distincts pour les colonnes supérieures vides et les étiquettes des lignes du corps. key et key2 sont le premier et le second mot de transposition colonnaire, dans cet ordre au chiffrement et en sens inverse au déchiffrement.
Pourquoi une clé vide échoue-t-elle ?
board_key doit contenir des lettres latines, nulls doivent être deux chiffres distincts, et key et key2 ne doivent pas être vides. Les secrets vides ou invalides renvoient invalid_input afin qu'un secret vide ne soit jamais traité comme une opération valide.
Quel est le coût ?
L'outil navigateur est gratuit et s'exécute localement. Les requêtes API utilisent le solde prépayé KIT à $0.002 par élément réussi ; l'entrée invalide n'est pas facturée.