当前位置:首页 > 游戏信息 > 正文

非对称加密的两种应用场景

非对称加密的两种应用场景-第1张-游戏信息-龙启网

用一个数学上的小游戏作例子,老师让学生任意想一个三位数的数字A,然后把A*91的乘积的末尾三位数告诉老师,老师把末尾三位数*11得到一个乘积,乘积的末尾三位数就是数字A。

比如,数字A为234,234*91=21294,学生把294告诉老师,294*11=3234,末尾三位数就是数字A。

这个游戏的原理在于(不理解也没关系,不影响后面的学习):

91*11=1001,一个三位数*1001,相当于左移三位,然后再加上自己,因此一个三位数*1001的乘积的末尾三位数,一定等于该数

这个例子中,91就是公钥,谁都可以用公钥来加密,11是私钥,只有一个人有,所以只有一个人可以解密。

本例中,公钥私钥的创建,是利用了1001=91*11,其安全性在于,把1001拆成91和11很容易,但只凭91猜出1001和11很难。

我们还可以用更大的数字来做公钥私钥,比如400000001=19801*20201, 4000000000000000000000000000001=1199481995446957*3334772856269093,这样就更加安全。不过,真正的非对称加密算法(比如RSA)原理远比这复杂。

上面的例子,其实只是介绍了非对称加密的第一种应用场景:

消息发送方用公钥加密消息,接收方用私钥解密。

实际上,非对称加密还有第二种应用场景:

消息发送方用私钥加密消息,接收方用公钥解密,如果能解密成功,说明消息的来源可以信任。

备注

以上参考自 知乎