6.3 鑒別交換
這個單向的鑒別機制涉及到聲稱者A和驗證者B之間的下列信息交換,它能夠使B核查A的身份。
圖2說明了這個鑒別機制。圖中帶括弧的數字對應于下面詳細描述的交換步驟。
TokenAB1=W
或者
其中W為證據,h是散列函數,Text為可選擇的文本字段。這個文本字段(可能為空)對于GB/T 15843本部分范圍之外的應用是可用的。參看GB/T 15843-1999附錄A中文本字段的使用信息。如果這個文本字段是非空的那么B必須設法恢復文本字段的值;這可能需要A隨同TokenAB1一起發送文本字段的全部或部分(可參看下面的注1)。
聲稱者發送給驗證者的第二個權標(TokenAB2)的格式為:
TokenAB2 =D
其中D為響應。
W=gr mod p
(2)A將TokenAB1發送給B。TokenAB1應等于W或h(W||Text)。
(3)收到TokenAB1之后,B應隨機選擇一個整數d(‘詢問’),這里d應滿足 0≤d<q。
(4)B發送詢問d給A。
(5)接收到詢問d后,A按照下列公式由(秘密的)值r和A的私有密鑰zA計算出響應D:
(6)A發送TokenAB2 =D給B。
(7)接收到響應D后,B執行下列計算程序:
a)B檢查是否0<D<q 。如果不是那么B拒絕A
b)B按照下列公式計算值W’:
W’=(yA)dgD mod p
c)如果在程序的第一次交換中發送的是W,那么B檢驗他計算的值W’是否等于在程序的第一次交換中發送的W值。相應地,如果在程序的第一次交換中發送的是h(W||Text),那么B首先計算h(W’||Text)然后核查h(W’||Text) 是否等于在程序的第一次交換中發送的h(W||Text)值。如果h(W ||Text)≠h(W’||Text)那么這個機制失敗并且A被拒絕。否則,B接受A。
注1– 其他的信息可以隨鑒別程序的任何回合的任何一次交換一起發送。
注2– A選擇隨機數r的過程要保證在鑒別信息的生存周期之內,這些選取的數值是獨立的,這一點很重要。如果,例如,同一個值r使用兩次,那么第三方就可能推導出A的私有認可信息,并因此成功地冒充A。
注3– 建議在這個機制中使用的密鑰對僅僅用于鑒別的目的,而不要用于其他的任何應用中(例如數字簽名的產生)。如果沒有遵循這個建議,那么應該特別注意以防止驗證者利用聲稱者作為“簽名諭示”;例如,這可以通過要求詢問具有特殊的選取形式而達到目的。
注4– 在程序的第一次交換中使用h(W||Text)來代替W能夠減少TokenAB1的比特數,從而提高效率。
推薦文章: