当前位置: 首页 > news >正文

密码算法、密钥体系---安全行业基础篇1

一、密码算法

密码算法是一种数学和计算方法,用于保护数据的机密性和安全性。不同的密码算法使用不同的数学原理和技术来加密和解密数据。以下是一些常见的密码算法类型:

1. **对称密码算法:** 

         特点:相同的密钥用于加密和解密数据。数据必须是块的整数倍。

        优缺点:优点是速度快,但缺点是密钥管理复杂,因为必须确保密钥的安全传输和存储。

        概念:key加密明文得到密文,key解密密文得到明文。 

        要素:密钥、明文、密文、块(加解密的数据最小单元)。

        用途:数据加密传输,只有拥有key的人才可以获取数据明文。

        种类:   AES(高级加密标准):广泛使用,用于加密敏感数据。块大小16字节
                     DES(数据加密标准)/3DES:早期的对称密码算法,现在不再视为安全。8字节

                     SM4(国密):块大小16字节

2. **非对称密码算法:** 

        特点:有一对密钥,一个用于加密,另一个用于解密

        优缺点:优点是不存在密钥交换问题,密钥管理更容易,但通常比对称算法慢,不适合做大量运算。

        概念:

                加密:发送者使用接收者的公钥加密

                解密:接收者使用自己的私钥解密

                签名:使用自己的私钥签名,一般对摘要值进行签名

                验签:使用签名者的公钥验证已签名的数据,保证数据的真实性。

        要素:密钥对(公钥:可公开。私钥:只有自己知道)。公钥运算则使用私钥还原,私钥运算则使用公钥还原。

        用途:数据加密传输,只有拥有key的人才可以获取数据明文。

        种类:RSA(常用)、ECC(椭圆曲线密码学)、SM2(国密)
 

3. **哈希函数:**

特点:防碰撞,即无法找到输出相同的两个输入。不能反向运算,即不可能由输出计算出输入

概念:一段任意长度的输入数据,经过哈希运算,可以生成一段固定长度的输出数据。输入输出为一一对应,用输出(较短)可以代表输入(任意长度)

要素:输入数据原文,输出摘要值。输入不一样,输出必然不一样。

用途:验证数据完整性、消息摘要、签名验签。

种类:MD5 输出长度16字节,已被攻破不安全。
            SHA1 输出长度20字节,已被攻破不推荐使用。
            SHA256 输出长度32字节,目前安全界的主流。
            SH512 输出长度64字节。
            SM3(国密) 输出长度32字节。

4. **密码协议:**

这些是用于在网络通信中保护数据机密性的特定协议和算法,如TLS/SSL用于加密Web连接。

密码算法的选择取决于特定的用途和安全需求。在设计或选择密码算法时,必须考虑密钥管理、性能、抵抗攻击的能力以及合规性等因素。此外,密码学的发展是一个不断演化的领域,新的算法和技术不断出现,以适应不断变化的威胁和安全挑战。因此,安全性专业人士需要密切关注密码学领域的最新发展。

二、密钥体系

密钥体系是一个关键的概念,用于管理和维护在加密和安全通信中使用的密钥。它是确保数据机密性和安全性的基础。密钥体系包括以下重要组成部分:

1. **密钥生成:** 密钥体系的第一步是生成密钥。密钥可以是对称密钥(用于对称加密算法)或非对称密钥(用于非对称加密算法)。生成密钥的过程应该是随机的和安全的,以防止恶意攻击者猜测密钥。

2. **密钥分发:** 生成密钥后,需要将密钥安全地传输到通信的各方。这通常涉及使用安全协议来确保密钥在传输过程中不被拦截或篡改。密钥分发是一个关键的挑战,因为它直接影响到系统的安全性。

3. **密钥存储:** 密钥必须在使用前安全地存储,以防止未经授权的访问。对于对称密钥,存储是特别重要的,因为任何能够访问密钥的人都可以解密数据。对于非对称密钥,私钥的安全性至关重要,因为它用于解密数据或进行数字签名。

4. **密钥更新:** 密钥不应永久不变,因为长时间使用相同的密钥会增加系统受到攻击的风险。因此,密钥体系应包括定期更换密钥的策略。

5. **密钥销毁:** 当不再需要使用某个密钥时,必须确保它被安全地销毁,以防止未经授权的访问。密钥销毁是数据安全的重要方面。

6. **密钥管理:** 密钥管理包括监控密钥的使用情况,跟踪密钥的生命周期,记录密钥的分发和销毁,以及响应与密钥相关的事件,如丢失或泄露。

7. **密钥策略和访问控制:** 密钥体系应该定义哪些实体有权访问哪些密钥以及如何使用这些密钥。访问控制和密钥策略可以确保只有授权的用户或系统可以访问密钥。

密钥体系的复杂性取决于应用的安全需求和使用的加密算法。在实际应用中,有时会使用密钥管理系统(Key Management System,KMS)来自动化和简化密钥的生成、分发、存储和管理。密钥管理是保护信息安全的重要组成部分,因此需要特别关注以确保数据的机密性和完整性。

 

在密钥体系中,Fixed Key、MK/SK和DUKPT是常见的术语,具有以下含义:

  1. Fixed Key(固定密钥):这是一种使用单个固定密钥进行加密和解密的密钥管理方案。固定密钥体系中,所有使用该密钥的加密操作都完全相同。这种方案的优点是简单易用,但缺点是如果密钥泄漏或被破解,整个系统的安全性将受到威胁。

  2. MK/SK(Master Key/Session Key):MK/SK是一种层次式的密钥管理方案,其中包含一个主密钥(Master Key)和会话密钥(Session Key)。主密钥用于生成临时的会话密钥,而会话密钥用于加密通信或数据。每个会话都使用一个独立的会话密钥,从而提高了系统的安全性。这种方案的优点是提供更好的密钥管理和更高的安全级别。

  3. DUKPT(Derived Unique Key Per Transaction):DUKPT是一种基于派生密钥的密钥管理方案。它使用主密钥派生出唯一的会话密钥,并且每个交易都使用不同的会话密钥进行加密。DUKPT通过使用不同的密钥来提高系统的安全性和追踪能力。每个会话密钥只在一个交易中使用,从而减少了密钥泄漏的风险。这种方案广泛应用于金融领域中的支付终端设备等场景。

总结起来,Fixed Key是一种简单的密钥管理方案,MK/SK是一种层次式的密钥管理方案,而DUKPT是一种基于派生密钥的密钥管理方案。每种方案都有其独特的优点和缺点,具体选择应根据安全需求和应用场景来决定。

在密钥体系中,以下是常见术语的解释:

  • PIK(PIN Encryption Key):用于加密和解密用户的个人识别号码(PIN)的密钥。PIK通常与每个帐户关联,用于保护帐户持有人的敏感信息。

  • DEK(Data Encryption Key):用于加密和解密数据的密钥。DEK可以用于保护存储在数据库、文件系统或传输过程中的数据。

  • MAK(Message Authentication Key):用于签名和验证消息完整性的密钥。MAK可用于确保数据在传输过程中没有被篡改或损坏。

  • KSN(Key Serial Number):密钥序列号是一种用于唯一标识加密设备或密钥的值。它通常与加密操作相关联,以确保使用正确的密钥。

  • IPEK(Issuer Public Encryption Key):发卡行公共加密密钥,用于生成分发给终端设备的工作密钥。IPEK允许发卡行与终端设备之间进行安全的密钥交换。

  • TR31(ANS X9.24 Part 1):是美国国家标准与技术研究所(NIST)发布的规范,用于定义密钥管理和密钥交换的协议。TR31通过协商和分发密钥来确保安全通信和数据保护。

TR31 Key Block是一种远程导入密钥的方法(报文规范格式),可以导入MK/SK中的MK、PIK、MAK,或DUKPT中的IPEK。KBPK用于对Key Block加密,终端与后台具有相同的KBPK。 

相关文章:

