专栏首页CDN及云技术分享RSA数学运算的魅力
原创

RSA数学运算的魅力

一、RSA缘由

Rivest哥、Shamir哥和Adleman哥发明了RSA。Rivest哥也发明了家喻户晓 RC4对称算法。RSA,一种公钥算法,通信双方使用不对称密钥,解决了如何在不安全的信道传输加密后的信息。

对称密钥是基于比特的移位或者异或XOR。非对称密钥是基于数字的一些特性。对称密钥的趋势是在可接收的计算延迟上增加计算的复杂度。而非对称密钥是利用计算下不擅长做一些数学特性的运算,而不至于陷入跟对称密钥一样的困境。

二、RSA的数学本质

RSA的大数原理:他是基于数字的一个事实,任何一个消息m,只要对m的位数的一些数字运算生成大数,再对这个大数取模(n>m)。就可以得到m本身。一句话概括RSA。就好比一个人在跑道里面跑了n圈。总可以回到起跑起点。用数学公式表示就是(m^e)d%n=m。 RSA协议的精髓就是去找寻这个e,d和n。其中数字d称为私钥。E和n称为公钥。

三、为啥是安全的

RSA安全性是得益于一个数学原理:即使得到了公钥e和n。但是也很难计算出d。要达到一定的破解计算强度,必须要求数字的位数>512(或者1024,2048, 512相当于人脑理解的10154)。

现代计算机基本是32或者64位架构。计算2048位的数字,并且这些2048位记过中间计算,取模之前,可能是百万级的数字,这对内存容量的要求和计算的复杂度。都是有要求。所以RSA在工程计算前需要一些运算技巧。

四、实践

RSA实现本质是对大数加减乘除的实现:相关的代码见:

https://github.com/lumanyu/rsa

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • keyless原理

    ssl协议是基于密码学的基础上,解决通信双方加密信道和身份鉴权的安全问题。ssl协议的算法本身是公开的,但是算法本身的输入参数(key)是由通信双方私自保存。在...

    mariolu
  • 惊群效应

    传统的服务器使用“listen-accept-创建通信socket”完成客户端的一次请求服务。在高并发服务模型中,服务器创建很多进程-单线程(比如apache ...

    mariolu
  • ECC证书的生成和验签

    RSA的计算原理是简单的:对消息进行幂次方取模得到 加密消息。对高安全等级的要求势必增加幂次方的位数。所以这个RSA的加密位数长度是把双刃剑。它一方面增加了破译...

    mariolu
  • RSA算法详解

    前面文章我们讲了AES算法,AES算法是一种是对称加密算法,本文我们来介绍一个十分常用的非对称加密算法RSA。

    程序那些事
  • Ingress Nginx 日志配置

    1、Ingress Nginx 默认访问日志都输出到 /var/log/nginx/access.log 文件中,但是对于生产环境来说,不可能把所有日志都输到一...

    YP小站
  • 搞算法的我们,不知道这些算法怎么行

    分享 动一动手指,分享给向我们一样需要的人 这是一篇有趣的文章,George Dvorsky试图解释算法之于当今世界的重要性,以及哪些算法对人类文明最为重要,如...

    昱良
  • 统治世界的 10 大算法,你知道几个?

    一篇有趣的文章《统治世界的十大算法》中,作者George Dvorsky试图解释算法之于当今世界的重要性,以及哪些算法对人类文明最为重要。

    小小詹同学
  • 马来西亚航空官网被黑 疑似乘客数据被窃

    援引路透社报道马来西亚航空公司官方网站今天被网络黑客团体Lizard Squad攻击,并将本次攻击活动称之为“OFFICIAL CYBER CALIPHATE”...

    安恒信息
  • Search for a range寻找上下界-Leetcode

    原题如下: Given a sorted array of integers, find the starting and ending position of...

    老白
  • MLSQL是如何集成TensorFlow Cluster的

    我们知道MLSQL支持SKLearn,TF等流行的算法框架,不过虽然支持了多个实例同时运行,但其实每个模型都需要跑全部数据。有的时候数据太大,确实是个问题,所以...

    用户2936994

扫码关注云+社区

领取腾讯云代金券