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

《系统架构设计师教程(第2版)》第4章-信息安全技术基础知识-02-信息加密技术

文章目录

  • 1. 信息加密技术
    • 1.1 数据加密
    • 1.2 对称密钥加密算法
      • 1)数据加密标准(DES)
      • 2)三重DES(Triple-DES)
      • 3)国际数据加密算法(IDEA)
      • 4)高级加密标准(AES)
    • 1.3 非对称密钥加密算法
      • 1)概述
      • RSA算法
  • 2. 密钥管理技术
    • 2.1 秘钥的使用控制
      • 1)密钥标签
      • 2)控制矢量
    • 2.2 密钥的分配
      • 1)获得共享秘钥的方式
    • 2.3 公钥加密体制的密钥管理
      • 1)公开发布
      • 2)公用目录表
      • 3)公钥管理机构
      • 4)公钥证书
    • 2.4 公钥加密分配单钥密码体制的密钥

本章对应教材:4.4信息加解密技术、4.5 密钥管理技术

1. 信息加密技术

1.1 数据加密

  • 作用:防止未经授权的用户访问敏感信息的手段
  • 密码学(Cryptography):研究数据加密的科学
  • 加密过程
    • 发送端把明文P 用加密算法E 和密钥 K 加密(即 密文C=E(K,P))
    • 接收端利用解密算法D 和密钥K 对C 解密得到明文P(即P=D(K,C)
    • 这里加/解密函数E 和D 是公开的,而密钥K是秘密的

在这里插入图片描述

1.2 对称密钥加密算法

  • 概述:加密密钥和解密密钥是相同的,称为共享密钥算法或对称密钥算法

1)数据加密标准(DES)

  • Data Encryption Standard
  • 制定:1977年1月,美国国家安全局(National Security Agency) 根据IBM的专利技术Lucifer制定了DES。
  • 加密过程:
    • 明文被分成64位的块
    • 对每个块进行19次变换
      • 其中16次变换由56位密钥的不同排列形式控制
      • 而IBM使用128为秘钥,而DES减少了秘钥长度
    • 最后产生64位的密文块

2)三重DES(Triple-DES)

  • 概述:两把密钥对报文做三次 DES加密,克服了DES密钥长度较短的缺点
  • 秘钥:112位
    • 因为三次加密中,第一层和第三层秘钥相同,因此秘钥长度 56x2=112位 (而不是56x3)
    • 若只使用两层加密,第2层DES不安全,它对一种称为“中间可遇”的密码分析攻击极为脆弱
  • 算法的步骤:
    1. 用密钥 K1 进行 DES加密
    2. 用K2 对步骤(1)的结果进行 DES解密。
    3. 对步骤(2)的结果使用密钥 K 1 进行DES 加密。

3)国际数据加密算法(IDEA)

  • International Data Encryption Algorithm
  • 秘钥:128位
  • 步骤:把明文分成64位的块,进行8轮迭代加密
  • 优点:可以用硬件或软件实现、比DES快

4)高级加密标准(AES)

  • 全称 Advanced Encryption Standard
  • 秘钥:支持支持128、192、256
  • 可以通过软件或硬件实现。

1.3 非对称密钥加密算法

1)概述

  • 概念:如题,加密密钥和解密密钥是不同的

  • 满足的条件

    • D( E ( P ) ) = P
    • 不能由E导出D
    • 选择明文攻击不能破解E

    明文攻击:选择任意明文-密文对以确定未知的密钥

  • 加密传输和签名

    • 用公钥加密,私钥解密,可实现保密通信
    • 用私钥加密,公钥解密,可实现数字签名

RSA算法

  • 概念:RSA(Rivest Shamir and Adleman) 是一种公钥加密算法
  • 基于大素数分解的困难性

    具体方法不用考虑,教材写的错误很多

2. 密钥管理技术

2.1 秘钥的使用控制

两个用户(主机、进程、应用程序)在进行保密通信时,必须拥有一个共享的并且经常更新的秘密密钥

秘钥控制技术:

1)密钥标签

  • DES 的密钥控制
    • 将DES的8个校验位作为控制这个密钥的标签
      • 前3位分别代表了该密钥的不:主/会话密钥、加密、解密
    • 缺陷:由于长度限制,且须经解密方能使用,带来了一定的不便性

