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

软考-密码学概述

本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷)

本文为追加文章,后期慢慢追加

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是一个安全协议,但是也有可能受到中间人攻击和拒绝服务攻击。

相关文章:

软考-密码学概述

本文为作者学习文章&#xff0c;按作者习惯写成&#xff0c;如有错误或需要追加内容请留言&#xff08;不喜勿喷&#xff09; 本文为追加文章&#xff0c;后期慢慢追加 by 2023年10月 密码学基本概念 密码学的主要目的是保持明文的秘密以防止攻击者获知&#xff0c;而密码分…...

windows 2003、2008远程直接关闭远程后设置自动注销会话

1、2003系统&#xff1a; 按开始—运行—输入“tscc.msc”&#xff0c;打开“终端服务配置”。 单击左边窗口的“连接”项&#xff0c;右边窗口中右击“RDP-TCP”&#xff0c;选择“属性”。 单击“会话”项&#xff0c;勾选“替代用户设置”&#xff0c;在“结束已断开的会话”…...

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的包之所以大&#xff0c;主要包括一下文件 代码libso本地库资源文件&#xff08;图片&#xff0c;音频&#xff0c;字体等&#xff09; 瘦身就主要瘦这些。 一、打包的時候刪除不用的代码 buildTypes {debug {...shrinkResources true // 是否去除无效的资源文件(如…...

网络代理技术:保障隐私与增强安全

在当今数字化的世界中&#xff0c;网络代理技术的重要性日益凸显。无论您是普通用户还是网络工程师&#xff0c;了解如何使用代理技术来保护隐私和增强网络安全都是至关重要的。本文将深入探讨Socks5代理、IP代理以及它们在网络安全和隐私保护中的关键作用。 1. Socks5代理&am…...

数据结构 | (二) List

什么是 List 在集合框架中&#xff0c; List 是一个接口&#xff0c;继承自 Collection 。 Collection 也是一个接口 &#xff0c;该接口中规范了后序容器中常用的一些方法&#xff0c;具体如下所示&#xff1a; Iterable 也是一个接口&#xff0c;表示实现该接口的类是可以逐个…...

[NewStarCTF 2023 公开赛道] week1 Crypto

brainfuck 题目描述&#xff1a; [>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<-]>>>>>>>.>----.<-----.>-----.>-----.<<<-.>>..…...

C语言中文网 - Shell脚本 - 0

教程目录如下&#xff1a; 第1章 Shell基础&#xff08;开胃菜&#xff09; 1. Shell是什么&#xff1f;1分钟理解Shell的概念&#xff01; 2. Shell是运维人员必须掌握的技能 3. 常用的Shell有哪些&#xff1f; 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证考试总结

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 通信安全员ABC证找解析参考答案及通信安全员ABC证考试试题解析是安全生产模拟考试一点通题库老师及通信安全员ABC证操作证已考过的学员汇总&#xff0c;相对有效帮助通信安全员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是什么&#xff1f; 一套用于构建用户界面&#xff08;把你拿到手里的数据&#xf…...

iOS App上架全流程及相关处理

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

解决WordPress升级后提示:无需升级,您的WordPress数据库已经是最新的了

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

springcloud之项目实战搭建单体

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

Mac 点击桌面 出现黑边框 解决

1、桌面黑框效果 2、解决&#xff1a;设置为 仅在台前调度中...

深度学习(2)---循环神经网络(RNN)

文章目录 一、序列数据和语言模型1.1 序列数据1.2 语言模型 二、循环神经网络(RNN)2.1 概述2.2 门控循环单元(GRU)2.3 长短期记忆网络(LSTM) 一、序列数据和语言模型 1.1 序列数据 1. 在深度学习中&#xff0c;序列数据&#xff08;Sequence data&#xff09;是指具有前后顺序…...

[NOIP2010 提高组] 机器翻译

[NOIP2010 提高组] 机器翻译 题目背景 小晨的电脑上安装了一个机器翻译软件&#xff0c;他经常用这个软件来翻译英语文章。 题目描述 这个翻译软件的原理很简单&#xff0c;它只是从头到尾&#xff0c;依次将每个英文单词用对应的中文含义来替换。对于每个英文单词&#xf…...

配置文件生成器-秒杀SSM的xml整合

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

小黑开始了拉歌训练,第一次进入部室馆,被通知要去当主持人心里有些紧张的leetcode之旅:337. 打家劫舍 III

小黑代码&#xff08;小黑卡在了bug中&#xff0c;上午一步步探索做出&#xff0c;非常NB!!!&#xff09; # 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时候&#xff0c;需要flutter端与JS进行交互&#xff0c;调用相应的方法&#xff0c;在inappwebview中的JavaScript Handlers。 一、JavaScript Handlers 要添加JavaScript Handlers&#…...

alsa pcm设备之硬件参数

硬件参数包含了stream描述比如格式,采样率,通道数,和ringbuffer 圆形缓存区大小等. 使用snd_pcm_hw_params_t ,ALSA pcm设备使用了参数重定义系统相关的硬件参数,应用程序首先选择全范围的配置, 然后应用程序设置单个参数,直到所有参数都是基本的(确定的). 格式 量化位數&#…...

websocket拦截

python实现websocket拦截 前言一、拦截的优缺点优点缺点二、实现方法1.环境配置2.代码三、总结现在的直播间都是走的websocket通信,想要获取websocket通信的内容就需要使用websocket拦截,大多数是使用中间人代理进行拦截,这里将会使用更简单的方式进行拦截。 前言 开发者工…...

