導航:首頁 > 源碼編譯 > md5是國密演算法嗎

md5是國密演算法嗎

發布時間:2024-01-07 03:49:31

❶ 常見密碼技術簡介

##

密碼技術在網路傳輸安全上的應用

隨著互聯網電子商務和網路支付的飛速發展,互聯網安全已經是當前最重要的因素之一。作為一名合格的軟體開發工程師,有必要了解整個互聯網是如何來保證數據的安全傳輸的,本篇文章對網路傳輸安全體系以及涉及到的演算法知識做了一個簡要的介紹,希望大家能夠有一個初步的了解。

###密碼技術定義

簡單的理解,密碼技術就是編制密碼和破譯密碼的一門技術,也即是我們常說的加密和解密。常見的結構如圖:

其中涉及到的專業術語:

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 |

----

❷ 什麼是sm演算法

國產密碼演算法(國密演算法)是指國家密碼局認定的國產商用密碼演算法,目前主要使用公開的SM2、SM3、SM4三類演算法,分別是非對稱演算法、哈希演算法和對稱演算法。

1.SM2演算法:SM2橢圓曲線公鑰密碼演算法是我國自主設計的公鑰密碼演算法,包括SM2-1橢圓曲線數字簽名演算法,SM2-2橢圓曲線密鑰交換協議,SM2-3橢圓曲線公鑰加密演算法,分別用於實現數字簽名密鑰協商和數據加密等功能。SM2演算法與RSA演算法不同的是,SM2演算法是基於橢圓曲線上點群離散對數難題,相對於RSA演算法,256位的SM2密碼強度已經比2048位的RSA密碼強度要高。橢圓曲線參數並沒有給出推薦的曲線,曲線參數的產生需要利用一定的演算法產生。但在實際使用中,國密局推薦使用素數域256 位橢圓曲線,其曲線方程為y^2= x^3+ax+b(其中p是大於3的一個大素數,n是基點G的階,Gx、Gy 分別是基點G的x與y值,a、b是隨圓曲線方程y^2= x^3+ax+b的系數)。
2.SM3演算法:SM3雜湊演算法是我國自主設計的密碼雜湊演算法,適用於商用密碼應用中的數字簽名和驗證消息認證碼的生成與驗證以及隨機數的生成,可滿足多種密碼應用的安全需求。為了保證雜湊演算法的安全性,其產生的雜湊值的長度不應太短,例如MD5輸出128比特雜湊值,輸出長度太短,影響其安全性SHA-1演算法的輸出長度為160比特,SM3演算法的輸出長度為256比特,因此SM3演算法的安全性要高於MD5演算法和SHA-1演算法。
3.SM4演算法:SM4分組密碼演算法是我國自主設計的分組對稱密碼演算法,用於實現數據的加密/解密運算,以保證數據和信息的機密性。要保證一個對稱密碼演算法的安全性的基本條件是其具備足夠的密鑰長度,SM4演算法與AES演算法具有相同的密鑰長度分組長度128比特,因此在安全性上高於3DES演算法。

❸ 科普:國產密碼演算法


密碼學(cryptography): 通過將信息編碼使其不可讀,從而達到安全性。

演算法 :取一個輸入文本,產生一個輸出文本。

加密演算法 :發送方進行加密的演算法。

解密演算法 :接收方進行解密的演算法。

對稱密鑰加密 (Symmetric Key Cryptography):加密與解密使用相同密鑰。

非對稱密鑰加密 (Asymmetric Key Cryptography):加密與解密使用不同密鑰。

密鑰對 :在非對稱加密技術中,有兩種密鑰,分為私鑰和公鑰,私鑰是密鑰對所有者持有,不可公布,公鑰是密鑰對持有者公布給他人的。

公鑰 :公鑰用來給數據加密,用公鑰加密的數據只能使用私鑰解密。

私鑰 :如上,用來解密公鑰加密的數據。

摘要 :對需要傳輸的文本,做一個HASH計算。

