當前位置:首頁 » 密碼管理 » 密碼是來自一種什麼樣的技術

密碼是來自一種什麼樣的技術

發布時間: 2023-03-01 07:40:35

⑴ 密碼是什麼

據網路知識解釋:密碼是一種用來混淆的技術,它希望將正常的(可識別的)信息轉變為無法識別的信息。當然,對一小部分人來說,這種無法識別的信息是可以再加工並恢復的。密碼在中文裡是"口令"(password)的通稱。登錄網站、電子郵箱和銀行取款時輸入的"密碼"其實嚴格來講應該僅被稱作"口令",因為它不是本來意義上的"加密代碼",但是也可以稱為秘密的號碼。主要限定於個別人理解(如一則電文)的符號系統。如密碼電報、密碼式打字機。
中國是世界上最早使用密碼的國家之一。而最難破解的"密電碼"也是中國人發明的。
密碼組成
密碼是按特定法則編成,用以對通信雙方的信息進行明密變換的符號。換而言之,密碼是隱蔽了真實內容的黑客密碼符號序列。就是把用公開的、標準的信息編碼表示的信息通過一種變換手段,將其變為除通信雙方以外其他人所不能讀懂的信息編碼,這種獨特的信息編碼就是密碼。
密碼是一門科學,有著悠久的歷史。密碼在古代就被用於傳遞秘密消息。在近代和現代戰爭中,傳遞情報和指揮戰爭均離不開密碼,外交斗爭中也離不開密碼。密碼一般用於信息通信傳輸過程中的保密和存儲中的保密。隨著計算機和信息技術的發展,密碼技術的發展也非常迅速,應用領域不斷擴展。密碼除了用於信息加密外,也用於數據信息簽名和安全認證。這樣,密碼的應用也不再只局限於為軍事、外交斗爭服務,它也廣泛應用在社會和經濟活動中。當今世界已經出現了密碼應用的社會化和個人化趨勢。例如:可以將密碼技術應用在電子商務中,對網上交易雙方的身份和商業信用進行識別,防止網上電子商務中的"黑客"和欺詐行為;應用於增值稅發票中,可以防偽、防篡改,杜絕了各種利用增值稅發票偷、漏、逃、騙國家稅收的行為,並大大方便了稅務稽查;應用於銀行支票鑒別中,可以大大降低利用假支票進行金融詐騙的金融犯罪行為;應用於個人移動通信中,大大增強了通信信息的保密性等等。

⑵ 常見密碼技術簡介

##

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

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

###密碼技術定義

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

其中涉及到的專業術語:

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 |

----

⑶ 密碼學基礎

​ 密碼學是研究如何保護信息安全性的一門科學,涉及數學、物理、計算機、資訊理論、編碼學、通訊技術等學科,已經在生活中得到廣泛應用。

​ 密碼學組成分支分為編碼學和密碼分析學。密碼編碼學主要研究對信息進行編碼,實現信息的隱蔽。密碼分析學主要研究加密消息的破譯或消息的偽造。二者相互獨立,又相互依存,在矛盾與斗爭中發展,對立統一。

​ 密碼學的發展歷史大致可劃分為三個階段:

機密性

僅有發送方和指定的接收方能夠理解傳輸的報文內容。竊聽者可以截取到加密了的報文,但不能還原出原來的信息,即不能得到報文內容。

鑒別

發送方和接收方都應該能證實通信過程所涉及的另一方, 通信的另一方確實具有他們所聲稱的身份。即第三者不能冒充跟你通信的對方,能對對方的身份進行鑒別。

報文完整性

即使發送方和接收方可以互相鑒別對方,但他們還需要確保其通信的內容在傳輸過程中未被改變。

不可否認性

如果人們收到通信對方的報文後,還要證實報文確實來自所宣稱的發送方,發送方也不能在發送報文以後否認自己發送過報文。

