代理重加密:NuCypher Umbral介绍

欧易(OKX)交易所

新用户永久最高50%手续费减免!

官网注册   APP下载

NuCypher 是一个满久的项目了,最主要的目标是为隐私保护的应用提供基础设施,包含了Secret Management、Dynamic Access Control 与Secure Computation。其中会用到的代理重加密这个功能,这篇文章将

NuCypher 是一个满久的项目了,最主要的目标是为隐私保护的应用提供基础设施,包含了Secret Management、Dynamic Access Control 与Secure Computation。其中会用到的代理重加密这个功能,这篇文章将介绍NuCypher使用的代理重加密方法,他们命名为Umbral,在西班牙文中这是Threshold 的意思。

简介代理重加密与Umbral

Umbral 是一个门槛式代理重加密方法,首先我们需要先了解重加密是什么。在现代生活中,云端硬碟大概是绝大多数人都会使用到的服务,也经常会拿来做文件分享等等。而若今天我们需要提供一个文件给朋友,我们通常会上传并建立一个连结,但更机密的资料我们可能就需要先加密再上传,以保证服务商无法窃取或流出这个资料。然而加密之后,如果想要提供给另外一个人但不同密码,我们就需要建立许多份副本。代理重加密则将这个过程交给云端服务商,我们将一份加密的档案上传后,这些服务商透过重加密来产生对不同人的加密副本,就可以使我们避免重复加密。

在上面的流程中,我们可以分成三个角色:

  1. 加密方(Delegator)
  2. 解密方(Delegatee)
  3. 服务方(Proxy)

代理重加密:NuCypher Umbral介绍
加密方会提供一个重加密密钥 rk 给服务方,服务方可以拿着加密方产生的密文 ca 和这把 rk 去重新加密成给别人的密文cb,这套流程就称作代理重加密。

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

  1. Directionality:如果服务方只能利用 rk 将 ca 转换成 cb,称为unidirectional,如果可以反过来则称为bidirectional。在代理重加密上,我们会希望他是unidirectional的,以避免解密方在使用他的密钥产生密文后,被服务方与加密方共谋而泄漏其中的明文。
  2. Number of Hops:如果服务方对于 ca,在具备不同 rk 下(例如给Bob和Charlie的)可以分别产生对应的 ca 则称为multi-hop/multi-use,否则称为single-hop/single-use。
  3. Interactivity:如果解密方的密钥不需参与重加密密钥的产生流程,则称为non-interactive,否则为interactive。

对于这三个属性,Umbral 是unidirectional、multi-hop、non-interactive 的,此外,他也引入了非互动式零知识证明来提供重加密的可验证性。

而Umbral 的另一个特点,就是他是门槛式(Threshold)的,在前面的的简介中只有一个Proxy,一旦这个Proxy 故障,那加密方与解密方就无法完成传递,因此透过Threshold 的设计,例如可以建立一个t of N 的代理重加密会话,只要N 个Proxy 有t 个正常运作就可以确保传递顺畅。

KEM/DEM Approach

Umbral 参考了美国国家标准协会提出的ECIES-KEM,用到了称为KEM/DEM Approach 的方法。KEM/DEM Approach 是一种混合加密方式,透过混合非对称与对称加密,来提供足够的安全性与加解密效率(非对称的加解密通常较为耗能)。KEM Key Encapsulate Mechanism 会先产生一个对称加密的密钥,再透过DEM Data Encapsulate Mechanism 则将传递的资料加密。

代理重加密:NuCypher Umbral介绍

Shamir’s Secret Sharing

Umbral中的Threshold特性透过Shamir’s Secret Sharing的方式来达成。

Implementation

https://github.com/nucypher/pyUmbral

Zubiter–币安智能链上的非同质化代币建立与管理工具

2021币安黑客松三等奖得奖作品 Zubiter : 基本资料 项目名称:Zubiter铸币特 参与竞赛:Binance Hackathon: The Future Is Now 竞赛成果:Third Prize ($1,500) 项目状态:开发中(最后更新2021/2/21) 工作

Umbral 如何运作

代理重加密:NuCypher Umbral介绍
这边的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。

产生公开参数

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

KeyGen

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

  1. Alice会选择一个暂时的非对称密钥对,这里可能是考虑Alice和Bob会需要建立不只一次协议代理重加密:NuCypher Umbral介绍
  2. 将这个密钥对和Bob 做非互动式Diffie-Hellman 密钥交换,计算 代理重加密:NuCypher Umbral介绍
  3. 依照Shamir’s Secret Sharing 的方式,产生一个t-1 次的多项式f,其中秘密  f_0 = a \cdot d^{-1} \bmod q f0​=a⋅d−1modq
  4. 计算共有的代理重加密:NuCypher Umbral介绍
  5. 产生N个kFrag:
    5.1选取随机数 5.2计算Shamir’s Secret Sharing上的点 5.3计算Re-encrypt Key 5.4计算Commitment 5.5组合成kFrag
    代理重加密:NuCypher Umbral介绍

在产生kFrag中,论文有提到,z1​,z2​这两个是作为验证用的,在官方实作上是让Alice对kFrag加上pkA, pkB做签名来提供验证功能,由于这两个没有参与后面的运算这边选择略过。

产生Capsule

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

重加密与解密

Proxy拿到Capsule和kFrag后,就可以产生cFrag:代理重加密:NuCypher Umbral介绍。同时还会产生NIZK证明:
代理重加密:NuCypher Umbral介绍

