1非對稱加密實驗

2023-01-06 09:54:05 字數 5414 閱讀 7526

【實驗內容】

通過運算器工具實現rsa、elgamal演算法的加解密計算

手工計算rsa金鑰並檢驗,將其應用於簽名中並驗證

對rsa、elgamal、ecc演算法進行擴充套件實驗

對rsa金鑰生成、rsa金鑰加密、elgamal引數生成、elgamal金鑰生成和elgamal加密進行演算法跟蹤

非對稱密碼體制又稱為公鑰密碼體制,加解密使用公私鑰金鑰對,私鑰由金鑰擁有者保管,公鑰可以公開,基於公開渠道進行分發,解決了對稱金鑰體制中金鑰管理、分發和數字簽名等難題。

一、 rsa演算法

rsa公鑰演算法由rivest、shamir、adleman於2023年提出的,是目前公鑰密碼的國際標準。演算法的數學基礎是euler定理,是基於deffie-hellman的單項陷門函式的定義而給出的第乙個公鑰密碼的實際實現,其安全性建立在大整數因子分解的困難性之上。

rsa演算法的明文空間m=密文空間c=zn整數,其演算法描述如下:

(1) 金鑰生成

隨機選擇兩個大素數p和q,計算n=pq,;選擇乙個隨機整數e<,滿足,計算整數;公開公鑰(n,e),安全的銷毀p、q和,並保留(d,n)作為私鑰。

(2) 加密

(3) 解密

使用中國剩餘定理可以加速rsa密碼演算法的實現。

二、 elgamal演算法

elgamal演算法是deffie-hellman單項陷門函式的乙個成功應用,把函式轉化為公鑰加密體制,其安全性建立在有限域上的離散對數問題。

elgamal演算法的描述如下:

(1) 金鑰生成

隨機選擇乙個素數p,計算p個元素的有限域的乘法群的乙個隨機乘法生成元g;均勻隨機地在模p-1的整數集合中選取x,計算;把(p,g,y)作為公鑰公開,把(p,g,x)作為私鑰。

(2) 加密

均勻隨機地在模p-1的整數集合中選取k,訊息m(3) 解密

三、 橢圓曲線密碼(ecc)

橢圓曲線指的是由韋爾斯特拉斯(weierstrass)方程所確定的平面曲線。若f是乙個域,。滿足上式的數偶 (x,y)稱為f域上的橢圓曲線e上的解點。

f域可以是有理數域,還可以是有限域gf(pr)。橢圓曲線通常用e表示。除了曲線e的所有點外,尚需加上乙個叫做無窮遠點的特殊∞。

2023年,neal koblitz和victor s. miller分別建議將橢圓曲線(elliptic curves)應用到密碼學中。研究發現,有限域上的橢圓曲線上的一些點構成交換群,而且其離散對數問題是難解的。

於是可以在此群上定義elgamal密碼。並稱之為橢圓曲線密碼(elliptic curve cryptography,ecc)。目前,橢圓曲線密碼已成為除rsa密碼之外呼聲最高的公鑰密碼之一。

在橢圓曲線密碼中,利用了某種特殊形式的橢圓曲線,即定義在有限域上的橢圓曲線。gf(p)上的橢圓曲線的一般形式為:

,其中p是素數,,且

ecc具有金鑰短、簽名短,軟體實現規模小、硬體實現電路省電的特點。普遍認為,160比特長的橢圓曲線密碼的安全性相當於1024比特長的rsa密碼,而且速度也較快。正因為此,一些國際標準化組織已把橢圓曲線密碼作為新的資訊保安標準,如ieee p1363/d4,ansi f9.

62等,分別規範了ecc在internet協議安全、電子商務、web伺服器、空間通訊、易懂通訊、智慧卡等方面的應用。

elgamal型橢圓曲線密碼的演算法描述:

(1) 金鑰的生成

①隨機地選擇乙個大素數q,從而確定有限域gf(p)。選擇元素,進而確定一條gf(p)上的橢圓曲線。

②選擇乙個大素數n,並確定乙個階為n的基點g。

③隨機地選擇乙個整數d,,作為私鑰。

④計算使用者的公鑰q=dg得到:公鑰為;私鑰為。

(2) 加密

將明文訊息m,,加密成密文的過程如下:

1 隨機地選取乙個正整數kk,。

②計算共享秘密

③計算密文

④取(x1,c)作為密文。

(3) 解密

將密文(x1,c)還原為明文的過程如下:

①計算共享金鑰

