代理重加密算法
NuCypher是一个历史悠久的项目,其主要目标是为隐私保护应用提供基础设施,包括秘密管理、动态访问控制和安全计算。将使用代理重新加密的功能。本文将介绍NuCypher使用的代理重加密方法。它们被命名为Umbral,在西班牙语中是门槛的意思。
代理再加密和本影简介
Umbral是一种门限代理重加密方法。首先,我们需要知道什么是重新加密。在现代生活中,云硬盘大概是大部分人都会使用的服务,经常用于文件共享等等。今天,如果我们需要向朋友提供文档,我们通常会上传并建立链接,但我们可能需要在上传之前对更机密的信息进行加密,以确保服务提供商无法窃取或流出。然而,在加密之后,如果我们想用不同的密码提供给另一个人,我们需要创建许多副本。代理再加密会把这个过程交给云服务提供商。我们上传一个加密的文件后,这些服务商会通过重新加密,为不同的人生成加密的副本,这样我们就可以避免重复加密。
站长推荐
全球第二家加密货币交易所,注册即可获得最高¥3000的数字盲盒,该节点注册费用永久10%。
在上述过程中,我们可以分为三个角色:
加密方会提供一个重加密密钥 rk 给服务方,服务方可以拿着加密方产生的密文 ca 和这把 rk 去重新加密成给别人的密文cb,这套流程就称作代理重加密。
加密方会提供一个再加密密钥rk给服务方,服务方可以将加密方生成的加密文本ca和这个rk再加密成加密文本cb给其他人。这个过程称为代理重新加密。
代理重新加密有三个属性:
对于这三个属性,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的步骤如下:
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后,就可以解密了。步骤如下:
这边用我自己比较好理解的方式去写,所以可能有点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