RSA加密原理

RSA加密原理,第1张

RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。公钥加密--私钥解密,私钥加密--公钥解密

在 整数 中, 离散对数 是一种基于 同余 运算和 原根 的一种 对数 运算。而在实数中对数的定义 log b a 是指对于给定的 a 和 b ,有一个数 x ,使得 b x = a 。相同地在任何群 G 中可为所有整数 k 定义一个幂数为 b K ,而 离散对数 log b a 是指使得 b K = a 的整数 k 。

当3为17的 原根 时,我们会发现一个规律

对 正整数 n,欧拉函数是小于或等于n的正整数中与n 互质 的数的数目(因此φ(1)=1)。有以下几个特点

服务端根据生成一个随机数15,根据 3 15 mod 17 计算出6,服务端将6传递给客户端,客户端生成一个随机数13,根据 3 13 mod 17 计算出12后,将12再传回给服务端,客户端收到服务端传递的6后,根据 6 13 mod 17 计算出 10 ,服务端收到客户端传递的12后,根据 12 15 mod 17 计算出 10 ,我们会发现我们通过 迪菲赫尔曼密钥交换 将 10 进行了加密传递

说明:

安全性:

除了 公钥 用到 n 和 e ,其余的4个数字是 不公开 的(p1、p2、φ(n)、d)

目前破解RSA得到的方式如下:

缺点

RSA加密 效率不高 ,因为是纯粹的数学算法,大数据不适合RSA加密,所以我们在加密大数据的时候,我们先用 对称加密 算法加密大数据得到 KEY ,然后再用 RSA 加密 KEY ,再把大数据和KEY一起进行传递

因为Mac系统内置了OpenSSL(开源加密库),所以我们开源直接在终端进行RSA加密解密

生成RSA私钥,密钥名为private.pem,密钥长度为1024bit

因为在iOS中是无法使用 .pem 文件进行加密和解密的,需要进行下面几个步骤

生成一个10年期限的crt证书

crt证书格式转换成der证书

RSA 是一种非对称加密算法,很多表单的密码都采用 RSA 加密。

使用 RSA 一般需要先产生一对公钥和私钥,当采用公钥加密时,使用私钥解密;采用私钥加密时,使用公钥解密。

执行结果如下:

在实际应用中,我们可以先执行 genKeyPair 先生成一对密钥,将该对密钥保存在配置文件中,然后在加密时,调用 encrypt(str, publicKey) 方法使用公钥对文本进行加密,在解密时,调用 decrypt(strEn, privateKey) 方法使用私钥对文本进行解密,即可。

这个文件需要很长时间。

根据中关村在线显示,rsa加密算法是一种非对称加密算法,其加密速度相对较慢。rsa加密的速度取决于密钥长度和待加密数据的大小。一般来说,密钥长度越长,加密所需时间越长,待加密数据越大,加密所需时间也越长。因此,对于100多mb大小的文件,使用rsa加密可能需要相当长的时间,大约需要20分钟。

rsa密钥长度越长,加密所需时间越长。通常,rsa密钥长度为1024位或2048位。密钥长度越长,加密的安全性也越高,但同时加密所需时间也越长。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/8074400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存