信息内容安全试验任务书_第1页
信息内容安全试验任务书_第2页
信息内容安全试验任务书_第3页
信息内容安全试验任务书_第4页
信息内容安全试验任务书_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、信息内容安全实验任务书编程实验一、最简单的加密(2学时)问题描述:在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中从a-y,A-Y的字母用其后继字母替代,把z和Z用a和A替代,其他非字母字符不变,则可得到一个简单的加密字符串。输入:输入一行,包含一个字符串,长度小于80个字符。输出:输出每行字符串的加密字符串。样例输入:Hello!Howareyou!样例输出:Ifmmp!Ipxbsfzpv!参考代码:#include<cstdio>

2、;#include<cstring>usingnamespacestd;intmain()chardraft80;gets(draft);intlength=strlen(draft);for(inti=0;i<length;+i)000000printf("%s",draft);return0;编程实验二、加密的病历单(2学时)问题描述:小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。经

3、过研究,小英发现了如下加密规律(括号中是一个原文->密文”的例子)1,原文中所有的字符都在字母表中被循环左移了三个位置(dec->abz)2 .逆序存储(abcd->dcba)3 .大小写反转(abXY->ABxy)输入:一个加密的字符串。(长度小于50且只包含大小写字母)输出:输出解密后的字符串。样例输入:GSOOWFASOq样例输出:Trvdizrrvj参考代码:#include<cstring>#include<cstdio>usingnamespacestd;intmain()chararray050;gets(arrayO);intle

4、ngth=strlen(arrayO);chararray150;000000return0;编程实验三、基因相关性仿真(2学时)问题描述:为了获知基因序列在功能和结构上的相似性,经常需要将几条不同序列的DN砥行比对,以判断该比对的DNA1否具有相关性。现比对两条长度相同的DNA序列。首先定义两条DNAff列相同位置的碱基为一个碱基对,如果一个碱基对中的两个碱基相同的话,则称为相同碱基对。接着计算相同碱基对占总碱基对数量的比例,如果该比例大于等于给定阈值时则判定该两条DNAJ列是相关的,否则不相关。输入:有三行,第一行是用来判定出两条DNA序列是否相关的阈值,随后2行是两条DNA序列(长度不大

5、于500)。输出:若两条DNA序列相关,则输出“ye&”否则输出“no:样例输入:0.85ATCGCCGTAAGTAACGGTTTTAAATAGGCCATCGCCGGAAGTAACGGTCTTAAATAGGCC样例输出:yes参考代码:#include<cstdio>#include<cstring>usingnamespacestd;intmain()doublepercent;scanf("%lfn”,&percent);charDNA1501;charDNA2501;gets(DNA1);gets(DNA2);intfull=0;intl

6、ength1=strlen(DNA1);return0;编程实验四、图像模糊处理(2学时)问题描述:给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理:1 .四周最外侧的像素点灰度值不变;2,中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。输入:第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1<=n<=100,1<=m<=100。接下来n行,每行m个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在0-255之间。输出:n行,每行m个整数,为模糊处理后的图像。相邻两个整

7、数之间用单个空格隔开。样例输入:451000100050501002000050501001002001001005050100样例输出:100010005050801006005080100902001001005050100参考代码:#include<iostream>#include<cstdio>#include<cmath>usingnamespacestd;intmain()000000return0;编程实验五、图像旋转翻转变换(2学时)问题描述:给定m行n列的图像各像素点灰度值,对其依次进行一系列操作后,求最终图像。其中,可能的操作及对应字符

8、有如下四种:A:顺时车+旋转90度;B:逆时车+旋转90度;C:左右翻转;D:上下翻转。输入:第一行包含两个正整数m和n,表示图像的行数和列数,中间用单个空格隔开。1<=m<=100,1<=n<=100o接下来m行,每行n个整数,表示图像中每个像素点的灰度值,相邻两个数之间用单个空格隔开。灰度值范围在0到255之间。接下来一行,包含由AB、CD组成的字符串s,表示需要按顺序执行的操作序列。s的长度在1到100之间。输出:m'行,每行包含n'个整数,为最终图像各像素点的灰度值。其中m'为最终图像的行数,n'为最终图像的列数。相邻两个整数之间

