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');
版权声明:本文为博主原创文章,未经博主允许不得转载。

话术

百科名片 话术,又名说话的艺术,以“察颜观色”,“一物百拟”,“用情至深”,“行文诡辩”著称于世。中国五千年的悠久文化几乎绝大多数都是围绕着话术摊开的。它看似简单,却包含着做人做事的技巧,安...
  • jimoshuicao
  • jimoshuicao
  • 2013年06月18日 09:49
  • 1769

为什么你的脸上不见笑容

为什么你的脸上不见笑容? 是为已逝的过去而悲伤, 还是为未到来的前程而忧愁?   为何还在写着孤单的文字? 一...
  • shuqin1984
  • shuqin1984
  • 2013年11月15日 19:22
  • 1198

经典门限秘密共享方案

1 门限秘密共享的概念:(k,n)门限秘密共享表示把秘密信息分成n份无意义的子秘密,只有拥有至少k份子秘密才能恢复秘密信息,可以提高安全性。 2 经典门限秘密共享方案 2.1shamir的门限秘密共享...
  • qq_31917799
  • qq_31917799
  • 2017年03月20日 19:08
  • 2880

C#_RSA的加解密与签名验证

C#_RSA的加解密与签名验证 RSA加密算法是一种非对称加密算法。在公钥加密标准和电子商业中RSA被广泛使用。RSA是1977年由罗纳德•李维斯特(Ron Rivest)、阿迪•萨...
  • cuoban
  • cuoban
  • 2015年05月04日 17:00
  • 264

Shamir在密码学中的主要贡献

Shamir  学习信息安全的人都知道。总结他在密码学中的贡献主要有: 1.RSA 2
  • alice707
  • alice707
  • 2014年04月07日 16:30
  • 477

基于OpenSSL简单实现Shamir基于身份的数字签名算法

1. 基于身份认证协议简介一般基于公钥密码体质的签名认证方案,像RSA都需要用户交换私钥或公钥,一般的认证过程如图1所示:B要验证消息m是否是A发送的,首先要获得A的公钥A先计算m的摘要,再用自己的私...
  • dyllove98
  • dyllove98
  • 2013年03月04日 23:24
  • 1983

那些整天脸上都挂着笑容的人,你真的了解他们吗

那些整天脸上都挂着笑容的人,你真的了解他们吗 — 那些整天脸上都挂着笑容的人,你真的了解他们吗 总有一些人,他们看上去整天都很开心,嘻嘻哈哈的,没有烦恼,像个小孩,他们会说玩是我最大的乐趣...
  • tibjsmoeg
  • tibjsmoeg
  • 2012年10月20日 11:08
  • 2482

用割圆术求圆周率π

以半径为1的圆开始,依次在圆内画正六边形、正十二边形、正6n边形...。      只有n趋近于无穷大,便可以得到足够接近圆的多边形,计算的圆周率π也就越精确。 完整代码如下:...
  • sanqima
  • sanqima
  • 2014年06月12日 09:28
  • 1822

我程序世界的“术”与“道”

17年前高考的时候,本人就立志要从事所谓的科技行业,所以在填写志愿的时候填写的是通信工程,顺便后面同意了服从志愿调剂。就因为服从调剂,我这个完全能上得了通信工程专业分数的人得到了“爱因斯坦”老先生的眷...
  • u012935160
  • u012935160
  • 2014年09月24日 21:38
  • 2013

读《超级询问术》有感二

读《超级询问术》有感            原来什么都不知道,是因为没有问对问题。            提出什么样的问题,如何提出问题,这些都会影响到能获得什么信息,获得多少信息。       ...
  • jeanliam
  • jeanliam
  • 2017年05月22日 10:13
  • 339
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:shamir叠像术
举报原因:
原因补充:

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