密码学
re-forever
这个作者很懒,什么都没留下…
展开
-
中国剩余定理
def chiness(a, m, num): _M = reduce(lambda a, b: a * b, m) M = [_M // m[k] for k in range(num)] x = sum([a[i] * M[i] * gmpy2.invert(M[i], m[i]) % _M for i in range(num)]) % _M return x...原创 2020-04-16 14:51:49 · 253 阅读 · 0 评论 -
Merkle-Hellman背包公钥加密
Merkle-Hellman背包加密方案属于子集和问题,这个加密算法易于求解并不安全,但是却是这一类加密算法的基础。主要使用的数学运算是模乘和置换。超递增序列B =(b1,b2,b3,……,bn)是一个正整数序列,对于每一个i,2<= i <= n ,满足bi > ∑j=1i−1\sum_{j=1}^{i-1}∑j=1i−1 bj,也就是说序列中第i个数字,比之前的所有数...原创 2020-04-13 16:10:52 · 1433 阅读 · 0 评论 -
RSA共模攻击
扩展的欧几里得算法扩展的欧几里得算法不仅可以计算最大公约数d,而且还可以得到两个整数x,y 使得 ax+by = d = gcd(a, b)。有两个数a,b,对它们进行辗转相除法,可得它们的最大公约数。然后收集辗转相除法中产生的中间量,倒推可以得到ax+by=gcd(a,b)的整数解。这就是扩展的欧几里得算法在说明之前先提出一个常识性的问题:两个数a,b的最大公约数d一定存在且唯一。辗转相除...原创 2020-03-17 12:05:57 · 4202 阅读 · 1 评论 -
密码学09(SM3算法)
SM3算法SM3密码摘要算法是中国国家密码管理局2010年公布的中国商用密码杂凑算法标准。SM3算法适用于商用密码应用中的数字签名和验证,接受文本大小要小于264位,并以512位为单位分组,输出长度为256位的摘要与SHA算法大体相似。消息填充使报文长度与448mod512同余,最后64位存放报文长度。其中填充位数在1到512之间(注意没有0,也就是说一个长为448位的明文,需要再填充51...原创 2019-12-10 15:46:48 · 1861 阅读 · 0 评论 -
密码学03.5(SM4算法)
SM4算法基本概念SM4算法基本变换规则轮函数F加密密钥扩展运算基本概念明文分组、密钥、生成的密文长度都为128位。采用非对称的Feistal结构。迭代32轮对合运算,加解密算法一样。SM4算法基本变换规则非线性变换τ输入为32位,一共使用四个S盒,每个S盒处理8位,起混淆作用,设输入为A(a0~a3)输出为B则有:B = τ(A) = S_box(a0), S_box(a...原创 2019-12-06 16:41:44 · 2315 阅读 · 0 评论 -
密码学08(RSA密码、EIGamal密码)
RSA密码非对称密码数学基础欧拉函数:对于一个正整数n,小于n且与n互素的正整数的个数,记为φ(n)。对于一个素数n,可知φ(n) = n - 1对于两个素数p和q,他们的乘积n = p * q,则φ(n) = (p-1) * (q-1)。φ(n) = p*q-(q-1)-(p-1) -1 = (p-1) * (q-1)最后-1是减去n本身欧几里得算法:gcd( a,...原创 2019-12-02 14:13:18 · 723 阅读 · 0 评论 -
密码学02(DES算法)
DES算法分组密码Feistel结构Des算法初始IP置换子密钥生成F函数逆初始置换弱密钥、三重DES分组密码分组密码将明文M划分为一系列的明文块Mi,每一块Mi包含若干位或字符,每一块用同一个密钥K加密。Feistel结构令F 为轮函数;令K1,K2,……,Kn 分别为第1,2,……,n 轮的子密钥。那么基本构造过程如下:(1)将明文信息均分为两块:(L0,R0);(2)在每一轮中,...原创 2019-12-02 11:11:47 · 1400 阅读 · 0 评论 -
密码学03(AES算法)
AES算法基本概念SP结构AES算法密钥扩展运算初始轮密钥加运算轮函数sp结构迭代解密安全性基本概念SM4算法密钥扩展运算轮函数迭代解密安全性基本概念数据长度可变:AES中一般将明文和密文分组长度固定为128位密钥长度可以为128、192、 256位明文分组用字节(8位)为单位的正方形矩阵(4字节 * 4行 = 128位)描述,称为状态矩阵。在算法的每一轮中,状态矩阵的内容不断发生变化...原创 2019-11-22 10:10:29 · 1216 阅读 · 0 评论 -
密码学07(公钥密码体制)
公钥密码体制基本概念和原理存在一个密钥管理中心KMC,其中有一个公钥数据库PKDB,这里存放用户的公钥,权限为共享,即任何人都能查到别人的公钥。无论是发送方A还是接收方B,都有一个个人公钥Pk和一个个人私钥Sk,公钥用于加密,私钥用于解密。对称密码体制的加密和解密算法都是公开的。数字签名最常见的实现方法是建立在公钥密码体制和单向安全散列函数算法(hash算法)之上的。公钥密码体制模型:...原创 2019-11-21 11:44:13 · 2027 阅读 · 0 评论 -
密码学06(SHA1算法)
Hash函数基本形式:hash函数将任意长的报文M映射为定长的hash码h,hash码也称为报文摘要,具有错误检验能力。基本性质:单向性:由Hash码不能得出相应的报文。抗弱碰撞性:不能找到与给定报文具有相同Hash值的另一个报文,保证消息不会伪造。抗强碰撞性:Hash值应该较长典型的Hash算法典型的M-D结构,将明文划分为明文块,再进入到压缩函数处理,输出定长的密文(摘要)...原创 2019-11-20 17:47:09 · 1278 阅读 · 0 评论 -
密码学05(序列密码)
序列密码根据密码算法对明文信息处理的方式,对称密码体系分为分组密码和序列密码基本概念序列密码的明文块是以字节(8位)或以1位为单位,相比分组密码来说要更小序列密码每一步使用的密钥的都不一样,存在一个密钥流生成器,密钥流和明文分组一样长。(避免了明文分组一样时生成的密文一样)理论上加密安全性比分组密码好。RC4序列密码RC4序列密码算法(密钥产生算法)RC4序列密码是一种基于非线性...原创 2019-11-20 14:53:07 · 1496 阅读 · 0 评论 -
密码学04(分组密码模式)
电码本模式(ECB)分组后逐个加密加密:Ci = Ek(Mi)解密:Mi = Dk-1(Ci)特点(缺点):要求数据的长度是密码分组长度的整数倍容易暴露明文的数据模式重复的明文产生相同的密码分组以DES为例,明文的长度必须是64位的整数倍,不足部分要特殊处理。密码分组链接模式(CBC)特点:解决了ECB的安全缺陷可以让重复的明文产生不同的密码分组要求数据的长度是密码分...原创 2019-11-20 11:26:55 · 1113 阅读 · 0 评论