RSA实现输出公钥和私钥 linuxc实现

这是一个使用C语言在Linux环境下实现RSA加密算法的示例,包括生成随机素数、计算最小公倍数、确定公钥和私钥等步骤。程序通过计算两个素数p和q的乘积N以及它们减一后的最小公倍数L,来确定公钥e和私钥d,确保e和L的最大公约数为1。
摘要由CSDN通过智能技术生成


/*************************************************************************
    > File Name: 1.c
    > Author: wolf
    > Description:  
    > Created Time: 2015年05月07日 星期四 09时11分40秒
 ************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
//RSA
// 公钥对(e,N)  加密方法:  明文^e mod N=秘文
// 私钥对(d,N)  解密方法: 秘文^d mod N=明文
// 我们要计算出 e  d  N 的值
//N = p*q (q和p为两个素数) 
//L= (p-1)和(q-1)的最小公倍数,L用来生成e 和 d
//e为一个素数 这个素数和L的最大公约数为1
// e*d mod L = 1 (d满足此公式)

//过程综述
//1.如何生成随机素数
//  生成两个素数(在这作实验使用小的素数1000以内) p 和 q
//  (如何判断一个数是素数)
//2.求两个书的最小公倍数
//   先求出两个数的最大公约数(辗转相除) 
//   再用两个数的乘机除以最大公约数就是最小公倍数
// 
#define PRIME_RANGE_LEFT  5 
#define PRIME_R

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值