• No results found

ECB och CTR (Dekryptering)

6 Diskussion och slutsatser

Kapitlet ger en sammanfattande beskrivning av studiens resultat. Vidare beskrivs studiens implikationer och begränsningar. Dessutom beskrivs studiens slutsatser och rekommendationer. Kapitlet avslutas med förslag på vidare forskning.

6.1

Resultat

Resultat för analysen av vilka för och nackdelar det finns hos AES- krypteringsmetoderna ECB och CTR vid parallellisering

Analysen gjordes på material som framtagits i förundersökningen. De faktorer som analyserades är skillnaderna i krypteringsalgoritmen mellan ECB och CTR och de för och nackdelar mellan AES-krypteringsmetoderna som är en följd av dessa skillnader i algoritmen.

Sammanfattningsvis visar analysen att CTR är betydligt säkrare än ECB men också mer komplicerad att implementera, vilket kan leda till integritetsrisker vid felaktiga implementationer. ECB går att använda vid slumpmässig åtkomst av data i till exempel en databas, vilket inte är möjligt med CTR.

Resultat för analysen av hur beräkningshastigheten skiljer sig mellan ECB och CTR vid tillämpning av GPGU-ramverket Cuda

Analysen för experimentet gjordes på jämförelser av data framtaget genom mätningar i experimentet.

I analysen gjordes jämförelser av överföringshastigheter från CPU-minnet till GPU- minnet, krypteringshastighet, dekrypteringshastighet och överförhastigheter från GPU-minnet till CPU-minnet mellan ECB och CTR. Resultatet av analysen visar att beräkningshastigheten vid kryptering och dekryptering är betydligt högre med ECB- metoden jämfört med CTR-metoden. Vidare visar analysen att skillnader i

överföringshastigheter mellan minnen för ECB och CTR inte är stora och att

dataöverföring mellan minnen har stor betydelse vid jämförelser av totala kryptering och dekrypteringshastigheter. Analysen visar också att den totala kryptering och dekrypteringshastigheten för ECB är snabbare än CTR.

6.2

Implikationer

Resultatet visar att skillnaderna mellan ECB och CTR har stor påverkan på både säkerheten och hastigheten av krypteringen. Vidare visare studien att

överföringshastigheten mellan minnen begränsar den totala kryptering och dekrypteringshastigheten avsevärt där CTR begränsas mer än ECB vid mindre filstorlekar.

Beräkningshastigheten på GPU för CTR är långsammare än för ECB, vilket sammanfattningsvis leder till att totala kryptering och dekrypteringshastigheten för ECB är snabbare än för CTR.

6.3

Begränsningar

En begränsning i studien är att vi inte skrivit all kod för algoritmerna själva, på grund av bristande tid och kunskap om AES-algoritmen, vilket gör att algoritmoptimering är svårt att verifiera.

En annan begränsning i studien är att grafikkortet som använts är så effektiv vid beräkningen att även filstorlekar upp mot 1 Gb ger mycket små beräkningstider. Detta är en begränsning då experimentmiljön inte gav möjlighet att testa AES-

krypteringsmetoderna på större filer, vilket skulle kunna ge tydligare resultat än de som tagits fram i studien.

6.4

Slutsatser och rekommendationer

Utifrån det analyserade materialet i förundersökningen dras slutsatsen att ECB är fördelaktigt vid kryptering av slumpmässig åtkomst av data som vid till exempel databaser då blocken inte behöver krypteras i ordning, däremot bör ECB undvikas om data som skall krypteras innehåller tydliga mönster. I övrigt är det tydligt att ECB inte heller bör användas vid kryptering av annan data med tydliga mönster som i till

exempel bilder eftersom likadana färger får samma krypterade text.

Vidare kan det konstateras att CTR är fördelaktigt vid övriga säkerhetskänsliga data då det anses som mycket säkrare än ECB. Den enda nackdelen är att CTR är mer avancerad och därför mycket mer komplicerad att implementera. Denna nackdel kan medföra oanade säkerhetsrisker, om algoritmen inte blir rätt implementerad. Utifrån analysen av experimentet drar vi slutsatsen att med ECB uppnås snabbare kryptering och dekrypteringshastigheter jämfört med CTR. Den totala kryptering och dekrypteringshastigheten är ungefär 1 Gb/s snabbare för ECB jämfört med CTR efter utplaningen (se figur 32 och 33).

Vid överföring av data är ECB snabbare vid dekryptering för både överföring av data från CPU-minnet till GPU-minnet och tvärt om, jämfört med överföring av data vid kryptering. CTR behåller däremot samma överföringshastigheter vid både kryptering och dekryptering. Detta beror på att algoritmerna för kryptering och dekryptering då CTR-metoden används är exakt samma algoritm men för ECB är algoritmen för kryptering och dekryptering olika [7]-[19].

Hastigheten planar ut vid mycket större filstorlekar för ECB jämfört med CTR (se figur 32 och 33). Dessa skillnader beror troligtvis på komplexitetskillnaderna mellan algoritmerna. Eftersom CTR är mycket mer komplex än ECB [20], vilket gör att CTR har större behov av trådar än ECB, fyller därför CTR maximala trådantalet på GPU snabbare än ECB. Detta leder till att parallella trådar kan läggas till vid behov för mycket större filstorlekar än med CTR-metoden.

6.5

Vidare forskning

En undersökning på hur hårdvaran påverkar överföringshastigheten mellan CPU- minnen och GPU-minnen skulle behövas, för att se hur mycket hårdvaran påverkar överföringshastigheten, då det är den som tar mest tid och inte själva krypteringen eller dekrypteringen.

En studie för att se hur relationen mellan CPU och GPU påverkar

