博学谷 > 资讯 > 区块链 > 区块链中密码技术的应用有哪些?

原创 区块链中密码技术的应用有哪些?

发布时间:2019-09-17 18:51:10 浏览 5579 来源:博学谷 作者:照照

    区块链中的密码技术有哪些?密码学作为区块链的基石,是区块链技术的一大核心。因此区块链中有不少密码技术的应用,比如布隆过滤器、同态加密、数字签名、数字证书和PKI体系。下面我们就来详细看一下这些应用吧!

     

    区块链中密码技术的应用

     

    一、布隆过滤器

     

    布隆过滤器是一种基于 Hash 的高效查找结构,能够快速判断某个元素是否在一个集合内。假如给定一个内容和存储数组,通过构造Hash函数,使Hash值总量不超过数组的大小,就可以实现快速的基于内容的查找。如 “算法改变人生” 的 Hash 值如果是 “1000”,则存放到数组的第 1000 个单元上去。如果需要快速查找任意内容,如 “算法改变人生” 字符串是否在存储系统中,只需要计算 Hash 值,并用 Hash 值查看系统中对应元素即可。

     

    布隆过滤器采用了多个 Hash 函数来提高空间利用率。对同一个给定输入来说,多个 Hash 函数计算出多个地址,分别在对应的这些地址上标记为 1。进行查找时,进行同样的计算过程,并查看对应元素,如果都为 1,则说明较大概率是存在该输入。布隆过滤器相对单个 Hash 算法查找,大大提高了空间利用率,可以使用较少的空间来表示较大集合的存在关系。 上面讲的Hash查找和布隆过滤器,基本思想都是基于内容的编址。

     

    二、同态加密

     

    这是一种可以对密文直接进行处理,跟对明文进行处理后再对处理结果加密,得到的结果相同。同态加密可以保证实现处理者无法访问到数据自身的信息。什么是同态呢?它来自代数领域,包括四种类型:加法同态、乘法同态、减法同态和除法同态。同时满足加法同态和乘法同态,则意味着是代数同态,即全同态。同时满足四种同态性,则被称为算数同态。在计算机中如果实现了全同态意味着对于所有处理都可以实现同态性。只能实现部分特定操作的同态性,被称为特定同态。

     

    区块链中的应用:使用同态加密技术,运行在区块链上的智能合约可以处理密文,而无法获知真实数据,极大的提高了隐私安全性。虽然同态加密的优势很明显,并且已经实现,但是存在的问题就是需要较高的计算时间或存储成本,相比传统加密算法的性能和强度还有差距。

     

    三、数字签名

     

    数字签名可以证实某数字内容的完整性和确认其来源,也就是不可抵赖性。理论上所有的非对称加密算法都可以用来实现数字签名,常用算法包括 DSA(Digital Signature Algorithm,基于 ElGamal 算法)和 ECSDA(Elliptic Curve Digital Signature Algorithm,基于椭圆曲线算法)等。针对一些特定的安全需求,产生了一些特殊数字签名技术:

     

    1、盲签名:签名者需要在无法看到原始内容的前提下对信息进行签名。实现对所签名内容的保护,防止签名者看到原始内容;同时实现防止追踪,签名者无法将签名内容和签名结果进行对应。

     

    2、多重签名:当x 个签名者中,收集到至少 y 个(x >= y >= 1)的签名,即认为合法。x 是提供的公钥个数,y 是需要匹配公钥的最少的签名个数。它可以有效地被应用在多人投票共同决策的场景中。比特币交易中就支持多重签名,可以实现多个人共同管理某个账户的比特币交易。

     

    3、群签名:群组内某一个成员可以代表群组进行匿名签名。签名可以验证来自于该群组,却无法准确追踪到签名的是哪个成员。同样存在一些问题,就是群签名需要存在一个群管理员来添加新的群成员,因此存在群管理员可能追踪到签名成员身份的风险。

     

    4、环签名:签名者首先选定一个包括签名者自身的临时签名者集合。用自己的私钥和签名集合中其他人的公钥就可以独立的产生签名,而无需他人的帮助。签名者集合中的其他成员可能并不知道自己被包含在最终的签名中。环签名的主要用途在保护匿名性,属于一种简化的群签名。

     

    四、数字证书

     

    数字证书分为两类:加密数字证书和签名验证数字证书,前者用于保护用于加密用途的公钥,后者保护用于签名用途的公钥。两种类型的公钥也可以同时放在同一证书中。同时证书需要由证书认证机构CA来进行签发和背书。权威的商业证书认证机构包括 DigiCert、GlobalSign等。用户也可以自行搭建CA 系统,在私有网络中进行使用。一个数字证书内容可能包括证书域(证书的版本、序列号、签名算法类型、签发者信息、有效期、被签发主体、签发的公开密钥)、CA 对证书的签名算法和签名值等。证书的颁发者还需要对证书内容利用自己的私钥进行签名,以防止他人篡改证书内容。

     

    五、PKI体系

     

    PKI的全称是Public Key Infrastructure公钥基础设施,是建立在公私钥基础上实现安全可靠传递消息和身份确认的一个通用框架。包含3个核心组件:

     

    CA:全称Certification Authority,负责证书的颁发和吊销,接收来自 RA 的请求;

     

    RA:全称Registration Authority,对用户身份进行验证,校验数据合法性,负责登记,审核过了就发给 CA;

     

    证书数据库:存放证书,多采用 X.500 系列标准格式。可以配合LDAP 目录服务管理用户信息。

     

    CA 是最核心的组件,负责完成对证书信息的维护。通常的操作流程为:用户通过 RA 登记申请证书,提供身份和认证信息等 = > CA 审核后完成证书的制造,颁发给用户 = > 用户如果需要撤销证书则需要再次向 CA 发出申请。

     

    以上就是区块链密码技术的应用。如果大家对于密码学还有进一步了解的兴趣,可以在博学谷观看区块链的相关课程,相信一定会让大家受益匪浅。

    申请免费试学名额    

在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!

领取成功
领取失败
上一篇:区块链培训就业方向多不多? 下一篇:Go语言与区块链技术就业方向多不多?具体有哪些?

相关推荐 更多

最新文章

扫描二维码,回复"区块链"获取90G资料包