首页 > 其他分享 >密码基础知识整理

密码基础知识整理

时间:2023-10-12 18:33:05浏览次数:45  
标签:加密 SHA 数字签名 基础知识 密码 算法 用于 密钥 整理

国际密钥算法

AES(对称分组密码算法):

  • 高级加密标准,是一种对称分组密码算法,使用128比特、192比特或256比特的密钥长度。AES已成为最常用和最安全的对称加密算法,被广泛应用于数据加密和安全通信领域。

RSA(非对称加密算法):

  • 是一种非对称加密算法,用于数字签名、密钥交换和公钥加密。RSA基于大数因子分解问题的困难性,公钥可以公开分享,而私钥必须保密。

ECC(非对称加密算法):

  • 是一种非对称加密算法,也是基于椭圆曲线的公钥密码学体系。ECC使用较短的密钥长度,提供与传统RSA相当的安全性,但使用更少的计算资源,因此在资源受限的环境中广泛使用。

SHA系列(计算哈希)

  • SHA是一系列哈希函数算法,如SHA-1、SHA-256、SHA-512等。SHA算法常用于生成数据的摘要(哈希值),用于数据完整性校验和数字签名等应用。

DSA / 3DES(数字签名算法):

  • 数字签名算法,用于生成和验证数字签名。DSA常与哈希函数(如SHA)结合使用,用于保证数据的完整性和验证签名者的身份。

DH(密钥交换算法):

  • 是一种用于在公共信道上交换密钥的算法。DH算法允许两个实体在不共享密钥的情况下协商一个共享密钥。

国密算法

SM2(椭圆曲线公钥密码算法)

  • SM2是一种非对称加密算法,基于椭圆曲线密码学。
  • 用于数字签名、密钥交换和公钥加密等场景。
  • 公钥长度为256比特,密钥长度为512比特。
  • 提供更高的安全性和较短的密钥长度,用于安全通信、数字签名、身份认证等。

SM3(国家密码算法SM3)

  • SM3是一种哈希函数算法,用于数据的摘要计算。
  • 哈希值长度为256比特(32字节)。
  • 用于数字签名、证书生成和校验、身份认证、电子证据存储等。
  • 保障数字签名、认证等场景的数据完整性和安全性。

SM4(分组密码算法)

  • SM4是一种对称分组密码算法,也称为SMS4。
  • 支持128比特的分组和128比特、192比特、256比特的密钥长度。
  • 采用Feistel结构,通过多轮迭代来实现加密和解密。
  • 用于数据加密和数据保护场景,如文件加密、通信加密、磁盘加密等。
  • AES是一种高度安全和高效的对称分组密码算法,与SM4具有类似的功能,用于数据的加密和保护。

三级密钥体系

LMK(Local Master Key 本地主密钥):

  • 本地主密钥是最高级别的密钥,通常由硬件安全模块(HSM)生成和管理。
  • LMK用于保护其他更敏感的密钥,如ZMK和TMK。
  • LMK的生成和管理必须在安全的环境中进行,确保其机密性和安全性。

ZMK(Zone Master Key 区域主密钥):

  • 区域主密钥是用于加密其他主密钥的密钥,通常用于保护交换密钥(KEK)和其他更低级别的密钥。
  • ZMK由LMK加密存储,并通过安全通信信道传输到其他系统中。

TMK(Terminal Master Key 终端主密钥):

  • 终端主密钥是用于加密终端设备(如POS终端)上的工作密钥的密钥。
  • TMK由ZMK加密存储,并在终端设备中使用,用于保护交易数据等操作。

KEK(Key Encryption Key 密钥加密密钥):

  • 密钥加密密钥是用于加密其他密钥的密钥,用于提供密钥的保护和分发。
  • KEK可以是ZMK或其他主密钥,用于加密低级别的工作密钥或用户自定义密钥(UDK)。

UDK(User-Defined Key 用户自定义密钥):

  • 用户自定义密钥是由终端用户自主定义的密钥,用于加密特定的敏感数据或保护特定的应用。
  • UDK通常由终端用户生成,其安全性依赖于用户的密钥管理和保护措施。

工作密钥:

  • 工作密钥用于实际的加密和解密操作,用于保护敏感数据的传输和存储。
  • 工作密钥可以是终端设备使用的TMK,或者由KEK或UDK生成的其他密钥。

数字证书密钥:

  • 数字证书密钥用于数字签名和身份验证,通常使用非对称加密算法(如RSA、ECC)生成。
  • 数字证书密钥包含公钥和私钥,用于生成和验证数字签名,以确保数据的完整性和身份的真实性。

简要的密钥流程如下:

graph TD; LMK[LMK 本地主密钥] --> ZMK[ZMK 区域主密钥]; ZMK --> TMK[TMK 终端主密钥]; TMK --> Terminal[终端设备];

签名验签


MAC(Message Authentication Code)

用来保证消息的数据完整性和消息的数据源认证

HMAC(基于Hash的消息鉴别码)

需要选择一个哈希函数(SHA-1、SHA-256、MD5)


数字证书

待续~~~~~

标签:加密,SHA,数字签名,基础知识,密码,算法,用于,密钥,整理
From: https://www.cnblogs.com/ed1s0n/p/17760270.html

相关文章

  • 使用正则表达式验证用户名和密码
    学习Java开发mis系统一开始总的有个页面来登录吧,可以输入用户名和密码,用到使用正则表达式验证用户名和密码。马上安排!<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type&......
  • SRC_任意用户密码重置
    任意用户密码重置0.短信验证码爆破·有些短信验证码长度过短(一般为4位纯数字),并且没有输入错误次数的限制,导致可以通过该缺陷对短信验证码进行暴力枚举,对用户密码进行重置。 1.修改手机号码·在发送验证码的时候通过抓包修改手机号,使用另外一个手机号去接收短信验证码,系......
  • 模拟输入密码只有三次机会密码为123
    #include <stdio.h>{inti=0;ints=0;for(i=0;i<3;i++) {  printf("请输入密码:\n"); scanf("%d",&s);if(s==123){printf("登录成功\n");break;}else{if(i==2){printf("已错三次登录失败\n");beeak;}printf(&q......
  • 捕捉回忆的时光机:用AI智能管理的NAS,提升整理效率
    记忆会模糊,但照片不会,每次打开照片的时候背后的故事就会浮现在我们眼前。当然,我们现在的设备也越来越多了,当我们要找某一张照片时总是需要从散落在各个设备里的照片库寻找,花费大量时间。而TerraPhotos的出现,无论是很多年前的照片,奔赴世界各地的打卡记录,每个陪我们走过一段时间的......
  • 软件项目管理、开发、配套支撑等全文档整理
    前言:在软件开发过程中,编写和维护相关文档是非常重要的。这些文档不仅可以帮助开发团队更好地了解项目需求、设计和实现方案,还可以提高开发效率、保证软件质量以及降低维护成本。下面将介绍软件开发过程中常见的几类文档。1、需求分析文档需求分析文档是软件开发过程中最重要的......
  • Julia基础知识
    在本章中,我们将学习并行计算所需的Julia基本部分:变量函数数组在Julia中使用jupyter笔记本,运行单元格可以使用shift+enter,也可以使用运行按钮。 运行第一个单元格可以看到,显示了最后一行的值,我们可以用分号抑制输出,尝试执行第二个单元格,可以发现没有输出。单元格的顺......
  • kotlin基础知识
    一、if的使用1、if和java不一样的是:if是有结果的表达式函数的返回值可以是:returnif(a>b)aelseb;类似于java的returna>b?a:b;可能是这个原因所以kotlin没有这个三目运算符 二、函数体kotlin除了循环外,大部分控制结构都是表达式体1、函数体分为:代码块体和表......
  • [C语言快速入门] 基础知识和基本数据类型
    [C语言快速入门]基础知识和基本数据类型这里主要的知识点主要来自这两个教学视频:史上最强最细腻的linux嵌入式C语言学习教程【李慧芹老师】_哔哩哔哩_bilibiliC语言基础入门_C3程序猿_哔哩哔哩_bilibili这本书:《CPrimerPlus(第6版)中文版》在本文开篇之前,想简单写一下关于......
  • 【20230613】【Python基础教程】第一章 基础知识
    第一章基础知识I1.4数字与表达python3.x会进行一些浮点数的计算点击查看代码print(1/2)#浮点计算print(1//2)#整除实现结果只保留整数部分print(1%2)#取余保留余数print(2**3)#幂函数结果如下:点击查看代码0.50181.4.1长整型数python3.x......
  • redis-cluster群集在线设置密码【原创】
    1、在线设置密码redis-cli-p7001-cconfigsetmasterauthyourpasswordconfigsetrequirepassyourpasswordauthyourpasswordconfigrewrite#查看密码configgetrequirepass#连接客户端redis-cli-c-ayourpassword如果想删除密码#清除密码configsetre......