LSB steganography

I kekahi manawa ua kākau wau i kaʻu pou mua ma ka hub. A ua hoʻolaʻa ʻia kēlā pou i kahi pilikia hoihoi loa, ʻo ia hoʻi ka steganography. ʻOiaʻiʻo, ʻaʻole hiki ke kapa ʻia ka hopena i manaʻo ʻia ma kēlā kumuhana kahiko he steganography ma ke ʻano maoli o ka huaʻōlelo. He pāʻani wale nō me nā ʻano waihona, akā he pāʻani hoihoi naʻe.

I kēia lā e hoʻāʻo mākou e ʻeli hohonu a nānā i ka algorithm LSB. Inā makemake ʻoe, ʻoluʻolu ʻoe ma lalo o ka pōpoki. (Ma lalo o ka ʻoki ʻana ke kaʻa: e pili ana i kahi megabyte.)

ʻO ka mea mua, pono e hana i kahi hoʻolauna pōkole. Uaʻike nā kānaka a pau i ke kumu o ka cryptography e hikiʻole ke heluhelu i kaʻike huna. ʻOiaʻiʻo, aia ka cryptography i kāna mau noi, akā aia kekahi ala ʻē aʻe i ka pale ʻikepili. ʻAʻole pono mākou e hoʻopili i ka ʻike, akā e hoʻohālike ʻaʻole i loaʻa iā mākou. ʻO kēia ke kumu i hana ʻia ai ka steganography. Ua hōʻoiaʻiʻo ʻo Wikipedia iā mākou ʻo "steganography (mai ka Greek στεγανοσ - huna a me ka Greek γραφω - ke kākau nei au, ʻoiaʻiʻo "ka kākau huna") ʻo ia ka ʻepekema o ka hoʻouna huna ʻana o ka ʻike ma ka mālama ʻana i ka ʻoiaʻiʻo o ka hoʻouna huna.

ʻOiaʻiʻo, ʻaʻohe mea i pāpā i ka hoʻohui ʻana i nā ʻano cryptographic a me steganographic. Eia kekahi, ma ka hoʻomaʻamaʻa hana lākou i kēia, akā ʻo kā mākou hana ke hoʻomaopopo i nā kumu. Inā ʻoe e noʻonoʻo pono i ka ʻatikala Wikipedia, e ʻike ʻoe aia nā steganography algorithms i ka mea i kapa ʻia. ipu a me ka memo. ʻO kahi pahu kahi ʻike e kōkua e hūnā i kā mākou leka huna.

I kā mākou hihia, he kiʻi ka pahu i ka format BMP. ʻO ka mua, e nānā kākou i ke ʻano o kēia faila. Hiki ke hoʻokaʻawale ʻia ka faila i 4 mau ʻāpana: ke poʻo waihona, ke poʻo kiʻi, ka palette a me ke kiʻi ponoʻī. No kā mākou kumu, pono mākou e ʻike i ka mea i kākau ʻia ma ke poʻo.

ʻO nā paita mua ʻelua o ke poʻo, ʻo ia ka pūlima BM, a laila kākau ʻia ka nui o ka faila ma nā huaʻōlelo pālua, mālama ʻia nā paina 4 aʻe a pono e loaʻa nā zeros, a ʻo ka hope, aia kekahi huaʻōlelo pālua i ka offset mai ka hoʻomaka ʻana o ka waihona i nā byte maoli o ke kiʻi. I loko o kahi faila bmp 24-bit, ua hoʻopili ʻia kēlā me kēia pika me ʻekolu BGR bytes.

I kēia manawa ua ʻike mākou pehea e kiʻi ai i ke kiʻi, ʻo ka mea wale nō e hoʻomaopopo pehea e hiki ai iā mākou ke kākau i ka ʻike e pono ai mākou ma laila. No kēia, pono mākou i ke ala LSB. ʻO ke kumu o ke ʻano penei: ke hoʻololi nei mākou i nā ʻāpana liʻiliʻi loa i loko o nā bytes kuleana no ka hoʻopili kala. E ʻōlelo kākou inā ʻo 11001011 ka paita aʻe o kā mākou leka huna, a ʻo nā paita o ke kiʻi ʻo...11101100 01001110 01111100 0101100111..., a laila e like ke ʻano o ka hoʻopili ʻana. E hoʻokaʻawale mākou i ka byte memo huna i nā ʻāpana ʻelua-bit: 4, 11, 00, 10, a hoʻololi i nā ʻāpana haʻahaʻa o ke kiʻi me nā ʻāpana hopena: ...1111 01001100 01111110 0101100111…. ʻAʻole ʻike ʻia kēlā ʻano pani i ka maka o ke kanaka. Eia kekahi, ʻaʻole hiki ke hōʻike i nā hoʻololi liʻiliʻi he nui nā mea hoʻopuka kahiko.

Ua maopopo hiki iā ʻoe ke hoʻololi ʻaʻole wale i nā 2 liʻiliʻi liʻiliʻi liʻiliʻi, akā i kekahi helu o lākou. Aia kēia ʻano: ʻoi aku ka nui o nā bits a mākou e hoʻololi ai, ʻoi aku ka nui o ka ʻike i hiki iā mākou ke hūnā, a ʻoi aku ka nui o ke keakea ʻana i ke kiʻi kumu. Eia kekahi laʻana, eia nā kiʻi ʻelua:

LSB steganography
LSB steganography

ʻOiai ʻo kaʻu mau hana maikaʻi loa, ʻaʻole hiki iaʻu ke ʻike i ka ʻokoʻa ma waena o lākou, akā naʻe, ma ke kiʻi ʻelua, me ka hoʻohana ʻana i ke ʻano i wehewehe ʻia, hūnā ʻia ka mele a Lewis Carroll "The Hunting of the Snark". Inā ua heluhelu ʻoe i kēia mamao, a laila makemake paha ʻoe e aʻo e pili ana i ka hoʻokō. He mea maʻalahi loa ia, akā e aʻo koke wau iā ʻoe ua hana ʻia nā mea āpau ma Delphi. ʻElua kumu no kēia: 1. Manaʻo wau he ʻōlelo maikaʻi ʻo Delphi; 2. Ua hānau ʻia kēia papahana ma ke kaʻina hana o ka hoʻomākaukau ʻana i ke ʻano o ka ʻike kamepiula, a ʻo nā kāne aʻu e aʻo nei i kēia papa ʻaʻole lākou i ʻike i kekahi mea ʻē aʻe ma mua o Delphi. No ka poʻe i kamaʻāina ʻole i ka syntax, hoʻokahi mea pono e wehewehe ʻia: ʻo ka shl x ka hoʻololi iki ʻana i ka hema e x, ʻo ka shr x kahi hoʻololi iki i ka ʻākau e x.

Manaʻo mākou e kākau ana mākou i nā kikokikona i mālama ʻia i loko o kahi kaula i loko o ka pahu a hoʻololi i nā bytes haʻahaʻa ʻelua:
Helu hoʻopaʻa inoa:

no ka i:=1 i ka loa(str) hana
    hoomaka
      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.Kulana:=f.Kulana-1;
      tmp:=((tmp shr 2) shl 2)+l1;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f.Kulana:=f.Kulana-1;
      tmp:=((tmp shr 2) shl 2)+l2;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f.Kulana:=f.Kulana-1;
      tmp:=((tmp shr 2) shl 2)+l3;
      f.WriteBuffer(tmp,1);
 
      f.ReadBuffer(tmp,1);
      f.Kulana:=f.Kulana-1;
      tmp:=((tmp shr 2) shl 2)+l4;
      f.WriteBuffer(tmp,1);
 
    hopena;

code e heluhelu ai:

no ka mea i:=1 i MsgSize hana
    hoomaka
      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);
    hopena;

ʻAe, no ka poʻe palaualelo maoli - loulou i ka papahana a me kāna kumu kumu.

Спасибо.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka