Elektrotehniško-računalniška strokovna šola in gimnazija Ljubljana

Vegova ulica 4

 

 

 

 

 

 

Seminarska naloga pri računalništvu

Kriptografija v internetni varnosti

 

 

 

 

 

 

 

 

 

 

 

 

Mentor: Aleš Volčini        Avtor: [REDACTED], G 3. B

 

Ljubljana, maj 2022

Kazalo vsebine

1. Uvod

2. Zgodovina

3. Šifrirni algoritmi

3.1 Simetrični šifrirni algoritmi

3.1.1 Pretočno šifriranje

3.1.2 Blokovno šifriranje

3.2 Asimetrični šifrirni algoritmi

3.2.1 Digitalni podpisi

3.3 Zgoščevalne funkcije

3.3.1 Uporaba

4. Zaključek

5. Viri in literatura

Povzetek

V seminarski nalogi sem raziskoval šifrirne algoritme za potrebe internetne varnosti. Te so nepogrešljivi v internetnih komunikacijah. Začel sem s predstavitvijo šifriranja sporočil v preteklosti in  nadaljeval z razvojem šifrirnih algoritmov v moderni računalniški dobi. Raziskal sem principe asimetričnega šifriranja in uporabnost le tega. Raziskal sem tudi asimetrično šifriranje, ki je temelj varne internetne komunikacije. Pri obeh naštetih se pogosto uporablja tudi enosmerne zgoščevalne funkcije, ki sem jih tudi predstavil. Omenil sem tudi protokole v katerih te šifrirne funkcije tudi uporabljene in njihovo implementacijo. Podal sem tudi možnosti razširitve in nadaljevanja raziskovalnega dela na tem področju.

Ključne besede: šifrirni algoritmi, simetrično šifriranje, asimetrično šifriranje, zgoščevalne funkcije, digitalni podpis

Abstract

The aim of this paper is to research various methods of encryption used in modern internet communication. Encryption algorithms play an important role in internet communications as they provide privacy and security. Initially, the paper gives a brief overview on the history of encryption. It then presents and explains the workings and use cases of each type of algorithm. It also mentions specific protocols that implement the algorithms presented.

Keywords: Encryption algorithm, Symmetric encryption, Asymmetric encryption, hash function, digital signature

2.Uvod

Odkar zna človek pošiljati sporočila, čuti potrebo po skrivanju le teh. Tajnost sporočil, a predvsem njihov pomen ima že od antičnih časov velik pomen v vojaških operacijah, v modernem svetu pa v informacijski varnosti uradnih ustanov in posameznikov. Za zakrivanje sporočil se uporabljajo metode šifriranja. Raziskuje jih kriptografija, to je veda varne komunikacije v prisotnosti aktivnega vsiljivca. V seminarski nalogi se bom ukvarjal s šifrirnimi metodami in algoritmi, opredeljevanjem njihovega delovanja in razumevanjem realizacije. Iskal bom tudi primernost posameznih algoritmov za različne potrebe.

3.Zgodovina

V namen skrivanja sporočil so za pisano besedo iznašli mnoge metode popačenja sporočila, ki jih je pravi prejemnik znal razvozlati. Cezarjeva šifra je zamenjava črke s črko, ki je prvotni črki v abecednem redu odmaknjena za dogovorjeno vrednost.

V kasnejših časih je bilo razvito več zapletenejših šifrirnih metod, med drugim Enigma. To je mehanični stroj, ki je omogočal močno šifriranje med drugo svetovno vojno. Ko pa so ljudje začeli komunicirati z računalniki, se je pojavila potreba po varni računalniški komunikaciji.

4.Šifrirni algoritmi

Za potrebe šifriranja vsebin v komunikaciji, še posebej v internetni dobi, se razvijejo šifrirni algoritmi. Šifrirni algoritem je postopek, v katerem se iz navadnega besedila pridobi šifrirano besedilo ali šifro. Na tej šifri je navadno mogoče izvesti proces, s katerim dobi sporočilo ponovno prvotno vrednost.

4.2 Simetrični šifrirni algoritmi

Simetrični šifrirni algoritmi so algoritmi, ki za šifriranje in dešifriranje uporabljajo isti ključ. Ključ je spremenljivka v šifrirnem algoritmu, določa šifro. Da način sporazumevanja z uporabo simetričnega šifrirnega algoritma deluje, potrebujejo vsi ki so v komunikacijo vključeni isti dogovorjen ključ. Tisti ki ključa ne pozna, sporočila ni zmožen prepoznati. To je tudi glavna slabost tega algoritma. Poznamo dva glavna tipa simetričnih šifrirnih algoritmov:

4.2.1Pretočno šifriranje

Tovrstni algoritmi iz celotnega navadnega sporočila v šifro preslikajo posamezne enote sporočila kot so črke ali bajti. Primer tega je prej navedena Cezarjeva šifra. Slabost teh algoritmov je, da jih je lahko razdreti s pomočjo opazovanja pogostosti določenih gradnikov sporočila.

4.2.2Blokovno šifriranje

Pri temu procesu, pa se zajame več enot sporočila in se jih šifrira kot celoto. Razširjen primer takega algoritma je AES (Napredni šifrirni standard). Ta vzame za blok 128 bitov in operira z njimi.

4.3Asimetrični šifrirni algoritmi

Asimetrične šifrirne algoritme vedno sestavljata dva ključa, pogosto imenovana javni in zasebni ključ. Zato se tak način šifriranja imenuje tudi šifriranje z javnim in zasebnim ključem.

 

V principu asimetrično šifriranje deluje tako, da en od dveh ključev sporočilo zašifrira, drugi pa odšifrira. Ključ ki zaklepa ne more odklepati in ključ ki odklepa, ne more zaklepati. V praksi na primer posameznik javni ključ, ki se uporablja za šifriranje sporočila, objavi, privatnega, ki lahko ta sporočila dešifrira, pa hrani v tajnosti.

Prednosti sistema sporočanja z javnim in zasebnim ključem so, da se sogovornikoma ni potrebno v naprej dogovoriti za enoten tajni ključ. Tako lahko ena izmed strani inicializira pogovor, ker pozna javno objavljen javni ključ drugega, v sporočilu pa preprosto priloži svoj javni ključ, da lahko druga oseba vrne odgovor z nasprotno enakim procesom.

4.3.1Digitalni podpisi

Zasebne in javne ključe lahko uporabljamo tudi kot digitalne podpise. Podpisujoči s pomočjo algoritma z podpisovanje in svojega privatnega ključa proizvede digitalni podpis. Digitalni podpis je mogoče preveriti z nasprotnim algoritmom. Tisti, ki preverja podpis ima dostop do javno objavljenega javnega ključa pošiljatelja in lahko z njim in obratnim algoritmom preveri verodostojnost pošiljatelja.

Digitalni podpis tako zagotavlja vse prednosti fizičnega podpisa, kot so preverjanje avtentičnost in onemogočanje zanikanja podpisa, ponarejanje podpisa pa je zaradi kompleksnosti praktično neizvedljivo.

Tovrstno šifriranje je uporabljeno v protokolu PGP(in GNU-jeve implementacije imenovane GPG ), ki se pogosto uporablja v elektronski pošti in v TLS protokolu, ki se med drugim uporablja v protokolu HTTPS. Ta zagotavlja varnost pred morebitnimi vmesnimi opazovalci (ang, Man in the middle attack).

4.4Zgoščevalne funkcije

Zgoščevalne funkcije so algoritmi, ki iz poljubno dolgega sporočila naredijo binarno vrednost s fiksno dolžino. Proces je praktično ireverzibilen. Posamezno zgoščeno sporočilo naj bi nastalo zgolj iz enega navadnega sporočila. Če se navadno sporočilo spremeni že za zgolj en bit je proizvod zgoščevalne funkcije popolnoma drugačen. To se imenuje efekt plazu.

Če se več kot eno navadno sporočilo preslika v isti zgoščen blok, se to imenuje trk (ang. collison). Trk je praktično nemogoče doseči v naravni uporabi algoritmov, a se pri nekaterih to da izvesti umetno. Zgoščevalne algoritme, pri katerih je to mogoče se jemlje kot strte in zato nevarne.

Trenutno se najpogosteje uporablja SHA-2 algoritem, ki za razliko od SHA-1, MD4 in MD5 ni strt. Pri temu velikost šifre po zgoščevanju vedno znaša 256, 384 oziroma 512 bitov.

4.4.1Uporaba

Zgoščevalne funkcije se pogosto uporablja pri digitalnih podpisih, kjer se z zgoščevalno funkcijo obdela navadno sporočilo in s tem ustvari ti. prstni odtis. Tega se šifrira z zasebnim ključem in ga s tako zaščiti pred morebitnimi napadalci. Prejemnik lahko prstni odtis dešifrira z javnim ključem pošiljatelja in ga primerja z rezultatom zgoščevalne funkcije na navadnem sporočilu. Če se ujemata je verodostojnost zagotovljena.

Zgoščevalne funkcije se uporablja tudi pri shranjevanju gesel uporabnikov na sistemu. Nastavljeno gesla se z zgoščevalno funkcijo pretvorijo in shranijo, ob potrebi po preverjanju vnesenega gesla se ta pretvori na enak način kot nastavljeno geslo, rezultate pa se primerja. Če sta enaka je geslo pravilno. Tako preprečimo izliv podatkov v primeru vdora v sistem, saj so napadalcu vidni samo šifrirani podatki.

5.Zaključek

V seminarski nalogi sem se spoznal z osnovami šifriranja in principi delovanja šifrirnih algoritmov, ki jih srečujemo na vsakdanji ravni v modernem spletu. Za posamezne potrebe so primerne različne metode šifriranja, razumevanje teh pa nam omogoča varnejšo digitalno prisotnost. Smiselna razširitev te seminarske naloge bi bilo poglabljanje v delovanje posameznih algoritmov in realizacija omenjenih protokolov na lastni opremi.

 

6.Viri in literatura

Izjava o avtorstvu

Izjavljam, da je seminarska naloga v celoti moje avorsko delo, ki sem ga izdelal samostojno s pomočjo navedene literature in pod vodstvom mentorja.

3. 6. 2022        [REDACTED]

_______________