Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Purku, josta ei voi päätellä salaustapaa?

Sivun loppuun

Tumettaja [02.03.2009 15:41:57]

#

Tarkoituksenani olisi luoda c++:lla pieni sovelluslaajennos (.dll) joka kryptaa annetun 5 numeroa pitkän luvun ei-luettavaan muotoon. Palvelimella tämä kryptattu luku puretaan sitten takaisin alkuperäiseen muotoon PHP:ta käyttäen.

Nyt kaipaisin ideoja toteutukseen. Miten toteuttaa c++:lla funktio, jonka salaus pystytään purkamaan PHP:lla niin, että itse PHP-purkufunktiosta ei voi saada selville, millä menetelmällä tai miten lukujono on salattu? Onko tälläinen edes mahdollista?

Ja jos joku ihmettelee, niin tarvitsen tätä projektissani, jonka lähdekoodi tulee olemaan jaossa lukuunottamatta tuota sovelluslaajennosta minkä tulen tekemään.

edit: otsikossa pieni typo; tarkoitan siis lukua, en lukujonoa.
(Mod. siirsi yleiseen keskusteluun ja otsikoi kuvaavammin.)

Blaze [02.03.2009 15:46:19]

#

Ammattilaiset suosittelee salakirjoitukseen salaisen algoritmin sijasta salaista avainta.

Grez [02.03.2009 16:18:42]

#

Jos algoritmi perustuu kiinteään avaimeen, niin silloinhan asymmetrisessä salauksessa julkisen avaimen sisältävästä algoritmistä ei pysty päättelemään salaisen avaimen sisältävää algoritmiä.

Käytännössä siis nyt niinkuin Blaze sanoikin, jos ei pilkkua nussita.

Järkevintä siis vaan käyttää standardia asymmetristä algoritmiä ja laittaa se julkinen avain sinne palvelimen päähän.

Metabolix [02.03.2009 16:21:23]

#

Varsinainen ongelmasihan on, millainen purkualgoritmin täytyy olla, jottei siitä voi suoraan päätellä salausalgoritmia. Itse toteutukset ovat sinänsä toisarvoisia.

Ohjelmoinnillisesti kääntämätön purkualgoritmi kuulostaa vähintäänkin erikoiselta. Tunnettu salausmenetelmä RSA perustuukin matematiikkaan: itse algoritmi on pohjimmiltaan yksinkertainen mutta laskentateho estää salausavaimen selvittämisen järkevässä ajassa. Luultavasti tällainen ratkaisu on sinullekin helpompi, ja esimerkiksi RSA:ta varten voit löytää jopa valmiita kirjastoja.

Antti Laaksonen [02.03.2009 16:56:34]

#

Voisitko vielä selventää salauksesi perimmäistä tarkoitusta?

Jos purkualgoritmi on kaikkien saatavilla, mitä luvun salaaminen auttaa?

Eli jos palvelimelle lähetetään viesti "aoiuxyfbuw", joka vastaa lukua 123, mitä hyötyä on siitä, että viesti pitää purkaa, jos purkualgoritmi on kaikkien tiedossa? Miksei voi lähettää suoraan lukua 123?

Grez [02.03.2009 17:13:20]

#

Voisihan sitä hyödyntää esimerkiksi tunnistautumiseen. Palvelin sanoisi, että hei, salaas mulle 29342930 niin uskon että se olet sinä.

User137 [02.03.2009 19:35:32]

#

Blaze kirjoitti:

Ammattilaiset suosittelee salakirjoitukseen salaisen algoritmin sijasta salaista avainta.

2 henkilön välinen salainen avain kai toimii, se vaan pitää ensin valmistaa/lähettää niiden kesken salaamatta. Jos avain on julkinen niin hakkerin ei tarvitse kun lähettää testinä sarja nollia niin avain onkin jo vastauksena.

Metabolix [02.03.2009 20:17:07]

#

User137 kirjoitti:

Jos avain on julkinen niin hakkerin ei tarvitse kun lähettää testinä sarja nollia niin avain onkin jo vastauksena.

Kyse ei ole mistään xor-salauksesta (joka on suunnilleen yhtä luotettava kuin rot13). Esimerkiksi RSA perustuu julkiseen ja salattuun avaimeen. Lisälukemistoa Wikipediassa.

Grez [02.03.2009 20:33:09]

#

Metabolix kirjoitti:

xor-salauksesta (joka on suunnilleen yhtä luotettava kuin rot13)

Eh, XOR-salaus on kylläkin yksi niistä salauksista, joka on helposti todistettavissa mahdottomaksi purkaa jos avain on vähintään yhtä pitkä kuin siirrettävä tieto ja avain ei vuoda ulkopuoliselle. Esimerkiksi RSA -salauksessa kukaan ei ole väittämässä että sitä olisi mahdotonta purkaa, se on vain kovin hankalaa ellei joku keksi nopeaa tapaa jakaa luku tekijöiksi. ROT13 on sitten taas ihan toisessa ääripäässä.

Mutta tosiaan, user137:n kannattaisi selvittää käsitteet asymmetrinen salaus ja julkisen avaimen salausalgoritmit.

Metabolix [02.03.2009 21:02:01]

#

Grez kirjoitti:

Eh, XOR-salaus on kylläkin yksi niistä salauksista, joka on helposti todistettavissa mahdottomaksi purkaa jos avain on vähintään yhtä pitkä kuin siirrettävä tieto ja avain ei vuoda ulkopuoliselle.

Ensimmäinen ehto toteutuu harvoin, ja pitäähän se avainkin aina jollain siirtää, jolloin purkaminen on yhtä helppoa kuin siirrettävän avaimen purkaminen — eli tässä tapauksessa erittäin helppoa, koska avain olisi julkisesti esillä PHP-koodissa. Pahoittelen epäselvyyttä.

Grez [03.03.2009 01:48:26]

#

Tietenkin avaimet toimitetaan toiselle osapuolelle turvallisella keinolla ennakkoon, joten sitten kun tulee tarve lähettää varmasti salainen sanoma, niin molemmat vaan kaivaa avaimen esiin. Eihän mikään symmetrinen salaus hyödytä mitään jos avain lähetetään selväkielisenä sanoman rinnalla.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta