加密技术与认证技术概述-程序员宅基地

技术标签: 网络  安全  

目录

一、明文传输

二、加密技术

(1)加密技术概述

(2)对称加密技术

(3)非对称加密技术

(3)混合加密技术

二、认证技术

(1)认证技术概述

(2)哈希函数与信息摘要

(3)数字签名

(4)数字证书


 

一、明文传输

        明文传输指在数据传输过程中直接以未加密的普通文本形式进行传输。因此在数据传输过程容易受到未经授权的第三方窃听和篡改。因此,传输敏感数据时通常采用一些加密技术来保护数据安全性。

8719f495b5924890aba10d3f59f89064.png

二、加密技术

(1)加密技术概述

        加密技术是保护数据隐私与安全的常用手段,可以有效防止窃听,其关键在于加密/解密算法和密钥管理。加密技术包括算法和密钥两个元素。加密技术的基本过程就是对原来是明文的数据按某种算法加密处理,使其变成不易读或不可读的代码,通常称之为“密文”。密文只能通过加密算法相应的密钥解密,从而显示出来原明文的内容。加密技术可以有效地防止未授权的访问、窃听或篡改,其可以分为对称加密和非对称加密两类。

(2)对称加密技术

        对称加密技术是一种发送方和接收方使用同一把密钥进行加密/解密的操作。因此收发双方需要提前约定一把密钥,发送方使用该密钥对数据加密,接收方使用该密钥解密数据。

d7598c51ac78489fbe0e0eaa8554bf3b.png

        常见的对称加密算法: 

  • DES算法(Digital Encryption Standard),即数据加密标准
  • 三重DES(3DES或TDES)
  • RC-5(Rivest Cipher 5)
  • IDEA(International Data Encryption Algorithm),即国际数据加密算法
  • AES(Advanced Encryption Standard)即高级加密标准
  • RC-4(Rivest Cipher 4)

        优点:

  • 加密速度快
  • 适用大量数据的加密和解密

        缺点:

  • 密钥管理存在缺陷,对于多方通信或者复杂系统,每个信息传输过程可能需要维护独立的密钥,大量的密钥可能会对密钥管理造成问题
  • 密钥传输存在安全性问题,密钥的传输必须保持安全,否则可能会被拦截和窃取

(3)非对称加密技术

        非对称加密与对称加密不同,它是一种使用一对密钥进行加密/解密的技术,即公开密钥(公钥)和私有密钥(私钥)。公钥和私钥是两个不同的密钥,公钥是可以对外公布的,而私钥则只有持有人才知道。

        加密过程:接收方B产生一对密钥,B将其中一个作为公钥公开,另一个作为私钥自己持有,发送方A使用B的公钥对明文加密形成密文,将密文发送给B,B收到密文后,使用私钥进行解密。

b85498741c4e4308909b13ab7896c585.png

         常见的非对称加密算法:

  • RSA(Rivest-Shamir-Adleman),即里维斯-沙米尔-阿德尔曼算法
  • ECC(Elliptic Curve Cryptography),即ECC算法(椭圆曲线密码学)
  • DSA(Digital Signature Algorithm),即DSA算法(数字签名算法)
  • DH(Diffie-Hellman),即DH算法(迪菲-赫尔曼密钥交换算法)
  • ECDH(Elliptic Curve Diffie-Hellman),即ECDH算法(椭圆曲线迪菲-赫尔曼密钥交换算法)

        优点:

  • 密钥分离,传输安全:非对称传输中,公钥用于加密数据,只有私钥持有者才能解密数据,通信双方无需共享或传输私钥,因此能有效保护密钥的安全性,降低密钥管理的复杂性和风险

        缺点:

  • 性能差,加/解密速度慢
  • 适用场景受限:不适合大量数据的加密和解密,更适合于密钥交换、数字签名等特定的应用场景

(3)混合加密技术

        为了兼顾对称加密的高效性和非对称加密的安全性,提出一种将对称加密和非对称加密结合使用的加密方法,即混合加密。在传输大量数据时,可以使用发送方A和接收方B共享的对称密钥对明文加密,之后A使用B的公钥对对称密钥加密,随密文一起传输给B,B收到后使用私钥对对称密钥解密,再使用对称密钥对密文解密。

db4571da163f48cb93c33b0327bb52b1.png

二、认证技术

(1)认证技术概述

        加密技术虽然能够有效防止窃听,但是仍然存在未授权的第三方对密文篡改或假冒授权方为接收方发送非法信息的风险。认证技术则主要解决网络通信过程中通信双方的认证,从而确认用户身份或确保数据来源可信以及验证系统,其过程也涉及加密和密钥交换。

(2)哈希函数与信息摘要

        哈希(Hash)函数,又称散列函数,其功能为,输入一串不定长的字符串,返回一串固定长度的字符串(Hash值)。单向哈希函数可以用于生成信息摘要,因为其具有不可逆性,无法通过哈希值来还原出原始数据。常见的单向哈希函数包括MD5(Message Digest Algorithm 5)、SHA-1(Secure Hash Algorithm 1)、SHA-256等。

        信息摘要简述了较长的信息或文件,相当于信息或文件的“数字指纹”。信息摘要常用于数字签名、文件完整性验证、密码存储等领域。

13000b9c977845ed922ed19233099c2b.png

(3)数字签名

        数字签名是通过对信息摘要进行非对称加密得到的,用以验证报文来源并核实报文是否发生变化的一个字符数字串。数字签名可以解决否认、伪造、冒充等问题。

        数字签名虽然也使用非对称加密技术,但是与加密过程正好相反,其使用的是发送方的密钥对。发送方A对消息或文件使用哈希函数生成摘要后,使用自己的私钥对摘要进行加密形成数字签名,接收方B收到数字签名后,使用A的公钥解密,还原信息摘要M。然后,B对收到的原始信息使用相同的哈希函数生成摘要N,通过比较摘要M和摘要N判断消息是否被篡改,确认数字签名是否有效。

07afde5972594b1a88aa7c7924b11247.png

(4)数字证书

        数字证书是一种由权威机构(通常称为证书颁发机构或CA)颁发的电子文件,用于验证特定实体的身份,通常用于网络通信中的加密和身份验证。

412f73b6af9c409499ddd2c01a81b5d0.png

 

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43592586/article/details/137941263

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签