*作者:jxccy
* 郵箱:
*完成時間:2023年6月
一、diffie-hellman協議以及安全研究
diffie-hellman金鑰交換演算法的有效性依賴於計算離散對數的難度。簡言之,可以如下定義離散對數:首先定義乙個素數的原根,為其各次冪產生從1 到的所有整數根,也就是說,如果是素數的乙個原根,那麼數值
mod, mod, ..., mod
是各不相同的整數,並且以某種排列方式組成了從1到的所有整數。
對於乙個整數和素數的乙個原根,可以找到惟一的指數,使得
= 其中0 ≤≤ ()
指數稱為的以為基數的模的離散對數或者指數。該值被記為, ()。
基於此背景知識,可以定義diffie-hellman金鑰交換演算法。該演算法描述如下:
1、有兩個全域性公開的引數,乙個素數和乙個整數,是的乙個原根。
2、假設使用者a和b希望交換乙個金鑰,使用者a選擇乙個作為私有金鑰的隨機數<,並計算公開金鑰=。a對的值保密存放而使能被b公開獲得。類似地,使用者b選擇乙個私有的隨機數<,並計算公開金鑰= 。
b對的值保密存放而使能被a公開獲得。
3、使用者a產生共享秘密金鑰的計算方式是= ()。同樣,使用者b產生共享秘密金鑰的計算是= ()。這兩個計算產生相同的結果:
= ()
= ()
根據取模運算規則得到)
== ()
= ()
因此相當於雙方已經交換了乙個相同的秘密金鑰。
4、因為和是保密的,乙個敵對方可以利用的引數只有、、和。因而敵對方被迫取離散對數來確定金鑰。例如,要獲取使用者b的秘密金鑰,敵對方必須先計算
=, ()
然後再使用使用者b採用的同樣方法計算其秘密金鑰。
diffie-hellman金鑰交換演算法的安全性依賴於這樣乙個事實:雖然計算以乙個素數為模的指數相對容易,但計算離散對數卻很困難。對於大的素數,計算出離散對數幾乎是不可能的。
下面給出例子。金鑰交換基於素數= 97和97的乙個原根= 5。a和b分別選擇私有金鑰= 36和= 58。每人計算其公開金鑰
= 536 = 50 97
= 558 = 44 97
在他們相互獲取了公開金鑰之後,各自通過計算得到雙方共享的秘密金鑰如下:
= ()97 = 4436 = 75 97
= ()97 = 5058 = 75 97
從出發,攻擊者要計算出75很不容易。
二、具體實現過程
class user
;user::user(std::string na)
//大數冪乘演算法
int mul(int x,int r,int n)
else
}return c;
}//判斷陣列裡面元素都不相等(不相等為真)
bool isequalinarray(int *a,int n)
}return true;
}//求本原元
void benyuan(int prime)
if(isequalinarray(a,prime))
}cout<}
密碼學課程設計探索與實踐
作者 王少輝王志偉 課程教育研究 上 2013年第01期 摘要 密碼學是資訊保安專業的一門專業基礎課,密碼學課程設計是密碼學的重要組成部分。本文以密碼學課程設計的題目設計為出發點,分析了目前資訊保安本科專業實驗課程的現狀,闡述了密碼學課程設計中題目設計應充分地考慮密碼學學科的最新研究成果和計算機技術...
紅外遙控密碼鎖的設計與實現
1 引言 根據使用者的要求和需要,主要為了解決當前市場上無遙控密碼鎖的問題,以提高門禁系統的可靠性和安全性,適應市場需要而設計的該紅外紅外遙控密碼鎖系統。該系統具有普通電子密碼鎖功能的同時,還增加了遙控功能。該鎖採用6位數作為密碼,總密碼組有106組,完全滿足使用者對密碼安全性高的要求。該系統具有較...
安全協議 公司與員工
4 乙方進入生產作業區域,必須穿戴好安全勞保用品,避免高空物體墜入或其他危險物打擊。在生產作業現場要注意同事的安全保護用品 具 是否佩戴齊全,做好相互保護工作,對同事的違章行為及時提醒和糾正。5 乙方進行特殊施工作業,須持有效的上崗證方可上崗作業。6 乙方進入工作之前,需對本崗位 工種 的運 況 施...