krypteringshastigheterna genom att testa olika konfigurationer av hårdvara kan vara nödvändig. Detta skulle kunna ge en inblick i hur mycket CPU påverkar den total krypteringshastigheten för AES-kryptering.

För att se om det finns en gräns då GPGPU-implementering blir mer effektiv än CPU- implementering av AES-kryptering, skulle ytterligare forskning behövas. En hypotes vi har är att CPU-implementering är mer effektivt vid små filstorlekar, då

dataöverföring mellan CPU-minnet till GPU-minnet är det som tar längst tid vid kryptering med GPGPU-optimering.

Referenser

[1] Jonathan Kang, “Why haven’t CPU clock speeds increased in the last 5 years”, Quora, September 8 2015. Tillgänglig:

https://www.quora.com/Why-havent-CPU-clockspeeds-increased-in- the-last-5-years. [Hämtad: 9 december, 2019]

[2] M. Garland, S. Le Grand, J. Nickolls, J. Anderson, J. Hardwick, S. Morton, E. Phillips, Y. Zhang, V. Volkov, "Parallel Computing Experiences with CUDA", IEEE Micro, vol. 28, pp. 13-27, Juli 2008. [3] NVIDIA, “Cuda-zone”. Tillgänglig: https://developer.nvidia.com/cuda-

zone [Hämtad: 10 december, 2019]

[4] M. Rouse, “Advanced Encryption Standard (AES)”, November 2014. Tillgänglig: http://searchsecurity.techtarget.com/definition/Advanced- Encryption-Standard. [Hämtad: 30 augusti 2019]

[5] M. Dimitrov, M. Mantor, and H. Zhou, "Understanding Software Approaches for GPGPU Reliability," The 2nd workshop on General- Purpose Computation on Graphics Processing Units (GPGPU-2), 2009. [6] Wikipedia, ”Advanced Encryption Standard” Tillgänglig:

https://en.wikipedia.org/wiki/Advanced_Encryption_Standard. [Hämtad 18 oktober 2019]

[7] S. Almuhammadi, I. Al-Hejri, “A comparative analysis of AES common modes of operation”, IEEE 30th Canadian Conference on Electrical and

Computer Engineering (CCECE), 2017.

[8] R. Patel, B. Davidsson, ”Forskningsmetodikens grunder”, Studentlitteratur, Upplaga 4:8, 2011.

[9] I. M. Holme och B. K. Solvang, Metodelvag og metodebruk, TANO A.S. Oslo, vol. 3, 1986 (Transl.: in B. Nilsson, Ed., Studentlitteratur, 1997).

[10] Johannes Gilger & Paolo Margara, “engine-cuda”, github, 4 december 2012. Tillgänglig: https://github.com/heipei/engine-cuda. [Hämtad: 15 november 2019]

[11] Allen Lee, “Parallel AES algorithm using Cuda”, github, 30 oktober 2016. Tillgänglig: https://github.com/allenlee820202/Parallel-AES- Algorithm-using-CUDA. [Hämtad: 15 november 2019]

[12] Gary Chaw & Bain Syrowik, “GPU-accelerated AES encryption project”, github, 13 februari 2015. Tillgänglig:

[13] I. F. Elashry, O. S. F. Allah, A. M. Abbas, S. El-Rabaie, "A new diffusion mechanism for data encryption in the ECB mode",

International Conference on Computer Engineering & Systems, 2009.

[14] C. Huang, Y. Tu, H. Yeh, S. Liu, C. Chang, “Imagae Obervation on the Modified ECB Operations in Advanced Encryption Standard”,

International Conference on Information Society (i-Society 2011), 2011

[15] Q. Li, C. Zhong, K. Zhao, X. Mei, X. Chu, "Implementation and Analysis of AES Encryption on GPU", IEEE 14th International

Conference on High Performance Computing and Communication & 2012 IEEE 9th International Conference on Embedded Software and Systems, 2012.

[16] H. Lee, K. Lee, Y. Shin, “Implementation and performance analysis of AES-128 CBC algorithm in WSNs”, The 12th International Conference

on Advanced Communication Technology (ICACT), 2010

[17] J. Ma, X. Chen, R. Xu, J. Shi,"Implementation and Evaluation of Different Parallel Designs of AES Using CUDA", IEEE Second

International Conference on Data Science in Cyberspace (DSC), 2017.

[18] A. D. Biagio, A. Barenghi, G. Agosta, G. Pelosi, "Design of a parallel AES for graphics hardware using the CUDA framework", IEEE

International Symposium on Parallel & Distributed Processing, 2009.

[19] R. Ketata, L.Kriaa, L. A. Saidance, G. Chalhoub, “Detailed analysis of the AES CTR mode parallel execution using OpenMP”, International

Conference on Performance Evaluation and Modeling in Wired and Wireless Networks (PEMWN), 2016

[20] N. Tran, M. Lee, D. H. Choi, “Heterogeneous parallel computing for data encryption application”, 6th International Conference on Computer Sciences and Convergence Information Technology (ICCIT), 2011

[21] “CUDA Toolkit 3.2”, NVIDIA Inc., Februari 2011.

[22] E. Berggren, T. Gustafson, ”Jämförelse av GPGPU-ramverk och AES- metoder”, Högskolan i Jönköping, Tekniska Högskolan, JTH,

Datateknik och informatik, 2017.

[23] Wikipedia, ”Block cipher mode of operation” Tillgänglig:

https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation

[Hämtad 16 november 2019]

Bilagor

Bilaga 1 Excel dokument med tabeller och diagram från experimentet

https://drive.google.com/file/d/13T-

fxtyHRuCYPSVzZGcLBfVRdrkobm7N/view?usp=sharing

Related documents