Németh L. Zoltán SZTE, Számítástudomány Alapjai Tanszék 2012 tavasz

Slides:



Advertisements
Hasonló előadás
TÖMÖRÍTÉS. Fogalma A tömörítés egy olyan eljárás, amelynek segítségével egy fájlból egy kisebb fájl állítható elő. A tömörítési arány függ a fájl típusától,
Advertisements

Szabadtéri rendezvények. A TvMI vonatkozik: OTSZ szerinti szabadtéri rendezvényekre szabadtéri rendezvény: az 1000 főt vagy az 5000 m 2 területet meghaladó,
Beruházási és finanszírozási döntések kölcsönhatásai 1.
„Internetes kommunikáció” pótkurzus Készítette: Tóth Tímea Szak: Tantárgykódja: Tanár neve:
Projekt módszer óvodai alkalmazásának egy lehetséges változata Encsen „Jó gyakorlat” bemutatása Sárospatak, Léportné Temesvári Ildikó és Zsiros.
Napenergia-hasznosítás az épületgépészetben Konferencia és kiállítás november 9. Nagy létesítmények használati melegvíz készítő napkollektoros rendszereinek.
Internet tudományos használata
Magyar információbiztonsági szabványok
Az IoT biztonsága hardveroldalon kezdődik
3. tétel.
Valószínűségi kísérletek
SmartCard protokoll formális verifikációja
WE PROVIDE SOLUTIONS.
Alhálózat számítás Osztályok Kezdő Kezdete Vége Alapértelmezett CIDR bitek alhálózati maszk megfelelője A /8 B
Becslés gyakorlat november 3.
A titkosítás története
A CMMI modell alkalmazása SOA-környezetben
Kriptográfia alapjai RSA kódolás, Digitális aláírás
Scilab programozás alapjai
A kérdőívező diktatúra
ResearcherID bemutatása
KRE-AKTÍV motivációs projekt
Algoritmusok és Adatszerkezetek I.
Triggerek Kalmár György.
Alice, Bob és Carol A mai titkosítás hősei
Környezeti teljesítményértékelés
Hipotézisvizsgálat.
Erők, rugalmas erő, nehézségi erő, súlyerő
Bevezetés Az ivóvizek minősége törvényileg szabályozott
Projektmunka Földrajzolok
Adatbázis-kezelés (PL/SQL)
Bevezetés az informatikába
dr. Jeney László egyetemi adjunktus Európa regionális földrajza
VB ADATTÍPUSOK.
Számítógépek felépítése 6. előadás virtuális tárkezelés
Algoritmusok és Adatszerkezetek I.
Számítógépes Hálózatok
Multiplikációs rendezvény – Békéscsaba
A nagyváradi villamosok megbízhatósági modellezése
Mobilkommunikáció Eszközök és hálózatok
Túlfeszültség védelem a hálózaton
B M Java Programozás 4. Gy: Java GUI IT A N Tipper, MVC kalkulátor
Dr. Varga Beatrix egy. docens
Új pályainformációs eszközök - filmek
Készletek kezelése építőipari logisztikai feladatok során
3. előadás.
Megerősítéses tanulás Mély Q-hálók
TÁRGYI ESZKÖZÖK ELSZÁMOLÁSA
Járműtelepi rendszermodell 2.
További rendező és kereső algoritmusok
Az Ericsson Magyarország első negyedszázada
Matematika 11.évf. 1-2.alkalom
Dr. Németh L. Zoltán SZTE, Számítástudomány Alapjai Tanszék 2018 ősz
Dr. Németh L. Zoltán SZTE, Számítástudomány Alapjai Tanszék 2012
Dr. Németh L. Zoltán SZTE, Számítástudomány Alapjai Tanszék 2012
Matematika II. 5. előadás Geodézia szakmérnöki szak 2015/2016. tanév
SQL jogosultság-kezelés
Dr. Vasas Lívia, PhD december
Mintaillesztés Knuth-Morris-Pratt (KMP) algoritmus
Tájékoztató az EPER pályázati folyamatáról
Megerősítéses tanulás Mély Q-hálók
Számold meg a fekete pontokat!
TITKOSÍTÓ ALGORITMUSOK
3. előadás.
Áramlástan mérés beszámoló előadás
Megerősítéses tanulás Mély Q-hálók
A sas törénete… A bemutatót készítette: Mike
KOHÉZIÓS POLITIKA A POLGÁROK SZOLGÁLATÁBAN
Gazdasági mediáció Economic mediation „Mi a legfontosabb kérdés
Vasas Lívia, PhD 2019 Témaközpontú irodalmazás, publikációs stratégia, tudományos közösségi hálók Közlési kötelezettség,
Előadás másolata:

Németh L. Zoltán SZTE, Számítástudomány Alapjai Tanszék 2012 tavasz Kriptográfia Hatodik előadás Nyilvános kulcsú kriptográfia I. Az RSA Lecture slides by Lawrie Brown for “Cryptography and Network Security”, 4/e, by William Stallings, Chapter 1 “Introduction”. Németh L. Zoltán SZTE, Számítástudomány Alapjai Tanszék 2012 tavasz

Titkos kulcsú kriptográfia (Private-Key Cryptography) a hagyományos: szimmetrikus/titkos/egy kulcsú kriptográfiában egy titkosító/megfejtő kulcs van ha nem is szó szerint egyezik meg a kettő, a titkosító és a megfejtő kulcs, egymásból könnyen kiszámítható a kulcsot csak a feladó és a címzett ismeri a kulcs titokban tartásán alapszik a biztonság a feleknek előzetesen kommunikálni kell egymással a titkos kulcsot ez szimmetrikus, a felek szerepe egyenrangú: mindketten tudnak titkosítani és megfejteni is ezért nem védi a feladót a címzettel szemben attól, hogy a címzett a kapott üzenetet meghamísítva azt állítsa, hogy az a feladótól jött So far all the cryptosystems discussed, from earliest history to modern times, have been private/secret/single key (symmetric) systems. All classical, and modern block and stream ciphers are of this form, and still rely on the fundamental building blocks of substitution and permutation (transposition).

Nyilvános kulcsú kriptográfia (Public-Key Cryptography) talán a legjelentősebb találmány a kriptográfia 3000 éves történetében két kulcs van egy nyilvános (public key) egy magán (private key) /néhol: saját kulcs v. titkos kulcs/ a nyilvános kulccsal lehet titkosítani de az üzenetet csak a magánkulccsal lehet megfejteni így például maga a küldő sem tudja visszafejteni az üzenetet, ha mondjuk elfelejtette, hogy mit titkosított Will now discuss the radically different public key systems, in which two keys are used. The development of public-key cryptography is the greatest and perhaps the only true revolution in the entire history of cryptography. It is asymmetric, involving the use of two separate keys, in contrast to symmetric encryption,which uses only one key. Anyone knowing the public key can encrypt messages or verify signatures, but cannot decrypt messages or create signatures, counter-intuitive though this may seem. It works by the clever use of number theory problems that are easy one way but hard the other. Note that public key schemes are neither more nor less secure than private key (security depends on the key size for both), nor do they replace private key schemes (they are too slow to do so), rather they complement them. Both also have issues with key distribution, requiring the use of some suitable protocol.

Nyilvános kulcsú kriptográfia II (Public-Key Cryptography) a nyilvános kulcsot nyilvánosságra lehet hozni és legalább a küldő számára nyilvánosságra kell hozni (de ez nem igényeli hogy biztonságos kommunikáció legyen) bárki lehet feladó, aki a nyilvános kulcsot megkapja a számelmélet számítási szempontból ,,egyik irányban nehéz -- másik irányban könnyű’’ problémáin alapszik (pl. faktorizáció, diszkrét log.) kiegészíti és nem helyettesíti a titkosított kulcsú kriptográfiát Will now discuss the radically different public key systems, in which two keys are used. The development of public-key cryptography is the greatest and perhaps the only true revolution in the entire history of cryptography. It is asymmetric, involving the use of two separate keys, in contrast to symmetric encryption,which uses only one key. Anyone knowing the public key can encrypt messages or verify signatures, but cannot decrypt messages or create signatures, counter-intuitive though this may seem. It works by the clever use of number theory problems that are easy one way but hard the other. Note that public key schemes are neither more nor less secure than private key (security depends on the key size for both), nor do they replace private key schemes (they are too slow to do so), rather they complement them. Both also have issues with key distribution, requiring the use of some suitable protocol.

Miért jó a nyilvános kulcsú kriptográfia? a titkos kulcsú kriptográfia két alap problémájára ad választ: kulcselosztás elektronikus aláírások az első nyilvános publikációja: Whitfield Diffie és Martin Hellman (Stanford), 1976 ismert volt, bár titokban tartották 1999-ig: James Ellis (UK), 1970 sőt állítólag az NSA már a 60-as évek közepén ismerte The concept of public-key cryptography evolved from an attempt to attack two of the most difficult problems associated with symmetric encryption: key distribution and digital signatures. The idea of public key schemes, and the first practical scheme, which was for key distribution only, was published in 1977 by Diffie & Hellman. The concept had been previously described in a classified report in 1970 by James Ellis (UK CESG) - and subsequently declassified [ELLI99]. Its interesting to note that they discovered RSA first, then Diffie-Hellman, opposite to the order of public discovery! There is also a claim that the NSA knew of the concept in the mid-60’s [SIMM93].

Public-Key Cryptography nyílt kulcsú/két kulcsú/aszimmetrikus titkosításnak is nevezik a kulcsok szerepe: a nyilvános kulcsot titkosításra és a magánkulccsal készített aláírás ellenőrzésére lehet használni a magánkulccsal (amit csak a címzett ismer) a megfejteni lehet, és aláírást készíteni természetesen másik irányú titkos vagy nem titkos üzenetküldéshez a felek szerepe aszimmetrikus: a nyilvános kulcs tulajdonosa (a feladó) csak titkosítani és aláírást ellenőrizni tud, megfejteni vagy aláírni nem ezért aláíráshoz magánkulcs kell, de üzenet titkosításához elég a küldő nyilvános kulcsát ismerni Emphasize here the radical difference with Public-Key Cryptography is the use of two related keys but with very different roles and abilities. Anyone knowing the public key can encrypt messages or verify signatures, but cannot decrypt messages or create signatures, all thanks to some clever use of number theory.

A nyilvános kulcsú titkosítás vázlata Stallings Figure 9.1a “Public-Key Cryptography”, shows that a public-key encryption scheme has six ingredients: plaintext, encryption algorithm, public & private keys, ciphertext & decryption algorithm. Consider the following analogy using padlocked boxes: traditional schemes involve the sender putting a message in a box and locking it, sending that to the receiver, and somehow securely also sending them the key to unlock the box. The radical advance in public key schemes was to turn this around, the receiver sends an unlocked box (their public key) to the sender, who puts the message in the box and locks it (easy - and having locked it cannot get at the message), and sends the locked box to the receiver who can unlock it (also easy), having the (private) key. An attacker would have to pick the lock on the box (hard).

A két kulcs viszonya Feltételek a nyilvános kulcsú titkosítás működéshez: a nyilvános kulcs ismeretében hatékonyan lehet titkosítani a magánkulcs ismeretében hatékonyan lehet üzenetet megfejteni jelenlegi algoritmusainkkal reménytelenül sok ideig tart a nyilvános kulcsból a magánkulcsot kiszámítani (a titkosító/megfejtő algoritmust ismeretét persze feltételezzük) a magán kulcs ismerete nélkül szintén reménytelen számítási feladat az üzenet megfejtése hatékonyan tudunk véletlen nyilvános-magán kulcspárokat generálni néhány algoritmusnál (pl. RSA) hasznos, hogy a magánkulccsal is lehet titkosítani, ami csak a nyilvános kulccsal fejthető meg (ezen alapul az aláírás) Asymmetric algorithms rely on one key for encryption and a different but related key for decryption. These algorithms have the following important characteristic: that it is computationally infeasible to determine the decryption key given only knowledge of the cryptographic algorithm and the encryption key. That is public key schemes utilise problems that are easy (P type) one way but hard (NP type) the other way, eg exponentiation vs logs, multiplication vs factoring. In addition, some algorithms, such as RSA, are also able to use either key as public & other private.

Nyilvános kulcsú titkosítás és aláírás (elvi vázlat) Stallings Figure 9.4 “Public-Key Cryptosystems: Secrecy and Authentication” illustrates the essential elements of a public-key encryption scheme. Note that public-key schemes can be used for either secrecy or authentication, or both (as shown here). In this case, separate key pairs are used for each of these purposes. The receiver owns and creates secrecy keys, sender owns and creates authentication keys. In practice typically DO NOT do this, because of the computational cost of public-key schemes. Rather encrypt a session key which is then used with a block cipher to encrypt the actual message, and separately sign a hash of the message as a digital signature - this will be discussed more later. PR = private, magánkulcs, PU = public, nyilvános kulcs

A nyilvános kulcsú kriptográfia alkalmazásai 3 kategóriába osztható: titkosítás/megfejtés (bizalmasságot ad) elektronikus aláírások (hitelesítést ad) kulcscsere (kapcsolatkulcsok (session keys) cseréjére) néhány algoritmus mindhárom feladatra alkalmas, mások csak egy-két célra használhatók Public-key systems are characterized by the use of a cryptographic type of algorithm with two keys. Depending on the application, the sender uses either the sender’s private key or the receiver’s public key, or both, to perform some type of cryptographic function. In broad terms, we can classify the use of public-key cryptosystems into the three categories: • Encryption/decryption: The sender encrypts a message with the recipient’s public key. • Digital signature: The sender “signs”a message with its private key, either to the whole message or to a small block of data that is a function of the message. • Key exchange: Two sides cooperate to exchange a session key. Several different approaches are possible, involving the private key(s) of one or both parties. Some algorithms are suitable for all three applications, whereas others can be used only for one or two of these applications.

A nyilvános kulcsú rendszerek biztonsága I nem biztonságosabbak vagy kevésbé biztonságosak a titkos kulcsú rendszereknél, a biztonság a kulcs hosszától is függ mint a titkos kulcsú rendszereknél itt is a teljes kipróbálás (brute force) feltörés legalább is elméletben mindig lehetséges de a gyakorlatban használt kulcsok a teljes kipróbálás meghiúsításánál jóval hosszabbak (> 512 bitesek) mert a titkosítás alapját képező számelméleti probléma nehéz irányának (pl. faktorizáció) kiszámítása ellen kell védekeznünk pl. 512-bit RSA ≈ 64-bit DES, 1024-bit RSA ≈ 80-bit DES Public key schemes are no more or less secure than private key schemes - in both cases the size of the key determines the security. Note also that you can't compare key sizes - a 64-bit private key scheme has very roughly similar security to a 512-bit RSA - both could be broken given sufficient resources. But with public key schemes at least there is usually a firmer theoretical basis for determining the security since its based on well-known and well studied number theory problems.

A nyilvános kulcsú rendszerek biztonsága II a biztonság a „könnyű irány” (titkosítás) és a „nehéz irány” (feltörés) közötti elég nagy számítási különbségen alapszik pl. RSA esetében könnyű irány = szorzás, (illetve hatványozás mod p) nehéz irány = faktorizáció (prímtényezőkre bontás) általánosságban a ,,nehéz irány’’ is algoritmussal megoldható, de elég nehézzé kell tennünk ahhoz, hogy a gyakorlatban kivitelezhetetlen legyen ehhez nagy (több százjegyű) számokra van szükség ezért a nyilvános kulcsú kriptográfia jóval lassabb a titkos kulcsúnál Public key schemes are no more or less secure than private key schemes - in both cases the size of the key determines the security. Note also that you can't compare key sizes - a 64-bit private key scheme has very roughly similar security to a 512-bit RSA - both could be broken given sufficient resources. But with public key schemes at least there is usually a firmer theoretical basis for determining the security since its based on well-known and well studied number theory problems.

RSA Rivest, Shamir & Adleman (MIT), 1977 a legismertebb és legelterjedtebb nyilvános kulcsú algoritmus véges test feletti hatványozáson alapszik valamilyen n modulusra nézve ab (mod n) kiszámításának időigénye O((log n)3) ez polinomiális a bemenet hosszának (log n) függvényében /könnyű/ a modulus nagy szám (pl. 1024 bit ) a biztonságát a faktorizáció nehézsége adja erre ma csak superpolinomiális algoritmusok ismertek /nehéz/, pl. GNFS időigénye RSA is the best known, and by far the most widely used general public key encryption algorithm, and was first published by Rivest, Shamir & Adleman of MIT in 1978 [RIVE78]. Since that time RSA has reigned supreme as the most widely accepted and implemented general-purpose approach to public-key encryption. It is based on exponentiation in a finite (Galois) field over integers modulo a prime, using large integers (eg. 1024 bits). Its security is due to the cost of factoring large numbers. ahol n a bemenet hossza

RSA Kulcsgenerálás Minden felhasználónak saját nyilvános/magán kulcspárra van szüksége, amit így generálhatunk: válasszunk két nagy prímszámot véletlenszerűen: p, q számítsuk ki a modulust n=p·q ekkor φ(n)=(p-1)(q-1) ahol φ(n) az Euler féle φ függvény az {1,…,n} számok közül az n-hez relatív prímek száma, pl φ(6)= 2 válasszunk egy olyan e számot, melyre 1<e<φ(n), (e,φ(n))=1 számítsuk ki azt a d értékét, melyre e·d=1 mod φ(n) and 0≤d≤n a nyilvános kulcs: PU={e,n} a titkos kulcs: PR={d,n} p és q értékét szintén titokban kell tartani, vagy meg kell semmisíteni, bár sebesség szempontjából, még jó jöhet RSA key setup is done once (rarely) when a user establishes (or replaces) their public key, using the steps as shown. The exponent e is usually fairly small, just must be relatively prime to ø(n). Need to compute its inverse mod ø(n) to find d. It is critically important that the factors p & q of the modulus n are kept secret, since if they become known, the system can be broken. Note that different users will have different moduli n.

Az RSA használata az nyílt szöveget először 1 és n közötti számokkal kell kódolnunk, legyen M a titkosítandó blokk értéke, ahol 0≤M<n az M üzenet titkosításához a küldő a címzett PU={e,n} nyilvános kulcsval kiszámítja a C = Me mod n értéket a C üzenet megfejtéséhez a címzett a PR={d,n} magánkulcsát hasznáva kiszámítja az Cd mod n értéket, ami éppen M The actual RSA encryption and decryption computations are each simply a single exponentiation mod (n). Note that the message must be smaller than the modulus. The “magic” is in the choice of the exponents which makes the system work.

Miért működik ? az Euler-Fermat tétel szerint az RSA esetében: aφ(n) mod n = 1 amennyiben (a,n)=1 az RSA esetében: n=p·q φ(n)=(p-1)(q-1) e és d egymás inverzei mod φ(n) ezért e·d=1+k·φ(n) valamilyen k-ra ezért ha (M,n) = 1, akkor Cd = Me·d = M1+k·ø(n) = M1 ·(Mø(n))k = M1 ·(1)k = M1 = M mod n az (M,n) ≠ 1, azaz az M=p vagy M=q eset hasonlóan igazolható (HF!) Can show that RSA works as a direct consequence of Euler’s Theorem, so that raising a number to power e then d (or vica versa) results in the original number!

