最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

【密碼學(xué)基礎(chǔ)】使用歐幾里得算法求出RSA算法私鑰d

2023-08-17 21:55 作者:銅鑼燒愛吃關(guān)東煮  | 我要投稿

用C++遞歸實(shí)現(xiàn)UP所講解輾轉(zhuǎn)相除法(程序很爛,僅供參考)


#include<bits/stdc++.h>

using namespace std;


bool f1=0;//用于判斷函數(shù)是否第一次調(diào)用?

struct node //用于存儲函數(shù)生成的d,k?

{

unsigned long long d;

unsigned long long k;

bool f;

};


node fd(

unsigned long long e,

unsigned long long r)

{

//用于找到合適的私鑰d?

if(f1==1)//如果不是第一次調(diào)用?

{

//輾轉(zhuǎn)相除?

if(e>r)e%=r;

else r%=e;

if(e==1)

//假設(shè)k=0

return {1,0,0};

if(r==1)

//假設(shè)d=1

return {1,e-1,1};

}

else f1=1;

node rfd=fd(e,r);

if(rfd.f==0)

return {rfd.d,((e*rfd.d-1)/r),1};//計(jì)算上一個(gè)r?

if(rfd.f==1)

return {((1+r*rfd.k)/e),rfd.k,0};//計(jì)算上一個(gè)e

}


int main()

{

//按順序輸入e,r兩個(gè)參數(shù)?

unsigned long long e,r;

cin>>e>>r;

unsigned long long d;

d=fd(e,r).d;

//輸出生成的d以及判斷d是否合法?

cout<<"d="<<d<<endl;

cout<<"判斷:"<<((d*e)%r==1)<<endl;

system("pause > nul");

return 0;

}


【密碼學(xué)基礎(chǔ)】使用歐幾里得算法求出RSA算法私鑰d的評論 (共 條)

分享到微博請遵守國家法律
滨州市| 德阳市| 松原市| 长沙县| 嘉鱼县| 乌审旗| 青岛市| 德庆县| 镇远县| 绥中县| 保德县| 高安市| 库伦旗| 克东县| 七台河市| 凉城县| 洪雅县| 阜新市| 饶平县| 峨边| 曲阜市| 尼勒克县| 司法| 黎川县| 峡江县| 苗栗县| 兴义市| 乡宁县| 息烽县| 屏南县| 綦江县| 黄梅县| 雅江县| 远安县| 武宁县| 抚州市| 潢川县| 伊春市| 乐东| 疏附县| 仪征市|