【密码学】密码协议

一、协议的基本概念

(1)协议的定义

        协议(Protocol)是指由两个或两个以上的参与者为了完成某项特定的任务而采取的一系列步骤。协议规定了参与者之间的通信格式、数据交换的顺序、错误处理方式以及如何确保通信的安全性和可靠性等细节。

(2)协议的三要素

① 有序性和步骤性

        协议是由一系列预定义的步骤组成的,这些步骤必须按照特定的顺序执行。这种有序性确保了协议的可预测性和可重复性,无论何时执行,只要条件相同,结果都应该一致。例如,在安全协议中,加密、身份验证和密钥交换的步骤必须按照特定的顺序进行,以确保通信的安全性。

② 多参与者

        协议涉及至少两个或多个参与者,这些参与者可以是人、计算机程序、设备或其他实体。协议定义了这些参与者之间的交互方式,确保它们能够协同工作,即使它们可能有不同的能力和目的。例如,在一个支付协议中,至少需要买家、卖家和支付网关三个参与者,他们之间通过执行协议来完成支付交易。

③ 目标导向性

        协议的执行必须能够完成一个或多个具体的目标或任务。这些目标可以是数据传输、身份验证、资源共享、交易确认等。如果没有明确的目标,一系列的交互或步骤就不能称之为协议,而可能只是一系列随机或无目的的操作。例如,TLS协议的目标是提供安全的网络通信,通过加密数据、验证身份和保护数据完整性来完成这一目标。

二、协议三种形式

(1)仲裁协议

       仲裁协议(Arbitration Protocol)通常指的是在多个参与者之间协调决策或解决冲突的协议。

仲裁协议的示意图
  • 公正性:仲裁者是“公正”的,意味着仲裁者对参与协议的任何一方没有偏向。
  • 可信赖:仲裁者是“可信赖”的,意味着双方相信他所说的话所做的事,将帮助两个互不信任的实体完成协议。
  • 透明性:仲裁过程和裁决应公开透明,以增加各方的信任。
  • 安全性:仲裁协议应采用密码学方法来保护交易的安全,防止恶意行为。

仲裁协议的举例说明:

        在计算机网络通信中,彼此互不信任的通信双方在通信时,通常需要某台计算机充当仲裁者,仲裁者也可能被怀疑。在计算机网络中,要设立一个仲裁者,就像平时请律师一样要付出一定的费用。然而在开放网络环境下,没人愿意承担这种额外的开销。

        协议中引入仲裁时,由于仲裁者需要对每次对话加以处理,会增加时延,当用户量很大时,有可能成为系统的瓶颈。仲裁者的服务器会成为黑客攻击的目标。一旦仲裁服务器被攻破,通信双方的信息就会泄露。在此类协议中,对仲裁服务器的安全保护是重点。 

(2)裁决协议

        裁决协议(Adjudication Protocol)是指当通信双方发生争议或纠纷时,双方将争议提交给一个公正且可信赖的第三方裁决人,由该第三方根据双方提供的证据进行公正的裁决。裁决人的角色不同于仲裁协议中的仲裁者,后者可能更主动地参与到协议的执行过程中,而裁决人则是在争议发生后才介入,对争议进行评判。

裁决协议的示意图​​​​

         裁决协议具有约束力,一旦做出,当事人应当遵守。

裁决协议举例说明:

        裁决协议建立在通信双方均是诚实的基础上。当有人怀疑发生欺骗时,可信赖的第三方就可以根据所提供的证据判定是否存在欺骗。一个好的裁决协议应当能够确定欺骗者的身份。裁决协议只能检测欺骗是否存在,但无法防止欺骗的发生。 

(3)自执行协议

        自执行协议,或称智能合约,是一种自动执行的协议,它将合同条款编码为计算机程序,无需任何中央权威或中介的干预。当满足预设的条件时,智能合约自动执行相应的动作,如转账、释放资金、触发事件等,无需人工干预。

自执行协议的示意图

        自执行协议是最好的协议,协议本身就保证了公平性。这种协议不需要仲裁者的参与,也不需要仲裁者解决争端。如果协议中的一方试图欺骗另一方,那么另一方会立刻检测到该欺骗的发生,并停止执行协议。

自执行协议的优点:

  • 去中心化:减少了对中心化机构的依赖,降低了单点故障的风险,增强了系统的鲁棒性和安全性。
  • 即时响应:一旦检测到欺骗行为,协议能够即时做出反应,无需等待第三方的介入,这提高了系统的响应速度和效率。
  • 透明性和不可篡改性:在区块链环境下,所有的交易记录都是公开透明的,且一旦记录在区块链上就无法被篡改,这增强了协议执行的公正性和可信度。
  • 自动执行:协议的条款和条件可以直接编码为智能合约的一部分,当满足特定条件时自动执行,无需人为干预,减少了执行过程中的摩擦和成本。