簽名 :使用私鑰對需要傳輸的文本的摘要進行加密,得到的密文即被稱為該次傳輸過程的簽名。

密碼協議是指兩個或兩個以上的參與者為了達到某種特定目的而採取的一系列步驟。規定了一系列有序執行的步驟,必須依次執行。必須有兩個或兩個以上的參與者,有明確的目的。參與者都必須了解、同意並遵循這些步驟。

常見的密碼協議包括IPSEC VPN 協議、SSL VPN 協議、密鑰交換協議等。

密碼是指描述密碼處理過程的一組運算規則或規程,一般是指基於復雜數學問題設計的一組運算,其基本原理基於數學難題、可證明計算、計算復雜度等。主要包括:對稱密碼、公鑰密碼、雜湊演算法、隨機數生成。

在對稱加密演算法中,加密使用的密鑰和解密使用的密鑰是相同的,加密和解密都是使用同一個密鑰,不區分公鑰和私鑰。

通信雙方採用相同的密鑰來加解密會話內容,即一段待加密內容,經過同一個密鑰的兩次對稱加密後,與原來的結果一樣,具有加解密速度快和安全強度高的優點。

國際演算法:DES、AES。

國產演算法:SM1、SM4、SM7。

非對稱加解密演算法又稱為 公鑰密碼 ,其密鑰是成對出現的。雙方通信時,首先要將密鑰對中的一個密鑰傳給對方,這個密鑰可以在不安全的信道中傳輸;傳輸數據時,先使用自己持有的密鑰做加密,對方用自己傳輸過去的密鑰解密。

國際演算法:RSA

國產演算法:SM2

優點:

密鑰分發數目與參與者數目相同,在有大量參與者的情況下易於密鑰管理。

支持數字簽名和不可否認性。

無需事先與對方建立關系,交換密鑰。

缺點:

速度相對較慢。

可能比同等強度的對稱密碼演算法慢10倍到100倍。

加密後,密文變長。

密碼雜湊演算法 :又稱為散列演算法或哈希函數,一種單向函數,要由散列函數輸出的結果,回推輸入的資料是什麼,是非常困難的。

散列函數的輸出結果,被稱為訊息摘要(message digest)或是 摘要(digest) ,也被稱為 數字指紋

雜湊函數用於驗證消息的完整性, 在數字簽名中,非對稱演算法對數據簽名的速度較慢,一般會先將消息進行雜湊運算,生成較短的固定長度的摘要值。然後對摘要值進行簽名,會大大提高計算效率 。

國際演算法:MD5、SHA1、SHA2、SHA3

國產演算法:SM3

2009年國家密碼管理局發布的《信息安全等級保護商用密碼技術實施要求》中明確規定,一、二、三、四級信息系統應使用商用密碼技術來實施等級保護的基本要求和應用要求,一到四級的密碼配用策略要求採用國家密碼管理部門批准使用的演算法。

2010年年底,國家密碼管理局公開了SM2、SM3等國產密碼演算法。

2011年2月28日,國家密碼管理局印發的【2011】145號文中明確指出,1024位RSA演算法正在面臨日益嚴重的安全威脅,並要求各相關企業在2012年6月30日前必須使用SM2密碼演算法

國家密碼管理局在《關於做好公鑰密碼演算法升級工作的函》中要求2011年7月1日以後建立並使用公鑰密碼的信息系統,應使用SM2演算法;已經建設完成的系統,應盡快進行系統升級,使用SM2演算法。

2014年底,國家密碼管理局啟動《重要信息系統密碼應用推進總體研究課題》,確定十三五密碼 科技 專項。

2017年11月底,國家密碼管理局下發了《政務雲密碼支撐方案及應用方案設計要點》。

2017年國家密碼管理局發布了42項金融和重要領域國產密碼應用試點任務。

2018年,中共中央辦公廳、國務院辦公廳印發《金融和重要領域密碼應用與創新發展工作規劃(2018-2022年)。