密码算法、密钥体系---安全行业基础篇1

一、密码算法 密码算法是一种数学和计算方法,用于保护数据的机密性和安全性。不同的密码算法使用不同的数学原理和技术来加密和解密数据。以下是一些常见的密码算法类型: 1. **对称密码算法:** 特点:相同的密钥用于加密和解密数…...

Java工具类记录

HTML转word 相关依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency>import org.apache.poi.poifs.filesystem.DirectoryEntry; import org.apache.poi…...

DVWA靶场搭建

目录 配置环境&#xff1a; 1、将下载好的压缩包放置php的WWW根目录下 2、改文件配置 3、查看mysql用户名和密码&#xff0c;将其修改值靶场配置文件中 4、完成后我们就可以在浏览器输入127.0.0.1/dvwa进入靶场 测试XSS注入&#xff1a; 配置环境&#xff1a; githhub下…...

Uniapp笔记(二)uniapp语法1

一、本节项目预备知识 1、效果演示 2、常见组件 1、view组件 视图容器&#xff0c;它类似于传统html中的div&#xff0c;用于包裹各种元素内容。 2、swiper组件 swiper是滑动视图容器&#xff0c;经常看到的轮播图就是通过它来完成的 swiper-item是swiper子组件&#xf…...

【1day】PHPOK cms SQL注入学习

目录 一、漏洞描述 二、资产测绘 三、漏洞复现 四、漏洞修复 一、漏洞描述 PHPOK CMS是一个基于PHP语言开发的开源内容管理系统(CMS)。它提供了一个强大的平台,用于创建和管理网站内容。PHPOK CMS具有灵活的模块化架构,可以根据网站的需求进行定制和扩展。PHPOK CMS存…...

线程同步与互斥

目录 前言&#xff1a;基于多线程不安全并行抢票 一、线程互斥锁 mutex 1.1 加锁解锁处理多线程并发 1.2 如何看待锁 1.3 如何理解加锁解锁的本质 1.4 CRAII方格设计封装锁 前言&#xff1a;基于线程安全的不合理竞争资源 二、线程同步 1.1 线程同步处理抢票 1.2 如何…...

电子词典dictionary

一、项目要求&#xff1a; 1.登录注册功能&#xff0c;不能重复登录&#xff0c;重复注册。用户信息也存储在数据库中。 2.单词查询功能 3.历史记录功能&#xff0c;存储单词&#xff0c;意思&#xff0c;以及查询时间&#xff0c;存储在数据库 4.基于TCP&#xff0c;支持多客户…...

【python爬虫】10.指挥浏览器自动工作(selenium)

文章目录 前言selenium是什么怎么用设置浏览器引擎获取数据解析与提取数据自动操作浏览器 实操运用确认目标分析过程代码实现 本关总结 前言 上一关&#xff0c;我们认识了cookies和session。 分别学习了它们的用法&#xff0c;以及区别。 还做了一个项目&#xff1a;带着小…...

QT文件对话框,将标签内容保存至指定文件

一、主要步骤 首先&#xff0c;通过getSaveFileName过去想要保存的文件路径及文件名&#xff0c;其次&#xff0c;通过QFile类实例化一个文件对象&#xff0c;再读取文本框中的内容&#xff0c;最后将读取到的内容写入到文件中&#xff0c;最后关闭文件。 1.txt即为完成上述操作…...

C#,《小白学程序》第十一课:阶乘(Factorial)的计算方法与代码

1 文本格式 /// <summary> /// 阶乘的非递归算法 /// </summary> /// <param name"a"></param> /// <returns></returns> private int Factorial_Original(int a) { int r 1; for (int i a; i > 1; i--) { …...

MySQL 数据库常用命令大全(完整版)

文章目录 1. MySQL命令2. MySQL基础命令3. MySQL命令简介4. MySQL常用命令4.1 MySQL准备篇4.1.1 启动和停止MySQL服务4.1.2 修改MySQL账户密码4.1.3 MySQL的登陆和退出4.1.4 查看MySQL版本 4.2 DDL篇&#xff08;数据定义&#xff09;4.2.1 查询数据库4.2.2 创建数据库4.2.3 使…...

【数学】【书籍阅读笔记】【概率论】应用随机过程概率论模型导论 by Sheldon M.Ross 第一章 概率论引总结与习题题解 【更新中】

文章目录 前言1 第一章 概率论引论 总结1.1 样本空间与事件1.2 定义在事件上的概率1.3 条件概率1.4 独立事件 2 一些有用的重要结论/公式/例题3 重要例题例 1.11 3 习题题解题1题2 4 习题总结 前言 1 第一章 概率论引论 总结 第一章从事件的角度引出样本空间、事件、概率的基本…...

posexplode函数实战总结

目录 1、建表和准备数据 2、炸裂实践 3、错误炸裂方式 4、当字段类型为string&#xff0c;需要split一下 对单列array类型的字段进行炸裂时&#xff0c;可以使用lateral view explode。 对多列array类型的字段进行炸裂时&#xff0c;可以使用lateral view posexplode。 1…...

QTday3(对话框、发布软件、事件处理核心机制)

一、Xmind整理&#xff1a; 二、上课笔记整理&#xff1a; 1.消息对话框&#xff08;QMessageBox&#xff09; ①基于属性版本的API QMessageBox::QMessageBox( //有参构造函数名QMessageBox::Icon icon, //图标const Q…...

el-date-picker限制选择的时间范围

<el-date-pickersize"mini"v-model"dateTime"value-format"yyyy-MM-dd HH:mm:ss"type"datetimerange"range-separator"~"start-placeholder"开始日期"end-placeholder"结束日期":picker-options&quo…...

Scala中的Actor模型

Scala中的Actor模型 概念 Actor Model是用来编写并行计算或分布式系统的高层次抽象&#xff08;类似java中的Thread&#xff09;让程序员不必为多线程模式下共享锁而烦恼。Actors将状态和行为封装在一个轻量的进程/线程中&#xff0c;但是不和其他Actors分享状态&#xff0c;…...

Java使用pdfbox将pdf转图片

前言 目前比较主流的两种转pdf的方式&#xff0c;就是pdfbox和icepdf&#xff0c;两种我都尝试了下&#xff0c;icepdf解析出来有时候会出现中文显示不出来&#xff0c;网上的解决方式又特别麻烦&#xff0c;不是安装字体&#xff0c;就是重写底层类&#xff0c;所以我选择了p…...

大规模场景下对Istio的性能优化

简介 当前istio下发xDS使用的是全量下发策略&#xff0c;也就是网格里的所有sidecar(envoy)&#xff0c;内存里都会有整个网格内所有的服务发现数据。这样的结果是&#xff0c;每个sidecar内存都会随着网格规模增长而增长。 Aeraki-mesh aeraki-mesh项目下有一个子项目专门用来…...

数字化新零售平台系统提供商,门店商品信息智慧管理-亿发进销存

传统的批发零售业务模式正面临着市场需求变化的冲击。用户日益注重个性化、便捷性和体验感&#xff0c;新兴的新零售模式迅速崛起&#xff0c;改变了传统的零售格局。如何在保持传统业务的基础上&#xff0c;变革发展&#xff0c;成为了业界亟需解决的问题。 在这一背景下&…...

postgresql-窗口函数

postgresql-窗口函数 简介窗口函数的定义分区选项&#xff08;PARTITION BY&#xff09;排序选项&#xff08;ORDER BY&#xff09;窗口选项&#xff08;frame_clause&#xff09; 聚合窗口函数排名窗口函数演示了 CUME_DIST 和 NTILE 函数 取值窗口函数 简介 常见的聚合函数&…...

ARMv8内存访问指令STLUR与STLXP详解

1. ARMv8内存访问指令概述 在ARMv8架构中&#xff0c;内存访问指令构成了处理器与内存系统交互的基础设施。作为RISC架构的典型代表&#xff0c;ARMv8通过精简但功能明确的指令集实现了高效的内存操作。其中存储(Store)类指令负责将寄存器数据写入内存&#xff0c;而根据不同的…...

