You are on page 1of 15

VISOKA TEHNIČKA ŠKOLA

KRAGUJEVAC

Tema: Advanced Encryption Standard


Predmet:Bezbednost informacionih sistema

Profesor: Studenti:
Srđan Atanasijević Nikola Vulović
Stefan Kostić
Nikola Jovanović
Nikola Mišković
Zoran Radičević
Srđan Radunović
Dušan Srećković
Sadržaj

Uvod………………………………………………………………………..…........3
Simetrična kriptografija…………………………………………………..………...4
Istorija nastanka AES-a………………………………………………..…………...5
AES algoritam – Opis postupka enkripcije……………………………………..….6
High–level algoritam kriptovanja…………………………………………...…...…7
Enkripcijski ključevi……………………………………………...………………...8
Sigurnost………………………………………………………...………………...10
Šifriranje teksta pomoću AES algoritma….............................................................11
Dešifrovanje teksta – dekripcija……………………………………………….….13
Zaključak.................................................................................................................14
Literatura ................................................................................................................15

2
Uvod

Sigurnost računarskih sistema postaje sve važnija, jer sve više korisnika na sve više
načina koristi sve više informacija u računarskom svetu. U takvom sistemu postoji i sve veća
opasnost od neovlašćene upotrebe informacija, podmetanja krivih informacija ili uništavanja
informacija. U računarskim sistemima informacije se prenose raznovrsnim otvorenim i
nesigurnim komunikacijskim putevima. Pristup do tih puteva ne može se fizički zaštititi pa svaki
neprijateljski nastrojen napadač može narušiti sigurnost sistema. Zbog toga zaštitni
komunikacijski mehanizmi nad nesigurnim komunikacijskim kanalom postaju najvažniji oblik
ostvarenja sigurnosti. Pokazuje se da je najdelotvornija zaštita poruka njihovo kriptovanje.
Kriptografija je nauka "tajnog pisanja", tj. nauka čuvanja informacija u onoj formi koja
će biti čitljiva samo onima kojima je informacija namenjena dok će za ostale biti neupotrebljiva.
Uporedo sa razvojem kriptografije razvila se i nauka kojoj je cilj analizom kriptovane poruke
odgonetnuti njen sadržaj. Ta nauka se naziva kriptoanaliza.
Pored gore navedenog, valja spomenuti jednu bitnu razliku između termina kriptografija i
termina kriptologija. Kriptografija je nauka koja se bavi svim aspektima sigurnosnog transporta
podataka kao što su na primer autentifikacija (web,lokalne mreže i sl.), digitalni potpisi, razmena
elektronskog novca. Kriptologija, je za razliku grana matematike koja se bavi matematičkim
načelima, te matematičkom implementacijom kriptografskih metoda.
Enkripcija (en. encription) ili šifriranje je proces u kriptografiji kojim se vrši izmena
podataka tako da se poruka, odnosno informacije, učine nečitljivim za osobe koje ne poseduju
određeno znanje (ključ). Ovaj pojam se najviše koristi u informatici, gde se određeni podaci
enkriptuju, i najčešće tako zaštićeni šalju putem e-maila.
Enkripcija je proces kojim se informacijski sadržaji nastoje učiniti nerazumljivim za
osobe koje ne poseduju određeno znanje odnosno enkripcijski ključ (popularno nazivanim i
ključem za šifriranje/dešifriranje). Postupak enkripcije može se provoditi ručno, što je i bio
slučaj u istoriji nastojanja čoveka da neke informacije učini tajnima, no danas će se u tu svrhu
gotovo bez izuzetka koristiti računari. U takvim uslovima enkripcijski postupci odnosno
algoritmi mogu biti daleko složeniji,a samim time korisniji,snažniji i pouzdaniji.
Enkripcija je danas neophodna prilikom prenosa podataka u otvorenim računarskim
mrežama (primer putem Interneta) kako bi se osujetile njihove moguće zloupotrebe različitih
vrsta od strane neovlašćenih korisnika.Osetljive podatke ne bi trebalo na taj način štititi samo
tokom njihovog prenosa komunikacijskim linijama već takođe i onda kada su oni sačuvani na
nekom memorijskom mediju (primer, računarskom disku ili USB memoriji).
Danas je za svrhe enkripcije u opštoj upotrebi Advanced Encryption Standard (AES)
koga valja smatrati osnovnim standardom strateškog upravljanja informacijskim tehnologijama.

3
Simetrična kriptografija

Simetrična kriptografija je najstariji oblika kriptografije, stara gotovo koliko i ljudska


komunikacija (naziva i kriptografijom tajnog ključa jer se podatak kriptuje i dekriptuje istim
ključem). Za proces kriptovanja u simetričnoj kriptografiji potrebno je znati algoritam
kriptovanja i tajni ključ. Nekad su se algoritmi držali u tajnosti, ali se pokazalo da skrivanje
algoritma ne doprinosi sigurnosti. Svi savremeni simetrični algoritmi javno su objavljeni. Zbog
toga ih je u potpunosti moguće testirati i proveriti njihovu otpornost na napade, odnosno moguće
ih je analizirati (kriptoanaliza). Sigurnost simetričnih algoritama zavisi od sigurnosti samog
algoritma i dužine ključa. Već smo rekli da je simetrična kriptografija tajnim ključem postupak
kojim se koristi jednak ključ za enkripciju i dekripciju podataka. Simetričnu kriptografiju
možemo matematički prikazati izrazima:

Enkripcija: C = Ek (M )

Dekripcija: M = Dk (C )

Gde E predstavlja enkripcijsku funkciju, D dekripcijsku funkciju, k je tajni ključ


jedinstven za obe strane, M je originalna (plaintext) poruka, a C je pripadajućaenkriptovana
poruka (ciphertext).

Slika 1.Simetrična kriptografija

Način korištenja simetrične enkripcije najlakše je pokazati sledećim primerom.Pošiljaoc i


primaoc oboje poseduju zajednički tajni ključ, koji samo oni znaju te su prethodno dogovorili
zajednički kriptografski algoritam koji će koristiti. Kada pošiljaoc želi poslati poruku primaocu,
on enkriptuje originalnu poruku (plaintext) korištenjem tajnog ključa i prethodno dogovorenog
algoritma. Time dobija enkriptovanu poruku (ciphertext) koju dalje šalje primaocu.Primaoc
prima enkriptovanu poruku(ciphertext) od pošiljaoca i dekriptuje je svojim privatnim ključem
kako bi opet dobio originalnu poruku (plaintext). Ukoliko neko prisluškuje njihovu
komunikaciju, prima samo enkriptovanu poruku, jer je jedino ona slana preko otvoreno kanala
tako da je tajnost komunikacije očuvana. Mana simetrične enkripcije je što se podrazumeva da su
se dve strane pošiljaoc i primaoc unapred dogovorili o vrednosti enkripcijsko/dekripcijskog
ključa koji mora ostati u tajnosti od neautoriziranih korisnika. Kod takvog prenosa gde se koristi
jedinstveni ključ je takođe moguć i tzv. napad sirovom silom ili brute-force attack, koji
podrazumeva isprobavanje svih mogućih kombinacija tajnog ključa sve dok se ne pronađe
korišćenu kombinacija.

4
Istorija nastanka AES-a

Još ranih 1970-ih godina kompanija IBM razvila je svoj standard enkripcije podataka
nazvan Data Encryption Standard (DES). 1977. godine taj je standard prihvatio tadašnji
Nacionalni ured za standarde SAD (današnji Nacionalni institut za standarde i tehnologije,
NIST) kao službeni standard zaštite podataka u institucijama državne uprave SAD.
Sa razvojem informacijsko-komunikacijskih tehnologija pokazalo se da DES ne može
više na odgovarajući način zadovoljavati rastuće potrebe zaštite tajnosti podataka. Taj je problem
postao kritičan 1990-ih godina kada Internet „na velika vrata“ ulazi u široku upotrebu, posebno u
poslovnim krugovima. Zato je 1997. godine NIST pokrenuo inicijativu za pronalaženje korisnije
i pouzdanije zamene za DES.
Naglim razvojem informacijske tehnologije algoritmi koji su nastali pre deset, dvadeset i
više godina su zastareli u smislu da više ne pružaju dovoljnu sigurnost. Naime, zadnjih dvadeset
godina kriptoanaliza (kao i kriptografija) je također profitirala od razvoja računarske
moći.Algoritmi kao DES za koje se nekad smatralo da su neprobojni, danas je moguće
kompromitirati.
Cilj je pritom bio definisati zamenu za DES koja će se koristiti u svrhe postizanja
zadovoljavajućeg stepena informacijske sigurnosti u civilnim (nevojnim) informatičkim
aplikacijama i komunikacijama tela i institucija državne uprave SAD, ali i u nevladinu sektoru.
Na taj način novi će enkripcijski standard postati opšti de facto standard u SAD ali i u
međunarodnim razmerama.
NIST je putem javnog konkursa pozvao stručnjake i organizacije za kriptografiju i
sigurnost podataka iz čitavog sveta da učestvuju u raspravama i izboru novog enkripcijskog
standarda. Od nekoliko desetina predloga, u uži je izbor ušlo njih pet među kojima je kao
najprikladniji odabran enkripcijski algoritam kojega su predložili belgijski kriptografi Joan
Daeman i Vincent Rijmen. Izvorni naziv tog algoritma kojega su osmislili njegovi autori bila je
izvedenica njihovih prezimena – Rijndael. Nakon što je izabran da bude zamenom za DES, taj je
algoritam preimenovan u Advanced Ecryption Standard, poznat pod akronimom AES.
Zakonski akt kojim se AES imenuje službenim enkripcijskim standardom u državnoj
upravi SAD stupio na snagu 26. maja 2002. godine, pri čemu je on dobio službenu oznaku FIPS
197. Kao takav, i danas je važeći.
Mašine kojima bi za razbijanje šifre kodirane po DES-u trebala svega 1 sekunda, kakve
su sada, u eri razvijene računarske tehnologije česti, na AES bi potrošili 149 triliona godina.
Amerikancima ne smeta ni činjenica da je sistem izrađen u inostranstvu, jer su kompletni
algoritmi i načela dizajna već dve godine bili dostupni Pentagonovoj National Security Agency
na uvid i testiranje.

5
AES algoritam – Opis postupka enkripcije

Strogo govoreći, AES nije precizno Rijndael (iako u praksi oni se koriste nerazdvojivo),
jer Rijndael podržava veći raspon bloka i veličine ključa; AES ima fiksni blok veličine 128 bita i
ključ veličine 128, 192, ili 256 bita , dok kod Rijndaela može biti navedena, uz ključ, i veličina
bloka u bilo kojoj vrednosti pomnoženoj sa 32 bita, i najmanja je 128 bita, a najviša 256 bitova.
AES algoritam je tzv. blok-šifra koja koristi enkripcijski ključ i primenjuje se u nekoliko
iteracija (tzv. runda). Blok-šifra je vrsta enkripcijskog algoritma koji se primenjuje istovremeno,
odjednom, na celokupne blokove podataka. U izvornom AES-u taj je blok dužine 128 bita
odnosno 16 bajta (16 x 8 = 128). Pojam „iteracija“ ili „runda“ odnosi se na način na koji
algoritam višestruko „meša“ podatke (poput karata). U današnjoj je informatičkoj praksi
uobičajeno da takvih „runda“ bude 10 do 14, zavisno o odabranoj dužini enkripcijskog ključa.
AES algoritam sam po sebi nije, kao što se to često pogrešno misli, računarski program.
To je, naime, matematički opis postupka skrivanja informacijskog sadržaja podataka u čije
pojedinosti na ovome mestu nećemo ulaziti, a koji se može na različite načine, primenom
različitih račuanrskih jezika i metoda programiranja, transformisati u računarski program. Zato i
jeste u upotrebi mnoštvo programa koji su međusobno različiti ali proizlaze iz AES-a i s njime su
skladni (kompatibilni).
Kriptovanje je određeno u uslovima ponavljanja obrade koraka koje se primjenjuju kako
bi nadoknadili krugove ključem transformacije između ulaznih plain-text i konačnom izlazu
kriptovanog teksta. A set obrnut runde su primjenjivane za transformaciju kriptovanja teksta
natrag u izvorni plain-text, pomoću istog ključa za šifriranje.

Slika 2.AES Proces Enkripcije

6
High–level algoritam kriptovanja

Proširenje ključa koristeći Rijndael ključni raspored Inicijalni krug enkripcije


