Mots clés Analyse de fréquence de chiffrement: Guide de cryptoanalyse avancé
L'analyse de fréquence représente la technique la plus puissante et la plus fondamentale pour briser les chiffres de mots clés et d'autres systèmes de substitution monoalphabétiques. Ce guide complet explore les fondements mathématiques, la mise en œuvre pratique et les techniques avancées utilisées dans la cryptoanalyse moderne des chiffres classiques.
Fondations théoriques
Base mathématique de l'analyse de fréquence
L'efficacité de l'analyse de fréquence provient de la distribution non uniforme des lettres en langage naturel. Le texte anglais présente des motifs prévisibles qui persistent même après la substitution monoalphabétique, créant des empreintes statistiques que les cryptanalystes peuvent exploiter.
Distribution de la fréquence des lettres
Fréquences normalisées des lettres en anglais (pour 100 lettres):
| Letter | Frequency | Letter | Frequency | Letter | Frequency |
|---|---|---|---|---|---|
| E | 12.70% | T | 9.06% | A | 8.17% |
| O | 7.51% | I | 6.97% | N | 6.75% |
| S | 6.33% | H | 6.09% | R | 5.99% |
| D | 4.25% | L | 4.03% | C | 2.78% |
Key Insight: Le rapport entre les fréquences E et Z est d'environ 180
, fournissant un puissant levier statistique pour la cryptoanalyse.Mesures statistiques
*Indice de la coincidence (IC) * La probabilité que deux lettres choisies au hasard dans un texte soient identiques:
IC = Σ(ni(ni-1)) / (N(N-1))
Where:
- ni = fréquence de la lettre i
- N = longueur totale du texte
Texte anglais: IC.0.065 ** Texte de rando**: IC ** Chiffre des mots-clés**: IC
Chi-Squared Goodness of Fit Mesurer dans quelle mesure les fréquences observées correspondent aux modèles anglais attendus:
χ² = Σ((Observed - Expected)² / Expected)
Les valeurs inférieures χ2 indiquent une meilleure concordance avec les modèles de texte anglais.
Cryptanalyse Méthodologie
Phase 1: Évaluation initiale
Analyse de la longueur du texte
La longueur minimale de texte requise pour une analyse fiable des fréquences:
- 25-50 lettres: Reconnaissance de base possible
- 50-100 lettres: L'analyse de fréquence devient fiable
- 100 + lettres: Analyse statistique de confiance élevée
- 300 + lettres: Sécurité virtuelle de la cryptoanalyse réussie
Évaluation statistique préliminaire
Étape 1: Calculer les fréquences de base
def calculate_frequencies(text):
clean_text = ''.join(c.upper() for c in text if c.isalpha())
total = len(clean_text)
frequencies = {}
for letter in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
count = clean_text.count(letter)
frequencies[letter] = (count / total) * 100 if total > 0 else 0
return frequencies
*Étape 2: Calcul de l'indice de coincidence *
def index_of_coincidence(text):
clean_text = ''.join(c.upper() for c in text if c.isalpha())
n = len(clean_text)
if n <= 1:
return 0
letter_counts = {}
for letter in clean_text:
letter_counts[letter] = letter_counts.get(letter, 0) + 1
ic = sum(count * (count - 1) for count in letter_counts.values())
return ic / (n * (n - 1))
Phase 2: Reconnaissance du modèle
Identification des lettres à haute fréquence
Les lettres les plus fréquentes du chiffre correspondent probablement à E, T, A, O dans le texte en clair. Cela constitue le fondement des attaques par fréquence.
Stratégie de cartographie:
- Identifiez la lettre de chiffre la plus fréquente → représente probablement E
- Deuxième plus fréquent → probablement T ou A
- Troisième plus fréquent → complète le trio E-T-A
- ** Continuer la cartographie** dans la hiérarchie des fréquences
Reconnaissance du modèle de mot commun
** Trois lettres**
- THE (le plus fréquent): Recherchez des modèles répétés de trois lettres
- AND: Deuxième mot trois lettres le plus commun
- FOR, ARE, BUT: Autres tendances fréquentes
** Deux lettres** Lettres doubles communes en anglais: LL, SS, EE, OO, TT, FF, RR
** Fin de semaine**
- -ING: Modèle de terminaison très fréquent
- -ION: Fréquent dans le texte formel
- -TION: Fin plus longue et commune
Exemple de processus d'analyse
Considérez ce chiffre:
QGJ OUFLV YPMEH AMW DUITS MQJP QGJ KCXS BAZ
Étape 1: Compte de fréquence Lettres les plus fréquentes: Q, J, M, G, E (apparaissant plusieurs fois)
Étape 2: Reconnaissance du modèle
- "QGJ" apparaît deux fois → probablement "THE"
- Si Q=T, G=H, J=E, alors:
- T→Q, H→G, E→J établi
Étape 3: Prolongation En utilisant Q=T, G=H, J=E, le déchiffrement partiel donne:
THE ?U??E ?H?E? ??E ?U??? ??EH THE ????E ???
Étape 4: Reconnaissance des mots "THE ?U???E" suggère "THE QUICK", confirmant d'autres mappages.
Phase 3: Techniques avancées
Analyse de Bigram et de Trigram
Les Bigrams anglais les plus communs: TH, HE, IN, ER, AN, RE, ED, ND, ON, EN
Analyse de la fréquence des bigrammes:
def analyze_bigrams(text):
clean_text = ''.join(c.upper() for c in text if c.isalpha())
bigrams = {}
for i in range(len(clean_text) - 1):
bigram = clean_text[i:i+2]
bigrams[bigram] = bigrams.get(bigram, 0) + 1
total_bigrams = len(clean_text) - 1
return {bg: (count/total_bigrams)*100
for bg, count in bigrams.items()}
Anglais commun Trigrammes: THE, AND, ING, HER, HAT, HIS, THA, ERE, FOR, ENT
Techniques de récupération des mots clés
Une fois que suffisamment de correspondances sont établies, reconstruire le mot clé original:
Algorithme de reconstruction:
- Identifiez l'alphabet du chiffre à partir des cartes établies
- Extraire la partie des mots-clés (lettres apparaissant avant la séquence alphabétique)
- Valider le mot-clé en vérifiant les mots ou motifs communs
Exemple de reconstruction: Si l'alphabet de chiffrement est: SECRETABDFGHIJKLMNOPQUVWXYZ Le mot clé est alors: SECRET
Méthodes statistiques avancées
Indice mutuel de la coincidence Comparer deux textes pour mesurer la similitude:
def mutual_ic(text1, text2):
# Calculate how similar two texts are in terms of letter distribution
freq1 = calculate_frequencies(text1)
freq2 = calculate_frequencies(text2)
mic = sum(freq1[letter] * freq2[letter] for letter in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
return mic / 10000 # Normalize
Analyse des contacts Examine les lettres qui apparaissent souvent l'une à côté de l'autre, révélant des modèles linguistiques qui survivent à la substitution.
Cryptanalyse automatisée Outils
Fonctions de notation
*Score de probabilité du texte anglais *
def english_score(text):
# Standard English letter frequencies
english_freq = {
'E': 12.7, 'T': 9.1, 'A': 8.2, 'O': 7.5, 'I': 7.0,
'N': 6.7, 'S': 6.3, 'H': 6.1, 'R': 6.0, 'D': 4.3
}
text_freq = calculate_frequencies(text)
score = 0
for letter, expected in english_freq.items():
observed = text_freq.get(letter, 0)
score += abs(observed - expected)
return 100 - score # Higher score = more English-like
Détection numérique des mots
def count_english_words(text):
common_words = {'THE', 'AND', 'FOR', 'ARE', 'BUT', 'NOT', 'YOU', 'ALL'}
words = text.upper().split()
english_word_count = sum(1 for word in words if word in common_words)
return english_word_count / len(words) if words else 0
Renforcement de la force brute
Intégration des attaques divisionnaires
def dictionary_attack(ciphertext, word_list):
best_score = 0
best_result = None
for keyword in word_list:
cipher = KeywordCipher(keyword)
decrypted = cipher.decrypt(ciphertext)
score = english_score(decrypted)
if score > best_score:
best_score = score
best_result = (keyword, decrypted, score)
return best_result
Études de cas pratiques
Étude de cas 1: Analyse des messages courts
Ciphertext: "GJKKF VFEKX" Longueur: 9 lettres (très courte)
Approche de l'analyse:
- Analyse de fréquence peu fiable en raison de la longueur
- Méthode primaire de reconnaissance des modèles
- "GJKKF" a deux lettres → suggère un mot anglais commun
- "LL" est une double lettre courante en anglais
- Devinez: "HELLO" → J=L, G=H, etc.
Résultat: Mot-clé "ZEBRA" identifié par correspondance de motif.
Étude de cas 2: Analyse textuelle moyenne
Ciphertext: "QGJ OUFLV YPMEH AMW DUITS MQJP QGJ KCXS XMKK" Longueur: 35 + lettres
Processus d'analyse:
- ** Analyse de fréquence**: Q(3), J(3), G(2) les plus fréquents
- ** Reconnaissance des brevets**: "QGJ" apparaît deux fois
- Word Deviseing: QGJ = THE très probable
- Extension: L'utilisation de Q=T, G=H, J=E révèle plus de patrons
- Validation: Le texte émergent a un sens en anglais
Résultat: Le déchiffrement réussi révèle "THE QUICK BROWN FOX JUMPS OVER THE LAZY ROLL"
Étude de cas 3: Analyse de texte long
** Fiabilité statistique**: Avec plus de 100 lettres, l'analyse de fréquence devient très fiable.
Méthodologie:
- L'appariement de fréquence de Pure devient la technique primaire
- Chi-squared testing valide les cartes
- ** L'analyse des bigrammes** confirme les schémas linguistiques
- Score automatisé classe la qualité de la solution
Défense contre l'analyse de fréquence
Limitations du chiffre des mots clés
Vulnérabilités inhérentes:
- ** Nature monoalphabétique**: Chaque lettre se cartographie toujours à la même lettre de chiffrement
- ** Préservation fréquente**: Les lettres anglaises survivent au chiffrement
- ** Entretien des dossiers**: Les structures des mots et les séquences communes restent visibles
Renforcement des techniques
Mots-clés plus longs:
- Augmenter la taille de l'espace clé
- Réduire la prévisibilité de l'arrangement alphabétique
- Réduire l'efficacité des attaques de dictionnaires
Random Mots clés:
- Évitez les mots courants qui apparaissent dans les dictionnaires
- Utiliser des combinaisons de lettres non sensorielles
- Générer des mots clés cryptographiquement
Préparation du message:
- Supprimer les espaces et la ponctuation
- Utiliser un vocabulaire spécialisé
- Utiliser des caractères nuls ou des rembourrages
Contre-mesures historiques
Nomenclateurs: substitution combinée avec des mots de code ** Substitution homophonique**: Nombreuses lettres de chiffrement pour les lettres en texte en clair communes Systèmes polygraphiques: chiffrer les groupes de lettres au lieu des lettres individuelles
Applications modernes
Valeur éducative
L'analyse de fréquence des mots clés fournit une excellente introduction à:
- Le raisonnement statistique en cryptographie
- Reconnaissance des brevets techniques
- ** Approche mathématique de la sécurité**
- Contexte historique de l'évolution cryptographique
CTF et utilisation de la concurrence
Les événements du drapeau sont souvent les suivants:
- Défis du chiffre classique
- Puzzles d'analyse de fréquence
- Problèmes cryptographiques en plusieurs étapes
- Concours de rupture dans le temps
Applications de recherche
cryptanalyse historique pour:
- Analyse des documents archéologiques
- Recherche sur l'histoire militaire
- Étude de correspondance diplomatique
- Analyse littéraire des textes codés
Sujets avancés
Analyse multilingue
** Textes non anglais**:
- Différentes distributions de fréquence
- Techniques d'identification linguistique
- Détection du chiffrement des polyglottes
- Modèles linguistiques culturels
Complexité informatique
Complexité temporelle: O(26!) pour une force brute complète Complexité spatiale: O(26) pour le stockage cartographique ** Limites pratiques**: Les attaques de dictionnaire réduisent significativement l'espace de recherche
Pertinence moderne
Bien que les chiffres clés soient cryptographiquement obsolètes, les principes d'analyse de fréquence s'appliquent à:
- Attaques à canal latéral sur les systèmes modernes
- ** Analyse de la circulation** des communications chiffrées
- ** Analyse stylométrique** pour l'attribution de la paternité
- Conception de l'algorithme de compression des données
L'analyse de fréquence demeure l'une des techniques les plus élégantes et les plus puissantes de la cryptoanalyse, démontrant ainsi comment la perspicacité mathématique peut surmonter des méthodes de chiffrement apparemment sécurisées. Le chiffre-clé sert de véhicule éducatif parfait pour comprendre ces principes fondamentaux qui continuent d'influencer l'analyse cryptographique moderne.