steganagrafaíocht LSB

Uair amháin scríobh mé mo an chéad phostáil ar an mol. Agus bhí an post sin tiomnaithe d'fhadhb an-suimiúil, eadhon steganography. Ar ndóigh, ní féidir steganography i bhfíorchiall an fhocail a thabhairt ar an réiteach atá molta sa tsean-ábhar sin. Níl ann ach cluiche le formáidí comhaid, ach cluiche suimiúil go leor mar sin féin.

Sa lá atá inniu déanfaimid iarracht beagán níos doimhne a thochailt agus breathnú ar algartam LSB. Má tá suim agat, tá fáilte romhat faoi cat. (Faoi ghearradh tá trácht: thart ar mheigeavata.)

Ar an gcéad dul síos, is gá réamhrá gearr a dhéanamh. Tá a fhios ag gach duine gurb é cuspóir na cripteagrafaíochta é a dhéanamh dodhéanta faisnéis rúnda a léamh. Ar ndóigh, tá a chuid iarratais ag cripteagrafaíocht, ach tá cur chuige eile ann maidir le cosaint sonraí. Ní gá dúinn an fhaisnéis a chriptiú, ach ligean orainn nach bhfuil sé againn. Sin é go beacht an fáth a ndearnadh steganography a chumadh. Dearbhaíonn Vicipéid dúinn gurb é “steganography (ón nGréigis στεγανοσ - folaithe agus an Ghréigis γραφω - a scríobhaim, go litriúil "scríbhneoireacht rúnda") an eolaíocht a bhaineann le tarchur folaithe faisnéise trí fhíorfhíric an tarchuir a choinneáil faoi rún.

Ar ndóigh, ní chuireann aon duine cosc ​​​​ar mhodhanna cripteagrafacha agus steganagrafaíochta a chomhcheangal. Thairis sin, i gcleachtas a dhéanann siad seo, ach is é an tasc atá againn ná na bunghnéithe a thuiscint. Má dhéanann tú staidéar cúramach ar an alt Vicipéid, gheobhaidh tú amach go n-áirítear na halgartaim steganography mar a thugtar orthu. coimeádán agus teachtaireacht. Is éard is coimeádán ann aon fhaisnéis a chuidíonn lenár dteachtaireacht rúnda a cheilt.

Is é ár gcás, beidh an coimeádán ina íomhá i bhformáid BMP. Ar dtús, déanaimis féachaint ar struchtúr an chomhaid seo. Is féidir an comhad a roinnt ina 4 chuid: ceanntásc comhaid, ceanntásc íomhá, pailéad agus an íomhá féin. Chun ár gcríoch, ní gá dúinn ach fios a bheith againn cad atá scríofa sa cheanntásc.

Is é síniú BM an chéad dá bheart den cheanntásc, ansin scríobhtar méid an chomhaid i mbearta i bhfocal dúbailte, tá na 4 bhearta eile in áirithe agus ní mór nialais a bheith iontu, agus ar deireadh, tá an fhritháireamh i bhfocal dúbailte eile ó thús an comhad chuig na bearta iarbhír na híomhá. I gcomhad bmp 24-giotán, tá gach picteilín ionchódaithe le trí beart BGR.

Anois go bhfuil a fhios againn conas teacht ar an íomhá, níl fágtha ach a thuiscint conas is féidir linn an fhaisnéis a theastaíonn uainn a scríobh. Chuige seo beidh modh an LSB ag teastáil uainn. Is é seo a leanas croílár an mhodha: cuirimid na giotán is lú suntasach in ionad na mbeart atá freagrach as ionchódú datha. Ligean le rá más é 11001011 an chéad bheart eile dár dteachtaireacht rúnda, agus gurb iad na bearta san íomhá ... Déanfaimid beart rúnda na teachtaireachta a roinnt ina 11101100 chuid dhá-ghiotán: 01001110, 01111100, 0101100111, 4, agus cuirfimid na blúirí mar thoradh air in ionad na giotán íseal-ordú den íomhá: ...1111 01001100 01111110 0101100111…. De ghnáth ní thugann an tsúil dhaonna faoi deara athsholáthar den sórt sin. Thairis sin, ní bheidh go leor gléasanna aschuir níos sine in ann mionathruithe den sórt sin a thaispeáint fiú.

Tá sé soiléir gur féidir leat a athrú ní amháin ar an 2 giotán is lú suntasaí, ach aon líon acu. Tá an patrún seo a leanas ann: dá mhéad giotán a athraíonn muid, is mó faisnéise is féidir linn a cheilt, agus an cur isteach níos mó a chuirfidh sé seo san íomhá bunaidh. Mar shampla, seo dhá íomhá:

steganagrafaíocht LSB
steganagrafaíocht LSB

In ainneoin mo dhícheall, ní raibh mé in ann an difríocht eatarthu a fheiceáil, ach mar sin féin, sa dara íomhá, ag baint úsáide as an modh a thuairiscítear, tá dán Lewis Carroll “The Hunting of the Snark” i bhfolach. Má tá tú léite go dtí seo, ansin is dócha go bhfuil suim agat foghlaim faoin gcur i bhfeidhm. Tá sé simplí go leor, ach tabharfaidh mé rabhadh duit láithreach go ndéantar gach rud i Delphi. Tá dhá chúis leis seo: 1. Ceapaim gur teanga mhaith í Delphi; 2. Rugadh an clár seo agus mé ag ullmhú cúrsa ar bhunghnéithe fís ríomhaireachta, agus níl a fhios ag na daoine a bhfuil mé ag múineadh an chúrsa seo dóibh go fóill ar bith seachas Delphi. Dóibh siúd nach bhfuil eolach ar an chomhréir, ní mór rud amháin a mhíniú: shr x is a bitwise shift to the left by x, shr x is a bitwise shift to the right by x.

Glacaimid leis go bhfuilimid ag scríobh téacs atá stóráilte i sreang isteach sa choimeádán agus ag athsholáthar an dá bheart is ísle:
Cód taifeadta:

le haghaidh i:=1 go fad(str) dhéanamh
    tús a chur
      l1:=beart(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.Position:=f.Position-1;
      tmp:=((tmp shr 2) shl 2)+l1;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f.Position:=f.Position-1;
      tmp:=((tmp shr 2) shl 2)+l2;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f.Position:=f.Position-1;
      tmp:=((tmp shr 2) shl 2)+l3;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f.Position:=f.Position-1;
      tmp:=((tmp shr 2) shl 2)+l4;
      f.WriteBuffer(tmp,1);
 
    deireadh;

cód le léamh:

le haghaidh i:=1 go MsgSize do
    tús a chur
      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);
    deireadh;

Bhuel, do na cinn fíor leisciúil - nasc chuig an gclár agus a cód foinse.

Go raibh maith agat.

Foinse: will.com

Add a comment