I-LSB steganography

Kwake ngabhala okwami iposi lokuqala kuhabhu. Futhi lokho okuthunyelwe kwakunikezelwe enkingeni ethakazelisa kakhulu, okuyi-steganography. Yiqiniso, ikhambi elihlongozwayo kuleso sihloko esidala alikwazi ukubizwa ngokuthi i-steganography ngomqondo wangempela wegama. Kungumdlalo nje onamafomu efayela, kodwa umdlalo omuhle othokozisayo noma kunjalo.

Namuhla sizozama ukumba sijule kancane futhi sibheke i-algorithm ye-LSB. Uma unentshisekelo, wamukelekile ngaphansi kwekati. (Ngaphansi komkhawulo kunethrafikhi: cishe i-megabyte.)

Okokuqala, kuyadingeka ukwenza isingeniso esifushane. Wonke umuntu uyazi ukuthi inhloso ye-cryptography ukwenza kungenzeki ukufunda ulwazi oluyimfihlo. Yiqiniso, i-cryptography inezinhlelo zayo zokusebenza, kodwa kunenye indlela yokuvikela idatha. Akumele sibhale ngemfihlo ulwazi, kodwa senze sengathi asinalo. Yingakho nje i-steganography yasungulwa. I-Wikipedia isiqinisekisa ngokuthi “i-steganography (kusuka kwelesiGreek στεγανοσ - efihliwe kanye nesiGreki γραφω - ngiyabhala, ngokwezwi nezwi “ukubhala okuyimfihlo”) isayensi yokudluliselwa okufihliwe kolwazi ngokugcina lona kanye iqiniso lokudlulisela liyimfihlo.

Yiqiniso, akekho owenqabela ukuhlanganisa izindlela ze-cryptographic kanye ne-steganographic. Ngaphezu kwalokho, ngokwenza lokhu bayakwenza, kodwa umsebenzi wethu uwukuqonda izinto eziyisisekelo. Uma ufunda ngokucophelela i-athikili ye-Wikipedia, uzothola ukuthi ama-algorithms we-steganography ahlanganisa okuthiwa. isitsha nomyalezo. Isiqukathi yinoma yiluphi ulwazi olusiza ukufihla umlayezo wethu oyimfihlo.

Esimweni sethu, isiqukathi sizoba yisithombe ngefomethi ye-BMP. Okokuqala, ake sibheke ukwakheka kwaleli fayela. Ifayela lingahlukaniswa libe izingxenye ezi-4: unhlokweni wefayela, unhlokweni wesithombe, iphalethi nesithombe ngokwaso. Ngezinjongo zethu, sidinga kuphela ukwazi ukuthi yini ebhalwe kunhlokweni.

Amabhayithi amabili okuqala enhlokweni ayisignesha ye-BM, khona-ke usayizi wefayela ngamabhayithi ubhalwa ngegama eliphindwe kabili, amabhayithi angu-4 alandelayo agciniwe futhi kufanele aqukathe ama-zero, futhi ekugcineni, elinye igama eliphindwe kabili liqukethe i-offset kusukela ekuqaleni ifayela kumabhayithi angempela esithombe. Efayeleni le-24-bit bmp, iphikseli ngayinye ifakwe ikhodi ngamabhayithi amathathu e-BGR.

Manje sesiyazi ukuthi singafika kanjani esithombeni, okusele nje ukuqonda ukuthi singalubhala kanjani ulwazi esiludingayo lapho. Kulokhu sizodinga indlela ye-LSB. Umongo wendlela umi kanje: sibuyisela ama-bits angabalulekile kakhulu kumabhayithi anesibopho sombhalo wekhodi. Ake sithi uma i-byte elandelayo yomlayezo wethu oyimfihlo ingu-11001011, futhi ama-byte esithombeni...11101100 01001110 01111100 0101100111..., khona-ke ukubhala ngekhodi kuzobukeka kanje. Sizohlukanisa i-byte yomlayezo oyimfihlo ibe izingxenye ezi-4 zezibhithi ezimbili: 11, 00, 10, 11, bese sibuyisela amabhithi anohlelo oluphansi lwesithombe ngezingcezu eziwumphumela: ...11101111 01001100 01111110 0101100111…. Ukushintshwa okunjalo ngokuvamile akubonakali emehlweni omuntu. Ngaphezu kwalokho, amadivayisi amaningi okukhiphayo amadala ngeke aze akwazi ukubonisa izinguquko ezincane kangako.

Kuyacaca ukuthi awukwazi ukushintsha kuphela izingcezu ezi-2 ezingabalulekile, kodwa noma iyiphi inombolo yazo. Kunephethini elandelayo: uma sishintsha izingcezu eziningi, ulwazi olwengeziwe esingalufihla, kanye nokuphazamiseka okwengeziwe okuzobangela isithombe sokuqala. Isibonelo, nazi izithombe ezimbili:

I-LSB steganography
I-LSB steganography

Naphezu kwemizamo yami emihle, angikwazanga ukubona umehluko phakathi kwabo, kodwa nokho, esithombeni sesibili, usebenzisa indlela echazwe, inkondlo kaLewis Carroll ethi "Ukuzingela Kwenyoka" ifihliwe. Uma ufunde kuze kube manje, khona-ke cishe unentshisekelo yokufunda mayelana nokuqaliswa. Kulula kakhulu, kodwa ngizokuxwayisa ngaso leso sikhathi ukuthi konke kwenziwa eDelphi. Kunezizathu ezimbili zalokhu: 1. Ngicabanga ukuthi iDelphi iwulimi oluhle; 2. Lolu hlelo lwazalwa ngesikhathi sokulungiselela izifundo eziyisisekelo zokubona ngekhompyutha, futhi abafana engibafundisa lesi sifundo abakazi lutho ngaphandle kweDelphi. Kulabo abangajwayelene ne-syntax, into eyodwa idinga ukuchazwa: shl x inguquko ehlakaniphile ukuya kwesokunxele ngo-x, u-shr x wukushintsha kancane kancane kwesokudla ngo-x.

Sicabanga ukuthi sibhala umbhalo ogcinwe kuyunithi yezinhlamvu esitsheni bese sishintsha amabhayithi amabili aphansi:
Ikhodi yokurekhoda:

ngoba i:=1 ukuze ubude(str) ukwenza
    qala
      l1:=ibhayithi(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.Isikhundla:=f.Isikhundla-1;
      tmp:=((tmp shr 2) shl 2)+l1;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f.Isikhundla:=f.Isikhundla-1;
      tmp:=((tmp shr 2) shl 2)+l2;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f.Isikhundla:=f.Isikhundla-1;
      tmp:=((tmp shr 2) shl 2)+l3;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f.Isikhundla:=f.Isikhundla-1;
      tmp:=((tmp shr 2) shl 2)+l4;
      f.WriteBuffer(tmp,1);
 
    ukuphela;

ikhodi okufanele uyifunde:

okwe-i:=1 kuya ku-MsgSize do
    qala
      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);
    ukuphela;

Yebo, kwabavilapha ngempela - isixhumanisi sohlelo kanye nekhodi yalo yomthombo.

Спасибо.

Source: www.habr.com

Engeza amazwana