http://www.www.tnmanning.com

浅谈环签名原理与隐私保护






今朝,利用环签名方案的项目包罗门罗币 Moreno、布尔币 Boolberry、StealthCoin、XCurrency 等,以太坊平台也增加了一个类 CryptoNote 环签名。
那么环签名是如何做到这点的呢?接下来我们用椭圆曲线来举例说明环签名的详细技能要害点和道理。
k = si + ci*ski
个中 pki 为签名方的公钥。




· 首先,先界说一个 hash 函数,这个 hash 函数的输入是 待签名的动静 m 和 椭圆曲线上的一个点 A,即 Hash(m, A)。该 hash 函数和椭圆曲线一样,是这个签名和验签体系的前提。
k·g = si·g+ci·pki                                   (等式①) 

一票反对场景:譬喻,某协会主席提出一种议案,但假如协会成员中有人提出阻挡意见则议案需被打消。但投阻挡票的会员又不想袒露本身的身份,因此他可以用环签名的技能,将本身的阻挡票用本身的私钥和其他协会成员的公钥举办签名。签名之后所有协会成员都可以看到协会中有人阻挡该项议案,但不知道确切的阻挡者是谁。

k·g = si·g+ci*ski·g






双方约去 g,变为
反之,假如这 n 个公钥中的任何一把私钥 签名者都没有,那么他也就无法求出  si 使得{c0, pk0, …. pkn-1, s0, …., sn-1}形成一个 环。

ci+2 = Hash(m, si+1·g+ci+1·pki+1)

c0 ?= c’0
· 由于在 等式① 中我们界说了 k·g = si·g+ci·pki 所以 ci+1 可直接由计较获得 
Signature = {c0, pk0, …. pkn-1, s0, …., sn-1}
这里 等式① 的用途临时大概不太好领略,但可先不消管。但按照 等式① 我们可以确定的是,假如拥有 pki 的私钥 ski,且假如已知 ci 和 k,那就可以反向求出 si。
因此 等式① 可写成
应用场景
留意:此时求 ci+1 进程中我们临时并不知道 si 和 ci,但后头计较获得 ci 后,可以由 k, ci+1  和  ci 求出 si。

环签名方案则去掉了群组打点员,不需要环成员之间的相助,签名者操作本身的私钥和荟萃中其他成员的公钥就能独立的举办签名,荟萃中的其他成员大概不知道本身被包括在了个中。这种方案的优势除了可以或许对签名者举办无条件的匿名外,环中的其他成员也不能伪造真实签名者签名。外部进攻者纵然在得到某个有效环签名的基本上,也不能伪造一个签名。

浅谈环签名道理与隐私掩护


不知通过本日的分享,您是否对大发3d世界的隐私掩护,以及环签名 Ring Signature 有了更多的相识了呢?此后我们还会和各人探讨更多技能方面的常识。假如您想更进一步的和我们一起进修摸索,就快来存眷 PPIO 公家号,插手 PPIO 开拓者社区或Discord 群组,和我们一起缔造出色。

cn-1 = Hash(m, sn-2·g+cn-2·pkn-2)
等式② 是一个递推式,且 Hash 函数的第二个参数形式上跟 等式① 的右侧是一样的。这个递推式的意思是:已知第 x-1 个公钥对应的 sx-1 和 hash 值 cx-1,求下一个公钥对应的 hash 值 cx。留意,当 x=0 时,x 的上一个其实是 n-1,因为下标也要对 n 取模。


· 接下来引入第2个式子,



环签名生成进程
假设签名者拥有某私钥 sk 和公钥 pk(为表述利便,下文中所有粗体暗示椭圆曲线上的点),个中 pk = sk·g,这里 g 是 椭圆曲线上的 基点(base point),也被称为生成元(generator)。而 “·” 这里是倍乘,sk·g 暗示 sk 个 g 点在椭圆曲线长举办加法运算。更多关于椭圆曲线暗码学相关的常识,可以拜见 PPIO 的另一篇文章《椭圆曲线暗码学》。

