当前位置: 首页 > news >正文

基于密码技术的身份认证——基于对称密码体制的身份认证

一、符号说明:

A→B:表示通信实体A向通信实体B发送消息;

Ek(x):表示用认证双方共享的密钥K对x进行加密;

Text1,Text2,……,Text n属于可选项;

||:表示比特链接;

RA:表示A生成的一次性随机数;

TNA:表示由A生成的时间戳或序列号;

KAB:通信实体A与通信实体B的共享密钥;

Kprt:可信第三方私钥;

Kprt:可信第三方公钥。

二、基于对称密码体制的身份认证:

对称密码体制是采用单一密钥的密码体制,即加解密都是用同一组密钥进行运算。对称密码体制下

的挑战/响应机制通常要求示证者和验证者共享对称密钥。

根据是否存在可信的第三方参与到身份认证过程中,对称密码身份认证可以分为无可信第三方认证

和有可信第三方认证两种。通常无可信第三方的对称密码认证用于只有少量用户的封闭系统,而有

可信第三方的对称密码认证则可用于规模相对较大的系统中。

(1)无可信第三方的对称密码认证

无可信第三方的对称密码认证的基本原理是验证者生成一个随机数作为挑战信息,发送给示证者;

示证者利用二者共享的密钥对该挑战信息进行加密,回传给验证者;验证者通过解密密文来验证示

证者的身份是否合法。认证过程描述如下:

① 无可信第三方对称密钥一次传输单向认证

A→B:TokenAB=Text2||Ek(TNA||B||Text1)

TokenAB中的B是可选项。A首先生成TokenAB并将其发送给B;B收到TokenAB后,解密并验证B

(如果包含)与TNA是否可接收。如果可接受则通过认证,否则拒绝。

② 无可信第三方对称密钥二次传输单向认证

B→A:RB||Text1

A→B:TokenAB=Text3||Ek(RB||B||Text2)

B首先生成一个随机数RB作为挑战信息发送给A(可附带选项Text1);A根据接收到的RB,利用

双方共享密钥加密生成响应信息TokenAB并发送回B;在收到TokenAB后,B通过解密查看随机数

RB是否与挑战信息中的一致,一致则接收A的认证,否则拒绝;

③ 无可信第三方对称密钥二次传输双向认证

A→B:TokenAB=Text2||Ek(TNA||B||Text1)

B→A:TokenBA=Text4||Ek(TNB||A||Text3)

与对称密钥一次传输单向认证一样,TokenAB和TokenBA中的A,B也为可选项,A生成TokenAB并

将其发送给B;B收到TokenAB后,解密并验证B(如果包含)与TNA是否可以接收,如果可接收则

通过认证;同样,B也可以生成TokenBA并来完成A对B的认证。此时需要注意的是,这两次认证的

过程都各自独立。

④ 无可信第三方对称密钥三次传输双向认证

B→A:RB||Text1

A→B:TokenAB=Text3||Ek(RA||RB||B||Text2)

B→A:TokenBA=Text5||Ek(RB||RA||Text4)

B首先生成一个随机数RB作为挑战信息发送给A(可附带可选项Text1);A生成一个随机数RA,

根据接收到的RB,利用双方共享密钥加密生成响应信息TokenAB后,B通过解密查看随机数RB是

否与第一次传输的挑战信息中的一致,如果一致则接收A的认证,并将RA和RB加密后生成的响应

消息TokenBA发送给A;A收到TokenBA后,通过解密检查RA和RB是否与之前传输的一致,如果一

致则接收B的认证,否则拒绝。

(2)有可信第三方的对称密码认证

与无可信第三方的对称密码认证技术相比,有可信第三方的对称密码认证技术的认证双方并不使用

共享密钥,而是各子与可信的第三方之间共享密钥。

有可信第三方的对称密码认证过程如下:

假设认证过程执行之前,认证的双方A和B已经分别安全地获得与可信地第三方——认证服务器P之

间地共享密钥EAP和EBP。

① 有可信第三方地对称密钥四次传输双向认证

A→P:TVPA||B||Text1

P→A:TokenPA=Text4||EAP(TVPA||KAB||B||Text3)||EBP(TNP||KAB||A||Text2)

A→B:TokenAB=Text6||EBP(TNP||KAB||A||Text2)||KAB(TNA||B||Text5)

B→A:TokenBA=Text8||KAB(TNB||A||Text7)

A产生一个时间变量参数TVPA,附带另一方B的ID,以及一个可选的附加信息Text1发送给可信的

第三方P;P生成A,B双方的会话密钥KAB,并分别用EAP和EBP加密后,合并生成消息TokenPA

发送给A;在收到信息TokenPA后,A解密TokenPA并获得TVPA,B和A,B双方的会话密钥KAB,

A检查TVPA和B是否正确;如果检查正确,A从TokenPA中提取“(TNP||KAB||A||Text2)”,并利用

A,B双方的会话密钥加密“(TNA||B||Text5)”,然后将它们合并生成消息TokenAB发送给B;B收

到消息TokenAB后,解密“EBP(TNP||KAB||A||Text2)”获得KAB,并利用其解密“KAB

(TNA||B||Text5)”,B根据解密得到的内容,检查用户ID,A,B,时间戳或序列号TNP,TNA的

正确性;如果B检查正确,则向A发送消息TokenBA;最后A通过TokenBA检查TNB和用户ID是否正

确,如果正确则完成整个认证过程。

如果只需要实现A向B的单向认证,则B在收到消息TokenAB后,只需要检查该消息正确与否即可。

如果正确,则可通过对A的身份认证。

② 有可信第三方地对称密钥五次传输双向认证

B→A:RB||Text1

A→P:RA||RB||B||Text2

P→A:TokenPA=Text5||EAP(RA||KAB||B||Text4)||EBP(RB||KAB||A||Text3)

A→B:TokenAB=Text7||EBP(RB||KAB||A||Text3)||KAB(R’A||RB||Text6)

B→A:TokenBA=Text9||KAB(RB||R’A||Text8)

B首先产生一个随机数RB并将其发送给A(可附带可选项Text1);A产生一个随机数RA,并联合

RB和B的ID一起发送至可信的第三方P;P生成A,B双方的会话密钥KAB,分别联合RA和RB,用

EAP和EBP加密后,并合并生成消息TokenPA发送给A;A收到消息TokenPA后,通过解密得到

KAB,并检查得到RA和B的ID正确性;如果检查正确,A产生一个随机数R’A,与RB一起用KAB进

行加密,并将加密得到的内容和从TokenPA中得到的内容“EBP(RB||KAB||A||Text3)”一起作为消

息TokenAB发送给B;B收到消息TokenAB后,解密“EBP(RB||KAB||A||Text3)”获得KAB,并利用

其解密“KAB(R’A||RB||Text6)”;B根据解密得到的内容,检查用户A的ID的正确性,以及两次解

密获得的RB值是否一致;如果B检擦完全正确,则向A发送消息TokenBA;最后A通过解密

TokenBA检查R’A和RB是否正确,如果正确则完成整个认证过程。

与有可信第三方的对称密钥四次传输身份认证相同,如果只需要实现A向B的单向认证,则B在收到

消息TokenAB后,只需要检查该消息正确与否。如果正确,则可通过对A的身份认证。

备注:

相关文章:

基于密码技术的身份认证——基于对称密码体制的身份认证

一、符号说明: A→B:表示通信实体A向通信实体B发送消息; Ek(x):表示用认证双方共享的密钥K对x进行加密; Text1,Text2,……,Text n属于可选项; ||:表示比特…...

算法36:单调栈结构、子数组最小乘积的最大值问题(力扣1586)----单调栈

单调栈:就是在栈中实现数据的单调性。即从栈底到栈顶,要么递增,要么递减。 那么,使用单调栈,可以解决什么问题呢? 给定一个可能含有重复值的数组arr,i位置的数一定存在如下两个信息 1&#x…...

django mysql in 有序返回

from django.db.models import * ordering f"FIELD(id, {,.join([str(_) for _ in ids])})" # 默认就按照算法返回的 id 排序p_data_result PeptidesDataResult.objects.using("polypeptide").filter(id__inids).values().extra(select{ordering: orderi…...

c++24.1.26嵌套if语句

嵌套if语句:if语句中的if语句 实践:...

机器学习--基础概念(二)

1.分类算法 分类算法是有监督学习的一个核心问题,他从数据中学习一个分类决策函数或分类模型,对新的输入进行预测,输出变量取有限个离散值。 以下是一些常见的分类算法: 逻辑回归 (Logistic Regression): 用于二分类问题&#x…...

Ubuntu20.04 安装 ROS noetic + MAVROS

本文在 AlphaCatOvO【ROS】在 Ubuntu 20.04 安装 ROS 的详细教程 基础上,根据实际安装经验,稍微进行补充。 一、安装Ubuntu20.04 假设已经正确安装。 二、安装 ROS noetic 2.1 换源 执行 sudo apt update sudo mv /etc/apt/sources.list /etc/apt/…...

【数学笔记】一元n次不等式,分式不等式,绝对值不等式

不等式 基本性质 一元n次不等式一元二次不等式一元高次不等式分式不等式绝对值不等式 基本性质 性质 a > b ⇔ b < a a>b\Leftrightarrow b<a a>b⇔b<a a > b , b > c ⇒ a > c a>b,b>c\Rightarrow a>c a>b,b>c⇒a>c a > b ,…...

转载-android性能优化

android性能优化 Reason: Broadcast of Intent { actandroid.intent.action.TIME_TICK ActivityManager: ANR in com.***.*** PID: 16227 Reason: Broadcast of Intent { actandroid.intent.action.TIME_TICK flg0x50000014 (has extras) }有那么一段时间我被这个ANR折磨到每…...

笔记 | Clickhouse命令行查询

在 ClickHouse 中&#xff0c;可以使用命令行客户端执行查询。默认情况下&#xff0c;ClickHouse 的命令行客户端称为 clickhouse-client。下面是一些基本的步骤和示例&#xff0c;用于使用 clickhouse-client 进行查询。 首先&#xff0c;需要确保已经安装了 ClickHouse 服务…...

Dockerfile-xxxx

1、Dockerfile-server FROM openjdk:8-jdk-alpine WORKDIR /app COPY . . CMD java -Xms1536M -Xmx1536M -XX:UseG1GC -jar -Dlog4j2.formatMsgNoLookupstrue -Dloader.pathresources,lib -Duser.timezoneGMT-05 /app/server-main-1.0.0.jar 2、Dockerfile-bgd #FROM openjdk…...

Vue中的$attrs

今天产品经理要求做保留某组件全部功能&#xff0c;还要在它的基础上增加东西。如果不嫌麻烦的话就笨办法&#xff0c;但是想一下怎么只用少量代码高效的二次封装组件呢 Vue中的$attrs 在 Vue2 中&#xff0c;attr 是指组件接收的 HTML 特性(attribute)&#xff0c;通过 prop…...

使用阿里云的oss对象存储服务实现图片上传(前端vue后端java详解)

一&#xff1a;前期准备&#xff1a; 1.1&#xff1a;注册阿里云账号&#xff0c;开启对象存储oss功能&#xff0c;创建一个bucket&#xff08;百度教程多的是&#xff0c;跟着创建一个就行&#xff0c;创建时注意存储类型是标准存储&#xff0c;读写权限是公共读&#xff09;…...

python实例100第32例:使用a[::-1]按相反的顺序输出列表的值

题目&#xff1a;按相反的顺序输出列表的值。 程序分析&#xff1a; a[n:-n]作用是去除前n个元素和末n个元素a[-n]作用是取倒数第n个元素a[:-n]的作用是去除后n个元素a[:&#xff1a;-1]的作用是将所有元素逆序排列a[n:&#xff1a;-1] 的作用是从第n个元素截取后逆序排列 程序…...

python执行脚本的时候获取输入参数

当我们执行脚本的时候&#xff0c;通常都会执行 python test.py -i xxx -o xxx&#xff0c;这里的 -i 和 -o 都是输入参数&#xff0c;这到底是怎么传递的呢&#xff1f; 本文纯粹记录一下 import argparseif __name__ __main__:print("hello")# 创建AugumentParser…...

Halcon指定区域的形状匹配

Halcon指定区域的形状匹配 文章目录 Halcon指定区域的形状匹配1.在参考图像中选择目标2.创建模板3.搜索目标 在这个实例中&#xff0c;会介绍如何根据选定的ROI选择合适的图像金字塔参数&#xff0c;创建包含这个区域的形状模板&#xff0c;并进行精确的基于形状模板的匹配。最…...

Linux——常用命令

1、命令的基本格式 对服务器来讲&#xff0c;图形界面会占用更多的系统资源&#xff0c;而且会安装更多的服务、开放更多的端口&#xff0c;这对服务器的稳定性和安全性都有负面影响。其实&#xff0c;服务器是一个连显示器都没有的家伙&#xff0c;要图形界面干什么&#xff…...

外包干了2个月,技术反而退步了...

先说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入广州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

洛谷C++简单题练习day6—P1830 城市轰炸

day6--P1830 城市轰炸--1.26 习题概述 题目背景 一个大小为 nm 的城市遭到了 x 次轰炸&#xff0c;每次都炸了一个每条边都与边界平行的矩形。 题目描述 在轰炸后&#xff0c;有 y 个关键点&#xff0c;指挥官想知道&#xff0c;它们有没有受到过轰炸&#xff0c;如果有&a…...

【linux-interconnect】What NVIDIA MLNX_OFED is?

NVIDIA MLNX_OFED Documentation v23.07 - NVIDIA Docs 文章目录 What NVIDIA MLNX_OFED is&#xff1f;Overview[Software Download](https://docs.nvidia.com/networking/display/mlnxofedv23070512#src-2396583107_NVIDIAMLNX_OFEDDocumentationv23.07-SoftwareDownload) Wh…...

Unity开发中的XML注释

在Unity开发中&#xff0c;XML注释主要用于C#脚本的注释&#xff0c;以帮助生成代码文档和提供IntelliSense功能。以下是一些关于如何使用XML注释的技巧&#xff1a; 创建注释&#xff1a; 在C#中&#xff0c;XML注释是由///或/**...*/开始的。例如 /// <summary> /// 这…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

uniapp中使用aixos 报错

问题&#xff1a; 在uniapp中使用aixos&#xff0c;运行后报如下错误&#xff1a; AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...

DiscuzX3.5发帖json api

参考文章&#xff1a;PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下&#xff0c;适配我自己的需求 有一个站点存在多个采集站&#xff0c;我想通过主站拿标题&#xff0c;采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...

前端开发者常用网站

Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN...

OCR MLLM Evaluation

为什么需要评测体系&#xff1f;——背景与矛盾 ​​ 能干的事&#xff1a;​​ 看清楚发票、身份证上的字&#xff08;准确率>90%&#xff09;&#xff0c;速度飞快&#xff08;眨眼间完成&#xff09;。​​干不了的事&#xff1a;​​ 碰到复杂表格&#xff08;合并单元…...

[特殊字符] 手撸 Redis 互斥锁那些坑

&#x1f4d6; 手撸 Redis 互斥锁那些坑 最近搞业务遇到高并发下同一个 key 的互斥操作&#xff0c;想实现分布式环境下的互斥锁。于是私下顺手手撸了个基于 Redis 的简单互斥锁&#xff0c;也顺便跟 Redisson 的 RLock 机制对比了下&#xff0c;记录一波&#xff0c;别踩我踩过…...