什么是数字签名技术举个例子(数字签名的主要流程)
作者: 生先生谈IT
2019-10-14 11:19:01
[ 闻蜂导读 ] 深入浅出数字签名,生活场景化语言助你轻松理解数字签名,数字证书

大家有这样的印象,就是我们在日常生活中经常会用到签名或者按手印。虽然这些概念我们平时可能也都听说过,但是我相信真正去深究或者能彻底弄明白的人可能还不是多数。今天我们这里就和大家一起简单的说说什么叫数字签名。

在日常生活中,大家可能经常用到签名,这种场景往往比比皆是,一点都不难以理解。比如某一天小青像小红借了50元钱,那么小青需要写一张借条给小红,往往借条如下:

什么是数字签名,生活化语言助你理解数字签名,数字证书的概念

很简单的一个欠条,大家可以看到该欠条的右下角是有着小青的签名的,也即表示该欠条的内容是小青认可的,不是小红伪造的。所以看到签名的重要性,如果没有签名,那么小刚,小明,等等,任何一个人都可以拿着伪造的欠条来找小青要钱了,那岂不是乱了套。

但是,在现在的计算机时代,有很多的时候我们的合约都是在网上完成的,在网络上用手写的签名第一是不方便,第二是用电脑太容易拷贝签名了,只要我有小青的一次手写签名,那么我可以拷贝到N多的地方去,从这些方面来考虑,基于计算的手写签名的场景是不合适的。于是我们就发展出来数字签名。

继续拿小青像小红借钱的例子来说,有一天小青在欧洲旅行钱包被巴黎的小偷给偷走了,幸运的是只留下了手机。于是,小青就联系小红借了10000块钱,小红说,我给你打个欠条吧。那么这个时候,我总不能打开word文档,直接写上"小青欠小红10000元钱"然后发给小红吧,这样一点法律作用都没有。

首先在说数字签名之前,我这边再强调一点,那就是数字签名和内容是严格对应的。什么意思呢?举个简单的例子:

比如:

这边有一个针对"小青欠小红10000元钱"的内容的数字签名,该数字签名是唯一的。针对内容的任何改动,都会引起数字签名相当大的变化。

比如:小红有一天财迷心窍,修改了word欠条中的数字,把10000元变为了100000元,那么欠条的内容自然而然的就变为了"小青欠小红100000元",那么这种情况下,针对该内容生成的数字签名就会发生相当大的变化,所以数字签名是不可复制的,任何文字的变动都会引起数字签名相当大的变化。

那么今天再来说最后一个问题,数字签名是怎么生成的呢?

一般来说,数字签名是用Hash算法来生成的,Hash算法有很多种,这里采用的是SHA-256的Hash算法,SHA的全称是(Security Hash Algorithm)安全的Hash算法,256代表的是不论你输入一个什么值(不管你输入多长的值),采用该算法之后输出的就是一个包含256位数的二进制数。

什么是数字签名,生活化语言助你理解数字签名,数字证书的概念

注:上面是"小青欠小红10000元"内容的SHA-256加密串(由于展示的方便我这里用64位16进制数来表示加密后的字符串,如果真要展示256位字串,小编的眼睛都要瞎了)

下面加入小红修改了金钱,将10000元变为100000元,看看最终的SHA-256加密串,如下图:

什么是数字签名,生活化语言助你理解数字签名,数字证书的概念

你们可以看到的,这个SHA-256生成的字符串完全不一样啊,可以这样说,别说你修改了数字了,哪怕你增加一个空格,或者有个标点符号的改变,将逗号改为句号,这样都会导致最后的SHA-256加密串天长地别。

所以用SHA-256生成的字符串作为数字签名是最合适不过的,能确保数字签名和内容的一一对应。

备注:

SHA-256加密有很多的在线加解密攻击,有兴趣的同学可以参考以下网址:

由于篇幅的关系,今天我们就到这里,明天我们继续该主题,继续讨论数字签名,数字证书,最终引申数字签名,数字证书的用处,比如HTTPs等。

更多关注微信公众号:jiuwenwang

相关文章

  • 验证码: 看不清?点击更换 看不清? 点击更换
  • 意见反馈
    意见反馈
    返回顶部