深度强化学习之 PPO 算法

深度强化学习之 PPO 算法 强化学习原理学习策略 基于行为价值 & 基于行为概率策略梯度算法&#xff1a;计算状态下所有行为的概率演员 - 评论家算法&#xff1a;一半基于行为价值&#xff0c;一半基于行为概率DQN 算法&#xff08;深度Q网络&#xff09;Q-Learning&#x…...

iPhone升级iOS17出现无法连接互联网的错误提示怎么办?

最新的iOS 17系统已经发布了快一个月了&#xff0c;很多人都已升级体验更多全新功能&#xff0c;但有部分用户却在升级过程中遇到一些问题&#xff1a;如无法验证更新&#xff0c;iOS17验证失败&#xff0c;因为您不再连接到互联网、 iPhone无法检查更新等错误问题。明明网络稳…...

Spring:处理@Autowired和@Value注解的BeanPostProcessor

AutowiredAnnotationBeanPostProcessor,它实现了MergedBeanDefinitionPostProcessor,因此会调用postProcessMergedBeanDefinition方法。 它实现了InstantiationAwareBeanPostProcessor,因此在属性注入时会调用postProcessPropertyValues方法 如果Autowired注解按类型找到了大…...

极坐标系下的交换积分次序

极坐标系下的交换积分次序 我把极坐标系下的交换积分次序总结为动静与静动之间的转换&#xff0c;下面通过一个例子感受一下 ρ 1 、 ρ 1 cos ⁡ θ \rho1、\rho1\cos\theta ρ1、ρ1cosθ ∫ 0 π / 2 d θ ∫ 1 1 cos ⁡ θ f ( ρ cos ⁡ θ , ρ sin ⁡ θ ) ρ d…...

MySQL命令行中文乱码问题

MySQL命令行中文乱码问题&#xff1a; 命令行界面默认字符集是gbk&#xff0c;若字符集不匹配会中文乱码或无法插入中文。 解决办法&#xff1a;执行set names gbk; 验证&#xff1a; 执行命令show variables like ‘char%’;查看默认字符集。 创建数据库设置字符集utf8&…...

图论---图的遍历

在图论中&#xff0c;图的遍历一般有两种&#xff0c;分别为DFS&#xff08;深度优先遍历&#xff09;、BFS&#xff08;广度优先遍历&#xff09;&#xff0c;以下是这两种遍历方式的模板&#xff1a; DFS&#xff08;深度优先搜索&#xff09; 代码框架&#xff1a; void …...

AM@无穷小和无穷大

文章目录 abstract本文符号说明无穷小无穷小和自变量变化过程无穷小和函数极限的关系定理&#x1f47a;证明 无穷大无穷大不是数极限无穷大的说法证明函数极限为无穷大 无穷大和无穷小见的关系定理无穷小无穷大的运算法则 abstract 无穷小和无穷大的概念和相关性质 本文符号说…...

玄子Share- IDEA 2023 SpringBoot 热部署

玄子Share- IDEA 2023 SpringBoot 热部署 修改 IDEA 部署设置 IDEA 勾选如下选项 新建 SpringBoot 项目 项目构建慢的将 Spring Initializr 服务器 URL 改为阿里云&#xff1a;https://start.aliyun.com/ 在这里直接勾选Spring Boot Devtools插件即可 测试 切出 IDEA 项目文…...

wordpress添加喜欢or分享按钮/端点seo博客

1.为了完成数据的备份&#xff0c;通常在更新表的时候备份一个&#xff0c;如果有问题&#xff0c;那么需要再查找更新到原表中。 将表2中的指定字段的记录更新到表1中: UPDATE gl_journal_line l1 INNER JOIN gl_journal_line_copy4 l2 ON l1.id l2.id and l1.transa…...

兰州新增疫情最新消息/厦门seo网站管理

例如:Linux查询结果如下 第一个字母,表示该文件的类型 “-”表示普通文件; “d”表示目录; “l”表示链接文件; “p”表示管理文件; “b”表示块设备文件; “c”表示字符设备文件; “s”表示套接字文件; 此处有四个普通文件和一个目录,其中wqtmp目录下有一个文本文…...

上海正规网站建设耗材/合肥网络推广软件

场景开发中经常需要用到定时任务&#xff0c;对于商城来说&#xff0c;定时任务尤其多&#xff0c;比如优惠券定时过期、订单定时关闭、微信支付2小时未支付关闭订单等等&#xff0c;都需要用到定时任务&#xff0c;但是定时任务本身有一个问题&#xff0c;一般来说我们都是通过…...

做mv主题网站/重庆百度seo公司

https://zhuanlan.zhihu.com/p/29150809 一、数据库有锁机制的原因。 数据库锁定机制简单来说&#xff0c;就是数据库为了保证数据的一致性和有效性&#xff0c;而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制&#xff…...

网站原创文章规范/关键词排名方法

https://www.geogebra.org/calculator...

乌鲁木齐建设银行招聘网站/独立站seo怎么做

题目 本题是2016年中国海洋大学研究生入学考试910高级程序设计程序填空题第1题。 题目: 求前n项和:1/2,2/3,3/5,5/8…(10分) 以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj。QQ:2394799692 一、解题思路 思路: 找规律:当前项…...