CN105659231A - 实现对数据的访问 - Google Patents

实现对数据的访问 Download PDF

Info

Publication number
CN105659231A
CN105659231A CN201480057349.7A CN201480057349A CN105659231A CN 105659231 A CN105659231 A CN 105659231A CN 201480057349 A CN201480057349 A CN 201480057349A CN 105659231 A CN105659231 A CN 105659231A
Authority
CN
China
Prior art keywords
key
data
access
received
request
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
CN201480057349.7A
Other languages
English (en)
Other versions
CN105659231B (zh
Inventor
鲍里斯·塔拉蒂内
马尔科姆·刘易斯
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.)
Visa Europe Ltd
Original Assignee
Visa Europe Ltd
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 Visa Europe Ltd filed Critical Visa Europe Ltd
Priority to CN202010930179.6A priority Critical patent/CN112069092B/zh
Publication of CN105659231A publication Critical patent/CN105659231A/zh
Application granted granted Critical
Publication of CN105659231B publication Critical patent/CN105659231B/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
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/602Providing cryptographic facilities or services
    • 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
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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/25Integrating or interfacing systems involving database management systems
    • 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
    • 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
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Abstract

用于实现由请求方访问数据的方法、系统、设备以及计算机程序。生成数据的多个集合。然后,将单向函数用于生成各自与多个集合中的相应的一个集合相关联的多个密钥。在生成用于该集合的密钥时,与在规定集合内的数据相关联的信息被用作至单向函数的输入。将密钥分配给请求方。随后,请求方可使用所接收到的密钥产生数据访问请求。在接收到密钥时,可以实现对数据的访问。然后,请求方可从与所接收的数据的至少一部分相关联的信息生成认证数据并且通过将认证数据与从所接收到的密钥推导出的数据进行比较来认证所接收到的数据。

Description

