http://www.7klian.com

Vitalik:夹杂电路(Garbled circuits)快速入门

2. 爱丽丝(Alice )执行非凡的进程(“夹杂”-garbling)来加密评估函数f的电路(意味着一组“与”、“或”门)。她将输入(也以与加密电路兼容的方法举办加密)通报给鲍勃(Bob)。
此刻让我们更多地接头1-of-2茫然传输(oblivious transfer),这是鲍勃(Bob)用来从爱丽丝(Alice )那获取与他本身输入对应标签的技能。问题是这样的:聚焦于鲍勃(Bob)的第一个输入位(第二个输入位的算法沟通),爱丽丝(Alice )有一个对应于0(6529)的标签,和一个对应于1(4872)的标签。鲍勃(Bob)有他想要的输入位:1。鲍勃(Bob)想进批改确的标签(4872),而又不让爱丽丝(Alice )知道他的输入位是1。平凡的办理方案(爱丽丝只向鲍勃发送6529和4872)不起浸染,因为爱丽丝(Alice )只想放弃两个输入标签中的一个,假如鲍勃(Bob)同时吸收两个输入标签,则大概泄漏爱丽丝(Alice)不想放弃的数据。
出格感激Dankrad Feist对本文举办的审阅事情。

下面是一个利用椭圆曲线的简朴协议:

此刻,对付电路中的每个门,我们执行以下操纵。对付每一个输入组合,我们在爱丽丝(Alice )提供应鲍勃(Bob)的“夹杂”中包括输出标签(可能假如输出标签是“最终”输出,则直接包括输出),该标签是通过将导致该输出的输入标签散列在一起而生成的密钥加密的。为了简朴起见,我们的加密算法可以是enc(out, in1, in2) = out + hash(k, in1, in2),个中k是门的索引(它是电路中的第一个门,第二个,第三个?)。假如你知道这两个输入的标签,而且你有夹杂(garbling),那么你可以进修相应输出的标签,因为你只需计较相应的哈希,并将其减去即可。
假设爱丽丝(Alice )的输入是两条左线,她给出(0,1),而鲍勃(Bob)的输入是两条右线,他给出(1,1)。这又是带有标签的电路:

 
这是第一个异或门(XOR gate)的夹杂(garbling):

8. 鲍勃(Bob)评估第七个门(与门),他知道5990和6638,而且进修了8674;

在这里,门的输出仅用作其他门的输入,因此我们利用标签(label)而不是位(bit)来埋没评估器(evaluator)中的这些中间位。
3. 鲍勃(Bob)评估第二个门,他知道6816和4872,因此他可以提取与(2,6816,4872)对应的输出值(请拜见上表)并提取标签5990;
9. 鲍勃(Bob)评估第八个门(或门),他知道8674和7684,并进修了第三个输出位1;

1. 爱丽丝(Alice )生成一个随机椭圆曲线点H;

注:原文作者是连系首创人Vitalik Buterin。
夹杂电路(Garbled circuits)是一种很是陈腐,且很是简朴的暗码学原语。它们很大概是通用“多方计较”(MPC)的最简朴形式。
1-of-2茫然传输(oblivious transfer)
此刻,让我们对电路举办加密。首先,对付每个输入,我们随机生成两个“标签”(256位数字):一个暗示输入为0,另一个暗示输入为1。然后我们也对每其中间线做同样的操纵,不包罗输出线。留意,这些数据不是爱丽丝(Alice )发送给鲍勃(Bob)的“夹杂”的一部门;到今朝为止,这只是配置。

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