Iffranka l-ispazju tal-hard drive billi tuża steganografija

Meta nitkellmu dwar steganografija, in-nies jaħsbu dwar terroristi, pedofili, spiji, jew, fl-aħjar, kriptoanarchisti u xjenzati oħra. U verament, min ieħor jista 'jkollhom bżonn ħabi xi ħaġa mill-għajnejn esterni? X'jista' jkun il-benefiċċju ta' dan għal persuna komuni?

Jirriżulta li hemm wieħed. Huwa għalhekk li llum ser nikkompressaw id-dejta billi tuża metodi ta 'steganografija. U fl-aħħar, il-qarrej saħansitra se jkun jista 'juża l-arkivji tar-ritratti prezzjuż tiegħu f'JPEGs biex iżid in-numru ta' gigabytes b'xejn fuq is-sistema tal-fajls.

Iffranka l-ispazju tal-hard drive billi tuża steganografija

X'inhu?

Jekk il-qarrej jiftakar, steganography hija tali algoritmi strambi li jagħmluha possibbli li tinħeba l-preżenza ta 'informazzjoni waħda ġewwa oħra. F'lingwa saħansitra aktar sempliċi: stampa + fajl == bejn wieħed u ieħor l-istess stampa, iżda mhux pjuttost (minflok stampi jista 'jkun hemm xi ħaġa, iżda ġeneralment kollox ikun aktar ċar fihom). M'għandux ikun hemm mod faċli biex tiddetermina jekk hemmx xi ħaġa ġewwa jew le.

Imma jekk wieħed ma jistax jiġi distint mill-ieħor, hemm xi differenza? Mill-aspett tal-konsumatur, l-utent ma jimpurtax mill-preċiżjoni matematika (riflessa minn sett partikolari ta 'bits), biss dak li hu pperċepit minnu.

Pereżempju, ejja nħarsu lejn tliet stampi ta 'kelb ħelu:

Oqgħod attent, JPEG!

Iffranka l-ispazju tal-hard drive billi tuża steganografija Iffranka l-ispazju tal-hard drive billi tuża steganografija Iffranka l-ispazju tal-hard drive billi tuża steganografija

Minkejja d-differenza kbira fid-daqs, ftit nies se jagħżlu t-tielet verżjoni. Min-naħa l-oħra, id-differenza bejn l-ewwel żewġ ritratti mhix daqshekk notevoli, u l-ammont ta 'informazzjoni fihom (mill-punt di vista tiegħi) jista' jkun ugwali.

Dan il-prinċipju innifsu huwa diġà antik u ġie sfruttat b'mod attiv minn metodi ta 'kompressjoni ta' informazzjoni b'telf għal ħafna snin. Iżda tkissir mhux bini; aħna interessati fin-naħa l-aktar avvanzata tal-kwistjoni. Huwa possibbli li tiddaħħal informazzjoni addizzjonali dwar id-daqs N lill-fajl sabiex id-daqs tiegħu jiżdied bi M < N, iżda l-bidliet ma kinux notevoli għall-utent?

Naturalment tista’. Iżda ta 'min jagħmel ftit riżervi mill-ewwel:

  • L-ewwelnett, il-metodu għandu jkun universali u jagħti riżultat pożittiv fuq il-biċċa l-kbira tad-dejta tal-input. Jiġifieri, bħala medja, għal input każwali, għandu jkun hemm tnaqqis attwali fl-ammont ta 'informazzjoni maħżuna. "Bħala medja" tfisser li jista' jseħħ l-oppost, iżda m'għandux jippredomina.
  • It-tieni nett, id-daqs tal-kontenitur ikkompressat qabel l-inkorporazzjoni tal-informazzjoni għandu jkun akbar mill-modifika tiegħu kkompressata b'mod simili. Sempliċement inkorporazzjoni ta 'mazz ta' bits f'immaġini BMP bl-użu tal-metodu LSB mhijiex kompressjoni steganografika, peress li, wara li tgħaddi minn xi tip ta 'DEFLATE, l-immaġni oriġinali x'aktarx tkun notevolment iżgħar.
  • It-tielet nett, ir-riżultat għandu jitwettaq u jitqabbel fir-rigward tad-dejta diġà kkompressata b'metodi klassiċi. Dan se jneħħi l-effett probabilistic tad-differenzi fir-redundancy tagħhom u jipprovdi kompressjoni aktar effiċjenti fil-każ ġenerali.

Fejn?

L-użu tal-isteganografija jimplika li, minbarra l-informazzjoni kompressata, ikollna bżonn kontenituri li fihom tkun inkorporata. L-ammont massimu ta 'informazzjoni inkorporata jiddependi ħafna fuq proprjetajiet individwali, iżda huwa ħafna aktar faċli li tiskala bin-numru tagħhom. Għalhekk, il-format tal-kontenitur għandu jkun komuni sabiex l-utent ikollu biżżejjed minnhom biex jikseb xi benefiċċju mill-proċess ta ' "kompressjoni".

F'dan il-kuntest, fajls tal-grafika, awdjo u vidjo huma kandidati tajbin. Iżda, minħabba l-varjetà ta 'formati differenti, codecs, eċċ., fil-prattika aħna jitħalla b'għażla minn mhux daqstant għażliet.

Meta wieħed iqis dan kollu, l-għażla tiegħi waqgħet fuq JPEG.Kważi kulħadd għandu, huwa użat ħafna kemm għal skopijiet personali kif ukoll kummerċjali, huwa kważi l-format de facto għall-biċċa l-kbira tal-immaġini.

Iffranka l-ispazju tal-hard drive billi tuża steganografija

Jiddependi?

Sussegwentement hemm dijagrammi u deskrizzjonijiet qrib u tekniċi mingħajr ħafna spjegazzjoni, sabiex dawk interessati jkunu jistgħu jaqbżuhom billi jiskrolljaw għat-taqsima "Teknoloġiji Għolja".

Karatteristiċi komuni

Biex tiddaħħal id-data x'imkien, l-ewwel trid tiddetermina fejn. Jista 'jkun hemm kwalunkwe numru ta' ritratti differenti fuq is-sistema tal-fajl, li minnhom l-utent jista 'jkun irid juża biss ftit. Aħna se nsejħu tali sett mixtieq ta 'kontenituri librerija.

Huwa ffurmat f'żewġ każijiet: qabel il-kompressjoni u qabel id-dekompressjoni. Fl-ewwel każ, tista 'sempliċement tuża sett ta' ismijiet ta 'fajls (jew aħjar, espressjoni regolari għalihom) ta' fajls, iżda fit-tieni, hija meħtieġa xi ħaġa aktar affidabbli: l-utent jista 'jikkopjahom u jċaqlaqhom fis-sistema tal-fajls. , u b'hekk ma tħallihomx jiġu identifikati b'mod korrett. Għalhekk, huwa meħtieġ li jaħżnu l-hashes tagħhom (md5 huwa biżżejjed) wara li jkunu saru l-modifiki kollha.

F'dan il-każ, m'hemm l-ebda skop li titwettaq it-tfittxija inizjali bl-użu ta 'espressjoni regolari matul is-sistema tal-fajls kollha; huwa biżżejjed li jiġi speċifikat ċertu direttorju tal-għeruq. Fih jiġi ssejvjat fajl ta 'arkivju speċjali, li jkun fih dawk il-hashes, flimkien ma' meta-informazzjoni oħra meħtieġa għall-irkupru sussegwenti ta 'informazzjoni kkompressata.

Dan kollu japplika bl-istess mod għal kwalunkwe implimentazzjoni ta 'kwalunkwe algoritmu ta' kompressjoni ta 'data steganografika. Il-proċessi tal-kompressjoni u l-irkupru tad-data nfushom jistgħu jissejħu ippakkjar u tneħħija tal-ippakkjar.

F5

Issa li deher ċar x'qed nagħmlu u għaliex, għad irid jiddeskrivi l-algoritmu biex jintlaħaq l-għan. Ejja nfakkru l-proċess ta 'kodifikazzjoni ta' fajl JPEG (grazzi għall-wiki tal-Librerija Nazzjonali Bauman):

Iffranka l-ispazju tal-hard drive billi tuża steganografija

Meta wieħed iħares lejha, ​​huwa aħjar li immedjatament tagħmel ftit kummenti:

  • Id-daqs ta 'fajl JPEG jista' jitqies ottimali mingħajr lanqas biss jipprova jikkompressa b'xi tip ta 'Winrar;
  • L-informazzjoni maħżuna biss (dik li toħroġ mit-trasformazzjoni tal-kosinju diskreti, DCT) tista' tiġi modifikata biex tipprovdi mill-inqas prestazzjoni aċċettabbli.
  • Sabiex ma titlifx data fuq skala industrijali notevoli għall-utent, huwa meħtieġ li jsiru minimu ta 'modifiki għal kull immaġini individwali;

Familja sħiħa ta' algoritmi taqbel ma' dawn il-kundizzjonijiet, li tista' tiffamiljarizza ruħek magħhom f’din il-preżentazzjoni tajba. L-aktar avvanzat minnhom huwa l-algoritmu F5 minn Andreas Westfeld, li jaħdem mal-koeffiċjenti DCT tal-komponent tal-luminożità (l-għajn tal-bniedem hija l-inqas sensittiva għall-bidliet tagħha). It-tqassim ġenerali tiegħu meta jaħdem ma 'fajl JPEG eżistenti jintwera kif ġej:

Iffranka l-ispazju tal-hard drive billi tuża steganografija

Il-blokk F5 juża teknika avvanzata ta 'inkorporazzjoni bbażata fuq kodifikazzjoni tal-matriċi. Il-qarrej jista 'jitgħallem aktar dwaru u l-algoritmu innifsu fil-link ta' hawn fuq, iżda aħna primarjament interessati fil-fatt li bl-għajnuna tiegħu tista 'tagħmel inqas bidliet meta tintegra l-istess ammont ta' informazzjoni, iktar ikun kbir id-daqs tal-kontenitur użat , u għat-twettiq tal- L-algoritmu jeħtieġ biss li jwettaq operazzjonijiet sempliċi ta' (de)kodifikazzjoni ta' Huffman u RLE.

Il-bidliet infushom isiru għal koeffiċjenti interi u jinżlu biex inaqqsu l-valur assolut tagħhom b'wieħed, li jippermetti, b'mod ġenerali, li jintuża F5 għall-kompressjoni tad-dejta. Il-punt huwa li l-koeffiċjent imnaqqas fil-valur assolut x'aktarx se jokkupa inqas bits wara l-kodifikazzjoni Huffman minħabba d-distribuzzjoni statistika tal-valuri f'JPEG.

Iffranka l-ispazju tal-hard drive billi tuża steganografija

Fil-każ tal-formazzjoni ta 'żero (l-hekk imsejjaħ tnaqqis), in-numru ta' informazzjoni maħżuna se jitnaqqas bid-daqs tiegħu, peress li l-koeffiċjent indipendenti ta 'qabel se jsir parti mis-sekwenza ta' żerijiet kodifikati RLE:

Iffranka l-ispazju tal-hard drive billi tuża steganografija

Modifiki

Il-protezzjoni tad-dejta u l-kompressjoni huma problemi ortogonali, għalhekk il-permutazzjoni tal-password sigrieta mill-algoritmu oriġinali tista 'tiġi traskurata. Barra minn hekk, irridu nkunu nafu eżattament kif niġbdu d-dejta, għalhekk l-informazzjoni kollha meħtieġa għal dan (liema kontenituri ntużaw, f'liema ordni, eċċ.) Għandha tiġi rreġistrata f'fajl separat u tkun miftuħa għal qari b'xejn mill-arkivju.

L-algoritmu oriġinali huwa ddisinjat biex jittrasmetti messaġġi sigrieti, għalhekk jaħdem b'kontenitur wieħed biss kull darba, billi wieħed jassumi li l-utent innifsu jkisser f'partijiet jekk meħtieġ, jekk ikun hemm. Barra minn hekk, meta tkun inkorporata b'mod indipendenti f'kull kontenitur, ikollok bżonn tkun taf minn qabel kemm bits ta 'dejta għandek tpoġġi f'kull wieħed. Għalhekk, il-koeffiċjenti ta 'kull element tal-librerija għandhom jingħaqdu f'wieħed kbir astratt u maħduma magħha skond l-algoritmu oriġinali.

Peress li l-F5 oriġinali jippermetti sa 12% tad-daqs tal-kontenitur, din il-modifika se żżid ukoll il-kapaċità massima: "sa 12%" tad-daqs tal-librerija kollha hija akbar minn jew ugwali għas-somma ta '"sa 12% "minn kull wieħed mill-elementi tiegħu.

L-iskema ġenerali kodifikata hija kif ġej:

Iffranka l-ispazju tal-hard drive billi tuża steganografija

L-algoritmu innifsu

Issa wasal iż-żmien li tiddeskrivi l-algoritmu innifsu mill-bidu sat-tmiem, sabiex il-qarrej ma jibqax fid-dlam:

  • L-utent jiddefinixxi d-dejta binarja kompressabbli M u l-librerija L bl-użu ta’ espressjoni regolari u direttorju tal-għeruq ta’ tfittxija;
  • Fl-ordni li jidhru fuq l-FS, l-elementi tal-librerija jiffurmaw l-MC:
    • Serje ta' koeffiċjenti Ċ huma dekodifikati mid-dejta tal-fajl;
    • MC <- MC | C;
  • Il-parametru k huwa ddeterminat abbażi tal-inugwaljanza terribbli: |M| * 8 / (count_full(MC) + count_ones(MC) * k_rate(k)) < k / ((1 << k) - 1);
  • Meħuda li jmiss n = (1 << k) - 1 l-inqas bits sinifikanti ta' elementi mhux żero minn MC u miktuba fuq a:
    • Il-funzjoni magic hash hija kkunsidrata f, li tirrappreżenta kelma ta' n-bit a għal k-bit s;
    • Jekk s == 0, allura m'hemmx bżonn li tinbidel xejn u l-algoritmu jimxi fuq il-koeffiċjenti li jmiss;
    • Naqqas il-valur assolut tal-koeffiċjent responsabbli għal s-ħej bit fil-kelma a;
    • Jekk bħala riżultat tat-tnaqqis iseħħ tnaqqis (il-koeffiċjent isir 0), imbagħad irrepeti l-pass mill-bidu;
  • Il-koeffiċjenti kollha huma kodifikati minn RLE u Huffman, miktuba fil-fajls tas-sors;
  • Il-parametru k jinkiteb fil-fajl tal-arkivju;
  • Hash MD5 huwa kkalkulat minn kull fajl L fl-ordni tal-post oriġinali tagħhom u miktub fil-fajl tal-arkivju.

Teknoloġija avvanzata

Il-forma naive tal-algoritmu u l-implimentazzjonijiet f'lingwi oħra ta 'livell għoli (speċjalment bil-ġbir taż-żibel) jagħtu prestazzjoni terribbli, għalhekk implimentajt dawn il-kumplessitajiet kollha f'C pur u wettaq numru ta' ottimizzazzjonijiet kemm f'termini ta 'veloċità ta' eżekuzzjoni kif ukoll memorja (m'għandekx idea kemm dawn l-istampi jiżnu mingħajr kompressjoni anki qabel DCT). Iżda anke hekk, għall-ewwel il-veloċità tal-eżekuzzjoni ħalliet ħafna x'tifhem, għalhekk mhux se niddeskrivi l-proċess kollu u l-metodi użati.

