Keresés

Részletes keresés

NevemTeve Creative Commons License 2016.04.08 0 0 624

Igen, a titkos kulcs tartalmazza a nyilvános összes adatát, részletek itt

Előzmény: NevemTeve (195)
NevemTeve Creative Commons License 2014.10.03 0 0 622
Desert Rat Creative Commons License 2014.04.09 0 0 621

Az One Time Pad titkosítás régóta érdekel. A matematikusok bizonyára megvetik, mint kutatásra és gondolkodásra nem érdemes eljárást - tényleg olyan egyszerű mint a faék, de Shannon azért érdemesnek találta matematikailag bizonyítani a feltörhetetlenségét.

 

Mivel érdekel a rádiókommunikáció, gondolatkísérletként elképzeltem, hogy a mai tárolókapacitások mellett reális lehetőség lehetne a digitalizált információ kódolása OTP eljárással. Egy 32Gbyte-os memóriakártya rendkívül hosszú ideig biztosíthatja a kódoláshoz/dekódoláshoz szükséges valódi véletlen jelfolyamot.

Amint az többször bebizonyosodott, semmi újat nem tudok kitalálni, a mellékelt linken egy katonai rádiót találtam ami egyéb trükkök mellett OTP titkosítást is használ.

http://www.sat.com.na/leopard.html - boltban kapható mint a krumpli :-)

 

 

Előzmény: Desert Rat (620)
Desert Rat Creative Commons License 2014.04.04 0 0 620

Hú, itt csupa jó ötletet adnak :-)

 

A magam örömére csináltam egy One-Time-Pad titkosítót, a hexásítással összekombinálva .. inkább csak előtanulmánynak a témában. Itt a kódoló-dekódoló úgynevezett "deszkamodellje", amiből majd lehet komplett és grafikus izét csinálni - ha lesz időm rá.

https://drive.google.com/file/d/0BxeqMQeu7zzUOHFOU3lsNEhZa1U/edit?usp=sharing

Ez üzenetem pedig itt van:

 

56305445535420202020CA060000000078005777B418C7C004B09F8DC048BFC8FC7F9F5D3C50FBC2BD4D0122F3B44A9C8C2C0594C1F59B56556C2ACE8B67DF18ADDA66BEF788D8B24302CFE4A69B1FFDC41C699F642087C148D50FDB1D752BE1558B53F53F4C2626E9F05C4021BE39216981DE0E9FED3BE6CED90BD1A6CBEC2C5E5F95FEEC3835899A26435A5E6DACDEA7C4E2EF40D823E87CBFE317EB1810EECDA6DD62FC26179DA3BCCB7110D4B5FD9239C0A49E69F7BF78AD210FA4B1B1B46873A34B3DAC1DB937B9F84A160007453FEBC69A44272A4C6949FB307A4D1694F77EFF3A908D2E05385995002BBEDE33AA76D40A32B419630115E258372A4A4A04E00EB0D0463DA207EBE4EB580D59498E382F2C4E1CA1A1BA1DEF84765F8A44FBF529B48971451BD53629B69102307FF3878D3DE900F108348A05BECB3F38536EE53E53D72ECFBDF0536E1B40083FAE5C94A79A61141AFFD5F43C3E81CB1C37F6A542EA43B8DA12373076740258F05AB2CBAA2218E0ACC2A1E87AC75118210AA0F249A4A200A9D9F72BE559E6620EE4EAC62F7BF1B46401A3D48DB8ED785B921A02514E43CAA7D83D3888B096DA01356C21E634B3831AF074DD3BD65C63191C382F3CB1DC16E39B2EEEDFC7AE005CC11B604AEF784EA91BD390C0DBA7100E53D77836CC1B8F64FADC22A0AD51415733FB481E3BAC45907788DC141C000F44478FC84FD5BF5F03BFC6214F64CAD4A10238336BBFAABF67E09C780BC4BA5A04274AC279C67F42893830D892A4B3BF33AEE3D541521F1BD31552D3E7A56EC3E99169BAA8F15C7B6E42744E4CDB6CF5FE69B19B83DF9121E74F35324EFFE55DD30531F9AC75F30EE94FBF84F9EB11AEE407B1289BC11C319F69485C346D2672A92A9E2D642AD2EC251F320C3B2BEA5FBF6C67C3C28F79375BAD68198F2BEBFA2BEDA6802F000C8C0A32870B15D8E4A2D5B2C5F2204D459E9C9DDC20E904A5A7EEA34C448753ABFC10B43DF015D2E5BD4341801F0BC86BD1B66BD05311642C8AD7948C264DA5BE0DF86C36D6862212E06E398D9C2700B3B736E55A0F217988F8014ED253F9389A5BA1E007D944F67F8B993EC9A0667BFB5ABE01ED6F2F1C37EFAF9E58F9CF941120E7469ACDCA17E8D941F689F0F218CD7C5E3BC3E06F088E02E241874DCD35

 

NevemTeve Creative Commons License 2013.11.25 0 0 619

Biztos elbújt. De neked nem is annyira egy exe kell (mivel a programodba kellene szubrutinként), hanem pár header fájl, néhány *.lib meg *.dll

http://slproweb.com/products/Win32OpenSSL.html

Előzmény: exhighand (618)
exhighand Creative Commons License 2013.11.25 0 0 618

Nem találtam futtatható fájt.

Előzmény: NevemTeve (616)
Gergo73 Creative Commons License 2013.11.25 0 0 617

mmormota úgy értette, hogy először titkosítod (zip, rar, stb.), aztán alakítod hexavá. Az előbbire használhatsz zip-et vagy rar-t, az utóbbira mondjuk yenc-et. Ezek mind igyenesek.

Előzmény: exhighand (614)
NevemTeve Creative Commons License 2013.11.25 0 0 616

Az OpenSsl-t nem kell megírnod, már kész van, csak le kell tölteni és használni.

Előzmény: exhighand (615)
exhighand Creative Commons License 2013.11.25 0 0 615

OK, köszönöm, de se időm se kedvem programot írni, vlami freeware kész alkalmazás kellene. Azután lehet hogy mégis rászánom magam egy egyszerű logika megírására.

 

Google nem igazán segít, csak file szintűeket találtam.

Előzmény: NevemTeve (613)
exhighand Creative Commons License 2013.11.25 0 0 614

Azért a hexa az túl egyszerű, valamiféle enkríptálás kellene bele.

Előzmény: mmormota (612)
NevemTeve Creative Commons License 2013.11.25 0 0 613

openssl, pl blowfish

Előzmény: exhighand (609)
mmormota Creative Commons License 2013.11.24 0 0 612

Pl. titkosítod a fájlt, és hexa-ra alakítod, az szövegszerű.

Előzmény: exhighand (611)
exhighand Creative Commons License 2013.11.24 0 0 611

A legegyszerűbb logika is megfelelne, csak hirtelen most kellene és nem akarok C ben vacakolni egy logikával.

Előzmény: nohnge (610)
nohnge Creative Commons License 2013.11.24 0 0 610

Olyat nem tudok, csak fájl titkosítókat.

Előzmény: exhighand (609)
exhighand Creative Commons License 2013.11.24 0 0 609

Nem, nem, nem akarok semmi hordozó fájl-t, simán csak szöveget encryptálni.

Előzmény: nohnge (608)
nohnge Creative Commons License 2013.11.24 0 0 608

Steganografia?

Előzmény: exhighand (607)
exhighand Creative Commons License 2013.11.24 0 0 607

Tud valaki olyan enkrytálást ami közvetkenül ASCII-t titkosít? Szóval nem fájl-t, hanem simán szöveget, ami utána be lehet vágólapozni ide-oda?

pint Creative Commons License 2010.12.04 0 0 606

ez az összes feladatra igaz valamilyen mértékben. és mivel az RSA is diszkrét logaritmusra épül ... hát bukjunk együtt, nem bánom :)

Előzmény: Gergo73 (605)
Gergo73 Creative Commons License 2010.12.04 0 0 605

mert semmi nem garantálja, hogy egyszerű próbálgatással nem trafálok bele elsőre

 

Determinisztikus algoritmusra gondoltam. Azt akartam mondani, hogy a diszkrét logaritmus probléma mindenki kedvence, de azt csak sejtjük vagy tapasztaljuk, hogy ez a probléma algoritmikusan nehéz, de lehet, hogy valójában nem is nehéz.

Előzmény: pint (603)
Gergo73 Creative Commons License 2010.12.04 0 0 604

arra miért?

 

Én úgy értettem, hogy egy egyenletesen nehéz x-et kell találni. De nem követtem a részleteket, meg azt sem tudom, mi az a "key schedule".

Előzmény: pint (603)
pint Creative Commons License 2010.12.03 0 0 603

"arra is ügyelni kell, hogy x ne legyen kicsi, "

 

arra miért?

 

"és természetesen nincs bizonyítva, hogy x nem található meg gyorsan."

 

azt elvileg sem lehetne, mert semmi nem garantálja, hogy egyszerű próbálgatással nem trafálok bele elsőre.

Előzmény: Gergo73 (602)
Gergo73 Creative Commons License 2010.12.03 0 0 602

Az a akkor nem jó, ha van olyan b, amire ax=b nem oldható meg. A p speciális volta miatt ez pontosan akkor áll fenn, ha a2=1 mod p vagy aq=1 mod p.

 

Ha a jó, akkor még arra is ügyelni kell, hogy x ne legyen kicsi, és természetesen nincs bizonyítva, hogy x nem található meg gyorsan.

Előzmény: pint (600)
pint Creative Commons License 2010.12.03 0 0 601

helyesbítés: a jó, ha a2 = 1 vagy aq = 1, kiszámolni pedig nem érdemes, hanem jakobi szimbólum

Előzmény: pint (600)
pint Creative Commons License 2010.12.03 0 0 600

kollega javaslata az alábbi:

 

f(D) definíciója:

 

D-vel, mint jelszóval indítsunk egy key-schedule-t, és abból olvassunk ki 2db N bites számot, a-t és b-t. keressük az alábbi egyenlet megoldását:

 

ax=b (mod p)

 

p egy prímszám amire p=2q+1, ahol q prímszám. ezt előre meg kell határozni, tulajdonképpen f paramétere, tehát f egy függvényosztály. adott implementációnál egy alkalmas méretű p választandó.

 

előzőleg meg kell vizsgálni, hogy a jó-e. nem jó, ha a2= {0, 1, q} (mod p). erre állítólag még gyorsabb megoldás is van, mint kiszámolni a négyzetet, de mindegy, mert az is gyors.

 

ha a jó, akkor a feladat kész van. ha a nem jó, akkor újabb számpárt olvasunk a key-schedule-ból, amig jó nem lesz.

 

f(D) értéke a fenti x

 

vélemény?

pint Creative Commons License 2010.11.29 0 0 599

megmondom mi lenne az igazi tuti

 

w(d) függvény, amire a következőt lehet elmondani

 

legyen egy sorozat, amiben

 

d0 adott

dn+1 = w(dn)

 

legyen definíció szerint w(d0, n) a fenti sorozat n. tagja.

 

nevezzük

 

valamint W(d0, dn, n) = 1, ha w(d0, n) = dn és 0 ha nem. (azóta megtudtam, hogy ezek szerint w az NP és coNP metszetben van.) (és azt is, hogy emiatt nem érdemes NP teljes problémákat keresni, hacsak nem NP=coNP, de ez nem valószínű. de szerencsére nem is kell nekem NP teljes.)

 

w legyen P-n kívüli, kiszámítási idejére legyen igaz a már említett átlag ~= max. ideális esetben min ~= max.

W legyen P-beli.

a d típusa szabadon választható, de számítógépen praktikusan ábrázolható legyen.

 

ez a kiírás az előzőektől abban különbözik, hogy w rekurzív, tehát az értelmezési tartománya és az értékkészlete megegyezik. ez azonban nem igazán plusz nehézség, mert lehet w(d) = v(h(d)) ahol h egy hash függvény, aminek értékkészlete olyan, amit szeretnénk, értelmezési tartománya meg gyakorlatilag bármi.

el Papi Creative Commons License 2010.11.25 0 0 598

ha D az adatunk. tehát a támadónak kéne találni egy d-t az adott h-hoz, majd találni egy D-t a d-hez, ami ráadásul megfelel az ő igényeinek, és értelmes. ez jóval több időt igényel, mint a hash lánc újraszámolása.

 

En egy szoval nem mondtam, hogy gyors lenne. :-) Viszont ez egy parhuzamosan vegezheto feladat. Ha en tudom, hogy az n-edik rekordban tarolt DNS mintat szeretnem modositani, h tisztara mossak egy politikust/maffiozot, akkor megtehetem ezt ugy, hogy az elso n-1-ig legeneralom ugyanazt a hasht ado rekordokat. Gyakorlatilag persze ez valoban szinte kivitelezhetetlen ha mar eleg nagy n-rol van szo, de per definicio nem hamisithatatlan.

Teny, h ez a gyakorlati megvalosithatosagot igy nem zarja ki.

 

No, akkor nem maradt mas amibe belekossek, ugyhogy mutass egy ilyen fuggvenyt. :-)

Előzmény: pint (597)
pint Creative Commons License 2010.11.25 0 0 597

nincs szükség az egyediség garantálására. arra van csak szükség, hogy h-ból ne lehessen generálni d-t. egyébként a valódi implementációban még ez sem volna elég, mert ugye a d nem lesz azonos az adattal, hanem azt egy gyors szokványos hash függvény adja:

 

d = H(D, helőző)

 

ha D az adatunk. tehát a támadónak kéne találni egy d-t az adott h-hoz, majd találni egy D-t a d-hez, ami ráadásul megfelel az ő igényeinek, és értelmes. ez jóval több időt igényel, mint a hash lánc újraszámolása.

 

a te érvelésed szerint egyébként a digitális aláírás sem jó, mert nem bizonyító erejű. mondjuk egy 2256 méretű search space az nekem elég biztonságos, és gyanítom, hogy a bíróságnak is.

Előzmény: el Papi (596)
el Papi Creative Commons License 2010.11.25 0 0 596

Kicsit jobban belegondolva, a tranzakcios log rekurziv titkositasa is felvet nehany kerdest:

Amennyiben garantalni akarjuk az egyediseget ugy vmilyen perfect hashing modszert kell alkalmazni, es a fv. rekurziv volta miatt permutacionkent valtozik. Azaz pl. csak 100 bevitt mintara mar 100! lehetoseget kell biztositani a hash fv. ertektartomanyan.

Es akkor meg nem vettuk figyelembe maganak a tarolt adatoknak a helyszuksegletet es valtozekonysagukat.

 

Ha feladjuk a perfect hashinget akkor viszont meg elvesztettuk a meghamisithatatlansagot. Igaz ugyan, hogy nagyon nehez, illetve nem is tetszoleges modon lehetne hamisitani, de akkor mar nem tudnank garantalni, hogy vki utolag nem cserelte e ki mondjuk az n. elemtol lefele egy ugyanolyan hash erteket ado 0..n-1 mintara az elemeket.

 

Ugy erzem ezesetben is praktikus okok allnak ellent a megvalosithatosagnak.

Előzmény: pint (595)
pint Creative Commons License 2010.11.25 0 0 595

"Egyfelol a burokracia legyozese vagyis a maffiozo/politikus kizarasra nehez (ha nem lehetetlen) barmilyen rendszert kitalalni ami mindennemu rosszhiszemuseg ellen ved."

ám én éppen ezt tűztem ki célul :)

 

"Egy ilyen adatbazisnal valoszinusitheto hogy egyszerre tortennenek modositasok,"

 

ezt éppenséggel ki kell zárni. a hashing nyilván egyetlen szálon történik. az innen kezdve technikai részletkérdés, hogy mi van, ha még tart az előző, de közben újabb rekordot kéne beszúrni. ilyenkor egyszerűen üresen lehet hagyni, és amikor a hashelő felszabadul, folytatja a következő üressel, amig van. jólrendezés se számít, mert a sorrend igazából lényegtelen. maga a hashing kapja fel a rekordokat, és fűzi fel egy láncra.


