一种门限视觉密码矩阵构造方法与流程

文档序号:17609300发布日期:2019-05-07 20:57阅读:334来源:国知局

本发明属于秘密分享及视觉密码技术领域,尤其涉及一种新型的门限视觉密码矩阵构造方法。



背景技术:

视觉密码(visualcryptograghy)由naor和shamir在1994年欧洲密码学年会上提出,它以门限秘密共享思想为基础,将秘密共享和数字图像结合起来,形成了一个新的研究热点。视觉密码技术的原理是原始图像分解成两幅随机的视觉密码子图,从单一的视觉密码子图中想获得原始图像信息是不可能的。只有当两幅视觉密码子图完全重合时,原始图像才能被重现。

视觉密码中的秘密分享算法是将秘密图像按像素点编码到若干个称为共享份(shares)的图像中,共享份中的黑、白像素点随机分布,从中得不到任何关于秘密图像的信息。视觉密码中的恢复秘密的算法非常简单,只需将一定数目的共享份打印至透明胶片并进行叠加,人的视觉系统就可以直接辨认出信息。

视觉密码的解密原理在于人眼观察物体时,是通过与周围环境的对比而产生效果的,而且人类的视觉系统并没有办法清晰辨别出图像中每一像素的颜色,只能感受出一块区域所有像素颜色呈现出的平均效果。因此,当共享份叠加时,只要黑白像素的灰度差足够大,人类视觉系统就可以解读出秘密图像。由于视觉密码的理论安全性和恢复秘密的简单性,其应用前景非常广阔。

随着互联网的快速发展,数字图像被广泛使用,图像的安全问题越来越值得关注。为保护图像,图像加密、信息隐藏和数字水印等技术相继提出,然而这些方法解密时都需要计算。1994年naor和shamir首次提出(k,n)视觉密码方案,该方案将秘密图像以像素为单位进行加密,得到n张分享份。每一张分享份都像随机噪声一样杂乱无章,攻击者无法直接由单张分享份获取到秘密信息。当k张或多于k张分享份叠加时,即可由人眼识别出秘密信息,无需任何计算;而少于k张分享份叠加时,则不能恢复秘密信息。



技术实现要素:

本发明的目的在于从扩展的naor和shamir模型的一般访问结构为前提,提出了一种用于一般访问结构的视觉密码矩阵构造方法。

一种新型的门限视觉密码矩阵构造方案,包括以下步骤:

第一步:构造累计数组,累计数组由|p|×|t|的矩阵ca构成,其中数组p已知,授权子集为禁止子集为γ∞={b|b∈γforb,b∪{i}∈γqual对所有i∈p\b};

第二步:确定数组p、授权子集和禁止子集后,可确定f,f为集合γ∞中的子集合;

第三步:确定集合γ∞,γ∞中集合的个数等于γ∞的个数;

第四步:构造矩阵ca;

第五步:按照(n,n)门限方案构造累计数组的基矩阵s0'和s1';

第六步:观察矩阵ca中每行汉明重量为1的位置的分布情况,在矩阵ca中汉明重量为1的位置所在的行序,作为基矩阵s0和s1的行序;

第七步:以此类推,得到最终的基矩阵s0和s1

其中,(γqual,γforb)表示一般存取结构,一般存取结构是令p={1,...,n}是参与者集合,2p表示集合p的幂集,γqual和γforb分别被称为授权子集和禁止子集;他们满足以下条件:

(2)γqual∩γforb=φ,如果这个存取结构是健壮的结构,则γqual∪γforb=2p

则γ0称为最小授权子集;令γ∞={b|b∈γforb,b∪{i}∈γqual对所有i∈p\b},则γ∞称为最大禁止子集。

进一步地,如上所述的方法,步骤5中,所述(n,n)门限方案的构造方法为:

第一步:确定门限方案的n值,该值即为构成基础矩阵的行数;

第二步:基矩阵s0是由从0到n之间汉明重量为偶数的0/1值构成的列;

第三步:基矩阵s1是由从0到n之间汉明重量为偶数的0/1值构成的列;

第四步:完全排列后,最终得到基矩阵s0和s1

有益效果:

通过本发明的构造方法构造的矩阵,由于所构成的基矩阵的列数相对较少,而列数越少则像素扩展度越小,从而使得恢复秘密时图像不会过于拉伸而影响解密效果,从而在很大程度上保证了解密图像的质量。另外,本发明所提出的构造方法,即使不掌握视觉密码及相关数学知识的人也可以通过简单的代数式求值构造出门限视觉密码方案,构造过程简单且高效。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

从视觉密码提出至今,基矩阵是大部分方案的核心。目前大部分视觉密码方案的定义是以(k,n)门限为基础的。经典门限视觉密码方案(k,n)-vcs是以n×m布尔矩阵为元素的集合c0和c1组成。当分享白(黑)像素时,随机从c0(c1)中选取一个矩阵,决定了n个共享份中m个子像素的颜色。c0和c1满足以下两个条件:

(1)当k≤p≤n时,b0的任意p行“或”运算得到的向量v0满足w(v0)≤t-αm;b1的任意p行“或”运算得到的向量v1满足w(v1)≥t.其中w(v)表示v的汉明重量;

(2)当0<p<k时,设d0(d1)为c0(c1)中所有的矩阵的i1,i2,...,ip行构成的矩阵集合,则d0=d1.

在上述定义中,c0和c1是基矩阵组,m是像素扩展度,α是相对差。

衡量某一基矩阵的构造方法是否具有普适性时,应考虑的方面有二:一是构造出的基础矩阵的像素扩展度是否足够小,m足够小就意味着原始像素扩展成子像素的个数,即图像的失真的面积;二是由构造出的基矩阵所对应的相对差是否足够大,α体现的是秘密图像的恢复效果,足够大就意味着恢复后的图像效果更好。

视觉密码是秘密共享技术在数字图像领域的一种应用,继承了秘密共享的特点,同时具有恢复简单性。而在实际应用中,往往使用2个基础矩阵s0和s1来构造(k,n)视觉秘密分享方案,即矩阵集合c0和c1分别是对s0和s1的所有列遍取各种排列构成的。

基本概念

一般存取结构是令p={1,...,n}是参与者集合,2p表示集合p的幂集,则一般存取结构可以用(γqual,γforb)表示,γqual和γforb分别被称为授权子集和禁止子集。他们满足以下条件:

(2)γqual∩γforb=φ,如果这个存取结构是健壮的结构,则γqual∪γforb=2p

则γ0称为最小授权子集。令γ∞={b|b∈γforb,b∪{i}∈γqual对所有i∈p\b},则γ∞称为最大禁止子集。

一般存取结构模型是指令(γqual,γforb)是一个存取结构,则两个n×m的布尔矩阵c0和c1,定义了一个一般访问结构视觉密码(γqual,γforb,m)-vcs,当且仅当存在值α(m)和集合满足以下条件:

(1)(对比性条件)任意授权子集x={i1,i2,...,ip}∈γqual通过叠加他们的透明胶片都可以恢复分享的图片。也就是,对任意的m∈c0,m的第i1,i2,...,ip行向量或运算得到的向量v满足w(v)≤tx-α(m)·m,而对于任意的m∈c1,m的第i1,i2,...,ip行向量或运算得到的向量v满足w(v)≥tx。

(2)(安全性条件)任意禁止子集x={i1,i2,...,ip}∈γforb都不能够获得关于机密图像文件,也就是,取c0中每个矩阵的第i1,i2,...,ip行构成新的p×m矩阵,由这些矩阵构成p×m矩阵集合d0,取c1中每个矩阵的第i1,i2,...,ip行构成新的p×m矩阵,由这些矩阵构成p×m矩阵集合d1,d0和d1以相同的概率包含相同的矩阵(d0和d1是不可区分的)。

下面首先对(n,n)门限方案进行阐述:

对于(n,n)门限的构建方案相当于对基矩阵s0和s1的构建,方法如下:矩阵s0中的每一个列向量所包含的1的个数都为偶数,矩阵s1中的每一个列向量所包含的1的个数都为奇数。

第一步:确定门限方案的n值,该值即为构成基础矩阵的行数;

第二步:基矩阵s0是由从0到n之间汉明重量为偶数的0/1值构成的列,如n=3,则s0是将汉明重量为0和2的0/1值各种情况的完全排列构成的列;

第三步:基矩阵s1是由从0到n之间汉明重量为偶数的0/1值构成的列,如n=3,则s1是将汉明重量为1和3的0/1值各种情况的完全排列构成的列;

第四步:完全排列后,最终得到基矩阵s0和s1

实施例1:

以下根据具体实施例来对所述(n,n)门限方案进行举例说明:

