資訊化時代的飛速發展,給人們的生活帶來了翻天覆地的變化。人們在享受網路資料便利互動的同時,也面臨著乙個重大的問題——資訊保安.從開始的郵件溝通、qq
聊天,演變到現在的手機移動支付,保護個人資訊與資料,變得越來越重要。資訊加密體系也從早先的對稱加密演算法,公升級到後來的共享秘鑰加密體系,再到非對稱加密體系。我們大多數人得益於加密演算法,卻不知其所以然,甚至不知其然。
下面談一下我對加密的理解。
在atm
機還不盛行的時期,大家去銀行取款,都要經歷密碼輸入的環節。一開始我很單純的認為,當你在鍵盤上輸入密碼的同時,這些資料會原封不動的傳到工作人員的電腦中,在與卡中的密碼比較之後,如果一致,則身份驗證成功,可以獲得取款許可權。但是後來,我了解到,完全不像我所想。我們輸入的密碼不是直接傳到後台的電腦上,而是先通過一條秘鑰對其進行加密後,將密文送到電腦,後者使用相同的秘鑰對密文解密後,再進行比對判斷。這裡用到的演算法就是對稱加密演算法、
aes、
des等等,他們都有乙個共同特點,即加密和解密用的都是同一條秘鑰,這條秘鑰既能加密資料也能解密資料。實際應用中,先在鍵盤、
pc端各存一條相同的秘鑰
key,當使用者輸入密碼之後,先用
key對密碼進行加密,然後將密文送到
pckey
的情況下是無法破解使用者的密碼,不會對其賬戶造成威脅。當密文送到
pc端後,會先用
key對其解密,然後再對比判斷密碼是否正確。
以上過程中銀聯會有自己的固定互動流程,而且會要求,秘鑰在鍵盤中必須要儲存在硬體安全載體中,比如加密晶元中,這樣能防止別人拿到這條秘鑰key
,試想一旦知道了這條秘鑰,那麼所有使用者輸入的密碼都可以通過線路跟蹤來破解了。這就是對稱演算法的特點,對於這個演算法來說,至關重要的是秘鑰的安全,不論誰獲得了秘鑰,都能截獲資料。不僅僅是銀聯的密碼鍵盤。在應用對稱加密演算法的行業或者產品中,秘鑰的儲存都是安全的關鍵。在一些嵌入式加密產品中,比如機頂盒產品、水電氣表等等,如果想要對線路傳輸資料加密,都不會將秘鑰放到主控
mcu中,而是單獨存放於加密晶元中,資料加解密都是直接通過加密晶元實現,
mcu只是起到傳輸資料的作用,這樣秘鑰的存放才會安全。
說完了對稱加密,我再來談一下非對稱加密。顧名思義,加密和解密使用不同的秘鑰,這就是非對稱加密演算法。現在常用的非對稱演算法主要有rsa
、ecc
。這類演算法的秘鑰分為公鑰和私鑰。公鑰是可以向外部公開的,任何人都可以獲得。私鑰只有特定的人員才能獲得。
私鑰加密的資料,必須要用公鑰來解密。而公鑰加密出來的資料,只能用私鑰才能解密。公私鑰配合使用才能完成加解密,因此,他們都是配對存在的,也叫公私鑰對——每一條公鑰都唯一存在一條私鑰與之配對。因為公鑰是沒有限制,任何人都可以獲取,因此私鑰的儲存就變得至關重要。私鑰的安全就決定了非對稱加密系統的安全。
由於任何人拿到公鑰,都可以對明文進行運算,如果先使用公鑰對資料運算,則稱為公鑰加密。這個時候再用私鑰運算就成為解密。相反,因為私鑰不是人人都可拿到,所以他具有唯一性,只有特定人員可以拿到,因此,先用私鑰運算後的資料,必須用配對的公鑰才能解密還原,這樣一來,一旦公鑰解密成功,我們也就知道了這是誰的私鑰(因為其具有唯一性),這就體現了乙個特點,即身份識別。因此先進行私鑰運算,我們會稱他為簽名。簽名之後,再用公鑰進行解密的過程,我們稱之為驗籤,即驗證簽名人員是誰。
同理,非對稱加密的私鑰,也是需要儲存在安全載體中的,不能以明文直接暴露在pc
本地或者是嵌入式系統的
mcu中。很多應用非對稱演算法的軟體產品中,都會把私鑰放在加密狗中,應用的時候,把加密狗接入
pc中,進行私鑰簽名或者私鑰解密的時候,都通過加密狗來內部實現。對於嵌入式系統,大家也都選擇放到加密晶元中,這也是行業內的普遍做法。對於銀聯這些特定行業,更是有標準直接規定了私鑰儲存條件。感興趣的可以自行檢視銀聯
pboc
規範等。
加密演算法之對稱與非對稱
簡單的說就是 我有乙個金鑰,我把金鑰告訴我要通訊的人。然後我用這個金鑰將明文資訊加密成密文,傳送給接收人,接收人收到資訊後,使用我提供的金鑰將密文解密成明文。對稱加密的優點 高速度 使用長金鑰時的難破解性 缺點 金鑰的數量 金鑰傳輸的不安全性 我們來簡單算一算,假如公司有n個員工,每兩個員工之間通訊...
對稱 非對稱金鑰 加密演算法
由於 摘要 演算法加密的資料僅僅能作為一種身份驗證的憑據使用,如果我們要對整個文件資料進行加密,則不能採用這種 不可逆 的演算法,因此 金鑰 演算法 key encoding 的概念被提出。此類演算法通過乙個被稱為 金鑰 的憑據進行資料加密處理,接收方通過加密時使用的 金鑰 字串進行解密,即雙方持有...
對稱加密演算法 非對稱加密演算法
對稱加密演算法 對稱加密演算法是應用較早的加密演算法,技術成熟。在對稱加密演算法中,資料發信方將明文 原始資料 和加密金鑰一起經過特殊加密演算法處理後,使其變成複雜的加密密文傳送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的金鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文...