數位簽章非常普遍:
瞭解數位簽章前先瞭解一下sha-1摘要,rsa密碼編譯演算法。然後,再瞭解數位簽章。
SHA-1 SHA-1(secure hash Algorithm )是一種
資料加密演算法。該演算法的思想是接收一段明文,然後以一種無法復原的方式將它轉換成一段(通常更小)密文,也可以簡單的理解為取一串輸入碼(稱為預映射或資訊),並把它們轉化為長度較短、位元固定的輸出序列即散列值(也稱為資訊摘要或資訊認證代碼)的過程。 單向散列函數的安全性在於其產生散列值的操作過程具有較強的
單向性。如果在輸入序列中嵌入密碼,那麼任何人在不知道密碼的情況下都不能產生正確的散列值,從而保證了其安全性。SHA將輸入資料流按照每塊512位(64個位元組)進行分塊,併產生20個位元組的被稱為資訊認證代碼或資訊摘要的輸出。
該演算法輸入報文的長度不限,產生的輸出是一個
160位的報文摘要。輸入是按512 位的分組進行處理的。SHA-1是無法復原的、防衝突,並具有良好的雪崩效應。
通過散列演算法可實現數位簽章實現,數位簽章的原理是將要傳送的明文通過一種函數運算(Hash)轉換成報文摘要(不同的明文對應不同的報文摘要),
報文摘要加密後與明文一起傳送給接受方,接受方將接受的明文產生新的報文摘要與發送方的發來報文摘要解密比較,比較結果一致表示明文未被改動,如果不一致表示明文已被篡改。總之:
SHA-1是一種單向的、位元固定為160為的資料加密演算法,在不同平台上,平台本身內嵌SHA-1的實現,直接調用相應函數即可。RSA密碼編譯演算法 RSA公開金鑰加密演算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美國麻省理工學院)開發的。RSA取名來自開發他們三者的名字。RSA是目前最有影響力的公開金鑰加密演算法,它能夠抵抗到目前為止已知的所有密碼攻擊,已被ISO推薦為公開金鑰資料加密標準。RSA演算法基於一個十分簡單的數論事實:
將兩個大素數相乘十分容易,但那時想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密金鑰。
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演算法等安全性都相當高.非對稱式加密的典型應用是數位簽章。
採用雙鑰密碼系統的加密方法,在一個過程中使用兩個密鑰,一個用於加密,另一個用於解密,這種加密方法稱為非對稱式加密,也稱為公開金鑰加密,因為其中一個密鑰是公開的(另一個則需要保密)。數位簽章 數位簽章就是將上面兩個技術的融合,達到一種非常安全的資訊傳遞機制。經過上面的介紹,那麼數位簽章就容易理解了。1從中容易發現“摘要” “私密金鑰”“公開金鑰”幾個關鍵技術,當然這個模式本身就是“非對稱式加密”*以上部分內容來自百度百科