LSB steganography

Muaj ib zaug kuv sau kuv thawj ncej ntawm hub. Thiab cov ntawv tshaj tawm tau mob siab rau qhov teeb meem nthuav dav, uas yog steganography. Tau kawg, qhov kev daws teeb meem uas tau hais tseg hauv lub ntsiab lus qub tsis tuaj yeem hu ua steganography hauv qhov tseeb ntawm lo lus. Nws tsuas yog ib qho kev ua si nrog cov ntaub ntawv tawm tswv yim, tab sis qhov kev ua si nthuav zoo nkauj txawm li cas los xij.

Niaj hnub no peb yuav sim khawb me ntsis tob dua thiab saib LSB algorithm. Yog tias koj txaus siab, koj txais tos hauv qab miv. (Hauv qab txiav yog tsheb khiav: txog ib megabyte.)

Ua ntej ntawm tag nrho cov, nws yog ib qhov tsim nyog los ua ib qho kev qhia luv luv. Txhua tus paub tias lub hom phiaj ntawm cryptography yog ua kom tsis txhob nyeem cov ntaub ntawv zais cia. Tau kawg, cryptography muaj nws cov ntawv thov, tab sis muaj lwm txoj hauv kev rau kev tiv thaiv cov ntaub ntawv. Peb tsis tas yuav encrypt cov ntaub ntawv, tab sis ua txuj tias peb tsis muaj nws. Qhov no yog vim li cas steganography tau tsim. Wikipedia lees paub peb tias "steganography (los ntawm Greek στΡγανοσ - zais thiab Greek γραφω - Kuv sau, "kev sau zais cia") yog kev tshawb fawb ntawm kev zais cov ntaub ntawv los ntawm kev khaws qhov tseeb ntawm kev sib kis tsis pub leej twg paub.

Tau kawg, tsis muaj leej twg txwv tsis pub sib txuas cryptographic thiab steganographic txoj kev. Ntxiv mus, nyob rau hauv kev xyaum lawv ua li no, tab sis peb txoj hauj lwm yog kom to taub cov hauv paus. Yog tias koj ua tib zoo kawm hauv Wikipedia tsab xov xwm, koj yuav pom tias steganography algorithms suav nrog qhov hu ua. thawv thiab lus. Lub thawv yog txhua yam ntaub ntawv uas pab zais peb cov lus zais.

Hauv peb cov ntaub ntawv, lub thawv yuav yog ib daim duab hauv BMP hom. Ua ntej, cia peb saib cov qauv ntawm cov ntaub ntawv no. Cov ntaub ntawv tuaj yeem muab faib ua 4 ntu: cov ntaub ntawv header, duab header, palette thiab cov duab nws tus kheej. Rau peb lub hom phiaj, peb tsuas yog xav paub dab tsi yog sau rau hauv lub taub hau.

Thawj ob bytes ntawm header yog BM kos npe, ces cov ntaub ntawv loj nyob rau hauv bytes yog sau nyob rau hauv ob lo lus, tom ntej no 4 bytes yog tseg thiab yuav tsum muaj xoom, thiab thaum kawg, lwm ob lo lus muaj qhov offset los ntawm qhov pib ntawm lub ua ntaub ntawv mus rau qhov tseeb bytes ntawm daim duab. Hauv 24-ntsis bmp cov ntaub ntawv, txhua pixel yog encoded nrog peb BGR bytes.

Tam sim no peb paub yuav ua li cas mus rau daim duab, txhua yam uas tseem tshuav yog kom nkag siab tias peb tuaj yeem sau cov ntaub ntawv peb xav tau li cas. Rau qhov no peb yuav xav tau LSB txoj kev. Lub ntsiab lus ntawm txoj kev yog raws li nram no: peb hloov qhov tsawg kawg nkaus cov khoom nyob rau hauv cov bytes lub luag hauj lwm rau xim encoding. Cia peb hais yog tias tom ntej byte ntawm peb cov lus zais yog 11001011, thiab cov bytes hauv daim duab yog ... 11101100 01001110 01111100 0101100111..., ces tus encoding yuav zoo li no. Peb yuav faib cov lus zais cia rau hauv 4 qhov ob-ntsis: 11, 00, 10, 11, thiab hloov cov khoom qis ntawm daim duab nrog cov khoom tawg: ... 11101111 01001100 01111110 0101100111.... Qhov kev hloov no feem ntau tsis pom zoo rau tib neeg lub qhov muag. Ntxiv mus, ntau cov khoom siv qub qub yuav tsis tuaj yeem tso saib cov kev hloov me me no.

Nws yog tseeb tias koj tuaj yeem hloov tsis tau tsuas yog 2 qhov tseem ceeb me me xwb, tab sis muaj pes tsawg tus ntawm lawv. Muaj cov qauv hauv qab no: qhov ntau qhov peb hloov pauv, cov ntaub ntawv ntau peb tuaj yeem nkaum, thiab qhov cuam tshuam ntau dua qhov no yuav ua rau hauv daim duab qub. Piv txwv li, ntawm no yog ob daim duab:

LSB steganography
LSB steganography

Txawm hais tias kuv qhov kev siv zog zoo tshaj plaws, kuv tsis tuaj yeem pom qhov sib txawv ntawm lawv, tab sis txawm li cas los xij, hauv daim duab thib ob, siv txoj kev piav qhia, Lewis Carroll cov paj huam "Lub Hunting of the Snark" tau muab zais. Yog tias koj tau nyeem tam sim no, ces tej zaum koj yuav xav kawm txog kev siv. Nws yooj yim heev, tab sis kuv yuav ceeb toom koj tam sim ntawd tias txhua yam ua tiav hauv Delphi. Muaj ob qhov laj thawj rau qhov no: 1. Kuv xav tias Delphi yog ib hom lus zoo; 2. Qhov kev pab cuam no tau yug los nyob rau hauv tus txheej txheem ntawm kev npaj ib chav kawm ntawm lub hauv paus ntawm lub computer tsis pom kev, thiab cov hais mav uas kuv qhia qhov kev kawm no tseem tsis tau paub dab tsi lwm yam tshaj li Delphi. Rau cov neeg uas tsis paub txog cov syntax, ib yam yuav tsum tau piav qhia: shl x yog hloov me ntsis mus rau sab laug los ntawm x, shr x yog hloov pauv mus rau sab xis los ntawm x.

Peb xav tias peb tab tom sau cov ntawv khaws cia hauv ib txoj hlua rau hauv lub thawv thiab hloov qhov qis dua ob bytes:
Cov ntaub ntawv code:

rau kuv: = 1 rau length(str) ua
    pib
      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.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);
 
    xaus;

code nyeem:

rau kuv:=1 rau MsgSize ua
    pib
      f.ReadBuffer(tmp, 1);
      l1:=tmp 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);
    xaus;

Zoo, rau cov tub nkeeg tiag tiag - txuas rau qhov program thiab nws qhov chaws.

Ua tsaug.

Tau qhov twg los: www.hab.com

Ntxiv ib saib