CN110069946B - 一种基于sgx的安全索引系统 - Google Patents
一种基于sgx的安全索引系统 Download PDFInfo
- Publication number
- CN110069946B CN110069946B CN201910321123.8A CN201910321123A CN110069946B CN 110069946 B CN110069946 B CN 110069946B CN 201910321123 A CN201910321123 A CN 201910321123A CN 110069946 B CN110069946 B CN 110069946B
- Authority
- CN
- China
- Prior art keywords
- node
- index
- tree
- enclave
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000006870 function Effects 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims description 30
- 238000012795 verification Methods 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 9
- 238000012217 deletion Methods 0.000 claims description 9
- 230000037430 deletion Effects 0.000 claims description 9
- 238000005457 optimization Methods 0.000 claims description 8
- 238000012360 testing method Methods 0.000 claims description 8
- 230000009977 dual effect Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 230000004308 accommodation Effects 0.000 claims description 3
- 230000008901 benefit Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 244000035744 Hura crepitans Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000003643 water by type Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种基于SGX的安全索引系统,步骤为:用户通过使用索引关键字扩充数据值;将密钥插入到B+树中,B+树和扩充的数据值进行链接;在客户端通过安全连接,将客户端提供给enclave;客户端发送索引查询到服务器;enclave将来自不可信存储的B+树结构加载到enclave存储器中并对其进行解密;树从根节点开始遍历,从不可信任的存储中获取节点索引算法最终到达一组叶节点保存指针;使用指针从不可信任存储中获取加密值,并发送给客户端,客户端使用解密收到的文件。本发明实现了安全性、性能和功能三者之间的平衡,在性能和存储方面进行了很大的改善即使对大数据进行复杂的索引,索引时间也具有很大的优势。
Description
技术领域
本发明涉及一种加密数据的安全索引技术,具体为一种基于SGX的安全索引系统。
背景技术
随着计算机技术和互联网应用的迅速发展,数据和应用正几何级数的速度增长,人们对数据的存储需求也越来越大。在这种背景的推动下,云存储服务因使用方便、节约成本等优势受到了越来越多用户的欢迎。但这样用户便丧失了对数据的绝对控制,这不可避免的会引起了用户对其安全性的关注。目前保证数据机密性的主流方法是将数据进行加密。
云存储的数据量往往很大,因此取回数据的一个重要途径是通过关键字的索引。然而,加密了的数据增加了关键字索引的难度,同时,为密文数据指定明文关键字的方式也在一定程度上向不可信的服务商泄露了数据所有者的隐私。为了解决这个问题,需要研究针对密文数据的索引方法,在保证机密性和隐私性的同时,有效的索引到需要的数据。虽然目前国内外围绕密文数据索引技术已经存在一些研究成果,但在实际应用中这些机制和方法仍面临诸多挑战。
基于公钥的可索引加密方法最早由Boneh等人提出,采用身份加密(Identity-Based Encryption,IBE)技术来构造陷口并实现索引。Li等人使用谓词加密技术构建了一种支持多用户、可授权索引的公钥可索引加密方案。方案引入了可信第三方来产生索引陷门,效率较低,同时索引方法受文件类型的影响,限制了方案的应用场景。虽然基于公钥的可索引加密方法已经取得了较大进展,并且可以支持灵活的查询语法,但由于其均基于复杂性数学假设而构建,并且往往存在大量的双线性对操作,因此效率较低,不适用于云存储环境中大量数据的情形。
最早由Goldreich等人提出的Oblivious RAMs概念可从理论上解决在对称加密的远端密文数据上进行隐私关键字索引的问题,其理论模型是渐近高效的,但实际应用的效率很低,因为在方案的性能复杂度表示中存在着非常大的常量。Cast等人设计了一种动态可索引加密方法,可以对超大规模数据库进行有效的索引,可支持对包含数百亿条记录和关键字对的密文数据的索引。以上的研究内容均是针对单个关键字的索引方法,然而在实际应用中,单个关键字的索引结果往往很庞大,很难精确定位文件。为了提高索引效率,需要对多关键字索引方法进行研究。
发明内容
针对现有技术中单个关键字的索引结果庞大,很难精确定位文件导致索引效率低等不足,本发明要解决的问题是提供可一种实现安全性、性能和功能三者之间的平衡的基于SGX的安全索引系统。
为解决上述技术问题,本发明采用的技术方案是:
本发明一种基于SGX的安全索引系统,包括以下步骤:
1)将系统分为用户、系统客户端、验证平台、不可信任的SGX服务端以及服务器内可信任的SGX enclave五个角色;
2)用户通过使用索引关键字扩充数据值,并存储在伪随机位置;将密钥插入到用于构建索引关系的B+树中,B+树和扩充的数据值通过向指定相应值的随机位置的树叶添加指针进行链接;
3)在客户端使用SGX认证功能来认证enclave,通过安全连接,将客户端提供给enclave;
4)客户端发送索引查询到服务器,使用密钥进行随机加密用于所有索引查询;
5)enclave将来自不可信存储的B+树结构加载到enclave存储器中并对其进行解密;
6)树从根节点开始遍历,当索引到达任意一个节点的边缘时,如果该节点当前不在该enclave中,则将从不可信任的存储中获取该节点;
索引算法最终到达一组叶节点,该叶节点保存指向与查询匹配的数据值的指针,该代表索引结果的指针列表被传递给不可信任部分;
7)使用指针从不可信任存储中获取加密值,并发送给客户端,客户端使用解密收到的文件。
步骤2)中,用户通过使用索引关键字扩充数据值是采用多关键字密文索引,首先构造一个单关键字的动态方案,然后对其进行改进,采用CPA安全的对称加密方法来实现多关键字密文索引;
对B+树中的所有入口和指针、数组中的所有节点加密形式进行存储,使用伪随机函数和哈希函数的结果作为输入,使用异或运算来对数据进行加密;服务器在不解密数据的情况下对B+树进行更新。
多关键字密文索引的构建包括以下步骤:
201)初始化阶段
令F、G和P为三个伪随机函数,H1和H2为两个哈希函数;K=(K1,K2,K3),为用户生成的对称密钥;
针对用户的文件集合和倒排索引,对其中的每个关键字w∈w都构建一个节点,并且存储在搜索数组As中的随机位置,w为关键字集合;
定义节点Ni的结构为Ni=<idi,addrs(Ni-1),addrs(Ni+1)>,其中idi为文件的唯一标识,文件中包含对应的关键字,addrs(N)表示节点N在数组As中的位置,所有节点都使用进行异或加密,其中ri为储存在节点中的随机值,K3为伪随机函数P的密钥,数组As中未使用的节点都用随机比特进行填充;
初始化完成后,数组和索引节点作为加密索引,存储至服务器端;
202)索引阶段
对于每个关键字wi∈W,服务器使用作为键来在索引节点Ts中找到加密的指针,然后使用来解密得到的明文指针并定位到数组As中的节点,最后使用和储存在各自节点中的随机值r来解密整个B+树节点,进而得到针对关键字wi,的文件标识符集合Si;
对于一系列的索引结果S1,...,Sn,服务器计算出交集I并输出作为最终结果;
203)文件的动态更新
设置一个删除数组Ad,用于存储以文件索引为结构的B+树;
在删除数组Ad中,对于每个文件f,都存在一个B+树Lf,其中有#f个节点(D1,...,D#f),每个节点Di都与一个关键字wi相关联,并且在索引数组的B+树中存在着一个对偶节点N;设N-1、N+1分别为节点N在B+树中的前一个和后一个节点,则节点Di的结构定义为:
Di=<addrd(Di+1),addrd(N′-1),addra(N′+1),addrs(N),addrs(N-1),addrs(N+1)>
其中记号N′i表示节点Ni的对偶节点,即指在删除数组中的某个节点D;记号addrd(D)表示节点D在数组Ad中的位置;
步骤2)中,对于超出SGX enclave容纳范围并造成性能开销的B+树,采用内存空间复杂度为O(1)的B+树存储结构,仅加载遍历B+树所需的节点,优化不可信任部分和enclave之间的沟通瓶颈,执行基准测试和算法工程,确定并最大限度地减少运行时间消耗任务。
还包括步骤8),基于SGX的安全优化考虑,利用多重集合散列作为构建模块,来防止将错误的节点传递到enclave、将所有请求的节点传递到enclave以及不给用户传递所有的结果,仅保留O(1)个附加存储。
还包括:基于SGX的安全优化考虑,B+树的构造按以下方式改变:根节点和每个内部节点x将子标识x.chIdi存储在指针x.pi旁边;每个叶节点x在指针x.pi旁边存储明文值的散列x.hashi;根节点root.id的id与设置阶段建立的安全通道中的SKk一起发送到区域。
还包括:
对于可信任部分收到的每个内部节点x,将解密节点并检查x.id是否与root.id匹配;如果匹配,则创建一个新的随机数;
否则,从不可信任部分收到一个随机数;如果不存在随机数并且除根节点之外的任何节点都已通过,则处理将中止,阻止不将根节点传递到enclave。
还包括:对于每个传入节点x,当期待传入的节点数为0并将每个已接收节点的最后id添加后,可信任部分Trusted将期待节点哈希值与已接收节点哈希值进行比较,如果这些明文值的散列x.hashi不匹配,则终止并删除随机数,从而避免将错误的节点传递到enclave以及不将所有请求的节点传递到enclave;否则,将x.hashi添加到结果哈希值中,以索引上一轮搜索中找到的每个结果,并将结果与HMAC一起返回到结果哈希值;
不可信任部分Untrusted将HMAC添加到客户端响应中,解密之后,客户端根据接收到的值计算多重散列值,创建一个HMAC并将其与接收到的HMAC进行比较,以防止不给用户传递所有的结果。
本发明具有以下有益效果及优点:
1.本发明利用SGX的保护特性实现了安全性、性能和功能三者之间的平衡,比较目前最快的基于软件的支持范围查询方案,本发明在性能和存储方面进行了很大的改善,与最新的基于硬件的方案相比,本发明在安全性和可扩展性方面进行了改进,因此无论基于软件还是硬件,本发明的解决方案更胜一筹,即使对大数据进行复杂的索引,索引时间也具有很大的优势。
2.本发明可以在很短的时间内进行快速索引,并且可以扩展到几乎任意大的索引;在侧信道攻击方面,只泄露访问模式,受SGX硬件保护的可信任代码非常小,暴露的攻击面很小。
3.本发明从效率、安全性、软件完整性以及有使用舒适度等多方面考虑,都具有很好的市场应用前景,将整个系统置于攻击之中反复测试,确保其在应用时可以保证万无一失。
4.与现有的索引系统相比,本发明实现了非常小的代码和内存占用量,但仍可扩展到几乎无限的搜索索引大小,即索引大小仅受通用非安全硬件资源的限制。
附图说明
图1为本发明涉及的倒排索引实例图;
图2为本发明涉及的索引结构示意图;
图3为本发明基于SGX的安全索引系统总体结构图;
图4为本发明基于SGX的安全索引系统软件架构图;
图5为本发明基于SGX的安全索引系统数据流传输示意图;
图6为本发明中通信开销与关键字数量之间的关系图示;
图7为本发明中索引时间与关键字数量之间的关系图示;
图8为本发明中证明时间与关键字数量之间的关系图示;
图9为本发明中验证时间与关键字数量之间的关系图示。
具体实施方式
下面结合说明书附图对本发明作进一步阐述。
本发明一种基于SGX的安全索引系统,包括以下步骤:
1)将系统分为用户、系统客户端、验证平台、不可信任的SGX服务端以及服务器内可信任的SGX enclave五个角色;
2)用户通过使用索引关键字扩充数据值,并存储在伪随机位置;将密钥插入到用于构建索引关系的B+树中,B+树和扩充的数据值通过向指定相应值的随机位置的树叶添加指针进行链接;
3)在客户端使用SGX认证功能来认证enclave,通过安全连接,将客户端提供给enclave;
4)客户端发送索引查询到服务器,使用密钥进行随机加密用于所有索引查询;
5)enclave将来自不可信存储的B+树结构加载到enclave存储器中并对其进行解密;
6)树从根节点开始遍历,当索引到达任意一个节点的边缘时,如果该节点当前不在该enclave中,则将从不可信任的存储中获取该节点;
索引算法最终到达一组叶节点,该叶节点保存指向与查询匹配的数据值的指针,该代表索引结果的指针列表被传递给不可信任部分;
7)使用指针从不可信任存储中获取加密值,并发送给客户端,客户端使用解密收到的文件。
步骤2)中,用户通过使用索引关键字扩充数据值是采用多关键字密文索引,首先构造一个单关键字的动态方案,然后对其进行改进,采用CPA安全的对称加密方法来实现多关键字密文索引;
对B+树中的所有入口和指针、数组中的所有节点加密形式进行存储,使用伪随机函数和哈希函数的结果作为输入,使用异或运算来对数据进行加密;服务器在不解密数据的情况下对B+树进行更新。
由于多数密文索引方法均使用对称加密来提高方案的性能,因此本发明也继承这一思路,采用CPA安全的对称加密方法来实现多关键字密文索引。
由于不可信服务器的存在,为了防止信息的泄露,表中的所有入口和指针、数组中的所有节点都应该以加密形式进行存储。本发明使用伪随机函数和哈希函数的结果作为输入,使用异或运算来对数据进行加密。异或运算的同态性质使得服务器可以在不解密数据的情况下对其进行更新。
多关键字密文索引的构建包括以下步骤:
201)初始化阶段
令F、G和P为三个伪随机函数,H1和H2为两个哈希函数;K=(K1,K2,K3),为用户生成的对称密钥;
定义节点Ni的结构为Ni=<idi,addrs(Ni-1),addrs(Ni+1)>,其中idi为文件的唯一标识,文件中包含对应的关键字;addrs(N)表示节点N在数组As中的位置;链表Lw中的所有节点都使用进行异或加密,其中ri为储存在节点中的随机值,K3为伪随机函数P的密钥;数组As中未使用的节点都用随机比特进行填充;
初始化完成后,数组和索引节点作为加密索引,存储至服务器端;
202)索引阶段
对于每个关键字wi∈W,服务器使用作为键来在查找表Ts中找到加密的指针,然后使用来解密得到的明文指针并定位到数组As中的节点,最后使用和储存在各自节点中的随机值r来解密整个链表节点,进而得到针对关键字wi,的文件标识符集合Si;如果不区分文件和文件标识符的话,那么Si就等价于
对于一系列的索引结果S1,...,Sn,服务器计算出交集I并输出作为最终结果;
203)文件的动态更新
设置一个删除数组Ad,用于存储以文件索引为结构的链表;
在删除数组Ad中,对于每个文件f,都存在一个链表Lf,其中有#f个节点(D1,...,D#f),每个节点Di都与一个关键字wi相关联,并且在索引数组的链表中存在着一个对偶节点N;设N-1、N+1分别为节点N在链表中的前一个和后一个节点,则节点Di的结构定义为:
Di=<addrd(Di+1),addrd(N′-1),addrd(N′+1),addrs(N),addrs(N-1),addrs(N+1)>
其中记号N′i表示节点Ni的对偶节点,即指在删除数组中的某个节点D;记号addra(D)表示节点D在数组Ad中的位置;
类似的,对于每个文件f,删除表Td中以为键,存储了指向链表Lf头节点的指针,指针使用进行异或加密。当进行增加或删除文件时,用户生成增加令牌τa和删除令牌τd并发送给用户。服务器可以使用令牌中的信息直接对这些指针进行更新,不需要解密。
步骤2)中,对于超出SGX enclave容纳范围并造成性能开销的B+树,采用内存空间复杂度为O(1)的B+树存储结构,仅加载遍历B+树所需的节点,优化不可信任部分和enclave之间的沟通瓶颈,执行基准测试和算法工程,确定并最大限度地减少运行时间消耗任务。
为了避免存储数据的B+树过于庞大而超出SGX enclave容纳范围,并造成严重的性能开销,本发明设计了内存空间复杂度为O(1)的B+树存储结构。
如果所有数据都在enclave内存储和处理,这些值可能非常大,所以数据完全传输到enclave可能会导致严重的性能开销。虽然enclave内受保护内存的大小有限,但将值存储在enclave之外没有安全隐患,因为这些值是使用经过验证的IND-CCA安全加密方案加密的,并且它们以随机顺序存储。不可信部分只接收来自可信部分值的指针,并自己从内存或磁盘加载它们。
与其将所有节点加载到enclave中,本发明的主要技术思想是仅加载遍历树所需的节点。问题在于优化不可信任部分和enclave之间的沟通瓶颈,所以本发明执行了基准测试和算法工程,以确定并最大限度地减少运行时间消耗任务,例如在不可信任部分和enclave之间切换。本发明的结构的决定性优势是,enclave内的所需存储空间对于任意大小的树是O(1)。但是所有节点都在主内存或磁盘内加密存储,因此必须由该enclave进行解密。这也会导致比第一个构造稍大的泄漏,即节点上的细粒度访问模式而不是页面级别。
Intel SGX(Intel Software Guard Extension)是Intel在2013年发布出来的最新一代处理器基于Skylake架构的新技术,用于增强软件的安全性。其主要功能是在计算机平台上提供一个(类似“沙盒”)可信的空间,保障用户关键代码和数据机密性和完整性。
在支持SGX的平台上,程序可以分为两部分,一部分为不可信任部分,另一部分为可信任部分,称为内存隔离。可信任部分称为SGX术语中的enclave,位于物理RAM的专用部分。SGX硬件对这部分内存执行额外的保护,统上的所有其他软件(包括OS,管理程序,固件和系统管理模式(SMM)中的代码等特权软件)都无法访问enclave存储器。
SGX具有远程证明功能,可以验证在远程系统上正确创建enclave。在enclave创建期间,测量加载到enclave中的初始代码和数据。这种测量可以提供给外部方来证明enclave的正确创建。测量的真实性以及测量源自良性enclave的事实由SGX的认证功能提供的签名保证(详情参见[4]),此签名由SGX的一个组件提供,称为引用区(QE)。QE只接受来自硬件和硬件的测量结果,确保只测量正确的enclave。此外,远程认证功能允许在外部方和enclave之间建立安全通道。
文件集合f和倒排索引δ为初始输入。与文件索引不同的是,倒排索引是一种以关键字为起始的索引结构。每个关键字后面都存在一组包含该关键字的文件集合。如图1所示,显示了一个简单的倒排索引的例子。本发明假定每个文件所包含的关键字都是预先选定的。主要索引结构如图2所示。
图2显示了基于图1中倒排索引的例子所生成的索引结构。其中,查找表包含了系统中的所有关键字,同时查找表中的每个关键字都指向索引数组中的一个链表。而在索引数组中,元素是以“文件/关键字”对的形式出现的,每个元素都是一个唯一的“文件/关键字”对,并通过以关键字为引导的链表进行组织。例如,对于关键字w3,在查找表中的值为2,即指向了索引数组中位置为2的节点。位置为2的节点中有一个指针指向位置7,位置7节点的指针指向了位置0,然后结束遍历。通过对关键字w3的链表的遍历,所有包含关键字w3的文件都可以被找到。在索引数组中,所有节点都存储在随机的位置。
为了实现高效的动态文件更新,本发明同时构造了删除表和删除数组。这与查找表和查找数组的工作方式相同,唯一区别是在构造时采用了文件索引,而不是倒排索引。因此其中的链表都是以文件所引导,这使得文件的增加和删除更加高效。虽然在删除数组中,节点元素的结构与索引数组中的不同,但同样也是“文件/关键字”对的形式,因此两个数组中的元素存在着一一对应关系,这样的一一对应的节点下文中称为“对偶节点”。
基于SGX的安全索引系统总体结构如图3所示。又如图5所示,步骤1)将基于SGX的安全索引系统主要分为五个角色,分别是用户、系统客户端、验证平台、系统服务端和SGXenclave,其中:
(1)用户:文件数据的拥有者,用户通过身份认证后,进行上传文件、配置索引信息和索引文件等所需操作。
(2)系统客户端:用户与安全索引系统交互的工具,用户通过使用客户端发起一系列请求,完成身份认证、索引文件、文件验证等功能。
(3)验证平台:提供完整性验证、防伪验证并更新认证根,保证用户索引的文件完整,而且用户上传的文件不会被伪造,只有认证都通过,系统才让用户进行正常的文件索引、下载文件等功能。
(4)系统服务器:对用户上传的文件和索引配置进行存储,并生成认证信息,在文件认证成功后,将文件传到客户端显示出来。
(5)SGX enclave:对用户上传的文件和索引配置进行加密,并送至服务器进行存储,把用户要下载的文件从不可信的服务器找到并取出解密。
步骤2)中,用户通过使用(索引)索引关键字来扩充数据值来准备其数据值。这些值存储在伪随机位置。然后将密钥插入到B+树中,并且所有节点的存储顺序也是伪随机的。树和值通过向指定相应值的随机位置的树叶添加指针来链接。值可以是任何数据,例如关系数据库中的记录或其他数据库类型中的文件/文档。然后,客户端用密钥加密树的所有节点,并用加密所有数据值。它在云中的不可信任的服务器上部署加密的B+树和加密值。
步骤3)中,在客户端和enclave之间建立安全连接。客户端使用SGX认证功能来认证enclave,通过这个安全连接,客户端将SKk提供给enclave,这一步完成了本发明的设置,该方案只需要执行一次。即使当enclave被卸载时,例如由于重新启动,状态(包括SKk)也可以被安全地存储并从本地存储器恢复。
步骤4)中,客户端可以发送(索引)索引查询到服务器。使用密钥SKk进行随机加密用于所有索引查询。因此,不可信任的服务器无法了解任何关于该查询的信息,即使之前发送过相同的查询。当查询到达enclave时,SKk用于解密查询。
步骤5)中,enclave将来自不可信存储的B+树结构(树节点,但没有值)加载到enclave存储器中并对其进行解密。
步骤6)中,只有一部分树节点被加载到enclave中,树从根节点开始遍历,当索引到达某个节点的边缘时,该节点当前不在该enclave中,它将从不可信任的存储中获取。在这两种情况下,索引算法最终都会到达一组叶节点,该节点保存指向与查询匹配的数据值的指针。这个代表索引结果的指针列表被传递给非信任部分。除了结果集的基数之外,不可信任的部分不会从该交互中学到任何东西,因为这些值是以随机顺序存储的。
步骤7)中,索引的结果可以被进一步处理,例如,结合额外的SQL操作员,在服务器的SGX enclave中进行处理。
本发明还包括步骤8),基于SGX的安全优化考虑,利用多重集合散列(multiset散列)作为构建模块,来防止将错误的节点传递到enclave、将所有请求的节点传递到enclave以及不给用户传递所有的结果,仅保留O(1)(算法的空间复杂度的表示)个附加存储。
步骤7)为了完成端到端的安全索引,本发明使用指针从非信任存储中获取加密值并将它们发送给客户端,客户端使用SKv,解密收到的文件。明文数据值在服务器上不可用。使用强大的标准加密方法RSA-CTR进行加密,并且从不在服务器上解密,甚至不在SGXenclave内部解密。解密数据值的密钥只有用户知道。
如图4所示,本发明软件架构设计分为五个层次,应用层、接口层、逻辑层、网络层以及存储层。
(1)应用层
应用层通过客户端提供与用户交互的界面,通过调用接口层提供的接口与网络层进行通信,进而完成用户的操作,通信的关键数据采用RSA-CTR加密,防止用户的隐私被他人窃取。
(2)接口层
接口层包含了安全索引系统提供的文件上传下载接口,本地认证接口,文件索引和索引设置接口,SGX提供的远程认证接口。上层的客户端通过调用接口层提供的接口使用本系统的功能。
(3)逻辑层
逻辑层在本系统中作为处理业务逻辑的模块,它是由部署在安全索引系统上的一系列功能函数组成。安全索引系统为上层提供了可调用的函数,应用层通过客户端对外提供的各种接口调用安全索引系统来上传下载文件,索引文件等操作。其本质上是运行在安全索引系统上的可执行代码段,在一定程度上代替了中心化服务器的逻辑处理模块,而且基于索引系统的特征,业务处理的流程对用户是透明的,进一步增加了本系统的可靠性。
(4)网络层
网络层采用的是基于端到端的体系架构,既有端到端的安全索引网络,也有中心服务器为辅。
(5)存储层
存储层通过对用户上传的文件进行匿名加密保存形成文件存储库,通过对索引信息构建存储结构、生成验证信息并加密存储形成索引信息库。
步骤8)中,基于SGX的安全优化考虑,B+树的构造按以下方式改变:根节点和每个内部节点x将子标识x.chIdi存储在指针x.pi旁边;每个叶节点x在指针x.pi旁边存储明文值的散列x.hashi;根节点root.id的id与设置阶段建立的安全通道中的SKk一起发送到区域。
对于可信任部分收到的每个内部节点x,将解密节点并检查x.id是否与root.id匹配;如果匹配,则创建一个新的随机数;
否则,从不可信任部分收到一个随机数;如果不存在随机数并且除根节点之外的任何节点都已通过,则处理将中止,阻止不将根节点传递到enclave;
对于每个传入节点x,当期待传入的节点数为0并将每个已接收节点的最后id添加后,可信任部分Trusted将期待节点哈希值与已接收节点哈希值进行比较,如果这些明文值的散列x.hashi不匹配,则终止并删除随机数,从而避免将错误的节点传递到enclave以及不将所有请求的节点传递到enclave;否则,将x.hashi添加到结果哈希值中,以索引上一轮搜索中找到的每个结果,并将结果与HMAC一起返回到结果哈希值;
不可信任部分Untrusted将HMAC添加到客户端响应中,解密之后,客户端根据接收到的值计算多重散列值,创建一个HMAC并将其与接收到的HMAC进行比较,以防止不给用户传递所有的结果。
由于SGX的保护,攻击者无法直接进入enclave。但是,攻击者可能通过潜在渠道提取敏感信息。具体来说,攻击者的目的是学习代表索引数据之间顺序关系的B+树结构,然后对结构进行攻击,可能的攻击形式有(所有这些偏差确实会影响协议的正确性,但不影响安全性):
(1)首先不将根节点传递到enclave,
(2)将错误的节点传递到enclave
(3)不将所有请求的节点传递到enclave,
(4)不将所有结果给用户。
本发明利用所谓的multiset散列作为构建模块来防止(2)-(4),仅有O(1)个附加存储。多重集合散列的属性是:将多个值散列为固定大小的位串,可以增量和高效地添加元素,输入的顺序可以是任意的,并且对于两个多集散列有效的相等性检查。如果哈希是通过相同元素计算的(独立于顺序),则两个多集散列相等。作为一个具体的例子,来自文献[22]的MSet-XOR-Hash可以用作多重散列。
B+树的构造按以下方式改变:根节点和每个内部节点x将子标识x.chIdi存储在指针x.pi旁边;每个叶节点x在指针x.pi旁边存储明文值的散列x.hashi。根节点root.id的id与设置阶段建立的安全通道中的SKk一起发送到区域。
对于Trusted收到的每个节点x,它将解密节点并检查x.id是否与root.id匹配。如果是这样,它会创建一个新的随机数。否则,它期望从Untrusted收到一个随机数。如果不存在随机数并且除根节点之外的任何节点都已通过,则处理将中止,这阻碍了(1)。
对于每个传入节点,期待传入的节点数都会减少。当期待传入的节点数为0并将每个已接收节点的最后id添加后,Trusted将期待节点哈希值与已接收节点哈希值进行比较,如果这些散列不匹配,它不会从Untrusted接收为正确的节点,会终止并删除随机数。因此,保证它遍历所有可能包含合格结果的节点,从而避免(2)和(3)。否则,它会将x.hashi添加到结果哈希值中,以查找上一轮搜索中找到的每个结果,并将结果与HMAC一起返回到结果哈希值。Untrusted将HMAC添加到客户端响应中,解密之后,客户端会根据接收到的值计算多重散列值,创建一个HMAC并将其与接收到的HMAC进行比较,HMAC比较可以防止(4)。
采用基于双线性映射累加器的防伪机制对本发明进行安全性分析,表明本发明具有不可伪造性。对于敌手来说,针对伪造的索引结果,应是无法生成正确有效的证据的。
如果存在一个PPT敌手A使得ForgeA(k)=1,那么就存在一个模拟器S,有能力攻破以下至少一个安全性假设:
(1)哈希函数H3的抗碰撞性;
(2)双线性q-SDH假设。
假设在执行针对关键字集合W的索引算法后,输出一个文件标识符集合I′≠IW和一个有效的证明π。这意味着该证明π={T,S,C}通过了验证算法中的所有验证,即敌手A成功的进行了伪造。按照步骤来划分,可以将伪造分为以下三种情况:
显而易见,如果I′≠IW并且证明π能通过验证的话,那么一定属于这三种伪造情况中的其中一种。实际上,对于一个模拟器S来说,如果类型I伪造发生,那么S可以攻破哈希函数H3的抗碰撞性;如果类型II或类型III伪造发生,那么S可以攻破双线性q-SDH假设。具体实施细节为:
(1)类型I伪造发生时
(2)类型II伪造发生时
敌手通过了验证算法中的步骤(b)意味着以下等式成立:
其中,因式(s+xi)并不能整除(s+id1)(s+id2)...(s+idq)。因此存在一个次为q-1的多项式Q(s)和一个常数c≠0,使得:
(s+id1)(s+id2)...(s+idq)=Q(s)(s+xj)+c
因此有:
经过变形后,最终可以得到:
这说明模拟器S可以借助敌手的输出来在多项式时间内解决双线性q-SDH问题的一个实例。这违反了双线性q-SDH假设。
(3)类型III伪造发生时
敌手通过了验证算法中的步骤(c)意味着以下等式成立;
因此模拟器S可以很容易的计算:
从而找到双线性q-SDH问题的一个实例的解。这同样违反了双线性q-SDH假设。
综上所述,如果敌手可以伪造出一个有效的证据,那么就存在一个模拟器,可以攻破至少其中一个假设。因此,对于所有PPT敌手A来说,以下概率:
Pr[ForgeA(k)=1]≤negl(k)
其中negl(k)是一个以安全参数k为输入的可忽略函数。因此本节所提出的多关键字索引方案是不可伪造的。
本实施例在基本功能实现的基础上,对系统性能进行测试并对测试结果进行分析。本实施例在测试时使用安然公司邮件数据集作为测试数据集,版本为2015年5月7日,来源为https://www.cs.cmu.edu/~enron/。在邮件集中随机选取1000份邮件作为测试文件集合,文件名每个单词作为关键字。
以下为索引加密方案的比较。
Song等人介绍了用于单个明文的第一种可索引的加密方案。为了提高性能,Goh和Curtmola等人引入了加密(倒排)索引。但是,这些加密方案只能索引关键字相等而不能范围索引。
下表为范围可索引加密方案的比较。其中,n是密钥的数量,D是明文域的大小,R是查询范围的大小。
支持范围查询的可索引加密方案很少见。上表中显示了不同的可索引加密方案和其他支持范围查询的方案的比较。请注意,所有现有的范围可索引的加密方案都泄露了访问模式,包括本发明的。Boneh和Waters的第一个范围可索引方案对每个条目进行加密,使每个条目在明文域的大小上线性化。Shi等人提出了第一个对数域中的对数存储大小的方案,其安全模型(匹配揭示)比标准的可索引加密弱一些。这种构建基于内部产品谓词加密,由Shen等人实现完全安全。所有这些方案都具有线性索引时间。
Lu将范围可索引的加密从构建到索引,从而启用对数索引时间。但是加密倒排索引树揭示了明文的顺序,因此只有保序加密才是安全的。
本发明完成了Lu实现的需要几秒或几分钟来进行单个范围索引,但是安全参数比本发明的弱得多。因此,本发明不仅改进了渐近索引时间,而且更重要的是减少了常量,以便将应用程序打开到更大的数据集。
方案的通信开销主要由文件数量和证明π的大小来决定。当从总数t个不同的关键字中同时索引n个关键字时,通信的数据规模为O(m+nlogt),其中m为索引结果中的文件数量。
在实验中,文件的大小仅考虑文件标识符id(f)的大小,而不是文件本身的大小。这是因为在索引和验证阶段,使用id(f)即可完全代表该文件,包括对结果的验证。用户可在验证通过后的其他某个时刻选择让服务器发送指定标识符的密文文件本身,因此在方案中并不包括这一步骤。
通信开销被分为了两个部分:文件集合的大小和证明的大小。图6表明了通信开销与索引时使用的关键字数量之间的关系。当索引时使用的关键字数量递增时,索引结果所占用的体积变得越来越小,并趋近于0。这是因为采用的关键字越多,符合条件的索引结果越少。在这种情况下,影响到通信开销的主要因素是对结果的证明数据,即O(nlogt)。而由于CS方案仅能对单关键字进行索引和证明,因此关键字越多,需要传回至用户端的数据也就越大。
服务器端的计算开销可以分为索引开销和证明开销。令N为整个关键字倒排索引的大小,则理论上服务器端的渐近运行时间为在实际运行中,服务器端的关键计算过程是群元素的指数计算,其被用于计算子集证据和完备性证据。
图7显示了索引时所使用的关键字个数与服务器的索引用时之间的关系。与预期结果一样,索引时间与关键字个数呈线性关系。本节方案在索引用时中略高于CS方案,因为存在额外的操作,例如交集运算。然而,在图8所示的证明用时与关键字个数的关系中可以看到,本节方案计算开销比CS方案大很多。这是由于方案中采用了大量的群元素指数运算。
本发明方案在进行证明时,主要的计算时间都用在了群元素的指数运算和配对运算上。由于这些计算的效率与所选用的曲线参数和配对算法有很大关系,因此随着参数和算法的不断优化,其效率可以进一步得到提升。此外,服务端的算法还可以进行一些实现方面的优化,从而可以大大降低证明阶段所花费的时间。例如对集合证据使用多线程来计算,和使用预先计算好的Pi和等。为了忠实的反映方案的原始执行效率,本节在实验中并未采用任何优化方法,而是让服务端每次都以单线程完整的进行所有的计算步骤。
运行于用户端的验证算法的渐近运行时间为O(m+nlogt)。与服务端的索引和证明时间相比,用户端的计算开销非常小。图9显示了关键字个数与验证所有证明所用时间的关系。本发明的方案需要额外验证交集证据,因此计算开销大于CS方案。然而,在验证结束后,CS方案需要在用户端进行额外的交集运算,这在本发明方案中是不需要的。
本发明提供了一种使用硬件支持在加密数据上进行多关键字索引的方法,使其可以在加密云存储中部署为安全索引。本发明解决方案与现有的基于软件和硬件的方法相比更胜一筹。即使对大数据进行复杂的索引,本发明的索引时间也具有很大的优势,并且可以扩展到几乎任意大的索引。本发明只泄露访问模式,并且受SGX硬件保护的信任代码非常小,暴露的攻击面很小。
Claims (6)
1.一种基于SGX的安全索引系统,其特征在于包括以下步骤:
1)将系统分为用户、系统客户端、验证平台、不可信任的SGX服务端以及服务器内可信任的SGX enclave五个角色;
2)用户通过使用索引关键字扩充数据值,并存储在伪随机位置;将密钥插入到用于构建索引关系的B+树中,B+树和扩充的数据值通过向指定相应值的随机位置的树叶添加指针进行链接;
3)在客户端使用SGX认证功能来认证enclave,通过安全连接,将客户端提供给enclave;
4)客户端发送索引查询到服务器,使用密钥进行随机加密用于所有索引查询;
5)enclave将来自不可信存储的B+树结构加载到enclave存储器中并对其进行解密;
6)树从根节点开始遍历,当索引到达任意一个节点的边缘时,如果该节点当前不在该enclave中,则将从不可信任的存储中获取该节点;
索引算法最终到达一组叶节点,该叶节点保存指向与查询匹配的数据值的指针,该代表索引结果的指针列表被传递给不可信任部分;
7)使用指针从不可信任存储中获取加密值,并发送给客户端,客户端使用解密收到的文件;
步骤2)中,用户通过使用索引关键字扩充数据值是采用多关键字密文索引,首先构造一个单关键字的动态方案,然后对其进行改进,采用CPA安全的对称加密方法来实现多关键字密文索引;
对B+树中的所有入口和指针、数组中的所有节点加密形式进行存储,使用伪随机函数和哈希函数的结果作为输入,使用异或运算来对数据进行加密;服务器在不解密数据的情况下对B+树进行更新;
多关键字密文索引的构建包括以下步骤:
201)初始化阶段
令F、G和P为三个伪随机函数,H1和H2为两个哈希函数;K=(K1,K2,K3),为用户生成的对称密钥;
针对用户的文件集合和倒排索引,对其中的每个关键字w∈w都构建一个节点,并且存储在搜索数组As中的随机位置,w为关键字集合;
定义节点Ni的结构为Ni=<idi,addrs(Ni-1),addrs(Ni+1)>,其中idi为文件的唯一标识,文件中包含对应的关键字,addrs(N)表示节点N在数组As中的位置,所有节点都使用进行异或加密,其中ri为储存在节点中的随机值,K3为伪随机函数P的密钥,数组As中未使用的节点都用随机比特进行填充;
初始化完成后,数组和索引节点作为加密索引,存储至服务器端;
202)索引阶段
对于每个关键字wi∈W,服务器使用作为键来在索引节点Ts中找到加密的指针,然后使用来解密得到的明文指针并定位到数组As中的节点,最后使用和储存在各自节点中的随机值r来解密整个B+树节点,进而得到针对关键字wi,的文件标识符集合Si;
对于一系列的索引结果S1,...,Sn,服务器计算出交集I并输出作为最终结果;
203)文件的动态更新
设置一个删除数组Ad,用于存储以文件索引为结构的B+树;
在删除数组Ad中,对于每个文件f,都存在一个B+树Lf,其中有#f个节点(D1,...,D#f),每个节点Di都与一个关键字wi相关联,并且在索引数组的B+树中存在着一个对偶节点N;设N-1、N+1分别为节点N在B+树中的前一个和后一个节点,则节点Di的结构定义为:
Di=<addrd(Di+1),addrd(N′-1),addrd(N′+1),addrs(N),addrs(N-1),addrs(N+1)>
其中记号N′i表示节点Ni的对偶节点,即指在删除数组中的某个节点D;记号addrd(D)表示节点D在数组Ad中的位置;
2.根据权利要求1所述的基于SGX的安全索引系统,其特征在于:对于步骤2)中,对于超出SGX enclave容纳范围并造成性能开销的B+树,采用内存空间复杂度为O(1)的B+树存储结构,仅加载遍历B+树所需的节点,优化不可信任部分和enclave之间的沟通瓶颈,执行基准测试和算法工程,确定并最大限度地减少运行时间消耗任务。
3.根据权利要求1所述的基于SGX的安全索引系统,其特征在于:还包括步骤8),基于SGX的安全优化考虑,利用多重集合散列作为构建模块,来防止将错误的节点传递到enclave、将所有请求的节点传递到enclave以及不给用户传递所有的结果,仅保留O(1)个附加存储。
4.根据权利要求3所述的基于SGX的安全索引系统,其特征在于还包括:基于SGX的安全优化考虑,B+树的构造按以下方式改变:根节点和每个内部节点x将子标识x.chIdi存储在指针x.pi旁边;每个叶节点x在指针x.pi旁边存储明文值的散列x.hashi;根节点root.id的id与设置阶段建立的安全通道中的SKk一起发送到区域。
5.根据权利要求4所述的基于SGX的安全索引系统,其特征在于还包括:
对于可信任部分收到的每个内部节点x,将解密节点并检查x.id是否与root.id匹配;如果匹配,则创建一个新的随机数;
否则,从不可信任部分收到一个随机数;如果不存在随机数并且除根节点之外的任何节点都已通过,则处理将中止,阻止不将根节点传递到enclave。
6.根据权利要求4所述的基于SGX的安全索引系统,其特征在于还包括:
对于每个传入节点x,当期待传入的节点数为O并将每个已接收节点的最后id添加后,可信任部分Trusted将期待节点哈希值与已接收节点哈希值进行比较,如果这些明文值的散列x.hashi不匹配,则终止并删除随机数,从而避免将错误的节点传递到enclave以及不将所有请求的节点传递到enclave;否则,将x.hashi添加到结果哈希值中,以索引上一轮搜索中找到的每个结果,并将结果与HMAC一起返回到结果哈希值;
不可信任部分Untrusted将HMAC添加到客户端响应中,解密之后,客户端根据接收到的值计算多重散列值,创建一个HMAC并将其与接收到的HMAC进行比较,以防止不给用户传递所有的结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910321123.8A CN110069946B (zh) | 2019-04-19 | 2019-04-19 | 一种基于sgx的安全索引系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910321123.8A CN110069946B (zh) | 2019-04-19 | 2019-04-19 | 一种基于sgx的安全索引系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110069946A CN110069946A (zh) | 2019-07-30 |
CN110069946B true CN110069946B (zh) | 2023-01-13 |
Family
ID=67368238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910321123.8A Expired - Fee Related CN110069946B (zh) | 2019-04-19 | 2019-04-19 | 一种基于sgx的安全索引系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110069946B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111159018B (zh) * | 2019-12-17 | 2021-06-22 | 浙江大学 | 基于软件防护扩展指令sgx的在线模糊测试系统和方法 |
CN111556072B (zh) * | 2020-05-12 | 2020-12-08 | 深圳市汇智通咨询有限公司 | 一种改进索引加密算法与系统 |
CN113193963B (zh) * | 2021-05-06 | 2022-08-30 | 金陵科技学院 | 一种基于单向累加器的匿名认证与密钥交换方法 |
CN113297596B (zh) * | 2021-06-09 | 2023-10-31 | 东北大学 | 一种面向静态数据的高效茫然读取方法 |
CN113449293A (zh) * | 2021-07-14 | 2021-09-28 | 上海交通大学 | 基于可信执行环境的密文搜索系统与方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874516A (zh) * | 2017-03-15 | 2017-06-20 | 电子科技大学 | 一种云存储中基于kcb树和布隆过滤器的高效密文检索方法 |
CN108768978A (zh) * | 2018-05-16 | 2018-11-06 | 浙江大学 | 一种基于sgx的远端存储服务方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8930691B2 (en) * | 2011-08-16 | 2015-01-06 | Microsoft Corporation | Dynamic symmetric searchable encryption |
-
2019
- 2019-04-19 CN CN201910321123.8A patent/CN110069946B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106874516A (zh) * | 2017-03-15 | 2017-06-20 | 电子科技大学 | 一种云存储中基于kcb树和布隆过滤器的高效密文检索方法 |
CN108768978A (zh) * | 2018-05-16 | 2018-11-06 | 浙江大学 | 一种基于sgx的远端存储服务方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110069946A (zh) | 2019-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110069946B (zh) | 一种基于sgx的安全索引系统 | |
CN110334526B (zh) | 一种支持验证的前向安全可搜索加密存储系统及方法 | |
US9977918B2 (en) | Method and system for verifiable searchable symmetric encryption | |
AU2018367363B2 (en) | Processing data queries in a logically sharded data store | |
CN106534092B (zh) | 基于消息依赖于密钥的隐私数据加密方法 | |
Bost et al. | Verifiable dynamic symmetric searchable encryption: Optimality and forward security | |
US9672236B2 (en) | Client computer for querying a database stored on a server via a network | |
Li et al. | Secure deduplication storage systems supporting keyword search | |
CN106101257B (zh) | 一种基于布隆过滤器的云存储数据管理方法及装置 | |
Rady et al. | Integrity and confidentiality in cloud outsourced data | |
US20090265559A1 (en) | User authentication by linking randomly-generated authentication secret with personalized secret | |
CN112989375B (zh) | 一种分级优化加密无损隐私保护方法 | |
CN112380557B (zh) | 一种关系型数据库加密方法及该加密数据库查询方法 | |
CN114048448A (zh) | 基于区块链的动态可搜索加密方法及装置 | |
GB2514428A (en) | Enabling access to data | |
CN111639357B (zh) | 一种加密网盘系统及其认证方法和装置 | |
Wang et al. | Leakage models and inference attacks on searchable encryption for cyber-physical social systems | |
CN110851848B (zh) | 对称可搜索加密的隐私保护方法 | |
CN113918528A (zh) | 一种基于可信硬件的安全云数据去重方法及系统 | |
CN110188545B (zh) | 一种基于链式数据库的数据加密方法及装置 | |
Li et al. | Secure deduplication storage systems with keyword search | |
Guo et al. | Order‐Revealing Encryption Scheme with Comparison Token for Cloud Computing | |
Bharat et al. | A Secured and Authorized Data Deduplication in Hybrid Cloud with Public Auditing | |
Gupta | Integrity auditing with attribute based ECMRSA algorithm for cloud data outsourcing | |
Venkatesh et al. | Secure authorised deduplication by using hybrid cloud approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20230113 |
|
CF01 | Termination of patent right due to non-payment of annual fee |