LSB steganography

Uair dhe na h-uairean sgrìobh mi mo chuid a’ chiad phost air a’ mheadhan. Agus bha an dreuchd sin coisrigte do dhuilgheadas gu math inntinneach, is e sin steganography. Gu dearbh, chan urrainnear steganography a ghairm am fuasgladh a chaidh a mholadh san t-seann chuspair sin ann am fìor mhothachadh an fhacail. Is e dìreach geama a th’ ann le cruthan faidhle, ach geam gu math inntinneach a dh’ aindeoin sin.

An-diugh feuchaidh sinn ri cladhach beagan nas doimhne agus coimhead air an algairim LSB. Ma tha ùidh agad, tha fàilte ort fo chat. (Fon ghearradh tha trafaic: timcheall air megabyte.)

An toiseach, feumar ro-ràdh goirid a dhèanamh. Tha fios aig a h-uile duine gur e adhbhar cryptography a dhèanamh do-dhèanta fiosrachadh dìomhair a leughadh. Gu dearbh, tha na tagraidhean aige aig cryptography, ach tha dòigh eile ann airson dìon dàta. Chan fheum sinn am fiosrachadh a chrioptachadh, ach leig oirnn nach eil e againn. Is e seo dìreach carson a chaidh steganography a chruthachadh. Tha Wikipedia a’ toirt dearbhadh dhuinn gur e “steganography (bhon Ghreugais στεγανοσ - falaichte agus an Ghreugais γραφω - tha mi a’ sgrìobhadh, gu litireil “sgrìobhadh dìomhair”) an saidheans mu sgaoileadh falaichte fiosrachaidh le bhith a’ cumail fìor fhìrinn an tar-chuir dìomhair.

Gu dearbh, chan eil duine a 'toirmeasg dòighean criptografach agus steganographic a chur còmhla. A bharrachd air an sin, ann an cleachdadh bidh iad a 'dèanamh seo, ach is e an obair againn na bunaitean a thuigsinn. Ma nì thu sgrùdadh gu faiceallach air artaigil Wikipedia, gheibh thu a-mach gu bheil algorithms steganography a’ toirt a-steach an rud ris an canar. soitheach agus teachdaireachd. Is e soitheach fiosrachadh sam bith a chuidicheas le bhith a’ falach ar teachdaireachd dhìomhair.

Anns a ’chùis againn, bidh an soitheach na ìomhaigh ann an cruth BMP. An toiseach, leig dhuinn sùil a thoirt air structar an fhaidhle seo. Faodar am faidhle a roinn ann an 4 pàirtean: bann-cinn faidhle, bann-cinn ìomhaigh, paileas agus an ìomhaigh fhèin. Airson ar n-adhbharan, chan fheum sinn ach fios a bhith againn dè a tha sgrìobhte sa cheann-cinn.

Is e ainm-sgrìobhte BM a’ chiad dà bytes den cheann-cinn, agus an uairsin tha meud an fhaidhle ann am bytes air a sgrìobhadh ann am facal dùbailte, tha na h-ath 4 bytes glèidhte agus feumaidh neamhan a bhith ann, agus mu dheireadh, tha facal dùbailte eile a’ toirt a-steach an cothromachadh bho thoiseach an faidhle gu fìor bytes na h-ìomhaigh. Ann am faidhle bmp 24-bit, tha gach piogsail air a chòdachadh le trì BGR bytes.

A-nis gu bheil fios againn ciamar a ruigeas sinn an ìomhaigh, tha e fhathast ri thuigsinn mar as urrainn dhuinn am fiosrachadh a tha a dhìth oirnn a sgrìobhadh an sin. Airson seo bidh feum againn air modh LSB. Tha brìgh an dòigh mar a leanas: bidh sinn a’ cuir an àite na pìosan as lugha anns na bytes le uallach airson còdachadh dath. Canaidh sinn mas e 11001011 an ath byte den teachdaireachd dhìomhair againn, agus gur e na bytes san ìomhaigh ... Roinnidh sinn byte an teachdaireachd dhìomhair ann an 11101100 pàirtean dà-phìos: 01001110, 01111100, 0101100111, 4, agus cuiridh sinn na pìosan òrdugh ìosal an àite na h-ìomhaigh leis na criomagan a thig às: ...1111 01001100 01111110 0101100111…. Mar as trice chan eil sùil an duine ri fhaicinn an àite an leithid. A bharrachd air an sin, cha bhith e comasach dha mòran innealan toraidh nas sine eadhon atharrachaidhean beaga mar sin a thaisbeanadh.

Tha e soilleir gun urrainn dhut atharrachadh chan ann a-mhàin air an 2 phìos as cudromaiche, ach air àireamh sam bith dhiubh. Tha am pàtran a leanas ann: mar as motha de bhuillean a dh’ atharraicheas sinn, is ann as motha de dh’fhiosrachadh a dh’ fhaodas sinn falach, agus mar as motha a chuireas seo bacadh air san ìomhaigh thùsail. Mar eisimpleir, seo dà ìomhaigh:

LSB steganography
LSB steganography

A dh’aindeoin na h-oidhirpean as fheàrr a rinn mi, chan fhaca mi an diofar eatorra, ach a dh’ aindeoin sin, anns an dàrna ìomhaigh, a’ cleachdadh an dòigh a chaidh a mhìneachadh, tha an dàn aig Lewis Carroll “The Hunting of the Snark” falaichte. Ma tha thu air leughadh gu ruige seo, is dòcha gu bheil ùidh agad ann a bhith ag ionnsachadh mun bhuileachadh. Tha e gu math sìmplidh, ach bheir mi rabhadh dhut sa bhad gu bheil a h-uile càil air a dhèanamh ann an Delphi. Tha dà adhbhar ann airson seo: 1. Tha mi a' smaoineachadh gur e cànan math a th' ann an Delphi; 2. Rugadh am prògram seo nuair a bha mi ag ullachadh cùrsa air bunaitean lèirsinn coimpiutair, agus chan eil fios aig na daoine ris a bheil mi a’ teagasg a’ chùrsa seo fhathast ach Delphi. Dhaibhsan nach eil eòlach air a’ cho-chàradh, feumar aon rud a mhìneachadh: shl x is a bitwise shift to the left by x, shr x is a bitwise shift to the right by x.

Tha sinn a 'gabhail ris gu bheil sinn a' sgrìobhadh teacsa air a stòradh ann an sreang a-steach don ghobhar agus a 'toirt a-steach an dà byte as ìsle:
Còd clàraidh:

airson i: = 1 gu fad (str) dèan
    tòiseachadh
      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.LeughBuffer(tmp,1);
      f.Position:=f.Position-1;
      tmp: = ((tmp shr 2) shl 2) + l1;
      f.WriteBuffer(tmp,1);
 
      f.LeughBuffer(tmp,1);
      f.Position:=f.Position-1;
      tmp: = ((tmp shr 2) shl 2) + l2;
      f.WriteBuffer(tmp,1);
 
      f.LeughBuffer(tmp,1);
      f.Position:=f.Position-1;
      tmp: = ((tmp shr 2) shl 2) + l3;
      f.WriteBuffer(tmp,1);
 
      f.LeughBuffer(tmp,1);
      f.Position:=f.Position-1;
      tmp: = ((tmp shr 2) shl 2) + l4;
      f.WriteBuffer(tmp,1);
 
    deireadh;

còd ri leughadh:

airson i:=1 gu MsgSize dèan
    tòiseachadh
      f.LeughBuffer(tmp,1);
      l1:=tmp shl 6;
      f.LeughBuffer(tmp,1);
      l2:=tmp shl 6; l2:=l2 shr 2;
      f.LeughBuffer(tmp,1);
      l3:=tmp shl 6; l3:=l3 shr 4;
      f.LeughBuffer(tmp,1);
      l4:=tmp shl 6; l4:=l4 shr 6;
      str: = str + char (l1 + l2 + l3 + l4);
    deireadh;

Uill, airson an fheadhainn a tha dha-rìribh leisg - ceangal ris a’ phrògram agus an còd tùsail aige.

Tapadh leibh.

Source: www.habr.com

Cuir beachd ann