9、用单个空格隔开c样例输入:2 31001010010010AC样例输出:1010001001010参考代码:编程实验六、DESJT法的编程实现(简单实现)(4学时)实验内容:完成一个DES算法的详细设计,内容包括:?算法原理概述;?总体结构;?数据结构;?正确运用数据结构?简单模拟DES实验原理:DES是一种典型的块加密方法:它以64位为分组长度,64位一组的明文作为算法的输入,通过一系列复杂的操作,输出同样64位长度的密文。DES使用加密密钥定义变换过程,因此算法认为只有持有加密所用的密钥的用户才能解密密文。DES的采用64位密钥,但由于每8位中的最后1位用于奇偶校验,实际有效密钥长度为56

10、位。密钥可以是任意的56位的数,且可随时改变。其中极少量的数被认为是弱密钥,但能容易地避开它们。所有的保密性依赖于密钥。DES算法的基本过程是换位和置换。总体结构:1 .先搭建总体结构。参照上课讲解的算法流程图,总体结构可看作三大块:IP置换、T迭代、IP逆置换。?在T迭代中,涉及密钥调度、Feistel轮函数。?密钥调度主要为16个子密钥的生成过程,涉及PC1置换、PC2置换、循环移位。?Feistel轮函数涉及循环扩展、分组、6-4压缩置换。2 .实现辅助函数,包括异或的实现、进制数转换等。数据结构(可参照采用的数据结构):IP置换表:一维数组(长度64)IP逆置换表:一维数组(长度64)

11、PC1压缩置换表:一维数组(长度56)PC2压缩置换表:一维数组(长度48)循环扩展表:一维数组(长度48)S盒(S1S8):三维数组8416,用于存储8个矩阵,便于在分组时批量处理/IPtableintIP64=58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7;/IPreverse

12、intIP_reverse64=40,8,48,16,56,24,64,32,39,7,47,15,55,23,63,31,38,6,46,14,54,22,62,30,37,5,45,13,53,21,61,29,36,4,44,12,52,20,60,28,35,3,43,11,51,19,59,27,34,2,42,10,50,18,58,26,33,1,41,9,49,17,57,25;/extensiontableintext48=32,1,2,3,4,5,4,5,6,7,8,9,8,9,10,11,12,13,12,13,14,15,16,17,16,17,18,19,20,21,

13、20,21,22,23,24,25,24,25,26,27,28,29,28,29,30,31,32,1;/PC1compresspermutationintPC156=57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4;/PC2compresspermutationintPC248=14,17,11,24,1,5,3,88,15

14、,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32;/8s-boxesints_box8416=/*S1*/14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7),0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8,4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0),15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13,/*S2*

15、/15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10,3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5,0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15,13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9,/*S3*/10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8,13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1,13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7,1,10,13,0,6,9,8,7,4,15,14,3

16、,11,5,2,12,/*S4*/7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15,13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9,10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4,3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14,/*S5*/2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9,14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6,4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14,11,8,12,7,1

17、,14,2,13,6,15,0,9,10,4,5,3,/*S6*/12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11,10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8,9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6,4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13,/*S7*/4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1,13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6,1,4,11,13,12,3,7,14,10,15,6,8,0,5

18、,9,2,6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12,/*S8*/13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7,1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2,7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8,2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11;DES总体结构:忽略中间具体步骤,DES过程主要可看作:*输入:64位明文* 经过IP置换混淆* 经过16次T迭代* 经过IP逆置换混淆* 得到64位密文/*以下均为伪代码*/DES(message

19、,key_64)ipMes=IP_permutation(message);tMes=T_iteration(ipMes,key_64);ciphertext=IP_reverse_permutation(tMes);returnciphertext;IP置换:IP_permutation(message)target;for(inti=0;i<64;i+)targeti=messageIPi-1;returntarget;T迭代:/*以下均为伪代码*/left0;/lefthalfL0right0;/righthalfR0for(inti=0;i<32;i+)*(left0+i)