"Ezt figyelembe veve azzal a kivansaggal, hogy f() kiszamolasa idoben kelloen sokaig tartson, praktikusan kivetelezhetetlenne tenne ezt a rendszert."

 ezt nem tudom értelmezni. f lassúsága éppenhogy a lényege az egésznek. gyakorlatilag a hash számítása folyamatos, soha egy pillanatra le nem áll, emiatt lesz lehetetlen "utolérni". ez is egy fontos része, ha nincs új adat, amit hashelni kéne, akkor hasheli a semmit. ezeket az üres szakaszokat sem lehet utólag kivágni, mert akkor meg feltűnően kevés lesz a sor. hiszen meg kell lennie a napi 24 órányi munka eredményének.

"A masik lehetoseg az, hogy hisztorikusan tarolod az adatokat, tehat minden rekord hozzacsapodik az eddigiekhez,"

 

ezzel kezdtem :) az adatbázis úgy van megtervezve, hogy csak új adat kerül bele, törlés és módosítás nincsen. ez egyébként amúgy is jó gondolat, ha a nyomonkövethetőség szempont, tehát igazából nem kell nagyon átszabni emiatt.

 

"Mindenesetre az adminisztrator szemelye a legtobb esetben point of failure lehet."

ám nem az én megoldásomnál. ott az admin bele tud szólni, hogy mi kerüljön az adatbázisba, de ha egyszer belekerült, utólag nem lehet piszkálni.

Előzmény: el Papi (594)
el Papi Creative Commons License 2010.11.25 0 0 594

Egyfelol a burokracia legyozese vagyis a maffiozo/politikus kizarasra nehez (ha nem lehetetlen) barmilyen rendszert kitalalni ami mindennemu rosszhiszemuseg ellen ved.

 

De a konkret problemara utalva, konstruktiv otlet nelkul rogton mutatnek egy problemat:

Egy ilyen adatbazisnal valoszinusitheto hogy egyszerre tortennenek modositasok, viszont a rendszer rekurziv volta miatt ez problemas.

Ha non-blocking tipusu optimistic-lockot hasznalsz, akkor minden m es n rekord (m > n) modositasa eseten m azonnal eldobhato. Tehat aktualis mindig a legkisebb rendszamu rekordot lehetne csak modositani.

Azaz gyakorlatilag egy queue-bol kene kiolvasni a beerkezo adatokat, es minden egyes adatbevitelnel az attol magasabb rendszamu rekordokat is ujra kellene szamolni.

Kozben arra is figyelni kell, hogy a queue-bol is jolrendezve jojjenek a rekordok.

Ezt figyelembe veve azzal a kivansaggal, hogy f() kiszamolasa idoben kelloen sokaig tartson, praktikusan kivetelezhetetlenne tenne ezt a rendszert.

 

A masik lehetoseg az, hogy hisztorikusan tarolod az adatokat, tehat minden rekord hozzacsapodik az eddigiekhez, igy mukodnek pl. az in-memory adatbazisok, amik az adatreprezentaciot csak a gyors eleresu memoriaban taroljak es sorosan taroljak a modositasokat.

Ebben az esetben mondjuk az mukodo megoldasnak tunik (nem gondolkoztam el komolyabban rajta), hogy a tranzakcios logot rekurzivan kodoljuk.

A gyakorlatban ezekrol az adatbazisokrol idorol idore azert snapshotokat csinalnak, es nem a kalyhatol indulnak ha ujra kell oket inditani, igaz ennek az is oka, h jellemzoen ott hasznaljak oket, ahol nagy a terheles sok irassal es olvasassal es nagyon rovid valaszido az elvart, igy ezek a logok viszonylag hamar nagyon nagyra nonek.

Mindenesetre az adminisztrator szemelye a legtobb esetben point of failure lehet.

Előzmény: pint (593)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!