Kriptografija simetričnog (tajnog) ključa Mario Čagalj [email protected] Sveučilište u Splitu Sveučilišni studijski centar za stručne studije 20/3/2012.
Download ReportTranscript Kriptografija simetričnog (tajnog) ključa Mario Čagalj [email protected] Sveučilište u Splitu Sveučilišni studijski centar za stručne studije 20/3/2012.
Kriptografija simetričnog (tajnog) ključa Mario Čagalj [email protected] Sveučilište u Splitu Sveučilišni studijski centar za stručne studije 20/3/2012. Kriptografski sustav Plaintext Encryption Ke Key Channel Ciphertext Message Channel Decryption Plaintext Kd Key Generation o o Kriptografija simetricnog (tajnog) kljuca: Ke = Kd Kriptografija javnog (asimetricnog) kljuca: Ke != Kd ::2:: Kriptografski sustav: definicija o Definicija: Kripografski sustav sastoji se od slijedecih elemenata: o o o o Prostor “cistih” (plaintext) poruka M Prostor kriptiranih (ciphertext) poruka C Prostor enkripcijskih kljuceva K i dekripcijskih kljuceva K’ Algoritam za generiranje kljuceva G : N K x K’ o o o G generira par kljuceva (Ke, Kd) e K x K’ Enkripcijski algoritam E : M x K C Dekripcijski algoritam D : C x K’ M Oznaka enkripcijske transformacije: c = EKe(m), za Ke e K i m e M Oznaka dekripcijske transformacije: m = DKd (c), za Kd e K’ i c e C o Za svaku poruku m e M i sve kljuceve Ke e K, postoji Kd e K’ takav da DKd (EKe(m)) = m. ::3:: Kerckhoffsov aksiom (princip)* o Auguste Kerckhoffs, 19. st. o Kriptografski sustav mora biti siguran cak iako su svi elementi koji cine sustav, osim tajnih kljuceva, poznati (javna informacija). o “Security through obscurity” je vrlo nepopularan i nepreporucljiv pristup dizajnu kripografskih sustava o Primjer: Probijanje A5/1 simetricnog kriposustava koji se inicijalno koristio u GSM uredjajima: o o “A Reference Implementation of the Alleged A5/1 Stream Cipher.” Briceno, M., Goldberg, I., and Wagner, D. http://www.scard.org/gsm/a51.html “Real-Time Cryptanalysis of the A5/1 Stream Cipher.” Shamir, A., Biryukov, B., and Wagner, D. In Proceedings of Fast Software Encryption (FSE), 2000. *Nema veze sa Kirchoffovim zakonom. ::4:: Kriptografija simetričnog (tajnog) ključa Klasični kriptografski sustavi Klasični (simetrični) kriposustavi o Klasični sustavi koriste dvije vrste tehnika o Supstitucijske (substitution) o Kod supstitucijske tehnike, enkripcijski algoritam EKe(m) zamjenjuje svaku “čistu” poruku (plaintext) m e M sa odgovarajucim “ciphertextom” c e C . o Permutacijske (transposition) o “Čista” poruka se transformira na način da se permutiraju elementi (slova, simboli) poruke, bez mijenjanja identiteta tih elemenata. o Klasične supstitucijske sifre: o Cezarova sifra, Playfair sifra, Hillova sifra, Vigenère sifra, Vernam sifra, One-Time Pad sifra ::6:: Cezarova sifra o Zamjena svakog slova abecede sa slovom koji je udaljen za tri mjesta (prema kraju abecede) plaintext a b c d e f g h i j k l m n o p q r s t u v w x y z D E F G H I J K L M N O P Q R S T U V W X Y Z A B C sifra o o Primjer: za poruku m = sigurnost racunalnih sustava, odgovarajuci ciphertext glasi c = VLJXUQRVW UDFXQDOQLK VXVWDYD Matematicki opis Cezarovg kriposustava o o o o o o a = 0, b = 1, ..., z = 25 Enkripcija: svako slovo p “cistog” teksta (plaintext-a) zamjeni slovom C “ciphertext”-a, gdje C = E(3,p) = (p+3) mod 26. Dekripcija: p = D(3,C) = (C-3) mod 26. Generalno: C = E(K,p) = (p+K) mod 26 i p = D(K,C) = (C-K) mod 26 Dakle, K predstavlja enkripcijski kljuc Q: Je li Cezarova sifra sigurna? Zasto? ::7:: Monoalphabetic Ciphers o Cezarova sifra ima samo 26 kljuceva o o Podlozna “brute-force” napadu Broj kljuceva se moze znacajno povecati na nacin da za sifru koristimo bilo koju permutaciju slova abecede plaintext a b c d e f g h i j k l m n o p q r s t u v w x y z I K F G H G W H L M N O S C A P U T V J X Y Z R B Q sifra o o o o Broj kljuceva raste na 26! > 280 (brute-force napad potencijalno eliminiran) Na zalost, poznavajuci prirodu plaintext-a (npr. engleski tekst), moguce je napraviti kriptoanalizu ciphertext-a na osnovu relativne frekvencije slova (npr. u engleskom tekstu) Slova ciphertext-a ne mijenjaju relativnu frekvenciju odgovarajucih slova iz plaintext-a -> posljedica koristenja “monoalphabetic chipers” “Monoalphabetic chipers”: za dani enkripcijski kljuc, svaki element plaintext-a ce biti zamjenjen sa jedinstvenim elementom iz prostora ciphertext-a ::8:: Monoalphabetic Ciphers: kriptoanaliza o Zelimo desifrirati slijedeci ciphertext UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZVUEPHZHMDZSHZO WSFPAPPDTSVPQUZWYMXUZUHSXEPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOH MQ o Racunamo relativnu frekvenciju pojavaljivanja slova o o P – 13.33%, Z – 11.67%, S – 8.33%, U – 8.33%, O – 7.5%, M – 6.67%, ..., C = 0%, K = 0%, L = 0%, N = 0%, R = 0% Relativna frekvencija prosjecnog engleskog teksta ::9:: Monoalphabetic Ciphers: kriptoanaliza o Slova ciphertext-a P i Z najvjerojatnije odgovaraju slovima e i t o Slova ciphertext-a S, U, O, M i H imaju visoku frekvenciju pojavljivanja i najvjerojatnije odgovaraju slovima iz skupa {a, h, i, n, o, r, s} o Slova ciphertext-a A, B, G, Y, I te J imaju najmanju frekvenciju pojavljivanja te najvjerojatnije odgovaraju slovima iz skupa {b, j, k, q, v, x, z} o Na osnovu prethodnih znanja, te koristeci metodu pogreske i pokusaja desifriramo ciphertext kao: it was disclosed yesterday that several informal but direct contacts have been made with political representatives of the viet cong in moscow ::10:: Polyalphabetic Ciphers o Poboljsava sigurnost na nacin da koristi vise alfabeta za sifru o o Na ovaj nacin jedan element plaintext-a moze biti zamjenjen sa vise razlicitih elemenata iz prostora chipertext poruka (C) Kriptoanaliza je teza nego kod “monoalphabetic” sifri o o “Poravnava” distribuciju frekvencija pojavljivanja slova Primjer: Vigenère sifra o o o Pretpostavimo slijedece kodiranje slova: a = 0, b = 1, c = 2, ..., z = 25 Neka enkripcijski kljuc bude: gold = (6, 14, 11, 3) Plaintext: m=proceed meeting as agreed = (15, 17, 14, 2, 4, 4, 3, 12, 4, 4, 19, 8, 13, 6, 0, 18, 0, 6, 17, 4, 4, 3) Vigenère-ova enkripcija se moze definirati kao sumiranje slova plaintext-a i slova kljuca (slovo po slovo) modulo 26 o 15 17 14 2 4 4 3 12 4 4 19 8 13 6 0 18 0 6 17 4 4 3 6 14 11 3 6 14 11 3 6 14 11 3 6 14 11 3 6 14 11 3 6 14 21 5 25 5 10 18 14 15 10 18 4 11 19 20 11 21 6 20 2 7 10 17 o o Dobiveni chipertext: VFZFKSO PKSELTU LV GUCHKR Matematicki: C = E(K,p) = (p+K) mod 26 i p = D(K,C) = (C-K) mod 26 o Za K=g=6, p=0=13 -> C = E(6,13) = 19 mod 26 = 19 i p=D(6,19)=13 mod 26 = 13 ::11:: Vernam i “One-Time Pad” sifre o Vernam sifra o o Jedna od najjednostavnijih kriptografskih sustava Plaintext poruka m je binarni string “dug” n bitova o o Enkripcijski kljuc je takodjer n-bitni string o o ci = bi ki, za sve i=1,...,n, je zbrajanje modulo 2 (XOR) Dekripcija je identicna enkripciji o o k = k1 k2 ... kn e {0,1}n (k se bira na random nacin prema uniformnoj distribuciji) Enkripcija: ciphertext string c = c1 c2 ... cn se dobiva na slijedeci nacin o o m = b1 b2 ... bn e {0,1}n bi = ci ki = bi ki ki = bi, za sve i=1,...,n One-Time Pad o o Enkripcijski kljuc k u Vernamovom kriptosustavu koristi se samo jednom (“one-time-key”); za svaku poruku m koristi se iznova generiran kljuc Idealan kriptografski sustav, no nepraktican (Q: Zasto?) ::12:: Permutacijske (Transposition) sifre o o “Cista” poruka (plaintext) se transformira na nacin da se permutiraju elementi (slova, simboli) poruke, bez mijenjanja identiteta tih elemenata. Primjer 1: “Rail-fence” tehnika (dubina 2) o o o o m = meet me after the class mematrtels etefethcas c = MEMATRTELSETEFETHCAS Moze se jednostavno ’’probiti’’ Primjer 2: Key: Plaintext: Ciphertext: o 24153 meetm e afte r thec l as sx EATATTESMERLMECXEFHS Kriptoanaliza na osnovu relativne frekvencije slova jos uvijek moguca ::13:: Kriptografija simetričnog (tajnog) ključa Moderni kriptografski sustavi Block vs. Stream Cipher o “Stream cipher” (slijedna sifra) procesira poruku jedan po jedan bit (byte) pseudo-random bit stream generator ... o plaintext + ... seed ciphertext “Block cipher” (blok sifra) procesira (enkriptira i dekriptira) “cistu” poruku u blokovima plaintext padding ciphertext block cipher key ::15:: Data Encryption Standard (DES) o Prvi i najznacajniji moderni simetricni kriptografski sustav o o Objavio ga je National Bureau of Standards, 1977. Izmedju ostalog, koristi se i za zastitu bankovnih transakcija o o U prvom redu osigurava privatnost poruka (confidentiality) DES radi sa 64 bitnim blokovima poruka (“block cipher”) o o “Block cipher” (blok sifra) procesira (enkriptira i dekriptira) “cistu” poruku u blokovima “Stream cipher” (slijedna sifra) procesira poruku jedan po jedan bit (byte) o Poruke su enkriptirane u 64-bitne blokove koristeci 56-bitne enkripcijske kljuceve o Matematickim rjecnikom o M = C = {0,1}64 i K = {0,1}56 o DES enkripcijski (E) i dekripcijski (D) algoritmi uzimaju kao ulaznu vrijednost 64-bitni plaintext ili ciphertext i 56-bitni kljuc, te daju 64-bitni ciphertext ili plaintext ::16:: Opis rada DES-a (1/3) o Najprije se primjeni Inicijalna Permutacija (IP) na ulazni 64-bitni blok (L0, R0) IP(Ulazni Blok) o o L0 i R0 su lijevi i desni polublok (half-block), svaki je “dug” 32 bita Slijedeca operacija se iterira 16 puta, za i=1,...,16 Li Ri-1 Ri Li-1 f(Ri-1,ki) o o ki je kljuc i-te iteracije, dug 48 bitova, izveden od ulaznog 56-bitnog kljuca f(.) je “S-box Function”, f(.) je substitucijska sifra (S oznacava “Substitution”) Li-1 Ri-1 f ki Li o Ri Konacno, na rezultat 16. iteracije (L16, R16) primjenjuje se inverzna permutacija od inicijalne permutacije IP (da bi se ponistio efekt IP) Izlazni Blok IP-1 (R16, L16) ::17:: Opis rada DES-a (2/3) X (64) Initial Permutation (32) (32) f (48) f (48) K2 f (48) K3 Key Scheduler K1 (56) K … f (48) K16 Initial Permutation-1 Y (64) ::18:: Opis rada DES-a (3/3) o “Tri” prethodna koraka su ista za enkripcijski i dekripcijski algoritam o o o o Jedina razlika je u kljucevima ki (kljuc i-te iteracije) Ako su k1, k2, ..., k16 iteracijski kljucevi npr. enkripcijskog algoritma, onda su k16, k15, ..., k1 iteracijski kljucevi dekripcijskog algoritma (k16 odgovara kljucu koji se koristi u prvoj iteraciji DES dekripcijskog algoritma) Q: Dokazite da za DES vrijedi m = DK(EK(m)). Osnovne funkcije “S-box Function” f(.) o o o Random i nelinearna distribucija plaintext poruka preko ciphertext prostora poruka (na ovaj nacin se eliminira npr. napad koristenjem relativne frekvencije plaintext-a) Vazno je naglasiti da funkcija f(.) ne mora biti reverzibilna Q: Pokazite da DES funkcionira cak i u slucaju da f(.) nije reverzibilna funkcija. ::19:: Toy example: DES encryption (2 rounds) m (64) Initial Permutation (32) (32) L0 R0 f K 1 =g 1(K) plaintext m L1 m R1 f L2 R2 R2 L2 DES (2 rounds) K 2 =g 2(K) secret key K E K c = EK(m) c ciphertext c Initial Permutation-1 c (64) ::20:: Toy example: DES encryption (2 rounds) m (64) Initially: (L0, R0) <-- IP(m) Initial Permutation (32) (32) L0 1. L1 = R0 R1 = L0 f(K1, R0) 2. L2 = R1 = L0 f(K1, R0) R2= L1 f(K2, R1) = R0 f(K2, R1) = R0 f(K2, L0 f(K1, R0)) R0 f K 1 =g 1(K) L1 R1 f L2 R2 R2 L2 K 2 =g 2(K) End: c <-- IP-1(R2, L2) c <-- IP-1(R0 f(K2, L0 f(K1, R0)), L0 f(K1, R0)) R2 L2 Initial Permutation-1 c (64) ::21:: Toy example: DES decryption (2 rounds) c (64) Initial Permutation (32) (32) L0 R0 f K 2 =g 2(K) ciphertext c L1 c R1 f L2 R2 R2 L2 DES-1 (2 rounds) K 1 =g 1(K) secret key K D K m = DK(c) m plaintext m Initial Permutation-1 m (64) ::22:: Toy example: DES decryption (2 rounds) c (64) Initially: (L0, R0) <-- IP(c) (L0, R0) <-- IP(IP-1(R2, L2))=(R2, L2) Initial Permutation (32) (32) L0 R0 f 1. L1 = R0 = L2 = R1 R1 = L0 f(K2, R0) = R2 f(K2, L2) = L1 f(K2, R1) f(K2, L2) = L1 f(K2, R1) f(K2, R1) = L1 2. L2 = R1 = L1 = R0 R2 = L1 f(K1, R1) = R1 f(K1, L1) = L0 f(K1, R0) f(K1, L1) = L0 K 2 =g 2(K) L1 R1 f K 1 =g 1(K) L2 R2 End: m <-- IP-1(R2, L2) R2 L2 m <-- IP-1(L0, R0)=IP-1(IP(m))=m Initial Permutation-1 m (64) o DES satisfies: m=DK(EK(m)) ::23:: Sigurnost DES-a o DES je otporan na nekoliko znacajnih kriptoanalitickih napada o o o o Najveca kritika DES-a vezana je uz duzinu enkripcijskog kljuca (samo 56 bitova) o o o Linear cryptanalysis Differential cryptanalysis Zahvaljujuci nelinearnosti “S-box Function” f(.) 1993. – VLSI DES key search machine (US$1,000,000) pronalazi DES kljuc za 3.5 sata (teoretska analiza) 1998. – DES Cracker (US$250,000) pronasao DES kljuc nakon 56 sati! Jedan od nacina za rjesavanje problema (pre)kratkog kljuca je tzv. “encryption-decryption-encryption-triple DES” o o o o o Enkripcija: c EK1(DK2(EK1(m))) Dekripcija: m DK1(EK2(DK1(c))) Povecava se prostor kljuca K Kompatibilnost sa single key DES-om (K1=K2) Mogucnost koristenja tri razlicita kljuca (npr. PGP) ::24:: Advanced Encryption Standard (AES) o 1997. US National Institute of Standards and Tehnology (NIST) objavio je natjecaj za novi enkripcijski standard koji bi zamjenio DES o o o 1998. odabrana grupa od 15 algoritama kandidata za AES 2000. NIST objavljuje da je izabrao Rijndael za AES o o Rijndael su dizajnirala dva belgijska kriptografera: Daemen i Rijmen Rijndael o o o Novi algoritam bi se zvao (se zove) AES Blok sifra koja podrzava kljuceve od 128, 192 i 256 bitova Nedavno otkriven napad zasnovan na Differential Power Analyisis (DPA) AES se koristi npr. kod poboljsane zastite lokalnih bezicnih mreza (IEEE 802.11e standard) ::25:: Kriptografija simetričnog (tajnog) ključa Osnovni modovi rada blok sifri Osnovni modovi rada blok sifri o o o o Blok sifra procesira (enkriptira ili dekriptira) poruku u blokovima fiksne duzine U praksi je duzina skupa poruka koju treba procesirati puno duza od fiksnog bloka sa kojim radi sifra (npr., DES radi sa blokovima od 64 bita) Blok sifra “razbije” ulaznu poruku u seriju sekvencijalnih blokova odgovarajuce duzine (npr. 64 bita), te procesira ove blokove po principu “jedan po jedan” Ovisno o tome kako blok sifra procesira sekvencu blokova, razlikujemo slijedece osnovne modove rada blok sifri: o o o o o Electronic Codebook (ECB) Cipher Block Chaining (CBC) Cipher Feedback (CFB) Output Feedback (OFB) Counter (CTR) mode ::27:: Electronic Codebook (ECB) Mode o Notacija: o o o o o P1 P2 ... Pm: m uzastopnih segmenata plaintext poruke na ulazu promatranog operacijskog moda Velicina svakog segmenta poruke Pi je n, gdje je n duzina bloka sa kojim radi promatrana sifra C1 C2 ... Cm: m uzastopnih segmenata ciphertexta na izlazu promatranog operacijskog moda EK(.) i DK(.) su enkripcijski i dekripcijski algoritmi promatrane sifre ECB o o Enkripcija: Ci EK (Pi), i = 1,2,...,m Dekripcija: Pi DK (Ci), i = 1,2,...,m . P1 K E C1 P2 K E C2 Pm … K E Cm ::28:: Svojstva ECB moda o Isti plaintext blok rezultira istim ciphertext blokom (koristeci isti enkripcijski kljuc) o o o Poruke koje se enkriptiraju obicno imaju regularan format Specijalna zaglavlja, string 00...0, itd. Segmenti poruke su enkriptirani neovisno o drugim segmentima o o Zamjenom ciphertext blokova, zamjenjuju se odgovarajuci plaintext blokovi Ciphertext blokovi se mogu “korpirati” iz jedne enkriptirane poruke u drugu o Propagacija greske: greska u jednom bitu ciphertext bloka ne utjece na ostale ciphertext blokove o Generalno: ne preporuca se za poruke koje su duze od jednog bloka, ili ako se enkripcijski kljucevi koriste za enkripciju vise od jednog bloka ::29:: Cipher Block Chaining (CBC) Mode o Enkripcija P1 P2 P3 IV + + + K E K C1 o E K C2 E Pm … Cm-1 + K E C3 Cm Dekripcija C1 K D IV + P1 C2 K D C3 Cm D K D + + Cm-1 + P2 P3 K Pm ::30:: Svojstva CBC moda o o Enkripcija dva ista plaintexta istim kljucem, ali sa razlicitim vrijednostima Inicijalizacijskog Vektora (IV) daje razlicite ciphertext-ove Ciphertext blok Cj ovisi o Pj i svim prethodnim plaintext blokovima o o o o Ako napadac pokusa zamjeniti ciphertext blokove, utjecati ce na dekripciju Medjutim, ovisnost o prethodnim plaintext blokovima je isljucivo preko prethodnog ciphertext bloka Cj-1 Stoga za ispravnu dekripciju ciphertext bloka potreban je samo ispravan prethodni ciphertext blok Propagacija greske: o Greska u jednom bitu u bloku Cj ima utjecaj samo na Pj i Pj+1 plaintext blok o o Napadac moze izazvati kontorliranu promjenu bitova u Pj+1 plaintext block (Pj ne moze kontrolirati) Self-synchronizing o Oporavak od greski u bitovima ::31:: Integritet IV u CBC modu o Inicijalizacijski vektor (IV) ne mora biti tajan, ali njegov integritet mora biti zasticen o o Maliciozne promjene IV-a dozvoljavaju napadacu da uzrokuje kontrolirane promjene u prvom plaintext bloku Potencijalno rjesenje o Enkriptirati IV (koristeci npr. ECB) i poslati gan na pocetku CBC enkriptirane poruke ::32:: Cipher Feedback (CFB) Mode o Enkripcija: o initialized with IV (s) (s) shift register (n) Dekripcija initialized with IV shift register (n) (n) (n) E K E K (n) (n) select s bits select s bits (s) (s) Pi (s) + (s) Ci Ci (s) + (s) Pi ::33:: Cipher Feedback (CFB) Mode (s) (s) initialized with IV I1 I2 shift register (n) shift register (n) (n) (n) select s bits (s) + E K (n) select s bits (s) (n) E K (n) P1 shift register (n) (n) E K I3 select s bits (s) (s) P2 (s) + (s) (s) P3 (s) + (s) C1 C2 C3 ::34:: Svojstva CFB moda o o o Enkripcijom istih plaintext-ova istim kljucem, ali razlicitim IVovima daje razlicite ciphertext-ove IV moze biti poslan neenkriptiran (kao plaintext) Ciphertext blok Cj ovisi o Pj i svim prethodnim plaintext blokovima o o o Stoga, zamjena ciphertext blokova utjece na dekripciju Ispravna dekripcija ciphertext bloka zahtjeva da su svi prethodni n/s ciphertext blokovi ispravni Propagacija greske: o Greska u jednom bitu ciphertext bloka Cj utjece na dekripciju tog bloka kao i sljedecih n/s ciphertext blokova o o o Pj’ ce imati greske gdje i Cj, dok svi ostali plaintext-ovi ce biti random Stoga, napadac moze uzrokovati kontrolirane promjene u j-tom plaintext bloku Self-synchronizing o Ali zahtjeva n/s blokova ciphertexta da ispravi greske u bitovima ::35:: Output Feedback (OFB) Mode o Enkripcija: o initialized with IV initialized with IV (s) shift register (n) Dekripcija (n) (n) E K E K (n) (n) select s bits select s bits (s) (s) Pi (s) + (s) shift register (n) (s) Ci Ci (s) + (s) Pi ::36:: Output Feedback (OFB) Mode (s) (s) initialized with IV I1 I2 shift register (n) (n) (s) C1 (n) select s bits (s) + E K (n) select s bits (s) (n) E K (n) P1 shift register (n) (n) E K I3 shift register (n) select s bits (s) P2 (s) + (s) C2 (s) P3 (s) + (s) C3 ::37:: Svojstva OFB moda o o Enkripcijom istih plaintext-ova istim kljucem, ali razlicitim IVovima daje razlicite ciphertext-ove IV moze biti poslan neenkriptiran (kao plaintext) o o Ciphertext blok Cj ovisi samo o Pj o o Medjutim, ako napadac promijeni IV, sifra se ne moze oporaviti (CFB mod moze!) Ali za raziliku od ECB, zamjena ciphertext blokova ima utjecaj na dekripciju Propagacija greske: o Greska u jednom bitu ciphertext bloka Cj utjece samo na dekripciju bloka Cj o o o Pj’ ima greske gdje i Cj Stoga, napadac moze uzrokovati kontrolirane promjene u j-tom plaintext bloku Oporavak od greski: o o Moze se oporaviti od greski na bitovima Ali ne moze ako je IV modificiran ::38:: Counter (CTR) mode o Enkripcija: o Dekripcija counter + i counter + i (n) K (n) E K (n) Pi (n) + E (n) (n) Ci Ci (n) + (n) Pi ::39:: Svojstva CTR moda o o “counter” mora biti razlicit za svaki blok j-ti blok moze biti dekriptiran neovisno o drugim blokovima o o o o Moze se paralelizirati Random access (dekriptiramo bilo koji blok) Vrijednosti koje se XOR-aju sa plaintext-om mogu biti izracunate unaprijed (preprocessing) Jako efikasan za implementaciju (software-sku i hardware-sku) ::40::