20、=*(message+i);*(right0+i)=*(message+i+32);/left0-Li-1;right0-Ri-1left;/Liright;/Riright=XOR(left0,Feistel(right0,k),48);left=right0;left0=left;right0=right;交换:/*以下均为伪代码*/target;for(inti=0;i<32;i+)*(target+i)=*(right0+i);*(target+i+32)=*(left0+i);)returntarget;密钥生成:/keyschedule(compress)key_5656;f

21、or(inti=0;i<56;i+)key_56i=PC1_compress_permutation(key_64)i;C028;/lefthalf(len:28)D028;/righthalf(len:28)for(inti=0;i<28;i+)C0i=key_56i;D0i=key_56i+28;)/16子密钥for(inti=0;i<16;i+)/keyschedule(produceki)circular_shift(C0,i+1);circular_shift(D0,i+1);intkey_56_256;for(intj=0;j<28;j+)key_56_2j

22、=C0j;key_56_2j+28=D0j;)intk48;for(intj=0;j<48;j+)kj=PC2_compress_permutation(key_56_2)j;)PC1压缩置换:/*以下均为伪代码*/key_56;for(inti=0;i<56;i+)key_56i=key_64PC1i-1;循环移位:/*以下均为伪代码*/voidcircular_shift(arr,intflag)inttemp=arr0;inttemp2=arr1;intmove=0;if(flag=1|flag=2|flag=9|flag=16)move=1;elsemove=2;for(i

23、nti=0;i<28;i+)arri=arr(i+move)%28;)if(move=1)arr28=temp;elsearr27=temp;arr28=temp2;PC2压缩置换:/*以下均为伪代码*/PC2_compress_permutation(key_56)key_48;for(inti=0;i<48;i+)key_48i=key_56PC2i-1;Feistel轮函数:将传入的32位右半段二进制串经过循环扩展表扩展成48位。再用得到的48位二进制串与对应的子密钥进行位移或运算。将异或运算所得48位分成8组,每组是一段6位二进制串。每组分别通过相应的S盒进行6-4变换(S

24、盒变换),由6位变为4位。合并8组,形成32位二进制串作为Feistel轮函数的输出。/*以下均为伪代码*/int*Feistel(int*right_32,int*k)right_4848;for(inti=0;i<48;i+)right_48i=extension(right_32)i;feis_4848;for(inti=0;i<48;i+)feis_48i=XOR(right_48,k,48)i;/divideinto8groupsgroups86;for(inti=0;i<48;i+)groupsi/6i%6=feis_48i;feis_484;for(inti=0

25、;i<8;i+)for(intj=0;j<4;j+)feis_4ij=s_conversion(groupsi,i)j;intfeis_3232;for(inti=0;i<32;i+)feis_32i=feis_4i/4i%4;)returnfeis_32;)循环扩展:48位。将传入的32位右半段二进制串经过循环扩展表扩展成/*以下均为伪代码*/int*extension(int*right_32)int*right_48;for(inti=0;i<48;i+)right_48i=right_32exti-1;returnright_48;)s-box分组:共分成8组,

26、每组是一段6位二进制串。/*以下均为伪代码*/intgroups86;for(inti=0;i<48;i+)groupsi/6i%8=feis_48i;)实验七、LSB图像信息隐藏实验(2学时)【实验目的】1 .掌握对图像的基本操作。2 .能够用LSB算法对图像进行信息隐藏3 .能够用LSB提取算法提取隐藏进图像的信息【实验环境】Matlab软件【实验过程】实验过程一:LSB嵌入1 .读取一副256*256大小的图片,判断是否为RGB图像。若为RGB图像,则读取图像的一层信息(如R层)。2 .以二进制形式读取要嵌入到图片里的消息。并读取消息的长度(嵌入消息的长度不能超过图像位数)。3 .

