• 零知识协议


    性质:在不透露消息具体内容的条件下,甲以某种方式向乙证明甲知道该消息的内容。

    这里我们假设两个参与者,他们分别是Peggy和Victor。Peggy知道密钥,且不想让Victor知道密钥的具体内容,

    但同时,Peggy想向Victor证明他知道。这里我借用一幅图来解释原理:Peggy与Victor一起从A走向B,Victor看着Peggy从B点走入C或者D。

    C与D之间有一扇门,Peggy想向Victor证明他知道打开门的密钥。此时,只需要Victor向Peggy说出他希望Peggy从哪边出来即可。若Peggy知道密钥,则Peggy一定能从这个特定的方向出现。

    否则若有一次不符合预期情况,则证明Peggy不知道密钥。例如:Peggy从C的一边走进去,则Victor希望他从D的一边出来,依此往复多次,则可以避免巧合。

    由于任何数学定理都可以转化为一个图,而找出两个图是否同构需要目前的计算机工作几百年的时间;并且已知一个图时,构造出与这个图同构的图却很简单。

    也就是说,一个图同构出另一个图,easy。

           由两个现有的图证明他们同构,almost impossible。

           由一个图同构出另一个图并证明它们同构,easy。

    具体的实现过程:

       (1):Peggy将消息加入一个随机数,建立一个与原难题同构的题目

            (2):Peggy通过位承诺方案对新难题提交解法

       (3):Peggy向Victor发送新难题,Victor无法从获得的信息中推测原难题的解法

       (4):Peggy证明两个难题同构

       (5):Peggy提交新难题的解法

         以上步骤重复n次。

    用难题进行表述是因为不仅仅可以利用图同构来实现此协议。

    现实价值猜想:在双方交易一些具有一次性价值的商品时,有很好的实用价值。这里的商品不仅仅是具体物品,通常为敏感消息、如商业机密,设计方案等等。

    猜想仅供参考。

    非作者同意禁止转载。

  • 相关阅读:
    Android事件机制之一:事件传递和消费
    数据类型和JSON格式
    json 数据交换格式与java
    写给iOS程序员的命令行使用秘籍
    pthread_create线程创建的过程剖析
    同步变量及知识要素
    mysql 批量更新与批量更新多条记录的不同值实现方法
    gettype
    寻求全站搜索功能开发思路
    DEDE中 field:rel 是什么意思,起一个什么样的作用效果
  • 原文地址:https://www.cnblogs.com/hhjfighting/p/7769222.html
Copyright © 2020-2023  润新知