DES/AES、SM4、RSA、SM2、SM3

現(xiàn)以分組密碼算法(DES和SM4)、公鑰密碼算法(RSA和SM2)、摘要算法(SM3)為例,談?wù)剣?guó)際算法和國(guó)密算法的區(qū)別:

一.分組密碼算法——國(guó)際DES、國(guó)產(chǎn)SM4

分組密碼就是將明文數(shù)據(jù)按固定長(zhǎng)度進(jìn)行分組,然后在同一密鑰控制下逐組進(jìn)行加密,從而將各個(gè)明文分組變換成一個(gè)等長(zhǎng)的密文分組的密碼。其中二進(jìn)制明文分組的長(zhǎng)度稱為該分組密碼的分組規(guī)模。

分組密碼的實(shí)現(xiàn)原則如下:

(1)必須實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單,知道密鑰時(shí)加密和脫密都十分容易,適合硬件和(或)軟件實(shí)現(xiàn).

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

分組密碼的設(shè)計(jì)基本遵循混淆原則和擴(kuò)散原則。

混淆原則就是將密文、明文、密鑰三者之間的統(tǒng)計(jì)關(guān)系和代數(shù)關(guān)系變得盡可能復(fù)雜,使得敵手即使獲得了密文和明文,也無(wú)法求出密鑰的任何信息;即使獲得了密文和明文的統(tǒng)計(jì)規(guī)律,也無(wú)法求出明文的任何信息。

擴(kuò)散原則就是應(yīng)將明文的統(tǒng)計(jì)規(guī)律和結(jié)構(gòu)規(guī)律散射到相當(dāng)長(zhǎng)的一段統(tǒng)計(jì)中去。也就是說(shuō)讓明文中的每一位影響密文中的盡可能多的位,或者說(shuō)讓密文中的每一位都受到明文中的盡可能多位的影響。

  DES算法

DES算法是在美國(guó)NSA(國(guó)家安全局)資助下由IBM公 司開(kāi)發(fā)的密碼算法,其初衷是為政府非機(jī)密的敏感信息提供較強(qiáng)的加密保護(hù)。它是美國(guó)政府擔(dān)保的第一種加密算法,并在1977年被正式作為美國(guó)聯(lián)邦信息處理標(biāo) 準(zhǔn)。DES主要提供非軍事性質(zhì)的聯(lián)邦政府機(jī)構(gòu)和私營(yíng)部門(mén)使用,并迅速成為名聲最大,使用最廣的商用密碼算法。

 SM4算法

   2006年我國(guó)公布了無(wú)限局域網(wǎng)產(chǎn)品使用的SM4密碼算法。這是我國(guó)第一次公布自己的商用密碼算法。

SM4算法的整體結(jié)構(gòu)圖:

國(guó)際的DES算法和國(guó)產(chǎn)的SM4算法的目的都是為了加密保護(hù)靜態(tài)儲(chǔ)存和傳輸信道中的數(shù)據(jù),主要特性如下:

從算法上看,國(guó)產(chǎn)SM4算法在計(jì)算過(guò)程中增加非線性變換,理論上能大大提高其算法的安全性,并且由專(zhuān)業(yè)機(jī)構(gòu)進(jìn)行了密碼分析,民間也對(duì)21輪SM4進(jìn)行了差分密碼分析,結(jié)論均為安全性較高。

二.公鑰密碼算法——國(guó)際RSA、國(guó)產(chǎn)SM2

公鑰密碼學(xué)與其他密碼學(xué)完全不同, 使用這種方法的加密系統(tǒng),不僅公開(kāi)加密算法本身,也公開(kāi)了加密用的密鑰。

公鑰密碼系統(tǒng)與只使用一個(gè)密鑰的對(duì)稱傳統(tǒng)密碼不同,算法是基于數(shù)學(xué)函數(shù)而不是基于替換和置換。公鑰密碼學(xué)是非對(duì)稱的,它使用兩個(gè)獨(dú)立的密鑰,即密鑰分為公鑰和私鑰,因此稱雙密鑰體制。雙鑰體制的公鑰可以公開(kāi),因此稱為公鑰算法。

公鑰算法的出現(xiàn),給密碼的發(fā)展開(kāi)辟了新的方向。公鑰算法雖然已經(jīng)歷了20多年的發(fā)展,但仍具有強(qiáng)勁的發(fā)展勢(shì)頭,在鑒別系統(tǒng)和密鑰交換等安全技術(shù)領(lǐng)域起著關(guān)鍵的作用

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

   RSA算法

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

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

RSA算法的實(shí)現(xiàn)如下:

(1) 實(shí)現(xiàn)者尋找出兩個(gè)大素?cái)?shù)p和q

(2) 實(shí)現(xiàn)者計(jì)算出n=pq 和φ(n)=(p-1)(q-1)

(3) 實(shí)現(xiàn)者選擇一個(gè)隨機(jī)數(shù)e (0<e<></e<>

(4) 實(shí)現(xiàn)者使用輾轉(zhuǎn)相除法計(jì)算d=e-1(modφ(n))

(5) 實(shí)現(xiàn)者在目錄中公開(kāi)n和e作為公鑰

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

   SM2算法

SM2算法由國(guó)家密碼管理局于2010年12月17日發(fā)布,全稱為橢圓曲線算法。橢圓曲線并不是橢圓,之所以稱為橢圓曲線是因?yàn)樗鼈兪怯萌畏匠虂?lái)表示的,并且該方程與計(jì)算橢圓周長(zhǎng)的方程相似。一般而言,橢圓曲線的三次方程形為:

y2+axy+by=x3+cx2+dx+e [其中a,b,c,d和e是滿足某些條件的實(shí)數(shù),因?yàn)榉匠讨械闹笖?shù)最高是3,所以我們稱之為三次方程,或者說(shuō)方程的次數(shù)為3]

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

SM2算法實(shí)現(xiàn)如下:

(1) 選擇Ep(a,b)的元素G,使得G的階n是一個(gè)大素?cái)?shù)

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

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

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

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

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

現(xiàn)今對(duì)橢圓曲線研究的時(shí)間短,經(jīng)過(guò)許多優(yōu)秀的數(shù)學(xué)家的努力,至今一直沒(méi)有找到亞指數(shù)級(jí)算法。正是由于目前所知求解ECDLP的最好方法是指數(shù)級(jí)的,這使得我們選用SM2算法作加解密及數(shù)字簽名時(shí),所要求的密鑰長(zhǎng)度比RSA要短得多。

國(guó)際的RSA算法和國(guó)產(chǎn)的SM2算法的主要特性對(duì)比如下:

三.摘要算法——MD5、SHA1、國(guó)產(chǎn)SM3

摘要函數(shù)在密碼學(xué)中具有重要的地位,被廣泛應(yīng)用在數(shù)字簽名,消息認(rèn)證,數(shù)據(jù)完整性檢測(cè)等領(lǐng)域。摘要函數(shù)通常被認(rèn)為需要滿足三個(gè)基本特性:碰撞穩(wěn)固性,原根穩(wěn)固性和第二原根穩(wěn)固性。

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

   MD5算法

   MD5為計(jì)算機(jī)安全領(lǐng)域廣泛使用的一種散列函數(shù),用以提供消息的完整性保護(hù)。對(duì)MD5加密算法簡(jiǎn)要的敘述可以為:MD5以512位分組來(lái)處理輸入的信息,且每一分組又被劃分為16個(gè)32位子分組,經(jīng)過(guò)了一系列的處理后,算法的輸出由四個(gè)32位分組組成,將這四個(gè)32位分組級(jí)聯(lián)后將生成—個(gè)128位散列值。

   MD5被廣泛用于各種軟件的密碼認(rèn)證和鑰匙識(shí)別上。MD5用的是哈希函數(shù),它的典型應(yīng)用是對(duì)一段信息產(chǎn)生信息摘要,以防止被篡改。


   SHA1算法

   SHA1主要適用于數(shù)字簽名標(biāo)準(zhǔn)里面定義的數(shù)字簽名算法。對(duì)于長(zhǎng)度小于2“64位的消息,SHA1會(huì)產(chǎn)生一個(gè)160位的消息摘要。當(dāng)接收到消息的時(shí)候,這 個(gè)消息摘要可以用來(lái)驗(yàn)證數(shù)據(jù)的完整性。在傳輸?shù)倪^(guò)程中,數(shù)據(jù)很可能會(huì)發(fā)生變化,那么這時(shí)候就會(huì)產(chǎn)生不同的消息摘要。SHA1不可以從消息摘要中復(fù)原信息, 而兩個(gè)不同的消息不會(huì)產(chǎn)生同樣的消息摘要。這樣,SHA1就可以驗(yàn)證數(shù)據(jù)的完整性,所以說(shuō)SHA1是為了保證文件完整性的技術(shù)。

   

   SM3算法

