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

对称加密算法

对称加密方式又称为私钥加密方式,该方式的加密和解密过程使用同一个密钥,因此该密钥又称为共享密钥。如图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.mzph.cn/news/73355.shtml

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

相关文章

IDEA新建的Moudle失效显示为灰色

现象:IDEA新建的Moudle失效显示为灰色!!! 解决方案: 1. 右键点击父模块,选择Open Moudle Settings: 2. 点击加号,选择Import Moudle - 导入模块: 3. 找到对应模块的po…

0016Java程序设计-springboot幼儿园管理系统

摘 要目 录系统设计开发环境 摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于幼儿园管理系统当然也不能排除在外,随着网络技术的不断成熟,带动了幼儿园管理系统&a…

Flutter 通过BottomSheetDialog实现抖音打开评论区,内容自动上推、缩放效果

一、先来看下实现的效果 实现上面的效果需要解决俩个问题 当列表进行向下滑动到顶部的时候,继续滑动可以让弹窗向下收起来弹出上下拖动的时候,视图内容跟着上下移动、缩放大小 二、实现弹窗上下滑动的时候,动态改变内容区的位置和大小 通过…

HD系列边缘网关,助力工商业储能发展!

HD系列边缘网关具备低功耗、高性能、接口丰富等特点,可以实现如通信规约转换、远程调度、智能监测、通信管理等多种应用,适用于储能系统的能源管理系统。 1.1硬件接口 该产品板载瑞芯微 RK3568 处理器,可选配2G16G/432 等配置。机壳采用标准 …

sql:SQL优化知识点记录(十四)

(1)索引失效行锁变表锁 建立2个索引 索引是失效后,系统性能会变查,如果涉及到锁的话,行锁会变表锁 有一个问题,当session1用b字段做查询条件因为是varchar类型,需要加双引号,但是没…

GO语言网络编程(并发编程)并发介绍,Goroutine

GO语言网络编程(并发编程)并发介绍,Goroutine 1、并发介绍 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。 B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更…

sqlserver 各种集合、区间、 时间轴(持更)

1.所有有交集的区间 场景:在事件表里查找某年员工的岗位系数,并计算其加权平均数。case1:该员工是老员工,从2020年一直到2049年。case2:该员工是老员工,但是今年离职。case3:该员工是今年的新员…

线程池|单例模式|STL、智能指针线程安全|读者写者问题

线程池 线程池的逻辑思想: 每当我们处理一个任务就要创建一个线程,创建线程的开销是很大的。因此我们可以预先创建一批线程,任务队列里没有任务的时候,每个线程都休眠,当队里中有任务的时候,就可以唤醒线程…

YOLOV7改进-针对小目标的NWD(损失函数)

link 1、复制这些 2、utils-loss,这里加 3、把这几行复制到utiils的loss.py 4、先对CoputerLoss类做修改 5、把那一行替换成这个 6、修改 7、iou_ration是超参,可以调,如果小目标比较多的话,这个值可以低一些,…

入门人工智能 —— 学习 python 使用 IDE :vscode 完成编程 (2)

入门人工智能 —— 学习 python 使用 IDE :vscode 完成编程 (2) 安装和配置 VSCode创建和运行 Python 代码使用 VSCode 的调试功能 在上一篇文章中,介绍了如何入门人工智能编程,并开始了学习 Python 编程语言的基础知识…

英诺森 “供应链智能数据平台”荣获“科技进步奖”

近日,2023年中国物流与采购联合会科学技术奖正式公布,该奖项经国家科技部批准,在国家科学技术奖励工作办公室登记备案,是我国物流行业最具影响力的奖项之一。 英诺森联合客户申报的科技项目“英诺森供应链智能数据平台”&#xf…

1.1 计算机网络在信息时代中的作用

思维导图: 正文: 我的理解: 这段话是一本书或课程的第一章简介,它的目的是为读者或学生提供一个关于计算机网络基础知识的框架或大纲。 首先,它强调了这章是整本书的一个概览,会先介绍计算机网络在信息时…

Python 操作 Excel

之前看过一篇文章,说一个工作多年的老员工,处理数据时只会用复制粘贴到 Excel ,天天加班工作还完不成,后来公司就招了一个会 Python 的新人,结果分分钟就处理完成。所以工作中大家经常会使用 Excel 去处理以及展示数据…

C# WPF 自己写的一个模拟病毒传播的程序,有可视化

源代码: https://github.com/t39q/VirusSpread 主要代码 using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks;namespace VirusSpread.Bu…

C/C++苹果和虫子 2019年9月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C苹果和虫子 一、题目要求 1、编程实现 2、输入输出 二、解题思路 1、案例分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 C/C苹果和虫子 2019年9月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 你买了一箱n个苹果,很不幸…

Android Automotive编译

系统准备 安装系统 准备一台安装Ubuntu系统的机器(windows系统的机器可以通过WSL安装ubuntu系统) 安装docker 本文使用docker进行编译,因此提前安装docker。参考网络链接安装docker并设置为不使用sudo进行docker操作。 参考链接&#xff…

分类算法系列④:朴素贝叶斯算法

目录 1、贝叶斯算法 2、朴素贝叶斯算法 3、先验概率和后验概率 4、⭐机器学习中的贝叶斯公式 5、文章分类中的贝叶斯 6、拉普拉斯平滑系数 6.1、介绍 6.2、公式 7、API 8、示例 8.1、分析 8.2、代码 8.3、⭐预测流程分析 🍃作者介绍:准大三…

Top 15 开源3D分子蛋白质建模与渲染软件

如今,WebGL 是一种趋势技术,因为它允许开发人员使用现代浏览器作为客户端来创建复杂的 3D 交互式图形、游戏,而无需安装额外的插件、扩展或软件。 WebGL允许浏览器直接与GPU(图形处理单元)一起工作。 推荐:…

HJ48 从单向链表中删除指定值的节点

Powered by:NEFU AB-IN Link 文章目录 HJ48 从单向链表中删除指定值的节点题意思路代码 HJ48 从单向链表中删除指定值的节点 题意 输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。 思路 单向链表…

Java——》线程间是如何通信的

推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…