H:大数分解(选作)

   2007级在“计算机科学导论”的期末考试中有一道试题。下面请你看看那题目应该如何编写。

    从键盘输入的一个大于 1 的整数,通过算法将该整数分解为若干因子的乘积。

输入:
    一个正整数。

输出:
    分解后的各个因子。

#include <stdio.h>
int main()
{
	int n = 0;
	scanf("%d",&n);
	for (int i = 2; i <= n;i++)
	{
		if (!(n % i))//表示如果i是n的公因子,即n%i==0,!(n%i)=1
		{
			n /= i;
			printf("%d\n", i);
			i = 1;//再从2开始循环
		}
	}
	return 0;
}

背景: 网络信息时代,网络数据安全关乎生活中每一个人,在网络数据传输加密以及认证的技术中,广泛采用了RSA公钥密码体制,它通过一对(公钥,私钥),公钥公开,私钥保密,进行数据的加密和认证,保证网络数据传输的可靠性、完整性等。 RSA的可靠性基于数学问题——大数因式分解问题即从随意选择两个大素数p,q(p≠q)得到其乘积N=p×q是简单的,但是从N因式分解出p和q是困难的。 RSA算法中,公钥:(e,N),私钥:(d,N),其中φ(N) = (p-1)(q-1),e和d满足条件:e×d modφ(N)=1。数据传输加密解密和认证过程如下: (1)保证数据密文传输:(使用接收方的一对公钥私钥) 发送方加密过程:若明文数据为m,密文cm=m^e mod N; 接收方解密过程:明文m=cm^d mod N; (2)保证数据发送方身份真实:(使用发送方的一对公钥私钥) 发送方签名过程:若明文数据的摘要为hm,数据的签名sig=hm^d mod N; u 接收方认证过程:接收的签名还原摘要hm’=sig^e mod N;用接收的数据m’计算摘要hm’’;若hm’=hm’’则认证成功。 u 利用背景中RSA加密、签名的知识,计算: u (1)RSA加密: 假设需要加密的明文信息为m=14,选择:e=3,p=5,q=11,设计python程序得到RSA算法加密后的密文。 输入格式: 明文:如14。 输出格式: 密文:如: 输入样例: 在这里给出一组输入。例如: 14 输出样例: 在这里给出相应的输出。例如: 明文14的加密后的密文是49
最新发布
12-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值