2)控制矢量

  • 概念:
    • 用若干字段说明秘钥在一定环境下,是否允许被使用
    • 由秘钥中心产生,并加入秘钥中
    • 其长度可变

2.2 密钥的分配

1)获得共享秘钥的方式

  • 方法一(人工发送)

    • 秘钥选取:A 选取
    • 发送:A ==> B
    • 媒介:物理手段发送
    • 问题:网络中秘钥数目过多

    如网络中N个用户都要求支持加密服务,则每一对用户都需要一个共享秘钥,数目将达到 N(N-1)/2

  • 方法二(人工发送)

    • 秘钥选取:第3方选取密钥
    • 发送:第三方 ===> A、B
    • 媒介:物理手段发送
    • 问题:同上
  • 方法三

    • 秘钥选取:A选取
    • 发送:A <用已有秘钥加密(新密钥)> ==> B
  • 问题:

    • B一旦获得秘钥,则可获得后期秘钥。
    • 网络中秘钥数目过多(同上)
  • 方法四:

    • 秘钥选取:由秘钥中心(KDC)选取
    • 发送:
      • KDC == 保密通道A ==> A
      • KDC == 保密通道B ==> B
    • 分配过程
      • KDC有一个共享密钥,即主密钥
      • 通过主密钥分配给每对用户会话密钥
      • 通信结束后立会话秘钥立即销毁
    • KDC的分层结构
      • 每个小范围建立一个本地KDC
      • 不同范围间使用一个全局KDC

2.3 公钥加密体制的密钥管理

1)公开发布

  • 概念:指用户将自己的公钥发给每一其他用户,或向某一团体广播
  • 缺点:任何人都可以伪造密钥公开发布

2)公用目录表

  • 概念:一个公用的公钥动态目录表,由某个可信的实体或组织)承担该共用目录表的建立、维护以及公钥的分布等
  • 过程:
    • 管理员
      • 为每个用户在目录表中建立一个目录
      • 每个目录包括:用户名、用户的公开钥
      • 定期公布和更新目录表
    • 用户
      • 使用合法方式向管理者注册自己的公钥
      • 可通过合法手段更新自己的公钥
  • 缺点:管理员秘密钥一旦被攻击者获取,所有用户将面临被假冒的危险

3)公钥管理机构

  • 与公用目录的区别
    • 由秘钥管理机构维护动态公钥目录
  • 过程:
    • 每一个用户都知道管理机构的公钥
    • A向管理机构发出请求
    • 管理机构使用私钥加密,发送给A
    • A 使用管理机构的公钥解密
  • 缺点
    • 管理机构容易成为瓶颈
    • 管理机构的公钥目录容易成为攻击目标

4)公钥证书

  • 证书形式:CA=ESKCA[T,IDA,PKA]

    • C A则是用户 A 产生的证书
    • ESKCA是 CA 的秘密钥
    • T是当前的时戳
    • IDA是用户A 的身份
    • PKA是 A 的公钥,
  • 解决公钥中心成为瓶颈的问题:

    • 用户将自己的公钥通过公钥证书发给另一用户
    • 而接受方则可用 C A的公钥 PKCA对证书加以验证

    如是,通过证书交换用户之间的公钥而无须再与公钥管理机构联系,从而避免了由统一机构管理所带来的不便和安全隐患。

2.4 公钥加密分配单钥密码体制的密钥

  • 公钥加密体制的加密速度比较慢,适合单钥密码体制的密钥分配

  • 建立共享会话密钥的步骤

    • A 将用B 的公钥加密得到的身份IDA和一个用于唯一标志这个业务的一次性随机数N1,发往 B
    • 预使A 确定对方是B, 则 B 用 A 的公钥加密N1和另一新产生的随机数N2 因为只有B 能解读①中的加密。
    • A用 B 的公钥 PKB对N2 加密后返回给 B , 以使B 相信对方确是A。
    • A 将 M=EPKB[ESKA[KS]] 发送给B , 其中KS为会话密钥,用 B 的公开钥加密是为保证只有B 能解读加密结果,用 A 的秘密钥加密是保证该加密结果只有A 能发送。
    • B 以DPKA[DSKB[M]]恢复会话密钥。
  • 优点:

    • 保密性和认证性均非常强
    • 既可防止被动攻击,又可防止主动攻击

在这里插入图片描述

相关文章:

《系统架构设计师教程(第2版)》第4章-信息安全技术基础知识-02-信息加密技术

文章目录 1. 信息加密技术1.1 数据加密1.2 对称密钥加密算法1&#xff09;数据加密标准&#xff08;DES)2&#xff09;三重DES&#xff08;Triple-DES&#xff09;3&#xff09;国际数据加密算法&#xff08;IDEA&#xff09;4&#xff09;高级加密标准&#xff08;AES&#xf…...

Leetcode 404:左叶子之和

给定二叉树的根节点 root &#xff0c;返回所有左叶子之和。 思路&#xff1a;遍历树&#xff0c;寻找左叶子节点&#xff1b; 如果判断是左叶子节点&#xff0c;就更新sum。 public static int sumOfLeftLeaves(TreeNode root){int sum0;sumcompute(root,sum);return sum;}/…...

Keil问题解决:结构体数组初始化,初始化后的值不是目标值

省流&#xff1a;使用的编译器为compiler version 6&#xff0c;切换为compiler version 5 如果缺少编译器&#xff0c;请参考&#xff1a;Keil手动安装编译器V5版本 结构体定义&#xff1a; typedef struct _TASK_COMPONENTS {uint8_t Run; // 程序运行标…...

C++set关联式容器

Cset 1. 关联式容器 vector、list、deque、forward_list(C11)等STL容器&#xff0c;其底层为线性序列的数据结构&#xff0c;里面存储的是元素本身&#xff0c;这样的容器被统称为序列式容器。而map、set是一种关联式容器&#xff0c;关联式容器也是用来存储数据的&#xff0…...

Celery Redis 集群版连接和PyCharm启动配置

目录 使用Redis cluster版作为broker原因 PyCharm配置 使用Redis cluster版作为broker 在celery5及其之前版本&#xff0c;需要配置如下才可行 celery_app.conf.update( broker_transport_options{“global_keyprefix”: “{celery}:”}, ) 原因 https://github.com/celery/…...

「AIGC算法」readLink实现url识别pdf、网页标题和内容

本文主要介绍AIGC算法,readLink实现url识别pdf、html标题和内容 一、设计思路 识别url是pdf或者网页网页处理逻辑,使用cheerio解析网页PDF处理逻辑,使用pdf-parse解析PDF文件自定义的函数来提取标题和内容二、可执行核心代码 const express = require("express")…...

Vue3+ts(day06:路由)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes 觉得有帮助的同学&#xff0c;可以点心心支持一下哈&#xff08;笔记是根据b站上学习的尚硅谷的前端视频【张天禹老师】&#xff0c;记录一下学习笔记&#xff0c;用于自己复盘&#xff0c;有需要学…...

springboot集成dubbo实现微服务系统

目录 1.说明 2.示例 3.总结 1.说明 dubbo官网&#xff1a;https://cn.dubbo.apache.org/zh-cn/ Apache Dubbo 是一款 RPC 服务开发框架&#xff0c;用于解决微服务架构下的服务治理与通信问题&#xff0c;支持多种语言&#xff0c;官方提供了 Java、Golang 等多语言 SDK 实…...

idea使用gitee基本操作流程

1.首先&#xff0c;每次要写代码前&#xff0c;先切换到自己负责的分支 点击签出。 然后拉取一次远程master分支&#xff0c;保证得到的是最新的代码。 写完代码后&#xff0c;在左侧栏有提交按钮。 点击后&#xff0c;选择更新的文件&#xff0c;输入描述内容&#xff08;必填…...

Docker容器里面有什么东西?

2024年5月15日&#xff0c;周三下午 Docker 容器内部包含了一个运行的应用程序及其依赖环境。当你创建一个 Docker 容器时&#xff0c;你可以指定容器应该运行哪个镜像。这个镜像是由一系列层组成的&#xff0c;每一层包含了一些文件和目录。当你运行这个镜像时&#xff0c;Doc…...

vue基础+高级用法

