NISP 一级 | 2.1 密码学
关注这个证书的其他相关笔记:NISP 一级 —— 考证笔记合集-CSDN博客
通过上一章的学习,我们知道了,网络安全的 CIA 模型,而本期学习的“密码学”,则能为 CIA 模型提供很好的技术支持:
面临的攻击威胁 | 所破坏的信息安全属性 | 解决问题所采用的密码学技术 |
---|---|---|
截获(泄露信息) | 机密性 | 对称密码和非对称密码 |
篡改(修改信息) | 完整性 | 哈希函数、数字签名、 对称密码和非对称密码 |
伪造(伪造信息来源) | 真实性 | 数字签名 |
否认(事后否认发送信息和行为) | 不可否认性 | 数字签名 |
0x01:密码学的发展
密码学的发展大致可以分为如下四个阶段:
-
第一个阶段是从古代到 19 世纪末 —— 古典密码学
-
第二个阶段是从 20 世纪初到 1949 年 —— 近代密码学
-
第三个阶段是从 C.E.Shannon(香农)于 1949 年发表的划时代论文 “The Communication Theory of Secret Systems” 开始 —— 现代密码学
-
第四个阶段是从 1976 年 W.Diffie 和 M.Hellman 发表论文“New Directions in Cryptography” 开始 —— 公钥密码学
0x0101:古典密码学
古典密码体质的安全性在于保持算法本身的保密性,受到了算法的限制。其具有以下特点:
-
不适合大规模生产(手工计算)
-
不适合较大的或者人员变动较大的组织
-
用户无法了解算法的安全性
0x0102:近代密码学
近代密码学是从 20 世纪初到 1949 年,其主要标志是机械密码/机电密码,用机电代替手工。
近代密码体质是用机械或电动机械实现的,其中最著名的就是转轮机(Rotor Machine)。
转轮密码机 ENIGMA,由 Arthur Scherbius 于 1919 年发明。在二次世界大战期间,Enigma 曾经作为德国陆、海、空三军最高密码机,其外形如下:
与转轮机相对应的还有英国的 TYPEX 打字密码机,其在英国通信中使用广泛,且在破译密钥后帮助破解德国信号:
感兴趣的小伙伴可以到下面这个网站详细了解一下它的历史:
Typexhttps://www.cryptomuseum.com/crypto/uk/typex/index.htm
0x0103:现代密码学
现代密码学是从 1949 年 ~ 1975 年,这期间密码届发生了这些大事:
-
1949 年,Shannon 发表论文 “The Communication Theory of Secret Systems”。
-
1967 年,David Kahn 的专著 《The Code Breakers》问世。
-
1971 年 ~ 1973 年,IBM Wastson 实验室的 Horst Feistel 等人发表的几篇技术报告。
-
1974 年,IBM 提交了算法 LUCIFER,后来成为了 DES。
该时期密码学的主要特点就是,数据的安全基于密钥而不是算法的保密。
0x0104:公钥密码学
公钥密码学主要是 1976 年以后,这期间主要有这么几件大事:
-
1976 年,Diffie & Hellman 的 “New Directions in Cryptography” 提出了非对称密钥密码。
-
1977 年,Rivest,Shamir & Adleman 提出了 RSA 公钥算法。
-
20 世纪 90 年代,逐步出现椭圆曲线等其他公钥算法。
公钥密码的出现使得发送端和接收端无密钥传输的保密通信成为可能!
0x02:加密与解密
信息在传播的过程中有可能被截获。为了避免被截获,必须对信息进行加密。有了加密,就必须有解密。
0x0201:加密与解密的基础概念
该部分主要是介绍与加解密相关的一些基础概念,方便后续的理解:
-
明文(Plaintext): 原始消息,被隐蔽消息,未经加密的消息。
-
密文(Ciphertext): 又称为密报(Cryptogram),明文经密码变换而成的一种隐蔽形式。
-
加密员或密码员(Cryptographer): 对明文进行加密操作的人员。
-
截获: 指一个非授权方介入系统,窃听传输的信息,导致信息泄露。它破坏了信息的保密性。
-
非授权方可以是一个人,也可以是一个程序。
-
-
截获攻击: 通过嗅探和监听等手段截获信息,从而推测出有用的信息,如用户口令、账号、文件或程序的不正当复制等。
-
加密(Encryption): 将明文变换为密文的过程。加密可以采用密码算法来实现,密码算法从密钥使用角度,可分对称密码算法和非对称密码算法。
-
把可懂的语言变换成(人类/机器)不可懂的语言。
-
-
解密(Decryption): 由密文恢复出明文的过程。
-
加密的逆过程。
-
即把不可懂的语言变换成变换成可懂的语言。
-
0x0202:对称加密算法
对称加密算法(也称为单钥或私钥密码算法),即加密密钥和解密密钥相同,或实质上等同,即从一个易于推出另一个。
常见的对称加密算法有:DES、3DES、IDEA、AES
对称加密算法的特点就是密钥相对较短,一般采用 128,192 或 256 比特的长度。
其加解密流程如下图所示,可以看到,其加密和解密使用的是同一个密钥:
对称加密算法的优缺点如下:
-
优点:
-
效率搞,算法简单,系统开销小
-
适合加密大量数据
-
明文长度与密文长度相等
-
-
缺点:
-
需要以安全方式进行密钥交换
-
密钥管理复杂
-
无法解决消息的篡改、否认等问题
-
0x0203:非对称加密算法
非对称加密算法,又叫公钥密码算法(Public-key cipher):加密密钥和解密密钥不同,从一个很难推出另外一个。其中,对外公开的密钥,称为公开密钥(Public Key),简称公钥;必须秘密存储的密钥,称为私有密钥(Private Key),简称私钥。
公钥密钥算法的典型代表有:RSA、ECC、ElGamal。
公钥密码算法的特点如下:
-
公钥加密,私钥解密。
-
私钥加密,公钥解密。
-
密钥长度 512 - 2048 位。
其加解密流程如下图所示,可以看到,其加密和解密使用的不是同一个密钥:
非对称加密算法的优缺点如下:
-
优点:
-
密钥分发数目与参与者数目相同。
-
在有大量参与者的情况下易于密钥管理。
-
安全
-
支持数字签名和不可否认性。
-
无需事先与对方建立关系,交换密钥。
-
-
缺点
-
速度相对较慢。
-
可能比同等强度的对称加密算法慢 10 倍到 100 倍。
-
加密后,密文变长。
-
0x0204:混合加密
混合加密是在对称加密和非对称加密的基础上,综合了二者的优点发明出来的。
对称加密,速度快,且能加密大量数据,但是其需要以安全方式交换密钥。
非对称加密,速度慢,但是其无需事先与对方建立关系,交换密钥。
那我们可以综合二者特长,在第一次建立链接的时候,让对称加密的密钥,通过非对称加密进行传输,当对方安全拿到对称加密的密钥后,后续传输再使用对称加密的方式快速交换数据。
下面,我们详细讲解一下混合加密的流程:
在第一次传输时,发送者先随机产生一个对称加密的密钥,并将该密钥通过接收者的公钥进行加密。接收者利用自己的私钥解密,获取到发送者的对称加密密钥:
在随后的传输中,双方直接使用对称加密密钥来对信息进行加密:
0x03:哈希函数
对称加密和非对称加密算法主要解决信息的机密性问题,而实际系统和网络中还可能受到消息篡改的攻击。篡改攻击主要包括:修改信息内容,改变程序使使其不能正确运行等。而哈希函数可以用来确保信息的完整性。
哈希(Hash)函数(又称为杂凑函数或单向散列函数)接收一个消息作为输入,产生一个称为哈希值的输出。输出的哈希值也可称为散列值、消息摘要(Message Digest,MD)。
哈希函数的工作流程如下图所示:
发送端将待发送的数据和该数据的哈希值一起传递给接收端,接收端接收后,再对数据计算一遍哈希值,如果计算结果与发送端发送的哈希值一致,则说明接收的数据有效,反之,数据经过的篡改。
接下来我们简单介绍几种常见的哈希算法:
0x0301:MD5 算法
MD5 算法可以对输入的任意长度的消息进行运算,并产生一个 128 位的消息摘要。
MD5 算法具有以下特点:
-
输入:接受任意长度的消息。
-
输出:128 位的消息摘要。
-
处理:以 512 位输入数据块为单位。
0x0302:SHA-1 算法
SHA(Secure Hash Algorithm,安全哈希算法)由美国国家标准技术研究所开发,1993 年作为联邦信息处理标准发布,2008 年又有更新。
SHA-1 算法具有以下特点:
-
输入:最大长度为 264 位的消息。
-
输出:160 位的消息摘要。
-
处理:输入以 512 位数据块为单位处理。
0x0303:HSA-1 算法与 MD5 算法比较
-
散列值长度:
-
MD5:128 bits
-
SHA-1:160 bits
-
-
安全性:
-
SHA-1 算法被视为 MD5 的替代候选算法。
-
-
速度:
-
SHA-1 慢些
-
0x04:数字签名
除了保护信息的机密性和完整性,密码学技术也可以解决信息的可鉴别性(真实性或认证性)或不可否认性问题。
数字签名的工作流程如下图所示:
发送端先计算出待发送数据的哈希值,然后将此哈希值连同数据使用自己的私钥进行加密。加密完成后,将数据发送给接收端。接收端收到数据后,先利用发送端的公钥从数据包中解出哈希值和原始数据,然后接收端利用和发送端相同的哈希算法,计算出收到的数据的哈希值,然后将此哈希值和发送端发送的哈希值相比较。如果哈希值匹配,则说明该数据由该发送端的私钥签名。
实际签名的时候,我们一般是对文件的哈希值签名,而不是对文件本身签名。这是因为,一般要签名的文件体积比较大,使用非对称加密的话,签名时间比较长。而对哈希值签名,哈希值一般比较短,所以签名时间也会比较短。这样能大大提高签名的效率,又因为哈希值的特性,又能够保证数据的完整性。
0x0401:数字签名的特点
数字签名的特点如下,其与传统签名的特点具有相似性:
-
传统签名的基本特点:
-
能与被签的文件在物理上不可分割。
-
签名者不能否认自己的签名。
-
签名不能被伪造。
-
容易被验证。
-
-
数字签名是传统签名的数字化,其基本特点如下:
-
能与所签文件 “绑定”。
-
签名者不能否认自己的签名。
-
签名不能被伪造。
-
容易被验证。
-
0x0402:数字签名的应用
-
可信性: 签名让文件的接收者相信签名者是慎重地在文件上签名的。
-
不可重用性: 签名不可重用,即使同一消息在不同时刻的签名也是有区别的。如果将签名部分提取出来,附加在别的消息后面,验证签名会失败。这是因为签名和所签名消息之间是一一对应的,消息不同签名内容也不同,因此签名无法重复使用。
-
数据完整性: 在文件签名后,文件不能改变。
-
不可伪造性: 签名能够证明是签名者而不是其他人在文件上签名,任何人都不能伪造签名。
-
不可否认性: 在签名者否认自己的签名时,签名接收者可以请求可信第三方进行仲裁。
相关文章:

NISP 一级 | 2.1 密码学
关注这个证书的其他相关笔记:NISP 一级 —— 考证笔记合集-CSDN博客 通过上一章的学习,我们知道了,网络安全的 CIA 模型,而本期学习的“密码学”,则能为 CIA 模型提供很好的技术支持: 面临的攻击威胁所破坏…...

深度学习速通系列:混淆矩阵是什么
混淆矩阵(Confusion Matrix)是一种评估分类模型性能的工具,尤其在监督学习中用于分析分类结果。它通过一个矩阵的形式,将模型的预测结果与实际标签进行比较,从而可以清晰地看到模型在各个类别上的表现。以下是混淆矩阵…...

综合评价 | 基于熵权-变异系数-博弈组合法的综合评价模型(Matlab)
目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 根据信息熵的定义,对于某项指标,可以用熵值来判断某个指标的离散程度,其信息熵值越小,指标的离散程度越大, 该指标对综合评价的影响(即权重&…...

模板与泛型编程笔记(一)
1. 推荐书籍 《C新经典 模板与泛型编程》难得的很容易看得懂的好书,作者讲技术不跳跃,娓娓道来,只要花点时间就能看懂。 2. 笔记 模板为什么要用尖括号?因为便于编译器解析,可以将模板和普通函数声明分开。其实尖括…...

ubuntu 和windows用samba服务器实现数据传输
1,linux安装samba服务器 sudo apt-get install samba samba-common 2,linux 配置权限,修改目录权限,linux下共享的文件权限设置。 sudo chmod 777 /home/lark -R 3. 添加samba用户 sudo smbpasswd -a lark 4,配置共享…...

NISP 一级 | 3.2 网络安全威胁
关注这个证书的其他相关笔记:NISP 一级 —— 考证笔记合集-CSDN博客 网络安全威胁主要来自攻击者对网络及信息系统的攻击,攻击者可以通过网络嗅探、网络钓鱼、拒绝服务、远程控制、社会工程学等网络攻击手段,获得目标计算机的控制权ÿ…...

【技术实践】MySQL分表分库全解析:从理论到实战
文章目录 【技术实践】MySQL分表分库全解析:从理论到实战1. 引言1.1 MySQL数据库面临的挑战1.2 分表分库的概念与优势 2. MySQL分表分库的基本原理2.1 水平分表2.2 垂直分表2.3 水平分库2.4 分表分库的选择标准 3. 实现分表分库的技术方案3.1 中间件解决方案3.2 自定…...

动手学深度学习(一)简介+预备知识+基础知识(上)
一、简介 1、机器学习 机器学习研究如何使用经验改善计算机系统的性能。 2、表征学习 表征学习是机器学习的一类,研究的是,如何自动学习出数据合适的表示方式,更好地由输入得到正确的输出。 3、深度学习 深度学习是具有多级表示的表征学…...

dubbo 服务消费原理分析之应用级服务发现
文章目录 前言一、MigrationRuleListener1、迁移状态模型2、Provider 端升级3、Consumer 端升级4、服务消费选址5、MigrationRuleListener.onRefer6、MigrationRuleHandler.doMigrate6、MigrationRuleHandler.refreshInvoker7、MigrationClusterInvoker.migrateToApplicationFi…...

QT如何在对话框中插入表格
在Qt中,如果你想要在对话框中插入表格,通常会使用QTableWidget或QTableView结合QStandardItemModel(对于QTableView)或直接在QTableWidget中操作。这里,我将介绍如何使用QTableWidget在对话框中插入表格,因…...

如何使用SSHFS通过SSH挂载远程文件系统?
SHFS(SSH 文件系统)是一款功能强大的工具,它允许用户通过 SSH 挂载远程文件系统,从而提供一种安全便捷的方式来访问远程文件,就像访问本地文件一样。本文将引导您完成使用 SSHFS 挂载远程文件系统的过程,为…...

SEELE 框架是
SEELE 框架是一个相对新颖的组织管理和优化框架,旨在帮助团队或企业更好地实现目标。它的核心思想是通过科学的管理方法来提升组织的执行力和决策能力。以下是对 SEELE 框架的详细讲解,包括定义、内容、实施步骤、实施策略以及推荐的实践方法和工具。 一…...

高教社杯数模竞赛特辑论文篇-2013年B题:碎纸复原模型与算法(续)(附MATLAB代码实现)
目录 4.3 三维碎纸复原模型 4.3.1 三维模型的降维 4.3.2 三维碎纸复原算法 4.3.3 模型求解 五、模型改进与推广 5.1 模型优点 5.2 模型缺点 5.3 模型改进 5.3.1 适用彩色图片的改进 5.3.2 最小干预度算法 5.4 模型推广 参考文献 代码实现 模拟退火法代码 GUI 程序代码 层次特征…...

Java操作Miscrosoft Office各类文件格式的开源免费工具库
Aspose.Words库 是一个商业Java库,还封装了常用的word、pdf、防伪码、水印等诸多功能。Apache 库需要注意的前置问题 问题1:Word的两个格式doc和docx,POI并没有提供统一的处理类。分别用 HWPFDocument 处理doc文档,用 XWPFTempl…...

Redis 缓存淘汰算法策略详解
引言 Redis 作为一款高性能的内存数据库,在处理大量数据时,由于内存有限,需要在数据达到设定的内存上限后,使用缓存淘汰策略来决定哪些数据应该被移除,以腾出空间存储新的数据。这一过程被称为缓存淘汰,通…...

Kubernetes PV生命周期的四个阶段
Kubernetes PV生命周期的四个阶段 1. Available(可用)2. Bound(已绑定)3. Released(已释放)4. Failed(失败)💖The Begin💖点点关注,收藏不迷路💖 在Kubernetes中,PersistentVolume(PV)的生命周期主要包括以下四个阶段: 1. Available(可用) 状态:PV刚创建…...

Azure OpenAI models being unable to correctly identify model
题意:Azure OpenAI模型无法正确识别模型。 问题背景: In Azure OpenAI Studio, while I am able to deploy a GPT-4 instance, the responses are based solely on GPT-3.5 Turbo. I test the same prompts in my personal ChatGPT sub and it returns …...

项目小结二()
一.个人信息的界面 这里可以进行用户信息的修改,并渲染数据上去 二.这两天,出现的问题: 1.mybatis中 字段取别名 (还没验证,是否正确) 问题描述:由于实体类中的变量名,与数据库中…...

《论层次架构及其在软件系统中的应用》写作框架,软考高级系统架构设计师
论文真题 层次架构作为软件系统设计的一种基本模式,对于实现系统的模块化、可维护性和可扩展性具有至关重要的作用。在软件系统的构建过程中,采用层次架构不仅可以使系统结构更加清晰,还有助于提高开发效率和质量。因此,对层次架构的理解和应用是软件工程师必备的技能之一…...

校篮球联赛系统小程序的设计
管理员账户功能包括:系统首页,个人中心,管理员管理,公告管理,基础数据管理,球队管理,球员管理,赛事信息管理,用户管理,轮播图信息 微信端账号功能包括&#…...

在 HKCR 新增项和值
HKEY_CLASSES_ROOT HKEY_CURRENT_USER\Software\Classes ∪ HKEY_LOCAL_MACHINE\Software\Classes ; 1. Win11 HKCR 根键默认是 System 所有, Win10 HKCR 根键默认是 Administrators 所有。 ; 2. 以 System、管理员 还是 普通用户 登录系统? ; 在注册表里&#x…...

Spring Boot 注解探秘:JSON 处理的魔法世界
在 Spring Boot 应用开发中,高效处理 JSON 数据同样至关重要。Spring Boot 不仅在 Bean 管理方面表现出色,提供强大的注解系统以助力开发者轻松管理 Bean 的生命周期和依赖注入,在 JSON 数据处理上也毫不逊色。本文将深入探讨 Spring Boot 中…...

利用AI驱动智能BI数据可视化-深度评测Amazon Quicksight(一)
项目简介 随着生成式人工智能的兴起,传统的 BI 报表功能已经无法满足用户对于自动化和智能化的需求,今天我们将介绍亚马逊云科技平台上的AI驱动数据可视化神器 – Quicksight,利用生成式AI的能力来加速业务决策,从而提高业务生产…...

Linux常见指令、ls、pwd、cd、touch、mkdir、rmdir、rm等的介绍
文章目录 前言一、ls二、pwd三、cd四、touch五、 mkdir六、rmdir七、rm总结 前言 Linux常见指令、ls、pwd、cd、touch、mkdir、rmdir、rm等的介绍 一、ls 列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息 -a 列出目录下的所有文件,…...

【Kubernetes】常见面试题汇总(八)
目录 22.简述 Kubernetes 中 Pod 的健康检查方式? 23.简述 Kubernetes Pod 的 LivenessProbe 探针的常见方式? 24.简述 Kubernetes Pod 的常见调度方式? 22.简述 Kubernetes 中 Pod 的健康检查方式? 对 Pod 的健康检查可以通过…...

CentOS 7系统双网卡配置动态链路聚合(bond4)
一、应用场景 在机房建设时,服务器的网卡需要配置成bond4,可以使用我下面的配置文件和脚本来进行配置,简化配置流程。 bond4,即动态链路聚合,它可以将服务器上的两个物理网卡聚合为一个,两个网口逻辑成一…...

ubuntu 20.04 一直卡在登录界面,即使密码正确也无法登录(失败记录)
ubuntu 20.04 一直卡在登录界面,即使密码正确也无法登录 这次是装实体机,一次失败的尝试。。。 名称型号CPUIntel Xeon E5-2673 V3GPURTX 3060 mobile 安装的时候不要选install third-party software for graphics and Wi-fi hardware and additional …...

【深度学习】神经网络-怎么理解DNN、CNN、RNN?
怎么分清DNN、RNN、CNN? 最“大”的概念是人工神经网络(Artificial Neural Network, ANN),它是较为广泛的术语,通常指的是一类模拟生物神经网络的数学模型,其中包括神经元、权重和连接。在这个术语下&#…...

组织应在其网络安全策略中考虑MLSecOps吗?
随着越来越多的组织拥抱人工智能 (AI) 和机器学习 (ML) 来优化操作并获得竞争优势,关于如何最好地保障这一强大技术的安全性的问题也日益受到关注。其中的核心是用于训练ML模型的数据,这对模型的行为和性能有着根本影响。因此,组织需要密切关…...

Windows安装HeidiSQL教程(图文)
一、软件简介 HeidiSQL是一款开源的数据库管理工具,主要用于管理MySQL、MariaDB、SQL Server、PostgreSQL和SQLite等数据库系统。它提供了直观的用户界面,使用户可以轻松地连接到数据库服务器、执行SQL查询、浏览和编辑数据、管理数据库结构等操作。 跨…...