​ 密碼體制是一個使通信雙方能進行秘密通信的協議。密碼體制由五要素組成,P(Plaintext明文集合),C(Ciphertext密文集合),K(Key密鑰集合),E(Encryption加密演算法),D(Decryption解密演算法),且滿足如下特性: 

<script type="math/tex; mode=display" id="MathJax-Element-1"> p ∈ P </script>

<script type="math/tex; mode=display" id="MathJax-Element-2"> c ∈ C </script>

<script type="math/tex; mode=display" id="MathJax-Element-3"> k1 ∈ K, k2 ∈ K </script>

<script type="math/tex; mode=display" id="MathJax-Element-6"> E_{k1}(p) = c,D_{k2}(c) = p </script>

​ 無論是用手工或機械完成的古典密碼體制,還是採用計算機軟體方式或電子電路的硬體方式完成的現代密碼體制,其加解密基本原理都是一致的。都是基於對明文信息的替代或置換,或者是通過兩者的結合運用完成的。

​ 替代(substitution cipher):有系統地將一組字母換成其他字母或符號;

​ 例如『help me』變成『ifmq nf』(每個字母用下一個字母取代)。

​ 置換(Transposition cipher):不改變字母,將字母順序重新排列;

​ 例如『help me』變成『ehpl em』(兩兩調換位置)。

​ 密碼分析者通常利用以下幾種方法對密碼體制進行攻擊:

​ 已知明文分析法: 

知道一部分明文和其對應的密文,分析發現秘鑰。

​ 選定明文分析法: 

設法讓對手加密自己選定的一段明文,並獲得對應的密文,在此基礎上分析發現密鑰。

​ 差別比較分析法: 

設法讓對方加密一組差別細微的明文,通過比較他們加密後的結果來分析秘鑰。

​ 無條件安全: 

無論破譯者的計算能力有多強,無論截獲多少密文,都無法破譯明文。

​ 計算上安全:

​ 破譯的代價超出信息本身的價值,破譯所需的時間超出信息的有效期。

​ 任何密碼系統的應用都需要在安全性和運行效率之間做出平衡,密碼演算法只要達到計算安全要求就具備了實用條件,並不需要實現理論上的絕對安全。1945年美國數學家克勞德·E·香農在其發布的《密碼學的數學原理》中,嚴謹地證明了一次性密碼本或者稱為「弗納姆密碼」(Vernam)具有無條件安全性。但這種絕對安全的加密方式在實際操作中需要消耗大量資源,不具備大規模使用的可行性。事實上,當前得到廣泛應用的密碼系統都只具有計算安全性。

​ 一個好的密碼體制應該滿足以下兩個條件:

在已知明文和密鑰的情況下,根據加密演算法計算密文是容易的;在已知密文和解密密鑰的情況下,計算明文是容易的。

在不知道解密密鑰的情況下,無法從密文計算出明文,或者從密文計算出明文的代價超出了信息本身的價值。

常見的密碼演算法包括:

​ 對稱密碼體制也稱單鑰或私鑰密碼體制,其加密密鑰和解密密鑰相同,或實質上等同, 即從一個易於推出另一個。

​ 優點:保密性高,加密速度快,適合加密大量數據,易於通過硬體實現; 

缺點:秘鑰必須通過安全可靠的途徑傳輸,秘鑰的分發是保證安全的關鍵因素;

​ 常見對稱密碼演算法:DES (密鑰長度=56位)、3DES( 三個不同的密鑰,每個長度56位)、AES(密鑰長度128/192/256可選)、IDEA(密鑰長度128位)、RC5(密鑰長度可變)。

​ 根據加密方式的不同,對稱密碼又可以分為分組密碼和序列密碼。

​ 將明文分為固定長度的組,用同一秘鑰和演算法對每一塊加密,輸出也是固定長度的密文,解密過程也一樣。

​ 又稱為流密碼,每次加密一位或一位元組的明文,通過偽隨機數發生器產生性能優良的偽隨機序列(密鑰流),用該序列加密明文消息序列,得到密文序列,解密過程也一樣。

