黎曼猜想 - 素数 -RSA- 非对称加密 -https- 通信安全 - 比特币 & 区块链 - 概率

本贴最后更新于 2036 天前,其中的信息可能已经东海扬尘

#一句话总结:
素数出现的频率与黎曼 ζ 函数紧密相关,随机选择一个自然数 x,那么 P(x),即该数字为素数的概率约为 1/ln(x),貌似对 RSA 非对称加密没有破坏性影响,要解密还是需要暴力破解

黎曼猜想

https://zhuanlan.zhihu.com/p/25055731
https://zhuanlan.zhihu.com/p/25222934

黎曼 ζ 函数

{\displaystyle \zeta (s)={\frac {1}{1^{s}}}+{\frac {1}{2^{s}}}+{\frac {1}{3^{s}}}+{\frac {1}{4^{s}}}+\cdots }
黎曼 ζ 函数非平凡零点的实数部分是 ½

即所有的非平凡零点都应该位于直线{\displaystyle {\frac {1}{2}}+t\mathbf {i} }(“临界线”)上。_t_为一实数,而 i 为虚数的基本单位。

图像示意图

对应视频结束可看 https://www.bilibili.com/video/av21692866/

黎曼素数计数函数

黎曼用 π(x) 来定义他自己的素数计数函数,即黎曼素数计数函数 J(x)。它被定义为:

来源:(http://)https://zhuanlan.zhihu.com/p/25222934

“黎曼素数定理”猜测的在一给定数量 x 以内的素数个数

这就是黎曼的明确公式。它是对素数定理的改进,能更准确地估计数字 x 及以内存在多少个素数。该公式有四个项:

  1. 第一项,或“主项”为对数积分 Li(x),它是根据素数定理对素数计数函数 π(x) 更好的估计。它是目前为止最大的项,并且像我们之前看到的那样,它高估了多少包含给定值 x 以内的素数个数。

  2. 第二项,或“周期项”为 x 的 ρ 次幂对 ρ 的对数积分求和(原图误为 p,感谢

    @Idear

    指正),它是 zeta 函数的非平凡零点。它用来调整主项高估的项。

  3. 第三项为常量 -log(2) = -0.6993147...

  4. 第四项,即最后一项是在 x < 2 上为零的积分,因为没有素数小于 2。当该积分约等于 0.1400101... 时,它在 2 处有最大值 。

当该函数的值增大时,后两项的贡献是无穷小的。大数的主要“贡献者”是对数积分与周期和。

https://mp.weixin.qq.com/s/vXzN-oH5sPo8gwshz-Z4eQ
黎曼(Riemann)一举揭示了质数最深处的秘密,优雅地给出了质数分布的精确表达式。人们第一次能够近距离窥视质数们在自然界跳舞的规律,是那样的豪放与不羁,平静时如温柔的月光洒在无波的大海,奔腾时又如滔天巨浪倾泻在一叶孤舟,让人爱恨交织、目驰神移。

然而,质数并不是完全随性而为,它的表现始终臣服在黎曼 Zeta 函数零点的分布规律上。

素数

https://mp.weixin.qq.com/s/vXzN-oH5sPo8gwshz-Z4eQ
质数(Prime number),又称素数,指在大于 1 的自然数中,除了 1 和该数自身外,无法被其他自然数整除的数(也可定义为只有 1 与该数本身两个正因数的数)。大于 1 的自然数若不是素数,则称之为合数(也称为合成数)。

素数定理

素数定理也由高斯(和勒让德独立地)阐述:

素数定理

在汉语(原文英语)中,它被陈述为:“当 x 增长到无穷大时,素数计数函数 π(x) 会近似于 x/ln(x) 函数。换句话说,若你的计数足够大,且将素数数量的图绘制到一个非常大的数 x,接着绘制 x 除以 x 的自然对数,二者会临近相同的值。

质数的随机性带来了很大的应用
https://zhuanlan.zhihu.com/p/37297929
https://www.wukong.com/question/6451733742921711885/

素数的应用

长期以来,数论,尤其是对素数的研究,一般都会被认为是典型的纯数学,除了求知的趣味之外,没有其他应用。特别是,一些数论学家,如英国数学家戈弗雷·哈罗德·哈代即对其工作绝对不会有任何在军事上的重大性感到自豪[44]。然而,此一观点在 1970 年代时遭到粉碎,当素数被公开宣布可以作为产生公钥加密算法的基础之时。素数现在也被用在杂凑表伪乱数产生器里。

旋转机被设计成在每个转片上有不同数目的销,在每个转片上的销的数量都会是素数,亦或是会与其他转片上的销的数量互素。这有助于在重复所有的组合之前,让所有转片的可能组合都能出现过一次。

国际标准书号的最后一码为校验码,其算法使用到了 11 是个素数的这个事实。

汽车变速箱齿轮的设计上,相邻的两个大小齿轮齿数最好设计成素数,以增加两齿轮内两个相同的齿相遇啮合次数的最小公倍数,可增强耐用度减少故障。

在害虫的生物生长周期与杀虫剂使用之间的关系上,杀虫剂的素数次数的使用也得到了证明。实验表明,素数次数地使用杀虫剂是最合理的:都是使用在害虫繁殖的高潮期,而且害虫很难产生抗药性[来源请求]

以素数形式无规律变化的导弹和鱼雷可以使敌人不易拦截[来源请求]

RSA 加密和素数关系

简单来说 RSA 加密的前提是:大整数的因数分解,是一件非常困难的事情。目前,除了暴力破解,还没有发现别的有效方法。

http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html
回顾上面的密钥生成步骤,一共出现六个数字:

p q n φ(n) e d

这六个数字之中,公钥用到了两个(n 和 e),其余四个数字都是不公开的。其中最关键的是 d,因为 n 和 d 组成了私钥,一旦 d 泄漏,就等于私钥泄漏。

那么,有无可能在已知 n 和 e 的情况下,推导出 d?

(1)ed≡1 (mod φ(n))。只有知道e和φ(n),才能算出d。

  (2)φ(n)=(p-1)(q-1)。只有知道 p 和 q,才能算出 φ(n)。

  (3)n=pq。只有将 n 因数分解,才能算出 p 和 q。

结论:如果 n 可以被因数分解,d 就可以算出,也就意味着私钥被破解。

可是,大整数的因数分解,是一件非常困难的事情。目前,除了暴力破解,还没有发现别的有效方法。维基百科这样写道:

"对极大整数做因数分解的难度决定了 RSA 算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA 算法愈可靠。

  假如有人找到一种快速因数分解的算法,那么 RSA 的可靠性就会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的 RSA 密钥才可能被暴力破解。到 2008 年为止,世界上还没有任何可靠的攻击 RSA 算法的方式。

  只要密钥长度足够长,用 RSA 加密的信息实际上是不能被解破的。"

公私钥产生过程:
https://blog.csdn.net/q376420785/article/details/8557266
假设 Alice 想要通过一个不可靠的媒体接收 Bob 的一条私人讯息。她可以用以下的方式来产生一个公钥和一个私钥

  1. 随意选择两个大的质数p_和_qp_不等于_q,计算_N_=pq
  2. 根据欧拉函数,求得 r = (p-1)(q-1)
  3. 选择一个小于 r 的整数_ e_,求得 e 关于模 r 的模反元素,命名为 d。(模反元素存在,当且仅当 e 与 r 互质)
  4. 将_ p q _的记录销毁。

_(N,e)是公钥,(N,d)_是私钥。Alice 将她的公钥(N,e)传给 Bob,而将她的私钥(N,d)藏起来。

RSA 算法原理及其在 HTTPS 中的应用

https://blog.csdn.net/Saintyyu/article/details/55806247
数字证书原理

RSA 生成公私钥时质数是怎么选的?

https://www.zhihu.com/question/54779059
1. 质数的个数
前 x 个正整数中大约有 x/lnx 个质数,也就是随机选择一个自然数 x,那么 P(x),即该数字为素数的概率约为 1/ln(x)
2. 如何判断一个数是否为质数?
3. 如何选择一个质数?

比特币背后的密码学原理

https://www.jianshu.com/p/225ff9439132
比特币体系实际使用的非对称算法是椭圆曲线加密(ECC),可以到这里详细了解。

从上面的例子我们知道满足非对称加密的密钥对是存在的,同时我们也做了加解密尝试。实际上,非对称加密算法的核心依赖于特定的数学难题,比如上文的 RSA 依赖于大数分解难题,如果该难题被破解了,算法本身也就被攻破了。

非对称算法通过公私鈅分别加解密方式给信息交换带来了巨大的变化,具体表现在:

1)在不安全的环境中传递敏感信息成为可能。从上文可以知道,公钥是完全公开任意传播的,通过公钥是无法(或极其困难)推算出私钥的,私钥是不公开不发送不传播的,仅仅消息接收方知道就可以,其他任何人都不需要知道。

2)多方通信所需密钥数量急剧减少,密钥维护工作变得异常简化。比如 N 个互不信任且互有通信需求的人,如果使用对称加密算法,则需要 N!/2 个密钥,如果使用非对称加密仅需要 N 个即可(每个人只需要维护自己的公私鈅对,无论和多少人通信)。

3)基于非对称加密发展起来的数字签名技术(见下文详述)从数学意义上解决了自证身份问题,使得信息接收者可以确认消息发送方身份信息且不可更改。

4)密码学问题对数学问题的依赖空前提高。之前看似无用的甚至古老的数学难题比如数论、离散对数等在此大放异彩,颇有些笑来老师在《把时间当做朋友》里面表达的"技不压身"的现实映射。
所谓数字签名就是签名人用自己的私钥对待签名数据的摘要进行加密得到的值就是签名值。签名者发送数据签名时需要把待签名数据和签名值一起发送给对方。

注意,签名对象并非待签名数据而是待签名数据的摘要,为什么呢?因为非对称加密的速度通常都比较慢,直接对原始数据私钥加密是很慢的而且也没有必要。

如何验证签名呢?接收方首先使用签名者的公钥对签名值解密即可得到摘要值,然后使用约定的算法对待签名数据进行散列运算后和解密得到的摘要值进行比较即可验证。
挖矿的具体实现就是在难度一定的情况下通过暴力双 SHA256 哈希运算获取满足难度 taget 的 Nonce 值,所谓的工作量证明就是无数次哈希运算穷举并比对的过程。

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...