软考-密码学概述
本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷)
本文为追加文章,后期慢慢追加
by 2023年10月
密码学基本概念
密码学的主要目的是保持明文的秘密以防止攻击者获知,而密码分析学则是在不知道密钥的情况下,识别出明的科学。所谓明文是指需要采用密码技术进行保护的消息。而密文则是指用密码技术处理过明文的结果,通称为加密消息。将明文变换成密文的过程称作加密,其逆过程,即由密文恢复出原明文的过程称作解密。加究过程所使用的一组操作运算规则称作加密算法,而解密过程所使用的一组操作运算规则称作解密算法。加密口解密算法的操作通常都是在密钥控制下进行的,分别称为加密密钥和解密密钥。
密码安全性分析
根据密码分析者在破译时已具备的前提条件,人们通常将密码分析攻击类型分为五种,分别叙述如下:
- 唯密文攻击(ciphertext-only attack)。密码分析者只拥有一个或多个用同一个密钥加密的密文,没有其他可利用的信息。对攻击者最为不利。
- 已知明文攻击(known-plaintext attack)。密码分析者仅知道当前密钥下的一些明文及所对应的密文
- 选择明文攻击(chosen-plaintext attack)。密码分析者能够得到当前密钥下自选定的明文所对应的客文
能够得到该密文“”是否合法”的判断 - 密文验证攻击(ciphertext verification attack)。密码分析者对于任何选
- 选择密文攻击(chosen-ciphertext attack)。除了挑战密文外,密码分析者能够得到任何选定的密文所对应的明文这种方式对攻击者最有利,主要攻击公开秘钥密码体制,特别是攻击其数字签名。
密码体制分类
私钥密码体制
私钥密码体制又称为对称密码体制,指广泛应用的普通密码体制,该体制的特点是加密和解密使用相同的密钥。
私钥密码体制的密钥分配和管理极为重要。密钥分配必须使用安全途径,例如由专门人员负责护送密钥给接收者。在不同的接收者分别进行加密通信或信息交换时,则需要有几个不同的密钥。假设网络中有n 个使用者,使用者之间共享一个密钥,则共有n(n-1) /2 个密钥。
私钥密码体制的缺陷可归结为三点:密钥分配问题、密钥管理问题以及无法认证源。虽然私钥密码体制有不足之处但私钥密码算法处理速度快,人们常常将其用作数据加密处理。
私钥密码典型算法有DES 、3DES、RC4、RC5、IDEA 、AES、SM1、SM4等
公钥密码体制
公钥密码体制又称为非对称密码体制,其基本原理是在加密和解密的过程中使用不同的密钥处理方式,其中,加密密钥可以公开,而只需要把解密密钥安全存放即可。
公密码体制有以下优点:
- 密分发方便,能以公开方式分配加密密钥。
- 密钥保管量少。
- 支持数字签名。
公钥密码典型算法有: RSA、圆曲线密码、SM2等
混合密码体制
混合密码体制利用公钥密码体制分配私钥密码体制的密钥,消息的收发双方共用这个密钥,然后按照私钥密码体制的方式,进行加密和解密运算。
常见密码算法
DES(Data Encryption Standard)
DES(Data Encryption Standard)是数据加密标准的简称,由IBM 公司研制。DES 是一个分组加密算法,能够支待64 比特的明文块(分组)加密,其密长度为56 比特。DES 是世界上应用最广泛的密码算法。- 随着计算机系统运算速度的增加和网络计算的进行,DES56 比特的密长度已不足以保证密码系统的安全。NIST 于1999年10 月25日采用三重DES (riple Data Encryption Algorithm,TDEA)作为过渡期司的国家标准,以增强DES的安全性,并开始征集AES(Advanced Encryption Standard) 算法。
S盒代替是DES算法的关键步骤,所有的其他的运算都是线性的,易于分析,而S盒是非线性的,相比于其他步骤是供了更好安全性。S盒的功能就是一种简单的”代替“操作。S盒是将48比特压缩成32比特,S盒接受特定数量的输入48比特,经过8个盒将其转换为32比特输出。
一个S盒就是一个4行16列的表,盒中的每一项都是一个4位二进制数表示的十进制数。S盒的6个输入确定了其对应的那个盒。输入的高低两位做为行数H,中间四位做为列数L,在S-BOX中查找第H行L列对应的数据。
IDEA(nternational Data Enryption Algorithm)
IDEA(nternational Data Enryption Algorithm)是国际数据加密算法的简记,是一个分组加密处理算法,其明文和密文分组都是64比特,密钥长度为128 比特。 IDEA 算法能够接受64比特分组加密处理,同一算法既可用于加密又可用于解密,该算法的设计思想是”混合使用来自不同代数群中的运算”。
参与AES 的候选算法中,Rinae 提供了安全性、软件和硬件性能、低内存需求以及灵活性的最好的组合,因此美国国家标准技术研究所(NIST)确定选择Rindael 作为AES。AESAdvanced Encryption Standard)算法必须满足下面的要求
密码必须是没有密级的,绝不能像商业秘密那样来保护它
算法的全部描述必须公开披露
密码必须可以在世界范围内免费使用
密码系统支持至少128 比特长的分组;
密码支持的密钥长度至少为128 、192 和256 比特。
RSA 算法
RSA 算法是非对称算法,在RSA 加密算法中,公钥和私钥都可以用于加密消息,用于加密消息的密钥与用于解密消息的密钥相反。RSA 算法提供了一种保护网络通信和数据存储的机密性、完整性、真实性和不可否认性的方法。相关数学名词理解:因数、素数、余数、模运算、逆元、欧拉函数、欧几里得算法( 辗转求余于RSA算法基于大整数因子分解的困难性,该算法的步骤如下
第一步,生成两个大素数p和q
第二步,计算这两个素数的乘积n=pq。
第三步,计算小于n 并且与n 互素的整数的个数,即欧拉函数(n)=(p-1)(g-1)。
第四步,选取一个随机数e,且满足1<e< (n),并且e和 (n)互素,即gcd(e, (n))=1。
第五步,计算d=e-1mod (n)。
第六步,保密d、p 和q,而公开n 和e,即d 作为私钥,而 n和e 作为公钥。
国产密码算法
目前,已经公布的国产密码算法主要有SM1分组密码算法、SM2 圆曲线公钥密码算法、SM3密码杂凑算法、SM4分组算法、SM9 标识密码算法。
SM1算法未公开,只能集成在芯片中。
SM2算法基于圆曲线,因1024位的RSA算法面临威胁,我国用SM2替换RSA算法SM3杂凑(哈希)算法主要用于数字签名及验证、消息认证码生成及验证、随机数生成。SM4 无线局域网标准的分组加密算法,对标AES。
SM9是标识密码算法主要用于身份认证,加密强度等同于3072位密钥的RSA加密算法
Hash函数
杂凑函数简称Hash 函数,它能够将任意长度的信息转换成固定长度的哈希值(又称数字摘要或消息摘要 ),并且任意不同消息或文件所生成的哈希值是不一样的。
Hash算法
常见的Hash算法有MD5、SHA和SM3
MD5(Message Digest Algorithm-5)算法以512位数据块为单位来处理输入,产生128 位的消息摘要,即MD5能产生128 比特长度的哈希值。MD5 使用广泛,常用在文件完整性检查。SHA(Secure Hash Algorithm)算法与MD5 的设计原理类似,同样也以512 位数据块为单位来处理输入,产生160位的哈希值,具有比MD5 更强的安全性。
SHA 算法的安全性不断改进,已发布的版本有SHA-2、SHA-3。SHA 算法立生的哈希值长度有SHA-224、SHA-256、SHA-384、SHA-512等
SM3 是国家密码管理局于2010 年公布的商用密码杂凑算法标准。该算法消息分组长度为512 比特,输出HASH值长度为256 比特,采用Merkle-Damgard 结构。
数字签名
数字签名(Diqital Siqnature)是指签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果。该结果只能用签名者的公钥进行验证,用于确认待签名数据的完整性、签名者身份的真实性和签名行为的抗抵赖性。
数字签名至少应满足以下三个条件:
- 非否认。签名者事后不能否认自己的签名。
- 真实性。接收者能验证签名,而任何其他人都不能伪造签名。
- 可鉴别性。当双方关于签名的真伪发生争执时,第三方能解决双方之间发生的争执。
一个数字签名方案一般由签名算法和验证算法组成。签名算法密钥是秘密的,只有签名的人掌握,而验证算法则是公开的,以便他人验证。典型的数字签名方案有RSA 签名体制、Rabin签名体制、EIGamal 签名体制和DSS(DataSignature Standard) 标准。
签名与加密的不同之处在于,加密的目的是保护信息不被非授权用户访问,而签名是使消息接收者确信信息的发送者是谁,信息是否被他人篡改。
推荐文章 必看
https://blog.csdn.net/TheSkyLee/article/details/108699243
密码管理
- 《中华人民共和国密码法》明确规定,密码分为核心密码、普通密码和商用密码。
商用密码产品与使用网络关键设备和网络安全专用产品的商用密码服务实行强制检测认证制度。 - 数字证书
数字证书(Digital Certificate)也称公证书,是由证书认证机构(CA)签名的包含公开密拥有者信息、公开密钥签发者信息、有效期以及扩展信息的一种数据结构。
数字证书按类别可分为个人证书、机构证书和设备证书,按用途可分为签名证书和加密证书。管理数字证书,一般是基于PK1技术建立数字证书认证系统(简称为CA)。CA 提供数字证书的申请、审核、签发查询、发布以及证书吊销等全生命周期的管理服务。数字证书认证系统的构成主要有目录服务器、OCSP 服务器(互联网协议,查询数字证书状态 )、注册服务器、签发服务器等
安全协议
Diffie-Hellman 密钥交换协议
Difie-Hellman 密钥交换协议基于求解离散对数问题的困难性。
SSH
SSH 是Secure Shell 的缩写,即安全外壳”,它是基于的安全应用协议,由SSH 传输层协议、SSH 用户认证协议和SSH 连接协议三个子协议组成,各协议分工合作,实现加密、认证、完整性检查等多种安全服务。
用户为了认证服务器的公钥真实性,有三种方法来实现
- 第一种,用户直接随身携带服务器公钥;
- 第二种,从公开信道下载服务器的公钥和它对应的指纹并验证
- 第三种,通过PKI(公基础设施)技术来验证服务器。
在实际的应用中,SSH 在端口转发技术的基础上,能够支持远程登录(lelnet)、rsh、rlogin 、文件传输(scp)等多种安全服务。Linux 系统一般提供SSH 服务,SSH的服务进程端口通常为22虽然
SSH是一个安全协议,但是也有可能受到中间人攻击和拒绝服务攻击。
相关文章:
软考-密码学概述
本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷) 本文为追加文章,后期慢慢追加 by 2023年10月 密码学基本概念 密码学的主要目的是保持明文的秘密以防止攻击者获知,而密码分…...

