LSB steganography

Mar baan qoray kayga boostada ugu horeysay ee hub. Waxayna boostadaas u heellan tahay dhibaato aad u xiiso badan, oo ah steganography. Dabcan, xalka lagu soo jeediyay mawduucaas hore laguma magacaabi karo steganography macnaha dhabta ah ee ereyga. Kaliya waa ciyaar leh qaabab faylal, laakiin ciyaar aad u xiiso badan si kastaba ha ahaatee.

Maanta waxaan isku dayi doonaa inaan qodno qoto dheer oo aan eegno algorithm LSB. Haddii aad xiisaynayso, waa lagugu soo dhawaynayaa bisad hoosteeda. (Goynta hoosteeda waa taraafikada: qiyaastii megabyte.)

Marka hore waa in la sameeyo hordhac gaaban. Qof kastaa wuu ogyahay in ujeedada qarsoodiga ah ay tahay in aan macquul ahayn in la akhriyo macluumaadka sirta ah. Dabcan, cryptography waxay leedahay codsiyadeeda, laakiin waxaa jira hab kale oo ilaalinta xogta. Ma aha in aan sir saarno macluumaadka, laakiin iska dhig in aynaan hayn. Tani waa sababta saxda ah ee steganography loo alifay. Wikipedia wuxuu noo xaqiijinayaa in "steganography (laga bilaabo Giriigga στεγανοσ - qarsoon iyo Giriigga γραφω - waxaan qoraa, macno ahaan "qoraal sir ah") waa sayniska gudbinta qarsoon ee macluumaadka iyadoo la ilaalinayo xaqiiqda gudbinta sirta ah.

Dabcan, qofna ma mamnuucayo in la isku daro hababka cryptographic iyo steganographic. Waxaa intaa dheer, ficil ahaan waxay sameeyaan tan, laakiin shaqadeenu waa inaan fahamno aasaaska. Haddii aad si taxadar leh u barato maqaalka Wikipedia, waxaad ogaan doontaa in steganography algorithms ay ku jiraan waxa loogu yeero. weel iyo fariin. Weelku waa xog kasta oo kaa caawinaysa qarinta fariinteena sirta ah.

Xaaladeena, weelku wuxuu noqon doonaa sawir qaab BMP ah. Marka hore, aan eegno qaabka faylkan. Faylka waxaa loo qaybin karaa 4 qaybood: madaxa faylka, madaxa sawirka, palette iyo sawirka laftiisa. Ujeedadayada, waxaan u baahanahay oo kaliya inaan ogaano waxa ku qoran madaxa.

Labada bayte ee ugu horreeya madaxdu waa saxeexa BM-ka, ka dibna cabbirka feylka ee byteska waxaa lagu qoraa kelmad labajibbaaran, 4ta bayt ee soo socota waa la xafiday oo waa inay ka kooban yihiin eber, ugu dambeyntiina, erey kale oo labanlaab ah ayaa ka kooban wax ka beddelka bilowga u fayl gareyn baytyada dhabta ah ee sawirka. Faylka bmp ee 24-bit ah, pixel kasta waxa lagu calaamadeeyay saddex BGR bytes.

Hadda waxaan ognahay sida loo tago sawirka, dhammaan waxa soo haray waa inaan fahamno sida aan u qori karno macluumaadka aan u baahanahay halkaas. Tan waxaan u baahan doonaa habka LSB. Nuxurka habku waa sida soo socota: waxaan ku bedelnaa kuwa ugu yar ee muhiimka ah ee bytes ka masuulka ah codaynta midabka. Aynu nidhaahno haddii byte-ka xiga ee farriintayada sirta ah ay tahay 11001011, bytes-ka sawirka ku jirana ay yihiin...11101100 01001110 01111100 0101100111..., markaas codayntu waxay u ekaan doontaa sidan. Waxaan u kala qaybin doonaa fariinta sirta ah 4 qaybood oo laba-bit ah: 11, 00, 10, 11, waxaanan ku bedeli doonaa qaybaha hoose ee sawirka oo aan ku beddeleyno jajabyada ka soo baxa: ...11101111 01001100 01111110…. Beddelka noocan oo kale ah guud ahaan maaha mid la dareemi karo isha bini'aadamka. Waxaa intaa dheer, qalabyo badan oo hore oo wax soo saara xitaa ma awoodi doonaan inay muujiyaan isbeddellada yaryar ee noocaas ah.

Way caddahay inaadan bedeli karin oo keliya 2-da ugu yar ee muhiimka ah, laakiin tiro kasta oo iyaga ka mid ah. Waxaa jira qaabkan soo socda: inta badan ee aan bedelno, macluumaadka badan ee aan qarin karno, iyo faragelinta badan ee tani waxay ku keeni doontaa sawirka asalka ah. Tusaale ahaan, halkan waa laba sawir:

LSB steganography
LSB steganography

In kasta oo aan dadaal badan sameeyay, ma aanan arki karin farqiga u dhexeeya, laakiin si kastaba ha ahaatee, sawirka labaad, oo isticmaalaya habka lagu sharraxay, gabayga Lewis Carroll ee "Ugaarsiga Snark" waa qarsoon yahay. Haddii aad akhriday ilaa hadda, markaa waxay u badan tahay inaad xiisaynayso inaad wax ka barato hirgelinta. Way fududahay, laakiin waxaan isla markaaba kaaga digayaa in wax walba lagu sameeyo Delphi. Tan waxaa jira laba sababood: 1. Waxaan filayaa in Delphi uu yahay luqad wanaagsan; 2.Barnaamijkan waxa uu ku dhashay diyaarinta koorso ku saabsan aasaaska aragga kombuyuutarka, wiilasha aan koorsadan u dhigayna ilaa hadda ma garanayaan wax aan Delphi ahayn. Kuwa aan aqoonta u lahayn syntax-ka, hal shay ayaa u baahan in la sharaxo: shl x waa u beddelka bidix ee x, shr x waa u beddelashada midig ee x.

Waxaan u qaadaneynaa inaan ku qoreyno qoraal ku kaydsan xarig weelka oo aan bedeleyno labada bytes ee hoose:
Koodhka duubista:

waayo i:=1 ilaa dhererka(str) samee
    bilow
      l1:=byte(str[i]) shr 6;
      l2:=byte(str[i]) shl 2; l2:=l2 shr 6;
      l3:=byte(str[i]) shl 4; l3:=l3 shr 6;
      l4:=byte(str[i]) shl 6; l4:=l4 shr 6;
 
      f.ReadBuffer(tmp,1);
      f. Booska:=f. Booska-1;
      tmp:=(((tmp shr 2) shl 2)+l1;
      f.WriteBuffer (tmp,1);
 
      f.ReadBuffer(tmp,1);
      f. Booska:=f. Booska-1;
      tmp:=(((tmp shr 2) shl 2)+l2;
      f.WriteBuffer (tmp,1);
 
      f.ReadBuffer(tmp,1);
      f. Booska:=f. Booska-1;
      tmp:=(((tmp shr 2) shl 2)+l3;
      f.WriteBuffer (tmp,1);
 
      f.ReadBuffer(tmp,1);
      f. Booska:=f. Booska-1;
      tmp:=(((tmp shr 2) shl 2)+l4;
      f.WriteBuffer (tmp,1);
 
    dhammaadka;

code si loo akhriyo:

ee i:=1 ku samee MsgSize
    bilow
      f.ReadBuffer(tmp,1);
      l1:=tmp shl 6;
      f.ReadBuffer(tmp,1);
      l2:=tmp shl 6; l2:=l2 shr 2;
      f.ReadBuffer(tmp,1);
      l3:=tmp shl 6; l3:=l3 shr 4;
      f.ReadBuffer(tmp,1);
      l4:=tmp shl 6; l4:=l4 shr 6;
      str:=str+char(l1+l2+l3+l4);
    dhammaadka;

Hagaag, kuwa runtii caajiska ah - isku xidhka barnaamijka iyo koodka isha.

Спасибо.

Source: www.habr.com

Add a comment