專利名稱:加密密鑰發(fā)布系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及在計算機通信中從認(rèn)證服務(wù)器向各節(jié)點發(fā)布節(jié)點間的通信所使用的會話密鑰的加密密鑰發(fā)布系統(tǒng)。
背景技術(shù):
一般地,作為發(fā)布會話密鑰的協(xié)議,已知有在通信發(fā)起者與響應(yīng)者這2個節(jié)點之間進行認(rèn)證的兩方密鑰發(fā)布協(xié)議(2PKDP = 2 Party Key Distribution Protocol)、和在通信發(fā)起者與響應(yīng)者這兩者中添加作為認(rèn)證者的認(rèn)證服務(wù)器的三方密鑰發(fā)布協(xié)議(3PKDP =3Party Key Distribution Protocol)(例如,參照日本特許第 3078841 號公報)。在2PKDP中,開始通信的發(fā)起者節(jié)點向響應(yīng)者節(jié)點請求發(fā)布會話密鑰,響應(yīng)者節(jié)點向發(fā)起者節(jié)點發(fā)布會話密鑰。這里,發(fā)起者節(jié)點與響應(yīng)者節(jié)點預(yù)先保存有共用的密鑰。在日本特許第3078841號公報中所記載的2PKDP的技術(shù)中,發(fā)起者節(jié)點在請求發(fā)布會話密鑰時生成隨機數(shù),向響應(yīng)者節(jié)點發(fā)送發(fā)起者節(jié)點的識別信息(地址等)與隨機數(shù)。響應(yīng)者節(jié)點若從發(fā)起者節(jié)點接收到密鑰發(fā)布請求,則生成會話密鑰,并且將隨機數(shù)、會話密鑰和響應(yīng)者節(jié)點的識別信息(地址等)作為消息并使用密鑰計算出消息認(rèn)證碼的值(MAC值),并且生成對會話密鑰與MAC值進行了加密的密文。響應(yīng)者節(jié)點在對該密文附加MAC值后發(fā)送給發(fā)起者節(jié)點,在發(fā)起者節(jié)點中,通過使用密鑰對密文進行解密來取得會話密鑰。另外,通過附加MAC值,能夠確認(rèn)密文的正確性(未被篡改)。另一方面,在3PKDP中,作為通信發(fā)起者的節(jié)點與作為通信響應(yīng)者的節(jié)點中的一方對另一方的數(shù)據(jù)進行中繼并與認(rèn)證服務(wù)器進行通信,從而能夠在兩節(jié)點中共享認(rèn)證服務(wù)器所生成的會話密鑰。在3PKDP中,根據(jù)發(fā)起者節(jié)點與響應(yīng)者節(jié)點中的哪一方與認(rèn)證服務(wù)器進行通信來考慮推方案與拉方案。在推方案中,發(fā)起者節(jié)點與響應(yīng)者節(jié)點通信后與認(rèn)證服務(wù)器進行通信,從而從認(rèn)證服務(wù)器接收發(fā)送給發(fā)起者節(jié)點的密文與發(fā)送給響應(yīng)者節(jié)點的密文,從發(fā)送給發(fā)起者節(jié)點的密文中取得會話密鑰,并且將發(fā)送給響應(yīng)者節(jié)點的密文提交給響應(yīng)者節(jié)點并使響應(yīng)者節(jié)點取得會話密鑰。另一方面,在拉方案中,發(fā)起者節(jié)點與響應(yīng)者節(jié)點進行通信,此時響應(yīng)者節(jié)點與認(rèn)證服務(wù)器進行通信,從而從認(rèn)證服務(wù)器接收發(fā)送給發(fā)起者節(jié)點的密文與發(fā)送給響應(yīng)者節(jié)點的密文,從發(fā)送給響應(yīng)者節(jié)點的密文中取得會話密鑰,并且將發(fā)送給發(fā)起者節(jié)點的密文提交給發(fā)起者節(jié)點并使發(fā)起者節(jié)點取得會話密鑰。無論使用推方案與拉方案中的哪一個協(xié)議,為了保證包含會話密鑰的密文的正確性(未被篡改),會在密文中附加MAC值。另外,從認(rèn)證服務(wù)器發(fā)送給各節(jié)點的密文使用在認(rèn)證服務(wù)器與各節(jié)點中被預(yù)先登記的密鑰來進行加密以及解密。但是,3PKDP的認(rèn)證服務(wù)器與2PKDP中的響應(yīng)者的節(jié)點同樣地,都將各節(jié)點中生成的隨機數(shù)、會話密鑰以及各節(jié)點的識別信息作為消息并使用密鑰來計算MAC值,向各節(jié)點發(fā)送包含發(fā)送會話密鑰與MAC值并進行了加密的密文。圖13中表示3PKDP中的推方案的一個例子。在圖示例中,節(jié)點A是發(fā)起者,節(jié)點B是響應(yīng)者。這里,假設(shè)各節(jié)點A、B預(yù)先分別保存有與認(rèn)證服務(wù)器S共用的密鑰(共用密鑰)Kas、Kbs。首先,節(jié)點A生成隨機數(shù)Nas以及隨機數(shù)Nab,向節(jié)點B發(fā)送節(jié)點A的識別信息IDa以及節(jié)點B的識別信息IDb,并且還發(fā)送所生成的隨機數(shù)Nas、Nab(Pl)。另外,節(jié)點B生成隨機數(shù)Nbs,除了從節(jié)點A接收的識別信息IDa 與隨機數(shù)Nas之外,還向認(rèn)證服務(wù)器S發(fā)送節(jié)點B的識別信息IDb與隨機數(shù)Nbs (P2)。在認(rèn)證服務(wù)器S中,若從節(jié)點B接收到隨機數(shù)Nas、Nbs,則生成會話密鑰Ks。另夕卜,使用與節(jié)點A共用的密鑰Kas,利用隨機數(shù)Nas、會話密鑰Ks、節(jié)點B的識別信息IDb以及需要的附加信息a來計算消息認(rèn)證碼的值(MAC值)MAC (Kas) (Nas, a,Ks, IDb)。并且,將該MAC值用于隨機數(shù)Nsa,生成對隨機數(shù)Nsa與會話密鑰Ks進行了加密的密文ENC〔Kas) (Nsa, Ks)。另外,在認(rèn)證服務(wù)器S中,使用與節(jié)點B共用的密鑰Kbs,利用隨機數(shù)Nbs、會話密鑰Ks、節(jié)點A的識別信息IDa以及需要的附加信息@來計算MAC值MAC (Kbs) (Nbs, ^,Ks, IDa),并且將該MAC值用于隨機數(shù)Nsb,生成對隨機數(shù)Nsb與會話密鑰Ks進行了加密的密文 ENC (Kbs) (Nsb, Ks)。上述的附加信息a、^是發(fā)送給各節(jié)點A、B的信息,例如用作表示會話密鑰Ks的有效期間等的信息。認(rèn)證服務(wù)器S中包含會話密鑰Ks的2個密文,被分別附加MAC值與附加信息a、^并發(fā)送給節(jié)點B (P3)。在節(jié)點B中若從認(rèn)證服務(wù)器S接收到密文,則使用密鑰Kbs對被加密的密文進行解密,取得隨機數(shù)Nsb與會話密鑰Ks。另外,隨機數(shù)Nsb是MAC值MAC (Kbs)(Nbs, P,Ks, IDa),因此使用已知的隨機數(shù)Nbs以及識別信息IDa和取得的會話密鑰Ks以及附加信息P來計算MAC值,通過與接收到的MAC值進行對照來確認(rèn)密文的正確性。接下來,節(jié)點B向節(jié)點A轉(zhuǎn)送從認(rèn)證服務(wù)器S接收到的針對節(jié)點A的密文ENC〔Kas) (Nsa, Ks)、MAC 值 MAC (Kas) (Nas, a , Ks, IDb)以及附加信息 a。但是,為了保證通過節(jié)點B,節(jié)點B生成新的隨機數(shù)Nba,并且計算基于會話密鑰Ks的MAC值MAC (Ks) (Nab,Nba, IDb),附加該MAC值與隨機數(shù)Nba并發(fā)送給節(jié)點A (P4)。在節(jié)點A中,若從節(jié)點B接收到密文ENC (Kas) (Nsa,Ks),則使用加密密鑰Kas進行解密,取得隨機數(shù)Nsa與會話密鑰Ks。另外,與節(jié)點B同樣地計算MAC值MAC〔Kas〕(Nas,a,Ks, IDb)、MAC (Ks) (Nab, Nba, IDb),通過與接收到的MAC值進行對照來確認(rèn)密文的正確性。其后,節(jié)點A計算基于密鑰Kas的MAC值MAC (Kas) (Nas,Ks)、基于會話密鑰Ks的MAC值MAC (Ks) (Nab,Nba),并回送給節(jié)點B (P5)。在節(jié)點B中,通過計算MAC值MAC〔Ks) (Nab, Nba),來確認(rèn)是來自節(jié)點A的響應(yīng)(P5)。并且,在節(jié)點B中,計算基于密鑰Kbs的MAC值MAC (Kbs) (Nbs, Ks),將該MAC值與從節(jié)點A取得的MAC值MAC (Kas) (Nas,Ks) 一起發(fā)送給認(rèn)證服務(wù)器S (P6)。在認(rèn)證服務(wù)器S中,能夠通過這些MAC值來確認(rèn)是來自節(jié)點B的響應(yīng)。如上所述,在日本特許第3078841號公報所記載的密鑰發(fā)布的技術(shù)中,節(jié)點以至認(rèn)證服務(wù)器在生成會話密鑰后,計算包含隨機數(shù)的MAC值,將MAC值附加于對會話密鑰與MAC值進行了加密的密文并發(fā)布會話密鑰。S卩,在日本特許第3078841號公報所記載的密鑰發(fā)布的技術(shù)中,密文包括包含隨機數(shù)的MAC值和會話密鑰,在發(fā)送對于取得會話密鑰的節(jié)點不是已知的附加信息時,與密文和MAC值一起不加密地發(fā)送附加信息。因此,第三者能夠竊聽附加信息,在3PKDP的情況下,會產(chǎn)生由于在對與認(rèn)證服務(wù)器的通信進行中繼的一方的節(jié)點中取得另一方的節(jié)點的附加信息,因此無法加密地發(fā)送附加信息這樣的問題
發(fā)明內(nèi)容
本發(fā)明是鑒于上述事由而做出的,其目的在于提供一種在發(fā)布會話密鑰時,不僅能夠確認(rèn)正確性,而且還能對會話密鑰以外的附加信息進行加密來發(fā)送的加密密鑰發(fā)布系統(tǒng)。本發(fā)明的加密密鑰發(fā)布系統(tǒng)具備第I節(jié)點、第2節(jié)點、生成在上述第I節(jié)點與上述第2節(jié)點之間的加密通信所使用的會話密鑰的認(rèn)證服務(wù)器。上述第I節(jié)點與上述認(rèn)證服務(wù)器構(gòu)成為,保存在上述第I節(jié)點與上述認(rèn)證服務(wù)器之間的加密通信所使用的第I密鑰。上述第2節(jié)點與上述認(rèn)證服務(wù)器構(gòu)成為,保存在上述第2節(jié)點與上述認(rèn)證服務(wù)器之間的加密通信所使用的第2密鑰。上述第I節(jié)點構(gòu)成為,在向上述認(rèn)證服務(wù)器請求發(fā)行上述會話密鑰時,生成第I隨機數(shù)并發(fā)送給上述認(rèn)證服務(wù)器。上述第2節(jié)點構(gòu)成為,在向上述認(rèn)證服務(wù)器請求發(fā)行上述會話密鑰時,生成第2生成隨機數(shù)并發(fā)送給上述認(rèn)證服務(wù)器。上述認(rèn)證服務(wù)器構(gòu)成為,若取得上述第I隨機數(shù)與上述第2隨機數(shù)則新生成上述會話密鑰,使用第I消息與上述第I密鑰來計算第I消息認(rèn)證碼的值,其中,該第I消息包含上述取得的第I隨機數(shù)、上述新生成的會話密鑰以及規(guī)定的第I附加信息,使用上述第I密鑰對上述取得的第I隨機數(shù)、上述新生成的會話密鑰以及上述第I附加信息進行加密來創(chuàng)建第I密文,將上述第I密文與上述第I消息認(rèn)證碼的值發(fā)送給上述第I節(jié)點,使用第2消息與上述第2密鑰來計算第2消息認(rèn)證碼的值,其中,該第2消息包含上述取得的第2隨機數(shù)、上述新生成的會話密鑰以及規(guī)定的第2附加信息,使用上述第2密鑰對上述取得的第2隨機數(shù)、上述新生成的會話密鑰以及上述第2附加信息進行加密來創(chuàng)建第2密文,將上述第2密文與上述第2消息認(rèn)證碼的值發(fā)送給上述第2節(jié)點。上述第I節(jié)點構(gòu)成為,若取得上述第I密文以及上述第I消息認(rèn)證碼的值,則使用上述第I密鑰對上述第I密文進行解密并取得上述會話密鑰與上述第I附加信息,使用上述第I節(jié)點存儲的上述第I隨機數(shù)、對上述第I密文進行解密而得到的上述會話密鑰以及上述第I附加信息、以及上述第I密鑰來計算上述第I消息認(rèn)證碼的值,通過判斷上述第I節(jié)點計算出的上述第I消息認(rèn)證碼的值與從上述認(rèn)證服務(wù)器取得的上述第I消息認(rèn)證碼的值是否一致,來進行從上述認(rèn)證服務(wù)器取得的上述會話密鑰的認(rèn)證。上述第2節(jié)點構(gòu)成為,若取得上述第2密文以及上述第2消息認(rèn)證碼的值,則使用上述第2密鑰對上述第2密文進行解密并取得上述會話密鑰與上述第2附加信息,使用上述第2節(jié)點存儲上述第2隨機數(shù)、對上述第2密文進行解密而得到的上述會話密鑰以及上述第2附加信息、以及上述第2密鑰來計算上述第2消息認(rèn)證碼的值,通過判斷上述第2節(jié)點計算出的上述第2消息認(rèn)證碼的值與從上述認(rèn)證服務(wù)器取得的上述第2消息認(rèn)證碼的值是否一致,進行從上述認(rèn)證服務(wù)器取得的上述會話密鑰的認(rèn)證。在優(yōu)選方式中,上述第I附加信息以及上述第2附加信息是訪問控制的允許信息。在更優(yōu)選方式中,上述認(rèn)證服務(wù)器構(gòu)成為,若從上述第I節(jié)點或者上述第2節(jié)點取得訪問控制的請求信息,則對取得的上述訪問控制的請求信息與預(yù)先登記的訪問控制的登記信息進行比較,在上述取得的訪問控制的請求信息未被包含于上述訪問控制的登記信息的情況下,將上述訪問控制的登記信息用作上述訪問控制的允許信息。另外,在更優(yōu)選方式中,上述加密密鑰發(fā)布系統(tǒng)具有對上述第I節(jié)點與上述第2節(jié)點之間的通信進行中繼的代理節(jié)點。上述認(rèn)證 服務(wù)器構(gòu)成為,向上述代理節(jié)點發(fā)送上述訪問控制的允許信息。上述代理節(jié)點構(gòu)成為,基于從上述認(rèn)證服務(wù)器取得的上述訪問控制的允許信息來對上述第I節(jié)點與上述第2節(jié)點之間的通信進行中繼。此時,在進一步優(yōu)選方式中,上述第I節(jié)點以及上述第2節(jié)點被賦予組標(biāo)識符。上述第I附加信息以及上述第2附加信息包含組標(biāo)識符。上述代理節(jié)點構(gòu)成為,使用上述組標(biāo)識符來進行訪問控制。另外,在更優(yōu)選方式中,上述認(rèn)證服務(wù)器構(gòu)成為,基于能夠變更的訪問控制的登記信息來生成上述訪問控制的允許信息。另外,在更優(yōu)選方式中,上述認(rèn)證服務(wù)器構(gòu)成為,若從上述第I節(jié)點或者上述第2節(jié)點接收到訪問控制的請求信息,則通過取得的訪問控制的請求信息與預(yù)先登記的訪問控制的登記信息的邏輯運算,來生成上述訪問控制的允許信息。
圖I是實施方式I的加密密鑰發(fā)布系統(tǒng)的動作說明圖。圖2是實施方式I的加密密鑰發(fā)布系統(tǒng)的構(gòu)成圖。圖3是實施方式I的加密密鑰發(fā)布系統(tǒng)的其他例的動作說明圖。圖4是實施方式2的加密密鑰發(fā)布系統(tǒng)的動作說明圖。圖5是實施方式2的加密密鑰發(fā)布系統(tǒng)的構(gòu)成圖。圖6是實施方式3的加密密鑰發(fā)布系統(tǒng)的動作說明圖。圖7是實施方式3的加密密鑰發(fā)布系統(tǒng)的構(gòu)成圖。圖8是實施方式4的加密密鑰發(fā)布系統(tǒng)的動作說明圖。圖9是實施方式4的加密密鑰發(fā)布系統(tǒng)的主要部分的動作說明圖。圖10是表示本發(fā)明的兩方密鑰發(fā)布協(xié)議的動作說明圖。圖11是表示本發(fā)明的三方密鑰發(fā)布協(xié)議的動作說明圖。圖12是表示本發(fā)明的三方密鑰發(fā)布協(xié)議的其他例的動作說明圖。圖13是表示現(xiàn)有的三方密鑰發(fā)布協(xié)議的動作說明圖。
具體實施例方式如背景技術(shù)中說明的那樣,在會話密鑰的認(rèn)證發(fā)布的技術(shù)中,已知有在兩方之間進行的 2PKDP (2Party Key Distribution Protocol)、三方之間進行的 3PKDP (3Party KeyDistribution Protocol)。在以下待說明的實施方式中,雖例示了在3PKDP中應(yīng)用本發(fā)明技術(shù)思想的情況,但也能夠在下述的2PKDP中應(yīng)用本發(fā)明的技術(shù)思想。另外,以下說明的認(rèn)證服務(wù)器以及節(jié)點,都使用具備通信功能的計算機而構(gòu)成,并能夠使用廣域信息通信網(wǎng)(互聯(lián)網(wǎng)等)、本地信息通信網(wǎng)來進行通信。(1)2PKDP首先,關(guān)于2PKDP的情況,為了表示基本的步驟,如圖10所示,例示在2個節(jié)點A、B之間共享會話密鑰Ks的情況。這里,假設(shè)節(jié)點A請求節(jié)點B發(fā)布會話密鑰Ks,節(jié)點B向節(jié)點A發(fā)布會話密鑰Ks。另外,假設(shè)發(fā)布會話密鑰Ks的節(jié)點B、請求會話密鑰Ks的發(fā)布的節(jié)點A預(yù)先保存有共用的密鑰(即,共用密鑰)Kab。換言之,節(jié)點B是節(jié)點A的通信對象,并且也作為認(rèn)證服務(wù)器發(fā)揮功能。 但是,也可以代替節(jié)點A、B具有共用的密鑰Kab,而發(fā)布會話密鑰Ks的節(jié)點B預(yù)先與節(jié)點A保存的密鑰Kab進行關(guān)聯(lián)地保存請求發(fā)布會話密鑰Ks的節(jié)點A的識別信息(地址等)IDa。節(jié)點A在請求發(fā)布會話密鑰Ks時,生成隨機數(shù)Nab并向節(jié)點B發(fā)送節(jié)點A的識別信息IDa與隨機數(shù)Nab (Pl)。另一方面,節(jié)點B當(dāng)從節(jié)點A接收到密鑰發(fā)布的請求時,生成會話密鑰Kba,并且生成使用密鑰Kab對隨機數(shù)Nab與會話密鑰Ks進行了加密的密文ENC (Kab) (Nab,Ks)。另夕卜,在節(jié)點B中,計算使用了節(jié)點A的密鑰Kab的消息認(rèn)證碼的值(MAC值)MAC〔Kab〕(Nab,Ks, IDb),在密文中附MAC值后發(fā)送給節(jié)點A (P2)。在節(jié)點A中,當(dāng)接收到從節(jié)點B發(fā)送來的信息時,使用密鑰Kab對隨機數(shù)Nab、會話密鑰Ks以及節(jié)點B的識別信息(地址等)IDb進行解密。另外,計算基于密鑰Kab的MAC值 MAC (Kab) (Nab,Ks),將 MAC 值回送給節(jié)點 B (P3)。在節(jié)點B中,當(dāng)接收到來自節(jié)點A的MAC值MAC (Kab) (Nab,Ks)時,使用已知的密鑰Kab、隨機數(shù)Nab以及會話密鑰Ks來計算MAC值,通過對計算出的MAC值與從節(jié)點A接收的MAC值進行比較,來確認(rèn)會話密鑰Ks被安全地傳送給節(jié)點A。作為包含會話密鑰Ks的密文ENC (Kab) (Nab,Ks),例如能夠使用以密鑰Kab對將隨機數(shù)Nab代入單向函數(shù)后的結(jié)果進行了加密的消息、與會話密鑰Ks的異或。此外,也可以在節(jié)點B中的會話密鑰Ks加密時,包含節(jié)點B的識別信息IDb。(2) 3PKDP接下來,關(guān)于3PKDP的情況,為了表示基本的步驟,如圖11所示,以使用2個節(jié)點A、B和認(rèn)證服務(wù)器S,認(rèn)證服務(wù)器S發(fā)布在2個節(jié)點A、B進行相互通信時使用的會話密鑰Ks的情況為例進行說明。假設(shè)各節(jié)點A、B分別預(yù)先保存有與認(rèn)證服務(wù)器S共用的密鑰(共用密鑰)Kas> Kbs。但是,與2PKDP的情況同樣地,也可以代替認(rèn)證服務(wù)器S與各節(jié)點A、B具有共用的密鑰Kas、Kab,而認(rèn)證服務(wù)器S預(yù)先保存有將各節(jié)點A、B的識別信息IDa、IDb與密鑰Kas、Kbs建立關(guān)聯(lián)的信息。在圖11的動作例中,采用節(jié)點A成為通信發(fā)起者,作為響應(yīng)者的節(jié)點B對在節(jié)點A與認(rèn)證服務(wù)器S之間的通信進行中繼的動作。因此,認(rèn)證服務(wù)器S發(fā)行的會話密鑰Ks經(jīng)由節(jié)點B被提交給節(jié)點A。在該動作例中,首先節(jié)點A生成針對認(rèn)證服務(wù)器S的隨機數(shù)Nas,向節(jié)點B發(fā)送節(jié)點A的識別信息IDa與隨機數(shù)Nas (Pl)。
另一方面,節(jié)點B當(dāng)從節(jié)點A接收到隨機數(shù)Nas時,生成隨機數(shù)Nbs,除了從節(jié)點A接收到的識別信息IDa和隨機數(shù)Nas之外,還向認(rèn)證服務(wù)器S發(fā)送節(jié)點B的識別信息IDb和隨機數(shù)Nbs (P2)。認(rèn)證服務(wù)器S當(dāng)從節(jié)點B接收到識別信息IDa、IDb與隨機數(shù)Nas、Nbs時,生成會話密鑰Ks,使用與節(jié)點A對應(yīng)的密鑰Kas,生成對隨機數(shù)Nas和會話密鑰Ks進行了加密的密文ENC (Kas) (Nas, Ks),并且使用與節(jié)點B對應(yīng)的密鑰Kbs來生成對隨機數(shù)Nbs和會話密鑰Ks進行了加密的密文ENC (Kbs) (Nbs, Ks)
另外,在認(rèn)證服務(wù)器S中,計算使用了與節(jié)點A對應(yīng)的密鑰Kas的MAC值MAC〔Kas) (Nas, Ks, IDb),并且計算使用了與節(jié)點B對應(yīng)的密鑰Kbs的MAC值MAC (Kbs) (Nbs,Ks, IDa)。在認(rèn)證服務(wù)器S中對會話密鑰Ks進行了加密的2個密文被分別附加MAC值,并被發(fā)送給節(jié)點B (P3)。在節(jié)點B中,當(dāng)從認(rèn)證服務(wù)器S接收到密文ENC (Kbs) (Nbs,Ks)時,使用密鑰Kbs對隨機數(shù)Nbs與會話密鑰Ks進行解密,取得會話密鑰Ks,并且使用MAC值來確認(rèn)會話密鑰Ks的正確性。并且,在節(jié)點B中,向節(jié)點A轉(zhuǎn)送從認(rèn)證服務(wù)器S針對節(jié)點A的密文ENC (Kas)(Nas, Ks)以及MAC值MAC (Kas) (Nas, Ks, IDb)。此時,為了保證通過節(jié)點B,生成新的隨機數(shù)Nba,并且計算基于會話密鑰Ks的MAC值MAC (Ks) (Nas,Nba, IDb),附加該MAC值與隨機數(shù)Nba并發(fā)送給節(jié)點A (P4)。在節(jié)點A中,當(dāng)從節(jié)點B接收到密文ENC (Kas) (Nas, Ks)時,使用密鑰Kas對隨機數(shù)Nas與會話密鑰Ks進行解密,取得會話密鑰Ks,并且使用MAC值來確認(rèn)會話密鑰Ks是由認(rèn)證服務(wù)器S發(fā)行、且經(jīng)由節(jié)點B而傳送來的值。取得會話密鑰Ks的節(jié)點A計算基于會話密鑰Ks的MAC值MAC (Ks) (Nas,Nba),并回送給節(jié)點B (P5)。在節(jié)點B中,通過使用該MAC值MAC (Ks) (Nas,Nba)來確認(rèn)節(jié)點A取得會話密鑰Ks。在上述的動作例中,作為對會話密鑰Ks進行了加密的密文ENC (Kas) (Nas, Ks)、ENC (Kbs) (Nbs, Ks)例如,能夠使用對將各隨機數(shù)Nas、Nbs分別代入單向函數(shù)后的結(jié)果分別以密鑰Kas、Kbs進行了加密的消息、和會話密鑰Ks的邏輯異或。在上述的各步驟Pl P5中,能夠附加各種數(shù)據(jù)作為選項。在圖12中表示附加了選項的動作例。在圖示例中,首先在從節(jié)點A向節(jié)點B發(fā)送隨機數(shù)Nas的步驟Pl中,附加節(jié)點B的識別信息IDb、和從節(jié)點A發(fā)送給節(jié)點B的隨機數(shù)Nab。另外,在從認(rèn)證服務(wù)器S向節(jié)點B發(fā)送包含會話密鑰Ks的密文的步驟P3、從節(jié)點B向節(jié)點A發(fā)送包含會話密鑰Ks的密文的步驟P4中,在各自密文中包含成為通信對象的節(jié)點A、B的識別信息IDa、IDb。即,在節(jié)點A取得的密文中包含節(jié)點B的識別信息IDb,在節(jié)點B取得的密文中包含節(jié)點A的識別信息IDa。并且,在從節(jié)點A向節(jié)點B發(fā)送確認(rèn)響應(yīng)的步驟P5中,不僅發(fā)送發(fā)送給節(jié)點B的MAC值MAC (Ks) (Nab, Nba),還發(fā)送基于發(fā)送給認(rèn)證服務(wù)器S的密鑰Kas的MAC值MAC〔Kas) (Nas, Ks)。節(jié)點B若接收到該確認(rèn)響應(yīng),則計算使用了密鑰Kbs的MAC值MAC (Kbs) (Nbs,Ks),將基于從節(jié)點A接收到的密鑰Kas的MAC值MAC (Kas) (Nas,Ks)和MAC值MAC (Kbs)(Nbs, Ks) 一起發(fā)送給認(rèn)證服務(wù)器S (P6)。在認(rèn)證服務(wù)器S中,通過對從節(jié)點B接收并對照這些MAC值來確認(rèn)節(jié)點A、B已取得會話密鑰Ks。以下,基于在三方之間進行的密鑰認(rèn)證的圖11或者圖12所示的動作,來說明各種動作例。但是,以下待說明的動作例也能夠基于圖11或者圖12的動作和圖10的動作的關(guān)系而應(yīng)用于2PDKP。即,2TOKP的情況下,節(jié)點B也作為認(rèn)證服務(wù)器S而發(fā)揮功能。換言之,能夠考慮在節(jié)點B的內(nèi)部進行認(rèn)證服務(wù)器S的處理。另外,對于基于圖12所示的步驟說明的動作,也能夠基于圖12的動作與圖11的動作之間的關(guān)系而除去圖12的動作中表示的選項的動作。(實施方式I) 在本例中,首先如圖I所示,對除了圖11所示的基本的動作之外,伴隨向各節(jié)點A、B發(fā)布會話密鑰Ks,還一起發(fā)送針對各節(jié)點A、B的附加信息的例子進行說明。作為附加信息a、P,可以具有密鑰的有效期限、訪問次數(shù)、費用等信息,與發(fā)布會話密鑰Ks同樣地也對附加信息a、^進行加密來發(fā)送。具體而言,附加信息a、P作為會話密鑰Ks的有效期限、使用會話密鑰Ks的通信次數(shù)(訪問次數(shù))、通過使用會話密鑰Ks的通信而享用服務(wù)時的費用信息中的至少一個的信息而使用。會話密鑰Ks的有效期限在附加信息a、P中使用發(fā)布會話密鑰Ks的時間點的時間戳和有效期間,在從時間戳所記述的時間開始經(jīng)過有效期間后的時間點將該會話密鑰Ks設(shè)為無效。另外,訪問次數(shù)與會話密鑰Ks的有效期限相同地是規(guī)定會話密鑰Ks的壽命的信息,在附加信息中使用利用了會話密鑰Ks的通信的有效次數(shù),若使用會話密鑰Ks進行的通信的次數(shù)超過有效次數(shù)則將該會話密鑰Ks設(shè)為無效。并且,作為費用信息使用費用金額,此時在節(jié)點A、B中若接收到作為附加信息a、^的費用金額,則與節(jié)點A、B所保持的預(yù)算相比較來判斷是否進行使用會話密鑰Ks的通信。另外,通過與會話密鑰Ks的有效期間一起使用費用金額作為附加信息a、P,能夠在有效期間的期滿時通知要征收的費用金額。關(guān)于附加信息a、P,在上述的用途以外也能夠適當(dāng)?shù)厥褂?,只要根?jù)使用節(jié)點A、B而構(gòu)建的系統(tǒng)的動作來規(guī)定附加信息a、^的使用即可。如圖2所示,本實施方式的加密密鑰發(fā)布系統(tǒng)具備節(jié)點(第I節(jié)點)A、節(jié)點(第2節(jié)點)B、生成在節(jié)點A與節(jié)點B之間的加密通信所使用的會話密鑰認(rèn)證服務(wù)器S。節(jié)點A具備通信單元(第I通信單元)10、存儲單元(第I存儲單元)11、隨機數(shù)生成單元(第I隨機數(shù)生成單元)12、會話密鑰請求單元(第I會話密鑰請求單元)13。通信單元10構(gòu)成為通過信息通信網(wǎng)與認(rèn)證服務(wù)器S以及節(jié)點B進行通信。存儲單元11構(gòu)成為存儲密鑰(第I密鑰)Kas。另外,存儲單元11構(gòu)成為存儲節(jié)點A的識別信息IDa。隨機數(shù)生成單元12構(gòu)成為生成隨機數(shù)(第I隨機數(shù))Nas。會話密鑰請求單元13構(gòu)成為在向認(rèn)證服務(wù)器S請求發(fā)行會話密鑰Ks時,使隨機數(shù)生成單元12生成第I隨機數(shù)Nas。會話密鑰請求單元13構(gòu)成為,當(dāng)隨機數(shù)生成單元12生成第I隨機數(shù)Nas時,使隨機數(shù)生成單元12生成的第I隨機數(shù)Nas存儲于單元11。在直到節(jié)點A從認(rèn)證服務(wù)器S接收到會話密鑰Ks的步驟結(jié)束為止,第I隨機數(shù)Nas被存儲于存儲單元11。另外,會話密鑰請求單元13構(gòu)成為,在隨機數(shù)生成單元12生成第I隨機數(shù)Nas時,對通信單元10進行控制來將隨機數(shù)生成單元12生成的第I隨機數(shù)Nas發(fā)送給認(rèn)證服務(wù)器S0在本實施方式的情況下,會話密鑰請求單元13構(gòu)成為將隨機數(shù)生成單元12生成的第I隨機數(shù)Nas以及存儲單元11所存儲的識別信息IDa經(jīng)由節(jié)點B發(fā)送給認(rèn)證服務(wù)器S。即,會話密鑰請求單元13構(gòu)成為將隨機數(shù)生成單元12生成的第I隨機數(shù)Nas以及存儲單元11所存儲的識別信息IDa發(fā)送給節(jié)點B。
節(jié)點B具備通信單元(第2通信單元)20、存儲單元(第2存儲單元)21、隨機數(shù)生成單元(第2隨機數(shù)生成單元)22、以及會話密鑰請求單元(第2會話密鑰請求單元)23。通信單元20構(gòu)成為通過信息通信網(wǎng)與認(rèn)證服務(wù)器S以及節(jié)點A進行通信。存儲單元21構(gòu)成為存儲密鑰(第2密鑰)Kbs。另外,存儲單元21構(gòu)成為存儲節(jié)點B的識別信息IDb。隨機數(shù)生成單元22構(gòu)成為生成隨機數(shù)(第2隨機數(shù))Nbs。會話密鑰請求單元23構(gòu)成為,在向認(rèn)證服務(wù)器S請求發(fā)行會話密鑰Ks時,使隨機數(shù)生成單元22生成第2隨機數(shù)Nbs。會話密鑰請求單元23構(gòu)成為,在隨機數(shù)生成單元22生成第2隨機數(shù)Nbs時,使隨機數(shù)生成單元22生成的第2隨機數(shù)Nbs存儲于存儲單元21。第2隨機數(shù)Nbs在直到節(jié)點B從認(rèn)證服務(wù)器S接收到會話密鑰Ks的步驟結(jié)束為止被存儲于存儲單元21。另外,會話密鑰請求單元23構(gòu)成為,在隨機數(shù)生成單元22生成第2隨機數(shù)Nbs時,對通信單元20進行控制來將隨機數(shù)生成單元22生成的第2隨機數(shù)Nbs發(fā)送給認(rèn)證服務(wù)器S0在本實施方式的情況下,會話密鑰請求單元23構(gòu)成為,若從節(jié)點A接收到第I隨機數(shù)Nas和識別信息Ida,則將隨機數(shù)生成單元22生成的第2隨機數(shù)Nbs以及存儲單元21所存儲的識別信息IDb與從節(jié)點A接收到的第I隨機數(shù)Nas以及識別信息IDa —起發(fā)送給認(rèn)證服務(wù)器S。認(rèn)證服務(wù)器S具備通信單元(第3通信單元)30、密鑰存儲單元31、會話密鑰生成單元32、運算單元(第3運算單元)33、密文生成單元34、以及密文發(fā)送單元35。通信單元30構(gòu)成為通過信息通信網(wǎng)與各節(jié)點A、B進行通信。密鑰存儲單元31構(gòu)成為存儲節(jié)點A的密鑰(第I密鑰)Kas和節(jié)點B的密鑰(第2密鑰)Kbs。更詳細(xì)來說,密鑰存儲單元31存儲按照每個節(jié)點登記了識別信息與密鑰的對應(yīng)關(guān)系的密鑰數(shù)據(jù)庫。例如,對于節(jié)點A將識別信息IDa與密鑰Kas建立關(guān)聯(lián),對于節(jié)點B將識別信息IDb與密鑰Kbs建立關(guān)聯(lián)。這樣,節(jié)點A與認(rèn)證服務(wù)器S保存在節(jié)點A與認(rèn)證服務(wù)器S之間的加密通信所使用第I密鑰Kas。另外,節(jié)點B與認(rèn)證服務(wù)器S保存在節(jié)點B與認(rèn)證服務(wù)器S之間的加密通信所使用第2密鑰Kbs。會話密鑰生成單元32構(gòu)成為,在通信單元30接收到第I隨機數(shù)Nas與第2隨機數(shù)Nbs時,生成新的會話密鑰Ks。運算單元33構(gòu)成為,使用包含通信單元30取得的第I隨機數(shù)Nas、會話密鑰生成單元32新生成的會話密鑰Ks和規(guī)定的第I附加信息a的消息(第I消息)與密鑰存儲單元31所存儲的第I密鑰Kas來計算消息認(rèn)證碼的值(第I消息認(rèn)證碼的值)MAC[Kas](Nas, a,Ks, IDb)。在本實施方式中,第I消息包含第I隨機數(shù)Nas、會話密鑰Ks、第I附加信息a、以及與節(jié)點A進行通信節(jié)點B的識別信息IDb。另外,運算單元33構(gòu)成為,使用包含通信單元10取得的第2隨機數(shù)Nbs、會話密鑰生成單元32新生成的會話密鑰Ks和規(guī)定的第2附加信息P的消息(第2消息)與密鑰存儲單元31所存儲的第2密鑰Kbs來計算消息認(rèn)證碼的值(第2消息認(rèn)證碼的值)MAC[Kbs](Nbs, ^ , Ks, IDa)。在本實施方式中,第I消息包含第2隨機數(shù)Nbs、會話密鑰Ks、第2附加信息P以及與節(jié)點B進行通信節(jié)點A的識別信 息IDb。密文生成單元34構(gòu)成為,使用密鑰存儲單元31所存儲的第I密鑰Kas對通信單元30取得的第I隨機數(shù)Nas、會話密鑰生成單元32新生成的會話密鑰Ks以及第I附加信息a進行加密來創(chuàng)建密文(第I密文)ENC[Kas] (Nas, a,Ks)。另外,密文生成單元34構(gòu)成為,使用密鑰存儲單元31所存儲的第2密鑰Kbs對通信單元30取得的第2隨機數(shù)Nbs、會話密鑰生成單元32新生成的會話密鑰Ks、以及第2附加信息P進行加密來創(chuàng)建密文(第2 密文)ENC[Kbs] (Nbs, P,Ks)。密文發(fā)送單元35構(gòu)成為,對通信單元30進行控制來將密文生成單元34生成的第I密文ENC [Kas] (Nas, a ,Ks)與運算單元33計算出的第I消息認(rèn)證碼的值MAC [Kas] (Nas,a, Ks, IDb)發(fā)送給節(jié)點A。另外,密文發(fā)送單元35構(gòu)成為,對通信單元30進行控制來將密文生成單元34生成的第2密文ENC[Kbs] (Nbs, ^ ,Ks)與運算單元33計算出的第2消息認(rèn)證碼的值MAC[Kbs] (Nbs, P,Ks, IDa)發(fā)送給節(jié)點B。節(jié)點A還具備解密單元(第I解密單元)14、運算單元(第I運算單元)15、以及認(rèn)證單元(第I認(rèn)證單元)16。解密單元14構(gòu)成為,在通信單元10接收到第I密文ENC[Kas] (Nas, a,Ks)以及第I消息認(rèn)證碼的值MAC [Kas] (Nas, a,Ks, IDb)時,使用存儲單元11所存儲的第I密鑰Kas對第I密文ENC[Kas] (Nas, a,Ks)進行解密來取得第I隨機數(shù)Nas、會話密鑰Ks以及第I附加信息a。運算單元15構(gòu)成為,使用存儲單元11所存儲的第I隨機數(shù)Nas、解密單元14對第I密文ENC[Kas] (Nas, a,Ks)進行解密而得到的會話密鑰Ks以及第I附加信息a、以及存儲單元11所存儲的第I密鑰Kas來計算第I消息認(rèn)證碼的值MAC [Kas] (Nas, a,Ks,IDb)。認(rèn)證單元16構(gòu)成為,通過判斷運算單元15計算出的第I消息認(rèn)證碼的值MAC[Kas] (Nas, a,Ks, IDb)與從認(rèn)證服務(wù)器S接收到的第I消息認(rèn)證碼的值MAC [Kas](Nas, a,Ks, IDb)是否一致,來進行從認(rèn)證服務(wù)器S接收到的會話密鑰Ks的認(rèn)證。認(rèn)證單元16構(gòu)成為,若運算單元15計算出的第I消息認(rèn)證碼的值MAC [Kas] (Nas,a,Ks, IDb)與從認(rèn)證服務(wù)器S接收到的第I消息認(rèn)證碼的值MAC [Kas] (Nas, a,Ks, IDb)不一致,則判斷為會話密鑰Ks存在異常。此時,認(rèn)證單元16例如放棄會話密鑰Ks。認(rèn)證單元16構(gòu)成為,在運算單元15計算出的第I消息認(rèn)證碼的值MAC [Kas] (Nas,a,Ks, IDb)與從認(rèn)證服務(wù)器S接收到的第I消息認(rèn)證碼的值MAC [Kas] (Nas, a,Ks, IDb)一致時,判斷為會話密鑰Ks正常。此時,認(rèn)證單元16構(gòu)成為例如使從認(rèn)證服務(wù)器S接收到的會話密鑰Ks存儲于存儲單元11。此外,認(rèn)證單元16構(gòu)成為,將解密單元14得到的第I隨機數(shù)Nas與存儲單元11所存儲的第I隨機數(shù)Nas進行比較。認(rèn)證單元16構(gòu)成為,若解密單元14得到的第I隨機數(shù)Nas與存儲單元11所存儲的第I隨機數(shù)Nas不一致,則不進行會話密鑰Ks的認(rèn)證。這樣,構(gòu)成為當(dāng)節(jié)點B從認(rèn)證服務(wù)器S取得會話密鑰Ks時,通信單元10與節(jié)點B進行通信時,使用通過認(rèn)證服務(wù)器S取得的會話密鑰Ks,來對發(fā)送給節(jié)點B的數(shù)據(jù)進行加密以及對從節(jié)點B取得的消息(數(shù)據(jù))進行解密。節(jié)點B還具備解密單元(第2解密單元)24、 運算單元(第2運算單元)25、以及認(rèn)證單元(第2認(rèn)證單元)26。解密單元24構(gòu)成為,當(dāng)通信單元20接收到第2密文ENC[Kbs] (Nbs, ^,Ks)以及第2消息認(rèn)證碼的值MAC [Kbs] (Nbs, P,Ks, IDa)時,使用存儲單元21所存儲的第2密鑰Kbs對第2密文ENC[Kbs] (Nbs, ^,Ks)進行解密來取得第2隨機數(shù)Nbs、會話密鑰Ks以及第2附加信息3。運算單元25構(gòu)成為,使用存儲單元21所存儲的第2隨機數(shù)Nbs、解密單元24對第2密文ENC[Kbs] (Nbs, ^,Ks)進行解密而得到的會話密鑰Ks以及第2附加信息P、以及存儲單元21所存儲的第2密鑰Kbs來計算第2消息認(rèn)證碼的值MAC [Kbs] (Nbs, ^,Ks,IDa)。認(rèn)證單元26構(gòu)成為,通過判斷運算單元25計算出的第2消息認(rèn)證碼的值MAC[Kbs] (Nbs, P,Ks, IDa)與從認(rèn)證服務(wù)器S接收到的第2消息認(rèn)證碼的值MAC [Kbs](Nbs, ^,Ks, IDa)是否一致,來進行從認(rèn)證服務(wù)器S接收到的會話密鑰Ks的認(rèn)證。認(rèn)證單元26構(gòu)成為,在運算單元25計算出的第2消息認(rèn)證碼的值MAC [Kbs] (Nbs,3,Ks,IDa)與從認(rèn)證服務(wù)器S接收到的第2消息認(rèn)證碼的值MAC [Kbs] (Nbs, ^ , Ks, IDa)不一致時,判斷為會話密鑰Ks存在異常。此時,認(rèn)證單元26例如放棄會話密鑰Ks。認(rèn)證單元26構(gòu)成為,在運算單元25計算出的第2消息認(rèn)證碼的值MAC [Kbs] (Nbs,^ , Ks, IDa)與從認(rèn)證服務(wù)器S接收到的第2消息認(rèn)證碼的值MAC [Kbs] (Nbs, ^ , Ks, IDa)一致時,判斷為會話密鑰Ks正常。此時,認(rèn)證單元26例如使從認(rèn)證服務(wù)器S接收到的會話密鑰Ks存儲于存儲單元21。此外,認(rèn)證單元26構(gòu)成為,對解密單元24得到的第2隨機數(shù)Nbs與存儲單元21所存儲的第2隨機數(shù)Nbs進行比較。認(rèn)證單元26構(gòu)成為,若解密單元24得到的第2隨機數(shù)Nbs與存儲單元21所存儲的第2隨機數(shù)Nbs不一致,則不進行會話密鑰Ks的認(rèn)證。這樣,構(gòu)成為當(dāng)節(jié)點B從認(rèn)證服務(wù)器S取得會話密鑰Ks時,通信單元20與節(jié)點A進行通信時,使用通過認(rèn)證服務(wù)器S接收到的會話密鑰Ks,對發(fā)送給節(jié)點A的數(shù)據(jù)進行加密以及對從節(jié)點A接收到的消息(數(shù)據(jù))進行解密。在以下待說明的動作例中,假設(shè)節(jié)點A為通信發(fā)起者(主題=主體),節(jié)點B為通信的響應(yīng)者(對象=客體)。主體與客體的節(jié)點A、B,在能夠進行基于通過發(fā)布會話密鑰Ks而進行了加密的消息的通信時,主體(節(jié)點A)能夠控制客體(節(jié)點B)。在主體的節(jié)點A與客體的節(jié)點B使用密碼進行通信中,需要從認(rèn)證服務(wù)器S取得在節(jié)點A、B之間共用的密鑰(會話密鑰Ks),將會話密鑰Ks用于消息的加密。節(jié)點A、B從認(rèn)證服務(wù)器S取得會話密鑰Ks與圖11所示的動作相同地,首先從節(jié)點A向節(jié)點B發(fā)送節(jié)點A的識別信息IDa與隨機數(shù)Nas (Pl)。從節(jié)點A向節(jié)點B發(fā)送的消息中,也可以附加節(jié)點B的識別信息IDb、針對節(jié)點B而生成的隨機數(shù)Nab作為選項(參照圖3)。隨機數(shù)Nas以及隨機數(shù)Nab在節(jié)點A中每當(dāng)請求發(fā)布會話密鑰Ks時(利用隨機數(shù)生成單元12)就會被生成,并直到會話密鑰Ks的發(fā)布步驟結(jié)束為止被暫時存儲(在存儲單元11中)。作為節(jié)點A附加節(jié)點B的識別信息IDb作為選項的情況的例子,存在節(jié)點A進行廣播通信的情況。在進行廣播通信時,節(jié)點B以外的其他節(jié)點也接收來自節(jié)點A的消息,因此為了區(qū)分節(jié)點B與其他節(jié)點而使節(jié)點B接收消息,將節(jié)點B的識別信息IDb作為選項來 使用。另外,在節(jié)點A中,為了保證來自認(rèn)證服務(wù)器S的響應(yīng)使用隨機數(shù)Nas,在節(jié)點A與節(jié)點B之間確認(rèn)會話密鑰Ks的步驟中也通過使用該隨機數(shù)Nas而使步驟簡單化,但為了進行更安全的密鑰發(fā)布,優(yōu)選按照路徑的不同而使用不同的隨機數(shù)。S卩,隨機數(shù)的原則是一次性,理想情況是不重復(fù)地發(fā)送相同的隨機數(shù),但由于實際的通信路徑或節(jié)點A、B的故障等會引起再發(fā)送而往往對相同的隨機數(shù)進行再發(fā)送,因此往往會由于再發(fā)送攻擊(回放式攻擊)而導(dǎo)致密鑰發(fā)布產(chǎn)生障礙。因此,為了提高針對回放式(replay)攻擊的耐攻擊性而提高密鑰發(fā)布的安全性,優(yōu)選以與節(jié)點A為了保證來自認(rèn)證服務(wù)器S的響應(yīng)而使用的隨機數(shù)Nas不同的選項來生成在節(jié)點A與節(jié)點B之間確認(rèn)會話密鑰Ks的步驟中使用的隨機數(shù)Nab,并按照路徑的不同而使用不同的隨機數(shù)Nab、Nas0節(jié)點B在從節(jié)點A接收步驟Pl的消息時,抽出節(jié)點A的識別信息IDa、隨機數(shù)Nas (若附加有選項,則是節(jié)點B的識別信息IDb、隨機數(shù)Nab),并且生成隨機數(shù)Nbs。并且,向認(rèn)證服務(wù)器S發(fā)送對節(jié)點A的識別信息IDa、隨機數(shù)Nas (若附加有選項,則是節(jié)點B的識別信息IDb、隨機數(shù)Nab)附加了節(jié)點B的識別信息IDb、隨機數(shù)Nbs的消息(密鑰發(fā)布請求)(P2)。隨機數(shù)Nbs在節(jié)點B中每當(dāng)向認(rèn)證服務(wù)器S請求發(fā)布會話密鑰Ks時(利用隨機數(shù)生成單元22)就被生成,并直到會話密鑰Ks的發(fā)布步驟結(jié)束為止被暫時存儲(在存儲單元21中)。步驟PU P2與圖11所示的3PKDP的基本的步驟相同。在認(rèn)證服務(wù)器S中,當(dāng)從節(jié)點B接收到步驟P2的消息時,生成節(jié)點A、B通信所使用的會話密鑰Ks。在認(rèn)證服務(wù)器S中具備按照各節(jié)點A、B將識別信息IDa、IDb與密鑰Kas、Kbs進行關(guān)聯(lián)地存儲的密鑰數(shù)據(jù)庫(未圖示),當(dāng)從節(jié)點B接收到密鑰發(fā)布請求的消息時,將從消息中抽出的節(jié)點A、B的識別信息IDa、IDb與密鑰數(shù)據(jù)庫進行對照,抽出針對各節(jié)點A、B 的密鑰 Kas、Kbs。并且,在認(rèn)證服務(wù)器S中,分別使用與各節(jié)點A、B對應(yīng)的各密鑰Kas、Kbs,生成對各節(jié)點A、B分別生成的隨機數(shù)Nas、Nbs、附加信息a、^、會話密鑰Ks進行了加密的密文ENC(Kas) (Nas, a,Ks)、ENC (Kbs) (Nbs, P,Ks)。另外,針對各消息,還生成使用了與各節(jié)點A、B 對應(yīng)的密鑰 Kas、Kbs 的 MAC 值 MAC (Kas) (Nas, a ,Ks, IDb), MAC〔Kbs〕(NBs, ^ , Ks,IDa)。這里,密文ENC (Kas) (Nas, a ,Ks)與 MAC 值 MAC〔Kas〕(Nas, a,Ks,IDb)的組是經(jīng)由節(jié)點B發(fā)送給節(jié)點A的數(shù)據(jù),密文ENC (Kbs) (Nbs, ^ ,Ks)與MAC值MAC (Kbs) (NBs,^,Ks, IDa)的組是發(fā)送給節(jié)點B的數(shù)據(jù)。因此,決定數(shù)據(jù)的排列順序,以便能夠按照節(jié)點A、B來接收數(shù)據(jù)。這里,排在前的組是發(fā)送給節(jié)點A的數(shù)據(jù),排在后的組是發(fā)送給節(jié)點B的數(shù)據(jù)。如上述那樣,在認(rèn)證服務(wù)器S中生成的數(shù)據(jù)被發(fā)送給節(jié)點B(P3)。在認(rèn)證服務(wù)器S中,生成對向各節(jié)點A、B發(fā)布的會話密鑰Ks進行了加密的消息時,也可以包含各節(jié)點A、B使用會話密鑰Ks進行相互通信的對象的節(jié)點A、B的識別信息IDa、IDb作為選項(參照圖3)。換句話說,假設(shè)發(fā)送給節(jié)點A的消息為ENC (Kas) (Nas,a,Ks, IDb),發(fā)送給節(jié)點 B 的消息為 ENC (Kbs) (Nbs, ^,Ks, IDa)。這樣,當(dāng)包含選項時,在節(jié)點A中,能夠進行密鑰發(fā)布請求而不先識別節(jié)點B的識別信息IDb。換句話說,在節(jié)點A中,通過從認(rèn)證服務(wù)器S接收包含會話密鑰Ks的消息,能夠知道成為通信對象的節(jié)點B的識別信息IDb。另外,能夠通過識別信息IDb來判斷是否是相應(yīng)的對象,來判斷是否繼續(xù)后續(xù)通信。另外,認(rèn)證 服務(wù)器S能夠確認(rèn)發(fā)布會話密鑰Ks的通信對象的識別信息IDa、IDb,因此通過在節(jié)點A、B中相互確認(rèn)通信對象的識別信息IDa、IDb,能夠確認(rèn)有無從節(jié)點A向節(jié)點B的消息或從節(jié)點B向認(rèn)證服務(wù)器S的消息的篡改。節(jié)點B在從密鑰從認(rèn)證服務(wù)器S接收到基于步驟P3的數(shù)據(jù)時,使用數(shù)據(jù)的順序來抽出發(fā)送給節(jié)點B的密文的組(密文ENC (Kbs) (Nbs, ¢, Ks)與MAC值MAC (Kbs) (NBs,¢, Ks, IDa)的組),對密文ENC (Kbs) (Nbs, ¢, Ks)進行解密并取出會話密鑰Ks等。這里,將從消息取出的隨機數(shù)Nbs與節(jié)點B (存儲單元21)所存儲的隨機數(shù)Nbs進行比較,從而確認(rèn)有無消息的篡改,在接收到的隨機數(shù)Nbs與存儲的隨機數(shù)Nbs不一致時,視為異常而不進行后續(xù)處理。并且,使用節(jié)點B存儲的隨機數(shù)Nbs、從消息中解密而得到的附加信息0、從消息解密而得到的會話密鑰Ks、作為通信對象的節(jié)點A的識別信息IDa、以及節(jié)點B保存的密鑰Kbs,使用與認(rèn)證服務(wù)器S相同的算法計算MAC值MAC (Kbs) (Nbs, ^ , Ks, IDa),與從認(rèn)證服務(wù)器S接收到的MAC值MAC (Kbs) (Nbs, P,Ks,IDa)進行比較,從而確認(rèn)有無消息的篡改。這里,在接收到的MAC值與計算出的MAC值不一致時,也視為異常而不進行后續(xù)處理。作為通信對象的節(jié)點A的識別信息IDa雖可以預(yù)先存儲于節(jié)點B中,但在消息中作為選項包含識別信息IDa時,使用從消息中抽出的識別信息IDa(參照圖3)。在節(jié)點B從認(rèn)證服務(wù)器S無異常地接收到數(shù)據(jù)時,使用從認(rèn)證服務(wù)器S接收到的會話密鑰Ks、在步驟Pl中從節(jié)點A接收到的隨機數(shù)Nas、節(jié)點B生成的隨機數(shù)Nbs、以及節(jié)點B的識別信息IDb來(在運算單元25中)計算MAC值MAC (Ks) (Nas, Nbs, IDb)。另外,在節(jié)點B中,抽出從認(rèn)證服務(wù)器S接收到的發(fā)送給節(jié)點A的密文ENC (Kas)(Nas, a , Ks)與MAC值MAC (Kas) (Nas, a , Ks, IDb)的組,并且在該數(shù)據(jù)之后附加MAC值MAC (Ks) (Nas, Nbs, IDb)與節(jié)點B生成的隨機數(shù)Nbs,并發(fā)送給節(jié)點A(P4)。附加隨機數(shù)Nb S,是在節(jié)點A中計算MAC值時需要的。這里,在從節(jié)點A向節(jié)點B發(fā)送的數(shù)據(jù)中,基于與使用隨機數(shù)Nab作為選項相同的理由,也可以在從節(jié)點B向節(jié)點A發(fā)送數(shù)據(jù)中,代替使用隨機數(shù)Nbs,而(在隨機數(shù)生成單元22中)新生成在節(jié)點B中僅用于向節(jié)點A發(fā)送數(shù)據(jù)的隨機數(shù)Nba,在步驟P4中代替隨機數(shù)Nbs而使用隨機數(shù)Nba。另外,在步驟Pl中使用隨機數(shù)Nab時,也可以在步驟P4中代替MAC (Ks) (Nas,Nbs,IDb)中的隨機數(shù)Nas而使用隨機數(shù)Nab。S卩,作為MAC值,使用MAC(Ks) (Nab, Nba, IDb)。此時,從節(jié)點B向節(jié)點A不附加發(fā)送隨機數(shù)Nbs而附加發(fā)送隨機數(shù)Nba0節(jié)點A在從節(jié)點B接收步驟P4中產(chǎn)生的數(shù)據(jù)時,通過抽出密文ENC (Kas) (Nas,a ,Ks)并進行解密,取出會話密鑰Ks等。這里,根據(jù)數(shù)據(jù)的排列順序來識別待解密的消息。這里,通過對從消息中取出的隨機數(shù)Nas與節(jié)點A存儲的隨機數(shù)Nas進行比較來確認(rèn)有無消息的篡改,若接收到的隨機數(shù)Nas與存儲的隨機數(shù)Nas不一致,則視為異常而不進行后續(xù)處理。并且,使用節(jié)點A存儲的隨機數(shù)Nas、從消息中解密而得到的附加信息a、從消息中解密而得到的會話密鑰Ks、作為通信對象的節(jié)點B的識別信息IDb、以及節(jié)點A保存的密鑰Kas,使用與認(rèn)證服務(wù)器S相同的算法計算MAC值 MAC (Kas) (Nas, a,Ks,IDb),通過與從節(jié)點B取得的MAC值MAC (Kas) (Nas, a , Ks, IDb)進行比較,確認(rèn)有無消息的篡改。這里,若接收到的MAC值與計算出的MAC值不一致,則也視為異常而不進行后續(xù)處理。作為通信對象的節(jié)點B的識別信息IDb在節(jié)點A中被預(yù)先存儲即可,但在消息中作為選項包含識別信息IDb時,使用從消息中抽出的識別信息IDb。另外,使用節(jié)點A存儲的隨機數(shù)Nas、從節(jié)點B發(fā)送來的隨機數(shù)Nbs、作為通信對象的節(jié)點B的識別信息IDb、以及從消息中解密而得到的會話密鑰Ks (用運算單元15)來計算MAC值MAC (Ks) (Nas, Nbs, IDb),并通過與(經(jīng)由認(rèn)證單元16)從節(jié)點B取得的MAC值MAC (Ks) (Nas,Nbs, IDb)進行比較,確認(rèn)有無消息的篡改。此時,若接收到的MAC值與計算出的MAC值不一致,則視為異常而不進行后續(xù)處理。如上述那樣,在節(jié)點A從節(jié)點B無異常地取得會話密鑰Ks時,在節(jié)點A中保存從節(jié)點B取得的會話密鑰Ks。另外,通過隨機數(shù)Nas、隨機數(shù)Nbs以及會話密鑰Ks,(用運算單元15)生成用于針對節(jié)點B的確認(rèn)響應(yīng)的MAC值MAC (Ks) (Nas,Nbs),將該MAC值發(fā)送給節(jié)點B(P5)。在步驟P4中,代替隨機數(shù)Nas、Nbs而使用作為選項的隨機數(shù)Nab、Nba,使用MAC〔Ks) (Nab, Nba, IDb)作為MAC值,當(dāng)在節(jié)點A中接收到隨機數(shù)Nba時(參照圖3),在節(jié)點A的異常檢測中也使用MAC值MAC (Ks) (Nab,Nba, IDb)。然而,如圖I所示,認(rèn)證服務(wù)器S在向節(jié)點A、B發(fā)布會話密鑰Ks后,能夠以從節(jié)點B接收響應(yīng)而使密鑰發(fā)布的步驟結(jié)束,但也可以如圖3所示,節(jié)點A、B針對認(rèn)證服務(wù)器S進行確認(rèn)響應(yīng)。此時,認(rèn)證服務(wù)器S在接收到確認(rèn)響應(yīng)后向節(jié)點A、B返送接收確認(rèn)。以下,對認(rèn)證服務(wù)器S中接收確認(rèn)響應(yīng)情況的動作進行說明。S卩,在節(jié)點A中,在步驟P5中,為了不僅發(fā)送針對節(jié)點B的確認(rèn)響應(yīng),還向認(rèn)證服務(wù)器S發(fā)送確認(rèn)響應(yīng),代替MAC (Ks) (Nas,Nbs)將向節(jié)點B發(fā)送的MAC值設(shè)為MAC (Ks)(Nab, Nba),并且附加用于發(fā)送給認(rèn)證服務(wù)器S的確認(rèn)響應(yīng)的MAC值MAC (Kas) (Nas, Ks)(參照圖3的步驟P5)。另外,進行針對認(rèn)證服務(wù)器S的確認(rèn)響應(yīng)時,優(yōu)選在節(jié)點A中(使用隨機數(shù)生成單元12)生成新的隨機數(shù)Nas',直到得到來自認(rèn)證服務(wù)器S的響應(yīng)為止將隨機數(shù)Nas'暫時存儲(在存儲單元11中)。在生成隨機數(shù)Nas'時,與隨機數(shù)Nas' —并發(fā)送給節(jié)點B。在利用步驟P5接收到來自節(jié)點A的數(shù)據(jù)的節(jié)點B中,基于數(shù)據(jù)的排列順序分離以節(jié)點B為目的地的MAC值MAC (Ks) (Nas, Nbs),并且使用保存的會話密鑰Ks、暫時存儲的隨機數(shù)Nbs以及隨機數(shù)Nas來(使用運算單元25)計算MAC值MAC (Ks) (Nas, Nbs),對接收到的MAC值和計算出的MAC值進行比較(使用認(rèn)證單元26)。若兩MAC值一致,則原樣保存會話密鑰Ks。
并且,在節(jié)點B中,(使用隨機數(shù)生成單元22)生成新的隨機數(shù)Nbs',并且(使用運算單元25)計算發(fā)送給認(rèn)證服務(wù)器S的MAC值MAC (Kbs) (Nbs, Ks),將從節(jié)點A發(fā)送給認(rèn)證服務(wù)器S的MAC值MAC (Kas) (Nas,Ks)以及隨機數(shù)值Nas',與MAC值MAC (Kbs)(Nbs, Ks)以及隨機數(shù)Nbs' —起發(fā)送給認(rèn)證服務(wù)器S(P6)。隨機數(shù)Nbs'直到有來自認(rèn)證服務(wù)器S的接收確認(rèn)為止被暫時保存(在存儲單元21中)。這里,為了針對認(rèn)證服務(wù)器S的確認(rèn)響應(yīng)而生成新的隨機數(shù)Nas'以及隨機數(shù)Nbs'與在步驟Pl中說明理由相同,是為了確保隨機數(shù)的一次性來提高通信的安全性。但是,流量伴隨新的隨機數(shù)Nas'、Nbs'的發(fā)送而增加,因此在不希望流量增加時,也可以將在步驟P2中接收到的隨機數(shù)Nas、Nbs用于確認(rèn)響 應(yīng)。認(rèn)證服務(wù)器S (運算單元33)當(dāng)從節(jié)點B利用步驟P6接收到確認(rèn)響應(yīng)時,使用密鑰數(shù)據(jù)庫存儲的密鑰Kas、Kbs、保存的會話密鑰Ks、以及隨機數(shù)Nas、Nbs,來計算MAC值MAC(Kas) (Nas,Ks) ,MAC (Kbs) (NbsjKs)0在認(rèn)證服務(wù)器S中,對利用步驟P6接收到的MAC值和計算出的MAC值進行比較,若兩者不一致,則(使用運算單元33)判斷為會話密鑰Ks的發(fā)布存在異常,不進行針對節(jié)點A、B的接收響應(yīng)而結(jié)束處理。此時,在節(jié)點A、B中(使用認(rèn)證單元16、26)判斷為會話密鑰Ks的接收失敗。在會話密鑰Ks的接收失敗時,廢棄保存的會話密鑰Ks,根據(jù)需要而重新請求發(fā)布會話密鑰Ks。認(rèn)證單元16、26若在規(guī)定的限制時間內(nèi)沒有從認(rèn)證服務(wù)器S得到接收響應(yīng),則判斷為會話密鑰Ks的接收失敗。 另一方面,在認(rèn)證服務(wù)器S中,在步驟P6中接收到的MAC值與計算出的MAC值一致時,使用各節(jié)點A、B的密鑰Kas、Kbs、以及在各節(jié)點A、B中生成的步驟P2中接收到的隨機數(shù)Nas'、Nbs',(使用運算單元33)計算發(fā)送給各節(jié)點A、B的MAC值MAC〔Kas〕(Nas')、MAC (Kbs) (Nbs'),并向節(jié)點B發(fā)送接收確認(rèn)(P7)。節(jié)點B在從認(rèn)證服務(wù)器S接收到基于步驟P7數(shù)據(jù)時,按照數(shù)據(jù)的排列順序分離并抽出與節(jié)點B對應(yīng)的MAC值MAC (Kbs) (Nbs')。另外,使用密鑰Kbs以及暫時存儲的隨機數(shù)Nbs'來(使用運算單元25)計算MAC值MAC (Kbs) (Nbs;),對接收到的MAC值與計算出的MAC值進行比較(使用認(rèn)證單元26)。若兩者一致,則確認(rèn)將保存的會話密鑰Ks用于與節(jié)點A的通信中,并且將從認(rèn)證服務(wù)器S接收到的MAC值MAC (Kas) (Nas')發(fā)送給節(jié)點A(P8)。另外,在節(jié)點B中,當(dāng)從認(rèn)證服務(wù)器S在步驟P7中接收到的MAC值和與步驟P7對應(yīng)地計算出的MAC值不一致時,放棄節(jié)點B保存的會話密鑰Ks,不進行針對節(jié)點A的MAC值的發(fā)送而結(jié)束處理。節(jié)點A在從節(jié)點B利用步驟P8接收到MAC值MAC〔Kas〕(Nas')時,使用密鑰Kas與隨機數(shù)Nas來(使用運算單元15)計算MAC值MAC (Kas) (Nas'),對接收到的MAC值與計算出的MAC值進行比較(使用認(rèn)證單元16),若兩MAC值一致,則確認(rèn)將節(jié)點A保存的會話密鑰Ks用于節(jié)點B的通信。另一方面,在兩MAC值不一致時,或在步驟P5中向節(jié)點B發(fā)送數(shù)據(jù)后的規(guī)定限制時間內(nèi),沒有從節(jié)點B接收到步驟P8所產(chǎn)生的MAC值MAC (Kas) (Nas')時,放棄保存的會話密鑰Ks,根據(jù)需要重新進行會話密鑰Ks的發(fā)布請求。如以上說明的那樣,通過使用圖I所示的步驟Pl P5或者圖3所示的步驟Pl P8,能夠安全地發(fā)布會話密鑰Ks。此外,圖I例示了未包含選項的動作,圖3例示了包含全部的選項時的動作。但是,選項按照上述說明根據(jù)需要能夠進行適當(dāng)?shù)倪x擇。另外,如上述步驟P3、P4那樣,在發(fā)送進行了加密的消息與MAC值的組時,也可以使用RFC4309中提倡的AES-CCM這樣的加密方式,消息的加密中使用AES,作為MAC值使用CCM 的 MAC。以上所述的本實施方式的加密密鑰發(fā)布系統(tǒng)采用密鑰發(fā)布方法,是在計算機通信系統(tǒng)內(nèi)發(fā)布在由多個節(jié)點構(gòu)成的組內(nèi)的通信所使用的會話密鑰的方法。這里,具有生成會話密鑰的功能以及將會話密鑰向組內(nèi)的各節(jié)點發(fā)布的功能的認(rèn)證服務(wù)器與各節(jié)點共享密鑰。上述密鑰發(fā)布方法包含將組內(nèi)的任一個節(jié)點的識別信息、該節(jié)點生成的隨機數(shù)、以及組內(nèi)的其他節(jié)點的識別信息發(fā)送給認(rèn)證服務(wù)器的步驟;認(rèn)證 服務(wù)器生成組內(nèi)的各節(jié)點共用地使用的會話密鑰的步驟;認(rèn)證服務(wù)器將從第I節(jié)點取得的隨機數(shù)、生成的會話密鑰以及適當(dāng)?shù)母郊有畔⒆鳛橄?,使用各?jié)點的密鑰計算消息認(rèn)證碼的值的步驟;認(rèn)證服務(wù)器在使用各節(jié)點的密鑰對至少從第I節(jié)點取得的隨機數(shù)、生成的會話密鑰以及上述附加信息進行了加密的發(fā)送給各節(jié)點的密文中,附加使用針對各節(jié)點的密鑰而生成的消息認(rèn)證碼的值并發(fā)送給各節(jié)點的步驟;在上述組內(nèi)的各節(jié)點中,通過對從認(rèn)證服務(wù)器取得的加密后的數(shù)據(jù)進行解密而抽出會話密鑰的步驟;上述組內(nèi)的各節(jié)點使用密鑰與解密后的數(shù)據(jù)來計算上述消息認(rèn)證碼的值,在計算出的消息認(rèn)證碼的值與從認(rèn)證服務(wù)器取得的消息認(rèn)證碼的值一致時,視為抽出的會話密鑰被認(rèn)證的步驟。為了實現(xiàn)上述密鑰發(fā)布方法,本實施方式的加密密鑰發(fā)布系統(tǒng)具備第I節(jié)點A、第2節(jié)點B、生成在第I節(jié)點A與第2節(jié)點B之間的加密通信所使用的會話密鑰的認(rèn)證服務(wù)器S0第I節(jié)點A與認(rèn)證服務(wù)器S構(gòu)成為保存在第I節(jié)點A與認(rèn)證服務(wù)器S之間的加密通信所使用的第I密鑰。第2節(jié)點B與認(rèn)證服務(wù)器S構(gòu)成為保存在第2節(jié)點B與認(rèn)證服務(wù)器S之間的加密通信所使用的第2密鑰。第I節(jié)點A構(gòu)成為,向認(rèn)證服務(wù)器S請求發(fā)行會話密鑰時,生成第I隨機數(shù)并發(fā)送給認(rèn)證服務(wù)器S。第2節(jié)點B構(gòu)成為,在向認(rèn)證服務(wù)器S請求發(fā)行會話密鑰時,生成第2隨機數(shù)并發(fā)送給認(rèn)證服務(wù)器S。認(rèn)證服務(wù)器S構(gòu)成為,在接收第I隨機數(shù)與第2隨機數(shù)時,生成新的會話密鑰。認(rèn)證服務(wù)器S構(gòu)成為,使用包含接收到的第I隨機數(shù)、新生成的會話密鑰和規(guī)定的第I附加信息的第I消息與第I密鑰來計算第I消息認(rèn)證碼的值。認(rèn)證服務(wù)器S構(gòu)成為,使用第I密鑰對接收到的第I隨機數(shù)、新生成的會話密鑰和第I附加信息進行加密而創(chuàng)建第I密文。認(rèn)證服務(wù)器S構(gòu)成為將第I密文與第I消息認(rèn)證碼的值發(fā)送給第I節(jié)點。認(rèn)證服務(wù)器S構(gòu)成為,使用包含接收到的第2隨機數(shù)、新生成的會話密鑰和規(guī)定的第2附加信息的第2消息與第2密鑰來計算第2消息認(rèn)證碼的值。認(rèn)證服務(wù)器S構(gòu)成為,使用第2密鑰對接收的第2隨機數(shù)、新生成的會話密鑰以及第2附加信息進行加密而創(chuàng)建第2密文。認(rèn)證服務(wù)器S構(gòu)成為將第2密文與第2消息認(rèn)證碼的值發(fā)送給第2節(jié)點。第I節(jié)點A構(gòu)成為,在接收到第I密文以及第I消息認(rèn)證碼的值時,使用第I密鑰對第I密文進行解密而取得會話密鑰與第I附加信息。第I節(jié)點A構(gòu)成為,使用第I節(jié)點A存儲的第I隨機數(shù)、對第I密文進行解密而得到的會話密鑰以及第I附加信息、以及第I密鑰來計算第I消息認(rèn)證碼的值。第I節(jié)點A構(gòu)成為,通過判斷第I節(jié)點計算出的第I消息認(rèn)證碼的值是否與從認(rèn)證服務(wù)器S接收到的第I消息認(rèn)證碼的值一致,對從認(rèn)證服務(wù)器接收到的會話密鑰進行認(rèn)證。第2節(jié)點B構(gòu)成為,在接收到第2密文以及第2消息認(rèn)證碼的值時,使用第2密鑰對第2密文進行解密而取得會話密鑰與第2附加信息。第2節(jié)點B構(gòu)成為,使用第2節(jié)點B存儲第2隨機數(shù)、對第2密文進行解密而得到的會話密鑰以及第2附加信息、以及第2密鑰來計算第2消息認(rèn)證碼的值。第2節(jié)點B構(gòu)成為,通過判斷第2節(jié)點計算出的第2消息認(rèn)證碼的值是否與從認(rèn)證服務(wù)器S接收到的第2消息認(rèn)證碼的值一致,來對從認(rèn)證服務(wù)器S接收到的會話密鑰進行認(rèn)證。根據(jù)本實施方式的構(gòu)成,認(rèn)證服務(wù)器S在使用各節(jié)點的密鑰對至少從第I節(jié)點取得的隨機數(shù)、生成的會話密鑰以及附加信息進行了加 密的發(fā)送給各節(jié)點的密文中,附加根據(jù)從第I節(jié)點接收到的隨機數(shù)、生成的會話密鑰以及附加信息計算出的消息認(rèn)證碼的值,并向各節(jié)點發(fā)送密文與消息認(rèn)證碼,因此在認(rèn)證服務(wù)器向各節(jié)點發(fā)布會話密鑰時,當(dāng)然能夠使用消息認(rèn)證碼的值來確認(rèn)正確性,并且還能夠?qū)捗荑€以外的附加信息進行加密并發(fā)送。換言之,在認(rèn)證服務(wù)器向各節(jié)點發(fā)送附加信息時,通過對附加信息進行加密,其他節(jié)點不能竊聽附加信息。并且,因為向節(jié)點發(fā)送包含計算消息認(rèn)證碼的值所需的信息的密文,因此在接收到會話密鑰的節(jié)點中,能夠計算包含附加信息的消息認(rèn)證碼的值,能夠確認(rèn)會話密鑰以及附加信息未被篡改(換句話說,正確性)。(實施方式2)本實施方式的加密密鑰發(fā)布系統(tǒng),如圖5所示主要是認(rèn)證服務(wù)器S具有訪問信息生成單元36、和訪問信息存儲單元37這點與實施方式I的加密密鑰發(fā)布系統(tǒng)不同。在本實施方式的加密密鑰發(fā)布系統(tǒng)中,作為訪問控制的信息(表示節(jié)點間的訪問的可否的信息),使用訪問控制的請求信息(訪問請求信息)、訪問控制的登記信息(訪問登記信息)、訪問控制的允許信息(訪問允許信息)。訪問請求信息是表示節(jié)點所請求的訪問權(quán)限的信息。訪問登記信息是表示節(jié)點的制造者、管理者預(yù)先賦給節(jié)點的訪問權(quán)限的信息。訪問允許信息是表示實際賦給節(jié)點的訪問權(quán)限的信息。在本實施方式中,基于訪問請求信息與訪問登記信息來生成訪問允許信息。 訪問信息存儲單元37構(gòu)成為存儲訪問控制的登記信息。訪問信息生成單元36構(gòu)成為生成訪問控制的允許信息。訪問信息生成單元36構(gòu)成為,例如在從節(jié)點A⑶接收到訪問控制的請求信息Pas (Pbs)時,求出接收到的訪問控制的請求信息Pas (Pbs)與訪問控制的登記信息的共用部分(換言之,積集合)。訪問信息生成單元36構(gòu)成為,將求出的共用部分用作訪問控制的允許信息Psa(Psb)。在本實施方式中,密文生成單元34構(gòu)成為,作為第I附加信息a使用訪問信息生成單元36生成的與節(jié)點A相關(guān)的訪問控制的允許信息。另外,密文生成單元34構(gòu)成為,作為第2附加信息P使用訪問信息生成單元36生成的與節(jié)點B相關(guān)的訪問控制的允許信息。在本實施方式的情況下,會話密鑰請求單元13構(gòu)成為,將隨機數(shù)生成單元12生成的隨機數(shù)Nas、Nab、存儲單元11所存儲的識別信息IDa、IDb、以及訪問請求信息Pas經(jīng)由節(jié)點B發(fā)送給認(rèn)證服務(wù)器S。即,會話密鑰請求單元13構(gòu)成為,將隨機數(shù)Nas、Nab、識別信息IDa、IDb、以及訪問請求信息Pas發(fā)送給節(jié)點B。另外,會話密鑰請求單元23構(gòu)成為,在從節(jié)點A接收到隨機數(shù)Nas、Nab、識別信息IDa、IDb、以及訪問請求信息Pas時,將隨機數(shù)生成單元22生成的第2隨機數(shù)Nbs、訪問請求信息Pbs、與從節(jié)點A接收到的隨機數(shù)Nas、識別信息IDa、IDb以及訪問請求信息Pas —起發(fā)送給認(rèn)證服務(wù)器S。在本動作例中,除了實施方式I的動作之外,對進行訪問控制情況進行說明。即,在實施方式I中作為附加信息a、^例示了會話密鑰Ks的有效期間、訪問次數(shù)、費用信息,但在本實施方式中,對將附加信息a、^用于訪問控制的例子進行說明。訪問控制包含是否將各節(jié)點A、B保存的信息提供給其他節(jié)點A、B (提供)、各節(jié)點A、B添加其他節(jié)點A、B提供的信息的操作(讀出、寫入、執(zhí)行)。換句話說,訪問控制的信息決定從各節(jié)點A、B保存的信息能夠提供哪個信息,還決定針對提供信息進行哪種操作。
在以下的說明中,對包含實施方式I中的選項的圖3的動作例添加變更以便能夠進行訪問控制的例子進行說明。但是,能夠?qū)DI所示的動作例也添加變更以便能夠進行訪問控制。另外,在2PDKP的情況下,能夠按照圖10變更到除去了認(rèn)證服務(wù)器S的動作。在本動作例中,為了進行訪問控制,如圖4所示,在步驟Pl中從節(jié)點A向節(jié)點B發(fā)送的數(shù)據(jù)中包含訪問控制的請求信息(訪問請求信息)Pas,在步驟P2中從節(jié)點B向認(rèn)證服務(wù)器S發(fā)送的數(shù)據(jù)中包含訪問控制的請求信息Pas、Pbs。本動作例中,訪問控制的請求信息Pas、Pbs雖是根據(jù)需要被采用選項,但本動作例中對進行訪問控制的動作進行說明,因此僅對使用訪問控制的請求信息Pas、Pbs的動作進行說明。認(rèn)證服務(wù)器S在從節(jié)點B接收到訪問控制的請求信息Pas、Pbs時,(使用訪問信息生成單元36)生成針對節(jié)點A的訪問控制的允許信息Psa與針對節(jié)點B的訪問控制的允許信息Psb,將在步驟P3、P4中使用附加信息a、^的內(nèi)容作為各自的訪問控制的允許信息 Psa、Psb0在本動作例中,在步驟P4中使用從節(jié)點B向認(rèn)證服務(wù)器S發(fā)出的訪問控制的請求信息Pbs,在步驟P5,P6中將訪問控制的請求信息Pas、Pbs包含于MAC值來使用。認(rèn)證服務(wù)器S不僅具有通過向節(jié)點A、B發(fā)行對會話密鑰Ks在節(jié)點A、B之間允許通信的功能,還具有對于應(yīng)節(jié)點A、B保存的信息限制其從一方向另一方的訪問的功能。認(rèn)證服務(wù)器S發(fā)行的訪問控制的允許信息Psa、Psb存在以下各種信息,在認(rèn)證服務(wù)器S中,在接收到訪問控制的請求信息Pas、Pbs時,按照預(yù)先決定的規(guī)則,(使用訪問信息生成單元36)發(fā)行以下的任一個允許信息Psa、Psb。在訪問控制的請求信息Pas、Pbs以及訪問控制的允許信息Psa、Psb中,關(guān)于節(jié)點A、B的保存的信息,能夠選擇讀出、寫入、執(zhí)行、提供這4種操作,分別記述為“read”、“write”、“execute”、“provide”。例如,將節(jié)點B保存的信息用RB來表示時,在節(jié)點A請求進行信息RB的讀出時記述為“A read RB”。另外,節(jié)點B提供信息RB時記述為“B provideRB”。并且,在同時記述多個操作時,在同時記述的各操作之間用豎線(I)分開。例如,節(jié)點A請求信息RB的讀出與寫入的操作時記述為“A read I write RB”。首先,例示了節(jié)點B保存有多個種信息的情況,即對于節(jié)點B保存的多個種信息,為了限制節(jié)點A能夠訪問的信息的種類,認(rèn)證服務(wù)器S (訪問信息生成單元36)發(fā)行訪問控制的允許信息Psa、Psb的情況。換句話說,認(rèn)證服務(wù)器S在從節(jié)點A向節(jié)點B發(fā)出的訪問請求時,基于節(jié)點B允許提供的信息,發(fā)行針對節(jié)點A、B的訪問控制的允許信息Psa、Psb0這里,對節(jié)點B具有3種信息RB I RB3,節(jié)點A訪問節(jié)點B的全部信息RB I RB3并請求讀出、寫入、執(zhí)行全部操作,而節(jié)點B僅允許提供I種信息RBl的情況進行例示。
即,來自節(jié)點A的訪問控制的請求信息Pas是“A read | write | execute RB1、RB2、RB3”,節(jié)點A經(jīng)由節(jié)點B將該請求信息Pas發(fā)送給認(rèn)證服務(wù)器S (Pl)。另一方面,節(jié)點B將“B provide RB1”發(fā)送給認(rèn)證服務(wù)器S作為訪問控制的請求信息Pbs (P2)。另一方面,認(rèn)證服務(wù)器S與按照各節(jié)點A、B的訪問控制相關(guān)地保存有登記信息(訪問控制的登記信息)。訪問控制的登記信息是按照各節(jié)點A、B,由節(jié)點A、B的制造者或管理者預(yù)先登記于設(shè)置于認(rèn)證服務(wù)器S的訪問信息存儲部(訪問信息存儲單元)37。訪問控制的登記信息是與節(jié)點A相關(guān)的“A read I write execute RBI, RB2”,與節(jié)點B相關(guān)的“B provide RBl,RB2”。在認(rèn)證服務(wù)器S中,在從節(jié)點B取得訪問控制的請求信息Pas、Pbs時,按照各節(jié)點A、B(使用訪問信息生成單元36)求出訪問控制的請求信 息Pas、Pbs與訪問控制的登記信息的共用部分(積集合)。在上述的例中,來自節(jié)點A的訪問控制的請求信息Pas是“Aread I write I executeRB1,RB2,RB3”,與節(jié)點A相關(guān)的訪問控制的登記信息是“A read | write | execute RB1,RB2”,因此與節(jié)點A相關(guān)的共用部分是“A read I write | execute RB1,RB2,,。另外,來自節(jié)點B的訪問控制的請求信息Pbs是“B provide RBl",與節(jié)點B相關(guān)的訪問控制的登記信息是“Bprovide RB1,RB2”,因此與節(jié)點B相關(guān)的共用部分是“B provide RB1”。認(rèn)證服務(wù)器S(訪問信息生成單元36)將針對各節(jié)點A、B分別求出的共用部分作為訪問控制的允許信息Psa、Psb。S卩,針對節(jié)點A的訪問控制的允許信息Psa是“Aread I write | execute RBI, RB2”,針對節(jié)點B的訪問控制的允許信息Psb是“B provideRBI”。如上所述,這些訪問控制的允許信息Psa、Psb (使用密文生成單元34)被用作步驟P3、P4中的附加信息a、P,并且也被用作步驟P4 P6中。換句話說,認(rèn)證服務(wù)器S分別將訪問控制的允許信息Psa、Psb提交給各節(jié)點A、B。訪問控制的允許信息Psa、Psb已被提交的各節(jié)點A、B中,能夠僅進行在來自作為通信發(fā)起者的節(jié)點A的訪問控制的請求信息中的、與來自作為通信的響應(yīng)者的節(jié)點B的訪問控制的請求信息對應(yīng)的范圍內(nèi)的操作。這里,從認(rèn)證服務(wù)器S向節(jié)點A提交的訪問控制的允許信息Psa是“A read writeexecute RBI, RB2”,針對節(jié)點B的信息RBI、RB2請求讀出、寫入、執(zhí)行的操作,但提交給節(jié)
點B的訪問控制的允許信息Psb是“B provide RB1”,節(jié)點A從節(jié)點B能夠享受的服務(wù)限于節(jié)點B提供的信息RBl。即,節(jié)點A能夠進行僅針對節(jié)點B保存的信息RBl的讀出、寫入、執(zhí)行的操作。在上述動作例中,生成訪問控制的允許信息Psa、Psb作為認(rèn)證服務(wù)器S從節(jié)點A、B接收到的訪問控制的請求信息Pas、Pbs、和認(rèn)證服務(wù)器S預(yù)先保存的訪問控制的登記信息之間的共用部分(積集合),但也能進行合成(和集合)而不是共用部分。S卩,在使用積集合時,通過與節(jié)點A、B的請求信息相比加強限制而提供嚴(yán)格的策略,在使用和集合時,與節(jié)點A、B的請求信息相比減弱限制。然而,往往存在登記于認(rèn)證服務(wù)器S的訪問控制的登記信息被適當(dāng)?shù)馗?,?jié)點A、B中識別不出訪問控制的登記信息被更新的情況。為了應(yīng)對這樣的情況,在認(rèn)證服務(wù)器S中,在從節(jié)點A、B接收到的訪問控制的請求信息未包含于訪問控制的登記信息時,將訪問控制的登記信息作為訪問控制的允許信息,包含于針對節(jié)點A、B的附加信息a、P并發(fā)送給節(jié)點A、B。因此,在節(jié)點A、B中,能夠接收作為訪問控制的登記信息被登記于認(rèn)證服務(wù)器S的新的訪問控制的允許信息。此時,訪問控制的允許信息被包含于節(jié)點A、B的密文中,并且被用于消息認(rèn)證碼的值的運算,訪問控制的允許信息被節(jié)點A、B取得而不會被他人獲知,并且利用消息認(rèn)證碼還能夠確認(rèn)正確性,因此節(jié)點A、B能夠安全地取得訪問控制的允許信息。并且,在該構(gòu)成中,若在認(rèn)證服務(wù)器S中變更訪問控制的登記信息,則能夠變更賦予給節(jié)點A、B的訪問控制的允許信息,因此能夠簡單地進行訪問控制的變更。如上述例子那樣,來自節(jié)點A的訪問控制的請求信息Pas是“Aread writeexecute RBI, RB2, RB3”,與節(jié)點A相關(guān)的訪問控制的登 記信息是“A read writeexecute RBI, RB2”,因此相對于節(jié)點A的訪問控制的允許信息Psa是“A read writeexecute RBI, RB2, RB3”。另外,來自從節(jié)點B的訪問控制的請求信息Pbs是“B
provideRBl”,與節(jié)點B相關(guān)的訪問控制的登記信息是“B provide RBI, RB2”,因此相對于節(jié)點B的訪問控制的允許信息Psb是“B provide RBI, RB2”。此時,節(jié)點A能夠針對節(jié)點B保存的信息RBI、RB2進行讀出、寫入、執(zhí)行的操作。在認(rèn)證服務(wù)器S中,考慮將使用訪問控制的請求信息Psa、Psb與訪問控制的登記信息的和集合作為提供給各節(jié)點A、B的訪問控制的允許信息Psa、Psb的情況作為有效的例子,例如通過節(jié)點A能夠進行針對全部信息的操作的情況。此時,在認(rèn)證服務(wù)器S中若設(shè)定指定全部信息的通配符(*)(即,作為訪問控制的登記信息設(shè)定“A read write I execute*”)作為針對節(jié)點A的訪問控制的登記信息,貝Ij不管來自節(jié)點A的訪問控制的請求信息Pas的內(nèi)容,認(rèn)證服務(wù)器S都將針對節(jié)點A的訪問控制的允許信息Psa設(shè)為“A read write I execute*”,因此節(jié)點A能夠進行針對其他節(jié)點提供的全部信息的操作。這里,若將訪問控制的允許信息Psa設(shè)為訪問控制的請求信息Pas與訪問控制的登記信息的積集合時,為了指定信息使用通配符(*),則關(guān)于訪問控制的請求信息Pas與訪問控制的登記信息這兩方,都需要使用通配符(*)。與此相對,通過使用上述那樣的和集合,僅針對認(rèn)證服務(wù)器S保存的訪問控制的登記信息使用通配符(*),從而能夠在針對節(jié)點A的訪問控制的允許信息Psa中使用通配符(*)。但是,在使用和集合的情況下,節(jié)點A能夠操作的信息也限于其他節(jié)點提供的范圍內(nèi)的信息。在上述動作例中,對在認(rèn)證服務(wù)器S中將來自節(jié)點A、B的訪問控制的請求信息Pas、Pbs、與認(rèn)證服務(wù)器S保存的訪問控制的登記信息的積集合或者和集合用于訪問控制的允許信息Psa、Psb的例子進行說明,但也能夠使用差集合。并且,能夠使用多個種集合的組合,能夠使用按照各節(jié)點A、B而不同的集合。能夠任意地選擇哪個集合作為哪個節(jié)點A、B的訪問控制的允許信息Psa、Psb來使用。在上述動作例中,在步驟P1、P2中,在從節(jié)點A、B向認(rèn)證服務(wù)器S發(fā)送的數(shù)據(jù)中包含訪問控制的請求信息Pas、Pbs,但在步驟PU P2中節(jié)點A、B發(fā)送的數(shù)據(jù)中未包含訪問控制的允許信息Psa、Psb時,在服務(wù)器S中,將訪問控制的登記信息作為訪問控制的允許信息Psa、Psb發(fā)送給各節(jié)點A、B。
此外,在本動作例中,各節(jié)點A、B在取得會話密鑰Ks時取得訪問控制的允許信息Psa、Psb,之后在進行使用會話密鑰Ks的通信時,能夠進行針對由訪問控制的允許信息Psa、Psb指定的信息的操作。若需要在實施方式I中說明的附加信息a、P,則可以在訪問控制的允許信息Psa、Psb的前后的任一個中附加附加信息a、0。其他構(gòu)成以及動作與實施方式I相同。在本動作例中,在步驟P1、P2中即使從節(jié)點A、B向認(rèn)證服務(wù)器S發(fā)送訪問控制的請求信息Pas、Pbs作為附加信息,訪問控制的允許信息Psa、Psb由于被加密而進行加密發(fā)送。此外,訪問控制的請求信息Pas、Pbs如不是必須的,也可以不發(fā)送。以上所述的本實施方式的加密密鑰發(fā)布系統(tǒng)采用的密鑰發(fā)布方法是,在計算機通信系統(tǒng)內(nèi)發(fā)布在由多個節(jié)點構(gòu)成的組內(nèi)的通信所使用的會話密鑰的方法。這里,具有生成會話密鑰的功能以及將會話密鑰向組內(nèi)的各節(jié)點發(fā)布的功 能的認(rèn)證服務(wù)器與各節(jié)點共享密鑰。上述密鑰發(fā)布方法包括將組內(nèi)的任一個節(jié)點的識別信息、該節(jié)點生成的隨機數(shù)以及組內(nèi)的其他節(jié)點的識別信息發(fā)送給認(rèn)證服務(wù)器的步驟;認(rèn)證服務(wù)器生成組內(nèi)的各節(jié)點共用地使用的會話密鑰的步驟;認(rèn)證服務(wù)器將從第I節(jié)點取得的隨機數(shù)、生成的會話密鑰以及包含訪問控制的允許信息的附加信息作為消息,使用各節(jié)點的密鑰來計算消息認(rèn)證碼的值的步驟;認(rèn)證服務(wù)器在使用各節(jié)點的密鑰對至少從第I節(jié)點取得的隨機數(shù)、生成的會話密鑰以及訪問控制的允許信息進行了加密的針對各節(jié)點的密文中,附加使用針對各節(jié)點的密鑰而生成的消息認(rèn)證碼的值并發(fā)送給各節(jié)點的步驟;在上述組內(nèi)的各節(jié)點中,通過對從認(rèn)證服務(wù)器取得的被加密的數(shù)據(jù)進行解密而抽出會話密鑰以及訪問控制的允許信息的步驟;上述組內(nèi)的各節(jié)點使用密鑰與進行了解密的數(shù)據(jù)來計算上述消息認(rèn)證碼的值,在計算出的消息認(rèn)證碼的值與從認(rèn)證服務(wù)器取得的消息認(rèn)證碼的值一致時,視為抽出的會話密鑰認(rèn)證被認(rèn)證的步驟。為了實現(xiàn)上述密鑰發(fā)布方法,本實施方式的加密密鑰發(fā)布系統(tǒng)中第I附加信息a以及第2附加信息P是訪問控制的允許信息。根據(jù)本實施方式的構(gòu)成,除了附加信息包含訪問控制的允許信息這一點之外與實施方式I的構(gòu)成相同,實現(xiàn)相同的效果。這里,在作為背景的技術(shù)而說明的現(xiàn)有技術(shù)中,訪問控制的允許信息未被加密地發(fā)送給節(jié)點,與此相對,將訪問控制的允許信息包含于密文并進行發(fā)送,并且附加了消息認(rèn)證碼的值,因此能夠防止訪問控制的允許信息泄漏給他人,并且能夠確認(rèn)訪問控制的允許信息的正確性。此外,認(rèn)證服務(wù)器也可以在從節(jié)點接收到訪問控制的請求信息時,對訪問控制的請求信息與預(yù)先登記的訪問控制的登記信息進行比較,在訪問控制的請求信息未包含于訪問控制的登記信息時,將訪問控制的登記信息用于訪問控制的允許信息,在包含訪問控制的允許信息的密文附加消息認(rèn)證碼的值并發(fā)送給組內(nèi)的各節(jié)點。即,認(rèn)證服務(wù)器S (訪問信息生成單元36)也可以構(gòu)成為,在從第I節(jié)點A或者第2從節(jié)點B取得訪問控制的請求信息時,對取得的訪問控制的請求信息與預(yù)先登記的訪問控制的登記信息進行比較,在取得的訪問控制的請求信息未包含于訪問控制的登記信息時,將訪問控制的登記信息用作訪問控制的允許信息。這樣,在認(rèn)證服務(wù)器中有訪問控制的登記信息,來自節(jié)點的訪問控制的請求信息中未包含訪問控制的登記信息時,將訪問控制的登記信息作為訪問控制的允許信息,并且將訪問控制的允許信息包含于密文,并且附加并發(fā)送消息認(rèn)證碼的值,若采用該構(gòu)成,則在認(rèn)證服務(wù)器中通過將訪問控制的登記信息作為最新的登記信息,能夠?qū)⒐?jié)點中的訪問控制的允許信息更新為最新的允許信息。換言之,在認(rèn)證服務(wù)器中通過僅變更訪問控制的登記信息就能夠簡單地變更訪問控制的允許信息。另外,認(rèn)證服務(wù)器S (訪問信息生成單元36)也可構(gòu)成為基于能夠變更的訪問控制的登記信息來生成訪問控制的允許信息。另外,認(rèn)證服務(wù)器S(訪問信息生成單元36) 也可以構(gòu)成為,在從節(jié)點接收訪問控制的請求信息時,通過取得的訪問控制的請求信息與預(yù)先登記的訪問控制的登記信息的邏輯運算來生成訪問控制的允許信息。這樣,在認(rèn)證服務(wù)器中具有訪問控制的登記信息時,即使在節(jié)點中不變更訪問控制的信息,通過僅在認(rèn)證服務(wù)器中變更訪問控制的登記信息,也能夠簡單地進行訪問控制的變更。另外,若采用在認(rèn)證服務(wù)器中具有訪問控制的登記信息,并且通過來自節(jié)點的訪問控制的請求信息與訪問控制的登記信息的邏輯運算,計算訪問控制的允許信息的技術(shù),則即使在節(jié)點中不變更訪問控制的信息,通過僅變更登記于認(rèn)證服務(wù)器的訪問控制的登記信息與認(rèn)證服務(wù)器中的邏輯運算的內(nèi)容中任一個,也能夠簡單地進行訪問控制的變更。(實施方式3)如圖7所示,本實施方式的加密密鑰發(fā)布系統(tǒng)主要是具有對第I節(jié)點A與第2節(jié)點B之間的通信進行中繼的代理節(jié)點C這點與實施方式2的加密密鑰發(fā)布系統(tǒng)不同。在本實施方式中,節(jié)點構(gòu)成為通過代理節(jié)點C間接地與其它節(jié)點進行通信。在本實施方式中,認(rèn)證服務(wù)器S構(gòu)成為向代理節(jié)點C發(fā)送訪問控制的允許信息。代理節(jié)點C具備通信單元(第4通信單元)40、允許信息存儲單元41、訪問控制單元42。通信單元40構(gòu)成為能夠通過信息通信網(wǎng)與各節(jié)點A、B以及認(rèn)證服務(wù)器S進行通信。允許信息存儲單元41構(gòu)成為對從認(rèn)證服務(wù)器S取得的訪問控制的允許信息進行存儲。訪問控制單元42構(gòu)成為,參照允許信息存儲單元41所存儲的訪問控制的允許信息,進行節(jié)點A、B間的訪問控制。在本動作例中,對如實施方式2那樣在節(jié)點A、B中進行訪問控制,并且附加代理節(jié)點C時的動作例進行說明。代理節(jié)點C如圖6所示,具有對作為通信發(fā)起者節(jié)點A和作為通信的響應(yīng)者的節(jié)點B的通信進行中繼的功能。換言之,節(jié)點A與節(jié)點B不直接進行通信,而經(jīng)由代理節(jié)點C進行通信。另外,在圖示例中,作為發(fā)起者的節(jié)點A即使在與認(rèn)證服務(wù)器S的之間也不直接地進行通信,而代理節(jié)點C與認(rèn)證服務(wù)器S進行通信。另一方面,作為響應(yīng)者的節(jié)點B均直接與認(rèn)證服務(wù)器S和代理節(jié)點C中任一個進行通信。參照圖6,進一步進行具體說明。這里,在作為通信發(fā)起者的節(jié)點A向代理節(jié)點C發(fā)送訪問控制的請求信息時,代理節(jié)點C訪問認(rèn)證服務(wù)器S(圖6的箭頭表示數(shù)據(jù)的發(fā)送)。在以下的動作例中,假設(shè)來自節(jié)點A的訪問控制的請求信息是“Aread writeexecute RBI, RB2, RB3”,來自節(jié)點B的訪問控制的請求信息是“B provide RB1”,來自代理節(jié)點C的訪問控制的請求信息是“C read write execute !provide*”。另外,假設(shè)認(rèn)證服務(wù)器S保存的訪問控制的登記信息,針對節(jié)點A是“Areadwrite execute RBI, RB2”,針對節(jié)點 B 是“B provide RBI, RB2”,針對代理節(jié)點 C 是“C
read write execute I provide*”。并且,在認(rèn)證服務(wù)器S中(訪問信息生成單元36),分別生成針對各節(jié)點A、B及代理節(jié)點C的訪問控制的允許信息作為各節(jié)點A、B和代理節(jié)點C的各自的訪問控制的請求信息與訪問控制的登記信息的共用部分(積集合)。圖6的上部的8個箭頭與下部的8個箭頭分別與圖4中的步驟Pl P8對應(yīng)。SP,上部的8個箭頭表示節(jié)點A、代理節(jié)點C及認(rèn)證服務(wù)器S, 與圖4中的節(jié)點A、節(jié)點B及認(rèn)證服務(wù)器S的關(guān)系。另外,下部的8個箭頭表示代理節(jié)點C、節(jié)點B及認(rèn)證服務(wù)器S,與圖4中的節(jié)點A、節(jié)點B及認(rèn)證服務(wù)器S的關(guān)系。在圖6所示的動作中,利用步驟P3從認(rèn)證服務(wù)器S向代理節(jié)點C發(fā)送“Cprovide*”,利用步驟P4從代理節(jié)點C向節(jié)點A發(fā)送“Aread write | execute RBI, RB2”。另外,利用步驟P3從認(rèn)證服務(wù)器S向節(jié)點B發(fā)送“B provide RB1”,利用步驟P4從節(jié)點B向代理節(jié)點 C 發(fā)送 C read write !execute*”。因此,如圖6所示,針對節(jié)點A的訪問控制的允許信息成為“Aread writeexecute RB1,RB2”,針對節(jié)點B的訪問控制的允許信息成為“B provide RB1”,針對代理
節(jié)點C的訪問控制的允許信息成為“C read write execute | provide*”(關(guān)于代理節(jié)點C,分開地記載讀出、寫入、執(zhí)行、提供)。此外,也可以從認(rèn)證服務(wù)器S向代理節(jié)點C利用步驟P3發(fā)送“C read write I execute*”,從節(jié)點B向代理節(jié)點C利用步驟P4發(fā)送“C provide*”??傊?最終針對代理節(jié)點C的訪問控制的允許信息成為“C read writeexecute | provide氺,,即可。若在針對節(jié)點A、B與代理節(jié)點C賦予如上述那樣的訪問控制的允許信息,則代理節(jié)點C(訪問控制單元42)(參照在允許信息存儲單元41中存儲的訪問控制的允許信息)對從節(jié)點A向節(jié)點B的訪問進行中繼。換句話說,在節(jié)點A訪問代理節(jié)點C時,代理節(jié)點C訪問節(jié)點B,來自節(jié)點B的響應(yīng)經(jīng)由代理節(jié)點C被回送給節(jié)點A。這里,在代理節(jié)點C中沒有訪問限制,但從節(jié)點A對節(jié)點B的訪問存在“A readwrite execute RBI,RB2”的限制,并且在節(jié)點B中,存在“B provide RB1”的限制,結(jié)果,
代理節(jié)點對從節(jié)點A向節(jié)點B的訪問進行中繼時,節(jié)點A只能訪問節(jié)點B的信息RBl。這樣,對代理節(jié)點C賦予訪問控制的允許信息“C read write executeprovide*”,因此在節(jié)點A請求信息RBl的操作(讀出、寫入、執(zhí)行)時,代理節(jié)點C收到針
對信息RBl的操作,代替節(jié)點A而是代理節(jié)點C請求針對節(jié)點B的信息RBl的操作,從而節(jié)點B基于訪問控制的允許信息提供信息RBl。因此,代理節(jié)點C能夠取得信息RBl。代理節(jié)點C取得的信息RBl被從代理節(jié)點C提供給節(jié)點A。另一方面,代理節(jié)點C在節(jié)點A請求信息RB2的操作時也向節(jié)點B進行該請求,但在針對節(jié)點B的訪問控制的允許信息中不包含信息RB2的提供,因此不從節(jié)點B向代理節(jié)點C提供信息RB2,節(jié)點A不能進行信息RB2的操作。這里,在基于節(jié)點B的訪問控制的請求信息是“B provide RB1,RB2”時,能夠進行基于節(jié)點A的信息RB2的操作。同樣地,在認(rèn)證服務(wù)器S中,在不是使用訪問控制的請求信息和訪問控制的登記信息的共用部分(積集合)而是和集合作為訪問控制的允許信息時,節(jié)點B也能夠提供信息RB2。若除去設(shè)置代理節(jié)點C這一點,則其他構(gòu)成以及動作與實施方式2相同。如上所述,在本實施方式的加密密鑰發(fā)布系統(tǒng)中,采用設(shè)置對組內(nèi)的節(jié)點間的通信進行中繼的代理節(jié)點C,從認(rèn)證服務(wù)器向代理節(jié)點發(fā)送訪問控制的允許信息的構(gòu)成。即,本實施方式的加密密鑰發(fā)布系統(tǒng),具有對第I節(jié)點A與第2節(jié)點B之間的通信進行中繼的代理節(jié)點C。認(rèn)證服務(wù)器S構(gòu)成為向代理節(jié)點C發(fā)送訪問控制的允許信息。代理節(jié)點C構(gòu)成為基于從認(rèn)證服務(wù)器S取得的訪問控制的允許信息對第I節(jié)點A與第2節(jié)點B之間的通信進行中繼。這樣,在進行訪問控制時,若使用代理節(jié)點, 則即使在節(jié)點中不變更訪問控制的信息,僅在代理節(jié)點中變更與訪問控制相關(guān)的信息,就能夠簡單地進行訪問控制的變更。(實施方式4)本動作例,對針對多個節(jié)點設(shè)定組,按組別進行節(jié)點的訪問控制的情況進行說明。為了簡單地說明,如圖8那樣,4個節(jié)點A、B、D、E能夠與代理節(jié)點C進行通信,與上述的實施方式3相同,使用具有密鑰發(fā)布的功能的認(rèn)證服務(wù)器S。圖8所示的動作,從上開始的8個箭頭分別與圖4中的步驟Pl P8對應(yīng)。另外,以下,對將節(jié)點A、B與節(jié)點D、E區(qū)分為不同的組的技術(shù)進行說明。這里,假設(shè)節(jié)點E與節(jié)點A同樣地進行信息的請求,節(jié)點D與節(jié)點B同樣地進行信息的提供的情況。需要將節(jié)點A、B、D、E區(qū)分為多個組是按信息的種類來設(shè)定標(biāo)識符并且提供同種的信息的節(jié)點存在多個的情況。例如,將RBl這樣的標(biāo)識符與溫度信息相關(guān)聯(lián),在節(jié)點B、D均能提供溫度信息時,2個節(jié)點A、E請求針對信息RBl的操作時,在代理節(jié)點C中,無法區(qū)分節(jié)點B、D中的哪個請求針對信息RBl的操作。在這樣的情況下,通過將節(jié)點A、B與節(jié)點D、E區(qū)分為不同的組,在節(jié)點A請求信息RBl時能夠從節(jié)點B提供,在節(jié)點E請求信息RBl時能夠從節(jié)點D提供。在本動作例中,如圖9所示,在實施方式I中說明的步驟P3、P4中發(fā)送的附加信息中包含區(qū)分組的標(biāo)識符。以下,將節(jié)點A、B與節(jié)點D、E設(shè)為不同的組,按照各組賦予Gl、G2作為組標(biāo)識符。現(xiàn)在,在步驟P3、P4中,假設(shè)發(fā)送組標(biāo)識符Gl作為附加信息。代理節(jié)點C按照從認(rèn)證服務(wù)器S發(fā)布相同的會話密鑰Ks的每個節(jié)點存儲組標(biāo)識符G1、G2,在代理節(jié)點C接收到的數(shù)據(jù)中所包含的組標(biāo)識符Gl、G2與存儲的組標(biāo)識符Gl、G2不一致,或代理節(jié)點C接收到的數(shù)據(jù)中不包含組標(biāo)識符Gl、G2時,不進行接收到的數(shù)據(jù)的中繼。即,在本實施方式中,允許信息存儲單元41構(gòu)成為,按照從認(rèn)證服務(wù)器S發(fā)布相同的會話密鑰Ks的每個節(jié)點存儲組標(biāo)識符G1、G2。另外,訪問控制單元42構(gòu)成為,在通信單元40接收到的數(shù)據(jù)中所包含的組標(biāo)識符G1、G2與允許信息存儲單元41中所存儲的組標(biāo)識符Gl、G2不一致,或通信單元40接收到的數(shù)據(jù)中未包含組標(biāo)識符Gl、G2時,不進行接收到的數(shù)據(jù)的中繼。此外,一個節(jié)點屬于多個組時,在步驟PU P2中使用組標(biāo)識符,能夠指定其屬于哪個組。此時,在一個節(jié)點屬于多個組時,通過在認(rèn)證服務(wù)器S中生成訪問控制的允許信息作為組標(biāo)識符的和集合,代理節(jié)點C能夠允許訪問和集合所包含全部的組。例如,在節(jié)點A、B屬于組I (組標(biāo)識符Gl),節(jié)點D、E屬于組2 (組標(biāo)識符G2)時,在代理節(jié)點C中,在與節(jié)點A之間進行通信的步驟Pl時設(shè)定組標(biāo)識符Gl,在與節(jié)點D之間進行通信的步驟P2時設(shè)定組標(biāo)識符G2,在與節(jié)點B之間進行通信的步驟P3時設(shè)定組標(biāo)識符G1,在與節(jié)點E之間進行通信的步驟P4時設(shè)定組標(biāo)識符G2。代理節(jié)點C(訪問控制單元42)具有與在哪個步驟中設(shè)定哪個組標(biāo)識符建立關(guān)聯(lián)的數(shù)據(jù)表(例如在允許信息存儲單元41中),通過參照該數(shù)據(jù)表,決定是否在節(jié)點之間進行數(shù)據(jù)的中繼。同樣地,按照每個信息與組標(biāo)識符進行關(guān)聯(lián),在取得信息的節(jié)點中,能夠利用組標(biāo)識符來選擇信息。使用圖8來說明本實施方式的動作例。在圖8中,表示了節(jié)點A從節(jié)點B取得信息RB1,節(jié)點E從節(jié)點D取得信息RBl的例子。針對節(jié) 點A,在步驟P3中認(rèn)證服務(wù)器S將“Cprovide*”發(fā)送給代理節(jié)點C,并且在步驟P4中,經(jīng)由代理節(jié)點C將來自認(rèn)證服務(wù)器S的“Aread write execute RB1”發(fā)送給節(jié)點A。另外,針對節(jié)點B,在步驟P3中認(rèn)證服務(wù)器S將“B provide RB1”發(fā)送給節(jié)點B,并且在步驟P4中,經(jīng)由節(jié)點B將來自認(rèn)證服務(wù)器S的“C read write | execute*” 發(fā)送給代理節(jié)點 C。針對節(jié)點E,在步驟P3中認(rèn)證服務(wù)器S將“C provide*"發(fā)送給代理節(jié)點C,并且在步驟P4中,經(jīng)由代理節(jié)點C將來自認(rèn)證服務(wù)器S的“E read write execute RB1”發(fā)送給節(jié)點E。另外,針對節(jié)點D,在步驟P3中認(rèn)證服務(wù)器S將“D provide RB1”發(fā)送給節(jié)點D,并且在步驟P4中,經(jīng)由節(jié)點D將來自認(rèn)證服務(wù)器S的“ C read write !execute*”發(fā)送給代理節(jié)點C。在針對節(jié)點A、B、D、E與代理節(jié)點C,如上述那樣賦予訪問控制的允許信息時,代理節(jié)點C對從節(jié)點A向節(jié)點B的訪問進行中繼,對節(jié)點E向節(jié)點D的訪問進行中繼。換句話說,當(dāng)節(jié)點A訪問代理節(jié)點C時,代理節(jié)點C訪問節(jié)點B,來自節(jié)點B的響應(yīng)經(jīng)由代理節(jié)點C被回送給節(jié)點A,另一方面節(jié)點E訪問代理節(jié)點C時,代理節(jié)點C訪問節(jié)點D,來自節(jié)點D的響應(yīng)經(jīng)由代理節(jié)點C被回送給節(jié)點E。這里,在代理節(jié)點C中與會話密鑰關(guān)聯(lián)地登記有組標(biāo)識符,在節(jié)點A向信息RBl請求訪問控制時,具有相同的組標(biāo)識符Gl的節(jié)點B的信息RBl被回送給節(jié)點A。另外,節(jié)點E向信息RBl請求訪問控制時,具有相同的組標(biāo)識符G2的節(jié)點D的信息RBl被回送給節(jié)點E。其他構(gòu)成以及動作與實施方式2相同。另外,圖9所示的動作例雖與實施方式I中附加了選項的圖3的動作例相對應(yīng),但也能夠與不具有選項的圖I的動作例相對應(yīng)。如上所述,在本實施方式的密鑰認(rèn)證系統(tǒng)中,對節(jié)點賦予組標(biāo)識符,在上述附加信息中包含組標(biāo)識符,使用組標(biāo)識符來進行訪問控制。S卩,對各節(jié)點A、B、D、E賦予組標(biāo)識符。另外,第I附加信息a以及第2附加信息^包含組標(biāo)識符。并且,代理節(jié)點C(訪問控制單元42)構(gòu)成為使用組標(biāo)識符來進行訪問控制。這樣,在進行訪問控制的情況下,若使用組標(biāo)識符,則能夠通過組標(biāo)識符來限制訪問控制涉及的范圍。換言之,能夠通過組標(biāo)識符來限制密文的到達(dá)范圍。
權(quán)利要求
1.ー種加密密鑰發(fā)布系統(tǒng),其特征在于,具備 第I節(jié)點; 第2節(jié)點;以及 認(rèn)證服務(wù)器,其生成在上述第I節(jié)點與上述第2節(jié)點之間的加密通信中所使用的會話密鑰, 上述第I節(jié)點與上述認(rèn)證服務(wù)器構(gòu)成為,保存在上述第I節(jié)點與上述認(rèn)證服務(wù)器之間的加密通信中所使用的第I密鑰, 上述第2節(jié)點與上述認(rèn)證服務(wù)器構(gòu)成為,保存在上述第2節(jié)點與上述認(rèn)證服務(wù)器之間的加密通信中所使用的第2密鑰, 上述第I節(jié)點構(gòu)成為,在向上述認(rèn)證服務(wù)器請求發(fā)行上述會話密鑰時生成第I生成隨機數(shù)并發(fā)送給上述認(rèn)證服務(wù)器, 上述第2節(jié)點構(gòu)成為,在向上述認(rèn)證服務(wù)器請求發(fā)行上述會話密鑰時生成第2生成隨機數(shù)并發(fā)送給上述認(rèn)證服務(wù)器, 上述認(rèn)證服務(wù)器構(gòu)成為, 若取得上述第I隨機數(shù)與上述第2隨機數(shù)則新生成上述會話密鑰, 使用第I消息與上述第I密鑰來計算第I消息認(rèn)證碼的值,其中,該第I消息包含上述取得的第I隨機數(shù)、上述新生成的會話密鑰以及規(guī)定的第I附加信息, 使用上述第I密鑰對上述取得的第I隨機數(shù)、上述新生成的會話密鑰以及上述第I附加信息進行加密來創(chuàng)建第I密文, 將上述第I密文與上述第I消息認(rèn)證碼的值發(fā)送給上述第I節(jié)點, 使用第2消息與上述第2密鑰來計算第2消息認(rèn)證碼的值,其中,該第2消息包含上述取得的第2隨機數(shù)、上述新生成的會話密鑰以及規(guī)定的第2附加信息, 使用上述第2密鑰對上述取得的第2隨機數(shù)、上述新生成的會話密鑰以及上述第2附加信息進行加密來創(chuàng)建第2密文, 將上述第2密文與上述第2消息認(rèn)證碼的值發(fā)送給上述第2節(jié)點, 上述第I節(jié)點構(gòu)成為, 若取得上述第I密文以及上述第I消息認(rèn)證碼的值,則使用上述第I密鑰對上述第I密文進行解密來取得上述會話密鑰與上述第I附加信息, 使用上述第I節(jié)點存儲的上述第I隨機數(shù)、對上述第I密文進行解密而得到的上述會話密鑰和上述第I附加信息、以及上述第I密鑰來計算上述第I消息認(rèn)證碼的值, 通過判斷上述第I節(jié)點計算出的上述第I消息認(rèn)證碼的值與從上述認(rèn)證服務(wù)器取得的上述第I消息認(rèn)證碼的值是否一致,來進行從上述認(rèn)證服務(wù)器取得的上述會話密鑰的認(rèn)證, 上述第2節(jié)點構(gòu)成為, 若取得上述第2密文以及上述第2消息認(rèn)證碼的值,則使用上述第2密鑰對上述第2密文進行解密來取得上述會話密鑰與上述第2附加信息, 使用上述第2節(jié)點存儲的上述第2隨機數(shù)、對上述第2密文進行解密而得到的上述會話密鑰和上述第2附加信息、以及上述第2密鑰來計算上述第2消息認(rèn)證碼的值, 通過判斷上述第2節(jié)點計算出的上述第2消息認(rèn)證碼的值與從上述認(rèn)證服務(wù)器取得的上述第2消息認(rèn)證碼的值是否一致,來進行從上述認(rèn)證服務(wù)器取得的上述會話密鑰的認(rèn)證。
2.根據(jù)權(quán)利要求I所述的加密密鑰發(fā)布系統(tǒng),其特征在干, 上述第I附加信息以及上述第2附加信息是訪問控制的允許信息。
3.根據(jù)權(quán)利要求2所述的加密密鑰發(fā)布系統(tǒng),其特征在干, 上述認(rèn)證服務(wù)器構(gòu)成為, 若從上述第I節(jié)點或者上述第2節(jié)點取得訪問控制的請求信息,則對取得的上述訪問控制的請求信息與預(yù)先登記的訪問控制的登記信息進行比較,在上述取得的訪問控制的請求信息未被包含于上述訪問控制的登記信息的情況下,使用上述訪問控制的登記信息作為上述訪問控制的允許信息。
4.根據(jù)權(quán)利要求2所述的加密密鑰發(fā)布系統(tǒng),其特征在干, 具有對上述第I節(jié)點與上述第2節(jié)點之間的通信進行中繼的代理節(jié)點, 上述認(rèn)證服務(wù)器構(gòu)成為,向上述代理節(jié)點發(fā)送上述訪問控制的允許信息, 上述代理節(jié)點構(gòu)成為,基于從上述認(rèn)證服務(wù)器取得的上述訪問控制的允許信息來對上述第I節(jié)點與上述第2節(jié)點之間的通信進行中繼。
5.根據(jù)權(quán)利要求4所述的加密密鑰發(fā)布系統(tǒng),其特征在干, 上述第I節(jié)點以及上述第2節(jié)點被賦予組標(biāo)識符, 上述第I附加信息以及上述第2附加信息包含組標(biāo)識符, 上述代理節(jié)點構(gòu)成為,使用上述組標(biāo)識符來進行訪問控制。
6.根據(jù)權(quán)利要求2所述的加密密鑰發(fā)布系統(tǒng),其特征在干, 上述認(rèn)證服務(wù)器構(gòu)成為,基于能夠變更的訪問控制的登記信息來生成上述訪問控制的允許信息。
7.根據(jù)權(quán)利要求2所述的加密密鑰發(fā)布系統(tǒng),其特征在干, 上述認(rèn)證服務(wù)器構(gòu)成為,若從上述第I節(jié)點或者上述第2節(jié)點接收到訪問控制的請求信息,則通過取得的訪問控制的請求信息與預(yù)先登記的訪問控制的登記信息的邏輯運算,來生成上述訪問控制的允許信息。
全文摘要
加密密鑰發(fā)布系統(tǒng)具備節(jié)點(A)、節(jié)點(B)以及認(rèn)證服務(wù)器(S)。認(rèn)證服務(wù)器(S)若取得節(jié)點(A)生成的第1隨機數(shù)與節(jié)點(B)生成的第2隨機數(shù),則生成會話密鑰。認(rèn)證服務(wù)器(S)向節(jié)點(A)發(fā)送第1消息認(rèn)證碼的值和使用第1密鑰對第1隨機數(shù)、會話密鑰和第1附加信息進行加密而得到的第1密文。認(rèn)證服務(wù)器(S)向節(jié)點(B)發(fā)送第2消息認(rèn)證碼的值和使用第2密鑰對第2隨機數(shù)、會話密鑰以及第2附加信息進行加密而得到的第2密文。節(jié)點(A)使用第1密鑰對第1密文進行解密來取得會話密鑰與第1附加信息,另外使用第1消息認(rèn)證碼的值進行會話密鑰的認(rèn)證。節(jié)點(B)使用第2密鑰對第2密文進行解密來取得會話密鑰與第2附加信息,另外使用第2消息認(rèn)證碼的值來進行會話密鑰的認(rèn)證。
文檔編號H04L9/32GK102804676SQ201080028210
公開日2012年11月28日 申請日期2010年6月23日 優(yōu)先權(quán)日2009年6月23日
發(fā)明者福田尚弘 申請人:松下電器產(chǎn)業(yè)株式會社