RSA -salauksen purku

Tyhmä_kysymys

Jos on tietokoneille vaikeaa selvittää, mistä alkuluvuista on lähdetty, miksei lasketa valmiiksi kaikkia mahdollisia vaihtoehtoja ja sitten vain verrata niitä lopputulokseen?
3x5=15, jos sinulla on 15 valmiiksi laskettuna, ei tarvi ruveta pähkäilemään, mistä se koostuu.
Anteeksi, en ole opiskellut kuin oppikoulumatikkaa 50 vuotta sitten. Hommassa täytyy olla jokin muukin jippo.

14

275

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • hmhmhmhm

      Nimenomaan lasketaankin, sitä sanotaan brute force, eli raa'alla voimalla murtamiseksi.

      Mutta ongelma on se, että niitä vaihtoehtoja on niin käsittämätön määrä, että vaikka kaikki maailman tietokoneet laskisivat niitä 24/7, siltikkään tehokkaimmat salaukset eivät purkautuisi ihan hetkessä.

      Salaukset pyritään tekemään siis aina niin vahvalla tekniikalla, että yleisesti käytössä olevalla laskentakapasiteetilla ei pysty kovin lyhyessä ajassa laskemaan kaikkia mahdollisia vaihtoehtoja.

      • hmhmhm

        Valmiiksi laskemisesta, no varmaan sitäkin tehdään, mutta siinä tulee äkkiä vastaan tallennustilan rajoitukset.

        Esim MD5 ja SHA tiivisteiksi sanakirjasanoista muunnoksia on laskettu valmiiksi.

        Eli monissa vanhemmissa sivustoissa, salasanasi tallennetaan sinne palvelimelle MD5 tiivisteen laskevan algoritmin läpi laitettuna, eikä selväkielisenä.

        MD5 luku on aina täysin sama, samalle sanalle. Eli vaikka sanaa kissa vastaa aina täysin sama MD5 tiiviste.

        https://fi.wikipedia.org/wiki/MD5

        Näitä tiivisteitä on sanakirjasanoille laskettu valmiiksi ja taulukoitu.

        Tästäkin syystä turvallisen salasanan valinnassa aina sanotaan, että älkää käyttäkö sanakirjasta tuttuja sanoja.

        Toki todellisuudessa ne salasanat tallennetaan ns. suolattuina. Joka tarkoittaa sitä, että palvelimella siihen käyttäjän salasanaan lisätään vielä jotain muuta, jotta juuri esim. kissa sanaa vastaava MD5 tiiviste ei olisi suoraan mistää taulukosta katsottavissa.


      • HASH_UTF8
        hmhmhm kirjoitti:

        Valmiiksi laskemisesta, no varmaan sitäkin tehdään, mutta siinä tulee äkkiä vastaan tallennustilan rajoitukset.

        Esim MD5 ja SHA tiivisteiksi sanakirjasanoista muunnoksia on laskettu valmiiksi.

        Eli monissa vanhemmissa sivustoissa, salasanasi tallennetaan sinne palvelimelle MD5 tiivisteen laskevan algoritmin läpi laitettuna, eikä selväkielisenä.

        MD5 luku on aina täysin sama, samalle sanalle. Eli vaikka sanaa kissa vastaa aina täysin sama MD5 tiiviste.

        https://fi.wikipedia.org/wiki/MD5

        Näitä tiivisteitä on sanakirjasanoille laskettu valmiiksi ja taulukoitu.

        Tästäkin syystä turvallisen salasanan valinnassa aina sanotaan, että älkää käyttäkö sanakirjasta tuttuja sanoja.

        Toki todellisuudessa ne salasanat tallennetaan ns. suolattuina. Joka tarkoittaa sitä, että palvelimella siihen käyttäjän salasanaan lisätään vielä jotain muuta, jotta juuri esim. kissa sanaa vastaava MD5 tiiviste ei olisi suoraan mistää taulukosta katsottavissa.

        "MD5 luku on aina täysin sama, samalle sanalle. Eli vaikka sanaa kissa vastaa aina täysin sama MD5 tiiviste."

        Pitää useimmiten paikkansa (mutta ei tässäkään ihan aina).

        MUTTA:

        MD5 luku on aina täysin sama, samalle sanalle. Eli vaikka sanaa kärpänen EI vastaa aina täysin sama MD5 tiiviste, vaan sanalle kärpänen on olemassa useita eri tiivisteitä.

        Miksi sitten kärpänen on tässä niin erilainen sana kuin kissa ?

        Yksinkertaista:

        Alla on laitettu koodausmenetelmiä, ja tähdellä merkitty ne, joissa myös sanan kissa MD5 -tiiviste poikkeaa totutusta:

        Sensijaan sanalle kärpänen kaikki allaolevat tuottavat keskenään eri arvon:

        Windows-1252 (ja sen osajoukko ISO-8859-1)

        OEM (eli toisin sanoen alkluperäisen IBM PC:n BIOSissa käytetty merkkikoodaus, sama oli sellaisenaan käytössä ensimäisissä MS-DOS -versioissa, ja hieman muunnettuna myöhemmissäkin MS-DOS -versioissa)

        UTF-8

        UTF-16LE*

        UTF-16BE*

        UTF-32LE*

        UTF-32BE*

        Eli sanalla kissa on keskenään sama MD5 -tiiviste näissä enkoodauksissa: Windows-1252, OEM, UTF-8, US-Ascii (eli lyhyemmin Ascii).

        Sensijaan sanalle kärpänen ei ole olemassa US-Ascii -esitysmuotoa johtuen sen sisältämästä ä -kirjaimesta.

        Eli lyhyesti:

        Sanalla tai merkkijonolla ei ole yksikäsitteisesti määriteltyä MD% tai muutakaan HASHia.

        Mutta sanan tai merkkijonon esitysmuodolla on.

        Jos yksikäsitteisyyttä halutaan, täytyy lukita esitysmuoto aina yhteen ja samaan esitysmuotoon.

        Oma suositukseni: muunna merkkijono AINA ensin UTF-8 -esitysmuotoon ja laske ko. UTF-8 -esitysmuodolle se hash eli esim. MD5.

        (MD5:ttä muuten pidetään murrettuna, eli jos HASHin pitää olla oikeasti ns. kryptografisesti turvallinen hash, niin SHA-2 tai SHA-3 eli Kekkac ).

        JOS halutaan mahdollistaa HASHin laskeminen myös niistä merkkijonoista, joihin sisältyy 1 tai useampi NUL -merkki (eli merkki, jonka ascii -koodi on nolla), niin silloin kannattaa laatia se merkkijonon käsittely ja laskenta -algoritmi niin, ettei tuo NUL -merkki aiheuta mitään ongelmia.


      • hmhmhm
        HASH_UTF8 kirjoitti:

        "MD5 luku on aina täysin sama, samalle sanalle. Eli vaikka sanaa kissa vastaa aina täysin sama MD5 tiiviste."

        Pitää useimmiten paikkansa (mutta ei tässäkään ihan aina).

        MUTTA:

        MD5 luku on aina täysin sama, samalle sanalle. Eli vaikka sanaa kärpänen EI vastaa aina täysin sama MD5 tiiviste, vaan sanalle kärpänen on olemassa useita eri tiivisteitä.

        Miksi sitten kärpänen on tässä niin erilainen sana kuin kissa ?

        Yksinkertaista:

        Alla on laitettu koodausmenetelmiä, ja tähdellä merkitty ne, joissa myös sanan kissa MD5 -tiiviste poikkeaa totutusta:

        Sensijaan sanalle kärpänen kaikki allaolevat tuottavat keskenään eri arvon:

        Windows-1252 (ja sen osajoukko ISO-8859-1)

        OEM (eli toisin sanoen alkluperäisen IBM PC:n BIOSissa käytetty merkkikoodaus, sama oli sellaisenaan käytössä ensimäisissä MS-DOS -versioissa, ja hieman muunnettuna myöhemmissäkin MS-DOS -versioissa)

        UTF-8

        UTF-16LE*

        UTF-16BE*

        UTF-32LE*

        UTF-32BE*

        Eli sanalla kissa on keskenään sama MD5 -tiiviste näissä enkoodauksissa: Windows-1252, OEM, UTF-8, US-Ascii (eli lyhyemmin Ascii).

        Sensijaan sanalle kärpänen ei ole olemassa US-Ascii -esitysmuotoa johtuen sen sisältämästä ä -kirjaimesta.

        Eli lyhyesti:

        Sanalla tai merkkijonolla ei ole yksikäsitteisesti määriteltyä MD% tai muutakaan HASHia.

        Mutta sanan tai merkkijonon esitysmuodolla on.

        Jos yksikäsitteisyyttä halutaan, täytyy lukita esitysmuoto aina yhteen ja samaan esitysmuotoon.

        Oma suositukseni: muunna merkkijono AINA ensin UTF-8 -esitysmuotoon ja laske ko. UTF-8 -esitysmuodolle se hash eli esim. MD5.

        (MD5:ttä muuten pidetään murrettuna, eli jos HASHin pitää olla oikeasti ns. kryptografisesti turvallinen hash, niin SHA-2 tai SHA-3 eli Kekkac ).

        JOS halutaan mahdollistaa HASHin laskeminen myös niistä merkkijonoista, joihin sisältyy 1 tai useampi NUL -merkki (eli merkki, jonka ascii -koodi on nolla), niin silloin kannattaa laatia se merkkijonon käsittely ja laskenta -algoritmi niin, ettei tuo NUL -merkki aiheuta mitään ongelmia.

        Kyllä, koodaus merkitsee. Eli MD5:n näkökulmasta kyse on eri syötteestä ei niinkään siitä että samalle syötteelle olisi monta eri tulosta. Periaate siis silti pätee, saman syötteen tarkistussumma on aina sama.

        Sanalle kissa on monta summaa vain siksi, että tietokone ei ymmärrä kirjaimia ja kirjaimet on tietokoneella tallennettuna numeroiksi.

        Joka tarkoittaa, että eri kirjaimille on sopimuksenvaraisesti sovittu, mitä numeroarvoa se vastaa tietokoneelle tallennettuna. Ja kuten yleensä ihmisten tekemissä sopimuksiin perustusivssa systeemeissä, tietysti näitä systeemejä on monia, eli on monta eri merkistökoodausjärjestelmää joita käytetään.


      • Anonyymi

        Ei tartte kokeilla kaikkia vaihtoehtoja eri alkuluvuilla. Kyllä tämä onnistuu laskemalla lähtöluvusta. Vaatii tämäkin laskentaa, 20 numeroisen luvun alkutekijöiden selvittäminen vie mun läppärillä n. 10 minuuttia, 18 numeroinen aukeaa sekunneissa.


    • hmhmhmhm
      • hmhmhmhm

        Korjaus 1024 bittisen.


      • Tyhmä_kysymys2

        Seuraava kysymys: mitä tarkoittaa 1024 -bittinen? Tarkoittaako se, että salasanassa on 128 merkkiä? Yleensähän ihmisillä pakkaa olla tuollaisia kahdeksanmerkkisiä salasanoja.


      • hmhmhmhm

        1024 bittiä on binääriluvun pituus.

        Esim, 2 bitin binääriluku näyttäisi tältä:

        00 tai 01 tai 10 tai 11

        Nuo kaikki neljä edellämainittua ovat kahden bitin binäärilukuja. Bittimäärä asettaa ylärajan sille, miten iso luku on mahdollista esittää tietyllä määrällä bittejä. Aivan kuten kymmenjärjestelmässäkin, jos sinulle annettaisiin vain kolme numeroa väliltä 1-9, niin suurin luku minkä niillä voisit esittää olisi 999. :)

        1024 bitillä voi esittää sen kokoisen binääriluvun, jonka suuruus on normaali kymmenjärjestelmä lukuna

        2 potenssiin 1024 - 1

        Tarkalleen ottaen:
        1,797693134862315907729305190789 kertaa 10 potenssiin 308

        Joka on erittäin suuri luku.

        Jos salasanan pituuden haluaa tietää bitteinä, niin täytyy ensin tietää paljonko yksi kirjain on bitteinä. Tietokoneelle kaikki asiat ovat numeroita. Yleensä yksi kirjain tietokoneella vie tavun verran tilaa. Tavu = 8 bittiä.

        8 bitillä pystyy tällöin esittämään tietokoneella 256 erilaista kirjainta.

        8 bittiä kertaa salasanan pituus, niin siitä saa salasanan bittimäärän.

        Tietokoneella kirjaimet ovat binäärilukuina, vasta siinä vaiheessa kun kirjain pitää piirtää koneen näytölle, haetaan jostakin taulukosta, että minkäs näköinen on vaikka a kirjain, ja sytytetään näytöltä vaikka a kirjainta vastaavat pikselit. :)


      • hmhmhmhm
        Tyhmä_kysymys2 kirjoitti:

        Seuraava kysymys: mitä tarkoittaa 1024 -bittinen? Tarkoittaako se, että salasanassa on 128 merkkiä? Yleensähän ihmisillä pakkaa olla tuollaisia kahdeksanmerkkisiä salasanoja.

        Ja kyllä, se ilmeisesti tarkoittaisi 128 merkkiä pitkää merkkijonoa.


      • Tyhmä_kysymys

        Kiitos, nyt tajuan, miksei brute force onnistu, ennenkuin kvanttitietokone on todellisuutta. Heaven forbid...


    • LusikkaSoppaan

      Juu, haluan minäkin kommentoida jotakin.

      Kyllä brute force on RSA:ssa aivan realistinen nykyiselläkin kalustolla, vaikkakin työläs. Eli kokeilemalla voi löytyä ratkaisu, mutta se on luultavasti erilainen kuin alkuperäinen, vaikka se avaakin salakirjoituskoodin samalla tavalla. Eli niitä toimivia yhdistelmiä on kuitenkin melko suuri joukko.

      RSA:sta vielä kannattaa huomata että ihan perus oppikirja-toteutus on jokseenkin turvaton. Jos haluaa RSA:n toteuttaa niin kannattaa seurata asiantuntijoiden neuvoja yksityiskohtaisesti, sillä "devil is in the details".

    • Anonyymi

      Ensinnäkin:
      käytetään hyvin suuria alkulukuja ( ei ole jaollinen muulla luvuilla kuin itsellään ja ykkösellä) eli niistä laskettu tulo ei voi päättyä numeroon 5, koska mikä tahansa numeroa 5 suurempi numeroon p5 päättyvä luku ei ole alkuluku eli on jaollinen 5.
      Tulon kumpikin tekijä on hyvin suuri alkuluku
      Ei ainakaan vielä ole tiedossa mitään algoritmiä millä selvitetään annetun tulon tekijät jos molemmat ovat alkulukuja eli jää vain ratkaisuksi kokeilla jakaa tulo kaikilla mahdollisilla alkuluvuilla joissa on vähintään esimerkiksi 50 numeroa (yleensä enemmän). Eli tämä on mahdollista vain jos ensinnäkin on tiedossa kaikki alkuluvut.
      eli pienenä harjoituksena 624945200692847 on kahden alkuluvun tulo ja tuosta voi päätellä, että toinen niistä päättyy numeroon 7 ja toinen numeroon 1, koska kahden alkuluvun tulona viimeinen numero 7 voi olla vain 1 ja 7 päättyvien lukujen tulon viimeinen numero tai numerot voivat olla 3 ja 9 päättyviä.
      Tuo on vain pieni harjoitusnumero todellisissa on vähintään 150 numeroa tai yleensä yli 200 numeroa eli mahdollisten alkulukujen määrä on todella suuri. Koko systeemi perustuu siihen etsittävä alkulukujen määrä on riittävän suuri ja jo aluksi siihen, että on iso työ jo etsiä tarvittavat alkuluvut

      • Anonyymi

        Kehittämälläni systeemillä tulos aukesi alle sekunnissa.
        Luvut 24999617 ja 24998191
        Vanhalla läppärillä tämmösiä tuloksia


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Baaritappelu

      Hurjaksi käynyt meno Laffassa. Jotain jätkää kuristettu ja joutunu teholle...
      Kokkola
      52
      5066
    2. Tappo Kokkolassa

      Päivitetty tänään Iltalehti 17.04.2024 Klo: 15:23..Mikähän tämä tapaus nyt sitten taas on.? Henkirikos Kokkolassa on tap
      Kokkola
      23
      3327
    3. Poliisit vaikenee ja paikallinen lehti

      Poliisit vaikenee ja paikallinen lehti ei kerro taposta taaskaan mitään. Mitä hyötyä on koko paikallislehdestä kun ei
      Kokkola
      28
      1472
    4. Miksi tytöt feikkavat saaneensa orgasmin, vaikka eivät ole saaneet?

      Eräs ideologia itsepintaisesti väittää, että miehet haluavat työntää kikkelinsä vaikka oksanreikään, mutta tämä väite ei
      Sinkut
      182
      1307
    5. Mitä ihmettä

      Kaipaat hänessä
      Ikävä
      75
      1000
    6. MAKEN REMPAT

      Tietääkö kukaan missä tämmöisen firman pyörittäjä majailee? Jäi pojalla hommat pahasti kesken ja rahat muisti ottaa enna
      Suomussalmi
      24
      908
    7. Kuntoutus osasto Ähtärin tk vuode osasto suljetaan

      5 viikkoa ja mihin työntekijät, mihin potilaat. Mikon sairaalan lopetukset saivat nyt jatkoa. Alavudelle Liisalle tulee
      Ähtäri
      49
      867
    8. Itämaisesta filosofiasta kiinnostuneille

      Itämaisesta filosofiasta kiinnostuneille. Nämä linkit voivat auttaa pääsemään niin sanotusti alkuun. https://keskustel
      Hindulaisuus
      259
      806
    9. Mulla on kyllä

      Järkyttävä ikävä sua. Enkä yhtään tykkää tästä olotilastani. Levoton olo. Ja vähän pelottaa..
      Ikävä
      35
      748
    10. Uskoontulo julistetun evankeliumin kautta

      Ja kun oli paljon väitelty, nousi Pietari ja sanoi heille: "Miehet, veljet, te tiedätte, että Jumala jo kauan aikaa sitt
      Raamattu
      482
      707
    Aihe