​ 非對稱密碼體制又稱雙鑰或公鑰密碼體制,其加密密鑰和解密密鑰不同,從一個很難推出另一個。其中的加密密鑰可以公開,稱為公開密鑰,簡稱公鑰;解密密鑰必須保密,稱為私有密鑰,簡稱私鑰。

​ 優點:密鑰交換可通過公開信道進行,無需保密。既可用於加密也可用於簽名。 

缺點:加密速度不如對稱密碼,不適合大量數據加密,加密操作難以通過硬體實現。

​ 非對稱密碼體制不但賦予了通信的保密性,還提供了消息的認證性,無需實現交換秘鑰就可通過不安全信道安全地傳遞信息,簡化了密鑰管理的工作量,適應了通信網的需要,為保密學技術應用於商業領域開辟了廣闊的前景。

​ 常見的非對稱密碼演算法:RSA(基於大整數質因子分解難題)、ECC(基於橢圓曲線離散對數難題)。

對非對稱密碼的誤解 

非對稱密碼比對稱密碼更安全? 

任何一種演算法的安全都依賴於秘鑰的長度、破譯密碼的工作量,從抗分析的角度看,沒有哪一方更優越;

​ 非對稱密碼使對稱密碼成為過時技術? 

公鑰演算法很慢,一般用於密鑰管理和數字簽名,對稱密碼將長期存在,實際工程中採用對稱密碼與非對稱密碼相結合。

​ 哈希函數將任意長的消息映射為一個固定長度的散列值,也稱消息摘要。消息摘要可以作為認證符,完成消息認證。 

哈希是單向函數,從消息摘要來推理原消息是極為困難的。哈希函數的安全性是由發生碰撞的概率決定的。如果攻擊者能輕易構造出兩個不同的消息具有相同的消息摘要,那麼這樣的哈希函數是不可靠的。

​ 常見的哈希函數有:MD5,SHA1,HMAC。

​ 數字簽名是公鑰密碼的典型應用,可以提供和現實中親筆簽名相似的效果,在技術上和法律上都有保證。是網路環境中提供消息完整性,確認身份,保證消息來源(抗抵賴性)的重要技術。

​ 數字簽名與驗證過程:

​ 發送方用哈希函數從報文文本中生成一個128位的散列值(或報文摘要),發送方用自己的私鑰對這個散列值進行加密來形成自己的數字簽名。然後,這個數字簽名將作為報文的附件和報文一起發送給接收方。接收方收到報文後,用同樣的哈希函數從原始報文中計算出散列值(或報文摘要),接著再用發送方的公鑰來對報文附加的數字簽名進行解密得出另一個散列值,如果兩個散列值相同,那麼接收方就能確認該數字簽名是發送方的。通過數字簽名能夠實現消息的完整性和不可抵賴性。 

​ 在網路安全中,密鑰的地位舉足輕重

。如何安全可靠、迅速高效地分配密鑰、管理密鑰一直是密碼學領域中的重要問題。

​ 密鑰生成可以通過在線或離線的交互協商方式實現,如密碼協議等 。密鑰長度應該足夠長。一般來說,密鑰長度越大,對應的密鑰空間就越大,攻擊者使用窮舉猜測密碼的難度就越大。選擇密鑰時,應該避免選擇弱密鑰,大部分密鑰生成演算法採用隨機過程或偽隨機過程生成密鑰。

​ 採用對稱加密演算法進行保密通信,需要共享同一密鑰。通常是系統中的一個成員先選擇一個秘密密鑰,然後將它傳送另一個成員或別的成員。X9.17標准描述了兩種密鑰:密鑰加密密鑰和數據密鑰。密鑰加密密鑰加密其它需要分發的密鑰;而數據密鑰只對信息流進行加密。密鑰加密密鑰一般通過手工分發。為增強保密性,也可以將密鑰分成許多不同的部分然後用不同的信道發送出去。

​ 密鑰附著一些檢錯和糾錯位來傳輸,當密鑰在傳輸中發生錯誤時,能很容易地被檢查出來,並且如果需要,密鑰可被重傳。接收端也可以驗證接收的密鑰是否正確。發送方用密鑰加密一個常量,然後把密文的前2-4位元組與密鑰一起發送。在接收端,做同樣的工作,如果接收端解密後的常數能與發端常數匹配,則傳輸無錯。

​ 當密鑰需要頻繁的改變時,頻繁進行新的密鑰分發的確是困難的事,一種更容易的解決辦法是從舊的密鑰中產生新的密鑰,有時稱為密鑰更新。可以使用單向函數進行更新密鑰。如果雙方共享同一密鑰,並用同一個單向函數進行操作,就會得到相同的結果。

​ 密鑰可以存儲在腦子、磁條卡、智能卡中。也可以把密鑰平分成兩部分,一半存入終端一半存入ROM密鑰。還可採用類似於密鑰加密密鑰的方法對難以記憶的密鑰進行加密保存。

​ 密鑰的備份可以採用密鑰託管、秘密分割、秘密共享等方式。

​ 密鑰託管:

​ 密鑰託管要求所有用戶將自己的密鑰交給密鑰託管中心,由密鑰託管中心備份保管密鑰(如鎖在某個地方的保險櫃里或用主密鑰對它們進行加密保存),一旦用戶的密鑰丟失(如用戶遺忘了密鑰或用戶意外死亡),按照一定的規章制度,可從密鑰託管中心索取該用戶的密鑰。另一個備份方案是用智能卡作為臨時密鑰託管。如Alice把密鑰存入智能卡,當Alice不在時就把它交給Bob,Bob可以利用該卡進行Alice的工作,當Alice回來後,Bob交還該卡,由於密鑰存放在卡中,所以Bob不知道密鑰是什麼。

​ 秘密分割:

​ 秘密分割把秘密分割成許多碎片,每一片本身並不代表什麼,但把這些碎片放到一塊,秘密就會重現出來。

​ 秘密共享:

​ 將密鑰K分成n塊,每部分叫做它的「影子」,知道任意m個或更多的塊就能夠計算出密鑰K,知道任意m-1個或更少的塊都不能夠計算出密鑰K。秘密共享解決了兩個問題:一是若密鑰偶然或有意地被暴露,整個系統就易受攻擊;二是若密鑰丟失或損壞,系統中的所有信息就不能用了。

​ 加密密鑰不能無限期使用,有以下有幾個原因:密鑰使用時間越長,它泄露的機會就越大;如果密鑰已泄露,那麼密鑰使用越久,損失就越大;密鑰使用越久,人們花費精力破譯它的誘惑力就越大——甚至採用窮舉攻擊法。

​ 不同密鑰應有不同有效期。數據密鑰的有效期主要依賴數據的價值和給定時間里加密數據的數量。價值與數據傳送率越大所用的密鑰更換越頻繁。如密鑰加密密鑰無需頻繁更換,因為它們只是偶爾地用作密鑰交換,密鑰加密密鑰要麼被記憶下來,要麼保存在一個安全地點,丟失該密鑰意味著丟失所有的文件加密密鑰。

​ 公開密鑰密碼應用中的私鑰的有效期是根據應用的不同而變化的。用作數字簽名和身份識別的私鑰必須持續數年(甚至終身),用作拋擲硬幣協議的私鑰在協議完成之後就應該立即銷毀。即使期望密鑰的安全性持續終身,兩年更換一次密鑰也是要考慮的。舊密鑰仍需保密,以防用戶需要驗證從前的簽名。但是新密鑰將用作新文件簽名,以減少密碼分析者所能攻擊的簽名文件數目。

​ 如果密鑰必須替換,舊鑰就必須銷毀,密鑰必須物理地銷毀。

​ PKI是一個利用公鑰加密技術為密鑰和證書的管理,所設計的組件、功能子系統、操作規程等的集合,它的主要任務是管理密鑰和證書,為網路用戶建立安全通信信任機制。

