RSA-salaus on järjestelmä, joka ratkaisee sen, mitä oli aikoinaan yksi suurimmista ongelmista salaus: Miten voit lähettää jonkun koodatun viestin ilman mahdollisuus aiemmin jakaa koodia heidän kanssaan?
Tämä artikkeli opettaa sinulle kaiken mitä sinun tarvitsee tietää siitä, miten RSA-salaus on kehitetty, miten se toimii, matematiikkaa sen takana, mihin sitä käytetään sekä joitakin suurimpia turvallisuuteen liittyviä kysymyksiä, joita se kohtaa., Oppia RSA antaa sinulle joitakin perustavaa tietoa, joka auttaa sinua ymmärtämään, kuinka monta osaa meidän online-elämä ovat turvassa.
mikä on RSA-salaus?
sanotaan, että haluat kertoa ystävällesi salaisuuden. Jos olet heidän vieressään, voit vain kuiskata sen. Jos olet vastakkaisilla puolilla maata, se ei selvästikään toimi. Voit kirjoittaa se alas, jotta voit lähettää sen heille, tai käyttää puhelinta, mutta jokainen näistä kanavista on epävarma ja kuka tahansa, jolla on tarpeeksi vahva motivaatio voisi helposti siepata viestin.,
Jos salaisuus oli tarpeeksi tärkeä, sinulla ei ole riski kirjoittaa sen normaalisti–vakoojia tai rogue postin työntekijä voisi läpi teidän sähköposti. Samoin, joku voisi napauttamalla puhelimen tietämättäsi ja kirjaamalla jokaisen puhelun teet.
yksi ratkaisu salakuuntelijoiden pääsyn estämiseksi viestin sisältöön on salata se. Tämä tarkoittaa käytännössä sitä, että viestiin lisätään koodi, joka muuttaa sen sekavaksi sotkuksi. Jos koodisi on riittävän monimutkainen, niin ainoat ihmiset, jotka pääsevät käsiksi alkuperäiseen viestiin, ovat ne, joilla on pääsy koodiin.,
Jos sinulla olisi mahdollisuus jakaa koodia ystäväsi kanssa etukäteen, niin joko voit lähettää salatun viestin milloin tahansa, tietäen, että te kaksi ovat ainoat, joilla on kyky lukea viestin sisältö. Mutta entä jos sinulla ei olisi mahdollisuutta jakaa koodia etukäteen?
Tämä on yksi keskeisistä ongelmista salausta, joka on käsitelty julkisen avaimen salaus järjestelmät (tunnetaan myös nimellä epäsymmetrinen salaus), kuten RSA.
RSA-salauksella viestit salataan julkiseksi avaimeksi kutsutulla koodilla, joka voidaan jakaa avoimesti., Koska joitakin erillisiä matemaattisia ominaisuuksia RSA-algoritmi, kun viesti on salattu julkisella avaimella, se voidaan purkaa vain toinen avain, joka tunnetaan nimellä yksityinen avain. Jokaisella RSA-käyttäjällä on avainpari, joka koostuu heidän julkisista ja yksityisistä avaimistaan. Kuten nimestä voi päätellä, yksityinen avain on pidettävä salassa.
Julkisen avaimen salaus järjestelmät eroavat symmetrinen-avaimen salausta, jossa sekä salaus ja salauksen prosessi käyttää samaa yksityistä avainta., Nämä erot tekevät julkisen avaimen salauksen kuin RSA hyödyllinen kommunikoida tilanteissa, joissa on ollut mahdollisuus turvallisesti jakaa avaimet etukäteen.
Symmetric-key-algoritmeilla on omat sovelluksensa, kuten tietojen salaaminen henkilökohtaiseen käyttöön, tai silloin, kun on suojattuja kanavia, joiden kautta yksityiset avaimet voidaan jakaa.
Katso myös: julkisen avaimen salaus
missä käytetään RSA-salausta?
RSA-salausta käytetään usein yhdessä muiden salaus järjestelmät, tai digitaalisia allekirjoituksia, joka voi todistaa aitouden ja eheyden viestin., Sitä ei yleensä käytetä kokonaisten viestien tai tiedostojen salaamiseen, koska se on vähemmän tehokas ja resurssiraskaampi kuin symmetric-key-salaus.
tehdä asioita tehokkaammin, tiedosto on yleensä salattu symmetrisen avaimen algoritmia, ja sitten symmetrinen avain salataan RSA-salausta. Tässä prosessissa vain yhteisö, jolla on pääsy RSA: n yksityisavaimeen, pystyy purkamaan symmetrisen avaimen.
voimatta käyttää symmetrisen avaimen, alkuperäinen tiedosto ei voida purkaa., Tätä menetelmää voidaan käyttää pitämään viestit ja tiedostot turvassa, ottamatta liian kauan tai kuluttaa liikaa laskennallisia resursseja.
RSA-salausta voidaan käyttää useissa eri järjestelmissä. Se voidaan toteuttaa OpenSSL, wolfCrypt, cryptlib ja useita muita salauksen kirjastot.
yksi ensimmäisistä laajalti käytetty julkisen avaimen salaus järjestelmät, RSA luoneet perustan paljon meidän turvallisen viestinnän. Sitä käytettiin perinteisesti TLS: ssä ja se oli myös alkuperäinen algoritmi, jota käytettiin PGP-salauksessa., RSA: ta nähdään edelleen useissa verkkoselaimissa, sähköpostissa, VPN: ssä, chatissa ja muissa viestintäkanavissa.
RSA: ta käytetään usein myös VPN-asiakkaiden ja VPN-palvelimien välisten turvallisten yhteyksien luomiseen. Alla protokollia, kuten OpenVPN, TLS-kättelyä voi käyttää RSA-algoritmi vaihtaa avaimet ja perustaa suojatun kanavan.
taustalla RSA-salaus
Kuten alussa mainittiin tämän artikkelin, ennen kuin julkisen avaimen salaus, se oli haaste kommunikoida turvallisesti, jos siellä olisi ollut mahdollisuus turvallisesti vaihtaa avaimet etukäteen., Jos ei ollut mahdollisuus jakaa koodi ennen aikaa, tai turvallinen kanava, jonka kautta avaimet voisi olla jaettu, ei ollut mitään keinoa kommunikoida ilman uhkaa vihollisia voi siepata ja käyttää viestin sisällön.
vasta 1970-luvulla asiat alkoivat todella muuttua. Ensimmäinen merkittävä käänne kohti niin sanottua julkisen avaimen kryptografiaa julkaisi vuosikymmenen alussa James H. Ellis., Ellis ei löytänyt tapaa toteuttaa työtään, mutta hänen kollegansa Clifford Cocks laajensi sitä RSA-salaukseksi.
palapelin viimeinen pala on niin sanottu Diffie-Hellman-avainpörssi. Malcolm J. Williamson, toinen työtoveri, tajunnut järjestelmä, joka saa osapuolet jakaa salausavain, vaikka kanava oli seurata vastustajia.
Kaikki tämä työ tehtiin BRITANNIAN tiedustelupalvelun GCHQ (GCHQ), joka piti löytö luokiteltu., Osittain teknisten rajoitusten, GCHQ voinut nähdä käyttää julkisen avaimen salausta, joten kehitys istui toimettomana hyllylle pölyttymään. Vasta vuonna 1997 teos julkistettiin ja RSA: n alkuperäiset keksijät tunnustettiin.
useita vuosia myöhemmin vastaavanlaisia käsitteitä alkoi kehittyä julkisella puolella. Ralph Merkle luotu varhainen muoto julkisen avaimen salausta, joka vaikutti Whitfield Diffie ja Martin Hellman suunnittelussa Diffie-Hellman.,
Diffie ja Hellman ideat olivat puuttuu yksi tärkeä näkökohta, joka tekisi heidän työnsä perusta julkisen avaimen salausta. Tämä oli yksisuuntainen funktio, jota olisi vaikea kääntää. Vuonna 1977 Ron Rivest, Adi Shamir ja Leonard Adleman, joiden sukunimi muodossa RSA lyhenne, keksi ratkaisun jälkeen vuoden synnyttävän ongelman.
MIT-taustaiset akateemikot tekivät läpimurtonsa pääsiäisjuhlien jälkeen vuonna 1977., Yön jälkeen juominen, Rivest meni kotiin, mutta sen sijaan nukkumassa, hän vietti iltaa kuumeisesti kirjoittaa kirjan, joka virallistettiin hänen idea välttämätöntä yksi tapa toimia.
idea patentoitiin vuonna 1983 MIT: n toimesta, mutta vasta internetin alkuaikoina RSA: n algoritmi alkoi pitää laajaa käyttöönottoa tärkeänä tietoturvatyökaluna.
Miten RSA-salaus toimii?
seuraava tulee vähän yksinkertaistamista, koska liian monet lukijat ovat varmaan arpinen niiden lukion matematiikan opettaja., Jotta matematiikka ei riistäytyisi liian käsistä, yksinkertaistamme joitakin käsitteitä ja käytämme paljon pienempiä lukuja. Todellisuudessa RSA-salauksessa käytetään alkulukuja, jotka ovat suuruudeltaan paljon suurempia ja on muutamia muita komplekseja.
On olemassa useita eri käsitteitä, sinun täytyy saada pään ympärille, ennen kuin voimme selittää, miten se kaikki sopii yhteen. Näitä ovat luukun toiminnot, tuottaa alkulukuja, Carmichael totient function ja erillisten prosessien computing julkisia ja yksityisiä avaimia käytetään salausta ja salauksen prosessit.,
Ansa ovi toimii
RSA-salaus toimii alle lähtökohta, että algoritmi on helppo laskea yhteen suuntaan, mutta lähes mahdotonta kääntää. Jos sinulle esimerkiksi kerrottaisiin, että 701111 on kahden alkuluvun tuote, niin pystyisitkö selvittämään, mitkä nuo kaksi numeroa ovat?
vaikka laskimella tai tietokoneella, useimmilla meistä ei olisi mitään käsitystä siitä, mistä aloittaa, saati pystyisi selvittämään vastausta. Mutta jos kierrämme asioita, se on paljon helpompaa., Mikä on tulos:
907 x 773
Jos olet kyllästynyt tarpeeksi, et olisi voinut kiskaista esiin puhelimen tai ehkä laskea sen pääsi huomaamaan, että vastaus on aiemmin mainittu 701,111. Tämä 907 ja 773 ovat alkulukuja, että vastaus ensimmäinen kysymys, joka osoittaa meille, että tietyt yhtälöt voi olla helppo selvittää yhdellä tavalla, mutta näennäisesti mahdotonta kääntää.
Toinen mielenkiintoinen seikka tässä yhtälössä on se, että se on helppo selvittää yksi prime-numerot, jos sinulla on jo toinen, samoin kuin tuote., Jos olet kertonut, että 701,111 on seurausta 907 kerrottuna toinen alkuluku, voit selvittää sen muita prime seuraavalla yhtälöllä:
701,111 ÷ 907 = 773
Koska suhde nämä numerot on helppo laskea yhteen suuntaan, mutta uskomattoman vaikea kääntää, yhtälö tunnetaan nimellä ansa ovi toiminto. Huomaa, että vaikka edellä mainittu esimerkki on vaikea ihmisten selvittää, tietokoneet voivat tehdä operaation triviaalisti aikaa.
tämän vuoksi RSA käyttää paljon suurempia lukuja., Koko primes todellinen RSA: n toteutus vaihtelee, mutta vuonna 2048-bittinen RSA, he tulevat yhdessä tehdä avaimet, jotka ovat 617 numeroa pitkä. Auttaa sinua visualisoida, avain olisi määrä tämän koon:
Tuottaa alkulukuja
ansa ovi edellä mainittujen toimintojen pohjalta, miten julkisen ja yksityisen avaimen salaus järjestelmät toimivat. Niiden ominaisuudet mahdollistavat julkisten avainten jakamisen vaarantamatta viestiä tai paljastamatta yksityistä avainta. Niiden avulla tiedot voidaan myös salata yhdellä avaimella tavalla,joka voidaan purkaa vain toisella avaimella parista.,
ensimmäinen askel salaamalla viestin RSA on tuottaa avaimet. Tähän tarvitaan kaksi alkulukua (p ja q), jotka valitaan primaliteettitestillä. Primaliteettitesti on algoritmi, joka löytää tehokkaasti alkulukuja, kuten Rabin-Millerin primaliteettitestin.
RSA: n alkulukujen on oltava hyvin suuria ja myös suhteellisen kaukana toisistaan. Numerot, jotka ovat pieniä tai lähempänä toisiaan, on paljon helpompi murtaa. Tästä huolimatta esimerkissämme käytetään pienempiä numeroita, jotta asioita on helpompi seurata ja laskea.,
sanotaan, että primaliteettitesti antaa meille edellä käyttämämme alkuluvut 907 ja 773. Seuraava askel on löytää kimmokerroin (n), käyttäen seuraavaa kaavaa:
n = p x q
Missä p = 907 ja q = 773
Näin:
n = 907 x 773
n = 701,111
Carmichael totient function
Kun meillä on n, käytämme Carmichael totient function:
λ(n) = lcm (p − 1, q − 1)
Jos se on ollut jonkin aikaa, koska olet osuma matematiikan oppikirjoja, edellä saattaa näyttää hieman pelottava., Voit ohittaa tämän osan ja vain luottaa siihen, että matematiikka toimii, muuten stick kanssa meille muutamia laskelmia. Kaikki selitetään mahdollisimman yksityiskohtaisesti, jotta saat pääsi perusasioiden ympärille.
niille, jotka eivät ole tietoisia siitä, λ(n) edustaa Carmichael totient n, kun taas lcm tarkoittaa, pienin yhteinen jaettava, mikä on alin määrä, että molemmat p ja q voi jakaa. On olemassa muutamia erilaisia tapoja selvittää tämä, mutta helpoin on luottaa online laskin tehdä yhtälö sinulle., Joten laitetaan meidän numerot yhtälöön:
λ(701,111) = lcm (907 − 1, 773 − 1)
λ(701,111) = lcm (906, 772)
Käyttämällä laskin, liittyvät edellä, tämä antaa meille:
λ(701,111) = 349,716
Tuottaa julkisen avaimen
Nyt meillä on Carmichaelin totient meidän prime numeroita, se on aika selvittää meidän julkinen avain. Alla RSA, julkiset avaimet koostuvat alkuluku e, sekä n. Numero e voi olla mitä tahansa välillä 1 ja arvo λ(n), joka tässä esimerkissä on 349,716.,
koska julkinen avain on jaettu avoimesti, e: n ei ole niin tärkeää olla satunnaisluku. Käytännössä e on yleensä asetettu 65,537, koska, kun paljon suuremmat numerot valitaan satunnaisesti, se saa salaus on paljon vähemmän tehokas. Tämän päivän esimerkkinä pidämme luvut pieninä, jotta laskelmat olisivat tehokkaita. Sanotaan:
e = 11,
viimeinen salattuja tietoja kutsutaan salateksti (c). Me saada se meidän selkokielisen viestin (m), soveltamalla julkisen avaimen kanssa seuraavan kaavan mukaisesti:
c = me mod n
– Meillä on jo keksiä e ja me tiedämme, n samoin., Meidän tarvitsee vain selittää mod. Se on hieman pois tämän artikkelin syvyydestä, mutta se viittaa modulo-operaatioon, mikä tarkoittaa käytännössä sitä, että jäljelle jäävä jää jäljelle, kun jakaa toisen puolen toiselle. Esimerkiksi:
10 mod 3 = 1,
Tämä on, koska 3 menee 10 kolme kertaa, loput 1.
takaisin yhtälöön. Pitää asiat yksinkertaisina, sanotaan, että viesti (m), että haluamme salata ja salata vain yhden numeron, 4., Katsotaanpa kytke kaikki:
c = me mod n
c = 411 mod 701,111
c = 4,194,304 mod 701,111
Uudelleen, jotta modulo-operaatio on helppo, meidän tulee käyttää online-laskin, mutta voit selvittää sen itse. Syöttämällä 4,194,304 osaksi online-laskin, se antaa meille:
c = 688,749
näin Ollen, kun me käyttää RSA salata viestin, 4, meidän julkisen avaimen, se antaa meille salateksti ja 688,749., Edelliset askeleet saattoivat tuntua hieman liian matikan painavilta, mutta on tärkeää toistaa, mitä on oikeasti tapahtunut.
meillä oli viesti 4, jonka halusimme pitää salassa. Käytimme siihen julkista avainta, joka antoi salatun tuloksen 688 749. Nyt kun se on salattu, voimme turvallisesti lähettää numeron 688749 avainparin omistajalle. He ovat ainoa henkilö, joka pystyy purkamaan sen yksityisellä avaimellaan. Kun he purkavat sen, he näkevät viestin, jonka todella lähetimme, 4.,
Tuottaa yksityinen avain
RSA-salausta, kun tietoja tai viesti on tullut salatekstin kanssa julkisella avaimella, se voidaan purkaa vain yksityisellä avaimella saman avainparin. Yksityiset avaimet ovat koostuu d-ja n. Tiedämme jo, n, ja käytetään seuraavaa yhtälöä löytää d:
k =1/e mod λ(n)
kun Tuottaa julkisen avaimen jaksossa edellä, olemme jo päättäneet, että meidän esimerkki, e olisi yhtä suuri kuin 11. Samoin tiedämme, että λ (n) vastaa 349,716 meidän aiemmasta työstä alle Carmichaelin totient funktio., Asiat saavat hieman monimutkaisempi, kun törmäämme tässä jaksossa kaava:
1/e mod
Tämä yhtälö voi näyttää se on pyytää sinua jakaa 1 11, mutta se ei ole tapauksessa. Sen sijaan, tämä vain kuvastaa, että meidän täytyy laskea modulaarinen käänteisluku e (joka tässä tapauksessa on 11) ja λ(n) (joka tässä tapauksessa on 349,716).
Tämä tarkoittaa sitä, että sen sijaan suorittaa standardin modulo-operaatio, käytämme käänteinen sijaan., Tämä on yleensä löytynyt Laajennettu Eukleideen Algoritmi, mutta se on hieman kuulu tämän artikkelin, joten me vain huijata ja käyttää online-laskin sijaan., Nyt ymmärrämme kaiken, mitä on tekeillä, nyt on plug meidän tiedot kaava:
d =1/11 mod 349,716
Voit suorittaa tämän toiminnon, yksinkertaisesti input 11 (tai mikä tahansa arvo voi olla e jos yrität tämän kanssa, oma esimerkki), jossa se sanoo, että Kokonaisluku ja 349,716 (tai mikä tahansa arvo voi olla λ(n), jos olet yrittää tämän kanssa, oma esimerkki) jos se sanoo Modulo online-laskin, joka liittyi edellä., Jos olet tehnyt sen oikein, sinun pitäisi saada tulos, jos:
d = 254, 339
Nyt, että meillä on arvo d, voimme purkaa viestejä, jotka on salattu julkinen avain käyttäen seuraavaa kaavaa:
m = cd mod n
nyt Voimme mennä takaisin salakieli, että meillä salattu alla Tuottavan yksityisen avaimen osassa. Kun salasimme viestin yleisavaimella, se antoi meille arvon c 688 749. Ylhäältä tiedämme, että d vastaa 254 339: ää. Tiedämme myös, että n vastaa 701 111: tä. Tästä kertoo:
m = 688,749254,339 mod 701,111.,
Kuten olet ehkä huomannut, yrittää ottaa numero 254,339 th teho saattaa olla hieman liikaa useimmille normaali laskimet. Sen sijaan käytämme verkossa RSA-salauksen purkulaskinta. Jos haluat käyttää toista menetelmää, voit käyttää toimivaltuuksia, kuin normaalisti ja suorittaa modulus toimintaa samalla tavalla kuin teimme Tuottaa julkisen avaimen osassa.,
laskin liittyvät edellä, kirjoita 701,111, jossa se sanoo, että Tarjonta Modulus: N, 254,399, jossa se sanoo Salauksen Avain: D, ja 688,749, jossa se sanoo Salakieli Viesti numeerisessa muodossa, kuten alla:
Kun olet syöttänyt tiedot, paina Decrypt, joka laittaa numerot kautta salauksen kaava, joka on listattu edellä. Tämä antaa sinulle alkuperäisen viestin alla olevassa laatikossa. Jos olet tehnyt kaiken oikein, sinun pitäisi saada vastaus 4, joka oli alkuperäinen viesti, että me salattu julkinen avain.,
miten RSA-salaus toimii käytännössä
yllä olevien osioiden pitäisi antaa kohtuullinen käsitys siitä, miten julkisen avaimen salauksen taustalla oleva matematiikka toimii. Se voi olla hieman sekava, mutta jopa ne, jotka eivät ymmärrä koukerot yhtälöt voidaan toivottavasti ottaa pois joitakin tärkeitä tietoja prosessi.
edellä mainitut toimenpiteet, olemme osoittaneet, miten kaksi yhteisöt voivat turvallisesti kommunikoida ilman aiemmin jaettu koodi etukäteen. Ensinnäkin jokaisen on perustettava omat avainparinsa ja jaettava julkinen avain keskenään., Näiden kahden yksikön on pidettävä Yksityiset avaimensa salaisina, jotta niiden viestintä pysyy turvallisena.
Kun lähettäjä on julkisen avaimen niiden vastaanottaja, he voivat käyttää sitä salata tiedot, jotka he haluavat pitää turvata. Kun se on salattu julkisella avaimella, se voidaan purkaa vain yksityisellä avaimella saman avainparin. Edes samaa julkista avainta ei voi käyttää salauksen purkamiseen. Tämä johtuu ominaisuuksista ansaluukun toimintoja, että edellä mainittiin.
Kun vastaanottaja saa salatun viestin, he käyttävät heidän yksityinen avain käyttää tietoja., Jos vastaanottaja haluaa palata viestinnän turvallisella tavalla, he voivat sitten salaa viestinsä julkisella avaimella puolueen he ovat yhteydessä. Uudelleen, kun se on salattu julkisella avaimella, vain siten, että tietoja voidaan käyttää on vastaava yksityinen avain.
tällä tavoin aiemmin tuntemattomat osapuolet voivat käyttää RSA-salausta tietojen lähettämiseen turvallisesti keskenään. Merkittävä osa viestintäkanavista, joita käytämme verkkoelämässämme, on rakennettu tästä säätiöstä.,
miten monimutkaisemmat viestit salataan RSA: lla?
esimerkissämme yksinkertaistimme asioita paljon, jotta se olisi helpompi ymmärtää, minkä vuoksi salasimme vain viestin ”4”. Voi salata numero 4 ei näytä erityisen hyödyllinen, joten saatat olla miettimättä, miten voit salata monimutkaisempi joukko tietoja, kuten symmetrisen avaimen (joka on yleisin käytössä RSA), tai jopa viestin.,
Jotkut ihmiset saattavat olla ymmällään, miten keskeinen, kuten ”n38cb29fkbjh138g7fqijnf3kaj84f8b9f…” tai viestin, kuten ”osta minulle voileipä” voi olla salattu algoritmi, kuten RSA, joka käsittelee numeroita ja kirjaimia. Tosiasia on, että kaikki tiedot, jotka meidän tietokoneissa prosessi on tallennettu binary (1s ja 0s) ja käytämme koodaus standardeja, kuten ASCII-tai Unicode edustamaan niitä tapoja, joilla ihmiset voivat ymmärtää (kirjaimet).,
Tämä tarkoittaa, että avaimet, kuten ”n38cb29fkbjh138g7fqijnf3kaj84f8b9f…” ja viestejä, kuten ”osta minulle voileipä” on jo olemassa numeroita, jotka voidaan helposti laskea RSA-algoritmi. Numerot, joita ne edustavat, ovat paljon suurempia ja vaikeampia hallita, minkä vuoksi me mieluummin käsitellä aakkosnumeerisia merkkejä kuin sekamelska binary.
Jos haluat salata pidemmän session key tai monimutkaisempi viestin RSA, se olisi yksinkertaisesti liity paljon suurempi määrä.,
pehmuste
kun RSA otetaan käyttöön, se käyttää jotain pehmustetta estääkseen useita hyökkäyksiä. Miten tämä toimii, aloitamme esimerkillä. Sanotaan, että lähetit koodatun viestin ystävällesi:
rakas Karen,
toivottavasti voit hyvin. Vieläkö syömme päivällistä huomenna?
ystävällisin terveisin,
James
oletetaan, että sinulla koodattu viesti yksinkertaisella tavalla, muuttamalla kunkin kirjeen yksi, joka seuraa sitä aakkoset. Tämä muuttaisi viesti:
Efbs Lbsfo,
J ipqf zpv-bsf xfmm., Bsf xf tujmm ibwjoh ejoofs upnpsspx?
Zpvst tjodfsfmz,
Kbnft
Jos vihollisia siepata tämän kirjeen, on temppu, että he voisivat käyttää yrittää murtaa koodin. He voisivat katsoa kirjeesi muotoa ja yrittää arvata, mitä viesti voisi kertoa. He tietävät, että ihmiset yleensä aloittavat kirjeensä sanoilla ”Hei”, ”Hei”, ”rakas” tai useilla muilla konventeilla.
Jos he yrittäisivät käyttää ”Hi” – tai ”Hello” – sanaa ensimmäisenä sanana, he näkisivät, ettei se sopisi hahmojen lukumäärään. He voisivat sitten kokeilla ”rakas”., Se sopii, mutta se ei välttämättä merkitse mitään. Hyökkääjät vain kokeilivat sitä ja katsoivat, mihin se johti heidät. Niin he muuttaisi kirjaimet ”e”, ”f”, ”b” ja ”s” ja ”d”, ”e”, ”a” ja ”r” vastaavasti. Näin he saisivat:
Dear Laseo,
J ipqe zpv are xemm. Onko xe tujmm iawjoh djooes upnpsspx?
Zpvrt tjoderemz,
Kanet
Se näyttää silti melko sekava, joten hyökkääjät voivat yrittää tarkastella joitakin muita sopimuksia, kuten se, miten saamme kirjeitä. Lopussa lisätään usein” From ”tai” Kind regards”, mutta kumpikaan näistä ei sovi formaattiin., Sen sijaan hyökkääjät saattavat kokeilla ”sinun vilpittömästi” ja vaihtaa muut kirjaimet nähdäkseen, mihin se heidät saa. Muuttamalla ”z”, ”s”, ”v”, ”t”, ”j” ”o”, ”d” ja ”m” ja ”y”, ”o”, ”u”, ”s”, ”i”, ”n”, ”c” ja ”l”, vastaavasti, he saavat:
Rakas Lasen,
olen ioqe olet xell. Onko xe tuill iawinh dinnes uonossox?
omasi vilpittömästi,
Kanet
tuon muutoksen jälkeen näyttää siltä, että hyökkääjät alkavat päästä jonnekin. He ovat löytäneet sanat ”Minä”, ”sinä” ja ”olet” niiden sanojen lisäksi, jotka muodostivat heidän ensimmäiset arvauksensa.,
kun sanat ovat oikeassa kieliopin, jotta hyökkääjät voivat olla melko varma, että he ovat menossa oikeaan suuntaan. Nyt he ovat luultavasti myös ymmärsi, että koodi mukana jokainen kirjain on muuttunut, yksi, joka seuraa sitä aakkoset. Kun he ymmärtävät tämän, on helppo kääntää loput ja lukea alkuperäinen viesti.
yllä olevassa esimerkissä oli vain yksinkertainen koodi, mutta kuten näette, rakenne viesti voi antaa hyökkääjät vihjeitä sen sisältöä., Varma, se oli vaikea selvittää, viesti vain sen rakenne, ja se kesti joitakin valistuneita arvauksia, mutta sinun täytyy pitää mielessä, että tietokoneet ovat paljon parempi kuin me. Tämä tarkoittaa, että niiden avulla voidaan selvittää paljon monimutkaisempia koodeja paljon lyhyemmässä ajassa, joka perustuu johtolankoihin, jotka tulevat rakenteesta ja muista elementeistä.
Jos rakenne voi johtaa siihen, että koodi on säröillä ja paljastaa sisällön viestin, meidän täytyy jollain tavalla piilottaa rakenteen voidakseen pitää viesti turvassa. Tämä tuo meidät pehmusteisiin.,
kun viesti on pehmustettu, lisätään satunnaistettua dataa piilottamaan alkuperäiset muotoiluvihjeet, jotka voivat johtaa salatun viestin rikkoutumiseen. RSA, asiat ovat hieman monimutkaisempi, koska salattu avain ei ole selvää muotoilua kirjeen, joka auttoi antaa meille vihjeitä meidän edellä esimerkki.
tästä Huolimatta vastustajat voivat käyttää useita hyökkäyksiä hyödyntää matemaattisia ominaisuuksia koodi ja murtaa salattuja tietoja. Koska tämä uhka, toteutukset RSA käyttää täyte järjestelmiä, kuten OAEP upottaa extra tiedot viestiin., Tämän pehmusteen lisääminen ennen viestin salaamista tekee RSA: sta paljon turvallisemman.
Allekirjoitusviestejä
RSA voidaan käyttää muuhunkin kuin tietojen salaamiseen. Sen ominaisuudet myös tehdä se käyttökelpoinen järjestelmä, jossa vahvistetaan, että viestin on lähettänyt taho joka väittää, lähetetään se sekä osoittaa, että viestiä ei ole muutettu tai peukaloitu.,
Kun joku haluaa todistaa aitouden heidän viestinsä, he voivat laskea hash (toiminto, joka vie datan mielivaltaisen koko ja muuntaa sen kiinteä pituus-arvo) tekstimuodossa, sitten allekirjoittaa sen yksityisellä avaimellaan. Ne allekirjoittavat hasiksen soveltamalla samaa kaavaa, jota käytetään salauksen purkamisessa (m = cd mod n). Kun viesti on allekirjoitettu, he lähettävät tämän digitaalisen allekirjoituksen vastaanottajalle viestin rinnalla.,
Jos vastaanottaja saa viestin, jossa on digitaalinen allekirjoitus, he voivat käyttää allekirjoitus tarkistaa, onko viesti oli aidosti allekirjoittanut yksityisen avaimen henkilö, joka väittää on lähettänyt sen. He voivat myös nähdä, ovatko hyökkääjät muuttaneet viestiä sen lähettämisen jälkeen.
digitaalisen allekirjoituksen tarkistamiseksi vastaanottaja käyttää ensin samaa hash-toimintoa löytääkseen saamansa viestin hasisarvon., Vastaanottaja sitten koskee lähettäjän julkisen avaimen digitaalinen allekirjoitus, joka käyttää salausta kaavalla (c = me mod n), antaa heille hash digitaalinen allekirjoitus.
vertaamalla hash viestin, että oli saanut rinnalla hash alkaen salattu digitaalinen allekirjoitus, vastaanottaja voi kertoa, onko viesti aito. Jos nämä kaksi arvoa ovat samat, viestiä ei ole muutettu sen jälkeen, kun alkuperäinen lähettäjä allekirjoitti sen. Jos viestiä olisi muuttanut edes yksi merkki, hasisarvo olisi täysin erilainen.,
RSA security & hyökkäyksiä
Kuten useimmat cryptosystems, turvallisuus RSA riippuu siitä, miten se on toteutettu ja miten niitä käytetään. Yksi tärkeä tekijä on avaimen koko. Mitä suurempi bittien määrä-näppäintä (lähinnä, kuinka kauan avain on), sitä vaikeampi se on murtaa läpi hyökkäyksiä, kuten brute-pakottaa ja factoring.
koska epäsymmetristen avainten algoritmit, kuten RSA, voidaan rikkoa kokonaisluvun factorisoinnilla, kun taas symmetristen avainten algoritmit kuten AES eivät voi, RSA-avainten on oltava paljon pidempiä saavuttaakseen saman turvallisuustason.,
tällä hetkellä suurin huomioitu avainkoko on 768 bittiä pitkä. Tämän teki akateemikkojen ryhmä kahden vuoden aikana käyttäen satoja koneita.
Koska factoring oli valmistunut vuoden 2009 loppuun mennessä ja laskentateho on kasvanut merkittävästi sen jälkeen, voidaan olettaa, että yritys samankaltaisten-intensiteetti voi nyt tekijä paljon suurempi RSA-avain.
tästä Huolimatta aikaa ja resursseja tarvitaan tällainen hyökkäys laittaa sen ulottumattomissa useimmat hakkerit ja valtakuntaan kansallisvaltiot., Paras avaimen pituus riippuu yksilöllisestä uhkamallista. National Institute of Standards and Technology suosittelee vähintään avaimen koko on 2048-bittinen, mutta 4096-bittisiä avaimia käytetään myös joissakin tilanteissa, joissa uhka taso on korkeampi.
Factoring on vain yksi tapa, jolla RSA voidaan rikkoa. Monia muita hyökkäyksiä, on mahdollista murtaa salauksen kanssa pienempi määrä resursseja, mutta nämä riippuvat täytäntöönpanon ja muiden tekijöiden, ei välttämättä RSA itse. Näitä ovat muun muassa:
ovatko primet todella satunnaisia?,
jotkut RSA: n toteutukset käyttävät heikkoja satunnaislukugeneraattoreita primien keksimiseen. Jos nämä numerot eivät ole riittävän satunnaisia, hyökkääjien on paljon helpompi ottaa ne huomioon ja murtaa salaus. Tämä ongelma voidaan välttää käyttämällä kryptografisesti turvallinen pseudo-satunnaislukugeneraattori.
heikon avaintuotannon
RSA-avainten on kuuluttava tiettyihin parametreihin, jotta ne olisivat turvallisia. Jos primes p ja q ovat liian lähellä toisiaan, avain voidaan helposti löytää. Samoin luku d, joka muodostaa osan yksityisestä avaimesta, ei voi olla liian pieni., Alhainen arvo tekee ratkaisemisen helpoksi. On tärkeää, että nämä numerot ovat riittävän pitkiä pitämään avaimesi turvassa.
Side channel-hyökkäyksiä
Nämä ovat eräänlainen hyökkäys, joka ei murtaa RSA suoraan, mutta sen sijaan käyttää tietoja sen täytäntöönpanosta antaa hyökkääjät vihjeitä salaus prosessi. Nämä hyökkäykset voivat sisältyä asioita, kuten analysoimalla määrä valtaa, että on käytetty, tai haara ennustaminen analyysi, joka käyttää execution-aika mittaukset löytää yksityinen avain.
toinen sivukanavahyökkäys tunnetaan ajoitushyökkäyksenä., Jos hyökkääjä on kyky mitata salauksen aikaa niiden kohde tietokoneeseen useita erilaisia salattuja viestejä, tämä tieto voi mahdollistaa sen, että hyökkääjä selvittää tavoite on yksityinen avain.
useimmat RSA: n toteutukset välttävät tämän hyökkäyksen lisäämällä salausprosessin aikana kertaluonteisen arvon, joka poistaa tämän korrelaation. Tätä prosessia kutsutaan cryptographic sokaiseva.
onko RSA-salaus turvallinen tulevaisuudelle?
hyvä uutinen on, että RSA: ta pidetään näistä mahdollisista hyökkäyksistä huolimatta turvallisena käyttää., Varoitus on, että se on toteutettava oikein ja käyttää avainta, joka kuuluu oikeisiin parametreihin. Kuten olemme juuri keskustelleet, toteutuksia, jotka eivät käytä pehmustetta, käytä riittämättömästi kokoisia primes tai on muita haavoittuvuuksia ei voida pitää turvallisina.
Jos haluat käyttää RSA-salausta, varmista, että käytät vähintään 1024 bitin avainta. Ne, joilla on suurempi uhka malleja pitäisi kiinni avaimet 2048 tai 4096 bittiä, jos he haluavat käyttää RSA luottavaisesti., Niin kauan kuin olet tietoinen RSA: n heikkouksista ja käytät niitä oikein, sinun pitäisi tuntea olosi turvalliseksi käyttää RSA: ta avainten jakamiseen ja muihin vastaaviin tehtäviin, jotka vaativat julkisen avaimen salausta.
Katso myös: yleiset salaustyypit selitetty