密碼學學習總結


一、密碼學基礎

       密碼學要解決信息的機密性、完整性和不可否認性。其中:

       機密性:對傳遞的信息進行加密就可以實現機密性,保證信息不泄漏給未經授權的人。(對稱、非對稱加密)

       完整性:防止信息被未經授權的人篡改,保證信息不被篡改。(單向散列、消息認證碼、數字簽名)

      不可否認性:能夠保證信息行為人不能否認其信息行為。(對應的技術數字簽名)

      身份認證:也能實現身份認證。(對應技術有消息認證、數字簽名)

1.1、密碼學基本元素

    明文(plain text):希望得到保密的原始信息

    密文(cipher text):明文經過密碼變換后的消息

    加密(encryption):由明文變換為密文的過程

    解密(decryption):由密文恢復出明文的過程

    加密算法(encryption algorithm):對明文進行加密時采用的一組規則

    解密算法(decryption algorithm):對密文進行解密時采用的一組規則

    秘鑰(key):控制加密和解密算法操作的信息

1.2、密碼學的分類

       密碼學的密碼算法可以分為:對稱加密(Sysmmetric Cryptography)和非對稱加密(Asymmetric Cryptography)

以及用於確認數據完整性的單向散列(One-Way Hash Funcrion)又稱密碼校驗(Cryptographic Checksum)、指紋

(Fingerprint)、消息摘要(Message Digest)。

1.2.1 對稱加密

       特點:在加密和解密使用同一秘鑰。

       優點:加密或解密運算速度塊,加密強度高,算法公開。

       缺點:秘鑰分發難,更新周期長,不便於管理。

       對稱密碼算法有AES算法(Advanced Encryption Standard)又稱高級加密標准Rijndael加密發,屬於非保密、

公開披露的,在各種平台上易於實現、速度快,設計簡單,密文和明文長度一致,硬件支持、加密芯片。DES

是對稱密碼算法,就是老了。對稱密碼中分組密碼模式:ECB(Electronic CodeBook)模式,電子密碼本模式,

明文與密文一一對應,存在一定風險。CBC(Cipher Block Chaining)模式,密文分組鏈接模式,初始化向量IV,

每次加密時隨機產生。OFB模式稱為輸出反饋模式,在OFB模式中,XOR所需的比特序列(秘鑰流)可以事先通過

密碼算法生成,和明文分組無關。只需要提前准備好所需要的秘鑰流,然后進行XOR運算就可以了。具體參考下圖:

 

 

1.2.2 非對稱加密

       非對稱密碼算法的秘鑰分為加密秘鑰和解密秘鑰。發送者使用加密秘鑰(公鑰)對消息

加密,接受者使用解密秘鑰(私鑰)對密文進行解密。公鑰和私鑰一一對應,形成秘鑰對。

非對稱密碼基於數學上的難題,正向生成公鑰和私鑰很容易,但是通過公鑰逆向生成私鑰

是困難的。

    非對稱密碼算法-RSA

        RSA是非對稱加密中最著名的加密算法,與1977年由Rivest、Adi Shamir和Len Adlenman

三人共同發明的,RSA基於大整數分解素因子困難,一旦發現就能破解,可以用來加密也

可以用來簽名。還有其他的非對稱加密,比如ECC、ELGAmal、Rabin。

1.2.3 混合加密系統

       混合加密就是對稱加密和非對稱加密的結合。由於對稱加密算法速度快,強度高,而非對

稱加密算法效率低,但能夠解決秘鑰配送問題。因此可以通過非對稱加密配送對稱秘鑰,

再采用對稱秘鑰用來加密的方式,實現網絡的秘鑰配送與通信加密。

       一般實踐中,發送者通過數字證書獲得接收者的公鑰(防止偽裝),然后每次生成對稱加

密用的秘鑰,用接收者的公鑰對對稱密碼算法的密鑰進行加密,同時用對稱密碼算法的秘鑰加

密數據得到密文。因為對稱密碼只對當前的一條信息負責,而非對稱密碼會影響到過完和未來

所有通信,因此公鑰密碼強度應該高於對稱密碼私鑰。

 

 

       一般是用接受者的公鑰加密對稱秘鑰,35114因為是雙向認證,可以用設備的公鑰先加密一個VKEK,

然后設備用私鑰解密得到VKEK。因為VEK每一個小時變化,如果用平台的公鑰加密的話,非對稱

