Chengetedza hard drive nzvimbo uchishandisa steganography

Kana tichitaura nezve steganography, vanhu vanofunga nezvemagandanga, vanorara nevana, vasori, kana, zvakanyanya, cryptoanarchists nemamwe masayendisiti. Uye chaizvoizvo, ndiani mumwe angada hwanda chimwe chinhu kubva mumaziso okunze? Chii chingave chakanakira izvi kune munhuwo zvake?

Zvinoratidza kuti pane imwe. Ndokusaka nhasi tichamanikidza data tichishandisa nzira dze steganography. Uye pakupedzisira, muverengi anotokwanisa kushandisa anokosha mafoto archives muJPEGs kuwedzera nhamba yemahara gigabytes pane faira system.

Chengetedza hard drive nzvimbo uchishandisa steganography

Chii?

Kana muverengi akayeuka, steganography inoshamisa algorithms inoita kuti zvikwanise kuvanza kuvapo kweimwe ruzivo mukati meimwe. Mumutauro wakatonyanya kupfava: mufananidzo + faira == ingangoita mufananidzo wakafanana, asi kwete chaizvo (panzvimbo yemifananidzo panogona kunge paine chero chinhu, asi kazhinji zvese zvinojeka mazviri). Hapafanirwe kunge paine nzira iri nyore yekuona kuti mukati mune chimwe chinhu here kana kuti kwete.

Asi kana mumwe asingagoni kusiyaniswa kubva kune mumwe, pane musiyano here zvachose? Kubva pakuona kwemutengi, mushandisi haana hanya nekurongeka kwemasvomhu (kunoratidzwa neimwe seti yebhiti), chete izvo zvinoonekwa naye.

Semuenzaniso, ngatitarisei mifananidzo mitatu yembwa yakanaka:

Ngwarira, JPEG!

Chengetedza hard drive nzvimbo uchishandisa steganography Chengetedza hard drive nzvimbo uchishandisa steganography Chengetedza hard drive nzvimbo uchishandisa steganography

Pasinei nemusiyano mukuru muhukuru, vashoma vanhu vachasarudza vhezheni yechitatu. Kune rumwe rutivi, musiyano pakati pemifananidzo miviri yekutanga hauoneki, uye huwandu hwemashoko mavari (kubva pakuona kwangu) hunogona kuenzana.

Iyi nheyo pachayo yatove yekare uye yave ichishandiswa zvakanyanya nekurasikirwa neruzivo nzira dzekumanikidza kwemakore mazhinji. Asi kuputsa hakusi kuvaka; isu tinofarira chikamu chepamberi chenyaya. Zvinoita here kupinza mamwe saizi ruzivo N kune faira kuitira kuti saizi yayo iwedzere M < N, asi shanduko hadzina kuoneka kumushandisi?

Chokwadi unogona. Asi zvakakosha kuti uite chengetedzo mbiri ipapo ipapo:

  • Chekutanga, iyo nzira inofanirwa kuve yepasirese uye ichipa mhedzisiro pane yakawanda yekuisa data. Ndiko kuti, paavhareji, nokuda kwekupinza kusina kurongeka, panofanira kuva nokuderera chaiko muhuwandu hwemashoko akachengetwa. "Paavhareji" zvinoreva kuti zvakapesana zvinogona kuitika, asi hazvifanirwe kutungamira.
  • Chechipiri, saizi yemudziyo wakamisikidzwa usati wadzvanya ruzivo hunofanirwa kunge hwakakura pane kuchinjika kwayo yakamanikidzwa nenzira yakafanana. Kungomisikidza boka remabhiti mumifananidzo yeBMP uchishandisa nzira yeLSB haisi steganographic compression, sezvo, yafambiswa neimwe mhando yeDEFLATE, mufananidzo wekutanga unogona kunge uri mudiki zvinooneka.
  • Chechitatu, mhedzisiro inofanirwa kuitwa uye kuenzaniswa neruremekedzo kune data rakatomanikidzwa nemhando dzekirasi. Izvi zvinobvisa probabilistic mhedzisiro yemusiyano mukudzokororwa kwavo uye kupa yakanyanya kusimba kudzvanya mune yakajairika kesi.

Kupi

