Science >> Wetenschap >  >> Wiskunde

Hoe codebrekers werken

Code breken is het proces waarbij de betekenis van een gecodeerd bericht in platte tekst wordt ontdekt. Het kan handmatig worden gedaan, met behulp van pen en papier, of het kan worden gedaan met behulp van een computer. Er zijn veel verschillende technieken voor het kraken van codes, maar ze delen allemaal enkele gemeenschappelijke principes.

Eerste proberen codebrekers het type code dat is gebruikt te identificeren. Er zijn veel verschillende soorten codes, elk met zijn eigen sterke en zwakke punten. Enkele veel voorkomende soorten codes zijn:

* Vervangingscijfers , die elke letter in de leesbare tekst vervangt door een andere letter.

* Transpositiecijfers , die de volgorde van de letters in de leesbare tekst herschikt.

* Combinatiecijfers , die een combinatie van substitutie- en transpositiecijfers gebruiken.

Een keer Als het type code is geïdentificeerd, kunnen codebrekers proberen deze te kraken. Er zijn een aantal verschillende technieken die kunnen worden gebruikt om codes te kraken, waaronder:

* Frequentieanalyse , dat kijkt naar de frequentie van letters in de cijfertekst en deze vergelijkt met de frequentie van letters in de leesbare tekst.

* Patroonherkenning , dat zoekt naar patronen in de cijfertekst die kunnen worden gebruikt om de leesbare tekst te identificeren.

* Woordenboekaanvallen , die een woordenboek met bekende woorden gebruiken om de leesbare tekst te identificeren.

* Brute force-aanvallen , die alle mogelijke combinaties van letters en cijfers proberen totdat de leesbare tekst is gevonden.

De De moeilijkheidsgraad van het breken van een code hangt af van het type code en de lengte van de cijfertekst. Sommige codes zijn erg moeilijk te kraken, zelfs voor ervaren codebrekers. Met voldoende tijd en moeite kunnen de meeste codes echter worden verbroken.

Hier is een voorbeeld van hoe het breken van code werkt:

Laten we zeggen dat we een gecodeerd bericht hebben met de volgende tekst:

`UIF RVBMJUZ UP CF IFMQ ZPV IPNF UP UIF DPNQMFUF`

We kunnen beginnen door te proberen het type code te identificeren dat is gebruikt. Eén manier om dit te doen is door te kijken naar de frequentie van letters in de cijfertekst. De meest voorkomende letter in de cijfertekst is "U", die vier keer voorkomt. De volgende meest voorkomende letters zijn "I", "F" en "P", die elk drie keer voorkomen. Dit suggereert dat de code een vervangingscijfer kan zijn, aangezien vervangingscijfers vaak de relatieve frequenties van letters behouden.

Zodra we het type code hebben geïdentificeerd, kunnen we proberen deze te kraken. Eén manier om dit te doen is door gebruik te maken van frequentieanalyse. We kunnen kijken naar de frequentie van letters in de cijfertekst en deze vergelijken met de frequentie van letters in de leesbare tekst. De volgende tabel toont de frequentie van letters in de leesbare tekst (linkerkolom) en de frequentie van letters in de cijfertekst (rechterkolom):

| Brief | Platte tekst | Cijfertekst |

|---|---|---|

| Een | 8,1% | 0% |

| B | 1,5% | 2% |

| C | 2,8% | 2% |

| D | 4,3% | 7% |

| E | 12,7% | 11% |

| F | 2,2% | 10% |

| G | 2% | 1% |

| H | 6,1% | 3% |

| ik | 7% | 10% |

| J | 0,2% | 0% |

| K | 0,8% | 0% |

| L | 4% | 2% |

| M | 2,4% | 8% |

| N | 6,7% | 6% |

| O | 7,5% | 8% |

| P | 1,9% | 8% |

| Vraag | 0,1% | 0% |

| R | 6% | 9% |

| S | 6,3% | 3% |

| T | 11,6% | 10% |

| U | 2,8% | 12% |

| V | 1% | 0% |

| W | 2,4% | 0% |

| X | 0,2% | 0% |

| Y | 2% | 0% |

| Z | 0,1% | 0% |

Zoals u kunt zien, is de frequentie van letters in de cijfertekst heel anders dan de frequentie van letters in de leesbare tekst. Dit suggereert dat de code geen eenvoudig vervangingscijfer is. We kunnen echter nog steeds frequentieanalyse gebruiken om ons te helpen de code te kraken.

Eén ding dat ons opvalt is dat de meest voorkomende letter in de cijfertekst de "U" is, wat ook de meest voorkomende letter in de leesbare tekst is. Dit suggereert dat de letter "U" mogelijk niet gecodeerd is. We kunnen proberen alle "U"s in de cijfertekst te vervangen door de letter "E", de meest voorkomende letter in de leesbare tekst. Dit levert ons de volgende cijfertekst op:

`EIF RVBMJUZ UP CF IFMQ ZPV IPNF UP EIF DPNQMFUF`

We kunnen nu opnieuw proberen frequentieanalyse te gebruiken om andere letters te identificeren die mogelijk niet zijn gecodeerd. We kunnen dit proces voortzetten totdat we het hele bericht hebben ontsleuteld.

In In dit voorbeeld konden we de code kraken door een combinatie van frequentieanalyse en patroonherkenning te gebruiken. Het breken van codes is niet altijd zo eenvoudig, maar met voldoende tijd en moeite kunnen de meeste codes worden verbroken.