rsa c语言实现,rsac语言实现

kodinid 42 0

大家好,今天小编关注到一个比较意思的话题,就是关于rsa c语言问题,于是小编就整理了4个相关介绍rsa c语言实现的解答,让我们一起看看吧。

  1. openssl使用详解?
  2. RSA怎样设置公钥和私钥?
  3. 在一个使用RSA的公开密钥系统中,你截获了发给一个其公开密钥是e=5?
  4. 详细介绍RSA加密算法(数学原理,实现过程),并举例说明如何将一个简单的明文利用此算法进行加密?

openssl使用详解?

1. 首先需要使用 openssl 生成一个 2048 位的密钥 rsa.key 文件 (rsa.key 密钥文件中包含了私钥和公钥)

2. 然后从 rsa.key 密钥文件中提取出公钥 pub.key

rsa c语言实现,rsac语言实现-第1张图片-安济编程网
图片来源网络,侵删)

3. 使用 pub.key 公钥加密一个文件 (data.zip 为原始文件,back.zip 为加密之后的文件)

4. 使用 rsa.key 私钥解密一个文件 (back.zip 为加密的文件,data.zip 为解密之后的文件)

5.上面的加密对大文件就不适用了,可以考虑使用

rsa c语言实现,rsac语言实现-第2张图片-安济编程网
(图片来源网络,侵删)

RSA怎样设置公钥和私钥?

从理论上来说是可以的。

首先,我们来看RSA算法定义

选取两个质数,,计算


任意选择一正整数,使得与互质。

rsa c语言实现,rsac语言实现-第3张图片-安济编程网
(图片来源网络,侵删)

根据计算的值。


公钥


私钥


加密过程 (C为密文,P为明文):



解密过程


秘钥中和的地位是对等的,在足够大的时候,知道其中一个,并不能在多项式时间内计算出另一个的值。
也就是说,你可以任意选择一个秘钥公开,然后将这个秘钥作为公钥,将另外一个作为私钥。

但是在实际的使用中,通常,如果是真·随机选取的话,在加解密、签名验证的过程中大概会有超过1000次的模乘运算,所以,在

RFC 2313 - PKCS #1: RSA Encryption Version 1.5

中,建议公钥的的值选择是3或65537()。这样,公钥加密、私钥签名的模乘运算次数可以降低到2次()和17次(),可以显著的提高在实际应用中RSA算法的效率

在一个使用RSA的公开密钥系统中,你截获了发给一个其公开密钥是e=5?

解密密钥:{d,n}={d,35}, 密文:C=10, 选择两个素数:p=5,q=7,则n=35=5*7。 计算φ(p-1)(q-1)=(5-1)(7-1)=24,在[0,23]中选择一个和24互素的数,本题选e=5,得5*d=l mod 24,解出d。不难得出,d=5,因为e×d = 5×5 = 25 = 1*24+1=1 mod 24。 因为:m=Cd(mod n) 所以,m=Cd(mod n)=5。

详细介绍RSA加密算法(数学原理,实现过程),并举例说明如何将一个简单的明文利用此算法进行加密?

RSA取自三个发明者罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)名字的首字母,1***7年提出至今仍被广泛应用,是一种非对称加密算法。

RSA算法基于的原理,基本上来说,加密和解密数据围绕着模幂运算,这是取模计算中的一种。取模计算是整数计算中的一种常见形式。x mod n的结果就是x / n的余数。比如,40 mod 13 = 1,因为40 / 13 = 3,余数为1。模幂运算就是计算a mod n的过程。

使用RSA算法对数据进行加密和解密,首先要确定分组的大小。为了实现这一步,必须确保该分组可以保存的最大数值要小于n的位数。比如,如果p和q都是200位数字的素数,则n的结果将小于400位。因而,所选择的分组所能保存的最大值应该要以是接近于400。在实践中,通常选择的位数都是比n小的2的整数次幂。比如,如果n是209,要选择的分组大小就是7位,因为2 = 128比209小,但2 = 256又大于209。

要从缓冲区M中加密第(i)组明文M,使用公钥(e,n)来获取M的数值,对其求e次幂,然后再对n取模。这将产生一组密文C。对n的取模操作确保了C将和明文的分组大小保持一致。因而,要加密明文分组有:

C = M mod n

之前提到过,欧拉函数是***用幂模运算来加密数据的基础,根据欧拉函数及其推导式,能够将密文解密回原文。

要对缓冲区中C中的第(i)组密文进行解密,使用私钥(d,n)来获取C的数值部分,对其求d次幂,然后再对n取模。这将产生一组明文M。因此,要解密密文分组有:

M = C mod n

图示:***用平方-乘算法来计算模幂

授人以鱼不如授人以渔,以上资料整理自网络,谢谢。

到此,以上就是小编对于rsa c语言实现的问题就介绍到这了,希望介绍关于rsa c语言实现的4点解答对大家有用。

标签: 公钥 加密 密钥