Kushandiswa kwe steganography kunoreva kuti, pamusoro peruzivo rwakamanikidzwa, isu tichada midziyo iyo ichaiswa mukati. Huwandu hwehuwandu hweruzivo rwakadzamirwa zvakanyanya zvinoenderana nezvivakwa zvega, asi zviri nyore kuyera nenhamba yavo. Naizvozvo, iyo fomati yemidziyo inofanirwa kuve yakajairika kuitira kuti mushandisi ave nezvayo zvakakwana kuti awane chero bhenefiti kubva ku "compression" maitiro.

Muchirevo chechinyorwa ichi, magiraidhi, odhiyo, uye mavhidhiyo mafaera akanaka. Asi, nekuda kweakasiyana mafomati akasiyana, macodecs, nezvimwe, mukuita isu tinosara nesarudzo kubva kune kwete yakawanda sarudzo.

Tichifunga nezvese izvi, sarudzo yangu yakawira paJPEG.Anenge munhu wese anayo, inoshandiswa zvakanyanya kune zvese zvemunhu uye zvebhizinesi zvinangwa, ichiva inenge iyo de facto fomati yemifananidzo yakawanda.

Chengetedza hard drive nzvimbo uchishandisa steganography

Zvinoenderana here?

Tevere kune pedyo- uye hunyanzvi madhayagiramu uye tsananguro pasina tsananguro yakawanda, saka avo vanofarira vanogona kuasvetuka nekupuruzira kuchikamu che "High Technologies".

Common features

Kuti usimbise data kumwe kunhu, unofanira kutanga waona kuti kupi. Panogona kuve nechero nhamba yemifananidzo yakasiyana pane faira system, iyo mushandisi angangoda kushandisa mashoma chete. Tichadaidza seti inodiwa yemidziyo kuti raibhurari.

Inoumbwa mumatambudziko maviri: isati yanyanya uye isati yapera. Muchiitiko chekutanga, iwe unogona kungoshandisa seti yemazita emafaira (kana zviri nani zvakadaro, kutaura kwakajairika kwavari) kwemafaira, asi mune yechipiri, chimwe chinhu chakavimbika chinodiwa: mushandisi anogona kukopa nekuafambisa mukati meiyo faira system. , nokudaro zvichidzivirira kuti vasazivikanwe zvakarurama. Naizvozvo, zvinodikanwa kuchengetedza hashes yavo (md5 yakakwana) mushure mekugadziriswa kwese kwaitwa.

Muchiitiko ichi, hapana chikonzero mukuita kutsvaga kwekutanga uchishandisa chirevo chenguva dzose mukati mese faira system; zvakakwana kutsanangura imwe midzi dhairekitori. Iyo yakakosha archive faira ichachengetwa mairi, iyo ichange iine iwo hashes, pamwe nerumwe meta-ruzivo rwunodiwa pakudzoreredza kunotevera kweruzivo rwakamanikidzwa.

Zvese izvi zvinoshanda zvakaenzana kune chero kuita chero steganographic data compression algorithm. Maitiro ekumanikidza uye kudzoreredza data pachawo anogona kunzi kurongedza uye kuburitsa.

F5

Zvino zvave pachena zvatiri kuita uye nei, zvinosara kutsanangura algorithm yekuzadzisa chinangwa. Ngatiyeukei maitiro ekukodha faira reJPEG (nekuda kwewiki yeBauman National Library):

Chengetedza hard drive nzvimbo uchishandisa steganography

Uchitarisa pazviri, zviri nani kukurumidza kuita mashoma mashoma:

  • Saizi yeJPEG faira inogona kutorwa seyakanyanya pasina kana kuedza kuimanikidza neimwe mhando yeWinrar;
  • Irwo chete ruzivo rwakachengetwa (irwo rwunobuda kubva kune discrete cosine shanduko, DCT) inogona kugadziridzwa kuti ipe kanenge kanogamuchirwa kuita.
  • Kuti urege kurasikirwa nedata pachiyero cheindasitiri chinoonekwa kumushandisi, zvinodikanwa kuita hushoma hwekugadzirisa kumufananidzo wega wega;

