Kategorier
Mjukvara

Att räkna med jättestora tal

För ungefär tio år sedan började jag fundera på hur krypteringsalgoritmen RSA fungerar. Som vanligt spårade det ur. En bidragande orsak var kanske att jag nyss tänkt, för mig själv att: ”man borde ju ha skrivit en bok någon gång i sitt liv”.

Jag insåg ganska snart att, för att förstå hur asymmetrisk kryptering med publika och privata nycklar fungerar, måste man klara av att räkna med jättestora tal. Tal som är så stora att man behöver speciell programvara för att räkna med dem.

”Hur funkar det?” undrade jag.

Där slog jag in på en väg som resulterade i en bok. Låt vara självpublicerad på lulu, men ändå närapå tvåhundra rätt så tråkiga sidor om hur aritmetik med godtyckligt stora tal fungerar. Boken behandlar också sådant som hur man hittar jättestora primtal, hur RSA egentligen fungerar, hur man räknar fram riktigt bra primtal och en massa andra superspännande ämnen.

Man kan väl lugnt säga att boken inte blev någon storsäljare. Jag tror den totala tryckta upplagan uppgår till hela två exemplar: mitt eget och ett som en stackars vän köpte av medlidande. Boken hittar man här.

Nu hade jag ju skaffat mig ett relativt bra grepp om hur det hela fungerade, så naturligtvis var jag inte riktigt klar än. Jag skrev därför också ett programbibliotek för beräkningar med godtyckligt stora heltal. Detta programbibliotek innehåller även funktioner för att generera stora primtal och slumptal samt naturligtvis en implementation av RSA. Detta programbibliotek kan man hitta här, den föregående texten finns att hämta här.

Så kan det gå!

Kategorier
Mjukvara

Närvaro

För några år sedan började skatteverket kräva att vissa typer av företag måste registrera när de som arbetar är närvarande eller inte. Detta skall göras i en ”personalliggare”, där skall noteras när varje anställd kommer till arbetet och när varje anställd lämnar arbetet. Skatteverket har utfärdat föreskrifter om personalliggare, SKVFS 2015:6 och ändringar i SKVFS 2018:6. Själva lagtexten finns i Skatteförfarandeförordningen, SFS 2011:1261, vari personalliggarens innehåll beskrivs i 9 kap §5. I Skatteförfarandelagen, SFS 2011:1244, 39 kap §11-12 finns lagtexter som berör personalliggare.

Böterna för att inte föra eller föra felaktig personalliggare kan bli ganska dryga. För att slippa krångla med pärmar och papper borde man ju kunna ta fram en elektronisk personalliggare. En sådan borde man ju också kunna förse med finesser som gör det svårare att misslyckas med sin personalliggare.

Så tänkte iallafall jag, och satte ihop ett litet system som finns i sin första testversion här.

Kategorier
Dykning Mjukvara

Dekoplan

För något år sedan intresserade jag mig för dekompressionsberäkningar för teknisk dykning. Det resulterade i en skrift om teorin bakom dykplanering för dykning där dekompression i ettapper är nödvändig. Framförallt handlar det om Bühlmanns algoritm för beräkning av hur mycket kväve som löses i kroppen under dykning. Skriften finns här.

Efter att jag samlat på mig kunskapen om hur Bühlmanns algoritm fungerar skrev jag en enkel dykplanerare som genererar en dykplan och dessutom visar en graf över hur kvävebelastningen varierar över tid. Dykplaneraren finns här. Men. ANVÄND DEN INTE FÖR ATT GÖRA RIKTIGA DYKPLANER. Den är inte testad. Den fungerar inte på riktigt. Upphovsmannen tar inget som helst ansvar, för någon användning av den eller för några som helst problem som uppstår, direkt eller indirekt, som ett resultat av att någon ändå använder den.

Kategorier
Mjukvara

Publikationer

Här finns samlat några av mina gamla publikationer.

[1] Degermark, M., Engan, M., Nordgren, B. et al., ”Low‐loss TCP/IP header compression for wireless networks”, Wireless Networks 3, 375–387 (1997).

[2] M. Engan, P. Fransson and O. Schelen, ”Selective truncating internetwork protocol: experiments with explicit framing,” Proceedings Ninth International Conference on Computer Communications and Networks (Cat.No.00EX440), Las Vegas, NV, USA, 2000, pp. 220-224, doi: 10.1109/ICCCN.2000.885494.

[3] M. Engan, S. Casner, C. Bormann, ”IP Header Compression over PPP”, RFC 2509, February 1999.