实现对数据的访问
技术领域
本发明涉及用于实现对数据的访问,并且具体而言,涉及实现使多个请求方访问数据的设备、系统以及方法。
背景技术
在很多通信系统中,期望控制对数据的访问。具体而言,期望具有一种系统,其中,允许不同的请求方访问给定的数据块内的特定的数据部分同时防止访问其他数据部分。而且,期望允许不同的参与方(party)访问数据的相同数据部分,同时不(例如)使双方访问全部相同的数据部分;即,允许各方重叠访问,但是无需是一致的访问。
在US2005/0180573中描述了提供这样的系统的一个实例。在该实例中,将数据块分成多个部分。然后,使用不同的部分专用密钥对数据的各部分进行加密。然后,给请求方提供参与方专用密钥,该参与方专用密钥可以用于获得或者解密部分专用密钥。设置该参与方专用密钥使得规定的参与方仅能够获取与允许参与方访问的数据部分相对应的部分专用密钥。这使请求方能够解密并且因此访问允许参与方访问的数据部分。
然而,该系统具有多个缺点。例如,丢失密钥或者移除规定的请求方的访问权,这意味着先前允许规定参与方访问的数据的所有部分都必须重新进行加密。此外,该系统要求各方使用的任何计算机设备能够解密数据,这增加了总体系统的费用。
因此,需要一种用于实现对数据的访问的改进的系统。
发明内容
根据至少一个实施方式,提供了用于支持或实现传输数据的功能的方法、装置、系统以及软件。
这由在各独立权利要求中记载的特征的组合实现。因此,从属权利要求规定了各种实施方式的进一步的详细实施方式。
根据本发明的第一方面,提供了一种实现由请求方对数据进行访问的方法,所述方法包括:生成数据的多个集合;使用单向函数生成各自与所述多个集合中的相应的一个集合相关联的多个密钥,其中,在生成与所述集合相关联的密钥时,与数据的所述集合相关联的信息被用作至所述单向函数的输入;对密钥进行布置以能够用于被分配给一个或多个请求方;从所述请求方接收包括密钥的数据访问请求;并且基于所接收到的密钥实现由所述请求方对所述集合中的数据进行访问。
通过生成所述集合,并且使所述集合与密钥相关联,实施方式能够有效地控制对数据的访问。如果密钥被泄漏-即,密钥被未授权访问数据的参与方知道,那么需要做出的改变仅是密钥与所述集合之间的关联。例如,可生成新密钥,并且可撤销被泄漏的密钥。由于不需要重新加密,所以这比在背景部分中描述的加密系统更有效。
另外,由于使用单向函数(one-wayfunction),所以第三方将不能创建用于访问数据的有效密钥,因此,有效密钥的来源仅仅通过密钥生成器分配。这给系统提供了更高的安全性,这是因为密钥的分配可以控制并且用于限制对数据进行访问,并且由于密钥本身提供认证请求方并且从而控制访问数据的方式。这可以与其中提供简单的指针(例如,URL)以能够访问远程数据的系统形成对比。
通过使用数据本身来生成密钥,密钥能够执行两个功能。第一,能够访问数据,并且其次,密钥使接收方能够使用密钥认证所检索到的数据。具体而言,密钥可以用于检测在所生成的密钥与访问的数据之间的数据的变化(无论是意外还是收到攻击)。由于(一旦分配的)密钥由与数据分离的请求方持有,这使得在未被检测的情况下更加难以修改数据。
与一集合的数据相关联的信息可标识该集合的数据的内容。可替换地,与一集合的数据相关联的信息可包括该数据的内容的至少一部分。
方法可包括将一个或多个混淆值(saltvalue)用作至所述单向函数的输入。而且,该方法可包括存储用于生成特定密钥的混淆值作为在使用该特定密钥可访问的集合中的数据。
例如,混淆值例如能够为相同的数据生成不同的密钥,从而使能够分配给请求方不同的密钥。虽然混淆值可通过密钥发送给请求方,或者单独可用于检索,但是在实施方式中,混淆值可通过数据储存在组合内并且通过数据分配,从而在接收时使请求方能够认证数据。
单向函数可包括以下中的一个或多个:散列函数;加密签名函数;随机数生成器;以及伪随机数生成器。在实施方式中,所述密钥具有高熵(highentropy)。
可以实现访问有限次数的请求包括特定密钥(givenkey)。因此,该方法可包括生成与特定集合相关联的多个密钥。该方法还可包括响应于接收包括与特定集合(givenset)相关联的第一密钥的请求生成与特定集合相关联的第二密钥。
这降低了其中攻击方拦截数据请求从而获取有效密钥的中间人攻击的效力。一旦使用,密钥将停止有效,因此,攻击方使用密钥获得访问数据的任何尝试都不会成功。
该方法可包括使多个密钥与所述集合相关联;对所述多个密钥进行布置以能够用于分配;根据所满足的预定标准实现对数据的所述集合的访问,所述预定的标准取决于接收所述多个密钥中的两个或多个。
在一些实施方式中,方法可包括生成第一密钥、第二密钥以及第三密钥,所述第三密钥与至少所述第一密钥和所述第二密钥的组合相关;使所述第三密钥与特定的所述集合相关联;对所述第一密钥和所述第二密钥进行布置以能够用于分配;并且根据接收所述第一密钥和所述第二密钥的组合或所述第三密钥来授权对特定的所述集合进行访问。
通常,可能需要两个密钥来访问某些数据。这可反过来用于确保仅仅在两个请求方式合作时将使访问被授权。
方法可包括使第一密钥和第二密钥与相应的另外的集合相关联。方法可进一步包括将所述密钥和标识所述集合的信息储存在查找表中;并且还包括在查找表中标识在与所接收到的密钥相关联的集合中的数据。
在实施方式中,方法可包括使用第一协议传输密钥,从而使所述密钥能够用于分配,并且其中,集合中的至少一部分数据适用于通过不同的第二协议进行传送。同样,方法可进一步包括使用第二协议实现对数据的访问。
在一些系统中,所建立的协议不能处理某些数据。然而,在实施方式中,建立的协议可用于分配密钥,并且随后使用替换的协议检索集合中的数据。因此,不需要更新系统,尤其是使用建立的协议的实体,然而,任何更新的实体不能访问额外数据,即,在所述集合内的数据。
根据本发明的第二方面,提供了一种访问和认证数据的方法,所述方法包括:接收密钥;使用所接收到的密钥产生数据访问请求;响应于请求接收数据;使用单向函数从与所接收到的数据相关联的信息生成认证数据;通过将所述认证数据与从所接收到的密钥推导出的数据进行比较来认证所接收到的数据。
根据本发明的第三方面,提供了一种使请求方能够访问数据的设备,所述设备配置为:生成数据的多个集合;使用单向函数生成各自与所述多个集合中的相应的一个集合相关联的多个密钥,其中,在生成与所述集合相关联的密钥时,与数据的所述集合相关联的信息被用作至所述单向函数的输入;对密钥进行布置以能够被用于分配给一个或多个请求方;从所述请求方接收包括密钥的数据访问请求;并且基于所接收到的密钥实现由所述请求方对所述集合中的数据进行访问。
根据本发明的第四方面,提供了一种用于访问和认证数据的设备,所述设备被配置为:接收密钥;使用所接收到的密钥产生数据访问请求;响应于该请求接收数据;使用单向函数从与所接收到的数据相关联的信息生成认证数据;并且通过将认证数据与从所接收到的密钥推导出的数据进行比较来认证所接收到的数据。
根据本发明的第五方面,提供了一种计算机程序,被布置为执行实现由请求方对数据进行访问的方法,所述方法包括:生成数据的多个集合;使用单向函数生成各自与所述多个集合中的相应的一个集合相关联的多个密钥,其中,在生成与所述集合相关联的密钥时,与数据的所述集合相关联的信息被用作至所述单向函数的输入;对密钥进行布置以能够被用于分配给一个或多个请求方;从所述请求方接收包括密钥的数据访问请求;并且基于所接收到的密钥实现由所述请求方对所述集合中的数据进行访。
根据本发明的第六方面,提供了一种计算机程序,被布置为执行访问和认证数据的方法,所述方法包括:接收密钥;使用所接收到的密钥产生数据访问请求;响应于该请求接收数据;使用单向函数从与所接收到的数据相关联的信息生成认证数据;并且通过将所述认证数据与从所接收到的密钥推导出的数据进行比较来认证所接收到的数据。
从下面通过参照附图仅借助于示例给出的优选实施方式的描述中,进另外的特征和优点将是显而易见的。
附图说明
现在参照附图,仅通过实例来描述作为实施方式的系统、设备以及方法,在附图中:
图1示出了其中可实践本发明的实施方式的通信系统的示意图;
图2示出了根据实施方式的方法;
图3示出了根据实施方式的使用组合式密钥的另外的方法;
图4示出了根据实施方式的其中密钥可以使用有限的次数的方法;
图5示出了根据实施方式的其中生成多个密钥,而每个密钥可使用有限的次数的另外的方法;
图6示出了可在本发明的实施方式中使用的网络节点的示意图。
实施方式的一些部件、元件和/或步骤出现在不止一幅图中;为了清晰起见,在所有的图中,相同的参考数字用于表示相同的部件、元件或步骤。
具体实施方式
图1示出了通信系统1,其中,多个请求方可访问储存在诸如数据库的数据存储器内的数据。在通信系统内,数据被储存在访问系统10内并且通过访问系统控制对数据的访问。
访问系统10包括多个节点或元件12、14、16、18以及20。这些包括数据源12,该数据源接收或者生成数据以被储存并且随后访问。数据源12连接至第一数据库14。密钥生成器16连接至第一数据库14,并且另外连接至第二数据库18。访问控制器20连接至第一数据库14和第二数据库18。
密钥生成器16经由第一网络22连接至多个请求方24A、24B以及24C。例如,访问控制器20经由第二网络26还连接至请求方24A、24B以及24C。
访问系统10可以是单个装置。因此,在访问系统内的节点12、14、16、18以及20至少可以部分组合-例如,单个数据库装置可用于提供上面描述的两个数据库14和18的储存。然而这并非必须的,并且例如通过处于云中而可以分配访问系统10,这是因为这种节点12、14、16、18以及20中的一些或所有可以是互连的网络节点。
请求方24A、24B以及24C可远离访问系统10;因此,网络22和26可以是局域网、互联网或者专属通信网络。虽然单独地描述了网络22和26-下面详述其中的原因-但是这并非必须的,并且网络22和26可形成单个网络。
现在,将参照图2到图5描述上文在图1中描述的通信系统1的操作。在这些图中,相同或者至少相似的步骤将设置有相同的参考数字。假设在图2到图5中示出的步骤之前,已在数据源12上生成或者已由数据源12接收了适当的数据。该数据可采用任何数量的形式,例如,作为文档、交易数据、媒体,例如,音频或视频和/或元数据。在数据部分中可接收数据,例如,在结构化或表格化的形式的数据中的单独的文件、媒体部分或者字段和记录。可替换地或者另外地,数据可由数据源12分成合适的数据部分。在下面描述的实例中,数据部分具有参考标号P1到P9。
图2示出了根据实施方式的通信系统1的操作。在步骤102中,数据源将部分P1到P9中的数据储存在第一数据库14中。然后,在步骤104中,密钥生成器16与第一数据库14通信并且生成与数据相关联的密钥。这样做,密钥生成器16生成多集合数据部分。每集合标识一个或多个数据部分。该多个集合可至少部分重叠,使得在两个或多个集合内标识至少一个数据部分。下面显示了示出将数据示例性分配到集合S1和S2中的表格。
集合 部分
S1 P2,P3,P6
S2 P1-P5,P7
在此处,在集合S1和S2两者中标识数据部分P2和P3。在集合S1和S2中任一个中都不标识数据部分P8和P9-下面参照图3描述访问这些部分的方法。
为了生成集合,密钥生成器16可检索和处理在第一数据库14内的部分P1到P9中的所有或一部分。下面将详细描述可以这样做的多种不同方法,但是为了简明在此处将不进行描述。
由于已生成了多集合,所以密钥生成器16随后使用单向函数来生成多个密钥。各密钥与相应的集合相关联,如在下面的表格中所示。
密钥 集合 部分
K1 S1 P2,P3,P6
K2 S2 P1-P5,P7
随后,在步骤106中,密钥生成器16将密钥和使密钥与所述集合相关联的信息储存在第二数据库18中。这个数据例如可储存在查找表内。
密钥生成器16还将密钥设置为可用于分配给一个或多个请求方,例如,参与方24A和24B。这由步骤108示出,其中,密钥K可被生成用于参与方24A,并且密钥K2可被生成用于参与方24B。在该实例中,参与方24C不接收密钥,下面更详细地描述其原因。返回参照图1,可通过第一网络22执行密钥的分配。
上面描述了创建和分配密钥。下面描述这些密钥可被用于实现请求方对数据的访问。
在步骤110中,请求方24A将数据访问请求传输给访问控制器20。数据访问请求包括已由请求方24A在步骤108中接收的密钥K1。由于接收了数据访问请求,所以访问控制器20使请求方24A能够实现对在与所接收的密钥相关联的集合中标识的一个或多个数据部分的访问,如将参照步骤112到120进行详细描述。
在步骤112中,访问控制器20使用所接收的密钥K1标识与所接收的密钥相关联的集合-在这种情况下为集合S1。可通过在第二数据库18内进行查找来完成该操作。在步骤114中,由访问控制器20接收标识所述集合/或部分的数据。然后,在步骤116中,访问控制器20从第一数据库14检索相关部分-在这种情况下为部分P2、P3以及P6。所述部分在步骤118中由访问控制器20接收并且在步骤120中被发送给请求方24A。因此,实现了请求方24A对部分P2、P3以及P6的访问。请求方24A仅能够访问部分P2、P3以及P6;不能访问除了与密钥K1相关的部分以外的部分,即,部分P1、P4-P5以及P7-P9。
如在图2中所示,在步骤122到132中,可由请求方24B发出相似的访问请求。在这些步骤中的差异在于,由访问控制器20接收的密钥是密钥K2(而不是密钥K1),因此,返回请求方24B的部分是部分P1-P5和P7,这些部分是在与密钥K2相关联的集合S2内被标识的部分。
如上所述,请求方24C未接收到有效密钥;即,在步骤108中,密钥未分配给请求方24C。因此,请求方24C可假设为攻击方,期望获得对数据部分的访问,而该访问使没有被授权的。在该实例中,请求方24C使用无效密钥K#。这个无效密钥K#例如可以是猜出的或者随机生成的密钥。在步骤134中,由访问控制器20接收包括无效密钥的请求并且用于在步骤136中执行在第二数据库18中的查找。然而,该查找不成功,这是因为没有与无效密钥K#相关联的集合或部分。访问控制器20在步骤138中从第二数据库18接收没有相关联的部分的通知,因此,访问控制器20拒绝请求方24C访问任何数据部分。在步骤140中,这可包括访问控制器将拒绝消息传输给请求方24C;然而,这并非必须的,并且如果不做出回应,那么访问控制器20完全可忽略在步骤134中发出的请求。
上面描述了根据实施方式的实现对数据访问的第一方法。通过生成集合,并且使集合与密钥相关联,实施方式能够有效地控制对数据部分的重叠集合的访问-即,对其中两个集合标识相同的数据部分的访问。而且,如果密钥被泄漏(compromised)-即密钥被未授权访问数据的参与方知道-那么需要做出的改变仅是在密钥与所述集合之间的关联(association)。例如,可生成新的密钥,并且使该新的密钥与先前与被泄漏的密钥相关联的集合相关联。然后,撤销、删除或者抑制被泄漏的密钥。由于不需要重新加密,所以这比在背景部分中所描述的加密系统更有效。
用于生成密钥的单向函数是这样一种函数:被设计使得容易利用输入计算输出,但是难以利用输出计算输入。这种本领域中是已知的,并且因此将不进行详细描述。
单向函数(用于生成密钥)是数学函数,其在一个方向(正向)上进行计算明显比在相反的方向(逆向)上进行计算容易。例如,可能在正向上以秒来计算函数,但是在其相反方向上进行计算肯尼刚需要几个月或者几年(如果可能的话)。单向函数将给出在整个密钥空间(该密钥空间是密钥可采用的可能值的范围)中不可预测的并且平等分配的输出。
由于使用单向函数,所以第三方将不能创建有效密钥以用于访问数据,因此,仅有效密钥的来源是通过密钥生成器16分配的。这给系统提供了更高的安全性,这是因为密钥的分配是可以控制的并且用于限制对数据的访问,并且由于密钥本身提供认证请求方并且从而控制访问数据的方式。而且,如果密钥被攻击,那么仅仅与该密钥相关联的数据部分的集合容易受到攻击,而非整个数据。这还可以与密钥仅表示不受阻碍的请求数据的系统形成相比。这种系统可以启用数据的分配,但是不能防止攻击方改变请求的形式,并且从而访问不同的数据部分。
合适的单向函数的实例包括随机或伪随机数生成器、散列函数(下面更详细描述其应用)以及所谓的“陷阱门(trapdoor)”单向函数。陷阱门单向函数是针对给定的某个数据块(陷阱门)逆向是容易的,而针对其他数据块是困难的单向函数。例如,公钥密码系统可基于陷阱门单向函数。公钥提供关于该函数的特定实例的信息;私钥提供关于陷阱门的信息。了解陷阱门的任何人在两个方向都可以容易地计算函数,但是缺少陷阱门的任何人都仅仅可以在正向上容易地执行函数。正向被用于加密和签名认证;逆向被用于解密和签名生成。
密钥的使用提供了在使用例如基于用户名/密码的认证系统上提供了多个优点。首先,这些密钥实现了对访问控制的更大的粒度(granularity)-即,规定的请求方可设置有多个密钥,每个密钥能够访问数据的不同部分。这可以由以下表格示出。在此处,数据部分表示在数据库结构中的字段。数据库结构进一步将数据分成均包括部分(即,字段)P1到P9的记录。可为每个记录创建部分的集合,如下面在表格中所示。
集合ID P1 P2 P3 P4 P5 P6 P7 P8 P9
R1 P1R1 P2R1 P3R1 P4R1 P5R1 P6R1 P7R1 P8R1 P9R1
R2 P1R2 P2R2 P3R2 P4R2 P5R2 P6R2 P7R2 P8R2 P9R2
R3 P1R3 P2R3 P3R3 P4R3 P5R3 P6R3 P7R3 P8R3 P9R3
因此,为了继续以上实例,密钥K1R1可与集合S1R1相关联,该集合反过来可与在第一记录R1内的部分P2R1、P3R1以及P6R1相关联。可以创建相似的密钥K1R2、K1R3、K2R1等并且分配给各种记录中的部分的其他集合。请求方可具有密钥中的一个或者密钥的组合,并且因此提供了对数据的高度可控访问。
另外的优点在于,请求方可与其他参与方共享密钥,并且从而使这些其他参与方能够访问与所共享的密钥相关联的数据部分。可以在无需给其他的参与方提供例如完整的用户名和密码的证书(这会严重危害系统的安全性)并且给其他方提供对通过该用户名和密码可访问一切的访问而非特定数据的情况下完成操作。
密钥可具有高熵。即,用于生成密钥的这个单向函数被设计为具有高熵输出。在这种情况下,熵是在生成密钥中的不可预测性或随机性的量,在此处涉及可存在的同样可能的密钥的数量。高熵反过来表示要做出暴力攻击的同样可能的密钥的数量足够大,从而发现更少数量的有效密钥不切实际。
例如,在相对低安全性的系统中,密钥可能是16位字,等于大约65,000个可能的密钥,并且可分配大约50(~26)个密钥。这提供了大约1000(103或210):1的可能密钥与有效密钥的比率。在更高安全性的系统中,该比率可能是十亿(109或230):1或更高。例如,密钥可能是64位、128位、256位(或更高)的数字或字,等于大约1019(264)、1038(2128)或1077(2256)个可能密钥。在这种系统中,即使分配大约十亿(109或230)个密钥,可能密钥与有效密钥的比率分别超过1010(~234):1、1029(~298):1以及1068(~2226):1。要理解的是,出于系统的设计目的,诸如用于生成密钥的算法、可以处理的请求的数量、要分配的密钥的数量以及请求数据处理大密钥的装置的能力等因素确定特定密钥长度是否具有足够高的熵。
在确定密钥长度是否具有足够高的熵时可考虑的另外的因数涉及在两个相同的有效密钥之间具有冲突的概率。即使有效密钥的数量较大,如果具有大量有效密钥,那么会发生这种情况。可估计要使用的有效密钥的数量,并且选择密钥长度以提供熵,该熵提供低于可接受水平的冲突的风险。
充足的密钥熵是缓解被称为生日问题(birthdayproblem)的已知攻击的一种方式。例如,在使用64位密钥的系统中,如果大约一亿(108或227)个密钥有效,那么两个有效密钥相等的概率小于1%。然而,如果密钥数量的100倍(即,100亿个密钥(1010或233)有效,那么冲突的概率(即,具有两个相等的有效密钥)大于99%。根据系统的性质、生成密钥的方式以及在密钥与数据之间的关系,这可以是或者不是个问题。然而,找出(例如,猜出)任何有效密钥的概率是确定特定密钥长度是否具有足够高的熵来用于系统的期望安全的因素。
在一些实施方式中,例如,可设置使用密钥可接近的数据的性质,以便找出有效密钥的高概率不是个问题。例如,在密钥用于控制访问多媒体(例如,视频)的情况下,冲突可给参与方提供访问表示单个视频的小部分的数据部分。这不被视为问题,这是因为该方没有访问视频的剩余部分,因此,没有多少价值(即,整个视频)。因此,在这种系统中,冲突的概率较高,然而,密钥依然可具有足够高的熵。通过对比,如果数据部分表示商业上敏感的数据,例如,财务数据,那么获得访问甚至少量数据的参与方可以表示安全问题,因此,必须使冲突的概率对于密钥明显更低,以具有足够高的熵。
由密钥生成器16使用的单向函数可以是伪随机数生成器,在本领域中众所周知。可替换地,密钥生成器16可设置为使用不可预测的输入生成随机数,例如,硬盘驱动器的头部的温度或运动。这生成随机数,有时称为真随机数,该随机数不如伪随机数具有确定性。在本领域中再次已知这种系统,并且这种系统使用单向函数来创建均匀地分布在值的期望范围之上的值。在该背景下,单向函数有时称为随机抽取算法。在任一种情况下,虽然密钥能够访问规定的数据部分,但是密钥采用的值与数据部分本身没有直接关系。
因此,可替换地,为了生成密钥,密钥生成器16可将与数据部分相关联的信息用作所述单向函数的输入。该信息可与在这集合数据部分内的数据部分相关联,以与密钥相关联。该信息可包括数据部分的至少一部分内容,可替换地或者此外,该信息可标识数据部分,例如,作为元数据、部分标识符、文件名等。
在使用与数据部分相关联的信息生成密钥的情况下,单向函数可包括散列函数。散列函数将输入信息的长度减小为期望长度,即,密钥的长度。通常,散列函数也产生非常均匀的输出,这表示预期的输入均匀地映射在输出范围之上。这具有以下额外效应:输入的小幅变化通常造成输出具有大量不可预测的变化。
在实施方式中,单向函数可包括加密签名函数,该函数可与上述散列函数组合。在这两者组合的情况下,散列函数可在该信息上使用,并且签名散列结果。
使用与数据部分相关联的信息生成密钥的优点(例如,标识信息(例如,元数据)或数据部分本身的实际内容)在于密钥可用作双重目的。即,密钥不仅仅使请求方能够访问数据部分,而且使请求方能够认证能够访问的数据部分是真实的。结果,由于可检测在分配的密钥与检索的数据部分之间的数据部分的任何变化,所以增强安全性。
在实施方式中,所有数据可用于生成密钥,这反过来能够认证所有数据的有效性。然而,在可替换的实施方式中,仅仅一部分数据可用于生成密钥,例如,该部分可能比数据的其他部分更敏感。
在仅使用散列的情况下,通过比较与接收的数据(用于生成密钥)相关联的信息的散列和密钥本身,请求方能够认证所接收的数据部分的完整性。如果这两者匹配,那么接收的数据部分被视为真实的,和/或请求者保证不意外或者蓄意修改数据,这是因为生成了密钥。为了增强安全性,可签名密钥。在这种情况下,接收方不仅可确定数据是真实的,而且可确认正确的实体生成密钥,即,系统提供不可否认的请求者保证。众所周知并且不详细描述使用(例如)公钥/私钥来签名数据并且认证数据。
另外的实施方式可使用与部分相关联的信息,而不提供认证数据的完整性的任何能力。例如,数据本身可仅仅用作到单向函数的输入,以增大所生成的密钥的不可预测性。实际上,与数据相关联的信息在上面描述的真随机数生成器中形成不可预测(或者至少不太可预测)的输入。在这种情况下,可使用任何数量的单向函数,以便产生均匀分配的输出。
在一些实施方式中,可取地具有与仅仅单个密钥相关联的数据部分的每个规定集合。因此,如果允许两个请求方访问该集合数据部分,那么这两个请求方接收相同的密钥。这在密钥预期在请求方之间共享的系统中可取并且使密钥的数量能够保持较低。
然而,可替换地,可取地给每个请求方提供不同的密钥,与使用那些密钥访问哪些数据部分无关。在这种实施方式中,额外值(有时称为混淆值)可作为输入包含在单向函数内。这能够为同一集合数据部分创建两个不同的密钥。由于密钥不同,所以可标识做出请求的请求方,这表示如果使用有效密钥进行未授权请求,那么可以标识获得密钥的授权请求方。
如果密钥被用于认证数据部分(见上文)并且使用混淆值生成,那么请求方向需要了解相关的混淆值(例如,如果需要在数据上进行完整性检查),否则,请求方不能生成有效散列。在这种情况下,可使混淆值可供密钥使用,例如,混淆值和密钥可共同分配。在其他实施方式中,可使混淆值在查找表内公开可用。
可替换地,一个或多个预先共享秘密值可专用于规定的请求方,换言之,先前的设置确保请求方了解使用哪个或哪些预先共享密值(可以具有与混淆值相似的方式)。
在又一实施方式中,可通过数据部分储存混淆值,例如,通过创建表示混淆值的额外数据部分。在以下实例中,两个不同的密钥(在此处K1a和K1b)访问原始数据的相同集合部分,即,部分P2、P3以及P6。然而,在不同情况下,数据的部分增加混淆值部分Pa和Pb。结果,使用数据部分生成的密钥不同。这在以下表格中概述。要理解的是,由于接收的部分包括混淆值部分Pa或Pb,所以能够认证接收的数据,无需修改。
密钥 混淆值 部分
K1a Pa P2,P3,P6,Pa
K1b Pb P2,P3,P6,Pb
如上所述,密钥可通过第一网络22分配,而访问请求以及作为回应发送的数据部分可通过第二网络26传输。这提供了以下优点:与第二网络26相比,用于分配密钥的第一网络22可具有更高的安全等级。在一些实施方式中,第一网络22可由提供密钥的可替换的方法代替,例如,在物理介质上物理传输密钥。通过任何一种方法,密钥都可保持相对安全,同时使用相对不太安全的网络,能够访问数据部分。在实施方式中,可使用(例如)SSL或TLS密码保护第一网络22和/或第二网络26。
另外的优点在于,在可以传输的数据的量上约束现有协议时,实施方式促进使用现有的或传统的协议访问数据,并且修改该协议不太方便或者昂贵。例如,上面描述的第一网络可支持这种第一协议。可使用该第一协议分配在字节的数量上较少的密钥,同时数据部分可通过第二协议传输,在可以传输的数据的类型和量上不约束该第二协议。这确保向后兼容性,这是因为装置依然可以访问数据部分,经由通过第一协议传输的密钥。
要理解的是,密钥和部分相关联的集合可通过多种格式储存在第一数据库14和第二数据库18内。例如,在一个实施方式中,密钥可以与部分如下直接相关联。因此,不需要储存明确标识所述集合的信息。
密钥 部分
K1 P2
K1 P3
K1 P6
K2 P1
K2 P2
K2 P3
K2 P4
K2 P5
K2 P7
在其他实施方式中,可使用关系数据结构,例如,第一表格可使密钥与集合相关联:
密钥 集合
K1 S1
K2 S2
并且第二表格可使集合与部分相关联:
集合 部分
S1 P2,P3,P6
S2 P1-P5,P7
这后一种结构提供以下优点:如果密钥被泄漏或需要撤销,那么需要修改在单个表格中的仅仅单个字段。同样,在发出新密钥时,仅仅需要更新单个记录。在一些实施方式中,使集合与数据部分相关联的第二表格可通过数据部分本身储存在(即)第一数据库14内。在这种情况下,如果密钥有效,那么在以上步骤114和126中来自第二数据库的响应可包含集合的标识,并且在步骤116和128中的请求可用于规定的一集合数据。
虽然在以上方法中,规定的请求造成提供与在请求内提供的密钥相关联的所有数据部分,但是做出请求时,一些实施方式可允许请求方标识部分。因此,例如,在步骤110中,请求方24A可提供密钥K1,并且请求仅仅部分P2。结果,在步骤120中,访问控制器20可将仅仅数据部分P2提供给请求方24A。
虽然图2示出了能够使用密钥访问数据的第参与方法,但是图3到图5用于说明可包含在上面描述的方法内或者代替上面描述的方法的变化。
图3示出了让使用组合密钥的方法。下面详细描述该方法,但是通过概述,该方法能够仅仅由共同作用的两方或多方访问某些部分。由于双方都需要提供其密钥,以能够访问,所以这提高了更敏感数据的安全性。
在步骤102和108中,数据部分的集合以及与密钥的关联性的生成通过与上面描述的方式相似的方式进展。然而,在这种情况下,可如下创建3个密钥。
密钥 集合 部分
K1 S1 P2,P3,P6
K2 S2 P1-P5,P7
K3 S3 P8,P9
第三密钥K3基于第一密钥与第二密钥的组合。例如,可根据第一和第二密钥生成第三密钥,例如,第一和第二密钥的串联或按位异或(XOR)。要理解的是,可使用其他函数,包括单向函数。可替换地,可生成第三密钥,然后,第三密钥本身用于生成第一和第二密钥,例如,通过将第三密钥分成几部分,或者通过使用第三密钥计算第一和第二密钥。无论使用哪种方法,都可以从第一和第二密钥的知识中获得第三密钥。
如上所示,第三密钥与标识部分P8和P9的第三集合S3相关联。在该实例中,第一密钥K1和第二密钥K2分别与集合S1和S2相关联;然而,这并非必须的,并且第一密钥K1和第二密钥K2中的一个或两个可不与数据部分的任何集合相关联。实际上,虽然第三密钥提供到特定的一集合数据部分的访问,但是不需要分配给接收者。相反,表示其他密钥的特定组合;这些其他密钥分配给接收者,并且访问控制器20需要这些密钥,用于访问控制器20返回与该第三密钥相关的数据部分。在这方面,第一和第二密钥可被视为用作替代物,用于访问与第三密钥相关联的特定数据集合。
因此,在步骤108中,第一和第二密钥可用于分配。具体而言,在该实例中,密钥K1可用于请求方24A,并且密钥K2可用于请求方24B。不分配第三密钥,即,请求方不接收第三密钥。
在步骤108中分配第一密钥和第二密钥之后,请求方24A和24B合作以组合密钥并且请求使用组合的密钥访问。在图3中示出了这样做的一种方法。在该实例中,假设访问控制器20确定使用多个密钥请求访问。这可响应于表示在规定的请求中做出多密钥请求的参与方,或者可以通过标识仅使用多个密钥访问的数据部分的请求。
因此,在步骤146中,请求方24A将包括密钥K1的请求发送给访问控制器20。此外,在步骤148中,请求方24B给访问控制器20发送请求,该请求包括密钥K2。由于接收了这两个密钥,所以在步骤150中,访问控制器可使用第一和第二密钥K1和K2生成第三密钥K3。然后,在与上面的步骤112和124相似的步骤中,将该第三密钥K3发送给第二数据库18。由于基于与密钥K3相关联的一集合数据(集合S3),所以在步骤154中,访问控制器从第二数据库18中接收标识集合S3或其部分(部分P8和P9)的数据。然后,在步骤156中,访问控制器从第一数据库14中检索部分P8和P9,并且将所述部分提供给请求方24A和24B中的一个或两者。因此,仅仅通过组合密钥,这两个请求方可以获得对部分P8和P9的访问。
除了组合密钥之外,请求方还可独立运行,并且检索与分配给参与方的单独密钥相关联的任何部分。在与上面的步骤110到120相同的步骤110到120中,这在图3中显示,并且示出了使用密钥K1访问部分P2、P3以及P6的第一请求方24A。如上所述,密钥K1和K2不需要与数据部分的任何集合相关联。因此,在可替换的实施方式中,使用密钥K1的请求可造成拒绝无效密钥,在上面的步骤134到140中描述。
因此,实施方式提供了一种有效的系统,用于不仅使单独的参与方而且使共同运行的参与方能够选择性访问数据部分。为了协调双方的活动,访问控制器20可从请求方中的一个或另一个中请求密钥。例如,第一请求方(例如,请求方24A)可请求访问数据并且确定请求方24B也需要提供密钥。结果,访问控制器20可与请求方24B通信,以请求密钥K2。可替换地,请求方24A可请求访问(例如)部分P8和/或P9,并且访问控制器可储存数据,使其能够与第二请求方24B接触,以请求合适的密钥。在各方之间通信以便提供密钥的方法对于本领域的技术人员显而易见。
因此,可给第二请求方(例如,参与方24B)提供允许或拒绝访问第参与方的能力(反之亦然)。因此,实施方式可用于以下场景中,一个用户控制访问至少另一个用户的数据。实际上,第二请求方可以是具有同意或拒绝访问多个成员方中的任一个的访问的能力的管理员。在这种实施方式中,在与不同的成员密钥相结合时,单个管理密钥可同意访问数据部分的不同集合。因此,成员密钥可被视为规定的一集合数据部分的标识符,并且管理员密钥可被视为那些数据部分的访问控制密钥。
在一些实施方式中,可设置用于组合密钥的功能,以便即使请求方24A和24B了解单独的密钥K1和K2,如果仅接收一个密钥,那么那些参与方也不能生成密钥K3。通过在访问控制器20内使用函数(例如,单向函数)来生成密钥K3,可实施该控制等级。这具有以下优点:双方需要将密钥K1和K2单独提供给访问控制器20,以获得对数据部分P8和P9的访问。
可替换地,密钥K3可以是密钥K1和K2的计算组合。在这种实施方式中,请求方24A和24B中的一个或两者可接收另参与方的密钥。然后,接收另参与方的密钥的请求方可组合密钥,以产生密钥K3,该密钥用于请求访问数据。然后,该方能够访问数据部分P8和P9,犹如该方在分配中最初具有密钥K3。这种实施方式提供以下优点:仅仅将多大量用于密钥K3的单个访问请求需要访问数据,并且避免访问控制器20对另参与方做出密钥请求。要理解的是,所使用的系统可以根据系统的预期目的来定制。
虽然在密钥K3与数据部分相关联方面描述了以上实施方式,但是要理解的是,可设置访问控制器20和第二数据库18,以便包括多个密钥的一个或多个访问请求会使访问被授权,实际上不需要确定中间密钥,即密钥K3。这具有以下缺点:减少了密钥的数量;然而,使用确定的密钥,即密钥K3提供以下优点:数据库18的设置简化,这是因为数据库18不需要储存表示需要多个密钥的任何额外信息。
在一些实施方式中,要组合的密钥发送给不同的请求方。然而,这并非必须的,并且可将密钥发送给单个请求方。可使用不同的通信系统发送密钥,例如,通过SMS发送一个密钥,通过电子邮件发送另一个密钥,或者在不同的时间点发送。因此,实施方式可以用于能够在更复杂的场景中访问参与方。
在一些实施方式中,密钥可仅仅使用有限的次数。在图4和图5中,描述这种实施方式的两个实例。在这两个实例中,特定密钥可仅仅使用一次;然而,这并非必须的,并且特定密钥可使用多次,虽然依然是有限的次数。
在图4中示出第一实例。与前面在步骤102到108中一样,部分被储存在第一数据14内并且被分配了密钥。与上述方法一样,请求方24C不接收密钥。然而,在该实施方式的场景中,请求方24C入侵了请求方24A的系统。同样,在由请求方24A使用时,请求方24C能够获取密钥K1的副本。这在步骤110和110’中显示。在步骤110中,与上面的步骤110一样,请求方24A向访问控制器20发送包括密钥K1的请求。然而,此外,请求方24C在步骤110’中接收密钥K1。
步骤112到120遵循上面描述的相同数字的步骤,并且造成请求方24A能够访问部分P2、P3以及P6。然而,在同意访问这些部分之后,访问控制器给密钥生成器16发送消息,通知密钥生成器16使用了密钥K1。这被示出为步骤162。响应于在步骤162中的消息,密钥生成器生产新密钥,以与集合S1相关联。在步骤164中,更新第二数据库18,以反应密钥K4现在与集合S1相关联,因此,与部分P2、P3以及P6相关联。密钥K1撤销并且可从第二数据库18移除或者在第二数据库18内被抑制。此外,密钥生成器16可使新密钥K4用于被分配给请求方24A,如步骤166所示。实际上,密钥K1由密钥K4代替。将(例如)不同的混淆值用于密钥K1可生成密钥K4,如上面所述。如果混淆值通过数据储存,即,作为部分(例如,Pa和Pb),那么数据可被修改为包含新混淆值。
在一些实施方式中,在请求方24A访问数据部分之前,可生成新密钥K4。因此,新密钥可用于请求方以及数据部分。换言之步骤120和166可组合。
如上所述,同时(步骤110’),请求方24C获得对密钥K1的访问。因此,在步骤168中,通过给访问控制器发送包括密钥K1的请求,,请求方24C试图使用该密钥访问数据。与上面用于密钥K#的步骤136到140一样,密钥K1无效,因此,拒绝请求。
因此,以上方法可用于提高系统的安全性,并且降低攻击方使用拦截的或者盗取的密钥获得访问储存的数据的机会。
更换密钥,可用于与上面描述的系统组合,其中,多个密钥需要用于访问数据部分的某些集合,以更换使用的密钥。在实施方式中,可更换仅仅用于多密钥请求的密钥的子集。例如,在以上实施方式中,每个请求可造成更换管理员密钥,但是不造成更换用户密钥。
在图5中示出了另外的方法,其中,密钥仅仅使用一次。该方法与在图4中示出的方法的不同之处在于首先生成多个密钥,并且多个密钥共同分配,每个密钥与单个集合相关联。这由步骤106’和108’表示,其中,密钥K1.1,K1.2,…K1.N均与集合S1相关联并且分配给请求方24A和24B。可使用不同的混淆值生成密钥K1.1到K1.N中的每个。
在步骤110到120中,与上面的相同编号步骤一样,请求方24A使用密钥K1.1来请求访问与该密钥相关联的数据部分,即,在集合S1中的数据部分。与前面一样,在步骤120中同意访问这些数据部分。然而,在步骤120之后,访问控制器20在步骤176中将消息发送给第二数据库18,以撤销、删除或者抑制密钥K1.1,如现在所使用的。
随后,在步骤178中,做出进一步尝试以请求在对应于密钥K1.1、K1.2等的集合S1中的数据部分。在该实例中,请求方24A和24B具有同一集合密钥。而且,请求方24B未意识到使用了密钥K1.1。因此,在步骤178中,请求方24B请求使用密钥K1.1访问数据。然而,由于密钥K1.1不再有效,所以通过与上面在步骤134到140中描述的请求相似的方式,处理该请求以及拒绝该请求。要理解的是,这是处理使用密钥K1.1的任何另外的请求的方式,即,如果请求来自通过从请求方24A拦截密钥来获得密钥K1.1的请求方24C,如上面在步骤110’中所述。
然而,由于请求方24B了解多个合适的密钥,即,密钥K1.2等,那么请求方24B可使用进一步合适的密钥做出进一步请求。这在步骤122中显示,其中,在请求中使用密钥K1.2。根据以上原始请求122,有效地处理该请求;步骤122到132随后,与密钥K1.2相关联的数据部分能够访问。根据上面的步骤176,在步骤132之后,在第二数据库18中删除或者抑制密钥K1.2,如步骤186所示。
虽然上面仅仅描述了使用两个密钥,但是可发出任何数量的密钥,并且在接受一个密钥之前,任参与方需要使用更大数量的密钥做出请求。要理解的是,任何规定的请求方可保持已使用的密钥的记录。因此,例如,如果请求方24A做出数据的进一步请求,那么通过密钥K1.2做出第一次尝试,这是因为知道已经使用密钥K1.1。要理解的是,由于请求方24B使用了密钥K1.2,所以拒绝该请求,因此,请求方需要使用密钥K1.3等,直到同意请求。
虽然上文在双方具有相同密钥上描述了以上实施方式,但是在其他实施方式中,各方可具有不同的密钥,但是依然允许使用那些密钥访问同一集合数据。这避免了拒绝参与方根据使用特定密钥的另参与方访问。
可替换的细节和变型
虽然单独描述了以上实施方式,但是要理解的是,一个实施方式的特征可与另一个实施方式的特征组合。例如,在图3中示出的组合的密钥实施方式可与仅使用一次密钥的机构组合,如例如在图4中所描述的。
上面描述的实施方式可与其他形式的访问控制组合,例如,使用用户名和密码的认证,以总体上提高系统的安全性。在这种情况下,密钥可与用户名相关联,因此,仅仅同意占有与该用户相关联的密钥的授权用户访问。
在上面图2到图4中描述的实施方式中,一次给规定的请求方提供单个密钥。然而,在其他实施方式中,可给多方提供单个密钥。可替换地或者此外,多个密钥可与单个集合相关联,给多个请求方提供该密钥。这使各方能够访问相同的数据,但是对做出规定的访问请求的参与方保持记录。
在参照图3描述的多密钥实施方式中,可使用密钥的不同组合,可接近数据的规定部分。结果,第一请求方可请求使用第一密钥访问数据。作为回应,访问控制器可请求多个第二请求方中的一个请求方的第二密钥。来自第二请求方中的任一个的响应(包含密钥)授权第一参与方访问数据。因此,密钥可用作确认访问请求的方法。
在图4和图5中,密钥被描述为可使用有限的次数。然而,这并非撤销、删除或者抑制密钥的唯一原因。例如,密钥可仅仅在某个时间段具有有效性,在该时间段之后撤销密钥并且分配更换。在实施方式中,基于时间的撤销可与限制使用的撤销组合,这表示一旦一次使用一个密钥,就对于规定的时间段有效,在该时间段内可使用多次,然后,撤销该密钥。
虽然总体上通过有限数量的密钥(通常为2个)描述了以上内容,但是实施方式适用于使用大量密钥的系统。这能够为多个集合或者为多方控制访问。而且,不止两个密钥需要组合,用于相对于图3描述的组合访问。
访问系统10或者节点或者元件12到20可包括本领域已知的计算机硬件。为了完整性,限制性地参照图6描述示例性计算机系统50,该系统能够执行上面描述的方法步骤。该计算机系统可用于总体上执行访问系统10的功能,或者可使用多个计算机系统50,每个计算机系统执行上描述的一个或多个节点12到20的功能。
计算机系统50包括处理系统51,例如,CPU或者CPU阵列。处理系统51连接至存储器52,例如,易失性存储器(例如,RAM)或非易失性存储器(例如,固态(SSD)存储器或硬盘驱动器存储器)。存储器52包括计算机可读指令53。系统50还可包括接口54,该接口能够传输和/或接收来自其他网络节点的数据。
在使用期间,处理系统51可从存储器52检索计算机指令53,并且执行这些指令,据此,执行上面描述的步骤。这样做,处理系统51可使接口根据需要而传输或接收数据。该数据本身可被储存在存储器52内,或者根据需要检索,例如以通过接口进行传输。
要理解的是,相对于任一个实施方式描述的任何特征可单独地或者与所描述的其他特征相结合地使用,并且还可与任何其他实施方式的一个或多个特征或者任何其他实施方式的任何组合相结合地使用。而且,在不背离在所附权利要求中限定的本发明的范围的情况下,还可使用上面未描述的等同物和修改。权利要求的特征可在除了在权利要求中规定的组合以外的组合中组合。

Claims (23)

1.一种实现由请求方对数据进行访问的方法,所述方法包括:
生成数据的多个集合;
使用单向函数生成各自与所述多个集合中的相应的一个集合相关联的多个密钥,其中,在生成与所述集合相关联的密钥时,与数据的所述集合相关联的信息被用作至所述单向函数的输入;
对密钥进行布置以能够用于被分配给一个或多个请求方;
从所述请求方接收包括密钥的数据访问请求;并且
基于所接收到的密钥实现由所述请求方对所述集合中的数据进行访问。
2.根据权利要求1所述的方法,其中,每个集合标识一个或多个数据部分并且至少一个数据部分被标识在两个或多个集合中。
3.根据权利要求1或权利要求2所述的方法,其中,与一数据的集合相关联的信息标识该数据的集合的内容。
4.根据权利要求1或权利要求2所述的方法,其中,与一数据的集合相关联的信息包括该数据的集合的内容的至少一部分。
5.根据前述权利要求中任一项所述的方法,包括将一个或多个混淆值用作至所述单向函数的输入。
6.根据权利要求5所述的方法,包括存储用于生成特定密钥的混淆值作为在使用该特定密钥能够访问的集合中的数据。
7.根据前述权利要求中任一项所述的方法,其中,所述单向函数包括下列各项中的一个或多个:
散列函数;
加密签名函数;
随机数生成器;以及
伪随机数生成器。
8.根据前述权利要求中任一项所述的方法,其中,所述密钥具有高熵。
9.根据前述权利要求中任一项所述的方法,其中,实现访问有限次数的请求包括特定密钥。
10.根据权利要求9所述的方法,包括生成与特定集合相关联的多个密钥。
11.根据权利要求9或权利要求10所述的方法,包括响应于接收包括与特定集合相关联的第一密钥的请求生成与特定集合相关联的第二密钥。
12.根据前述权利要求中任一项所述的方法,包括:
使多个密钥与所述集合相关联;
对所述多个密钥进行布置以能够用于分配;
根据所满足的预定标准实现对数据的所述集合的访问,所述预定的标准取决于接收所述多个密钥中的两个或多个。
13.根据前述权利要求中任一项所述的方法,包括:
生成第一密钥、第二密钥以及第三密钥,所述第三密钥与至少所述第一密钥和所述第二密钥的组合相关;
使所述第三密钥与特定的所述集合相关联;
对所述第一密钥和所述第二密钥进行布置以能够用于分配;并且
根据接收所述第一密钥和所述第二密钥的组合或所述第三密钥来授权对特定的所述集合进行访问。
14.根据权利要求13所述的方法,包括使所述第一密钥和所述第二密钥与相应的另外的集合相关联。
15.根据前述权利要求中任一项所述的方法,包括将所述密钥和标识所述集合的信息储存在查找表中。
16.根据权利要求15所述的方法,包括在所述查找表中标识在与所接收到的密钥相关联的集合中的数据。
17.根据前述权利要求中任一项所述的方法,包括使用第一协议传输所述密钥,从而使所述密钥能够用于分配,并且其中,集合中的至少一部分数据适用于通过不同的第二协议进行传送。
18.根据权利要求17所述的方法,包括能够使用所述第二协议访问所述数据。
19.一种访问和认证数据的方法,所述方法包括:
接收密钥;
使用所接收到的密钥产生数据访问请求;
响应于该请求接收数据;
使用单向函数从与所接收到的数据相关联的信息生成认证数据;并且
通过将所述认证数据与从所接收到的密钥推导出的数据进行比较来认证所接收到的数据。
20.一种用于实现由请求方对数据进行访问的设备,所述设备被配置为:
生成数据的多个集合;
使用单向函数生成各自与所述多个集合中的相应的一个集合相关联的多个密钥,其中,在生成与所述集合相关联的密钥时,与数据的所述集合相关联的信息被用作至所述单向函数的输入;
对密钥进行布置以能够被用于分配给一个或多个请求方;
从所述请求方接收包括密钥的数据访问请求;并且
基于所接收到的密钥实现由所述请求方对所述集合中的数据进行访问。
21.一种用于访问和认证数据的设备,所述设备被配置为:
接收密钥;
使用所接收到的密钥产生数据访问请求;
响应于该请求接收数据;
使用单向函数从与所接收到的数据相关联的信息生成认证数据;并且
通过将所述认证数据与从所接收到的密钥推导出的数据进行比较来认证所接收到的数据。
22.一种计算机程序,被布置为执行实现由请求方对数据进行访问的方法,所述方法包括:
生成数据的多个集合;
使用单向函数生成各自与所述多个集合中的相应的一个集合相关联的多个密钥,其中,在生成与所述集合相关联的密钥时,与数据的所述集合相关联的信息被用作至所述单向函数的输入;
对密钥进行布置以能够被用于分配给一个或多个请求方;
从所述请求方接收包括密钥的数据访问请求;并且
基于所接收到的密钥实现由所述请求方对所述集合中的数据进行访问。
23.一种计算机程序,被布置为执行访问和认证数据的方法,所述方法包括:
接收密钥;
使用所接收到的密钥产生数据访问请求;
响应于该请求接收数据;
使用单向函数从与所接收到的数据相关联的信息生成认证数据;并且
通过将所述认证数据与从所接收到的密钥推导出的数据进行比较来认证所接收到的数据。
CN201480057349.7A 2013-08-19 2014-08-19 实现对数据的访问 Active CN105659231B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010930179.6A CN112069092B (zh) 2013-08-19 2014-08-19 实现数据访问的方法和实现由请求方访问数据的设备

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1314782.2A GB2514428B (en) 2013-08-19 2013-08-19 Enabling access to data
GB1314782.2 2013-08-19
PCT/GB2014/052545 WO2015025156A1 (en) 2013-08-19 2014-08-19 Enabling access to data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010930179.6A Division CN112069092B (zh) 2013-08-19 2014-08-19 实现数据访问的方法和实现由请求方访问数据的设备

Publications (2)

Publication Number Publication Date
CN105659231A true CN105659231A (zh) 2016-06-08
CN105659231B CN105659231B (zh) 2020-09-29

Family

ID=49301879

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010930179.6A Active CN112069092B (zh) 2013-08-19 2014-08-19 实现数据访问的方法和实现由请求方访问数据的设备
CN201480057349.7A Active CN105659231B (zh) 2013-08-19 2014-08-19 实现对数据的访问

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010930179.6A Active CN112069092B (zh) 2013-08-19 2014-08-19 实现数据访问的方法和实现由请求方访问数据的设备

Country Status (9)

Country Link
US (2) US10133872B2 (zh)
EP (2) EP3694143B1 (zh)
KR (2) KR102422183B1 (zh)
CN (2) CN112069092B (zh)
AU (1) AU2014310396B2 (zh)
CA (1) CA2921740C (zh)
GB (1) GB2514428B (zh)
MX (1) MX355275B (zh)
WO (1) WO2015025156A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9665638B2 (en) 2012-10-30 2017-05-30 FHOOSH, Inc. Systems and methods for secure storage of user information in a user profile
GB2514428B (en) 2013-08-19 2016-01-13 Visa Europe Ltd Enabling access to data
US10579823B2 (en) 2014-09-23 2020-03-03 Ubiq Security, Inc. Systems and methods for secure high speed data generation and access
WO2016049227A1 (en) 2014-09-23 2016-03-31 FHOOSH, Inc. Secure high speed data storage, access, recovery, and transmission
CA2968084C (en) 2014-12-15 2024-01-02 FHOOSH, Inc. Systems and methods for diffracted data retrieval
US10231123B2 (en) * 2015-12-07 2019-03-12 GM Global Technology Operations LLC Bluetooth low energy (BLE) communication between a mobile device and a vehicle
US11349656B2 (en) 2018-03-08 2022-05-31 Ubiq Security, Inc. Systems and methods for secure storage and transmission of a data stream
US11316839B2 (en) 2019-08-19 2022-04-26 Red Hat, Inc. Proof-of-work key wrapping for temporally restricting data access
US11411938B2 (en) * 2019-08-19 2022-08-09 Red Hat, Inc. Proof-of-work key wrapping with integrated key fragments
US11303437B2 (en) 2019-08-19 2022-04-12 Red Hat, Inc. Proof-of-work key wrapping with key thresholding
US11436352B2 (en) 2019-08-19 2022-09-06 Red Hat, Inc. Proof-of-work key wrapping for restricting data execution based on device capabilities
US11411728B2 (en) 2019-08-19 2022-08-09 Red Hat, Inc. Proof-of-work key wrapping with individual key fragments
US11271734B2 (en) 2019-08-19 2022-03-08 Red Hat, Inc. Proof-of-work key wrapping for verifying device capabilities
US11424920B2 (en) 2019-08-19 2022-08-23 Red Hat, Inc. Proof-of-work key wrapping for cryptographically controlling data access

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999038093A1 (en) * 1998-01-23 1999-07-29 Filepool N.V. Content addressable information encapsulation, representation, and transfer
CN101150404A (zh) * 2006-09-21 2008-03-26 国际商业机器公司 管理和生成用于密码通信的设备密钥的系统和方法
US20090157740A1 (en) * 2007-12-14 2009-06-18 Casdex, Inc. System for Logging and Reporting Access to Content Using Unique Content Identifiers

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5174465A (en) 1991-03-05 1992-12-29 Cap Snap Co. One-piece fitment and cap with tamper-evident band
US5483596A (en) * 1994-01-24 1996-01-09 Paralon Technologies, Inc. Apparatus and method for controlling access to and interconnection of computer system resources
US5617082A (en) * 1994-11-15 1997-04-01 Micro Enhanced Technology, Inc. Electronic access control device utilizing a single microcomputer integrated circuit
JP3865775B2 (ja) * 1995-04-11 2007-01-10 キネテック インコーポレイテッド データ処理システムにおけるデータの識別
US6807632B1 (en) * 1999-01-21 2004-10-19 Emc Corporation Content addressable information encapsulation, representation, and transfer
US6311216B1 (en) * 1998-05-29 2001-10-30 Microsoft Corporation Method, computer program product, and system for client-side deterministic routing and URL lookup into a distributed cache of URLS
US6336187B1 (en) * 1998-06-12 2002-01-01 International Business Machines Corp. Storage system with data-dependent security
US10326798B2 (en) * 1998-07-16 2019-06-18 Grid7, LLC System and method for secure data transmission and storage
JP2001331509A (ja) * 2000-05-22 2001-11-30 Hitachi Ltd リレーショナルデータベース処理装置、リレーショナルデータベースの処理方法及びリレーショナルデータベースの処理プログラムを記録したコンピュータ読み取り可能な記録媒体
US20030115452A1 (en) * 2000-12-19 2003-06-19 Ravi Sandhu One time password entry to access multiple network sites
US20030002668A1 (en) * 2001-06-30 2003-01-02 Gary Graunke Multi-level, multi-dimensional content protections
US7197142B2 (en) 2001-08-24 2007-03-27 Alten Alexander I System and methods for a vernam stream cipher
EP2339777A3 (en) * 2002-01-30 2011-12-28 Tecsec, Incorporated Method of authenticating a user to use a system
GB2399724B (en) * 2003-03-15 2005-04-27 Hewlett Packard Development Co Method and system for regulating access to a service
GB2400699B (en) * 2003-04-17 2006-07-05 Hewlett Packard Development Co Security data provision method and apparatus and data recovery method and system
GB2404489A (en) 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital storage medium content
US7515717B2 (en) * 2003-07-31 2009-04-07 International Business Machines Corporation Security containers for document components
WO2005017686A2 (en) * 2003-08-05 2005-02-24 Sepaton, Inc. Emulated storage system
US7734051B2 (en) * 2004-11-30 2010-06-08 Novell, Inc. Key distribution
US8286157B2 (en) * 2005-02-28 2012-10-09 International Business Machines Corporation Method, system and program product for managing applications in a shared computer infrastructure
KR101153640B1 (ko) * 2005-05-04 2012-06-18 삼성전자주식회사 디지털 멀티미디어 방송 수신 제한 시스템 및 그 방법
EP1941698B1 (en) 2005-10-05 2011-10-05 Privasphere AG Method and devices for user authentication
JP2007299088A (ja) * 2006-04-28 2007-11-15 Fujitsu Ltd データ保護システム、方法及びプログラム
US20080022117A1 (en) * 2006-07-21 2008-01-24 Antonius Kalker Enabling access to more than one encrypted data segment of a segmentable data stream
US20080031459A1 (en) * 2006-08-07 2008-02-07 Seth Voltz Systems and Methods for Identity-Based Secure Communications
US8266706B2 (en) * 2007-01-26 2012-09-11 Microsoft Corporation Cryptographically controlling access to documents
US8176540B2 (en) * 2008-03-11 2012-05-08 International Business Machines Corporation Resource based non-interactive entity application proxy method and system
US7967215B2 (en) * 2008-04-18 2011-06-28 Vivotech Inc. Systems, methods, and computer program products for supporting multiple contactless applications using different security keys
US20090290714A1 (en) * 2008-05-20 2009-11-26 Microsoft Corporation Protocol for Verifying Integrity of Remote Data
US9288216B2 (en) * 2008-06-19 2016-03-15 Qualcomm Incorporated Methods and apparatus for reducing the effectiveness of chosen location attacks in a peer-to-peer overlay network
US8935528B2 (en) * 2008-06-26 2015-01-13 Microsoft Corporation Techniques for ensuring authentication and integrity of communications
DE102008042406B4 (de) * 2008-09-26 2010-10-07 Compugroup Holding Ag Verfahren zum sicheren Austausch von Daten
US9077537B2 (en) * 2008-11-13 2015-07-07 International Business Machines Corporation Generating secure private keys for use in a public key communications environment
US8151333B2 (en) * 2008-11-24 2012-04-03 Microsoft Corporation Distributed single sign on technologies including privacy protection and proactive updating
US11075754B2 (en) * 2009-01-15 2021-07-27 International Business Machines Corporation Universal personal medical database access control
JP4834748B2 (ja) * 2009-03-10 2011-12-14 株式会社東芝 情報記憶媒体、媒体認証機器、媒体認証システム、及びicカード
DE102009027268B3 (de) * 2009-06-29 2010-12-02 Bundesdruckerei Gmbh Verfahren zur Erzeugung eines Identifikators
US20110238985A1 (en) * 2010-03-24 2011-09-29 Nokia Corporation Method and apparatus for facilitating provision of content protected by identity-based encryption
US9137238B1 (en) * 2010-08-06 2015-09-15 RightQuestions, LLC Pass-sequences
US20140142993A1 (en) * 2010-12-02 2014-05-22 John Sanders Talent Booking System and Method
KR20120100046A (ko) * 2011-03-02 2012-09-12 삼성전자주식회사 분산 환경 네트워크에서 컨텐츠의 접근 제어를 위한 장치 및 방법
JP2012195903A (ja) * 2011-03-18 2012-10-11 Toshiba Corp 情報処理装置、プログラム及びアクセス制御システム
JP5624510B2 (ja) * 2011-04-08 2014-11-12 株式会社東芝 記憶装置、記憶システム及び認証方法
EP2521066A1 (en) * 2011-05-05 2012-11-07 Axiomatics AB Fine-grained relational database access-control policy enforcement using reverse queries
US8953789B2 (en) * 2011-06-01 2015-02-10 International Business Machines Corporation Combining key control information in common cryptographic architecture services
US9052824B2 (en) * 2012-01-26 2015-06-09 Upthere, Inc. Content addressable stores based on sibling groups
EP2810402B1 (en) * 2012-02-03 2018-07-25 Qredo Limited A method and database system for secure storage and communication of information
EP2883183B1 (en) * 2012-08-08 2017-03-08 V-Auth Limited Authentication method and system
US20140115029A1 (en) * 2012-10-18 2014-04-24 International Business Machines Corporation Selective data transfer between a server and client
US9305172B2 (en) * 2013-03-15 2016-04-05 Mcafee, Inc. Multi-ring encryption approach to securing a payload using hardware modules
CN105431862B (zh) * 2013-07-24 2019-04-26 马维尔国际贸易有限公司 针对存储器控制器的密钥旋转
EP3028214A1 (en) * 2013-07-30 2016-06-08 Hewlett Packard Enterprise Development LP Data management
GB2514428B (en) 2013-08-19 2016-01-13 Visa Europe Ltd Enabling access to data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999038093A1 (en) * 1998-01-23 1999-07-29 Filepool N.V. Content addressable information encapsulation, representation, and transfer
CN101150404A (zh) * 2006-09-21 2008-03-26 国际商业机器公司 管理和生成用于密码通信的设备密钥的系统和方法
US20090157740A1 (en) * 2007-12-14 2009-06-18 Casdex, Inc. System for Logging and Reporting Access to Content Using Unique Content Identifiers

Also Published As

Publication number Publication date
EP3036664B1 (en) 2020-04-08
GB2514428B (en) 2016-01-13
EP3036664A1 (en) 2016-06-29
MX355275B (es) 2018-04-12
KR20160044022A (ko) 2016-04-22
CN112069092B (zh) 2023-12-29
KR20220104278A (ko) 2022-07-26
GB2514428A (en) 2014-11-26
US20160171224A1 (en) 2016-06-16
AU2014310396A1 (en) 2016-03-03
CN105659231B (zh) 2020-09-29
CA2921740C (en) 2023-03-21
CN112069092A (zh) 2020-12-11
US10133872B2 (en) 2018-11-20
US20190087590A1 (en) 2019-03-21
KR102422183B1 (ko) 2022-07-18
CA2921740A1 (en) 2015-02-26
AU2014310396B2 (en) 2020-02-27
EP3694143A2 (en) 2020-08-12
EP3694143A3 (en) 2020-10-21
US10810315B2 (en) 2020-10-20
WO2015025156A1 (en) 2015-02-26
KR102555164B1 (ko) 2023-07-13
MX2016002141A (es) 2016-06-23
GB201314782D0 (en) 2013-10-02
EP3694143B1 (en) 2023-07-26

Similar Documents

Publication Publication Date Title
US10810315B2 (en) Enabling access to data
US11314891B2 (en) Method and system for managing access to personal data by means of a smart contract
CN110046521B (zh) 去中心化隐私保护方法
EP3356988B1 (en) Method and system for verifiable searchable symmetric encryption
CN112019591B (zh) 一种基于区块链的云数据共享方法
US10803194B2 (en) System and a method for management of confidential data
KR102025409B1 (ko) 블록체인을 기반으로 한 데이터 접근 관리 시스템 및 데이터 접근 관리 방법
CN108632292B (zh) 基于联盟链的数据共享方法和系统
US9646161B2 (en) Relational database fingerprinting method and system
US8856530B2 (en) Data storage incorporating cryptographically enhanced data protection
CN110059503B (zh) 可追溯的社交信息防泄露方法
CN111523133B (zh) 一种区块链与云端数据协同共享方法
JP5777630B2 (ja) ドキュメント共有のための方法及び装置
KR101371608B1 (ko) Dbms 및 데이터베이스에서 암호화 방법
CN110392038B (zh) 一种多用户场景下可验证的多密钥可搜索加密方法
CN102906755A (zh) 利用证书撤销列表的内容控制方法
CN115242518A (zh) 混合云环境下医疗健康数据保护系统与方法
Ma et al. CP-ABE-based secure and verifiable data deletion in cloud
US20160148021A1 (en) Systems and Methods for Trading of Text based Data Representation
CN110839067A (zh) 信息提供方法及装置
KR102115828B1 (ko) 블록체인을 기반으로 한 시험지 유출 방지 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant