一,、安全問題出現(xiàn) 現(xiàn)在越來越多的人利用互聯(lián)網(wǎng)支付,轉(zhuǎn)賬等功能,,方便之余,,難免會心生疑問,賬號會不會被人盜???這就對數(shù)據(jù)安全提出了挑戰(zhàn),為了解決這個問題,,數(shù)據(jù)的加密就顯得異常重要了,。 二、基本概念 加解密的過程就是發(fā)送方將明文通過密鑰計算變成密文,,接收方再將密文通過密鑰計算變成可明文,,從而保證在信息傳輸過程中的具備:可鑒別,,完整,防泄漏,。
針對以上特性我們要著重介紹一下:對稱算法,、非對稱算法,數(shù)字簽名 對稱算法 加解密使用同一個密鑰,,所以如何安全的傳遞密鑰成了最頭疼的問題,。 (1) 甲方將明文使用密鑰加密,密文傳輸給乙方,。 (2) 乙方收到密文后,,用同一個密鑰,解密得到明文,。 由于雙方采用統(tǒng)一密鑰規(guī)則,,在傳遞和保持中如何保證密鑰的安全,就成了頭疼的問題,。 ### 非對稱算法 加解密采用不同密鑰,,稱為公鑰和私鑰,公私鑰成對出現(xiàn),,采用公鑰加密,,只能用配對的私鑰解密。 (1) 乙方生成一對公私鑰,,并將公鑰給甲方 (2) 甲方利用乙方給的公鑰將明文加密,,生成密文,傳輸給乙方 (3) 乙方接收到密文,,用配對的私鑰解密,,解出明文 這種方式私鑰嚴格保密,公鑰可以對外公布,,解決了密鑰傳遞和保存中的安全性問題,。 在密碼學中還有一個比較重要的概念就是確認發(fā)送方身份,也就是簽名驗證,。 數(shù)字簽名 數(shù)字簽名,,就是只有信息的發(fā)送者才能產(chǎn)生的別人無法偽造的一段數(shù)字串,這段數(shù)字串同時也是對信息的發(fā)送者發(fā)送信息真實性的一個有效證明,。提到數(shù)字簽名一定繞不開非對稱算法和散列函數(shù),,數(shù)字簽名有兩個過程:簽名和驗證,具體的過程如下 (1) 乙方生成一對公私鑰,,并將公鑰給甲方 (2) 乙方用其私鑰對文件做加密,,并簽名 (3) 甲方對文件解密,,并驗證簽名 由于文件內(nèi)容做加解密算法比較費時,所以一般簽名都是采用文件內(nèi)容通過散列算法得出的字符串(圖里的摘要可以認為就是這樣的一串字符串)做私鑰加密,,從而得到一串簽名數(shù)據(jù),,這樣驗簽的效率就大大提升了。 算法舉例 密碼學發(fā)展到現(xiàn)在,,涌現(xiàn)出來的算法有很多,,比如對稱算法中的des,aes,,非對稱算法中的RSA等,,下面就以RSA做個實例解析。RSA的算法原理這里就不介紹了,,請開wiki,,直接上代碼吧。本例子中的算法通過openssl的相關(guān)接口實現(xiàn)的,。 RSA加密實現(xiàn)
RSA簽名實現(xiàn) RSA驗簽實現(xiàn) 結(jié)束 簡單的介紹了一下,,密碼學的相關(guān)知識,,偏實用,,淡算法理論,有興趣自己擴展,,對實現(xiàn)代碼有疑問,,可以留言。 |
|
來自: 昵稱16619343 > 《區(qū)塊鏈》