27、产生与消息长度一致的一串随机数(不能相同)。自定义一个randinterval函数来实现伪随机数的生成产生的伪随机数是代表消息要隐藏的像素位置(行和列的信息)4 .按照产生的随机数的序列依次将图片层的最后一位改为消息的信息。即用消息替换图片的最后一位信息。5 .嵌入完成后,如果为RGB则将该层返回原图像。然后将数据信息写回图像。LSB就完成了。实验过程二:读取LSB隐藏的信息1 .读取已经隐藏信息的图像。如果为RGB图像,则读取图像的一层(该层为嵌入信息的那层)。2 .用与LSB算法中相同的随机数种子产生相同的一串随机数。随机数串的长度由LSB中获得(长度不得大于图像大小)。用同一个伪随机生成

28、算法,相同的种子,来产生像素点位置,可以确保隐藏时和提取时位置顺序是一模一样的,在顺序读取这些位置上的数据(利用与运算,与上1,任何数与上1还是本身的性质),就是隐藏的信息。row,col=randinterval(Picture_R,msg_len,1996);3 .按照产生的随机数序列依次读取图像的相应点最后一位的信息。并将其以二进制形式写到文件中。4 .看文件,即获取的信息,与嵌入的信息进行比较。代码:image=imread('1.jpg');Hide_image=image;Hide_image=double(Hide_image);mysize=size(image

29、);ifnumel(mysize)>2'thephotoisargbstylephoto'%是rgb图像输出到命令行窗口image1=Hide_image(:,:,1);message=fopen('message.txt','r');msg,msg_len=fread(message,'ubit1')%按位以二进制形式读取文本内容与长度m,n=size(image1)%读取bin_iamge1的行和列p=1;%p为秘密信息的位计数器row,col=randinterval(image1,msg_len,1996);fori

30、=1:msg_lenimage1(row(i),col(i)=image1(row(i),col(i)-mod(image1(row(i),col(i),2)+msg(p,1);ifp=msg_lenbreak;end;p=p+1;end%还原图像Hide_image(:,:,1)=image1;Hide_image=uint8(Hide_image);imwrite(Hide_image,'Hide_image.tif');%输出隐藏信息的图像subplot(121);imshow(image);title('未嵌入信息的图片);subplot(122);imshow

31、(Hide_image);title('嵌入信息的图片');else*'thephotoisnoirgbstyle'+fclose('all');end实验截图:实验结果:KFigure1文侬D卿a(B查看M插入3工具CDMO厨口(W)帮BMW口日4|0,。与要/|C1Q打茨人:口的Mi霰入僧息的图片2.隐藏信息提取%功能:用来提取隐藏信息Picture=imread('Hide_image.tif');Picture=double(Picture);Picture_R=Picture(:,:,1);m,n=size(Pictur

32、e_R);frr=fopen('txt','w');%以写入方式打开只写文件p=1;row,col=randinterval(Picture_R,msg_len,1996);fori=1:msg_lenifbitand(Picture_R(row(i),col(i),1)=1%按位与运算fwrite(frr,1,'ubit1');result(p,1)=1;elsefwrite(frr,0,'ubit1');result(p,1)=0;endifp=msg_lenbreak;endP=P+1;endfclose(frr);实验结果

33、:©卫编41口-DAMAILAE班R291rndinterval.mm密忸钳融etwt需要加留的信息帮助(H)niussdye巳妻4yangyiyLlzuishuai文竹旧堀圆口格比(0)functionrow,col=randinterval(matrix,count,key);m,n=size(matrix);interval1=floor(m*n/count)+1;interval2=interval1-2;rand('seed',key);a=rand(1,count);row=zeros(1,count);col=zeros(1,count);r=1;c=1

34、;row(1,1)=r;col(1,1)=c;fori=2:countifa(i)>=0.5c=c+interval1;elsec=c+interval2;endifc>nr=r+1;c=mod(c,n);ifc=0c=1;endendrow(1,i)=r;col(1,i)=c;end实验八、基于空间域的自适应多平面位的信息隐藏算法(2学时)【实验目的】1 .掌握对图像的基本操作。2 .能够用算法对图像进行信息隐藏3 .能够用提取算法提取隐藏进图像的信息【实验环境】Matlab软件【实验过程】这是一种基于空间域的自适应多平面位的信息隐藏算法。该算法计算复杂度低、信息隐藏量大。在不影

35、响图像视觉效果的前提下,其信息隐藏量比LSB算法大,并具有更高的安全性。该算法的主要思想是对每个像素点进行判断,根据HVS的特性,在最高非0有效位后的指定位(y)开始嵌入隐藏信息,嵌入到另一个指定位(z)为止。ImgEmbed.mclc;clearall;closeall;yr=4;yg=5;yb=3;Img=imread('介质图片.jpg');figure;imshow(Img,);title('介质图片');Img=double(Img);ImgR=Img(:,:,1);ImgG=Img(:,:,2);ImgB=Img(:,:,3);Imgmark=imr

36、ead('待嵌入图片_gray.jpg');Imgmark=double(Imgmark);figure;imshow(Imgmark,);title('待嵌入图片_gray');markm,markn=size(Imgmark);Imgmarkline=Imgmark(:);%二维数组转成一列Imgmarklinebin=zeros(markm*markn*8,1);%转化为二进制forii=1:markm*marknImgmarklinebin(8*ii-7),Imgmarklinebin(8*ii-6),Imgmarklinebin(8*ii-5),Img

37、marklinebin(8*ii-4),Imgmarklinebin(8*ii-3),Imgmarklinebin(8*ii-2),Imgmarklinebin(8*ii-1),Imgmarklinebin(8*ii)=Find8bits(Imgmarkline(ii);End%寸于红色通道embedNumsed=0;%已嵌入个数M,N,Z=size(Img);y=zeros(8,1);flag=0;%辅助跳出的标志ImgRline=ImgR(:);%转换为一列ImgRlineNew=ImgRline;%嵌入后forii=1:M*Nifflag=1;%跳出外层循环break;endy(8),y

38、(7),y(6),y(5),y(4),y(3),y(2),y(1)=Find8b依(ImgRline(ii);posNzreo=FindNotZero(y(8),y(7),y(6),y(5),y(4),y(3),y(2),y(1);embedNums=posNzreo-yr;%能嵌入的个数ifembedNums>0%符合嵌入条件forjj=1:embedNumsembedNumsed=embedNumsed+1;%已嵌入个数ifembedNumsed>markm*markn*8%嵌入完成flag=1;%设置标识,使外层循环也跳出break;endy(jj)=Imgmarklineb

39、in(embedNumsed);%嵌入endendImgRlineNew(ii)=bin2dec_trans(y(8),y(7),y(6),y(5),y(4),y(3),y(2),y(1);%嵌入后的endImgR2=reshape(ImgRlineNew,M,N);%对于G通道ImgGline=ImgG(:);%转换为一列ImgGlineNew=ImgGline;%嵌入后forii=1:M*Nifflag=1;%跳出外层循环break;endy(8),y(7),y(6),y(5),y(4),y(3),y(2),y(1)=Find8bits(ImgGline(ii);posNzreo=Find

40、NotZero(y(8),y(7),y(6),y(5),y(4),y(3),y(2),y(1);embedNums=posNzreo-yg;%能嵌入的个数ifembedNums>0%符合嵌入条件forjj=1:embedNumsembedNumsed=embedNumsed+1;%已嵌入个数ifembedNumsed>markm*markn*8%嵌入完成flag=1;%设置标识,使外层循环也跳出break;endy(jj)=Imgmarklinebin(embedNumsed);%嵌入endendImgGlineNew(ii)=bin2dec_trans(y(8),y(7),y(6

41、),y(5),y(4),y(3),y(2),y(1);%嵌入后的endImgG2=reshape(ImgGlineNew,M,N);%对于B通道ImgBline=ImgB(:);%转换为一列ImgBlineNew=ImgBline;%嵌入后forii=1:M*Nifflag=1;%跳出外层循环break;endy(8),y(7),y(6),y(5),y(4),y(3),y(2),y(1)=Find8bits(ImgBline(ii);posNzreo=FindNotZero(y(8),y(7),y(6),y(5),y(4),y(3),y(2),y(1);embedNums=posNzreo-y

42、b;%能嵌入的个数ifembedNums>0%符合嵌入条件forjj=1:embedNumsembedNumsed=embedNumsed+1;%已嵌入个数ifembedNumsed>markm*markn*8%嵌入完成flag=1;%设置标识,使外层循环也跳出break;endy(jj)=Imgmarklinebin(embedNumsed);%嵌入endendImgBlineNew(ii)=bin2dec_trans(y(8),y(7),y(6),y(5),y(4),y(3),y(2),y(1);%嵌入后的EndImgB2=reshape(ImgBlineNew,M,N);Im

43、gNew=zeros(M,N,Z);ImgNew(:,:,1)=ImgR2;ImgNew(:,:,2)=ImgG2;ImgNew(:,:,3)=ImgB2;figure;imshow(uint8(ImgNew),);title('嵌入后的RGB图');imwrite(uint8(ImgNew),介质图片_嵌入图像后.jpg');%保存图片%提取嵌入图像flag=0;Imgmark_extractlinebin=zeros(markm*markn*8,1);extractNumsed=0;%已提取个数%R通道ImgRline2=ImgR2(:);%转换为一列forii=1

44、:M*Nifflag=1;%跳出外层循环break;endy(8),y(7),y(6),y(5),y(4),y(3),y(2),y(1)=Find8bits(ImgRline2(ii);posNzreo=FindNotZero(y(8),y(7),y(6),y(5),y(4),y(3),y(2),y(1);embedNums=posNzreo-yr;%已嵌入的个数ifembedNums>0%符合嵌入条件forjj=1:embedNumsextractNumsed=extractNumsed+1;%已提取个数ifextractNumsed>markm*markn*8%提取完成flag

45、=1;%设置标识,使外层循环也跳出break;endImgmark_extractlinebin(extractNumsed)=y(jj);%提取endendend%G通道ImgGline2=ImgG2(:);%转换为一列forii=1:M*Nifflag=1;%跳出外层循环break;endy(8),y(7),y(6),y(5),y(4),y(3),y(2),y(1)=Find8bits(ImgGline2(ii);posNzreo=FindNotZero(y(8),y(7),y(6),y(5),y(4),y(3),y(2),y(1);embedNums=posNzreo-yg;%已嵌入的个

46、数ifembedNums>0%符合嵌入条件forjj=1:embedNumsextractNumsed=extractNumsed+1;%已提取个数ifextractNumsed>markm*markn*8%提取完成flag=1;%设置标识,使外层循环也跳出break;endImgmark_extractlinebin(extractNumsed)=y(jj);%提取endendend%G通道ImgBline2=ImgB2(:);%转换为一列forii=1:M*Nifflag=1;%跳出外层循环break;endy(8),y(7),y(6),y(5),y(4),y(3),y(2),

47、y(1)=Find8bits(ImgBline2(ii);posNzreo=FindNotZero(y(8),y(7),y(6),y(5),y(4),y(3),y(2),y(1);embedNums=posNzreo-yb;%已嵌入的个数ifembedNums>0%符合嵌入条件forjj=1:embedNumsextractNumsed=extractNumsed+1;%已提取个数ifextractNumsed>markm*markn*8%提取完成flag=1;%设置标识,使外层循环也跳出break;endImgmark_extractlinebin(extractNumsed)=y(jj);%提取endendend%二进制转十进制Imgmarklinedec=zeros(markm*markn,1);%转化为十进制forii=1:markm*marknImgmarklin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论