日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

椭圆曲线加密算法ECC

發布時間:2025/3/21 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 椭圆曲线加密算法ECC 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

ECC加密算法

一、相關數學基礎

二、ECC安全性原理

三、算法詳細流程

四、特點及安全性


推薦:

https://blog.csdn.net/sitebus/article/details/82835492

ECC加密算法

?橢圓曲線加密(ECC,Elliptic Curves Cryptography)也屬于非對稱加密公鑰算法,與主流的RSA算法相比,ECC算法可以使用較短的密鑰達到相同的安全程度。ECC是建立在基于橢圓曲線的離散對數問題上的密碼體制,給定橢圓曲線上的一個點G,并選取一個整數k,求解K=kG很容易(注意根據kG求解出來的K也是橢圓曲線上的一個點);反過來,在橢圓曲線上給定兩個點K和G,若使K=kG,求整數k是一個難題。ECC就是建立在此數學難題之上,這一數學難題稱為橢圓曲線離散對數問題。近年來,ECC逐步進入實際應用,如國家密碼管理局頒布的SM2算法就是基于ECC算法的。

一、相關數學基礎

有限域、群、交換群、離散對數、橢圓曲線加密

二、ECC安全性原理

K=kG,其中K,G為Ep(a,b)上的點,k為小于n的整數,n是點G的階,給定k和G,計算K容易,但是給定K和G,求k就很難了!

因此:K為公鑰,k為私鑰,G為基點

三、算法詳細流程

B傳送明文M給A:僅為例:也可以構成其他橢圓曲線密碼。

參數:

  • A選定一條橢圓曲線Ep(a,b),并取曲線上一點作為基點G
  • A選擇一個私鑰k,并生成公鑰K=kG
  • A將Ep(a,b)和k,G發送給B

加密:

  • B收到后將明文編碼到Ep(a,b)上一點M,并產生一個隨機數r
  • B計算點C1=M+rK,C2=rG
  • B將C1,C2傳給A

解密:

  • A計算C1-kC2=M+rkG-krG=M
  • A對M解碼得到明文

在這個加密通信中,如果有一個偷窺者H ,他只能看到Ep(a,b)、K、G、C1、C2,而通過K、G 求k 或通過C2、G求r 都是相對困難的,因此,H無法得到A、B間傳送的明文信息。

1、參數生成

通常將Fp上的一條橢圓曲線描述為T=(p,a,b,G,n,h),p、a、b確定一條橢圓曲線(p為質數,(mod p)運算)G為基點,n為點G的階,h是橢圓曲線上所有點的個數m與n相除的商的整數部分。

  • 選擇一個素數p,從而確定有限域GF(p);
  • 選擇元素a,b屬于GF(p),從而確定一條GF(p)上的橢圓曲線;
  • 選擇一個大素數n,并確定一個階為n的基點;(基礎參數p,a,b,G,n,h是公開的)
  • 隨機的選擇一個整數d屬于[1,n-1],作為私鑰;
  • 根據Q=dG;計算出用戶的公鑰Q;

參量選擇要求:

  • p越大安全性越好,但會導致計算速度變慢;
  • 200位左右可滿足一般安全要求;
  • n應為質數 h≤4;p≠n×h ;pt≠1(mod n) (1≤t<20)

2、加解密過程

實際應用中,設要加密的明文數據m,0<=m<n,用戶A要將數據m發送給用戶B:

加密:

  • 用戶A去查公鑰庫PKDB,查詢到用戶B 的公鑰Q;
  • 用戶A隨機選擇一個隨機數k,且k屬于[1,n-1];
  • 用戶A計算點X1:(x1,y1)=kG;
  • 用戶A計算點X2:(x2,y2)=kG;如果x2=O,則轉2;
  • 用戶A計算C=mx2 mod n;
  • 用戶A發送加密數據(X1,C)給用戶B。
  • 解密:

  • 用戶B用自己的私鑰求出X2:dX1=d(kG)=k(dG)=kQ=X2:(x2,y2);
  • 求出分量x2的逆:x2^(-1);
  • 對C解密,得到明文數據m=Cx2^(-1) mod n。
  • 3、簽名、驗簽流程

    簽名:

    • A選定一條橢圓曲線Ep(a,b),并取曲線上一點作為基點G
    • A選擇一個私鑰k,并生成公鑰K=kG
    • A產生一個隨機數r,計算R(x,y)=rG
    • A計算Hash=SHA(M),M‘=M(modp)
    • A計算S=(Hash+M'k)/r(modp)

    驗簽:

    • B獲得S和M',Ep(a,b),K,R(x,y)
    • B計算Hash=SHA(M),M'=M(modp)
    • B計算R'=(Hash*G+M'*K)/S=(Hash*G+M'*kG)*r/(Hash+M'k)=rG=R(x,y),若R'=R,則驗簽成功。

    以上加解密和簽名驗簽流程只是一個例子,具體應用時可以利用K=kG這一特性變幻出多種加解密方式。

    、特點及安全性

    優點:ECC和其他幾種公鑰系統相比,其抗攻擊性具有絕對的優勢,ECC160位的密鑰相當于RSA 、DSA1024位密鑰提供的保密強度,210位ECC則與2048位RSA、DSA具有相同的安全強度;計算量較小,處理速度更快;ECC的密鑰尺寸和系統參數與RSA、DSA相比要小得多存儲空間和傳輸帶寬占用較少。

    缺點:設計復雜,實現困難;如果序列號設計過短,那么安全性并沒有想象中的完善。

    應用:目前我國居民二代身份證正在使用 256 位的橢圓曲線密碼;虛擬貨幣比特幣也選擇ECC作為加密算法;IC卡、電子商務、Web服務器、移動電話和便攜終端、航空航天領域。

    注:

    如有錯誤、侵權,請聯系筆者更改刪除!!!

    總結

    以上是生活随笔為你收集整理的椭圆曲线加密算法ECC的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。