shamir叠像术

原创 2015年07月08日 16:50:09


K=imread('SHNU.bmp');

height=info.Height;
width=info.Width;
A=zeros(height,width);
B=zeros(height,width);
C=zeros(height,width);
% 随机生成A,B,C矩阵
for i=1: height
   for j=1: width
    random=rand()*2; 
        if(random>1) 
            A(i,j)=1;B(i,j)=1;C(i,j)=1; 
        else 
            A(i,j)=0;B(i,j)=0;C(i,j)=0; 
        end 
    end 
end
%%%%%生成子秘钥A,B,C图片
for i=1: height
    for j=1: width
        if(K(i,j)==0)
        random=rand()*4;
            
            if(random<1)
                    A(i,j)=0;A(i,j+1)=0;A(i+1,j)=1;A(i+1,j+1)=1;
                
               
                    B(i,j)=0;B(i+1,j)=0;B(i,j+1)=1;B(i+1,j+1)=1;
                
                
                    C(i,j)=0;C(i+1,j+1)=0;C(i,j+1)=1;C(i+1,j)=1;
               
          
                
            else if(random<2)
                    
                  A(i,j)=0;A(i,j+1)=0;A(i+1,j)=1;A(i+1,j+1)=1;
                    
                  C(i,j+1)=0;C(i+1,j)=0;C(i,j)=1;C(i+1,j+1)=1;
                    
                  B(i,j+1)=0;B(i+1,j+1)=0;B(i,j)=1;B(i+1,j)=1;
                    
                 
                    
                else if(random<3)
                        
                    B(i,j)=0;B(i+1,j)=0;B(i,j+1)=1;B(i+1,j+1)=1;
      
                    A(i+1,j)=0;A(i+1,j+1)=0;A(i,j)=1;A(i,j+1)=1;
                   
                    C(i,j+1)=0;C(i+1,j)=0;C(i,j)=1;C(i+1,j+1)=1;
                   
                       
                 
                    
                    else if(random<4) 
                    
                       B(i,j+1)=0;B(i+1,j+1)=0;B(i,j)=1;B(i+1,j)=1; 
                    
                       C(i,j)=0;C(i+1,j+1)=0;C(i,j+1)=1;C(i+1,j)=1;
                       
                       A(i+1,j)=0;A(i+1,j+1)=0;A(i,j)=1;A(i,j+1)=1;
                        
                          end
                    end
                end
            end
            
                     
            
        
        end
    end
end
imwrite(A,'a.bmp','bmp');
imwrite(B,'b.bmp','bmp');
imwrite(C,'c.bmp','bmp');
figure 
subplot(2,2,1),imshow(K);
subplot(2,2,2),imshow(A);
subplot(2,2,3),imshow(B);
subplot(2,2,4),imshow(C);
axes_handle = get(gcf, 'children');
axes(axes_handle(4)); title('original image');
axes(axes_handle(3)); title('image a');
axes(axes_handle(2)); title('image b');
axes(axes_handle(1)); title('image c');
%%%%隐藏信息的恢复
A1=imread('a.bmp'); 
B1=imread('b.bmp'); 
C1=imread('c.bmp');
random=rand()*3;
if(random<1)
       K=A1;K12=A1;K13=A1;K23=A1;
else if(random<2)
        K=B1;K12=B1;K13=B1;K23=B1;
    else
        K=C1;K12=C1;K13=C1;K23=C1;
    end
end
 
for i=1: height-1
    for j=1: width-1
        if((xor(xor(A1(i,j),B1(i,j)),C1(i,j))==0)&&(xor(xor(A1(i,j+1),B1(i,j+1)),C1(i,j+1))==0)&&(xor(xor(A1(i+1,j),B1(i+1,j)),C1(i+1,j))==0)&&(xor(xor(A1(i+1,j+1),B1(i+1,j+1)),C1(i+1,j+1))==0))
           K(i,j)=0;K(i,j+1)=0;K(i+1,j)=0;K(i+1,j+1)=0;
    
        end
   
    end
    
end
for i=1: height-1,
    for j=1: width-1,
        if((A1(i,j)||B1(i,j))==0&&(A1(i,j+1)||B1(i,j+1))==0&&(A1(i+1,j)||B1(i+1,j))==0&&(A1(i+1,j+1)||B1(i+1,j+1))==0)
           K12(i,j)=0;K12(i,j+1)=0;K12(i+1,j)=0;K12(i+1,j+1)=0;
    
        end
   
    end
end
for i=1: height-1,
    for j=1: width-1, 
        if((A1(i,j)||C1(i,j))==0&&(A1(i,j+1)||C1(i,j+1))==0&&(A1(i+1,j)||C1(i+1,j))==0&&(A1(i+1,j+1)||C1(i+1,j+1))==0)
           K13(i,j)=0;K13(i,j+1)=0;K13(i+1,j)=0;K13(i+1,j+1)=0;
    
        end
    end
end
for i=1: height-1,
    for j=1: width-1, 
        if((C1(i,j)||B1(i,j))==0&&(C1(i,j+1)||B1(i,j+1))==0&&(C1(i+1,j)||B1(i+1,j))==0&&(C1(i+1,j+1)||B1(i+1,j+1))==0)
           K23(i,j)=0;K23(i,j+1)=0;K23(i+1,j)=0;K23(i+1,j+1)=0;
    
        end
   
    end
end




imwrite(K,'K.bmp','bmp')
imwrite(K12,'image_a+b.bmp','bmp')
imwrite(K13,'image_a+c.bmp','bmp')
imwrite(K23,'image_b+c.bmp','bmp')
figure
imshow(K);
title('recovery image');
figure
subplot(2,2,1),imshow(K12);
subplot(2,2,2),imshow(K13);
subplot(2,2,3),imshow(K23);
axes_handle = get(gcf, 'children');
axes(axes_handle(3)); title('image a+b');
axes(axes_handle(2)); title('image a+c');
axes(axes_handle(1)); title('image b+c');
版权声明:本文为博主原创文章,未经博主允许不得转载。

shamir(m,n)门限共享方案

  • 2014年03月17日 14:54
  • 102KB
  • 下载

Naor & Shamir 的单秘密视觉共享方案

最近学习了视觉密码相关的知识。 我一直在纠结是整理一个博客,还是写在本子上,但感觉写在本子上估计永远不会看吧。 Naor & Shamir 的单秘密视觉共享方案 简单来说,就是通过两个二值图像叠...
  • W_M__
  • W_M__
  • 2017年03月17日 18:39
  • 225

对shamir门限密码体制的注入攻击

  • 2014年05月02日 21:44
  • 245KB
  • 下载

5how to share a secret - Shamir 论文

  • 2015年03月27日 14:46
  • 194KB
  • 下载

HDOJ1330 Deck(叠卡片)

Deck Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi...

shamir门限方案

  • 2010年05月29日 10:04
  • 1.88MB
  • 下载

Fiat_Shamir数字签名

  • 2008年12月26日 18:40
  • 3.27MB
  • 下载

[C] 老鼠走迷宫(使用回圈+堆叠)

这是最近看到的一个小题目,以C语言来实作练练手。 题目叙述: 设计一个程式,读入文件中的迷宫地图数据,然后利用回圈或递回函数在迷宫中行进。 并且使用堆叠(或堆栈、stack)记录走过的分岔路口座标...

shamir分割

  • 2012年09月10日 14:57
  • 3KB
  • 下载

shamir secret sharing

  • 2009年09月12日 12:04
  • 38KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:shamir叠像术
举报原因:
原因补充:

(最多只允许输入30个字)