國產密碼研究


最近找國產密碼的資料,發現這塊的東西極少。

經過這次中興事件,中美貿易戰的事件時候感覺國產密碼會提升到國防的程度。

研究下發現有一個大神寫出了java SM系列部分國產密碼的工具。

但是很多轉載版本缺少了一個Cipher類文件的存在。所以我覺得我這里需要記錄一下這次的東西,以后必然會用上。

這次研究下,發現我對密碼學非常感興趣啊~~~~想學的東西太多~~~時間明顯不夠用了~~~~


密碼概況
1、SM1算法。:存在芯片中,並未公開
2、SM2算法。:非對稱橢圓加密算法,已公開
2、SM3算法。該算法也叫密碼雜湊算法,屬於哈希(摘要)算法的一種,雜湊值為256位,和SM2算法一起被公布。不可逆,並且具體算法保密
4、SM4算法。該算法為對稱加密算法,隨WAPI標准一起被公布,其加密強度為128位。分組算法,此算法是一個分組算法,用於無線局域網產品。
5.SM7對稱密碼 SM7算法是一種分組密碼算法,分組長度為128比特,密鑰長度為128比特。SM7的算法文本目前沒有公開發布。IC卡,門禁專用
6.SM9非對稱算法 。

 

SM2算法原理:https://www.cnblogs.com/smy87/p/7919208.html

 

以下是轉載自蝸牛小姐姐的學習筆記。非常好理解。

 

RSA算法的危機在於其存在亞指數算法,對ECC算法而言一般沒有亞指數攻擊算法

SM2橢圓曲線公鑰密碼算法:我國自主知識產權的商用密碼算法,是ECC(Elliptic Curve Cryptosystem)算法的一種,基於橢圓曲線離散對數問題,計算復雜度是指數級,求解難度較大,同等安全程度要求下,橢圓曲線密碼較其他公鑰算法所需密鑰長度小很多。

ECC算法描述:

  1、用戶A選定一條適合加密的橢圓曲線Ep(a,b)(如:y2=x3+ax+b),並取橢圓曲線上一點,作為基點G。
  2、用戶A選擇一個私有密鑰k,並生成公開密鑰(公鑰PB)K=kG。
  3、用戶A將Ep(a,b)和點(公鑰)K,G傳給用戶B。
  4、用戶B接到信息后 ,將待傳輸的明文(M)編碼到Ep(a,b)上一點M,並產生一個隨機整數r(r<n)。加密開始
  5、用戶B計算點C1=M+rK;C2=rG。
  6、用戶B將C1、C2傳給用戶A。
  7、用戶A接到信息后,計算C1-kC2,結果就是點M。因為C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M
  再對點M進行解碼就可以得到明文。

  密碼學中,描述一條Fp上的橢圓曲線,常用到六個參量:
  T=(p,a,b,G,n,h)。
  (p 、a 、b 用來確定一條橢圓曲線,G為基點,n為點G的階,h 是橢圓曲線上所有點的個數m與n相除的整數部分)

  這幾個參量取值的選擇,直接影響了加密的安全性。參量值一般要求滿足以下幾個條件:

  1、p 當然越大越安全,但越大,計算速度會變慢,200位左右可以滿足一般安全要求;

  2、p≠n×h;

  3、pt≠1 (mod n),1≤t<20;
  4、4a3+27b2≠0 (mod p);
  5、n 為素數;
  6、h≤4。

 

 

 

 

 

實現該功能的blog:https://blog.csdn.net/ererfei/article/details/50998162

實現代碼等我回去再補充


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM