專利名稱:相互認證方法和裝置的制作方法
技術領域:
本發(fā)明涉及與網絡連接的計算機系統(tǒng)等裝置的相互認證方法和裝置以及所使用的一次性ID的生成方法、認證方法、認證系統(tǒng)、服務器、客戶端和程序。
特別地,本發(fā)明涉及至少對第1認證裝置和第2認證裝置之間的關系認證其正當性的相互認證方法和裝置以及適用于多個裝置間或應用程序間的認證的一次性ID的生成方法、使用了上述一次性ID的認證方法、認證系統(tǒng)、服務器、客戶端和程序。
背景技術:
在網絡上,某用戶為了證明自己的身分,必須進行認證。認證是指通過任意的協(xié)議,證明者向驗證者證明自己的身分,在電子商務等領域中是必需的技術。例如,在用戶希望向服務器證明身分時,用戶與證明者對應,服務器與驗證者對應。另外,相反,在服務器希望向用戶證明身分的情況下,服務器與證明者對應,用戶與驗證者對應。在一對一的裝置之間,有其立場反轉的情況,因此需要相互認證。
相互認證并不限于用戶和服務器之間,作為在任意的計算機之間證明身分的方法,正在被廣泛利用。最近,已知使用了公開密鑰密碼的方法,證明者具有公開密鑰和保密密鑰,證明者通過任意的協(xié)議向驗證者表示具有與公開密鑰對應的保密密鑰,來證明身分。
但是,在現(xiàn)有的相互認證方法中,由于用于認證的密鑰是單一的,所以如果一次知道了密鑰,則有第三者冒充用戶進行認證的情況。另外,用戶必須注意密鑰的保管,無法簡便地使用。
例如,在因特網那樣的非同步型網絡中,有多個計算機同時通信,證明者與多個驗證者同時執(zhí)行協(xié)議的情況。在WWW(World WideWeb)中,在HTTP(超文本傳輸協(xié)議WWW服務器和WWW游覽器或Web瀏覽器等在文件等的信息交換中使用的協(xié)議)的服務器、作為連接目標的客戶端之間,要求進行許多驗證。
另外,在上述那樣的相互認證技術中,現(xiàn)在在經由網絡在計算機之間(例如客戶端和服務器之間)進行通信時,為了排除不正當?shù)脑L問等,在提供服務等之前進行認證。在該認證中,一般雙方預先共有第三者無法知道的秘密信息(例如ID、密碼、隨機數(shù)或將這些信息作為參數(shù)的函數(shù)值等),根據該秘密信息相互認證各自的正當性。
另一方面,在IETF(Internet Engineering Task Force)正式發(fā)表的RFC(Request For Comments)中,作為在因特網中進行IP分組的加密和認證的安全協(xié)議,規(guī)定了IPsec(Security Architecture forInternet Protocol)。在該IPsec中,標準地采用自動生成并交換密碼、認證的參數(shù)的IKE(Internet Key Exchange)那樣的自動密鑰交換的協(xié)議(例如參照特開2002-374238號公報(第0002~0009段落))。
近年來,提案出了以下這樣被稱為P-SIGMA的密鑰交換、認證方式實現(xiàn)了在向該IKE方式導入一次性ID并使用了已知共有密鑰的IKE方式中成為問題的保護ID信息、防止DoS(Denial of Serviceattack)攻擊、遠程訪問等。
在該P-SIGMA中,例如通過圖1所示那樣的步驟進行密鑰交換和認證。
首先,客戶端向服務器發(fā)送SA(Security Association)的提出、隨機數(shù)Rc、DH(Diffie-Hellman)公開值gx、OID(一次性ID)。另外,在SA的提出中,包含與密碼算法、認證方式、用于密鑰交換的參數(shù)等有關的提出。
接著,服務器從接收到的OID識別客戶端,在無法識別的情況下,拒絕通信。在能夠識別的情況下,向客戶端發(fā)送承認了的SA、隨機數(shù)Rs、DH公開值gy、HASHs、用會話密鑰e加密了的IDs(服務器ID)。另外,會話密鑰e是將已知共有密鑰、隨機數(shù)Rs、隨機數(shù)Rc和DH共通密鑰gxy作為參數(shù)的附加了密鑰的散列(hash)函數(shù)的函數(shù)值,HASHs是將已知共有密鑰、隨機數(shù)Rs、隨機數(shù)Rc、DH公開值gx、gy和IDs作為參數(shù)的偽隨機數(shù)函數(shù)的函數(shù)值。
接著,客戶端驗證接收到的HASHs,并根據該HASHs確認服務器的正當性。如果HASHs正確,則向服務器發(fā)送HASHc、用會話密鑰e加密了的IDc(客戶端ID)。在此,HASHc是將已知共有密鑰、隨機數(shù)Rs、隨機數(shù)Rc、DH公開值gx、gy、IDc作為參數(shù)的偽隨機數(shù)函數(shù)的函數(shù)值。
接著,服務器驗證接收到的HASHc,根據該HASHc確認客戶端的正當性。如果HASHc正確,則結束該協(xié)議。
在該P-SIGMA中,如下這樣定義OID(一次性ID)。
OID1=prf(K,1)OID2=prf(K,2)……OIDn=prf(K,n) ……公式(1)在該定義式中,OIDn是在確立第n個SA時使用的一次性ID,prf是偽隨機數(shù)函數(shù),K是已知共有密鑰或根據已知共有密鑰生成的值。
因此,如果根據上述P-SIGMA,則能夠得到以下效果通過導入OID,第三者無法確定發(fā)送者和接收者,而如果是正當?shù)陌l(fā)送者和接收者,則能夠掌握作為識別信息的OID,同時由于在客戶端和服務器之間每次進行通信時(即每次進行SA的生成或更新時)都變更OID,所以第三者無法預測下次的OID。
但是,在上述P-SIGMA中,如果一次知道了已知共有密鑰,則能夠預測所有的OID,其結果是具有以下問題無法保證OID將來的安全性(即PFSPerfect Forward Security)。
以上,作為具體例子,說明了被稱為P-SIGMA的密鑰交換、認證方式,但一般在使用一次性ID進行多個裝置間或應用程序之間的認證的認證方式中,根據特定的秘密信息生成所有的一次性ID,也具有上述同樣的問題。
發(fā)明內容
本發(fā)明就是考慮了上述現(xiàn)有技術的各種問題而提出的,其第一個目的在于得到能夠安全并且簡便地進行相互認證的相互認證方法和裝置。
本發(fā)明的第二個目的在于提供一種難以竊聽而安全性優(yōu)越的一次性ID的生成方法、使用了上述一次性ID的認證方法、認證系統(tǒng)、服務器、客戶端和程序。
為了達到上述目的,本發(fā)明是一種認證經由通信線路連接的第1認證裝置和第2認證裝置的相互關系的相互認證方法,其特征在于包含將在上述第1認證裝置和第2認證裝置之間預先相互進行的認證的每次認證時使用前次認證的存儲數(shù)據更新了的更新結果作為履歷數(shù)據,在上述第1認證裝置和第2認證裝置各自中共通地存儲用來確定上述第1認證裝置的存儲數(shù)據、用來確定第2認證裝置的存儲數(shù)據的存儲步驟。上述第1認證裝置包含使用存儲的履歷數(shù)據新生成存儲數(shù)據,并且使用上述履歷數(shù)據對新的存儲數(shù)據進行加密并發(fā)送到第2認證裝置的第1發(fā)送步驟;根據來自上述第2認證裝置的存儲數(shù)據和上述發(fā)送的新存儲數(shù)據,更新上述履歷數(shù)據的第1更新步驟。上述第2認證裝置包含使用來自上述第1認證裝置的存儲數(shù)據和存儲的履歷數(shù)據新生成存儲數(shù)據,并且使用上述履歷數(shù)據對生成的新存儲數(shù)據進行加密并發(fā)送到第1認證裝置的第2發(fā)送步驟;根據來自上述第1認證裝置的存儲數(shù)據和上述發(fā)送的新存儲數(shù)據,更新上述履歷數(shù)據的第2更新步驟。所以,在上述第1認證裝置和第2認證裝置的至少一方裝置中,在根據履歷數(shù)據驗證了存儲數(shù)據的正當性時,驗證為第1認證裝置和第2認證裝置的相互關系是正當?shù)摹?br>
本發(fā)明還實現(xiàn)用來實施上述相互認證方法的相互認證裝置。該相互認證裝置由經由通信線路連接的第1認證裝置和第2認證裝置構成,并認證上述第1認證裝置和第2認證裝置之間的相互關系,其特征在于包括設置在上述第1認證裝置中,存儲用來確定該第1認證裝置的存儲數(shù)據的第1存儲器;設置在上述第2認證裝置中,存儲用來確定該第2認證裝置的存儲數(shù)據的第2存儲器;在上述第1認證裝置和第2認證裝置之間預先相互進行的認證的每次認證時,存儲前次認證的存儲數(shù)據的認證數(shù)據存儲裝置;將使用上述認證數(shù)據更新了的更新結果作為履歷數(shù)據,共通地存儲在上述第1認證裝置和第2認證裝置各自中的履歷數(shù)據存儲裝置;設置在上述第1認證裝置和第2認證裝置中的認證用數(shù)據發(fā)送側的認證裝置中,使用上述履歷數(shù)據新生成存儲數(shù)據的存儲數(shù)據生成裝置;使用上述履歷數(shù)據對生成的新存儲數(shù)據進行加密,并發(fā)送到認證用數(shù)據接收側的認證裝置的第1發(fā)送裝置;設置在認證用數(shù)據接收側的認證裝置中,使用來自上述認證用數(shù)據發(fā)送側的認證裝置的存儲數(shù)據和存儲的履歷數(shù)據,新生成存儲數(shù)據的存儲數(shù)據生成裝置;使用上述履歷數(shù)據對生成的新存儲數(shù)據進行加密,并回送到上述認證用數(shù)據發(fā)送側的認證裝置的第2發(fā)送裝置;設置在認證用數(shù)據發(fā)送側的認證裝置中,根據從上述認證用數(shù)據接收側的認證裝置回送的存儲數(shù)據和上述發(fā)送了的新存儲數(shù)據,更新上述履歷數(shù)據的第1更新裝置;設置在認證用數(shù)據接收側的認證裝置中,根據來自上述認證用數(shù)據發(fā)送側的認證裝置的存儲數(shù)據和上述回送的新存儲數(shù)據,更新上述履歷數(shù)據的第2更新裝置,其中在上述第1認證裝置和第2認證裝置的至少一方中具備在根據上述履歷數(shù)據驗證了存儲數(shù)據的正當性時,驗證為第1認證裝置和第2認證裝置的相互關系是正當?shù)尿炞C裝置。
該相互認證裝置也可以具有計算用來使用上述履歷數(shù)據對上述生成的新存儲數(shù)據進行加密的認證用數(shù)據的計算裝置。另外,該相互認證裝置還可以具有在通過上述計算裝置生成認證用數(shù)據時,生成加密用的數(shù)據的隨機數(shù)發(fā)生裝置。
另外,在本發(fā)明中,作為履歷數(shù)據,共通地將用來確定第1認證裝置的存儲數(shù)據、用來確定第2認證裝置的存儲數(shù)據存儲到上述第1認證裝置和第2認證裝置各自中。該履歷數(shù)據是在第1認證裝置和第2認證裝置之間預先相互進行的認證的每次認證時使用前次認證的存儲數(shù)據更新了的更新結果。第1認證裝置使用存儲的履歷數(shù)據生成新存儲數(shù)據,并且使用存儲的履歷數(shù)據對新存儲數(shù)據進行加密,并發(fā)送到第2認證裝置。由第2認證裝置接收該數(shù)據,第2認證裝置使用來自第1認證裝置的存儲數(shù)據和存儲的履歷數(shù)據生成新存儲數(shù)據,并且使用履歷數(shù)據對新的存儲數(shù)據進行加密,并發(fā)送到第1認證裝置。這時,第1認證裝置根據來自第2認證裝置的存儲數(shù)據和發(fā)送了的新存儲數(shù)據,更新履歷數(shù)據。另外,第2認證裝置根據來自第1認證裝置的存儲數(shù)據和發(fā)送了的新存儲數(shù)據,更新履歷數(shù)據。該發(fā)送步驟之后,在第1認證裝置和第2認證裝置的至少一方裝置中,在根據履歷數(shù)據驗證了存儲數(shù)據的正當性時,驗證為第1認證裝置和第2認證裝置的相互關系是正當?shù)?。即,在?認證裝置和第2認證裝置的一方認證裝置中,接收來自另一方認證裝置的包含履歷的數(shù)據,能夠對照存儲的履歷數(shù)據。然后,在發(fā)送時,發(fā)送根據存儲的履歷數(shù)據新生成的不同的履歷數(shù)據的數(shù)據,因此不進行同一數(shù)據的收發(fā)。因此,能夠提高保密性。
更詳細地說,其特征在于將上述履歷數(shù)據作為履歷數(shù)據K,作為該履歷數(shù)據K存儲的用來確定上述第1認證裝置的存儲數(shù)據是密碼數(shù)據C和認證數(shù)據R,用來確定上述第2認證裝置的存儲數(shù)據是密碼數(shù)據S和認證數(shù)據Q。
其特征在于上述第1發(fā)送步驟使用所存儲的履歷數(shù)據K的密碼數(shù)據S和認證數(shù)據R,新生成密碼數(shù)據C,并且針對所存儲的履歷數(shù)據K的認證數(shù)據R進行新生成,使用上述履歷數(shù)據K對生成的新認證數(shù)據R進行加密而求出認證數(shù)據A,向上述第2認證裝置發(fā)送上述認證數(shù)據A和新的密碼數(shù)據C,上述第1更新步驟從上述第2認證裝置接收數(shù)據,根據上述發(fā)送了的新的密碼數(shù)據C、接收到的新生成的密碼數(shù)據S、接收到的新生成的認證數(shù)據Q、上述發(fā)送了的新的認證數(shù)據R,更新上述履歷數(shù)據K,上述第2發(fā)送步驟從上述第1認證裝置接收數(shù)據,使用接收到的新的密碼數(shù)據C和所存儲的履歷數(shù)據K的認證數(shù)據Q,新生成密碼數(shù)據S,并且針對所存儲的履歷數(shù)據K的認證數(shù)據Q進行新生成,使用存儲了生成的新認證數(shù)據Q的履歷數(shù)據K進行加密而求出認證數(shù)據B,向第1認證裝置發(fā)送上述認證數(shù)據B和新的密碼數(shù)據S,上述第2更新步驟根據接收到的新的密碼數(shù)據C、新生成的密碼數(shù)據S、新生成的認證數(shù)據Q、接收到的新的認證數(shù)據R,更新上述履歷數(shù)據K,在上述第1認證裝置和第2認證裝置的至少一方裝置中,在根據履歷數(shù)據K而秘碼數(shù)據的正當性成立時,驗證為第1認證裝置和第2認證裝置的相互關系是正當?shù)摹?br>
其特征在于上述存儲步驟作為履歷數(shù)據存儲上述第1發(fā)送步驟、第1更新步驟、第2發(fā)送步驟、第2更新步驟中的認證的更新結果。
其特征在于上述認證數(shù)據R和認證數(shù)據Q的至少一方是通過隨機數(shù)產生裝置產生的隨機數(shù)、數(shù)據容量、時間數(shù)據的至少一個。
其特征在于在上述第1認證裝置的第1發(fā)送步驟中,作為密碼數(shù)據C生成基于上述密碼數(shù)據S和認證數(shù)據R的預先確定了的函數(shù)的運算結果的值,在上述第2認證裝置的第2發(fā)送步驟中,作為密碼數(shù)據S生成基于上述密碼數(shù)據C和上述認證數(shù)據Q的預先確定了的函數(shù)的運算結果的值。
其特征在于在上述第1認證裝置的第1發(fā)送步驟中,作為認證數(shù)據A求出基于上述生成了的新的認證數(shù)據R和上述履歷數(shù)據K的預先確定了的函數(shù)的運算結果的值,在上述第2認證裝置的第2發(fā)送步驟中,作為認證數(shù)據B求出基于上述生成了的新的認證數(shù)據Q和上述履歷數(shù)據K的預先確定了的函數(shù)的運算結果的值。
其特征在于上述第1認證裝置的驗證步驟在基于上述履歷數(shù)據K中的所存儲的認證數(shù)據Q和前次發(fā)送前所生成的密碼數(shù)據C的預先確定了的函數(shù)的運算結果的值與接收到的密碼數(shù)據S一致時,驗證為上述相互關系是正當?shù)摹?br>
其特征在于上述第2認證裝置的驗證步驟在基于上述履歷數(shù)據K中的所存儲的密碼數(shù)據S和認證數(shù)據R的預先確定了的函數(shù)的運算結果的值與接收到的密碼數(shù)據C一致時,驗證為上述相互關系是正當?shù)摹?br>
其特征在于上述存儲步驟將執(zhí)行多個上述第1發(fā)送步驟、第2發(fā)送步驟、第1更新步驟和第2更新步驟的結果所得到的數(shù)據作為履歷數(shù)據K存儲。
如以上說明所明確的,根據本發(fā)明,在第1認證裝置和第2認證裝置之間進行相互認證時,在第1認證裝置和第2認證裝置各自中共通地存儲履歷數(shù)據,同時更新履歷數(shù)據,因此能夠安全并且簡便地進行相互認證,例如具有以下效果能夠從在客戶端計算機和服務器計算機之間傳遞的信息,不泄漏客戶端計算機的密鑰地確實地進行認證。
本發(fā)明還提供一種在上述相互認證方法和裝置中使用的一次性ID的生成方法。是以下的方法將在多個裝置間或應用程序間的認證中只限使用一次的識別信息作為一次性ID,生成該一次性ID,其特征在于在進行上述認證的裝置或應用程序的各自中,生成在上述認證所必需的每個規(guī)定通信單位中都變化的可變共有密鑰,同時求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID。
在此,單向函數(shù)是指從參數(shù)求出結果(函數(shù)值)簡單,但從結果求出參數(shù)困難的函數(shù),在該單向函數(shù)中包含例如散列(Hash)函數(shù)、偽隨機數(shù)函數(shù)等。
作為規(guī)定的通信單位,例如可以將在IPsec中從確立SA到該SA無效為止之間在客戶端、服務器之間進行的一連串通信設置為規(guī)定的通信單位,也可以將在裝置之間或應用程序之間進行的一次數(shù)據發(fā)送接收設置為規(guī)定的通信單位。
可變共有密鑰對于上述每個通信單位都變化,并且如果是在進行認證的裝置之間或應用程序之間共有的而第三者無法知道的秘密信息,則可以是任意的密鑰。
認證是指在一方裝置(或一方應用程序)訪問另一方裝置(或另一方應用程序)時,另一方裝置確認一方裝置的正當性,識別信息是指在上述認證中至少從一方裝置向另一方裝置發(fā)送并用于該另一方裝置識別一方裝置的信息(ID)。
另外,在上述認證中,包含一方裝置進行另一方裝置的認證的單向認證和在雙方裝置中進行相互認證的相互認證。作為在上述認證中使用一次性ID的方法,例如可以列舉以下的方法在雙方裝置中生成一次性ID,同時一方裝置向另一方裝置發(fā)送一次性ID,另一方裝置對從一方裝置接收到的一次性ID和自己生成的一次性ID進行比較、對照,識別或認證一方裝置。
本發(fā)明是一種將在多個裝置之間或應用程序之間的認證中只限使用一次的識別信息作為一次性ID,生成該一次性ID的方法,其特征在于在進行上述認證的裝置或應用程序的各自中,生成對于上述認證所必需的每個規(guī)定通信單位都變化的可變共有密鑰,同時求出將該可變共有密鑰和與通信順序或次數(shù)有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID。
本發(fā)明是一種將在多個裝置之間或應用程序之間的認證中只限使用一次的識別信息作為一次性ID,生成該一次性ID的方法,其特征在于在進行上述認證的裝置或應用程序的各自中,在上述認證所必需的規(guī)定通信單位內生成隨機數(shù),同時求出將該隨機數(shù)和規(guī)定的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID。
本發(fā)明還是在將在一方裝置和另一方裝置之間的認證中只限一次使用的識別信息作為一次性ID,在雙方裝置中生成該一次性ID,同時一方裝置向另一方裝置發(fā)送一次性ID,另一方裝置通過對從一方裝置接收到的一次性ID和自己生成的一次性ID進行比較和對照,識別或認證另一方裝置的情況下,一方裝置和另一方裝置生成一次性ID的方法,其特征在于一方裝置和另一方裝置生成在上述認證所必需的每個規(guī)定的通信單位中變化的可變共有密鑰,同時求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,并從該函數(shù)值生成上述一次性ID。
本發(fā)明還是在將在一方裝置和另一方裝置之間的認證中只限一次使用的識別信息作為一次性ID,在雙方裝置中生成該一次性ID,同時一方裝置向另一方裝置發(fā)送一次性ID,另一方裝置通過對從一方裝置接收到的一次性ID和自己生成的一次性ID進行比較和對照,識別或認證另一方裝置的情況下,一方裝置和另一方裝置生成一次性ID的方法,其特征在于一方裝置和另一方裝置生成在上述認證所必需的每個規(guī)定的通信單位中變化的可變共有密鑰,同時求出將該可變共有密鑰和與通信順序或次數(shù)有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,并從該函數(shù)值生成上述一次性ID。
本發(fā)明還是在將在一方裝置和另一方裝置之間的認證中只限一次使用的識別信息作為一次性ID,在雙方裝置中生成該一次性ID,同時一方裝置向另一方裝置發(fā)送一次性ID,另一方裝置通過對從一方裝置接收到的一次性ID和自己生成的一次性ID進行比較和對照,識別或認證另一方裝置的情況下,一方裝置和另一方裝置生成一次性ID的方法,其特征在于一方裝置和另一方裝置在上述認證所必需的每個規(guī)定的通信單位中生成隨機數(shù),同時求出將該隨機數(shù)和規(guī)定的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,并從該函數(shù)值生成上述一次性ID。
本發(fā)明還是生成每個通信單位都變化的可變共有密鑰,并且求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用該一次性ID(SIGNALn),進行相互通信的第1裝置和第2裝置之間的認證的認證方法,其特征在于包括上述第1裝置使用在與上述第2裝置之間預先共有了的可變共有密鑰生成上述一次性ID,同時向上述第2裝置發(fā)送至少將該生成了的一次性ID、在該第1裝置中預先設置了的ID作為參數(shù)的單向函數(shù)Fc的函數(shù)值、預先存儲在該第1裝置中的Diffie-Hellman公開值的一方的步驟;上述第2裝置通過計算求出上述一次性ID和上述單向函數(shù)Fc的函數(shù)值,對該計算結果、從上述第1裝置接收到的一次性ID和單向函數(shù)Fc的函數(shù)值進行對照,判斷上述第1裝置的正當性的步驟;上述第2裝置在判斷出上述第1裝置是正當?shù)那闆r下,向上述第1裝置發(fā)送至少將預先存儲在該第2裝置中的ID作為參數(shù)的單向函數(shù)Fs的函數(shù)值、預先存儲在該第2裝置中的Diffie-Hellman公開值的另一方的步驟;上述第1裝置通過計算求出上述單向函數(shù)Fs的函數(shù)值,對該計算結果、從上述第2裝置接收到的單向函數(shù)Fs的函數(shù)值進行對照,判斷上述第2裝置的正當性的步驟。
本發(fā)明的特征還在于在上述認證方法中,作為上述單向函數(shù)Fc,使用將規(guī)定的共有密鑰、上述Diffie-Hellman公開值的一方、預先設置在上述第1裝置中的ID、上述一次性ID作為參數(shù)的偽隨機數(shù)函數(shù),同時作為上述單向函數(shù)Fs,使用將上述規(guī)定的共有密鑰、上述Diffie-Hellman公開值的一方、上述Diffie-Hellman公開值的另一方、預先設置在上述第2裝置中的ID、上述一次性ID作為參數(shù)的偽隨機數(shù)函數(shù)。
本發(fā)明還是生成可變共有密鑰,并且求出將可變共有密鑰和與通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)生成一次性ID,使用該一次性ID進行第1裝置和第2裝置之間的認證的認證方法,其特征在于包括上述第1裝置作為第1一次性ID(SIGNALn, j)生成將在與上述第2裝置之間預先共有了的第1可變共有密鑰、與該第1裝置的通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,同時使用上述第1可變共有密鑰,對預先設置在上述第1裝置中的ID、預先設置在上述第2裝置中的ID、預先存儲在該第1裝置中的Diffie-Hellman公開值的一方和上述第1一次性ID進行加密,向上述第2裝置發(fā)送該加密數(shù)據和上述第1一次性ID的步驟;上述第2裝置通過計算求出上述第1一次性ID,通過對該計算結果、從上述第1裝置接收到的上述第1一次性ID進行對照,識別上述第1裝置的步驟;上述第2裝置在識別出上述第1裝置的情況下,使用上述第1可變共有密鑰解碼上述加密數(shù)據,根據包含在該解碼了的數(shù)據中的預先設置在上述第1裝置中的ID、預先設置在該第2裝置中的ID和上述第1一次性ID,判斷上述第1裝置的正當性的步驟;上述第2裝置在判斷出上述第1裝置是正當?shù)那闆r下,作為第2一次性ID(SIGNAL’n,1)生成將上述第1可變共有密鑰和與該第2裝置的通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,同時作為第2可變共有密鑰根據從上述第1裝置接收到的Diffie-Hellman公開值的一方和預先存儲在該第2裝置中的Diffie-Hellman公開值的另一方生成Diffie-Hellman共通密鑰,向上述第1裝置發(fā)送將該第2可變共有密鑰、預先設置在上述第1裝置中的ID、預先設置在該第2裝置中的ID和上述第2一次性ID作為參數(shù)的單向函數(shù)h的函數(shù)值、上述Diffie-Hellman公開值的另一方、上述第2一次性ID的步驟;上述第1裝置通過計算求出上述第2一次性ID,通過對該計算結果、從上述第2裝置接收到的上述第2一次性ID進行對照,識別上述第2裝置的步驟;上述第1裝置在識別出上述第2裝置的情況下,作為上述第2可變共有密鑰根據從上述第2裝置接收到的上述Diffie-Hellman公開值的另一方、預先存儲在該第1裝置中的上述Diffie-Hellman公開值的一方生成Diffie-Hellman共通密鑰,同時使用該第2可變共有密鑰,通過計算求出上述單向函數(shù)h的函數(shù)值,通過對該計算結果、從上述第2裝置接收到的單向函數(shù)h的函數(shù)值進行對照,判斷上述第2裝置的正當性的步驟。
本發(fā)明的特征還在于在上述認證方法中,作為生成上述第2一次性ID的單向函數(shù),使用與生成上述第1一次性ID的單向函數(shù)不同的單向函數(shù)。
本發(fā)明還是在裝置間或應用程序間生成規(guī)定的可變共有密鑰,在規(guī)定的通信單位內生成隨機數(shù),并且求出將該隨機數(shù)和上述可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用該一次性ID,進行第1裝置和第2裝置之間的認證(相互認證)的認證方法,其特征在于包括上述第1裝置生成第1隨機數(shù),同時作為第1一次性ID(SIGNALc1)求出將在與上述第2裝置之間預先共有了的第1共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述第2裝置發(fā)送該第1一次性ID和上述第1隨機數(shù)的步驟;上述第2裝置生成第2隨機數(shù),同時作為第2一次性ID(SIGNALs1)求出將上述第1隨機數(shù)和上述第1共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述第1裝置發(fā)送該第2一次性ID和上述第2隨機數(shù)的步驟;上述第1裝置根據上述第1隨機數(shù)和上述第1共有密鑰,通過計算求出上述第2一次性ID,通過對該計算結果、從上述第2裝置接收到的上述第2一次性ID進行比較,判斷上述第2裝置的正當性的步驟;上述第1裝置根據上述第1隨機數(shù)和上述第2隨機數(shù)生成第2共有密鑰,同時作為第3一次性ID(SIGNALc2)求出將該第2共有密鑰、上述第1隨機數(shù)和上述第2隨機數(shù)作為參數(shù)的單向函數(shù)的函數(shù)值,向上述第2裝置發(fā)送該第3一次性ID的步驟;上述第2裝置根據上述第1隨機數(shù)和上述第2隨機數(shù)生成上述第2共有密鑰,同時根據該第2共有密鑰、上述第1隨機數(shù)和上述第2隨機數(shù)通過計算求出上述第3一次性ID,通過對該計算結果、從上述第1裝置接收到的上述第3一次性ID進行比較,判斷上述第1裝置的正當性的步驟。
本發(fā)明還是在裝置間或應用程序間生成規(guī)定的可變共有密鑰,在規(guī)定的通信單位內生成隨機數(shù),并且求出將該隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用該一次性ID,進行第1裝置和第2裝置之間的認證(相互認證)的認證方法,其特征在于包括上述第1裝置生成第1隨機數(shù),同時作為第1一次性ID(SIGNALc1)求出將在與上述第2裝置之間預先共有了的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述第2裝置發(fā)送該第1一次性ID和上述第1隨機數(shù)的步驟;上述第2裝置生成第2隨機數(shù),同時作為第2一次性ID(SIGNALs1)求出將上述第1隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述第1裝置發(fā)送該第2一次性ID和上述第2隨機數(shù)的步驟;上述第1裝置根據上述第1隨機數(shù)和上述共有密鑰,通過計算求出上述第2一次性ID,通過對該計算結果、從上述第2裝置接收到的上述第2一次性ID進行比較,判斷上述第2裝置的正當性的步驟;上述第1裝置作為第3一次性ID(SIGNALc2)求出將上述第1隨機數(shù)、上述第2隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述第2裝置發(fā)送該第3一次性ID的步驟;上述第2裝置根據上述第1隨機數(shù)、上述第2隨機數(shù)和上述共有密鑰通過計算求出上述第3一次性ID,通過對該計算結果、從上述第1裝置接收到的上述第3一次性ID進行比較,判斷上述第1裝置的正當性的步驟。
本發(fā)明的特征還在于在上述認證方法中,在用在上述第1裝置和上述第2裝置之間預先共有了的共有密鑰對上述第1隨機數(shù)和上述第2隨機數(shù)進行了加密的狀態(tài)下進行發(fā)送。
本發(fā)明的特征還在于在上述認證方法中,在上述第2裝置向上述第1裝置發(fā)送上述第2一次性ID和上述第2隨機數(shù)的步驟中,上述第2裝置將在與上述第1裝置之間預先共有了的隨機數(shù)作為初始隨機數(shù),進行將該初始隨機數(shù)和上述第1隨機數(shù)作為參數(shù)的規(guī)定的計算,向上述第1裝置發(fā)送該計算結果,另一方面上述第1裝置作為上述第2裝置的正當性的判斷材料,與上述第2一次性ID一起使用從上述第2裝置接收到的上述計算結果。
本發(fā)明的特征還在于在上述認證方法中,在上述第1裝置向上述第2裝置發(fā)送上述第3一次性ID的步驟中,上述第1裝置進行將上述第1隨機數(shù)和上述第2隨機數(shù)作為參數(shù)的規(guī)定的計算,向上述第2裝置發(fā)送該計算結果,另一方面上述第2裝置作為上述第1裝置的正當性的判斷材料,與上述第3一次性ID一起使用從上述第1裝置接收到的上述計算結果。
本發(fā)明還是在裝置間或應用程序間生成規(guī)定的可變共有密鑰,在規(guī)定的通信單位內生成隨機數(shù),并且求出將該隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用該一次性ID,進行第1裝置和第2裝置之間的認證的認證方法,其特征在于包括上述第1裝置生成第1隨機數(shù),同時作為第1一次性ID(SIGNALci)求出將在與上述第2裝置之間預先共有了的共有密鑰、第1存儲隨機數(shù)和第2存儲隨機數(shù)作為參數(shù)的單向函數(shù)的函數(shù)值,向上述第2裝置發(fā)送用上述共有密鑰對預先設置在該第1裝置中的ID、預先設置在上述第2裝置中的ID和上述第1隨機數(shù)進行了加密了的第1加密數(shù)據、上述第1一次性ID的步驟;上述第2裝置通過計算求出上述第1一次性ID,通過對該計算結果、從上述第1裝置接收到的上述第1一次性ID進行對照,識別上述第1裝置的步驟;上述第2裝置在識別出上述第1裝置的情況下,使用上述共有密鑰對上述第1加密數(shù)據進行解密,根據包含在該解密了的數(shù)據中的預先設置在上述第1裝置中的ID和預先設置在該第2裝置中的ID,判斷上述第1裝置的正當性的步驟;上述第2裝置在判斷出上述第1裝置是正當?shù)那闆r下,生成第2隨機數(shù),同時作為第2一次性ID(SIGNALsi)求出將上述第1隨機數(shù)、第2存儲隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述第1裝置發(fā)送用上述共有密鑰對預先設置在上述第1裝置中的ID、預先設置在該第2裝置中的ID和上述第2隨機數(shù)進行了加密的第2加密數(shù)據、上述第2一次性ID的步驟;上述第2裝置將上述第1存儲隨機數(shù)置換為上述第1隨機數(shù),將上述第2存儲隨機數(shù)置換為上述第2隨機數(shù)的步驟;上述第1裝置通過計算求出上述第2一次性ID,通過對該計算結果、從上述第2裝置接收到的上述第2一次性ID進行對照,識別上述第2裝置的步驟;上述第1裝置在識別出上述第2裝置的情況下,使用上述共有密鑰對上述第2加密數(shù)據進行解密,根據包含在該解密了的數(shù)據中的預先設置在上述第2裝置中的ID和預先設置在該第1裝置中的ID,判斷上述第2裝置的正當性的步驟;上述第1裝置將上述第1存儲隨機數(shù)置換為上述第1隨機數(shù),將上述第2存儲隨機數(shù)置換為上述第2隨機數(shù)的步驟。
本發(fā)明的特征還在于在上述認證方法中,在將上述第1存儲隨機數(shù)置換為上述第1隨機數(shù),將上述第2存儲隨機數(shù)置換為上述第2隨機數(shù)后,通過根據這些第1存儲隨機數(shù)和第2存儲隨機數(shù)生成上述共有密鑰,來使該共有密鑰變化。
本發(fā)明還是生成在每個通信單位中變化的可變共有密鑰,并且求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用該一次性ID(SIGNALn)在與客戶端之間進行認證的服務器,其特征在于包括從上述客戶端接收至少將預先設置在上述客戶端中的客戶端ID作為參數(shù)的單向函數(shù)Fc的函數(shù)值、預先存儲在上述客戶端中的Diffie-Hellman公開值的一方、上述一次性ID的接收裝置;通過計算求出上述單向函數(shù)的函數(shù)值Fc和上述一次性ID,通過對該計算結果、從上述客戶端接收到的上述一次性ID和上述單向函數(shù)Fc的函數(shù)值進行比較,判斷上述客戶端的正當性的判斷裝置;在上述判斷裝置判斷出上述客戶端是正當?shù)那闆r下,向上述客戶端發(fā)送至少將預先設置在該服務器中的服務器ID作為參數(shù)的單向函數(shù)Fs的函數(shù)值、預先存儲在該服務器中的Diffie-Hellman公開值的另一方的發(fā)送裝置。
本發(fā)明還是生成每個通信單位都變化的可變共有密鑰,并且求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用該一次性ID(SIGNALn)在與服務器之間進行認證的客戶端,其特征在于包括使用在與上述服務器之間預先共有了的可變共有密鑰生成上述一次性ID,同時通過計算求出至少將預先設置在該客戶端中的客戶端ID作為參數(shù)的單向函數(shù)Fc的函數(shù)值,向上述服務器發(fā)送這些一次性ID和單向函數(shù)Fc的函數(shù)值、預先存儲在該客戶端中的Diffie-Hellman公開值的一方的發(fā)送裝置;從上述服務器接收至少將預先設置在上述服務器中的服務器ID作為參數(shù)的單向函數(shù)Fs的函數(shù)值、預先存儲在上述服務器中的Diffie-Hellman公開值的另一方的接收裝置;通過計算求出上述單向函數(shù)Fs的函數(shù)值,通過對該計算結果、從上述服務器接收到的上述單向函數(shù)Fs的函數(shù)值進行比較,判斷上述服務器的正當性的判斷裝置。
本發(fā)明的特征還在于作為認證系統(tǒng),具備上述服務器、上述客戶端。
本發(fā)明還是在生成每個通信單位都變化的可變共有密鑰,并且求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,根據該一次性ID(SIGNALn)在與客戶端之間進行認證的服務器中執(zhí)行的程序,其特征在于使上述服務器執(zhí)行以下處理從上述客戶端接收至少將預先設置在上述客戶端中的客戶端ID作為參數(shù)的單向函數(shù)Fc的函數(shù)值、預先存儲在上述客戶端中的Diffie-Hellman公開值的一方、上述一次性ID的處理;通過計算求出上述單向函數(shù)的函數(shù)值Fc和上述一次性ID,通過對該計算結果、從上述客戶端接收到的上述一次性ID和上述單向函數(shù)Fc的函數(shù)值進行比較,判斷上述客戶端的正當性的處理;在判斷出上述客戶端是正當?shù)那闆r下,向上述客戶端發(fā)送至少將預先設置在上述服務器中的服務器ID作為參數(shù)的單向函數(shù)Fs的函數(shù)值、預先存儲在上述服務器中的Diffie-Hellman公開值的另一方的處理。
本發(fā)明還是在生成每個通信單位都變化的可變共有密鑰,并且求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,根據該一次性ID(SIGNALn)在與服務器之間進行認證的客戶端中執(zhí)行的程序,其特征在于使上述客戶端執(zhí)行以下處理使用在與上述服務器之間預先共有了的可變共有密鑰生成上述一次性ID,同時通過計算求出至少將預先設置在上述客戶端中的客戶端ID作為參數(shù)的單向函數(shù)Fc的函數(shù)值,向上述服務器發(fā)送這些一次性ID和單向函數(shù)Fc的函數(shù)值、預先存儲在上述客戶端中的Diffie-Hellman公開值的一方的處理;從上述服務器接收至少將預先設置在上述服務器中的服務器ID作為參數(shù)的單向函數(shù)Fs的函數(shù)值、預先存儲在上述服務器中的Diffie-Hellman公開值的另一方的處理;通過計算求出上述單向函數(shù)Fs的函數(shù)值,通過對該計算結果、從上述服務器接收到的上述單向函數(shù)Fs的函數(shù)值進行比較,判斷上述服務器的正當性的處理。
本發(fā)明還是生成可變共有密鑰,并且求出將可變共有密鑰和與通信順有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)生成一次性ID,使用該一次性ID在與客戶端之間進行認證的服務器,其特征在于包括將在與上述客戶端之間預先共有了的第1可變共有密鑰、與上述客戶端的通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值作為第1一次性ID(SIGNALn,j),并從上述客戶端接收用上述第1共有密鑰對該第1一次性ID、預先設置在上述客戶端中的客戶端ID、預先設置在該服務器中的服務器ID、預先存儲在上述客戶端中的Diffie-Hellman公開值的一方進行了加密的加密數(shù)據、上述第1一次性ID的接收裝置;通過計算求出上述第1一次性ID,通過對該計算結果、從上述客戶端接收到的上述第1一次性ID進行對照,識別上述客戶端,在識別出上述客戶端的情況下,使用上述第1可變共有密鑰對上述加密數(shù)據進行解密,根據包含在該解密數(shù)據中的上述客戶端ID、上述服務器ID和上述第1一次性ID,判斷上述客戶端的正當性的判斷裝置;在上述判斷裝置判斷出上述客戶端是正當?shù)那闆r下,作為第2一次性ID(SIGNAL’n,1)生成將上述第1可變共有密鑰和與該服務器的通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,同時作為第2可變共有密鑰根據從上述客戶端接收到的Diffie-Hellman公開值的一方、預先存儲在該服務器中的Diffie-Hellman公開值的另一方生成Diffie-Hellman共通密鑰,向上述客戶端發(fā)送將該第2可變共有密鑰、上述客戶端ID、上述服務器ID和上述第2一次性ID作為參數(shù)的單向函數(shù)h的函數(shù)值、上述Diffie-Hellman公開值的另一方、上述第2一次性ID的發(fā)送裝置。
本發(fā)明還是生成在每個通信單位中變化的可變共有密鑰,并且求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)生成一次性ID,使用該一次性ID在與服務器之間進行認證的客戶端,其特征在于包括作為第1一次性ID(SIGNALn,j)生成將在與上述服務器之間預先共有了的第1可變共有密鑰、與該客戶端的通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,同時使用上述第1可變共有密鑰,對預先設置在該客戶端中的客戶端ID、預先設置在上述服務器中的服務器ID、預先存儲在該客戶端中的Diffie-Hellman公開值的一方和上述第1一次性ID進行加密,向上述服務器發(fā)送該加密數(shù)據和上述第1一次性ID的發(fā)送裝置;將上述第1可變共有密鑰和與上述服務器的通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值作為第2一次性ID(SIGNAL’n,1),從上述服務器接收將上述第2一次性ID、上述第2可變共有密鑰、上述客戶端ID和上述服務器ID作為參數(shù)的單向函數(shù)h的函數(shù)值、預先存儲在上述服務器中的Diffie-Hellman公開值的另一方、上述第2一次性ID的接收裝置;通過計算求出上述第2一次性ID,通過對該計算結果、從上述服務器接收到的上述第2一次性ID進行對照,識別上述服務器,在識別出上述服務器的情況下,作為上述第2可變共有密鑰根據從上述服務器接收到的上述Diffie-Hellman公開值的另一方、預先存儲在該客戶端中的上述Diffie-Hellman公開值的一方生成Diffie-Hellman共通密鑰,同時使用該第2可變共有密鑰,通過計算求出上述單向函數(shù)h的函數(shù)值,通過對該計算結果、從上述服務器接收到的單向函數(shù)h的函數(shù)值進行對照,判斷上述服務器的正當性的判斷裝置。
本發(fā)明的特征還在于由上述服務器、上述客戶端構成認證系統(tǒng)。
本發(fā)明還是在裝置間或應用程序間生成規(guī)定的可變共有密鑰,在規(guī)定的通信單位內生成隨機數(shù),并且求出將該隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用該一次性ID,在與客戶端之間進行相互認證的服務器,其特征在于包括將在與上述客戶端之間預先共有了的第1共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第1一次性ID(SIGNALc1),從上述客戶端接收該第1一次性ID和在上述客戶端中生成的第1隨機數(shù)的第1接收裝置;生成第2隨機數(shù),同時作為第2一次性ID(SIGNALs1)求出將上述第1隨機數(shù)和上述第1共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述客戶端發(fā)送該第2一次性ID和上述第2隨機數(shù)的發(fā)送裝置;將上述第1隨機數(shù)、上述第2隨機數(shù)和第2共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第3一次性ID(SIGNALc2),從上述客戶端接收該第3一次性ID的第2接收裝置;根據上述第1隨機數(shù)和上述第2隨機數(shù)生成上述第2共有密鑰,同時根據該第2共有密鑰、上述第1隨機數(shù)和上述第2隨機數(shù)通過計算求出上述第3一次性ID,通過對該計算結果、從上述客戶端接收到的上述第3一次性ID進行比較,判斷上述客戶端的正當性的判斷裝置。
本發(fā)明還是在裝置間或應用程序間生成規(guī)定的可變共有密鑰,在規(guī)定的通信單位內生成隨機數(shù),并且求出將該隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用該一次性ID,在與服務器之間進行相互認證的客戶端,其特征在于包括生成第1隨機數(shù),同時作為第1一次性ID(SIGNALc1)求出將在與上述服務器之間預先共有了的第1共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述服務器發(fā)送該第1一次性ID和上述第1隨機數(shù)的第1發(fā)送裝置;將上述第1隨機數(shù)、上述第1共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第2一次性ID(SIGNALs1),從上述服務器接收該第2一次性ID、在上述服務器中生成的第2隨機數(shù)的接收裝置;根據上述第1隨機數(shù)和上述第1共有密鑰,通過計算求出上述第2一次性ID,通過對該計算結果、從上述服務器接收到的上述第2一次性ID進行比較,判斷上述服務器的正當性的判斷裝置;在上述判斷裝置判斷出上述服務器是正當?shù)那闆r下,根據上述第1隨機數(shù)和上述第2隨機數(shù)生成第2共有密鑰,同時作為第3一次性ID(SIGNALc2)求出將該第2共有密鑰、上述第1隨機數(shù)和上述第2隨機數(shù)作為參數(shù)的單向函數(shù)的函數(shù)值,向上述服務器發(fā)送該第3一次性ID的第2發(fā)送裝置。
本發(fā)明的特征還在于作為認證系統(tǒng)具有上述服務器、上述客戶端。
本發(fā)明還是權利要求29所述的發(fā)明,是在裝置間或應用程序間生成規(guī)定的可變共有密鑰,在規(guī)定的通信單位內生成隨機數(shù),并且求出將該隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用該一次性ID,在與客戶端之間進行相互認證的服務器,其特征在于包括將在與上述客戶端之間預先共有了的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第1一次性ID(SIGNALc1),從上述客戶端接收該第1一次性ID和在上述客戶端中生成的第1隨機數(shù)的第1接收裝置;生成第2隨機數(shù),同時作為第2一次性ID(SIGNALs1)求出將上述第1隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述客戶端發(fā)送該第2一次性ID和上述第2隨機數(shù)的發(fā)送裝置;將上述共有密鑰、上述第1隨機數(shù)和上述第2隨機數(shù)作為參數(shù)的單向函數(shù)的函數(shù)值作為第3一次性ID(SIGNALc2),從上述客戶端接收該第3一次性ID的第2接收裝置;根據上述第1隨機數(shù)和上述第2隨機數(shù)和上述共有密鑰通過計算生成上述第3一次性ID,通過對該計算結果、從上述客戶端接收到的上述第3一次性ID進行比較,判斷上述客戶端的正當性的判斷裝置。
本發(fā)明還是在裝置間或應用程序間生成規(guī)定的可變共有密鑰,在規(guī)定的通信單位內生成隨機數(shù),并且求出將該隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用該一次性ID,在與服務器之間進行相互認證的客戶端,其特征在于包括生成第1隨機數(shù),同時作為第1一次性ID(SIGNALc1)求出將在與上述服務器之間預先共有了的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述服務器發(fā)送該第1一次性ID和上述第1隨機數(shù)的第1發(fā)送裝置;將上述第1隨機數(shù)、上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第2一次性ID(SIGNALs1),從上述服務器接收該第2一次性ID、在上述服務器中生成的第2隨機數(shù)的接收裝置;根據上述第1隨機數(shù)和上述共有密鑰,通過計算求出上述第2一次性ID,通過對該計算結果、從上述服務器接收到的上述第2一次性ID進行比較,判斷上述服務器的正當性的判斷裝置;在通過上述判斷裝置判斷出上述服務器是正當?shù)那闆r下,作為第3一次性ID(SIGNALc2)求出將上述第1隨機數(shù)、上述第2隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述服務器發(fā)送該第3一次性ID的第2發(fā)送裝置。
本發(fā)明的特征還在于作為認證系統(tǒng)具有上述服務器、上述客戶端。
本發(fā)明還是在裝置間或應用程序間生成規(guī)定的可變共有密鑰,在規(guī)定的通信單位內生成隨機數(shù),并且求出將該隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用該一次性ID,在與客戶端之間進行相互認證的服務器,其特征在于包括將在與上述客戶端之間預先共有了的共有密鑰、第1存儲隨機數(shù)和第2存儲隨機數(shù)作為參數(shù)的單向函數(shù)的函數(shù)值作為第1一次性ID(SIGNALci),從上述客戶端接收該第1一次性ID,同時從上述客戶端接收用上述共有密鑰對在上述客戶端中生成的第1隨機數(shù)、預先設置在上述客戶端中的客戶端ID和預先設置在該服務器中服務器ID進行了加密的第1加密數(shù)據的接收裝置;通過計算求出上述第1一次性ID,通過對該計算結果、從上述客戶端接收到的上述第1一次性ID進行對照,識別上述客戶端,在識別出上述客戶端的情況下,使用上述共有密鑰對上述第1加密數(shù)據進行解密,根據包含在該解密了的數(shù)據中的上述客戶端ID和上述服務器ID,判斷上述客戶端的正當性的判斷裝置;在通過上述判斷裝置判斷出上述客戶端是正當?shù)那闆r下,生成第2隨機數(shù),同時作為第2一次性ID(SIGNALsi)求出將上述第1隨機數(shù)、上述第2存儲隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述客戶端發(fā)送用上述共有密鑰對上述客戶端ID、上述服務器ID和上述第2隨機數(shù)進行了加密的第2加密數(shù)據、上述第2一次性ID的發(fā)送裝置;將上述第1存儲隨機數(shù)置換為上述第1隨機數(shù),將上述第2存儲隨機數(shù)置換為上述第2隨機數(shù)的置換裝置。
本發(fā)明還是在裝置間或應用程序間生成規(guī)定的可變共有密鑰,在規(guī)定的通信單位內生成隨機數(shù),并且求出將該隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用該一次性ID,在與服務器之間進行相互認證的客戶端,其特征在于包括生成第1隨機數(shù),同時作為第1一次性ID(SIGNALci)求出將在與上述服務器之間預先共有了的共有密鑰、第1存儲隨機數(shù)和第2存儲隨機數(shù)作為參數(shù)的單向函數(shù)的函數(shù)值,向上述服務器發(fā)送用上述共有密鑰對預先設置在該客戶端中的客戶端ID、預先設置在上述服務器中的服務器ID和上述第1隨機數(shù)進行了加密的第1加密數(shù)據、上述第1一次性ID的發(fā)送裝置;將上述第1隨機數(shù)、上述第2存儲隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第2一次性ID(SIGNALsi),從上述服務器接收該第2一次性ID,同時從上述服務器接收用上述共有密鑰對在上述服務器中生成的第2隨機數(shù)、上述客戶端ID和上述服務器ID進行了加密的第2加密數(shù)據的接收裝置;通過計算求出上述第2一次性ID,通過對該計算結果、從上述服務器接收到的上述第2一次性ID進行對照,識別上述服務器,在識別出上述服務器的情況下,使用上述共有密鑰對上述第2加密數(shù)據進行解密,根據包含在該解密了的數(shù)據中的上述服務器ID和上述客戶端ID,判斷上述服務器的正當性的判斷裝置;將上述第1存儲隨機數(shù)置換為上述第1隨機數(shù),將上述第2存儲隨機數(shù)置換為上述第2隨機數(shù)的置換裝置。
本發(fā)明的特征還在于作為認證系統(tǒng)具有上述服務器、上述客戶端。
本發(fā)明的特征還在于在上述認證系統(tǒng)中,上述服務器和上述客戶端在將上述第1存儲隨機數(shù)置換為上述第1隨機數(shù),將上述第2存儲隨機數(shù)置換為上述第2隨機數(shù)后,通過根據這些第1存儲隨機數(shù)和第2存儲隨機數(shù)生成上述共有密鑰,來使該共有密鑰變化。
根據本發(fā)明的生成在每個通信單位中變化的可變共有密鑰,并且求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用該一次性ID(SIGNALn),在相互進行通信的第1裝置和第2裝置之間進行認證的認證方法,求出將可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性密鑰,因此,例如即使可變共有密鑰泄漏給第三者,但由于在每個規(guī)定的通信單位中可變共有密鑰變化,所以也無法預測使用泄漏了的可變共有密鑰生成的一次性ID以外的一次性ID。即,能夠生成難以竊聽并且安全性優(yōu)越的一次性ID,能夠實現(xiàn)一次性ID將來的安全性(PFS)。
根據本發(fā)明的生成可變共有密鑰,并且求出將可變共有密鑰和與通信順序或次數(shù)有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用該一次性ID,在第1裝置和第2裝置之間進行認證,因此例如即使可變共有密鑰泄漏給第三者,但由于在每個規(guī)定的通信單位中可變共有密鑰變化,同時在每個通信中與通信順序或次數(shù)有關信息都變化,所以事實上預測使用泄漏了的可變共有密鑰生成的一次性ID以外的一次性ID是不可能的,另外,預測使用泄漏了的可變共有密鑰生成的一次性ID自身也是非常困難的。即,能夠生成難以竊聽并且安全性優(yōu)越的一次性ID,能夠實現(xiàn)一次性ID將來的安全性(PFS)。
另外,本發(fā)明在裝置之間或應用程序之間生成規(guī)定的可變共有密鑰,在規(guī)定的通信單位中生成隨機數(shù),并且求出將該隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用該一次性ID,在第1裝置和第2裝置之間進行認證(相互認證),因此例如即使共有密鑰泄漏給第三者,但由于隨機數(shù)而在每個規(guī)定的通信單位中單向函數(shù)的函數(shù)值變化,所以無法知道在規(guī)定的通信單位內生成的隨機數(shù),無法預測一次性ID。即,能夠生成難以竊聽并且安全性優(yōu)越的一次性ID,能夠實現(xiàn)一次性ID將來的安全性(PFS)。
由于本發(fā)明還使用通過上述各種一次性ID的生成方法生成的一次性ID,進行裝置間(客戶端、服務器之間)的認證,所以第三者無法確定發(fā)送者、接收者,并且如果是正當?shù)陌l(fā)送者、接收者,則作為識別信息能夠掌握一次性ID。
所以,能夠強化對DoS攻擊和假冒等的耐性,即使在開放的網絡環(huán)境下,也能夠謀求ID信息的保護,提高通信的安全性。另外,能夠進行遠程訪問,提高方便性。
在本發(fā)明中,還作為在判斷第1裝置的正當性中使用的單向函數(shù)Fc,使用將規(guī)定的共有密鑰、Diffie-Hellman公開值的一方、預先設置在第1裝置中的ID、一次性ID作為參數(shù)的偽隨機數(shù)函數(shù),同時作為在判斷第2裝置的正當性中使用的單向函數(shù)Fs,使用將規(guī)定的共有密鑰、Diffie-Hellman公開值的一方、Diffie-Hellman公開值的另一方、預先設置在第2裝置中的ID、一次性ID作為參數(shù)的偽隨機數(shù)函數(shù),因此能夠將在現(xiàn)有的密鑰交換、認證方式中必需3次的通信次數(shù)降低為2次,能夠實現(xiàn)迅速并且安全的認證和密鑰交換。
本發(fā)明還生成在每個通信單位中變化的可變共有密鑰,并且求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)生成一次性密鑰,或者生成可變共有密鑰,并且求出將可變共有密鑰和與通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,在裝置間或應用程序間生成規(guī)定的可變共有密鑰,或者在規(guī)定的通信單位內生成隨機數(shù),并且求出將該隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)生成一次性ID,使用通過上述各種一次性ID的生成方法生成的一次性ID,在裝置間(客戶端、服務器之間)進行認證,因此能夠生成難以竊聽并且安全性優(yōu)越的一次性ID,得到能夠實現(xiàn)一次性ID將來的安全性(PFS)的效果。
本發(fā)明還生成每個通信單位都變化的可變共有密鑰,并且求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,或者生成可變共有密鑰,并且求出將可變共有密鑰和與通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,在裝置間或應用程序間生成規(guī)定的可變共有密鑰,或者在規(guī)定的通信單位內生成隨機數(shù),并且求出將該隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用通過上述各種一次性ID的生成方法生成的一次性ID,在裝置間(客戶端、服務器之間)進行認證,因此能夠得到以下效果第三者無法確定發(fā)送者、接收者,并且如果是正當?shù)陌l(fā)送者、接收者,則作為識別信息能夠掌握一次性ID。
因此,能夠強化對DoS攻擊和假冒等的耐性,即使在開放的網絡環(huán)境下,也能夠謀求ID信息的保護,提高通信的安全性。另外,能夠進行遠程訪問,提高方便性。
通過參照
的以下的實施例能夠進一步明確本發(fā)明的目的和優(yōu)點。
圖1是說明被稱為P-SIGMA的現(xiàn)有的認證方法的圖。
圖2是展示本發(fā)明的實施例的客戶端計算機和服務器計算機的概要結構的框圖。
圖3是展示本發(fā)明的實施例的相互認證中的概念處理的流程圖。
圖4是展示本發(fā)明的實施例的相互認證中的詳細處理的圖。
圖5是展示本發(fā)明的認證系統(tǒng)的一個實施例的概要結構圖。
圖6是展示圖1的服務器的概要結構的框圖。
圖7是展示圖1的客戶端的概要結構的框圖。
圖8是說明本發(fā)明的認證方法的實施例1的圖。
圖9是說明本發(fā)明的認證方法的實施例2的圖。
圖10是說明本發(fā)明的認證方法的實施例3的圖。
圖11是說明本發(fā)明的認證方法的實施例4的圖。
圖12是說明本發(fā)明的認證方法的實施例5的圖。
圖13是說明本發(fā)明的認證方法的實施例6的圖。
圖14是說明被稱為OSPA的現(xiàn)有的認證方法的圖。
圖15是說明本發(fā)明的認證方法的實施例7的圖。
圖16是說明圖15的變形例子的圖。
具體實施例方式
(實施例1)以下參照附圖詳細說明本發(fā)明的實施例的一個例子。圖2是展示本發(fā)明的實施例1的客戶端計算機和服務器計算機的概要結構和本發(fā)明能夠適用的網絡系統(tǒng)的概要結構的框圖。本實施例在網絡中在服務器計算機和客戶端計算機之間進行相互認證的情況下適用了本發(fā)明。
在圖2中,網絡系統(tǒng)構成為至少包含CPU的一個或多個客戶端計算機10、至少包含CPU的一個或多個服務器計算機40分別經由調制解調器、路由器、TA(終端適配器)等與網絡(例如因特網)32連接。這些計算機經由網絡32能夠通過相互通信傳遞信息。
另外,如圖2所示,將客戶端計算機10和服務器計算機40的各自作為一個計算機進行說明,但這些客戶端計算機10、服務器計算機40也可以是多臺。
另外,在客戶端計算機10相當于本發(fā)明的第1認證裝置時,則服務器計算機40相當于第2認證裝置,在服務器計算機40相當于本發(fā)明的第1認證裝置時,則客戶端計算機10相當于第2認證裝置。另外,網絡32相當于本發(fā)明的通信線路。
在本實施例中,說明作為網絡適用了因特網的情況。在該情況下,至少一個計算機可以作為WWW服務器發(fā)揮功能,另外,其他的計算機可以作為WWW客戶端發(fā)揮功能。
詳細地說,各客戶端計算機10安裝了WWW瀏覽器,通過啟動該WWW瀏覽器,能夠經由網絡32任意地訪問服務器計算機40。這時,訪問位置(由訪問目標的服務器計算機40的位置和服務器計算機40內的信息的位置構成的數(shù)據)通過URL(通用資源定位符)指定。
服務器計算機40在從客戶端計算機10有了訪問請求的情況下,經由網絡32向訪問方的客戶端計算機10發(fā)送位于通過URL指定的位置的數(shù)據。這時,數(shù)據一般依照HTTP被轉送。
另外,對于客戶端計算機10的識別使用IP(因特網協(xié)議)地址。另外,對于操作客戶端計算機10的用戶的識別可以使用用戶自身的輸入或預定的代碼等用戶ID。
為了通過該計算機進行指令輸入,在上述計算機中設置了各種鍵盤、鼠標等輸入裝置,為了顯示計算機的處理結果等設置了顯示器。另外,由于計算機具有通用并且一般的硬件結構,所以省略詳細的說明。
客戶端計算機10具備用來輸入系統(tǒng)參數(shù)等的輸入裝置12,輸入裝置12與產生與輸入對應的隨機數(shù)R的隨機數(shù)產生器14和存儲器16連接。隨機數(shù)產生器14與基于存儲器16和隨機數(shù)R求出認證用數(shù)據A的認證用數(shù)據計算器18連接。認證用數(shù)據計算器18為了經由網絡32與服務器計算機40通信,而連接到與網絡32連接的通信接口(以下稱為通信I/F)30。
通信I/F30與驗證器20連接。該驗證器20還與存儲器16和認證用數(shù)據計算器18連接。另外,驗證器20還與以下裝置連接在與服務器計算機40之間進行了認證時,顯示通過認證判斷出了相互關系是正當?shù)腛K裝置22;顯示通過認證判斷出了相互關系是不正當?shù)腘G裝置24。
服務器計算機40具備用來輸入系統(tǒng)參數(shù)等的輸入裝置42,輸入裝置42與產生與輸入對應的隨機數(shù)Q的隨機數(shù)產生器44和存儲器46連接。隨機數(shù)產生器44與基于存儲器46和隨機數(shù)R求出認證用數(shù)據B的認證用數(shù)據計算器48連接。認證用數(shù)據計算器48為了經由網絡32與客戶端計算機10通信,而與通信I/F60連接。
通信I/F60與驗證器50連接。該驗證器50還與存儲器46和認證用數(shù)據計算器48連接。另外,驗證器50還與以下裝置連接在與客戶端計算機10之間進行了認證時,顯示通過認證判斷出了相互關系是正當?shù)腛K裝置52;顯示通過認證判斷出了相互關系是不正當?shù)腘G裝置54。
概念處理接著,說明本實施例的網絡系統(tǒng)的相互認證的概念處理。在本實施例中,通過數(shù)字數(shù)據的交換執(zhí)行計算機間的相互認證。在圖3中作為流程圖展示了相互認證的處理過程。
在步驟100,客戶端計算機10和服務器計算機40通過預定的步驟,在雙方中存儲共通的初始值(隱蔽密鑰K0)。
預定的步驟是指設置在執(zhí)行客戶端計算機10和服務器計算機40間的相互認證時的初始值的步驟。例如,使客戶端計算機10和服務器計算機40作為初始值保存共通的數(shù)據,因此向客戶端計算機10和服務器計算機40雙方提供由客戶端計算機10和服務器計算機40的任意一方或第三方計算機確定的初始值。通過電子郵件等電子化數(shù)據發(fā)送初始值、或將印刷了初始值的印刷物發(fā)送到客戶端計算機10和服務器計算機40雙方并通過客戶端計算機10和服務器計算機40各自進行輸入,來執(zhí)行該提供。
在本實施例中,作為該初始值,為了在客戶端計算機10和服務器計算機40雙方中維持共通的狀態(tài),而將在客戶端計算機10和服務器計算機40之間進行的數(shù)據收發(fā)的履歷作為初始值,在以后的客戶端計算機10和服務器計算機40之間進行的每次數(shù)據收發(fā)時更新初始值。
即,上述初始值可以是在客戶端計算機10和服務器計算機40雙方中共通的值,也可以是如上所述通過提供任意的值而在雙方中保存,但為了在客戶端計算機10和服務器計算機40雙方中維持共通的狀態(tài),理想的是基于任意的算法得到的客戶端計算機10和服務器計算機40間的數(shù)據收發(fā)的結果。在本實施例中,任意的算法可以是在發(fā)送側和接收側雙方共通地保存發(fā)送側和接收側雙方的數(shù)據的步驟,使用在后面詳細說明的相互認證的結果的數(shù)據。
另外,在客戶端計算機10和服務器計算機40雙方中存儲的數(shù)據的形式(例如格式)并不只限于一樣。即,在客戶端計算機10和服務器計算機40雙方中存儲的數(shù)據可以是其數(shù)據的最終值為相同,而數(shù)據本身并不限于相同。例如,可以通過不同的形式進行存儲。如果這樣,則即使在泄漏了一方的數(shù)據的情況下,也可以維持另一方的數(shù)據。
首先,在步驟110,客戶端計算機10發(fā)送認證數(shù)據。該認證數(shù)據是從客戶端計算機10向服務器計算機40請求相互認證的最初的數(shù)據,作為隱蔽密鑰使用所存儲的初始值,在客戶端計算機10內存儲所生成的數(shù)據,同時基于隱蔽密鑰進行加密發(fā)送。
接著,在步驟120,在服務器計算機40中,接收從客戶端計算機10發(fā)送的認證數(shù)據,作為隱蔽密鑰使用所存儲的初始值,在該時刻在服務器計算機40內存儲所生成的數(shù)據,同時發(fā)送基于隱蔽密鑰進行了加密的認證數(shù)據。另外,認證數(shù)據包含從客戶端計算機10接收到的認證數(shù)據所包含的一部分數(shù)據。
由此,可以作為表示從服務器計算機40發(fā)送的認證數(shù)據是對從客戶端計算機10發(fā)出的請求的應答的數(shù)據而發(fā)送。在發(fā)送了該認證數(shù)據后,對接收到的認證數(shù)據進行分析,同時使用在服務器計算機40內生成的各個數(shù)據生成新的隱蔽密鑰,并且通過新的隱蔽密鑰更新所存儲的隱蔽密鑰。
接著,在步驟S130,在客戶端計算機10中,接收從服務器計算機40發(fā)送來的認證數(shù)據,作為隱蔽密鑰使用所存儲的初始值,在該時刻在客戶端計算機10內存儲生成的數(shù)據,同時發(fā)送基于隱蔽密鑰加密了的認證數(shù)據。另外,認證數(shù)據包含從服務器計算機40接收到的認證數(shù)據所包含的一部分數(shù)據。
由此,可以作為表示從客戶端計算機10發(fā)送的認證數(shù)據是對從服務器計算機40發(fā)送的數(shù)據的應答的數(shù)據而發(fā)送。在發(fā)送了該認證數(shù)據后,分析接收到的認證數(shù)據,同時使用在客戶端計算機10內生成的各個數(shù)據生成新的隱蔽密鑰,并且通過新的隱蔽密鑰更新所存儲的隱蔽密鑰。
因此,在步驟130的處理結束了的時刻,在客戶端計算機10和服務器計算機40的雙方中,能夠更新初始值(隱蔽密鑰)并作為共通的值(隱蔽密鑰)維持。
在接著的步驟140,判斷客戶端計算機10和服務器計算機40雙方的處理是否完成了預定的規(guī)定次數(shù)。該判斷基準次數(shù)預先被設置為至少一次的次數(shù),在本實施例中,在客戶端計算機10和服務器計算機40雙方中保持共通的次數(shù)的值。另外,判斷基準次數(shù)也可以在客戶端計算機10和服務器計算機40各自中保持不同的次數(shù)的值。在該情況下,在客戶端計算機10和服務器計算機40各自中認證的基準變得不同,但如果認證是正當?shù)?,則可以只在判斷基準次數(shù)少的計算機側通過請求多次的數(shù)據收發(fā)來達成。通過參照該次數(shù),在客戶端計算機10中進行步驟140的更新處理,在服務器計算機40中到步驟120的更新處理所保存的次數(shù)結束為止否定。在將判斷基準次數(shù)設置為一次的情況下,在步驟140中不進行否定,原樣地前進到步驟150。
因此,在步驟140中進行了肯定判斷的時刻,在客戶端計算機10和服務器計算機40雙方中,一起更新值(隱蔽密鑰),在雙方中維持共通的值(隱蔽密鑰)。即,在每次信息收發(fā)時在客戶端計算機10和服務器計算機40雙方中保存的隱蔽密鑰都被更新為新的,能夠始終維持為最新的隱蔽密鑰。
在步驟150,客戶端計算機10和服務器計算機40雙方中,執(zhí)行認證處理而結束本處理。
上述認證處理使用所存儲的最新的隱蔽密鑰,判斷發(fā)送的認證數(shù)據是否是正當?shù)臄?shù)據??梢栽诳蛻舳擞嬎銠C10和服務器計算機40雙方中共通地執(zhí)行該認證處理。如果該認證處理結束了,則在客戶端計算機10和服務器計算機40雙方中相互認證結束。
詳細處理接著,詳細說明在上述概念處理中說明了的相互認證。
(包含隱蔽密鑰的數(shù)據的結構)在本實施例中,由于隱蔽密鑰在每次信息收發(fā)時都更新為最新的數(shù)據,所以作為履歷數(shù)據K發(fā)揮功能。在以下的說明中,作為該履歷數(shù)據K發(fā)揮功能的數(shù)據標記為與隱蔽密鑰K相同。
包含在上述概念處理中作為認證數(shù)據使用的初始值的隱蔽密鑰K由用來確定客戶端計算機10的密碼數(shù)據C和認證數(shù)據R、用來確定服務器計算機40的密碼數(shù)據S和認證數(shù)據Q構成。在以下的說明中,向隱蔽密鑰K、密碼數(shù)據C、認證數(shù)據R、密碼數(shù)據S和認證數(shù)據Q附加從初始值“0”開始增加的下標,表示更新狀態(tài),但在一般說明它們的情況下則只使用刪除了下標的符號進行說明。
在本實施例中,作為初始值,存儲在后面詳細說明的在客戶端計算機10和服務器計算機40雙方中進行的數(shù)據收發(fā)的結果,還包含了履歷數(shù)據。
隱蔽密鑰K使用基于密碼數(shù)據C、認證數(shù)據R、密碼數(shù)據S和認證數(shù)據Q的各個的函數(shù)g(C,S,Q,R)的計算結果。作為一個例子,函數(shù)g是單純和或附加系數(shù)的多項式、乘法、積分以及散列函數(shù)。
另外,用來生成客戶端計算機10側的初始值C0、R0的最初的值對于密碼數(shù)據C和認證數(shù)據R可以使用由用戶設置的值,也可以自動地生成。理想的是認證數(shù)據R在每次信息收發(fā)時其內容無規(guī)則地變動,因此在本實施例中,作為認證數(shù)據R使用由隨機數(shù)產生器14產生的隨機數(shù)。但是,本發(fā)明并不只限于對于認證數(shù)據R使用隨機數(shù)的情況。例如,可以使用現(xiàn)在年月日、日期時間、時刻等時間數(shù)據、存儲在計算機內的任意文件的容量或修改時間、信息收發(fā)時的容量等。
同樣,用來生成服務器計算機40側的初始值S0、Q0的最初的值對于密碼數(shù)據S和認證數(shù)據Q可以使用管理服務器計算機40的操作者設置的值,也可以自動的生成。與上述一樣,理想的是認證數(shù)據Q在每次信息收發(fā)時其內容都無規(guī)則地變動,因此在本實施例中,作為認證數(shù)據Q使用通過隨機數(shù)產生器44產生的隨機數(shù)。但是,本發(fā)明并不只限于對于認證數(shù)據q使用隨機數(shù)的情況。例如,可以使用現(xiàn)在年月日、日期時間、時刻等時間數(shù)據、存儲在計算機內的任意文件的容量或修改時間、信息收發(fā)時的容量等。
另外,向另一方發(fā)送客戶端計算機10側的認證數(shù)據R和服務器計算機40側的認證數(shù)據Q,但對于該發(fā)送數(shù)據為了使第三者難以確定,所以必須保密。所以,在本實施例中,用隱蔽密鑰K對從客戶端計算機10向服務器計算機40發(fā)送的認證數(shù)據R和從服務器計算機40向客戶端計算機10發(fā)送的認證數(shù)據Q進行隱蔽。
即,在從客戶端計算機10向服務器計算機40發(fā)送的情況下,通過預定的函數(shù)v(R,K)生成認證數(shù)據A并發(fā)送。作為一個例子,函數(shù)v是單純和或附加系數(shù)的多項式、乘法、積分以及散列函數(shù)。同樣,在從服務器計算機40向客戶端計算機10發(fā)送的情況下,也通過預定的函數(shù)w(Q,K)生成認證數(shù)據B并發(fā)送。作為一個例子,函數(shù)w是單純和或附加系數(shù)的多項式、乘法、積分以及散列函數(shù)。接著,展示函數(shù)v、w的一個例子。
Am=v(R,K)=Rm+Km-1Bm=w(R,K)=Qm+Km-1其中,m是大于等于1的自然數(shù)。
另外,向另一方發(fā)送客戶端計算機10側的密碼數(shù)據C和服務器計算機40側的密碼數(shù)據S,但如以下說明的那樣,在每次信息收發(fā)時更新密碼數(shù)據。即,從客戶端計算機10向服務器計算機40發(fā)送的密碼數(shù)據C在發(fā)送時通過預定的函數(shù)y(S,R)生成新的密碼數(shù)據C并發(fā)送。作為一個例子,函數(shù)y是單純和或附加系數(shù)的多項式、乘法、積分以及散列函數(shù)。同樣,在從服務器計算機40向客戶端計算機10發(fā)送的情況下,通過預定的函數(shù)z(C,Q)生成密碼數(shù)據S并發(fā)送。作為一個例子,函數(shù)z是單純和或附加系數(shù)的多項式、乘法、積分以及散列函數(shù)。接著,展示函數(shù)y、z的一個例子。
Cm=y(tǒng)(S,R)=Sm-1+Rm-1Bm=w(C,Q)=Cm-1+Qm-1其中,m是大于等于1的自然數(shù)。
另外,在密碼數(shù)據的發(fā)送中,為了使第三者難以確定,所以也可以保密。例如,可以用隱蔽密鑰K對從客戶端計算機10向服務器計算機40發(fā)送的密碼數(shù)據C和從服務器計算機40向客戶端計算機10發(fā)送的密碼數(shù)據S進行隱蔽。即,可以是將隱蔽密鑰K追加為參數(shù)的函數(shù)。
(詳細處理)圖4是展示本發(fā)明的實施例1的相互認證中詳細處理的圖。以下,參照圖4說明本實施例的詳細處理。
步驟P0在客戶端計算機10和服務器計算機40各自中存儲初始值的隱蔽密鑰K0。該處理相當于圖3的步驟100、圖4的處理Pc0和Ps0。
步驟P1在客戶端計算機10中生成隨機數(shù)R,計算密碼數(shù)據C和認證數(shù)據A,并發(fā)送到服務器計算機40。該處理相當于圖3的步驟110、圖4的處理Pc1。
即,在客戶端計算機10中,通過隨機數(shù)產生器14生成隨機數(shù)R1。生成的隨機數(shù)R1、存儲在存儲器16中的隱蔽密鑰K0和構成隱蔽密鑰K0的C0、S0、Q0、R0被輸入到認證用數(shù)據計算器18。然后,認證用數(shù)據計算器18使用該隨機數(shù)R1、存儲在存儲器16中的隱蔽密鑰K0和構成隱蔽密鑰K0的S0、認證數(shù)據R0,通過上述函數(shù)y、v求出新的密碼數(shù)據C1和新的認證數(shù)據A1。該求出的新的密碼數(shù)據C1和認證數(shù)據A1存儲在存儲器16中,同時被輸出到通信I/F30,并經由網絡32發(fā)送到服務器計算機40。該發(fā)送數(shù)據相當于圖4的數(shù)據Dc1。
步驟P2服務器計算機40從客戶端計算機10接收認證數(shù)據A和密碼數(shù)據C,同時生成隨機數(shù)Q并計算密碼數(shù)據S、認證數(shù)據Q,發(fā)送到客戶端計算機10。與此同時,將存儲的隱蔽密鑰K0更新為新的隱蔽密鑰K1。該處理相當于圖3的步驟120、圖4的處理Ps1。
即,在服務器計算機40中,經由通信I/F60向驗證器50輸入來自客戶端計算機10的密碼數(shù)據C1和認證數(shù)據A1。這時,在服務器計算機40中,在隨機數(shù)產生器44中生成隨機數(shù)Q1。生成的隨機數(shù)Q1、存儲在存儲器46中的隱蔽密鑰K0和構成隱蔽密鑰K0的C0、S0、Q0、R0被輸入到認證用數(shù)據計算器48。另外,驗證器50向認證用數(shù)據計算器48輸出來自客戶端計算機10的密碼數(shù)據C1和認證數(shù)據A1。
認證用數(shù)據計算器48使用該隨機數(shù)Q1、接收到的密碼數(shù)據C1、存儲的隱蔽密鑰K0和構成隱蔽密鑰K0的認證數(shù)據Q0,通過上述函數(shù)z、w求出新的密碼數(shù)據S1和新的認證數(shù)據B1。該求出的新的密碼數(shù)據S1和認證數(shù)據B1輸出到通信I/F60,并經由網絡32發(fā)送到客戶端計算機10。該發(fā)送數(shù)據相當于圖4的數(shù)據Ds1。
這時,在服務器計算機40中,構成作為初始值的隱蔽密鑰K0的各數(shù)據是新的數(shù)據。即,密碼數(shù)據C是從客戶端計算機10接收到的密碼數(shù)據C1,密碼數(shù)據S是通過認證用數(shù)據計算器48計算出的密碼數(shù)據S1,認證數(shù)據Q是通過隨機數(shù)產生器44產生的隨機數(shù)Q1,認證數(shù)據R是從客戶端計算機10接收到的認證數(shù)據A通過逆計算,即通過減去隱蔽密鑰K0得到的隨機數(shù)R1。
所以,作為新的數(shù)據更新這些密碼數(shù)據C1、密碼數(shù)據S1、認證數(shù)據Q1、認證數(shù)據R1,同時作為新的隱蔽密鑰K0進行更新。由此,在服務器計算機40中,作為隱蔽密鑰K的履歷可以自動更新為最新的數(shù)據。
步驟P3客戶端計算機10從服務器計算機40接收認證數(shù)據B和密碼數(shù)據S,同時生成隨機數(shù)R并計算密碼數(shù)據C2、認證數(shù)據A2,發(fā)送到服務器計算機40。與此同時,將存儲的隱蔽密鑰K0更新為新的隱蔽密鑰K1。該處理相當于圖3的步驟130、圖4的處理Pc2。
即,在客戶端計算機10中,經由通信I/F30向驗證器20輸入來自服務器計算機40的密碼數(shù)據S1和認證數(shù)據B1。這時,在客戶端計算機10中,在隨機數(shù)產生器14中生成隨機數(shù)R2。生成的隨機數(shù)R2、存儲在存儲器46中的隱蔽密鑰K0和構成隱蔽密鑰K0的C0、S0、Q0、R0被輸入到認證用數(shù)據計算器18。另外,驗證器20向認證用數(shù)據計算器18輸出來自服務器計算機40的密碼數(shù)據S1和認證數(shù)據B1。
這時,在客戶端計算機10中,構成作為初始值存儲在存儲器16中的隱蔽密鑰K0的各數(shù)據是新的數(shù)據(構成新的隱蔽密鑰K1的數(shù)據)。即,密碼數(shù)據C是從服務器計算機40接收到的密碼數(shù)據S1經過逆計算,即減去構成隱蔽密鑰K0的存儲在存儲器16中的認證數(shù)據Q0得到的密碼數(shù)據C1,或者與存儲在存儲器16中的前次發(fā)送的密碼數(shù)據C1對應。密碼數(shù)據S是從服務器計算機40接收到的密碼數(shù)據S1,認證數(shù)據Q是從服務器計算機40接收到的認證數(shù)據B1經過逆計算,即減去隱蔽密鑰K0得到的認證數(shù)據Q1,認證數(shù)據R是前次生成的隨機數(shù)R1。
所以,作為新的數(shù)據更新這些密碼數(shù)據C1、密碼數(shù)據S1、認證數(shù)據Q1、認證數(shù)據R1,同時作為新的隱蔽密鑰K1進行更新。由此,在客戶端計算機10中,可以將與服務器計算機40相同的隱蔽密鑰K自動更新為最新的數(shù)據。另外,認證用數(shù)據計算器18使用生成的隨機數(shù)R2、更新了的隱蔽密鑰K1的認證數(shù)據R1、接收到的密碼數(shù)據S1和新的隱蔽密鑰K1,通過上述函數(shù)y、v求出新的密碼數(shù)據C2和新的認證數(shù)據A2。該求出的新的密碼數(shù)據C2和認證數(shù)據A2存儲在存儲器16中,同時被輸出到通信I/F30,經由網絡32發(fā)送到服務器計算機40。該發(fā)送數(shù)據相當于圖4的數(shù)據Dc2。
步驟P4只執(zhí)行規(guī)定次數(shù)m的上述步驟P2和P3的處理。另外,在本實施例中,規(guī)定的次數(shù)m包含至少一次的數(shù)據收發(fā)。因此,包含不進行循環(huán)的次數(shù)(m=1)。即,在客戶端計算機10和服務器計算機40之間進行數(shù)據收發(fā)時,由于利用已經在雙方進行了的數(shù)據收發(fā)的履歷數(shù)據,所以即使在一次的數(shù)據收發(fā)中,在該收發(fā)時包含客戶端計算機10和服務器計算機40之間的履歷地進行數(shù)據收發(fā),因此不僅是單純的數(shù)據收發(fā),也是履歷數(shù)據的收發(fā),因此是有效的。如果循環(huán)進行多次上述步驟P2和P3的處理,則能夠提高數(shù)據正當性判斷的精度。
即,對于循環(huán)進行上述處理,通過多次執(zhí)行循環(huán)次數(shù)即執(zhí)行次數(shù),隱蔽密鑰K的值由于更新而變動,而能夠抑制第三者掌握該變動。通過這樣進行多次,依照到現(xiàn)在為止的履歷將客戶端計算機10和服務器計算機40中共通保存的隱蔽密鑰K更新為最新的狀態(tài),因此難以導出隱蔽密鑰K。
執(zhí)行規(guī)定次數(shù)m的步驟P2和步驟P3的處理,結果在客戶端計算機10和服務器計算機40各自中,保存構成隱蔽密鑰Km和構成隱蔽密鑰Km的Cm、Sm、Qm、Rm的值。另外,在m=1時,保存一次數(shù)據收發(fā)的值。
另外,對于循環(huán)執(zhí)行處理,圖3的步驟140的判斷的處理執(zhí)行、圖4的從處理Pc2到Psm和Pcm的處理相當于循環(huán)執(zhí)行從處理Pc1到Ps1和Pc2。
步驟P5在上述處理結束后,在客戶端計算機10和服務器計算機40各自中,檢查接收到的數(shù)據的正當性是否成立,如果成立則作為相互認證成功許諾兩者的關系,在不成立時作為相互認證不成功否定兩者的關系。該處理相當于圖3的步驟150、圖4的處理Psm+1和Pcm +1。
在執(zhí)行一次后進行認證的情況下,從客戶端計算機10進行第一次的數(shù)據發(fā)送,但這時客戶端計算機10向服務器計算機40發(fā)送根據包含客戶端計算機10和服務器計算機40的履歷的作為初始值存儲的隱蔽密鑰K0生成的認證數(shù)據A1和密碼數(shù)據C1。該處理相當于在圖4的處理Pc1后發(fā)送數(shù)據Dc1。
在服務器計算機40中,經由通信I/F60向驗證器50輸入來自客戶端計算機10的密碼數(shù)據C1和認證數(shù)據A1,在認證器50中對密碼數(shù)據C1驗證正當性。由于接收到的密碼數(shù)據C1是根據前次的履歷數(shù)據生成的,所以在服務器計算機40中使用構成更新為最新狀態(tài)而存儲的隱蔽密鑰K0(在此為初始值)的密碼數(shù)據S0和認證數(shù)據R0,判斷上述函數(shù)y的計算結果與接收到的數(shù)據是否一致,在一致的情況下,認為是正當?shù)?,在不一致的情況下否定正當性。在認為是正當時,在通過OK裝置52報告正當性后繼續(xù)進行處理,在否定時,在通過NG裝置54報告了不正當后結束處理。
在認為是正當?shù)牟⒗^續(xù)進行處理時,與上述步驟P2一樣,在隨機數(shù)產生器44中生成隨機數(shù)Q1,在認證用數(shù)據計算器48中生成密碼數(shù)據S1、認證數(shù)據B1,向客戶端計算機10發(fā)送,同時將隱蔽密鑰更新為隱蔽密鑰K1。
該認證處理相當于圖4的處理PSm+1的處理。在該情況下,不循環(huán)執(zhí)行,因此相當于m=0的處理。即,在每次從客戶端計算機10向服務器計算機40發(fā)送數(shù)據時,在服務器計算機40側能夠使用從客戶端計算機10接收到的包含履歷的數(shù)據進行認證。
另一方面,在客戶端計算機10中,經由通信I/F30向驗證器20輸入來自服務器計算機40的密碼數(shù)據S1和認證數(shù)據B1。在客戶端計算機10中,針對密碼數(shù)據S1在驗證器20中驗證正當性。由于接收到的密碼數(shù)據S1同樣是根據前次的履歷數(shù)據在服務器計算機40中生成的,所以在客戶端計算機10中使用構成更新為最新狀態(tài)而存儲的隱蔽密鑰K0(在此為初始值)的密碼數(shù)據C0和認證數(shù)據Q0,判斷上述函數(shù)z的計算結果與接收到的數(shù)據是否一致,在一致的情況下,認為是正當?shù)?,在不一致的情況下否定正當性。在認為是正當時,在通過OK裝置22報告正當性后繼續(xù)進行處理,在否定時,在通過NG裝置24報告了不正當后結束處理。
在認為是正當?shù)牟⒗^續(xù)進行處理時,轉移到在客戶端計算機10和服務器計算機40之間應該執(zhí)行的處理。另外,在客戶端計算機10中,為了維持與服務器計算機40的履歷數(shù)據K的相同,而與上述步驟P3一樣,將隱蔽密鑰更新為隱蔽密鑰K1。
該認證處理相當于圖4的處理Pcm+1的處理。在該情況下,不循環(huán)執(zhí)行,因此相當于m=0的處理。即,在每次從服務器計算機40向客戶端計算機10發(fā)送數(shù)據時,在客戶端計算機10側能夠使用從服務器計算機40接收到的包含履歷的數(shù)據進行認證。
另外,在每次從客戶端計算機10向服務器計算機40發(fā)送數(shù)據時,或者每次從服務器計算機40向客戶端計算機10發(fā)送數(shù)據時,將包含在接收側進行認證的處理作為會話,也可以多次執(zhí)行包含該認證的會話。
下面,說明循環(huán)執(zhí)行多次后進行認證的情況。在該情況下,從客戶端計算機10進行第m次的數(shù)據發(fā)送,客戶端計算機10根據通過循環(huán)m次而更新的隱蔽密鑰Km,向服務器計算機40發(fā)送認證數(shù)據Am +1、認證數(shù)據Cm+1。該處理相當于在圖4的處理Pcm后發(fā)送數(shù)據Dcm +1。
首先,在服務器計算機40中,經由通信I/F60向驗證器50輸入來自客戶端計算機10的密碼數(shù)據Cm+1和認證數(shù)據Am+1。在服務器計算機40中,針對密碼數(shù)據Cm+1在驗證器50中驗證正當性。由于接收到的密碼數(shù)據Cm+1是根據前次的履歷數(shù)據生成的,所以在服務器計算機40中使用構成更新為最新狀態(tài)而存儲的隱蔽密鑰Km的密碼數(shù)據Sm和認證數(shù)據Rm,判斷上述函數(shù)y的計算結果與接收到的數(shù)據是否一致,在一致的情況下,認為是正當?shù)?,在不一致的情況下否定正當性。在認為是正當時,在通過OK裝置52報告正當性后繼續(xù)進行處理,在否定時,在通過NG裝置54報告了不正當后結束處理。
在認為是正當?shù)牟⒗^續(xù)進行處理時,與上述步驟P2一樣,在隨機數(shù)產生器44中生成隨機數(shù)Qm+1,在認證用數(shù)據計算器48中生成密碼數(shù)據Sm+1、認證數(shù)據Bm+1,向客戶端計算機10發(fā)送,同時將隱蔽密鑰更新為隱蔽密鑰Km+1。該認證處理相當于圖4的處理Psm+1的處理。
另一方面,在客戶端計算機10中,經由通信I/F30向驗證器20輸入來自服務器計算機40的密碼數(shù)據Sm+1和認證數(shù)據Bm+1。在客戶端計算機10中,針對密碼數(shù)據Sm+1在驗證器20中驗證正當性。由于接收到的密碼數(shù)據Sm+1與密碼數(shù)據C同樣是根據前次的履歷數(shù)據在服務器計算機40中生成的,所以在客戶端計算機10中使用構成更新為最新狀態(tài)而存儲的隱蔽密鑰Km的密碼數(shù)據Cm和認證數(shù)據Qm,判斷上述函數(shù)z的計算結果與接收到的數(shù)據是否一致,在一致的情況下,認為是正當?shù)?,在不一致的情況下否定正當性。在認為是正當時,在通過OK裝置22報告正當性后繼續(xù)進行處理,在否定時,在通過NG裝置24報告了不正當后結束處理。
在認為是正當?shù)牟⒗^續(xù)進行處理時,轉移到在客戶端計算機10和服務器計算機40之間應該執(zhí)行的處理。另外,在客戶端計算機10中,為了維持與服務器計算機40的履歷數(shù)據K的相同,而與上述步驟P3一樣,將隱蔽密鑰更新為隱蔽密鑰Km+1。該認證處理相當于圖4的處理Pcm+1的處理。
這樣,在本實施例中,在進行客戶端計算機10和服務器計算機40之間的相互認證時,雙方具有共通的隱蔽密鑰K,在每次信息收發(fā)時更新該隱蔽密鑰K。因此,即使分析信息收發(fā)時的數(shù)據,也難以確定認證用的數(shù)據,能夠提高保密性,能夠確實地進行相互認證。
在上述中,以客戶端計算機10和服務器計算機40之間為例進行了說明,但在因特網等非同步網絡中,在服務器計算機40中必須對客戶端計算機10進行認證。在該情況下,也可以對每個客戶端計算機10的用戶分離地進行處理。
上述處理可以作為客戶端計算機10和服務器計算機40的處理程序以能夠執(zhí)行的形式存儲在作為記錄介質的可移動盤中。在該情況下,可以將能夠插拔的可移動盤單元(FDU)與各裝置連接,從可移動盤中經由FDU執(zhí)行記錄的處理程序。另外,也可以將處理程序以能夠訪問的形式存儲(安裝)在計算機內的RAM或其他存儲區(qū)域(例如硬盤裝置)中來執(zhí)行。另外,也可以預先存儲在ROM中。另外,作為記錄介質有CD-ROM、MD、MO、DVD等盤和DAT等磁帶,在使用它們時,作為對應的裝置可以使用CD-ROM裝置、MD裝置、MO裝置、DVD裝置、DAT裝置等。
如以上說明那樣,根據本發(fā)明的實施例1,在第1認證裝置和第2認證裝置之間進行相互認證時,在第1認證裝置和第2認證裝置各自中共通地存儲履歷數(shù)據,同時更新履歷數(shù)據,因此能夠安全并且簡便地進行相互認證,例如可以得到以下效果能夠不從在客戶端計算機和服務器計算機之間發(fā)送接收的信息中泄漏客戶端計算機的密鑰地,確實地進行認證。
(實施例2)圖5是展示本發(fā)明的認證系統(tǒng)的實施例2的概要結構圖。該認證系統(tǒng)大致由經由公共線路網或因特網等網絡40相互連接的服務器(第2裝置)10和客戶端(第1裝置)20構成。在該實施例中,提供各種服務的多個服務器A、B、C……與服務器10連接,該服務器10作為決定能否訪問服務器A、B、C……的認證服務器發(fā)揮功能。
服務器10如圖6所示,由CPU11、RAM12、存儲裝置13、輸入裝置14、顯示裝置15和通信裝置16等構成,各部分通過總線17連接。
CPU(中央處理單元)11將存儲在存儲裝置13的存儲區(qū)域中的各種處理程序、從輸入裝置14或通信裝置16輸入的各種指令或與指令對應的各種數(shù)據等存儲到RAM12中,并與這些輸入指令和各種數(shù)據對應地依照存儲在RAM12中的各種處理程序執(zhí)行各種處理,并將該處理結果暫時存儲到RAM12中,同時輸出到顯示裝置15等。
該CPU11構成該服務器10中的接收裝置和判斷裝置,在從客戶端20接收將客戶端ID作為參數(shù)的單向函數(shù)(單向函數(shù)Fc)的函數(shù)值的HASHc、一次性ID(SIGNAL)、DH公開值gx(Diffie-Hellman公開值的一方)的情況下(即從客戶端20接收訪問請求的情況),使用從客戶端20接收到的接收數(shù)據和存儲在存儲裝置13中的存儲數(shù)據,通過計算求出一次性ID和HASHc,通過對該計算結果、從客戶端20接收到的一次性ID和HASHc進行比較,執(zhí)行判斷客戶端20的正當性的處理。
另外,CPU11構成該服務器10中的發(fā)送裝置,執(zhí)行以下的處理在判斷出客戶端20是正當?shù)那闆r下,使用上述接收數(shù)據和上述存儲數(shù)據,通過計算求出將服務器ID作為參數(shù)的單向函數(shù)(單向函數(shù)Fs)的函數(shù)值的HASHs,并向客戶端20發(fā)送該HASHs、存儲在存儲裝置13中的DH公開值gx(Diffie-Hellman公開值的另一方)。
另外,上述一次性ID(SIGNAL)是在服務器、客戶端之間的認證中只限使用一次的識別信息,在生成該一次性ID的情況下,從存儲裝置13讀入在每個規(guī)定的通信單位中變化的加密密鑰K(可變共有密鑰),并求出將該加密密鑰K作為參數(shù)的散列(Hash)函數(shù)(單向函數(shù))的函數(shù)值,從該函數(shù)值生成上述一次性ID。
RAM(隨機訪問存儲器)12具備暫時存儲在與客戶端20之間發(fā)送接收的數(shù)據等與認證有關的各種數(shù)據的存儲區(qū)域、CPU11的工作區(qū)域等。
存儲裝置13具有存儲程序和數(shù)據等的存儲介質13a,該存儲介質13a由磁、光學的存儲介質或半導體存儲器構成。該存儲介質13a固定設置在存儲裝置13中,或者可拆卸地進行安裝,具備存儲由CPU11執(zhí)行的各種處理程序和控制數(shù)據等的存儲區(qū)域;存儲與認證有關的各種數(shù)據(例如從客戶端20或ID發(fā)行管理服務器30(后述)取得的數(shù)據、在認證處理過程中生成的數(shù)據等)的存儲區(qū)域等。另外,存儲在該存儲介質13a中的程序和數(shù)據等可以是從其他服務器等經由網絡40接收其一部分或全部并存儲的結構。該存儲介質13a處于在開始認證處理前的階段預先存儲了服務器ID、DH公開值gy、在與客戶端20之間共有了的隨機數(shù)R等的狀態(tài)。
輸入裝置14由鍵盤或指向(pointing)設備等構成,向CPU11輸出輸入指令信號。
顯示裝置15由CRT(陰極射線管)和LCD(液晶顯示器)等構成,顯示從CPU11輸入的顯示數(shù)據。通信裝置16由調制解調器或路由器、橋裝置等構成,經由網絡40向CPU11輸出從客戶端20等接收到的數(shù)據,同時經由網絡40向客戶端20輸出從CPU11接收到的數(shù)據。
另一方面,客戶端20如圖7所示,由CPU21、RAM22、存儲裝置23、輸入裝置24、顯示裝置25和通信裝置26等構成,各部分通過總線27連接。具體地說,作為客戶端20例如可以列舉個人計算機、PDA(個人數(shù)字助理)等便攜信息終端、可以利用因特網連接服務的便攜電話等。另外,該客戶端20的各構成要素與上述服務器10的各構成要素大致相同,因此以下只說明不同點。
即,客戶端20的CPU21構成該客戶端20中的發(fā)送裝置,執(zhí)行以下的處理根據來自輸入裝置24的指令輸入等,生成一次性ID(SIGNAL),同時求出將客戶端ID作為參數(shù)的單向函數(shù)(單向函數(shù)Fc)的函數(shù)值的HASHc,向服務器10發(fā)送這些一次性ID和HASHc、存儲在存儲裝置23中的DH公開值gx(Diffie-Hellman公開值的一方)。
另外,CPU21構成該客戶端20中的接收裝置和判斷裝置,在從服務器10接收到將服務器ID作為參數(shù)的單向函數(shù)(單向函數(shù)Fs)的函數(shù)值的HASHs、DH公開值gy(Diffie-Hellman公開值的另一方)的情況下(即由服務器10判斷出客戶端20是正當?shù)那闆r),使用從服務器10接收到的接收數(shù)據和存儲在存儲裝置23中的存儲數(shù)據,通過計算求出HASHs,通過對該計算結果、從服務器10接收到的HASHs進行比較,執(zhí)行判斷服務器10的正當性的處理。
存儲裝置23具有存儲程序和數(shù)據等的存儲介質23a,該存儲介質23a具備存儲由CPU21執(zhí)行的各種處理程序和控制數(shù)據等的存儲區(qū)域;存儲與認證有關的各種數(shù)據(例如從服務器10或ID發(fā)行管理服務器30(后述)取得的數(shù)據、在認證處理過程中生成的數(shù)據等)的存儲區(qū)域等。該存儲介質23a處于在開始認證處理前的階段預先存儲了客戶端ID、DH公開值gx、在與服務器10之間共有了的隨機數(shù)R等的狀態(tài)。
ID發(fā)行管理服務器30是用來發(fā)行、管理在客戶端、服務器之間共有的秘密信息(例如在生成一次性ID的初始值中使用的隨機數(shù)R等)、客戶端ID、服務器ID等的服務器。該ID發(fā)行管理服務器30具有在使利用客戶端20的用戶的ID(例如積分卡No、住宅基金網絡ID、職員No、學生No、特定會員No等)與上述秘密信息和密碼等對應的狀態(tài)下進行存儲的數(shù)據庫。另外,ID發(fā)行管理服務器30在一定周期下更新上述數(shù)據庫內的秘密信息,并通過在線(online)(例如電子郵件等)或離線(offline)(例如郵送等),將該更新了的秘密信息發(fā)送到客戶端20和服務器10的雙方。另外,也可以基于來自客戶端20或服務器10的發(fā)行委托進行上述秘密信息的發(fā)行。
下面,根據圖8,說明由上述結構的認證系統(tǒng)進行的認證方法的實施例2。該方法將本發(fā)明的一次性ID(SIGNAL)適用于在RFC2409中規(guī)定了的IKE方式。
首先,在步驟S1,執(zhí)行以下處理在基于IKE生成SA時,由作為發(fā)起者的客戶端20生成一次性ID(SIGNAL),同時通過計算求出HASHc,與SA提案一起向作為應答者的服務器10發(fā)送這些一次性ID和HASHc、存儲在存儲裝置23中的DH公開值gx。
在此,作為一次性ID的SIGNAL例如使用散列函數(shù),如下這樣生成。
SIGNAL1=RSIGNAL2=hash(K1)SIGNAL3=hash(K2)……SIGNALn=hash(Kn-1)……公式(2)在上述SIGNAL的定義式中,hash是散列函數(shù),R是從ID發(fā)行管理服務器30向服務器10和客戶端20雙方發(fā)行并在兩者間共有了的隨機數(shù),Ki是在第i個會話中生成的服務器、客戶端共有的加密密鑰(可變共有密鑰)。另外,上述會話表示在確立了SA后到該SA無效為止的通信單位。
即,根據上述SIGNAL的定義式,求出將在前次會話中生成的上述加密密鑰K作為參數(shù)的散列函數(shù)的函數(shù)值,并將該函數(shù)值作為本次會話的SIGNAL。另外,在最初的會話中,將在服務器、客戶端之間預先共有了的隨機數(shù)R作為SIGNAL的初始值使用。另外,上述加密密鑰Ki例如通過下式(3)求出。
Ki=prf(共有密鑰,gxy,SIGNALi)……公式(3)在該公式(3)中,gxy是DH共通密鑰,共有密鑰是服務器、客戶端之間的任意的共有密鑰。
另一方面,HASHc如下式(4)所示,作為將共有密鑰、DH公開值gx、IDc(客戶端ID)和SIGNAL作為參數(shù)的偽隨機數(shù)函數(shù)(具有密鑰的散列函數(shù))的函數(shù)值求出。
HASHc=prf(共有密鑰,gx,IDc,SIGNAL) ……公式(4)接著,在步驟S2,執(zhí)行以下的處理服務器10通過計算求出SIGNAL和HASHc,通過對這些計算結果、從客戶端20接收到的SIGNAL和HASHc進行比較,判斷客戶端20的正當性。
在上述判斷的結果是接收數(shù)據和計算結果一致,判斷出客戶端20是正當?shù)那闆r下,通過計算求出HASHs,與承諾的SA一起向客戶端20發(fā)送該HASHs、存儲在存儲裝置13中的DH公開值gy(步驟S3)。
另一方面,在接收數(shù)據和計算結果不一致,判斷出客戶端20不正當?shù)那闆r下,拒絕來自客戶端20的訪問,結束該認證處理。
在此,HASHs如下式(5)所示,作為將共有密鑰、DH公開值gx、gy、IDs(服務器ID)和SIGNAL作為參數(shù)的偽隨機數(shù)函數(shù)(具有密鑰的散列函數(shù))的函數(shù)值求出。
HASHs=prf(共有密鑰,gx,gy,IDs,SIGNAL)……公式(5)另外,在該步驟S3中,同時進行以下處理根據存儲在存儲裝置13中的DH公開值gy、從客戶端20接收到的DH公開值gx生成DH共通密鑰gxy,并將DH共通密鑰gxy存儲在存儲裝置13中。
接著,在步驟S4,執(zhí)行以下處理客戶端20通過計算求出HASHs,通過對該計算結果、從服務器10接收到的HASHs進行比較,判斷服務器10的正當性。
在上述判斷的結果是接收數(shù)據和計算結果一致,判斷出服務器10是正當?shù)那闆r下,根據存儲在存儲裝置23中的DH公開值gx、從服務器10接收到的DH公開值gy生成DH共通密鑰gxy,在存儲在存儲裝置23中后,結束該認證處理,轉移到下一個數(shù)據傳送處理。另一方面,在接收數(shù)據和計算結果不一致,判斷出服務器10不正當?shù)那闆r下,中止對服務器10的訪問,結束該認證處理。
如上所述,根據該實施例2,作為一次性ID(SIGNAL)使用將在每次會話中變化的加密密鑰K(可變共有密鑰)作為參數(shù)的散列函數(shù)的函數(shù)值,因此例如即使加密密鑰K被泄漏給第三者,由于在每次會話中加密密鑰K都變化,所以使用泄漏的加密密鑰K無法預測生成的一次性ID以外的一次性ID。即,能夠生成難以竊聽并且安全性優(yōu)越的一次性ID,能夠實現(xiàn)一次性ID的將來的安全性(PFS)。
另外,使用上述一次性ID(SIGNAL)進行客戶端、服務器之間的認證,因此第三者無法確定發(fā)送者、接收者,另一方面如果是正當?shù)陌l(fā)送者、接收者,則作為識別信息能夠掌握一次性ID。因此,能夠強化對DoS攻擊和假冒的耐性,即使在開放的網絡環(huán)境下,也能夠謀求ID信息的保護,提高通信的安全性。另外,能夠進行遠程訪問,提高方便性。
另外,在該實施例中,作為在判斷客戶端20的正當性過程中使用的單向函數(shù)Fc,使用將共有密鑰、DH公開值gx、IDc(客戶端ID)和SIGNAL作為參數(shù)的偽隨機數(shù)函數(shù),同時作為在判斷服務器10的正當過程中使用的單向函數(shù)Fs,使用將共有密鑰、DH公開值gx、gy、IDs(服務器ID)和SIGNAL作為參數(shù)的偽隨機數(shù)函數(shù),因此能夠將在現(xiàn)有的密鑰交換認證方式中需要3次的通信次數(shù)降低為2次,能夠實現(xiàn)迅速并且安全的認證和密鑰交換。
(實施例3)在上述實施例2中,求出將在前次會話中生成的加密密鑰(可變共有密鑰)作為參數(shù)的散列函數(shù)的函數(shù)值,將該函數(shù)值作為本次會話的一次性ID(SIGNAL),但在本實施例3中,求出將在前次會話中生成的共有密鑰、該會話中的通信順序作為參數(shù)的散列函數(shù)的函數(shù)值,將該函數(shù)值作為本次會話的各通信時的一次性ID。本實施例3的特有部分以外與實施例2一樣。在本實施例3中,向與實施例2相同的部分付與相同的符號,并省略其說明。
圖9是說明本發(fā)明的認證方法的實施例3的圖。在本實施例3中,首先,在步驟P1,客戶端20生成SIGNALn,1(第1一次性ID),同時用共有密鑰Kn-1(第1可變共有密鑰)對IDc(客戶端ID)、IDs(服務器ID)、DH公開值gxn和SIGNALn,1進行加密,向服務器10發(fā)送該加密數(shù)據和SIGNALn,1。
在此,SIGNAL在設第i個會話中的客戶端20的第j個通信中利用的SIGNAL為SIGNALi,j,設第i個會話中的服務器10的第j個通信中利用的SIGNAL為SIGNAL’i,j的情況下,如下這樣生成。
SIGNAL1,j=hash(R,j) i=1SIGNALi,j=hash(Ki-1,j) i≥2SIGNAL’1,j=hash’(R,j) i=1SIGNAL’i,j=hash’(Ki-1,j) i≥2公式(6)在上述SIGNAL的定義式(6)中,hash和hash’是相互不同的散列函數(shù),R是從ID發(fā)行管理服務器30向服務器10和客戶端20雙方發(fā)行并且在兩者間共有了的隨機數(shù),Ki是在第i個會話中共有了的DH共通密鑰gxiyi(共有密鑰)。
即,根據上述SIGNAL的定義式(6),求出將在前次會話中生成的共有密鑰Ki-1和本次會話中的通信順序j作為參數(shù)的散列函數(shù)的函數(shù)值,將該函數(shù)值作為在本次會話的第j個通信中使用的SIGNAL。其中,在最初的會話(i=1)中,求出將在服務器、客戶端間共有了的隨機數(shù)R和該會話中的通信順序j作為參數(shù)的散列函數(shù)的函數(shù)值,將該函數(shù)值作為在最初的會話的第j個通信中使用的SIGNAL。
接著,在步驟P2,服務器10通過計算求出SIGNALn,1,通過對該計算結果、從客戶端20接收到的SIGNALn,1進行對照,識別客戶端20,在無法識別的情況下,拒絕通信。在能夠識別的情況下,使用共有密鑰Ki-1對加密數(shù)據進行解密,根據包含在該解密了的數(shù)據中的IDc、IDs和SIGNALn,1,判斷客戶端20的正當性。
在上述判斷結果是接收數(shù)據與預先存儲在服務器10中的存儲數(shù)據一致,判斷出客戶端20是正當?shù)那闆r下,依照上述SIGNAL的定義式生成SIGNAL’n,1(第2一次性ID),同時作為共有密鑰Kn(第2可變共有密鑰)根據從客戶端20接收到的DH公開值gxn和預先存儲在該服務器10中的DH公開值gyn生成DH共通密鑰gxnxy,向客戶端20發(fā)送將該共有密鑰Kn、IDc、IDs和SIGNAL’n,1作為參數(shù)的散列函數(shù)h的函數(shù)值、DH公開值gyn、SIGNAL’n,1(步驟P3)。
另一方面,在接收數(shù)據和存儲數(shù)據不一致,判斷出客戶端20不正當?shù)那闆r下,拒絕從客戶端20的訪問,結束該認證處理。
接著,在步驟P4,客戶端20通過計算求出SIGNAL’n,1,通過對該計算結果、從服務器10接收到的SIGNAL’n,1進行對照,識別服務器10,在無法識別的情況下,拒絕通信。在能夠識別的情況下,作為共有密鑰Kn根據從服務器10接收到的DH公開值gyn和預先存儲在該客戶端20中的DH公開值gxn生成DH共通密鑰gxnxy,同時使用該共有密鑰Kn,通過計算求出散列函數(shù)h的函數(shù)值,通過對該計算結果、從服務器10接收到的散列函數(shù)h的函數(shù)值進行對照,判斷服務器10的正當性。
在上述判斷的結果是接收數(shù)據和計算結果一致,判斷出服務器10是正當?shù)那闆r下,結束該認證處理,轉移到下一個數(shù)據傳送處理。另一方面,在接收數(shù)據和計算結果不一致,判斷出服務器10不正當?shù)那闆r下,中止對服務器10的訪問,結束該認證處理。
另外,在服務器10側需要確認客戶端20共有了共有密鑰Ki的情況下,在該步驟P4中客戶端20判斷了服務器10的正當性后,也可以向服務器10發(fā)送將共有密鑰Kn、IDc、IDs作為參數(shù)的散列函數(shù)h的函數(shù)值。
如上所述,根據該實施例3,求出將在前次的會話中生成的共有密鑰Ki-1(可變共有密鑰)和本次會話中的通信順序j作為參數(shù)的散列函數(shù)的函數(shù)值,將該函數(shù)值作為只在該會話的第j個通信中有效的一次性ID(SIGNAL)使用,因此例如即使在第n個會話中生成的共有密鑰Kn泄漏給第三者,由于共有密鑰Kn在每次會話中都變化,所以也無法預測使用泄漏的共有密鑰Kn生成的一次性ID(SIGNALn+1, j、SIGNAL’n+1,j)以外的一次性ID。即,能夠生成難以竊聽并且安全性優(yōu)越的一次性ID,能夠實現(xiàn)一次性ID的將來的安全性(PFS)。
另外,由于使用上述一次性ID(SIGNAL)進行客戶端、服務器之間的認證,所以與上述實施例2同樣,能夠防止因大量的計算要求、響應要求等產生的計算量和對存儲器的DoS攻擊,即使在開放的網絡環(huán)境下,也能夠謀求ID信息的保護,提高通信的安全性。
另外,作為防止DoS攻擊的方法之一,一般已知使用了cookie(隨機數(shù))的方法。根據該方法,通過組合IP地址和只有cookie生成者知道的秘密,能夠防止來自同一IP地址的DoS攻擊。與此相對,在本實施例的SIGNAL的情況下,只知道DH共通密鑰,無法預測下次有效的SIGNAL。所以,通過在每次的通信中利用SIGNAL,能夠得到與cookie同樣的效果。進而,在cookie的情況下不允許在會話中變更IP地址,但可以改變SIGNAL。另外,在使用了cookie的情況下,無法防止偽造IP地址的DoS攻擊,但在一次性ID的情況下,由于與IP地址無關,所以能夠防止這樣的攻擊。
另外,在本實施例中,例如考慮了客戶端20發(fā)送協(xié)議最初的信息(步驟P1),服務器10與之對應地進行DH密鑰交換的計算(步驟P2),發(fā)送第2個信息(步驟P3)的情況。如果服務器10的信息在中途消失,或者被攻擊者獲取,客戶端20無法接收到的情況下,客戶端20必須再一次發(fā)送最初的信息。這時,服務器10無法判斷是客戶端20重新進行了通信,還是攻擊者讀取了最初的信息進行了重復攻擊。所以,客戶端20在再次重新發(fā)送最初的信息的情況下,發(fā)送與在最初的查詢時發(fā)送的信息相同的內容的信息,服務器10也原樣地發(fā)送以前回信了的信息的復制。由此,能夠避免無用的DH密鑰交換的計算,能夠防止重復攻擊的DoS攻擊。
另外,在本實施例中,求出將在前次會話中生成的共有密鑰(DH共通密鑰)Ki-1和本次會話中的通信順序j作為參數(shù)的散列函數(shù)的函數(shù)值,并將該函數(shù)值作為只在該會話的第j個通信中有效的一次性ID(SIGNAL)生成,但例如也可以如下這樣地生成SIGNAL。
SSj=h1(Ki-1)SIGNALi,j=hash(SSi,j)SIGNAL’i,j=hash’(SSi,j) ……公式(7)在上述SIGNAL的定義式(7)中,SSi是將在第(i-1)個會話中共有了的DH共通密鑰Ki-1作為參數(shù)的散列函數(shù)的函數(shù)值。
另外,在該情況下,將在第i個會話中使用的認證用密鑰作為AKi,將加密密鑰作為SKi,例如可以如以下公式那樣求出這些密鑰,AKi=h2(Ki-1)SKi=h3(Ki-1)其中,h1、h2、h3是沒有沖突的單向散列函數(shù)。
這樣,在根據SSi生成認證用密鑰和加密密鑰的情況下,在上述步驟P1中,在客戶端20對IDc、IDs、DH公開值gxn和SIGNALn,1進行加密并向服務器10發(fā)送時,使用認證用密鑰AKn。另外,在步驟P3中,在服務器10向客戶端20發(fā)送的散列函數(shù)h中,使用將加密密鑰SKn、IDc、IDs和SIGNAL’n,1作為參數(shù)的散列函數(shù)。
通過這樣,即使假設攻擊者能夠知道SSi、AKi、SKi中的任意一個的值,也無法計算其他的值。所以,攻擊者為了在第i個會話中假冒正規(guī)的用戶進行密鑰交換,就必須知道AKi、SIGNAL、正規(guī)用戶的ID信息(IDs、IDc),為了進行加密通信,還要知道SKi、SIGNAL、正規(guī)用戶的ID信息、通信次數(shù)的信息。
另外,使用認證密鑰AKi(h2(Ki-1))對第n個會話中的客戶端20的DH公開值gxn進行加密。所以,不知道AKi的攻擊者無法知道gxn。因此,在本方式中生成、共有的Diffie-Hellman共通密鑰是計算量少并且信息安全的。
(實施例4)在上述實施例2和實施例3中,與認證同時進行Diffie-Hellman密鑰交換,但在本實施例4中,省略Diffie-Hellman密鑰交換。本實施例4的特有部分以外與實施例2一樣。在本實施例4中,向與實施例2相同的部分付與同一符號,并省略說明。
圖10是說明本發(fā)明的認證方法的實施例4的圖。在本實施例4中,首先,客戶端20生成隨機數(shù)Rc(第1隨機數(shù)),同時將在與服務器10之間預先共有了的共有密鑰K1(第1共有密鑰)和隨機數(shù)R0(初始隨機數(shù))作為參數(shù)的偽隨機數(shù)prf(K1,R0)的函數(shù)值作為SIGNALc1(第1一次性ID)求出(步驟S11),向服務器10發(fā)送該SIGNALc1、用共有密鑰K1加密了的隨機數(shù)Rc(步驟S12)。
接著,執(zhí)行以下處理服務器10生成隨機數(shù)Rs(第2隨機數(shù)),同時將用共有密鑰K1解碼了的隨機數(shù)Rc和共有密鑰K1作為參數(shù)的偽隨機數(shù)prf(K1,Rc)的函數(shù)值作為SIGNALs1(第2一次性ID)求出(步驟S13),向客戶端20發(fā)送該SIGNALs1、用共有密鑰K1加密了的隨機數(shù)Rs、隨機數(shù)R0+Rc(將隨機數(shù)R0、Rc作為參數(shù)的規(guī)定的計算結果,例如兩者的異或等)(步驟S14)。
接著,執(zhí)行以下的處理客戶端20根據隨機數(shù)Rc和共有密鑰K1通過計算求出SIGNALs1,通過對該計算結果和從服務器10接收到的SIGNALs1進行比較,識別服務器10,同時通過對隨機數(shù)R0+Rc的接收數(shù)據和計算結果進行比較,判斷服務器10的正當性(步驟S15)。
在上述判斷的結果是各個接收數(shù)據和計算結果是一致的,判斷出服務器10是正當?shù)那闆r下,客戶端20根據隨機數(shù)Rc和隨機數(shù)Rs生成共有密鑰K2(第2共有密鑰),同時作為SIGNALc2(第3一次性ID)求出將該共有密鑰K2、隨機數(shù)Rs和隨機數(shù)Rc作為參數(shù)的偽隨機數(shù)函數(shù)prf(K2,Rs,Rc)的函數(shù)值,向服務器10發(fā)送該SIGNALc2、隨機數(shù)Rc+Rs(將隨機數(shù)Rc、Rs作為參數(shù)的規(guī)定的計算結果)(步驟S16)。另一方面,在接收數(shù)據和計算結果不一致,判斷出服務器10不正當?shù)那闆r下,中止對服務器10的訪問,結束該認證處理。
服務器10如果從客戶端20接收到SIGNALc2,則根據隨機數(shù)Rc和隨機數(shù)Rs生成共有密鑰K2,同時根據共有密鑰K2、隨機數(shù)Rs和隨機數(shù)Rc通過計算求出SIGNALc2,通過對該計算結果和從客戶端20接收到的SIGNALc2進行比較,識別客戶端20,同時通過對隨機數(shù)Rc+Rs的接收數(shù)據和計算結果進行比較,判斷客戶端20的正當性(步驟S17)。
在上述判斷結果是各個接收數(shù)據和計算結果一致,判斷出客戶端20是正當?shù)那闆r下,結束該認證處理,轉移到下一個數(shù)據傳送處理。
另一方面,在接收數(shù)據和計算結果不一致,判斷出客戶端20是不正當?shù)那闆r下,拒絕從客戶端20的訪問,結束該認證處理。
如上所述,根據本實施例4,作為一次性ID使用將在相互認證過程中生成的隨機數(shù)、在相互認證過程中變化的共有密鑰K作為參數(shù)的偽隨機數(shù)函數(shù)prf的函數(shù)值,因此與上述實施例2一樣,能夠提高一次性ID的安全性,能夠實現(xiàn)迅速并且安全的相互認證。
(實施例5)在上述實施例4中,在相互認證的過程中使得用于一次性ID(SIGNAL)的生成的共有密鑰變化,但在本實施例5中,使上述共有密鑰固定。
即,在本實施例5中,如圖11所示,首先,客戶端20生成隨機數(shù)Rc(第1隨機數(shù)),同時作為SIGNALc1(第1一次性ID)求出將在與服務器10之間預先共有了的共有密鑰K和隨機數(shù)R0(初始隨機數(shù))作為參數(shù)的偽隨機數(shù)函數(shù)prf(K,R0)的函數(shù)值(步驟S21),向服務器發(fā)送該SIGNALc1、用共有密鑰K加密了的隨機數(shù)Rc(步驟S22)。
接著,服務器10生成隨機數(shù)Rs(第2隨機數(shù)),同時作為SIGNALs1(第2一次性ID)求出將用共有密鑰K加密了的隨機數(shù)Rc和共有密鑰K作為參數(shù)的偽隨機數(shù)函數(shù)prf(K,Rc)的函數(shù)值(步驟S23),向客戶端20發(fā)送該SIGNALs1、用共有密鑰K加密了的隨機數(shù)Rs、隨機數(shù)R0+Rc(將隨機數(shù)R0、Rc作為參數(shù)的規(guī)定的計算結果)(步驟S24)。
接著,客戶端20根據隨機數(shù)Rc和共有密鑰K通過計算求出SIGNALs1,通過對該計算結果和從服務器10接收到的SIGNALs1進行比較,識別服務器10,同時通過對隨機數(shù)R0+Rc的接收數(shù)據和計算結果進行比較,判斷服務器10的正當性(步驟S25)。
在上述判斷結果是各個接收數(shù)據和計算結果一致,判斷出服務器10是正當?shù)那闆r下,客戶端20作為SIGNALc2(第3一次性ID)求出將隨機數(shù)Rc、隨機數(shù)Rs和共有密鑰K作為參數(shù)的偽隨機數(shù)函數(shù)prf(K,Rs,Rc)的函數(shù)值,向服務器10發(fā)送該SIGNALc2、隨機數(shù)Rc+Rs(將隨機數(shù)Rc、Rs作為參數(shù)的規(guī)定的計算結果)(步驟S26)。
另一方面,如果接收數(shù)據和計算結果不一致,判斷出服務器10不正當?shù)那闆r下,中止對服務器10的訪問,結束該認證處理。
服務器10如果從客戶端20接收到SIGNALc2,則根據隨機數(shù)Rc、隨機數(shù)Rs和共有密鑰K通過計算求出SIGNALc2,通過對該計算結果和從客戶端20接收到的SIGNALc2進行比較,識別客戶端20,同時通過對隨機數(shù)Rc+Rs的接收數(shù)據和計算結果進行比較,判斷客戶端20的正當性(步驟S27)。
在上述判斷結果是各個接收數(shù)據和計算結果一致,判斷出客戶端20是正當?shù)那闆r下,結束該認證處理,轉移到下一個數(shù)據傳送處理。
另一方面,在接收數(shù)據和計算結果不一致,判斷出客戶端20是不正當?shù)那闆r下,拒絕從客戶端20的訪問,結束該認證處理。
如上所述,根據本實施例5,將在相互認證過程中生成的隨機數(shù)和共有密鑰K作為參數(shù)的偽隨機數(shù)函數(shù)prf的函數(shù)值作為一次性ID使用,因此例如即使共有密鑰K泄漏給了第三者,但由于在相互認證的過程中通過隨機數(shù)偽隨機數(shù)函數(shù)prf的函數(shù)值依次變化,所以也不知道在相互認證的過程中生成的隨機數(shù),無法預測一次性ID。因此,與上述實施例2~4一樣,能夠提高一次性ID的安全性,能夠實現(xiàn)迅速并且安全的相互認證。
(實施例6)圖12是說明本發(fā)明的認證方法的實施例6的圖。在該實施例6中,首先,客戶端20生成隨機數(shù)Rci(第1隨機數(shù)),同時作為SIGNALci(第1一次性ID)求出將在與服務器10之間預先共有了的共有密鑰Ki、隨機數(shù)Rci-1(第1存儲隨機數(shù))和隨機數(shù)Rsi-1(第2存儲隨機數(shù))作為參數(shù)的偽隨機數(shù)函數(shù)prf(Ki,Rci-1,Rsi-1)的函數(shù)值(步驟S31)。
另外,Rci是在第i個會話中由客戶端20生成的隨機數(shù),Rsi是在第i個會話中由服務器10生成的隨機數(shù),Ki是在第i個會話中使用的可變共有密鑰。另外,在前次(第i-1個)會話中生成的隨機數(shù)Rci -1、Rsi-1被存儲在服務器10和客戶端20的各存儲裝置13、23的存儲區(qū)域中,根據這些Rci-1、Rsi-1,生成共有密鑰Ki。
然后,客戶端20在生成SIGNALc1后,向服務器10發(fā)送用共有密鑰Ki對IDc(客戶端ID)、IDs(服務器ID)和隨機數(shù)Rci進行了加密的加密數(shù)據Eki(IDc、IDs、Rci)、SIGNALc1(步驟S32)。
服務器10如果從客戶端20接收到SIGNALc1,則根據共有密鑰Ki、隨機數(shù)Rci-1和隨機數(shù)Rsi-1通過計算求出SIGNALc1,通過對該計算結果和從客戶端20接收到的SIGNALc1進行比較,識別客戶端20,在無法識別的情況下,拒絕通信。在能夠識別的情況下,使用共有密鑰Ki對加密數(shù)據Eki(IDc,IDs,Rci)進行解密,根據包含在該解密了的數(shù)據中的IDc和IDs,判斷客戶端20的正當性。
在上述判斷的結果是接收數(shù)據和預先存儲在服務器10中的存儲數(shù)據一致,判斷出客戶端20是正當?shù)那闆r下,生成隨機數(shù)Rsi(第2隨機數(shù)),同時作為SIGNALs1求出將隨機數(shù)Rci、隨機數(shù)Rsi-1和共有密鑰Ki作為參數(shù)的偽隨機數(shù)函數(shù)prf(Ki,Rci,Rsi-1)的函數(shù)值。然后,在存儲了隨機數(shù)Rci-1、Rsi-1的存儲區(qū)域中分別存儲Rci、Rsi,同時根據這些隨機數(shù)Rci、Rsi生成共有密鑰Ki+1并存儲(步驟S33)。
接著,服務器10向客戶端20發(fā)送用共有密鑰Ki對IDc、IDs和隨機數(shù)Rsi進行了加密的加密數(shù)據Eki(IDs,IDc,Rsi)、SIGNALs1(步驟S34)。
另一方面,在接收數(shù)據和存儲數(shù)據不一致,判斷出客戶端20不正當?shù)那闆r下,拒絕從客戶端20的訪問,結束該認證處理。
客戶端20如果從服務器10接收到SIGNALs1,則根據共有密鑰Ki、隨機數(shù)Rci和Rsi-1通過計算求出SIGNALs1,通過對該計算結果和從客戶端20接收到的SIGNALs1進行比較,識別服務器10,在無法識別的情況下,拒絕通信。另一方面,在能夠識別的情況下,使用共有密鑰Ki,對加密數(shù)據Eki(IDs,IDc,Rsi)進行解密,根據包含在該解密了的數(shù)據中的IDc和IDs,判斷服務器10的正當性。在識別出服務器10的情況下,不只能夠確定通信對方,還能夠確認服務器10接收到了隨機數(shù)Rci。
然后,在上述判斷結果是接收數(shù)據和預先存儲在客戶端20中的存儲數(shù)據一致,判斷出服務器10是正當?shù)那闆r下,在存儲了隨機數(shù)Rci-1、Rsi-1的存儲區(qū)域中分別存儲Rci、Rsi,根據這些隨機數(shù)Rci、Rsi生成、存儲共有密鑰Ki+1后(步驟S35),結束該認證處理,轉移到下一個數(shù)據傳送處理。另一方面,在接收數(shù)據和存儲數(shù)據不一致,判斷出服務器10是不正當?shù)那闆r下,拒絕來自服務器10的訪問,結束該認證處理。
如上所述,根據該實施例6,在能夠得到與上述實施例4一樣的作用、效果的基礎上,通過向通信對方發(fā)送用共有密鑰Ki對IDc、IDs和隨機數(shù)Rsi進行了加密的加密數(shù)據Eki(IDs,IDc,Rsi),由此例如即使在由攻擊者改寫了加密數(shù)據的情況下,由于包含在加密數(shù)據中的ID信息(IDs,IDc)沒有被正確解密,所以接收到該數(shù)據的服務器10或客戶端20也能夠容易地檢測出發(fā)送來的加密數(shù)據是錯誤的,能夠不接受隨機數(shù)而廢棄。另外,即使在SIGNALc1的值與其他多個客戶端重復的情況下,通過參照包含在加密數(shù)據中的ID信息(IDs、IDc),也能夠容易地確定通信對方。
進而,根據該實施例6,通過確認通信對方是否正確地對服務器、客戶端的ID信息(IDs、IDc)進行了加密,來判斷通信對方的正當性,因此能夠將在上述實施例4中需要進行3次的通信次數(shù)降低為2次,能夠進行更有效率的認證。
(實施例7)圖13是說明本發(fā)明的認證方法的實施例7的圖。在本實施例7中,首先,客戶端20生成隨機數(shù)Rci(第1隨機數(shù)),同時作為SIGNALc1(第1一次性ID)求出將在與服務器10之間預先共有了的固定共有密鑰K、隨機數(shù)Rci-1(第1存儲隨機數(shù))和隨機數(shù)Rsi-1(第2存儲隨機數(shù))作為參數(shù)的偽隨機數(shù)函數(shù)prf(K,Rci-1,Rsi-1)的函數(shù)值(步驟S41)。
另外,Rci是在第i個會話中由客戶端20生成的隨機數(shù),Rsi是在第i個會話中由服務器10生成的隨機數(shù)。另外,在前次(第i-1次)會話中生成隨機數(shù)Rci-1、Rsi-1存儲在服務器10和客戶端20的各存儲裝置13、23的存儲區(qū)域中。
然后,客戶端20在生成SIGNALc1后,向服務器10發(fā)送用共有密鑰K對IDc(客戶端ID)、IDs(服務器ID)和隨機數(shù)Rci進行了加密的加密數(shù)據Ek(IDc,IDs,Rci)、SIGNALc1(步驟S42)。
服務器10如果從客戶端20接收到SIGNALc1,則根據共有密鑰K、隨機數(shù)Rci-1和隨機數(shù)Rsi-1通過計算求出SIGNALc1,通過對該計算結果和從客戶端20接收到的SIGNALc1進行比較,識別客戶端20,在無法識別的情況下,拒絕通信。在能夠識別的情況下,使用共有密鑰K對加密數(shù)據Ek(IDc,IDs,Rci)進行解密,根據包含在該解碼了的數(shù)據中的IDc、IDs,判斷客戶端20的正當性。
在上述判斷結果是接收數(shù)據和預先存儲在服務器10中的存儲數(shù)據一致,判斷出客戶端20是正當?shù)那闆r下,生成隨機數(shù)Rsi(第2隨機數(shù)),同時作為SIGNALs1(第2一次性ID)求出將隨機數(shù)Rci、隨機數(shù)Rsi-1和共有密鑰K作為參數(shù)的偽隨機數(shù)函數(shù)prf(K、Rci,Rsi-1)的函數(shù)值。然后,在存儲了隨機數(shù)Rci-1、Rsi-1的存儲區(qū)域中分別存儲Rci、Rsi(步驟S43)。
接著,服務器10向客戶端20發(fā)送用共有密鑰K對IDc、IDs和隨機數(shù)Rsi進行了加密的數(shù)據Ek(IDs、IDc、Rsi)、SIGNALs1(步驟S44)。
另一方面,在接收數(shù)據和存儲數(shù)據不一致,判斷出客戶端20是不正當?shù)那闆r下,拒絕從客戶端20的訪問,結束該認證處理。
客戶端20如果從服務器10接收到SIGNALs1,則根據共有密鑰K、隨機數(shù)Rci和隨機數(shù)Rsi-1通過計算求出SIGNALs1,通過對該計算結果和從客戶端20接收到的SIGNALs1進行比較,識別服務器10,在無法識別的情況下,拒絕通信。另一方面,在能夠識別的情況下,使用共有密鑰K,對加密數(shù)據Ek(IDs,IDc,Rsi)進行解密,根據包含在該解密了的數(shù)據中的IDc和IDs,判斷服務器10的正當性。在識別出服務器10的情況下,不只能夠確定通信對方,還能夠確認服務器10接收到了隨機數(shù)Rci。
然后,在上述判斷結果是接收數(shù)據和預先存儲在客戶端20中的存儲數(shù)據一致,判斷出服務器10是正當?shù)那闆r下,在存儲了隨機數(shù)Rci-1、Rsi-1的存儲區(qū)域中分別存儲Rci、Rsi,根據這些隨機數(shù)Rci、Rsi生成、存儲共有密鑰K后(步驟S45),結束該認證處理,轉移到下一個數(shù)據傳送處理。另一方面,在接收數(shù)據和存儲數(shù)據不一致,判斷出服務器10是不正當?shù)那闆r下,拒絕來自服務器10的訪問,結束該認證處理。
如上所述,根據該實施例7,在能夠得到與上述實施例5一樣的作用、效果的基礎上,即使在例如由攻擊者改寫了加密數(shù)據的情況下,接收到該數(shù)據的服務器10或客戶端20也能夠容易地檢測出發(fā)送來的加密數(shù)據是錯誤的,能夠不接受隨機數(shù)而廢棄。另外,即使在SIGNALc1的值與其他多個客戶端重復的情況下,通過參照包含在加密數(shù)據中的ID信息(IDs、IDc),也能夠容易地確定通信對方。進而,根據本實施例7,能夠將在上述實施例4中需要進行3次的通信次數(shù)降低為2次,能夠進行更有效率的認證。
(實施例8)在本實施例8中,說明使用了一次性ID的重復攻擊的防止方法。重復攻擊是指攻擊者(第三者)竊聽在過去正當?shù)耐ㄐ耪哌M行發(fā)送時有效的通信信息,并進行再利用的攻擊。
首先,根據圖4說明利用了被稱為OSPA(Optimal StrongPassword Authentication)的密碼的認證方式(Chun-Li Lin,Hung-Min SUN,TzoneLih HWANG,Attacks and Solutions on Strong-Password Authentication,IEICE TRANS.COMMUN.,Vol.E84-B.No.9,September 2001.)。
在該認證之前,在客戶端20中預先存儲保存散列函數(shù)h和密碼P,在服務器10中預先存儲保存散列函數(shù)h、會話次數(shù)n、IDc(客戶端ID)和驗證用信息h2(P@n)。驗證用信息h2(P@n)是用來驗證客戶端20的正當性的信息,并且是使用密碼P和通信次數(shù)n的異或通過散列函數(shù)h生成的信息。另外,h2(P@n)表示進行2次散列函數(shù)h的計算,即h(h(P@n)),該公式中的@表示異或。
在該認證方式中,首先客戶端20向服務器10發(fā)送IDc(步驟S51)。
服務器10如果從客戶端20接收到IDc,則通過對該接收到的IDc和預先存儲的IDc進行比較,識別客戶端20,在無法識別的情況下,拒絕通信。在能夠識別的情況下,向服務器10發(fā)送會話次數(shù)n(步驟S52)。
客戶端20如果從服務器10接收到會話次數(shù)n,則使用該接收到的會話次數(shù)n、預先存儲的散列函數(shù)h和密碼P,生成第1~第3認證用信息C1、C2、C3(步驟S53),并向服務器10發(fā)送這些C1、C2、C3(步驟S54)。在此,C1=h(P@n)@h2(P@n),C2=h2(P@(n+1))@h(P@n),C3=h3(P@(n+1))。
服務器10如果從客戶端20接收到C1、C2、C3,則首先確認接收到的C1≠C2。這是因為由于有可能產生以下的問題在計算C1=h(P@n)@h2(P@n),C2=h(P@n)@h2(P@n),C3=h3(P@n)并發(fā)送的情況下,服務器10認證客戶端20,作為下一個驗證用信息,并不存儲h2(P@(n+1)),而是存儲h2(P@n),所以要防止產生這樣的問題。
接著,服務器10通過計算從C1、C2求出h(P@n)、h2(P@(n+1))。即,通過求出接收到的C1與預先存儲的驗證用信息h2(P@n)的異或來導出h(P@n),通過求出該h(P@n)和接收到的C2的異或來導出h2(P@(n+1))。
接著,使用預先存儲的散列函數(shù)h,從求出的h(P@n)計算h(h(P@n)),驗證該h(h(P@n))是否與預先存儲的驗證用信息h2(P@n)一致。同時從求出的h2(P@(n+1))使用上述散列函數(shù)h計算h(h2(P@(n+1))),并驗證該h(h2(P@(n+1)))是否與接收到的C3一致(步驟S55)。
在這些驗證結果是都一致,判斷出客戶端20是正當?shù)那闆r下,將驗證用信息從h2(P@n)更新為h2(P@(n+1)),在將會話次數(shù)從n更新為n+1后,許諾從客戶端20的訪問,結束該認證處理。
另一方面,在上述認證結果是至少任意一個不一致,判斷出客戶端20不正當?shù)那闆r下,拒絕從客戶端20的訪問,結束該認證處理。
通過上述認證方式,能夠進行對竊聽者的安全的認證,同時具有以下優(yōu)點能夠在每次會話時將驗證用信息從h2(P@n)更新為h2(P@(n+1))。
但是,在上述認證方式中,具有無法防止將一次使用過的認證信息C1、C2、C3再次使用而進行的重復攻擊的問題。
所以,本發(fā)明者等作為解決這樣的問題的認證方式,開發(fā)出了以下的認證方式。
圖15是說明本發(fā)明的認證方法的實施例8的圖。如該圖15所示,在客戶端20中預先存儲保存散列函數(shù)h和密碼P,在服務器10中預先存儲保存散列函數(shù)h、會話次數(shù)n、IDc和驗證用信息h2(P@n)的情況下,首先客戶端20向服務器10發(fā)送IDc(步驟S61)。
服務器10如果從客戶端20接收到IDc,則通過對該接收到的IDc和預先存儲的IDc進行比較,來識別客戶端20,在無法識別的情況下,拒絕通信。在能夠識別的情況下,向服務器10發(fā)送會話次數(shù)n(步驟S62)。
客戶端20如果從服務器10接收到會話次數(shù)n,則使用該接收到的會話次數(shù)n、預先存儲的散列函數(shù)h和密碼P,生成第1~第3認證用信息C1、C2、C3、SIGNALn(步驟S63),并將這些C1、C2、C3、SIGNALn發(fā)送到服務器10(步驟S64)。在此,C1=h(P@n)@h2(P@n),C2=h2(P@(n+1))@h(P@n),C3=h3(P@(n+1)),SIGNALn=h(h2(P@n),n)。即。作為在第n個會話中使用的一次性ID的SIGNALn成為將驗證用信息h2(P@n)和會話次數(shù)n作為參數(shù)的散列函數(shù)h的函數(shù)值。
服務器10如果從客戶端20接收到C1、C2、C3、SIGNALn,則首先根據預先存儲的驗證用信息h2(P@n)和會話次數(shù)n通過計算求出SIGNALn,通過對該計算結果和從客戶端20接收到的SIGNALn進行比較,識別客戶端20,在無法識別的情況下,拒絕通信。在能夠識別的情況下,在確認了接收到的C1≠C2后,從C1和C2通過計算求出h(P@n)、h2(P@(n+1))。
接著,服務器10使用預先存儲的散列函數(shù)h,從求出的h(P@n)計算h(h(P@n)),并驗證該h(h(P@n))是否與預先存儲的驗證用信息h2(P@n)一致。同時,從求出的h2(P@(n+1)),使用上述散列函數(shù)h計算h(h2(P@(n+1))),并驗證該h(h2(P@(n+1)))是否與接收到的C3一致(步驟S65)。
在這些驗證結果是都一致,判斷出客戶端20是正當?shù)那闆r下,將驗證用信息從h2(P@n)更新為h2(P@(n+1)),在將會話次數(shù)從n更新為n+1后,許諾從客戶端20的訪問,結束該認證處理。
另一方面,在上述認證結果是至少任意一個不一致,判斷出客戶端20是不正當?shù)那闆r下,拒絕從客戶端20的訪問,結束該認證處理。
根據上述認證方式,由于攻擊者不會知道作為驗證用信息的h2(P@n),所以攻擊者無法預測下一個會話的SIGNAL。并且,由于在其他會話中無法使用SIGNAL,所以能夠有效地防止攻擊者的重復攻擊。
另外,如圖16所示,在散列函數(shù)h和密碼P以外,還預先在客戶端20中存儲保存會話次數(shù)n的情況下,能夠省略上述的步驟S61、62的處理。所以,在該情況下,在謀求對ID信息(IDc)的竊聽的保護的同時,還能夠有效地防止攻擊者的重復攻擊。
另外,在以上各實施例中,在多個裝置間的驗證中使用一次性ID,但也可以在一個裝置內的多個應用程序之間的認證中使用一次性ID。
另外,在上述各實施例中,示例了在客戶端服務器系統(tǒng)中適用本發(fā)明的認證方法的情況,但并不限于此,例如,也可以在P2P(Peer to Peer)系統(tǒng)中適用本發(fā)明的認證方法。
另外,也可以在用戶的每次訪問時利用本發(fā)明的認證方法,在該情況下,可以催促用戶輸入密碼,將密碼或從密碼生成的值以及一次性ID作為認證用數(shù)據。
如以上說明的那樣,根據本發(fā)明,能夠生成難以竊聽并且安全性優(yōu)越的一次性ID,能夠實現(xiàn)一次性ID的將來的安全性(PFS)。
另外,使用通過本發(fā)明的一次性ID的生成方法生成的一次性ID,在裝置間(客戶端、服務器間)進行認證,因此第三者無法確定發(fā)送者、接收者,另一方面,如果是正當?shù)陌l(fā)送者、接收者,則能夠作為識別信息掌握一次性ID。
因此,能夠強化對DoS攻擊和假冒等的耐性,即使在開放的網絡環(huán)境下,也能夠謀求ID信息的保護,提高通信的安全性。另外,能夠進行遠程訪問,能夠提高方便性。
另外,根據本發(fā)明,能夠將在現(xiàn)有的密鑰交換、認證方式中需要進行3次的通信次數(shù)降低為2次,能夠實現(xiàn)迅速并且安全的認證和密鑰交換。
根據附圖所示的理想的實施例對本發(fā)明進行了說明,但本技術領域的技術人員當然可以不脫離本發(fā)明的思想地容易地得到各種變形和改變。本發(fā)明也包含這樣的變形例子。
權利要求
1.一種相互認證方法,認證經由通信線路連接的第1認證裝置和第2認證裝置的相互關系,其特征在于包括將在上述第1認證裝置和第2認證裝置之間預先相互進行的認證的每次認證時使用前次認證的存儲數(shù)據更新了用來確定上述第1認證裝置的存儲數(shù)據、用來確定第2認證裝置的存儲數(shù)據的更新結果作為履歷數(shù)據,在上述第1認證裝置和第2認證裝置各自中共通地存儲的存儲步驟,其中上述第1認證裝置包含使用存儲的履歷數(shù)據新生成存儲數(shù)據,并且使用上述履歷數(shù)據對生成的新的存儲數(shù)據進行加密并發(fā)送到第2認證裝置的第1發(fā)送步驟;根據來自上述第2認證裝置的存儲數(shù)據和上述發(fā)送的新存儲數(shù)據,更新上述履歷數(shù)據的第1更新步驟,上述第2認證裝置包含使用來自上述第1認證裝置的存儲數(shù)據和存儲的履歷數(shù)據新生成存儲數(shù)據,并且使用上述履歷數(shù)據對生成的新存儲數(shù)據進行加密并發(fā)送到第1認證裝置的第2發(fā)送步驟;根據來自上述第1認證裝置的存儲數(shù)據和上述發(fā)送的新存儲數(shù)據,更新上述履歷數(shù)據的第2更新步驟,在上述第1認證裝置和第2認證裝置的至少一方裝置中,在根據履歷數(shù)據而存儲數(shù)據的正當性成立時,驗證為第1認證裝置和第2認證裝置的相互關系是正當?shù)摹?br>
2.根據權利要求1所述的相互認證方法,其特征在于將上述履歷數(shù)據作為履歷數(shù)據K,作為該履歷數(shù)據K存儲的用來確定上述第1認證裝置的存儲數(shù)據是密碼數(shù)據C和認證數(shù)據R,用來確定上述第2認證裝置的存儲數(shù)據是密碼數(shù)據S和認證數(shù)據Q。
3.根據權利要求2所述的相互認證方法,其特征在于上述第1發(fā)送步驟使用所存儲的履歷數(shù)據K的密碼數(shù)據S和認證數(shù)據R,新生成密碼數(shù)據C,并且針對所存儲的履歷數(shù)據K的認證數(shù)據R進行新生成,使用上述履歷數(shù)據K對生成的新認證數(shù)據R進行加密而求出認證數(shù)據A,向上述第2認證裝置發(fā)送上述認證數(shù)據A和新的密碼數(shù)據C,上述第1更新步驟從上述第2認證裝置接收數(shù)據,根據上述發(fā)送了的新的密碼數(shù)據C、接收到的新生成的密碼數(shù)據S、接收到的新生成的認證數(shù)據Q、上述發(fā)送了的新的認證數(shù)據R,更新上述履歷數(shù)據K,上述第2發(fā)送步驟從上述第1認證裝置接收數(shù)據,使用接收到的新的密碼數(shù)據C和所存儲的履歷數(shù)據K的認證數(shù)據Q,新生成密碼數(shù)據S,并且針對所存儲的履歷數(shù)據K的認證數(shù)據Q進行新生成,使用存儲了生成的新認證數(shù)據Q的履歷數(shù)據K進行加密而求出認證數(shù)據B,向第1認證裝置發(fā)送上述認證數(shù)據B和新的密碼數(shù)據S,上述第2更新步驟根據接收到的新的密碼數(shù)據C、新生成的密碼數(shù)據S、新生成的認證數(shù)據Q、接收到的新的認證數(shù)據R,更新上述履歷數(shù)據K,在上述第1認證裝置和第2認證裝置的至少一方裝置中,在根據履歷數(shù)據K而密碼數(shù)據的正當性成立時,驗證為第1認證裝置和第2認證裝置的相互關系是正當?shù)摹?br>
4.根據權利要求1所述的相互認證方法,其特征在于在上述存儲步驟中,作為履歷數(shù)據存儲上述第1發(fā)送步驟、第1更新步驟、第2發(fā)送步驟、第2更新步驟中的認證的更新結果。
5.根據權利要求2所述的相互認證方法,其特征在于上述認證數(shù)據R和認證數(shù)據Q的至少一方是通過隨機數(shù)產生裝置產生的隨機數(shù)、數(shù)據容量、時間數(shù)據的至少一個。
6.根據權利要求2所述的相互認證方法,其特征在于在上述第1認證裝置的第1發(fā)送步驟中,作為密碼數(shù)據C生成基于上述密碼數(shù)據S和認證數(shù)據R的預先確定了的函數(shù)的運算結果的值,在上述第2認證裝置的第2發(fā)送步驟中,作為密碼數(shù)據S生成基于上述密碼數(shù)據C和上述認證數(shù)據Q的預先確定了的函數(shù)的運算結果的值。
7.根據權利要求2所述的相互認證方法,其特征在于在上述第1認證裝置的第1發(fā)送步驟中,作為認證數(shù)據A求出基于上述生成了的新的認證數(shù)據R和上述履歷數(shù)據K的預先確定了的函數(shù)的運算結果的值,在上述第2認證裝置的第2發(fā)送步驟中,作為認證數(shù)據B求出基于上述生成了的新的認證數(shù)據Q和上述履歷數(shù)據K的預先確定了的函數(shù)的運算結果的值。
8.根據權利要求2所述的相互認證方法,其特征在于上述第1認證裝置的驗證步驟在基于上述履歷數(shù)據K中的所存儲的認證數(shù)據Q和前次發(fā)送前所生成的密碼數(shù)據C的預先確定了的函數(shù)的運算結果的值與接收到的密碼數(shù)據S一致時,驗證為上述相互關系是正當?shù)摹?br>
9.根據權利要求2所述的相互認證方法,其特征在于上述第2認證裝置的驗證步驟在基于上述履歷數(shù)據K中的所存儲的密碼數(shù)據S和認證數(shù)據R的預先確定了的函數(shù)的運算結果的值與接收到的密碼數(shù)據C一致時,驗證為上述相互關系是正當?shù)摹?br>
10.根據權利要求2所述的相互認證方法,其特征在于上述存儲步驟將執(zhí)行多個上述第1發(fā)送步驟、第2發(fā)送步驟、第1更新步驟和第2更新步驟的結果所得到的數(shù)據作為履歷數(shù)據K存儲。
11.一種相互認證裝置,由經由通信線路連接的第1認證裝置和第2認證裝置構成,并認證上述第1認證裝置和第2認證裝置之間的相互關系,其特征在于包括設置在上述第1認證裝置中,存儲用來確定該第1認證裝置的存儲數(shù)據的第1存儲器;設置在上述第2認證裝置中,存儲用來確定該第2認證裝置的存儲數(shù)據的第2存儲器;在上述第1認證裝置和第2認證裝置之間預先相互進行的認證的每次認證時,存儲前次認證的存儲數(shù)據的認證數(shù)據存儲裝置;將使用上述認證數(shù)據更新了的更新結果作為履歷數(shù)據,共通地存儲在上述第1認證裝置和第2認證裝置各自中的履歷數(shù)據存儲裝置;設置在上述第1認證裝置或第2認證裝置中的認證用數(shù)據發(fā)送側的認證裝置中,使用上述履歷數(shù)據新生成存儲數(shù)據的存儲數(shù)據生成裝置;使用上述履歷數(shù)據對生成的新存儲數(shù)據進行加密,并發(fā)送到認證用數(shù)據接收側的認證裝置的第1發(fā)送裝置;設置在認證用數(shù)據接收側的認證裝置中,使用來自上述認證用數(shù)據發(fā)送側的認證裝置的存儲數(shù)據和存儲的履歷數(shù)據,新生成存儲數(shù)據的存儲數(shù)據生成裝置;使用上述履歷數(shù)據對生成的新存儲數(shù)據進行加密,并回送到上述認證用數(shù)據發(fā)送側的認證裝置的第2發(fā)送裝置;設置在認證用數(shù)據發(fā)送側的認證裝置中,根據從上述認證用數(shù)據接收側的認證裝置回送的存儲數(shù)據和上述發(fā)送了的新存儲數(shù)據,更新上述履歷數(shù)據的第1更新裝置;設置在認證用數(shù)據接收側的認證裝置中,根據來自上述認證用數(shù)據發(fā)送側的認證裝置的存儲數(shù)據和上述回送的新存儲數(shù)據,更新上述履歷數(shù)據的第2更新裝置,其中在上述第1認證裝置和第2認證裝置的至少一方中具備在根據上述履歷數(shù)據而存儲數(shù)據的正當性成立時,驗證為第1認證裝置和第2認證裝置的相互關系是正當?shù)尿炞C裝置。
12.根據權利要求11所述的相互認證裝置,其特征在于還包括計算用來使用上述履歷數(shù)據對生成的新存儲數(shù)據進行加密的認證用數(shù)據的計算裝置。
13.根據權利要求12所述的相互認證裝置,其特征在于還包括在通過上述計算裝置生成認證用數(shù)據時,生成加密用的數(shù)據的隨機數(shù)產生裝置。
14.一種一次性ID的生成方法,在多個進行相互認證的裝置間或應用程序間的認證中,將只限使用一次的識別信息作為一次性ID,生成該一次性ID,其特征在于在進行上述認證的裝置或應用程序的各自中,生成在上述認證所必需的每個規(guī)定通信單位中都變化的可變共有密鑰,同時求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID。
15.一種一次性ID的生成方法,在多個裝置間或應用程序間的認證中,將只限使用一次的識別信息作為一次性ID,生成該一次性ID,其特征在于在進行上述認證的裝置或應用程序的各自中,生成在上述認證所必需的每個規(guī)定通信單位中都變化的可變共有密鑰,同時求出將該可變共有密鑰和與通信順序或次數(shù)有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID。
16.一種一次性ID的生成方法,在多個裝置間或應用程序間的認證中,將只限使用一次的識別信息作為一次性ID,生成該一次性ID,其特征在于在進行上述認證的裝置或應用程序的各自中,在上述認證所必需的每個規(guī)定通信單位內生成隨機數(shù),同時求出將該隨機數(shù)和規(guī)定的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID。
17.一種一次性ID的生成方法,是在一方裝置和另一方裝置之間的認證中將只限使用一次的識別信息作為一次性ID,在雙方裝置中生成該一次性ID,同時一方裝置向另一方裝置發(fā)送一次性ID,另一方裝置通過對從一方裝置接收到的一次性ID和自己生成的一次性ID進行比較和對照,識別或認證另一方裝置的情況下,一方裝置和另一方裝置生成一次性ID的方法,其特征在于一方裝置和另一方裝置生成在上述認證所必需的每個規(guī)定的通信單位中變化的可變共有密鑰,同時求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,并從該函數(shù)值生成上述一次性ID。
18.一種一次性ID的生成方法,是在一方裝置和另一方裝置之間的認證中將只限使用一次的識別信息作為一次性ID,在雙方裝置中生成該一次性ID,同時一方裝置向另一方裝置發(fā)送一次性ID,另一方裝置通過對從一方裝置接收到的一次性ID和自己生成的一次性ID進行比較和對照,識別或認證另一方裝置的情況下,一方裝置和另一方裝置生成一次性ID的方法,其特征在于一方裝置和另一方裝置生成在上述認證所必需的每個規(guī)定的通信單位中變化的可變共有密鑰,同時求出將該可變共有密鑰和與通信順序或次數(shù)有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,并從該函數(shù)值生成上述一次性ID。
19.一種一次性ID的生成方法,是在一方裝置和另一方裝置之間的認證中將只限使用一次的識別信息作為一次性ID,在雙方裝置中生成該一次性ID,同時一方裝置向另一方裝置發(fā)送一次性ID,另一方裝置通過對從一方裝置接收到的一次性ID和自己生成的一次性ID進行比較和對照,識別或認證另一方裝置的情況下,一方裝置和另一方裝置生成一次性ID的方法,其特征在于一方裝置和另一方裝置在上述認證所必需的規(guī)定的通信單位內生成隨機數(shù),同時求出將該隨機數(shù)和規(guī)定的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,并從該函數(shù)值生成上述一次性ID。
20.一種認證方法,在裝置間或應用程序間的認證中,將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,生成在上述認證所必需的每個規(guī)定的通信單位中都變化的可變共有密鑰,同時求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成一次性ID,使用該生成的一次性ID,進行第1裝置和第2裝置之間的認證,其特征在于包括上述第1裝置使用在與上述第2裝置之間預先共有了的可變共有密鑰生成上述一次性ID,同時向上述第2裝置發(fā)送至少將該生成了的一次性ID、在該第1裝置中預先設置了的ID作為參數(shù)的單向函數(shù)Fc的函數(shù)值、預先存儲在該第1裝置中的Diffie-Hellman公開值的一方的步驟;上述第2裝置通過計算求出上述一次性ID和上述單向函數(shù)Fc的函數(shù)值,對該計算結果、從上述第1裝置接收到的一次性ID和單向函數(shù)Fc的函數(shù)值進行對照,判斷上述第1裝置的正當性的步驟;上述第2裝置在判斷出上述第1裝置是正當?shù)那闆r下,向上述第1裝置發(fā)送至少將預先設置在該第2裝置中的ID作為參數(shù)的單向函數(shù)Fs的函數(shù)值、預先存儲在該第2裝置中的Diffie-Hellman公開值的另一方的步驟;上述第1裝置通過計算求出上述單向函數(shù)Fs的函數(shù)值,對該計算結果、從上述第2裝置接收到的單向函數(shù)Fs的函數(shù)值進行對照,判斷上述第2裝置的正當性的步驟。
21.根據權利要求20所述的認證方法,其特征在于作為上述單向函數(shù)Fc,使用將規(guī)定的共有密鑰、上述Diffie-Hellman公開值的一方、預先設置在上述第1裝置中的ID、上述一次性ID作為參數(shù)的偽隨機數(shù)函數(shù),同時作為上述單向函數(shù)Fs,使用將上述規(guī)定的共有密鑰、上述Diffie-Hellman公開值的一方、上述Diffie-Hellman公開值的另一方、預先設置在上述第2裝置中的ID、上述一次性ID作為參數(shù)的偽隨機數(shù)函數(shù)。
22.一種認證方法,在多個裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,生成在上述認證所必需的每個規(guī)定的通信單位中變化的可變共有密鑰,同時求出將該可變共有密鑰和與通信順序或次數(shù)有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)生成一次性ID,使用該一次性ID進行第1裝置和第2裝置之間的認證,其特征在于包括上述第1裝置作為第1一次性ID生成將在與上述第2裝置之間預先共有了的第1可變共有密鑰、與該第1裝置的通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,同時使用上述第1可變共有密鑰,對預先設置在該第1裝置中的ID、預先設置在上述第2裝置中的ID、預先存儲在該第1裝置中的Diffie-Hellman公開值的一方和上述第1一次性ID進行加密,向上述第2裝置發(fā)送該加密數(shù)據和上述第1一次性ID的步驟;上述第2裝置通過計算求出上述第1一次性ID,通過對該計算結果、從上述第1裝置接收到的上述第1一次性ID進行對照,識別上述第1裝置的步驟;上述第2裝置在識別出上述第1裝置的情況下,使用上述第1可變共有密鑰解密上述加密數(shù)據,根據包含在該解密了的數(shù)據中的預先設置在上述第1裝置中的ID、預先設置在該第2裝置中的ID和上述第1一次性ID,判斷上述第1裝置的正當性的步驟;上述第2裝置在判斷出上述第1裝置是正當?shù)那闆r下,作為第2一次性ID生成將上述第1可變共有密鑰和與該第2裝置的通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,同時作為第2可變共有密鑰根據從上述第1裝置接收到的Diffie-Hellman公開值的一方和預先存儲在該第2裝置中的Diffie-Hellman公開值的另一方生成Diffie-Hellman共通密鑰,向上述第1裝置發(fā)送將該第2可變共有密鑰、預先設置在上述第1裝置中的ID、預先設置在該第2裝置中的ID和上述第2一次性ID作為參數(shù)的單向函數(shù)h的函數(shù)值、上述Diffie-Hellman公開值的另一方、上述第2一次性ID的步驟;上述第1裝置通過計算求出上述第2一次性ID,通過對該計算結果、從上述第2裝置接收到的上述第2一次性ID進行對照,識別上述第2裝置的步驟;上述第1裝置在識別出上述第2裝置的情況下,作為上述第2可變共有密鑰根據從上述第2裝置接收到的上述Diffie-Hellman公開值的另一方、預先存儲在該第1裝置中的上述Diffie-Hellman公開值的一方生成Diffie-Hellman共通密鑰,同時使用該第2可變共有密鑰,通過計算求出上述單向函數(shù)h的函數(shù)值,通過對該計算結果、從上述第2裝置接收到的單向函數(shù)h的函數(shù)值進行對照,判斷上述第2裝置的正當性的步驟。
23.根據權利要求22所述的認證方法,其特征在于作為生成上述第2一次性ID的單向函數(shù),使用與生成上述第1一次性ID的單向函數(shù)不同的單向函數(shù)。
24.一種認證方法,在多個裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,在上述認證所必需的規(guī)定的通信單位內生成隨機數(shù),同時求出將該隨機數(shù)和規(guī)定的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)生成上述一次性ID,使用該生成的一次性ID進行第1裝置和第2裝置之間的認證,其特征在于包括上述第1裝置生成第1隨機數(shù),同時作為第1一次性ID求出將在與上述第2裝置之間預先共有了的第1共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述第2裝置發(fā)送該第1一次性ID和上述第1隨機數(shù)的步驟;上述第2裝置生成第2隨機數(shù),同時作為第2一次性ID求出將上述第1隨機數(shù)和上述第1共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述第1裝置發(fā)送該第2一次性ID和上述第2隨機數(shù)的步驟;上述第1裝置根據上述第1隨機數(shù)和上述第1共有密鑰,通過計算求出上述第2一次性ID,通過對該計算結果、從上述第2裝置接收到的上述第2一次性ID進行比較,判斷上述第2裝置的正當性的步驟;上述第1裝置根據上述第1隨機數(shù)和上述第2隨機數(shù)生成第2共有密鑰,同時作為第3一次性ID求出將該第2共有密鑰、上述第1隨機數(shù)和上述第2隨機數(shù)作為參數(shù)的單向函數(shù)的函數(shù)值,向上述第2裝置發(fā)送該第3一次性ID的步驟;上述第2裝置根據上述第1隨機數(shù)和上述第2隨機數(shù)生成上述第2共有密鑰,同時根據該第2共有密鑰、上述第1隨機數(shù)和上述第2隨機數(shù)通過計算求出上述第3一次性ID,通過對該計算結果、從上述第1裝置接收到的上述第3一次性ID進行比較,判斷上述第1裝置的正當性的步驟。
25.一種認證方法,在多個裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,在上述認證所必需的規(guī)定的通信單位內生成隨機數(shù),同時求出將該隨機數(shù)和規(guī)定的共用密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)生成上述一次性ID,使用該生成的一次性ID進行第1裝置和第2裝置之間的認證,其特征在于包括上述第1裝置生成第1隨機數(shù),同時作為第1一次性ID求出將在與上述第2裝置之間預先共有了的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述第2裝置發(fā)送該第1一次性ID和上述第1隨機數(shù)的步驟;上述第2裝置生成第2隨機數(shù),同時作為第2一次性ID求出將上述第1隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述第1裝置發(fā)送該第2一次性ID和上述第2隨機數(shù)的步驟;上述第1裝置根據上述第1隨機數(shù)和上述共有密鑰,通過計算求出上述第2一次性ID,通過對該計算結果、從上述第2裝置接收到的上述第2一次性ID進行比較,判斷上述第2裝置的正當性的步驟;上述第1裝置作為第3一次性ID求出將上述第1隨機數(shù)、上述第2隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述第2裝置發(fā)送該第3一次性ID的步驟;上述第2裝置根據上述第1隨機數(shù)、上述第2隨機數(shù)和上述共有密鑰通過計算求出上述第3一次性ID,通過對該計算結果、從上述第1裝置接收到的上述第3一次性ID進行比較,判斷上述第1裝置的正當性的步驟。
26.根據權利要求24所述的認證方法,其特征在于在用在上述第1裝置和上述第2裝置之間預先共有了的共有密鑰對上述第1隨機數(shù)和上述第2隨機數(shù)進行了加密的狀態(tài)下進行發(fā)送。
27.根據權利要求所述的認證方法,其特征在于在用在上述第1裝置和上述第2裝置之間預先共有了的共有密鑰對上述第1隨機數(shù)和上述第2隨機數(shù)進行了加密的狀態(tài)下進行發(fā)送。
28.根據權利要求24~26中的任意一個所述的認證方法,其特征在于在上述第2裝置向上述第1裝置發(fā)送上述第2一次性ID和上述第2隨機數(shù)的步驟中,上述第2裝置將在與上述第1裝置之間預先共有了的隨機數(shù)作為初始隨機數(shù),進行將該初始隨機數(shù)和上述第1隨機數(shù)作為參數(shù)的規(guī)定的計算,向上述第1裝置發(fā)送該計算結果,另一方面上述第1裝置作為上述第2裝置的正當性的判斷材料,與上述第2一次性ID一起使用從上述第2裝置接收到的上述計算結果。
29.根據權利要求24所述的認證方法,其特征在于在上述第1裝置向上述第2裝置發(fā)送上述第3一次性ID的步驟中,上述第1裝置進行將上述第1隨機數(shù)和上述第2隨機數(shù)作為參數(shù)的規(guī)定的計算,向上述第2裝置發(fā)送該計算結果,另一方面上述第2裝置作為上述第1裝置的正當性的判斷材料,與上述第3一次性ID一起使用從上述第1裝置接收到的上述計算結果。
30.根據權利要求25所述的認證方法,其特征在于在上述第1裝置向上述第2裝置發(fā)送上述第3一次性ID的步驟中,上述第1裝置進行將上述第1隨機數(shù)和上述第2隨機數(shù)作為參數(shù)的規(guī)定的計算,向上述第2裝置發(fā)送該計算結果,另一方面上述第2裝置作為上述第1裝置的正當性的判斷材料,與上述第3一次性ID一起使用從上述第1裝置接收到的上述計算結果。
31.一種認證方法,在多個裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,在上述認證所必需的規(guī)定的通信單位內生成隨機數(shù),同時求出將該隨機數(shù)和規(guī)定的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)生成上述一次性ID,使用該生成的一次性ID進行第1裝置和第2裝置之間的認證,其特征在于包括上述第1裝置生成第1隨機數(shù),同時作為第1一次性ID求出將在與上述第2裝置之間預先共有了的共有密鑰、第1存儲隨機數(shù)和第2存儲隨機數(shù)作為參數(shù)的單向函數(shù)的函數(shù)值,向上述第2裝置發(fā)送用上述共有密鑰對預先設置在該第1裝置中的ID、預先設置在上述第2裝置中的ID和上述第1隨機數(shù)進行了加密了的第1加密數(shù)據、上述第1一次性ID的步驟;上述第2裝置通過計算求出上述第1一次性ID,通過對該計算結果、從上述第1裝置接收到的上述第1一次性ID進行對照,識別上述第1裝置的步驟;上述第2裝置在識別出上述第1裝置的情況下,使用上述共有密鑰對上述第1加密數(shù)據進行解密,根據包含在該解密了的數(shù)據中的預先設置在上述第1裝置中的ID和預先設置在該第2裝置中的ID,判斷上述第1裝置的正當性的步驟;上述第2裝置在判斷出上述第1裝置是正當?shù)那闆r下,生成第2隨機數(shù),同時作為第2一次性ID求出將上述第1隨機數(shù)、上述第2存儲隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述第1裝置發(fā)送用上述共有密鑰對預先設置在上述第1裝置中的ID、預先設置在該第2裝置中的ID和上述第2隨機數(shù)進行了加密的第2加密數(shù)據、上述第2一次性ID的步驟;上述第2裝置將上述第1存儲隨機數(shù)置換為上述第1隨機數(shù),將上述第2存儲隨機數(shù)置換為上述第2隨機數(shù)的步驟;上述第1裝置通過計算求出上述第2一次性ID,通過對該計算結果、從上述第2裝置接收到的上述第2一次性ID進行對照,識別上述第2裝置的步驟;上述第1裝置在識別出上述第2裝置的情況下,使用上述共有密鑰對上述第2加密數(shù)據進行解密,根據包含在該解密了的數(shù)據中的預先設置在上述第2裝置中的ID和預先設置在該第1裝置中的ID,判斷上述第2裝置的正當性的步驟;上述第1裝置將上述第1存儲隨機數(shù)置換為上述第1隨機數(shù),將上述第2存儲隨機數(shù)置換為上述第2隨機數(shù)的步驟。
32.根據權利要求31所述的認證方法,其特征在于在將上述第1存儲隨機數(shù)置換為上述第1隨機數(shù),將上述第2存儲隨機數(shù)置換為上述第2隨機數(shù)后,通過根據這些第1存儲隨機數(shù)和第2存儲隨機數(shù)生成上述共有密鑰,來使該共有密鑰變化。
33.一種服務器,在裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,生成在上述認證所必需的每個規(guī)定的通信單位中變化的可變共有密鑰,同時求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與客戶端之間進行認證,其特征在于包括從上述客戶端接收至少將預先設置在上述客戶端中的客戶端ID作為參數(shù)的單向函數(shù)Fc的函數(shù)值、預先存儲在上述客戶端中的Diffie-Hellman公開值的一方、上述一次性ID的接收裝置;通過計算求出上述單向函數(shù)的函數(shù)值Fc和上述一次性ID,通過對該計算結果、從上述客戶端接收到的上述一次性ID和上述單向函數(shù)Fc的函數(shù)值進行比較,判斷上述客戶端的正當性的判斷裝置;在上述判斷裝置判斷出上述客戶端是正當?shù)那闆r下,向上述客戶端發(fā)送至少將預先設置在該服務器中的服務器ID作為參數(shù)的單向函數(shù)Fs的函數(shù)值、預先存儲在該服務器中的Diffie-Hellman公開值的另一方的發(fā)送裝置。
34.一種客戶端,在裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,生成在上述認證所必需的每個規(guī)定的通信單位中變化的可變共有密鑰,同時求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與服務器之間進行認證,其特征在于包括使用在與上述服務器之間預先共有了的可變共有密鑰生成上述一次性ID,同時通過計算求出至少將預先設置在該客戶端中的客戶端ID作為參數(shù)的單向函數(shù)Fc的函數(shù)值,向上述服務器發(fā)送這些一次性ID和單向函數(shù)Fc的函數(shù)值、預先存儲在該客戶端中的Diffie-Hellman公開值的一方的發(fā)送裝置;從上述服務器接收至少將預先設置在上述服務器中的服務器ID作為參數(shù)的單向函數(shù)Fs的函數(shù)值、預先存儲在上述服務器中的Diffie-Hellman公開值的另一方的接收裝置;通過計算求出上述單向函數(shù)Fs的函數(shù)值,通過對該計算結果、從上述服務器接收到的上述單向函數(shù)Fs的函數(shù)值進行比較,判斷上述服務器的正當性的判斷裝置。
35.一種認證系統(tǒng),由服務器和客戶端構成,上述服務器和客戶端在裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,生成在上述認證所必需的每個規(guī)定的通信單位中變化的可變共有密鑰,同時求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與客戶端之間進行認證,其特征在于上述服務器具備從上述客戶端接收至少將預先設置在上述客戶端中的客戶端ID作為參數(shù)的單向函數(shù)Fc的函數(shù)值、預先存儲在上述客戶端中的Diffie-Hellman公開值的一方、上述一次性ID的接收裝置;通過計算求出上述單向函數(shù)的函數(shù)值Fc和上述一次性ID,通過對該計算結果、從上述客戶端接收到的上述一次性ID和上述單向函數(shù)Fc的函數(shù)值進行比較,判斷上述客戶端的正當性的判斷裝置;在上述判斷裝置判斷出上述客戶端是正當?shù)那闆r下,向上述客戶端發(fā)送至少將預先設置在該服務器中的服務器ID作為參數(shù)的單向函數(shù)Fs的函數(shù)值、預先存儲在該服務器中的Diffie-Hellman公開值的另一方的發(fā)送裝置,上述客戶端具備使用在與上述服務器之間預先共有了的可變共有密鑰生成上述一次性ID,同時通過計算求出至少將預先設置在該客戶端中的客戶端ID作為參數(shù)的單向函數(shù)Fc的函數(shù)值,向上述服務器發(fā)送這些一次性ID和單向函數(shù)Fc的函數(shù)值、預先存儲在該客戶端中的Diffie-Hellman公開值的一方的發(fā)送裝置;從上述服務器接收至少將預先設置在上述服務器中的服務器ID作為參數(shù)的單向函數(shù)Fs的函數(shù)值、預先存儲在上述服務器中的Diffie-Hellman公開值的另一方的接收裝置;通過計算求出上述單向函數(shù)Fs的函數(shù)值,通過對該計算結果、從上述服務器接收到的上述單向函數(shù)Fs的函數(shù)值進行比較,判斷上述服務器的正當性的判斷裝置。
36.一種程序,是在裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,生成在上述認證所必需的每個規(guī)定的通信單位中變化的可變共有密鑰,同時求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與客戶端之間進行認證的服務器中執(zhí)行的程序,其特征在于使上述服務器執(zhí)行以下的處理從上述客戶端接收至少將預先設置在上述客戶端中的客戶端ID作為參數(shù)的單向函數(shù)Fc的函數(shù)值、預先存儲在上述客戶端中的Diffie-Hellman公開值的一方、上述一次性ID的處理;通過計算求出上述單向函數(shù)的函數(shù)值Fc和上述一次性ID,通過對該計算結果、從上述客戶端接收到的上述一次性ID和上述單向函數(shù)Fc的函數(shù)值進行比較,判斷上述客戶端的正當性的處理;在判斷出上述客戶端是正當?shù)那闆r下,向上述客戶端發(fā)送至少將預先設置在上述服務器中的服務器ID作為參數(shù)的單向函數(shù)Fs的函數(shù)值、預先存儲在上述服務器中的Diffie-Hellman公開值的另一方的處理。
37.一種程序,是在裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,生成在上述認證所必需的每個規(guī)定的通信單位中變化的可變共有密鑰,同時求出將該可變共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與服務器之間進行認證的客戶端中執(zhí)行的程序,其特征在于使上述客戶端執(zhí)行以下的處理使用在與上述服務器之間預先共有了的可變共有密鑰生成上述一次性ID,同時通過計算求出至少將預先設置在上述客戶端中的客戶端ID作為參數(shù)的單向函數(shù)Fc的函數(shù)值,向上述服務器發(fā)送這些一次性ID和單向函數(shù)Fc的函數(shù)值、預先存儲在上述客戶端中的Diffie-Hellman公開值的一方的處理;從上述服務器接收至少將預先設置在上述服務器中的服務器ID作為參數(shù)的單向函數(shù)Fs的函數(shù)值、預先存儲在上述服務器中的Diffie-Hellman公開值的另一方的處理;通過計算求出上述單向函數(shù)Fs的函數(shù)值,通過對該計算結果、從上述服務器接收到的上述單向函數(shù)Fs的函數(shù)值進行比較,判斷上述服務器的正當性的處理。
38.一種服務器,在多個裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,生成在上述認證所必需的每個規(guī)定的通信單位中變化的可變共有密鑰,同時求出將該可變共有密鑰和與通信順序或次數(shù)有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與客戶端之間進行認證,其特征在于包括將在與上述客戶端之間預先共有了的第1可變共有密鑰、與上述客戶端的通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值作為第1一次性ID,并從上述客戶端接收用上述第1可變共有密鑰對該第1一次性ID、預先設置在上述客戶端中的客戶端ID、預先設置在該服務器中的服務器ID、預先存儲在上述客戶端中的Diffie-Hellman公開值的一方進行了加密的加密數(shù)據、上述第1一次性ID的接收裝置;通過計算求出上述第1一次性ID,通過對該計算結果、從上述客戶端接收到的上述第1一次性ID進行對照,識別上述客戶端,在識別出上述客戶端的情況下,使用上述第1可變共有密鑰對上述加密數(shù)據進行解密,根據包含在該解密了的數(shù)據中的上述客戶端ID、上述服務器ID和上述第1一次性ID,判斷上述客戶端的正當性的判斷裝置;在上述判斷裝置判斷出上述客戶端是正當?shù)那闆r下,作為第2一次性ID生成將上述第1可變共有密鑰和與該服務器的通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,同時作為第2可變共有密鑰根據從上述客戶端接收到的Diffie-Hellman公開值的一方、預先存儲在該服務器中的Diffie-Hellman公開值的另一方生成Diffie-Hellman共通密鑰,向上述客戶端發(fā)送將該第2可變共有密鑰、上述客戶端ID、上述服務器ID和上述第2一次性ID作為參數(shù)的單向函數(shù)h的函數(shù)值、上述Diffie-Hellman公開值的另一方、上述第2一次性ID的發(fā)送裝置。
39.一種客戶端,在多個裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,生成在上述認證所必需的每個規(guī)定的通信單位中變化的可變共有密鑰,同時求出將該可變共有密鑰和與通信順序或次數(shù)有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與服務器之間進行認證,其特征在于包括作為第1一次性ID生成將在與上述服務器之間預先共有了的第1可變共有密鑰、與該客戶端的通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,同時使用上述第1可變共有密鑰,對預先設置在該客戶端中的客戶端ID、預先設置在上述服務器中的服務器ID、預先存儲在該客戶端中的Diffie-Hellman公開值的一方和上述第1一次性ID進行加密,向上述服務器發(fā)送該加密數(shù)據和上述第1一次性ID的發(fā)送裝置;將上述第1可變共有密鑰和與上述服務器的通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值作為第2一次性ID,將Diffie-Hellman共通密鑰作為第2可變共有密鑰,從上述服務器接收將上述第2一次性ID、上述第2可變共有密鑰、上述客戶端ID和上述服務器ID作為參數(shù)的單向函數(shù)h的函數(shù)值、預先存儲在上述服務器中的Diffie-Hellman公開值的另一方、上述第2一次性ID的接收裝置;通過計算求出上述第2一次性ID,通過對該計算結果、從上述服務器接收到的上述第2一次性ID進行對照,識別上述服務器,在識別出上述服務器的情況下,作為上述第2可變共有密鑰根據從上述服務器接收到的上述Diffie-Hellman公開值的另一方、預先存儲在該客戶端中的上述Diffie-Hellman公開值的一方生成Diffie-Hellman共通密鑰,同時使用該第2可變共有密鑰,通過計算求出上述單向函數(shù)h的函數(shù)值,通過對該計算結果、從上述服務器接收到的單向函數(shù)h的函數(shù)值進行對照,判斷上述服務器的正當性的判斷裝置。
40.一種認證系統(tǒng),由服務器和客戶端構成,上述服務器和客戶端在多個裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,生成在上述認證所必需的每個規(guī)定的通信單位中變化的可變共有密鑰,同時求出將該可變共有密鑰和與通信順序或次數(shù)有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與客戶端之間進行認證,其特征在于上述服務器具備將在與上述客戶端之間預先共有了的第1可變共有密鑰、與上述客戶端的通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值作為第1一次性ID,并從上述客戶端接收用上述第1可變共有密鑰對該第1一次性ID、預先設置在上述客戶端中的客戶端ID、預先設置在該服務器中的服務器ID、預先存儲在上述客戶端中的Diffie-Hellman公開值的一方進行了加密的加密數(shù)據、上述第1一次性ID的接收裝置;通過計算求出上述第1一次性ID,通過對該計算結果、從上述客戶端接收到的上述第1一次性ID進行對照,識別上述客戶端,在識別出上述客戶端的情況下,使用上述第1可變共有密鑰對上述加密數(shù)據進行解密,根據包含在該解密了的數(shù)據中的上述客戶端ID、上述服務器ID和上述第1一次性ID,判斷上述客戶端的正當性的判斷裝置;在上述判斷裝置判斷出上述客戶端是正當?shù)那闆r下,作為第2一次性ID生成將上述第1可變共有密鑰和與該服務器的通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,同時作為第2可變共有密鑰根據從上述客戶端接收到的Diffie-Hellman公開值的一方、預先存儲在該服務器中的Diffie-Hellman公開值的另一方生成Diffie-Hellman共通密鑰,向上述客戶端發(fā)送將該第2可變共有密鑰、上述客戶端ID、上述服務器ID和上述第2一次性ID作為參數(shù)的單向函數(shù)h的函數(shù)值、上述Diffie-Hellman公開值的另一方、上述第2一次性ID的發(fā)送裝置,上述客戶端具備作為第1一次性ID生成將在與上述服務器之間預先共有了的第1可變共有密鑰、與該客戶端的通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值,同時使用上述第1可變共有密鑰,對預先設置在該客戶端中的客戶端ID、預先設置在上述服務器中的服務器ID、預先存儲在該客戶端中的Diffie-Hellman公開值的一方和上述第1一次性ID進行加密,向上述服務器發(fā)送該加密數(shù)據和上述第1一次性ID的發(fā)送裝置;將上述第1可變共有密鑰和與上述服務器的通信順序有關的信息作為參數(shù)的單向函數(shù)的函數(shù)值作為第2一次性ID,將Diffie-Hellman共通密鑰作為第2可變共有密鑰,從上述服務器接收將上述第2一次性ID、上述第2可變共有密鑰、上述客戶端ID和上述服務器ID作為參數(shù)的單向函數(shù)h的函數(shù)值、預先存儲在上述服務器中的Diffie-Hellman公開值的另一方、上述第2一次性ID的接收裝置;通過計算求出上述第2一次性ID,通過對該計算結果、從上述服務器接收到的上述第2一次性ID進行對照,識別上述服務器,在識別出上述服務器的情況下,作為上述第2可變共有密鑰根據從上述服務器接收到的上述Diffie-Hellman公開值的另一方、預先存儲在該客戶端中的上述Diffie-Hellman公開值的一方生成Diffie-Hellman共通密鑰,同時使用該第2可變共有密鑰,通過計算求出上述單向函數(shù)h的函數(shù)值,通過對該計算結果、從上述服務器接收到的單向函數(shù)h的函數(shù)值進行對照,判斷上述服務器的正當性的判斷裝置。
41.一種服務器,在多個裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,在上述認證所必需的規(guī)定的通信單位內生成隨機數(shù),同時求出將該隨機數(shù)和規(guī)定的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與客戶端之間進行認證,其特征在于包括將在與上述客戶端之間預先共有了的第1共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第1一次性ID,從上述客戶端接收該第1一次性ID和在上述客戶端中生成的第1隨機數(shù)的第1接收裝置;生成第2隨機數(shù),同時作為第2一次性ID求出將上述第1隨機數(shù)和上述第1共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述客戶端發(fā)送該第2一次性ID和上述第2隨機數(shù)的發(fā)送裝置;將上述第1隨機數(shù)、上述第2隨機數(shù)和第2共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第3一次性ID,從上述客戶端接收該第3一次性ID的第2接收裝置;根據上述第1隨機數(shù)和上述第2隨機數(shù)生成上述第2共有密鑰,同時根據該第2共有密鑰、上述第1隨機數(shù)和上述第2隨機數(shù)通過計算求出上述第3一次性ID,通過對該計算結果、從上述客戶端接收到的上述第3一次性ID進行比較,判斷上述客戶端的正當性的判斷裝置。
42.一種客戶端,在多個裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,在上述認證所必需的規(guī)定的通信單位內生成隨機數(shù),同時求出將該隨機數(shù)和規(guī)定的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與服務器之間進行認證,其特征在于包括生成第1隨機數(shù),同時作為第1一次性ID求出將在與上述服務器之間預先共有了的第1共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述服務器發(fā)送該第1一次性ID和上述第1隨機數(shù)的第1發(fā)送裝置;將上述第1隨機數(shù)、上述第1共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第2一次性ID,從上述服務器接收該第2一次性ID、在上述服務器中生成的第2隨機數(shù)的接收裝置;根據上述第1隨機數(shù)和上述第1共有密鑰,通過計算求出上述第2一次性ID,通過對該計算結果、從上述服務器接收到的上述第2一次性ID進行比較,判斷上述服務器的正當性的判斷裝置;在通過上述判斷裝置判斷出上述服務器是正當?shù)那闆r下,根據上述第1隨機數(shù)和上述第2隨機數(shù)生成第2共有密鑰,同時作為第3一次性ID求出將該第2共有密鑰、上述第1隨機數(shù)和上述第2隨機數(shù)作為參數(shù)的單向函數(shù)的函數(shù)值,向上述服務器發(fā)送該第3一次性ID的第2發(fā)送裝置。
43.一種認證系統(tǒng),由服務器和客戶端構成,上述服務器和客戶端在多個裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,在上述認證所必需的規(guī)定的通信單位內生成隨機數(shù),同時求出將該隨機數(shù)和規(guī)定的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與客戶端之間相互進行認證,其特征在于上述服務器具備將在與上述客戶端之間預先共有了的第1共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第1一次性ID,從上述客戶端接收該第1一次性ID和在上述客戶端中生成的第1隨機數(shù)的第1接收裝置;生成第2隨機數(shù),同時作為第2一次性ID求出將上述第1隨機數(shù)和上述第1共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述客戶端發(fā)送該第2一次性ID和上述第2隨機數(shù)的發(fā)送裝置;將上述第1隨機數(shù)、上述第2隨機數(shù)和第2共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第3一次性ID,從上述客戶端接收該第3一次性ID的第2接收裝置;根據上述第1隨機數(shù)和上述第2隨機數(shù)生成上述第2共有密鑰,同時根據該第2共有密鑰、上述第1隨機數(shù)和上述第2隨機數(shù)通過計算求出上述第3一次性ID,通過對該計算結果、從上述客戶端接收到的上述第3一次性ID進行比較,判斷上述客戶端的正當性的判斷裝置,上述客戶端具備生成第1隨機數(shù),同時作為第1一次性ID求出將在與上述服務器之間預先共有了的第1共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述服務器發(fā)送該第1一次性ID和上述第1隨機數(shù)的第1發(fā)送裝置;將上述第1隨機數(shù)、上述第1共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第2一次性ID,從上述服務器接收該第2一次性ID、在上述服務器中生成的第2隨機數(shù)的接收裝置;根據上述第1隨機數(shù)和上述第1共有密鑰,通過計算求出上述第2一次性ID,通過對該計算結果、從上述服務器接收到的上述第2一次性ID進行比較,判斷上述服務器的正當性的判斷裝置;在通過上述判斷裝置判斷出上述服務器是正當?shù)那闆r下,根據上述第1隨機數(shù)和上述第2隨機數(shù)生成第2共有密鑰,同時作為第3一次性ID求出將該第2共有密鑰、上述第1隨機數(shù)和上述第2隨機數(shù)作為參數(shù)的單向函數(shù)的函數(shù)值,向上述服務器發(fā)送該第3一次性ID的第2發(fā)送裝置。
44.一種服務器,在多個裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,在上述認證所必需的規(guī)定的通信單位內生成隨機數(shù),同時求出將該隨機數(shù)和規(guī)定的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與客戶端之間進行認證,其特征在于包括將在與上述客戶端之間預先共有了的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第1一次性ID,從上述客戶端接收該第1一次性ID和在上述客戶端中生成的第1隨機數(shù)的第1接收裝置;生成第2隨機數(shù),同時作為第2一次性ID求出將上述第1隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述客戶端發(fā)送該第2一次性ID和上述第2隨機數(shù)的發(fā)送裝置;將上述共有密鑰、上述第1隨機數(shù)和上述第2隨機數(shù)作為參數(shù)的單向函數(shù)的函數(shù)值作為第3一次性ID,從上述客戶端接收該第3一次性ID的第2接收裝置;根據上述第1隨機數(shù)、上述第2隨機數(shù)和上述共有密鑰通過計算求出上述第3一次性ID,通過對該計算結果、從上述客戶端接收到的上述第3一次性ID進行比較,判斷上述客戶端的正當性的判斷裝置。
45.一種客戶端,在多個裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,在上述認證所必需的規(guī)定的通信單位內生成隨機數(shù),同時求出將該隨機數(shù)和規(guī)定的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與服務器之間進行認證,其特征在于包括生成第1隨機數(shù),同時作為第1一次性ID求出將在與上述服務器之間預先共有了的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述服務器發(fā)送該第1一次性ID和上述第1隨機數(shù)的第1發(fā)送裝置;將上述第1隨機數(shù)、上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第2一次性ID,從上述服務器接收該第2一次性ID、在上述服務器中生成的第2隨機數(shù)的接收裝置;根據上述第1隨機數(shù)和上述共有密鑰,通過計算求出上述第2一次性ID,通過對該計算結果、從上述服務器接收到的上述第2一次性ID進行比較,判斷上述服務器的正當性的判斷裝置;在通過上述判斷裝置判斷出上述服務器是正當?shù)那闆r下,作為第3一次性ID求出將上述第1隨機數(shù)、上述第2隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述服務器發(fā)送該第3一次性ID的第2發(fā)送裝置。
46.一種認證系統(tǒng),由服務器和客戶端構成,上述服務器和客戶端在多個裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,在上述認證所必需的規(guī)定的通信單位內生成隨機數(shù),同時求出將該隨機數(shù)和規(guī)定的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與客戶端之間相互進行認證,其特征在于上述服務器具備將在與上述客戶端之間預先共有了的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第1一次性ID,從上述客戶端接收該第1一次性ID和在上述客戶端中生成的第1隨機數(shù)的第1接收裝置;生成第2隨機數(shù),同時作為第2一次性ID求出將上述第1隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述客戶端發(fā)送該第2一次性ID和上述第2隨機數(shù)的發(fā)送裝置;將上述共有密鑰、上述第1隨機數(shù)和上述第2隨機數(shù)作為參數(shù)的單向函數(shù)的函數(shù)值作為第3一次性ID,從上述客戶端接收該第3一次性ID的第2接收裝置;根據上述第1隨機數(shù)、上述第2隨機數(shù)和上述共有密鑰通過計算求出上述第3一次性ID,通過對該計算結果、從上述客戶端接收到的上述第3一次性ID進行比較,判斷上述客戶端的正當性的判斷裝置,上述客戶端具備生成第1隨機數(shù),同時作為第1一次性ID求出將在與上述服務器之間預先共有了的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述服務器發(fā)送該第1一次性ID和上述第1隨機數(shù)的第1發(fā)送裝置;將上述第1隨機數(shù)、上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第2一次性ID,從上述服務器接收該第2一次性ID、在上述服務器中生成的第2隨機數(shù)的接收裝置;根據上述第1隨機數(shù)和上述共有密鑰,通過計算求出上述第2一次性ID,通過對該計算結果、從上述服務器接收到的上述第2一次性ID進行比較,判斷上述服務器的正當性的判斷裝置;在通過上述判斷裝置判斷出上述服務器是正當?shù)那闆r下,作為第3一次性ID求出將上述第1隨機數(shù)、上述第2隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述服務器發(fā)送該第3一次性ID的第2發(fā)送裝置。
47.一種服務器,在多個裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,在上述認證所必需的規(guī)定的通信單位內生成隨機數(shù),同時求出將該隨機數(shù)和規(guī)定的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與客戶端之間相互進行認證,其特征在于包括將在與上述客戶端之間預先共有了的共有密鑰、第1存儲隨機數(shù)和第2存儲隨機數(shù)作為參數(shù)的單向函數(shù)的函數(shù)值作為第1一次性ID,從上述客戶端接收該第1一次性ID,同時從上述客戶端接收用上述共有密鑰對在上述客戶端中生成的第1隨機數(shù)、預先設置在上述客戶端中的客戶端ID和預先設置在該服務器中服務器ID進行了加密的第1加密數(shù)據的接收裝置;通過計算求出上述第1一次性ID,通過對該計算結果、從上述客戶端接收到的上述第1一次性ID進行對照,識別上述客戶端,在識別出上述客戶端的情況下,使用上述共有密鑰對上述第1加密數(shù)據進行解密,根據包含在該解密了的數(shù)據中的上述客戶端ID和上述服務器ID,判斷上述客戶端的正當性的判斷裝置;在通過上述判斷裝置判斷出上述客戶端是正當?shù)那闆r下,生成第2隨機數(shù),同時作為第2一次性ID求出將上述第1隨機數(shù)、上述第2存儲隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述客戶端發(fā)送用上述共有密鑰對上述客戶端ID、上述服務器ID和上述第2隨機數(shù)進行了加密的第2加密數(shù)據、上述第2一次性ID的發(fā)送裝置;將上述第1存儲隨機數(shù)置換為上述第1隨機數(shù),將上述第2存儲隨機數(shù)置換為上述第2隨機數(shù)的置換裝置。
48.一種客戶端,在多個裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,在上述認證所必需的規(guī)定的通信單位內生成隨機數(shù),同時求出將該隨機數(shù)和規(guī)定的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與服務器之間相互進行認證,其特征在于包括生成第1隨機數(shù),同時作為第1一次性ID求出將在與上述服務器之間預先共有了的共有密鑰、第1存儲隨機數(shù)和第2存儲隨機數(shù)作為參數(shù)的單向函數(shù)的函數(shù)值,向上述服務器發(fā)送用上述共有密鑰對預先設置在該客戶端中的客戶端ID、預先設置在上述服務器中的服務器ID和上述第1隨機數(shù)進行了加密的第1加密數(shù)據、上述第1一次性ID的發(fā)送裝置;將上述第1隨機數(shù)、上述第2存儲隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第2一次性ID,從上述服務器接收該第2一次性ID,同時從上述服務器接收用上述共有密鑰對在上述服務器中生成的第2隨機數(shù)、上述客戶端ID和上述服務器ID進行了加密的第2加密數(shù)據的接收裝置;通過計算求出上述第2一次性ID,通過對該計算結果、從上述服務器接收到的上述第2一次性ID進行對照,識別上述服務器,在識別出上述服務器的情況下,使用上述共有密鑰對上述第2加密數(shù)據進行解密,根據包含在該解密了的數(shù)據中的上述服務器ID和上述客戶端ID,判斷上述服務器的正當性的判斷裝置;將上述第1存儲隨機數(shù)置換為上述第1隨機數(shù),將上述第2存儲隨機數(shù)置換為上述第2隨機數(shù)的置換裝置。
49.一種認證系統(tǒng),由服務器和客戶端構成,上述服務器和客戶端在多個裝置間或應用程序間的認證中將只限使用一次的識別信息作為一次性ID,在進行上述認證的裝置或應用程序各自中,在上述認證所必需的規(guī)定的通信單位內生成隨機數(shù),同時求出將該隨機數(shù)和規(guī)定的共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,從該函數(shù)值生成上述一次性ID,使用該生成的一次性ID在與客戶端之間相互進行認證,其特征在于上述服務器具備將在與上述客戶端之間預先共有了的共有密鑰、第1存儲隨機數(shù)和第2存儲隨機數(shù)作為參數(shù)的單向函數(shù)的函數(shù)值作為第1一次性ID,從上述客戶端接收該第1一次性ID,同時從上述客戶端接收用上述共有密鑰對在上述客戶端中生成的第1隨機數(shù)、預先設置在上述客戶端中的客戶端ID和預先設置在該服務器中服務器ID進行了加密的第1加密數(shù)據的接收裝置;通過計算求出上述第1一次性ID,通過對該計算結果、從上述客戶端接收到的上述第1一次性ID進行對照,識別上述客戶端,在識別出上述客戶端的情況下,使用上述共有密鑰對上述第1加密數(shù)據進行解密,根據包含在該解密了的數(shù)據中的上述客戶端ID和上述服務器ID,判斷上述客戶端的正當性的判斷裝置;在通過上述判斷裝置判斷出上述客戶端是正當?shù)那闆r下,生成第2隨機數(shù),同時作為第2一次性ID求出將上述第1隨機數(shù)、上述第2存儲隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值,向上述客戶端發(fā)送用上述共有密鑰對上述客戶端ID、上述服務器ID和上述第2隨機數(shù)進行了加密的第2加密數(shù)據、上述第2一次性ID的發(fā)送裝置;將上述第1存儲隨機數(shù)置換為上述第1隨機數(shù),將上述第2存儲隨機數(shù)置換為上述第2隨機數(shù)的置換裝置,上述客戶端具備生成第1隨機數(shù),同時作為第1一次性ID求出將在與上述服務器之間預先共有了的共有密鑰、第1存儲隨機數(shù)和第2存儲隨機數(shù)作為參數(shù)的單向函數(shù)的函數(shù)值,向上述服務器發(fā)送用上述共有密鑰對預先設置在該客戶端中的客戶端ID、預先設置在上述服務器中的服務器ID和上述第1隨機數(shù)進行了加密的第1加密數(shù)據、上述第1一次性ID的發(fā)送裝置;將上述第1隨機數(shù)、上述第2存儲隨機數(shù)和上述共有密鑰作為參數(shù)的單向函數(shù)的函數(shù)值作為第2一次性ID,從上述服務器接收該第2一次性ID,同時從上述服務器接收用上述共有密鑰對在上述服務器中生成的第2隨機數(shù)、上述客戶端ID和上述服務器ID進行了加密的第2加密數(shù)據的接收裝置;通過計算求出上述第2一次性ID,通過對該計算結果、從上述服務器接收到的上述第2一次性ID進行對照,識別上述服務器,在識別出上述服務器的情況下,使用上述共有密鑰對上述第2加密數(shù)據進行解密,根據包含在該解密了的數(shù)據中的上述服務器ID和上述客戶端ID,判斷上述服務器的正當性的判斷裝置;將上述第1存儲隨機數(shù)置換為上述第1隨機數(shù),將上述第2存儲隨機數(shù)置換為上述第2隨機數(shù)的置換裝置。
50.根據權利要求49所述的認證系統(tǒng),其特征在于上述服務器和上述客戶端在將上述第1存儲隨機數(shù)置換為上述第1隨機數(shù),將上述第2存儲隨機數(shù)置換為上述第2隨機數(shù)后,通過根據這些第1存儲隨機數(shù)和第2存儲隨機數(shù)生成上述共有密鑰,來使該共有密鑰變化。
全文摘要
本發(fā)明提供能夠安全并且簡便地進行相互認證的相互認證方法。在相互認證過程中,在客戶端和服務器中存儲作為初始值的隱蔽密鑰K
文檔編號G09C1/00GK1768502SQ0381422
公開日2006年5月3日 申請日期2003年6月19日 優(yōu)先權日2002年6月19日
發(fā)明者今本健二, 大河克好, 橋本努 申請人:安全通信公司, 株式會社產學連攜機構九州