Mhuri yese yealgorithms inokodzera aya mamiriro, ayo iwe aunogona kujairana nawo mune iyi mharidzo yakanaka. Iyo yakanyanya kukwirisa pakati pavo ndeye algorithm F5 naAndreas Westfeld, achishanda neDCT coefficients yechikamu chekupenya (ziso remunhu harina hanya nekuchinja kwaro). Mamiriro ayo ese kana uchishanda neJPEG faira iripo inoratidzwa sezvizvi:

Chengetedza hard drive nzvimbo uchishandisa steganography

Iyo F5 block inoshandisa yepamberi yekumisikidza nzira yakavakirwa pane matrix encoding. Muverengi anogona kudzidza zvakawanda nezvayo uye iyo algorithm pachayo pane chinongedzo chiri pamusoro, asi isu tinonyanya kufarira chokwadi chekuti nerubatsiro rwayo unogona kuita shanduko shoma paunenge uchiisa huwandu hwakafanana hweruzivo, iyo yakakura saizi yemudziyo wakashandiswa. , uye kuita iyo algorithm inongoda kuita nyore Huffman uye RLE (de) coding mashandiro.

Shanduko pachadzo dzinoitwa kune integer coefficients uye dzinodzika kudzikisira kukosha kwayo kwakazara neimwe, iyo inobvumira, kazhinji kutaura, kushandisa F5 yekumanikidza data. Pfungwa ndeyokuti iyo yakaderedzwa coefficient mukukosha kwakakwana ingangove inotora zvishoma zvishoma mushure meHuffman encoding nekuda kwekugoverwa kwehuwandu hwehuwandu muJPEG.

Chengetedza hard drive nzvimbo uchishandisa steganography

Panyaya yekuumbwa kwe zero (inonzi kuderedzwa), nhamba yeruzivo rwakachengetwa ichaderedzwa nehukuru hwayo, sezvo yaimbova yakazvimiririra coefficient ichave chikamu cheRLE encoded kutevedzana kwezero:

Chengetedza hard drive nzvimbo uchishandisa steganography

Kuchinja

Dziviriro yedata uye kudzvanywa matambudziko orthogonal, saka yakavanzika password yekubvumidza kubva kune yekutanga algorithm inogona kuregeredzwa. Uyezve, isu tinofanirwa kunyatsoziva nzira yekubvisa iyo data, saka ruzivo rwese rwunodiwa kune iyi (iyo midziyo yakashandiswa, muhurongwa hupi, nezvimwewo) inofanira kurekodhwa mune imwe faira uye yakavhurika kuti iverenge mahara neanochengeta.

Iyo yekutanga algorithm yakagadzirirwa kuendesa zvakavanzika meseji, saka inoshanda nemudziyo mumwe chete panguva, uchifungidzira kuti mushandisi pachake achaityora kuita zvikamu kana zvichidikanwa, kana zviripo. Uyezve, kana yakamisikidzwa yakazvimiririra mugaba rega rega, iwe unozofanirwa kufanoziva kuti mangani mabhiti edata ekuisa mune imwe neimwe. Naizvozvo, iyo coefficients yechinhu chimwe nechimwe cheraibhurari inofanirwa kusanganiswa kuita imwe abstract yakakura uye kushanda nayo zvinoenderana neiyo yekutanga algorithm.

Sezvo yepakutanga F5 ichibvumira kusvika gumi nembiri muzana yesaizi yemidziyo, shanduko iyi ichawedzerawo huwandu hwehukuru: "kusvika gumi nemaviri%" yehukuru hweraibhurari yese yakakura kupfuura kana kuenzana nehuwandu hwe "kusvika gumi nemaviri% " kubva kune chimwe nechimwe chezvinhu zvayo.

Iyo codified general scheme ndeiyi inotevera:

Chengetedza hard drive nzvimbo uchishandisa steganography

Iyo algorithm pachayo

