现代密码学-认证协议

news2024/11/16 1:52:20

A.B两个用户想通过网络先建立安全的共享密钥再进行保密通信?A(B)如何确信自己正在和B(A)通信而不是C?这种通信方式为双向通信,此时的认证为相互认证。

相互认证

A/B两个用户在建立共享密钥时需要考虑的核心问题:保密性和实时性;

保密性:防止会话密钥伪造或泄露,会话密钥组哎通信双方之间交换时应该以密文的形式--所以通信双方事先应该有密钥或公钥。

实时性:防止消息的重放攻击。常用两种方法:时间戳(要求各方的时钟同步,每次收到的消息里都包含一个时间戳,接收方需要用该时间戳和自己本地的时间作比较;该方法不能用于面向连接的应用过程)和询问-应答(发送者发一个一次性随机数询问,接收者回应正确的一次性随机数;该方法不适合于无连接场景)。

单钥加密体制

单密钥体制需要有一个可信的密钥分配中心KDC,每个用户与KDC都有一个共享的密钥--主密钥K_A,K_B。KDC为通信双方建立一个短期的会话密钥,用主密钥加密会话密钥后分配给用户。

  1. A向KDC发起向B通信的请求:A\rightarrow KDC:ID_{A}||ID_{B}||N_1
  2. A从KDC处获得会话密钥K_sKDC\rightarrow A:E_{K_A}[K_s||ID_B||N_1||E_{K_B}[K_s||ID_A]]
  3. A将KDC发来的消息用自己的密钥解密,获得会话密钥K_s和要发给B的密文信息E_{K_B}[K_s||ID_A]发给B:A\rightarrow B:E_{K_B}[K_s||ID_A]
  4. B用自己的密钥解密获得会话密钥 ,B生成一次性随机数并用会话密钥加密发给A:B\rightarrow A:E_{K_s}[N_2]
  5. A收到消息用会话密钥解密获得B发的随机数,并应答B的消息:A\rightarrow B:E_{K_s}[f(N_2)]

第4,5步用于防止重放攻击。攻击者可以截获第3步消息进行重放攻击,如果没有第4,5步,B无法检测出自己得到的会话密钥式重放的旧的密钥。

攻击者在截获第3部消息后,可进一步截获第4步B发出的询问,然后假冒A做出第5步回答。对于这一攻击场景,可以在第2,3步加上时间戳。

  1. A\rightarrow KDC:ID_{A}||ID_{B}
  2. KDC\rightarrow A:E_{K_A}[K_s||ID_B||T||E_{K_B}[K_s||ID_A||T]]
  3. A\rightarrow B:E_{K_B}[K_s||ID_A||T]
  4. B\rightarrow A:E_{K_s}[N_1]
  5. A\rightarrow B:E_{K_s}[f(N_1)]

时间戳用于保证会话密钥的时效性。|Clock-T|< \Delta t_1+\Delta t_2,Clock为本地时钟。t1为本地时钟与KDC时钟差,t2为网络时延。

上面的改进还存在问题:等待重放攻击:利用时钟同步差异进行攻击,若发送方时钟超前,攻击者截获发送方消息并等待消息时间戳接近接收方时间再重发该消息。---应对方法:网络各方以KDC时钟为基准定期检测调整;还可增加使用一次性随机数握手协议

A\rightarrow B:ID_A||N_A

B\rightarrow KDC:ID_B || N_B||E_{K_B}[ID_A||N_A||T_B]

KDC\rightarrow A:E_{K_A}[ID_B || N_A||K_s||T_B]||E_{K_B}[ID_A||K_s||T_B]||N_B

A\rightarrow B:E_{K_B}[ID_A||K_s||T_B]||E_{K_s}[N_B]

 


公钥加密体制

认证服务器AS密钥对SK_{AS},PK_{AS},A的密钥对SK_A,PK_A,B的密钥对SK_B,PK_B

  1. A将自己的身份和想通信的对象身份一起发给AS:A\rightarrow AS:ID_A ||ID_B
  2. AS发给A两个链接的数据项都利用AS的私钥加密(AS签名),分别作为分发给双方的公钥证书AS\rightarrow A:E_{SK_{AS}}[ID_A||PK_{A}||T]||E_{SK_{AS}}[ID_B||PK_B||T]
  3. A选取会话密钥并经自己的密钥和B的公钥加密后连同两个证书一起发给BA\rightarrow B:E_{SK_{AS}}[ID_A||PK_{A}||T]||E_{SK_{AS}}[ID_B||PK_B||T]||E_{PK_B}[E_{SK_{A}}[K_s]||T]

