国产欧美日韩久久久久,国产精品无码天天爽视频,国产小视频在线观看网站,久久综合精品国产二区无码,嫩草研究院久久久精品

解讀DES和SM4、RSA和SM2及SM3

 二維碼
發表時間:2017-02-13 14:47

安全是智能卡的核心,而算法是安全的基礎。


  國密算法由國家密碼局發布,包含SM1\ SM2\ SM3\ SM4\ SSF33算法;國際算法由美國的安全局發布,是現今最通用的商用算法。今天小鈔就以分組密碼算法(DES和SM4)、公鑰密碼算法(RSA和SM2)、摘要算法(SM3)為例,和大家談談國際算法和國密算法的區別。


  分組密碼算法——國際DES、國產SM4


  分組密碼就是將明文數據按固定長度進行分組,然后在同一密鑰控制下逐組進行加密,從而將各個明文分組變換成一個等長的密文分組的密碼。其中二進制明文分組的長度稱為該分組密碼的分組規模。


  分組密碼的實現原則如下:


  (1)必須實現起來比較簡單,知道密鑰時加密和脫密都十分容易,適合硬件和(或)軟件實現.

  (2)加脫密速度和所消耗的資源和成本較低,能滿足具體應用范圍的需要.


  分組密碼的設計基本遵循混淆原則和擴散原則。


  混淆原則就是將密文、明文、密鑰三者之間的統計關系和代數關系變得盡可能復雜,使得敵手即使獲得了密文和明文,也無法求出密鑰的任何信息;即使獲得了密文和明文的統計規律,也無法求出明文的任何信息。


  擴散原則就是應將明文的統計規律和結構規律散射到相當長的一段統計中去。也就是說讓明文中的每一位影響密文中的盡可能多的位,或者說讓密文中的每一位都受到明文中的盡可能多位的影響。


  DES算法


  DES算法是在美國NSA(國家安全局)資助下由IBM公司開發的密碼算法,其初衷是為政府非機密的敏感信息提供較強的加密保護。它是美國政府擔保的第一種加密算法,并在1977年被正式作為美國聯邦信息處理標準。DES主要提供非軍事性質的聯邦政府機構和私營部門使用,并迅速成為名聲最大,使用最廣的商用密碼算法。


  DES算法的整體結構圖:

0.png

2006年我國公布了無限局域網產品使用的SM4密碼算法。這是我國第一次公布自己的商用密碼算法。


  SM4算法的整體結構圖:

1.png2.png


國際的DES算法和國產的SM4算法的目的都是為了加密保護靜態儲存和傳輸信道中的數據,主要特性如下:


3.png

從算法上看,國產SM4算法在計算過程中增加非線性變換,理論上能大大提高其算法的安全性,并且由專業機構進行了密碼分析,民間也對21輪SM4進行了差分密碼分析,結論均為安全性較高。


  公鑰密碼算法——國際RSA、國產SM2


  公鑰密碼學與其他密碼學完全不同, 使用這種方法的加密系統,不僅公開加密算法本身,也公開了加密用的密鑰。


  公鑰密碼系統與只使用一個密鑰的對稱傳統密碼不同,算法是基于數學函數而不是基于替換和置換。公鑰密碼學是非對稱的,它使用兩個獨立的密鑰,即密鑰分為公鑰和私鑰,因此稱雙密鑰體制。雙鑰體制的公鑰可以公開,因此稱為公鑰算法。


  公鑰算法的出現,給密碼的發展開辟了新的方向。公鑰算法雖然已經歷了20多年的發展,但仍具有強勁的發展勢頭,在鑒別系統和密鑰交換等安全技術領域起著關鍵的作用


  公鑰算法的加密與解密由不同的密鑰完成,并且從加密密鑰得到解密密鑰在計算上是不可行的。通常,公鑰算法的兩個密鑰中任何一個都可以作為加密而另一個用作解密,但不是所有的公鑰算法都是如此。

4.png

5.png

