ECC密碼算法編程實驗-7.5課件_第1頁
ECC密碼算法編程實驗-7.5課件_第2頁
ECC密碼算法編程實驗-7.5課件_第3頁
ECC密碼算法編程實驗-7.5課件_第4頁
ECC密碼算法編程實驗-7.5課件_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、7.5 ECC密碼算法編程實驗,實驗目的: 掌握ECC密碼加解密原理,并利用Visual C+編程實現。 實驗內容: 編程實現字符串”Hi, this is ECC!”的加密,并解密驗證之,網絡空間安全實踐教程,1,7.5 ECC密碼算法編程實驗,實驗原理: 系統參數: 設p3是一個素數,E是有限域Fp上的橢圓曲線 E(Fp)是相應的點群, 是E(Fp)中有較大素數階q的一個點。 密鑰生成: 隨機選取整數 ,并計算P = dG。d是私鑰,P是公鑰,網絡空間安全實踐教程,2,7.5 ECC密碼算法編程實驗,實驗原理: 加密: 對明文 ,隨機選取整數 ,計算數乘 (x,y) = kP,再計算 ,

2、明文 經加密后的密文即為 。 解密: 對任意密文 ,計算數乘 ,再計 算 ,得到解密后的明文,網絡空間安全實踐教程,3,7.5 ECC密碼算法編程實驗,實驗要點說明: 公開參數選擇: ECC的參數選取不同于其他的加密算法,對于素數p,參數a,b以及基點G的選擇有很多要求,產生合適的參數需要耗費很多時間。所以許多標準化文檔中直接給出了一些公開參數的取值,我們在此實驗中采用RFC5639中的一條橢圓曲線,ID為brainpoolP192r1,其公開參數取值如下(以16進制表示): p = 0 xC302F41D932A36CDA7A3463093D18DB78FCE476DE1A86297 a =

3、 0 x6A91174076B1E0E19C39C031FE8685C1CAE040E5C69A28EF b = 0 x469A28EF7C28CCA3DC721D044F4496BCCA7EF4146FBF25C9 G.x = 0 xC0A0647EAAB6A48753B033C56CB0F0900A2F5C4853375FD6 G.y = 0 x14B690866ABD5BB88B5F4828C1490002E6773FA2FA299B8F q = 0 xC302F41D932A36CDA7A3462F9E9E916B5BE8F1029AC4ACC1,網絡空間安全實踐教程,4,7.5 EC

4、C密碼算法編程實驗,實驗要點說明: 公開參數選擇: ECC的參數選取不同于其他的加密算法,對于素數p,參數a,b以及基點G的選擇有很多要求,產生合適的參數需要耗費很多時間。所以許多標準化文檔中直接給出了一些公開參數的取值,我們在此實驗中采用RFC5639中的一條橢圓曲線,ID為brainpoolP192r1,其公開參數取值如下(以16進制表示): p = 0 xC302F41D932A36CDA7A3463093D18DB78FCE476DE1A86297 a = 0 x6A91174076B1E0E19C39C031FE8685C1CAE040E5C69A28EF b = 0 x469A28

5、EF7C28CCA3DC721D044F4496BCCA7EF4146FBF25C9 G.x = 0 xC0A0647EAAB6A48753B033C56CB0F0900A2F5C4853375FD6 G.y = 0 x14B690866ABD5BB88B5F4828C1490002E6773FA2FA299B8F q = 0 xC302F41D932A36CDA7A3462F9E9E916B5BE8F1029AC4ACC1,網絡空間安全實踐教程,5,7.5 ECC密碼算法編程實驗,實驗要點說明: 橢圓曲線點的表示: 用包含兩個大整數的新結構體表示橢圓曲線上的點,例如: typedef str

6、uct ECCPoint Bigint x; Bigint y; ECCPoint; 而無窮遠點O我們就用坐標(0, 0)表示,網絡空間安全實踐教程,6,7.5 ECC密碼算法編程實驗,實驗要點說明: 橢圓曲線數乘運算: 在橢圓曲線密碼中,最重要的就是數乘運算,即給定數k與點P,計算點k * P的過程。為了計算快速,可以將數乘運算可以化為點加運算(計算P + Q)與倍點運算(計算2 * P)的結合,可參考7.1中求大數模冪時用到的模冪算法,可參考如下代碼,網絡空間安全實踐教程,7,7.5 ECC密碼算法編程實驗,ECCPoint ECCTimes(Bigint k, ECCPoint P, B

7、igint n) /橢圓曲線數乘算法,計算k * P ECCPoint Q = 0,0; Bigint one = 1; while(Length(k) 0) while(!(k.num0,網絡空間安全實踐教程,8,7.5 ECC密碼算法編程實驗,實驗準備: Windows 操作系統 Visual Studio 2010以上開發(fā)環(huán)境,網絡空間安全實踐教程,9,7.5 ECC密碼算法編程實驗,實驗步驟: 利用Visual C+開發(fā)環(huán)境,構建類似右圖的 ECC密碼加解密界面。 編寫密鑰生成按鈕事件:隨機生成私鑰d,利用 基點G計算公鑰P = dG并輸出。 編寫加密按鈕事件:從明文框中讀入字符序列, 利用公鑰進行加密,在密文框中輸出。 編寫解密按鈕事件:從密文框中讀入字符序列, 根據私鑰對其解密,在解密的明文框中輸出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論