浅谈加密算法(对称加密、非对称加密、混合加密、数字签名、哈希函数)

news2024/12/30 1:50:15

1、对称加密

        对称加密只有一个密钥,直接使用这一个密钥对信息进行加密或解密。这样子就使得对称加密解密十分高效,计算量也相较于非对称加密小很多,适合有大量数据的场合。

        密钥只有一个且他一定不能泄漏。由此分发密钥,讲这个密钥传递给客户端是一件很有挑战性的事情。所以相较于非对称加密,对称加密的安全性低一些,因为再传递过程中密钥可能被他人获取。

常见对称加密算法:

  1. DES(Data Encryption Standard)

    • DES 是一种经典的对称加密算法,最早于 1976 年由美国联邦政府确定为数据加密标准。
    • 它将明文按 64 位进行分组加密,每组生成 64 位的密文。
    • DES 的密钥长度为 56 位,但实际上只有 48 位用于加密,其余用于错误检查。
    • 由于计算机的进步,DES 已经能够被暴力破解,因此已不再安全。
  2. 3DES(Triple Data Encryption Algorithm)

    • 3DES 是对 DES 的增强版,相当于对每组数据应用了三次 DES 算法。
    • 它使用三把独立的密钥,总长度为 168 比特。
    • 加密过程是以密钥 1、密钥 2、密钥 3 的顺序进行的。
  3. AES(Advanced Encryption Standard)

    • AES 是取代 DES 的一种新的对称加密算法。
    • 它的分组长度为 128 比特,密钥长度可以是 128、192 或 256 比特。
    • AES 是目前安全性较高、应用范围较广的对称加密算法。

2、非对称加密

        非对称加密再服务端时会生成一对密钥,分别为公钥私钥,这个公钥可以明文发送给客户端,之后所有客户端给服务端发送消息前,都先用公钥对消息进行加密,那么请求再网络中被非法获取,没有私钥的话也无法获取信息。之后客户端就可以放心的发送请求给服务端了。等请求打到服务端,服务端再用私钥将信息解密。

        两个密钥中,公钥可以公开,而私钥不在网络中传输,则没有被截取的危险。则安全性得到了很大的提升。当然计算效率相较于对称加密会慢。为什么公钥和私钥可以互相解密呢,这是数学上问题。

RSA加密算法:

  1. 密钥生成

    • 首先,选择两个大素数,通常记为 p 和 q
    • 计算 n = p * q
    • 根据欧拉函数,计算 r = (p - 1) * (q - 1)
    • 选择一个与 r 互质的整数 e,使得 e 与 r 满足 e * d ≡ 1 (mod r),其中 d 是 e 的模反元素。
    • 公开密钥为 (e, n),私有密钥为 (d, n)
  2. 加密方法

    • 将明文看作比特串,将明文划分成 k 位的块 P
    • 对每个数据块 P,计算 C = P^e (mod n),其中 C 即为 P 的密文。
  3. 解密方法

    • 对每个密文块 C,计算 P = C^d (mod n),其中 P 即为明文。


总之,RSA算法使用平方运算,明文以分组为单位进行加密,每个分组的二进制值小于 n。密钥的长度决定了加密的安全性,通常 n 的大小为1024位或309位十进制数。

3、混合加密

        混合加密就是为了利用对称加密的高效性和非对称加密的安全性。

  • 小明这边创建出公钥和私钥。
  • 小明将公钥发送给小红。
  • 小红随机生成一个密钥。并使用公钥对这个密钥进行加密
  • 此时小红再将这个密钥发送给小明,此时密钥再传递过程中处于加密状态,不怕配截取。
  • 小明、小红再通过这个密钥进行高效的对称加密通话了。

