我不知道我到底在寻找什么,但情况如下。爱丽丝和鲍勃想结婚。根据法律,他们必须进行一套医疗调查。鲍勃必须向爱丽丝出示他的医疗结果,爱丽丝必须向鲍勃出示她的医疗结果。在那之后,他们都需要去看医生,医生必须证明他们互相展示了他们的医疗结果,但医生不允许查看鲍勃和爱丽丝的调查结果。这个任务能用零知识证明来解决吗?如果是的话,你能给我一些推荐信吗?谢谢!
发布于 2018-08-20 09:12:13
不如:
艾丽斯和鲍勃都必须回答医生提出的一系列问题。爱丽丝和鲍勃必须分别回答这些问题。
在回答任何问题之前,他们都同意"1“是”是“,"0”是“否”,但医生不知道哪一个是“是”。医生还把问题弄乱了,这样爱丽丝和鲍勃就不能为他们的答案做某种预定义的模式了。
其中一个问题可能是:“Bob有糖尿病吗?”
Alice和Bob都知道这个问题的正确答案(假设Bob没有糖尿病),他们都用"0“回答这个问题。
医生不允许问他知道答案的问题。“爱丽丝有蓝眼睛吗?”
医生现在得到了他们的两个答案,并对他们进行了比较。如果他们对每一个问题都有相同的答案(假设他们的回答是真实的,没有犯任何错误),那么医生可以确定他们互相告诉对方他们的结果。
对此一无所知的部分是,医生仍然对他们的医疗结果一无所知。
发布于 2018-12-07 11:14:32
我想说你对这个问题有一个非常不清楚的表述。艾丽斯/鲍勃从哪里得到医疗结果的?为什么不去找医生?在任何情况下,他们都应该从一些认证的医疗机构那里得到。这个经认证的医疗服务部门显然知道结果。医疗服务部门只需在结果上签字,任何人都可以验证其真实性。然后,Alice只收到医疗服务的签名结果,并将其显示给Bob。鲍勃应该检查签名。就这样。那么,如果您想确保Bob知道Alice的结果,您只需问他是否看到了带有结果的文档?医生里是否有爱丽丝的全名?新的约会是否在医生体内?医生是否得到了医疗服务部门的适当签署?足够了。
另一个有趣的问题是:当爱丽丝接受测试时,她能把自己的人藏起来不受医疗服务的影响吗?也就是说要实现这一点,组织和密码技术都需要。我看到了以下的方法。艾丽斯(以及每个人)都会用匿名的一次性标识发送她的血液样本。然后,医疗服务部门将所有结果和相应的标识符发布到某个公共站点。再来一次签名。当结果准备好后,Alice会在网站上看到它。除了爱丽丝,没有人知道这个具体的结果与她相对应。但是现在她需要让Bob (只有他)相信这个标识符就是她。这就是ZKP可以提供帮助的地方。例如,我们可以使用Schnorr协议,它允许证明离散对数的知识。因此,活动生成她的匿名标识符作为某个秘密值的指数。然后,爱丽丝可以证明她知道这个秘密值,使用Schnorr协议。(此处可使用任何其他ZKP协议)
当我写最后一句话时,我发现这种方法有一些安全漏洞:)为了欺骗Bob,Alice可以要求她的朋友而不是她进行测试(当然,这个朋友告诉Alice秘密价值)。实际上,鲍勃会收到爱丽丝朋友的结果。这也可以在某种程度上加以修正。你可以在这个方向更详细地阐述。
https://crypto.stackexchange.com/questions/61624
复制相似问题