CISSP 第6章: 密码学与对称加密算法
第六章 密码学与对称加密算法
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 密码
编码与密码:
编码:密码学系统中标识词汇或短语的符号
密码:隐藏消息的真实含义
换位密码:使用某种加密算法重新排列明文消息中的字母,从而形成密文消息
替代密码:使用加密算法将明文消息中的每一个字符或比特都替换为不同的字符、如凯撒密码
一次性填充密码:对明文消息的每个字母都使用一个不同的字母表,极为强大的替代密码,一个不可破解的加密方案必须满足如下要求:
加密秘钥必须随机生成
一次性填充必须进行物理保护
每个一次性填充必须只使用一次
秘钥必须至少与被加密的消息一样长
一次性填充缺点:只可用于短消息、分发和保护需要冗长的秘钥
分组密码:按消息的"组块"或分组进行操作,并且对整个消息分组同时应用加密算法
流密码:对消息中的每一个字符或每一位操作,每次只处理一个/以为,如凯撒密码
混淆与扩散:
混淆:攻击者不能通过继续修改明文和分析产生的密文来确定秘钥
扩展:明文改变导致多种变化时,这个变化扩散到整个密文中
6.3 现代密码学
6.3.1 密钥
现代密码系统并不依赖其算法的安全性
现代密码系统不依赖于保密的算法
现代密码学系统依赖具体的用户或用户组专用的一个或多个秘钥
6.3.2 对称秘钥算法
对称秘钥依赖一个共享的加密秘钥,该秘钥会分发给所有参与通信的成员
对称秘钥也被成为秘密秘钥密码学或私有秘钥密码学
对称秘钥的弱点
秘钥分发是一个问题: 对称秘钥建立通信之前,通信参与必须具备一个安全的交换秘钥的方法
对称秘钥密码学并未实现不可否认性
这种算法不可扩充
秘钥必须经常更新
对称秘钥密码可扩展性问题:n个通信方之间完全连接需要的秘钥总数为:n*(n-1)/2
6.3.2 非对称秘钥算法
非对称秘钥算法也被成为公钥算法,每个用户都有公钥和私钥
非对称秘钥的优点:
新增用户只需要生成一对公钥-私钥对
从非对称系统中更容易删除用户
只有在用户的私钥被破坏时,才需要进行秘钥重建
非对称秘钥加密提供了完整性、身份认证和不可否认性
秘钥分发是一个简单的过程
不需要预先存在通信链接
对称和非对称密码学系统比较:
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位的分组密码,具有五种操作模式
电子代码本模式(ECB):安全性最差,每次处理一个64位分组,简单的使用秘钥对这个分组进行加密
密码分组链接模式(CBC):未加密文本的每个分组使用DES算法加密前,都与前一密文分组进行异或操作。
缺点:错误传播,一个分组在传输中被破坏,这个分组将无法解密。
密码回馈模式(CFB):流密码形式的CBC、针对实时生成的数据进行操作
输出回馈模式(OFB):与CFB模式几乎相同。
优点是不存在链接功能,传输错误不会通过传播影响之后分组的解密。
计数模式(CTR):流密码,每次操作后都增加的计数,与OFB模式一样,不传播错误。
6.4.2 三重数据加密算法(3DES)
3DES有四个版本:
DES EEE3:使用三个不同的秘钥对明文加密三次
DES EDE3:使用三个秘钥,但是将第二个加密操作替换成解密操作
DES EEE2:只使用两个秘钥
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 对称秘钥管理
创建和分发对称密码
离线分发:一方向另一方提供包括秘钥的一张纸或一份存储介质
公钥加密:使用公钥加密建立初始的通信链接,在链接中交换秘钥
Diffie-Hellman算法:在不安全的链路中交换秘钥
存储和销毁对称秘钥
永远不要将加密秘钥存储在存放加密数据一起
敏感秘钥考虑两个人分别持有秘钥的一般
秘钥托管
公平密码系统:私钥分成多分,交给独立的第三方
托管加密标准:向政府提供解密密文的技术手段
6.4.8 密码生命周期
确定组织可以接受和使用的加密算法
基于传输信息的敏感性确认算法可接受的秘钥长度
列出可以使用的安全传输协议(SSL和TLS)
————————————————
版权声明:本文为CSDN博主「北航程序员小C」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Runnymmede/article/details/133364269
相关文章:
CISSP 第6章: 密码学与对称加密算法
第六章 密码学与对称加密算法 6.1 密码学历史上的里程碑 6.1.1 凯撒密码 简单的将字母表中的每个字母替换成其后的三个字母,是单一字母的替代置换密码 6.1.2 美国内战 美国内战使用词汇替代和置换的复杂组合,从而试图破坏敌人的破译企图 6.1.3 Ultra与…...
《深入理解C++11:C++11新特性解析与应用》笔记八
第八章 融入实际应用 8.1 对齐支持 8.1.1 数据对齐 c可以通过sizeof查询数据的长度,但是没有对对齐方式有关的查询或者设定进行标准化。c11标准定义的alignof函数可以查看数据的对齐方式。 现在的计算机通常会支持许多向量指令,4组8字节的浮点数据&a…...
算法——BFS解决FloodFill算法
什么是FloodFill算法 中文:洪水灌溉。假设这一块4*4的方格是一块土地,有凸起的地方,也有凹陷的地方(凹陷的地方用负数表示)。此时下大雨发洪水,会把凹陷的地方填满。绿色圈起来的属于一块区域(…...
【Linux】常用的基本命令指令②
前言:前面我们学习了Linux的部分指令,今天我们将接着上次的部分继续将Linux剩余的基本指令. 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:Linux的学习 👈 💯代码仓库:卫卫周大胖的学习日记…...
52、全连接 - 特征与样本空间的对应关系
上一节说到经过全连接层之后,神经网络学习到的特征,会从隐层特征空间逐步映射到样本空间,这主要是由于全连接层可以融合全局的特征。 在经过全连接层之后,在 ResNet50 这个神经网络中会输出1000个特征的得分值,这1000个特征的得分值,便可以对应到图像的分类。 怎么对应…...
Go语言中的包管理工具之Go Vendor的使用
GoLang 中常用的包管理的方式 常用的有三种 Go PathGo VendorGo Modules 关于 Go Vender 1 )概述 在2015年的时候,我们的另一个包管理工具Go Vendor就诞生了它诞生于 2015.8.19 ,是在Go的 1.5 版本当中引入的,它默认是关闭的我…...
QString设置小数点精度位数
QString设置小数点精度位数 Chapter1 QString设置小数点精度位数Chapter2 Qt中QString.toDouble有效位数6位问题以及数据小数点有效位数的处理问题一:QString.toDouble有效位只有6位问题二:小数点有效位数的问题 Chapter3 qt QString转Double只显示6位数字的问题(精…...
基于Java驾校预约管理系统
基于Java的驾校预约管理系统是一个为驾校提供在线预约服务的系统。该系统利用Java编程语言,采用SSM框架,并使用MySQL数据库进行开发。 这个系统主要有三个角色:用户、教练和管理员。 用户可以注册和登录系统,查看驾校的公告信息…...
C++面向对象高级编程(侯捷)笔记2
侯捷C面向对象高级编程 本文是学习笔记,仅供个人学习使用,如有侵权,请联系删除。 如果你对C面向对象的组合、继承和委托不了解,对什么是拷贝构造、什么是拷贝赋值和析构不清楚,对类设计中的Adapter、pImpl、Template…...
双曲正弦函数(*) 优化麦克劳林公式
#include<stdio.h> #include<math.h> int main() {double x,eps,i3,y,item;scanf("%lf%lf",&x,&eps);yx;itemx;while(fabs(item)>eps){itemitem*x*x/i/(i-1);i2;yitem;}printf("%.6f\n",y);return 0; }...
无监督关键词提取算法:TF-IDF、TextRank、RAKE、YAKE、 keyBERT
TF-IDF TF-IDF是一种经典的基于统计的方法,TF(Term frequency)是指一个单词在一个文档中出现的次数,通常一个单词在一个文档中出现的次数越多说明该词越重要。IDF(Inverse document frequency)是所有文档数比上出现某单词的个数,通常一个单词…...
web3 : blockscout剖析
Blockscout 是第一个功能齐全的开源区块链浏览器,可供任何以太坊虚拟机 (EVM) 链使用。项目方可以下载并使用Blockscout作为其链的浏览器,用户可以轻松验证交易、余额、区块确认、智能合约和其他记录。 目录 Blockscout可以做什么主要特征blockscoutDocker容器组件Postgres 1…...
【机器学习基础】DBSCAN
🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:机器学习 欢迎订阅!相对完整的机器学习基础教学! ⭐特别提醒:针对机器学习,特别开始专栏:机器学习python实战…...
计算机硬件 4.4键盘与鼠标
第四节 键盘与鼠标 一、认识键盘 1.地位:计算机系统最基本的输入设备。 2.外观结构:面板、键帽、底盘、数据线。 3.组成键区:主键区、功能键区、辅助键区和编辑(控制)键区。 二、键盘分类 1.按接口分 ①AT口&…...
Flappy Bird QDN PyTorch博客 - 代码解读
Flappy Bird QDN PyTorch博客 - 代码解读 介绍环境配置项目目录结构QDN算法重要函数解读preprocess(observation)DeepNetWork(nn.Module)BirdDQN类主程序部分 介绍 在本博客中,我们将介绍如何使用QDN(Quantile Dueling Network)算法…...
听GPT 讲Rust源代码--compiler(9)
File: rust/compiler/rustc_trait_selection/src/traits/select/mod.rs 在Rust源代码中,rust/compiler/rustc_trait_selection/src/traits/select/mod.rs文件的作用是实现Rust编译器的trait选择器。 首先,让我们逐个介绍这些struct的作用: Se…...
Go语言中关于go get, go install, go build, go run指令
go get go get 它会执行两个操作 第一个, 是先将远程的代码克隆到Go Path的 src 目录那二个, 是执行go install命令 那如果指定的包可以生成二进制文件那它就会把这个二进制文件保存到这个 Go Path 的bin目录下面这是 go install 命令执行的操作 如果只需要下载包,…...
石头剪刀布游戏 - 华为OD统一考试
OD统一考试 分值: 100分 题解: Java / Python / C++ 题目描述 石头剪刀布游戏有 3 种出拳形状: 石头、剪刀、布。分别用字母 A,B,C 表示游戏规则: 出拳形状之间的胜负规则如下: A>B; B>C; C>A; 左边一个字母,表示相对优势形状。右边一个字母,表示相对劣势形状。…...
【北亚服务器数据恢复】ZFS文件系统服务器ZPOOL下线的数据恢复案例
服务器数据恢复环境: 服务器中有32块硬盘,组建了3组RAIDZ,部分磁盘作为热备盘。zfs文件系统。 服务器故障: 服务器运行中突然崩溃,排除断电、进水、异常操作等外部因素。工作人员将服务器重启后发现无法进入操作系统。…...
C# 反射的终点:Type,MethodInfo,PropertyInfo,ParameterInfo,Summry
文章目录 前言反射是什么?常用类型操作SummryPropertyInfoMethodInfo无参函数运行 有参函数运行,获取paramterInfo 总结 前言 我之前写了一篇Attribute特性的介绍,成功拿到了Attribute的属性,但是如果把Attribute玩的溜,那就要彻…...
2020年认证杯SPSSPRO杯数学建模D题(第一阶段)让电脑桌面飞起来全过程文档及程序
2020年认证杯SPSSPRO杯数学建模 D题 让电脑桌面飞起来 原题再现: 对于一些必须每天使用电脑工作的白领来说,电脑桌面有着非常特殊的意义,通常一些频繁使用或者比较重要的图标会一直保留在桌面上,但是随着时间的推移,…...
谷歌推出创新SynCLR技术:借助AI生成的数据实现高效图像建模,开启自我训练新纪元!
谷歌推出了一种创新性的合成图像框架,这一框架独特之处在于它完全不依赖真实数据。这个框架首先从合成的图像标题开始,然后基于这些标题生成相应的图像。接下来,通过对比学习的技术进行深度学习,从而训练出能够精准识别和理解这些…...
Vue2中使用echarts,并从后端获取数据同步
一、安装echarts npm install echarts -S 二、导入echarts 在script中导入,比如: import * as echarts from "echarts"; 三、查找要用的示例 比如柱状图 四、初始化并挂载 <template><div id"total-orders-chart" s…...
【Redux】自己动手实现redux-thunk
1. 前言 在原始的redux里面,action必须是plain object,且必须是同步。而我们经常使用到定时器,网络请求等异步操作,而redux-thunk就是为了解决异步动作的问题而出现的。 2. redux-thunk中间件实现源码 function createThunkMidd…...
ElasticSearch使用Grafana监控服务状态-Docker版
文章目录 版本信息构建docker-compose.yml参数说明 创建Prometheus配置文件启动验证配置Grafana导入监控模板模板说明 参考资料 版本信息 ElasticSearch:7.14.2 elasticsearch_exporter:1.7.0(latest) 下载地址:http…...
VS Code 如何调试Python文件
VS Code中有1,2,3处跟Run and Debug相关的按钮, 1 处:调试和运行就不多说了,Open Configurations就是打开workspace/.vscode下的lauch.json文件,而Add Configuration就是在lauch.json文件中添加当前运行Python文件的Configuratio…...
day06、SQL语言之概述
SQl 语言之概述 6.1 SQL语言概述6.2 SQL语言之DDL定义数据库6.3 SQL语言之DML操纵数据库 6.1 SQL语言概述 6.2 SQL语言之DDL定义数据库 6.3 SQL语言之DML操纵数据库...
3D目标检测(教程+代码)
随着计算机视觉技术的不断发展,3D目标检测成为了一个备受关注的研究领域。与传统的2D目标检测相比,3D目标检测可以在三维空间中对物体进行定位和识别,具有更高的准确性和适用性。本文将介绍3D目标检测的相关概念、方法和代码实现。 一、3D目…...
让设备更聪明 |启英泰伦离线自然说,开启智能语音交互新体验!
语音交互按部署方式可以分为两种:离线语音交互和在线语音交互。 在线语音交互是将数据储存在云端,其具备足够大的存储空间和算力,可以实现海量的语音数据处理。 离线语音交互是以语音芯片为载体,语音数据的采集、计算、决策均在…...
React Hooks之useState、useRef
文章目录 React Hooks之useStateReact HooksuseStatedemo:在函数式组件中使用 useState Hook 管理计数器demo:ant-design-pro 中EditableProTable组件使用 useRef React Hooks之useState React Hooks 在 React 16.8 版本中引入了 Hooks,它是…...
网站管理页面/如何学会推广和营销
这里介绍两种产生sdp文件的方法,仅供参考,欢迎补充。 1、环境 操作系统 :CentOS6.2_64 内核版本 :2.6.32-220.23.1.el6.x86_64 Darwin Streaming Server 版本:6.0.3 mpeg4ip版本:1.6.1 ffmpeg版本ÿ…...
建设网站 报告/如何查询百度收录情况
以下代码没有严格测试,能用,参数的地方有些错误,没有修正,自个看看代码中打开文件如果要用OpenFileDialog需要首先设置main的线程模式,缺点是弹出的对话框居然跑到后面去了,每什么意思。,我现在…...
wordpress head.php/dw网页设计模板网站
如果你把oracle11g装在笔记本上并让服务开机启动的话,会明显感受到笔记本比平时启动慢几十秒, 差点的甚至1-2分钟,但是不开机启动吧,每次到服务里打开,很麻烦... 用批处理文件打开和关闭不失为一个好办法。 -------…...
东营网站建设报价/百度网址大全 官网
本文翻译整理自youtube 7 Amazing Developer Tools that youre not using yet 1. BundlePhobia BundlePhobia用于分析npm package的依赖、bundle后的大小、下载速度预估等等,帮助你在引用一个package之前了解引入该package的代价: 你也可以将项目的pac…...
网站网站优化/长沙网站建设公司
1、什么是Mybatis?(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格…...
中国文化部网站建设现状/下载应用商店
1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id606160108761 3)全套实验源码手册视频下载地址:http://www.openedv.com/thread-301505-1-1.html 4&#x…...