Cross-platform jinkiseb bl-użu ta 'kombinazzjoni ta' libjpeg, pcre u libreriji tinydir, li għalihom nirringrazzjawhom. B'mod awtomatiku, kollox huwa kkompilat permezz normali make, sabiex l-utenti tal-Windows jridu jinstallaw xi Cygwin għalihom infushom, jew jittrattaw Visual Studio u libreriji waħedhom.

L-implimentazzjoni hija disponibbli fil-forma ta 'utilità console u librerija. Dawk interessati jistgħu jsiru jafu aktar dwar l-użu ta 'dan tal-aħħar fil-readme fir-repożitorju fuq Github, il-link li se nehmeż magħha fl-aħħar tal-post. U hawn ngħaddu għal deskrizzjoni u dimostrazzjoni tax-xogħol.

Kif tuża?

B'attenzjoni. Immaġini użati jistgħu jiġu mċaqalqa, isem ġdid u kkupjati kif mixtieq. Madankollu, għandek toqgħod attent ħafna u ma tbiddel il-kontenut tagħhom bl-ebda mod. Li tbiddel bit wieħed ifixkel il-hash u jagħmilha impossibbli li tiġi rkuprata l-informazzjoni.

Ejja ngħidu li wara l-kumpilazzjoni nġibu l-fajl eżekutibbli f5ar. Tista' tanalizza d-daqs tal-librerija biex tikkalkula l-possibbiltajiet tal-użu tagħha billi tuża l-bandiera -a: ./f5ar -a [папка поиска] [Perl-совместимое регулярное выражение]. L-ippakkjar isir mit-tim ./f5ar -p [папка поиска] [Perl-совместимое регулярное выражение] [упаковываемый файл] [имя архива], u l-ispakkjar bl-użu ./f5ar -u [файл архива] [имя восстановленного файла].

Dimostrazzjoni ta' xoghol

Biex nuri l-effettività tal-metodu, tellajt ġabra ta’ 225 ritratt assolutament b’xejn ta’ klieb mis-servizz Unsplash. Kull wieħed minnhom għandu kwalità kemmxejn ogħla minn ritratti tal-utenti ordinarji, iżda xorta waħda. Kull wieħed minnhom ġie kodifikat mill-ġdid bl-użu ta 'libjpeg biex jinnewtralizza l-impatt tal-karatteristiċi ta' kodifikazzjoni tal-librerija fuq id-daqs ġenerali. Biex tindika l-agħar eżempju ta 'dejta kompressabbli, ġie ġġenerat fajl mqassam b'mod uniformi ta' 36 metru (ftit aktar minn 5% tad-daqs totali) bl-użu ta 'dd.

Il-proċess tal-ittestjar huwa pjuttost sempliċi:

$ 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/

Jew screenshot għall-partitarji

Iffranka l-ispazju tal-hard drive billi tuża steganografija

Kif tistgħu taraw, mill-oriġinali 633 + 36 == 669 megabytes ta 'dejta fuq il-hard drive, spiċċajna b'563 aħjar, li tana proporzjon ta' kompressjoni ta '~1,188. Din id-differenza radikali hija spjegata minn telf estremament żgħir, simili għal dawk miksuba meta jiġu ottimizzati fajls JPEG bl-użu ta 'metodi klassiċi (bħal tinyjpg). Naturalment, meta tuża l-kompressjoni steganografika, l-informazzjoni mhix sempliċement "mitlufa", iżda tintuża biex tikkodifika data oħra. Barra minn hekk, in-numru ta 'koeffiċjenti "ottimizzati" minħabba l-użu ta' F5 huwa ħafna inqas milli bl-ottimizzazzjoni tradizzjonali.

Tkun xi tkun il-modifiki li jkun hemm, huma assolutament inviżibbli għall-għajn. Taħt l-ispoiler hawn taħt, il-qarrej jista' jevalwa d-differenza kemm bl-għajnejn kif ukoll billi jnaqqas il-valuri tal-komponent mibdul mill-oriġinal (aktar ma jkun siekt il-kulur, iżgħar tkun id-differenza):

Links għal stampi li ma jidħlux fuq habrastorage

Oriġinali - https://i.ibb.co/wNDLNcZ/1.jpg
Modifikat - https://i.ibb.co/qWvpfFM/1.jpg
Differenza - https://i.ibb.co/2ZzhHfD/diff.jpg

Minflok ma tikkonkludi

Nittama li stajt nikkonvinċi lill-qarrej li metodi bħal dawn huma possibbli u għandhom dritt għall-ħajja. Madankollu, ix-xiri ta 'hard drive jew kanal addizzjonali (għat-trasmissjoni tan-netwerk) jista' jidher għażla ħafna aktar sempliċi milli tipprova tiffranka l-flus b'dan il-mod. Min-naħa waħda, dan huwa minnu; l-iżvilupp estensiv ħafna drabi jkun aktar sempliċi u aktar affidabbli. Iżda min-naħa l-oħra, m'għandniex ninsew dwar l-intens. Wara kollox, m'hemmx garanziji li għada tkun tista' tiġi l-maħżen u tixtri lilek innifsek hard drive ieħor ta 'elf terabyte, iżda dejjem tista' tuża dawk li diġà għandek mimdudin id-dar.

-> GitHub

Sors: www.habr.com

Żid kumment