②計算橢圓曲線密碼的安全性建立在橢圓曲線離散對數問題的困難性之上。目前,求解橢圓曲線離散對數問題的最好演算法是分布式pollard-方法,其計算複雜性為,其中n是群的階的最大素因子,m是該分布式演算法所使用的cpu個數。可見當素數p和n足夠大時橢圓曲線密碼是安全的。

ises客戶端

microsoft clr debugger 2005或其它偵錯程式

一、 rsa

(一) 加解密計算

(1) 開啟實驗實施,預設的選擇即為rsa標籤,顯示rsa實驗介面。

(2) 選擇明文格式,輸入要加密的明文資訊。

(3) 選擇金鑰長度,此處以512位元為例,點選「生成金鑰對」按鈕,生成金鑰對和引數。

(4) 選擇「標準方法」標籤,在標籤下檢視生成的金鑰對和引數,如圖1.1.71所示。

圖1.1.71

(5) 標準方法加解密

標準方法可選擇公鑰加密/私鑰解密形式和公鑰加密/私鑰解密形式進行加解密,此處以公鑰加密/私鑰解密形式進行加解密,公鑰加密/私鑰解密可參照完成;注意在一次加解密過程中不要重新生成金鑰對。

點選「公鑰加密」按鈕使用生成的公鑰對明文進行加密,密文以十六進製制顯示在密文文字框中;清除明文文字框中的內容,點選「私鑰解密」按鈕對密文進行解密,明文預設以文字形式顯示在明文文字框中,如圖1.1.72所示;可選擇以16進製制檢視明文。

圖1.1.72

(6) 選擇「中國剩餘定理方法」標籤,在標籤下檢視生成的金鑰對和引數,如圖1.1.73所示。

圖1.1.73

(7) 中國剩餘定理方法加解密

點選「加密」按鈕使用生成的公鑰對明文進行加密,密文以十六進製制顯示在密文文字框中;清除明文文字框中的內容,點選「解密」按鈕對密文進行解密,明文預設以文字形式顯示在明文文字框中,如圖1.1.74所示。

可選擇以十六進製制檢視明文。

圖1.1.74

(二) rsa金鑰計算

(1) 點選「擴充套件實驗」框中的「rsa計算」按鈕,進入rsa計算窗體。

(2) 輸入報文資訊,點選「計算md5值」生成報文資訊的資訊摘要,如圖1.1.75所示。

圖1.1.75

(3) 選擇p、q值,計算n、φ(n)、e和d並輸入相應的文字框中,點選「檢驗」按鈕對計算的各個引數值進行檢驗,如圖1.1.76所示。

圖1.1.76

(4) 檢驗無誤後,根據上述計算得到的rsa私鑰,計算報文md5值即報文摘要的前8位的簽名值,並輸入相應的文字框;點選「生成簽名並檢驗」按鈕,檢驗簽名輸入是否正確並自動生成訊息摘要前8位的簽名值並顯示,如圖1.1.77所示。

圖1.1.77

(5) 點選「驗證」按鈕,對輸入的簽名值進行驗證,並給出相應的提示,如圖1.1.78所示。

圖1.1.78

(三) 擴充套件實驗

(1) 點選「擴充套件實驗」框中的「rsa擴充套件實驗」按鈕,進入rsa擴充套件實驗窗體。

(2) 生成大素數p和q。

①使用實驗系統所提供的大素數,並點選素數文字框的右邊的素性測試按鈕,確保p,q均為素數,如圖1.1.79所示。

圖1.1.79

②輸入2個大素數,並分別測試其素性,如圖1.1.710所示。

圖1.1.710

③點選「生成p,q」按鈕,進入大素數生成介面;輸入要生成的素數(十進位制)位數範圍,點選「隨機生成」,即可得到2個滿足要求的大素數;如圖1.1.711所示。

圖1.1.711

(3) 計算n=pq。在正確設定了大素數p和q之後(也進行了素性測試),點選該文字框右邊的「計算」即可,如圖1.1.712所示。

圖1.1.712

(4) 計算。在正確設定了n之後,點選該文字框右邊的「計算」即可,如圖1.1.713所示。

圖1.1.713

(5) 生成金鑰。點選「選取公鑰」按鈕,即可生成rsa密碼演算法的公鑰和私鑰,如圖1.1.714所示。

圖1.1.714

(6) 在主視窗中,點選「加密」,即進入rsa加密視窗;在明文文字框中輸入乙個小於n的(十進位制)正整數,點選「加密」,即得到相應的密文;如圖1.1.715所示。

圖1.1.715

(7) 在主視窗中,點選「解密」,即進入rsa解密視窗;在密文文字框中輸入乙個小於n的(十進位制)正整數,點選「解密」,即得到相應的明文;如圖1.1.716所示。

圖1.1.716

(四) 演算法跟蹤

點選「演算法跟蹤」框下的「rsa金鑰生成」/「rsa加密」按鈕,進入偵錯程式,選擇對應的演算法函式對rsa金鑰生成演算法/rsa加密演算法進行演算法跟蹤;跟蹤完成後會自動返回實驗介面顯示計算結果;切換**試器,停止除錯,關閉偵錯程式,不儲存工程。

具體步驟可參照古典密碼實驗中實驗步驟二。

二、 elgamal

(一) 加解密計算

(1) 選擇「elgamal」標籤,進入elgamal實驗介面。

(2) 選擇明文形式,輸入明文資訊。

(3) 引數生成

點選「生成g和p」按鈕,生成elgamal引數p和g,如圖1.1.717所示。

圖1.1.717

(4) 金鑰生成

點選「生成金鑰」按鈕,生成金鑰y和x,如圖1.1.718所示。

圖1.1.718

(5) 加密

點選「加密」按鈕,使用公開金鑰y對明文加密,密文以十六進製制形式顯示在密文文字框中,如圖1.1.719所示。

圖1.1.719

(6) 解密

清除明文文字框中的內容,點選「解密」按鈕對密文進行解密,明文預設以十六進製制形式顯示在明文文字框中,如圖1.1.720所示;可選擇以文字形式檢視明文。

圖1.1.720

(二) 擴充套件實驗

(1) 在擴充套件實驗中點選「elgamal擴充套件實驗」按鈕,進入elgamal擴充套件實驗窗體。

(2) 在主視窗中,在文字框「群階q」中輸入乙個大素數(此處不超過10位十進位制),在文字框「生成元g」中輸入乙個小於q的正整數,並點選「生成元測試」按鈕,如圖1.1.721所示。

圖1.1.721

(3) 生成elgamal密碼的公鑰密碼和私鑰密碼。在文字框「私鑰x」中輸入乙個正整數,作為私鑰密碼,點選「確定」按鈕,得到elgamal密碼的公鑰密碼和私鑰密碼,如圖1.1.

722所示。

圖1.1.722

(4) 在主視窗中,點選「加密」,即進入elgamal密碼的加密視窗;首先在隨機數k文字框中輸入乙個q的正整數,並點選其右邊的「確定」按鈕;然後在明文m文字框中輸入乙個小於q的(十進位制)正整數,點選「加密」,即得到相應的密文;如圖1.1.723所示。

圖1.1.723

(5) 在主視窗中,點選「解密」,即進入elgamal解密視窗;系統自動將加密視窗中的密文填入了解密視窗中的相應文字框中,點選「解密」按鈕,即得到解密後的明文;如圖1.1.724所示。

圖1.1.724

(三) 演算法跟蹤

點選「演算法跟蹤」框下的「elgamal引數生成」/「elgamal金鑰生成」/「elgamal加密」按鈕,進入偵錯程式,選擇對應的演算法函式對elgamal引數生成過程、elgamal金鑰生成演算法和elgamal加密演算法進行演算法跟蹤;跟蹤完成後會自動返回實驗介面顯示計算結果;切換**試器,停止除錯,關閉偵錯程式,不儲存工程。

「非對稱繁簡字」對照表

隨著回歸之日的日益迫近,香港人學習簡化字,內地人掌握繁體字的要求,日漸迫切,已成為大勢所趨。其實,由於絕大多數漢字的繁 簡體是一一對應的,如 漢 漢 雞 雞 將 將 虧 虧 塵 塵 等,學了簡體後再學繁體或學了繁體後再學簡體,一般並不十分困難。有困難的,恐怕是那些乙個簡體對應於多個繁體或多個簡體對應...

Casio 5800P程式 匝道及主線非對稱型 10

casio 5800p 計算程式 對程式進行部分更新,匝道計算比以前的公式精度高,程式公式簡潔,缺點是計算速度稍慢。2010 5 24 匝道座標計算程式 a03zdzb 主程式名 lbl 0 a 1,b 2,c 3,d 4,e 5,h 6,j 7 a k k if a 1 then prog a g...

對稱加密演算法實驗指導書

網路安全 實驗指導書 對稱加密演算法 一 實驗目的 1 熟悉和掌握對稱加密演算法的原理及其一般過程 2 掌握對稱加密演算法的基本方法 替代 substitute 與置換 transposition 3 掌握使用一定的編碼開發工具 對具體的開發平台和工具不作要求 二 實驗內容 1 替代加密法 1 程式...