2018年,為指導當時即將啟動的商用密碼應用安全性評估試點工作,國家密碼管理局發布了密碼行業標准GM/T0054-2018《信息系統密碼應用 基本要求》。

2021年3月,國家市場監管總局、國家標准化管理委員會發布公告,正式發布國家標准GB/T39786-2021《信息安全技術信息系統密碼應用基本要求》,該標准於2021年10月1日起實施。

SM1 演算法是分組密碼演算法,分組長度為 128 位,密鑰長度都為 128 比特,演算法安全保密強度及相關軟硬體實現性能與AES相當,演算法不公開,僅以IP核的形式存在於晶元中。

演算法集成於加密晶元、智能 IC 卡、智能密碼鑰匙、加密卡、加密機等安全產品,廣泛應用於電子政務、電子商務及國民經濟的各個應用領域(包括政務通、警務通等重要領域)。

SM2橢圓曲線公鑰密碼演算法是我國自主設計的公鑰密碼演算法,是一種基於ECC演算法的 非對稱密鑰演算法, 其加密強度為256位,其安全性與目前使用的RSA1024相比具有明顯的優勢。

包括SM2-1橢圓曲線數字簽名演算法,SM2-2橢圓曲線密鑰交換協議,SM2-3橢圓曲線公鑰加密演算法,分別用於實現 數字簽名密鑰協商 數據加密 等功能。

SM3雜湊演算法是我國自主設計的密碼雜湊演算法,屬於哈希(摘要)演算法的一種,雜湊值為256位,安全性要遠高於MD5演算法和SHA-1演算法。

適用於商用密碼應用中的 數字簽名 驗證消息認證碼的生成與驗證 以及 隨機數 的生成,可滿足多種密碼應用的安全需求。

SM4 分組密碼演算法 是我國自主設計的分組對稱密碼演算法,SM4演算法與AES演算法具有相同的密鑰長度分組長度128比特,因此在安全性上高於3DES演算法。

用於實現數據的加密/解密運算,以保證數據和信息的機密性。軟體和硬體加密卡均可實現此演算法。


商用密碼技術框架包括 密碼資源、密碼支撐、密碼服務、密碼應用 等四個層次,以及提供管理服務的密碼管理基礎設施。

密碼資源層: 主要是提供基礎性的密碼演算法資源。

密碼支撐層: 主要提供密碼資源調用,由安全晶元、密碼模塊、智能IC卡、密碼卡、伺服器密碼機、簽名驗簽伺服器、IPSCE/SSL VPN 等商密產品組成。

密碼服務層: 提供密碼應用介面,分為對稱和公鑰密碼服務以及其他三大類。

密碼應用層: 調用密碼服務層提供的密碼應用程序介面,實現數據的加解密、數字簽名驗簽等服務。如應用 於 安全郵件、電子印章系統、安全公文傳輸、移動辦公平台、可信時間戳等系統。

密碼管理基礎設施: 獨立組件,為以上四層提供運維管理、信任管理、設備管理、密鑰管理等功能。


完整的PKI系統必須具有權威認證機構(CA)、數字證書庫、密鑰備份及恢復系統(KMC)、證書作廢系統(CRL)、應用介面(API)等基本構成部分,構建PKI也將圍繞著這五大系統來著手構建。

CA 系統:Ca系統整個PKI的核心,負責證書的簽發。CA首先產生自身的私鑰和公鑰(密鑰長度至少為1024位),然後生成數字證書,並且將數字證書傳輸給安全伺服器。、CA還負責為操作員、安全伺服器以及注冊機構伺服器生成數字證書。安全伺服器的數字證書和私鑰也需要傳輸給安全伺服器。

CA伺服器是整個結構中最為重要的部分,存有CA的私鑰以及發行證書的腳本文件,出於安全的考慮,應將CA伺服器與其他伺服器隔離,任何通信採用人工干預的方式,確保認證中心的安全。


(1)甲使用乙的公鑰對明文進行加密,生成密文信息。

(2)甲使用HASH演算法對明文進行HASH運算,生成數字指紋。