​ 數字證書是一個包含用戶身份信息、公鑰信息、證書認證中心(CA)數字簽名的文件。

​ 作用:數字證書是各類終端實體和最終用戶在網上進行信息交流及商業活動的身份證明,在電子交易的各個緩解,交易的各方都需要驗證對方數字證書的有效性,從而解決相互間的信任問題。

​ CA全稱Certificate Authentication,是具備權威性的數字證書申請及簽發機構。

​ CA作為PKI的核心部分,主要由注冊伺服器組、證書申請受理和審核機構、認證中心伺服器三者組成。

​ 注冊伺服器:通過 Web Server 建立的站點,可為客戶提供24×7 不間斷的服務。客戶在網上提出證書申請和填寫相應的證書申請表。

​ 證書申請受理和審核機構:負責證書的申請和審核。

認證中心伺服器:是數字證書生成、發放的運行實體,同時提供發放證書的管理、證書廢止列表(CRL)的生成和處理等服務。

​ 通過CA可以實現以下功能:

​ 1. 接收驗證最終用戶數字證書的申請; 

2. 確定是否接受最終用戶數字證書的申請和審批; 

3. 向申請者頒發、拒絕頒發數字證書; 

4. 接收、處理最終用戶數字證書的更新; 

5. 接受最終用戶數字證書的查詢、撤銷; 

6. 產生和發布CRL(證書廢止列表); 

7. 數字證書的歸檔; 

8. 密鑰歸檔; 

9. 歷史數據歸檔;

五、量子密碼

5.1 量子計算

​ 由於量子計算技術取得了出人意料的快速發展,大量僅能抵禦經典計算機暴力破解的密碼演算法面臨被提前淘汰的困境 。

​ 非對稱密碼系統有效解決了對稱密碼面臨的安全密鑰交換問題,因而廣泛應用於公鑰基礎設施、數字簽名、聯合授權、公共信道密鑰交換、安全電子郵件、虛擬專用網以及安全套接層等大量網路通信活動之中。不幸的是,隨著量子計算的發展,包括RSA密碼、ECC密碼以及DH密鑰交換技術等非對稱密碼演算法已經從理論上被證明徹底喪失了安全性。相對於對稱密碼系統還可以採取升級措施應對量子威脅,非對稱密碼系統必須採取全新方法進行重建 。

5.2 量子密碼

​ 量子密碼是以量子力學和密碼學為基礎,利用量子物理學中的原理實現密碼體制的一種新型密碼體制,與當前大多使用的經典密碼體制不一樣的是,量子密碼利用信息載體的物理屬性實現。目前量子密碼用於承載信息的載體包括光子、壓縮態光信號、相干態光信號等。

​ 由於量子密碼體制的理論基礎是量子物理定理,而物理定理是物理學家經過多年的研究與論證得出的結論,有可靠的理論依據,且不論在何時都是不會改變的,因此,理論上,依賴於這些物理定理的量子密碼也是不可攻破的,量子密碼體制是一種無條件安全的密碼體制。

熱點內容
淘寶圖片緩存怎麼關閉 發布:2025-08-21 09:51:31 瀏覽:149
訪問學者出國手續 發布:2025-08-21 09:51:26 瀏覽:365
91資源解壓 發布:2025-08-21 09:42:14 瀏覽:415
創新科存儲技術 發布:2025-08-21 09:42:12 瀏覽:891
我的世界十三區伺服器地址 發布:2025-08-21 09:41:28 瀏覽:432
編程語言排行榜2016 發布:2025-08-21 09:31:33 瀏覽:295
編程教學廣告 發布:2025-08-21 09:28:24 瀏覽:173
安卓手機用哪個軟體編輯視頻 發布:2025-08-21 09:25:02 瀏覽:577
邁騰最低配有哪些值得選裝的配置 發布:2025-08-21 09:14:04 瀏覽:836
php求職 發布:2025-08-21 09:14:03 瀏覽:490