一、vue基础用法 mvvm的了解/认知 语义化模板mvc - model view controllermvvm - model view view-model vue是如何利用mvvm思想进行开发 双向数据绑定 花括号&#xff0c;构建了数据与视图的双向绑定通过视图绑定事件&#xff0c;来处理数据 生命周期-vue示例 建立&…...

鸿蒙应用布局ArkUI【基础运用案例】

布局基础运用案例 平级导航的复合网格视图 平级导航的复合网格视图常出现在同时展示多种不同内容的界面。 例如&#xff0c;市场类应用作为典型的平级导航&#xff0c;其首页不同板块采用了不同布局能力。 标题栏与搜索栏&#xff1a;因元素单一、位置固定在顶部&#xff0c…...

GD32F103RCT6/GD32F303RCT6-UCOSIII底层移植(1)工程建立

本文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发 后续项目主要在下面该专栏中发布&#xff1a; 手把手教你嵌入式国产化_不及你的温柔的博客-CSDN博客 感兴趣的点个关注收藏一下吧! 电机驱动开发可以跳转&#xff1a; 手把手教你嵌入式国产化-实战项目-无刷电机驱动&am…...

在本地设备上配置 Git 忽略特定文件

在本地设备上配置 Git 忽略特定文件 在日常的 Git 使用中&#xff0c;有时我们希望某些文件只在本地设备上被忽略&#xff0c;而不影响其他团队成员或设备。这篇博客将介绍如何在特定设备上配置 Git 忽略规则&#xff0c;使得一个文件不会被提交。 背景 通常&#xff0c;我们…...

cin.ignore()函数和stoll函数

cin.ignore()函数 cin.ignore() 是一个非常实用的函数&#xff0c;主要用于控制输入流 cin 的行为 cin.ignore(int n 1, char delimiter EOF); n&#xff1a;一个整数参数&#xff0c;表示要忽略的字符数量。默认值是1&#xff0c;意味着只忽略下一个字符。delimiter&#x…...

win11快速安装mysql数据库系统

win11快速安装mysql数据库系统 1、下载 1.1 打开官网 1.2 向下滚动页面 1.3 进入下载选项 1.4 下载8.0.4 LTS 1.5 开始下载 1.6 下载中 2、解压 大家注意&#xff0c;此时解压后目录是没有data目录的。 3、数据库初始化 3.1 管理员身份打开CMD 开始菜单上&#xff0c;输入…...

C# WinForm —— 21 RichTextBox 使用

1. 加载文件到控件中 加载文件时&#xff0c;要设置文件的路径和类型RichTextBoxStreamType&#xff0c;文件类型包含&#xff1a; RichText 0&#xff1a;富文本格式&#xff08;RTF&#xff09;流PlainText 1&#xff1a;纯文本流对象链接和嵌入&#xff08;OLE&#xff…...

【数据结构】堆(超详细)

文章目录 前言堆的概念及结构堆的实现堆的向下调整算法&#xff08;建小堆为例&#xff09;堆的向上调整算法&#xff08;建小堆为例&#xff09;堆的初始化销毁堆堆的插入堆的删除(规定删堆顶的数据)取堆顶元素判断堆是否为空获取堆的个数 完整代码&#xff08;包括测试代码&a…...

常用正则 JS 持续更新

应用版本号正则验证 正则判断版本号&#xff08;如&#xff1a;1.2.3 或 1.2.3.4&#xff09;&#xff0c;不允许出现 0.x.x&#xff1b;01.x.x; x.0x.x; x.00.x&#xff1b; x.x.00; x.x.0x/ ^ ([ 1-9 ] \d | [ 1-9 ])( . ([ 1-9 ] \d | \d )) {2,3} $ /0-10 保留一位小数的数…...

YOLO v6 iou_loss dfl_loss一直为0

Question img record infomation path is:…/mydata/images.train_cache.json Train: Final numbers of valid images: 1248/ labels: 1248. 0.1s for dataset initialization. img record infomation path is:…/mydata/images.val_cache.json Convert to COCO format 100%|█…...

快速体验WAN2.2文生视频:ComfyUI预置工作流,2分钟生成测试视频

