Ⅰ 國密演算法是什麼呢
國密演算法是國家密碼局制定標準的一系列演算法。其中包括了對稱加密演算法,橢圓曲線非對稱加密演算法,雜湊演算法。具體包括SM1、SM2、SM3、SMS4等,其中:
SM1:對稱加密演算法,加密強度為128位,採用硬體實現。
SM2:國家密碼管理局公布的公鑰演算法,其加密強度為256位。其它幾個重要的商用密碼演算法包括:
SM3:密碼雜湊演算法,雜湊值長度為32位元組,和SM2演算法同期公布,參見《國家密碼管理局公告(第 22 號)》。
SMS4:對稱加密演算法,隨WAPI標准一起公布,可使用軟體實現,加密強度為128位。
案例
例如:在門禁應用中,採用SM1演算法進行身份鑒別和數據加密通訊,實現卡片合法性的驗證,保證身份識別的真實性。安全是關系國家、城市信息、行業用戶、百姓利益的關鍵問題。國家密碼管理局針對現有重要門禁系統建設和升級改造應用也提出指導意見,加強晶元、卡片、系統的標准化建設。
Ⅱ SM9是分組密碼還是序列密碼
國密SM9其實是一種非對稱加密演算法,它是分組密碼。
分組密碼是將明文消息編碼表示後的數字(簡稱明文數字)序列,劃分成長度為n的組(可看成長度為n的矢量),每組分別在密鑰的控制下變換成等長的輸出數字(簡稱密文數字)序列。
序列密碼也稱為流密碼(Stream Cipher),它是對稱密碼演算法的一種。序列密碼具有實現簡單、便於硬體實施、加解密處理速度快、沒有或只有有限的錯誤傳播等特點,因此在實際應用中,特別是專用或機密機構中保持著優勢,典型的應用領域包括無線通信、外交通信。
Ⅲ 我國的sm 2演算法是對稱密碼嗎
我國的sm 2演算法是對稱密碼嗎如下:
是一種非對稱密鑰演算法。
主要有DES演算法,3DES演算法,TDEA演算法,Blowfish演算法,RC5演算法,IDEA演算法。
對稱加密演算法的特點是演算法公開、計算量小、加密速告悔度快、加密效率高。優點在於加解密的高速度和使用長密鑰時的難破解性,缺點是交易雙方都使用同樣鑰匙,安全性得不到保證。
對稱演算法的安全性依賴於密鑰,泄漏密鑰就意味著任何人都可以對他們發送或接收的消息解密,所以密鑰的保密性對通信的安全性至關重要。
3DES是基於DES的對稱演算法,對一塊數據用三個不同的密鑰進行三次銷禪加密,強度更高。
RC2和RC4是對稱演算法,用變長密鑰對大量數據進行加密,比DES快。
IDEA演算法是在虧友塵DES演算法的基礎上發展出來的,是作為迭代的分組密碼實現的,使用128位的密鑰和8個循環。
RSA是由RSA公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件塊的長度也是可變的,非對稱演算法。
DSA,即數字簽名演算法,是一種標準的 DSS(數字簽名標准),嚴格來說不算加密演算法。
AES是高級加密標准對稱演算法,是下一代的加密演算法標准,速度快,安全級別高,在21世紀AES 標準的一個實現是 Rijndael演算法。
Blowfish演算法是一個64位分組及可變密鑰長度的對稱密鑰分組密碼演算法,可用來加密64比特長度的字元串。
Ⅳ 常見密碼技術簡介
##
密碼技術在網路傳輸安全上的應用
隨著互聯網電子商務和網路支付的飛速發展,互聯網安全已經是當前最重要的因素之一。作為一名合格的軟體開發工程師,有必要了解整個互聯網是如何來保證數據的安全傳輸的,本篇文章對網路傳輸安全體系以及涉及到的演算法知識做了一個簡要的介紹,希望大家能夠有一個初步的了解。
###密碼技術定義
簡單的理解,密碼技術就是編制密碼和破譯密碼的一門技術,也即是我們常說的加密和解密。常見的結構如圖:
其中涉及到的專業術語:
1.秘鑰:分為加密秘鑰和解密秘鑰,兩者相同的加密演算法稱為對稱加密,不同的稱為非對稱加密;
2.明文:未加密過的原文信息,不可以被泄露;
3.密文:經過加密處理後的信息,無法從中獲取有效的明文信息;
4.加密:明文轉成密文的過程,密文的長度根據不同的加密演算法也會有不同的增量;
5.解密:密文轉成明文的過程;
6.加密/解密演算法:密碼系統使用的加密方法和解密方法;
7.攻擊:通過截獲數據流、釣魚、木馬、窮舉等方式最終獲取秘鑰和明文的手段。
###密碼技術和我們的工作生活息息相關
在我們的日常生活和工作中,密碼技術的應用隨處可見,尤其是在互聯網系統上。下面列舉幾張比較有代表性的圖片,所涉及到的知識點後面都會一一講解到。
1.12306舊版網站每次訪問時,瀏覽器一般會提示一個警告,是什麼原因導致的? 這樣有什麼風險呢?
2.360瀏覽器瀏覽HTTPS網站時,點開地址欄的小鎖圖標會顯示加密的詳細信息,比如網路的話會顯示```AES_128_GCM、ECDHE_RSA```,這些是什麼意思?
3.在Mac系統的鑰匙串里有很多的系統根證書,展開後有非常多的信息,這些是做什麼用的?
4.去銀行開通網上支付都會附贈一個U盾,那U盾有什麼用呢?
##如何確保網路數據的傳輸安全
接下來我們從實際場景出發,以最常見的客戶端Client和服務端Server傳輸文件為例來一步步了解整個安全體系。
####1. 保密性
首先客戶端要把文件送到服務端,不能以明文形式發送,否則被黑客截獲了數據流很容易就獲取到了整個文件。也就是文件必須要確保保密性,這就需要用到對稱加密演算法。
** 對稱加密: **加密和解密所使用的秘鑰相同稱為對稱加密。其特點是速度快、效率高,適用於對較大量的數據進行加密。常見的對稱加密演算法有DES、3DES、AES、TDEA、RC5等,讓我們了解下最常見的3DES和AES演算法:
** DES(Data Encryption Standard): **1972年由美國IBM研製,數學原理是將明文以8位元組分組(不足8位可以有不同模式的填充補位),通過數學置換和逆置換得到加密結果,密文和明文長度基本相同。秘鑰長度為8個位元組,後有了更安全的一個變形,使用3條秘鑰進行三次加密,也就是3DES加密。
**3DES:**可以理解為對明文進行了三次DES加密,增強了安全程度。
** AES(Advanced Encryption Standard): **2001年由美國發布,2002年成為有效標准,2006年成為最流行的對稱加密演算法之一。由於安全程度更高,正在逐步替代3DES演算法。其明文分組長度為16位元組,秘鑰長度可以為16、24、32(128、192、256位)位元組,根據秘鑰長度,演算法被稱為AES-128、AES-192和AES-256。
對稱加密演算法的入參基本類似,都是明文、秘鑰和模式三個參數。可以通過網站進行模擬測試:[http://tool.chacuo.net/crypt3des]()。其中的模式我們主要了解下ECB和CBC兩種簡單模式,其它有興趣可自行查閱。
** ECB模式(Electronic Codebook Book): **這種模式是將明文分成若干小段,然後對每一段進行單獨的加密,每一段之間不受影響,可以單獨的對某幾段密文進行解密。
** CBC模式(Cipher Block Chaining): **這種模式是將明文分成若干小段,然後每一段都會和初始向量(上圖的iv偏移量)或者上一段的密文進行異或運算後再進行加密,不可以單獨解密某一斷密文。
** 填充補位: **常用為PKCS5Padding,規則為缺幾位就在後面補幾位的所缺位數。,比如明文數據為```/x01/x01/x01/x01/x01/x01```6個位元組,缺2位補```/x02```,補完位```/x01/x01/x01/x01/x01/x01/x02/x02```。解密後也會按照這個規則進行逆處理。需要注意的是:明文為8位時也需要在後面補充8個```/x08```。
####2. 真實性
客戶端有了對稱秘鑰,就需要考慮如何將秘鑰送到服務端,問題跟上面一樣:不能以明文形式直接傳輸,否則還是會被黑客截獲到。這里就需要用到非對稱加密演算法。
** 非對稱加密: **加密和解密秘鑰不同,分別稱為公開秘鑰(publicKey)和私有秘鑰(privateKey)。兩者成對出現,公鑰加密只能用私鑰解密,而私鑰加密也只能用公鑰加密。兩者不同的是:公鑰是公開的,可以隨意提供給任何人,而私鑰必須保密。特點是保密性好,但是加密速度慢。常見的非對稱加密演算法有RSA、ECC等;我們了解下常見的RSA演算法:
** RSA(Ron Rivest、Adi Shamir、Leonard Adleman): **1977年由麻省理工學院三人提出,RSA就是他們三個人的姓氏開頭字母拼在一起組成的。數學原理是基於大數分解。類似於```100=20x5```,如果只知道100的話,需要多次計算才可以試出20和5兩個因子。如果100改為極大的一個數,就非常難去試出真正的結果了。下面是隨機生成的一對公私鑰:
這是使用公鑰加密後結果:
RSA的這種特性就可以保證私鑰持有者的真實性,客戶端使用公鑰加密文件後,黑客就算截獲到數據因為沒有私鑰也是無法解密的。
** Tips: **
+** 不使用對稱加密,直接用RSA公私鑰進行加密和解密可以嗎? **
答案:不可以,第一是因為RSA加密速度比對稱加密要慢幾十倍甚至幾百倍以上,第二是因為RSA加密後的數據量會變大很多。
+** 由服務端生成對稱秘鑰,然後用私鑰加密,客戶端用公鑰解密這樣來保證對稱秘鑰安全可行嗎? **
答案:不可行,因為公鑰是公開的,任何一個人都可以拿到公鑰解密獲取對稱秘鑰。
####3. 完整性
當客戶端向服務端發送對稱秘鑰加密後的文件時,如果被黑客截獲,雖然無法解密得到對稱秘鑰。但是黑客可以用服務端公鑰加密一個假的對稱秘鑰,並用假的對稱秘鑰加密一份假文件發給服務端,這樣服務端會仍然認為是真的客戶端發送來的,而並不知道閱讀的文件都已經是掉包的了。
這個問題就需要用到散列演算法,也可以譯為Hash。常見的比如MD4、MD5、SHA-1、SHA-2等。
** 散列演算法(哈希演算法): **簡單的說就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數。而且該過程是不可逆的,無法通過摘要獲得原文。
** SHA-1(Secure Hash Algorithm 1): **由美國提出,可以生成一個20位元組長度的消息摘要。05年被發現了針對SHA-1的有效攻擊方法,已經不再安全。2010年以後建議使用SHA-2和SHA-3替代SHA-1。
** SHA-2(Secure Hash Algorithm 2): **其下又分為六個不同演算法標准:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA512/256。其後面數字為摘要結果的長度,越長的話碰撞幾率越小。SHA-224的使用如下圖:
客戶端通過上面的散列演算法可以獲取文件的摘要消息,然後用客戶端私鑰加密後連同加密的文件發給服務端。黑客截獲到數據後,他沒有服務端私鑰無法獲取到對稱秘鑰,也沒有客戶端私鑰無法偽造摘要消息。如果再像上面一樣去掉包文件,服務端收到解密得到摘要消息一對比就可以知道文件已經被掉包篡改過了。
這種用私鑰對摘要消息進行加密的過程稱之為數字簽名,它就解決了文件是否被篡改問題,也同時可以確定發送者身份。通常這么定義:
** 加密: **用公鑰加密數據時稱為加密。
** 簽名: **用私鑰加密數據時稱為簽名。
####4. 信任性
我們通過對稱加密演算法加密文件,通過非對稱加密傳輸對稱秘鑰,再通過散列演算法保證文件沒被篡改過和發送者身份。這樣就安全了嗎?
答案是否定的,因為公鑰是要通過網路送到對方的。在這期間如果出現問題會導致客戶端收到的公鑰並不一定是服務端的真實公鑰。常見的** 中間人攻擊 **就是例子:
** 中間人攻擊MITM(Man-in-the-MiddleAttack): **攻擊者偽裝成代理伺服器,在服務端發送公鑰證書時,篡改成攻擊者的。然後收到客戶端數據後使用攻擊者私鑰解密,再篡改後使用攻擊者私鑰簽名並且將攻擊者的公鑰證書發送給伺服器。這樣攻擊者就可以同時欺騙雙方獲取到明文。
這個風險就需要通過CA機構對公鑰證書進行數字簽名綁定公鑰和公鑰所屬人,也就是PKI體系。
** PKI(Privilege Management Infrastructure): **支持公鑰管理並能支持認證、加密、完整性和可追究性的基礎設施。可以說整個互聯網數據傳輸都是通過PKI體系進行安全保證的。
** CA(Certificate Authority): **CA機構就是負責頒發證書的,是一個比較公認的權威的證書發布機構。CA有一個管理標准:WebTrust。只有通過WebTrust國際安全審計認證,根證書才能預裝到主流的瀏覽器而成為一個全球可信的認證機構。比如美國的GlobalSign、VeriSign、DigiCert,加拿大的Entrust。我國的CA金融方面由中國人民銀行管理CFCA,非金融CA方面最初由中國電信負責建設。
CA證書申請流程:公司提交相應材料後,CA機構會提供給公司一張證書和其私鑰。會把Issuer,Public key,Subject,Valid from,Valid to等信息以明文的形式寫到證書裡面,然後用一個指紋演算法計算出這些數字證書內容的一個指紋,並把指紋和指紋演算法用自己的私鑰進行加密。由於瀏覽器基本都內置了CA機構的根證書,所以可以正確的驗證公司證書指紋(驗簽),就不會有安全警告了。
但是:所有的公司其實都可以發布證書,甚至我們個人都可以隨意的去發布證書。但是由於瀏覽器沒有內置我們的根證書,當客戶端瀏覽器收到我們個人發布的證書後,找不到根證書進行驗簽,瀏覽器就會直接警告提示,這就是之前12306打開會有警告的原因。這種個人發布的證書,其實可以通過系統設置為受信任的證書去消除這個警告。但是由於這種證書機構的權威性和安全性難以信任,大家最好不要這么做。
我們看一下網路HTTPS的證書信息:
其中比較重要的信息:
簽發機構:GlobalSign Root CA;
有效日期:2018-04-03到2019-05-26之間可用;
公鑰信息:RSA加密,2048位;
數字簽名:帶 RSA 加密的 SHA-256 ( 1.2.840.113549.1.1.11 )
綁定域名:再進行HTTPS驗證時,如果當前域名和證書綁定域名不一致,也會出現警告;
URI:在線管理地址。如果當前私鑰出現了風險,CA機構可以在線吊銷該證書。
####5. 不可抵賴性
看起來整個過程都很安全了,但是仍存在一種風險:服務端簽名後拒不承認,歸咎於故障不履行合同怎麼辦。
解決方法是採用數字時間戳服務:DTS。
** DTS(digital time-stamp): **作用就是對於成功的電子商務應用,要求參與交易各方不能否認其行為。一般來說,數字時間戳產生的過程為:用戶首先將需要加時間戳的文件用Hash演算法運算形成摘要,然後將該摘要發送到DTS。DTS在加入了收到文件摘要的日期和事件信息後再對該文件進行數字簽名,然後送達用戶。
####6. 再次認證
我們有了數字證書保證了身份的真實性,又有了DTS提供的不可抵賴性。但是還是不能百分百確定使用私鑰的就是合法持有者。有可能出現被別人盜用私鑰進行交易的風險。
解決這個就需要用到強口令、認證令牌OTP、智能卡、U盾或生物特徵等技術對使用私鑰的當前用戶進行認證,已確定其合法性。我們簡單了解下很常見的U盾。
** USB Key(U盾): **剛出現時外形比較像U盤,安全性能像一面盾牌,取名U盾。其內部有一個只可寫不可讀的區域存儲著用戶的私鑰(也有公鑰證書),銀行同樣也擁有一份。當進行交易時,所有涉及到私鑰的運算都在U盾內部進行,私鑰不會泄露。當交易確認時,交易的詳細數據會顯示到U盾屏幕上,確認無誤後通過物理按鍵確認就可以成功交易了。就算出現問題黑客也是無法控制U盾的物理按鍵的,用戶可以及時取消避免損失。有的U盾裡面還有多份證書,來支持國密演算法。
** 國密演算法: **國家密碼局針對各種演算法制定了一些列國產密碼演算法。具體包括:SM1對稱加密演算法、SM2公鑰演算法、SM3摘要演算法、SM4對稱加密演算法、ZUC祖沖之演算法等。這樣可以對國產固件安全和數據安全進行進一步的安全控制。
## HTTPS分析
有了上面的知識,我們可以嘗試去分析下HTTPS的整個過程,用Wireshark截取一次HTTPS報文:
Client Hello: 客戶端發送Hello到服務端443埠,裡麵包含了隨機數、客戶端支持的加密演算法、客戶端的TLS版本號等;
Server Hello: 服務端回應Hello到客戶端,裡麵包含了服務端選擇的加密套件、隨機數等;
Certificate: 服務端向客戶端發送證書
服務端計算對稱秘鑰:通過ECDH演算法得到對稱秘鑰
客戶端計算對稱秘鑰:通過ECDH演算法得到對稱秘鑰
開始用對稱秘鑰進行加密傳輸數據
其中我們又遇到了新的演算法:DH演算法
** DH(Diffie-Hellman): **1976年由Whitefield與Martin Hellman提出的一個奇妙的秘鑰交換協議。這個機制的巧妙在於可以通過安全的方式使雙方獲得一個相同的秘鑰。數學原理是基於原根的性質,如圖:
*** DH演算法的用處不是為了加密或解密消息,而是用於通信雙方安全的交換一個相同的秘鑰。 ***
** ECDH: **基於ECC(橢圓曲線密碼體制)的DH秘鑰交換演算法,數學原理是基於橢圓曲線上的離散對數問題。
** ECDHE: **字面少了一個E,E代表了臨時。在握手流程中,作為伺服器端,ECDH使用證書公鑰代替Pb,使用自身私鑰代替Xb。這個演算法時伺服器不發送server key exchange報文,因為發送certificate報文時,證書本身就包含了Pb信息。
##總結
| 演算法名稱 | 特點 | 用處 | 常用演算法名 |
| --- | :--- | :---: | ---: |
| 對稱加密 | 速度快,效率高| 用於直接加密文件 | 3DES、AES、RC4 |
| 非對稱加密 | 速度相對慢,但是確保安全 | 構建CA體系 | RSA、ECC |
| 散列演算法 | 算出的摘要長度固定,不可逆 | 防止文件篡改 | SHA-1、SHA-2 |
| DH演算法 | 安全的推導出對稱秘鑰 | 交換對稱秘鑰 | ECDH |
----
Ⅳ 國家密碼管理局通過的演算法有哪些
國家密碼管理局公告(第7號)
2006-01-19
根據國家有關法律、法規,為配合無線區域網產品政府采購工作的順利實施,現將無線區域網產品和含有無線區域網功能的產品(以下簡稱無線區域網產品)有關的密碼事宜公告如下:一、無線區域網產品須採用下列經批準的密碼演算法:1、對稱密碼演算法:SMS4;2、簽名演算法:ECDSA; 3、密鑰協商演算法:ECDH;4、雜湊演算法:SHA-256;5、隨機數生成演算法:自行選擇。其中,ECDSA和ECDH密碼演算法須採用我局指定的橢圓曲線和參數。二、無線區域網產品使用的SMS4密碼演算法編制文本以及ECDSA、ECDH密碼演算法的橢圓曲線和參數,授權由國家商用密碼管理辦公室網站(www.oscca.gov.cn)發布。三、無線區域網產品的密碼檢測指定商用密碼檢測中心承擔。商用密碼檢測中心地址:北京西城區靈境胡同42號兆金大廈3038室,郵編:100032,電話:010-66061023、66068494。四、涉及國家秘密的項目採用無線區域網產品須遵守國家密碼管理有關規定。 國家密碼管理局 2006年1月6日
Ⅵ 什麼不屬於sm系列國密演算法的是
RSA演算法,AES演算法、SHA演算法、ECC演算法都不屬於。
1、RSA演算法:RSA演算法是一種非對稱加密演算法,由美國三位密碼學家發明,被廣泛應用於網路安全、數字簽名等領域。
2、AES演算法:AES演算法是一種對稱加密演算法,被廣泛應用於數據加密、網路安全等領域,是目前最為流行的加密演算法之一。
3、SHA演算法:SHA演算法是一種哈希演算法,被廣泛應用於數字簽名、彎漏消蠢鬧碧息認證、口令認證等領域,常用的SHA演算法包括SHA-1、SHA-2等。
4、ECC演算法:ECC演算法是一種基於橢圓曲帶舉線密碼學的非對稱加密演算法,具有安全性高、速度快等優勢,被廣泛應用於移動設備、智能卡等場景。
Ⅶ 國密演算法
國密即國家密碼局認定的國產密碼演算法。主要有SM1,SM2,SM3,SM4。密鑰長度和分組長度均為128位。
SM1 為對稱加密。其加密強度與AES相當。該演算法不公開,調用該演算法時,需要通過加密晶元的介面進行調用。
SM2為非對稱加密,基於ECC。該演算法已公開。由於該演算法基於ECC,故其簽名速度與秘鑰生成速度都快於RSA。ECC 256位(SM2採用的就是ECC 256位的一種)安全強度比RSA 2048位高,但運算速度快於RSA。
國家密碼管理局公布的公鑰演算法,其加密強度為256位
SM3 消息摘要。可以用MD5作為對比理解。該演算法已公開。校驗結果為256位。
SM4 無線區域網標準的分組數據演算法。對稱加密,密鑰長度和分組長度均為128位。
由於SM1、SM4加解密的分組大小為128bit,故對消息進行加解密時,若消息長度過長,需要進行分組,要消息長度不足,則要進行填充。
分組密碼演算法(DES和SM4)、將明文數據按固定長度進行分組,然後在同一密鑰控制下逐組進行加密,
公鑰密碼演算法(RSA和SM2)、公開加密演算法本身和公開公鑰,保存私鑰
摘要演算法(SM3 md5) 這個都比較熟悉,用於數字簽名,消息認證,數據完整性,但是sm3安全度比md5高
總得來說國密演算法的安全度比較高,2010年12月推出,也是國家安全戰略,現在銀行都要要求國際演算法改造,要把國際演算法都給去掉
C 語言實現
https://github.com/guan/GmSSL/
Go 語言
https://github.com/tjfoc/gmsm
https://github.com/ZZMarquis/gm
Java 語言
https://github.com/PopezLotado/SM2Java
Go語言實現,調用 gmsm
Ⅷ 國密演算法是什麼是一種演算法還是一類演算法若為一類演算法,都包含什麼
國密演算法,國家密碼局認定的國產密碼演算法,即商用密碼。
國密演算法是國家密碼局制定標準的一系列演算法。其中包括了對稱加密演算法,橢圓曲線非對稱加密演算法,雜湊演算法。具體包括SM1,SM2,SM3等。
SM1,對稱加密演算法,加密強度為128位,採用硬體實現。
SM2,國家密碼管理局公布的公鑰演算法,其加密強度為256位。
SM3,密碼雜湊演算法,雜湊值長度為32位元組。
(8)sm對稱加密演算法擴展閱讀
商用密碼的應用領域十分廣泛,主要用於對不涉及國家秘密內容但又具有敏感性的內部信息、行政事務信息、經濟信息等進行加密保護。比如:商用密碼可用於企業門禁管理、企業內部的各類敏感信息的傳輸加密、存儲加密,防止非法第三方獲取信息內容;也可用於各種安全認證、網上銀行、數字簽名等。
例如:在門禁應用中,採用SM1演算法進行身份鑒別和數據加密通訊,實現卡片合法性的驗證,保證身份識別的真實性。 安全是關系國家、城市信息、行業用戶、百姓利益的關鍵問題。
國家密碼管理局針對現有重要門禁系統建設和升級改造應用也提出指導意見,加強晶元、卡片、系統的標准化建設。國密門禁系統的升級的案例也逐漸增多,基於自主國產知識產權的CPU卡、CPU卡讀寫設備及密鑰管理系統廣泛受到關注。
Ⅸ 003 國密演算法【技術】
國密演算法:國家密碼局認定的國產密碼演算法,即商用密碼。
非對稱密碼(公鑰演算法):SM2,SM9
對稱密碼(分組密碼,序列密碼):SM1,SM4,SM7,ZUC
雜湊演算法(散列,哈希演算法):SM3
概述 : 對稱加密演算法(分組密碼) ,分組長度128位,密鑰長度128位, 演算法不公開 ,通過加密晶元的介面進行調用。
場景 :採用該演算法已經研製了系列晶元、智能IC卡、智能密碼鑰匙、加密卡、加密機等安全產品,廣泛應用於電子政務、電子商務及國民經濟的各個應用領域(包括國家政務通、警務通等重要領域)。
概述 : 非對稱加密演算法(公鑰演算法) ,加密強度為256位,是一種橢圓曲線演算法。
公鑰密碼學與其他密碼學完全不同, 使用這種方法的加密系統,不僅公開加密演算法本身,也公開了加密用的密鑰。公鑰密碼系統與只使用一個密鑰的對稱傳統密碼不同,演算法是基於數學函數而不是基於替換和置換。公鑰密碼學是非對稱的,它使用兩個獨立的密鑰,即密鑰分為公鑰和私鑰,因此稱雙密鑰體制。雙鑰體制的公鑰可以公開,因此稱為公鑰演算法。
使用私鑰加密後的密文只能用對應公鑰進行解密,反之使用公鑰加密的密文也只能用對應的私鑰進行解密。通過對私鑰進行橢圓曲線運算可以生成公鑰,而由於橢圓曲線的特點,知道公鑰卻很難反推出私鑰,這就決定了SM2演算法的安全性。SM2演算法最常見的應用是進行身份認證,也就是我們熟知的數字簽名與驗簽,通過私鑰的私密性來實現身份的唯一性和合法性。
場景: 適用於商用應用中的 數字簽名和驗證 ,可滿足多種密碼應用中的 身份認證 和 數據完整性,真實性 的安全需求。
場景: 適用於商用密碼應用中的 密鑰交換 ,可滿足通信雙方經過兩次或可選三次信息傳遞過程,計算獲取一個由雙方共同決定的共享秘密密鑰(會話密鑰)。
場景: 適用於國家商用密碼應用中的 消息加解密 ,消息發送者可以利用接收者的公鑰對消息進行加密,接收者用對應的私鑰進行解,獲取消息。
涉及國密標准: GB/T 32918.1-2016、GB/T 32918.2-2016、GB/T 32918.3-2016、GB/T 32918.4-2016、GB/T 32918.5-2017、GB/T 35275-2017、GB/T 35276-2017。
概述:哈希演算法(散列演算法,雜湊演算法) ,任意長度的數據經過SM3演算法後會生成長度固定為256bit的摘要。SM3演算法的逆運算在數學上是不可實現的,即通過256bit的摘要無法反推出原數據的內容,因此在信息安全領域內常用SM3演算法對信息的完整性進行度量。
場景: 適用於商用密碼應用中的 數字簽名和驗證 , 消息認證碼的生成與驗證 以及 隨機數的生成 ,可滿足多種密碼應用的安全需求。
涉及國密標准: GB/T 32905-2016
概述:對稱加密演算法(分組密碼) ,分組長度128位,密鑰長度128位,使用某一密鑰加密後的密文只能用該密鑰解密出明文,故而稱為對稱加密。SM4演算法採用32輪非線性迭代實現,加解密速度較快,常應用於大量數據的加密,保存在存儲介質上的用戶數據往往就使用SM4演算法進行加密保護。
場景:大量數據的加密,解密,MAC的計算 。
分組密碼就是將明文數據按固定長度進行分組,然後在同一密鑰控制下逐組進行加密,從而將各個明文分組變換成一個等長的密文分組的密碼。其中二進制明文分組的長度稱為該分組密碼的分組規模。
分組密碼的實現原則如下:必須實現起來比較簡單,知道密鑰時加密和脫密都十分容易,適合硬體和(或)軟體實現。加脫密速度和所消耗的資源和成本較低,能滿足具體應用范圍的需要。
分組密碼的設計基本遵循混淆原則和擴散原則
①混淆原則就是將密文、明文、密鑰三者之間的統計關系和代數關系變得盡可能復雜,使得敵手即使獲得了密文和明文,也無法求出密鑰的任何信息;即使獲得了密文和明文的統計規律,也無法求出明文的任何信息。
②擴散原則就是應將明文的統計規律和結構規律散射到相當長的一段統計中去。也就是說讓明文中的每一位影響密文中的盡可能多的位,或者說讓密文中的每一位都受到明文中的盡可能多位的影響。
涉及國密標准: GB/T 32907-2016
概述 : 對稱加密演算法(分組密碼) ,分組長度128位,密鑰長度128位, 演算法不公開 ,通過加密晶元的介面進行調用。
場景 :適用於非接觸式IC卡,應用包括身份識別類應用(門禁卡、工作證、參賽證),票務類應用(大型賽事門票、展會門票),支付與通卡類應用(積分消費卡、校園一卡通、企業一卡通等)。
概述:非對稱加密演算法(標識密碼) ,標識密碼將用戶的標識(如郵件地址、手機號碼、QQ號碼等)作為公鑰,省略了交換數字證書和公鑰過程,使得安全系統變得易於部署和管理,非常適合端對端離線安全通訊、雲端數據加密、基於屬性加密、基於策略加密的各種場合。
SM9演算法不需要申請數字證書,適用於互聯網應用的各種新興應用的安全保障。如基於雲技術的密碼服務、電子郵件安全、智能終端保護、物聯網安全、雲存儲安全等等。這些安全應用可採用手機號碼或郵件地址作為公鑰,實現數據加密、身份認證、通話加密、通道加密等安全應用,並具有使用方便,易於部署的特點,從而開啟了普及密碼演算法的大門。
概述 : 對稱加密演算法(序列密碼) ,是中國自主研究的流密碼演算法,是運用於移動通信4G網路中的國際標准密碼演算法,該演算法包括祖沖之演算法(ZUC)、加密演算法(128-EEA3)和完整性演算法(128-EIA3)三個部分。目前已有對ZUC演算法的優化實現,有專門針對128-EEA3和128-EIA3的硬體實現與優化。
Ⅹ 我國的sm 2演算法是對稱密碼對嗎
關於我國的sm 2演算法是旅做世對稱密碼對嗎如下:
國密SM2演算法標准包括4個部分,第1部分為總則,主要介紹了ECC基本的演算法描述,包括素數域和二元擴域兩種演算法描述,第2部分為數字簽胡告名演算法,這個演算法不同於ECDSA演算法,其計算量大,也比ECDSA復雜些,也許這樣會更安全吧。
最後說拆肢一下,RSA與ECC。這兩位都是目前主流的非對稱加密演算法,也代表了2大加密演算法難題,一個是大素數分解,一個離散對數難題。RSA的模長在不斷的加大,1024不可用了,要用2048,這計算量啊要求也大,就需要使用計算量小的ECC演算法。
不論是RSA還是ECC都是計算上的復雜,隨著時間,密鑰長度都將加長,這就需要有更好的密碼演算法來替代了。也許不需要等到那一天,人類社會發展會非常完善,不需要密碼了,是個完全透明的、可信任的社會了。