Nézem az RSA-séma működési elvét, és azt látom, hogy a ma elterjedt kettős kulcsú titkosításnál mind a titkos, mind a nyilvános kulcs két számból áll (N, e ill. N, d). Ezt a két számot ki lehet-e valahogy nyerni a .ssh/id_rsa* fájlokból? Van valami specifikáció valahol erre vonatkozóan?
- 5215 megtekintés
Hozzászólások
cd ~/.ssh
openssl rsa -text -in id_rsa
- A hozzászóláshoz be kell jelentkezni
Ez szép, tömény és célravezető.
Köszönet érte!
Ha a fenti parancs kimenetét betesszük egy "veszelyes" nevű (és felhasználói jogosultságait kellően lecsökkentett) fájlba, és ráeresztjük ezt a szkriptet, akkor szép decimális számokat kapunk, amikkel az RSA-séma főbb jellemzőit pl. bc-ben kipróbálhatjuk. Nekem jólesett látni pl., hogy "kijön az 1" az exponensek szorzataként...
Az elnevezési konvenció:
modulus (nyilvános és titkos): N
publicExponent: e
privateExponent: d
Egyelőre bc-vel nem tudtam megoldani a teljes kódolást-dekódolást, de talán maximában menne.
- A hozzászóláshoz be kell jelentkezni
bc-vel miert nem tudtad megoldani?
- A hozzászóláshoz be kell jelentkezni
Mert a sokjegyű szám sokjegyű hatványát nem szerette (modulo N sem). Még egy kevés jegyű szám sokjegyű hatványával is megizzadt.
A maximának sem volt annyi esze, hogy önmagától rájöjjön, hogy az ismételt négyzetre emeléses módszerrel lehet gyorsan megoldani az x^b mod N feladatot.
- A hozzászóláshoz be kell jelentkezni
Valahogy a bc-vel is lehet, PHP-éknak sikerült:
http://php.net/manual/en/function.bcpowmod.php
- A hozzászóláshoz be kell jelentkezni
Ez klassz! Az ilyen meglátásokért érdemes ide a HUPra járni.
Köszi. :o)
Ily módon a hiányzó láncszem is megvan.
Rákeresve az "=" jelre a http://pastebin.com/qJHBGTui kimenetében megvannak a $n=...; $d=...; értékek. Ezeket ebbe betéve:
http://pastebin.com/qcLSAvUn
... már működik is az oda-vissza kódolás.
Sajnos nagyon szeressük a PHP-t. :-)
(Bosszantó módon az Arch linuxos PHP-ben nincs benne, ám az Ubuntus PHP-ben bele van fordítva a bcmath. Becsapós módon azonban az Arch linuxos is "=shared" állapotúnak hazudja a php -i-ben a bcmath támogatást, ám a tényleges futtatáskor nem látja a bc függvényeket.)
- A hozzászóláshoz be kell jelentkezni
Azert ugy gondolom ennyit bc-ben azert meg le leht programozni. Azaz ne x^b -t ird be, hanem szepen ciklussal szamittasd ki te magad. (Ha esetleg neminemu tovabbi gyorsitast is akarsz, akkor elore kiszamolhatod, hogy mely kitevok kellenek majd a vegen, es utkozben amikor elofordulnak, azokat is eltarolhatod a vegere.)
Amugy mibol *tudod*, hogy nem ugy szamolt? Megnezted a bc forrasat? Nem lehet, hogy esetleg a sajat szamabrazolas esetlegesen nem tul hatekony modja miatt lett annyira lassu?
- A hozzászóláshoz be kell jelentkezni
Jó ötlet a ciklusos kiszámolás, csak ennyi energiát nem akartam rászánni; ha már programot írok, akkor inkább komolyabb/testhezállóbb eszközt keresek (pl. maxima vagy php :-) [lásd föntebb, bcpowmod] ). Persze nincs kőbe vésve ez az álláspont, meggyőzhető vagyok más célszerű megoldásról is.
Amúgy nem *tudom*, hogy hogy számolt, csak a ráfordított időből sejtem. A bc saját számábrázolásától meg "elvárom", hogy legyen klassz (a nagy egész számokra), ha már "arbitrary precision calculator"-nak vallja magát.
- A hozzászóláshoz be kell jelentkezni