今天给大家聊到了区块链pki,以及区块链发票相关的内容,在此希望可以让网友有所了解,最后记得收藏本站。
区块链中的密码学是怎么应用的?
在区块链技术中区块链pki,密码学机制主要被用于确保交易信息的完整性、真实性和隐私性。
区块链中的密码学 包括布隆过滤器区块链pki,哈希函数、加解密算法,数字证书与数字签名,同态加密,PKI体系等。
BT110:区块链技术对信息安全行业有哪些增益?
区块链对于信息安全行业的意义体现在以下三点:
一、用户身份认证保护
非对称式公私钥加密技术采用两套密钥系统,比对称式加密更安全,多数公钥加密在PKI平台上实施,易被黑客假冒身份,WhatsApp漏洞正是被黑客发送假密钥实施中间人攻击。
区块链则可以构建一个全新的身份管理系统,商务密邮采用的身份标识算法,让篡改难以隐匿,从而有效防范身份伪造。
二、数据完整性保护
传统的加密算法,一旦遭到中间人篡改攻击,网络中的参与者无法及时感知,在一些企业的交易邮件中时常发生类似的事情:发件人邮箱地址没有问题,但收款账户却被篡改了,而这种邮件诈欺通常在损失已形成后才被察觉。
美国国防部DARPA高级研究计划局正在考虑使用区块链来保护敏感的军事数据。区块链利用哈希算法存储数据,数据区块之间互为连结,某一处数据篡改,都会引起区块序列值的变更,再庞大的网络,也能轻易找到篡改来源。
三、有效阻止DDoS攻击
变本加厉的DDoS攻击令企业望而生畏,一场高级的DDoS攻击甚至可以轻松搞垮一家大型企业,这也正是黑客尝试进行大规模破坏的首选。
区块链的分布式存储架构则会令黑客无所适从,已经有公司着手开发基于区块链的分布式互联网域名系统,绝除当前DNS注册弊病的祸根,使网络系统更加干净透明。
区块链中现代密码学
1983年 - David Chaum描述的盲签
1997年 - Adam Back发明的HashCash(工作证明制度的一个例子)
2001年 - Ron Rivest区块链pki,Adi Shamir和Yael Tauman向加密社区提出了环签名
2004年 - Patrick P. Tsang和Victor K.提出使用环签名系统进行投票和电子现金;
2008年 - 由Satoshi Nakamoto出版的Bitcoin白皮书
2011年 - 比特币系统中的匿名分析区块链pki,Fergal Reid和Martin Harrigan
2012 - 目的地址比特币匿名(CryptoNote中的一次性地址)。
安全多方计算起源于1982年姚期智的百万富翁问题。后来Oded Goldreich有比较细致系统的论述。
姚氏百万富翁问题是由华裔计算机科学家、图灵奖获得者姚启智教授首先提出的。该问题表述为:两个百万富翁Alice和Bob想知道他们两个谁更富有,但他们都不想让对方知道自己财富的任何信息。该问题有一些实际应用:假设Alice希望向Bob购买一些商品,但她愿意支付的最高金额为x元区块链pki;Bob希望的最低卖出价为y元。Alice和Bob都非常希望知道x与y哪个大。如果xy,他们都可以开始讨价还价;如果zy,他们就不用浪费口舌。但他们都不想告诉对方自己的出价,以免自己在讨价还价中处于不利地位。
该方案用于对两个数进行比较,以确定哪一个较大。Alice知道一个整数i;Bob知道一个整数j, Alice与B0b希望知道究竟i=j还是ji,但都不想让对方知道自己的数。为简单起见,假设j与i的范围为[1,100】。Bob有一个公开密钥Eb和私有密钥Db。
安全多方计算(Secure Multi-Party Computation)的研究主要是针对无可信第三方的情况下, 如何安全地计算一个约定函数的问题. 安全多方计算在电子选举、电子投票、电子拍卖、秘密共享、门限签名等场景中有着重要的作用。
同态加密(Homomorphic Encryption)是很久以前密码学界就提出来的一个Open Problem。早在1978年,Ron Rivest, Leonard Adleman, 以及Michael L. Dertouzos就以银行为应用背景提出了这个概念[RAD78]。对,区块链pki你没有看错,Ron Rivest和Leonard Adleman分别就是著名的RSA算法中的R和A。
什么是同态加密区块链pki?提出第一个构造出全同态加密(Fully Homomorphic Encryption)[Gen09]的Craig Gentry给出的直观定义最好:A way to delegate processing of your data, without giving away access to it.
这是什么意思呢?一般的加密方案关注的都是数据存储安全。即,我要给其他人发个加密的东西,或者要在计算机或者其他服务器上存一个东西,我要对数据进行加密后在发送或者存储。没有密钥的用户,不可能从加密结果中得到有关原始数据的任何信息。只有拥有密钥的用户才能够正确解密,得到原始的内容。我们注意到,这个过程中用户是不能对加密结果做任何操作的,只能进行存储、传输。对加密结果做任何操作,都将会导致错误的解密,甚至解密失败。
同态加密方案最有趣的地方在于,其关注的是数据处理安全。同态加密提供了一种对加密数据进行处理的功能。也就是说,其他人可以对加密数据进行处理,但是处理过程不会泄露任何原始内容。同时,拥有密钥的用户对处理过的数据进行解密后,得到的正好是处理后的结果。
有点抽象?我们举个实际生活中的例子。有个叫Alice的用户买到了一大块金子,她想让工人把这块金子打造成一个项链。但是工人在打造的过程中有可能会偷金子啊,毕竟就是一克金子也值很多钱的说… 因此能不能有一种方法,让工人可以对金块进行加工(delegate processing of your data),但是不能得到任何金子(without giving away access to it)?当然有办法啦,Alice可以这么做:Alice将金子锁在一个密闭的盒子里面,这个盒子安装了一个手套。工人可以带着这个手套,对盒子内部的金子进行处理。但是盒子是锁着的,所以工人不仅拿不到金块,连处理过程中掉下的任何金子都拿不到。加工完成后。Alice拿回这个盒子,把锁打开,就得到了金子。
这里面的对应关系是:盒子:加密算法盒子上的锁:用户密钥将金块放在盒子里面并且用锁锁上:将数据用同态加密方案进行加密加工:应用同态特性,在无法取得数据的条件下直接对加密结果进行处理开锁:对结果进行解密,直接得到处理后的结果同态加密哪里能用?这几年不是提了个云计算的概念嘛。同态加密几乎就是为云计算而量身打造的!我们考虑下面的情景:一个用户想要处理一个数据,但是他的计算机计算能力较弱。这个用户可以使用云计算的概念,让云来帮助他进行处理而得到结果。但是如果直接将数据交给云,无法保证安全性啊!于是,他可以使用同态加密,然后让云来对加密数据进行直接处理,并将处理结果返回给他。这样一来:用户向云服务商付款,得到了处理的结果;云服务商挣到了费用,并在不知道用户数据的前提下正确处理了数据;
聚合签名由Boneh等人提出,主要是通过聚合多个签名为一个签名,来提高签名与验证的效率。要对多个用户的数据进行签名,聚合签名能够极大地降低签名计算复杂度。CL就是聚合签名。
零知识证明过程有两个参与方,一方叫证明者,一方叫验证者。证明者掌握着某个秘密,他想让验证者相信他掌握着秘密,但是又不想泄漏这个秘密给验证者。
双方按照一个协议,通过一系列交互,最终验证者会得出一个明确的结论,证明者是或不掌握这个秘密。
对于比特币的例子,一笔转帐交易合法与否,其实只要证明三件事:
发送的钱属于发送交易的人
发送者发送的金额等于接收者收到金额
发送者的钱确实被销毁了
整个证明过程中,矿工其实并不关心具体花掉了多少钱,发送者具体是谁,接受者具体是谁。矿工只关心系统的钱是不是守恒的。
zcash 就是用这个思路实现了隐私交易。
零知识证明的三条性质对应:
(1)完备性。如果证明方和验证方都是诚实的,并遵循证明过程的每一步,进行正确的计算,那么这个证明一定是成功的,验证方一定能够接受证明方。
(2)合理性。没有人能够假冒证明方,使这个证明成功。
(3)零知识性。证明过程执行完之后,验证方只获得了“证明方拥有这个知识”这条信息,而没有获得关于这个知识本身的任何一点信息。
只有环成员,没有管理者,不需要环成员之间的合作,签名者利用自己的私钥和集合中其他成员的公钥就能独立的进行签名,不需要其他人的帮助,集合中的其他成员可能不知道自己被包含在了其中。
环签名可以被用作成一种泄露秘密的方式,例如,可以使用环形签名来提供来自“白宫高级官员”的匿名签名,而不会透露哪个官员签署了该消息。 环签名适用于此应用程序,因为环签名的匿名性不能被撤销,并且因为用于环签名的组可以被即兴创建。
1)密钥生成。为环中每个成员产生一个密钥对(公钥PKi,私钥SKi)
2)签名。签名者用自己的私钥和任意n个环成员的公钥为消息m生成签名a
3)签名验证。签名者根据环签名和消息m,验证签名是否是环中成员所签。如果有效就接收,如果无效就丢弃。
群签名的一般流程
盲数字签名(Blind Signature)简称盲签名——是一种数字签名的方式,在消息内容被签名之前,对于签名者来说消息内容是不可见的。1982年大卫·乔姆首先提出了盲签名的概念。盲签名因为具有盲性这一特点,可以有效保护所签署消息的具体内容,所以在电子商务和电子选举等领域有着广泛的应用。
类比例子:对文件签名就是通过在信封里放一张复写纸,签名者在信封上签名时,他的签名便透过复写纸签到文件上。
所谓盲签名,就是先将隐蔽的文件放进信封里,而除去盲因子的过程就是打开这个信封,当文件在一个信封中时,任何人不能读它。对文件签名就是通过在信封里放一张复写纸,签名者在信封上签名时,他的签名便透过复写纸签到文件上。
一般来说,一个好的盲签名应该具有以下的性质:
不可伪造性。除了签名者本人外,任何人都不能以他的名义生成有效的盲签名。这是一条最基本的性质。
不可抵赖性。签名者一旦签署了某个消息,他无法否认自己对消息的签名。
盲性。签名者虽然对某个消息进行了签名,但他不可能得到消息的具体内容。
不可跟踪性。一旦消息的签名公开后,签名者不能确定自己何时签署的这条消息。
满足上面几条性质的盲签名,被认为是安全的。这四条性质既是我们设计盲签名所应遵循的标准,又是我们判断盲签名性能优劣的根据。
另外,方案的可操作性和实现的效率也是我们设计盲签名时必须考虑的重要
因素。一个盲签名的可操作性和实现速度取决于以下几个方面:
1,密钥的长度;
2,盲签名的长度;
3,盲签名的算法和验证算法。
盲签名具体步骤
1,接收者首先将待签数据进行盲变换,把变换后的盲数据发给签名者。
2,经签名者签名后再发给接收者。
3,接收者对签名再作去盲变换,得出的便是签名者对原数据的盲签名。
4,这样便满足了条件①。要满足条件②,必须使签名者事后看到盲签名时不能与盲数据联系起来,这通常是依靠某种协议来实现的。
如何利用区块链发行我的数字资产?
假如我有个资产,该怎样在小蚁上注册、发行呢?
首先要明确一点,我们这个数字资产,必须要和现实资产是有对应关系的,能够对接到现实的金融世界。
传统的银行记录了每个人的账户余额,在银行里面存的一百块钱,可以看到你账户上面一百元的余额,它到底是什么东西?这实际上并不是人民币,这实际上是银行发行的一种数字资产。
真正的人民币是什么?真正的人民币上面印有“中国人民银行”的字,是真正的人民币。你存进去的时候,已经交给商业银行了,然后商业银行上面记录了,你增加了100元的余额,这个和你真正的人民币是不是一样呢?我只能说你可以去兑换,这个兑换实际上是银行信用做保障的,一旦这家银行倒闭,或者是银行出问题了,这个是得不到保障的。
实际上你在银行里面的存款不是人民币本身,而是由银行信用背书,能够一比一兑换的数字资产,这个资产是由银行发行的,记录在银行的数据库里面。
那可不可以记录在区块链上?只要在区块链上公开地声明,说你区块链上的某种资产,和我现实是可以兑换的。具体到底该怎么操作呢?首先,要有一个数字身份。
为什么?数字资产背后就是由某一个实体的身份,或者是他的信用做担保,如果在链上不知道他实体的身份是谁的话,就没有办法做担保。怎么做呢?很简单,因为区块链是一个密码学系统,可以跟我们现有的PKI体系,数字证书体系结合起来。
现在我们可以在CA机构去申请ECC的证书,这个算法其实是一样的,你区块链上的地址对应一个公钥,这个公钥对应数字证书,这个数字证书是国家认可的,在区块链上只要公开这个数字证书就可以认证了。再在区块链上进行登记是什么资产,有一个类别,和名称、总量,并且可以指定资产的管理员账户。
然后是发行,发行的话是说我这个资产虽然注册区块链上了,它只不过是注册一个类,但还没有具体的发出来,就像我没有启动印钞机印出来一样,发行就是启动印钞机印出来了。
在小蚁上,可以通过智能合约支持任意发行逻辑,可以一次性完成,也可以在任意时间内分批完成,比如典型发行模型pow、pos,甚至可以人工分配,这是最简单粗暴的。
写到这里,本文关于区块链pki和区块链发票的介绍到此为止了,如果能碰巧解决你现在面临的问题,如果你还想更加了解这方面的信息,记得收藏关注本站。
标签: #区块链pki
评论列表