快速体验WAN2.2文生视频&#xff1a;ComfyUI预置工作流&#xff0c;2分钟生成测试视频 1. 为什么选择WAN2.2文生视频工作流 如果你正在寻找一个简单易用、效果出色的文生视频工具&#xff0c;WAN2.2文生视频工作流绝对值得一试。这个预置在ComfyUI中的工作流&#xff0c;让视…...

C++的std--allocator_traits分配器特性与自定义内存管理的适配

C标准库中的内存管理一直是个既基础又复杂的主题。std::allocator_traits作为C11引入的分配器特性模板&#xff0c;为自定义内存管理提供了统一的适配接口&#xff0c;让开发者能在不重写整套分配逻辑的情况下&#xff0c;灵活扩展内存管理策略。无论是实现高性能内存池&#x…...

技能大赛备赛避坑指南:搞定软件测试五大任务(功能/自动化/性能/单元/接口)的常见错误与调试技巧

技能大赛备赛避坑指南&#xff1a;软件测试五大任务实战排错手册 参加职业院校技能大赛软件测试赛项的师生们&#xff0c;往往在备赛过程中遇到各种"坑"&#xff1a;脚本突然报错、环境配置冲突、报告格式被扣分…这些问题看似琐碎&#xff0c;却可能直接影响比赛成绩…...

SmallThinker-3B-Preview赋能Java后端:智能客服系统数据库设计

SmallThinker-3B-Preview赋能Java后端&#xff1a;智能客服系统数据库设计 最近在做一个Java后端的智能客服项目&#xff0c;核心是要接入一个轻量级的AI模型——SmallThinker-3B-Preview。模型选好了&#xff0c;代码逻辑也搭得差不多了&#xff0c;但一到数据库设计这块&…...

Rust Web开发:ActixWeb实战指南

1. 为什么选择ActixWeb进行Rust Web开发 我第一次接触ActixWeb是在三年前的一个电商项目里&#xff0c;当时团队需要处理每秒上万次的库存查询请求。测试了多个Rust框架后&#xff0c;ActixWeb凭借其卓越的性能表现脱颖而出——在同等硬件条件下&#xff0c;它的QPS&#xff08…...

Nunchaku FLUX.1-dev GPU算力优化:TensorRT加速推理实测对比

Nunchaku FLUX.1-dev GPU算力优化&#xff1a;TensorRT加速推理实测对比 如果你正在使用Nunchaku FLUX.1-dev模型生成图片&#xff0c;可能会发现一个问题&#xff1a;生成速度不够快&#xff0c;特别是当你想批量出图或者尝试不同参数时&#xff0c;等待时间有点长。 今天我…...

FeignClient调用接口参数为null?可能是这个阿里规范在作怪

FeignClient参数丢失陷阱&#xff1a;从布尔类型序列化到企业级解决方案 微服务架构下&#xff0c;FeignClient作为声明式HTTP客户端&#xff0c;其简洁的API设计让远程调用如同本地方法般自然。但当你的DTO对象中那个精心设计的isActive字段在服务端始终显示为null时&#xff…...

认知内耗:在亚马逊,为何品牌名内部的“关键词”正在相互厮杀

在亚马逊的品牌丛林中&#xff0c;最隐蔽的悲剧莫过于&#xff1a;你精心构思的品牌名&#xff0c;其内部的各个组成部分&#xff08;如“欧文斯”、“康宁”、“玻璃纤维”&#xff09;&#xff0c;并未协同指向你&#xff0c;反而各自激活了消费者心智中其他更强大品牌的“认…...

springboot+vue基于web的校园电动车短租系统的设计系统

目录同行可拿货,招校园代理 ,本人源头供货商系统功能分析用户管理模块车辆管理模块租赁业务模块安全与风控模块统计与报表模块技术实现要点项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作同行可拿货,招校园代理 ,本人源头供货商…...

Python智能内存管理策略深度评测(CPython 3.9–3.12全版本横评):谁真正降低了47.6% OOM风险?

第一章&#xff1a;Python智能内存管理策略深度评测总览Python 的内存管理并非由开发者手动控制&#xff0c;而是依托于一套高度集成的智能机制——包括引用计数、循环垃圾回收器&#xff08;gc 模块&#xff09;以及内存池&#xff08;pymalloc&#xff09;三层协同体系。这种…...