HDD titkositas

norbimagan norbimagan at vnet.hu
Fri Oct 29 02:45:00 CEST 2004


Szia Attila!



Latom, vedeni akarod a XOR-t ... es igazad van! Kicsit segitek. (A
koveteshez azert papír-ceruza ajanlott, mert annyira nem tudom
szemleletesen leirni, mint Gabor tette a ketkulcsos kodolassal.)

>hogy mit kell keresni, tehát csak ido és cpu power kérdése, mikor lesz
>meg az eredmény... Osztán lehet, hogy tévedek, a matekot sose
>szerettem, inkább a fizika kézzelfogható részeit (mégha néha ráznak
>is szikráznak is kissé) :-)

Maskepp kozelitsd meg, ha mar XOR-olni akarsz:

1., keszits egy minel nagyobb, random szambol allo adatfile-t. (Pl.
gyermekgugyogesem.wav xor az_asszony_szulinapja.asf, bajtonkent persze.)

2., Egy szuroprogrammal hajitsd ki a statisztikai ismetlodeseket, pl.
egyforma bajtokat, adott csokkeno/novekvo sorozatokat, stb... Ha kesz,
nevezd el ezt kulcs1-nek.

3., Keszits egy masik random sorozatot tartalmazo allomanyt, eltero
hosszal, mondjuk like_a_prayer_helyett_en_enekelek.mp3 XOR
alien-nek_oltoztem2-1.mpg, es ez is megszabaditva az ismetlodesektol

4., keszits egy harmadikat is, ismet eltero hosszal,legyen kulcs3 a neve
ennek. Az eljaras azonos, de ezuttal hasznald a papa_notazik.mp3 XOR
mamalefejeli_ezert.avi-t


5., Ugyelj arra, hogy teljesuljon az alabbi feltetel: kulcs1merete*
kulcs2merete* kulcs3merete>=kodolando hdd terulet merete. Tovabba a
kulcshosszak ne legyenek egymas egesz szamu tobbszorosei.(pl. primszam a
hosszusag...) Ezt nem lesz tul nehez betartani, ha pl. 32MB feletti
meretu randomkulcsokkal dolgozunk... (Sok terabajtos limit jon ki
:)))))) )

5., vegyel 3db mutatot; mkulcs1,mkulcs2,mkulcs3, es allitsd mindegyiket
egyre.

6., A kodolando adatokat oszd fel blokkokra. A blokkmeret legyen egy
szam, amit a kulcs3-ban talalhato, mkulcs3 pozicioban levo 16-bites szo
lesz. (Mivel az ismetlodo bajtokat kizartuk, 0 ertek nem lehet)

7., Noveld meg mkulcs3 erteket 1-el...

8., Az mkulcs2 altal mutatott ertektol kezdve vegyel ki a kulcs2-bol
blokkmeretnyi bajtot, es ebbol keszits egy cserelotombot valamilyen
algoritmussal. A lenyeg, hogy az itt szereplo szamok altal meghatarozott
modon legyen a blokkmeretnyi tombod, amiben 1...blokkmeret kozotti
szamok vannak, meghozza minden szam szerepel, de termeszetesen egyszer.
(Pl.: ot elemunel: 1,3,2,5,4 lehet egy variacio). Az algoritmusod
pofonegyszeru is lehet, vagy bonyolult, lenyegtelen. Az szamit, hogy
egyedi legyen!

9., ertelemszeruen noveld mkulcs2 erteket a blokkmerettel...

10., Indits egy ciklust, es most az osszecserelt adattombot XOR-old at a
kulcs3 allomannyal ugy, hogy a ciklusvaltozoval lepkedsz az adattombon,
es mkulcs3 mutato altal mutatott bajtot hasznalod a XOR-hoz. Vege a
ciklusnak.

11., Indits egy ciklust, a blokkmerettel, es a 8-as pontban letrejovo
cseretomb alapjan cserebereld ossze a kodolando adatblokkokat. Tehat egy
tombben van ugye az eredeti adatsorbol kiszdett, kodolatlan blokk, egy
masikban ez a random, de minden szamra csak egyszer elofordulo
adatsorozat.
A fenti pelda alapjan elso helyre veszed az elso elemet. A masodik
helyre a harmadik elemet, a harmadik helyre a masodikat, a negyedikre az
otodiket, vegul az otodik helyre a negyediket rakod. Azaz elkeszult a
randomszeru cserebere. (Visszakodolhato, dekodolaskor persze forditva
tortenik minden. De a kulcsok sorozata ugyanaz.) Ezzel vege a ciklusnak.

12.., Most az adattombod cserelve is van, tovabba XOR-olva is van
bajtonkent. Ezutan megnezed, vege van -e a kodolasnak, vagy tovabb kell
menned. Ha vege, akkor kilepes, ha tovabb, akkor visszamesz a 6.-os
pontra...

Diohejban ennyi. Sajat kobura, most talaltam ki. A fejem azert nem
teszem ra, (lattam mar karo'n varju't) de szerintem kellokeppen
biztonsagos. Gondoljatok bele: a kulcsok hossza nem egesz szamu
tobbszorose egymasnak. A 3 mutato nem egyutt mozog, igy az ismetlodesek
egetveroen ritkak lesznek, sot a HDD meretenel sokkal ritkabbak. A
blokkok merete "random" modon valtozo, az adatcsere sorrendje
ugyszinten. S emellett a teljes adatsor XOR-olva van egy random
kulccsal, ami ugyan ismetlodhet, de nincs jelentosege, mert
csereberelodik/rotalodik osszevissza az is, es szinten "random" lesz.
Tehat a csereminta "fedett" marad.
Ebbol kovetkezik, hogy akar teljes HDD-nyi 0-bajtot is le lehet
nyugodtan vedeni vele, nem tudjak kiolvasni az adatokat a kulcsok es az
algoritmus nelkul, ha a nulla bajtok egybefuggo hossza kulcs1 es kulcs2
meretenek a szorzatanal kisebb. (Errol nem volt szo, de ertelemszeruen
kovetkezik az algoritmusbol.)

Aki nem hiszi, lehet gondolkodni, illetve csinalni torest hozza... Ha
megall a modszer, akkor szabadon terjesztheto, de legyszi a kitalalorol
nevezzetek el. :)))

Igy hajnaltajt egesz "pihent" vagyok. :) Ahelyett, hogy huznam a lobort,
csak beszelek megint marhasagokat...

Hardver kivitelezes:
Persze fizikailag ugy kell elkepzelni mindezt, hogy egy 128MB-os
pendrive-on, a 3 kulcsallomany, illetve a kodolo/dekodolo szoftver. Az
altalam korabban leirt piros dobozkaban meg egy DSP, ami betolti a
szoftvert a PEN-rol, es ezzel kodol. Szoftver nelkul a DSP-n egy alap
progi indul el, ami 1:1-ben relezi az adatokat tovabb, mintha ott se
lenne a hardver, vagy celszeruen mutat egy 4Gb-nyi LINUX-ot, meg ures
helyeket, amiket egy egyszeru bajt-XOR-al ved csak... DSP nelkul meg
annyi sem latszik...

Hivatlan latogatoi kerdesre: "Nincs jelszo, hardveres a vedelem, ennyi
van a HDD-n, latjak, nem?" Hogy tobb van rajta, azt meg lehet probalni
bizonygatni kulcsok es algoritmus hianyaban...

Ugye, nem is annyira rossz ez a XOR? :))))

Ja, es a folyamat qrvagyors lehet, ami realtime HDD-kodolasnal nem
hatrany. Hiszen bitrotalast se, komoly matekot meg vegleg nem tartalmaz,
csak 3 ciklust, meg tombkezeleseket es nemi xor-t. Annyi bibi van, hogy
a DSP-nek kell minimum 128MB-os RAM, hogy a kulcsot gyorsan lehessen
olvasni, es ne a PEN-bol kelljen lassan szedegetni mindig...

Me'g van egy erdekes sajatsaga a fenti modszernek: 
Legyen 2 embernel egy-egy PEN-drive, eltero 3 kulcsallomannyal. Ez
esetben az osszetartozo allomanyok valami olyasmit kepeznek, mint a
kettetepett 100-dollaros bankjegy: Kizarolag parban nyitjak a HDD-t,
mert a ket PEN-t beolvasva az osszetartozo allomanyok XOR-olhatok. Igy,
egyuttesen adjak a helyes kulcsot.
Se "A", se "B" szemely nem ferhet kulon a HDD tartalmahoz, csakis
kizarolag kettejuk egyuttesen! S ez a jatek eljatszhato 3,4,5,akarhany
... emberrel is. :)


>Attila



Udv.:
         Norbi.





More information about the Elektro mailing list