數字簽名技術概述

2021-10-08 23:12:17 字數 3044 閱讀 8899

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數字簽名的作用 該技術在具體工作時,首...