博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
知识签名(signature of knowledge)
阅读量:4984 次
发布时间:2019-06-12

本文共 961 字,大约阅读时间需要 3 分钟。

定义

     签名者利用数学知识和公共信息,非交互和不泄露某个秘密的情况下,向别人证明他知道这个秘密。

     常见的知识签名有三种:

    • 离散对数的知识签名
    • 双离散对数的知识签名
    • 离散对数e次方根的知识签名

离散对数的知识签名

     离散对数的知识签名的符号表示是:

     是针对如下问题提出的:y = g^x mod(n);  x是私钥,y是公钥,g和n都是公开的系统参数,m是消息

     现在需要让其他人证明自己拥有私钥x。

     如何证明呢?

     只要知识签名者给出一个(c,s)对,符合如下等式就能证明自己拥有私钥x。

     c = H(m||y||g||(g^s) (y^c))

     操作过程

    1. 选择一个随机数 r;
    2. 计算c:根据公式 c=H(m||y||g||g^r)
    3. 计算s:根据公式 s = r - c * x
    4.  (c,s)即为知识签名。

     解释说明

         

     如果知道密钥x,执行通过上面操作过程中的四个步骤就可以轻松计算出(c,s)对的值,

     如果不知道密钥x,而想算出(c,s),只能通过3式计算,这在计算上是不可行的。

     所以,如果能给出一个满足条件的(c,s)对,就能说明其拥有私钥x。

 

双离散对数的知识签名

         理解了离散对数的知识签名,后面这两个知识签名的思想完全一样,只是形式上稍微复杂一点点。

         双离散对数的知识签名的符号表示为:

        

         它是针对如下问题提出:

         

         y是公钥,g,α,n都是公开的系统参数,m是消息。只要给出(c,s1,s2,……sk),满足如下等式就表示自己拥有私钥x。

         

         操作过程

         

         解释说明

         和离散对数的签名的“解释说明”类似,拥有私钥x,就可以根据“操作过程”中的步骤计算出(c,s1,s2,……sk),如果不知道私钥x,在计算上来说不太可能计算出满足条件的(c,s1,s2,……sk)对。

离散对数e次方根的知识签名

         离散对数e次方根的知识签名的符号表示为:
         
         它是针对如下问题提出的:
         
         y是公钥,g,e,n是公开的系统参数,
β是对于的私钥,m是消息。现需要证明自己拥有私钥β。
         如果能给出(c, s1, s2……sk),满足如下等式,则说明自己拥有私钥。         

         操作过程:

         

         解释说明

         “解释说明”和前面的解释说明类似。

 

 

转载于:https://www.cnblogs.com/java20130722/archive/2013/05/23/3207076.html

你可能感兴趣的文章
监听器的使用,以及实现, 测试
查看>>
eCharts 折线图,动态绑定数据不更新图表的问题,
查看>>
java基础二 分支循环
查看>>
python--002--数据类型(list、tuple)
查看>>
把近期的小错误整理一下
查看>>
C# 将dataset数据导出到excel中
查看>>
动画浅析-CAAnimation和CATransition
查看>>
[JSOI2008]星球大战
查看>>
自己看过的前端书籍
查看>>
MVC之自定义过滤器(ActionFilterAttribute)
查看>>
破釜沉舟,出发吧!
查看>>
BonnMotion支持的几种移动模型
查看>>
WEB环境搭建(tomcat)、Eclipse连接tomcat
查看>>
Linux下向SVN服务器添加新文件步骤
查看>>
深入分析CAS
查看>>
2017-11-6 Django
查看>>
图像处理中的matlab使用
查看>>
动态规划 —— 背包问题一 专项研究学习
查看>>
51nod 1571 最近等对 | 线段树 离线
查看>>
关于parseInt的看法
查看>>