资讯专栏INFORMATION COLUMN

非对称算法之RSA

kycool / 1314人阅读

摘要:找到一个正向容易,逆向很难的公式设都是已知的正整数,在知道的情况下计算容易,而只有推算很难这里得介绍一个公式记作求中与互素的数的个数如在中,,,,与互素,所以考虑为质数,则因为若质因数分解所以因为与互素有以下公式结合起来可以得到私钥可

找到一个正向容易,逆向很难的公式

$$ m^{x} equiv ypmod n$$

设$m$,$n$都是已知的正整数,在知道$x$的情况下计算$y$容易,而只有$y$推算$x$很难

这里得介绍一个公式
phi function 记作 φ

φ(n) $ 求 1~n 中与 n互素的数的个数

如 φ(8) 在1,2,3,4,5,6,7中,1,3,5,7与8互素,所以 φ(8)= 4

考虑 n为质数,则 φ(n) = n -1

因为
$$ phi(A*B) = phi(A) * phi(B) $$

若 N = P1 * P2 (质因数分解)
所以 $$ phi(N) = (P1-1) * (P2-1) $$

因为m与n互素, 有以下公式
$$ m^{phi(n)} equiv 1 pmod n $$

结合起来可以得到

$$ m^{k*φ(n)+1} equiv m pmod n $$

私钥可以写成

$$ e*d = k*φ(n)+1 $$
$$ d = frac {k*φ(n)+1} {e} $$

举例
m = 89
p1 = 53
p2 = 59
n= 53*59 = 3127
φ(n) = 52*58 = 3016
e = 3 (必须为奇数,且不与φ(n)具体公因数)
私钥
$$ d = frac {k*phi(n)+1} e = frac {2*3016+1} 3 = 2011 $$

只公开n和e
n = 3127
e = 3

加密过程

m的e次方 mod n 生成密文 c
$$ c = 89^3 mod 3127 = 1394 $$

解密过程

$$ c ^d mod n = 1394^{2011} mod 3127 = 89 $$

破解
因为只暴露 c, n ,要得到d的话,就得解出 k*φ(n)+1,也就是φ(n),这个就回到最前面的公式,很难。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/23927.html

相关文章

  • 加密算法对称加密

    摘要:算法公钥加密算法是年由罗纳德李维斯特阿迪萨莫尔和伦纳德阿德曼一起提出的。是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被推荐为公钥数据加密标准。 上篇文章介绍了对称加密的原理,但是它的最大问题就是加密和解密的密钥是相同的,并且不能保证密钥能安全的送到双方手里,即使安全的送到双方手里,免不了内部会有卧底的存在 非对称加密 既然有对称加密,那么自然会联想到非...

    dongxiawu 评论0 收藏0
  • 对称加密技术- RSA算法数学原理分析

    摘要:本文首发于深入浅出区块链社区原文链接非对称加密技术算法数学原理分析原文已更新,请读者前往原文阅读非对称加密技术,在现在网络中,有非常广泛应用。加密技术更是数字货币的基础。 本文首发于深入浅出区块链社区原文链接:非对称加密技术 - RSA算法数学原理分析原文已更新,请读者前往原文阅读非对称加密技术,在现在网络中,有非常广泛应用。加密技术更是数字货币的基础。 所谓非对称,就是指该算法需要一...

    maxmin 评论0 收藏0
  • Swoole 源码分析——Server模块OpenSSL (上)

    摘要:另一方比如小明得到公钥之后,双方就可以通信。然而,中间人还是可能截获公钥,然后自己弄一对秘钥,然后告诉小明说是小红的公钥。这样,小亮在签署小红的身份证的时候,可以在小红身份证后面附上自己的身份证。一般来说,自签名的根身份证用于公司内部使用。 前言 自从 Lets Encrypt 上线之后,HTTPS 网站数量占比越来越高,相信不久的未来就可以实现全网 HTTPS,大部分主流浏览器也对 ...

    ky0ncheng 评论0 收藏0
  • 漫谈 | “黎曼猜想”和区块链加密算法到底有什么关系?

    摘要:假如黎曼猜想被证实,区块链将毁灭近日,黎曼猜想四个字疯狂刷屏。黎曼猜想由数学家波恩哈德黎曼于年提出。因此,黎曼猜想一旦被证明,则意味着素数之密被解开,算法也就将被攻破了。而大多数区块链所用的加密算法不是,而是椭圆曲线加密算法。 玛丽女王的密码之生死命悬一线 showImg(https://segmentfault.com/img/bVbhD7s?w=740&h=876); 16世纪伊丽...

    tracymac7 评论0 收藏0
  • 为你的PHP程序选择合适的密码库(初稿)

    摘要:我们不会提及任何糟糕的密码库的。仅对而言如果你一定要安装对称密钥加密,请使用上述的的密码库。的密码库为你提供了认证加密,而的实施并不会验证密文。当前的最佳密码库之一是内建的。这种散列算法对的编程者或企业来说都是稳定有效的。 如果本文中的术语让你感到疑惑,请先参阅密码学术语及概念一文。 密码学不是魔术。加密一个应用程序并不能保证它在袭击下的安全(特别是在你没有设置验证密文的情况下)。但如...

    岳光 评论0 收藏0

发表评论

0条评论

kycool

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<