这可能是基于NuCypher设计Stake机制,透过这个NIZK,网路可以透过计算代理重加密:NuCypher Umbral介绍验证这个Proxy有没有正确的计算而无需取得

Bob 搜集足够的cFrag 后,就可以来做解密,步骤如下:

  1. 计算代理重加密:NuCypher Umbral介绍(即KeyGen 4.于Bob方的运算)和d=代理重加密:NuCypher Umbral介绍(即KeyGen 2.于Bob方的运算)。
  2. 对每个cFrag计算对应的si与代理重加密:NuCypher Umbral介绍
  3. 计算代理重加密:NuCypher Umbral介绍代理重加密:NuCypher Umbral介绍
  4. 计算代理重加密:NuCypher Umbral介绍

这边用我自己比较好理解的方式去写,所以可能有点Bug。其中如果把 E 展开,可以得到代理重加密:NuCypher Umbral介绍,这里做的就是前面KeyGen 5.透过Shamir’s Secret Sharing的还原。套回4.后可以看出他与产生Capsule一节中最后的相同,从而使Alice与Bob共享这个Key。

传递密文

最后再使用KEM/DEM Approach的方式来传递密文就可以达成完整的Re-Encryption。原先产生Capsule时,会同时产生密文代理重加密:NuCypher Umbral介绍,并传递 ) C=(Capsule,encData),当Bob拿到时先解出K再message = SymDecrypt(encData)即可。

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

币圈的NFT卡牌游戏LOC GAME及代币LOCG有什么功能

LOC Game是一个以数字货币行业为中心的NFT收藏卡游戏,LOCG是LOC GAME游戏核心生态系统的一部分。LOCG代币将有一个治理机制,这意味着玩家将能够对新卡的发行、新类别、游戏玩法、慈善捐赠等进

原创文章,作者:菜鸡,如若转载,请注明出处:https://www.20on.com/111427.html

(0)
菜鸡菜鸡
上一篇 5月 26, 2022
下一篇 5月 26, 2022

欧易(OKX)交易所

新用户永久最高50%手续费减免!

官网注册   APP下载

相关推荐

  • gbp是什么货币?GBP是什么意思?

    gbp是什么货币? gbp是英镑货币,英镑的缩写(GREAT BRITAIN POUNDS ),英镑是英国国家货币和货币单位名称。英镑主要由英格兰银行发行,最常用于表示英镑的符号是…

    11月 7, 2022
  • UT是什么币?UT币官网总量和上线交易平台介绍

    摘要: UT币是一种数字货币,官网总量为10亿枚,目前上线了多个交易平台。本文将会从以下四个方面对UT币进行详细的介绍。 一、UT币简介 UT币是一种基于区块链技术的数字货币,采用…

    4月 30, 2023
  • 欧易钱包app最新版下载-欧易钱包app官网版v6.0.48安装包

    2022最新版欧易交易所是国际货币交易平台之一,为用户提供币币、杠杆、期权/交割/永续合约、DEX交易、余币宝、DeFi钱包、借贷等多元的产品矩阵,已经覆盖200余个国家和地区,拥有千万级用户量。基于区块链技术,采用通证经济模型,将创新型虚拟资产项目和OKX高端用户、投资人等进行连接,更好地打造OK

    10月 24, 2022
  • 如何保护数字货币投资免受市场波动?

    摘要:本文将探讨如何保护数字货币投资免受市场波动的方法。随着数字货币市场的快速发展,投资者面临着巨大的风险以及机遇。为了保护投资并实现长期稳定的回报,投资者需要采取一些策略和措施。…

    11月 1, 2023
  • 为什么比特币价格波动这么大?(比特币价格波动原因解析)

    摘要:随着近年来比特币的价格快速波动,人们对于比特币的价格波动原因越来越感到好奇。本文将从四个方面对比特币价格波动:原因揭秘,为读者呈现一份详细的解读。 一、市场供需关系的影响 1…

    4月 9, 2023
  • q币怎么充值[q币怎么充值话费]

    摘要: 本文将从 q 币的定义、用途、充值方式和充值注意事项四个方面对 q 币怎么充值 [q币怎么充值话费] 进行详细的阐述。q 币是一种虚拟货币,可以在 QQ 空间、QQ 游戏等…

    6月 22, 2023
  • 用显卡挖矿是什么意思

    1、用显卡挖矿是什么意思 用显卡挖矿是一种以计算机硬件设备来挖掘加密货币的方式。它利用显卡的计算能力来执行密码学运算,以获得加密货币。当挖掘者在网络上完成一笔交易时,他们会收到一定…

    2月 26, 2023
  • WEC币[wec币是哪个平台的]

    摘要:WEC币是ARPA Chain(Arpa)生态网络中的一种加密数字货币。本文将从四个方面对WEC币进行详细阐述,包括其技术和安全性、其经济模型、其价值和用途、以及它在ARPA…

    6月 23, 2023
  • q币可以转给别人[q币可以转给别人吗2020]

    摘要:   Q币是一个虚拟货币,在很多网游中都有使用。人们可以使用Q币购买游戏装备、衣服和其他虚拟物品。但是,很多人想知道Q币可以转给别人吗?本文将从四个方面详细阐述Q币可以转给别…

    6月 22, 2023
  • 矿工的工作原理是什么?矿工到底怎么工作的?

    摘要:矿工一直是神秘的职业之一,他们可以通过深入地挖掘地下资源,为人类的发展做出贡献。本文将揭开矿工的神秘面纱,带你了解其工作原理,为读者提供背景信息。 一、矿工的工作原理 矿工是…

    4月 14, 2023