c++实现rsa算法_RSA算法与实现

理论基础:RSA公钥密码体制的理论基础是数论中的大整数因子分解的困难性,即求两个大素数的乘积,在计算机上很容易实现。但是,要将一个大整数分解为两个大素数之积,在计算上很难实现。

一. RSA算法

70a7ab47bfc8d6e7357dcca650f6e737.png

21cbbc83cd41f2959716cb296ad616cc.png

二. 重要步骤说明

1.获取素数

290f8bfb70d69b3341a0b393e6d567c1.png

2.拓展欧几里得算法求逆

3ba86a3ab9c7d9da2b627f687b964689.png
//欧几里得算法实现
int gcd(int a, int b)
{
	if(b == 0)
		return a;
	else
		return gcd(b, a % b);
}

ef54c0a4d870433131cce1787b708840.png
//拓展欧几里得算法实现
int e_gcd(int a, int b, int &x, int &y)
{
	if(b == 0)
	{
		x = 1;
		y = 0;
		return a;
	}
	int ans = e_gcd(b, a%b, x, y);
	int temp = x;
	x = y;
	y = temp - a/b*y;
	return ans;
}

3.中国剩余定理(CRT)与解密

5cd4654b5f3324c958ae535aa0a97d78.png

ddf094f4617b417355d47281fbb4230c.png

ac5b666acaa3c76d53cec7bb9e28aa2d.png

c60036b51c5cde33971df26ae046163e.png

12506b538d86eda5a87ddf05109f3cd0.png

87ae320efd461935d9e724bbc07f6768.png

3514c05688e50052aac96b9cbcfc69c1.png

一直没在这里更新东西了,主要是因为这个软件编辑技术性文章不怎么方便,均更新在csdn上了,现在更新的内容有:数据库,计算机组成原理,计算机基础,密码学。都是我一边学一边更新,还是热乎的呢 。今天注册了一个公众号,决定后期将文章转移至公众号"小小的书桌",欢迎关注,一起学习与进步,谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值