区块链兄弟社区,区块链技术专业问答先行者,中国区块链技术爱好者聚集地

作者:于中阳

来源:区块链兄弟

原文链接:http://www.blockchainbrother.com/article/86

著权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 
协议概述

密码学的用途就是解决各种难题(当然,这也是计算机的主要用途)。密码学解决的各种难题围绕机密性、鉴别、完整性和不诚实的人。你也许对各种算法和技术有一定了解,但除非其能够解决某些问题,否则其只是理论而已,这也就是为什么要先对协议进行了解的原因。

协议(protocol)是一系列步骤,其包括两方或者多方,设计它的目的在于完成一项任务。这个定义说明了:“一系列步骤”意味着协议是从开始到结束的一个序列,每一步必须依次执行,在前一步完成之前,后面的步骤都不能够执行;“包括两方或多方”意味着完成这个协议至少是需要两个人的,单独的一个人是无法构成协议的,当然一个单独的人可以采取一系列步骤去完成一项任务(例如做一顿丰盛的晚餐),但这不是协议(必须有另外一些人参与才能构成协议,比如家里的其他人共同享用了这顿晚餐);最后,“设计其的目的是要完成一项任务”意味着协议必须做一些事。有些事物看起来很像是协议,但若其不能完成一项任务,那也不是协议。

协议的其他特点:

1)协议中的每个人都必须了解协议,并且预先知晓所要完成的所有步骤。

2)协议中的每个人都必须同意并遵循它。

3)协议必须是清楚明晰的,每一步都必须有明确的定义,不能引起误解和歧义。

4)协议必须是完整的,对每一种可能的情况必须规定具体的动作。

我们现约定,协议安排成一系列步骤,并且协议是按照规定的步骤线性进行执行,除非我指定它转到其他的步骤。每一步至少要做下列事件中的一件,即由一方或者多方计算,或者在各方中传递信息。

密码协议(cryptographic protocol)是使用密码学的协议。参与该协议的各方可能是友人和完全信任的人,也可能是敌人和相互完全不信任的人。密码协议包含某种密码算法,但通常协议的目的不仅仅是为了简单的秘密性。参与协议的各方可能为了计算一个数值想共享他们各自的秘密部分,共同产生随机系列,确定相互的身份或者同时签署合同。在协议中使用密码的目的是防止或者发现欺骗和窃听者。若你之前没有了解过协议,那么它会改变你的思想,相互不信任的各方也是能够在网络上完成这些协议的。

在某些协议中,参与者中的一个或几个有可能欺骗其他人,而也可能存在窃听者并且窃听者可能暗中破坏协议或获悉一些秘密信息。某些协议之所以会失败,是因为设计者对需求定义的不是很完备,还有一些原因是由于协议的设计者分析的不够充分。这就好比算法,证明其不安全远比证明其安全容易的多。

相信学习密码学的朋友,或者对通信和计算机协议有一定了解的朋友都对Alice和Bob不陌生。在此,我也将继续携手Alice和Bob和大家谈协议,他们将完成所有的两人协议。在此依旧规定Alice发起所有协议,Bob响应协议。当然,为了进一步学习协议,我还将补充几个人,现约定如下:

人名 角色
Alice 所有协议中的第一个参与者、一般为协议发起者
Bob 所有协议的第二个参与者、一般为响应者
Carol 三、四方协议中的参与者
Dave 四方协议中的参与者
Eve 窃听者
Mallory 恶意的主动攻击者
Trent 值得信赖的仲裁者
Peggy 证明人

Victor

验证者

以后若无特殊情况,将不再对人名及其对应的角色进行说明。

文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述

posted on 2018-06-20 14:32  区块链兄弟  阅读(835)  评论(0编辑  收藏  举报