密码学知识点梳理

news2026/4/10 10:39:29
密码学知识点梳理目录第一章 概论第二章 古典密码第三章 分组密码第四章 流密码第五章 杂凑函数第六章 公钥密码第一章 概论密码学发展历史经历了五个发展阶段。1从远古到二战之前为第一阶段以手工和简单器械密码为主2二战到1949年为第二阶段以机械和机电密码为主31949到1976为第三阶段从机电密码发展到电子密码4第四阶段从1976年到1997 年进入现代密码阶段出现了公钥密码51997年至今是第五阶段密码进入网络时代。中国古代的密码藏头诗、滚桶密码、掩格密码、棋盘密码。第二次世界大战的著名的密码德国的Enigma密码机日本的紫密机和美军的M-209密码机。紫密机是Enigma的改进M-209是瑞典人海格林设计的密码机的改进。密码学分为密码编码学和密码分析学。密码编码学分为非对称密码和对称密码。对称密码分为序列密码和分组密码。密码分析学分为数学分析和物理分析。具体关系如下图信息安全的需求机密性、完整性、真实性、不可否认性、可用性。密钥相关处理过程密钥的产生、分配、存储、保护、销毁。1949年香农发表了论文《保密通信信息理论》。祖冲之算法ZUC是基于流密码又称作序列密码的对称算法。SM4是一种基于分组密码的对称算法。SM3是一种密码杂凑的哈希算法。SM2公钥密码和SM9标识密码是两种非对称算法SM2和SM9在2017首次正式进入ISO/IEC国际标准发布阶段。ZUC4G移动通信标准。用于信息加密和完整性保护。密码学相关知识体系|优点**/**缺点|对称密码|公钥密码|| — | — | — || 优点 | 1.算法运算速度较快 2.密钥相对较短 3.密文明文长度相同 | 1.密钥分发管理比较简单 2.支持数字签名解决了不可否认问题 || 缺点 | 1.密钥分发需要安全的通道 2.密钥量大密钥难于管理 3.难以解决不可否认问题 | 1.算法复杂处理速度慢 |第二章 古典密码古典密码分为替代密码分为单表代替密码和多表替换密码和换位密码。2.单表密码的概念明文和密码一一代换的密码。3.典型的单表密码有加法密码、乘法密码、仿射密码、随机代替密码、秘钥词组密码。4.加法密码加解密乘法密码加密CiPi/*Kimodm。仿射密码加密CiK1/*PiK2(modm)。凯撒密码(单表代替密码)加密CiPi3(mod 26) 解密PiCi-3(mod 26)维吉尼亚密码(多表替换密码)加密CiPiKi(mod 26) 解密PiCi-Ki(mod 26)带余除法abqr。整除性质abxb|a则称b能整除a。最大公因子和辗转相除法欧几里得算法实例如下同余给定一个正整数m若同余分别去除两个整数a,b所得的余数相同则称a与b模m同余记作a≡b(mod m)其充要条件为m|a-b。同余公式| || — || (1) 若a1 ≡b1 (modm),a2 ≡b2 (modm)则 ①a1 a2 ≡b1 b2 (modm),a1 –a2 ≡b1 –b2 (modm) ②a1a2 ≡b1b2 (modm) (2) 若a≡b(modm)n为正整数则an≡bn(modm)进一步有f(a) ≡f(b) (modm) 其中f(x)为一个整系数多项式 (3) 设ad≡bd(modm)若(d,m) 1则a≡b(modm) (4) 设a≡b(modm)若d|m则a≡b(modd) (5) 设a≡b(modm)若d是a,b,m的公因子则 (6) 若a≡b(modmi)i 1, 2, …,k则a≡b(mod [m1,m2, …,mk]) (7) 若a≡b(modm)则(a,m) (b,m)。 |完全剩余系欧拉函数Фm表示Zm中与m互素的数的个数。欧拉定理单表代替密码的统计分析→穷举搜索和线性分析破解。多表代替密码的统计分析→流动密码体制来源密钥、明文、密文16.多表密码核心密钥词组流动密钥17.代换密码分类单表代换实例移位密码、仿射密码、凯撒密码多表代换实例playfair密码密钥字构成密钥方阵2个字母为一组分组加密、Vigenere密码维吉尼亚密码26/*26、Vernam密码( Vernam加密法也称一次一密、博福特密码字母顺序和维吉尼亚密码相反19.单表代替密码代表凯撒密码加密和解密的方式如下图所示20.多表代替密码的代表维吉尼亚密码的加密和解密方式如下图所示密码攻击分类唯密文攻击、已知明文攻击、选择明文攻击、选择明文攻击。攻击难度比较选择密文攻击选择明文攻击已知明文攻击唯密文攻击。唯密文攻击对于密码分析者来说实现最难。**理论安全**无论拥有多少资源都不能破译/计算不可行。**实际安全**破译代价/时间超过信息自身价值/有效期。密码分析分类(1)唯密文攻击Ciphertext only破译者已知加密算法、待破译的密文(2)已知明文攻击Known plaintext破译者已知加密算法、一定数量的明文和对应的密文(3)选择明文攻击Chosen plaintext破译者已知加密算法、选定的明文和对应的密文(4)选择密文攻击Chosen ciphertext破译者已知加密算法、选定的密文和对应的明文(5)选择文本攻击Chosen text破译者已知加密算法、选定的明文和对应的密文、选定的密文和对应的明文密码学的五元组及其各自的含义明文——原始信息密文——加密后的信息密钥——加密解密时使用的参数加密算法——将明文转化为密文的算法解密算法——加密算法的逆几种密码算法的对比对称密码算法分为分组密码算法Block cipher 和 流密码算法Stream cipher。分组密码算法又称块加密算法加密步骤一将明文拆分为 N 个固定长度的明文块加密步骤二用相同的秘钥和算法对每个明文块加密得到 N 个等长的密文块加密步骤三然后将 N 个密文块按照顺序组合起来得到密文流密码算法又称序列密码算法加密每次只加密一位或一字节明文解密每次只解密一位或一字节密文常见的分组密码算法包括 AES、SM1国密、SM4国密、DES、3DES、IDEA、RC2 等常见的流密码算法包括 RC4 等。AES目前安全强度较高、应用范围较广的对称加密算法数据加密标准速度较快适用于加密大量数据的场合SM1国密采用硬件实现SM4国密可使用软件实现DES数据加密标准速度较快适用于加密大量数据的场合3DES已被淘汰或逐步淘汰的常用对称加密算法非对称密码算法Asymmetric-key Algorithm加密秘钥可以公开又称为 公钥解密秘钥必须保密又称为 私钥常见非对称算法包括RSA是一个支持变长密钥的公共密钥算法需要加密的文件块的长度也是可变的DSA数字签名算法是一种标准的 DSS数字签名标准SM2国密、DH、ECDSA、ECC 等。第三章 分组密码Kerckhoff**原则**系统的保密性不依赖于对加密体制或算法的保密而依赖于密钥。香农提出的混淆原则和扩散原则**混淆**所设计的密码应使得密钥和明文以及密文之间的依赖关系相当复杂以至于这种依赖性对密码分析者来说是无法利用的。代换Substitution**扩散**所设计的密码应使得密钥的每一位数字影响密文的许多位数字以防止对密钥进行逐段破译而且明文的每一位数字也应影响密文的许多位数字以便隐蔽明文数字统计特性。置换Permutation**子密钥扩展**每一轮都给不同的子密钥但子密钥都是由种子密钥产生的。DES****算法DES密钥长度密文长度分组长度64bits有效密钥是56比特其他用作奇偶校验DES加密过程加密包括16****轮编码每轮编码中产生48位的临时密钥并用这个密钥进行这一轮加密。**线性分析攻击方式**针对DES算法的一种已知明文攻击。差分分析攻击一种选择明文攻击方式。SM4****算法分组128bits密钥****128bits迭代32轮加解密相同差别是密钥顺序相反解/加采用32轮非线性迭代←密钥扩展算法组成初始变量算法轮非线性F函数一轮反序列变换和密钥扩展算法F函数(A)*τ(*A)()τ(A)是四个S盒查表得到输出结果LB为循环左移位后的异或结果密钥扩展算法最后1轮反序变换R(A(0),A(1),A(2),A(3))(A(3),A(2),A(1),A(0))AES****算法分组长度128比特密钥长度128/192/256比特可变基本结构SPN替代-置换网络结构迭代轮数10/12/14轮可选分别对应128/192/256比特密钥长度轮变换步骤字节代换、行移位、列混合、轮密钥加组成轮变换(128比特明文转换为128比特密文)密钥扩展128/192/256比特的主密钥通过密钥扩展算法后每轮产生128比特的轮密钥| || — ||AES****算法密钥长度与轮数对应关系|字节代换砖匠置换**有限域****GF(2^8)**上的乘法逆行移位按行移位按列读第行循环左移字节列混合AES轮密钥加比特的轮变换输出结果和比特的轮密钥异或有限域GF(p)里面的加法和乘法都是平时用的加法和乘法GF(p)的加法和乘法单位元分别是0和1**。**有限域GF()中的运算GF()中的元素表示将∈GF()看作系数在{0,1}中的多项式例如GF()中元素11000111对应的多项式为x7 x6 x2 x 1。GF(28)中的加法运算GF(28)中两个元素之和为相应的比特位模2相加或者说在多项式表示中对应的多项式之和相应的系数模2相加。例如11000111 ⊕ 01101011 10101100。相应的多项式加法为。GF()中的减法运算由于GF()中每个元素的加法逆元等于自身因此减法与加法相同。GF()中的乘法运算GF()中两个元素a与b相乘它们对应的多项式模m(x)相乘。即ca×b其中c(x) a(x)b(x) (modm(x))例 设GF()中两个元素a 11000111,b 01101011求a×b。解a与b相应的多项式乘法为所以a×b 11000111 × 01101011 10011110。分组密码的工作模式电子码本(ECB)、密码分组链接(CBC) 、计数器模式CTR、输出反馈(OFB)、密码反馈(CFB)第四章 流密码流密码的核心问题是密钥生成器的设计问题。香农观点“一次一密”是理想的密码体制。**线性反馈移位寄存器**LFSR的触发器个数成为级数级LFSR有个触发器和一个触发用种子密钥/主密钥产生周期很长的伪随机序列流的时序组合电路。当LFSR级数增大时序列周期可呈幂指数增长周期比明文还长时一次加密用不完就有“一次一密”的效果。一个n级移位寄存器由n个存储器、一个反馈函数f(an-1, …,a1,a0)组成T(tn,tn-1,…,t2,t1)****是抽头序列或反序列周期对于n级LFSR反馈函数为****例1下图是一个5级线性反馈移位寄存器其递归关系式为t 0, 1, 2, …****若初始状态为(a4,a3,a2,a1,a0) (1, 1, 0, 1, 0)表4.2****给出其状态变化情况及输出序列。则该5级LFSR的输出序列为0101100001110011011111010001001, 010110…是周期为31的循环序列。例2反推已知流密码的密文串101011和相应的明文串010101**若密钥流是使用三级线性反馈移位寄存器产生的****.**求解出密钥流建立方程求出三级LFSR的抽头值c1c2c3写出密钥流的递推关系式画出该线性反馈移位寄存器的示意图设初始状态为**(a1,a2,a3)(0,0,1)****写出输出序列周期是多少**求解过程Ki**Pi⊕Ci*****100111⊕*010101110010**明文串**抽头值·密钥流**010c1c2c3**抽头值c1c2c**3********(110)密钥流相关推导公式i1带入2中的ci值该公式4(5)如下图可得出输出序列周期是1001011…,周期为7**满足3级线性反馈序列的周期**2n-1**游程数字序列中连续出现的相同数字串。Golomb****随机性公设G1****在序列的一个周期内0与1的个数相等或至多相差1个G2****在序列的一个周期内长为l的游程占游程总数的1/2*l***且0的游程与1的游程个数相等或至多相差1个**G3**异自相关函数是一个常数。**触发器Geffe序列生成器设三个LFSR****的输出分别为ai**,bi,ci输出函数为J-K****触发器触发器的两个输入ai****,bi*****分别用J和K表示其输出ci不仅依赖输入还依赖于前一个输出*****ck-1其输出函数为**如果一个n级LFSR能够产生周期为最大值2n-1**的输出序列则称该序列为m**(****读作小m)**序列。祖冲之序列密码| || — ||ZUC算法层次框架|ZUC分为初始化状态和工作状态。ZUC密钥长度128bitsRC4****算法RC4算法是流密钥算法簇中的一类使用最广泛。RC4主要包括两个算法密钥调度算法KSA(Key Scheduling Algorithm)和伪随机生成算法PRGA(Pseudo Random Generating Algorithm)第五章 杂凑函数杂凑函数值称为杂凑值、散列值或哈希值又称为数字摘要、报文摘要或消息摘要。主要用于消息完整性认真、数字签名。将任意长度数字序列压缩成定长数字串的函数。杂凑函数的安全性要求保证杂凑函数的单向性(hH(m),已知m可以推到h,反推出消息m在计算上不可行)弱无碰撞性(已知m和杂凑值h找不到其他的m’使得H(m)H(m’)成立)强无碰撞性已知m和m’使得H(m)H(m’)在计算上不可行SHA-1****的工作流程消息最大长度分组长度512比特杂凑长度160比特。消息填充lk1448(mod512)消息扩展迭代压缩主循环共80步分4轮完成每轮迭代20步输出结果基于分组密码的杂凑函数杂凑中间值作为动态密钥消息作为动态密钥杂凑中间值和消息共同作为动态密钥**HMAC算法*也称为消息鉴别码或密码校验和。只进行消息认证的MAC保证完整性提供消息认证和加密的MAC保证完整性和机密性基于杂凑函数的消息认证码基于杂凑函数设计的MAC算法。IP和SSL协议中使用的MAC其中的杂凑函数可替换。第六章 公钥密码公钥密码概念于上世纪70年代由美国学者Diffie Hellman等分别提出。其中标志性论文是《密码学的新方向》。公钥密码应用的非对称密码体制其安全是指的计算上是安全的。公钥密码算法应满足的要求1秘密性D(E(M))M 保密条件加解密变换是一对互逆变换2实用性高效接收方B产生密钥对在计算上是容易的发方A用B公钥对消息M加密成C在计算上是容易的收方B用自己的私钥对C解密成M在计算上是容易的3安全条件敌人由B的公钥求B的私钥计算上不可行(加密变换是单向函数)敌人由B的公钥和C求明文M,计算上不可行4保真条件E(D(M))M (数字签名)数论基本知识欧拉函数φ(n) (p-1)·(q-1)(p和q是两个素数)孙子定理RSA公钥密码体制椭圆曲线密码体制素域GF§上的椭圆曲线Weierstrass方程求解椭圆曲线上的点椭圆曲线基本概念及运算规则ElGamal体制Alice****要发送消息m给****Bob通信过程****如下分组密码| | | | | | || — | — | — | — | — | — || |结构|分组|密钥|轮次|加解密||DES|FESITEL|64|56|16|结构相同密钥反序||SM4|128|128|32|结构相同密钥反序||AES|SPN|128|128/192/256|10/12/14|解密逆变换密钥反序|流密码| | | || — | — | — ||算法|ZUC|RC4|| 流程 | 初始化前32步工作阶段34步始 | 密钥调度算法KSA和随机数生成算法PRGA || 密钥长度 | 128 | 1-256 |各个杂凑算法| | | | || — | — | — | — ||算法|MD5|SHA-1|SM3||摘要长度| 128位 | 160位 | 256位 ||基本处理单位| 512位 | 512位 | 512位 ||迭代轮数| | 80 | 64 |《网络安全从零到精通全套学习大礼包》96节从入门到精通的全套视频教程免费领取如果你也想通过学网络安全技术去帮助就业和转行我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。网络安全学习路线图想要学习 网络安全作为新手一定要先按照路线图学习方向不对努力白费。对于从来没有接触过网络安全的同学我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线大家跟着这个路线图学习准没错。配套实战项目/源码所有视频教程所涉及的实战项目和项目源码学习电子书籍学习网络安全必看的书籍和文章的PDF市面上网络安全书籍确实太多了这些是我精选出来的面试真题/经验以上资料如何领取**学习网络安全必看的书籍和文章的PDF市面上网络安全书籍确实太多了这些是我精选出来的面试真题/经验以上资料如何领取文章来自网上侵权请联系博主

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2502575.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

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…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…