![](https://img-blog.csdnimg.cn/2f64488f0885462da69857e4fd4595c1.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
密码基础
文章平均质量分 71
密码学基础
游鲦亭长
这个作者很懒,什么都没留下…
展开
-
RSA加密算法因N强度不足破解实例
(1)对于N不小于1024比特的情况,有限时间内因数分解N是很困难的。很明显,这里N只有64比特,只需用大数因数分解工具在几秒钟内就能完成。(2)下面着手计算私钥d,由RSA算法原理可知d * e = 1 mod (p-1)(q-1)明文plaintext= ciphertext^d mod N,计算过程如下。计算得到 d = 65CC1802BEA493DD。已知如下RSA密文和公钥信息,要求解密得到明文。(3)到现在已经具备私钥d,解密密文就迎刃而解。故plaintext就是‘123456’。原创 2024-07-10 10:33:12 · 172 阅读 · 0 评论 -
数字证书OCSP查询响应内容实例分析
OBJECT IDENTIFIER:responseType,这里值为1.3.6.1.5.5.7.48.1.1(OCSP),含义如下。ENUMERATED:reponseStatus响应状态,这里为0(successful)。OCTET STRING:response,是basicOCSPResponse对象的DER编码,具体定义如下。可以看到第一个SEQUENCE对应是ResponseData,逐层定义为。因此,可以将OCTET STRING这部分内容截取出来,再单独分析。原创 2024-06-25 11:24:28 · 1008 阅读 · 0 评论 -
SM2协同签名过程实例
公共公钥P,P = (d1*d2-1)*G,从计算过程看协同签名实际私钥其实就是(d1*d2-1),但这个私钥无法被客户端或服务端完全掌握,客户端只知道d1,服务端只知道d2。(8)服务端发送R2_和R2到客户端,客户端验证R2是否等于d1*R2_,若相同则继续否则错误退出。签名过程参数t,t =(s_+K2)/d2 mod n (其中S_从客户端发送过来)(11)服务端将t发送给客户端,客户端计算得到s,从而得到最后的签名(r,s)签名过程参数s_,s_ = (K1+r)/d1 mod n。原创 2023-11-24 16:44:51 · 1460 阅读 · 7 评论 -
RSA公私钥对及相关加解密格式详解(一)
89 - 1字节,标识后续0x89=137=3+1+128+2+3字节内容。3081 - 公钥标签头,81表示紧跟后续1个字节标识公钥长度。8181 - 标识后面的模式n的长度为0x81 = 129字节。028181 - 3字节,标识后续为0x81 = 129字节。0203010001 - 这里和公钥相同,也就是e的取值。010001 - RSA公钥(n,e)中的e取值。0203 - 2字节,标识e的长度为3字节。3082 - 标签头,后面接2字节标识长度。00 - 1字节,内容固定为0x00。原创 2023-10-08 17:44:17 · 1710 阅读 · 0 评论 -
2023熵密杯第二关简析
所以前台登录所使用的用户名就是admin1,证书文件自然也就是从cer1.crt做适当修改而来,至于证书对应的私钥肯定是无法通过公钥获得的,一个可能的方式是构造公私钥对替换原来的证书中的公钥。当然证书中的公钥不是说替换就替换的,证书中的指纹(CA的签名)验证会保证数字证书的完整性和真实性。获得到一个“login.go”后台登录处理程序源代码文件,分析后发现果然后台并未验证证书签名的有效性,也就是说这个这个证书的公钥是可以被替换而不被感知到。到现在,就剩下最后一步了,将构造的公钥替换cer1.crt的公钥。原创 2023-08-16 11:48:58 · 983 阅读 · 3 评论 -
2023熵密杯第一关简析
/position矩阵不变,indexvalue。//加密是循环左移3位,解密则循环右3位。分析:思路比较直接,解密是加密的逆过程来一遍就可以了。printf("加密前的口令为:\n");printf("加密后的口令为:\n");printf("加密后的口令为:\n");printf("加密前的口令为:\n");原创 2023-08-15 17:47:05 · 1200 阅读 · 4 评论 -
2023熵密杯初始题简析
所以有Ek(k, Ek(k,M3a)⊕M3b) = Ek(k, Ek(k,M1a)⊕M1b) = MAC1。B、SM4 CBC-MAC,输入同SM4-CBC,只是IV取值固定为0,输出只取最后一个分组加密后的密文。C、MSG1明文长度为32字节(256位),所以有2个分组(M1a和M1b),输出为MAC1。这样,当IV=MAC1时,Ek(k,MAC1⊕M3a) = Ek(k,M2a)E、同理,对于MSG3,有4个分组(M3a、M3b、M3c、M3d),输出为MAC3。原创 2023-08-15 10:07:06 · 1749 阅读 · 5 评论 -
同态加密算法
如果支持对密文进行部分形式的计算,例如仅支持加法、仅支持乘法或支持有限次加法和乘法,则称其为半同态加密或部分同态加密,英文简称为SWHE(Somewhat Homomorphic Encryption)或PHE(Partially Homomorphic Encryption)。由于任意计算均可通过加法和乘法进行构造,若加密算法同时满足加法同态性和乘法同态性,则可称其满足全同态性。对于明文m1和m2、加密算法E,若满足以下条件,则E具备同态加密特性,称为同态加密算法。原创 2023-04-23 17:17:51 · 1220 阅读 · 0 评论 -
密码分析方法
对于分组密码来说,扩散(密钥和明文每一位影响密文许多位,利用线性变换来达成)和扰乱/混淆(明文和密文关系错综复杂,利用非线性的替代变换来达成)是影响密码算法安全的主要因素。显然,其他条件相同的情况下,唯密文攻击是难度最大,选择文本攻击的难度最小。(1)差分能量分析(DPA):通过统计方法和纠错技术对密码设备功耗的变化进行分析,提取密钥有关信息。(4)字典攻击:有可能的密钥或口令组成字典,遍历字典中的所有条目以猜测密钥或口令。(1)差分攻击:分析特定明文差异对相应的密文差分的影响,获得可能性最大的密钥。原创 2023-04-23 10:24:38 · 778 阅读 · 0 评论 -
可鉴别加密工作模式-同时保护数据机密性和完整性(OCB、CCM、KeyWrap、EAX和GCM)第二部分
当算法用于同时保护数据的机密性和完整性时,应选取合适的可鉴别加密工作模式,例如OCB、CCM、KeyWrap、EAX和GCM等工作模式。以下总结来自GBT36624-2018国标文本(修改采用ISO/IEC 19772-2009)。原创 2023-04-16 12:31:46 · 2658 阅读 · 0 评论 -
可鉴别加密工作模式-同时保护数据机密性和完整性(OCB、CCM、KeyWrap、EAX和GCM)第一部分
当算法用于同时保护数据的机密性和完整性时,应选取合适的可鉴别加密工作模式,例如OCB、CCM、KeyWrap、EAX和GCM等工作模式。以下总结来自GBT36624-2018国标文本。在可鉴别加密工作模式之前,先来说说分组密码的工作模式可参考GBT17964-2021版本,标准共介绍9种分组密码工作模式(ECB、CBC、CFB、OFB、CTR、XTS、HCTR、BC、OFBNLF)仅用来保密数据的机密性。原创 2023-04-15 23:22:23 · 2225 阅读 · 0 评论 -
商用密码应用与安全性评估要点笔记(随机数)
按照随机数检测规范(共15项检测:单比特频数检测、块内频数检测、扑克检测、重叠子序列检测、游程总数检测、游程分布检测、块内最大1游程检测、二元推导检测、自相关检测、矩阵秩检测、累加和检测、近似熵检测、线性复杂度检测、Maurer通用统计检测、离散傅里叶检测),对于每一项随机性检测,统计P-value值不少于显著性水平a的样本数,则随机数发生器通过该项检测,否则为不通过。统计学伪随机性指的是在给定的随机比特流样本中,1的数量大致等于0的数量,同理,“10”“01”“00”“11”四者数量大致相等。原创 2023-03-29 12:01:33 · 1199 阅读 · 0 评论 -
商用密码应用与安全性评估要点笔记(SM3密码杂凑算法)
HMAC具体如hmac = HMAC(K,M),其中密钥K的长度取对应的杂凑算法分组长度和输出长度之间,如MD5,K的长度区间是[128,512] bit。对于MD结构,也就是对填充后的消息进行分组后依次输入F函数进行压缩,上一个分组的结果结果下一个分组的输入之一,最后一个F的结果即是最终的杂凑值。在消息M的末尾填充1,然后填充k个0,最后填充64bit的二进制串(表示消息M的长度,这里对应输入消息M长度不能大于2^64bit),从而得到n个512bit的分组。已知h,试图找打M满足h=H(M)是困难的。原创 2023-03-29 09:27:36 · 4143 阅读 · 0 评论 -
商用密码应用与安全性评估要点笔记(不公开的国密算法)
采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。SM1 算法是分组密码算法,分组长度为128位,密钥长度都为 128 比特,算法安全保密强度及相关软硬件实现性能与 AES 相当,算法不公开,,应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等)。原创 2023-03-24 23:14:58 · 1826 阅读 · 0 评论 -
商用密码应用与安全性评估要点笔记(公钥密码算法)
私钥(d,p,q),对应公钥(n,e),具体对应关系为n=pq,ed=1mod(p-1)(q-1),p和q是两个随机的大素数。用户A和B各自拥有公私钥对(Xa,Ya)和(Xb,Yb),A和B共享一个素数q和整数a,且a是q的本原根。用户A私钥为Xa,公钥(q,a,Ya),其中q是大素数,a是q的原根,Ya=a^Xa mod q。密钥交换或密钥协商协议是两个用户A和B通过交互的信息传递,用各自的私钥和对方的公钥来商定一个只有他们知道的秘密密钥,而这个共享的秘密密钥通常用在对称秘密算法中。原创 2023-03-24 22:16:16 · 1341 阅读 · 0 评论 -
商用密码应用与安全性评估要点笔记(SM9数字签名算法)
用户的公钥由用户标识和一组公开的数学参数计算得到,用户私钥则是由用户标识、一组公开的数学参数和一个域范围内的秘密值计算得到。(2)主密钥master key MK,密码分层结构中最顶层的密钥,这里是非对称密钥就包括主私钥(由KGC随机数生成,不公开)和主公钥(由主私钥结合系统参数生产,公开)。(6)用户加密密钥对,包括加密私钥和公钥,其中私钥由KGC产生并下发给用户,用于加密、解密和密钥协商。(5)用户签名密钥对,包括签名私钥和公钥,其中私钥由KGC产生并下发给用户,用于数字签名和验签。原创 2023-03-23 13:24:41 · 7736 阅读 · 0 评论 -
商用密码应用与安全性评估要点笔记(SM2密钥交换算法)
PA和PB分别是A和B实体的公钥(公开的),dA和dB分别是A和B实体的私钥(不公开),ZA和ZB分别分别是A和B的唯一标识(公开的)。SM2密码算法是我国2010年发布的商用密码算法,属于公钥密码算法,也成为非对称密钥机制密码算法。SM2算法私钥长度为256bit,公钥长度为512bit。A和B两个交互实体,用各自的密钥和对方的公钥来商定一个只有他们自己知道的密钥(一般是对称密钥)。当A和B双方协商出共享密钥KA=KB,可选的第三条消息是可以进行密钥确认,即A和B确认协商到的密钥是一致的。原创 2023-03-21 22:41:54 · 3620 阅读 · 1 评论 -
商用密码应用与安全性评估要点笔记(SM2公钥加密算法)
加密算法输出密文C包括C1(椭圆曲线点,512bit=64byte)、C3(M异或t)和C2(摘要值,256bit=32byte),故通过SM2公钥加密算法输出的密文长度=M长度+64byte+32byte。SM2密码算法是我国2010年发布的商用密码算法,属于公钥密码算法,也成为非对称密钥机制密码算法。用户的密钥对定义:私钥dB(256bit,不可公开妥善保存),公钥PB=[dB]G(512bit,公开)。数字签名算法的输出签名长度为512bit,公钥加密算法的输出密文长度为文明长度+96byte。原创 2023-03-21 17:28:00 · 3521 阅读 · 0 评论 -
商用密码应用与安全性评估要点笔记(SM2数字签名算法)
上面提到了私钥和公钥,具体来说私钥dA为256bit随机数,对应的公钥PA=[dA]G=(XA,YA),XA和YA都是256bit,所以PA就是512bit长。按照SM2参数公开如下,SM2使用素数域256位椭圆曲线,基点G也就是(xG、yG),p是一个大素数,也就是定义在有限域GF(p)上的椭圆曲线。SM2密码算法是我国2010年发布的商用密码算法,属于公钥密码算法,也成为非对称密钥机制密码算法。SM2算法输出数字签名是(r,s),其中r和s都是256bit长,所以数字签名长度为512bit。原创 2023-03-21 16:50:48 · 3746 阅读 · 0 评论 -
商用密码应用与安全性评估要点笔记(SM4算法)
SM2分组长度为128bit、密钥长度为128bit、采用32轮非线性迭代结构(非平衡Feistel结构)。由于采用了Feistel结构,使得SM4数据解密和数据加密的算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。SM4在2006年公开发布,2012年成为行业标准(GMT 0002-2012 SM4分组密码算法),并于2021年成为国际标准。解密变换与加密变换结构相同,不同的仅是轮密钥的使用顺序。理论上SM2安全性与AES-128是相当的,但AES算法的加密算法和解密算法不一致。原创 2023-03-21 15:21:53 · 2366 阅读 · 0 评论 -
商用密码应用与安全性评估要点笔记(密码算法ZUC)
通过对LFSR、BR和F三层结构的综合运用,ZUC算法具有很高的理论安全性,能够有效抵抗目前已知的攻击方法,具备较高的安全冗余、并且算法速度快、软/硬件实现性能都较好。在3.1中已经完成LFSR的初态填入,这里再将F中32比特记忆单元变量R1和R2置为全0,然后重复执行32次(BitReconstruction—W-F(X0,X1,X2)—LFSRWithInitialisationMode(W>>1))操作。F包含2个32bit记忆单元变量R1和R2,输入为3个32比特字,输出为1个32比特字。原创 2023-03-21 14:41:38 · 1517 阅读 · 0 评论