CN107070847A - 频率隐藏保序加密 - Google Patents

频率隐藏保序加密 Download PDF

Info

Publication number
CN107070847A
CN107070847A CN201610879747.8A CN201610879747A CN107070847A CN 107070847 A CN107070847 A CN 107070847A CN 201610879747 A CN201610879747 A CN 201610879747A CN 107070847 A CN107070847 A CN 107070847A
Authority
CN
China
Prior art keywords
value
plaintext
search tree
stored
encryption
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.)
Granted
Application number
CN201610879747.8A
Other languages
English (en)
Other versions
CN107070847B (zh
Inventor
F.克施鲍姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SAP SE
Original Assignee
SAP SE
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SAP SE filed Critical SAP SE
Publication of CN107070847A publication Critical patent/CN107070847A/zh
Application granted granted Critical
Publication of CN107070847B publication Critical patent/CN107070847B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6227Protecting 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种频率隐藏保序加密。用于对数据加密以提供加密数据来存储在数据库中的方法、***和计算机可读存储介质。实现方式包括以下动作:在客户端侧计算设备处接收输入集合,该输入集合包括要被加密以提供加密值的明文值,确定该明文值是否被存储在由客户端侧计算设备存储的搜索树中,如果明文值未被存储在搜索树中,则利用明文值的确定性加密提供加密值,而如果明文值被存储在搜索树中,则利用明文值的随机化加密提供加密值,更新搜索树以包括一节点,该节点包括该明文值和该加密值,并且将加密值发送到服务器侧计算设备以便将加密值存储在数据库中。

Description

频率隐藏保序加密
技术领域
本申请涉及频率隐藏保序加密。
背景技术
加密的数据库在云平台和/或数据库即服务(database-as-a-service,DaaS)设置中提供了数据保护(安全性)。在加密的数据库中,数据(明文)可在客户端处被加密以提供加密的数据(密文),该密文可被提供给数据库以便存储。在一些示例中,第三方提供并维护数据库。也就是说,数据库被外包给第三方。例如,客户端利用一个或多个加密密钥对数据加密以提供加密数据,客户端将该加密数据发送到第三方以便存储在数据库中。
外包数据库为客户端提供了高效的资源管理和低维护成本,但将外包的数据(客户端数据)暴露给了服务提供者(提供数据库的第三方及其代理)。例如,要在加密数据上执行的不同查询操作要求不同级别的加密,其中一些没有其他那么安全。另外,在加密数据上执行的查询可将信息泄露给第三方(例如,访问模式)服务提供者,这可被用在密码分析中。
发明内容
本公开的实现方式包括用于要在服务器上的数据库中存储的数据的频率隐藏保序加密(order-preserving encryption,OPE)的由计算机实现的方法。实现方式包括以下动作:在客户端侧计算设备处接收输入集合,该输入集合包括要被加密以提供加密值的明文值,确定该明文值是否被存储在由客户端侧计算设备存储的搜索树中,如果明文值未被存储在搜索树中,则利用明文值的确定性加密提供加密值,而如果明文值被存储在搜索树中,则利用明文值的随机化加密提供加密值,更新搜索树以包括节点,该节点包括该明文值和该加密值,并且将加密值发送到服务器侧计算设备以便将加密值存储在数据库中。此方面的其他实现方式包括相应***、装置和编码在计算机存储设备上的被配置为执行这些方法的动作的计算机程序。
这些和其他实现方式可各自可选地包括以下特征中的一个或多个:确定明文值是否被存储在搜索树中包括将明文值与搜索树的各个节点中的一个或多个明文值相比较,并且基于明文值是否等于各个节点的明文值来执行搜索树的二元遍历;搜索树的二元遍历是基于要求第一方向上的遍历的第一硬币值和要求第二方向上的遍历的第二硬币值执行的,硬币值是随机选择的;动作还包括确定在搜索树中已实现了阈值深度,并且作为响应,重平衡搜索树;动作还包括压缩搜索树以便存储在客户端侧计算设备中;明文值是利用保序加密来加密的;并且动作还包括由客户端侧计算设备从服务器侧计算设备接收加密值,遍历搜索树以基于加密值从搜索树中的多个节点中选择节点,并且从该节点取回明文值。
本公开还提供了一种计算机可读存储介质,其耦合到一个或多个处理器并且其上存储有指令,这些指令当被该一个或多个处理器执行时使得该一个或多个处理器根据本文提供的方法的实现方式执行操作。
本公开还提供了一种用于实现本文提供的方法的***。该***包括一个或多个处理器,和耦合到该一个或多个处理器的计算机可读存储介质,其上存储有指令,这些指令当被该一个或多个处理器执行时使得该一个或多个处理器根据本文提供的方法的实现方式执行操作。
要明白,根据本公开的方法可包括本文描述的方面和特征的任何组合。也就是说,根据本公开的方法不限于本文具体描述的方面和特征的组合,而是也包括提供的方面和特征的任何组合。
本公开的一个或多个实现方式的细节在附图和下面的描述中记载。本公开的其他特征和优点将从描述和附图以及从权利要求中清楚显现。
附图说明
图1描绘了根据本公开的实现方式的示例高级别体系结构。
图2A-2D描绘了根据本公开的实现方式的用于提供搜索树的示例进展。
图3描绘了根据本公开的实现方式的用于示例序列的示例搜索树。
图4描绘了根据本公开的实现方式可执行的示例过程。
图5是可用于执行本公开的实现方式的示例计算机***的示意图示。
各幅图中的相似附图标记指示相似的元素。
具体实施方式
本公开的实现方式概括而言针对的是用于对要在服务器上的数据库中存储的数据加密的频率隐藏保序加密(frequency-hiding order preservingencryption,FH-OPE)。更具体而言,本公开的实现方式包括以下动作:接收输入集合,该输入集合包括要被加密以提供加密值的明文值;确定该明文值是否被存储在由客户端侧计算设备存储的搜索树中,如果明文值未被存储在搜索树中,则利用明文值的确定性加密提供加密值,而如果明文值被存储在搜索树中,则利用明文值的随机化加密提供加密值,并且更新搜索树以包括一节点,该节点包括该明文值和该加密值。这样,明文值在搜索树中的第一次出现导致对明文值的确定性保序加密,并且明文值的后续出现导致对明文值的随机化保序加密。
OPE使得数据能够被加密,同时也使能了加密数据上的高效范围查询。OPE的性能和功能使得OPE例如适合于云计算场景中的数据外包。然而,关于OPE的安全性,仍存在一些问题。如本文更详细论述的,本公开的FH-OPE相对于传统OPE提供了增强的安全性。根据本公开的实现方式,如本文更详细描述的,密文(加密数据)被随机化以隐藏明文(未加密数据)的频率。本公开的实现方式包括相对较小的客户端侧数据存储大小(例如,明文大小的1/15)。因此,本公开的实现方式使能了大型加密数据集合的安全外包。在一些示例中,本公开的实现方式以更大的数据集合提供了更高的安全性。
图1描绘了根据本公开的实现方式的示例高级别体系结构100。高级别体系结构100包括计算设备102(例如,客户端侧)、服务器***104和网络106。在一些示例中,计算设备102和服务器***104通过网络106通信。在一些示例中,计算设备102可通过一个或多个网络(例如,包括网络106)与服务器***104通信。在一些示例中,计算设备102可包括任何适当类型的计算设备,例如桌面型计算机、膝上型计算机、手持式计算机、平板计算机、个人数字助理(personal digital assistant,PDA)、蜂窝电话、网络家电、相机、智能电话、增强型通用封包无线服务(enhanced general packet radioservice,EGPRS)移动电话、媒体播放器、导航设备、电子邮件设备、游戏机或者这些设备或其他数据处理设备中的任何两者或更多者的适当组合。
在一些实现方式中,服务器***104包括至少一个服务器设备108和至少一个数据存储库110。在图1的示例中,服务器***104意图表示各种形式的服务器,包括但不限于web服务器、应用服务器、代理服务器、网络服务器和/或服务器池。一般地,服务器***接受对应用服务的请求并且通过网络106向任何数目的客户端设备(例如,计算设备102)提供这种服务。
在一些实现方式中,网络106可包括连接任何数目的通信设备、移动计算设备、固定计算设备和服务器***的大型计算机网络,例如局域网(localarea network,LAN)、广域网(wide area network,WAN)、因特网、蜂窝网络、电话网络(例如,PSTN)或者其适当组合。
根据本公开的实现方式,服务器***104维护存储加密数据的数据库(例如,加密数据库)。在一些示例中,数据(明文)在计算设备102(客户端侧)被加密,并且加密的数据(密文)通过网络106被发送到服务器***104以便存储。在一些实现方式中,如本文所述,服务器***104可由第三方服务提供者提供,该第三方服务提供者存储加密数据并提供对加密数据的访问。
在一些实现方式中,数据库是也包括查询执行引擎的数据库***的一部分。在一些示例中,查询执行引擎接收查询(例如,来自客户端的搜索令牌),基于该查询提供查询计划,执行该查询计划以提供响应(例如,响应该查询的来自数据库的加密数据),并且将该响应发送到客户端(例如,从其接收查询的那个客户端)。在一些示例中,查询计划包括要在加密数据上执行的一个或多个操作。
如上文介绍的,OPE可用于在将数据外包以便存储之前对数据加密(例如,将加密数据存储在由第三方服务提供者提供的数据库中)。例如,OPE使得范围查询能够在加密数据上高效执行,这使得OPE对于在云计算中实现安全性和隐私性是有吸引力的。然而,传统OPE的安全性是有争议的。例如,当仅对一个明文加密时,OPE相对于仅限密文的攻击可以是完全安全的。然而,当更多明文被加密时,确定性加密渐渐变得不那么安全。更具体而言,利用确定性加密,密文对于所有不同明文的可用性可遭受相对简单的攻击。例如,排序的密文可被一对一映射到排序的明文。这类攻击可能是难以防止的,因为它是由加密的类型中暗含的排序信息使能的。另外,排序信息被用于在加密数据上的高效搜索。这可造成一个问题,因为经常难以预测数据集合的最终大小和不同明文的数目。因此,在加密的安全性上没有下界。在其他示例中,已知域中的所有明文将被加密并且因此(确定性)OPE是无意义的。
鉴于此情境,本公开的实现方式支持增大OPE的安全性。更具体而言,如本文更详细描述的,本公开的实现方式提供了密文的随机化。在一些示例中,本公开的实现方式增大了安全性,同时保留了依赖于排序信息的查询的功能。
根据本公开的实现方式,OPE的安全性的定义可作为频率分析有序选择明文攻击下的不可分辨性(indistinguishability under frequency-analyzing ordered chosenplaintext attack,IND-FAOCPA)提供。如本文更详细论述的,此定义中捕捉的安全性随着数据集合的大小增大而增大。本公开的安全性概念比有序选择明文攻击下的不可分辨性(indistinguishability under ordered chosen plaintext attack,IND-OCPA)更强。
如本文更详细描述的,本公开的实现方式随机化了密文,使得没有频率信息从重复的密文中泄露。在一些示例中,随机化OPE保留了明文的顺序。也如本文更详细论述的,本公开的实现方式通过逼近该安全性概念而减小了客户端侧存储的大小。在一些示例中,本公开的实现方式提供了不完美的频率隐藏,这相对于传统方案具有增强的安全性,但对于客户端侧存储要求也是可接受的。在一些示例中,密文近似均匀分布,并且针对频率分析攻击提供了增强的安全性。本公开的实现方式在有序选择明文攻击下也是不可分辨的。
为了为本文描述的实现方式提供额外的情境,本文更详细论述OPE的发展(包括示例传统OPE方案),以及OPE的应用,和其他加密方案。
初始OPE方案(“Agrawal OPE方案”)是基于明文的分布已知的假设在数据库社区中开发的。Agrawal OPE方案是基于修改此分布以匹配固定或随机选择的分布的。然而,Agrawal OPE方案没有提供正式的安全性保证。
OPE的第一个正式安全性保证是由密码术社区提供的,并且是基于IND-OCPA的概念在OPE方案中提供的(“Boldyreva OPE方案”)。已表明,无状态方案不能实现此概念,并且不得不勉强接受具有随机OPE的较弱安全性的加密方案。Boldyreva OPE方案只要求将密钥存储在客户端上。随后表明,随机保序功能也实现了窗口单向性的安全性属性。另外,Boldyreva OPE方案实现了IND-OCPA安全性,但要求所有明文都是预先已知的。当然,如果所有明文都是预先已知的,则其顺序可被确定。
开发了另一个OPE方案(“Teranishi OPE方案”),其是无状态的(例如,只要求在客户端上存储密钥)。在Teranishi OPE方案中,在密文中引入了随机的相对大的间隙以实现比部分明文不可分辨性的随机保序功能更强的安全性概率。然而,因为Teranishi OPE方案是无状态的,所以其不实现IND-OCPA安全性。
随后引入了IND-OCPA安全OPE方案(“Popa OPE方案”)。Popa OPE方案是有状态的并且要求在OPE服务器上存储信息。在Popa OPE方案中,执行多轮协议,这导致由网络延迟引起的效率低下。存储的信息的大小是不同明文的数目的线性函数。另外,Popa OPE方案是易变的,由此在几乎任何加密操作上都必须更新顺序(因此必须更新密文的一半)。这对于(例如,在云中操作的)数据库服务器的性能有不利暗示。
第一个高效IND-OCPA安全保序加密方案(“Kerschbaum OPE方案”)去除了对单独服务器的需要,但也按不同明文的数目的线性函数存储信息。另外,Kerschbaum OPE方案去除了对单独服务器的需要。Kerschbaum OPE方案也将变化的概率降低到可忽略并且将客户端和服务器之间的协议中的轮数减少到是恒定的而不是不同明文的数目的对数函数。Kerschbaum OPE方案在平均情况下具有恒定的加密成本。
以上介绍的示例OPE方案的每一者是确定性的。另一个示例OPE方案引入了一些随机化(“Hildenbrand OPE方案”)。在Hildenbrand OPE方案中,明文域被划分成互斥的集合并且每个集合被保序加密,但是利用各个不同密钥加密的。然而,因为Hildenbrand OPE方案是无状态的,所以其无法是IND-OCPA安全的。Hildenbrand OPE方案对于加密数据上的范围查询的必要改写有强烈暗示。另一个示例OPE方案(“Wozniak OPE方案”)添加了更多随机化,但不提供超过随机保序功能以外的安全性保证。
现在论述OPE的示例应用以为本公开的实现方式提供更多情境。总的来说,OPE具有许多应用。一个示例应用是用于数据库即服务(DaaS)。在DaaS中,数据库被外包给云(例如,由第三方服务提供者容宿),并且存储的值在被发送到云之前被加密。数据库在加密数据上执行接收到的查询(例如,来自提供了加密数据的数据拥有者的查询)。OPE使得能够在不对数据库管理***作出任何改变的情况下在加密数据上执行范围查询。引入了对数据库的可调整加密,其包裹着OPE。除了数据库以外,OPE在一般云软件即服务(software-as-a-service,SaaS)和web应用(例如,商业软件、电子邮件)中具有许多应用。
现在论述其他示例加密方案以为本公开的实现方式提供更多情境。OPE是属性保留加密的一种特殊情况。由于其在排序和搜索中的应用,值的顺序是一种值得保留的尤其有用的属性。加密数据上的搜索也可利用采用经修改的、通常是依加密方案而定的搜索算法的其他加密方案来执行。这种加密方案例如包括可搜索加密、函数加密和同态加密。
在一些示例中,可搜索加密实现比OPE更强的安全性概念。也引入了用于范围查询的可搜索加密,其使用由秘密密钥生成的范围边界的令牌来匹配密文,这些密文在此令牌的范围内。没有该令牌,密文在选择明文攻击下是不可分辨的。然而,可搜索加密方案要求对数据的线性扫描,除非提供额外的索引信息。引入了具有对数时间复杂度的用于范围的可搜索加密方案,但它的索引信息使得它与传统OPE一样脆弱,因为提出的排序树揭示了所有元素的顺序。
在一些示例中,可搜索加密是函数加密的一种特殊情况。函数加密允许了在密文的集合上评估任何函数,使得该函数的结果被揭示。近来,已为一般函数设计了函数加密。以前已提出了特定函数,例如内积。函数加密也可只揭示顺序,同时其他的保持语义上安全。
搜索也可利用同态加密来实现,利用同态加密,搜索结果对于第三方服务提供者保持未知。这意味着如果结果大小是无界的,则对于任何查询需要传送整个数据库。另外,同态加密使能使用任意搜索函数。
鉴于此情境,并且如上文介绍的,本公开的实现方式提供了FN-OPE来用于例如外包的属性保留加密数据库。
作为一个当前的示例,并且为了为本公开的实现方式提供更多情境,拥有者具有要被存储在第三方服务提供者的数据库(例如,DaaS范例)中的数据(例如,人口数据)。拥有者在将加密数据外包给云之前利用OPE对数据加密。在此示例中,数据库可具有示例字段“名”、“姓”、“生日”和“性别”,等等。如果拥有者希望在外包的加密数据上执行范围查询,则拥有者向云服务提供者发送搜索项的加密边界。服务提供者利用加密边界执行常规范围查询,就好像会在明文数据上执行的那样,因为明文的顺序在加密数据(密文)中被保留。结果是查询的范围中的加密数据值的集合,该集合被返回给拥有者。
OPE的性能和实现灵活性优点是清楚明确的。为了使服务器(例如,第三方服务提供者的(一个或多个)服务器)在密文的集合上执行范围查询,客户端为该范围的上界和下界发送密文(加密数据值)。加密界限的范围中包括的所有密文对应于该范围中的明文。另外,服务器可利用用于明文范围查询的所有数据结构来优化该查询。因此,这种查询例如可被轻松地集成到现有的数据库管理***中。
Agrawal OPE方案是为上述场景设计的,但其安全性以及其安全性定义不像期望的那么强。OPE不可能像标准加密那么强,因为按照定义,揭示了关于顺序的信息(“排序信息”)。一些安全性研究者已表明,此排序信息也必然意味着关于两个明文的距离的部分信息。其他安全性研究者辩称,至少一半比特泄露了。对排序信息的密码分析暗示的完全表征仍然是缺乏的。
OPE的另一个安全性问题在数据库表格的每一列被单独加密的数据库中是明显的。例如,在关于人的典型数据库表格中,每个字段(例如,名、姓、生日、性别)被用各自的密钥加密。这允许了每个个体字段上的查询(例如,出生于7月4日的所有男人)。然而,在这些字段的大多数中,输入不是均匀分布的。例如,姓Smith在美国比姓Huxtable更常见。关于输入的频率的这个信息可用在利用OPE加密的任何数据库表格的密码分析中。例如,已表明,就像可搜索加密中也是如此一样,即使是部分频率信息也可用于对具有高概率的条目解密。对于典型数据库中的许多字段,关于频率分布的信息是容易获得的(例如,公共网站列出每个区域最常见的名和姓)。
这个问题甚至可能更加严重。在许多字段中,例如,可能有比明文域中的值多得多的数据库行(例如,很可能所有明文都被加密至少一次)。在此情况下,OPE的安全性崩溃。例如,有序的密文可简单地被匹配到有序的明文。例如,考虑字段“性别”。不太可能关于人的许多数据库表格只包含男人或女人。传统的OPE方案将揭示性别,因为按照字典序,“女性”(female)<“男性”(male)。
鉴于上述情境,以及传统OPE的缺陷,本公开的实现方式提供了FH-OPE,这是一种随机化的OPE方案,使得数据值的频率被模糊。如本文更详细描述的,根据本公开的FH-OPE方案,重复的明文将(或者可)变成不同的密文。本公开的FH-OPE方案提供了更强的安全性概念(例如,通过隐藏任何明文的频率)。这个更强的安全性是与明文数据上的范围查询的高效执行一起提供的。
为了突出本公开的实现方式,可考虑以下示例,当对由两个女人和两个男人构成的数据加密时,性别属性将被加密为1、2、3、4。前两个(1、2)各自是女性的密文,并且后两个(3、4)各自是男性的密文。搜索仍可由服务器在加密数据上执行。当搜索所有女人时,例如,搜索范围[1,2](例如,从搜索项的最小密文到搜索项的最大密文)。当搜索所有男人时,例如,搜索范围[3,4](例如,从搜索项的最小密文到搜索项的最大密文)。当搜索范围[female,male]时,搜索范围[1,4](例如,从下界的最小密文到上界的最大密文)。
另外,本公开的FH-OPE方案相对于有序选择明文攻击是安全的,并且是有状态的。因为随机化密文的熵比确定性密文的高得多,所以本公开的FH-OPE方案比传统OPE方案(在客户端上)存储更多状态信息。然而,如本文更详细描述的,本公开的实现方式采用了减少在客户端上存储的信息的量的若干个数据压缩技术。在一些示例中,提供了例如对现实数据集合的比率为15的数据压缩。这些类型的压缩技术使能了本公开的FH-OPE方案的实际应用,同时提高了密文的安全性。
在一些示例中,(有状态)保序加密方案ΠFHOPE包括以下示例算法:
S←KEYGEN(λ):根据安全性参数λ生成秘密状态S。
S',y←ENCRYPT(S,x):为明文x计算密文y并且将状态从S更新到S'。
x←DECRYPT(S,y):基于状态S为密文y计算明文x。
如果对于任何有效状态S和x,DECRYPT(ENCRYPT(S,x))=x,则加密方案是“正确”的。如果保留了顺序(即,对于任何i和j,yi≥yj=>xi≥xj),则加密方案是“保序”的。
现在论述本公开的FH-OPE的安全性保证(例如,为何FH-OPE是频率隐藏的)。安全性保证开始于IND-OCPA的定义,其(迄今为止)是OPE的安全性的最强定义。在一些示例中,IND-OCPA安全性是由挑战者和对手之间的游戏定义的。对手准备明文的两个序列,其中两个序列具有相同的顺序并且每个明文在其序列内是不同的。对手将两个序列发送给挑战者。挑战者对一个序列加密并且将密文发送给对手,对手猜测它是两个序列中的哪一个。
在一些示例中,将IND-OCPA的定义扩展到随机化密文的一个简单想法将是提升明文的不同性的限制。然而,如以下示例表明的,这是不充分的。在两个不同明文(例如,男性和女性)的情况下,需要不可分辨的具有不同频率的序列只有仅由一个明文构成的那些。相同顺序的所有其他序列都具有相同的明文频率。因此,此频率信息可从密文泄露,因为它在两个明文序列中都存在。
然而,加密算法的随机选择无法完全独立于明文的序列(就像非保序加密的选择明文攻击下的不可分辨性那样),因为明文序列的顺序需要被保留。鉴于此,本公开的实现方式提供了随机化顺序。在一些示例中,随机化顺序是数字1,2,…,n的置换,其是根据X排序的并且平局被随机打破。提供以下示例定义:
定义1:令n为序列中的不一定不同的明文的数目。序列X的随机化顺序则以下成立
可考虑以下示例。令明文序列为X=1,2,2,3。可能的随机化顺序是Г1=1,3,2,4和Г2=1,2,3,4。有许多具有随机化顺序Г1的明文序列,它们并不全都具有相同的明文频率。具有任何为1的频率的示例是X'1=2,2,2,3,X'2=1,2,1,3,X'3=1,1,1,3或X'4=1,1,1,1,以及许多其他的,
在一些示例中,本公开的安全性定义的目标是密文只泄露明文的随机化顺序。也就是说,具有相同的随机化顺序但具有不同的明文频率的两个序列应当是不可分辨的。可注意到,随机化顺序不包含任何频率信息,因为每个值始终出现恰好一次。提供以下示例安全性游戏GameFAOCPA(λ):
■对手选择n个不一定不同的明文的两个序列X0和X1,使得它们具有至少一个共同的随机化顺序Г。对手将两个序列发送给挑战者。
■挑战者扔一个无偏向硬币c∈{0,1},执行密钥生成KeyGen(λ),并且将Xc加密为Y(即,Si,yi←Encrypt(Si-1,xi))。挑战者将密文Y发送给对手。
·对手输出c的猜测c*(即,它是两个序列中的哪一个)。
现在定义相对于频率分析有序选择明文攻击(FAOCPA)的安全性。提供以下示例定义:
定义2:(有状态)OPE方案ΠFHOPE相对于频率分析有序选择明文攻击是IND-FAOCPA安全的,如果对手A在GameFAOCPA(λ)中输出c的优势在λ中是可忽略的话,这以如下形式提供:
在一些示例中,IND-FAOCPA安全性比IND-OCPA安全性更强,因为不同明文的随机化顺序等于其顺序。因此,IND-FAOCPA暗示IND-OCPA,但IND-OCPA不暗示IND-FAOCPA。例如,如上所述,重复明文的频率在IND-OCPA下可泄露,这可用于密码分析。
现在详细描述实现本公开的FH-OPE的示例算法。示例算法包括树结构算法Tree(算法1),加密算法ENCRYPT(算法2),解密算法DECRYPT(算法3),树重平衡算法REBALANCE(算法4),非完美频率隐藏算法Imp–FH(算法5),随机化顺序选择算法RO–Select(算法6),和用于RANDOMCOIN算法的编程随机预言RandomOracle(算法7)。
本公开的实现方式将明文按其被加密的顺序***到排序二叉树中。根据本公开的实现方式,提供具有动态分配的叶子和指针的二叉搜索树。如本文更详细论述的,与将所有明文存储在客户端上相比,该搜索树被压缩以节省空间。
可注意到,虽然搜索树是动态的,但存在一阈值深度,超过该阈值深度后搜索树被重平衡。在一些示例中,阈值深度是基于密文长度确定的。在一些示例中,可超过阈值深度(例如,在对明文排序以加密的情况下)。在一些示例中,超过此密文长度的概率在均匀分布的输入的情况下是可忽略的。
在一些实现方式中,每个明文被加密为刚好更小和更大的下一明文的密文的均值。明文、密文对被***到搜索树中。在一些示例中,已经被加密的所有明文被不同地处理。在此情况下,(即,当***的明文和要加密的明文相等时),搜索树被以随机选择的方式遍历,并且新的明文被***为叶子。这里参考下面的算法1更详细描述搜索树的基本数据结构:
算法1:树结构
在一些实现方式中,对于每个算法固定以下示例参数:n是要***的不一定不同的明文的数目,并且N是不同明文的数目。因此,比特长度在算法1中是k=[log2N]。λ是安全性参数和密文的扩张因子。因此,在算法1中l=λk。在一些示例中,安全性参数也可用于确定伪随机性的种子的长度。在一些示例中,这个种子比扩张因子长得多。
在一些示例中,二叉搜索树(状态)被表示为节点{t}的集合T。在一些示例中,对于当前节点添加输入t并且对于下限和上限添加min和max以使能递归。根据算法2执行明文的加密:
输入:x,t,min,max
输出:y
状态:节点{t}的排序二叉树T
初始化:T是空的
1.如果x=t.plain,则coin=RANDOMCOIN()∈{0,1},否则coin=⊥
2.如果x>t.plain或coin=1,则
3a.如果t.right≠空,则
4.返回ENCRYPT(x,t.right,t.cipher,max)
3b.否则
5.如果max–t.cipher<2,则返回REBALANCE(x,-1,n)
6.***并且返回t.right.cipher。
3c.结束如果
7.如果x<t.plain或coin=0,则
8a.如果t.left≠空,则
9.返回ENCRYPT(x,t.left,min,t.cipher)
8b.否则
10.如果t.cipher–min<2,则返回
11.***并且返回t.left.cipher。
8c.结束如果
算法2:加密
在一些实现方式中,最初利用要加密的明文x、树T的根、min=-1和来调用该函数。在一些示例中,如果不存在根,则创建新的根。在一些示例中,如果n是未知的,则估计它。这个初始调用可被表示为ENCRYPT(x),省去来自频率隐藏保序加密方案ΠFHOPE的状态S。在一些示例中,如果λ>6.4,则对于均匀输入,重平衡的概率在n上是可忽略的。
加密的示例是明文序列X=1,2,1,3,其中min=-1并且max=128。在此示例中,前两个明文例如分别确定性地是y1=64和y2=96。第三个明文x3=1的密文被随机化,因为其是重复的明文。该密文可例如是y3=32或y3=80(例如,取决于随机硬币)。第四个密文也例如是确定性的y4=112。在一些实现方式中,函数RANDOMCOIN掷来自有键伪随机函数的均匀分布随机硬币。
在一些实现方式中,通过遍历搜索树以找到匹配密文来执行解密。在一些示例中,解密调用DECRYPT(x)推进到DECRYPT(x,root(T))。根据算法3执行密文的解密:
输入:y,t
输出:x
状态:节点{t}的排序二叉树T
1.如果y>t.cipher,则返回DECRYPT(y,t.right)
2.如果y<t.cipher,则返回DECRYPT(y,t.left)
3.返回t.plain
算法3:解密
如上所述,在某些情况下可重平衡搜索树。在一些示例中,搜索树的重平衡是根据算法4执行的:
输入:x,min,max
输出:y
状态:节点{t}的排序二叉树T
1.令X={t.plain}∪{x}
2.按升序对X排序
3.令
4.令y=T.plain
5.令X'={xj|xj<y}
6.令X”={xj|xj>y}
7.令
8.令
9.分别以y'和y”两者作为y并且以X'和X”作为X在第5行上递归迭代。
10.在T中找到x并且返回Tx.cipher
算法4:重平衡
参考图2A-2D,在描述空间节省测量(压缩)之前,将论述当***随机明文时可出现的树的示例。该论述基于以上介绍的二元明文域(例如,男性和女性)的示例。在此示例中,提供四个明文xi∈{0,1}。提供以下示例序列X=0,1,0,1。随机硬币被设置到序列1,0,并且所得到的树序列在图2A-2D中描绘。图2A-2D的每一者描绘了在***序列的又一个元素之后的搜索树200,其中新的节点以幻影(虚线)指示。在图2A中,搜索树被初始化。因此,对于要加密的第一个明文值(例如,0)添加新的节点(根)。在图2B中,当第一次***1时,添加新的节点(叶子)。在图2C中,明文重复(例如,0),但被***在具有不同明文(例如,1)的父亲下方。这可如下来追溯:当第二次***0时,在根处遇到0;基于随机硬币,遍历是向右,在这里遇到1;确定性选择产生新节点(叶子)。在图2D中,***下一个1并且明文节点交错。在更大的明文域中,即使是中间元素也可被放置在较低节点处。
在一些示例中,重复的明文可被放置在具有相同明文的父亲下。例如,如果以随机硬币0,1***又两个元素0,1,则搜索树200将如图3中所示。
在一些实现方式中,当在搜索树中存储明文时,比只存储明文时相比需要更多存储空间(即,计算机可读存储器)。例如,根据本公开,在搜索树中还容纳了密文和指针。鉴于此,提供搜索树的压缩。在一些示例中,密文不需要被存储,而是可随着遍历搜索树而动态计算。
在一些实现方式中,可利用字典压缩来压缩明文,并且可将重复的值作为索引存储到字典中。这在例如为列存储数据库节省空间方面可以是非常有效的。在一些示例中,重复值的子树可被压缩。如上所述,重复的明文可具有相同或不同明文的父节点。在一些示例中,相同明文的子树可被称为簇(cluster)。在簇内,不需要存储每个节点的明文。相反,在该簇的根节点中存储该明文一次。
在一些实现方式中,虽然在使用继承的多态面向对象语言中支持抑制结构中的字段,然而可进一步压缩搜索树。在一些示例中,不是存储树结构,而是只存储其遍历,从而压缩指针的大小。例如,可以以M的形式提供簇的大小,按后序遍历顺序遍历搜索树,并且按升序向节点赋予从1到M的数字(即,后序遍历现在是1,2,3,…)。按中序遍历顺序遍历搜索树,并且记录后序遍历数字。作为示例,具有一个根和两个叶子的简单二叉树变成1,3,2。在一些示例中,只存储遍历序列。每次遇到一个簇时,在遍历中前进之前将该簇扩展到整个搜索树。在一些示例中,这可在线性时间和空间中完成。在前进到具有不同明文的下一节点之后,临时扩展的搜索树可被删除。这样,对于搜索树中的明文和指针信息都提供了节省。例如,只需要存储不同明文的节点之间的(长)指针。
本公开的FH-OPE的实现方式实现了IND-FAOCPA安全性。IND-FAOCPA安全性具有安全性优点,但在客户端处也具有相对高的存储空间要求。在一些应用场景中,可优选更低的安全性和(显著)更低的存储空间要求。例如,如果密文的分布未被完美隐藏,而是近似已知分布(例如,均匀分布),通常就够了。根据本公开的实现方式,重复密文的均匀分布可利用FH-OPE方案和试探式预过滤器来近似。
在一些实现方式中,对于每个不同的明文x∈X,确定出现次数cx和(每个明文的)不同密文的数目dx。在一些示例中,C={cx|x∈X}和D={dx|x∈X}是所有各个计数器的集合。在一些示例中,由r>1和0≤p≤1将预过滤器参数化。按大于r倍检测到从均匀分布的预期偏离,并且即使没有偏离,也可以概率p创建新的随机密文。在一些示例中,根据算法5提供预过滤器:
输入:C,D,r,p,x
输出:y
状态:在排序二叉树中T={tj}
1.令cx为明文x的出现次数。
令dx为x的不同密文的数目。
2.如果
则递增cx,dx并且返回y=ENCRYPT(x)。
3.以Pr[c=1]=p选择随机硬币c∈{0,1}。
4.如果c=1,则递增cx,dx并且返回y=ENCRYPT(x)。
5.构建集合Y={tj.cipher|tj.plain=x}。
在Y之中均匀选择y,递增cx并且返回y。
算法5:对于非完美频率隐藏的过滤
在一些示例中,参数r限制从均匀分布的偏离,并且参数p平衡存储成本和安全性。对于p=1,过滤方案的结果与完全频率隐藏保序加密方案相同。对于p=0和明文的均匀分布,过滤方案渐渐变得接近Kerschbaum OPE方案的确定性加密。然而,对于偏斜的明文分布(和有限的r),本公开的实现方式近似均匀分布并且因此更安全。
可注意到,上述的过滤FH-OPE方案在最坏情况下仍是IND-OCPA安全的。因此,其比许多其他OPE方案更安全。
图4描绘了根据本公开的实现方式可执行的示例过程400。在一些示例中,示例过程400可作为利用一个或多个计算设备执行的一个或多个计算机可执行程序来提供。在一些实现方式中,执行示例过程400以根据本公开的FH-OPE的实现方式提供明文值的加密。
在一些实现方式中,对于明文值的集合X中的每个明文值x执行图4的过程400。在一些示例中,明文值的集合X在被发送来存储在由第三方服务提供者提供的数据库中之前要被加密。例如,明文值的集合X可包括一实体(例如,企业、医院)的机密数据。在一些示例中,明文值的集合X中的明文值是以数值(例如,整数、小数)的形式提供的,它们可被相互比较和/或与其他数值比较(例如,大于、小于、等于)。在一些示例中,明文值的集合X中的明文值最初是以串值(例如,文本)的形式提供的。在一些示例中,串值被转换成数值,以使得明文值的集合X中的明文值可与彼此比较和/或与其他数值比较(例如,大于、小于、等于)。
在一些示例中,图4的过程400开始于其中已经有根节点的搜索树。也就是说,例如,明文值的集合X中的至少一个明文值x已被加密并且至少一个节点(例如,根节点)被包括在该搜索树中。在一些示例中,如果搜索树是空的,则创建根节点,对明文值x加密,并且将明文值x和加密值y存储在根节点中。
接收包括明文值x、当前考虑的节点t、min值和max值的输入集合(402)。例如,明文值x是明文值的集合X中的下一明文值。示例min值是-1,并且示例max值是(例如,128)。确定明文值x是否等于当前考虑的节点t中的明文值(t.plain)(404)。在一些示例中,当前考虑的节点t最初被设置为根节点。如果明文值x等于t.plain,则基于RANDOMCOIN确定硬币值(coin)(406)。例如,执行RANDOMCOIN以设置coin等于0或1。因此,如果明文值x等于t.plain,则明文值x不是唯一的(例如,在明文值的集合X中已经遇到过),并且基于coin来进行随机化加密,如本文详细所述。如果明文值x不等于t.plain,则coin被设置为等于假(408)。因此,如果明文值x不等于t.plain,则明文值x是唯一的(例如,至少相对于当前考虑的节点t而言),并且进行确定性加密,如本文详细描述的。
确定明文值x是否大于t.plain,或者coin是否等于1(410)。如果明文值x大于t.plain,或者coin等于1,则向右遍历经过搜索树,并且确定在当前考虑的节点t的右侧是否已经存在子节点(例如,是否t.right=空)(412)。如果t.right不等于空(即,右侧已经存在子节点),则更新该输入集合以包括明文值x、下一节点t.right作为当前考虑节点t、节点t.right的t.cipher作为min值、和max值(414),并且示例过程400环回。如果t.right等于空(即,右侧没有已经存在子节点),则确定是否实现了搜索树的阈值深度(例如,max值和当前考虑的节点t的t.cipher之间的差异是否小于2)(416)。如果实现了阈值深度,则重平衡搜索树(例如,基于本文描述的算法4)(418)以提供更新的搜索树,并且明文值x及其密文t.right.cipher作为新节点t.right被***到更新的搜索树中(420)。如果没有实现阈值深度,则明文值x及其密文t.right.cipher作为新节点t.right被***到搜索树中(420)。
如上所述,确定明文值x是否大于t.plain,或者coin是否等于1(410)。如果明文值x不大于t.plain,和/或coin等于0,则向左遍历经过搜索树,并且确定在当前考虑的节点t的左侧是否已经存在子节点(例如,是否t.left=空)(422)。如果t.left不等于空(即,左侧已经存在子节点),则更新该输入集合以包括明文值x、下一节点t.left作为当前考虑节点t、min值、和节点t.left的t.cipher作为max值(424),并且示例过程400环回。如果t.left等于空(即,左侧没有已经存在子节点),则确定是否实现了搜索树的阈值深度(例如,当前考虑的节点t的t.cipher和min值之间的差异是否小于2)(426)。如果实现了阈值深度,则重平衡搜索树(例如,基于本文描述的算法4)(428)以提供更新的搜索树,并且明文值x及其密文t.left.cipher作为新节点t.left被***到更新的搜索树中(430)。如果没有实现阈值深度,则明文值x及其密文t.left.cipher作为新节点t.left被***到搜索树中(430)。
如果要对额外的数据加密,则可对明文值的集合X中的下一明文值x重复过程400。
本公开的FH-OPE方案的实现方式在Java 1.7中评估,并且在具有1.9-2.5GHz和16GB RAM的Intel Core i5-4300CPU上的64位Hotspot ServerVM中运行。执行了一系列示例分析,并且总结如下。
本公开的FH-OPE相对于FAOCPA的安全性的证明在上文论述。这个证明可通过构造对于该证明的两个挑战序列的每一者产生相同输出的FH-OPE方案的模拟器来评估。因此,计算上的不可分辨性来源于将随机源实现为伪随机函数,而不是任何其他硬度假设。下面概述一系列定理和相应的证明。
定理1:本公开的FH-OPE方案相对于FAOCPA是安全的。
证明:示例模拟器如下进行–对手发送长度n的两个明文序列X0和X1;模拟器从所有共同随机化顺序的集合中随机选择X0和X1共同的随机化顺序。这可利用以下示例算法来完成:
输入:X0,X1,s.t.|X0|=|X1|=n
输出:Г
1.按升序将X0和X1分别排序成Z0和Z1
2.构建三元组<z0,i,z1,i,i>的列表W。
3a.对于1≤j≤n,对于每对x0,j,x1,j,进行:
4.构建集合U={i|<z0,i,z1,i,i>∈W∧z0,i=x0,j∧z1,i=x1,j}。
5.在U中均匀选择γj
6.从W中去除<x0,j,x1,j,γj>。
3b.对于每一者结束
算法6:选择随机化顺序
定理2:算法6在时间O(n2)中运行。
证明:循环(从3a行到3b行)迭代n次。每个操作(第4、5、6行)在集合W或U上分别最多花n个操作。因此,总时间受O(n2)操作所限。
在一些示例中,定理2意味着示例模拟器是多项式时间,并且计算上的不可分辨性是可行的,即使利用伪随机函数实现随机选择也是如此。在一些示例中,一旦选择了随机化顺序Г,模拟器就需要计算密文。模拟器利用随机源的模拟器模拟算法5中的RANDOMCOIN函数(例如,该随机源可被散列函数(随机预言)所替换)。
在一些示例中,模拟器均匀地随机选择明文序列X∈{X0,X1}。在加密期间,随着其在加密函数的状态S—二叉搜索树T—中存储明文,其保持跟踪随机化顺序值γi。随着其对xi加密并最终将xi存储在T中,其也存储γi,即,对于树T中的每个值v,我们也知道γv。在一些示例中,γi表示当前输入明文xi的随机化顺序值,并且γv表示树遍历中的当前节点的随机化顺序值。如果在xi的加密期间,模拟器遇到对RANDOMCOIN的调用,则其改为利用γi和γv调用算法7(见下):
输入:γi,γv
输出:0或1
1.如果γiv,则返回1。
2.返回0。
算法7:RANDOMCOIN的编程随机Oracle
定理3:模拟器中的算法7的输出与均匀随机硬币是不可分辨的。
证明:虽然算法7的输出是确定性的,但γi和γv的选择由算法6确定。算法6在所有可能的随机化顺序之中均匀地选择随机化顺序。因为每个随机化顺序导致不同的二叉搜索树,并且RANDOMCOIN函数的每个输出也产生不同的二叉搜索树,所以算法7的输出与均匀随机硬币是不可分辨的。
在一些示例中,示例模拟器对于两个序列产生相同输出,在多项式时间中运行,并且其随机输出与均匀随机硬币是不可分辨的。因此,对手相对于本公开的FH-OPE赢得GameFAOCPA(λ)的概率在大于的λ中是可忽略的。
在一些实现方式中,通过估计不可分辨的明文序列的集合的大小,可估计两个不同安全性模型—IND-OCPA和IND-FAOCPA——的有效性。两个不可分辨的序列可作为安全性游戏中的挑战给出,并且导致不可分辨的密文挑战。很明显,与给定序列不可分辨的序列的集合越大,加密就越安全。在标准IND-CPA安全性下,明文的任何两个序列都是不可分辨的。
IND-OCPA安全的OPE方案可泄露明文序列的顺序。注意,IND-OCPA安全性也是更弱的OPE方案的上界。下面在定理4中提供不可分辨的序列的数目。
定理4:令D为明文域中的不同明文的数目。对于N个不同明文的任何序列,在IND-OCPA下有个不可分辨的序列。
证明:N个不同明文的序列的顺序是该域的子集。有个可能的子集,因此也有这么多个不可分辨的序列。
在一些示例中,IND-FAOCPA安全方案泄露明文序列的随机化顺序。因此,不可分辨的序列必须具有至少一个共同的随机化顺序。不同的序列可具有不同数目的不可分辨序列。考虑对两个不同的明文0和1(“女性”和“男性”)加密。序列X0=0,0具有4个不可分辨序列(包括其自身),但序列X1=0,1只有3个。因此,只能估计不可分辨序列的期望数目。下面在定理5中提供不可分辨序列的期望数目的下界:
定理7:令D为明文域中的不同明文的数目。对于具有N个不同明文的大小为n的均匀选择的明文序列,期望有至少个不可分辨的序列。
证明,对于唯一明文x的任何集合子序列xi<x可被扁平化为1,并且子序列xj>x可被扁平化为D。在此情况下,对于任何元素(不计双重的)和个这种元素的期望数目,有D-1个额外选择。其重复内的选择的顺序是独立的,因为全都是来自相同明文的,并且有N个这样的集合因此,有至少个期望的不可分辨序列。
可强调,不同明文的期望数目是这个数目随着n增长而逼近D。因此,IND-OCPA下的不可分辨序列的数目随着n增长而逼近1。相反,或N(N≤n)随着n增长而逼近无穷。因此,IND-FAOCPA下的不可分辨序列的数目也随着n增长而逼近无穷。
在一些实现方式中,相对于IND-FAOCPA安全的加密对于长序列保持安全(甚至提高了安全性),而(仅)相对于IND-OCPA安全的加密的安全性恶化。因此,明文的长(且增长的)序列的加密在IND-FAOCPA安全方案下比在仅IND-OCPA安全的方案下更安全。
在一些示例中,每个OPE方案—确定性的或随机化的—可被描述为单调递增函数。因此,简单的统计密码分析技术将把加密建模为线性函数。给定两个明文、密文对,可估计此函数的参数。
在一些示例中,此攻击的有效性可通过测量密文和明文之间的相关性来估计。对于明文、密文对的集合,可确定皮尔逊相关系数r。皮尔逊相关系数测量随机变量的两个集合之间的线性关系。
在一示例中,n=16384个(可能重复的)明文被独立加密并且是从N∈{64,256,1024,4096,16384,65536}不同明文的集合中均匀选择的。在此示例中,将密文空间设置为60比特,执行100次实验运行,并且确定相关系数r'。也确定90%置信区间。
为了分析,可将本公开的FH-OPE与上文论述的确定性Kerschbaum OPE方案相比较。Kerschbaum OPE方案是IND-OCPA安全的。在此示例分析中,对于n和N使用相同参数,但是对于密文长度考虑两个不同的选项。在一个情况中,扩张因子λ=5被固定到相同值(即,密文长度是5log2N-10比特)。在另一情况中,密文长度被固定到60比特。此示例分析的结果包括不同数据系列的置信区间中的重叠。因此,可得出结论,本公开的FH-OPE方案在IND-OCPA下不比Kerschbaum OPE方案更弱。
如上文介绍的,客户端侧存储空间是FH-OPE的限制资源。为了分析这一点,对实验数据集合加密并且测量客户端数据结构的存储消耗。
在此示例分析中,具有德国的所有人的数据库表格被加密。德国人口大约是n=8×107。字段“名”、“姓”、“生日”和“性别”被加密。利用公共信息(例如,http://de.wikipedia.org/wiki/Familienname,http://www.beliebte-vornamen.de/lexikon)估计这些字段的分布。在此示例分析中,执行20次测试运行,并且确定平均存储大小。在一些示例中,90%置信的范围始终低于测得值的0.05%。在任何的实验运行中,搜索树都没有被重平衡。此实验分析的结果在以下的表1中总结:
表1:德国人的数据库表格上的压缩效果
总体上,实现了几乎15的压缩比率。这对于具有最多客户端的小型到中型数据库可能是足够的了。还看到,对于更大的字段大小(例如,名、姓)压缩性能更好。与对于小字段相比,字典压缩对于这些字段性能更好。实际上,对于小字段大小—就像性别属性中那样—压缩技术甚至可能增大存储空间。
另外,测量了搜索树压缩本身的有效性。在示例分析中,考虑已经被字典压缩的值(例如,字段大小等于[log2N]字节,并且测量搜索树的大小,如本文所述)。在此示例分析中,n∈{105,106,107}个明文被均匀加密并且是从N∈{16,256,4096,65536,1048576}个不同明文之中选择的,并且执行20次测试运行,并且确定平均存储大小。90%置信区间的范围始终低于测得大小的0.1%。在任何的实验运行中,搜索树都没有被重平衡。结果表明,在不同明文的中心数目附近,搜索树压缩具有直到大约2的压缩比率的性能。可得出结论,对于适当的明文域,该压缩技术性能良好,但对于其他的,不同的技术可提供更好的性能。
鉴于此,也评估了上文描述的非完美FH-OPE。在此示例分析中,使用了N=2的明文域,因为整体压缩性能在此参数下最差。在此示例分析中,以概率Pr[x=1]∈{0.5,0.6,0.7,0.8,0.9}对n=106个明文加密,并且考虑偏斜分布。参数r=1.025被固定(即,从期望重复数目的偏离被限制到2.5%),并且参数p的范围在{0,0.025%,0.05%,0.075%,0.1%}上。在此示例分析中,执行20次测试运行,并且确定不同明文的平均数目e。可注意到,在没有上文论述的先前实验中的预过滤的情况下,不同明文的平均数目是n。因此,利用预过滤实现了n/e的额外压缩。90%置信区间的范围始终低于测得数目的9.5%。结果表明,不同密文的数目大致随着参数p而线性增长,并且明文分布(即,x=1的概率)对于不同密文的数目具有次要影响。另外,压缩是非常有效的。在此示例分析中,对于p=0实现了超过17000的压缩比率,并且对于p=0.1%仍然超过900。
执行了另一个示例分析来评估参数r的影响。在此示例分析中,n=106并且Pr[x=1]∈{0.5,0.6,0.7,0.8,0.9}。参数p=0.05%(即,在不均衡化分布的情况下选择新密文的概率是0.05%)。因此,期望至少500个不同的密文。在此示例分析中,执行20次测试运行,并且确定不同明文的平均数目e。90%置信区间的范围始终低于测得数目的16.6%。结果表明,不同密文的数目由于输入分布的方差而略微高于500。然而,该数目随着参数r增大而逼近500,因为容忍了更大的方差。同样,压缩是非常有效的,实现了大致在1700(r=1.025)和1900(r=1.1)之间的压缩比率。
鉴于这些示例分析,可得出结论,对于不服从标准压缩技术的明文,和/或对于具有资源约束客户端的非常大的数据库,本公开的非完美FH-OPE可用于提供适当的性能(例如,实际的客户端侧存储)。
现在参考图5,提供了示例计算***500的示意图。***500可用于联系本文描述的实现方式描述的操作。例如,***500可被包括在本文论述的任何或所有服务器组件中。***500包括处理器510、存储器520、存储设备530和输入/输出设备540。组件510、520、530、540利用***总线550互连。处理器510能够处理指令以用于在***500内执行。在一个实现方式中,处理器510是单线程处理器。在另一实现方式中,处理器510是多线程处理器。处理器510能够处理存储器520或存储设备530中存储的指令以在输入/输出设备540上显示用于用户界面的图形信息。
存储器520存储***500内的信息。在一个实现方式中,存储器520是计算机可读介质。在一个实现方式中,存储器520是易失性存储器单元。在另一实现方式中,存储器520是非易失性存储器单元。存储设备530能够为***500提供大容量存储。在一个实现方式中,存储设备530是计算机可读介质。在各种不同的实现方式中,存储设备530可以是软盘设备、硬盘设备、光盘设备或磁带设备。输入/输出设备540为***500提供输入/输出操作。在一个实现方式中,输入/输出设备540包括键盘和/或指点设备。在另一实现方式中,输入/输出设备540包括用于显示图形用户界面的显示单元。
描述的特征可在数字电子电路中实现,或者在计算机硬件、固件、软件或者它们的组合中实现。装置可在计算机程序产品中实现,该计算机程序产品被有形地体现在信息载体中,例如机器可读存储设备中,以供可编程处理器执行;并且方法步骤可由可编程处理器执行,该可编程处理器执行指令的程序以通过在输入数据上操作并生成输出来执行描述的实现方式的功能。描述的特征可有利地在一个或多个计算机程序中实现,该一个或多个计算机程序可在可编程***上执行,该可编程***包括至少一个可编程处理器,该可编程处理器被耦合来从数据存储***、至少一个输入设备和至少一个输出设备接收数据和指令并且向其发送数据和指令。计算机程序是可在计算机中直接或间接用于执行一定活动或带来一定结果的指令的集合。计算机程序可以用任何形式的编程语言来编写,所述语言包括经编译或解释的语言,并且计算机程序可按任何形式来部署,包括被部署为独立程序或被部署为模块、组件、子例程或者适合用在计算环境中的其他单元。
用于指令的程序的执行的适当处理器例如包括通用和专用微处理器两者,以及任何种类的计算机的唯一处理器或多个处理器之一。一般地,处理器将从只读存储器或随机访问存储器或者这两者接收指令和数据。计算机的元素可包括用于执行指令的处理器和用于存储指令和数据的一个或多个存储器。一般地,计算机也可包括用于存储数据文件的一个或多个大容量存储设备或者***作性地耦合以与这种存储设备通信;这种设备包括磁盘,例如内部硬盘和可移除盘;磁光盘;以及光盘。适用于有形地体现计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,例如包括半导体存储器设备,比如EPROM、EEPROM和快闪存储器设备;磁盘,比如内部硬盘和可移除盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可被ASIC(专用集成电路)所补充,或者被包含在ASIC中。
为了支持与用户的交互,特征可实现在计算机上,该计算机具有用于向用户显示信息的显示设备,例如CRT(cathode ray tube,阴极射线管)或LCD(liquid crystaldisplay,液晶显示器)监视器,以及用户可用来向计算机提供输入的键盘和指点设备,例如鼠标或跟踪球。
特征可在计算机***中实现,该计算机***包括后端组件,例如数据服务器,或者包括中间件组件,例如应用服务器或因特网服务器,或者包括前端组件,例如具有图形用户界面或因特网浏览器的客户端计算机,或者它们的任何组合。***的组件可由任何形式或介质的数字数据通信(例如通信网络)连接。通信网络的示例包括(例如,LAN、WAN),以及形成因特网的计算机和网络。
计算机***可包括客户端和服务器。客户端和服务器一般彼此远离并且通常通过例如所描述的那种之类的网络来交互。客户端和服务器的关系是由于计算机程序在各计算机上运行且相互之间具有客户端-服务器关系而发生的。
此外,附图中描绘的逻辑流程要实现期望的结果并不要求所示出的特定顺序或者先后次序。此外,可以向描述的流程提供其他步骤,或者可以从描述的流程中消除步骤,并且可以向描述的***添加其他组件,或者可以从描述的***中去除组件。因此,其他实现方式在所附权利要求的范围内。
已描述了本公开的若干个实现方式。然而,将会理解,在不脱离本公开的精神和范围的情况下可做出各种修改。因此,其他实现方式在所附权利要求的范围内。

Claims (20)

1.一种用于对数据加密以提供加密数据来存储在数据库中的由计算机实现的方法,该方法是利用一个或多个处理器执行的并且包括:
由客户端侧计算设备的至少一个处理器接收输入集合,该输入集合包括明文值,该明文值要被加密来提供加密值;
确定所述明文值是否被存储在由所述客户端侧计算设备存储的搜索树中,如果所述明文值未被存储在所述搜索树中,则利用所述明文值的确定性加密来提供所述加密值,而如果所述明文值被存储在所述搜索树中,则利用所述明文值的随机化加密来提供所述加密值;
更新所述搜索树以包括节点,该节点包括所述明文值和所述加密值;以及
由所述客户端侧计算设备将所述加密值发送到服务器侧计算设备以将所述加密值存储在所述数据库中。
2.如权利要求1所述的方法,其中,确定所述明文值是否被存储在搜索树中包括:
将所述明文值与所述搜索树的各个节点中的一个或多个明文值相比较;以及
基于所述明文值是否等于各节点的明文值而执行所述搜索树的二元遍历。
3.如权利要求2所述的方法,其中,所述搜索树的二元遍历是基于要求第一方向上的遍历的第一硬币值和要求第二方向上的遍历的第二硬币值执行的,所述硬币值是随机选择的。
4.如权利要求2所述的方法,还包括确定在所述搜索树中实现了阈值深度,并且作为响应,重平衡所述搜索树。
5.如权利要求1所述的方法,还包括压缩所述搜索树以存储在所述客户端侧计算设备中。
6.如权利要求1所述的方法,其中,所述明文值是利用保序加密来加密的。
7.如权利要求1所述的方法,还包括:
由所述客户端侧计算设备从所述服务器侧计算设备接收所述加密值;
遍历所述搜索树以基于所述加密值从所述搜索树中的多个节点中选择所述节点;以及
从所述节点取回所述明文值。
8.一种非暂态计算机可读存储介质,其耦合到一个或多个处理器并且其上存储有指令,所述指令当被所述一个或多个处理器执行时使得所述一个或多个处理器执行用于对数据加密以提供加密数据来存储在数据库中的操作,所述操作包括:
由客户端侧计算设备的至少一个处理器接收输入集合,该输入集合包括明文值,该明文值要被加密来提供加密值;
确定所述明文值是否被存储在由所述客户端侧计算设备存储的搜索树中,如果所述明文值未被存储在所述搜索树中,则利用所述明文值的确定性加密来提供所述加密值,而如果所述明文值被存储在所述搜索树中,则利用所述明文值的随机化加密来提供所述加密值;
更新所述搜索树以包括节点,该节点包括所述明文值和所述加密值;以及
由所述客户端侧计算设备将所述加密值发送到服务器侧计算设备以将所述加密值存储在所述数据库中。
9.如权利要求8所述的计算机可读存储介质,其中,确定所述明文值是否被存储在搜索树中包括:
将所述明文值与所述搜索树的各个节点中的一个或多个明文值相比较;以及
基于所述明文值是否等于各节点的明文值而执行所述搜索树的二元遍历。
10.如权利要求9所述的计算机可读存储介质,其中,所述搜索树的二元遍历是基于要求第一方向上的遍历的第一硬币值和要求第二方向上的遍历的第二硬币值执行的,所述硬币值是随机选择的。
11.如权利要求9所述的计算机可读存储介质,其中,操作还包括确定在所述搜索树中实现了阈值深度,并且作为响应,重平衡所述搜索树。
12.如权利要求8所述的计算机可读存储介质,其中,操作还包括压缩所述搜索树以存储在所述客户端侧计算设备中。
13.如权利要求8所述的计算机可读存储介质,其中,所述明文值是利用保序加密来加密的。
14.如权利要求8所述的计算机可读存储介质,其中,操作还包括:
由所述客户端侧计算设备从所述服务器侧计算设备接收所述加密值;
遍历所述搜索树以基于所述加密值从所述搜索树中的多个节点中选择所述节点;以及
从所述节点取回所述明文值。
15.一种***,包括:
客户端侧计算设备;以及
计算机可读存储设备,其耦合到所述客户端侧计算设备并且其上存储有指令,所述指令当被所述计算设备执行时使得所述计算设备执行用于对数据加密以提供加密数据来存储在数据库中的操作,所述操作包括:
由所述客户端侧计算设备的至少一个处理器接收输入集合,该输入集合包括明文值,该明文值要被加密来提供加密值;
确定所述明文值是否被存储在由所述客户端侧计算设备存储的搜索树中,如果所述明文值未被存储在所述搜索树中,则利用所述明文值的确定性加密来提供所述加密值,而如果所述明文值被存储在所述搜索树中,则利用所述明文值的随机化加密来提供所述加密值;
更新所述搜索树以包括节点,该节点包括所述明文值和所述加密值;以及
由所述客户端侧计算设备将所述加密值发送到服务器侧计算设备以将所述加密值存储在所述数据库中。
16.如权利要求15所述的***,其中,确定所述明文值是否被存储在搜索树中包括:
将所述明文值与所述搜索树的各个节点中的一个或多个明文值相比较;以及
基于所述明文值是否等于各节点的明文值而执行所述搜索树的二元遍历。
17.如权利要求16所述的***,其中,所述搜索树的二元遍历是基于要求第一方向上的遍历的第一硬币值和要求第二方向上的遍历的第二硬币值执行的,所述硬币值是随机选择的。
18.如权利要求16所述的***,其中,操作还包括确定在所述搜索树中实现了阈值深度,并且作为响应,重平衡所述搜索树。
19.如权利要求15所述的***,其中,操作还包括压缩所述搜索树以存储在所述客户端侧计算设备中。
20.如权利要求15所述的***,其中,所述明文值是利用保序加密来加密的。
CN201610879747.8A 2015-10-01 2016-10-08 频率隐藏保序加密 Active CN107070847B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/872,389 US9800558B2 (en) 2015-10-01 2015-10-01 Frequency-hiding order-preserving encryption
US14/872,389 2015-10-01

Publications (2)

Publication Number Publication Date
CN107070847A true CN107070847A (zh) 2017-08-18
CN107070847B CN107070847B (zh) 2021-05-04

Family

ID=56985422

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610879747.8A Active CN107070847B (zh) 2015-10-01 2016-10-08 频率隐藏保序加密

Country Status (3)

Country Link
US (1) US9800558B2 (zh)
EP (1) EP3151461B1 (zh)
CN (1) CN107070847B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108768639A (zh) * 2018-06-06 2018-11-06 电子科技大学 一种公钥保序加密方案
CN111339562A (zh) * 2020-02-28 2020-06-26 中国工商银行股份有限公司 保序/揭序密文恢复方法及装置
CN112231752A (zh) * 2020-10-20 2021-01-15 南开大学 一种无交互频率隐藏的密文***查询删除方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10360390B2 (en) * 2016-12-14 2019-07-23 Sap Se Oblivious order-preserving encryption
US10614055B2 (en) * 2016-12-29 2020-04-07 Emc Ip Holding Cimpany Llc Method and system for tree management of trees under multi-version concurrency control
US10698883B2 (en) 2017-10-25 2020-06-30 International Business Machines Corporation Data coherency between trusted DBMS and untrusted DBMS
US10540356B2 (en) 2017-10-25 2020-01-21 International Business Machines Corporation Transparent analytical query accelerator over encrypted data
CN111295656A (zh) * 2017-10-30 2020-06-16 Abb瑞士股份有限公司 隐私保护日志分析
US10546032B2 (en) 2017-11-21 2020-01-28 International Business Machines Corporation System and method for association rule mining from encrypted databases
US10831911B2 (en) 2017-12-19 2020-11-10 Industrial Technology Research Institute Method, computer program product and processing system for generating secure alternative representation
US10528556B1 (en) * 2017-12-31 2020-01-07 Allscripts Software, Llc Database methodology for searching encrypted data records
US10885216B2 (en) * 2018-01-18 2021-01-05 Sap Se Secure substring search to filter encrypted data
US10958415B2 (en) * 2018-07-11 2021-03-23 Informatica Llc Method, apparatus, and computer-readable medium for searching polymorphically encrypted data
US10909261B2 (en) 2018-12-12 2021-02-02 Industrial Technology Research Institute Method and computer program product for generating secure alternative representation for numerical datum
US10746567B1 (en) 2019-03-22 2020-08-18 Sap Se Privacy preserving smart metering
US11048816B2 (en) * 2019-04-02 2021-06-29 Sap Se Secure database utilizing dictionary encoding
US11860868B2 (en) 2021-12-14 2024-01-02 International Business Machines Corporation Secure database-as-a-service system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120117123A1 (en) * 2010-11-10 2012-05-10 International Business Machines Corporation Assigning resources to a binary tree structure
US8291509B2 (en) * 2008-10-17 2012-10-16 Sap Ag Searchable encryption for outsourcing data analytics
CN102843372A (zh) * 2012-08-28 2012-12-26 西安交通大学 一种基于随机区间划分的保序加密方法
CN103414552A (zh) * 2013-07-31 2013-11-27 深圳信息职业技术学院 一种利用二叉树遍历方式进行加密、解密方法及装置
CN104408177A (zh) * 2014-12-15 2015-03-11 西安电子科技大学 基于云文档***的密文检索方法
EP2876838A1 (en) * 2013-11-22 2015-05-27 Sap Se Average-complexity ideal-security order-preserving encryption

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574906A (en) * 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
US7426752B2 (en) * 2004-01-05 2008-09-16 International Business Machines Corporation System and method for order-preserving encryption for numeric data
US7395437B2 (en) 2004-01-05 2008-07-01 International Business Machines Corporation System and method for fast querying of encrypted databases
EP1757006A2 (en) 2004-06-01 2007-02-28 Ben-Gurion University of the Negev Research and Development Authority Structure preserving database encryption method and system
US9684710B2 (en) * 2009-05-28 2017-06-20 Microsoft Technology Licensing, Llc Extending random number summation as an order-preserving encryption scheme
US20120121080A1 (en) 2010-11-11 2012-05-17 Sap Ag Commutative order-preserving encryption
KR101727312B1 (ko) 2010-12-22 2017-04-14 한국전자통신연구원 순서 보존 암호화 및 복호화 장치와 그 방법
US8806223B2 (en) 2011-05-03 2014-08-12 Douglas Norman Crowe System and method for management of encrypted data
EP2712115A4 (en) 2011-05-18 2015-01-21 Nec Corp SEQUENTIAL ENCRYPTION SYSTEM AND DEVICE, METHOD AND PROGRAM THEREFOR
US8958550B2 (en) 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
US20140095860A1 (en) 2012-09-28 2014-04-03 Alcatel-Lucent Usa Inc. Architecture for cloud computing using order preserving encryption
US8839410B2 (en) 2012-11-20 2014-09-16 Sap Ag Type-system for mixed protocol secure computation
US9003204B2 (en) 2013-07-10 2015-04-07 Sap Se Optimal re-encryption strategy for joins in encrypted databases

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291509B2 (en) * 2008-10-17 2012-10-16 Sap Ag Searchable encryption for outsourcing data analytics
US20120117123A1 (en) * 2010-11-10 2012-05-10 International Business Machines Corporation Assigning resources to a binary tree structure
CN102843372A (zh) * 2012-08-28 2012-12-26 西安交通大学 一种基于随机区间划分的保序加密方法
CN103414552A (zh) * 2013-07-31 2013-11-27 深圳信息职业技术学院 一种利用二叉树遍历方式进行加密、解密方法及装置
EP2876838A1 (en) * 2013-11-22 2015-05-27 Sap Se Average-complexity ideal-security order-preserving encryption
CN104408177A (zh) * 2014-12-15 2015-03-11 西安电子科技大学 基于云文档***的密文检索方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RALUCA ADA POPA 等: "An Ideal-Security Protocol for Order-Preserving Encoding", 《2013 IEEE SYMPOSIUM ON SECURITY AND PRIVACY》 *
宋志毅: "基于保序加密的MongoDB数据加密技术研究与实现", 《第十届中国通信学会学术年会论文集》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108768639A (zh) * 2018-06-06 2018-11-06 电子科技大学 一种公钥保序加密方案
CN108768639B (zh) * 2018-06-06 2021-07-06 电子科技大学 一种公钥保序加密方法
CN111339562A (zh) * 2020-02-28 2020-06-26 中国工商银行股份有限公司 保序/揭序密文恢复方法及装置
CN111339562B (zh) * 2020-02-28 2022-06-03 中国工商银行股份有限公司 保序/揭序密文恢复方法及装置
CN112231752A (zh) * 2020-10-20 2021-01-15 南开大学 一种无交互频率隐藏的密文***查询删除方法
CN112231752B (zh) * 2020-10-20 2022-09-09 南开大学 一种无交互频率隐藏的密文***查询删除方法

Also Published As

Publication number Publication date
US9800558B2 (en) 2017-10-24
US20170099262A1 (en) 2017-04-06
CN107070847B (zh) 2021-05-04
EP3151461A1 (en) 2017-04-05
EP3151461B1 (en) 2019-11-06

Similar Documents

Publication Publication Date Title
CN107070847A (zh) 频率隐藏保序加密
Kerschbaum Frequency-hiding order-preserving encryption
Kerschbaum et al. Optimal average-complexity ideal-security order-preserving encryption
Yi et al. Privacy-preserving association rule mining in cloud computing
US7890774B2 (en) System and method for fast querying of encrypted databases
EP3168771A1 (en) Poly-logarythmic range queries on encrypted data
Joye et al. Private yet efficient decision tree evaluation
Haitner et al. Finding collisions in interactive protocols---tight lower bounds on the round and communication complexities of statistically hiding commitments
US11856099B2 (en) Cryptographic pseudonym mapping method, computer system, computer program and computer-readable medium
Xu et al. Leakage resilient proofs of ownership in cloud storage, revisited
Kim et al. Better security for queries on encrypted databases
Liu et al. A novel secure scheme for supporting complex SQL queries over encrypted databases in cloud computing
Xu et al. Efficient strong privacy-preserving conjunctive keyword search over encrypted cloud data
Sinha et al. A comparative study and analysis of some pseudorandom number generator algorithms
Tosun et al. FSDS: A practical and fully secure document similarity search over encrypted data with lightweight client
Guo et al. Order‐Revealing Encryption Scheme with Comparison Token for Cloud Computing
Chakraborty et al. BSMFS: Blockchain assisted secure multi-keyword fuzzy search over encrypted data
Togan et al. Comparison-based applications for fully homomorphic encrypted data
CN115455463A (zh) 一种基于同态加密的隐匿sql查询方法
Yang et al. Practical Frequency‐Hiding Order‐Preserving Encryption with Improved Update
Zhang et al. Privacy-preserving multi-pattern matching
Hahn et al. Delegatable order-revealing encryption for reliable cross-database query
Du et al. Database padding for dynamic symmetric searchable encryption
Chen et al. Memory leakage-resilient dynamic and verifiable multi-keyword ranked search on encrypted smart body sensor network data
Yang et al. An efficient update algorithm for mutable order-preserving encryption

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