1.一種基于改進(jìn)Arnold變換和LSB的圖像信息加密及解密方法,其特征在于,包括以下步驟:
步驟1、加載背景圖像,并計(jì)算出該背景圖像可容納的最大像素?cái)?shù);若隱藏信息圖像的像素?cái)?shù)超過(guò)最大像素?cái)?shù),則用戶(hù)對(duì)隱藏信息圖像進(jìn)行裁剪;
步驟2、采用改進(jìn)的Arnold變換對(duì)隱藏信息圖像進(jìn)行預(yù)處理;具體如下:
步驟2.1)、用戶(hù)輸入2個(gè)密鑰的數(shù)值key1、key2,key1和key2均為正整數(shù);
步驟2.2)、用戶(hù)選擇下述加密方式中的任一種對(duì)隱藏信息圖像進(jìn)行加密:
第一種加密方式:每個(gè)隱藏信息圖像像素的新的坐標(biāo)為(x′,y′),其中:x′=(x+key2*y),y′=y(tǒng);
第二種加密方式:每個(gè)隱藏信息圖像像素的新的坐標(biāo)為(x′,y′),其中,x′=x,y′=(key2*x+y);其中,(x,y)是需要加密的隱藏信息圖像的原始像素坐標(biāo);
然后x′、y′分別對(duì)隱藏信息圖像的寬度A.width和高度A.height進(jìn)行取余運(yùn)算:x″=x′mod A.width;y″=y(tǒng)′mod A.height;
步驟2.3)、將原來(lái)坐標(biāo)為(x,y)的像素點(diǎn)搬移到新的像素點(diǎn)(x″,y″)處;
步驟2.4)、重復(fù)執(zhí)行步驟2.2)-步驟2.3)key1次;
步驟3、將隱藏信息圖像的尺寸存儲(chǔ)在背景圖像的開(kāi)頭;
步驟4、將經(jīng)過(guò)步驟2預(yù)處理后的隱藏信息圖像使用LSB算法嵌入到背景圖像中,從而生成加密后的圖像;
步驟5、提取隱藏信息圖像尺寸;
步驟6、由LSB算法提取隱藏信息圖像;
步驟7、用戶(hù)輸入密鑰并對(duì)提取后的隱藏信息圖像進(jìn)行Arnold反變換解密,從而恢復(fù)了隱藏信息圖像的原始數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的一種基于改進(jìn)Arnold變換和LSB的圖像信息加密及解密方法,其特征在于,所述步驟3具體如下:
步驟3.1)、遍歷背景圖像的前4個(gè)像素,每個(gè)像素包含3個(gè)字節(jié);首先將隱藏信息圖像的高度A.height每2bit一組拆分,按照順序直接替換背景圖像中前6個(gè)字節(jié)中每個(gè)字節(jié)的最末2bit;
步驟3.2)、將隱藏圖像A的寬度A.width每2bit一組拆分,按照順序直接替換背景圖像中后6個(gè)字節(jié)中每個(gè)字節(jié)的最末2bit。
3.根據(jù)權(quán)利要求2所述的一種基于改進(jìn)Arnold變換和LSB的圖像信息加密及解密方法,其特征在于,所述步驟4具體如下:
步驟4.1)、跳過(guò)背景圖像的前4個(gè)像素的隱藏信息圖像的尺寸存儲(chǔ)區(qū),對(duì)隱藏信息圖像進(jìn)行LSB加密;設(shè)初始迭代次數(shù)i=1;
步驟4.2)、依次取出隱藏信息圖像中的第i個(gè)字節(jié),將該字節(jié)的最高2bit存放在背景圖像的第(4+i)個(gè)像素的第1個(gè)字節(jié)的末2bit中,直接替換掉背景圖像的第(4+i)個(gè)像素第1個(gè)字節(jié)的末2bit;
步驟4.3)、然后取出該字節(jié)的第6位、第5位的數(shù)據(jù)放在背景圖像的第(4+i)個(gè)像素的第2個(gè)字節(jié)的末2bit中;
步驟4.4)、當(dāng)i小于隱藏信息圖像的所有字節(jié)數(shù)量,則i=i+1,重復(fù)步驟4.2)-步驟4.4);直到將隱藏信息圖像的所有字節(jié)全部被放入背景圖像中,這樣就生成加密后圖像。
4.根據(jù)權(quán)利要求3所述的一種基于改進(jìn)Arnold變換和LSB的圖像信息加密及解密方法,其特征在于,所述步驟5具體如下:
步驟5.1)、加載加密后圖像到內(nèi)存;
步驟5.2)、提取出加密后圖像的前4個(gè)像素?cái)?shù)據(jù),其中,根據(jù)加密原理,前2個(gè)像素為圖像的高度數(shù)據(jù),后2個(gè)像素為圖像的寬度數(shù)據(jù);前2個(gè)像素中,每個(gè)像素按照順序直接提取其中每個(gè)字節(jié)的最末2bit,然后拼接在一起形成12bit的數(shù)值,該數(shù)值就是隱藏信息圖像的高度數(shù)值A(chǔ).height;
步驟5.3)、提取出加密后圖像的前4個(gè)像素中的后2個(gè)像素?cái)?shù)據(jù),后2個(gè)像素中,每個(gè)像素按照順序直接提取其中每個(gè)字節(jié)的最末2bit,并按順序直接拼接成12bit的數(shù)值,該數(shù)值就是隱藏信息圖像的寬度數(shù)值A(chǔ).width。
5.根據(jù)權(quán)利要求4所述的一種基于改進(jìn)Arnold變換和LSB的圖像信息加密及解密方法,其特征在于,所述步驟6具體如下:
步驟6.1)、跳過(guò)加密后圖像的前4個(gè)像素;
步驟6.2)從加密后的圖像的第5個(gè)像素開(kāi)始,將每個(gè)像素的每個(gè)字節(jié)的最末2bit提取出來(lái)按照順序拼接,最終生成帶有改進(jìn)Arnold變換后的隱藏信息圖像。
6.根據(jù)權(quán)利要求4所述的一種基于改進(jìn)Arnold變換和LSB的圖像信息加密及解密方法,其特征在于,所述步驟7具體如下:
步驟7.1)、如果是第一種加密方式,則根據(jù)公式x1=(x″-key2*y″),y1=y(tǒng)″進(jìn)行圖像Arnold反變換解密;如果是第二種加密方式,則根據(jù)公式x1=x″,y1=(-key2*x″+y″)進(jìn)行圖像Arnold反變換解密;
步驟7.2)、然后x1,y1分別對(duì)隱藏信息圖像的寬度A.width和高度A.height進(jìn)行取余運(yùn)算:x=x1mod A.width,y=y(tǒng)1mod A.height;如果x<0則x=x+A.width,如果y<0則y=y(tǒng)+A.height;
步驟7.3)、重復(fù)執(zhí)行步驟7.1)到步驟7.2)key1次,這樣就恢復(fù)了隱藏信息圖像的原始數(shù)據(jù)。