RSA minipélda - Kulcsgenerálás Választott prímek: p=17 és q=11 Számítás: n = pq =17·11=187 Számítás: φ(n)=(p–1)(q-1)=16·10=160 Választás e: melyre (e,160)=1; legyen e=7 Számítás d: melyre de=1 mod 160 és d < 160 Most d=23 mert 23·7=161=10·160+1 Nyilvános kulcs: PU={7,187} Magánkulcs: PR={23,187} Here walk through example RSA key generation using “trivial” sized numbers. Selecting primes requires the use of a primality test. Finding d as inverse of e mod ø(n) requires use of Euclid’s Inverse algorithm (see Ch4)

RSA minipélda – titkosítás/megfejtés a példát folytatva legyen a nyílt szöveg M = 88 M szabályos blokk, mert 88<187 titkosítás: C = 887 mod 187 = 11 megfejtés: M = 1123 mod 187 = 88 Then show that the encryption and decryption operations are simple exponentiations mod 187. Rather than having to laborious repeatedly multiply, can use the "square and multiply" algorithm with modulo reductions to implement all exponentiations quickly and efficiently (see next).

Gyors hatványozás modulo n az iterált négyzetreemelések módszerével (Square and Multiply Algorithm) gyors hatékony algoritmus (moduláris) hatványozásra a kitevő bináris reprezentációját tekintjük az alapot ismételten négyzetre emeljük és ezen hatványok közül azokat szorozzuk össze, amelyek a hatványérték kiszámításhoz valóban kellenek, mert a kitevő megfelelő bitje 1-es így O(log2 n) szorzás kell, ha a kitevő legfeljebb n pl. 3135 = 3128 · 34 · 31 = 5 · 4 · 3 = 5 mod 11 mert 31=3, 32=9, 34=4, 38=5, 316=3, 332=9, 364=4 , 364=5, 3128=5 To perform the modular exponentiations, you can use the “Square and Multiply Algorithm”, a fast, efficient algorithm for doing exponentiation. The idea is to repeatedly square the base, and multiply in the ones that are needed to compute the result, as found by examining the binary representation of the exponent.

ab mod n kiszámítása, ahol b=bk…b0 c = 0; f = 1 for i = k downto 0 do c = 2 * c f = (f * f) mod n if bi == 1 then c = c + 1 f = (f * a) mod n return f State here one version of the “Square and Multiply Algorithm”, from Stallings Figure 9.7. ??? Megj: c –re nincs szükség csak szemlélteti a kitevő aktuális értékét

A titkosítás hatékonyan megvalósítható a titkosítás e kitevőre hatványozás mod n Ezért ha e kicsi, a titkosítás gyorsabb gyakori választás: e=65537=(216+1) vagy szóba jöhet: e=3 or e=17 de ha e túl kicsi (pl. e=3) akkor feltörhető ha e-t rögzítjük, akkor (e, φ(n))=1-t n megválasztásával kell biztosítanunk, pl. elutasítva minden p-t és q-t melyekre p-1 és q-1 nem relatív prímek e-hez To speed up the operation of the RSA algorithm using the public key, can choose to use a small value of e (but not too small, since its then vulnerable to attack). Must then ensure any p or q chosen are relatively prime to the fixed e (and reject and find another if not), for system to work. a kínai maradéktétel és 3 különböző modulushoz tartozó üzenet segítségével ???