1. Dodavanje kružnog ključa - Okrugli
2. Zamena bitova-a ne-linearna zamena koraka gde je svaki bajt zamenjen sa drugim
prema tabeli.
3. Pomeranje redova-a je korak gde je svaki red u stanju pomeren kružno za određeni broj
koraka.
4. Mešanje kolona-a, operacija mešanja, koja deluje na kolone u stanju, kombinujući
četiri bytes u svakoj koloni.
5. Dodavanje kružnog ključa - svaki bajt stanja je u kombinaciji sa okruglim ključem;
svaki okrugli ključ je izveden iz ključa za kriptovanje informacija koristeći generisanje
ključa.

Poslednji krug (nema Mešanja kolona)


1. Zamena bitova
2. Pomeranje redova
3. Dodavanje kružnog ključa

Slika 3.Postupak zamena bitova, jedan od četiri nivoa u AEs-u

7
Enkripcijski ključevi

Kod primene AES-a, u procesu enkripcije koristi se samo jedan enkripcijski ključ.
Njegova dužina, međutim, može varirati, a najčešće su u upotrebi ključevi dužine 128 bita (16
bajta), 192 bita (24 bajta) i 256 bita (32 baja). Za enkripciju (šifriranje) i dekripciju (dešifriranje)
koristi se isti ključ. Takvi se algoritmi nazivaju simetričnim enkripcijskim algoritmima.
Uz simetrične, u upotrebi su i asimetrični enkripcijski algoritmi, pri čemu je jedan ključ
javan (opšte poznat) a drugi tajan (poznat samo ovlašćenim korisnicima enkriptovanog
informacijskog sadržaja). U oba slučaja enkripcijski je ključ niz bitova (biranih znakova). Takvi
su algoritmi regulisani nekim drugim standardima.
Budući da se uz primenu AES-a isti ključ koristi i za enkripciju i za dekripciju
informacija, neophodno je čuvati njihovu tajnost te koristiti ključeve čije je vriednosti (sadržaj)
teško nasumice ili nekako drugačije otkriti (pogoditi). Obično se za generisanje enkripcijskih
ključeva koriste računarski programi koji ih „proizvode“ na slučajan odnosno pseudoslučajan
način. Postoje takođe i sastavi u kojima se za izvođenje enkripcijskih ključeva kao polazna
osnova upotrebljavaju korisničke pristupne lozinke,ali dobar sastav zaštite tajnosti informacija
nikada lozinku samu po sebi neće koristiti u funkciji enkripcijskog ključa.
U informatičkoj je praksi u upotrebi nekoliko metoda korišćenja enkripcijskih ključeva
prilikom primene AES-a. U stručnoj se terminologiji te metode nazivaju „modalitetima rada“
enkripcijskog sastava. NIST je standardizovao šest takvih modaliteta:

• knjiga elektronskih kodova (engl. Electronic Code Book, ECB),


• ulančavanje šifarskih blokova (engl. Cipher Block Chaining, CBC),
• modalitet brojača (engl. Counter Mode, CTR ili CTRM),
• šifarska povratna veza (engl. Cipher Feedback, CFB),
• izlazna povratna veza (engl. Output Feedback, OFB) i
• modalitet brojača Galois (engl. Galois Counter Mode, GCM).

Svaki se od navedenih modaliteta oslanja na AES na različit, sebi svojstven način. Tako,
na primer, ECB nezavisno enkribira svaki pojedini blok podataka dok CTR enkribira 128-bitni
brojač i potom dodaje tu vriednost podacima koje potom enkribira. CBC pak koristi
inicijalizacijski vektor te dodaje enkribiranu vriednost svakog bloka podataka podacima sledećeg
bloka pre nego što i njih enkribira.
Važno je znati da će i snažan enkripcijski algoritam koji se koristi na neprimeren način
rezultirati niskim stepenom sigurnosti osetljivih podataka. Korektna primena neodgovarajućeg
modaliteta enkripcije ili pak nekorektna primena odgovarajućeg modaliteta ima će za posledicu
slabo osigurane podatke čiju će zaštitu neovlašćeni i/ili nedobronamerni korisnik lako „probiti“.
Zato je preko potrebno znati i do kraja razumeti ograničenja i implikacije primene svakog od
navedenih standardnih enkripcijskih modaliteta.

Preporučljive prakse primene AES-a u poslovnim računarskim aplikacijama

8
Neke od najvažnijih praktičnih preporuka bile bi sledeće:

• Korisničke lozinke nikada ne bi trebalo čuvati u samim računarskim aplikacijama već


na nekom izdvojenom mestu (u zasebnoj datoteci ili bazi podataka koja će biti enkribirana).
• Valja razviti odnosno koristiti primeren, proveren i dosledan sastav upravljanja
enkripcijskim ključevima.
• Nužno je koristiti primerene metode generisanja enkripcijskih ključeva i bezuslovno
izbegavati upotrebu korisničkih lozinki kao enkripcijskih ključeva.
• Potrebno je primeniti onaj modalitet enkripcije koji najbolje odgovara određenoj
aplikaciji. Tako su, na primer, CBC i CTR modaliteti prikladni u slučaju enkripcije podataka u
bazi podataka dok su ECB i GCM primereniji zaštiti podataka u prenosu računarskim
komunikacijskim mrežama.
• Neophodno je obavezati sve programere i ostale informatičke stručnjake na bezuslovnu
i doslednu primenu AES-a pri kreiranju i održavanju svih računarskih aplikacija. Aplikacija na
koju taj standard nije primenjen biće visokorizična i verovatno će ubrzo postati uskim grlom
sigurnosti celokupnog informacijskog sastava.

Slika 4. AES u hijerarhiji standarda

9
Sigurnost

Do maja 2009, objavljeni su samo jedini uspešni napadi AES, bili su sporedni kanal
napada na specifične implementacije. Nacionalna agencija za bezbednost (NAB) je pregledala
sve AES finaliste, uključujući Rijndael, i izjavila da su svi oni dovoljno sigurni za poverljive
podatke Vlade SAD-a. U Junu 2003, Vlada SAD-a je najavila da AES, može da se koristi za
zaštitu tajnih informacija.
Dizajn i snaga svih ključnih dužine AES, algoritam (tJ., 128, 192 i 256) su dovoljne da
zaštite tajnih podataka do SECRET nivoa. Top Secret informacije će zahtevati korišćenje bilo
192 ili 256 dužine ključa. Implementacija AES-a, u proizvode namenjene zaštiti nacionalnih
sistema bezbednosti i / ili informacija mora biti pregledana i overena od strane NSA pre njihove
nabavke i upotrebe.
AES, ima 10 krugova(kola) za 128-bitne ključeve, 12 kola za 192-bitne ključeve, i 14
kola za 256-bitne ključeve. Do 2006, najpoznatiji su napadi na 7 kola za 128-bitne ključeve, 8
krugova za 192-bitne ključeve, i 9 kola za 256-bitne ključeve.
Za cryptographers, šifrovana "pauza" je nešto brža nego iscrpna pretraga. Tako, XSL-
napad na 128-bitni ključ AES, zahtevaju operacije 2100 (u odnosu na 2128 mogućih ključeva) će se
smatrati pauzom. Najveći uspešni javno poznati brute force attack je bio na 64-bitni RC5 ključ za
distributed.net.
Za razliku od većine drugih blok šifara, AES, ima vrlo uredan algebarski opis.Godine
2002, teorijski napad nazvan "XSL-napad", najavljen je od strane Nikole Kurtoa i Jozefa
Pieprzyka da pokažu slabosti u algoritmu AES, zbog svog jednostavnog opisa.Od tada,drugi
radovi su pokazali da je napad koliko god originalno predstavljen neizvodljiv.
Tokom AES procesa, programeri konkurentskih algoritama napisali su o Rijndael-u, "...
mi smo zabrinuti za njegovu ...upotrebu u aplikacijama kritične sigurnosti."Međutim, na kraju
AES procesa, Bruce Schneier autor konkurentskog Algoritma Twofish, napisao je da dok je on
mislio da će uspešni akademski napadi na Rijndael se razviti jednog dana, "Ja ne verujem da će
iko ikada otkriti napad koji će omogućiti nekome da pročita Rijndael saobraćaj".
1. Jula 2009, Bruce Schneier napisao je blog u vezi Related-key napada na 192-bitne i
256-bitnim verzije AESa, otkrivene od strane Aleks Biryukov i DmitriJ Khovratovich; povezani
ključni napad na 256-bitnu verziju AESa, eksploatiše AES-ov donekle jednostavan raspored
ključeva i na složenost od 2119. Ovo je nastavak napada koji je otkrio ranije u 2009 Aleks
Biryukov, DmitriJ Khovratovich, i Ivica Nikolić, uz složenost 296 za jednu od svakih 235
ključeva.
Drugi napad je bio blogovan od strane Bruce Schneier 30. Jula 2009 i objavljen 3.
avgusta 2009. Ovaj novi napad, od strane Aleks Biryukov, Or Dunkelman, Natan Keler, Dmitrija
Khovratovich i Adi Šamira, je protiv AES-256, koji koristi samo dva povezana ključa i 2 39
vremena da se oporavi kompletni 256-bitni ključ verzije od 9-kola , ili 2 45 vremena za verziju 10-
kola sa jačim vrstama vezanih napada potključ, ili 270 vremena za verziju od 11-krugova. 256-
bitni AES, koristi 14 krugova, tako da ovi napadi nisu efikasni protiv punog AES-a.
U novembru 2009, prvi put se objavljuje napad verzija od 8-krugova AESa-128. Ovaj
poznati ključ prepoznatljivi napad je unapređenje odbijanja ili početka-od-sredine-napada za
AES-permutacije koje ispituje dva uzastopna kruga permutacije kao primena tzv Super-Box.
Radi na 8-krugova verzije AES-128, uz izračunavanje kompleksnosti 2^48, a složenost
memoriJe 2^32.

