热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

区块链中的密码学,使用ABE结合区块链

ABE密码学,以及与区块链结合的价值背景区块链技术具备篡改难度高、使用成本低、分布式的优点,本应成为各行各业的重要助力。但是由于链上参与方担心自己的核心数据外泄,不愿将自己的核心数

ABE 密码学,以及与区块链结合的价值

背景

  • 区块链技术具备篡改难度高、使用成本低、分布式的优点,本应成为各行各业的重要助力。但是由于链上参与方担心自己的核心数据外泄,不愿将自己的核心数据上链,这个原因成为阻止区块链落地的主要难题。
  • 使用 ABE密码学,就可以使得区块链中数据所有权得到有效保护,链上数据归属权为参与者本人所有,外人无法访问。

ABE 密码学是什么

  • ABE 是基于属性的加密,即(Attribute-Based Encryption)。与 RSA、IBE (基于身份加密)等加密方式相比,其最大的不同点是实现了一对多的加解密。也就是说,ABE 不需要像其他加密方式那样,每次加密都必须知道接受者的身份信息,只要用户拥有的属性符合加密者所描述的策略时,用户就可以解密。

属性指的是什么

  • 属性可以理解为一个对象具有的某些特征。举个例子,Jacky Li 是 A 大学信息安全学院的教授,那么「A 大学」,「信息安全学院」以及「教授」就是 ABE 中刻画 Jacky Li 这个人的多个属性,多个不同的属性,可以构成不同的属性集合。在此基础上,策略实际即是由属性及它们间关系所组成的一个逻辑表达式
  • 倘若抛开严谨的定义,用一句话说明 ABE 公钥加密算法,其实就是看属性集合策略是否匹配密码要求的过程。
  • 在 ABE 中,需要弱化公钥这一概念,称之为公共参数(public parameter)。属性集合则被嵌入到私钥中,如果用户拥有的属性可以与密码要求的策略匹配成功,就可以成功解密。

具体的例子

  • 假设现有一条密文策略规定:参与 X 课题 or (信息安全学院 and A 大学 and 教授)
  • 这条策略表达的含义是,唯有 X 课题组的成员或 A 大学信息安全学院的教授才能满足要求进行解密。现在有三个用户,分别是 A 大学信息安全学院的 Alan 教授,A 大学经济管理学院的 Black 教授,B 大学参与 X 课题的 Charles 教授。
  • 三个用户中,Alan 的属性集合{计算机学院,A 大学,教授}满足要求,Charles 的属性{参与 X 课题}也满足要求,但是 Black 的属性不能满足要求。所以 Alan 和 Charles 解密成功,而 Black 解密失败。

两种不同的方案

  • 目前,实现 ABE 的方案主要有 CP-ABE (密文策略 ABE)和 KP-ABE (秘钥策略 ABE)。二者最大的分别在于策略和属性的匹配方式上。
  • CP-ABE,指的是策略嵌入在密文中,属性集合嵌入到**中,当且仅当属性能够满足策略时可以解密。
  • KP-ABE 是指,策略嵌入到**中,属性集合嵌入到密文中。
  • 虽然在结构上,二者具有明显的对偶关系,但在实际使用中,二者的应用场景却有着明显的不同。
  • CP-ABE 由于策略嵌入密文中,这就意味着,数据拥有者可以通过设定策略去决定拥有哪些属性的人能够访问这份密文,也就相当于对这份数据做了一个加密访问控制。CP-ABE 的应用场景一般是公有云上的数据加密存储与共享。
  • KP-ABE 的应用场景则更加偏向于付费视频网站、日志加密管理等等。

区块链中的密码学,使用ABE结合区块链

与区块链怎么结合   隐私

  • 区块链的一大特点在于数据共享,这本是区块链的一大优点。然而,在实际应用中,很多参与者的数据很涉及机密,数据所有者并不乐意把自己的数据公开出来。
  • 比如在金融领域。数据上链可以提高数据本身的安全性,也有利于监管机构从区块链中调取数据进行监管,这些我们都知道了。但是为什么金融领域的区块链应用迟迟推进不下去呢?一个亟待解决的重要问题是,金融公司本身不愿意将数据存在链上。因为这些数据都是相当敏感且重要的,一旦数据外泄,会带来不小的损失。
  • 通过 ABE,金融公司可以将自己的数据加密后传到区块链上。由于数据全程都是密文,链上其他人只能看到加密之后的乱码,没有使用价值,拿到了也没有用。与之相对,金融公司自身可以控制谁能对数据进行访问,只需要把数据访问的权限交给监管机构和与之有数据合作的伙伴即可。
  • 传统的加密方式是将数据加密后,将秘钥发送给各个需要访问数据的机构,这种方式效率虽然比较高,但是一旦秘钥外泄,无法断定是哪一个机构作为。相比起传统的加密,ABE 的好处很明显,因为每一个机构的属性不尽相同,其秘钥也不尽相同,一旦我把秘钥泄露给外界,很容易就被追查得到。
  • 参考链接

推荐阅读
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 无线认证设置故障排除方法及注意事项
    本文介绍了解决无线认证设置故障的方法和注意事项,包括检查无线路由器工作状态、关闭手机休眠状态下的网络设置、重启路由器、更改认证类型、恢复出厂设置和手机网络设置等。通过这些方法,可以解决无线认证设置可能出现的问题,确保无线网络正常连接和上网。同时,还提供了一些注意事项,以便用户在进行无线认证设置时能够正确操作。 ... [详细]
  • 解决php错误信息不显示在浏览器上的方法
    本文介绍了解决php错误信息不显示在浏览器上的方法。作者发现php中的各种错误信息并不显示在浏览器上,而是需要在日志文件中查看。为了解决这个问题,作者提供了一种解决方式:通过修改php.ini文件中的display_errors参数为On,并重启服务。这样就可以在浏览器上直接显示php错误信息了。 ... [详细]
author-avatar
郁雯佩菱2
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有