计算机 密码学 实验一,计算机网络安全技术-实验一-密码学基础
計算機網絡安全技術-實驗一-密碼學基礎
計算機科學與技術系實 驗 報 告專業名稱 網絡工程 課程名稱 計算機網絡安全技術 項目名稱 密碼學 班 級 13 網工(1)班 學 號 1304031030 姓 名 余世光 同組人員 無 實驗日期 2016/5/8 實驗一 密碼學密碼學數學基礎實驗一、實驗內容:使用運算器工具完成大數運算、素性測試、模冪、原根、求逆和二次剩余的計算。二、實驗原理:1、 大數運算大多數運算器只支持小于 64 位的整數運算,無法進行加密算法的運算。為滿足加密算法的需要,可通過建立大整數運算庫來解決這一問題。通常通過以下兩種方式進行處理:(1)將大整數當作字符串處理,即將大整數用 10 進制字符數組表示;這種方式便于理解,但效率較低。(2)將大整數當作二進制流進行處理;計算速度快。2、素性測試Monte Carlo 算法和 Las Vegas 算法均為素性測試的算法。(1)Monte Carlo 算法Monte Carlo 算法又稱為概率素性檢測算法,算法描述如下:輸入:p 為一個正整數;輸出:若 p 為素數,輸出 YES;否則輸出 NO。Prime_Test(p)flag=0;重復 次:在(1,p-1]區間上均勻隨機的選取 x;如果 gcd(x,p)>1 或 ,return(NO);如果 flag=0 且 ,flag=1;結束重復;如果 flag=0,即在重復中 沒有出現過,return(NO);return(YES)。(2)Las Vegas 算法Las Vegas 算法又稱為素性證明,算法描述如下:輸入:p 為一個正基數;q1,q2,…,qk 為 p-1 的全體素因子,其中 k≤ ;輸出:若 p 為素數,輸出 YES;否則輸出 NO。Prim_ Certify(p,q[k])在區間[2,p-1]上均勻隨機的選取 gfor(i=1,i++,k)do如果 ,輸出 NO_DECISION 并終止程序;如果 ,輸出 NO 并終止程序;輸出 YES 并終止程序。2、 模冪對于 b,c0,c≥0,m>1;輸出:b cmod mmod_exp(b,c,m)if(c=0) return (1);if (c mod 2=0) return(mod_exp(b2 mod m,c/2,m));其中 c/2 表示 c 除以 2 取整;return (b·mod_exp(b2 mod m,c/2,m))。3、 原根在數論,特別是整除理論中,原根是一個很重要的概念。對于兩個正整數 ,由歐拉定理可知,存在正整數 ,比如說歐拉函數 ,即小于等于 m 的正整數中與 m 互質的正整數的個數,使得 。由此,在 時,定義 a 對模 m 的指數 為使 成立的最小的正整數 d。由前知 一定小于等于 ,若 ,則稱 a 是模 m 的原根。4、 求逆乘法逆元的定義為:對于 ,存在于 ,使得于 ,則 w 是可逆的,稱 x 為 w 的乘法逆元,記為 ;其中 Zn 表示小于 n 的所有非負整數集合。通常通過擴展歐幾里得算法和費馬小定理求乘法逆元,此處使用擴展歐幾里得算法。擴展歐幾里得算法的定義為:如果整數 f1,gcd(d,f)=1,那么 d 有一個模 f 的乘法逆元;即對于小于 f 的正整數 d,存在一個小于 f 的正整數 d-1,使得 。擴展歐幾里得算法的具體描述如下:ExtendedEUCLID(d,f)(1) (X1,X2,X3)←(1,0,f);(Y1,Y2,Y3)←(1,0,d)。(2) 若 Y3=0,返回 X3=gcd(d,f);無逆元。(3) 若 Y3=1,返回 Y3=gcd(d,f);Y2=d-1mod f。(4) Q= 。(5) (T1,T2,T3)←(X1-Q·Y1,X2 -Q·Y2,X3-Q·Y3)。(6) (X1,X2,X3)←(Y1,Y2,Y3)。(7) (Y1,Y2,Y3)←(T1,T2,T3)。(8) 返回(2)。5、 二次剩余二次剩余的定義為:a 與 p 互素,p 是奇素數,若 ,則稱 a 是模 p 的二次剩余;否則稱 a 是模 p 的非二次剩余。二次剩余定理:若 p 是奇素數,則整數 1,2,…,p-1 中正好有(p-1)/2 個是模 p 的二次剩余,其余的(p-1)/2 個是非二次剩余。三、實驗環境:ISES 客戶端四、實驗步驟:(1) 加、減、乘、除、模、求逆運算選擇進制類型和計算類型,輸入要計算的操作數,點擊計算。顯示計算后的結果,如圖 1 所示。圖 1(2) 模冪運算選擇進制類型和計算類型,輸入要計算的 b、e、m,點擊計算。顯示模冪計算后的結果,如圖 2 所示。圖 2(3) 生成大素數原根選擇進制類型和計算類型,點擊隨機生成按鈕,顯示隨機生成的大素數以及大素數的原根,如圖 3 所示。圖 3(4) 二次剩余判斷選擇進制類型和計算類型,輸入 a、p,點擊計算。顯示二次剩余的判斷結果,如圖 4 所示。圖 4(5) 素性測試選擇進制類型和計算類型,輸入待測試的大整數,點擊測試。顯示測試結果,如圖 5,6 所示。圖 5圖 6五、實驗總結:六.實驗思考:1、計算 Monte Carlo 算法和 Las Vegas 算法的時間復雜度2、將模冪算法修改為非遞歸算法,并計算遞歸與非遞歸算法的復雜度3、思考如何將擴展歐幾里得算法和費馬小定理用于求逆散列函數實驗一、實驗內容:1、通過運算器工具實現 MD5、SHA-1/256 、HMAC 等算法的加解密。2、對兩個報文的 MD5 值進行異或比對,進行 SHA-1 的分步計算。3、對 MD5、SHA-1/256 等算法進行擴展實驗和算法跟蹤。二、實驗原理:散列函數是一種單向密碼,即是一個從明文到密文的不可逆映射,只有加密過程,不可解密;同時散列函數可以將任意長度的輸入經過變換以后得到固定長度的輸出。散列函數在完整性認證和數字簽名等領域有廣泛應用。散列函數應滿足以下要求:(1)算法公開,不需要密鑰。(2)具有數據壓縮功能,可將任意長度的輸入轉換為固定長度的輸出。(3)已知 m,容易計算出 H(m)。(4)給定消息散列值 H(m),要計算出 m 在計算上是不可行的。(5)對任意不同的輸入 m 和 n,它們的散列值是不能相同的。1、 MD5 算法MD5(Message-Digest Algorithm 5)即信息-摘要算法,是 MD4 算法的改進;算法的輸入為任意長度的消息,分為 512 比特長的分組,輸出為 128 比特的消息摘要。處理過程如下:(1)對消息進行填充,使其比特長度為 n 512+448(n 為正整數),填充方式是固定的:第一位為 1,其后各位為 0。(2)附加消息長度,使用上一步驟留出的 64 比特以小端(最低有效字節/位存儲于低地址字節/位)方式來表示消息被填充前的長度,若消息長度大于 264,則以 264 為模數取模。(3)對消息摘要緩沖區初始化,算法使用 128 比特長的緩沖區來存儲中間結果和最終散列值,將緩沖區表示成 4
總結
以上是生活随笔為你收集整理的计算机 密码学 实验一,计算机网络安全技术-实验一-密码学基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机里面的百度云怎么弄消失,我换了个手
- 下一篇: 初中计算机基础知识说课稿,计算机基础知识