如何用MediaCrawler实现7大平台数据采集与追踪:从零到一的完整实战指南

如何用MediaCrawler实现7大平台数据采集与追踪&#xff1a;从零到一的完整实战指南 【免费下载链接】MediaCrawler 小红书笔记 | 评论爬虫、抖音视频 | 评论爬虫、快手视频 | 评论爬虫、B 站视频 &#xff5c; 评论爬虫、微博帖子 &#xff5c; 评论爬虫、百度贴吧帖子 &#x…...

ReTerraForged终极指南:5步打造专业级Minecraft地形生成体验

ReTerraForged终极指南&#xff1a;5步打造专业级Minecraft地形生成体验 【免费下载链接】ReTerraForged TerraForged for modern MC versions 项目地址: https://gitcode.com/gh_mirrors/re/ReTerraForged ReTerraForged是一款专为现代Minecraft版本设计的革命性地形生…...

国产GPU与CAD软件兼容性认证实战:从驱动优化到Linux部署全解析

1. 项目概述&#xff1a;一次“硬核”的国产化适配实战最近&#xff0c;我们团队完成了一项在工业软件领域颇具里程碑意义的兼容性认证工作——摩尔线程GPU与中望二三维CAD Linux版产品。这听起来可能像是一则普通的官方新闻稿&#xff0c;但背后涉及的&#xff0c;是从硬件驱动…...

P15906 [TOPC 2024] Business Magic 题解

P15906 [TOPC 2024] Business Magic Link: https://www.luogu.com.cn/problem/P15906 题目描述 沿街有 nnn 家商店&#xff0c;按从近到远的顺序编号为 111 到 nnn。上个月&#xff0c;商店 kkk 的净利润为 rkr_krk​。如果 rkr_krk​ 为正&#xff0c;表示盈利 rkr_krk​ 美…...

瑞芯微RK3568与RK3399深度对比:选型指南与实战解析

1. 项目概述&#xff1a;一次关于“芯”的深度对话 最近在选型嵌入式开发板时&#xff0c;很多朋友&#xff0c;尤其是刚入行或准备从传统方案转向国产平台的朋友&#xff0c;都会在瑞芯微的RK3568和RK3399这两颗明星处理器之间纠结。手头正好有迅为基于这两颗芯片的开发板&…...

终极指南:如何用Mousecape轻松定制macOS鼠标指针,打造个性化桌面体验

终极指南&#xff1a;如何用Mousecape轻松定制macOS鼠标指针&#xff0c;打造个性化桌面体验 【免费下载链接】Mousecape Cursor Manager for OSX 项目地址: https://gitcode.com/gh_mirrors/mo/Mousecape 厌倦了macOS系统千篇一律的白色鼠标指针&#xff1f;想要为你的…...

告别MPU6050例程!ATK-IMU901与Arduino串口通信的3个关键避坑点

ATK-IMU901与Arduino串口通信的实战避坑指南 当你从MPU6050切换到ATK-IMU901时&#xff0c;可能会发现原本顺畅的代码突然"罢工"了。这不是你的错——这两款IMU模块在设计理念上存在本质差异。本文将带你深入理解ATK-IMU901的通信机制&#xff0c;避开三个最常见的移…...

终极指南:使用Play Integrity API Checker保护你的Android应用安全

终极指南&#xff1a;使用Play Integrity API Checker保护你的Android应用安全 【免费下载链接】play-integrity-checker-app Get info about your Device Integrity through the Play Intergrity API 项目地址: https://gitcode.com/gh_mirrors/pl/play-integrity-checker-a…...

Perplexity翻译查询功能进阶指南(企业级多语种实时校验工作流揭秘)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Perplexity翻译查询功能的核心定位与企业价值 Perplexity的翻译查询功能并非传统意义上的词句级机器翻译工具&#xff0c;而是深度集成于其AI推理引擎中的语义理解增强模块。它以“上下文感知翻译”为核心范式…...