![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
密码学
安冉冉
郑州大学研究生在读
本科:信息安全
研究生:网络空间安全
研究方向:多模态虚假新闻检测
展开
-
维吉尼亚密码
维吉尼亚密码的简要介绍原创 2023-10-09 16:25:38 · 515 阅读 · 0 评论 -
SM3
SM3密码杂凑算法适用于商用密码应用中的数字签名和验证,消息认证码的生成与验证以及随机数的生成,可以满足多种密码应用的安全需求。输入长度<2^64bit输出256bit散列值原创 2020-08-22 09:22:30 · 5260 阅读 · 0 评论 -
Hash算法——MD4 and MD5
MD4 由Ron Rivest设计 1990年特点:对任意长度的输入,产生128位输出;其安全性不依赖任何假设,适合高速实现MD4公布不久,一些密码学家发现,如果去掉MD4算法的第一轮和最后一轮,则算法是不安全的,但他们并没有证明整个算法是不安全的。MD5 由Ron Rivest设计 1991年对MD4的改进输入分组 512bit输出 128bit...原创 2020-08-22 08:50:52 · 2322 阅读 · 0 评论 -
随机数——不可预测性的源泉
一. 随机数的性质随机性——不存在统计学偏差,是完全杂乱的数列弱伪随机数不可预测性——不能从过去的数列推测出下一个出现的数强伪随机数不可重现性——除非将数列本身保存下来,否则不能重现相同的数列真随机数反复掷骰子生成的数列具备不可重现性!二. 伪随机数生成器PRNG1.杂乱的方法使用复杂算法所生成的数列大多数都会具有很短的周期。如果程序员不能够理解算法的详细内容,那么就无法判断出所生成的随机数是否具备不可预测性。2.线性同余法Rn+1 = (A*Rn+C)modM将当前的伪随原创 2020-08-22 08:11:12 · 1802 阅读 · 0 评论 -
密钥——秘密的精华
会话密钥:每次通信只能使用一次的密钥主密钥:一直被重复使用的密钥内容加密密钥CEK:会话密钥密钥加密密钥KEK:主密钥一. 密钥的管理1. 生成密钥(1)用随机数生成密钥(2)用口令生成密钥将口令输入单向散列函数,然后将得到的散列值作为密钥使用。为防止字典攻击(一种事先进行计算并准备好候选密钥列表的方法),需要在口令上加盐(随机数),然后输入单向散列函数,即“基于口令的密码PBE”2. 配送密钥事先共享密钥/使用密钥分配中心/使用公钥密码Diffie-Hellman密钥交换:通信双方原创 2020-08-22 08:11:45 · 293 阅读 · 0 评论 -
数字签名——消息到底是谁写的
一. 数字签名根据消息内容生成的一串“只有自己才能计算出来的数值”,即数字签名的内容是随消息的改变而改变的。不能保证机密性签名的生成和验证:1.生成消息签名的行为:发送者完成,对消息签名,意味着“我认可该消息”2.验证消息签名的行为:接收者/需要验证消息的第三方完成用公钥加密所得到的密文,只能用与该公钥配对的私钥才能解密;同样的,用私钥加密所得到的密文,只能用与该私钥配对的公钥才能解密。也就是说,如果用某个公钥成功解密了密文,那么就能够证明这段密文使用与该公钥配对的私钥进行加密所得的。用私钥进原创 2020-08-21 13:32:49 · 348 阅读 · 1 评论 -
证书——为公钥加上数字签名
一. 证书公钥是否合法——>证书:将公钥当作一条消息,由一个可信的第三方对其签名后所得到的公钥。公钥证书:PKC认证机构(CA):认定“公钥实属于此人”并能够生成数字签名的个人或者组织。(1)Bob生成密钥对,将私钥自行保管。密钥对也可以由认证机构代为生成。(3)Trent对Bob的公钥加上数字签名。为了生成数字签名,需要Trent自身的私钥,因此Trent需要事先生成密钥对。证书标准规范X.509:签名前的证书——签名对象的信息数字签名算法——对证书签名时使用的算法数字签名——对原创 2020-08-21 13:32:34 · 499 阅读 · 0 评论 -
消息认证码——消息被正确传送了吗?
一. 消息认证码(MAC):完整性(消息没有被篡改)认证(消息来自正确的发送者)输入:任意长度的消息/发送者和接收者之间共享的密钥输出:固定长度的长度(MAC值)消息认证码是一种与密钥相关联的单向散列函数,没有共享密钥的人就无法计算MAC值,哪怕消息中的1bit发生变换,MAC值也会发生变换。二. 应用实例SWIFT环球银行金融电信协会IPsecSSL/TLS三. 实现方式1.使用单向散列函数 SHA-1,MD52.使用分组密码将分组密码的密钥作为消息认证码的共享密钥来使用,并原创 2020-08-21 13:31:55 · 754 阅读 · 0 评论 -
消息认证码——HMAC
HMAC:使用单项散列函数来构造消息认证码HMAC-SHA-1 分组长度512bitHMAC-MD5HMAC-RIPEMD(1)密钥填充如果密钥比分组长度要长,则要用单项散列函数求出密钥的散列值,然后将这个散列值作为HMAC的密钥。(2)填充后的密钥与ipad的XORipad是将00110110这一比特序列(16进制的36)不断循环反复直到达到分组长度所形成的比特序列。(3)与消息组合将和密钥相关的比特序列(ipadkey)附加在消息的开头。(4)计算散列值将(3)的结果输入单向散列原创 2020-08-21 13:31:35 · 470 阅读 · 0 评论 -
单向散列函数——SHA-1
一. 加密算法描述1. 填充(a)添加1:在消息末尾添加一个1bit的“1”(b)添加0:添加0直到消息长度为512的整数倍,最后一个512bit的分组的最后64bit需要空出来以保存原始的消息长度。(c)添加原始的消息长度:消息长度 < 2^64 bit2. 计算W0~W79将输入分组的512bit分成32bit*16组,并将它们命名为W0~W15。其他的:3. 分组处理通过上述80个步骤的反复执行,SHA-1就能够将已经填充的信息全部混入这160比特的内部状态中,而SHA-1原创 2020-08-21 13:31:08 · 841 阅读 · 0 评论 -
单项散列函数——获取消息的“指纹”
单向散列函数(不是加密):输入称为消息,输出称为散列值。可根据消息的比特序列计算出固定长度的散列值。单向散列函数的性质:根据任意长度的消息计算出固定长度的散列值能够快速计算出散列值消息不同散列值也不同两个不同的消息产生同一个散列值的情况称为碰撞弱碰撞性:找到和该条消息具有相同散列值的另外一条消息是非常困难的;强碰撞性:找到散列值相同的两条消息是非常困难的。具备单向性单向性:无法通过散列值反算出消息的性质。单向散列函数的实际应用:检测软件是否被篡改基于口令的加密PBE消息认证.原创 2020-08-21 13:30:33 · 186 阅读 · 0 评论 -
混合密码系统——对称密码提高速度,公钥密码保护会话密钥
混合密码技术:伪随机数生成器,对称密码,公钥密码只要发送者和接收者事先约定好密文的结构,将两者分离的操作就很容易完成。公钥密码和对称密码的密码长度必须具备同等的强度。公钥密码强度应该高于对称密码。...原创 2020-08-21 13:30:01 · 219 阅读 · 0 评论 -
公钥密码——RSA
密钥对:公钥&私钥公钥:E, N私钥:D, N加密:密文 = 明文 ^ E modN解密:明文 = 密文 ^ D modN一. 生成密钥对(1)求NN = p * q (p, q 为很大的质数)(2)求LL = lcm(p-1, q-1) (L是p-1和q-1的最小公倍数)(3)求E1 < E < Lgcd(E, L) = 1 (E和L的最大公约数为1,即E, L 互质)(4)求D1 < D < LE * D modL = 1 (要保证存原创 2020-08-21 13:29:18 · 421 阅读 · 0 评论 -
公钥密码(非对称密码)—— 用公钥加密,用私钥解密
用公钥加密,用私钥解密原创 2020-08-21 13:28:48 · 803 阅读 · 0 评论 -
分组密码的模式
根据加密时每个区块间的关联方式,可分为四个加密模式:(1)电子密文方式(ECB)每个加密区块依次独立加密,产生独立的密文区块,不受其他区块的影响。优点:加密速度快;一个区块传输出错,不会影响其他区块缺点:容易暴漏明文的数据模式(2)密文分组链接方式(CBC)第1个加密区块先与初始向量做异或运算再进行加密。其他每个加密区块在加密之前必须与前一个加密区块的密文做一次异或运算,再进行加密。优点:即使在明文中出现多次相同的明文,也会产生不同的密文;前面的密文内容破坏,后面的密文也将被破坏,无法顺利解原创 2020-08-15 22:50:06 · 311 阅读 · 0 评论 -
分组密码——IDEA
IDEA 国际数据加密算法由来学嘉博士和J.L.Massey合作完成明/密文分组 64bit密钥长度 128bit一. 加密算法描述混淆:表明加密算法的密文与明文及密钥关系十分复杂,无法从数学上描述或统计上分析。扩散:表示明文中的任一位及密钥中的任一位,对全体密文位都有影响。(1)比特为单位的异或(2)定义在模2^16的模加法运算(3)定义在模2^16+1的模乘法运算混淆特性的实现:3个函数中的任意两个函数,都无法满足“分配律”3个函数中的任意两个函数,都无法满足“结合律”因此原创 2020-08-15 22:10:00 · 828 阅读 · 1 评论 -
分组密码——SM4
SM4:商用算法密码前身:SMS4算法分组长度:128bit密钥长度:128bit加密/密钥扩展算法:32轮非线性迭代结构具有分组密码的典型特征:加密算法与解密算法结构相同,只是轮密钥的使用顺序相反。一. SM4算法描述...原创 2020-08-15 21:34:23 · 1525 阅读 · 0 评论 -
分组密码---AES原理详解
高级数据加密标准 AES**(SP结构)**Rijndael 提交者:Joan Daemen & Vincent Rijmen分组长度:128bit密钥长度:128/192/256bit一. AES的数学基础01010111组成的字节可表示为 x^6 + x^4 + x^2 + x + 1,也可以为16进制‘57’选定m(x)为所有次数为8的不可约多项式列表中的一个。若a(x) * b(x) modm(x) = 1,则b(x)为a(x)的逆元。有限环GF(2^8)[x] / (x原创 2020-08-14 19:46:57 · 1871 阅读 · 0 评论 -
分组密码——DES原理讲解
数据加密算法标准(Data Encryption Standard, DES)1.设计思想(1)初始和逆初始置换、置换P16次:把数据彻底打乱重排。(2)选择置换E:数据彻底打乱重排;把32位输入扩展为48位。(3)S盒:非线性变换(数据压缩),其他都是线性变换。所以保密的关键性是选择S盒。解释:线性变换意味着可以将空间中的向量围绕零点进行旋转伸缩,但不能将其弯曲;非线性变换将空间进行了扭曲。线性:满足齐次性,可加性( f(a+b)=f(a)+f(b),f(ka)=kf(a) ),反之非线性。原创 2020-07-26 00:11:39 · 1814 阅读 · 0 评论 -
分组密码(对称密码)
分组密码:数据在密钥的作用下,一组一组、等长地被处理,且通常情况是密文、明文等长。特点:高强度、高速率、便于软硬实现原创 2020-07-25 18:23:47 · 1785 阅读 · 1 评论 -
密码学家的工具箱
根据密钥的使用方法,密码分为对称密码和公钥密码两种。对称密码:在加密和解密时使用同一密钥公钥密码(非对称密码):在加密和解密时使用不同密钥保证机密性,防止窃听单向散列函数:保障完整性(数据是正牌的而不是伪造的)检测数据是否被篡改消息认证码:完整性&认证机制(是否来自所期待的通信对象)数字签名:防止伪装、篡改、否认伪随机数生成器(PRNG):一种能够模拟产生随机数列的算法。用于生成临时密钥(会话密钥)区分:密码:让消息内容变得无法解读隐写术:隐藏消息本身(..原创 2020-07-24 17:20:45 · 197 阅读 · 0 评论 -
密码体制分析
密码分析(密码攻击):研究密码体制的破译问题,即试图在不知道密钥的情况下,从截取到的密文恢复出明文消息或密钥。1.攻击密码系统的方法被动攻击:对一个保密系统截获密文进行分析主动攻击:非法入侵者主动对系统进行干扰,采用删除、更改、增添、重放、伪造等方法向系统加入假消息攻击方法:穷举法:对截收的密文依次用各种可解的密钥试译,直到得到有意义的明文/在不变密钥下,对所有可能的明文加密直到与截获密文一致为止(密钥空间)分析法:...原创 2020-07-24 16:50:09 · 281 阅读 · 0 评论