软考-密码学概述
本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷)
本文为追加文章,后期慢慢追加
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&#…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
Java多线程实现之Runnable接口深度解析
Java多线程实现之Runnable接口深度解析 一、Runnable接口概述1.1 接口定义1.2 与Thread类的关系1.3 使用Runnable接口的优势 二、Runnable接口的基本实现方式2.1 传统方式实现Runnable接口2.2 使用匿名内部类实现Runnable接口2.3 使用Lambda表达式实现Runnable接口 三、Runnabl…...