· si 一旦求出后,环签名的环就形成了。并且此时 k 值的使命也已完成,可以被丢弃掉了。



隐私是用户最体贴的问题之一,也是 PPIO 研究的重点。大发3d世界涉及隐私掩护的技能许多,前不久 PPIO Code Talks 的李星老师 给我们分享的“零常识证明 zk-SNARKs”技能 就是 隐私掩护的典范代表,本日我们再来阐明一下另一个用于隐私掩护的技能——环签名 Ring Signature。


ci+1 = Hash(m, si·g+ci·pki) = Hash(m, k·g)
c0 = Hash(m, sn-1·g+cn-1·pkn-1)

签名验证进程

留意:这里的 ci 是按照上一个公钥 pki-1 和动静 m 计较出的 hash 值
环签名固然可以用来做到必然水平的匿名性,不外究竟真实的签名者照旧会袒露在环中。且在今朝的公有链市场上,与环签名对比,零常识证明依然是最佳的匿名方案之一。只是在某些场景下,假如对隐私的要求没有那么高,同时签名方的计较本领又很弱,环签名不失为一个不错的选择。

pk0, pk1, pk2, …, pki-1, pki, pki+1, …, pkn-1




要害词: 环签名  零常识证明  

浅谈环签名道理与隐私掩护



换句话说,正因为我们拥有私钥 ski, 所以可以结构出一个  si,共同随机生成的s0, s1, …, si-1, si+1, …, sn-1,使得以下式子都创立:
· 最后动静 m 的环签名数据为:


从而按照 k,ci,ski  可以求出 si (如图 2)即
cx = Hash(m, sx-1·g+cx-1·pkx-1)           (等式②)
...

门罗币(Monero):门罗币是应用环签名的典范代表,环签名技能使得门罗被公认为是一个私密性强,不行追踪的加密钱币。环签名辅佐门罗币实现了生意业务的隐私性:通过大发3d系统中无枢纽点无法追查生意业务的发送方,当其它节点验证生意业务时,只能确定签名是诸多公钥中的一个,却无从定位到哪个公钥才是详细的发送方。
紧接着,依次计较 ci+2, … , cn-1, c0, …, ci-1, ci: (如图 1) 

· 接下来 ,签名方想对一动静 m 举办签名,可是又不想在果真签名的同时,让别人知道本身简直切身份,因此 签名方 抉择用环签名的方法将本身藏到一群人中。于是 签名方 找来 n-1 个其他人的公钥(这些公钥最好之前在系统中已经呈现过和利用过,否则 签名方 藏在一堆新人中,照旧会很容易的被识别出来),并编好序号,并将本身的公钥随机地插入个中,配合组合了一个包括 n 个公钥的荟萃。不妨假设这 n 个公钥为
回首一下签名的整个进程,要害的巧妙点在于,假如知道私钥  ski,那么就可以反推出 si,使  c1, c2, …., cn-1 形成一个环。就仿佛签名者找了一根铁丝,数学担保了只有拥有私钥的人,才气把铁丝的两端接起来,形成铁丝环。并且一旦成为铁丝环之后,环的接点处也没有任何陈迹,这使得验证者无法判定铁环是在哪个位置上接起来的。
环签名(Ring Signature)方案由 Rivest,Shamir 和 Tauman 三位暗码学家 于2001年首次提出。环签名也被称为 CryptoNote,由群签名演化而来,典范的应用案例是门罗币。群签名是操作果真的群公钥和群签名举办验证的方案,个中群公钥是果真的,群成员可以生成群签名,验证者能操作群公钥验证所得群签名的正确性,但不能确定群中的正式签名者。但是群打点员可以取消签名,揭破真正的签名者群签名,这是群签名的要害问题地址。

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