自执行协议的缺点:

  • 智能合约的漏洞:智能合约的代码可能存在漏洞,这些漏洞可能被恶意参与者利用,导致意外后果或资金损失。
  • 法律兼容性:智能合约的自动执行性可能与某些地区的法律法规不兼容,这限制了它们在某些领域的应用。
  • 执行成本:在某些区块链平台上,执行智能合约需要支付“Gas费”,这可能成为频繁交易或复杂协议执行的障碍。

三、好协议应具备的特点

        协议涉及的各方必须实现知道此协议的所有步骤。协议涉及的各方必须同意、遵守协议。协议必须是非模糊的。对协议的每一步都必须确切定义,力求避免产生误会。协议必须是完整的。对每一种可能要发生的情况都需要做出相应的反应。每一步操作要么是由一方或多方进行计算,要么是在各方之间进行消息传递,二者必居其一。

        下面我们将好协议应该具备的特点用一个表格来总结一下:

特点描述
透明性协议的每一步骤和规则都应该是公开且明确的,确保参与方对协议执行过程有清晰预期,减少误解和冲突的可能性。
共识所有参与方必须对协议的规则和执行达成一致意见,确保协议执行的基础。
明确性协议的每一部分都必须清晰无误,避免含糊不清的表述,确保所有参与方理解和执行的一致性。
完整性协议应覆盖所有可能发生的情况,包括异常处理和错误恢复机制,确保在各种条件下正常运行。
操作性协议的每一步骤都应当是可操作的,要么是计算过程,要么是消息传递,确保协议的实际执行性。
安全性协议应当能够抵抗各种攻击,保护参与方的隐私和数据安全,确保交易的完整性和不可抵赖性。
效率协议应当设计得高效,减少不必要的计算和通信开销,避免成为系统性能的瓶颈。
适应性协议应当能够适应环境变化,包括技术进步、法律法规更新或市场条件变动,具有灵活性以应对新挑战。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/799186.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

手机数据恢复:适用于 Android 的 4 大数据恢复应用程序

没有人希望丢失设备上的重要数据。如果发生这种情况,请不要惊慌。以下是可帮助您恢复丢失或删除的数据的 Android 数据恢复应用程序列表。 有多种方法可以恢复已删除或丢失的 Android 数据,最简单、最快捷的方法是使用第三方恢复应用程序。这些应用程序会…

mysql5.7.23安装容易出现的问题

目录 1.错误代码1862解决办法 1.1登录进mysql 1.2 填写密码进入后,使用指令修改密码 1.3 好了现在虽然是可以继续用了,但是还是没有永久解决密码过期问题,因为从MySQL版本5.6.6版本起,添加了password_expired功能,…

python初学者知识点笔记更新

文章目录 1.main函数入口2.__init__.py 文件作用3.from .applications import server解释4.变量没有修饰,直接创建使用1. 内置数据类型和函数2. 类和对象3.总结 5.mod app.__module__6.集合对比区分集合类型:混合集合类型 7.安装包失败 1.main函数入口 …

【数学建模与优化】:解析与实践

目录 数学建模概述 1. 什么是数学模型 2. 数学模型的分类 2.1 按应用领域分类 2.2 按建模方法分类 2.3 按是否考虑随机因素分类 2.4 按变量的连续性分类 2.5 按对对象内部规律了解程度分类 2.6 按变量的基本关系分类 2.7 按是否考虑时间变化分类 3. 数学规划及优化模…

【学习笔记】min_25筛

背景 GDCPC2024 出题人:出这道 min25 筛是给大家增加过题数的 [呲牙][大哭][呲牙][大哭] min25筛是干啥的 快速求一个积性函数 F ( x ) F(x) F(x) 的前缀和 这个 F ( x ) F(x) F(x) 需要满足: F ( p ) ∑ i 0 a i p i F(p)\sum_{i0}a_ip^i F(p)∑…

React Element介绍

React Element是React中的核心概念之一,它代表了React应用中的UI元素。React Element并不是真实的DOM节点,而是一个轻量级的、不可变的、描述性的对象,它包含了创建UI所需的类型(type)、属性(props&#xf…

Docker 安装ros 使用rviz 等等图形化程序

Docker 安装ros 使用rviz 等等图形化程序 ubuntu 版本与ros 发行版本对应 如何安装其它版本ros 此时考虑使用docker 易于维护 地址: https://hub.docker.com/r/osrf/ros 我主机是 ubuntu22.04 使用这个标签 melodic-desktop-full 1 clone 镜像到本机 docker pu…

Pytorch使用Dataset加载数据

1、前言: 在阅读之前,需要配置好对应pytorch版本。 对于一般学习,使用cpu版本的即可。参考教程点我 导入pytorch包,使用如下命令即可。 import torch # 注意虽然叫pytorch,但是在引用时是引用torch2、神经网络获取…

鞭炮插画:成都亚恒丰创教育科技有限公司

鞭炮插画:年味里的绚烂记忆 在岁末年初的温柔时光里,总有一抹色彩,能瞬间唤醒沉睡的年味——那便是鞭炮插画中跃动的红与金,成都亚恒丰创教育科技有限公司 它们不仅仅是纸与墨的交织,更是情感与记忆的桥梁&#xff0c…

EI美国工程索引的使用方法及个人使用途径

Ei Compendex (美国工程索引)是全球最全面的工程索引数据库,涵盖了6大工科学科领域(电子通信、建筑环境、能源资源、化工化学、机械控制及通用工程),超过190个子学科领域(涉及核技术、生物工程、交通运输、化学和工艺工程、照明和…

科研绘图系列:R语言金字塔图(pyramid plot)

介绍 金字塔图(Pyramid chart)是一种用于展示人口统计数据的图表,特别是用于展示不同年龄段的人口数量。这种图表通常用于展示人口结构,比如性别和年龄的分布。 特点: 年龄分层:金字塔图按年龄分层,每一层代表一个年龄组。性别区分:通常,男性和女性的数据会被分别展…

[K8S]一、Flink on K8S

Kubernetes | Apache Flink 先编辑好这5个配置文件,然后再直接执行 kubectl create -f ./ kubectl get all kubectl get nodes kubectl get pods kubectl get pod -o wide kubectl get cm -- 获取所有的configmap 配置文件 kubectl logs pod_name -- 查看…

C语言 ——— 将一句英语短句中的单词进行倒置

目录 题目要求 代码实现 题目要求 将一句英语短句中的单词进行倒置&#xff0c;标点符号不倒置 如&#xff1a; 输入&#xff1a;"I like chongqing very much," 输出&#xff1a;"much, very chongqing like I" 代码实现 #include<stdio.h> #i…

ssh升级

文章目录 ssh升级一、解包ssh、ssl二、更新安装ssl三、手动更新手动复制库文件四、创建符号链接五、更新库路径六、验证库文件七、设置库路径环境变量八、配置、编译、安装OpenSSH&#xff1a;意外&#xff1a;缺少 zlib 的开发库解决方法&#xff1a; 九、刷新ssh服务、查看ss…

Nginx的访问限制与访问控制

访问限制 访问限制是一种防止恶意访问的常用手段&#xff0c;可以指定同一IP地址在固定时间内的访问次数&#xff0c;或者指定同一IP地址在固定时间内建立连接的次数&#xff0c;若超过网站指定的次数访问将不成功。 请求频率限制配置 请求频率限制是限制客户端固定时间内发…

2024年职业院校大数据实验室建设及大数据实训平台整体解决方案

随着大数据技术的飞速发展&#xff0c;职业院校的大数据实验室建设与实训平台的打造成为教育领域关注的焦点。为了培养适应时代需求的专业人才&#xff0c;2024年的职业院校大数据实验室建设将遵循以下原则与策略&#xff1a; 首要任务是明确实验室建设的学科定位&#xff0c;…

OpenCV:python图像旋转,cv2.getRotationMatrix2D 和 cv2.warpAffine 函数

前言 仅供个人学习用&#xff0c;如果对各位朋友有参考价值&#xff0c;给个赞或者收藏吧 ^_^ 一. cv2.getRotationMatrix2D(center, angle, scale) 1.1 参数说明 parameters center&#xff1a;旋转中心坐标&#xff0c;是一个元组参数(col, row) angle&#xff1a;旋转角度…

【权威发布】2024年互联网技术与信息工程国际会议(ITIEIC 2024)

2024年互联网技术与信息工程国际会议 2024 International Conference on Internet Technology and Information Engineering 【1】会议简介 2024年互联网技术与信息工程国际会议是一个集学术性、实践性和国际性于一体的盛会&#xff0c;将为全球互联网技术与信息工程领域的发展…

C判断一个点在三角形上

背景 鼠标操作时&#xff0c;经常要判断是否命中显示控件&#xff0c;特开发此算法快速判断。 原理 三角形三等分点定理是指在任意三角形ABC中&#xff0c;可以找到三个点D、E和F&#xff0c;使得线段AD、BE和CF均等分三角形ABC。 这意味着三个等分点分别位于三个边界上&…

图解PyTorch中的Transpose操作

在PyTorch中&#xff0c;我们时常会对张量进行转置操作。若张量是二维的&#xff0c;则非常容易理解。若张量维度更高&#xff0c;则会令人摸不到头脑。 高维张量究竟是怎么转置的&#xff1f;简单来说&#xff0c;就是将参与转置的维度抽出来&#xff0c;将内侧的子张量视为一…