网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

Schnorr数字签名

更新时间:2026年03月27日   作者:spoto   标签(Tag):

在密码学中,一个Schnorr签名这是一种由 Claus Schnorr 所描述的 Schnorr 签名算法生成的数字签名。 这是一种以简洁性著称的数字签名方案,其效率很高,且能够生成较短的签名。 这是用于实现“知识证明”的一种协议。在密码学中,知识证明是一种交互式证明方式,通过这种方式,证明者能够成功让验证者相信:该证明者确实知道某个事物“X”。 对于一台机器来说,所谓“X”的定义,其实是通过计算来确定的。 如果“X”可以被计算出来,那么机器就知道“X”的存在。 验证者要么接受该证明,要么拒绝该证明。 这个签名证明的目的是为了让验证者相信,他们正在与拥有与公钥相对应的私钥的用户进行通信。 换句话说,验证者必须确信自己在与证明者进行通信时,并不知晓对方的私钥。Schnorr数字签名技术,用于实现相关功能。零知识证明 :让我们以两位朋友萨钦和桑奇特为例。桑奇特向全世界宣布,她拥有自己的公钥,可以接受并接收信息。而萨钦则认为桑奇特在撒谎。桑奇特希望在不公开自己的私钥的情况下,证明自己的诚实性。这时,Schnorr协议就能派上用场了。

Consider the following parameters: p, q, a, s, v, r, x, ywhere,"p" is any prime number"q" is factor of p-1“a” such that a^q = 1 mod p 

上述三个变量都是全局且公开的,这意味着任何人在特定情况下都可以看到这三个变量。我们将拥有两个密钥。

"s" is the secret key or the private key (0<s<q)."v" is the public key = a^-s mod q. 

公钥“v”是公开的,与p、q和a一样,所有人都能知道它。不过,只有Sanchita拥有私钥“s”的信息。现在,Sanchita想要发送一条加密消息“M”。她将按照以下步骤来使用Schnorr签名技术:

  1. 她首先会随机选择一个数字“r”,使得 0<r<q。
  2. 现在,她需要计算出一个值 X,使得:X = a^r mod p。
  3. 现在,她已经计算出了X的值。接下来,她需要将这个值与原始消息进行连接(即使用字符串连接的方式)。因此,她会将M和X连接起来,得到M||X。然后,她会将这个值的哈希值存储在e中。
e = H(M||X) where H() is the hash function 
  1. 她会得到一个数值“y”,使得:
y = (r + s*e) mod q 

现在,所有的计算都已完成。接下来,她会将以下内容发送给萨钦。

  1. 消息为“M”。
  2. 签名为 e 和 y。

此外,萨钦还提供了以下公开信息:–

  1. Sanchita的公钥是“v”。
  2. Sanchita选择的那个质数,就是“p”。
  3. “q”是“p-1”的一个因子,而Sanchita选择了这个因子。
  4. “a”,使得 a^q = 1 (mod p),由Sanchita选定。

现在,萨钦需要计算出X’的值,使得:

X’ = a^y * v^e mod p 

我们知道,v = a^-s。将这个表达式代入上面的方程中,我们得到:

X’ = a^y * a^-se = a ^ (y-s*e) 

现在,我们同样知道……

y = r + s*eWhich means: r = y-s*e 

让我们把这个值代入上面的方程中吧:

We get: X’ = a^r 

正如我们上面已经看到的那样:

X= a^r 

所以,从技术上讲:

X = X’ 

但是,萨钦并不了解“X”的值,因为他从未收到过那个数值。他所拥有的只有以下内容:消息M、签名(e和y),以及许多公共变量(公钥“v”、p、q和a)。因此,他需要通过以下步骤来求出e的值。

e = H ( M||X’) 

请注意,之前我们是通过以下方法来求解 e 的:

H(M||X)) 

所以,按照这种逻辑,如果这两个e的值相等的话,那就意味着……

X = X’ 

这符合零知识证明的所有三个特性:

  1. 完整性——萨钦相信桑奇塔是诚实的,因为最终,X 仍然等于 X’。
  2. 合理性/合法性这个计划是可行的,因为Sanchita只有一种方式来证明自己的诚实性,那就是通过她的私钥来实现。
  3. 零知识——萨钦从未得知桑奇塔的私钥是什么。
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料