首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

区块链与身份认证(上)

前言

本次我们来聊聊区块链及其重要应用之一 —— 身份认证。介绍将分成上下两个部分,在第一部分中,讨论“身份”的本质和非对称加密等基本概念,在第二部分中,讨论区块链在身份认证上的应用。

忒修斯之船

忒修斯之船是一个古老的思想实验。它描述的是一艘可以在海上航行几百年的船,只要船上一块木板坏掉了就会使用一块新木板进行替换,以此类推,直到船上的所有木板都被替换了一遍,那么此时的这艘船还是之前的那艘船吗?这是一个很有意思的实验,它讨论的正是“身份”的问题。好,现在换一个问法:“假设你爹在你小时候给你录了一段视频,时隔二十年你又翻了出来,请问你如何证明视频里的小孩是你是同一个人呢?”你如何证明你就是你自己?

身份

关于“自我”的讨论是哲学上一大命题。我到底是谁?你想象一下,你在不同场合下会如何向大家介绍自己呢?在现实生活中,我们有各种各样的角色,家里是孩子、学校里是学生、公司里是员工、餐厅里是顾客等等。这里我们不是要深入讨论“自我”的哲学问题,仅仅是想说明我们在社会中有各种不同的身份。所谓身份就是一种标识,没有身份你就无法上学,无法高考,无法看病,无法乘坐火车,无法使用邮件服务,无法使用微信和朋友聊天...

我们是如何证明自己身份的?

为了上学,你需要出示你的户口本;为了高考,你需要出示你的学籍;为了坐火车,你需要出示你的身份证;为了使用电子邮件,你需要提供密码以登陆某个账户;为了使用微信,你需要提供某个手机号对应的验证码。这些例子中有一个共同的特点:为了证明我们的身份,我们需要出示一个只有自己才可能拥有的物品!这个物品只有我一个人拥有,别人很难伪造一个一模一样的,你持有这个独一无二的东西,就说明你就是它的主人,它就表示了你的身份。

现代密码学的根基

在讨论非对称加密之前,我们先来聊聊现代密码学的根基。你还记得因数分解吗?例如:21 可以分解为 3x7;45 可以分解为 3^2x5...实际上任何一个数都可以分解为这样的形式(一连串质数的乘积),并且分解结果是唯一的!在数学上这叫算术基本定律,这就是现代密码学的根基!为什么?因为我告诉你 3 和 7 你可以很容易算出它们的乘积是 21,但是告诉你 21 你却很难知道它可以分解为 3x7。你可能会说,这不扯淡么,难道我还不知道 21 可以分解为 3x7?那其实是因为 21 这个数太小了,而且你背诵过九九乘法表。请问下面这个数可以分解成什么?:1000000019300000093122499好了,我可以告诉你答案了:1000000009649*1000000009651。这是两个很大的质数,所以不存在别的分解形式了。你需要记住的是:一个大整数,它是很难被分解的,但是告诉你分解结果,你可以很快速的验证正确与否!以上内容就是现代密码学加密的根基,具体的应用需要理解更多数学知识(欧拉定理等)就不展开讲了。在现实世界的加密中,通常选取的整数超级大,例如 128 位或更大。如果你想强行分解(破解密码),你需要不断的试需要不断的计算,当分解的数过大时,无法在有限时间求解,这就表示这种加密方式是安全的!

非对称加密 —— 公钥和私钥

这里我们不讨论非对称加密的工作原理,我们先来看看它有什么特征。关于公私钥,你可以把私钥想像成两个很大的质数,而公钥是它们的乘积。通过私钥可以推导出公钥,但是告诉你公钥你不能反解出私钥。所谓非对称加密,就是说加密解密用的不是同一个东西。与之相对的是对称加密,比如把每个字母编码成数字进行加密,对称加密最大的问题是:如果要解密就需要告诉对方加密的方法,加解密用的是同一个东西。如果我加密用的是非对称加密,我用私钥加密后,你使用公钥解密就好,公钥可以随意传播,私钥我保存在本地。非对称加密对于加密货币,对于区块链至关重要。加密货币的钱包大致可以等于私钥加公钥。

公钥私钥的两大用途

首先,需要说明的是,私钥和公钥是成对的钥匙,使用其中一把钥匙对信息加密后,用另一个钥匙可以解密。假设你已经生成了一对公私钥,我们来看看怎么使用。1. 加密当你的朋友们想给你发送秘密信息时,她就可以使用你提供的公钥对信息进行加密,因为被公钥加密的信息只有私钥才能解开,而私钥只有你一个人拥有,所以信息的传递就是安全的。即使有人截获了传输中的信息,他也无法知道其中真正的含义,因为他最多只知道公开的公钥,而不知道用于解密的私钥。这是其一用途:公钥加密,私钥解密。2. 签名如何向朋友证明你就是你呢?其实你需要证明的是:你是某个公钥的主人,即你拥有这个公钥对应的私钥。在这种情况下,你的朋友可以给你一段信息,例如给你一个单词“Secret”,你使用私钥对这个单词进行加密(签名),然后对方使用手上的公钥对密文进行解密,如果能够解密,说明你的确拥有了公钥对应的私钥,而私钥只有真正的主人一人持有,所以这样就证明你的身份!这是其二用途:私钥签名,公钥验证。

后续

在有了这些基本的概念之后,我们再来讨论区块链在身份认证上的应用。为什么要使用区块链来做身份认证呢?如何去做呢?这么做又将带来什么样的好处呢?请收看下期文章。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180407G1EYZ000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券