加密頻率太高,那么用VKEK只用一次就好了,但是要保證VEKE的可靠性。

1.2.4 單向散列

      單向散列技術是為了保證信息的完整性,防止信息被篡改的一項技術,有一個輸入和輸出,輸入稱為

消息,輸出稱為散列值。特點:一種采集信息的“指紋”的計數;無論消息長度,計算出的長度是不變的;

快速計算;消息不同,散列值不同,需要具有抗碰撞性,弱抗碰撞性是給定散列值,找到和該消息具

有相同散列值的另一條消息是困難的,強抗碰撞性是任意散列值,找到散列值相同的兩條不同的消息

是困難的;具有單向性,不可由散列值推出原消息。對應的技術有MD、SHA。

單向散列函數的應用

①檢測消息是否被篡改

②基於口令的加密:將口令和salt隨機數混合計算其散列值。

③消息認證碼(MAC):將共享密鑰和消息混合后計算的散列值,可以檢測並防止通信過程中

的錯誤、篡改以及偽裝。

④數字簽名。

⑤挑戰應答(challenge-response)方式認證。

二、密碼學應用

       消息認證碼是一種確認完整性並進行認證的計數,輸入包括任意長度的消息和一個發送者與接受

者共享的秘鑰,輸出固定的長度數據。(無法向第三方證明這個消息是教官發送的)

2.2、數字簽名

       在非對稱加密中,私鑰用來解密,公鑰用來加密。

       在數字簽名技術中,私鑰用來加密,公鑰用來解密。

2.3、數字證書

     CA私鑰加密用戶的公鑰和一些相關的信息(有效時間、發證機關、序列號)生成數字證書。

CA機構類似公安局,哈希值類似身份證號,對哈希值簽名就是蓋章。

數字證書的組成:

1、版本;

2、序列號;

3、簽名算法;(ey:sha256RSA)

4、簽名哈希算法;(ey:sha256)

5、頒發者;

6、有效期;

7、使用者;

8、公鑰;(ey:RSA)

9、增強型秘鑰用法;

10、使用者秘鑰標識符;

11、頒發機構秘鑰標識符;

12、頒發者備用名稱;

13、使用者備用名稱;

14、指紋算法;(ey:sha1)

15、指紋;(ey:實際是指紋的密文,在客戶端會用CA的公鑰解密,是唯一的。最終會用簽名算法

和簽名哈希算法對指紋進行簽名。)

2.4、SSL

2.5、國產密碼算法的總結

①SM1 :為對稱加密,其加密強度與AES相當,該算法不公開,調用該算法時,需要通過加密芯片接口

進行調用,秘鑰長度和分組長度為128位。

②SM2 :為非對稱加密,基於ECC,該算法已經公開。SM2橢圓曲線公鑰密碼算法是我國自主設計的

公鑰秘鑰算法,包括SM2-1橢圓曲線簽名算法、SM2-2橢圓曲線秘鑰交互協議、SM2-3橢圓曲線加密

算法,分別用於實現數字簽名秘鑰協商和數據加密等功能。與RSA不同,由於該算法基於橢圓曲線上

點群離散對數難題,故其簽名速度和秘鑰生成速度都快於RSA,256位的SM2密碼強度已經比2048位

的RSA密碼強度高。

③SM3:SM3雜湊算法是由我國自主設計的密碼雜湊算法,可以參考MD5理解,適用於商用密碼應

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

求。為了保證雜湊算法的安全性,其產生的雜湊值不應太短,例如MD5輸出128比特雜湊值,輸出

長度太短,影響其安全性。SHA-1算法的輸出長度為160比特,SM3輸出的長度為256位,因此SM3

算法的安全性要高於MD5和SHA算法。

④SM4:無線局域網標准的分組數據算法,對稱加密、秘鑰長度和分組長度均為128位。要保證一

個對稱密碼算法的安全性的基本條件是具備足夠的秘鑰長度,SM4算法和AES算法具有相同的密鑰

長度分組長度128,因此安全性上高於3DES算法。

三、密碼學誤用

3.2、關於密碼學的常識

1)不要使用保密的密碼算法

2)低強度密碼比不加密更危險

3)任何密碼都有破解的一天。(量子計算可以在根本上解決此問題,因為量子糾纏可以實現一次性密碼本算法)

4)密碼只是信息安全中的一環,人更重要。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM