1.本发明属于信息安全技术领域,是一种动态多关键字模糊排序搜索方案,可用于在数据量较大时进行加密搜索等业务。
背景技术:
2.随着云计算的发展,越来越多的数据拥有者将数据外包到云服务器。云服务器往往是半可信的,为此,数据在外包前有必要进行保密处理,但直接加密会破坏数据的可检索性。因此,如何在保证数据的可检索性时,确保数据的机密性成为一个具有挑战性的问题。
3.由于单关键字搜索只能针对一个关键字进行搜索,在实际应用场景中,与单关键字搜索相比,多关键字搜索更实用。数据用户在输入关键字时容易出现拼写错误。在这种情况下,精确的关键字搜索不能返回用户感兴趣的文档。本发明利用“内积相似性”计算所有文档的相关分数,即使这些文件不包含任何搜索的关键字。在某些场景中,数据拥有者可能需要更新(添加,删除或修改) 存储在云服务器上的数据。因此,有必要设计一种支持数据动态更新的多关键字模糊排序搜索方案。
4.cn104615692b,是一种支持动态更新、多关键字检索并且实现安全排序的可搜索加密方法,方案没有实现模糊搜索功能,在实际应用中缺乏实用性,本文提出了一种基于两级索引结构的动态多关键字搜索方案,其中一级索引由倒排索引和交叉链表组成,结合gram计数顺序、bloom过滤器和lsh (location-sensitive hashing)实现了关键字的模糊匹配。同时该方案缺乏高效的数据更新功能,在本文中,利用交叉链表构造的安全索引实现了高效的数据更新。
5.cn112328733a,是一种基于minhash函数的中文多关键字模糊排序可搜索加密方法,方案为了进行文档更新,是用关键字频率代替了tfidf值,这样得到的结果是不准确的,本文第二级索引采用基于多项式的方法实现用户搜索权限决策,并将坐标匹配与术语频率逆文件频率(tf-idf)相结合实现搜索结果排序,得到了top-k文档。
6.本发明提出了一种动态多关键字模糊排序搜索方案,用于云环境下的数据安全外包与检索。本发明设计了一种改进的两级索引结构,利用前向索引和倒排索引来提高检索效率。反向索引用于搜索模糊关键字对应的文档,发明的搜索复杂度仅由查询中与关键字相关联的文件的数量而不是整个文件集大小决定。在二级索引结构中存在搜索效率提升会导致与隐私泄漏增加的矛盾。本发明的构造对搜索效率,空间储存成本和方案安全进行了有效平衡。
技术实现要素:
7.本发明旨在解决以上现有技术的问题。提出了一种动态多关键字模糊排序搜索方法及系统。本发明的技术方案如下:
8.一种动态多关键字模糊排序搜索方法,其包括以下步骤:
9.1.密钥生成:在这个阶段,由数据拥有者生成密钥;安全参数λ作为输入,输出密钥
sk;
10.2.系统初始化:由数据拥有者执行,输入密钥sk,文件集和相应的关键字集输出加密文档集合c和安全索引基于文档和关键字之间的联系构建了两阶段安全索引,第一阶段索引基于倒排索引构成,其中每个查询关键字对应有关文档标识符的链表;第二阶段索引是正向索引,其中每个文档标识符对应它拥有的关键字;
11.3.令牌生成:由数据用户执行,为关键字生成搜索令牌;将sk和查询 q=(w1,w2,
…
,wn)作为输入,输出token;
12.4.搜索:由云服务器执行,将token,c,index作为输入,输出id
top-k
和r, id
top-k
表示top-k相关加密文档c
top-k
的标识符,tag表示认证标签;
13.5.验证:数据用户输入密钥集sk,密文c
top-k
,认证标签tag并输出验证结果0 或1;0为拒绝1为接受;
14.6.解密:数据用户对返回的文档进行解密,将sk和c
top-k
作为输入,输出一组top-k相关明文文档d
top-k
;
15.7.数据更新:由数据拥有者和云服务器一起运行,它需要密钥集sk,更新代码uc={add,del}和添加或删除文档集d
′
作为输入,输出相应的更新结果;输出相应的更新结果;如果是添加文件,那么uc=add;如果是删除文件,那么uc=del。
16.进一步的,所述密钥生成阶段,具体包括:
17.给定安全参数λ,数据拥有者生成他的私钥sk,它包含一个随机序列 sk∈{0,1}
*
、两对可逆矩阵m1,m3,和两个个向量 spk1∈{0,1}
l
、spk2∈{0,1}m′
,在该过程之后,该算法输出密钥sk= {sk,m1,m2,m3,m4,spk1,spk2};数据所有者使用sk加密索引,数据用户使用sk来生成搜索令牌。
18.进一步的,所述系统初始化阶段,具体包括:
19.对于的构造分为了两个步骤,在第一步骤中,实现的模糊匹配,对于关键字通过2-gram计数排序将其转换为26
×
26长的位向量,然后引入c个 lsh函数得到哈希值并映射到l-bit布隆过滤器bfi中,然后使用安全knn加密对bfi进行加密;该算法根据分割向量对bfi进行分割;spk1被分割为两个向量bfi′
和bfi″
。矩阵m1和m2加密这两个向量并输出输出
20.在第二步骤中,构造的正交列表其中包括m行行列表和n列列表。行列表由一个头节点n
i,0
和n个其他节点组成,列列表与文档dj相关,由相应的m个节点组成。是索引节点存储结果用密钥k
i,j
∈{0,1}
*
计算f
sk
(k
i,j
),w
ij
∈{0,1}表示文件dj是否包含关键字wi,e
i,j
=g
sk
(k
i 1,j
), v:{0,1}
*
×
sk
→
{0,1}
*
,,
21.对于每个关键字计算相应的头部节点n
i,0
←
enc
sk
((π
sk
(wi),k
i,1
), k
i,1
是的密钥。
22.然后创建一个行列表计算节点
23.对于每个文件对应于节点与此同时形成为列列表的第i 项。
24.对于每个关键字wi,构造了一个相同长度的链表,目的是隐藏每个关键字的频率。当需要添加或删除某些文件时,云服务器可以快速找到与更新文件相关的索引节点,这样就可以方便快速地放大或缩小安全索引。由于是基于正交链表,可以显著提高更新效率。
25.由n个m位向量 (fj)
t
=(f
j1
,f
j2
,...,f
jm
)(f
ji
∈{0,1},i∈{0,1,...,m})构成,其中f
ji
的定义如下。
[0026][0027]
1)如果f
ji
=1,则将其替换为tfidf函数由每个关键字对应的tf-idf计算。否则,什么也不做。
[0028]
2)然后,引入多项式来识别用户搜索权限函数yj(x)。有num(num< m
′‑
m)个可用角色,表示数据用户的授权角色,角色,表示数据用户的授权角色,角色,表示数据用户的授权角色,表示yj(x)的对应系数。如果yj(x)=0,则表示数据用户已被授权,否则yj(x)>>max,max是最大可能的相关值,表示数据用户未经授权。将fj扩展为yi(x)的t个系数,表示为(x)的t个系数,表示为其中
[0029]
3)加入随机因子α和ω生成加密索引其中向量是l
′‑
l-t个随机数生成填充,α是扩展的一个随机正因素。请注意,眼从高斯分布,并且在每一轮都是新的。
[0030]
4)数据拥有者使用安全的knn加密对第二个索引进行加密。该算法先用ρ:{0,1}m′
×
sk
→
{0,1}m′
置换得到之后,该算法根据拆分向量spk2将拆分成两个向量。算法用m3和m4对这两个向量进行加密,然后输出
[0031]
tag是一个二维数组,每一个tag
j,i
存储关于第j个文件关于第i个关键字的认证标签签如果文档dj中包含wi,v
ij
=1。否则,v
ij
=0。π,x是一个置换函数,π:{0,1}
*
×
sk
→
{0,1}
p
,x:{0,1}
*
×
sk
→ꢀ
{0,1}
*
,cj表示加密文档dj。
[0032]
最后,数据拥有者将索引加密文档集c以及tag外包给云服务器。
[0033]
进一步的,所述数据用户搜索阶段,具体包括:
[0034]
假设查询的关键字是
[0035]
1)数据用户需要生成令牌bloom filter bfq由中的所有关键字构成,每个关键字由c个lsh函数处理。bfq′
(d
′
)和bfq″
(d
′
),d
′
∈{1,2,...,l}生成如下,r∈{0,1}
*
。
[0036][0037]
bloom过滤器bfq使用m1、m2和spk1,以与indexgen相反的方式进行加密 (
·
)如下:
[0038][0039]
然后设置
[0040]
数据用户向云服务提供商发送
[0041]
2)一旦收到云服务提供商将使用计算内积,如果bf
it
·
bfq≥thr,其中thr是的匹配的阈值,云服务器将匹配wi的行列表添加到预搜索结果和,返回值给数据用户。
[0042]
3)数据用户使用sk解密第一个节点n
i,0
,得到(π
sk
(wi),k
i,1
),它是下一个节占的密钥,然后依次解密为了验证tag
j,i
,我们需要得到vi,当w
ij
=1,v
ij
=1时。收集文档标识符idj∈d(wi),j∈{1,2,
…
,n}所有匹配的文件,我们只搜索与idj∈d(wi)相关第二级文件。
[0043]
数据用户需要生成
[0044]
1)为查询的关键字构造一个m元向量q,如果w
i,j
=1,则在所有位置设置q[j]=1,否则设置q[j]=0。
[0045]
2)将q扩展到其中k表示数据用户的访问角色。其次,生成一个二进制向量τ,其中τ中的a位被随机设置为1,左侧 (m
′‑
m-t)-a位保持为0。
[0046]
3)随机因子β≤1
×
10-b
,b=(1,2,3,
…
)被生成用来更改所有的相关分数,对β的要求是保证在缩小后,对于yi(x)可达到可能的最大匹配分数 max{βf
jt
·
q},j∈{1,
…
,n}。
[0047]
4)计算ρ:{0,1}m′
×
sk
→
{0,1}m′
。也被spk2的每个位分割,分割方法类似于构造中的分割方法。然后,数据用户发送方法。然后,数据用户发送给云服务器。
[0048]
云服务器收到数据用户的查询令牌后,计算文档fi和q之间的相关性分数,i∈(1,2,
…
,n);分为两个步骤:相关性分数计算和判断是否过界,定义如下:
[0049][0050]
然后,云服务器通过检查相关性分数是否远远超过最大值,即过界,来过滤掉该用户不可访问的文档信息;将max设置为该条件下的最大相关性分数,表示数据用户在查询中,能够获得的具有相关关键字的最高的tf-idf值,最大潜在相关性分数定义如下;
[0051][0052]
如果相关性分数满足以下不等式,则查询数据用户不可访问文档dj,其中作为判断是否过界的最大值;
[0053][0054]
进一步的,所述验证阶段,具体包括:
[0055]
date user从云服务器得到搜索结果后,验证查询关键字是否在链表中出现,即w
ij
是否为1,如果是,进行下一步操作;对进行验证,如果结果为真,则数据用户接受该结果;否则,拒绝该结果。
[0056]
进一步的,所述加密数据解密阶段,具体包括:
[0057]
数据用户通过计算d
top-k
←
decsk(c
top-k
)来解密c
top-k
。
[0058]
进一步的,所述加密数据更新阶段,具体包括:
[0059]
数据更新:索引动态更新包括两个方面:文档添加和文档删除;
[0060]
文档添加:如果数据拥有者希望将文档du添加到中,则更新代码uc设置为add。首先,数据拥有者需要从du中提取关键字wi(i∈[1,|du|]),然后,数据拥有者在中添加新的列表,添加索引,更新tag中对应的值,上传加密的文档集cu;
[0061]
文档删除:如果数据拥有者希望将文档du从中删除,则更新代码uc设置为del;首先,数据拥有者需要从du中提取关键字wi(i∈[1,|fu|]);然后,数据拥有者在中删除对应的列表,删除中对应的索引,更新tag中对应的值,并删除云上的文档。
[0062]
一种采用任一项所述方法的动态多关键字模糊排序搜索系统,其包括:
[0063]
数据拥有者:数据拥有者拥有一系列需要外包存储的明文数据或文件;但由于云服务器是半可信的,将敏感数据外包到云上之前需要对其进行加密操作;数据拥有者加密明文文件,并用从每个文件中提取出的关键字,利用私钥构造出可搜索的安全索引;数据拥有者将加密文件集和安全索引上传到云服务器;当数据拥有者想要删除或添加文件时,数据拥有者在本地生成更新令牌并将其发送到云服务器;
[0064]
数据用户:通常被认为是可信的实体,与数据拥有者共享密钥;当数据用户想检索感兴趣的关键字的加密文件时,利用关键字生成搜索令牌,并将其发送给云服务器;云服务器返回检索结果,数据用户可以验证返回结果的有效性,并对密文解密从而得到明文信息;
[0065]
云服务器:云服务器负责存储数据拥有者上传的加密文件集和安全索引;当接收到来自数据用户的搜索请求时,云服务器对安全索引执行搜索操作,并返回搜索结果;但云服务器是不可信赖的实体,可能会返回一些不正确的结果,因此数据用户需要能够验证从云服务器中得到的结果;此外,当云服务器接收到来自数据拥有者的更新令牌时,它能快速更新安全索引和相对应的密文数据。
[0066]
本发明的优点及有益效果如下:
[0067]
本发明设计了一种动态高效的保护数据隐私的多关键字排名的模糊搜索方案,利用了二级索引结构以提高加密数据的搜索效率,其搜索复杂性独立于文件集大小。将每个关键字生成一个索引,实现模糊匹配。通过使用tf-idf构建文档索引来实现更高的搜索精度实现排序搜索。据前期的调查所知,这是第一个同时实现所有这些功能的发明。
[0068]
本发明设计了由反向索引表和验证列表vl组成一阶安全索引,确保数据更新的高效性。基于正交链表,vl是单独的列表。对于每个关键字,本发明构造一个具有相同长度的链接列表,旨在隐藏每个关键字的频率。当需要添加或删除某些文件时,可以高效地放大或减少安全索引。由于的连通性和灵活性,可以显著提高更新效率。
附图说明
[0069]
图1是本发明提供优选实施例的系统模型图;
[0070]
图2是本发明的二级索引结构图。
[0071]
图3是本发明的第二级子索引结构图。
[0072]
图4是本发明的符号图。
具体实施方式
[0073]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
[0074]
本发明解决上述技术问题的技术方案是:
[0075]
下面结合附图1描述一下系统的框架。
[0076]
数据拥有者:数据拥有者拥有一系列需要外包存储的明文数据或文件。但由于云服务器是半可信的,将敏感数据外包到云上之前需要对其进行加密操作。数据拥有者加密明文文件,并用从每个文件中提取出的关键字,利用私钥构造出可搜索的安全索引。数据拥有者将加密文件集和安全索引上传到云服务器。当数据拥有者想要删除或添加文件时,数据拥有者在本地生成更新令牌并将其发送到云服务器。
[0077]
数据用户:通常被认为是可信的实体,与数据拥有者共享密钥。当数据用户想检索感兴趣的关键字的加密文件时,利用关键字生成搜索令牌,并将其发送给云服务器。云服务器返回检索结果,数据用户可以验证返回结果的有效性,并对密文解密从而得到明文信息。
[0078]
云服务器:云服务器负责存储数据拥有者上传的加密文件集和安全索引。当接收
到来自数据用户的搜索请求时,云服务器对安全索引执行搜索操作,并返回搜索结果。但云服务器是不可信赖的实体,可能会返回一些不正确的结果,因此数据用户需要能够验证从云服务器中得到的结果。此外,当云服务器接收到来自数据拥有者的更新令牌时,它能快速更新安全索引和相对应的密文数据。
[0079]
下面结合附图2-4对本发明的交易流程做进一步的详细描述,具体的包括以下模块和步骤:
[0080]
1、密钥生成:给定安全参数λ,数据拥有者生成他的私钥sk,它包含一个随机序列sk∈{0,1}
*
、两对可逆矩阵m1,m3,印两个个向量spk1∈{0,1}
l
、spk2∈{0,1}m′
,在该过程之后,该算法输出密钥 sk={sk,m1,m2,m3,m4,spk1,spk2};数据所有者使用sk加密索引,数据用户使用sk来生成搜索令牌。
[0081]
2、系统初始化:为了实现高效的数据更新,方案设计了一种二级索引结构该结构基于倒排索引和正向索引构成。第一级结构基于倒排结构和正交链表组成,用户可以在查询中找到每个关键字相对应的文件。第二阶段索引是正向索引,用户可以在查询中识别用户权限并计算出每个文档与查询之间的相关性得分。为了生成倒排索引和正向索引数据所有者同时将和初始化为空数组。
[0082]
对于的构造分为了两个步骤,在第一步骤中,实现的模糊匹配,对于关键字通过2-gram计数排序将其转换为26
×
26长的位向量,然后引入c个 lsh函数得到哈希值并映射到l-bit布隆过滤器bfi中,然后使用安全knn加密对bfi进行加密;该算法根据分割向量对bfi进行分割;spk1被分割为两个向量bfi′
和bfi″
。矩阵m1和m2加密这两个向量并输出输出
[0083]
在第二步骤中,构造的正交列表其中包括m行行列表和n列列表。行列表由一个头节点n
i,0
和n个其他节点组成,列列表与文档dj相关,由相应的m个节点组成。是索引节点存储结果用密钥k
i,j
∈{0,1}
*
计算f
sk
(k
i,j
),w
ij
∈{0,1}表示文件dj是否包含关键字wi,e
i,j
=g
sk
(k
i 1,j
), v:{0,1}
*
×
sk
→
{0,1}
*
,,
[0084]
对于每个关键字计算相应的头部节点n
i,0
←
enc
sk
((π
sk
(wi),k
i,1
), k
i,1
是的密钥。
[0085]
然后创建一个行列表计算节点
[0086]
对于每个文件对应于节点与此同时形成为列列表的第i 项。
[0087]
对于每个关键字wi,构造了一个相同长度的链表,目的是隐藏每个关键字的频率。当需要添加或删除某些文件时,云服务器可以快速找到与更新文件相关的索引节点,这样就可以方便快速地放大或缩小安全索引。由于是基于正交链表,可以显著提高更新效率。
[0088]
4、根据权利要求3所述的一种动态多关键字模糊排序搜索方法,其特征在于,第二
阶段的子索引构造具体为:
[0089]
由n个m位向量 (fj)
t
=(f
j1
,f
j2
,...,f
jm
)(f
ji
∈{0,1},i∈{0,1,...,m})构成,其中f
ji
的定义如下。
[0090][0091]
5)如果f
ji
=1,则将其替换为tfidf函数由每个关键字对应的tf-idf计算。否则,什么也不做。
[0092]
6)然后,引入多项式来识别用户搜索权限函数yj(x)。有num(num< m
′‑
m)个可用角色,表示数据用户的授权角色,角色,表示数据用户的授权角色,角色,表示数据用户的授权角色,表示yj(x)的对应系数。如果yj(x)=0,则表示数据用户已被授权,否则yj(x)>>max,max是最大可能的相关值,表示数据用户未经授权。将fj扩展为yi(x)的t个系数,表示为扩展为yi(x)的t个系数,表示为其中
[0093]
7)加入随机因子α和ω生成加密索引其中向量是l
′‑
l-t个随机数生成填充,α是扩展的一个随机正因素。请注意,眼从高斯分布,并且在每一轮都是新的。
[0094]
8)数据拥有者使用安全的knn加密对第二个索引进行加密。该算法先用ρ:{0,1}m′
×
sk
→
{0,1}m′
置换得到之后,该算法根据拆分向量spk2将拆分成两个向量。算法用m3和m4对这两个向量进行加密,然后输出
[0095]
tag是一个二维数组,每一个tag
j,i
存储关于第j个文件关于第i个关键字的认 证标签vi={v
ij
|i= 1,2,
…
,m;j=1,2,
…
,n},如果文档dj中包含wi,v
ij
=1。否则,v
ij
=0。π,x是 一个置换函数,π:{0,1}
*
×
sk
→
{0,1}
p
,x:{0,1}
*
×
sk
→
{0,1}
*
,cj表示加密文档dj。
[0096]
最后,数据拥有者将索引加密文档集c以及tag外包给云服务器。
[0097]
[0098][0099]
3、搜索:假设查询的关键字是
[0100]
1)数据用户需要生成令牌bloom filter bfq由中的所有关键字构成,每个关键字由c个lsh函数处理。bfq′
(d
′
)和bfq′
(d
′
),d
′
∈{1,2,...,l}生成如下,r∈{0,1}
*
。
[0101][0102]
bloom过滤器bfq使用m1、m2和spk1,以与indexgen相反的方式进行加密 (
·
)如下:
[0103][0104]
然后设置
[0105]
数据用户向云服务提供商发送
[0106]
2)一旦收到云服务提供商将使用计算内积,如果bf
it
·
bfq≥thr,其中thr是的匹配的阈值,云服务器将匹配wi的行列表添加到预搜索结果中,返回值给数据用户。
[0107]
3)数据用户使用sk解密第一个节点n
i,0,
得到(π
sk
(wi),k
i,1
),它是下一个节占的密钥,然后依次解密为了验证tag
j,i
,我们需要得到vi,当w
ij
=1,v
ij
=1时。收集文档标识符idj∈d(wi),j∈{1,2,
…
,n}所有匹配的文件,我们只搜索与idj∈d(wi)相关第二级文件。
[0108]
数据用户需要生成
[0109]
1)为查询的关键字构造一个m元向量q,如果w
i,j
=1,则在所有位置设置q[j]=1,否则设置q[j]=0。
[0110]
2)将q扩展到其中k表示数据用户的访问角色。其次,生成一个二进制向量τ,其中τ中的a位被随机设置为1,左侧 (m
′‑
m-t)-a位保持为0。
[0111]
3)随机因子β≤1
×
10-b
,b=(1,2,3,
…
)被生成用来更改所有的相关分数,对β的要求是保证在缩小后,对于yi(x)可达到可能的最大匹配分数 max{βf
jt
·
q},j∈{1,
…
,n}。
[0112]
4)计算ρ:{0,1}m′
×
sk
→
{0,1}m′
。也被spk2的每个位分割,分割方法类似于构造中的分割方法。然后,数据用户发送方法。然后,数据用户发送给云服务器。
[0113]
云服务器收到数据用户的查询令牌后,计算文档fi和q之间的相关性分数,i∈(1,2,
…
,n);分为两个步骤:相关性分数计算和判断是否过界,定义如下:
[0114][0115]
然后,云服务器通过检查相关性分数是否远远超过最大值,即过界,来过滤掉该用户不可访问的文档信息;将max设置为该条件下的最大相关性分数,表示数据用户在查询
中,能够获得的具有相关关键字的最高的tf-idf值,最大潜在相关性分数定义如下;
[0116][0117]
如果相关性分数满足以下不等式,则查询数据用户不可访问文档dj,其中作为判断是否过界的最大值;
[0118][0119]
[0120][0121]
4、验证:date user从云服务器得到搜索结果后,验证查询关键字是否在链表中出现,即w
ij
是否为1,如果是,进行下一步操作;对
进行验证,如果结果为真,则数据用户接受该结果;否则,拒绝该结果。
[0122]
5、解密:数据用户通过计算d
top-k
←
decsk(c
top-k
)(sk∈sk)来解密 c
top-k
。
[0123]
6、数据更新:在本发明中,索引动态更新包括两个方面:文档添加和文档删除。
[0124]
文档添加:如果数据拥有者希望将文档du添加到中,则更新代码uc设置为add。首先,数据拥有者需要从du中提取关键字wi(i∈[1,|du|])。然后,数据拥有者在中添加新的列表,添加索引,更新tag中对应的值,上传加密的文档集cu。
[0125]
文档删除:如果数据拥有者希望将文档du从中删除,则更新代码uc设置为del。首先,数据拥有者需要从du中提取关键字wi(i∈[1,|fu|])。然后,数据拥有者在中删除对应的列表,删除中对应的索引,更新tag中对应的值,并删除云上的文档。
[0126]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0127]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0128]
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。
转载请注明原文地址:https://tc.8miu.com/read-1078.html