This article has been translated from English to Simplified Chinese.

数字签名是如何工作的?

在详细介绍数字签名的工作原理之前,我想先讲一个有趣的故事,让您轻松理解。

你可能觉得数字签名听起来很复杂,但如果你仔细听这个故事,就会发现其实并不复杂。

大家好!我是蝙蝠侠!

想象一下,蝙蝠侠有一个盒子。

How digital signatures work: Box with a lock

看看我的盒子!

这个盒子有一个锁……一个非常特别的锁。

这个锁有三个状态:

  1. 锁定(A):当 钥匙完全转到左边,就锁上了。
  2. 未锁(B): 钥匙位于中间位置,表示未锁。
  3. 锁定(C):当 钥匙向右旋转到底,即处于锁定状态。

Lock has 3 states

锁有两个单独的钥匙:一个黑色钥匙一个黄色钥匙

  1. 黑色钥匙只能向右旋转,即只能顺时针旋转(从A到B再到C
  2. 黄色钥匙只能向左转动,也就是说只能逆时针转动(从C到B再到A)。

Lock has two separate keys

这意味着,如果盒子被锁住,并且锁被转到位置A,只有黑色钥匙可以通过向右转动将其解锁到位置B(解锁)。

如果盒子被锁定在C位置,只有黄色钥匙才能将其解锁,方法是向左转动锁,将其转到B位置

因此,任何一把钥匙都可以锁住盒子,但一旦锁住,只有另一把钥匙才能打开

因为黑色是他的最爱,所以蝙蝠侠选择了黑色钥匙,并把它藏了起来。

我们把这把钥匙称为他的“私人”钥匙,因为现在只有蝙蝠侠拥有它。

我们把第二把钥匙,也就是黄色钥匙,称为他的“公共”钥匙:

蝙蝠侠复制了无数把钥匙,每当驾驶蝙蝠车在哥谭市街道上行驶时,他都会把钥匙扔给路边的行人。

Toss Public Keys

到处都是黄色的钥匙。最终,哥谭市的每个人都有一把“公共”钥匙。

在这种情况下,蝙蝠侠拥有自己的私钥,可以从A顺时针旋转到B再到C

而其他人则拥有他的公共密钥,可以逆时针从C到B再到A

蝙蝠侠退休!

让我们想象一下,布鲁斯·韦恩改变了主意,决定退出“蝙蝠侠”的身份,搬到尼泊尔的卡玛塔寺,在古一法师的指导下学习并成为一名僧侣。

我厌倦了这种富有而著名的超级英雄生活。

他还决定把所有的钱都交给他的管家阿尔弗雷德。

于是他在纸上写道:“尽快将1万亿美元交给阿尔弗雷德。”

Batman's letter

蝙蝠侠将这张纸放进盒子。用私人钥匙将钥匙转到C位……锁上了盒子。

Lock has 3 states

Box locked with private key (digital signature)

然后,他拿了一张纸,写上了同样的信息:“尽快给阿尔弗雷德1万亿美元”。

Batman's letter

然后,他将这张纸递给阿尔弗雷德,并嘱咐他:

把这个交给我的银行家。

然后补充道:

如果我的银行家不相信你,就把那个锁着的盒子给他。

现在有两封内容相同的信。一封锁在盒子里。另一封在阿尔弗雷德的口袋里,从技术上讲,任何人都可以看见。

当天晚上,蝙蝠侠告诉他的搭档罗宾,他即将退休,并将所有财产都留给阿尔弗雷德。

罗宾将这个消息透露给了媒体,第二天,电视新闻频道上到处都是这条新闻。

Batman News Flash!

蝙蝠侠在哥谭国家银行的银行家戴米·吉蒙在办公室的电视上看到了这条新闻。令他惊讶的是,阿尔弗雷德出现了,要求他归还钱,并递给他那张纸。

戴姆·吉蒙不相信这个消息,拒绝了。

阿尔弗雷德拿出上锁的盒子。

Alfred whips out the box acting as digital signature

然后把盒子扔到了办公桌上。

现在银行家拿到了消息和盒子。

Message with public key and digital signatures

和哥谭市的其他人一样,戴姆·吉蒙有一把从办公室楼下捡来的黄色钥匙。

戴姆·吉蒙从口袋里拿出“公用”钥匙,看看能否打开盒子。

将“公用”钥匙逆时针转到B位置,盒子打开了!

Lock has 3 states

盒子里装着蝙蝠侠写的信。这封信与阿尔弗雷德给他看的第一个字母相符。

Batman letters match

戴姆·吉蒙向阿尔弗雷德道歉,并让他的助手准备钱。

他意识到,只有使用蝙蝠侠的“私人”钥匙才能打开盒子,而钥匙只有蝙蝠侠一个人拥有。

这意味着除了蝙蝠侠之外,没有其他人能把信放进盒子,这也证明了这封信确实是蝙蝠侠写的!

蝙蝠侠之所以能够证明信息来自他本人,而且只有他本人,而不必提供真实的亲笔签名,是因为他使用了“一对钥匙”。

而使用上锁的盒子则暗示里面的信息一直受到保护,从未被打开过(一旦盒子被锁上)。

这基本上回答了这个问题:“如何证明蝙蝠侠确实写了这条信息,而无需他本人到场?以及信息在传输过程中没有被篡改?”

这是一个“数字签名”工作原理的 简单示例,希望您能有所启发。

现在让我们来学习一下数字签名在加密世界中的实际运作方式吧!