Kryptering 1
Kryptoanalys
Vi läser in en fil som innehåller det första stycket ur boken Mästaren och Margarita av Michail Bulgakov.
Med funktionen replace kan man ersätta alla förekomster av en delsträng med en annan. Om vi t.ex. vill ersätta alla a med ö skriver vi följande.
Vi kan utnyttja att gemener och versaler är olika tecken i en textsträng i Python.
Frekvensanalys
Frekvensanalys av monogram erhålls med funktionen monogramanalys. Resultatet kan presenteras antingen grafiskt med ett diagram, i tabellform eller som en lista. Alterantivet 'diagram' är förvalt. Funktionen kan hantera valfritt alfabet.
Samma analys fast i tabellform:
Vi kan även få resultatet som en lista, där det till varje bokstav hör dess frekvens.
Frekvensanalys av bigram och trigram görs med funktionerna bigramanalys och trigramanalys. Dessa funktioner returnerar de mest frekventa bi- respektive trigrammen, där är förvalt värde.
Tips: Med funktionen count räknar man antal förekomster av en delsträng i en textsträng.
Råstyrkeattack på förskjutningskrypto
Antag att kryptogrammet zaiqnlz har erhållits med ett förskjutningskyrpto. Eftersom antal nycklar är få kan vi testa samtliga.
Vi ser att för ger kryptering med en läsbar klartext.
Känd klartext-attack på affint krypto
Antag att vi vet att klartexten yl ger kryptogrammet jr med ett affint krypto. Vad är nyckeln? Först kodar vi klartext och kryptogram till heltal.
Nyckeln kan alltså vara någon av , , eller . Vi testar en av dem:
De tre andra lösningarna ger exakt samma kryptogram. Vi har fyra alternativ och vi behöver därför veta mer för att kunna utesluta tre av dem.
Attack på Vigenèrekryptot
För att bestämma samtliga positioner av en delsträng i en textsträng kan man använda funktionen BabbageKasiski. På vilka positioner finns var i textsträngvariabeln Bulgakov?
Vi räknar antal överensstämmelser då vi förskjuter en textsträng steg med funktionen Friedman. Antal överensstämmelser då Bulgakov förskjuts steg:
Med funktionen splittra_text delar man upp en textsträng i delsträngar, där den :te delsträngen är de tecken vars position i den ursprungliga textsträngen är , där är ett icke-negativt heltal. Plocka ut var sjunde bokstav Bulgakov:
Du kan läsa texten ''kolumn för kolumn''. Med monogramanalys kan man analyserar respektive delsträng.
Differentiell kryptoanalys
UNDER KONSTRUKTION