windows 2003、2008远程直接关闭远程后设置自动注销会话
1、2003系统: 按开始—运行—输入“tscc.msc”,打开“终端服务配置”。 单击左边窗口的“连接”项,右边窗口中右击“RDP-TCP”,选择“属性”。 单击“会话”项,勾选“替代用户设置”,在“结束已断开的会话”…...
iOS BUG UIView转UIImage模糊失真
iOS BUG UIView转UIImage模糊失真 ##UIView转成Image - (UIImage *)capture {UIGraphicsBeginImageContextWithOptions(self.bounds.size, YES, 0.0);[self.layer renderInContext:UIGraphicsGetCurrentContext()];UIImage *img UIGraphicsGetImageFromCurrentImageContext(…...

如何在10分钟内让Android应用大小减少 60%?
一个APP的包之所以大,主要包括一下文件 代码libso本地库资源文件(图片,音频,字体等) 瘦身就主要瘦这些。 一、打包的時候刪除不用的代码 buildTypes {debug {...shrinkResources true // 是否去除无效的资源文件(如…...
网络代理技术:保障隐私与增强安全
在当今数字化的世界中,网络代理技术的重要性日益凸显。无论您是普通用户还是网络工程师,了解如何使用代理技术来保护隐私和增强网络安全都是至关重要的。本文将深入探讨Socks5代理、IP代理以及它们在网络安全和隐私保护中的关键作用。 1. Socks5代理&am…...

数据结构 | (二) List
什么是 List 在集合框架中, List 是一个接口,继承自 Collection 。 Collection 也是一个接口 ,该接口中规范了后序容器中常用的一些方法,具体如下所示: Iterable 也是一个接口,表示实现该接口的类是可以逐个…...

[NewStarCTF 2023 公开赛道] week1 Crypto
brainfuck 题目描述: [>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<-]>>>>>>>.>----.<-----.>-----.>-----.<<<-.>>..…...
C语言中文网 - Shell脚本 - 0
教程目录如下: 第1章 Shell基础(开胃菜) 1. Shell是什么?1分钟理解Shell的概念! 2. Shell是运维人员必须掌握的技能 3. 常用的Shell有哪些? 4. 进入Shell的两种方式 5. Linux Shell命令的基本格式 6.…...

Transformer预测 | Pytorch实现基于Transformer 的锂电池寿命预测(CALCE数据集)
文章目录 效果一览文章概述模型描述程序设计参考资料效果一览 文章概述 Pytorch实现基于Transformer 的锂电池寿命预测,环境为pytorch 1.8.0,pandas 0.24.2 随着充放电次数的增加,锂电池的性能逐渐下降。电池的性能可以用容量来表示,故寿命预测 (RUL) 可以定义如下: SOH(t…...

2023年【通信安全员ABC证】找解析及通信安全员ABC证考试总结
题库来源:安全生产模拟考试一点通公众号小程序 通信安全员ABC证找解析参考答案及通信安全员ABC证考试试题解析是安全生产模拟考试一点通题库老师及通信安全员ABC证操作证已考过的学员汇总,相对有效帮助通信安全员ABC证考试总结学员顺利通过考试。 1、【…...
前端框架Vue2.0+Vue3.0学习笔记01
一、Vue技术_课程简介 1、前端框架小白 2、熟练掌握Vue2 3、轻松玩转Vue3 ①、vue基础 ②、vue-cli ③、vue-router ④、vuex ⑤、element-ui ⑥、vue3 二、Vue技术_Vue简介 1、Vue是什么? 一套用于构建用户界面(把你拿到手里的数据…...

iOS App上架全流程及相关处理
iOS app上架总体流程: 一、IOS上架整个流程 1、申请开发者账号 2、创建APP ID及申请证书 3、itunes connect 创建APP 4、打包 上传APP 5、提交APP,上线成功 1、申请开发者账号 苹果开发者账号主要分为三种:个人账号、公司账号、企业账…...

解决WordPress升级后提示:无需升级,您的WordPress数据库已经是最新的了
问题描述 当升级了 WordPress 6.3 后,登录后台出现了提示:无需升级,您的WordPress 数据库已经是最新的了。并且无法进入后台了。 出现这个问题的原因可能是你网站开启了 Memcached 缓存。 如何验证是否开启了 Memcached 缓存?检…...

springcloud之项目实战搭建单体
写在前面 在上篇文章 中我们介绍了项目的整体内容以及架构,本文就开始实现一个单体的版本,在之后的文章中,在使用springcloud相关组件将这个单体的版本一步步的拆分为微服务的版本,在开始之前再贴下组件图: 本文我们分…...

Mac 点击桌面 出现黑边框 解决
1、桌面黑框效果 2、解决:设置为 仅在台前调度中...

深度学习(2)---循环神经网络(RNN)
文章目录 一、序列数据和语言模型1.1 序列数据1.2 语言模型 二、循环神经网络(RNN)2.1 概述2.2 门控循环单元(GRU)2.3 长短期记忆网络(LSTM) 一、序列数据和语言模型 1.1 序列数据 1. 在深度学习中,序列数据(Sequence data)是指具有前后顺序…...
[NOIP2010 提高组] 机器翻译
[NOIP2010 提高组] 机器翻译 题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 题目描述 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词…...

配置文件生成器-秒杀SSM的xml整合
配置文件生成器-秒杀SSM的xml整合 思路: 通过简单的配置,直接生成对应配置文件。 maven坐标 <dependencies><!-- 配置文件生成 --><dependency><groupId>org.freemarker</groupId><artifactId>freemarker<…...

小黑开始了拉歌训练,第一次进入部室馆,被通知要去当主持人心里有些紧张的leetcode之旅:337. 打家劫舍 III
小黑代码(小黑卡在了bug中,上午一步步探索做出,非常NB!!!) # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left lef…...

flutter开发实战-inappwebview实现flutter与Javascript方法调用
flutter开发实战-inappwebview实现flutter与Javascript方法调用 在使用inappwebview时候,需要flutter端与JS进行交互,调用相应的方法,在inappwebview中的JavaScript Handlers。 一、JavaScript Handlers 要添加JavaScript Handlers&#…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...

破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
第八部分:阶段项目 6:构建 React 前端应用
现在,是时候将你学到的 React 基础知识付诸实践,构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段,你可以先使用模拟数据,或者如果你的后端 API(阶段项目 5)已经搭建好,可以直接连…...