RSA算法


  RSA算法由Rivest、Shamir、Adleman于1978年首次發表,是迄今為止最容易理解和實現的公鑰算法,已經受住了多年深入的攻擊,其理論基礎是一種特殊的可逆模冪運算,其安全性基于分解大整數的困難性。


  RSA算法既可用于加密,又可用于數字簽名,已得到廣泛采用,并被許多標準化組織(如ISO、ITU、IETF和SWIFT等)接納。目前許多國家標準仍采用RSA算法或它的變型。


  RSA算法的實現如下:


  (1) 實現者尋找出兩個大素數p和q

  (2) 實現者計算出n=pq 和φ(n)=(p-1)(q-1)

  (3) 實現者選擇一個隨機數e (0<e<></e<>

  (4) 實現者使用輾轉相除法計算d=e-1(modφ(n))

  (5) 實現者在目錄中公開n和e作為公鑰


  密碼分析者攻擊RSA體制的關鍵點在于如何分解n。若分解成功使n=pq,則可以算出φ(n)=(p-1)(q-1),然后由公開的e,解出秘密的d。所以說RSA算法的安全性基于分解大整數的困難性。


  SM2算法


  SM2算法由國家密碼管理局于2010年12月17日發布,全稱為橢圓曲線算法。橢圓曲線并不是橢圓,之所以稱為橢圓曲線是因為它們是用三次方程來表示的,并且該方程與計算橢圓周長的方程相似。一般而言,橢圓曲線的三次方程形為:


  y2+axy+by=x3+cx2+dx+e [其中a,b,c,d和e是滿足某些條件的實數,因為方程中的指數最高是3,所以我們稱之為三次方程,或者說方程的次數為3]


  SM2算法使用的方程為:y2= x3 + ax + b

  SM2算法實現如下:

  (1) 選擇Ep(a,b)的元素G,使得G的階n是一個大素數

  (2) G的階是指滿足nG=O的最小n值

  (3) 秘密選擇整數k,計算B=kG,然后公開(p,a,b,G,B),B為公鑰,保密k,k為私鑰

  加密M:先把消息M變換成為Ep(a,b)中一個點Pm,然后,選擇隨機數r,計算密文Cm={rG,Pm+rP),如果r使得rG或者rP為O,則要重新選擇r。

  解密Cm: (Pm+rP)-k(rG)=Pm+rkG-krG=Pm


  SM2算法的安全性基于一個數學難題”離散對數問題ECDLP”實現,即考慮等式Q=KP,其中Q、P屬于Ep(a,b),K<p,則:1) p="" 已知q和p,計算k,是困難的。<="">


  現今對橢圓曲線研究的時間短,經過許多優秀的數學家的努力,至今一直沒有找到亞指數級算法。正是由于目前所知求解ECDLP的最好方法是指數級的,這使得我們選用SM2算法作加解密及數字簽名時,所要求的密鑰長度比RSA要短得多。


  國際的RSA算法和國產的SM2算法的主要特性對比如下:

6.png

摘要算法——國產SM3


  摘要函數在密碼學中具有重要的地位,被廣泛應用在數字簽名,消息認證,數據完整性檢測等領域。摘要函數通常被認為需要滿足三個基本特性:碰撞穩固性,原根穩固性和第二原根穩固性。


  2005年,Wang等人給出了MD5算法和SHA-1算法的碰撞攻擊方法,現今被廣泛應用的MD5算法和SHA-1算法不再是安全的算法。


  SM3密碼摘要算法是中國國家密碼管理局2010年公布的中國商用密碼雜湊算法標準。SM3算法適用于商用密碼應用中的數字簽名和驗證,是在SHA-256基礎上改進實現的一種算法。SM3算法采用Merkle-Damgard結構,消息分組長度為512位,摘要值長度為256位。


  SM3算法的壓縮函數與SHA-256的壓縮函數具有相似的結構,但是SM3算法的設計更加復雜,比如壓縮函數的每一輪都使用2個消息字。


  現今為止,SM3算法的安全性相對較高。


(來源:中鈔研究院)

文章分類: 專業知識
分享到: