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

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

RSA公鑰密碼的實現(xiàn)

2020-09-04 22:43 作者:喬知洛  | 我要投稿

實驗目的:

(1)幫助學生掌握RSA公鑰系統(tǒng)的密鑰生成、加密和解密的過程,能夠利用所學過的編程語言熟悉RSA公鑰加密算法流程與編程實現(xiàn)加密算法。掌握編程實現(xiàn)實際中問題的方法,提高解決問題的能力。

(2)要求學生掌握算法的程序?qū)崿F(xiàn)的方法,能應用密碼算法的特點,設計合適的交互界面,并能正確實現(xiàn)應用編程。

(3)要求學生掌握用規(guī)范的方法書寫實驗報告。

?

實驗儀器設備/實驗環(huán)境

PC Windows操作系統(tǒng),使用Java語言編程,或者使用數(shù)學軟件MATLAB、Maple編程,以下使用的是Visual C++ 6.0

?

實驗原理

RSA公鑰密碼原理

?

實驗內(nèi)容

解密:

#include<iostream>

#include<cmath>

using namespace std;

int main()

{

????int p,q;//定義p,q

????cout<<"輸入p、q (p、q為質(zhì)數(shù),不支持過大)"<< endl;//輸出"輸入p、q (p、q為質(zhì)數(shù),不支持過大),并且換行

????cin>>p>>q;//輸入p,q

????int m=p*q;//定義m=p*q

????int n=(p-1)*(q-1);//定義n=(p-1)*(q-1)

????int e;//定義e

????cout<<"輸入e (e與"<<n<<"互質(zhì)) 且 1<e<"<<n<<endl;//輸出 "輸入e (e與"<<n<<"互質(zhì)) 且 1<e<

????cin>>e;//輸入e

????int d;//定義d

????for(d=1;;d++)

????{

????????if(d*e%n==1)

??????????break;

????}

//循環(huán) 找出d使得ed=1(mod n)

????cout<<endl<<endl;

?

????cout<<"{ "<<e<<","<<m<<" }"<<"為公鑰"<<endl;

????cout<<"{ "<<d<<","<<m<<" }"<<"為私鑰"<<endl;

?

????cout<<endl<<endl;

????int after;

????cout<<"輸入密文"<<endl;

????cin>>after;

????int before;

????int i;

????before=after%n;

????for(i=1;i<d;i++)

????????before=(before*after)%m;

????//計算C^d=m(mod n)

????cout<<"明文為"<<endl;

????cout<<before<<endl;

}

結(jié)果:

加密:

#include<iostream>

#include<cmath>

using namespace std;

int main()

{

????int p,q;//定義p,q

????cout<<"輸入p、q (p、q為質(zhì)數(shù),不支持過大)"<< endl;//輸出"輸入p、q (p、q為質(zhì)數(shù),不支持過大),并且換行

????cin>>p>>q;//輸入p,q

????int m=p*q;//定義m=p*q

????int n=(p-1)*(q-1);//定義n=(p-1)*(q-1)

????int e;//定義e

????cout<<"輸入e (e與"<<n<<"互質(zhì)) 且 1<e<"<<n<<endl;//輸出 "輸入e (e與"<<n<<"互質(zhì)) 且 1<e<

????cin>>e;//輸入e

????int d;//定義d

????for(d=1;;d++)

????{

????????if(d*e%n==1)

??????????break;

????}

//循環(huán) 找出d使得ed=1(mod n)

????cout<<endl<<endl;

?

????cout<<"{ "<<e<<","<<m<<" }"<<"為公鑰"<<endl;

????cout<<"{ "<<d<<","<<m<<" }"<<"為私鑰"<<endl;

?

????cout<<endl<<endl;

????int before;

????cout<<"輸入明文"<<endl;

????cin>>before;

????int after;

????int i;

????after=before%n;

????for(i=1;i<e;i++)

????????after=(after*before)%m;

????//計算m^e=C(mod n)

????cout<<"密文為"<<endl;

????cout<<after<<endl;

}

結(jié)果:

實驗心得

RSA算法基于一個十分簡單的數(shù)論事實:將兩個大素數(shù)相乘十分容易,但是想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰
整個加密解密的過程大概是;首先假設甲方要向乙方發(fā)送消息,那么甲方需要對消息加密,乙方需要對消息解密,加密算法分為對稱性和非對稱性2種算法,根據(jù)加密解密所使用的秘鑰相不相同來區(qū)分,我們要討論的RSA算法就是非對稱性的,也就是加密的公鑰和解密的私鑰是不同的。由于公鑰是公開的,可以給別人看到所以不需要保護,只需要保護好私鑰不被竊取即可,通常私鑰的竊取都是在傳輸?shù)倪^程中進行的,所以只要防止私鑰的傳輸就好了。因此甲方發(fā)送消息給乙方,所以乙方產(chǎn)生公鑰和私鑰,之后將公鑰公開,用于甲方對消息加密,然后乙方自己擁有私鑰,只需要使用私鑰解密即可。


RSA公鑰密碼的實現(xiàn)的評論 (共 條)

分享到微博請遵守國家法律
柯坪县| 阿图什市| 镇康县| 万盛区| 海兴县| 宜丰县| 石台县| 乌兰察布市| 凌源市| 旅游| 富顺县| 兰考县| 普陀区| 健康| 英德市| 鄂伦春自治旗| 凤凰县| 东乌珠穆沁旗| 冷水江市| 平塘县| 浦东新区| 海原县| 惠来县| 革吉县| 民县| 东乌| 望江县| 鹤庆县| 桦甸市| 依兰县| 慈利县| 平安县| 江源县| 调兵山市| 锦州市| 蓬莱市| 邛崃市| 太保市| 宝山区| 库尔勒市| 江达县|