1. 主页 > 区块链

代理重加密算法


欧易(OKX)交易所 - 全球顶尖数字货币交易平台

注册立即 领取价值高达 6,0000 元的数字货币盲盒,邀请码:vip1234,享受 20%手续费减免。

欧易注册 APP下载

NuCypher是一个历史悠久的项目,其主要目标是为隐私保护应用提供基础设施,包括秘密管理、动态访问控制和安全计算。将使用代理重新加密的功能。本文将介绍NuCypher使用的代理重加密方法。它们被命名为Umbral,在西班牙语中是门槛的意思。

代理再加密和本影简介

Umbral是一种门限代理重加密方法。首先,我们需要知道什么是重新加密。在现代生活中,云硬盘大概是大部分人都会使用的服务,经常用于文件共享等等。今天,如果我们需要向朋友提供文档,我们通常会上传并建立链接,但我们可能需要在上传之前对更机密的信息进行加密,以确保服务提供商无法窃取或流出。然而,在加密之后,如果我们想用不同的密码提供给另一个人,我们需要创建许多副本。代理再加密会把这个过程交给云服务提供商。我们上传一个加密的文件后,这些服务商会通过重新加密,为不同的人生成加密的副本,这样我们就可以避免重复加密。

站长推荐

全球第二家加密货币交易所,注册即可获得最高¥3000的数字盲盒,该节点注册费用永久10%。

在上述过程中,我们可以分为三个角色:

  • 加密器(委托者)
  • 解密方(被委托人)
  • 服务方(代理)

  • 加密方会提供一个重加密密钥 rk 给服务方,服务方可以拿着加密方产生的密文 ca 和这把 rk 去重新加密成给别人的密文cb,这套流程就称作代理重加密。
    加密方会提供一个再加密密钥rk给服务方,服务方可以将加密方生成的加密文本ca和这个rk再加密成加密文本cb给其他人。这个过程称为代理重新加密。

    代理重新加密有三个属性:

  • 方向性:如果服务提供者只能用rk把ca转换成cb,那就叫方向性,如果可以反过来,那就叫单向。在代理重加密上,我们希望他是单向的,这样可以防止解密方在用他的密钥生成密文后,和加密方合谋泄露明文。
  • 跳数:如果服务提供者可以用不同的rk生成对应的ca(例如对于Bob和Charlie),则称为多跳/多用户,否则称为单跳/单用户。
  • 交互性:如果解密器的密钥不需要参与重加密密钥生成过程,则称为非交互性;否则,它就是交互式的。
  • 对于这三个属性,Umbral是单向的、多跳的、非交互的。此外,他还引入了非交互式零知识证明来提供重加密可验证性。

    本影的另一个特点是有门槛。在前面的介绍中,只有一个代理。一旦这个代理失败,加密器和解密器就不能完成传输。因此,通过门限的设计,比如可以建立t个N代理重加密会话,只要有t个N代理的正常操作,就可以保证传输顺利进行。

    KEM/DEM方法

    Umbral参考了美国国家标准协会提出的ECIES-KEM,使用了一种叫做KEM/DEM方法的方法。KEM/DEM方法是一种混合加密方法,通过混合非对称加密和对称加密(非对称加密和解密通常消耗更多能量)来提供足够的安全性和加解密效率。KEM密钥封装机制首先生成一个对称的加密密钥,然后通过DEM数据封装机制对传输的数据进行加密。

    沙米尔 # 8217;秘密共享

    本影中的阈值特征通过Shamir # 8217的秘密分享。

    履行

    https://github.com/nucypher/pyUmbral

    zubiter——在智能货币安全链中建立和管理异构令牌的工具

    Zubiter:基本信息项目名称:Zubiter Mint参与竞赛:币安黑客马拉松:未来就是现在竞赛结果:三等奖(1500美元)项目状态:开发中(2021年2月21日最后更新)

    本影是如何工作的?


    这边的Alice 是上面的Delegator,Bob 是Delegatee。首先Alice 会透过Encapsulate 去产生对称密钥K 和Capsule,这个Capsule 包含了让Bob 拿到K 的资讯。接着Alice 会对Bob 产生N 个kFrag 并发送给Proxy 们,Proxy 拿着Capsule 和kFrag 就可以产生cFrag 并发送给Bob,Bob 拿到t 个cFrag 就可以用自己的密钥重组并解密出K。
    Alice是上面的委托人,Bob是被委托人。首先,Alice将通过胶囊生成对称密钥K和胶囊,胶囊中包含Bob获取K的信息,然后Alice将为Bob生成n个cfrags,并将它们发送给代理。Proxy可以用Capsule和kFrag生成cfrags并发送给Bob。当Bob得到t cfrags时,他可以用自己的密钥重组和解密k。

    生成公共参数

    首先会先产生一组Parameter:

    其中G是一个order为质数q的循环群,g和U则是在G上的两个Generator。H2?,H3?,H4?则是作为随机数产生器哈希函数。KDF是Key Derivation Function,将用这个来产生对称密钥。q和KDF的输出长度是这个协议的安全性参数。首代理重加密算法先会生成一组参数:

    其中G是素数Q阶的循环群,G和U是G上的两个生成器,H2,H3,H4是随机数生成器的那个哈希函数。KDF是密钥派生函数,将用于生成对称密钥。和q KDF的输出长度是该协议的安全参数。

    KeyGen

    Alice会产生自己的非对称密钥对
    (pk, sk) = (g^a, a),接着产生提供给Proxy的kFrag。产生kFrag的步骤如下:Alice会生成自己的非对称密钥对
    (pk,sk) = (g a,a),然后生成提供给代理的kFrag。生成kFrag的步骤如下:

  • Alice会选择一个暂时的非对称密钥对,这里可能是考虑Alice和Bob会需要建立不只一次协议Alice将选择临时非对称密钥对,这可能是因为Alice和Bob将需要不止一次地建立协定。
  • 将这个密钥对和Bob 做非互动式Diffie-Hellman 密钥交换,计算 在这个密钥对和Bob之间进行非交互式Diffie-Hellman密钥交换,并计算
  • 据沙米尔 # 8217;s秘密共享,生成t-1次多项式f,其中秘密f _ 0 = a \ cdot d {-1 } \ bmod q F0 = ad 1 modq。
  • 计算共有的计算共享
  • 产生N个kFrag:
    5.1选取随机数 5.2计算Shamir#8217;s Secret Sharing上的点 5.3计算Re-encrypt Key 5.4计算Commitment 5.5组合成kFrag
    生成n个kfrags:
    5.1选择随机数5.2计算Shamir # 8217关于秘密共享的点5.3计算重新加密密钥5.4计算承诺5.5并将其组合到kFrag中
  • 在kFrag的生成中,文中提到z1、z2、Z2用于验证。在正式实现中,Alice签署了kFrag加PKA和PKB来提供验证功能。因为这两个没有参与后面的操作,所以我们在这里选择跳过。

    生成胶囊

    Alice会选择两个随机数r, u并包装成。对称密钥则透过得出,任何人收到Capsule都可以透过去检验E, V的正确性。而Alice可以拿Capsule和Private Key a去取回。Alice会选择两个随机数r,u,把它们包装成。

    重新加密和解密

    Proxy拿到Capsule和kFrag后,就可以产生cFrag:。同时还会产生NIZK证明:
    代理可以在获得胶囊和kFrag后生成cFrag:

    这可能是基于NuCypher设计Stake机制,透过这个NIZK,网路可以透过计算验证这个Proxy有没有正确的计算而无需取得这可能是基于NuCypher设计的桩子机制。通过这个NIZK,网络可以在不获取的情况下,通过计算验证这个代理是否有正确的计算。

    Bob收集到足够的cFrag后,就可以解密了。步骤如下:

  • 计算(即KeyGen 4.于Bob方的运算)和d=(即KeyGen 2.于Bob方的运算)。计算(也就是KeyGen 2的运算。在鲍勃那边)。
  • 对每个cFrag计算对应的si与为每个cFrag计算相应的si和
  • 计算计算
  • 计算计算
  • 这边用我自己比较好理解的方式去写,所以可能有点Bug。其中如果把 E 展开,可以得到,这里做的就是前面KeyGen 5.透过Shamir#8217;s Secret Sharing的还原。套回4.后可以看出他与产生Capsule一节中最后的相同,从而使Alice与Bob共享这个Key。用我自己通俗易懂的方式写在这里,可能会有一些bug。如果展开E,就可以得到。这里做的是之前的KeyGen 5。通过沙米尔 # 8217;秘密共享的恢复。设定4后。,可以看出他和生成胶囊那一段的最后一个是一样的,让爱丽丝和鲍勃共享这个密钥。

    传输密文

    最后再使用KEM/DEM Approach的方式来传递密文就可以达成完整的Re-Encryption。原先产生Capsule时,会同时产生密文,并传递 ) C=(Capsule,encData),当Bob拿到时先解出K再message = SymDecrypt(encData)即可。最后,通过使用KEM/DEM方法传输密文,可以实现完全的重新加密。生成原胶囊的同时会生成密文,传输)C=(Capsule,encData)。Bob得到后可以先解k,然后message = SymDecrypt(encData)。

    郑重声明:本文版权归原作者所有。转载文章只是为了传播更多的信息。如作者信息标注有误,请第一时间联系我们修改或删除。谢谢你。

    NFT卡牌游戏LOC GAME和代币LOCG在圈子里有什么作用?

    LOC GAME是一款以数字货币产业为核心的NFT卡牌游戏,LOCG是LOC Game核心生态系统的一部分。G token将有一个治理机制,这意味着玩家将可以发行新的卡,新的类别,游戏玩法,慈善捐款等。

    本文来自网络,不代表币圈之家立场,如有侵权请联系我们删除,转载请注明出处:https://www.110btc.com/qukuai/9039.html

    联系我们

    在线咨询:点击这里给我发消息

    微信号:AB100082

    工作日:9:30-18:30,节假日休息