LSB steganography

N'otu oge, m dere nke m mbụ post na hub. Na post ahụ raara nye nsogbu na-adọrọ mmasị, ya bụ steganography. N'ezie, a pụghị ịkpọ ihe ngwọta e mere n'isiokwu ochie ahụ steganography n'ezie n'echiche nke okwu ahụ. Ọ bụ naanị egwuregwu nwere ụdị faịlụ, mana egwuregwu na-atọ ụtọ ka o sina dị.

Taa, anyị ga-agbalị igwu ntakịrị miri emi wee lelee LSB algọridim. Ọ bụrụ na ị nwere mmasị, a na-anabata gị n'okpuru pusi. (N'okpuru ịkpụ bụ okporo ụzọ: ihe dị ka megabyte.)

Nke mbụ, ọ dị mkpa ime obere okwu mmeghe. Onye ọ bụla maara na ebumnuche nke cryptography bụ ime ka ọ ghara ikwe omume ịgụ ozi nzuzo. N'ezie, cryptography nwere ngwa ya, mana enwere ụzọ ọzọ maka nchekwa data. Anyị ekwesịghị izochi ozi ahụ, mana mee ka à ga-asị na anyị enweghị ya. Nke a bụ kpọmkwem ihe mere e ji mepụta steganography. Wikipedia na-emesi anyị obi ike na "steganography (nke sitere na Greek στεγανοσ - zoro ezo na Greek γραφω - m na-ede, n'ụzọ nkịtị "edemede nzuzo") bụ sayensị nke mgbasa ozi zoro ezo site na idebe eziokwu nke nnyefe nzuzo.

N'ezie, ọ dịghị onye na-amachibido ijikọta usoro cryptographic na steganographic. Ọzọkwa, na omume ha na-eme nke a, mana ọrụ anyị bụ ịghọta ihe ndị bụ isi. Ọ bụrụ na i jiri nlezianya mụọ akụkọ Wikipedia, ị ga-achọpụta na steganography algọridim gụnyere ihe a na-akpọ. akpa na ozi. Akpa bụ ozi ọ bụla na-enyere aka zoo ozi nzuzo anyị.

N'ọnọdụ anyị, akpa ahụ ga-abụ ihe oyiyi na usoro BMP. Nke mbụ, ka anyị leba anya na nhazi nke faịlụ a. Enwere ike kewaa faịlụ ahụ na akụkụ 4: nkụnye eji isi mee faịlụ, nkụnye eji isi mee ihe, palette na onyonyo n'onwe ya. Maka ebumnuche anyị, naanị anyị kwesịrị ịma ihe edere na nkụnye eji isi mee.

Abụọ bytes mbụ nke nkụnye eji isi mee bụ mbinye aka BM, mgbe ahụ, a na-ede nha faịlụ dị na bytes na okwu abụọ, 4 bytes na-esote na-echekwa ma ga-enwe zeros, na n'ikpeazụ, okwu abụọ ọzọ nwere nkwụsị site na mmalite nke tinye faịlụ na bytes n'ezie nke onyonyo a. N'ime faịlụ bmp 24-bit, pixel nke ọ bụla ka ejiri obytes BGR atọ kpuchie ya.

Ugbu a, anyị maara ka esi enweta ihe oyiyi ahụ, ọ na-anọgide na-aghọta otú anyị nwere ike isi dee ozi anyị chọrọ n'ebe ahụ. Maka nke a, anyị ga-achọ usoro LSB. Ihe kachasị mkpa nke usoro a bụ nke a: anyị na-edochi ntakịrị ihe dị mkpa na bytes maka ntinye koodu agba. Ka anyị kwuo ma ọ bụrụ na byte na-esote ozi nzuzo anyị bụ 11001011, na bytes dị na foto a bụ ... Anyị ga-ekewa byte ozi nzuzo n'ime akụkụ 11101100 abụọ-bit: 01001110, 01111100, 0101100111, 4, ma jiri iberibe ihe ndị na-esi na ya pụta dochie obere ihe oyiyi ahụ: ...1111 01001100 01111110…. Ndochi dị otú ahụ anaghị ahụkarị anya mmadụ. Ọzọkwa, ọtụtụ ngwaọrụ mmepụta ochie agaghị enwe ike igosipụta obere mgbanwe dị otú ahụ.

O doro anya na ị nwere ike ịgbanwe ọ bụghị naanị 2 kacha nta dị ịrịba ama, mana ọnụọgụ ọ bụla n'ime ha. Enwere ụkpụrụ na-esonụ: ka anyị na-agbanwekwu ibe n'ibe, ka anyị na-enwekwu ozi anyị nwere ike zoo, na nnyonye anya nke a ga-ebute na foto mbụ. Dịka ọmụmaatụ, ebe a bụ onyonyo abụọ:

LSB steganography
LSB steganography

N'agbanyeghị mbọ m kacha mma, enweghị m ike ịhụ ọdịiche dị n'etiti ha, ma, na foto nke abụọ, na-eji usoro a kọwara, ezoro ezo uri Lewis Carroll "Ịchụ nta nke Snark". Ọ bụrụ na ị gụọla nke a, mgbe ahụ ị nwere mmasị ịmụta banyere mmejuputa ya. Ọ dị nnọọ mfe, mana m ga-adọ gị aka ná ntị ozugbo na a na-eme ihe niile na Delphi. Enwere ihe abụọ kpatara nke a: 1. Echere m na Delphi bụ asụsụ dị mma; 2. A mụrụ mmemme a n'usoro ịkwadebe nkuzi na isi ihe gbasara ọhụụ kọmputa, ụmụ okorobịa ndị m na-akụzi ihe ọmụmụ a amabeghị ihe ọ bụla ọzọ karịa Delphi. Maka ndị na-amaghị nke ọma na syntax, ọ dị mkpa ka a kọwaa otu ihe: shl x bụ ntụgharị n'aka ekpe site na x, shr x bụ ntụgharị ntakịrị gaa n'aka nri site x.

Anyị na-eche na anyị na-ede ederede echekwara na eriri n'ime akpa wee dochie bytes abụọ dị ala:
Koodu ndekọ:

maka i:=1 ruo ogologo(str) mee
    malite
      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.Ọnọdụ:=f.Ọnọdụ-1;
      tmp: = ((tmp shr 2) shl 2)+l1;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f.Ọnọdụ:=f.Ọnọdụ-1;
      tmp: = ((tmp shr 2) shl 2)+l2;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f.Ọnọdụ:=f.Ọnọdụ-1;
      tmp: = ((tmp shr 2) shl 2)+l3;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f.Ọnọdụ:=f.Ọnọdụ-1;
      tmp: = ((tmp shr 2) shl 2)+l4;
      f.WriteBuffer(tmp,1);
 
    ngwụcha;

koodu ịgụ:

maka i:=1 ka MsgSize mee
    malite
      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);
    ngwụcha;

Ọfọn, maka ndị umengwụ n'ezie - njikọ na mmemme na koodu isi ya.

Achọpụta.

isi: www.habr.com

Tinye a comment