(3)甲使用自己的私鑰對數字指紋進行加密,生成數字簽名。

(4)甲將密文信息和數字簽名一起發送給乙。

(5)乙使用甲的公鑰對數字簽名進行解密,得到數字指紋。

(6)乙接收到甲的加密信息後,使用自己的私鑰對密文信息進行解密,得到最初的明文。

(7)乙使用HASH演算法對還原出的明文用與甲所使用的相同HASH演算法進行HASH運算,生成數字指紋。然後乙將生成的數字指紋與從甲得到的數字指紋進行比較,如果一致,乙接受明文;如果不一致,乙丟棄明文。


SSL 協議建立在可靠的傳輸協議(如 TCP)之上,為高層協議提供數據封裝,壓縮,加密等基本功能。

即可以協商加密演算法實現加密傳輸,防止數據防竊聽和修改,還可以實現對端設備身份驗證、在這個過程中,使用國密演算法進行加密、簽名證書進行身份驗證、加密證書用於密鑰交換

SSL協商過程:

(1)客戶端發出會話請求。

(2)服務端發送X.509證書(包含服務端的公鑰)。

(3)客戶端用已知Ca列表認證證書。

(4)客戶端生成隨機對稱密鑰,並利用服務端的公鑰進行加密。

(5)雙方協商完畢對稱密鑰,隨後用其加密會話期間的用戶最終數據。

利用SSL卸載技術及負載均衡機制,在保障通訊數據安全傳輸的同時,減少後台應用伺服器的性能消耗,並實現伺服器集群的冗餘高可用,大幅度提升整個業務應用系統的安全性和穩定性。此外,藉助多重性能優化技術更可縮短了業務訪問的響應等待時間,明顯提升用戶的業務體驗。


基於 數字證書 實現終端身份認證,給予密碼運算實現本地數據的加密存儲,數字證書硬體存儲和密碼運算由移動終端內置的密碼部件提供。

移動應用管理系統伺服器採用簽名證書對移動應用軟體安裝包進行簽名,移動應用管理系統客戶端對簽名信息進行驗簽,保障移動應用軟體安裝包的真實性和完整性。

移動辦公應用系統採用簽名證書對關鍵訪問請求進行簽名驗證。

採用加密證書對關鍵傳輸數據和業務操作指令,以及移動終端本地存儲的重要數據進行加密保護。

移動辦公系統使用商用密碼,基於數字證書認證系統,構建覆蓋移動終端、網路、移動政務應用的安全保障體系,實現政務移動終端安全、接入安全、傳輸安全和移動應用安全 。

❹ MD5是單向還是雙向的加密

md5不是加密演算法,是信息摘要演算法,其演算法是單向的,大部分情況下損失信息,也無法將結果運算成原輸入信息

❺ 國密演算法

國密即國家密碼局認定的國產密碼演算法。主要有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

閱讀全文

與md5是國密演算法嗎相關的資料

熱點內容
文件壓縮包如何加密文件 瀏覽:183
2010提出的演算法 瀏覽:672
冰櫃壓縮機的壽命 瀏覽:105
辦公室采訪程序員 瀏覽:569
美橙雲伺服器購買 瀏覽:754
漢語詞典pdf下載 瀏覽:353
android公網ip 瀏覽:613
要塞1地圖放哪個文件夾 瀏覽:850
凡科建站怎麼弄伺服器 瀏覽:939
蘋果手機怎麼設置app播放 瀏覽:202
下載網站源碼用什麼瀏覽器 瀏覽:241
六線譜pdf 瀏覽:156
linuxmysqlsock 瀏覽:239
人教版數學pdf下載 瀏覽:460
文檔安全加密系統 瀏覽:492
數控銑床編程簡單數字 瀏覽:788
編程電纜如何重啟 瀏覽:121
myqq命令行發消息 瀏覽:365
日產逍客怎麼使用app升窗 瀏覽:503
安卓系統怎麼快速刪除微信內容 瀏覽:653