密码学知识点梳理
密码学知识点梳理目录第一章 概论第二章 古典密码第三章 分组密码第四章 流密码第五章 杂凑函数第六章 公钥密码第一章 概论密码学发展历史经历了五个发展阶段。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
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!