4、数字签名和哈希函数

        数字签名并不是对想要传递的信息进行加密,主要用途是用来身份验证的,判断这个信息是否由特定发送方发送。

        哈希函数是对一段信息产生内容摘要,待客户端接收信息后,再对信息原文进行哈希函数计算,对比两个内容摘要是否一样,防止信息再传输过程中被篡改

        而数字签名和哈希函数结合起来。此时和非对称加密反过来,是使用公钥进行加密的。

  • 先使用哈希函数对原文进行内容摘要。
  • 使用私钥对内容摘要和原文一起进行加密,发送给客户端。
  • 此时使用公钥对内容摘要进行解密,再对原文进行哈希函数生成内容摘要。
  • 两个内容摘要进行对比,如果相同则正确。

作用:

  • 身份认证:数字签名实现了用户的身份认证,确保消息是由特定发送方发送的。
  • 完整性保护:数字签名保证了数据在传输过程中的完整性,防止数据被篡改。
  • 不可否认性:数字签名使发送方无法否认发送过的消息,因为只有发送方的私钥能够生成有效的签名。

 

        

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

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

相关文章

聚合支付,聚合系统,聚合程序或将成为主流

支付市场的变化对用户、代理商和运营商产生了重大影响。 随着政策监管的日益严格,支付行业逐渐朝着标准化和合理化的方向发展,日益增强其安全性。在这个背景下,聚合平台已经成为未来支付行业发展的重要趋势。特别是在“一机一码”政策实施后&…

三防平板丨平板终端丨加固平板丨户外勘测应用

随着科技的不断发展,现代勘测业也在不断升级。相较于传统的勘测设备,三防平板在户外勘测中有着广泛的应用。那么,三防平板在户外勘测中究竟有哪些优势呢? 首先,三防平板具备极强的防水、防尘、防摔能力。在野外勘测中&…

MyBatis---初阶

一、MyBatis作用 是一种更简单的操作和读取数据库的工具。 二、MyBatis准备工作 1、引入依赖 2、配置Mybatis(数据库连接信息) 3、定义接口 Mapper注解是MyBatis中用来标识接口为Mapper接口的注解。在MyBatis中,Mapper接口是用来定义SQL映射的接口,通…

十分钟利用springboot写电商支持多种优惠券规则,使用策略模式替代大量的if-else

前言 在开发电商折扣模块的时候经常会碰到各种优惠规则,那么就会碰到很多条件判断,冗余各种if-else的代码使得维护困难,此时就可以用策略模式来解决,替代大量的冗余判断条件代码,精简代码结构。 策…

建筑行业的重要工具—— 智慧工地管理平台(java源码)

系统定义: 智慧工地管理平台系统是一种集成了先进的信息技术、物联网技术、移动互联网技术等多种技术的工地管理系统。它能够对工地的整个生命周期进行全面的管理,包括工地的规划、设计、施工、监控、验收等各个环节。通过信息化手段,提高了工…

拯救者Legion Y9000K 2021H(82K6)原厂oem预装Win11系统镜像

lenovo联想拯救者Y9000K(82K6)原装出厂Windows11系统安装包下载,恢复出厂开箱状态 链接:https://pan.baidu.com/s/1DGWU7gctJerff6LJrgHD5w?pwdrbs5 提取码:rbs5 原装出厂系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、Office…

C++从入门到精通 第十四章(STL容器)【下】

写在前面: 本系列专栏主要介绍C的相关知识,思路以下面的参考链接教程为主,大部分笔记也出自该教程,笔者的原创部分主要在示例代码的注释部分。除了参考下面的链接教程以外,笔者还参考了其它的一些C教材(比…

基础数据结构与相关C++ STL容器

文章目录 数组arrayvector 栈和队列dequestackqueue 堆heappriority_queue 链表listforward_list 树setmapmultisetmultimap 哈希表unordered_setunordered_mapunordered_multisetunordered_multimap 图 数组 array 不开口的连续线性空间,支持随机访问。 array是…

【C->Cpp】由C迈向Cpp(4)

目录 (一)内联函数 (二)关键字auto (三)范围for (四)nullptr 正文开始: (一)内联函数 宏定义: C的内联函数是在C语言宏的基础上提出…

怎样开发Apple Vision Pro应用?以应用开发者角度体验苹果的开发文档

▲ 搜索“大龙谈智能内容”关注公众号▲ 最近,苹果公司推出了革命性的产品Apple Vision Pro,全世界震惊。下边这个视频在社交网络上得到了大量转发: 在大家兴奋的围观之际,已经有人在规划能做些什么了。 有朋友问大龙有什么Vi…

妨碍做出正确决策的5种认知谬误

人类的大脑在极端情况下会呈现出不可理喻的一面,从而妨碍我们做出正确的决策。本文介绍了5种常见的认知谬误,识别并克服这些认知谬误,可以帮助我们更好的决策。原文: Want to Make Better Decisions? Avoid These 5 Cognitive Distortions 我…

Python中类创建和实例化过程

嗨喽,大家好呀~这里是爱看美女的茜茜呐 一、 type() 1、创建类的两种方式 方式一 class MyClass(object):def func(self,name):print(name)myc MyClass()print(MyClass, type(MyClass)) print(myc, type(myc))我们创建了一个名为MyClass的类,并实例化…

书生·浦语大模型实战营-第四课笔记

期待已久的微调课 一、Finetune 增量预训练和指令跟随是两种微调模式,即两种微调策略。 1)增量预训练 投喂新的领域知识即可,例如书籍、文章、代码 2)指令跟随 采用高质量对话和问答数据进行训练 二、LoRA与QLoRA 两…

35、IO进程线程/多线程实现文件读写20240221

一、使用多线程完成两个文件的拷贝&#xff0c;第一个线程拷贝前一半&#xff0c;第二个线程拷贝后一半&#xff0c;主线程回收两个线程的资源。 代码&#xff1a; #include<myhead.h> typedef struct //类型重定义结构体 {const char *src;const char *dest;int start…

vue3总结

1 setup 概述 setup是Vue3中一个新的配置项个函数, 包含数据、方法等&#xff0c;是组合api的“舞台”。 特点如下&#xff1a; setup函数返回的对象中的内容&#xff0c;可直接在模板中使用。setup中访问this是undefined。setup函数会在beforeCreate之前调用&#xff0c;它…

人工智能深度学习

目录 人工智能 深度学习 机器学习 神经网络 机器学习的范围 模式识别 数据挖掘 统计学习 计算机视觉 语音识别 自然语言处理 机器学习的方法 回归算法 神经网络 SVM&#xff08;支持向量机&#xff09; 聚类算法 降维算法 推荐算法 其他 机器学习的分类 机器…

Spring Cloud Gateway 中文文档

Spring Cloud Gateway 中文文档 官方文档 该项目提供了一个建立在Spring Ecosystem之上的API网关&#xff0c;包括&#xff1a;Spring 5&#xff0c;Spring Boot 2和Project Reactor。 Spring Cloud Gateway旨在提供一种简单而有效的方式来对API进行路由&#xff0c;并为他们提…

奇异递归模板模式应用5-静态多态

动态多态&#xff1a;C动态多态是利用虚函数特性实现的&#xff0c;即基类指针(引用&#xff09;指向派生类指针(引用)。由于虚函数的实现是在运行期进行的&#xff0c;因而会产生运行期开销&#xff08;虚表指针偏移&#xff0c;与分支预测器和CPU指令流水线相关&#xff09;。…

window10中安装Docker Desktop(2024最新)

1、安装概述? 博客创造时间:2024年2月20日。 Docker在Linux中的安装相对较简单,但是在window中的安装总是会出现很多的问题。 新版本Docker Desktop安装的前提条件: 1、现在Docker Desktop默认使用WSL 2,而不是以前的Hyper-V。 2、检查系统要求:系统最好是Windows 1…

UE4 C++联网RPC教程笔记(三)(第8~9集)完结

UE4 C联网RPC教程笔记&#xff08;三&#xff09;&#xff08;第8~9集&#xff09;完结 8. exe 后缀实现监听服务器9. C 实现监听服务器 8. exe 后缀实现监听服务器 前面我们通过蓝图节点实现了局域网连接的功能&#xff0c;实际上我们还可以给项目打包后生成的 .exe 文件创建…