A megfejtés is hatékony a megfejtés d-dik hatványra emelés d valószínűleg nagy szám, különben a rendszer nem biztonságos alkalmazható a kínai maradéktétel a hatványérték mod p majd mod q külön kiszámításához, majd a részeredmények összekombinálásához ez kb. 4 –szer gyorsabb mint a direkt módszeronly csak a titkos kulcs, pontosabban p és q ismerője tudja ezt a gyorsítást használni To speed up the operation of the RSA algorithm using the private key, can use the Chinese Remainder Theorem (CRT) to compute mod p & q separately, and then combine results to get the desired answer. This is approx 4 times faster than calculating “C^d mod n” directly. Note that only the owner of the private key details (who knows the values of p & q) can do this, but of course that’s exactly where help is needed, since if e is small then d will be likely be large!

RSA kulcsgenerálás elmélete I Az RSA kulcsaihoz szükséges: két nagy véletlen prímszám meghatározása: p és q e vagy d egyikének kiválasztása, és a másik kiszámítása p és q nem lehet az n = p·q szorzatból könnyen kiszámítható pl. nem lehet az egyik sem túl kicsi nem eshetnek közel a n négyzetgyökéhez p-1-nek és q-1-nek is kell, hogy legyen nagy prímosztója de (p-1,q-1) kicsi legyen Before the application of the public-key cryptosystem, each participant must generate a pair of keys, which requires finding primes and computing inverses. Both the prime generation and the derivation of a suitable pair of inverse exponents may involve trying a number of alternatives. Typically make random guesses for a possible p or q, and check using a probabalistic primality test whether the guessed number is indeed prime. If not, try again. Note that the prime number theorem shows that the average number of guesses needed is not too large. Then compute decryption exponent d using Euclid’s Inverse Algorithm, which is quite efficient.

RSA kulcsgenerálás elélete II általában a prímeket véletlen generálással + valószínűségi teszteléssel állítják elő Fermat teszt (néha hibás eredményt ad) Miller-Rabin teszt (valószínűségi teszt) Solovay-Strassen teszt (valószínűségi teszt) AKS teszt (determinisztikus, elméleti) ezért PRÍMEKP (2004-ben!) Ld: bonyolultságelmélet illetve http://en.wikipedia.org/wiki/Primality_test a kitevők e, d egymás inverzei mod φ(n) egymásból és φ(n)-ből az Euklidesz-i algoritmussal számíthatók Before the application of the public-key cryptosystem, each participant must generate a pair of keys, which requires finding primes and computing inverses. Both the prime generation and the derivation of a suitable pair of inverse exponents may involve trying a number of alternatives. Typically make random guesses for a possible p or q, and check using a probabalistic primality test whether the guessed number is indeed prime. If not, try again. Note that the prime number theorem shows that the average number of guesses needed is not too large. Then compute decryption exponent d using Euclid’s Inverse Algorithm, which is quite efficient.

Az RSA biztonsága lehetséges támadási típusok ellene: a kulcsok teljes kipróbálása (kivitelezhetetlen a számok nagysága miatt) matematikai támadások időméréses támadások (a megfejtő algoritmuson) választott titkos szöveg alapú támadások Note some possible possible approaches to attacking the RSA algorithm, as shown. The defense against the brute-force approach is the same for RSA as for other cryptosystems, namely, use a large key space. Thus the larger the number of bits in d, the better. However because the calculations involved both in key generation and in encryption/decryption are complex, the larger the size of the key, the slower the system will run. Will now review the other possible types of attacks. chosen ciphertext attacks (given properties of RSA) ???

Matematikai támadások matematikai támadások fajtái: faktorizáció (n–ből p és q meghatározása) φ(n) kiszámítása d direkt kiszámítása az első kettő egyforma nehéz: p és q ismeretében φ(n)=(p–1)(q-1) φ(n) és n ismeretében n =pq és φ(n)=(p–1)(q-1) p-re és q-ra megoldható sejtés, hogy d kiszámítása is a faktorizációval polinomiálisan ekvivalens We can identify three approaches to attacking RSA mathematically, as shown. Mathematicians currently believe all equivalent to factoring. See Stallings Table 9.4 for progress in factoring, where see slow improvements over the years, with the biggest improvements coming from improved algorithms. The best current algorithm is the “Lattice Sieve” (LS), which replaced the “Generalized Number Field Sieve” (GNFS), which replaced the “Quadratic Sieve”(QS). Have to assume computers will continue to get faster, and that better factoring algorithms may yet be found. Numbers of size 1024-2048 bits look reasonable at present, provided the factors meet other constraints.

