在這個信息爆炸的時代,我們不得不對信息的安全提高警惕。加密作為保障數據信息安全的一種方式,越來越受到人們的關注。
下面,我將把自己對Microsoft CryptoAPI的一些膚淺的理解與大家共享,有什麼不妥之處望不吝賜教。
一、 加密方法:
當初,計算機的研究就是為了破解德國人的密碼,人們並沒有想到計算機給今天帶來的信息革命。隨著計算機的發展,運算能力的增強,密碼學已經取得了巨大的進展。大體來說有以下幾種形式。
1、 公用密鑰加密技術
加密和解密使用不同的密鑰,分別叫做“公鑰”和“私鑰”。顧名思義,“私鑰”就是不能讓別人知道的,而“公鑰”就是可以公開的。這兩個必須配對使用,用公鑰加密的數據必須用與其對應的私鑰才能解開。這種技術安全性高,得到廣泛運用,但是效率太低。
2、 對稱密鑰加密技術
要求加密和解密過程使用相同的密鑰,這樣,密鑰必須只能被加解密雙方知道,否則就不安全。這種技術安全性不高,但是效率高。
3、 結合公用和對稱密鑰加密技術
公鑰加密技術以速度為代價換取了高安全性,而對稱加密以低安全換取高性能,所以另一種常見的加密方法就是結合以上兩種技術。
用對稱加密算法對數據進行加密,然後使用更安全的但效率更低的公鑰加密算法對對稱密鑰進行加密。
4、 數字簽名和鑒別
就是對已經加密的數據“簽名”,這樣接收者可以知道加密的數據的來源,以及是否被更改。
二、 CryptoAPI
微軟的CryptoAPI是PKI推薦使用的加密 API。其功能是為應用程序開發者提供在Win32環境下使用加密、驗證等安全服務時的標准加密接口。CryptoAPI處於應用程序和CSP(cryptographic service provider)之間(見圖一)。
CryptoAPI的模型同Windows系統的圖形設備接口 GDI比較類似,其中加密服務提供者CSP等同於圖形設備驅動程序 ,加密硬件(可選)等同於圖形硬件,其上層的應用程序也類似,都不需要同設備驅動程序和硬件直接打交道。
CryptoAPI共有五部分組成:簡單消息函數(Simplified Message Functions)、低層消息函數(Low-level Message Functions)、基本加密函數(Base Cryptographic Functions)、證書編解碼函數(Certificate Encode/Decode Functions)和證書庫管理函數(Certificate Store Functions)。其中前三者可用於對敏感信息進行加密或簽名處理,可保證網絡傳輸信心的私有性;後兩者通過對證書的使用,可保證網絡信息交流中的認證性。