數字簽名
以上三種演算法都有防篡改的功能,但摘要演算法、和對稱加密演算法若要防篡改,則需要交換金鑰,這又是一件麻煩事兒。所以一般在單純的防篡改的需求上,都是使用非對稱加密演算法。但若是對整個明文進行加密的話,加密過程勢必消耗大量時間,所以就誕生了數字簽名。
數字簽名,本質上就是非對稱加密演算法,但出於解密執行效率的考慮,並是不對明文進行加密,而是對明文的摘要加密,生成「數字串」,並將「數字串」附在明文之後。
數字簽名實際上是非對稱加密演算法的乙個妥協方案,為了提高加解密的效率,捨棄了非對稱加密演算法對截獲威脅的優勢。
通訊模型
先來看非對稱加密演算法的第一種通訊模型,由客戶端生成一堆金鑰——公鑰
gkey
和私鑰skey
,並使用
skey
對明文data
進行加密,獲得密文c。將
c與gkey
傳送給伺服器端,伺服器端使用
gkey對c
進行解密。
這種通訊模型,只需要一次請求
/響應過程,但卻無法防範截獲威脅,由於最後的密文
c的解密用的是公鑰
gkey
,而gkey
在通過網路傳遞,所以攻擊者可以很方便的對資料進行截獲、解密,獲得明文
data
。但這種通訊模型,對於數字簽名的場景正合適,數字簽名的場景並不準備防範「截獲」威脅。
那麼下面來看下完整的數字簽名的通訊模型:伺服器端生成一堆金鑰,公鑰
gkey
和私鑰skey
,在將明文
data
進行摘要,獲得摘要串
z1,使用私鑰對
z1加密,獲得密文c,將
c,data
,gkey
發給伺服器端,伺服器端使用
gkey
解密後獲得
z1,重新根據
data
計算出摘要
z2,通過比較
z1是否等於
z2來判斷資料是否被篡改。
以上的模型主要由兩個步驟組成,摘要與非對稱加密演算法的應用。平常我們經常用到的簽名演算法,也是這兩種演算法的組合,比如:
sha1wthrsa
,使用sha1
來做摘要,
rsa做未對稱加密;
md5withrsa
,使用md5
做摘要演算法,
rsa做未對稱加密;
sha1withdsa
,dsa
是elgamal
演算法的一種改進。
<
iteye推薦
加密解密演算法與通訊安全(一)
平時在工作和生活中,我們會經常接觸加密 解密的技術。同時,我們作為開發者,也會經常遇到使用者對資料安全的需求,當我們碰到了這些需求後如何解決,如何何種方式保證資料安全,哪種方式最有效,這些問題經常困惑著我們。那麼我們又會碰到哪些安全的風險的。安全性威脅 一般的,我們在網路中傳輸的資料,都可以認為是存...
加密解密演算法與通訊安全(三)
對稱加密演算法 理論上說對稱加密演算法,才是我們真正說的加密演算法。所謂對稱加密演算法,通俗的講,就是使用金鑰加密,再使用金鑰解密的加密演算法的總稱。也就是平時我們說到加密演算法,腦子裡第乙個跳出來的加密方式一般都是對稱加密演算法。上面將的 base64 其實也是一種 對稱加密演算法 只是其金鑰公開...
加密解密演算法與通訊安全(六)
數字證書 上面說了這麼多演算法,又是摘要演算法,又是對稱加密演算法,又是非對稱加密演算法的。但是對於通訊中的四種威脅 截獲 中斷 篡改 偽造最多也就只能解決其中的兩個,對於中斷 和偽造威脅,只能乾瞪眼。難道,就沒有其他辦法了嗎。對於中斷,一般是網路拓撲或協議級別要解決的問題,已經超出了我們的範疇,暫...