diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml index 1715aa7..00a74e8 100644 --- a/.github/workflows/core.yml +++ b/.github/workflows/core.yml @@ -65,9 +65,9 @@ jobs: uses: 'marvinpinto/action-automatic-releases@latest' with: repo_token: ${{ secrets.RELEASE_TOKEN }} - automatic_release_tag: v1.3.1 + automatic_release_tag: v1.3.2 prerelease: false - title: v1.3.1 + title: v1.3.2 files: | dist/* diff --git a/Documentation/Rapport/Diskussion.tex b/Documentation/Rapport/Diskussion.tex index 6112db1..fd1c86e 100644 --- a/Documentation/Rapport/Diskussion.tex +++ b/Documentation/Rapport/Diskussion.tex @@ -1,39 +1,110 @@ \mychapter{Diskussion} % Diskussion av resultat, presentera och tolka resultatet samt för ett nyanserat resonemang om vad resultatet betyder. Diskutera även eventuella brister i experimentet och hur dessa kan förbättras. \label{chap:discussion} -% Tolka resultatet från nyckellängds undersökningen -Utifrån resultatet från undersökningen kan man då se hur tiden det tar att kryptera en fil på 1MB ökar när man använder längre nycklar så som 192-\gls{bit} 256-\gls{bit} nycklar -i förhållande till en 128-\gls{bit} nyckel. Något som bland annat visar sig när man tittar på den procentuella tidskillnaden mellan de olika nyckellängderna. Där man kan se en +% Tolka resultatet från nyckellängds undersökningen (To be rewived) +Utifrån resultatet från undersökningen går det att se hur tiden det tar att kryptera en fil på 1MB ökar när man använder längre nycklar så som 192-\gls{bit} 256-\gls{bit} nycklar +i förhållande till en 128-\gls{bit} nyckel. Något som bland annat visar sig när man tittar på den procentuella tidskillnaden mellan det olika nyckellängderna. Där kan man se en tids skillnad på 18,8\% mellan 128-\gls{bit} \& 192-\gls{bit} nyckeln och 27,8\% mellan 128-\gls{bit} \& 256-\gls{bit} nyckeln. -Anledningen till detta är något som högst troligen beror på att antalet krypteringsrundor som genomförs för det olika nyckellängderna ökar när nyckeln blir längre. -Något som då höjer antalet operationer som genomförs för varje 16-\gls{byte} block som krypteras, vilket i sin tur höjer den totala krypterings tiden. -% Tolka resultatet från körläges undersökningen +Anledningen till denna tidökning är något som exempelvis kan bero på antalet rundor som genomförs för varje 16-\gls{byte} block som krypteras, vilket är den huvudsakliga +skillnaden mellan det olika nyckellängderna. Eftersom för en 128-\gls{bit} nyckel så genomförs 10 rundor för varje 16-\gls{byte} block som krypteras, medan för en 192-\gls{bit} +nyckel så genomförs 12 rundor och för en 256-\gls{bit} nyckel så genomförs 14 rundor. Något som då höjer antalet operationer som genomförs för varje 16-\gls{byte} block, vilket +i sin tur då troligen höjer den totala krypterings tiden. + +% Tolka resultatet från körläges undersökningen (To be rewived) Resultatet visar även att skillnaden i krypteringstid mellan olika körlägen är väldigt liten. Mellan \acrshort{ecb} \& \acrshort{cbc} var skillnaden 0,3\% och mellan \acrshort{ecb} \& \acrshort{ofb} var skillnaden 0,4\%. Något som inte riktigt var väntat då det för både \acrshort{cbc} och \acrshort{ofb} -genomförs en ytterligare operation mellan varje 16-\gls{byte} block som krypteras för att länka ihop de olika blocken. Men samtidigt så skulle anledning till att skillnaderna är -så små kunna vara att \gls{xor}-operationen som används för att länka ihop blocken är en operation som är relativt lätt och snabb för en dator att genomföra, samtidigt som -operationen även bara behöver genomföras en gång för varje 16-\gls{byte} block som krypteras. - -I resultatet av körläges testet kan man dock även se en viss spridning i tiden som det tar att kryptera en fil mellan det olika omgångarna. -Något som visar på en viss osäkerhet då \acrshort{ecb} har en högsta tid som är högre än både den högsta tiden för \acrshort{cbc} och \acrshort{ofb}. Vilket då skulle kunna antyda -att de skillnader som mätts upp mellan medelvärdena kan vara något som är inom felmarginalen för mätningen. Detta innebär då att det inte går att säga med säkerhet att -det finns någon större skillnad i krypterings tiden mellan det olika körlägena utifrån denna undersökning. - -% Tolka resultatet från krypteringsmetod undersökningen -Tittar man sedan istället på hur säkerheten påverkas av det olika körlägena så kan man ganska tydligt se att \acrshort{ecb} är det mest osäkra körläget för större data mängder. -Detta då man som visas i resultatet kan se hur trots kryptering man fortfarande kan se spår av den ursprungliga bilden i informationen som krypterats. Något som inte +genomförs en ytterligare operation mellan varje 16-\gls{byte} block som krypteras för att länka ihop det olika blocken. Men samtidigt så är denna extra operation en \gls{xor}-operation +som är relativt lätt och snabb för en dator att genomföra. Något som då innebär att trots att det genomförs en extra operation så är den ändå relativt snabb och därför inte +påverkar krypterings tiden särskilt mycket. + +I resultatet av körläges testet kan man dock även se en viss spridning i tiden som det tar att kryptera en fil mellan det olika omgångarna. Detta bland annat när man jämför +max och min tiderna för det olika körlägena. Där går det att se ifall man tittar på maxvärdet för \acrshort{ecb} som är 21,0857602999968 s att det är högre än +maxvärdet för \acrshort{cbc} som är 20,9346826999972 s och \acrshort{ofb} som är 20,8816630000001 s. En skillnad som då påvisar att det finns en viss osäkerhet i +resultatet och ytterligare bekräftas ifall man tittar på min värdena. I och med detta går det inte med säkerhet att konstatera något utifrån resultatet av körläges testet +när det gäller vilken betydelse det har för krypterings tiden. + +% Tolka resultatet från krypteringsmetod undersökningen (To be rewived) +Tittar man sedan istället på hur säkerheten påverkas av det olika körlägena så kan man ganska tydligt se att \acrshort{ecb} är det mest osäkra körläget för större informations mängder. +Detta då man som visas i resultatet kan se hur trots kryptering fortfarande kan se spår av den ursprungliga bilden i informationen som krypterats. Något som inte går att göra när bilden istället krypteras med hjälp av \acrshort{cbc} eller \acrshort{ofb}. -% Utvärdera metoden (nyanserat resonemang) +% Utvärdera metoden (nyanserat resonemang) (To be rewied) +Själva metoden som användes för att genomföra undersökningen bär med sig både för och nackdelar. Bland annat så medför metoden en ökad förståelse för hur \acrfull{aes} fungerar +på en låg nivå tack vare det faktum att implementeringen av algoritmen gjordes specifikt för undersökningen. En förståelse som gör det lättare att formulera resonemang och +dra slutsatser om hur \acrshort{aes} fungerar. Vilket är något som skulle gå förlorat ifall man istället använt en befintlig implementation av \acrshort{aes}. Men att implementera +\acrshort{aes} på egenhand innebär också att det finns en risk för att implementeringen av algoritmen inte är helt korrekt och är även en tidskrävande process som kräver +mycket arbete. Något som kan ses som en nackdel som skulle kunna undvikas ifall en befintlig implementation av \acrshort{aes} använts. + +En fördel med metoden när det gäller just nyckellängds testet är att säkerheten hos resultatet stärks genom att varje nyckel testas flera gånger, vilket då medför att +potentiell slumpmässiga felkällor som kan påverka resultatet minskas. Men samtidigt så innebär detta att tiden som krävs för att genomföra undersökningen ökar. Något som +då påverkar hur stora filer som går att testa för att kunna genomföra undersökningen inom en rimlig tidsrymd. + +Ytterligare fördelar med metoden är att den till stor del är automatiserad, vilket då minskar den mänskliga faktorns påverkan. Samtidigt som det gör det lättare att +repetera undersökningen fler gånger med liten variabilitet, vilket då gör att man får ett mer tillförlitligt resultat. Sedan så är +en annan fördel att det lätt går att jämföra och urskilja skillnader i säkerheten för stora data mängder mellan olika körlägen tack vare att en bild användes som testdata. +Vilket då ger en tydlig visuell indikation på hur säkerheten påverkas av det olika körlägena. + +\section{Felkällor} % (To be rewived) +\label{sec:errors} +Om man ska titta på felkällor så finns det bland annat som nämnts tidigare en risk för att implementeringen av \acrshort{aes} inte är helt korrekt. Vilket +då skulle kunna påverka resultatets tillförlitlighet. Bland annat genom att introducera tidskillnader mellan exempelvis olika körlägen eller nyckellängder som inte skulle finnas i en korrekt implementering. Detta innebär +då att det finns en risk att fel i implementeringen av \acrshort{aes} kan påverka resultatet, vilket därmed tillför en viss osäkerhet till resultatet. % (To be rewived) + +En annan felkälla skulle även kunna vara själva resultat hanteringen. Något som för denna undersökning gjordes manuellt efter att undersökningen var genomförd. Detta innebär då att +det finns en möjlighet för fel som beror på den mänsklig faktorn som exempelvis felaktig avläsning eller felaktiga beräkningar vid sammanställning av resultatet. Något som då ytterligare +påverkar resultatets tillförlitlighet negativt. % (To be rewived) + +Sedan skulle en annan felkälla även kunna vara en variation i \gls{cpuh} mellan omgångarna, vilket då resulterar i att olika omgångar av undersökningen hinner olika många instruktioner +per sekund. En faktor som då innebär att det kan ta olika lång tid för samma operationer att utföras mellan omgångarna i undersökningen. Detta leder då till en viss variation i resultatet, +vilket då även till för en viss osäkerhet. % (To be rewived) + +Slutligen skulle även ytterligare en felkälla kunna vara \nameref{sec:aes-key-expansion}en som användes för att generera nycklarna för varje runda. Detta eftersom detta steg behöver genomföra fler operationer för längre nyckel längder. +Något som då innebär att det tar längre tid för större nycklar att utökas i förhållande till kortare nycklar. Detta är då en systematisk felkälla som innebär att det alltid kommer +finnas ett visst tidstillägg för större nycklar i förhållande till kortare nycklar. Ett faktum som man då behöver ta i beaktande vid jämförelser mellan olika nyckellängder. % (To be rewived) + +\section{Förbättringar} % (To be rewived) +\label{sec:improvements} +Om man nu istället ska titta på möjliga förbättringar av undersökningen så skulle en förbättring kunna vara att öka antalet gånger som varje nyckel och körläge testas. Detta skulle då +minska risken för att resultatet blir påverkat av slumpmässiga felkällor så som exempelvis variationer i klockhastigheten. Något som då skulle göra resultatet mer tillförlitligt. % (To be rewived) + +En annan förbättring skulle även kunna vara att genomföra \nameref{sec:aes-key-expansion}en innan själva tidtagningen av krypteringen. Något som då skulle kunna eliminera den systematiska +felkälla som nämnts tidigare när det gäller \nameref{sec:aes-key-expansion}en. Detta innebär då att jämförelser av tiden det tar att kryptera något mellan olika nyckellängder skulle spegla +den faktiska skillnaden bättre och därmed ge ett mer tillförlitligt resultat. % (To be rewived) +Det är dock värt att notera att denna skillnad som kan uppstå mellan olika nyckellängder för \nameref{sec:aes-key-expansion}en inte är särskilt stor i förhållande till resten av krypteringsprocessen +i takt med att data mängden ökar. Detta innebär då att felet som uppstår från att genomföra \nameref{sec:aes-key-expansion}en medans tidtagningen pågår även skulle kunna minimeras genom att +öka data mängden. Något som då skulle göra att skillnaden blir försumbar i förhållande till resten av krypteringsprocessen.% (To be rewived) +Ytterligare en förbättring kan vara att på något sätt begränsa \gls{cpuh} till en viss fast klockhastighet, vilket då skulle ge varje omgång av undersökningen samma förutsättningar +att hinna med exakt samma antal operationer per sekund. Något som då skulle innebära ett mer tillförlitligt resultat. Utöver detta skulle man även kunna försöka minska den mänskliga faktorns +påverkan på resultatet genom att automatisera resultat hanteringen och beräkningarna av exempelvis medelvärde. Något som då även det skulle göra resultatet mer tillförlitligt. % (To be rewived) -\section{Felkällor} % Variabilitet i klockhastighet, Ogämnheter i implementeringen som resulterar i missvisande tider, osäkerhet host mätmetoden, fel i implementeringen, +En annan förbättring skulle även kunna vara att kontrollera implementeringen av \acrshort{aes} ytterligare exempelvis genom att låta någon utomstående individ insatt i ämnet och +med en bra förståelse utav programmerings språket \gls{python} gå igenom koden rad för rad. Något som då skulle kunna minimerar risken för felaktigheter i implementeringen, +vilket i sin tur då skulle leda till att resultatet blir mer tillförlitligt. % (To be rewived) +\section{Slutsats} % (To be rewived) +\label{sec:conclusion} +Om man nu ska besvara frågeställningen “Hur påverkas tiden det tar att kryptera något mellan det olika nyckel längderna 128-bit, 192-bit och 256-bit nyckel?” så visar resultatet från +undersökningen tydligt hur tiden det tar att kryptera något ökar ganska mycket i takt med att nyckeln blir längre. En tids ökning på 18,8\% mellan 128-bit och 192-bit nyckel och en tids ökning på 27,8\% +mellan 192-bit och 256-bit nyckel. Ett resultat som trots vissa felkällor och osäkerheter ändå är tillräckligt tillförlitligt för att kunna dra slutsatsen att det tar längre tid. -\section{Förbättringar} % Öka antalet reppetitioner för att minskar risken för fel, använda andra metoder för att mäta tiden, testa olika nycklar för att se hur de påverkar, +När man sedan ska besvara frågeställningen “Hur förändras tiden det tar att kryptera något beroende på ifall algoritmen körs i \acrshort{ecb}, \acrshort{cbc} eller \acrshort{ofb}?” så är resultatet inte +riktigt lika tydligt som när det gäller nyckellängderna. Resultatet visar på en tidsökning på 0,3\% mellan \acrshort{ecb} och \acrshort{cbc} och en tidsökning på 0,1\% mellan \acrshort{cbc} och +\acrshort{ofb}. Att dra några konkreta slutsatser från detta resultat är dock inte möjligt utifrån denna undersökning då det är svårt att säga om skillnaden mellan \acrshort{ecb} och \acrshort{cbc} samt +\acrshort{cbc} och \acrshort{ofb} är pågrund av en faktisk tidsskillnad eller om det är ett resultat av felkällor och osäkerheter. +Ett faktum som ganska tydligt framgår när man tittar på hur skillnaden mellan det högsta uppmätta värdena och det lägst uppmätta värdena för varje körläge. Där det går att se hur +exempelvis det högsta värdet för \acrshort{ecb} är högre än både det högsta värdet för \acrshort{cbc} och det högsta värdet för \acrshort{ofb}, samtidigt som det lägsta värdet för +\acrshort{ofb} är lägre än både det lägsta värdet för \acrshort{ecb} och det lägsta värdet för \acrshort{cbc}. -\section{Slutsats} +Slutligen om man ska besvara frågeställningen “Hur påverkas skiffertexten av det olika körlägen \acrshort{ecb}, \acrshort{cbc} \& \acrshort{ofb} samt vilken betydelse det får ur ett säkerhetsperspektiv?” +så visar resultatet från krypteringstestet tydligt hur skiffertexten förändras beroende på vilket körläge som används. Den huvudsakliga skillnaden visar sig när man tittar på skiffertexten +från \acrshort{ecb} där man tydligt kan se spår av den ursprungliga bilden samtidigt som detta inte går att se i skiffertexten från \acrshort{cbc} och \acrshort{ofb}. Utifrån detta kan man då dra slutsatsen +att körläget \acrshort{ecb} är sämre ur ett säkerhetsperspektiv för större data mängder än \acrshort{cbc} och \acrshort{ofb} eftersom det trots kryptering fortfarande går att se spår av den ursprungliga +informationen i skiffertexten. +Sammanfattningsvis kan man utifrån denna undersökning då dra slusatsen att det tar längre tid att kryptera information ifall man använder en längre så som 256-bit nyckel jämfört med en kortare så som 128-bit nyckel. Samtidigt +som det möjligen skulle kunna finnas en liten tidsskillnad mellan \acrshort{ecb}, \acrshort{cbc} och \acrshort{ofb}. Samt att \acrshort{ecb} är sämre ur ett säkerhetsperspektiv för att kryptera större informations mängder än +\acrshort{cbc} och \acrshort{ofb}. diff --git a/Documentation/Rapport/Introduction.tex b/Documentation/Rapport/Introduction.tex index 6b1a0ab..fcfbaa5 100644 --- a/Documentation/Rapport/Introduction.tex +++ b/Documentation/Rapport/Introduction.tex @@ -1,13 +1,13 @@ \mychapter{Inledning} % Mostly clear but might need some refinement -Kryptering, en bärande grundsten i dagens digitaliserade samhälle. De är väggen mellan oss och resten +Kryptering, en bärande grundsten i dagens digitaliserade samhälle. det är väggen mellan oss och resten av världen, ett lås runt våra liv. Kryptering bygger på ett simpelt koncept, att dölja informationen från all förutom den menade mottagaren. Ett koncept som exempelvis fanns redan för 2000 år sedan när Julius -Caesar använde de vi idag kallar \gls{caesar} för att skicka hemliga meddelanden.\footfullcite{luciano1987cryptology} +Caesar använde det vi idag kallar \gls{caesar} för att skicka hemliga meddelanden.\footfullcite{luciano1987cryptology} -Sedan dess har kryptografi självklart utvecklats enormt och vi har gått från de på ett sätt simpla men -även eleganta \gls{caesar} som användes då till moderna algoritmer så som \acrlong{aes} och \acrlong{des}. +Sedan dess har kryptografi självklart utvecklats enormt och vi har gått från det på ett sätt simpla men +även eleganta \gls{caesar} som användes förr i tiden till moderna algoritmer så som \acrlong{aes} och \acrlong{des}. Dessa algoritmer har samma syfte som \gls{caesar} men har utvecklats under en tid där datorer står som -de dominerande informationshanteringsverktyget, vilket även är vad som används i denna rapport för att +det dominerande informationshanteringsverktyget, vilket även är det verktyg som används i denna rapport för att undersöka just en av dessa algoritmer. \section{Syfte} % Mostly clear but might need some refinement @@ -19,14 +19,14 @@ \section{Syfte} % Mostly clear but might need some refinement \section{Frågeställningar} % Mostly clear but might need some refinement and reformulating \begin{itemize} \setlength{\itemindent}{-1em} - \item Hur påverkas tiden de tar att kryptera något mellan de olika nyckel längderna 128-bit, + \item Hur påverkas tiden det tar att kryptera något mellan det olika nyckel längderna 128-bit, 192-bit och 256-bit nyckel? - \item Hur påverkas skiffertexten av de olika körlägen och vilken betydelse får de för den resultatet? - \item Hur förändras tiden det tar att kryptera något beroende på ifall algoritmen körs i - \acrshort{ecb}, \acrshort{cbc} eller \acrshort{ofb} samt vilken betydelse det får ur ett - säkerhetsperspektiv? + \acrshort{ecb}, \acrshort{cbc} eller \acrshort{ofb}? + + \item Hur påverkas skiffertexten av det olika körlägen \acrshort{ecb}, \acrshort{cbc} \& \acrshort{ofb} + samt vilken betydelse det får ur ett säkerhetsperspektiv? \end{itemize} \section{Avgränsning} % Mostly clear but might need some refinement and reformulating diff --git a/Documentation/Rapport/Main.acn b/Documentation/Rapport/Main.acn index 15eee0d..6117d14 100644 --- a/Documentation/Rapport/Main.acn +++ b/Documentation/Rapport/Main.acn @@ -1,5 +1,11 @@ \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{1} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{1} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{1} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{1} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{1} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{1} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{1} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{1} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{4} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{4} \glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{4} @@ -18,106 +24,100 @@ \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{11} \glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{11} \glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{11} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{11} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{11} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{11} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{11} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{11} \glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{11} \glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{11} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{12} -\glossaryentry{DES?\glossentry{des}|setentrycounter[]{page}"\glsnumberformat}{12} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{13} \glossaryentry{DES?\glossentry{des}|setentrycounter[]{page}"\glsnumberformat}{13} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{13} -\glossaryentry{NIST?\glossentry{nist}|setentrycounter[]{page}"\glsnumberformat}{13} -\glossaryentry{NIST?\glossentry{nist}|setentrycounter[]{page}"\glsnumberformat}{13} -\glossaryentry{DES?\glossentry{des}|setentrycounter[]{page}"\glsnumberformat}{13} -\glossaryentry{DES?\glossentry{des}|setentrycounter[]{page}"\glsnumberformat}{13} -\glossaryentry{NIST?\glossentry{nist}|setentrycounter[]{page}"\glsnumberformat}{13} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{13} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{13} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{14} -\glossaryentry{TLS?\glossentry{tls}|setentrycounter[]{page}"\glsnumberformat}{14} -\glossaryentry{TLS?\glossentry{tls}|setentrycounter[]{page}"\glsnumberformat}{14} -\glossaryentry{SSL?\glossentry{ssl}|setentrycounter[]{page}"\glsnumberformat}{14} -\glossaryentry{SSL?\glossentry{ssl}|setentrycounter[]{page}"\glsnumberformat}{14} -\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{15} -\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{15} -\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{15} -\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{15} -\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{15} -\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{15} -\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{15} -\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{15} -\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{15} -\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{15} -\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{15} -\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{15} -\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{15} -\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{16} +\glossaryentry{DES?\glossentry{des}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{NIST?\glossentry{nist}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{NIST?\glossentry{nist}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{DES?\glossentry{des}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{DES?\glossentry{des}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{NIST?\glossentry{nist}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{15} +\glossaryentry{TLS?\glossentry{tls}|setentrycounter[]{page}"\glsnumberformat}{15} +\glossaryentry{TLS?\glossentry{tls}|setentrycounter[]{page}"\glsnumberformat}{15} +\glossaryentry{SSL?\glossentry{ssl}|setentrycounter[]{page}"\glsnumberformat}{15} +\glossaryentry{SSL?\glossentry{ssl}|setentrycounter[]{page}"\glsnumberformat}{15} +\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{16} +\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{16} +\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{16} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{16} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{16} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{16} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{16} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{16} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{16} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{16} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{16} -\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{16} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{16} -\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{16} -\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{16} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{16} -\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{16} -\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{16} -\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{16} -\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{17} -\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{17} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{17} -\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{17} -\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{17} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{17} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{17} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{17} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{17} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{17} \glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{17} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{17} \glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{17} -\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{17} -\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{17} \glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{17} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{17} \glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{17} \glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{17} +\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{17} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{18} \glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{18} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{18} \glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{18} \glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{18} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{18} -\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{18} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{18} \glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{18} -\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{18} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{18} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{18} +\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{18} +\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{18} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{18} \glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{18} -\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{18} -\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{18} -\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{18} -\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{18} +\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{18} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{19} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{19} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{19} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{19} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{19} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{19} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{19} \glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{19} \glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{19} \glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{19} \glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{19} \glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{19} \glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{19} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{19} -\glossaryentry{DES?\glossentry{des}|setentrycounter[]{page}"\glsnumberformat}{19} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{19} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{19} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{19} -\glossaryentry{DES?\glossentry{des}|setentrycounter[]{page}"\glsnumberformat}{19} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{19} -\glossaryentry{WPA2?\glossentry{wpa2}|setentrycounter[]{page}"\glsnumberformat}{20} -\glossaryentry{WPA2?\glossentry{wpa2}|setentrycounter[]{page}"\glsnumberformat}{20} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{20} +\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{20} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{20} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{20} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{20} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{20} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{20} +\glossaryentry{DES?\glossentry{des}|setentrycounter[]{page}"\glsnumberformat}{20} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{20} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{20} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{20} +\glossaryentry{DES?\glossentry{des}|setentrycounter[]{page}"\glsnumberformat}{20} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{20} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{20} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{20} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{20} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{21} +\glossaryentry{WPA2?\glossentry{wpa2}|setentrycounter[]{page}"\glsnumberformat}{21} +\glossaryentry{WPA2?\glossentry{wpa2}|setentrycounter[]{page}"\glsnumberformat}{21} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{21} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{21} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{21} @@ -126,41 +126,91 @@ \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{21} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{21} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{21} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{21} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{21} -\glossaryentry{Rcon?\glossentry{rcon}|setentrycounter[]{page}"\glsnumberformat}{29} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{31} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{31} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{31} -\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{31} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{22} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{22} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{22} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{22} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{22} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{22} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{22} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{22} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{22} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{22} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{22} +\glossaryentry{Rcon?\glossentry{rcon}|setentrycounter[]{page}"\glsnumberformat}{30} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{32} -\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{32} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{32} -\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{32} -\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{32} -\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{32} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{32} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{32} -\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{32} -\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{32} -\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{32} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{33} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{33} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{33} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{33} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{33} +\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{33} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{33} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{33} \glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{33} \glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{33} +\glossaryentry{IV?\glossentry{iv}|setentrycounter[]{page}"\glsnumberformat}{33} \glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{34} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{34} \glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{34} \glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{34} -\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{35} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{35} \glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{35} \glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{35} \glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{35} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{37} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{37} +\glossaryentry{AES?\glossentry{aes}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{39} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{39} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{39} +\glossaryentry{ECB?\glossentry{ecb}|setentrycounter[]{page}"\glsnumberformat}{39} +\glossaryentry{CBC?\glossentry{cbc}|setentrycounter[]{page}"\glsnumberformat}{39} +\glossaryentry{OFB?\glossentry{ofb}|setentrycounter[]{page}"\glsnumberformat}{39} diff --git a/Documentation/Rapport/Main.acr b/Documentation/Rapport/Main.acr index 8efb6fd..ab437f9 100644 --- a/Documentation/Rapport/Main.acr +++ b/Documentation/Rapport/Main.acr @@ -5,23 +5,27 @@ \setentrycounter[]{page}\glsnumberformat{1}\delimN \setentrycounter[]{page}\glsnumberformat{10\delimR 13}\delimN \setentrycounter[]{page}\glsnumberformat{18\delimR 20}\delimN - \setentrycounter[]{page}\glsnumberformat{30\delimR 33}}}% + \setentrycounter[]{page}\glsnumberformat{30\delimR 36}}}% \glossentry{ascii}{\glossaryentrynumbers{\relax \setentrycounter[]{page}\glsnumberformat{4}}}\glsgroupskip \glsgroupheading{C}\relax \glsresetentrylist % \glossentry{cbc}{\glossaryentrynumbers{\relax + \setentrycounter[]{page}\glsnumberformat{1}\delimN \setentrycounter[]{page}\glsnumberformat{10}\delimN \setentrycounter[]{page}\glsnumberformat{14\delimR 17}\delimN - \setentrycounter[]{page}\glsnumberformat{31\delimR 34}}}\glsgroupskip + \setentrycounter[]{page}\glsnumberformat{31\delimR 34}\delimN + \setentrycounter[]{page}\glsnumberformat{36\delimN 37}}}\glsgroupskip \glsgroupheading{D}\relax \glsresetentrylist % \glossentry{des}{\glossaryentrynumbers{\relax \setentrycounter[]{page}\glsnumberformat{10\delimR 12}\delimN \setentrycounter[]{page}\glsnumberformat{18}}}\glsgroupskip \glsgroupheading{E}\relax \glsresetentrylist % \glossentry{ecb}{\glossaryentrynumbers{\relax + \setentrycounter[]{page}\glsnumberformat{1}\delimN \setentrycounter[]{page}\glsnumberformat{10}\delimN \setentrycounter[]{page}\glsnumberformat{14\delimR 17}\delimN - \setentrycounter[]{page}\glsnumberformat{31\delimR 34}}}\glsgroupskip + \setentrycounter[]{page}\glsnumberformat{31\delimR 34}\delimN + \setentrycounter[]{page}\glsnumberformat{36\delimN 37}}}\glsgroupskip \glsgroupheading{I}\relax \glsresetentrylist % \glossentry{iv}{\glossaryentrynumbers{\relax \setentrycounter[]{page}\glsnumberformat{13\delimR 18}\delimN @@ -31,10 +35,12 @@ \setentrycounter[]{page}\glsnumberformat{12}}}\glsgroupskip \glsgroupheading{O}\relax \glsresetentrylist % \glossentry{ofb}{\glossaryentrynumbers{\relax + \setentrycounter[]{page}\glsnumberformat{1}\delimN \setentrycounter[]{page}\glsnumberformat{10}\delimN \setentrycounter[]{page}\glsnumberformat{14}\delimN \setentrycounter[]{page}\glsnumberformat{17\delimN 18}\delimN - \setentrycounter[]{page}\glsnumberformat{31\delimR 34}}}\glsgroupskip + \setentrycounter[]{page}\glsnumberformat{31\delimR 34}\delimN + \setentrycounter[]{page}\glsnumberformat{36\delimN 37}}}\glsgroupskip \glsgroupheading{R}\relax \glsresetentrylist % \glossentry{rcon}{\glossaryentrynumbers{\relax \setentrycounter[]{page}\glsnumberformat{28}}}\glsgroupskip diff --git a/Documentation/Rapport/Main.glg b/Documentation/Rapport/Main.glg index fe2969d..513a402 100644 --- a/Documentation/Rapport/Main.glg +++ b/Documentation/Rapport/Main.glg @@ -1,7 +1,7 @@ This is makeindex, version 2.16 [TeX Live 2022] (kpathsea + Thai support). Scanning style file ./Main.ist.............................done (29 attributes redefined, 0 ignored). -Scanning input file Main.glo....done (115 entries accepted, 0 rejected). -Sorting entries....done (858 comparisons). -Generating output file Main.gls....done (97 lines written, 0 warnings). +Scanning input file Main.glo....done (123 entries accepted, 0 rejected). +Sorting entries....done (860 comparisons). +Generating output file Main.gls....done (100 lines written, 0 warnings). Output written in Main.gls. Transcript written in Main.glg. diff --git a/Documentation/Rapport/Main.glo b/Documentation/Rapport/Main.glo index 7a46ce8..fc2133f 100644 --- a/Documentation/Rapport/Main.glo +++ b/Documentation/Rapport/Main.glo @@ -1,3 +1,4 @@ +\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{1} \glossaryentry{Binär?\glossentry{binär}|setentrycounter[]{page}"\glsnumberformat}{5} \glossaryentry{Binär?\glossentry{binär}|setentrycounter[]{page}"\glsnumberformat}{5} \glossaryentry{Binär?\glossentry{binär}|setentrycounter[]{page}"\glsnumberformat}{5} @@ -28,88 +29,95 @@ \glossaryentry{Caesarchiffer?\glossentry{caesar}|setentrycounter[]{page}"\glsnumberformat}{11} \glossaryentry{Caesarchiffer?\glossentry{caesar}|setentrycounter[]{page}"\glsnumberformat}{11} \glossaryentry{Caesarchiffer?\glossentry{caesar}|setentrycounter[]{page}"\glsnumberformat}{11} -\glossaryentry{Caesarchiffer?\glossentry{caesar}|setentrycounter[]{page}"\glsnumberformat}{12} -\glossaryentry{Polyalphabetic substitutionsskiffer?\glossentry{polyalphabetic-substitutionsskiffer}|setentrycounter[]{page}"\glsnumberformat}{13} -\glossaryentry{Polyalphabetic substitutionsskiffer?\glossentry{polyalphabetic-substitutionsskiffer}|setentrycounter[]{page}"\glsnumberformat}{13} -\glossaryentry{Enigma?\glossentry{enigma}|setentrycounter[]{page}"\glsnumberformat}{13} -\glossaryentry{Enigma?\glossentry{enigma}|setentrycounter[]{page}"\glsnumberformat}{13} -\glossaryentry{Substitutionsskiffer?\glossentry{substitutionsskiffer}|setentrycounter[]{page}"\glsnumberformat}{13} -\glossaryentry{Enigma?\glossentry{enigma}|setentrycounter[]{page}"\glsnumberformat}{13} -\glossaryentry{HTTP?\glossentry{http}|setentrycounter[]{page}"\glsnumberformat}{13} -\glossaryentry{SSH?\glossentry{ssh}|setentrycounter[]{page}"\glsnumberformat}{13} -\glossaryentry{RSA?\glossentry{rsa}|setentrycounter[]{page}"\glsnumberformat}{14} -\glossaryentry{Strömskiffer?\glossentry{streamcipher}|setentrycounter[]{page}"\glsnumberformat}{14} -\glossaryentry{Hashfunktion?\glossentry{hashfunktion}|setentrycounter[]{page}"\glsnumberformat}{14} -\glossaryentry{Pseudoslump?\glossentry{pseudoslump}|setentrycounter[]{page}"\glsnumberformat}{14} -\glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{15} -\glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{15} +\glossaryentry{Caesarchiffer?\glossentry{caesar}|setentrycounter[]{page}"\glsnumberformat}{13} +\glossaryentry{Polyalphabetic substitutionsskiffer?\glossentry{polyalphabetic-substitutionsskiffer}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{Polyalphabetic substitutionsskiffer?\glossentry{polyalphabetic-substitutionsskiffer}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{Enigma?\glossentry{enigma}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{Enigma?\glossentry{enigma}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{Substitutionsskiffer?\glossentry{substitutionsskiffer}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{Enigma?\glossentry{enigma}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{HTTP?\glossentry{http}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{SSH?\glossentry{ssh}|setentrycounter[]{page}"\glsnumberformat}{14} +\glossaryentry{RSA?\glossentry{rsa}|setentrycounter[]{page}"\glsnumberformat}{15} +\glossaryentry{Strömskiffer?\glossentry{streamcipher}|setentrycounter[]{page}"\glsnumberformat}{15} +\glossaryentry{Hashfunktion?\glossentry{hashfunktion}|setentrycounter[]{page}"\glsnumberformat}{15} +\glossaryentry{Pseudoslump?\glossentry{pseudoslump}|setentrycounter[]{page}"\glsnumberformat}{15} +\glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{16} \glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{16} \glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{17} -\glossaryentry{Nyckelström?\glossentry{keystream}|setentrycounter[]{page}"\glsnumberformat}{18} -\glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{18} \glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{18} \glossaryentry{Nyckelström?\glossentry{keystream}|setentrycounter[]{page}"\glsnumberformat}{19} -\glossaryentry{RSA?\glossentry{rsa}|setentrycounter[]{page}"\glsnumberformat}{19} -\glossaryentry{Hexadecimal?\glossentry{hexadecimal}|setentrycounter[]{page}"\glsnumberformat}{21} -\glossaryentry{SP-network?\glossentry{SP-network}|setentrycounter[]{page}"\glsnumberformat}{21} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{21} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{21} -\glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{22} +\glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{19} +\glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{19} +\glossaryentry{Nyckelström?\glossentry{keystream}|setentrycounter[]{page}"\glsnumberformat}{20} +\glossaryentry{RSA?\glossentry{rsa}|setentrycounter[]{page}"\glsnumberformat}{20} +\glossaryentry{Hexadecimal?\glossentry{hexadecimal}|setentrycounter[]{page}"\glsnumberformat}{22} +\glossaryentry{SP-network?\glossentry{SP-network}|setentrycounter[]{page}"\glsnumberformat}{22} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{22} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{22} \glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{23} -\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{23} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{24} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{24} +\glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{24} +\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{24} \glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{25} \glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{25} \glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{26} -\glossaryentry{Matrismultiplikation?\glossentry{matrismultiplikation}|setentrycounter[]{page}"\glsnumberformat}{26} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{27} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{27} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{26} \glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{27} +\glossaryentry{Matrismultiplikation?\glossentry{matrismultiplikation}|setentrycounter[]{page}"\glsnumberformat}{27} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{28} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{28} \glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{28} -\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{28} -\glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{28} -\glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{28} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{29} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{29} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{29} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{29} \glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{29} +\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{29} \glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{29} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{29} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{29} +\glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{29} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{30} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{30} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{30} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{30} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{30} \glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{30} -\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{31} -\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{31} -\glossaryentry{VSCode?\glossentry{vscode}|setentrycounter[]{page}"\glsnumberformat}{31} -\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{31} -\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{31} -\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{31} -\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{31} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{31} -\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{31} -\glossaryentry{Windows 11?\glossentry{win11}|setentrycounter[]{page}"\glsnumberformat}{31} -\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{31} -\glossaryentry{CPU klockhastighet?\glossentry{cpuh}|setentrycounter[]{page}"\glsnumberformat}{31} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{30} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{30} +\glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{31} +\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{32} +\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{32} +\glossaryentry{VSCode?\glossentry{vscode}|setentrycounter[]{page}"\glsnumberformat}{32} +\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{32} +\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{32} +\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{32} +\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{32} \glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{32} -\glossaryentry{PPM?\glossentry{ppm}|setentrycounter[]{page}"\glsnumberformat}{32} -\glossaryentry{PPM?\glossentry{ppm}|setentrycounter[]{page}"\glsnumberformat}{32} -\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{33} +\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{32} +\glossaryentry{Windows 11?\glossentry{win11}|setentrycounter[]{page}"\glsnumberformat}{32} +\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{32} +\glossaryentry{CPU klockhastighet?\glossentry{cpuh}|setentrycounter[]{page}"\glsnumberformat}{32} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{33} \glossaryentry{PPM?\glossentry{ppm}|setentrycounter[]{page}"\glsnumberformat}{33} -\glossaryentry{GIMP?\glossentry{gimp}|setentrycounter[]{page}"\glsnumberformat}{33} \glossaryentry{PPM?\glossentry{ppm}|setentrycounter[]{page}"\glsnumberformat}{33} -\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{33} -\glossaryentry{GIMP?\glossentry{gimp}|setentrycounter[]{page}"\glsnumberformat}{33} -\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{33} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{33} -\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{35} -\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{35} +\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{34} +\glossaryentry{PPM?\glossentry{ppm}|setentrycounter[]{page}"\glsnumberformat}{34} +\glossaryentry{GIMP?\glossentry{gimp}|setentrycounter[]{page}"\glsnumberformat}{34} +\glossaryentry{PPM?\glossentry{ppm}|setentrycounter[]{page}"\glsnumberformat}{34} +\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{34} +\glossaryentry{GIMP?\glossentry{gimp}|setentrycounter[]{page}"\glsnumberformat}{34} +\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{34} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{34} +\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{Bit?\glossentry{bit}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{Byte?\glossentry{byte}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{XOR?\glossentry{xor}|setentrycounter[]{page}"\glsnumberformat}{36} +\glossaryentry{CPU klockhastighet?\glossentry{cpuh}|setentrycounter[]{page}"\glsnumberformat}{37} +\glossaryentry{CPU klockhastighet?\glossentry{cpuh}|setentrycounter[]{page}"\glsnumberformat}{38} +\glossaryentry{Python?\glossentry{python}|setentrycounter[]{page}"\glsnumberformat}{38} diff --git a/Documentation/Rapport/Main.gls b/Documentation/Rapport/Main.gls index fac2b37..efca101 100644 --- a/Documentation/Rapport/Main.gls +++ b/Documentation/Rapport/Main.gls @@ -25,7 +25,8 @@ \setentrycounter[]{page}\glsnumberformat{7}\delimN \setentrycounter[]{page}\glsnumberformat{10\delimN 11}}}% \glossentry{cpuh}{\glossaryentrynumbers{\relax - \setentrycounter[]{page}\glsnumberformat{30}}}\glsgroupskip + \setentrycounter[]{page}\glsnumberformat{30}\delimN + \setentrycounter[]{page}\glsnumberformat{35\delimN 36}}}\glsgroupskip \glsgroupheading{E}\relax \glsresetentrylist % \glossentry{enigma}{\glossaryentrynumbers{\relax \setentrycounter[]{page}\glsnumberformat{12}}}\glsgroupskip @@ -65,8 +66,10 @@ \setentrycounter[]{page}\glsnumberformat{6\delimN 7}\delimN \setentrycounter[]{page}\glsnumberformat{13}}}% \glossentry{python}{\glossaryentrynumbers{\relax + \setentrycounter[]{page}\glsnumberformat{1}\delimN \setentrycounter[]{page}\glsnumberformat{21}\delimN - \setentrycounter[]{page}\glsnumberformat{30\delimR 32}}}\glsgroupskip + \setentrycounter[]{page}\glsnumberformat{30\delimR 32}\delimN + \setentrycounter[]{page}\glsnumberformat{36}}}\glsgroupskip \glsgroupheading{R}\relax \glsresetentrylist % \glossentry{rsa}{\glossaryentrynumbers{\relax \setentrycounter[]{page}\glsnumberformat{13}\delimN diff --git a/Documentation/Rapport/Main.ist b/Documentation/Rapport/Main.ist index efd7a9b..4e0f035 100644 --- a/Documentation/Rapport/Main.ist +++ b/Documentation/Rapport/Main.ist @@ -1,5 +1,5 @@ % makeindex style file created by the glossaries package -% for document 'Main' on 2023-2-8 +% for document 'Main' on 2023-2-27 actual '?' encap '|' level '!' diff --git a/Documentation/Rapport/Main.pdf b/Documentation/Rapport/Main.pdf index 37bfe43..ef83834 100644 Binary files a/Documentation/Rapport/Main.pdf and b/Documentation/Rapport/Main.pdf differ diff --git a/Documentation/Rapport/Main.synctex.gz b/Documentation/Rapport/Main.synctex.gz index 5bdc4a7..0ec8c88 100644 Binary files a/Documentation/Rapport/Main.synctex.gz and b/Documentation/Rapport/Main.synctex.gz differ diff --git a/Documentation/Rapport/Main.tex b/Documentation/Rapport/Main.tex index 3d063a8..d140391 100644 --- a/Documentation/Rapport/Main.tex +++ b/Documentation/Rapport/Main.tex @@ -128,8 +128,8 @@ \newglossaryentry{rsa} { name={RSA}, - description={Rivest-Shamir-Adleman (RSA) är en av de mest välkända krypteringsalgoritmerna - och var en av de första algorithmerna som byggde på en asymetrisk kryptering. + description={Rivest-Shamir-Adleman (RSA) är en av det mest välkända krypteringsalgoritmerna + och var en av det första algorithmerna som byggde på en asymetrisk kryptering. RSA bygger på multiplikation av stora primatal där primtalen är nycklarna.\cite{rsa-ref}} } @@ -158,8 +158,8 @@ \newglossaryentry{python} { name={Python}, - description={Python är ett högnivå programmerings språk byggt på programmerings språket C. - De är skapat av Guido van Rossum och släpptes i Februari 1991.\cite{python}} + description={Python är ett högnivå programmerings språk som är skrivet i programmerings språket C. + Det är skapat av Guido van Rossum och släpptes i Februari 1991.\cite{python}} } \newglossaryentry{keystream} @@ -190,7 +190,7 @@ name={Strömskiffer}, description={Strömskiffer, ett symetriskt nyckel skiffer där man använder en \gls{pseudoslump}mässig skiffer ström (\gls{keystream}) som sedan en \gls{bit} i taget - kombineras med de som ska krypteras. Den kombinerande operationen som används i + kombineras med det som ska krypteras. Den kombinerande operationen som används i strömskiffer är ofta en \gls{xor}-operation.\cite{streamcipher-ref}} } @@ -220,7 +220,7 @@ Längden är samma för alla hastexter som använder samma funktion medans innehållet förändras så fort något över huvud taget ändras i datan som funktionen appliceras på. Användningsområdet för dessa funktioner är bland annat när man vill kunna verifiera - medelanden eller information och försäkra sig om att ingen ändrat på medellandet efter att de skickats. + medelanden eller information och försäkra sig om att ingen ändrat på medellandet efter att det skickats. Detta kan man då göra för att man vet att om man skör informationen genom samma hashfunktion borde resultatet vara identisk ifall informationen är oförändrad.\cite{hashfunktion-ref}} } @@ -229,7 +229,7 @@ { name={Polyalphabetic substitutionsskiffer}, description={polyalphabetic substitutionsskiffer bygger på att man använder flera olika \gls{substitutionsskiffer} för att - på så sätt undvika en ut av de största svagheterna med \gls{substitutionsskiffer}. Detta då att dom lätt går att + på så sätt undvika en ut av det största svagheterna med \gls{substitutionsskiffer}. Detta då att dom lätt går att knäcka genom en \gls{frekvensanalys} då vissa bokstäver dyker upp mer frekvent i språket än andra. För att lösa detta så använder polyalphabetiska skiffer flera olika substitutionsskiffer som man byter mellan med en viss frekvens för att eliminera \gls{frekvensanalys}ens effektivitet.\cite{polyalphabetic-ref}} @@ -239,7 +239,7 @@ { name={Frekvensanalys}, description={Frekvensanalys inom kryptografi är en metod för att knäcka ett \gls{substitutionsskiffer} genom att - analysera frekvensen av bokstäver och utnyttja de faktum att en del bokstäver framkommer mer frekvent än andra + analysera frekvensen av bokstäver och utnyttja det faktum att en del bokstäver framkommer mer frekvent än andra i språket. På detta viset kan man då sedan lista ut vilka bokstäver som är vilka i det krypterade medellandet.\cite{frekvensanalys-ref}} } @@ -290,9 +290,9 @@ name={Enigma}, description={Enigma var ett krypterings verktyg som användes under andra världskriget av tyska militären för att kryptera medelanden. Maskinen bestod av en elektromekanisk rotordisk som under tiden - medellandet skrivs in för kryptering även ändrar de elektriska kopplingarna mellan vilka bokstäver som blir vad. + medellandet skrivs in för kryptering även ändrar det elektriska kopplingarna mellan vilka bokstäver som blir vad. Detta är en av sakerna som gjorde enigma väldigt svår att knäcka samt en av anledningarna till att - liknande maskiner användes under stora delar av de tidiga 1900-talet.\cite{enigma-ref}} + liknande maskiner användes under stora delar av det tidiga 1900-talet.\cite{enigma-ref}} } \newglossaryentry{SP-network} { @@ -306,14 +306,14 @@ \newglossaryentry{ssh} { name={SSH}, - description={SSH eller som de även är kallat Secure Shell är ett protokoll som används för säker kommunikation + description={SSH eller som det även är kallat Secure Shell är ett protokoll som används för säker kommunikation över ett nätverk. SSH är ett exempel på ett nätverksprotokoll och används bland annat för att kryptera medelanden som skickas mellan två enheter.\cite{ssh}} } \newglossaryentry{http} { name={HTTP}, - description={HTTP (The Hypertext Transfer Protocol) är de protokoll som används när man besöker en webbsida. + description={HTTP (Hypertext Transfer Protocol) är det protokoll som används när man besöker en webbsida. Detta protokoll har används sedan 1990-talet och används fortfarande till stora delar.\cite{http}} } \newglossaryentry{hexadecimal} @@ -332,7 +332,7 @@ \newglossaryentry{gimp} { name={GIMP}, - description={GIMP är ett open source bild redigerings program som är tillgängligt för de flesta operativsystem.\cite{gimp}} + description={GIMP är ett open source bild redigerings program som är tillgängligt för det flesta operativsystem.\cite{gimp}} } \newglossaryentry{win11} { @@ -343,7 +343,7 @@ \newglossaryentry{operativsystem} { name={Operativsystem}, - description={Operativsystem är de program på en dator som fungerar som gränssnitt mellan användaren och datorns maskinvara. Detta + description={Operativsystem är det program på en dator som fungerar som gränssnitt mellan användaren och datorns maskinvara. Detta innebär att operativsystemet hanterar saker som inmatning från användaren till att tillhandahålla ett gränssnitt för olika program så att dom kan genomföra sina uppgifter.\cite{opsystem}} } @@ -438,14 +438,12 @@ % Abstract \chapter*{Abstract} -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut lacinia ex eget sagittis congue. -Nullam cursus egestas dolor, suscipit gravida magna ultrices sit amet. Nullam placerat dui eu -arcu pharetra, sit amet tempor dolor convallis. Aenean sodales condimentum turpis, commodo maximus -augue. Aenean vel nibh dui. Pellentesque ex libero, lacinia nec mauris vel, convallis consectetur -felis. Maecenas ut nibh sed magna maximus imperdiet at id purus. In vel consequat metus. Donec non -tincidunt nunc. Sed pulvinar odio ut sapien vestibulum, quis mollis arcu tempor. Maecenas ut sem leo. -Sed leo risus, mollis eu ex vitae, feugiat consequat metus. Aenean interdum volutpat urna, nec -tempor mi accumsan quis. Morbi blandit maximus urna non aliquet aes. +This paper is a study of the \acrlong{aes} with the purpose to investigate how the key length and running mode affects the encryption speed of the algorithm +as well as how the the different running modes affect the security of the algorithm. The study was conducted by implementing \acrshort{aes} and the running modes \acrshort{ecb}, \acrshort{cbc} and \acrshort{ofb} in the programming language \gls{python} and +then preforming a series of tests on it. These tests consisted of measuring the encryption speed of the algorithm with different key lengths and running modes as well as the encryption +of a picture file using each of the running modes. The result of the study showed that the encryption speed of the algorithm increased as the key length increased, while a noticeable speed difference +between the different running modes not could be assessed from the result of the study. The result of the study also showed that the running mode \acrshort{ecb} was the least secure of the three +running modes tested. % New page borders for bulk of the report \newgeometry{top=2.5cm, bottom=2cm, left = 2cm, right = 2cm} % 2.25cm is the height of the header (is a checky solution that might need to bee removed if more headings are added) diff --git a/Documentation/Rapport/Teori.tex b/Documentation/Rapport/Teori.tex index 167e91a..13f5380 100644 --- a/Documentation/Rapport/Teori.tex +++ b/Documentation/Rapport/Teori.tex @@ -7,7 +7,7 @@ \section{Kryptering} skiffertext, vilket då är en krypterad version av den ursprungliga texten.\footfullcite{kryptering} För att den menade mottagaren ska kunna läsa skiffertexten sedan så behöver hen ha en nyckel samt köra samma krypteringsalgoritm -i dekrypterings läge. Bland de vanligaste typerna av krypteringsalgoritmer finns \nameref{sec:symmetric-asymmetric-encryption}, +i dekrypterings läge. Bland det vanligaste typerna av krypteringsalgoritmer finns \nameref{sec:symmetric-asymmetric-encryption}, vilket bland annat innefattar algoritmer som \acrshort{aes} och \gls{rsa}.\footcite{kryptering} \section{Blockskiffer} @@ -16,9 +16,9 @@ \section{Blockskiffer} blockskiffer används bland annat som en av grundkomponenterna i kryptografiska protokoll som \acrfull{tls} och \acrfull{ssl} som används för att kryptera data som skickas över internet bland annat.\footfullcite{blockskiffer-ref} -En ut av de största problemen med Blockskiffer är dock att oavsett hur säkra dom är så passar det bara att använda +En ut av det största problemen med Blockskiffer är dock att oavsett hur säkra dom är så passar det bara att använda för kryptering av enskilda block med en nyckel, vilket skiljer sig från något som ett \gls{streamcipher}. -På grund av detta har en mängd olika körlägen utvecklats för att på så sätt göra de möjlig att utnyttja +På grund av detta har en mängd olika körlägen utvecklats för att på så sätt göra det möjlig att utnyttja blockskiffer för att kryptera större mängder data med en nyckel.\footcite{blockskiffer-ref} Blockskiffer används däremot inte bara för kryptering utan kan även användas i olika typer av \gls{hashfunktion}er @@ -28,7 +28,7 @@ \section{Blockskiffer} \subsection{Körlägen} Körlägen inom kryptografin kan man se som algoritmer som appliceras i användningen av blockskiffer eftersom dessa endast är användbara för säker kryptering av ett litet block med bestämd längd. -Körlägena gör de då möjligt att istället kunna använda blockskiffer på större data mängder. +Körlägena gör det då möjligt att istället kunna använda blockskiffer på större data mängder. Detta löser körlägen på olika sätt beroende på hur man vill använda blockskiffer algoritmen samt hur mycket man ör villig att kompromissa med säkerheten i förhållande till hastighet.\footfullcite{dworkin2001sp} @@ -86,14 +86,14 @@ \subsubsection{ECB} Det här faktumet är även varför \acrshort{ecb} inte är ett säkert körläge och därför inte används näst intill aldrig i praktiken.\footcite{dworkin2001sp} -\acrshort{ecb} har däremot även sina fördelar då de bland annat kan parallelliseras -både när de gäller krypteringen och dekrypteringen. Detta samt att \acrshort{ecb} -även gör de möjligt att slumpmässigt dekryptera enskilda block av en skiffertext +\acrshort{ecb} har däremot även sina fördelar då det bland annat kan parallelliseras +både när det gäller krypteringen och dekrypteringen. Detta samt att \acrshort{ecb} +även gör det möjligt att slumpmässigt dekryptera enskilda block av en skiffertext utan att man behöver dekryptera hela texten.\footcite{dworkin2001sp} \subsubsection{CBC} \label{sec:cbc} -\acrlong{cbc} är ett av de mest vanligen använda körlägena för många blockchiffer. +\acrlong{cbc} är ett av det mest vanligen använda körlägena för många blockchiffer. Till skillnad från \acrshort{ecb} så förhindrar \acrshort{cbc} att två block med samma innehåll kan ge samma krypterade block. Detta gör \acrshort{cbc} genom att lägga till ett extra steg utöver vad som finns i \acrshort{ecb}. Steget @@ -112,8 +112,8 @@ \subsubsection{CBC} Där $S_i$ är det krypterade blocket(skiffertexten), $B_i$ är det blocket som ska krypteras, $K_n$ är blockchiffer algoritmen där $n$ står för nyckeln och $S_{i-1}$ är det krypterade blocket före det blocket som ska krypteras. \acrshort{iv} är en -\acrfull{iv} som används vid krypteringen av de första blocket då de inte finns -något föregående block att använda. $i$ står för index där de första blocket har +\acrfull{iv} som används vid krypteringen av det första blocket då det inte finns +något föregående block att använda. $i$ står för index där det första blocket har index värdet 1. Hela den här processen kan även ses i figur \ref{fig:cbc-mode-enc}. \begin{figure}[H] @@ -122,7 +122,7 @@ \subsubsection{CBC} \label{fig:cbc-mode-enc} \end{figure} -När de gäller dekrypterings processen för \acrshort{cbc} så bär den precis som för +När det gäller dekrypterings processen för \acrshort{cbc} så bär den precis som för \acrshort{ecb} stora likheter med krypterings processen. Det två skillnaderna som finns är att blockchiffert körs i dekrypterings läge istället för krypterings läge. Samt att för varje block så genomförs en \gls{xor}-operation mellan det dekrypterade @@ -152,8 +152,8 @@ \subsubsection{CBC} blocket.\footcite{dworkin2001sp} \acrshort{cbc} är dock inte prefekt och har i sig också några nackdelar. Där ibland -exempelvis de faktum att en incorrect \acrshort{iv} leder till att de första blocket -inte kan dekrypteras korrekt, detta påverkar dock inte de resterande blocken. På grund +exempelvis det faktum att en incorrect \acrshort{iv} leder till att det första blocket +inte kan dekrypteras korrekt, detta påverkar dock inte det resterande blocken. På grund av det så kan man exempelvis lösa problemet genom att första blocket bara innehåller någon typ av fyllnad, vilket då gör dekrypteringen möjlig utan tillgång till \acrshort{iv}.\footcite{dworkin2001sp} @@ -222,10 +222,10 @@ \section{Symetrisk \& Asymmetrisk Kryptering} asymetrisk kryptering bygger på att man använder olika nycklar för kryptering och dekrypterings processerna.\footfullcite{symencrypt} -De symetriska krypterings algoritmernas huvudsakliga nackdel ligger i de faktum att +De symetriska krypterings algoritmernas huvudsakliga nackdel ligger i det faktum att de krävs en delad känd nyckel mellan båda parter. Detta är något som Asymetriska krypterings algorithmer inte behöver, vilket har lett till att man ofta använder -asymetriska krypterings algoritmer för att sköta nyckelutbytet för de symetriska +asymetriska krypterings algoritmer för att sköta nyckelutbytet för det symetriska krypterings algoritmerna. Anledningen till detta är att det symetriska krypterings algoritmerna ofta är bättre för större data mängder då dom bland annat behöver mycket kortare nyckellängder.\footcite{symencrypt} @@ -239,18 +239,18 @@ \section{AES} Som nämnts tidigare i \nameref{sec:aes-uppkomst} bygger \acrshort{aes} standarden på en variant av Rijndael \nameref{sec:blockskiffer} algoritmen skapad av Vincent Rijmen och Joan Daemen. \acrshort{aes} är en symetrisk \nameref{sec:blockskiffer} krypterings algoritm som utformades för att ersätta -\acrshort{des} som då var den dominerande krypterings algoritmen. \acrshort{aes} är en av de mest använda krypterings algoritmerna idag +\acrshort{des} som då var den dominerande krypterings algoritmen. \acrshort{aes} är en av det mest använda krypterings algoritmerna idag och används bland annat i säkerhetsprotokoll så som \acrfull{wpa2}\footfullcite{wpa2_ref}. \acrshort{aes} går att dela upp i tre olika varianter som alla är baserade på samma grundläggande struktur. Dessa varianter är \nameref{sec:aes-128bit}, \nameref{sec:aes-192bit} och \nameref{sec:aes-256bit} som huvudsakligen skiljer sig från varandra när det kommer till längden av krypteringsnyckeln samt antalet rundor som genomförs i algoritmens krypterings process.\footfullcite{aes_wiki} Även själva algoritmen kan delas upp i ett antal olika delar som alla har olika syften. Dessa delar är \nameref{sec:aes-addroundkey}, \nameref{sec:aes-subbytes}, \nameref{sec:aes-shiftrows}, -\nameref{sec:aes-mixcolumns} och \nameref{sec:aes-key-expansion} som alla kommer att förklaras mer detaljerat i de följande sektioner. \nameref{sec:aes-key-expansion} delen kan även +\nameref{sec:aes-mixcolumns} och \nameref{sec:aes-key-expansion} som alla kommer att förklaras mer detaljerat i det följande sektioner. \nameref{sec:aes-key-expansion} delen kan även delas upp ytterligare i tre olika varianter som är \nameref{sec:aes-key-expansion-128bit}, \nameref{sec:aes-key-expansion-192bit} och \nameref{sec:aes-key-expansion-256bit} beroende -på vilken av de tre \acrshort{aes} varianterna som används.\footfullcite{daemen1999aes} +på vilken av det tre \acrshort{aes} varianterna som används.\footfullcite{daemen1999aes} Utöver detta så bygger \nameref{sec:aes-key-expansion} på tre operationer vilka är \nameref{sec:aes-subword}, \nameref{sec:aes-rotword} och -\nameref{sec:aes-rcon} som också kommer att förklaras mer detaljerat i de följande sektioner.\footcite{aes_wiki} För att förstå vissa av dessa delar +\nameref{sec:aes-rcon} som också kommer att förklaras mer detaljerat i det följande sektioner.\footcite{aes_wiki} För att förstå vissa av dessa delar så kommer det däremot krävas en förklaring av både \nameref{sec:aes-sbox} och \nameref{sec:finite-fields} som kommer att förklaras först.\footcite{daemen1999aes} \subsection{Finite Fields} @@ -280,7 +280,7 @@ \subsection{AES S-Box} S-boxen består av 256 olika värden som alla är unika och som alla är mellan 0 och 255. Värdena i S-boxen är ordnade i en lista och värdenas position i listan används som index för att kunna hitta ett värde i S-boxen. När S-boxen används för att byta ut -ett värde så används det värde som ska bytas ut som index värdet för att kunna hitta +ett värde så används det värde som ska bytas ut som index värde för att kunna hitta rätt värde i S-boxen.\footcite{sbox_wiki} \acrshort{aes} S-box genereras med hjälp av \acrshort{aes} Finite Field {$GF(2^8)$}. @@ -310,7 +310,7 @@ \subsection{Struktur} Beroende på vilken nyckel som används krävs olika antal rundor. En 128bit nyckel kommer att kräva 10 rundor, en 192bit nyckel kommer att kräva 12 rundor och en 256bit nyckel kommer att kräva 14 rundor. Detta brukar man se som det tre olika krypterings lägena \acrshort{aes}-128bit \acrshort{aes}-192bit och \acrshort{aes}-256bit som -då är de tre olika nyckel storlekarna som \acrshort{aes} stödjer.\footcite{daemen1999aes} +då är det tre olika nyckel storlekarna som \acrshort{aes} stödjer.\footcite{daemen1999aes} \acrshort{aes} algoritmen har en fixerad block storlek på 128bit vilket innebär att det alltid kommer att vara 16 \glspl{byte} som krypteras åt gången. Absolut först genomförs @@ -366,8 +366,8 @@ \subsection{Struktur} är uppbyggda. För \nameref{sec:aes-addroundkey} så är det på grund av \gls{xor}-operationens linjära egenskaper som innebär att den är sin egen invers. Detta eftersom ifall man tar och genomför \gls{xor}-operationen med samma nyckel två gånger så kommer man tillbaka till ursprungsvärdet. -När de gäller \nameref{sec:aes-subbytes} -så handlar de istället om att de helt enkelt är en substitution utifrån en \nameref{sec:aes-sbox}, vilket då betyder att de som krävs för att genomföra den motsatta operationen +När det gäller \nameref{sec:aes-subbytes} +så handlar det istället om att det helt enkelt är en substitution utifrån en \nameref{sec:aes-sbox}, vilket då betyder att det som krävs för att genomföra den motsatta operationen blir att använda den inversa \nameref{sec:aes-sbox}en.\footcite{daemen1999aes} Både krypterings och dekrypterings strukturen som nu beskrivits kan implementeras i exempelvis \gls{python} kod på som visas i figur \ref{fig:encryption-rounds-function} \& \ref{fig:decryption-rounds-function}. @@ -549,7 +549,7 @@ \subsection{Nyckel utökning} Själva utökningen av nyckeln genomförs genom att först dela upp den ursprungliga nyckeln i 4 så kallade words.\footcite{daemen1999aes} Varje word består av 4 \gls{byte} och är därmed 32 \gls{bit}s långa. -Där efter så genereras varje nytt word utifrån de tidigare worden. Det fyra nästkommande worden genereras genom att ta det sista wordet i den tidigare nyckeln och genom föra en serie av operationer +Där efter så genereras varje nytt word utifrån det tidigare worden. Det fyra nästkommande worden genereras genom att ta det sista wordet i den tidigare nyckeln och genom föra en serie av operationer på detta word. Först så genomförs en \hyperref[sec:aes-rotword]{RotWord} operation och sedan en \hyperref[sec:aes-subword]{SubWord} operation samt slutligen en \hyperref[sec:aes-rcon]{Rcon} operation.\footcite{daemen1999aes} Därefter så genereras det första wordet i nästa nyckel genom en \gls{xor}-operation mellan det första wordet i den tidigare nyckeln och det resultat som genererades i föregående steg. diff --git a/dist/AES-Python-1.3.1.tar.gz b/dist/AES-Python-1.3.1.tar.gz deleted file mode 100644 index 2738721..0000000 Binary files a/dist/AES-Python-1.3.1.tar.gz and /dev/null differ diff --git a/dist/AES-Python-1.3.2.tar.gz b/dist/AES-Python-1.3.2.tar.gz new file mode 100644 index 0000000..c010385 Binary files /dev/null and b/dist/AES-Python-1.3.2.tar.gz differ diff --git a/dist/AES_Python-1.3.1-py3-none-any.whl b/dist/AES_Python-1.3.2-py3-none-any.whl similarity index 58% rename from dist/AES_Python-1.3.1-py3-none-any.whl rename to dist/AES_Python-1.3.2-py3-none-any.whl index 2e4b4dd..df24fba 100644 Binary files a/dist/AES_Python-1.3.1-py3-none-any.whl and b/dist/AES_Python-1.3.2-py3-none-any.whl differ diff --git a/src/AES_Python.egg-info/PKG-INFO b/src/AES_Python.egg-info/PKG-INFO index a77a8f6..6c199fd 100644 --- a/src/AES_Python.egg-info/PKG-INFO +++ b/src/AES_Python.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: AES-Python -Version: 1.3.1 +Version: 1.3.2 Summary: AES (Advanced Encryption Standard) implementation in Python-3 Author-email: Gabriel Lindeblad Project-URL: Homepage, https://github.com/Glindeb/AES-Python @@ -34,7 +34,7 @@ License-File: LICENSE About --- -This project is a way for me to structure and work on my gymnasium project where i implement the AES encryption algorithm in python to the evaluate it and write a report about it. This project is written in pure python and do not use any external libraries for the core file "AES.py". The project and the code is not intended for any use outside of educational and no security can be guaranteed for any encryption and/or decryption that uses this implementation. Do also not that this is not going to be the most efficient implementation due to my limited coding skills and knowledge, but i have tried to do my best to make it as efficient as possible so it´s not to slow to work with. +This project is a way for me to structure and work on my gymnasium project where i implement the AES encryption algorithm in python to the evaluate it and write a report about it. This project is written in pure python and do not use any external libraries for the core file "AES.py" (from version 1.3.0 numpy is in use). The project and the code is not intended for any use outside of educational and no security can be guaranteed for any encryption and/or decryption that uses this implementation. Do also not that this is not going to be the most efficient implementation due to my limited coding skills and knowledge, but i have tried to do my best to make it as efficient as possible so it´s not to slow to work with. This implementation of AES (Advanced Encryption Algorithm) algorithm is implemented with a number of different running modes such as ECB and CBC with more coming soon (see list below for updated information)... diff --git a/src/PyAES/__init__.py b/src/PyAES/__init__.py index 37315ac..2fa1ac7 100644 --- a/src/PyAES/__init__.py +++ b/src/PyAES/__init__.py @@ -19,10 +19,10 @@ __copyright__ = 'Copyright 2022, Gabriel Lindeblad' __credits__ = [""] __license__ = 'MIT' -__version__ = '1.3.1' +__version__ = '1.3.2' __maintainer__ = 'Gabriel Lindeblad' __email__ = 'Gabriel.lindeblad@icloud.com' __status__ = 'Development' -__date__ = '2022-07-23' +__date__ = '2023-02-27' __description__ = 'AES (Advanced Encryption Standard) implementation in Python-3' __platforms__ = 'windows, linux, macos'