网站开发的经济效益分析,济南网站建设方案咨询,wordpress 上一篇 下一篇,网站系统建设思想如何写来源于2007年Multi-authority Attribute Based Encryption
从单权威机构到多权威机构的意义是什么呢#xff1f; 基础方案#xff08;单权威方案SW#xff09;支持数据持有者对数据进行加密使用指定的属性集合并且指定一个数值d。当一个用户需要使用该数据时#xff0c;需…来源于2007年Multi-authority Attribute Based Encryption
从单权威机构到多权威机构的意义是什么呢 基础方案单权威方案SW支持数据持有者对数据进行加密使用指定的属性集合并且指定一个数值d。当一个用户需要使用该数据时需要满足至少拥有该属性集合中d个属性时才能解密成功拿到原数据。文中举了一个例子如下发件人对消息进行加密当用于如下三个属性罗德岛州驾驶执照、罗德岛州选民登记或布朗大学的学生证里面两个属性的用户拥有解密的能力。如用户A拥有布朗大学的学生证和罗德岛州选民登记他就可以解密发件人加密的消息。然而单权威方案的缺点就是这些属性都是来自一台可信赖的服务器这台服务器需要监管所有的属性。现实中驾照应该由交管所来管理选民登记应该由委员会来管理而学生证应该由学校管理。我们可以看到多权威方案的模式更加符合现实世界的运作每个机构为管理一组属性每一权威机构之间的属性是不不想交。因此多权威方案孕育而生提高了系统的灵活性和可扩展性。
本论文的结果 本论文实现了多权威机构的基于属性加密在方案中存在一个中心权威机构和k个属性权威机构以及用户。该方案支持发送者为每个权威机构k指定一组属性和数字dk使得一个用户满足所有权威机构k中规定的至少dk的属性时才能解密。对于安全性来讲该方案允许任意数量的属性权威被破坏并保证加密的安全性只要所需的属性不能完全从这些权威获得并且受信任的权威保持诚实。此外论文中还对方案提出一些扩展这些扩展将在下文出现。 改进中的困难和使用的技术 本文是思路是通过运行多个SW方案然后管理这些副本实现从单权威到多权威。
抗合谋问题 对于基础方案SW我们要预防用户的合谋攻击合谋攻击的具体表现文中也提供了例子假设用户A拥有学生证而用户B拥有驾驶证。在上文中提到的例子中我们说如果一个用户拥有学生证和驾驶证就可以解密数据但是现在看来无论是用户A和用户B他们都没有满足条件因此他们不能对加密的数据进行解密。对于一个用户去解密数据的简化流程大致如下他需要拿着他的属性向权威机构去申请密钥每一个属性会有一个属性密钥用户拿着这些密钥去解密如果密钥的数量够的话。回到例子现在用户A和B就是想要解密他们就密谋他们将自己的向权威机构申请的属性密码分享给对方对方拿到后将其拼接起来然后就变成了一个可以解密的合法密钥。 因此我们需要做的就是让密钥拼不起来。基础方案SW中使用方法是每一个用户的密钥是使用不同的随机共享秘密生产的因此密钥数学上自然而然拼接不起来。 我们将单权威机构变成多权威机构遇到的困难之一也是需要满足抗合谋攻击这个问题因为方案中出现了新的实体我们不只要防止用户和用户还要防止属性权威机构之间的合谋问题。SW方案可以防止当局下的用户的合谋问题。但是如果用户在不同权威机构下的合谋呢如果有一个密文解密需要权威机构一的一些属性和权威机构二的一些属性此时用户A满足一的属性要求用户B满足二的属性要求那他们的密钥还是能不能合并显然我们的方案需要二者的密钥是不能合并的。我们需要注意这一防合谋的实现并不是因为SW方案带来的。因为对于单一权威机构来讲对于每一个用户可以查看用户请求的所有属性并给出密钥因此它可以轻松地适当地重新随机化秘密共享。在多权威的机构下因为如果我们只是简单的使用多个SW的副本那么每个权威会为其用户随机化秘密共享这样子有可能出现两个用户如A和B他们的秘密共享是相同的因此导致密钥可以合起来。多权限情况下我们再次希望以不同的方式为每个用户分割秘密这次将其分配给多个权限。然而现在我们需要在当局之间没有任何沟通的情况下做到这一点。 解决方法 我们继续来考虑A和B的问题存在两个权威机构一和权威机构二情况一如果A用户向一申请属性集合A1的密钥B用户向二申请属性集合A2的密钥情况二用户A分别向一申请A1的密钥以及向二申请A2的密钥。对于权威机构来讲这两种情况如果只依据属性来讲就是相同的情况。而我们上面说过SW的防合谋就是因为查看到用户请求的所有属性因此他可以做出随机化秘密分享这里我有点不明白这么说SW方案不用需有相同属性的用户申请属性密钥么我也没看过基础方案这里暂且不讨论。既然情况一样对于情况一的两个用户来说随机化的秘密就是一样的因此就可以拼接。 解决方案就是退一步海阔天空的感觉也就是给用户加入全局标识符GID有没有IBE的味道有了GID就可以辨别这两种方案了。此时我们要区别于IBE就要做到这个GID不影响解密能力的主导权是属性决定的因此引入了中心权威机构。
中心权威机构 中心权威机构的加入是为用户的 GID 提供一个设置密钥每一个用户会将自己的GID发送给中心权威机构之后接收相应的密钥。这个密钥用于和用户重构的秘密值相结合后就可以得到致盲因子然后就可以解密。每个属性权威机构都有一个为随机函数(PRF)用来随机化秘密值。当用户向中心权威申请密钥时中心权限机构会为每一个属性权威计算PRF的结果并作为每一个SW副本的秘密。总结来说PRF 的使用意味着每个用户的密钥独立于任何其他用户的密钥并且不可能共谋。然后中央机构给出必要的附加密钥以确保如果我们在同一 GID 上计算每个 PRF我们总是可以将结果组合起来以获得固定值从而允许我们给出独立于 GID 的密文。
多权威机构构建过程 我们将从如何构建单权威方案直到构建多权威方案一步一步说起。 首先第一步实现秘密共享这一步直接用到了拉格朗日插值法。简单的理解就是说我们将秘密值y作为多项式p(0)如果这个多项式是d-1次的我们就可以通过d个点恢复出来(例如在二维坐标轴上知道两个点确定一个直线方程知道三个点确定一个一次方程等等等)而这些点你可以看做是用户的属性这样子是不是一个用户如果拥有d个属性就可以恢复出这个多项式方程我们就可以算出p(0)y了。方案一如下图 接下来要实现的就是指定属性。以上方案的缺点就是任何d个点都可以恢复出多项式来也就是任何满足数量的属性可以重建秘密值y这并不是我们想要的。因此我们的做法就是将每一个属性都对应一个数值并且在加密的时候提供指定属性数据。运用到了双线性映射方案二如下图 这样子我们就完成了单权威的构建。对于目前方案依旧存在一个问题就是如果一个用户满足一个密文解密的属性要求后他就将获得永久的解密能力即使在之后他的属性不满足其他密文的属性要求。这是因为加密使用了固定的这意味着每一次加密如果想要不一样需要向解密者重新生成私钥以便生成不同的。解决的办法是在附上一个随机数密文的格式这就保证了每一个密文都不同。现在解密需要和适应的因为引入了随机数放在指数上所以提供了额外的公钥。 上文提及到使用多个SW副本来实现多权威。我们对多权威的要求是一个用户需要满足所有属性权威机构至少d个属性才可能解密。第一个思路就是使用两次秘密分享的办法。一个用户对于第k个属性权威机构如果满足至少d个属性那么可以恢复出k权威机构所持的秘密如果对于所有的属性权威机构用户都能恢复出秘密值用户可以对这些秘密值相加最终得到主秘密。方案具体构造如下 上面的方案有一个问题我们考虑如下情景我们假设有k个用户和k个属性授权机构第k个用户拥有第k个属性授权机构要求的属性但不具有其他属性机构的属性。此时这些用户会出现合谋的现象每个用户都计算出自己达到要求的属性权威机构的秘密之后将他们的秘密相乘起来得到主秘密。这代表着k个单独的用户拥有属性集累加起来就是和一个用户拥有属性集是一样的。我们需要去识别每一个用户。解决的方法就是为每一个用户加上GID用户必须向每一个权威机构提供相同的GID以便接受一组一致的密钥。此外唯一标识不会影响正常的解密能力。此外我们为了防止不会出现合谋的现象。我们为每一个属性权威机构k去选择一个不同的随机值由于和是独立无关的所有不会出现能够合并的情况。 如果所有的权威机构都独立的选择怎么保证对于不同的用户他们从自己的每一个权威机构重建的秘密值累加之和都为呢有一种方法是让权威们互相沟通这样就能确保他们选择的秘密最终累加起来会是最后的但是我们不希望权威之间是互通因为这些权威并不是完全可信的。此时就运用到了我们先前提及到的中心权威机构它不负责监管属性而是知道各个属性权威机构设置秘密值的状态由它来为各个权威机构分配。它使用秘密状态的信息提供一个秘密密钥当该密钥与加密中给出的以及各个机构中获得的秘密值相结合起来就会为用户提供“主秘密”。具体的算法如下 安全分析 我们将从基础的SW的安全分析过渡到本文提出方案的安全分析。
SW方案安全性分析 方案是选择id安全的方案的底层困难问题是DBDH问题。 简单的说就是给定让敌手去区分。我们说如果存在一个敌手能够攻破SW方案那么我们就可以利用这个敌手去解决BDH问题。最终我们得出结果说解决了BDH问题但是由于BDH是数学难题是解决不了的所以出现矛盾我们最后得出结果就是不存在这样可以攻破我们方案的敌手我们可以证明我们即使在给定挑战密钥和自适应选择密文的密钥查询下消息和随便的消息是不可区分的进一步说明和中的其他元素是不可区分的。既然要归约到DBH问题那我们就需要将问题实例嵌入到我们的方案中我们设置。
多权威机构安全性分析 我们可以将单权威对安全性的分析应用到多权威方案。在这里我们说只要一个权威机构需求的属性条件用户没有办法达到我们就可以允许敌手发起对给定用户的私钥和属性私钥查询。所以最坏的情况是除了某个k属性权威机构外其余的权威机构的秘密敌手都能算出来并且能够计算出用户私钥和的双线性配对。我们需要让 是不可计算的对于敌人来说。因此 我们必须将这个不可计算的值隐藏在上面。这个秘密是由用户属性不满足属性权威的机构来保存的我们让这些属性权威机构的编号为并且设置。对于其他诚实的权威机构来讲我们要求他们的秘密是可以计算的所以设置。 密钥查询设置 首先为了确保归约的成功我们需要对属性权威生成公钥。 公钥我们分两种情况设置如果属性是权威机构所需要的由于后面的计算需要的存在我们需要让这个是可以计算的。因此我们设置。对于属性不是权威机构所要求的我们设置这样这些属性的就是不可计算的。 这里将属性权威分为两类清空第一种情况是用户属性不满足条件的属性权威机构第二种是用户属性满足的情况。对于第一种情况我们需要设置计算不出来的密钥例如。对于第二种情况我们可以秘密。 对于第一种情况我们设置了对于最多d-1个点也就是对应的属性我们给这些属性私钥。我们通过插值法选择d个点定义一个多项式。对与挑战中的属性i我们设置是的一个倍数。我们已经有了以及b个点我们可以恢复多项式对于其他的点我们可以通过插值来找到是
和的一个加权乘积。这个将是B的一个倍数对于这也是可以计算的。
具体的安全归约如下图所示 扩展 现在我们能来说说对我们方案的一些扩展。第一个扩展是改变解密需要的属性数量值在本方案我们视为每次需要的数量都是最大数量。将虚拟属性加入到我们的属性集合之中每个用户也会获得虚拟属性对于的私钥。对于一个密文如果想要将其需求的属性数量少于默认值,我们只需要在输出密文时多附带上额外的。用户可以在属性数目没达到需求数目的时候使用虚拟属性重建秘密 第二个扩展是第一个扩展的特例可以无视某一权威机构直接提供足够多的虚拟属性我们就不需要管我们的属性是否满足该权威机构的条件了。但是如果这么做那么有一点麻烦就是需要用户还是需要去该权威获得到所以虚拟属性的密钥。为了解决这一问题我们添加了一个权威机构属性对于每一个权威同时添加公钥以及给予每一个用户一个用于每个权威机构的秘密密钥用了这个对于被指定忽略的权威机构我们直接通过公钥和用户的密钥来恢复权威的秘密达到了忽略属性是否满足条件的效果。 我们的方案目前是要求用户满足所有属性权威机构才能解密因此第三个扩展是支持满足D个权威机构就可以解密。大体的思路就是用两次拉格朗日插值足够的属性可以获得权威的秘密足够的秘密直接获得主密钥。具体做法是中心权威机构给每个用户一个密钥然后每一个用户用其属性恢复结合得到最后在恢复出秘密之。 此外还可以为我们的方案在任何时候添加属性权威机构以及将我们多权威的方案是为单一授权CNF属性加密。在后者中每一个权威机构对应于一个句子。唯一的计算开销是每个权威机构中属性不能重复对于这个问题的解决方法是每一个属性创建独立的副本也就是即使是相同的属性学生证在权威机构一获得的对应属性密钥和在权威机构二中获得是不一样的