零知识证明应用
1.零知识证明理论以及简单应用
80年代初,Goldwasser等人提出了零知识证明这一概念。从本质上讲,零知识证明是一种协议。所谓协议(Protocol),就是两个或两个以上的参与者为完成某项特定的任务而采取的一系列步骤,包括以下三个特征:
1. 协议自始至终是有序的过程,每一步骤必须依次执行,在前一步骤没有执行完之前,后面的步骤不可能执行。
2. 协议至少需要两个参与者,一个人可以通过执行一系列的步骤来完成某项任务,但它不构成协议。
3. 通过执行协议必须能够完成某项任务。
零知识证明必须包括两个方面,一方为证明者,另一方为验证者。证明者试
图向验证者证明某个论断是正确的,或者证明者拥有某个知识,却不向验证者透露任何有用的消息。零知识证明目前在密码学中得到了广泛的应用,尤其是在认证协议、数字签名方面,人们利用数字签名设计出了大量优良的算法。
用一个关于洞穴的故事来解释零知识。洞穴中有一个秘密,知道咒语的人能打开 C 和D之间的密门,对其它人来说,两条通道都是死胡同。Peggy 知道这个洞穴的秘密。她想对 Victor 证明这一点,但也不想泄露咒语。
下面是她如何使 Victor 相信的过程:
(1) Victor 站在A点。
(2) Peggy 一直走进洞穴,到达C点或者D点。
(3) 在 Peggy 消失在洞穴中后,Victor 走到B点。
(4) Victor 向 Peggy 喊叫,要她:从左通道出来,或者从右通道出来。
(5) Peggy 答应了,如果有必要她就用咒语打开密门。
Peggy 和 Victor 重复第(1)至第(5)步 n 次。
假设 Victor 有一个摄像机能记录下他所看到的一切。他记录下 Peggy 消失在洞中情景,记录下他喊叫 Peggy 从他选择的地方出来的时间,记录下 Peggy 走出来。他记录下所有的 n 次试验。如果他把这些记录给 Carol 看,她会相信 Peggy知道打开密门的咒语吗?肯定不会。在不知道咒语的情况下,如果Peggy和Victor事先商定好 Victor 喊叫什么,那将如何呢?Peggy 会确信也走进 Victor 叫她出来那条路,然后她就可以在不知道咒语的情况下在 Victor 每次要她出来的那条路上出来。或许他们不那么做,Peggy 走进其中一条通道,Victor 发出一条随机的要求。如果 Victor 猜对了,好极了。如果他猜错了,他们会从录像中删除这个试验。总之,Victor 能获得一个记录,它准确显示与实际证明 Peggy 知道咒语的相同的事件顺序。
这说明了两件事。其一是 Victor 不可能使第三方相信这个证明的有效性;其二,它证明了这个协议是零知识的。在 Peggy 不知道咒语的情况下,Victor 显然是不能从记录中获悉任何信息。但是,因为无法区分一个真实的记录和一个伪造的记录,所以 Victor 不能从实际证明中了解任何信息-它必是零知识。也就是说,Peggy 在向 Victor 证明的过程中没有泄露任何有关秘密的知识,称为零知识。
2.零知识证明可以应用在网络中和生活中的哪些领域
纳米"纳米"是英文nano的译名,是一种长度单位,原称毫微米,就是10的-9次方米(10亿分之一米),约相当于45个原子串起来那么长。
纳米结构通常是指尺寸在100纳米以下的微小结构。从具体的物质说来,人们往往用细如发丝来形容纤细的东西,其实人的头发一般直径为20-50微米,并不细。
单个细菌用肉眼看不出来,用显微镜测出直径为5微米,也不算细。极而言之,1纳米大体上相当于4个原子的直径。
假设一根头发的直径为0.05毫米,把它径向平均剖成5万根,每根的厚度即约为1纳米。编辑本段纳米技术纳米科学与技术,有时简称为纳米技术,是研究结构尺寸在0.1至100纳米范围内材料的性质和应用。
1981年扫描隧道显微镜发明后,诞生了一门以0.1到100纳米长度为研究分子世界,它的最终目标是直接以原子或分子来构造具有特定功能的产品。因此,纳米技术其实就是一种用单个原子、分子射程物质的技术。
纳米技术是一门交叉性很强的综合学科,研究的内容涉及现代科技的广阔领域。纳米科学与技术主要包括:纳米体系物理学、纳米化学、纳米材料学、纳米生物学、纳米电子学、纳米加工学、纳米力学等。
这七个相对独立又相互渗透的学科和纳米材料、纳米器件、纳米尺度的检测与表征这三个研究领域。纳米材料的制备和研究是整个纳米科技的基础。
其中,纳米物理学和纳米化学是纳米技术的理论基础,而纳米电子学是纳米技术最重要的内容。从迄今为止的研究来看,关于纳米技术分为三种概念:第一种,是1986年美国科学家德雷克斯勒博士在《创造的机器》一书中提出的分子纳米技术。
根据这一概念,可以使组合分子的机器实用化,从而可以任意组合所有种类的分子,可以制造出任何种类的分子结构。这种概念的纳米技术还未取得重大进展。
第二种概念把纳米技术定位为微加工技术的极限。也就是通过纳米精度的"加工"来人工形成纳米大小的结构的技术。
这种纳米级的加工技术,也使半导体微型化即将达到极限。现有技术即使发展下去,从理论上讲终将会达到限度,这是因为,如果把电路的线幅逐渐变小,将使构成电路的绝缘膜变得极薄,这样将破坏绝缘效果。
此外,还有发热和晃动等问题。为了解决这些问题,研究人员正在研究新型的纳米技术。
第三种概念是从生物的角度出发而提出的。本来,生物在细胞和生物膜内就存在纳米级的结构。
编辑本段纳米技术的内容纳米技术包含下列四个主要方面:1、纳米材料:当物质到纳米尺度以后,大约是在0.1—100纳米这个范围空间,物质的性能就会发生突变,出现特殊性能。这种既具不同于原来组成的原子、分子,也不同于宏观的物质的特殊性能构成的材料,即为纳米材料。
如果仅仅是尺度达到纳米,而没有特殊性能的材料,也不能叫纳米材料。过去,人们只注意原子、分子或者宇宙空间,常常忽略这个中间领域,而这个领域实际上大量存在于自然界,只是以前没有认识到这个尺度范围的性能。
第一个真正认识到它的性能并引用纳米概念的是日本科学家,他们在20世纪70年代用蒸发法制备超微离子,并通过研究它的性能发现:一个导电、导热的铜、银导体做成纳米尺度以后,它就失去原来的性质,表现出既不导电、也不导热。磁性材料也是如此,象铁钴合金,把它做成大约20—30纳米大小,磁畴就变成单磁畴,它的磁性要比原来高1000倍。
80年代中期,人们就正式把这类材料命名为纳米材料。为什么磁畴变成单磁畴,磁性要比原来提高1000倍呢?这是因为,磁畴中的单个原子排列的并不是很规则,而单原子中间是一个原子核,外则是电子绕其旋转的电子,这是形成磁性的原因。
但是,变成单磁畴后,单个原子排列的很规则,对外显示了强大磁性。这一特性,主要用于制造微特电机。
如果将技术发展到一定的时候,用于制造磁悬浮,可以制造出速度更快、更稳定、更节约能源的高速度列车。⒉纳米动力学,主要是微机械和微电机,或总称为微型电动机械系统(MEMS),用于有传动机械的微型传感器和执行器、光纤通讯系统,特种电子设备、医疗和诊断仪器等.用的是一种类似于集成电器设计和制造的新工艺。
特点是部件很小,刻蚀的深度往往要求数十至数百微米,而宽度误差很小。这种工艺还可用于制作三相电动机,用于超快速离心机或陀螺仪等。
在研究方面还要相应地检测准原子尺度的微变形和微摩擦等。虽然它们目前尚未真正进入纳米尺度,但有很大的潜在科学价值和经济价值。
理论上讲:可以使微电机和检测技术达到纳米数量级。⒊纳米生物学和纳米药物学,如在云母表面用纳米微粒度的胶体金固定dna的粒子,在二氧化硅表面的叉指形电极做生物分子间互作用的试验,磷脂和脂肪酸双层平面生物膜,dna的精细结构等。
有了纳米技术,还可用自组装方法在细胞内放入零件或组件使构成新的材料。新的药物,即使是微米粒子的细粉,也大约有半数不溶于水;但如粒子为纳米尺度(即超微粒子),则可溶于水。
纳米生物学发展到一定技术时,可以用纳米材料制成具有识别能力的纳米生物细胞,并可以吸收癌细胞的生物医药,注入人体内,可以用于定向杀癌细胞。(上面是老钱加注)。
3.什么是零知识证明
零知识证明,指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的从本质上讲,零知识证明是一种协议。
所谓协议(Protocol),就是两个或两个以上的参与者为完成某项特定的任务而采取的一系列步骤,包括以下三个特征:1. 协议自始至终是有序的过程,每一步骤必须依次执行,在前一步骤没有执行完之前,后面的步骤不可能执行。2. 协议至少需要两个参与者,一个人可以通过执行一系列的步骤来完成某项任务,但它不构成协议。
3. 通过执行协议必须能够完成某项任务。基于数学的推理虽然非常复杂,但思路却很简单一些方案。
所谓零知识证明,指的是示证者在证明自己身份时不泄露任何信息,验证者得不到示证者的任何私有信息,但又能有效证明对方身份的一种方法。看起来有点别扭,给出几个个例子:(摘自百度百科)1)A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。
这时有2个方法:(一)A把钥匙出示给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。(二)B确定该房间内有某一物体,A用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给B,从而证明自己确实拥有该房间的钥匙后面这个方法属于零知识证明。
好处在于在整个证明的过程中,B始终不能看到钥匙的样子,从而避免了钥匙的泄露。2)A拥有B的公钥,A没有见过B,而B见过A的照片,偶然一天2人见面了,B认出了A,但A不能确定面前的人是否是B,这时B要向A证明自己是B,也有2个方法。
(一)B把自己的私钥给A,A用这个私钥对某个数据加密,然后用B的公钥解密,如果正确,则证明对方确实是B。(二)A给出一个随机值,B用自己的私钥对其加密,然后把加密后的数据交给A,A用B的公钥解密,如果能够得到原来的随机值,则证明对方是B。
后面的方法属于零知识证明。3)有一个缺口环形的长廊,出口和入口距离非常近(在目距之内),但走廊中间某处有一道只能用钥匙打开的门,A要向B证明自己拥有该门的钥匙。
采用零知识证明,则B看着A从入口进入走廊,然后又从出口走出走廊,这时B没有得到任何关于这个钥匙的信息,但是完全可以证明A拥有钥匙。==========================================================我的理解,零知识证明就是一种认证协议,A向B证明自己拥有“某种东西”(例如身份),而不会给B有使用自己特性的机会,也就是不能让B拥有向别人证明他是A的能力,现实生活中,比如,身份证,你可以出示身份证给他人证明自己,但你不用把你的身份证给他,否则他就可以冒充你,这就是零知识证明协议。
零知识证明协议通常由三个协议步骤组成:目击者:证明者选择了一个随机数字,发给验证者一个这一秘密数字的知识。这个数字与一系列的问题相关,而证明者能够回答这些问题。
挑战:验证者在这些问题集中随机选择一个问题发给证明者回复:证明者利用他的秘密数字解决了这个问题,并发给验证者还是身份证的例子:A:我是A,并告诉B我有身份证B:身份证给我看一下?A:出示身份证。--------------------零知识性证明应该是证明A到底泄露了多少信息给B,例如,我的身份证例子必须是在B无法复制伪造身份证的前提下,否则,我们还是泄露了信息给B,建立的曲线模型应该就是考虑了这些。
我再举个认证的的例子(甲校验乙):方式一:甲产生一个随机消息发给乙,乙用其私钥加密后发给甲,甲用乙的公钥解密并验证消息这里就有一个问题,乙有时候并不知道他加密的是什么消息,甲可以拿着乙加密后的消息冒充乙,或者解密(虽然很难)。这种验证的零知识性就不好。
改进一下:在甲确定乙的公钥的前提下,乙自己找一个无关紧要的消息,发送两个消息给甲,一个消息首先使用了消息摘要,然后用私钥加密,另一个是没有加密的消息,这样甲仍然可以验证乙,但零知识性就很好了。--------------------- ============================== 网上有很多关于零知识证明的有趣的故事。
4.零知识证明原理是什么
零知识证明在网络安全协议中用的比较多,尤其是数字签名,身份认证。
零知识证明,指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的
从本质上讲,零知识证明是一种协议。所谓协议(Protocol),就是两个或两个以上的参与者为完成某项特定的任务而采取的一系列步骤,包括以下三个特征:
1. 协议自始至终是有序的过程,每一步骤必须依次执行,在前一步骤没有执行完之前,后面的步骤不可能执行。
2. 协议至少需要两个参与者,一个人可以通过执行一系列的步骤来完成某项任务,但它不构成协议。
3. 通过执行协议必须能够完成某项任务。
基于数学的推理虽然非常复杂,但思路却很简单一些方案。
所谓零知识证明,指的是示证者在证明自己身份时不泄露任何信息,验证者得不到示证者的任何私有信息,但又能有效证明对方身份的一种方法。看起来有点别扭,给出几个个例子:(摘自百度百科)
1)A要向B证明自己拥有某个房间的钥匙,假设该房间只能用钥匙打开锁,而其他任何方法都打不开。这时有2个方法:(一)A把钥匙出示给B,B用这把钥匙打开该房间的锁,从而证明A拥有该房间的正确的钥匙。(二)B确定该房间内有某一物体,A用自己拥有的钥匙打开该房间的门,然后把物体拿出来出示给B,从而证明自己确实拥有该房间的钥匙。后面这个方法属于零知识证明。好处在于在整个证明的过程中,B始终不能看到钥匙的样子,从而避免了钥匙的泄露。2)A拥有B的公钥,A没有见过B,而B见过A的照片,偶然一天2人见面了,B认出了A,但A不能确定面前的人是否是B,这时B要向A证明自己是B,也有2个方法。(一)B把自己的私钥给A,A用这个私钥对某个数据加密,然后用B的公钥解密,如果正确,则证明对方确实是B。(二)A给出一个随机值,B用自己的私钥对其加密,然后把加密后的数据交给A,A用B的公钥解密,如果能够得到原来的随机值,则证明对方是B。后面的方法属于零知识证明。3)有一个缺口环形的长廊,出口和入口距离非常近(在目距之内),但走廊中间某处有一道只能用钥匙打开的门,A要向B证明自己拥有该门的钥匙。采用零知识证明,则B看着A从入口进入走廊,然后又从出口走出走廊,这时B没有得到任何关于这个钥匙的信息,但是完全可以证明A拥有钥匙。
5.零知识证明是什么
零知识证明(Zero-Knowledge Proof)是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出。
早期零知识证明需要证明者与验证者通过交互消息的方式才能完成证明,这种证明过程被称之为“交互式零知识证明”。在20世纪80年代末,Blum等人提出使用短随机串交互过程实现零知识证明,只由证明者发出一次消息,无需证明者与验证者交互,验证者就可以验证消息正确性,该证明过程被称之为“非交互式零知识证明”。
6.零知识证明是什么
“零知识证明”-zero-knowledge proof,是由Goldwasser等人在20世纪80年代初提出的。
它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。
证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。大量事实证明,零知识证明在密码学中非常有用。
如果能够将零知识证明用于验证,将可以有效解决许多问题。
7.何谓“零知识”,何谓“证明”
"零知识证明"-zero-knowledge proof,是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的。
它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。
证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。大量事实证明,零知识证明在密码学中非常有用。
如果能够将零知识证明用于验证,将可以有效解决许多问题。