10
Šifriranje teksta pomoću AES algoritma
Program:Cryptool

1.Startovati CrypTool

2. Otvoriti novi dokument

3. Uneti proizvoljan tekst

4. Izabrati tip Rijndael AES algoritam

11
5. Napraviti ključ SAMO HEX vrednosti

6. Prikaz šifriranog teksta, šifrata

12
Dešifrovanje teksta – dekripcija

1. Izbor AES algoritma

2.Izbor ključa je isti

3. Prikaz izvornog teksta

13
Zaključak

Kada su se pojavile računarske mreže, nije se mnogo vodilo računa o njihovoj sigurnosti,
jer su se tada uglavnom koristile za razmenu elektronske pošte između istraživača sa raznih
univerziteta ili za štampanje dokumenata u kompanijama koje su posedovale više računara koji
su preko mreže bili povezani na jedan zajednički štampač.
Danas, kada su računarske mreže dostupne svakome, njihovoj sigurnosti se posvećuje
velika pažnja. Da nije toga, u današnje vreme se ne bi moglo kupovati preko mreže niti obavljati
razne bankarske transakcije. Ne mali je broj ljudi koji na razne načine pokušavaju da naruše
sigurnost mreža, želeći time da naude drugim ljudima i da prvenstveno steknu neku korist od
toga. Oni pokušavaju da čitaju ili da menjaju sadržaj poruka dostupnih preko mreže, iako nisu
ovlašćeni za to. Tako, na primer:

o učenik ili student će, čitajući tuđe e-mail poruke, sebi prekratiti vreme,
o haker će testirati nečiji sigurnosni sistem pokušavajući da mu ukrade podatke,
o poslovni ljudi će pokušati da otkriju planove konkurentne kompanije,
o otpušteni radnik će probati da se poslodavcu osveti zbog otpuštanja,
o računovođa će proneveriti novac od kompanije,
o lopov će pokušati da ukrade broj tuđe kreditne kartice da bi pomoću nje kupovao,
o špijun će pokušati da sazna sa kakvom vojnom silom raspolaže neprijatelj

Svi ovi primeri ukazuju na to da je neophodno stvoriti inteligentne mehanizme koji će


računarsku mrežu učiniti sigurnom. Zadovoljavajući rezultati su postignuti upotrebom raznih
algoritama šifrovanja, kojima se podaci maskiraju i tako bivaju osigurani za prenos. Korišćenjem
protokola za autentifikaciju, osigurava se sigurna komunikacija između dve strane. Osim toga,
pojavom digitalnih potpisa i SSL protokola omogućeno je da se razne bankarske transakcije i
razmena dokumenata od velike važnosti obavljaju na siguran način!

14
Literatura

1. www.wikipedia.org
2. www.orkis.hr
3. http://www.cryptool.de
4. Mr Srđan Atanasijević, dipl.ing.inf :”Bezbednost informacionih sistema”
5. Panevropski univerzitet APEIRON,Fakultet Poslovne informatike; Predmet: Principi
programiranja

15

You might also like