SM3密碼摘要算法是中國(guó)國(guó)家密碼管理局2010年公布的中國(guó)商用密碼雜湊算法標(biāo)準(zhǔn)。SM3算法適用于商用密碼應(yīng)用中的數(shù)字簽名和驗(yàn)證,是在SHA- 256基礎(chǔ)上改進(jìn)實(shí)現(xiàn)的一種算法。SM3算法采用Merkle-Damgard結(jié)構(gòu),消息分組長(zhǎng)度為512位,摘要值長(zhǎng)度為256位。

SM3算法的壓縮函數(shù)與SHA-256的壓縮函數(shù)具有相似的結(jié)構(gòu),但是SM3算法的設(shè)計(jì)更加復(fù)雜,比如壓縮函數(shù)的每一輪都使用2個(gè)消息字。

現(xiàn)今為止,SM3算法的安全性相對(duì)較高。(來(lái)源:中鈔研究院)

四.數(shù)字簽名與信息摘要的應(yīng)用

1.數(shù)字簽名技術(shù)是將摘要信息用發(fā)送者的私鑰加密,與原文一起傳送給接收者。

2.接收者只有用發(fā)送的公鑰才能解密被加密的摘要信息,然后用HASH函數(shù)對(duì)收到的原文產(chǎn)生一個(gè)摘要信息,與解密的摘要信息對(duì)比。

3.如果相同,則說(shuō)明收到的信息是完整的,在傳輸過(guò)程中沒(méi)有被修改,否則說(shuō)明信息被修改過(guò)。

4.因此,數(shù)字簽名與信息摘要能夠驗(yàn)證信息的完整性。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 姓名:于川皓 學(xué)號(hào):16140210089 轉(zhuǎn)載自:https://baike.baidu.com/item/RS...
    道無(wú)涯_cc76閱讀 2,817評(píng)論 0 1
  • 公鑰密碼系統(tǒng)及RSA公鑰算法 本文簡(jiǎn)單介紹了公開(kāi)密鑰密碼系統(tǒng)的思想和特點(diǎn),并具體介紹了RSA算法的理論基礎(chǔ),工作原...
    火狼o閱讀 4,451評(píng)論 2 15
  • 這篇文章主要講述在Mobile BI(移動(dòng)商務(wù)智能)開(kāi)發(fā)過(guò)程中,在網(wǎng)絡(luò)通信、數(shù)據(jù)存儲(chǔ)、登錄驗(yàn)證這幾個(gè)方面涉及的加密...
    雨_樹(shù)閱讀 3,052評(píng)論 0 6
  • 本文主要介紹移動(dòng)端的加解密算法的分類(lèi)、其優(yōu)缺點(diǎn)特性及應(yīng)用,幫助讀者由淺入深地了解和選擇加解密算法。文中會(huì)包含算法的...
    蘋(píng)果粉閱讀 11,695評(píng)論 5 29
  • 數(shù)字證書(shū)原理 - 無(wú)恙 - 博客園 文中首先解釋了加密解密的一些基礎(chǔ)知識(shí)和概念,然后通過(guò)一個(gè)加密通信過(guò)程的例子說(shuō)明...
    拉肚閱讀 1,776評(píng)論 0 3

友情鏈接更多精彩內(nèi)容