1.簡介
由於前面介紹的mac相關問題,出現了用於數字簽名的數字簽名標準(digital signature standard,dss)。dss利用sha-1演算法計算初始訊息的訊息摘要,並對訊息摘要進行數字簽名。dss利用數字簽名演算法(dsa)。注意dss是標準,而dsa是實際演算法。
和rsa一樣,dsa也基於非對稱金鑰加密,但是目的不同。rsa也可以對訊息進行數字簽名,而dsa則不能用於加密,只能對訊息進行數字簽名。
2.數字簽名的爭論
3.rsa與數字簽名
假設傳送方a要向接收方b傳送乙個訊息m,並對訊息m計算數字簽名(s)。
第1步:傳送方a用sha-1訊息摘要演算法對訊息m計算訊息摘要(md1),如下圖所示:
第2步:傳送方a用私鑰加密這個訊息摘要,這個過程的輸出是a的數字簽名(ds),如下圖所示:
第3步:傳送方a將訊息m和數字簽名ds一起傳送給接收方b。
第4步:接收方b收到訊息m和傳送方的數字簽名後,使用與a相同的訊息摘要演算法計算訊息摘要md2。
第5步:接收方b用傳送方的公鑰解密數字簽名。注意a用私鑰加密訊息摘要,得到數字簽名,因此只能用a的公鑰解密。這個過程得到原先的訊息摘要,和第1步求出a的一樣md1,如下圖所示:
第6步:這時比較兩個訊息摘要如下:md2,第4步求出;md1,第5步從a的數字簽名求出。
如果md1和md2一樣,則表明:b接收初始訊息m,是a發來的正確訊息,未經篡改;b也保證訊息來自a而不是別人偽裝a。如果md1和md2不一樣,則拒絕原始訊息m。
攻擊者完全可以改變訊息、重新計算訊息摘要,但是不能再次簽名,因為攻擊者沒有a的私鑰。由於只有a知道自己的私鑰,因此攻擊者無法用a的私鑰再次將訊息摘要加密(即簽名訊息)。這樣,數字簽名的原理是相當強大、安全和可靠的。
4.對rsa數字簽名的攻擊
攻擊者試圖對rsa數字簽名進行一些攻擊:
(1)選定部分訊息的攻擊:在這種攻擊中,攻擊者建立兩個不同的訊息m1和m2,這兩個訊息不需要很相似。攻擊者誘使真實使用者使用rsa數字簽名技術對訊息m1和m2進行數字簽名。誘使簽名成功後,攻擊者計算新訊息m = m1×
\times
×m2,然後聲稱訊息m已經經過了真實使用者的數字簽名。
(2)只有金鑰的攻擊。在這種攻擊中,假設攻擊者只有真實使用者的公鑰。攻擊者先想辦法獲得真實的訊息m及其簽名s。然後,攻擊者試圖建立另乙個訊息mm,這樣,同乙個簽名s看上去對mm也是有效的。然而,這是一種不容易發起的攻擊,因為其背後的數學知識要求非常高。
(3)已知部分訊息的攻擊。在這種攻擊中,攻擊者使用了rsa的乙個特性,即具有不同簽名的兩個不同訊息可以組合在一起,這樣它們的簽名也是可以組合的。例如,假設有兩個不同的訊息m1和m2,分別有簽名s1和s2。這樣,如果m= (m1×
\times
×m2) mod n成立,那麼在數學上s= (s1×
\times
×s2) mod n也成立。因此,攻擊者可以計算m = (m1xm2) mod n,然後計算s = (s1xs2) mod n來偽造簽名。
5.dsa與數字簽名
dsa演算法利用下列變數:
p=長度為l位的素數,l=64的倍數,在512~ 1024之間。在原標準中,p總是512位。
q=(p-1)的160位素數因子。
g=h (p
−1)/
qh^h(p−1)
/qmod p,h是小於(p-1)的數,使得h(p
−1)/
qh^h(p−1)
/qmod p大於1。
x=小於q的數。
y=g xg^
gxmod p。
h=訊息摘要演算法(通常是sha-1)。
前三個變數(p,q,g)是公開的,可以在非安全網路上任意傳送。x是私鑰,而相應的公鑰是y。
假設傳送方要將訊息m簽名,將簽名訊息傳送給接收方,則會執行下列步驟:
(1)傳送方產生小於q的隨機數k。
(2)傳送方計算如下:r=(
gkmo
dp)m
odqr=(g^k mod p)mod q
r=(gkm
odp)
modq
;s =(
k−1(
h(m)
+xr)
)mod
qs=(k^(h(m)+xr))mod q
s=(k−1
(h(m
)+xr
))mo
dq,r和s是傳送方的簽名,傳送方把這些值傳送給接收方,為了驗證簽名,接收方計算如下步驟。
(3)w=s
−1mo
dpw=s^mod p
w=s−1m
odp;u1=
(h(m
)∗w)
modq
u1=(h(m)*w)mod q
u1=(h(
m)∗w
)mod
q;u2=(
rw)m
odqu2=(rw)mod q
u2=(rw
)mod
q;v=((
gu1∗
yu2)
modp
)mod
qv=((g^*y^)mod p)mod q
v=((gu
1∗yu
2)mo
dp)m
odq。如果v=r,則簽名正確,否則將其拒絕。
數字簽名簽名概述
數字簽名的技術流程描述 1 傳送者使用摘要演算法對傳送資訊產生資訊摘要 2 傳送者使用自己的私鑰對資訊摘要進行簽名 3 傳送者將資訊本身和已簽名的摘要一起傳送出去 4 接收者使用相同的摘要演算法對資訊本身計算資訊摘要 5 接收者使用傳送者的公鑰對簽名的摘要就行驗籤,獲得資訊傳送者的資訊摘要 6 接收...
數字簽名技術
在當今高速發展的網路資訊化時代,人們越來越重視資訊的安全性問題,電子資訊內容的安全已經成為倍受關注的問題,數字簽名技術作為資訊保安領域的一項重要技術,應用日益廣泛。論述了數字簽名的作用及實現方法技術,並介紹了當前數字簽名的幾種新技術,展望了這一領域的發展前景。1數字簽名的作用 該技術在具體工作時,首...
數字簽名技術
在當今高速發展的網路資訊化時代,人們越來越重視資訊的安全性問題,電子資訊內容的安全已經成為倍受關注的問題,數字簽名技術作為資訊保安領域的一項重要技術,應用日益廣泛。論述了數字簽名的作用及實現方法技術,並介紹了當前數字簽名的幾種新技術,展望了這一領域的發展前景。1數字簽名的作用 該技術在具體工作時,首...