Kriptografinių maišos funkcijų įgyvendinimo programuojamosios logikos lustuose tyrimas
Kompiuterių inžinerijos katedra |
Baigiamojo magistro darbo tikslas - ištirti kriptografinių maišos funkcijų įgyvendinimo ir naudojimo galimybes programuojamosios logikos lustuose. Tyrimams buvo pasirinktas vienas iš šiuo metu saugiausių ir todėl dažnai praktikoje taikomų kriptografinių maišos algoritmų: SHA-256. Tyrimams atlikti magistro darbe buvo sukurtos ir išbandytos skirtingos šio algoritmo realizacijos. Programinės realizacijos išbandytos AMD x64 architektūros procesoriuose (C ir C# kalbomis), taip pat Altera programuojamos logikos lustuose veikiančiuose NIOS 2 procesoriuose (C kalba). Taip pat buvo tiriamos dviejų tipų aparatinės SHA-256 realizacijos atliktos VHDL kalba: vieno branduolio ir daugelio branduolių realizacijos veikiančios Altera lustais paremtose prototipinėse plokštėse.Gauti SHA-256 skaičiavimo spartos rezultatai buvo palyginti atsižvelgiant į įvairias testams naudojamas architektūras. Palyginimas atliekamas skaičiavimų spartos matavimams pasirinkus vienodus vienetus: milijonus apskaičiuotų maišos funkcijos verčių per sekundę - Mhash/s.Išnagrinėjus praktinius ir teorinius SHA-256 realizavimo ir naudojimo skirtingose architektūrose aspektus, pateikiamos baigiamojo darbo išvados ir siūlymai.Darbą sudaro: įvadas, literatūros analizė, kriptografinių maišos funkcijų apžvalga, SHA-256 algoritmo įgyvendinimas skirtingose architektūrose, SHA-256 realizacijų VHDL, C ir C# programavimo kalbomis tyrimas, apibendrinimas ir išvados. Darbo pabaigoje pateikiamas literatūros šaltinių sąrašas.Darbo apimtis - 61 p. teksto be priedų, 18 iliustr., 26 lent., 16 bibliografiniai šaltiniai.Atskirai pridedami darbo priedai.
The goal of this Master's thesis is to examine possibilities of different implementations of cryptographic hash functions in programmable logic chips.SHA-256 was selected as research topic because it is currently one of the safest crypto-hash algorithms and therefore often used in practice. Multiple different implementations of SHA-256 algorithm were developed and tested during the period of thesis research. C and C# software implementations were tested using AMD x64 architecture processors as well as C implementation running on NIOS 2 soft-core CPU configured on Altera FPGA boards. Also, two types of SHA-256 VHDL hardware-based implementations were created and examined: single-core and multi-core implementations operating on Altera FPGA prototyping boards.Results of SHA-256 performance tests were compared in terms of the different architectures and implementations used for testing. Comparison of calculation performance is done on the basis of normalized measurements units: millions of calculated hash values per second, Mhash/s.Conclusions and recommendations are presented after examining various aspects of practical and theoretical SHA-256 realization and application on different architectures.Thesis structure: introduction, literature analysis, cryptographic hash functions overview, analysis of SHA-256 algorithm, analysis of hardware implementations using VHDL language, analysis of software implementation using C and C# languages, testing, comparison. Final results are summarized and a list of bibliographical entries is presented.Thesis consists of: 61 pages of text without appendixes, 18 illustrations, 26 tables, 16 bibliographical entries, 2 appendixes.