LSB steganography

Indray mandeha aho no nanoratra ny ahy lahatsoratra voalohany amin'ny hub. Ary io lahatsoratra io dia natokana ho an'ny olana iray tena mahaliana, dia ny steganography. Mazava ho azy fa tsy azo antsoina hoe steganography amin'ny tena hevitry ny teny ny vahaolana naroso tamin'io lohahevitra taloha io. Lalao misy endrika rakitra fotsiny izy io, fa lalao mahaliana ihany anefa.

Androany dia hiezaka ny handalina lalindalina kokoa isika ary hijery ny algorithm LSB. Raha liana ianao dia tongasoa eto ambany saka. (Eo ambanin'ny fanapahana ny fifamoivoizana: eo amin'ny megabyte.)

Voalohany indrindra, ilaina ny manao fampidirana fohy. Fantatry ny rehetra fa ny tanjon'ny cryptography dia ny tsy ahafahana mamaky ny vaovao miafina. Mazava ho azy fa manana ny fampiharana azy ny cryptography, saingy misy fomba iray hafa amin'ny fiarovana ny angona. Tsy mila encryption ny vaovao izahay, fa mody milaza fa tsy manana izany. Izany indrindra no antony namoronana ny steganography. Manome toky antsika ny Wikipedia fa ny β€œsteganography (avy amin'ny teny grika στΡγανοσ - miafina ary ny teny grika γραφω - manoratra aho, ara-bakiteny hoe β€œsoratra miafina”) dia ny siansa momba ny fampitana vaovao miafina amin'ny fitazonana ny zava-misy marina momba ny fampitana ho tsiambaratelo.

Mazava ho azy fa tsy misy mandrara ny fampifangaroana fomba kriptografika sy steganographic. Ankoatra izany, amin'ny fampiharana dia manao izany izy ireo, fa ny andraikitray dia ny mahatakatra ny fototra. Raha mandalina tsara ny lahatsoratra Wikipedia ianao dia ho hitanao fa ny algorithm steganography dia ahitana ny antsoina hoe. fitoeran-javatra sy hafatra. Ny kaontenera dia fampahalalana rehetra manampy hanafina ny hafatra miafinay.

Amin'ity tranga ity, ny fitoeran-javatra dia ho sary amin'ny endrika BMP. Andeha aloha hojerentsika ny firafitry ity rakitra ity. Ny rakitra dia azo zaraina ho faritra 4: lohatenin'ny rakitra, lohatenin'ny sary, palette ary ny sary mihitsy. Ho an'ny tanjontsika dia izay voasoratra ao amin'ny lohateny ihany no ilaintsika.

Ny roa voalohany amin'ny lohapejy dia ny sonia BM, avy eo ny haben'ny rakitra amin'ny bytes dia soratana amin'ny teny roa, ny 4 bita manaraka dia voatokana ary tsy maintsy misy aotra, ary farany, ny teny roa hafa dia misy ny offset hatrany am-piandohan'ny rakitra mankany amin'ny tena bytes amin'ny sary. Amin'ny rakitra bmp 24-bit, ny piksel tsirairay dia voakodia miaraka amin'ny telo BGR bytes.

Ankehitriny dia fantatsika ny fomba hahatongavana amin'ny sary, ny hany sisa tavela dia ny mahatakatra ny fomba hanoratana ny fampahalalana ilaintsika any. Mba hanaovana izany dia mila ny fomba LSB isika. Ny votoatin'ny fomba dia toy izao manaraka izao: soloinay ny bitika kely indrindra amin'ny bytes tompon'andraikitra amin'ny fandokoana loko. Aleo atao hoe 11001011 ny byte manaraka amin'ny hafatra miafina, ary ny byte ao amin'ny sary dia...11101100 01001110 01111100 0101100111... dia ho toy izao ny encoding. Hozarainay amin'ny ampahany 4 bitika roa ny hafatra miafina: 11, 00, 10, 11, ary soloina ireo sombin-tsary ambany amin'ny sary miaraka amin'ny sombiny: ...11101111 01001100 01111110 0101100111…. Ny fanoloana toy izany amin'ny ankapobeny dia tsy tsikaritra amin'ny mason'ny olombelona. Fanampin'izany, maro ireo fitaovana famoahana tranainy dia tsy afaka mampiseho fiovana kely toy izany akory.

Mazava fa afaka manova tsy ny bitika 2 kely indrindra ianao, fa ny isa amin'izy ireo. Misy ity lamina manaraka ity: arakaraka ny ovantsika ny bitro, ny fampahalalana bebe kokoa azontsika afenina, ary ny fanelingelenana bebe kokoa aterak'izany amin'ny sary tany am-boalohany. Ohatra, ireto misy sary roa:

LSB steganography
LSB steganography

Na dia teo aza ny ezaka tsara indrindra nataoko, dia tsy hitako ny fahasamihafana misy eo amin'izy ireo, fa na izany aza, amin'ny sary faharoa, amin'ny fampiasana ny fomba voafaritra, ny tononkalon'i Lewis Carroll "Ny fihazana ny Snark" dia miafina. Raha efa namaky hatramin'izao ianao dia mety ho liana amin'ny fianarana momba ny fampiharana. Tsotra be izany, fa hampitandrina anao avy hatrany aho fa ao Delphi ny zava-drehetra. Misy antony roa mahatonga izany: 1. Heveriko fa fiteny tsara ny Delphi; 2. Ity programa ity dia teraka teo am-panomanana ny taranja fototra momba ny fahitana informatika, ary ireo bandy izay ampianariko ity taranja ity dia tsy mbola mahalala na inona na inona afa-tsy Delphi. Ho an'ireo izay tsy zatra ny syntax dia zavatra iray no tokony hazavaina: ny shl x dia fiovan'ny x miankavia miankavia, ny shr x dia fiovan'ny x miankavanana.

Heverintsika fa manoratra lahatsoratra voatahiry ao anaty tady ao anaty fitoeran-javatra isika ary manolo ny bita roa ambany:
Kaody fanoratana:

ho i: = 1 amin'ny halavany (str) atao
    manomboka
      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. Toerana:=f. Toerana-1;
      tmp:=((tmp shr 2) shl 2)+l1;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f. Toerana:=f. Toerana-1;
      tmp:=((tmp shr 2) shl 2)+l2;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f. Toerana:=f. Toerana-1;
      tmp:=((tmp shr 2) shl 2)+l3;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f. Toerana:=f. Toerana-1;
      tmp:=((tmp shr 2) shl 2)+l4;
      f.WriteBuffer(tmp,1);
 
    tapitra;

kaody hovakiana:

for i:=1 to MsgSize do
    manomboka
      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);
    tapitra;

Eny, ho an'ireo tena kamo - rohy mankany amin'ny programa sy ny kaody loharanony.

Бпасибо.

Source: www.habr.com

Add a comment