Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
| Download
Views: 3715

Kryptering 1

Grundläggande verktyg

För att använda funktioner som är definierade i filen kryptering.sage laddar man upp filen till aktuellt projekt i CoCalc och läser in filen i en SageMath Worksheet genom att exekvera följande kod.

load('../kryptering.sage') # filen är sparad en nivå upp i mappstrukturen, därav '../'
*** Pythonbibliotek för kryptering, version 2017 ***

Alfabet

Variabeln Asve är en textsträng med de gemena bokstäverna ur det svenska alfabetet, förutom w, sorterade i bokstavsordning.

print Asve
abcdefghijklmnopqrstuvxyzåäö
len(Asve) # antal bostaäver i alfabetet
28

I krypteirng.sage finns även det engelska alfabetet fördefinierat som Aenf. Önskar man använda ett annat alfabet går det bra att definiera och använda med de flesta funktioner i kryptering.sage.

Man bör lägga till ett u före en textsträng om denna innehåller bokstäverna å, ä eller ö så denna kodas i Unicode. Utan prefixet u kommer dessa bokstäver tolkas som två tecken.

len(u'detta är en kort textsträng')
27
len('detta är en kort textsträng')
29

Konvertering

Att konvetera mellan bokstäver och heltal ur Zm\mathbb{Z}_{m} görs med funktionerna text_till_heltal och heltal_till_text. Här betecknar mm antal bokstäver i aktuellt alfabet. Förvalt alfabet är Asve.

text_till_heltal(u'överväldigande')
[27, 21, 4, 17, 21, 26, 11, 3, 8, 6, 0, 13, 3, 4]
Tänk på att använda ett u som prefix till en textsträng om denna innehåller bokstäverna å, ä eller ö.
heltal_till_text([10, 17, 23, 15, 19, 4, 17, 8, 13, 6])
u'kryptering'
För att slippa prefixet u framför textsträngen vid utskrift kan man använda funktionen print.
print heltal_till_text([10, 17, 23, 15, 19, 4, 17, 8, 13, 6])
kryptering
Det går bra att använda andra alfabeten än de svenska.
text_till_heltal('whisky', A = Aeng) # 'A =' kan utelmnas
[22, 7, 8, 18, 10, 24]
print heltal_till_text([24, 4, 18], Aeng)
yes