时间戳T用于防止重放 攻击,需要各方时间同步。

也可使用一次性随机数,不要要同步时钟。

 KDC密钥对SK_{KDC},PK_{KDC}

  1. A\rightarrow KDC:ID_A||ID_B
  2. KDC\rightarrow A:E_{SK_{KDC}}[ID_B||PK_B]
  3. A\rightarrow B:E_{PK_B}[N_A||ID_A]
  4. B\rightarrow KDC:ID_B||ID_A||E_{PK_{KDC}}[N_A]
  5. KDC\rightarrow B:E_{SK_{KDC}}[ID_A||PK_A]||E_{PK_B}[{E_{SK_{KDC}}[N_A||K_s||ID_B]}]
  6. B\rightarrow A:E_{PK_A}[E_{SK_{KDC}}[N_A||K_s||ID_B]||N_B]
  7. A\rightarrow B:E_{K_s}[N_B]

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

刷代码随想录有感(93):贪心算法——无重叠区间(区间重叠问题:求区间重叠次数)

题干: 代码&#xff1a; class Solution { public:static bool cmp(vector<int>& a, vector<int>& b){return a[0] < b[0];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {sort(intervals.begin(), intervals.end(), c…

2024年湖北职称评审面试答辩技巧有哪些?看完你就懂了

2024年度湖北省部分工程专业水平能力测试面试答辩开始了&#xff0c;答辩时间是&#xff1a;2024年6月15、16日。 测试地点&#xff1a;武汉市武昌区洪山侧路63号茶港军转小区1号楼(武汉大学西门旁) 水平能力测试注意事项&#xff1a; &#xff08;一&#xff09;报名参加202…

企业级数据保护:华企盾DSC敏感内容识别与加密技术

在当今数字化时代&#xff0c;企业面临的数据安全挑战日益严峻。敏感数据的泄露不仅会导致经济损失&#xff0c;还可能损害企业的声誉和客户信任。因此&#xff0c;采用先进的敏感内容识别和加密技术&#xff0c;例如华企盾DSC敏感内容识别&#xff0c;对企业数据进行有效保护至…

Ubuntu server 24 (Linux) IPtables 双网卡 共享上网NAT 安装配置DHCP

一 开启路由转发功能 sudo vim /etc/sysctl.conf net.ipv4.ip_forward1 sudo sysctl -p 二 安装DHCP #更新软件包列表&#xff1a; sudo apt update #安装DHCP服务器 sudo apt install isc-dhcp-server #修改监听网卡,根据实际修改 sudo vi /etc/default/isc-dhcp-server …

【动手学深度学习】使用块的网络(VGG)的研究详情

目录 &#x1f30a;1. 研究目的 &#x1f30a;2. 研究准备 &#x1f30a;3. 研究内容 &#x1f30d;3.1 多层感知机模型选择、欠拟合和过拟合 &#x1f30d;3.2 练习 &#x1f30a;4. 研究体会 &#x1f30a;1. 研究目的 理解块的网络结构&#xff1b;比较块的网络与传统…

AI 入门指南二 :AI提示词(Prompt)

一&#xff0c;提示词的定义 提示词在中文中意为“触发”&#xff0c;在自然语言处理&#xff08;NLP&#xff09;的领域&#xff0c;它更接近于一个“心领神会”的概念&#xff0c;而非具有明确定义的术语。 简而言之&#xff0c;提示词是用户对大型语言模型的输入&#xff0…

Qt | Qt 资源简介(rcc、qmake)

1、资源系统是一种独立于平台的机制,用于在应用程序的可执行文件中存储二进制文件(前面所讨论的数据都存储在外部设备中)。若应用程序始终需要一组特定的文件(比如图标),则非常有用。 2、资源系统基于 qmake,rcc(Qt 的资源编译器,用于把资源转换为 C++代码)和 QFile …

EE trade:通货膨胀对老百姓意味着什么

通货膨胀&#xff0c;是经济领域中的一个常见现象&#xff0c;对社会各阶层尤其是普通老百姓的生活产生了深远影响。理解通货膨胀对老百姓的真实含义&#xff0c;可以帮助我们更好地应对日常生活的变化与挑战。 1. 生活成本的上升 最直接的影响体现在生活成本上。通货膨胀会导致…

音频pop音的数学与物理解释

音频数据跳变太大的时候通常会有pop音&#xff0c;此时频谱上看pop音位置能量较高 音频中的“pop”音通常是由于信号的不连续性或瞬态变化造成的。这种不连续性的数学和物理原因可以从以下几个方面解释&#xff1a; 数学解释 信号不连续性 当音频信号发生突变时&#xff0c;…

Android完整备份:备份Android手机数据的4种最佳方法

如今&#xff0c;人们每天都依赖手机&#xff0c;丢失数据对我们所有人来说都是一个大麻烦。由于生活是不可预测的&#xff0c;没有人知道什么时候他的数据可能会被意外删除或丢失。因此&#xff0c;仔细备份手机数据非常重要。大多数主要智能手机平台都具有将数据备份到计算机…

C/C++学习路线

学习分享 C语言学习路线 视频&#xff1a;浙大翁恺C语言程序设计&#xff0c;当时学习C语言的时候感觉老师讲的很有意思&#xff0c;现在依然很受学生欢迎&#xff0c;播放量也很高&#xff0c;C语言主要需要学习数组&#xff0c;指针&#xff0c;结构体和函数等&#xff0c;…

爆肝三天,制作属于自己的地图——DAY1(地图数据整理)

爆肝第一天&#xff0c;地图数据整理 作者&#xff1a;御剑飞行 引言 本系列我将用三篇文章详细的讲述开源地图数据集、Mapmost Studio介绍、如何通过Mapmost Studio转为生成地图数据。 以下是常用的地图数据集。 Esri 开放数据中心 Esri开放数据中心包含来自全球5,000 多…

【AI基础】第四步:保姆喂饭级-langchain+chatglm2-6b+m3e-base

在第三步手动安装chatglm2-6b时&#xff0c;已经可以通过web进行交互。langchain重新封装了一下AI框架&#xff0c;提供更加友好的开发功能&#xff0c;类似于AI届的spring框架。langchain的安装过程也类似于上一步说的&#xff1a;【AI基础】第三步&#xff1a;纯天然手动安装…

SwiftUI知识点(一)

前言&#xff1a; Swift知识点&#xff0c;大至看完了&#xff0c;公司项目是Swift语言写的&#xff0c;后续苹果新出的SwiftUI&#xff0c;也需要学习一下 不知觉间&#xff0c;SwiftUI是19年出的&#xff0c;现在24年&#xff0c;5年前的东西了 学习的几个原因&#xff1a; …

概要设计说明书实际项目示例(原件直接套用Word)

1引言 1.1编写目的 1.2项目背景 1.3参考资料 2系统总体设计 2.1整体架构 2.2整体功能架构 2.3整体技术架构 2.4运行环境设计 2.5设计目标 3系统功能模块设计 3.1个人办公 3.2系统管理 4性能设计 4.1响应时间 4.2并发用户数 5接口设计 5.1接口设计原则 5.2接口实现方式 6运行设计…

【香橙派 AIpro 开发板】AI 应用部署测评:视频目标检测+Linux镜像+vscode远程连接+全细节试用

香橙派 AIpro 开发板 AI 应用部署测评 写在最前面一、开发板概述官方资料试用印象适用场景 二、详细开发前准备步骤1. 环境准备2. 环境搭建3. vscode安装ssh插件4. 香橙派 AIpro 添加连接配置5. 连接香橙派 AIpro6. SSH配置 二、详细开发步骤1. 登录 juypter lab2. 样例运行3. …

网络原理——http/https ---http(1)

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 今天你敲代码了吗 网络原理 HTTP/HTTPS HTTP,全称为"超文本传输协议" HTTP 诞⽣与1991年. ⽬前已经发展为最主流使⽤的⼀种应⽤层协议. 实际上,HTTP最新已经发展到 3.0 但是当前行业中主要使用的HT…

Java桥接模式

桥接模式 最重要的是 将 抽象 与 实现 解耦 , 通过组合 在 抽象 与 实现 之间搭建桥梁 ; 【设计模式】桥接模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )-CSDN博客 桥接模式&#xff08;Bridge Pattern&#xff09;-&#xff08;最通俗易懂的案例&#xff09;_桥接模式 例子-…

【Linux】(三)—— 文件管理和软件安装

文件管理 Linux的文件管理是系统管理中的核心部分&#xff0c;它涉及到如何组织、访问、修改和保护文件及目录结构。 目录 文件管理基本概念常用命令查看和切换目录创建文件和目录删除文件和目录文件拷贝移动和重命名文件文件查看cat文件查看more查找文件查找文本 数据流和管道…

保姆级讲解 Mybatis的配置与管理

Mybatis简介 MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下&#xff0c;iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到GithubiBatis一词来源于“intern…