CISSP学习笔记:密码学与对称加密算法

news2024/11/29 12:29:59

第六章 密码学与对称加密算法

6.1 密码学历史上的里程碑

6.1.1 凯撒密码

简单的将字母表中的每个字母替换成其后的三个字母,是单一字母的替代置换密码

6.1.2 美国内战

美国内战使用词汇替代和置换的复杂组合,从而试图破坏敌人的破译企图

6.1.3 Ultra与Enigma

6.2 密码学基础

6.2.1 密码学的目标

密码系统基本目标: 机密性、完整性、身份认证和不可否认性

  • 机密性
    • 机密性:确保存储中或在传输中保持秘密状态
    • 对称秘钥密码:密码系统中所有用户都使用一个共享的秘钥
    • 公钥密码系统: 每个用户都能够使用公钥和私钥的组合密码
  • 完整性
    • 完整性:确保数据在传输过程中不背修改
    • 完整性通过传输消息时创建的数字签名摘要来强制实施,公钥和私钥密码都能实施完整性
  • 身份认证
    • 身份认证: 声明的系统用户身份进行验证,是密码系统的主要功能
  • 不可否认性
    • 不可否认性为接受者提供了担保,保证消息确实来自发送者而不是来自伪装成发送者的人
    • 秘密秘钥(对称秘钥)密码系统不提供不可否认性
    • 公钥(非对称秘钥)密码系统提供不可否认性

6.2.2密码学概念

  • 消息发送者使用密码学算法将明文消息加密为密文消息,使用字母C表示
  • 创建和实现秘密编码和密码的技术被称为密码术
  • 密码术和密码分析学被成为密码学
  • 编码或解码在硬件或软件商的具体操作被成为密码系统

6.2.3 密码学的数学原理

  • 二进制数学:
  • 逻辑运算: OR、AND、NOT、XOR、模函数、单向函数、随机数、零知识证明、分割知识、工作函数
  • 分割知识:单个解决方案中包含职责分离和两人控制被称为分割知识
  • 零知识证明:零知识证明就是既能充分证明自己是某种权益的合法拥有者,又不把有关的信息泄露出去——即给外界的“知识”为“零”。证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。
  • 工作函数:从成本和/或时间方面来度量所有努力,就可以度量密码学系统的强度

6.2.5 密码

  • 编码与密码:
    • 编码:密码学系统中标识词汇或短语的符号
    • 密码:隐藏消息的真实含义
  • 换位密码:使用某种加密算法重新排列明文消息中的字母,从而形成密文消息
  • 替代密码:使用加密算法将明文消息中的每一个字符或比特都替换为不同的字符、如凯撒密码
  • 一次性填充密码:对明文消息的每个字母都使用一个不同的字母表,极为强大的替代密码,一个不可破解的加密方案必须满足如下要求:
    1. 加密秘钥必须随机生成
    2. 一次性填充必须进行物理保护
    3. 每个一次性填充必须只使用一次
    4. 秘钥必须至少与被加密的消息一样长
    5. 一次性填充缺点:只可用于短消息、分发和保护需要冗长的秘钥
  • 分组密码:按消息的"组块"或分组进行操作,并且对整个消息分组同时应用加密算法
  • 流密码:对消息中的每一个字符或每一位操作,每次只处理一个/以为,如凯撒密码
  • 混淆与扩散:
    • 混淆:攻击者不能通过继续修改明文和分析产生的密文来确定秘钥
    • 扩展:明文改变导致多种变化时,这个变化扩散到整个密文中

6.3 现代密码学

6.3.1 密钥

  • 现代密码系统并不依赖其算法的安全性
  • 现代密码系统不依赖于保密的算法
  • 现代密码学系统依赖具体的用户或用户组专用的一个或多个秘钥

6.3.2 对称秘钥算法

  • 对称秘钥依赖一个共享的加密秘钥,该秘钥会分发给所有参与通信的成员
  • 对称秘钥也被成为秘密秘钥密码学或私有秘钥密码学
  • 对称秘钥的弱点
    1. 秘钥分发是一个问题: 对称秘钥建立通信之前,通信参与必须具备一个安全的交换秘钥的方法
    2. 对称秘钥密码学并未实现不可否认性
    3. 这种算法不可扩充
    4. 秘钥必须经常更新
  • 对称秘钥密码可扩展性问题:n个通信方之间完全连接需要的秘钥总数为:n*(n-1)/2

6.3.2 非对称秘钥算法

  • 非对称秘钥算法也被成为公钥算法,每个用户都有公钥和私钥
  • 非对称秘钥的优点:
    1. 新增用户只需要生成一对公钥-私钥对
    2. 从非对称系统中更容易删除用户
    3. 只有在用户的私钥被破坏时,才需要进行秘钥重建
    4. 非对称秘钥加密提供了完整性、身份认证和不可否认性
    5. 秘钥分发是一个简单的过程
    6. 不需要预先存在通信链接
  • 对称和非对称密码学系统比较:

6.3.4 散列算法

  • 常用的散列算法:
    • 消息摘要2(MD2)
    • 消息摘要5(MD5)
    • 安全散列算法(SHA-0,SHA-1,SHA-2)
    • 基于散列的消息身份认证代码(HMAC)

6.4 对称密码

  • 常见对称密码系统:DES(数据加密标准)、3DES(三重数据加密标准)、IDEA(国际数据加密算法)、Blowfish、Skipjack、AES(高级加密标准)

6.4.1 数据加密标准(DES) 来源于Lucifer算法,DEA是实现DES标准的算法

  • DES是一个64位的分组密码,具有五种操作模式
    1. 电子代码本模式(ECB):安全性最差,每次处理一个64位分组,简单的使用秘钥对这个分组进行加密
    2. 密码分组链接模式(CBC):未加密文本的每个分组使用DES算法加密前,都与前一密文分组进行异或操作。
      • 缺点:错误传播,一个分组在传输中被破坏,这个分组将无法解密。
    3. 密码回馈模式(CFB):流密码形式的CBC、针对实时生成的数据进行操作
    4. 输出回馈模式(OFB):与CFB模式几乎相同。
      • 优点是不存在链接功能,传输错误不会通过传播影响之后分组的解密。
    5. 计数模式(CTR):流密码,每次操作后都增加的计数,与OFB模式一样,不传播错误。

6.4.2 三重数据加密算法(3DES)

  • 3DES有四个版本:
    1. DES EEE3:使用三个不同的秘钥对明文加密三次
    2. DES EDE3:使用三个秘钥,但是将第二个加密操作替换成解密操作
    3. DES EEE2:只使用两个秘钥
    4. DES EDE2:使用两个秘钥、中间使用解密操作

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

  • 针对DES算法的秘钥长度不够开发的,采用128位的秘钥进行操作,

6.4.4 Blowfish(SSH使用)

  • Blowfish扩展了IDEA的秘钥长度,可使用变长秘钥,BlowFish比IDEA和DES更快的算法

6.4.5 Skipjack

  • 对64位的文本分组操作,使用80位的秘钥
  • 没有被密码学团队普通接受,因为托管程序由美国政府控制

6.4.6 高级加密协议(AES)( Rijndael、Twofish算法加密 )

  • 使用128、192、和256位加密,支持128分组处理对称加密算法记忆表
  • Twofish算法 利用了两种技术:预白噪声化、后白噪声化

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6.4.7 对称秘钥管理

  1. 创建和分发对称密码
    • 离线分发:一方向另一方提供包括秘钥的一张纸或一份存储介质
    • 公钥加密:使用公钥加密建立初始的通信链接,在链接中交换秘钥
    • Diffie-Hellman算法:在不安全的链路中交换秘钥
  2. 存储和销毁对称秘钥
    • 永远不要将加密秘钥存储在存放加密数据一起
    • 敏感秘钥考虑两个人分别持有秘钥的一般
  3. 秘钥托管
    • 公平密码系统:私钥分成多分,交给独立的第三方
    • 托管加密标准:向政府提供解密密文的技术手段

6.4.8 密码生命周期

  • 确定组织可以接受和使用的加密算法
  • 基于传输信息的敏感性确认算法可接受的秘钥长度
  • 列出可以使用的安全传输协议(SSL和TLS)

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

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

相关文章

MySQL 用户权限和远程访问设置

目录 一、用户操作查看当前拥有用户创建用户修改用户密码删除用户给root用户开放外网访问 二、用户权限操作授予权限的原则查看授予用户的权限给用户添加权限回收权限 一、用户操作 先要使用root用户登录MySQL后在执行后面操作 查看当前拥有用户 SELECT host,user,Grant_pri…

结构型设计模式——外观模式

摘要 本文主要分析设计模式 - 结构型 - 外观(Facade),它提供了一个统一的接口,用来访问子系统中的一群接口,从而让子系统更容易使用。 一、外观模式的意图 提供了一个统一的接口,用来访问子系统中的一群接口,从而让…

记录 ubuntu 修改用户/root 密码步骤

1、普通用户修改密码方法 a)启动 Ubuntu,随即长按 shift 进入 grub 菜单 b)选择 Advanced options for ubuntu,即高级设置 c)选择 recovery mode,回车确认,如下图; d)在 Recovery…

力扣用队列实现栈

自己写的栈,再让其他函数去调用自己写的栈 typedef int QDataType; typedef struct QueueNode {struct QueueNode* next;//单链表QDataType data;//放数据 }QNode;typedef struct Queue {QNode* phead;//头节点QNode* ptail;//尾节点QDataType size; //统计有多少节…

使用Qt验证RGB格式

下面我们用不同的颜色来绘制一块矩形区域,来对比学习RGB颜色。 一片漆黑的黑色 黑色在RGB中是三个颜色分量都是0。也就是没有颜色。 下面我们绘制一个水平100个像素,垂直200个像素的矩形区域,颜色设置为黑色。 #ifndef MAINWINDOW_H #def…

【NLP的python库(03/4) 】: 全面概述

一、说明 Python 对自然语言处理库有丰富的支持。从文本处理、标记化文本并确定其引理开始,到句法分析、解析文本并分配句法角色,再到语义处理,例如识别命名实体、情感分析和文档分类,一切都由至少一个库提供。那么,你…

【小笔记】从算法训练现象分析可能的参数设置问题-loss分析篇

【学而不思则罔,思而不学则殆】 9.30 首先给出一个理想的训练loss收敛图片:loss平滑的下降,并逐渐收敛到0. 平滑说明学习率设置较合适,收敛到0说明模型在参数空间中收敛到一个很理想的区域。 1.训练集的loss已经开始收敛了&…

Spring Boot的自动装配中的@ConditionalOnBean条件装配注解在Spring启动过程中,是如何保证处理顺序靠后的

前言 为什么Spring Boot条件注解那么多,而标题中是ConditionalOnBean呢? 因为,相比之下我们用的比较多的条件装配注解也就是ConditionalOnClass、ConditionalOnBean了,而ConditionalOnClass对顺序并不敏感(说白了就是判…

蓝牙智能音箱采用哪些音频功放芯片

目前,无线蓝牙智能音箱越来越受广大用户的欢迎;比如点播歌曲、上网购物,或是了解天气预报,它也可以对智能家居设备进行控制,比如打开窗帘、设置冰箱温度、提前让热水器升温等。 而功放芯片是音箱中至关重要的组成部分…

分布式事务-TCC案例分析流程图

防止cancel方法在最后执行出现问题,用户收到提示已经退款成功但是由于cancel过慢或者出现问题(虽然最后会重试成功但是用户体验很差),可以做以下的业务sql模型优化(增加一个冻结金额)。

Arcgis克里金插值报错:ERROR 010079: 无法估算半变异函数。 执行(Kriging)失败。

Arcgis克里金插值报错:ERROR 010079: 无法估算半变异函数。 执行(Kriging)失败。 问题描述: 原因: shape文件的问题,此图可以看出,待插值的点有好几个都超出了地理范围之外,这个不知道是坐标系配准的问…

Tensorflow2 GPU 安装方法

一、Tensorflow2 GPU 安装方法 1. 首先安装Anaconda3环境2. 在Anaconda Prompt 中安装tensorflow23. 验证GPU是否可以使用 1. 首先安装Anaconda3环境 https://www.anaconda.com/ 2. 在Anaconda Prompt 中安装tensorflow2 conda update conda conda create -n tensorflow pyt…

基于Java的社区管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言功能介绍:具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导…

【算法导论】快速排序

文章目录 1. 快速排序的描述 1.1基本描述1.2 PARTITOION函数1.3 快速排序C完整代码 2. 快速排序的性能2.1 最坏时间复杂度2.2 平均时间复杂度 1. 快速排序的描述 1.1基本描述 快速排序是一种时间复杂度为 O(n^2) 的排序算法。虽然最坏情况时间复杂度很差,但他的平…

开学教师自我介绍模版:打造个人品牌,轻松赢得学生喜爱

这里有一篇2000字左右的教师自我介绍长文: 亲爱的同学们,我是你们的XX老师。开学第一天,我非常高兴能在这里与大家见面。作为一名教师,我的职责是把知识教给你们,指导你们成长。同时,我也希望通过这次自我…

CocosCreator3.8研究笔记(二十三)CocosCreator 动画系统-动画编辑器相关功能面板说明

国庆假期,闲着没事,在家研究技术~ 上一篇,我们介绍了动画剪辑、动画组件以及基本的使用流程,感兴趣的朋友可以前往阅读: CocosCreator 动画系统-动画剪辑和动画组件介绍。 今天,主要介绍动画编辑器相关功能…

CocosCreator3.8研究笔记(二十二)CocosCreator 动画系统-动画剪辑和动画组件介绍

国庆假期,闲着没事,在家研究技术~ 大家都知道在Cocos Creator3.x 的版本的动画编辑器中,可以实现不用写一行代码就能实现各种动态效果。 Cocos Creator动画编辑器中主要实现关键帧动画,不仅支持位移、旋转、缩放、帧动画&#xff…

ASUS华硕天选4笔记本电脑FX507VV原厂Windows11系统

下载链接:https://pan.baidu.com/s/1W9tedHI3iFjaHju5eLkQ6g?pwd8dl2 系统自带所有驱动、出厂主题壁纸LOGO、Office办公软件、华硕电脑管家、奥创控制中心等预装程序 由于时间关系,绝大部分资料没有上传,不是想要的型号,请联系客服获取。

Spring的注解开发-Bean基本注解开发

Bean基本注解开发 Spring除了xml配置文件进行配置之外,还可以使用注解方式进行配置,注解方式慢慢成为xml配置的替代方案。我们有了xml开发的经验,学习注解开发就会方便很多,注解开发更加快捷方便。Spring提供的注解有三个版本 2.…