文章插圖

文章插圖
數字簽名非常普遍:
了解數字簽名前先了解一下SHA-1摘要,RSA非對稱加密算法 。然后再了解數字簽名 。
SHA-1
SHA-1(secure hash Algorithm )是一種數據加密算法 。該算法的思想是接收一段明文,然后以一種不可逆的方式將它轉換成一段(通常更?。┟芪?,也可以簡單的理解為取一串輸入碼(稱為預映射或信息),并把它們轉化為長度較短、位數固定的輸出序列即散列值(也稱為信息摘要或信息認證代碼)的過程 。
單向散列函數的安全性在于其產生散列值的操作過程具有較強的單向性 。如果在輸入序列中嵌入密碼,那么任何人在不知道密碼的情況下都不能產生正確的散列值,從而保證了其安全性 。SHA將輸入流按照每塊512位(64個字節)進行分塊,并產生20個字節的被稱為信息認證代碼或信息摘要的輸出 。
該算法輸入報文的長度不限,產生的輸出是一個160位的報文摘要 。輸入是按512 位的分組進行處理的 。SHA-1是不可逆的、防沖突,并具有良好的雪崩效應 。
通過散列算法可實現數字簽名實現,數字簽名的原理是將要傳送的明文通過一種函數運算(Hash)轉換成報文摘要(不同的明文對應不同的報文摘要),報文摘要加密后與明文一起傳送給接受方,接受方將接受的明文產生新的報文摘要與發送方的發來報文摘要解密比較,比較結果一致表示明文未被改動,如果不一致表示明文已被篡改 。
【rsa加密解密算法原理 rsa的加密和解密原理】總之:SHA-1是一種單向的、位數固定為160為的數據加密算法,在不同平臺上,平臺本身內嵌SHA-1的實現,直接調用相應函數即可 。
RSA加密算法
RSA公鑰加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美國麻省理工學院)開發的 。RSA取名來自開發他們三者的名字 。RSA是目前最有影響力的公鑰加密算法,它能夠抵抗到目前為止已知的所有密碼攻擊,已被ISO推薦為公鑰數據加密標準 。RSA算法基于一個十分簡單的數論事實:將兩個大素數相乘十分容易,但那時想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰 。
RSA的算法涉及三個參數,n、e1、e2 。
其中,n是兩個大質數p、q的積,n的二進制表示時所占用的位數,就是所謂的密鑰長度 。
e1和e2是一對相關的值,e1可以任意取,但要求e1與(p-1)*(q-1)互質;再選擇e2,要求(e2*e1)mod((p-1)*(q-1))=1 。(n,e1),(n,e2)就是密鑰對 。其中 (n,e1)為公鑰,(n,e2)為私鑰 。
RSA加解密的算法完全相同,設A為明文,B為密文,則:A=B^e2 mod n;B=A^e1 mod n;(公鑰加密體制中,一般用公鑰加密,私鑰解密)e1和e2可以互換使用,即:
A=B^e2 mod n;B=A^e1 mod n;
如果客戶端開發,我們只是關心加密算法:我們需要n(模量)和e(指數),將這兩個放到平臺rsa密碼函數里生成密碼 。然后再調用rsa加密函數生成一串數字即可發往服務器 。
非對稱加密
1976年,美國學者Dime和Henman為解決信息公開傳送和密鑰管理問題,提出一種新的密鑰交換協議,允許在不安全的媒體上的通訊雙方交換信息,安全地達成一致的密鑰,這就是“公開密鑰系統” 。相對于“對稱加密算法”這種方法也叫做“非對稱加密算法” 。
與對稱加密算法不同,非對稱加密算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey) 。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那么只有用對應的公開密鑰才能解密 。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法 。
非對稱加密算法實現機密信息交換的基本過程是:甲方生成一對密鑰并將其中的一把作為公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對機密信息進行加密后再發送給甲方;甲方再用自己保存的另一把專用密鑰對加密后的信息進行解密 。甲方只能用其專用密鑰解密由其公用密鑰加密后的任何信息 。
非對稱加密算法的保密性比較好,它消除了最終用戶交換密鑰的需要,但加密和解密花費時間長、速度慢,它不適合于對文件加密而只適用于對少量數據進行加密 。
經典的非對稱加密算法如RSA算法等安全性都相當高.非對稱加密的典型應用是數字簽名 。
采用雙鑰密碼系統的加密方法,在一個過程中使用兩個密鑰,一個用于加密,另一個用于解密,這種加密方法稱為非對稱加密,也稱為公鑰加密,因為其中一個密鑰是公開的(另一個則需要保密) 。
數字簽名
數字簽名就是將上面兩個技術的融合,達到一種非常安全的信息傳遞機制 。經過上面的介紹,那么數字簽名就容易理解了 。如圖
再配一張數字簽名流程圖
圖片來自百度百科
總結
數字簽名的基礎就是非對稱加密,原來其實不算復雜 。
- 買東西時打折怎么個算法 買東西時打折怎么個算法
- 簡便算法 88×102的簡便運算
- 0.765×10.8-76.5×0.008怎么簡便算法 0.765×10.8-76.5×0.008的簡便算法
- 簡便算法 102×99的簡便運算
- 簡便算法 0.78×98簡便計算
- 簡便算法 999×99的簡便計算
- 簡便算法 125×56的簡便運算
- 三位數乘兩位數的簡便算法是什么 三位數乘兩位數的簡便算法
- 金字塔計算法 測測你的運動量夠了嗎
- 從玄學卦象道家五行風水八卦易經等種種算法中,每天穿衣服的顏色會影響運勢這種說法有沒有一定可信度?!怎么算自己的運勢如何