Iye zvino yave nguva yekutsanangura iyo algorithm pachayo kubva pakutanga kusvika pakupedzisira, kuti urege kuchengeta muverengi murima:

  • Mushandisi anotsanangura iyo binary compressible data M uye raibhurari L uchishandisa yenguva dzose kutaura uye yekutsvaga midzi dhairekitori;
  • Nekurongeka kwavanoita paFS, zvinhu zveraibhurari zvinoumba iyo MC:
    • Nhepfenyuro yecoefficients C inogadziriswa kubva kune data data;
    • MC <- MC | C;
  • Iyo parameter k inotemerwa zvichienderana nekusaenzana kunotyisa: |M| * 8 / (count_full(MC) + count_ones(MC) * k_rate(k)) < k / ((1 << k) - 1);
  • Zvakatorwa zvinotevera n = (1 << k) - 1 zvishoma zvakakosha zvimedu zvisiri-zero zvinhu kubva kuMC uye zvakanyorerwa kuna a:
    • Iyo yemashiripiti hashi basa inofungidzirwa f, inomiririra n-bit izwi a kuti k-bit s;
    • kana s == 0, saka hapana chikonzero chekuchinja chero chinhu uye algorithm inoenda kune inotevera coefficients;
    • Deredza kukosha kwakazara kweiyo coefficient inokonzeresa s-hey zvishoma mushoko a;
    • Kana semugumisiro wekuderedza kuderera kunoitika (iyo coefficient inova 0), zvino dzokorora danho kubva pakutanga;
  • Ese coefficients akaiswa encoded neRLE naHuffman, yakanyorwa kune iyo sosi mafaera;
  • Iyo parameter k inonyorerwa kune iyo archive faira;
  • Iyo MD5 hashi inoverengerwa kubva kune yega faira L mukurongeka kwenzvimbo yavo yepakutanga uye inonyorerwa kufaira rekuchengetedza.

High tech

Iyo naive fomu yealgorithm uye mashandisirwo mune mamwe mazinga epamusoro (kunyanya nekuunganidzwa kwemarara) mitauro yaizopa kuita kunotyisa, saka ndakashandisa zvese izvi zvakaomarara muC yakachena uye ndakaita huwandu hwekugadzirisa zvese maererano nekumhanya kwekuuraya uye. ndangariro (hauzive kuti aya mapikicha anorema zvakadii pasina kudzvanywa kunyangwe pamberi peDCT). Asi kunyange zvakadaro, pakutanga kukurumidza kwekuuraya kwakasiya zvakawanda zvingadiwa, saka handisi kuzotsanangura nzira yose uye nzira dzakashandiswa.

Muchinjikwa-chikuva unowanikwa uchishandisa musanganiswa we libjpeg, pcre uye tinydir raibhurari, izvo tinovatenda nazvo. Nekusagadzikana, zvese zvinoumbwa nenzira yakajairwa make, saka vashandisi veWindows vanoda kuisa imwe Cygwin yavo, kana kubata neVisual Studio nemaraibhurari ega.

Iko kusevenzesa kunowanikwa muchimiro chekoni utility uye raibhurari. Avo vanofarira vanogona kuziva zvakawanda nezve kushandisa iyo yekupedzisira mune yekuverenga mune repository paGithub, chinongedzo chandichabatanidza pakupera kweposvo. Uye pano tinopfuurira kune tsanangudzo uye kuratidzwa kwebasa racho.

Nzira yekushandisa sei?

Kungwarira. Mifananidzo yakashandiswa inogona kutamiswa, kupihwa zita uye kukopwa sezvaunoda. Nekudaro, iwe unofanirwa kungwarira zvakanyanya uye usachinje zviri mukati mavo neimwe nzira. Kuchinja chidimbu chimwe chete kuchakanganisa hashi uye kuita kuti zvisakwanise kudzoreredza ruzivo.

Ngatitii mushure mekubatanidza tinowana iyo inogadziriswa faira f5ar. Unogona kuongorora saizi yeraibhurari kuti uverenge mikana yekushandiswa kwayo uchishandisa mureza -a: ./f5ar -a [ΠΏΠ°ΠΏΠΊΠ° поиска] [Perl-совмСстимоС рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅]. Packaging inoitwa nechikwata ./f5ar -p [ΠΏΠ°ΠΏΠΊΠ° поиска] [Perl-совмСстимоС рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅] [ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ„Π°ΠΉΠ»] [имя Π°Ρ€Ρ…ΠΈΠ²Π°], uye kusunungura uchishandisa ./f5ar -u [Ρ„Π°ΠΉΠ» Π°Ρ€Ρ…ΠΈΠ²Π°] [имя восстановлСнного Ρ„Π°ΠΉΠ»Π°].

Kuratidzira basa

Kuratidza kushanda kweiyo nzira, ndakaisa muunganidzwa we225 yemahara mapikicha embwa kubva kubasa. Unsplash. Imwe neimwe yadzo ine yakakwira mhando kupfuura yakajairwa mushandisi mafoto, asi zvakadaro. Imwe neimwe yadzo yakavharwa patsva uchishandisa libjpeg kudzikamisa kukanganiswa kweiyo raibhurari encoding maficha pahukuru hwese. Kuti uratidze muenzaniso wakaipisisa we data inomanikidzika, imwe nguva 36-mita (zvishoma kudarika 5% yehukuru hwose) faira yakagoverwa zvakafanana yakagadzirwa uchishandisa dd.

Maitiro ekuyedza ari nyore:

$ ls
binary_data dogs f5ar
$ du -sh dogs/
633M dogs/
$ du -h binary_data
36M binary_data

$ ./f5ar -p dogs/ .*jpg binary_data dogs.f5ar
Reading compressing file... ok
Initializing the archive... ok
Analysing library capacity... done in 16.8s
Detected somewhat guaranteed capacity of 48439359 bytes
Detected possible capacity of upto 102618787 bytes
Compressing... done in 32.6s
Saving the archive... ok

$ ./f5ar -u dogs/dogs.f5ar unpacked
Initializing the archive... ok
Reading the archive file... ok
Filling the archive with files... done in 1.2s
Decompressing... done in 17.5s
Writing extracted data... ok

$ sha1sum binary_data unpacked
ba7ade4bc77881ab463121e77bbd4d41ee181ae9 binary_data
ba7ade4bc77881ab463121e77bbd4d41ee181ae9 unpacked
$ du -sh dogs/
563M dogs/

Kana skrini yevateveri

Chengetedza hard drive nzvimbo uchishandisa steganography

Sezvauri kuona, kubva kune yepakutanga 633 + 36 == 669 megabytes yedata pane hard drive, isu takazoguma nenicer 563, ichitipa compression reshiyo ye ~ 1,188. Uyu mutsauko wakakura unotsanangurwa nekurasikirwa kudiki zvakanyanya, kwakafanana neakawanikwa pakukwenenzvera mafaera eJPEG uchishandisa nzira dzekare (senge tinyjpg). Nomuzvarirwo, kana uchishandisa steganographic compression, ruzivo harungori "kurasika", asi rinoshandiswa encode imwe data.Payezve, nhamba ye "optimized" coefficients nekuda kwekushandiswa kweF5 ishoma pane neyechinyakare optimization.

Chero zvigadziriso zviripo, hazvionekwe zvachose neziso. Pasi pemuparadzi pazasi, muverengi anogona kuongorora mutsauko neziso uye nekubvisa kukosha kwechikamu chakashandurwa kubva kune chepakutanga (icho chakanyanya kunyarara ruvara, diki mutsauko):

Manongedzo kumifananidzo isingaenderane pahabrastorage

Chekutanga - https://i.ibb.co/wNDLNcZ/1.jpg
Yakagadziridzwa - https://i.ibb.co/qWvpfFM/1.jpg
Musiyano - https://i.ibb.co/2ZzhHfD/diff.jpg

Pane mhedziso

Ndinovimba kuti ndakakwanisa kuita kuti muverengi abvume kuti nzira dzakadaro dzinobvira uye dzine kodzero yekurarama. Nekudaro, kutenga hard drive kana imwe chiteshi (yekufambiswa kwenetiweki) inogona kuita senge iri nyore sarudzo pane kuedza kuchengetedza mari nenzira iyi. Kune rimwe divi, ichi ichokwadi; kukura kwakakura kunowanzo kuve nyore uye kwakavimbika. Asi kune rumwe rutivi, hatifaniri kukanganwa pamusoro pezvakanyanya. Mushure mezvose, hapana vimbiso yekuti mangwana iwe uchakwanisa kuuya kuchitoro uye uzvitengere chimwe chiuru cheterabyte hard drive, asi iwe unogona kugara uchishandisa izvo zvaunenge watova nazvo kumba.

-> GitHub

Kunobva: www.habr.com

Voeg