若n=4,则基础矩阵的行数为4,列的构造即按照s0只包含汉明重量为偶数的0、2、4,s1只包含汉明重量为奇数的1、3的方法进行,两个基矩阵为:

实施例2:

令n=2,则基础矩阵的行数为2,列的构造即按照s0只包含汉明重量为偶数的0、2,s1只包含汉明重量为奇数的1的方法进行,两个基矩阵为:

以下是本发明提供的是从数组中累计方法实现任意结构的视觉密码矩阵构造方法。

从数组中累计是在上述(n,n)门限方案的基础上构造出的。首先构建一个累计数组,累计数组的构建方法:构造一个|p|×|t|的矩阵ca,其中|t|=|γ∞|,当且仅当时,ca(i,j)=1,f为集合γ∞中子集合。

p为视觉密码方案的参与者集合,我们认为数组p是已知的。而t指的是禁止子集和授权子集中所包含的集合;集合加两条竖线的意思指的是集合中元素的个数,构成累计数组的行数和列数即为集合p中元素的个数和集合t中元素的个数。具体地,例3中数组p中元素个数为4,数组t所包含的授权、禁止集合中的子集合个数为3,故累计数组是4行3列组成的。

假设s0'、s1'是(|γ∞|,|γ∞|)方案的基矩阵,s0和s1是一般访问结构的基矩阵。设累计数组ca中第i行中元素为1的列号为ji,1,...,ji,g,则将s0'的第ji,1,...,ji,g行的或作为s0的第i行,如此就可以得到一般访问结构的基矩阵s0和s1

由于构建最后的基矩阵之前需要借助于先构造累计数组,而累计数组的基矩阵就是按照(n,n)门限方案构造的,其基矩阵即为s0'和s1',加撇只是为了和“从数组中累积”方法中最后构造出的基矩阵s0和s1进行区分。

第一步:构造累计数组,累计数组由|p|×|t|的矩阵ca构成,其中数组p已知,授权子集为禁止子集为γ∞={b|b∈γforb,b∪{i}∈γqual对所有i∈p\b};

第二步:确定数组p、授权子集和禁止子集后,可确定f,f为γ∞中的集合;第三步:确定集合γ∞,γ∞中集合的个数等于γ∞的个数;

第四步:构造矩阵ca;

第五步:按照(n,n)门限方案构造累计数组的基矩阵s0'和s1'

第六步:观察矩阵ca中每行汉明重量为1的位置的分布情况,在矩阵ca中汉明重量为1的位置所在的行序,作为基矩阵s0和s1的行序;

第七步:以此类推,得到最终的基矩阵s0和s1

实施例3:

以下通过本实施例来对本发明矩阵构造方法进行阐述:

令n=4,p={1,2,3,4},γ0={{1,2},{2,3},{3,4}},γ∞={{1,4},{1,3},{2,4}}由此可得f1={1,4},f2={1,3},f3={2,4},则|t|=|γ∞|=3,首先构造累计数组,可以得到:

然后构造(3,3)门限的基矩阵:

此时观察ca可以得到col1={3},col2={1,2},col3={1,3},col4={2},由此可以计算基矩阵,如下,col1=3,因此将s0'和s1'的第3行作为s0和s1的第一行;col2={1,2},将s0'和s1'的1,2行做或运算后作为s0和s1的第二行,因此类推,即可得到基矩阵如下:

通过本发明方法可以实现任意结构视觉密码的基础矩阵的构建。而作为一项具有隐藏与分享秘密技术的视觉密码而言,其方案本身好坏的评判标准中极其重要的一条,即为该方案的像素扩展度是否足够小和相对差是否足够大。像素扩展度与相对差的关系是成反比的,像素扩展度越小,相对差就越大,该方案实施的效果也就越好。像素扩展度最直观的表现,就是所构成的基矩阵的列数要尽可能的较少,否则恢复秘密时图像过于拉伸则会影响解密效果。这一优势体现在本发明中,即为基矩阵的列数较少,这在很大程度上能够保证图像的质量。

视觉密码具有简单性的突出优点,对已构造好的视觉密码方案的应用几乎不需要密码学知识,但使用已有文献的典型构造方法来构造视觉密码方案并非一个简单的过程。本发明所提出的构造方法,即使不掌握视觉密码及相关数学知识的人也可以通过简单的代数式求值构造出门限视觉密码方案,构造过程简单且高效。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1