身份识别与鉴权技术调研方案

news2025/1/24 15:00:41

对称加密算法

对称加密方式又称为私钥加密方式,该方式的加密和解密过程使用同一个密钥,因此该密钥又称为共享密钥。如图2.2所示,在对称加密方式中,发送方使用对称加密算法和共享密钥处理原始数据,得到一个加密后的密文。接收方收到密文后,想要获得原始数据,则需要使用相同算法的解密算法和同一个共享密钥处理密文,才能得到原始数据。

计算量小,加密速度快,加密效率高是对称加密方式的特点。但是在对称加密方式中,使用的密钥只有一个,这就必须要求解密方事先知道这个加密密钥。如果一旦密钥泄漏,这就意味着任何人都能够获得通信双方的原始消息数据。因此每对通信用户使用对称加密方式时,都需要采取特定且唯一的密钥,同时需要定期对密钥进行更新,这会使得通信双方持有的密钥数量不断增多,用户将花费更多的成本区维持密钥的管理。所以,在分布式网络系统上使用对称加密方式比较困难。

目前在计算机软件系统中广泛使用的对称加密方式有DES,3DES,AES等。DES 加密算法是一种经典的对称加密算法,为后续对称加密算法的发展奠定了坚实的基础。但是DES加密算法的密钥比较短,只有56位,因此受到诸如查分密码分析和线性密码分析等各种攻击威胁。三重DES(3DES)加密算法是DES加密算法的改良。它基于DES加密算法进行三重迭代,使抗穷举攻击的能力显著增强,但同时也造成处理速度较慢、密钥计算时间加长,加密效率不高。因为DES 加密算法的缺陷,美国国家标准局倡导的AES加密算法即将作为对称加密算法的新标准取代DES加密算法。AES加密算法具有密钥建立时间短,灵敏性好,内存需求低等优点。

非对称加密算法

非对称加密方式又称为公钥加密方式。与对称加密方式不同,该方式加密和解密过程中使用的密钥并不相同,加密过程使用的密钥称为公钥,解密过程使用的密钥称为私钥。其中公钥对外公开,私钥对外保密。如图2.3所示,在非对称加密方式中,因为公钥对外公开,所以数据发送方可以直接使用接收方公钥将明文进行特殊加密算法处理,随之产生一个加密密文。接收方收到密文后,则直接使用自己的私钥及对密文进行解密算法处理,即可得到明文信息。同时,发送方也可以使用自己的私钥加密,接收方则使用发送方的公钥进行解密。

非对称加密方式的特点是算法强度复杂、安全性依赖于算法与密钥。非对称

加密方式有两种密钥,其中公钥是公开的,发送方只要确保自己的私钥是安全的

就行,这样安全性就比对称加密方式大了很多。但是由于其算法复杂,从而使得

加密解密速度比较于对称加密解密的速度更慢。若使用非对称加密方式进行通信,不仅系统性能开销较大,而且会造成一定的系统延迟。使用公钥加密、私钥解密的方式,可以确保数据的保密性,但不能防止数据被篡改。使用私钥加密、公钥解密的方式,可以保障数据的一致性,防止数据被篡改,但不能防止数据泄漏。RSA是目前唯一被广泛接受并使用的非对称加密算法,已经成为非对称加密算法国际标准。

不可逆加密算法

除了对称加密和非对称加密方式,还有一种只能单向加密、无法解密的数据加密方式,称为不可逆加密。不可逆加密方式的特点是不需要密钥,一般的实现原理是使用散列函数,又称哈希函数或单向函数。在不可逆加密方式中,输入明文后经过散列函数处理成密文。但这种加密方式没有对应的解密方法,只有重新使用相同的明文,并再次经过同样的散列函数处理,才能得到相同的加密密文,才算是真正的解密。不可逆加密方式一般用来当作数据的消息摘要,用来检验数据的完整性。一些软件系统也使用不可逆加密方式来对用户登录密码进行加密,将加密后的密文存于数据库中。每次用户登录时,软件系统将用户输入的密码进行散列函数处理,生成密文与数据库中的密文对比,相同即可登录。一旦软件系统的数据库被攻击者破坏,数据库中的数据将会被攻击者获取,但是由于密码被单向加密,无法解密,攻击者无法获取用户的登录密码,从而无法使用用户的账号。

MD5加密算法是典型的不可逆加密算法,它由MD4,、MD3、MD2算法改进而来。一个随机长度的信息通过MD5加密算法,将产生一个128位的消息摘要。如果将这个128位的二进制消息摘要转换成十六进制,可以得到一个32位的字符串。在软件系统中经过MD5处理的消息摘要大都是以十六进制存储的32位字符串。

SHA1是和MD5一样流行的消息摘要算法,然而SHA1比MD5的安全性更强。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。如果将这个 160位的二进制消息摘要转换成十六进制,可以得到一个40位的字符串。在软件系统中经过SHA1处理的消息摘要大都是以十六进制存储的40位字符串。

SSL简介

SSL(Secure Sockets Layer)是Netscape公司开发的应用于传输层的面向连接的通信安全协议,运行于TCP/IP协议之上而在其他高层协议之下,它为两个通信实体之间提供认证、数据的保密性和完整性服务。SSL协议分为两层:握手层和记录层。其中,握手层负责双方身份认证、协商记录协议采用的算法和密钥;记录层通过加密处理保证传输中数据的机密性,并通过计算消息认证码MAC来保证连接是可靠的。

SSL可以看成应用层和传输层之间一个层。在发送方,它接收应用层的数据,对数据进行加密,然后将加密的数据送往TCP插口;在接收方,它从TCP插口读取数据,解密后将数据交给应用层。SSL提供以下三个功能:SSL服务器鉴别、SSL客户鉴别、加密的SSL会话。它使用不对称加密技术实现会话双方之间信息的安全传递,可以实现信息传递的保密性、完整性,并且会话双方能鉴别对方身份。SSL不仅为服务器和客户机提供了认证服务,而且为在互联网上安全地传送数据提供了一个加密通道,建立一个安全的连接。

由于SSL提供身份鉴别、授权认证、安全的网络传输通道,在互联网传输安全设计中被广泛使用。但是,在建立SSL通信连接以及初始话SSL会话需要用公钥加密和解密方案,因而SSL协议的使用会降低通信两端建立连接和安全通信的速度。而且,SSL只能运行在TCP/IP协议之上,不适合基于UDP协议传输的实时数据网络通信。

AES与SSL相结合的混合加密

由于网络的安全性要求包括两个方面:一为阻止未授权用户进入网络;另一方面是对互联网传输的数据进行加密传输。基于前面分析,对于一般的TCP通信SSL 协议是可以达到安全性设计要求的。但是对实时性要求较高的信息的安全性设计,特别是基于UDP协议的通信,SSL不是一种理想的选择,必须寻求一种新的加密算法来实现实时通信。

加密算法的原理

基于互联网的实时数据通信既要保证网络实时数据传输的安全性,又要尽量降低实时数据加密的网络传输时延。AES算法加/解密速度很快,但要求在通信前对密钥进行秘密分配,解密的私钥必须由加密的发送方通过网络传送至解密数据的接收方,如何有效管理AES密钥的安全性是保证AES加密安全的重要环节。SSL除了提供安全的加密通道之外,还有授权认证,身份鉴别等功能。在传送实时数据时,如果使用AES对实时数据加密,同时利用SSL实现身份认证和传送AES的密钥,就可以结合AES和SSL的优点获得一种新的实时数据加密方法。

该方案的实现原理:实时数据网络传输前,发送方通过身份认证后,用SSL安全通道发送AES密钥到接收方,同时用AES算法对实时数据加密,然后基于UDP协议通过互联网发送加密的实时数据到接收方。这样接收方可以用接收到的AES密钥解密加密后的实时数据得到具体的实时数据。

加密算法的实现过程

在实现过程中发送方实现了实时数据的加密,而接收方则完成了实时数据的解密,如图1所示。具体是先由发送方发送SSL连接请求,通过身份认证后与接收方建立SSL连接,并通过SSL通信传送发送方创建的AES密钥到接收方,同时发送方用该 AES 密钥加密实时数据,然后通过互联网传送加密后的实时数据到

接收方。接收方通过身份认证接收发送方的SSL连接请求,通过SSL安全加密通道接收来自发送方的AES密钥,同时通过互联网接收被AES加密的实时数据。最后接收方用刚接受的AES密钥解密实时数据密文得到具体实时数据。AES与SSL 结合算法实现了授权认证功能,有效的保证了密钥传输的安全,继承了AES算法的优点。

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

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

相关文章

vulnhub渗透测试靶场练习2

靶场介绍 靶场名:easy_cloudantivirus 靶场地址:https://www.vulnhub.com/entry/boredhackerblog-cloud-av,453 环境搭建 依旧使用VM VirtualBox搭建靶场,攻击机使用的是VMware中的kali,需要将VMware虚拟机kali和virtualbox靶机…

Web服务器部署上线踩坑流程回顾

5月份时曾部署上线了C的Web服务器,温故而知新,本篇文章梳理总结一下部署流程知识; 最初的解决方案:https://blog.csdn.net/BinBinCome/article/details/129750951?spm1001.2014.3001.5501后来的解决方案:https://blog…

Mysql数据库(3)—架构和日志

Mysql的架构设计 Mysql分为Server层和存储引擎层: Server层 主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等)&#xff…

Android逆向学习(一)vscode进行android逆向修改并重新打包

Android逆向学习(一)vscode进行android逆向修改并重新打包 写在前面 其实我不知道这个文章能不能写下去,其实我已经开了很多坑但是都没填上,现在专利也发出去了,就开始填坑了,本坑的主要内容是关于androi…

回归拟合 | 灰狼算法优化核极限学习机(GWO-KELM)MATLAB实现

这周有粉丝私信想让我出一期GWO-KELM的文章,因此乘着今天休息就更新了(希望不算晚) 作者在前面的文章中介绍了ELM和KELM的原理及其实现,ELM具有训练速度快、复杂度低、克服了传统梯度算法的局部极小、过拟合和学习率的选择不合适等优点,而KEL…

OpenCV(十):图像缩放、翻转、拼接的介绍与使用

目录 (1)图像缩放:resize() (2)图像翻转: flip() (3)图像拼接:hconcat() 和vconcat() (1)图像缩放:resize() 使用 cv2.resize() 函…

React笔记(三)类组件(1)

一、组件的概念 使用组件方式进行编程,可以提高开发效率,提高组件的复用性、提高代码的可维护性和可扩展性 React定义组件的方式有两种 类组件:React16.8版本之前几乎React使用都是类组件 函数组件:React16.8之后,函数式组件使…

北京APP外包开发团队人员构成

下面是一个标准的APP开发团队构成,但具体的人员规模和角色可能会根据项目的规模和需求进行调整。例如,一些小型项目或初创公司可能将一些角色合并,或者聘请外包团队来完成部分工作。北京木奇移动技术有限公司,专业的软件外包开发公…

使用rabbitmq进行支付之后的消息通知

订单服务完成支付后将支付结果发给每一个与订单服务对接的微服务,订单服务将消息发给交换机,由交换机广播消息,每个订阅消息的微服务都可以接收到支付结果. 微服务收到支付结果根据订单的类型去更新自己的业务数据。 相关技术方案 使用消息…

【LeetCode】85.最大矩形

题目 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例 1: 输入:matrix [["1","0","1","0","0"],["1&quo…

11. 微积分 - 偏导数方向导数

文章目录 偏导数方向导数方向余弦投影继续讲方向导数Hi, 大家好。我是茶桁。 我们上节课学习了链式法则,本节课,我们要学习「偏导数」和「方向导数」。 偏导数 偏导数在导论课里面也提到过。偏导数针对多元函数去讲的。 多元函数是什么,我们拿个例子来看: 多元函数: y…

springboot配置ym管理各种日记(log)

1:yml配置mybatis_plus默认日记框架 mybatis-plus:#这个作用是扫描xml文件生效可以和mapper接口文件使用,#如果不加这个,就无法使用xml里面的sql语句#启动类加了MapperScan是扫描指定包下mapper接口生效,如果不用MapperScan可以在每一个mapp…

2023.9.2 关于 JVM 垃圾回收机制(GC)

目录 为什么要有垃圾回收机制? STW(Stop The World)问题 垃圾回收机制主要回收哪个内存区域? 垃圾对象判断算法 引用计数算法 可达性分析算法 垃圾对象回收算法 标记清除算法 复制算法 标记整理算法 分代算法 为什么要有垃圾回收机制? 自动…

thinkphp中使用Elasticsearch 7.0进行多表的搜索

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、thinkphp中使用Elasticsearch 7.0进行多表的搜索二、使用步骤1.引入库2.读入数据 总结 前言 提示:thinkphp中使用Elasticsearch 7.0进行多表的…

stable diffusion实践操作-批次出图

系列文章目录 stable diffusion实践操作 文章目录 系列文章目录前言一、批次出图介绍1.1 webUI设置1.2 参数介绍 二、批次出图使用2.1 如何设置2.1 效果展示 总结 前言 本章主要介绍SD批次出图。 想要一次产生多张图片的时候使用。 一、批次出图介绍 1.1 webUI设置 1.2 参数…

[管理与领导-65]:IT基层管理者 - 辅助技能 - 4- 乌卡时代(VUCA )

前言: 大多数IT人,很勤奋,但都没有职业规划,被工作驱动着前行,然而,作为管理者,你就不能没有职业规划思维,因为你代表一个团队,你的思维决定了一个团队的思维。本文探讨…

2023-9-2 染色法判定二分图

题目链接&#xff1a;染色法判定二分图 #include <iostream> #include <cstring> #include <algorithm>using namespace std;const int N 100010l, M 200010;int n, m; int h[N], e[M], ne[M], idx;int color[N];void add(int a, int b) {e[idx] b, ne[id…

CSS中border-radius的来美化table的实战方案

border-radius是一种CSS属性&#xff0c;用于设置元素的边框的圆角程度。其具体的用法如下&#xff1a; 设置一个值&#xff1a;可以为元素设置一个单一的圆角半径&#xff0c;这个半径将应用于元素的四个角。例如&#xff1a; div {border-radius: 10px; }设置四个值&#x…

vue Cesium接入在线地图

Cesium接入在线地图只需在创建时将imageryProvider属性换为在线地图的地址即可。 目录 天地图 OSM地图 ArcGIS 地图 谷歌影像地图 天地图 //矢量服务let imageryProvider new Cesium.WebMapTileServiceImageryProvider({url: "http://t0.tianditu.com/vec_w/wmts?s…

创建性-构造者设计模式

前言 我们在使用Retrofit等这些第三方框架的时候&#xff0c;发现他们的使用都很方便&#xff0c;比如Retrofit retrofit new Retrofit.Builder().build()&#xff0c;和我们通常直接new一个对象不同&#xff0c;他是交给Builder类&#xff0c;通过build()函数来构造一个Retro…