
密码学
我的书包哪里去了
这个作者很懒,什么都没留下…
展开
-
RSA公钥密码体制及C++代码实现
公钥密码体制即公开密钥密码体制,也称非对称密码体制或双密钥密码体制。1978年由美国麻省理工学院的Rivest、Shamir和Adleman共同提出了第一个有效的公钥密码体制——RSA公钥密码体制,目前RSA仍然应用于网络银行、电子贸易等许多电子商务领域。一、RSA公钥密码体制原理1.参数定义与密钥生成(1)用户首先秘密选择两个大素数p,q,然后计算出N=pq。(2)用户计算出p-1和q-1的...原创 2020-03-06 21:56:39 · 13191 阅读 · 3 评论 -
ElGamal公钥密码算法及ElGamal数字签名方案实现
ElGamal公钥密码算法是在密码协议中有着重要应用的一类公钥密码算法,其安全性是基于有限域上离散对数学问题的难解性。它至今仍是一个安全性良好的公钥密码算法。它既可用于加密又可用于数字签名的公钥密码体制。一、ElGamal公钥密码算法描述1.选取一个大素数p,使离散对数问题在有限域GF(p)上是难解的,选取g∈Z是一个本原元。2.随机选取整数x,1≤x≤p-2,计算y=g^x...原创 2020-03-06 21:57:20 · 34741 阅读 · 16 评论 -
MD5的实现
1.问题描述 MD5以512比特一块的方式处理输入的消息文本,每个块又划分为十六个32比特的子块。算法的输出由四个32比特的块组成,将它们级联成一个128比特的Hash值。①首先填充消息使填充后的长度恰好为一个比512的倍数小64的数。填充方法是附一个“1”在消息后面,再补多个“0”。然后,在其后附上64比特的消息长度(填充前)的二进制表示。算法中使用了四个32比特的变量A、B、C、D,先把...转载 2018-04-08 10:59:37 · 981 阅读 · 0 评论 -
仿射密码的攻击
加法密码和乘法密码的结合就构成了仿射密码,仿射密码加密的思路为:首先将明文乘以密钥的一部分,然后再加上密钥的剩余部分。一、仿射密码加密解密算法假设c, m, a , b ∈Z26加密:ek(m) ≡c≡ a⋅m+ b mod 26解密:dk(c) = m= a-1⋅(c-b) mod 26密钥为:k =(a ,b ),且满足限制条件 gcd( a ,26)=1。当a=1时,仿射密码...原创 2020-03-06 21:53:50 · 2387 阅读 · 0 评论 -
C++实现大整数运算包(加、减、乘、除、幂模、GCD、乘法逆)
1.问题描述大整数运算是现代密码学算法实现的基础,重要性不言而喻。大整数我们指的是二进制位512、1024和2048的数,一般的语言不支持。2.基本要求以类库头文件的形式实现。3.实现提示在选择了大整数的存储结构之后,主要实现以下运算:①模加;②模减;③模乘;④模整除;⑤模取余。这五种运算模拟手算实现。⑥幂模:利用“平方-乘法”算法实现。⑦GCD:利用欧几里得算法实现。⑧乘法...原创 2020-03-06 22:19:37 · 7385 阅读 · 1 评论