首页 > 其他分享 >现代加密技术

现代加密技术

时间:2024-03-24 22:55:51浏览次数:31  
标签:公钥 加密 数字签名 CA 现代 密钥 加密技术 加密算法

共享密钥加密算法(对称加密算法)

加密和解密的密钥也一样

 

公钥加密算法(非对称加密算法)

加密和解密的密钥不一样

共享密钥/对称加密算法

数据加密标准(DES)

一种分组密码,在加密前,先对整个明文进行分组。每一个分组为64位,之后进行16论迭代,产生一组64位密文数据,使用的密钥是56位

 

3DES

使用两个密钥,执行三次DES算法,密钥长度是112位

 

国际数据加密算法(IDEA)

使用128位密钥,把明文分成64位的块,进行8轮迭代。IDEA可以使用硬件或软件实现,比DES快

 

高级加密标准(AES)

AES支持128位、192位、256位三种密钥长度,可通过硬件实现

 

流加密算法和RC4

加密速度快,可以达到DES的10倍

 

公钥加密算法/非对称加密算法

每两个实体有两个密钥,公钥公开,私钥自己保存

公钥加密,私钥解密,可实现保密通信

私钥加密,公钥解密,可实现数字签名

典型公钥加密算法:RSA、DH

 

数字签名

数字签名是用于确认发送者身份和消息完整性的一个加密消息摘要,具体特点如下:

  • 接收者能够核实发送者
  • 发送者事后不能抵赖对报文的签名
  • 接收者不能伪造对报文的签名

 

数字签名和数据加密联合使用的流程如下:

  1. 发送者A 使用 A的私钥 对数据进行加密,进行数字签名
  2. 发送者A 使用 B的公钥 对数据进行加密,进行数据加密
  3. 接收者B 使用 B的私钥 对数据进行解密,进行数据解密
  4. 接收者B 使用 A的公钥 对数据进行解密,进行身份核实

 

报文摘要(哈希/散列)

MD5

对任意长度报文进行运算,先把报文按512位分组,最后得到128位报文摘要

SHA

对512位长的数据进行复杂运算,最终产生160位散列值,比MD5更安全,计算比MD5慢

 

将一段数据(任意长度)经过一道计算,转换为一段定长的数据

 

哈希Hash(散列函数)

不可逆性(单向)

几乎无法通过Hash结果推导出原文,即无法通过x的Hash值推导出x

无碰撞性

几乎没有可能找到一个y,使得y的Hash值等于x的Hash值

雪崩效应

输入轻微变化,Hash输出值产生巨大变化

 

使用场景

  • 发布文件的完整性验证,如炒股软件+MD5验证软件完整性
  • 下载文件+MD5验证文件完整性
  • 服务器中保存用户的密码
    • 增加一个key做哈希

HMAC = Hash(文件+key)

需要双方预先知道这个key

HMAC:消除中间人攻击,源认证+完整性校验(数字签名也能实现)

  • 数字签名

 

数字证书与CA

数字证书可类比为身份证的作用,用于证明身份

CA是电子商务认证授权机构

 

比如:

要证明发送者是否是A

需要得到A的数字证书

要证明得到的数字证书是否真的是A的数字证书

可以得到的A的数字证书是否有CA数字签名(签名用CA的私钥)

 

证书链

 

如果用户数量很多,通常由多个CA。每个CA为一部分用户发行和签署证书

如果有两个CA,X1和X2,假设用户A从CA机构X1获得了证书,用户B从X2获得证书。如果两个证书发放机构X1和X2彼此间安全交换了公钥,彼此信任,那么他们的证书可以形成证书链

A通过一个证书链来获取B的公钥,证书链表示为:

X1《X2》X2《B》

B也能通过相反的证书链来获取A的公开密钥:

X2《X1》X1《A》

标签:公钥,加密,数字签名,CA,现代,密钥,加密技术,加密算法
From: https://www.cnblogs.com/zx654042919/p/18093286

相关文章

  • python每日可视化分析:从过去到现代数据分析的演进
    分析目标本文旨在探索数据分析发展历程中的关键时刻,包括重要人物的贡献和大事件的发生。通过对比不同年代的数据分析技术和方法,我们可以更好地理解数据分析如何成为今天决策制定不可或缺的一部分。分析步骤收集数据:搜集关于数据分析历史上重要人物和事件的信息。数据与可......
  • 最快的 Python API 框架之一:简单、现代、高性能 | 开源日报 No.207
    tiangolo/fastapiStars:68.1kLicense:MITfastapi是一个现代、高性能、易学习、快速编码且适用于生产环境的框架。其主要功能和核心优势包括:高性能:与NodeJS和Go相当,是最快的Python框架之一。编码速度快:开发特性的速度提高约200%到300%。减少错误:减少大约......
  • 【教程】深入探究 JS代码混淆与加密技术
     ......
  • 基于security-oauth2-autoconfigure实现的OAuth2迁移到更现代的解决方案,Spring Securi
    目录OAuth2资源服务器配置步骤1:添加依赖步骤2:配置资源服务器OAuth2客户端配置(可选)/**其他应用作为OAuth2客户端步骤1:添加依赖步骤2:配置OAuth2.0客户端/**应用同时作为OAuth2客户端步骤1:配置OAuth2.0客户端控制器示例结合使用OAuth2与JWT        ......
  • 多线程并发聊天室简单实现代码详解 -- 涉及网络编程,多线程和线程同步的知识
            本项目主要完成多线程并发聊天室的基础功能,即多个客户端之间通过服务器可以实现群发消息,重点在于学习网络编程,多线程和线程同步的基础知识(基于Linux)。    下面我会详解每一部分的代码。1.主线程        1.1首先由于是自己在电脑里面测试,......
  • 【译】AI和梵语:架起古代智慧与现代技术的桥梁
    原作:巴邵布•南迪引言:在不断发展的人工智能(AI)领域,研究人员孜孜不倦地从各种来源寻求灵感,令人惊讶的是,世界上最古老的语言之一梵语已成为自然语言处理(NLP)进步的金矿。梵文复杂的结构和丰富的语义框架提供了独特的见解,使其成为AI爱好者的一个令人着迷的主题。古代智慧与现代......
  • WinClip非官方复现代码学习笔记2
    一、数据集加载1.数据集放置将下载的数据集解压到datasets文件夹的下面,方便后续操作。2.数据集预处理数据集预处理针对两个数据集给了两个不同的预处理指令,我测试了VISA数据集,以下是我对VISA数据集的实例。1.datasets/prepare_visa_public.py文件配置打开这个文件,第1......
  • 现代化方式打造CSAPP环境
    前情提要距离我上次尝试完成Csapp已是一年前,在期末周时迅速放弃了两年前的环境搭建ArchLinux本地一把梭,出于对本地环境的隔离与保护这次将使用容器化技术+Vscode搭建尽量避免对本机的影响,以及达到对环境更好的管理与备份。yay-Sdockersudouseradd-aGdocker$USER#......
  • 视频直播系统源码,异步处理实现代码分析
    视频直播系统源码,异步处理实现代码分析@OverrideprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{System.out.println("doget");method3(request,response);}/***使用asyncConte......
  • 数字孪生与智慧城市:实现城市治理现代化的新路径
    随着信息技术的迅猛发展,智慧城市已成为城市发展的必然趋势。数字孪生技术作为智慧城市建设的重要支撑,以其独特的优势为城市治理现代化提供了新的路径。本文将探讨数字孪生技术在智慧城市中的应用,以及如何实现城市治理的现代化。一、数字孪生技术的概念及其在城市治理中的应用......