A faktorizáció nehézsége a faktorizáló algoritmusok csak lassú ütemben fejlődnek (QS -> GNFS -> LS) Ld: Paul Zimmermann's factoring page 2005 májusában a rekord 200 jegyű (663 bites) szám felbontása LS (Lattice Sieve) algoritmussal pedig díjakat is lehet nyerni érte: Ld. RSA factoring challange: http://www.rsasecurity.com/rsalabs/node.asp?id=2879 így ma egy 1024 vagy inkább 2048 bites RSA biztonságos feltéve, hogy p és q,e és d a feltételeknek megfelelően és valóban véletlenül választott az algoritmus biztonságosan implementált a titkos kulcs biztonságosan tárolt We can identify three approaches to attacking RSA mathematically, as shown. Mathematicians currently believe all equivalent to factoring. See Stallings Table 9.4 for progress in factoring, where see slow improvements over the years, with the biggest improvements coming from improved algorithms. The best current algorithm is the “Lattice Sieve” (LS), which replaced the “Generalized Number Field Sieve” (GNFS), which replaced the “Quadratic Sieve”(QS). Have to assume computers will continue to get faster, and that better factoring algorithms may yet be found. Numbers of size 1024-2048 bits look reasonable at present, provided the factors meet other constraints.

Időméréses támadások (Timing Attacks) feltatálójuk Paul Kocher a 90-es évek közepén különböző műveletek időigénye eltérő pl. kis vagy nagy számmal való szorzás az IF-ek mely ága kerül végrehajtásra így a használt titkos kulcstól (kitevő!) függ a megfejtés végrehajtásának ideje az RSA erre igen érzékeny, mert a megfejtéskor a titkos kulcs a kitevő, erősen hat az időigényre védekezés ellene konstans idejű hatványozás implementálása (lassít) véletlen szünetek beiktatása blinding (megvakítás): véletlen értékkel szorzás a hatványozás előtt, majd korrigálás (csak + 2–10 %) Had a new category of attacks developed by Paul Kocher in mid-1990’s, based on observing how long it takes to compute the cryptographic operations. Timing attacks are applicable not just to RSA, but to other public-key cryptography systems. This attack is alarming for two reasons: It comes from a completely unexpected direction and it is a ciphertextonly attack. A timing attack is somewhat analogous to a burglar guessing the combination of a safe by observing how long it takes for someone to turn the dial from number to number. Although the timing attack is a serious threat, there are simple countermeasures that can be used, including using constant exponentiation time algorithms, adding random delays, or using blind values in calculations. blind values used in calculations

Választott titkos szöveg alapú támadás az RSA választott titkos szöveg alapú támadásokra sérülékeny a támadó a feltöréshez titkos szövegeket jelölhet ki, melyek megfejtését megkapja választhatjuk titkos szövegeket úgy, hogy azok elősegítsék a kriptoanalízist ellenszere: a nyíltszöveg véletlen szöveggel való feltöltése (padding) nevezetesen: Optimal Asymmetric Encryption Padding (OASP) /bonyolult/

Felhasznált irodalom Virrasztó Tamás: Titkosítás és adatrejtés: Biztonságos kommunikáció és algoritmikus adatvédelem, NetAcademia Kft., Budapest, 2004. Online elérhető: http://www.netacademia.net/book.aspx?id=1# William Stallings: Cryptography and Network Security, 4th Edition, Prentice Hall, 2006. (Chapter 9) Lawrie Brown előadás fóliái (Chapter 9) http://en.wikipedia.org/wiki/RSA