密鑰發布系統的製作方法
2023-05-27 00:01:11 3
專利名稱:密鑰發布系統的製作方法
技術領域:
本發明涉及密鑰發布系統,特別是涉及由伺服器向終端發布作為伺服器和終端之間的加密通信中所使用的公用密鑰的通信用私人密鑰的密鑰發布系統。
背景技術:
以往,有一種使用規定了有效期限的會話密鑰來進行加密通信的通信系統。在該通信系統中,將會話密鑰加密來進行發布。在會話密鑰的加密中,使用被稱為kryptonite 協議的公用密鑰加密。在共享密鑰加密中,對伺服器(住宅用伺服器)和終端(設備終端)預先設定相同的公用密鑰(後面稱為「通信用私人密鑰」)。由於通信用私人密鑰按照每個終端決定, 所以即使終端的使用者發生了改變,終端的通信用私人密鑰也不會發生變化。因此,以前利用過終端的使用者如果預先從終端取得通信用私人密鑰,則能夠監聽終端和伺服器之間的通信。因此,可能會發生如下情況同一終端的新的使用者的使用狀況(例如生活習慣)等被以前的使用者監視,或者終端被以前的使用者非法使用(被任意操作)。文獻1 (日本特開2000-349748號公報)公開了一種通信機密性比共享密鑰加密更高的公開密鑰加密。即使是公開密鑰加密,只要不變更公開密鑰和私有密鑰,就無法完全防止以前的使用者監聽通信的情況。因此,考慮在使用者發生了變化時變更公開密鑰和私有密鑰。但是,對於文獻1所公開的公開密鑰加密而言,發送者和接收者為了共享信息,發送者和接收者必須分別持有與對方的公開密鑰成對的私人密鑰(私有密鑰)。因此,在文獻1所公開的公開密鑰加密中,不進行私人密鑰自身的交換。
發明內容
本發明是鑑於上述情況而完成的。本發明的目的在於,提供一種密鑰發布系統,其能夠以不為第三者所知的方式,從伺服器向終端安全地發布伺服器新發行的、在與終端的加密通信中使用的通信用私人密鑰。本發明涉及的密鑰發布系統,具備終端、和經由通信網絡與上述終端連接的伺服器。上述終端具備第一密鑰存儲單元,其能夠被改寫,用於存儲通信用私人密鑰和公開密鑰。上述終端具備第一通信單元,其用於與上述伺服器進行使用了上述第一密鑰存儲單元中存儲的上述通信用私人密鑰作為公用密鑰的加密通信。上述終端具備密鑰請求單元。上述密鑰請求單元被構成為,在請求上述伺服器發行新的通信用私人密鑰時,重新生成由數值構成的秘密值。上述密鑰請求單元還被構成為,利用上述第一存儲單元中存儲的上述公開密鑰來對上述秘密值進行加密,從而生成第一密碼,並將上述第一密碼發送到上述伺服器。上述伺服器具備第二密鑰存儲單元,其能夠被改寫,除了存儲上述通信用私人密鑰以外,還存儲與上述公開密鑰成對的私有密鑰、即解密用私人密鑰。上述伺服器具備第二通信單元,其用於與上述終端進行使用了上述第二密鑰存儲單元中存儲的上述通信用私人密鑰作為公用密鑰的加密通信。上述伺服器具備密鑰發行單元。上述密鑰發行單元被構成為,當上述終端請求發行新的通信用私人密鑰時,發行新的通信用私人密鑰並將其存儲在上述第二密鑰存儲單元中。上述密鑰發行單元還被構成為,通過利用上述解密用私人密鑰對上述第一密碼進行解密來取得上述秘密值。上述密鑰發行單元還被構成為,利用該秘密值對上述新的通信用私人密鑰進行加密來生成第二密碼,並將上述第二密碼發送到請求了發行新的通信用私人密鑰的上述終端。上述密鑰請求單元被構成為,通過利用上述秘密值對上述第二密碼進行解密,取得上述新的通信用私人密鑰,並將其存儲在上述第一密鑰存儲單元中。上述第一通信單元被構成為,在上述新的通信用私人密鑰被存儲在上述第一密鑰存儲單元以後,與上述伺服器進行使用了上述新的通信用私人密鑰作為公用密鑰的加密通信。 上述第二通信單元被構成為,在上述新的通信用私人密鑰被存儲在上述第二密鑰存儲單元以後,與上述終端進行使用了上述新的通信用私人密鑰作為公用密鑰的加密通信。在該密鑰發布系統中,在終端請求伺服器發行新的通信用私人密鑰時,利用公開密鑰對秘密值進行加密,並發送到伺服器。伺服器利用與公開密鑰成對的私有密鑰對被加密了的秘密值進行解密。伺服器以能夠利用秘密值進行解密的方式對新的通信用私人密鑰進行加密,並發送到終端。終端利用秘密值對被加密了的通信用私人密鑰進行解密,從而取得新的通信用私人密鑰。因此,根據該密鑰發布系統,能夠將新的通信用私人密鑰安全地從伺服器送達到終端。優選地,上述密鑰請求單元被構成為,在請求上述伺服器發行新的通信用私人密鑰時,將上述第一密鑰存儲單元中存儲的上述通信用私人密鑰作為上述公開密鑰使用,對上述新生成的秘密值進行加密。上述密鑰發行單元被構成為,在上述終端請求發行新的通信用私人密鑰時,發行上述新的通信用私人密鑰,並且發行與上述新的通信用私人密鑰成對的私有密鑰、即新的解密用私人密鑰,將其存儲在上述第二密鑰存儲單元中,在上述新的解密用私人密鑰被存儲在上述第二存儲單元以後,利用上述新的解密用私人密鑰對上述第一密碼進行解密。根據該密鑰發布系統,由於將通信用私人密鑰作為公開密鑰使用,所以只有伺服器能夠對被加密了的秘密值進行解密。因此,第三者即使使用通信用私人密鑰,也無法對被加密了的私人密鑰進行解密。所以,能夠將新的通信用私人密鑰安全地從伺服器送達到終端。優選地,上述密鑰請求單元被構成為,生成作為上述秘密值使用的第一隨機變數和第二隨機變數,在向上述伺服器請求發行新的通信用私人密鑰之前,將上述第二隨機變數發送到上述伺服器,通過上述第一隨機變數和上述第二隨機變數的單純運算來生成通信數值,利用上述公開密鑰對上述通信數值進行加密,並發送到上述伺服器。根據該密鑰發布系統,能夠防止秘密值被第三者知道,從而能夠降低通信用私人密鑰被第三者知道的可能性。並且,位數多於秘密值的通信數值只是在從終端向伺服器發送秘密值的時候被使用。因此,不必利用位數大於秘密值的通信數值就能夠完成通信用私人密鑰的加密和解密,從而能夠降低終端和伺服器的處理負荷。優選地,上述密鑰發行單元被構成為,在上述終端請求發行新的通信用私人密鑰時,生成包含從上述終端接收到的上述秘密值的消息碼,利用上述消息碼對上述新的通信用私人密鑰進行加密,並發送到上述終端。
根據該密鑰發布系統,通過進行消息認證,伺服器和終端能夠檢測出第三者對通信用私人密鑰進行的篡改。因此,能夠保證使用了通信用私人密鑰的加密通信的安全性。本發明涉及的其他的密鑰發布系統,具備終端、和經由通信網絡與上述終端連接的伺服器。上述終端具備第一密鑰存儲單元,其能夠被改寫,用於存儲通信用私人密鑰; 和第一原根存儲單元,其存儲規定的原根。上述終端具備第一通信單元,其用於與上述伺服器進行使用了上述第一存儲單元中存儲的上述通信用私人密鑰作為公用密鑰的加密通信;和密鑰請求單元。上述密鑰請求單元被構成為,在請求上述伺服器發行新的通信用私人密鑰時,重新生成由數值構成的第一秘密值。上述密鑰請求單元還被構成為,通過將上述第一秘密值應用於上述第一原根存儲單元中存儲的上述原根,生成Diffie-Hellman密鑰共享方式的第一公開密鑰,並發送到上述伺服器。上述伺服器具備第二密鑰存儲單元,其存儲上述通信用私人密鑰;和第二原根存儲單元,其存儲上述規定的原根。上述伺服器具備 第二通信單元,其用於與上述終端進行使用了上述第二存儲單元中存儲的上述通信用私人密鑰作為公用密鑰的加密通信;和密鑰發行單元。上述密鑰發行單元被構成為,在上述終端請求發行新的通信用私人密鑰時,生成由數值構成的第二秘密值,利用從上述終端接收到的第一公開密鑰和上述第二秘密值來生成上述Diffie-Hellman密鑰共享方式的公用密鑰。上述密鑰發行單元還被構成為,通過將上述第二秘密值應用於上述第二原根存儲單元中存儲的上述原根,生成上述Diffie-Hellman密鑰共享方式的第二公開密鑰。上述密鑰發行單元還被構成為,利用上述公用密鑰對上述新的通信用私人密鑰進行加密,並與上述第二公開密鑰一起發送到請求發行新的通信用私人密鑰的上述終端。上述密鑰請求單元被構成為,在從上述伺服器接收到被加密了的上述新的通信用私人密鑰和上述第二公開密鑰時,利用上述重新生成的秘密值和從上述伺服器接收到的上述第二公開密鑰來生成上述公用密鑰。上述密鑰請求單元還被構成為,利用生成的上述公用密鑰對被加密了的上述新的通信用私人密鑰進行解密,取得上述新的通信用私人密鑰,並存儲在上述第一密鑰存儲單元中。上述第一通信單元被構成為,在上述新的通信用私人密鑰被存儲在上述第一存儲單元以後,與上述伺服器進行使用了上述新的通信用私人密鑰作為公用密鑰的加密通信。上述第二通信單元被構成為,在上述新的通信用私人密鑰被存儲在上述第二存儲單元以後, 與上述終端進行使用了上述新的通信用私人密鑰作為公用密鑰的加密通信。根據該密鑰發布系統,利用Diffie-Hellman密鑰共享方式的公用密鑰,對新的通信用私人密鑰進行加密,並發送到終端。因此,即使是知道原先的通信用私人密鑰的第三者,也無法對被加密了的新的通信用私人密鑰進行解密。所以,能夠將新的通信用私人密鑰安全地送達到終端。
圖1是實施方式1的密鑰發布系統的框圖。圖2是實施方式1的動作說明圖。圖3是表示實施方式1的動作的流程圖。圖4是實施方式2的密鑰發布系統的框圖。圖5是實施方式2的動作說明圖。圖6是實施方式2的變形例的密鑰發布系統的動作說明圖。
圖7是實施方式3的密鑰發布系統的框圖。圖8是實施方式3的動作說明圖。圖9是實施方式4的密鑰發布系統的框圖。圖10是實施方式4的動作說明圖。
具體實施例方式(實施方式1)如圖1所示那樣,本實施方式的密鑰發布系統具備多個終端10、和經由通信網絡 30與各終端10連接的伺服器20。通信網絡30可以是廣域網和內部網的其中一種。終端 10和伺服器20利用用於連接通信網絡30的通信接口、用於存儲規定的數據的存儲器、和用於實現規定的功能的微型計算機而構成。終端10經由通信網絡30與伺服器20連接。終端10具有第一密鑰存儲單元11、 第一通信單元12、密鑰請求單元13、第一識別信息存儲單元14、會話密鑰請求單元15、和會話密鑰接收單元16。第一密鑰存儲單元11是可改寫的記錄介質。第一密鑰存儲單元11被構成為存儲通信用私人密鑰和會話密鑰。另外,在本實施方式中,通信用私人密鑰也作為公開密鑰使用。因此,第一密鑰存儲單元11也可以說是存儲通信用私人密鑰和公開密鑰。第一識別信息存儲單元14例如是可改寫的記錄介質。第一識別信息存儲單元14 存儲用於在密鑰發布系統中確定終端10和伺服器20的識別信息(識別符)。另外,上述的識別信息是密鑰發布系統中固有的(唯一的)信息。識別信息例如是MAC地址、IPv6中的 IP位址、內部網中設定的地址。第一通信單元12被設置為用於與伺服器20進行加密通信。第一通信單元12被構成為與伺服器20進行使用了第一存儲單元11中存儲的通信用私人密鑰作為公用密鑰的加密通信。另外,第一通信單元12被構成為與伺服器20進行使用了第一存儲單元11中存儲的會話密鑰作為公用密鑰的加密通信。第一通信單元12發送包含發送源的識別信息(終端10的識別信息)、發送目的地的識別信息(伺服器20的識別信息)、和規定的電文的信息包。該信息包的電文利用通信用私人密鑰或者會話密鑰被加密。密鑰請求單元13被構成為進行如下處理,即,請求伺服器20發行通信用私人密鑰的處理(發行請求處理)、和接收通信用私人密鑰的處理。密鑰請求單元13被設置為用於例如在終端10的使用者發生了變化時變更通信用私人密鑰。通過使用者進行特定操作、例如用於開始發行請求處理的開關操作,發行請求處理開始。終端10也可以被構成為,在與通信網絡30建立了連接時(在發送用於通知加入了通信網絡30的情況的信息包時)自動執行發行請求處理。在終端10與通信網絡30建立了連接後,可以定期或者不定期地執行發行請求處理。在這種情況下,執行發行請求處理的第一時間間隔優選設定為,與執行請求發行會話密鑰的處理的第二時間間隔相比足夠長。例如,在將第二時間間隔設為1天左右的情況下,優選將第一時間間隔設為1個月以上。會話密鑰請求單元15被構成為,進行請求伺服器20發行會話密鑰的處理。會話密鑰接收單元16被構成為,進行接收來自伺服器20的會話密鑰的處理。伺服器20具有第二密鑰存儲單元21、第二通信單元22、密鑰發行單元23、第二識別信息存儲單元M、和會話密鑰發行單元25。第二密鑰存儲單元21是可改寫的記錄介質。第二密鑰存儲單元21被構成為存儲通信用私人密鑰和會話密鑰。第二存儲單元21還被構成為,存儲與通信用私人密鑰成對的私有密鑰、即解密用私人密鑰。這樣,通信用私人密鑰和解密用私人密鑰是成對的加密密鑰。也就是說,通信用私人密鑰和解密用私人密鑰之間的關係等同於公開密鑰加密中的公開密鑰和私人密鑰(私有密鑰)之間的關係。即,解密用私人密鑰是用於對以通信用私人密鑰作為公開密鑰進行了加密的電文進行解密的私有密鑰。因此,為了對使用通信用私人密鑰(相當於公開密鑰加密中的公開密鑰)進行了加密的電文(密文)進行解密,需要解密用私人密鑰(相當於公開密鑰加密中的私有密鑰)而不是通信用私人密鑰。另外,為了對使用解密用私人密鑰進行了加密的電文(密文)進行解密,需要通信用私人密鑰。因此,在本實施方式的密鑰發布系統中,終端10和伺服器20利用公開密鑰加密方式,能夠進行加密通信。第二密鑰存儲單元21被構成為將由通信用私人密鑰、解密用私人密鑰、和會話密鑰組成的密鑰環和與伺服器20連接的各個終端10建立關聯地進行存儲。也就是說,終端 10的識別信息分別與通信用私人密鑰、解密用私人密鑰、會話密鑰建立了對應。第二識別信息存儲單元M例如是可改寫的記錄介質。第二識別信息存儲單元M 存儲上述識別信息。第二通信單元22被設置為用於與終端10進行加密通信。第二通信單元22被構成為與終端10進行使用了第二存儲單元21中存儲的通信用私人密鑰作為公用密鑰的加密通信。另外,第二通信單元22構成為與終端10進行使用了第二存儲單元21中存儲的會話密鑰作為公用密鑰的加密通信。第二通信單元22發送包含發送源的識別信息(伺服器20 的識別信息)、發送目的地的識別信息(終端10的識別信息)、和規定的電文的信息包。該信息包的電文利用通信用私人密鑰或者會話密鑰被加密。密鑰發行單元23被構成為,在終端10請求通信用私人密鑰的發行時進行通信用私人密鑰的發行處理。會話密鑰發行單元25被構成為,在終端10請求會話密鑰的發行時進行會話密鑰的發行處理。也就是說,伺服器20對來自終端10的請求進行響應並發行會話密鑰。在本實施方式中,伺服器20被構成為,向終端10發送在伺服器20和終端10之間收發的電文的加密處理中使用的會話密鑰。終端10例如是設置於住宅內的具有通信功能的設備機器。伺服器20例如是認證伺服器,利用可與住宅內的各個設備機器(終端10)進行通信的住宅用伺服器而構成。利用伺服器20來進行住宅內的各個設備機器(終端10)的控制和監視。在請求伺服器20發布會話密鑰時,會話密鑰請求單元15生成隨機數(第一隨機數)。第一隨機數是只使用一次的數值。第一隨機數通常是隨機變數。會話密鑰請求單元 15控制第一通信單元12,以便第一通信單元12向伺服器20發送包含第一隨機數、會話密鑰請求消息(會話密鑰請求指令)、以及終端10的識別信息的電文。會話密鑰請求消息是用於請求發行會話密鑰的指令。另外,由於第一通信單元12發送包含發送源地址(發送源的識別信息)和發送目的地地址(發送目的地的識別信息)的信息包,所以伺服器20能夠通過發送源地址取得終端10的識別信息。因此,在上述的電文中可以省略終端10的識別信息。當從終端10接收到會話密鑰請求消息時,會話密鑰發行單元25生成會話密鑰,並將其存儲在第二密鑰存儲單元21中。另外,會話密鑰發行單元25利用第二密鑰存儲單元 21中存儲的通信用私人密鑰來對會話密鑰進行加密。為了對會話密鑰進行加密,會話密鑰發行單元25利用通信用私人密鑰來生成第二消息認證碼(第二消息碼)。會話密鑰發行單元25將第二消息認證碼和會話密鑰的邏輯異或作為被加密的會話密鑰進行使用。即,會話密鑰發行單元25將第二消息認證碼作為公用密鑰使用來對會話密鑰進行加密。用於生成第二消息認證碼的信息包含從終端10接收到的終端10的識別信息以及第一隨機數、會話密鑰發行單元25生成的隨機數(第二隨機數)、和伺服器20的識別信息。會話密鑰發行單元25對第二通信單元22進行控制,以使得第二通信單元22向終端10發送被加密了的會話密鑰和第二隨機數。當從伺服器20接收到被加密了的會話密鑰和第二隨機數時,會話密鑰接收單元 16對被加密了的會話密鑰進行解密。為了對被加密了的會話密鑰進行解密,會話密鑰接收單元16生成與第二消息認證碼等值的第一消息認證碼(第一消息碼)。由於具有終端10 的識別信息、第一隨機數、伺服器20的識別信息、和通信用私人密鑰,所以終端10能夠通過從伺服器20接收第二隨機數來生成第一消息認證碼。被加密了的會話密鑰是第二消息認證碼和會話密鑰的邏輯異或。因此,通過求出被加密了的會話密鑰和第一消息認證碼的邏輯異或,能夠取得會話密鑰。會話密鑰接收單元16將已取得的會話密鑰存儲在第一密鑰存儲單元11中。此時, 會話密鑰接收單元16可以構成為,將第一密鑰存儲單元11中存儲的會話密鑰更新為新取得的會話密鑰。密鑰請求單元13具有秘密值生成模塊130、秘密值存儲模塊131、秘密值加密模塊 132、以及秘密值發送模塊133。秘密值生成模塊130被構成為在請求發行新的通信用私人密鑰時生成由數值構成的秘密值。秘密值是隨機變數。也就是說,秘密值生成模塊130在每次進行請求發行通信用私人密鑰的處理時都生成具有隨機數值的秘密值。因此,秘密值在每次進行請求發行通信用私人密鑰的處理時都具有不同的數值。同一秘密值會一直被使用到終端10接收到新的通信用私人密鑰為止。秘密值存儲模塊131被構成為存儲由秘密值生成模塊130生成的秘密值。另外, 對於秘密值存儲模塊131而言,在已經存儲有秘密值的情況下,可以構成為將存儲的秘密值更新為由秘密值生成模塊130生成的秘密值。秘密值加密模塊132被構成為,對秘密值存儲模塊131中存儲的秘密值進行加密來生成第一密碼。秘密值加密模塊132將第一密鑰存儲單元11中存儲的通信用私人密鑰作為公用密鑰使用來對秘密值進行加密。例如,秘密值加密模塊132在請求新的通信用私人密鑰的處理開始時,使用第一密鑰存儲單元11中存儲的通信用私人密鑰,通過公開密鑰方式(例如RSA)來對秘密值進行加密,從而生成第一密碼。秘密值發送模塊133被構成為,對第一通信單元12進行控制,以使得由秘密值加密模塊132生成的第一密碼、與請求發行新的通信用私人密鑰的請求消息(請求指令)一起被發送到伺服器20。秘密值發送模塊133也使第一通信單元12將終端10的識別信息與第一密碼一起進行發送。密鑰發行單元23具有密鑰生成模塊230、通信用私人密鑰加密模塊231、通信用私人密鑰發送模塊232、以及第二保管模塊233。密鑰生成模塊230被構成為,在第二通信單元22從終端10接收到請求消息時生成新的通信用私人密鑰。另外,密鑰生成模塊230被構成為,在第二通信單元22接收到請求消息時生成與新的通信用私人密鑰成對的新的解密用私人密鑰。通信用私人密鑰加密模塊231具有秘密值取得部2311和加密部2312。秘密值取得部2311被構成為,在第二通信單元22接收到請求消息時,對第二通信單元22接收到的第一密碼進行解密來取得秘密值。秘密值取得部2311利用與通信用私人密鑰成對的解密用私人密鑰來對第一密碼進行解密。另外,秘密值取得部2311在提取與終端10的通信用私人密鑰成對的解密用私人密鑰時,將終端10的識別信息用於檢索鍵值。加密部2312被構成為,將從秘密值取得部2311得到的秘密值作為公用密鑰使用來對新的通信用私人密鑰進行加密,從而生成第二密碼。加密部2312例如將新的通信用私人密鑰和秘密值的邏輯異或作為第二密碼(進行了加密的新的通信用私人密鑰)進行使用。通信用私人密鑰發送模塊232被構成為,對第二通信單元22進行控制,以使得第二通信單元22將第二密碼發送至請求了發行新的通信用私人密鑰的終端10。第二保管模塊233被構成為,將由密鑰生成模塊230生成的新的通信用私人密鑰和新的解密用私人密鑰存儲在第二密鑰存儲單元21中。另外,第二保管模塊233也可以被構成為,將第二密鑰存儲單元21中存儲的通信用私人密鑰更新為由密鑰生成模塊230生成的新的通信用私人密鑰。另外,第二保管模塊233還可以被構成為,將第二密鑰存儲單元21 中存儲的解密用私人密鑰更新為由密鑰生成模塊230生成的新的解密用私人密鑰。這樣,在終端10請求發行新的通信用私人密鑰時,密鑰發行單元23發行新的通信用私人密鑰並存儲在第二密鑰存儲單元21中。密鑰發行單元23通過利用解密用私人密鑰對第一密碼進行解密來取得秘密值。密鑰發行單元23利用秘密值對新的通信用私人密鑰進行加密,從而生成第二密碼。密鑰發行單元23向請求了發行新的通信用私人密鑰的終端 10發送第二密碼。另外,在終端10請求發行新的通信用私人密鑰時,密鑰發行單元23發行新的通信用私人密鑰,並且發行與新的通信用私人密鑰成對的私有密鑰、即新的解密用私人密鑰,並存儲在第二密鑰存儲單元21中。在新的解密用私人密鑰被存儲在第二密鑰存儲單元21之後,密鑰發行單元23利用新的解密用私人密鑰對第一密碼進行解密。這樣,由於第二密鑰存儲單元21中存儲有新的通信用私人密鑰,所以第二通信單元22在和終端10進行使用了通信用私人密鑰作為公用密鑰的解密通信的情況下,使用新的通信用私人密鑰。密鑰請求單元13還具有通信用私人密鑰解密模塊134和第一保管模塊135。通信用私人密鑰解密模塊134被構成為,在上述第一通信單元12接收到第二密碼時,利用秘密值存儲模塊131中存儲的秘密值對第一通信單元12接收到的第二密碼進行解密,由此得到新的通信用私人密鑰。第二密碼是秘密值與新的通信用私人密鑰的邏輯異或。通過求出第二密碼和秘密值的邏輯異或,可以得到新的通信用私人密鑰。另外,通信用私人密鑰解密模塊134也可以被構成為,在得到新的通信用私人密鑰後,刪除秘密值存儲單元 131中存儲的秘密值。第一保管模塊135被構成為,將由通信用私人密鑰解密模塊134得到的新的通信用私人密鑰存儲在第一密鑰存儲單元11中。另外,第一保管模塊135也可以構成為,將第一密鑰存儲單元11中存儲的通信用私人密鑰更新為新的通信用私人密鑰。這樣,在向伺服器20請求發行新的通信用私人密鑰時,密鑰請求單元13新生成由數值構成的秘密值。密鑰請求單元13將第一密鑰存儲單元11中存儲的通信用私人密鑰作為公開密鑰使用來對秘密值進行加密,從而生成第一密碼並向伺服器20發送。密鑰請求單元通過利用秘密值對第二密碼進行解密來取得新的通信用私人密鑰,並存儲在第一密鑰存儲單元11中。這樣,由於第一密鑰存儲單元11中存儲有新的通信用私人密鑰,所以第一通信單元12在與伺服器20進行使用了通信用私人密鑰作為公用密鑰的解密通信的情況下,使用新的通信用私人密鑰。接著,參照圖2和圖3對本實施方式的密鑰發布系統的動作進行說明。另外,在終端10出廠時,進行在終端10中登記通信用私人密鑰的作業、和在管理裝置20中登記通信用私人密鑰和解密用私人密鑰的作業。在進行通信用私人密鑰和解密用私人密鑰的登記時,使用管理裝置(產品管理裝置)40。在進行通信用私人密鑰和解密用私人密鑰的登記時,管理裝置40利用如網際網路那樣的通信線路與伺服器20和終端10連接。如圖2所示那樣,管理裝置40向伺服器20發送通信用私人密鑰KlO和解密用私人密鑰K20 (圖2的進程P10)。伺服器20將從管理裝置40接收到的通信用私人密鑰KlO和解密用私人密鑰K20登記在第二密鑰存儲單元21中(圖3的步驟Sll)。為了防止通信用私人密鑰KlO和解密用私人密鑰K20的外洩,管理裝置40利用SSLGecure Socket Layer 安全套接層)或TLS(Transport Layer Security 傳輸層安全)這樣的技術與伺服器20進行通信。另外,管理裝置40向伺服器20發送用於識別終端10的識別信息(終端識別信息)ID10。伺服器20將從管理裝置40接收到的識別信息IDlO登記在第二識別信息存儲單元M中。另外,在終端10上搭載有用於將設備與通信網絡NT連接的作為中間件的 EMIT (Embedded Micro Internetworking ^Technology :嵌入式微型網際網路互聯技術)的情況下,可以將EMIT的對象ID用於終端識別信息ID10。管理裝置40向終端10發送終端10的識別信息ID10、和在伺服器20中登記的通信用私人密鑰KlO (圖2的進程P20)。終端10將從管理裝置40接收到的識別信息IDlO登記在第一識別信息存儲單元14中。另外,終端10將從管理裝置40接收到的通信用私人密鑰KlO登記在第一密鑰存儲單元11中(圖3的步驟S12)。S卩,在伺服器20的第二密鑰存儲單元21和終端10的第一密鑰單元11中,作為事前私人密鑰分別登記有通信用私人密鑰K10。另外,在伺服器20的第二密鑰存儲單元21 中,作為與通信用私人密鑰KlO成對的事前私人密鑰登記有解密用私人密鑰K20。在本實施方式的密鑰發布系統中,按照下面的流程,伺服器20向終端10發布會話密鑰。在終端10向伺服器20請求發行會話密鑰時,會話密鑰請求單元15生成第一隨機數mo。會話密鑰請求單元15控制第一通信單元12,將第一隨機數mo和會話密鑰請求消息與終端10的識別信息IDlO —起發送到伺服器20 (圖2的進程P30)。在第二通信單元22接收到會話密鑰請求消息時,會話密鑰發行單元25生成會話密鑰K30。會話密鑰發行單元25利用第二密鑰存儲單元21中存儲的通信用私人密鑰KlO 和信息120,生成第二消息認證碼MACK1(I(I20)。信息120是從終端10接收到的終端10的識別信息IDlO以及第一隨機數WO、第二隨機數N20、以及伺服器20的識別信息(伺服器識別信息)ID20。即,120 = (ID10, ΝΙΟ, N20, ID20)。會話密鑰發行單元25進行第二消息認證碼(=MACkio(ID10, ΝΙΟ, N20, ID20))和會話密鑰K30的邏輯異或運算,生成被加密的會話密鑰(=[MACkio(ID10, ΝΙΟ, N20, ID20) XOR K30])。會話密鑰發行單元25控制第二通信單元22,將被加密的會話密鑰和第二隨機數N20 —起發送到終端10 (圖2的進程P40)。另外,如果在進程P30中沒有從終端10接收到識別信息ID10,則可以從信息120 中省略識別信息ID10。將以上的動作概括為,終端10在向伺服器20請求發行會話密鑰時,發送第一隨機數NlO和識別信息IDlO (圖2的進程P30)。伺服器20對終端10的請求進行響應,將被加密的會話密鑰(=[MACkio (ID10, ΝΙΟ, N20, ID20)X0R K30])和第二隨機數N20—起進行發送(圖2的進程P40)。當第一通信單元12接收到被加密的會話密鑰和第二隨機數N20時,會話密鑰接收單元16生成第一消息認證碼。會話密鑰接收單元16通過進行第一消息認證碼( = MACkici(ID10,N10,N20,ID20)) 和被加密了的會話密鑰(=[MACkio(ID10, ΝΙΟ, N20, ID20)X0R K30])的邏輯異或運算來取得會話密鑰K30。會話密鑰接收單元16將接收到的會話密鑰K30存儲在第一密鑰存儲單元 11中。這樣,終端10從伺服器20接收會話密鑰K30。終端10在該會話密鑰K30的有效期間內將從伺服器20接收到的會話密鑰K30用於與伺服器20之間的通信。在本實施方式的密鑰發布系統中,按照下面的流程,伺服器20向終端10發布通信用私人密鑰。當發行請求處理開始時,秘密值生成模塊130生成是隨機變數的秘密值RlO (圖3 的步驟Si; )。秘密值RlO被存儲在秘密值存儲模塊131中。秘密值加密模塊132將第一密鑰存儲單元11中存儲的通信用私人密鑰KlO作為公開密鑰使用來對秘密值RlO進行加密,從而生成第一密碼PEHqq(RIO)(圖3的步驟S14)。秘密值發送模塊133控制第一通信單元12,將第一密碼PENkici(RlO)與終端10的識別信息IDlO以及請求消息一起發送到伺服器20 (圖3的步驟S15、圖2的進程P50)。這樣,終端10在請求伺服器20發行通信用私人密鑰時,發送終端10的識別信息IDlO和第一密碼PEtci(RlO)。對於第一密碼PENkiq(RlO)而言,在電文具有價值的時間內(到下一個通信用私人密鑰Kll被發布到終端10為止的時間內),如果不是解密用私人密鑰K20則無法進行解密。 因此,他人即使知道通信用私人密鑰K10,也無法知道秘密值R10。
當第二通信單元22接收到請求消息時(圖3的步驟S16),則秘密值取得部231利用第二密鑰存儲單元21中存儲的解密用私人密鑰K20來對第一密碼PENkici(RlO)進行解密, 從而取得秘密值RlO (圖3的步驟S17)。另外,密鑰生成模塊230生成新的通信用私人密鑰K11、以及與新的通信用私人密鑰Kll成對的新的解密用私人密鑰K21 (圖3的步驟S18)。加密部2312將從秘密值取得部2311得到的秘密值RlO作為公用密鑰使用來對新的通信用私人密鑰Kll進行加密,從而生成第二密碼(圖3的步驟S19)。在本實施方式中, 加密部2312將新的通信用私人密鑰Kll和秘密值RlO的邏輯異或(=[RIO XOR Kll])作
為第二密碼使用。第二保管模塊233將由密鑰生成模塊230生成的新的通信用私人密鑰Kll和新的解密用私人密鑰K21存儲在第二密鑰存儲單元21中。通信用私人密鑰發送模塊232控制第二通信單元22,將第二密碼發送到請求了發行新的通信用私人密鑰Kll的終端10 (圖3的步驟S20、圖2的進程P60)。這樣,伺服器20 向終端10發送第二密碼(=[RIO XOR Kll])。當上述第一通信單元12接收到第二密碼時(圖3的步驟S21),通信用私人密鑰解密模塊134求出第二密碼(=[RIO XOR Kll])和秘密值RlO的邏輯異或,由此得到新的通信用私人密鑰Kll (圖3的步驟S22)。第一保管模塊135將通過通信用私人密鑰解密模塊134得到的新的通信用私人密鑰Kll存儲在第一密鑰存儲單元11中。並且,在新的通信用私人密鑰Kll被存儲在第一密鑰存儲單元11中以後,第一通信單元12與伺服器20進行將新的通信用私人密鑰Kll作為公用密鑰使用的加密通信。在新的通信用私人密鑰Kll被存儲在第二密鑰存儲單元21以後,第二通信單元22與終端10 進行將新的通信用私人密鑰作為公用密鑰使用的加密通信。因此,在新的通信用私人密鑰Kll被發行以後,即使他人知道以前的通信用私人密鑰K10,也無法監聽終端10和伺服器20之間的通信。在終端10從伺服器20取得了新的通信用私人密鑰Kll後,按照下面的流程,伺服器20向終端10發布會話密鑰。在終端10請求伺服器20發行會話密鑰時,會話密鑰請求單元15生成與第一隨機數mo不同的新的第一隨機數mi。會話密鑰請求單元15控制第一通信單元12,將第一隨機數mi、和會話密鑰請求消息、與終端10的識別信息IDlO—起發送到伺服器20(圖2的進程P70)。當第二通信單元22接收到會話密鑰請求消息時,會話密鑰發行單元25生成與會話密鑰K30不同的新的會話密鑰K31,並存儲在第二密鑰存儲單元21中。會話密鑰發行單元25利用第二密鑰存儲單元21中存儲的通信用私人密鑰Kll和信息121,生成第二消息認證碼MACkii (121)。信息121是從終端10接收到的終端10的識別信息IDlO和第一隨機數 mi、以及第二隨機數N20不同的新的第二隨機數N21、和伺服器20的識別信息(伺服器識別信息)ID20。BP, 121 = (ID10, Nil, N21, ID20) 會話密鑰發行單元25生成被加密了的會話密鑰(=[MACkii (ID10, Nl 1,N21,ID20) XOR K31]),並將其與第二隨機數N21 —起發送到終端10(圖2的進程P80)。
當第一通信單元12接收到第二隨機數N21和被加密了的會話密鑰時,會話密鑰接收單元16生成第一消息認證碼。會話密鑰接收單元16進行第一消息認證碼(=MACkii (ID10, Nil, N21, ID20))和被加密了的會話密鑰(=[MACkii (ID10,Nl 1,N21,ID20)XOR K31])的邏輯異或運算,由此取得會話密鑰K31。會話密鑰接收單元16將接收到的會話密鑰K31存儲在第一密鑰存儲單元 11中。這樣,終端10從伺服器20接收新的會話密鑰K31。在本實施方式的密鑰發布系統中,終端10在請求伺服器20發行新的通信用私人密鑰時,利用公開密鑰對秘密值進行加密並發送到伺服器20。伺服器20利用與公開密鑰成對的私有密鑰對被加密了的秘密值進行解密。伺服器20以利用秘密值能夠解密的方式對新的通信用私人密鑰進行加密,並發送到終端10。終端10利用秘密值對被加密了的通信用私人密鑰進行解密,從而取得新的通信用私人密鑰。在假設終端10的使用者發生了變化的情況下,即使以前的使用者知道通信用私人密鑰,也不可能知道與公開密鑰成對的私有密鑰。因此,以前的使用者無法知道秘密值。 所以,能夠安全地利用秘密值。另外,秘密值只是在向伺服器20請求新的通信用私人密鑰開始到取得該密鑰為止的期間使用。因此,在秘密值有效的期間內,他人知道秘密值的可能性極低。所以,通過利用秘密值對新的通信用私人密鑰進行加密,能夠將新的通信用私人密鑰安全地從伺服器20送達到終端10。這樣,根據本實施方式的密鑰發布系統,能夠將新的通信用私人密鑰安全地從伺服器20送達到終端10。另外,由於將通信用私人密鑰作為公開密鑰使用,所以只有伺服器20才能夠對被加密了的秘密值進行解密。因此,第三者即使利用通信用私人密鑰,也無法對被加密了的私人密鑰進行解密。所以,能夠將新的通信用私人密鑰安全地從伺服器20送達到終端10。另外,伺服器20通過利用通信用私人密鑰和解密用私人密鑰,能夠在不被他人知道的情況下發布只有特定的終端10才能利用的會話密鑰。伺服器20向終端10發布新的會話密鑰的處理(會話密鑰的更新處理)在終端10的使用者發生了變化時被進行。會話密鑰也可以在適當的時機進行定期或者不定期的更新。也就是說,在同一使用者持續使用終端10的期間,也可以進行會話密鑰的更新處理。一般而言,會話密鑰是一次性的加密密鑰。因此,例如終端10也可以構成為,只在規定的有效期間(例如1天)保持同一會話密鑰。在這種情況下,如果在該有效期間內執行會話密鑰的更新處理,則終端10 在短於該有效期間的期間內廢棄會話密鑰。在終端10能夠將會話密鑰作為公用密鑰使用來與伺服器20進行通信的情況下, 可以認為該終端10處於伺服器20的管理下。對於同一伺服器20的管理下的各終端10而言,即使具有互相不同的會話密鑰,也可以認為屬於同一組。另外,不考慮向多個終端10發布同一會話密鑰的情況。例如,假設伺服器20是住宅用伺服器,第一終端10是開關,第二終端10是照明設備。另外,假設伺服器20分別向第一終端10和第二終端10發布不同的會話密鑰。在這種情況下,向各個終端10發布的會話密鑰被伺服器20保存並管理。因此,能夠將第一終端10 和第二終端10作為同一住宅內存在的住宅設備分為一組。密鑰發布系統能夠將屬於同組的終端10綁定,以使得它們能夠互相進行通信。被綁定的各終端10彼此能夠通過伺服器 20進行通信。例如,在上述的例子中,能夠將作為開關的第一終端10的操作反映在作為照明設備的第二終端10的動作上。另外,為了降低新的通信用私人密鑰Kll被第三者讀取的概率,優選進一步將第二密碼(=[RIO XOR Kll])加密。例如,伺服器20的加密部2312可以通過將原來的通信用私人密鑰KlO作為公用密鑰使用的公用密鑰方式(例如DES、3-DES、AES),進一步對第二密碼進行加密。在這種情況下,終端10的通信用私人密鑰解密模塊134被構成為,在利用原來的通信用私人密鑰KlO對被加密了的第二密碼進行了解密後,通過求出第二密碼和秘密值RlO的邏輯異或來取得新的通信用私人密鑰K11。由此,以前的使用者即使知道了通信用私人密鑰K10,也無法輕易地知道在終端10的解密算法中使用了哪種處理。另外,以前的使用者也需要知道秘密值R10。因此,能夠大幅度降低新的通信用私人密鑰KlO被第三者知道的可能性。(實施方式2)如圖4所示那樣,本實施方式的密鑰發布系統的終端IOA和伺服器20A與實施方式1不同。對於本實施方式的密鑰發布系統和實施方式1的密鑰發布系統中的共同的構成, 賦予相同的符號並省略說明。對於伺服器20A而言,密鑰發行單元23A的通信用私人密鑰加密模塊231A與實施方式1的伺服器20不同。通信用私人密鑰加密模塊231A具有秘密值取得部2311、加密部2312A、和加密密鑰生成部2313。加密密鑰生成部2313被構成為,通過將第二密鑰存儲單元21中存儲的通信用私人密鑰(不是新的通信用私人密鑰而是終端IOA所具有的通信用私人密鑰)作為公用密鑰使用,生成由包含秘密值的消息認證碼(消息碼)組成的加密密鑰。加密部2312A被構成為,將從加密密鑰生成部2313得到的加密密鑰作為公用密鑰使用來對新的通信用私人密鑰進行加密,從而生成第二密碼。加密部2312A例如將從加密密鑰生成部2313得到的加密密鑰和新的通信用私人密鑰的邏輯異或作為第二密碼(被加密的新的通信用私人密鑰)進行使用。這樣,當終端IOA請求新的通信用私人密鑰的發行時,本實施方式的密鑰發行單元23A生成包含從終端IOA接收到的秘密值的消息認證碼。並且,密鑰發行單元23A利用消息認證碼對新的通信用私人密鑰進行加密,並發送到終端10A。對於終端IOA而言,密鑰請求單元13A的通信用私人密鑰解密模塊134A與實施方式1的終端10不同。通信用私人密鑰解密模塊134具有解密密鑰生成部1341和解密部1342。當第一通信單元12接收到第二密碼時,解密密鑰生成部1341利用第一密鑰存儲單元11中存儲的通信用私人密鑰、和秘密值存儲模塊131中存儲的秘密值,生成解密密鑰。 解密密鑰是具有與由加密密鑰生成部2313生成的加密密鑰相同值的消息認證碼。也就是說,解密密鑰生成部1341通過將第一密鑰存儲單元11中存儲的通信用私人密鑰作為公用密鑰使用,生成包含秘密值存儲單元131中存儲的秘密值的消息認證碼。解密部1342被構成為,將從解密密鑰生成部1341得到的解密密鑰作為公用密鑰使用來對第二密碼進行解密,由此取得新的通信用私人密鑰。解密部1342例如進行從解密密鑰生成部1341得到的解密密鑰和第二密碼的邏輯異或運算,由此取得新的通信用私人密鑰。接著,參照圖5對本實施方式的密鑰發布系統的動作進行說明。另外,關於進程 ΡΙΟ、P20、P30、P40、P50、P70、和P80,由於在實施方式1中已經進行了敘述,所以省略其說明。當發行請求處理開始時,終端IOA向伺服器20A發送終端IOA的識別信息ID10、和第一密碼 PENkio (RlO)(進程 P50)。當第二通信單元22接收到請求消息時,秘密值取得部2311利用第二密鑰存儲單元21中存儲的解密用私人密鑰K20對第一密碼PEtci(RlO)進行解密,從而取得秘密值 R10。另外,密鑰生成模塊230生成新的通信用私人密鑰K11、以及與新的通信用私人密鑰Kll成對的新的解密用私人密鑰K21。加密密鑰生成部2313通過將第二密鑰存儲單元21中存儲的原來的通信用私人密鑰KlO作為公用密鑰使用,生成由包含秘密值RlO的消息認證碼組成的加密密鑰。具體而言,加密密鑰生成部2313利用通信用私人密鑰KlO和信息130,生成加密密鑰(= MACkio (130) )0信息130是從終端IOA接收到的秘密值R10、隨機數(第3隨機數)N30、和伺服器20A的識別信息ID20。BP, 130 = _,N30,ID20)。這樣,加密密鑰生成部2313為了生成加密密鑰而生成第3隨機數N30。第3隨機數N30的值與發行會話密鑰時生成的第二隨機數N20不同。另外,也可以使用第二隨機數N20來代替第3隨機數N30。但是,利用與第二隨機數20不同的第3隨機數N30會提高通信的安全性。加密部2312A將從加密密鑰生成部2313得到的加密密鑰(=MACkio (RIO, N30, ID20))作為公用密鑰使用來對新的通信用私人密鑰Kll進行加密,從而生成第二密碼。在本實施方式中,加密部2312A將新的通信用私人密鑰Kll和加密密鑰(=MACkio (RIO, N30, ID20))的邏輯異或(=[MACkio(R10,N30, ID20)X0R Kll])作為第二密碼進行使用。第二保管模塊233將由密鑰生成模塊230生成的新的通信用私人密鑰Kll和新的解密用私人密鑰K21存儲在第二存儲單元21中。通信用私人密鑰發送模塊232控制第二通信單元22,將第二密碼和第3隨機數 N30 一起發送到請求了發行新的通信用私人密鑰Kll的終端IOA(圖5的進程P60A)。這樣, 伺服器20A向終端IOA發送第二密碼(=[MACkio(R10,N30, ID20)X0R Kll])和第3隨機數 N30。另外,在加密密鑰的信息130中可以包含終端IOA的識別信息ID10。S卩,加密密鑰的值可以是 MACkiq (ID10,RIO, N30, ID20)。在通信用私人密鑰解密模塊134A中,當第一通信單元12接收到第二密碼和第3 隨機數N30時,利用秘密值存儲模塊131中存儲的秘密值R10、伺服器20A的識別信息ID20、 從伺服器20接收到的第3隨機數N30、以及原來的通信用私人密鑰K10,計算出相當於加密密鑰的值(=MACkio (RIO, N30, ID20)),從而生成解密密鑰。解密部1342進行從解密密鑰生成部1341得到的解密密鑰(=MACkio (RIO, N30, ID20))和第二密碼(=[MACkio(R10,N30,ID20)XOR Kll])的邏輯異或運算,由此取得新的通信用私人密鑰K11。另外,在信息130中包含終端IOA的識別信息IDlO的情況下,在生成解密密鑰時也使用識別信息ID10。第一保管模塊135將通過通信用私人密鑰解密模塊134A得到的新的通信用私人密鑰Kll存儲在第一密鑰存儲單元11中。如果如上述那樣將消息認證碼作為加密密鑰使用,則能夠進一步降低新的通信用私人密鑰Kll被外洩的可能性。另外,通過進行消息認證,伺服器20A和終端IOA能夠檢測出第三者對通信用私人密鑰進行的篡改。因此,能夠保證使用了通信用私人密鑰的加密通信的安全性。另外,當終端IOA與伺服器20A建立了連接時,伺服器20A可以向終端IOA發送質詢碼。在這種情況下,終端IOA被構成為,如果沒有從伺服器20A接收到質詢碼,則無法開始發行請求處理。由此,能夠防止使向伺服器20A的通信量增大從而導致無法提供服務的 DoS(Denial of Service attack 拒絕服務攻擊)攻擊。另外,伺服器20A也可以被構成為,將會話密鑰與新的通信用私人密鑰一起發送到終端裝置10A。在這種情況下,會話密鑰發行單元25被構成為,當終端10請求了發行新的通信用私人密鑰時,進行會話密鑰的發行處理。會話密鑰發行單元25在從終端10接收到請求消息時,生成會話密鑰。另外,會話密鑰發行單元25利用第二密鑰存儲單元21中存儲的通信用私人密鑰來對會話密鑰進行加密。為了對會話密鑰進行加密,會話密鑰發行單元25利用通信用私人密鑰生成第二消息認證碼(第二消息碼)。會話密鑰發行單元25將第二消息認證碼和會話密鑰的邏輯異或作為被加密的會話密鑰使用。用於生成第二消息認證碼的信息包含從終端10接收到的終端10 的識別信息以及秘密值、第二隨機數、以及伺服器20的識別信息。會話密鑰發行單元25將被加密了的會話密鑰提供給通信用私人密鑰發送單元232。另外,會話密鑰發行單元25將第二隨機數提供給通信用私人密鑰加密模塊231A的加密密鑰生成部2313。接著,參照圖6對本實施方式的變形例的密鑰發布系統的動作進行說明。另外,關於進程?10、?20、?30、?40、和P50,由於在實施方式1中進行了敘述,所以省略其說明。當發行請求處理開始時,終端IOA向伺服器20A發送終端IOA的識別信息ID10、和第一密碼 PE^tl (RlO)(進程 P50)。當第二通信單元22接收到請求消息時,會話密鑰發行單元25生成與會話密鑰K30 不同的新的會話密鑰K31。會話密鑰發行單元25利用第二密鑰存儲單元21中存儲的通信用私人密鑰Kll和信息122來生成第二消息認證碼MACkii (122)。信息122是從終端10接收到的終端IOA的識別信息IDlO以及秘密值R10、第二隨機數N21、和伺服器20的識別信息 ID20。即,122 = (ID10, RIO, N21, ID20)。會話密鑰發行單元25向通信用私人密鑰發送單元232提供被加密了的會話密鑰 (=[MACkii (ID10,RIO,N21,ID20)XOR K31])。另外,會話密鑰發行單元25向加密密鑰生成部2313提供第二隨機數N21。在密鑰發行單元23A中,秘密值取得部2311對第一密碼PENkici (RlO)進行解密,從而取得秘密值RlO。加密密鑰生成部2313利用通信用私人密鑰KlO和信息131來生成加密密鑰(=MACkici (131))。信息131是從終端IOA接收到的秘密值R10、從會話密鑰發行單元25得到的第二隨機數N21、和伺服器20A的識別信息ID20。即,131 = _,N21, ID20)。加密部2312A將新的通信用私人密鑰Kll和加密密鑰(=MACkiq (RIO,N21,ID20)) 的邏輯異或(=[MACkio(R10,N21, ID20)X0R Kll])作為第二密碼進行使用。通信用私人密鑰發送模塊232控制第二通信單元22,將被加密了的會話密鑰和第二隨機數N21、與第二密碼一起發送到請求了發行新的通信用私人密鑰Kll的終端10A(圖 6的進程P61)。這樣,在變形例中,伺服器20A向終端IOA發送第二密碼(=[MACkio(R10, N21,ID20)X0R Kll])、被加密了的會話密鑰(=[MACkii (ID10, R10,N21,ID20)X0R K31])、 和第二隨機數N21。當從伺服器20A接收到第二密碼(=[MACkio (RIO, N21,ID20)X0R Kll])、被加密了的會話密鑰(=[MACkii (ID10, RIO, N21,ID20) XOR K31])、和第二隨機數 N21 時,終端 IOA 進行上述處理,由此取得新的通信用私人密鑰Kll和新的會話密鑰K31。在上述的變形例中,能夠同時向終端IOA發布新的通信用私人密鑰Kll和新的會話密鑰K31。因此,與圖5所示的例子相比,能夠降低伺服器20A和終端IOA之間的通信量。 因此,能夠降低伺服器20A和終端IOA之間的通信所需要的功率,從而實現節能。另外,在該變形例中,在密鑰發行單元23A中使用會話密鑰發行單元25所生成的第二隨機數,而在會話密鑰發行單元25中也可以使用密鑰發行單元23A所生成的第3隨機數。另外,在本實施方式中,在消息認證的過程中採用了 kryptonite協議。但是,在消息認證的過程中也可以採用kerberos協議。在kerberos協議中使用時間來代替隨機數。 因此,在kerberos協議中,不重性或者隨機性的管理被置換成時間管理。(實施方式3)如圖7所示那樣,對於本實施方式的密鑰發布系統而言,終端IOB和伺服器20B與實施方式2不同。對於本實施方式的密鑰發布系統和實施方式2的密鑰發布系統中共同的構成,賦予相同符號並省略說明。對於終端IOB而言,密鑰請求單元13B與實施方式2的終端IOA不同。密鑰請求單元1 具有秘密值生成模塊130、秘密值存儲模塊131、秘密值加密模塊132B、秘密值發送模塊133、通信用私人密鑰解密模塊134A、第一保管模塊135、隨機變數生成模塊136、和隨機變數發送模塊137。隨機變數生成模塊136被構成為,生成與作為秘密值使用的第一隨機變數不同的第二隨機變數。隨機變數生成模塊136將第二隨機變數提供給秘密值加密模塊132B和隨機變數發送模塊137。第二隨機變數優選是位數比秘密值多的數值。第二隨機變數的位數越多,則越能夠降低秘密值外洩的可能性。隨機變數發送模塊137被構成為,對第一通信單元12進行控制,以使得將通過隨機變數生成模塊136接收到的第二隨機變數發送到伺服器20B。這裡,優選在發行請求處理執行前將第二隨機變數發送到伺服器20B。例如,隨機變數發送模塊137被構成為,在終端 IOB與通信網絡30建立了連接時,將第二隨機變數發送到伺服器20B。秘密值加密模塊132B具有通信數值生成部1321和通信數值加密部1322。通信數值生成部1321被構成為,利用秘密值存儲模塊131中存儲的秘密值及位數來生成通信數值。通信數值生成部1321通過從隨機變數生成模塊136得到的第二隨機變數、和秘密值存儲模塊131中存儲的秘密值的單純運算來生成通信數值。在本實施方式中, 通信數值生成部1321通過將運算中使用的秘密值和用於使位數變大的第二隨機變數結合來生成通信數值。這裡,當秘密值被設為R10、第二隨機變數被設為R20時,通信數值被表示成「RIO Il R20」。χ Il y表示將左側的數值χ與右側的數值y單純地連結。將這種單純運算稱為並置(concatenation) 0例如,「123 Il 123」成為「 123123」。因此,在通信數值中,上位的數值是秘密值,下位的數值是第二隨機變數。這樣,通信數值生成部1321通過並置、即將秘密值和第二隨機變數單純地連結來生成通信數值。例如,在秘密值是3位數值「123」,第二隨機變數是3位數值「456」的情況下,通信數值被表示成「123 Il 456」,其值為「 123456」。 另外,通信數值生成部1321也可以將秘密值和第二隨機變數的和作為通信數值,還可以將秘密值和第二隨機變數的乘積作為通信數值。只要通信數值的複雜度高於秘密值的複雜度即可。通信數值加密部1322被構成為,對由通信數值生成部1321生成的通信數值進行加密來生成第一密碼。通信數值加密部1322將第一密鑰存儲單元11中存儲的通信用私人密鑰作為公開密鑰使用來對通信數值進行加密。例如,通信數值加密部1322在請求新的通信用私人密鑰的處理開始時,使用第一密鑰存儲單元11中存儲的通信用私人密鑰,按照公開密鑰方式(例如RSA)對通信數值進行加密,從而生成第一密碼。這樣,本實施方式的密鑰請求單元2 生成作為秘密值使用的第一隨機變數和第二隨機變數。在請求伺服器20發行新的通信用私人密鑰之前,密鑰請求單元23B向伺服器 20發送第二隨機變數。密鑰請求單元2 通過第一隨機變數和第二隨機變數的單純運算來生成通信數值。密鑰請求單元2 利用第一密鑰存儲單元11中存儲的公開密鑰(在本實施方式中是通信用私人密鑰)來對通信數值進行加密,並發送到伺服器20B。對於伺服器20B而言,密鑰發行單元2 與實施方式2的伺服器20A不同。密鑰發行單元2 具有密鑰生成模塊230、通信用私人密鑰加密模塊231B、通信用私人密鑰發送模塊232、第二保管模塊233、以及隨機變數存儲模塊234。隨機變數存儲模塊234例如構成為,存儲第二通信單元22從終端IOB接收到的第二隨機變數。通信用私人密鑰加密模塊231B具有秘密值取得部2311B、加密部2312A、和加密密鑰生成部2313。秘密值取得部2311B被構成為,在第二通信單元22接收到請求消息時,對第二通信單元22接收到的第一密碼進行解密,從而得到通信數值。秘密值取得部2311B利用與通信用私人密鑰成對的解密用私人密鑰來對第一密碼進行解密。另外,秘密值取得部2311B 被構成為,通過取得的通信數值和隨機變數存儲模塊234中存儲的第二隨機變數的單純運算來取得秘密值。接著,參照圖8對本實施方式的密鑰發布系統的動作進行說明。另外,關於進程 10、?20、?30、?40、?70、和?80,由於在實施方式1中進行了敘述,所以省略其說明。另外, 在進程P50B和進程P50中省略重複的說明,在進程P60B和進程P60A中也省略重複的說明。當發行請求處理開始時,通信數值生成部1321通過從隨機變數生成模塊136得到的第二隨機變數R20、和秘密值存儲模塊131中存儲的秘密值RlO的單純運算來生成通信數值 RlO Il R20。通信數值加密部1322將第一密鑰存儲單元11中存儲的通信用私人密鑰KlO作為公開密鑰使用來對通信數值RlO Il R20進行加密,從而生成第一密碼PENK1(1(R10 Il R20)。秘密值發送模塊133對第一通信單元12進行控制,將第一密碼PENkiq (R10 || R20) 與終端IOB的識別信息IDlO以及請求消息一起發送到伺服器20B (圖8的進程P50B)。這樣,終端IOB在請求伺服器20B發行通信用私人密鑰時,發送終端IOB的識別信息 IDlO 和第一密碼 PENkio (RIO Il R20)。當第二通信單元22接收到請求消息時,秘密值取得部2311B利用第二密鑰存儲單元21中存儲的解密用私人密鑰K20來對第一密碼PENkici (RIO Il R20)進行解密,從而取得通信數值RlO Il R20。並且,秘密值取得部2311B進行隨機變數存儲模塊137中存儲的第二隨機變數R20、和通信數值RlO Il R20的單純運算,由此取得秘密值R10。也就是說,秘密值取得部2311B從通信數值RlO Il R20除去第二隨機變數R20。加密部2312A將從加密密鑰生成部2313得到的加密密鑰(=MACkici (R10,N30, ID20))作為公用密鑰使用來對新的通信用私人密鑰Kll進行加密,從而生成第二密碼(= [MACkio(RIO, N30, ID20)X0R Kll)。通信用私人密鑰發送模塊232對第二通信單元22進行控制,將第二密碼和第3隨機數N30發送到請求了發行新的通信用私人密鑰Kll的終端IOB (圖8的進程P60B)。這樣,伺服器20B 向終端 IOB 發送第二密碼(=[MACkio (RIO, N30, ID20) XOR Kll)。如上所述,終端IOB在發行請求處理中,生成位數多於秘密值RlO的通信數值 1 10||1 20,並發送到伺服器2( 。這裡,通信數值RlO Il R20有可能被第三者知道。但是,通信數值RlO Il R20位數較多,並且第三者無法根據秘密值RlO和第二隨機變數得知通信數值 RlO Il R20是如何被生成的。因此,在秘密值RlO有效的時間內,根據通信數值RlO Il R20通過所有可能回歸法等來得到秘密值RlO基本是不可能的。在本實施方式的密鑰分布系統中,終端IOB向伺服器20B發送利用秘密值生成的通信數值。由於通信數值與秘密值相比具有更多的位數,所以與發送秘密值自身的情況相比,秘密值被第三者得知的可能性大幅降低。這裡,通過單純地增加秘密值的位數,能夠大幅度降低秘密值被第三者得知的可能性。但是,在這種情況下,伺服器20B和終端IOB中的處理負荷會增大。為此,在本實施方式的密鑰發布系統中,位數多於秘密值的通信數值只是在從終端IOB向伺服器20B發送秘密值時被使用。因此,不用使用位數大於秘密值的通信數值就可以完成通信用私人密鑰的加密和解密。也就是說,對於本實施方式的密鑰發布系統,由於只在向伺服器20B發送秘密值時才虛擬增加秘密值的位數,所以處理負荷不會增大。這樣,本實施方式的密鑰發布系統能夠降低秘密值被第三者得知的可能性,並且能夠抑制伺服器20B和終端IOB的處理負荷的增加。(實施方式4)如圖9所示那樣,對於本實施方式的密鑰發布系統而言,終端IOC和伺服器20C與實施方式2不同。對於本實施方式的密鑰發布系統和實施方式2的密鑰發布系統中共同的構成,賦予相同符號並省略其說明。終端IOC具有第一密鑰存儲單元11、第一通信單元12、密鑰請求單元13C、第一識別信息存儲單元14、會話密鑰請求單元15、會話密鑰接收單元16、以及第一原根存儲單元 17。終端IOC和終端IOA中共同構成的說明被省略。第一原根存儲單元17被構成為,存儲較大值的素數ρ和合理值的原根g。如果考慮通信安全性,則優選將素數P和原根g設為非公開。在將素數P和原根g設為非公開的情況下,素數P和原根g被管理裝置40提供給終端10C。密鑰請求單元13C具有秘密值生成模塊(第一秘密值生成模塊)130C、秘密值存儲模塊(第一秘密值存儲模塊)131C、第一公開密鑰生成模塊138、和第一公開密鑰發送模塊 139。秘密值生成模塊130C被構成為,在請求發行新的通信用私人密鑰時生成由數值構成的秘密值(第一秘密值)。第一秘密值是隨機變數。秘密值存儲模塊131C被構成為,存儲由秘密值生成模塊130C生成的第一秘密值。第一公開密鑰生成模塊138被構成為,通過將秘密值存儲模塊131C中存儲的第一秘密值應用於第一原根存儲模塊17中存儲的原根,生成Diffie-Hellman密鑰共享方式的第一公開密鑰K41來作為第一密碼。若將第一秘密值設為X,則第一公開密鑰K41用以gx 的P為模的餘數Rx( = gx mod ρ)來表示。第一公開密鑰發送模塊139被構成為,控制第一通信單元12,以使得由第一公開密鑰生成模塊138生成的第一公開密鑰K41和請求發行新的通信用私人密鑰的請求消息 (請求指令)一起被發送到伺服器20。第一公開密鑰發送模塊139使第一通信單元12 — 起發送第一公開密鑰K41和終端IOC的識別信息。這樣,密鑰請求單元13C在向伺服器20C請求發行新的通信用私人密鑰時,重新生成由數值構成的第一秘密值。另外,密鑰請求單元13C通過將第一秘密值應用於第一原根存儲單元17中存儲的原根,生成Diffie-Hellman密鑰共享方式的第一公開密鑰K41。密鑰請求單元13C向伺服器20C發送第一公開密鑰K41。伺服器20C具有第二密鑰存儲單元21、第二通信單元22、密鑰發行單元23C、第二識別信息存儲單元對、會話密鑰發行單元25、和第二原根存儲單元26。伺服器20C和伺服器20A中共同構成的說明被省略。與第一原根存儲單元17同樣,第二原根存儲單元沈被構成為,存儲較大值的素數 P和合理值的原根g。在將素數P和原根g設為非公開的情況下,素數P和原根g被管理裝置40提供給伺服器20C。密鑰發行單元23C具有密鑰生成模塊230C、通信用私人密鑰加密模塊231C、通信用私人密鑰發送模塊232C、第二保管模塊233C、第二秘密值生成模塊235、和第二公開密鑰生成模塊236。密鑰生成模塊230C被構成為,當第二通信單元22從終端IOC接收到請求消息時, 生成新的通信用私人密鑰。第二秘密值生成模塊235被構成為,當第二通信單元22接收到請求消息時,生成由數值構成的第二秘密值。第二秘密值是隨機變數。也就是說,第二秘密值生成模塊235 在每次接收到請求消息時,生成具有隨機數值的第二秘密值。即,在每次發行通信用私人密鑰時,第二秘密值都具有不同的數值。第二秘密值一直被使用到向終端IOC發送新的通信用私人密鑰為止。
通信用私人密鑰加密模塊231C具有第二公用密鑰生成模塊2314和加密部2312C。第二公用密鑰生成模塊2314被構成為,當第二通信單元22接收到請求消息時, 利用第二通信單元22所接收到的第一公開密鑰K41和由第二秘密值生成模塊235生成的第二秘密值,生成Diffie-Hellman密鑰共享方式的公用密鑰K40。若將第二秘密值設為 y,則公用密鑰K40用(Rx)y的以ρ為模的餘數Rxy( = gxy mod ρ)來表示。這樣的公用密鑰 K40( = Rxy)是以素數ρ為模與gxy同餘。即,Rxy = gxy mod ρ。加密部2312C被構成為,利用從第二公用密鑰生成模塊2314得到的公用密鑰Κ40 來對新的通信用私人密鑰進行加密,從而生成第二密碼。在本實施方式中,加密部2312C利用公用密鑰Κ40,生成由消息認證碼構成的加密密鑰。加密部2312C將該加密密鑰作為公用密鑰使用來對新的通信用私人密鑰進行加密,從而生成第二密碼。加密部2312C例如將加密密鑰和新的通信用私人密鑰的邏輯異或作為第二密碼(被加密了的新的通信用私人密鑰)進行使用。第二公開密鑰生成模塊236被構成為,通過將由第二秘密值生成模塊235生成的第二秘密值應用於第二原根存儲模塊沈中存儲的原根,生成Diffie-Hellman密鑰共享方式的第二公開密鑰K42。若將第二秘密值設為y,則第二公開密鑰K42用gy的以ρ為模的餘數Ry( = gymod ρ)來表示。通信用私人密鑰發送模塊232C被構成為,控制第二通信單元22,向終端IOC發送由通信用私人密鑰加密模塊231C生成的第二密碼、和由第二公開密鑰生成模塊236生成的第二公開密鑰K42。第二保管模塊233C被構成為,將由密鑰生成模塊230C所生成的新的通信用私人密鑰存儲在第二密鑰存儲單元21中。另外,第二保管模塊233也可以構成為,將第二密鑰存儲單元21中存儲的通信用私人密鑰更新為由密鑰生成模塊230C生成的新的通信用私人密鑰。這樣,密鑰發行單元23C在終端IOC請求新的通信用私人密鑰的發行時,生成由數值構成的第二秘密值。密鑰發行單元23C利用從終端IOC接收到的第一公開密鑰和第二秘密值,生成Diffie-Hellman密鑰共享方式的公用密鑰K40。密鑰發行單元23C通過將第二秘密值應用於第二原根存儲單元沈中存儲的原根,生成Diffie-Hellman密鑰共享方式的第二公開密鑰K42。密鑰發行單元23C利用公用密鑰K40對新的通信用私人密鑰進行加密, 並將其與第二公開密鑰K42 —起發送到終端10C。另外,密鑰發行單元23C在終端IOC請求新的通信用私人密鑰的發行時,發行新的通信用私人密鑰並將其存儲在第二密鑰存儲單元21中。因此,第二通信單元22在與終端 IOC進行使用了通信用私人密鑰作為公用密鑰的加密通信的情況下,使用新的通信用私人密鑰。密鑰請求單元13C還具有通信用私人密鑰加密模塊134C和第一保管模塊135。通信用私人密鑰解密模塊134C具有第一公用密鑰生成模塊1343和解密部1342C。第一公用密鑰生成模塊1343被構成為,當第一通信單元12接收到第二密碼和第二公開密鑰K42時,利用秘密值存儲模塊131C中存儲的第一秘密值χ和第二公開密鑰K42 來生成Diffie-Hellman密鑰共享方式的公用密鑰K40。如上所述,公用密鑰K40由余數 Rxy ( = gxy mod ρ)表示,第二公開密鑰K42由余數Ry ( = gy mod ρ)表示。因此,根據第一秘密值χ和第二公開密鑰K42可以生成公用密鑰K40。解密部1342C被構成為,利用由第一公用密鑰生成模塊1343生成的公用密鑰K40, 對第一通信單元12所接收到的第二密碼進行解密,由此得到新的通信用私人密鑰。在本實施方式中,解密部1342C利用公用密鑰K40,生成和由加密部2312C生成的加密密鑰相等的、 由消息認證碼構成的解密密鑰。解密部1342C將該解密密鑰作為公用密鑰使用,對新的通信用私人密鑰進行解密,從而取得第二密碼。解密部1342C例如通過求出解密密鑰和第二密碼的邏輯異或來取得新的通信用私人密鑰。這樣,當從伺服器20C接收到被加密了的新的通信用私人密鑰(第二密碼)和第二公開密鑰K42時,密鑰請求單元13C利用第一秘密值和從伺服器20C接收到的第二公開密鑰來生成公用密鑰K40。密鑰請求單元13C利用公用密鑰K40對第二密碼進行解密,取得新的通信用私人密鑰,並將其存儲在第一密鑰存儲單元11中。因此,第一通信單元12與伺服器20C在使用了通信用私人密鑰作為公用密鑰進行加密通信的情況下,使用新的通信用私人密鑰。接著,參照圖10對本實施方式的密鑰發布系統的動作進行說明。另外,關於進程 P30、P40、P70、和P80,由於在實施方式1中進行了敘述,所以省略其說明。另外,在終端IOC出廠時,進行在終端IOC中登記通信用私人密鑰的作業、和在管理裝置20中登記通信用私人密鑰C的作業。通信用私人密鑰的登記使用管理裝置40。管理裝置40在登記通信用私人密鑰時,利用網際網路這樣的通信線路與伺服器20C和終端IOC 連接。如圖10所示那樣,管理裝置40向伺服器20C發送通信用私人密鑰KlO (圖10的進程P10C)。伺服器20C將從管理裝置40接收到的通信用私人密鑰KlO登記在第二密鑰存儲單元21中。管理裝置40向伺服器20C發送用於識別終端IOC的識別信息(終端識別信息) ID10。伺服器20C將從管理裝置40接收到的識別信息IDlO登記在第二識別信息存儲單元 24中。管理裝置40向終端IOC發送終端IOC的識別信息ID10、和在伺服器20C中登記了的通信用私人密鑰KlO (圖10的進程P20C)。終端IOC將從管理裝置40接收到的識別信息 IDlO登記在第一識別信息存儲單元14中。另外,終端IOC將從管理裝置40接收到的通信用私人密鑰KlO登記在第一密鑰存儲單元11中。S卩,在伺服器20C的第二密鑰存儲單元21和終端IOC的第一密鑰單元11中,分別登記有通信用私人密鑰KlO作為事前私人密鑰。在本實施方式中,與實施方式2不同,在伺服器20的第二密鑰存儲單元21中,沒有登記與通信用私人密鑰KlO成對的解密用私人密鑰K20作為事前私人密鑰。當發行請求處理開始時,秘密值生成模塊130C生成第一秘密值X。第一秘密值χ 被存儲在秘密值存儲模塊131C中。第一公開密鑰生成模塊138利用秘密值存儲模塊131C 中存儲的第一秘密值X、和第一原根存儲單元17中存儲的原根g以及素數p,生成第一公開密鑰K41。第一公開密鑰發送模塊139控制第一通信單元12,將第一公開密鑰K41和終端 IOC的識別信息IDlO以及請求消息一起發送到伺服器20C(圖10的進程P50C)。這樣,終端IOC在請求伺服器20C發行通信用私人密鑰時,發送終端IOC的識別信息IDlO和第一公開密鑰K41 ( = Rx)。當第二通信單元22接收到請求消息時,第二秘密值生成模塊235生成第二秘密值第二公開密鑰生成模塊236將由第二秘密值生成模塊235生成的第二秘密值y應用於第二原根存儲模塊沈中存儲的原根g,由此生成第二公開密鑰K42( = RO。第二公用密鑰生成模塊2314利用第二通信單元22所接收到的第一公開密鑰Κ41、 和由第二秘密值生成模塊235生成的第二秘密值y,生成公用密鑰K40。加密部2312C利用公用密鑰K40和信息140,生成加密密鑰(=MACk4ci(140))。信息140是公用密鑰K40、第二公開密鑰K42( = Ry)、和伺服器20C的識別信息ID20。S卩,是 140 = (Κ40, Ry, ID20)。由於餘數Ry是通過作為隨機變數的第二秘密值而生成的,所以實際可以作為隨機數使用。加密部2312C將加密密鑰(=MACk40 (Κ40, Ry, ID20))和新的通信用私人密鑰Kll 的邏輯異或(=[MACk40(Κ40, Ry, ID20)X0R Kll])作為第二密碼(被加密了的新的通信用私人密鑰)進行使用。由於公用密鑰K40是利用第一秘密值χ而生成的,所以可以認為通信用私人密鑰加密模塊231C利用第一秘密值對新的通信用私人密鑰Kll進行加密。通信用私人密鑰發送模塊232C控制第二通信單元22,向終端IOC發送第二密碼 (=[MACk40 (K40, Ry,ID20)X0R Kll])、和第二公開密鑰 K42 ( = Ry)(圖 10 的進程 P60C)。第二保管模塊233C將由密鑰生成模塊230C生成的新的通信用私人密鑰Kll存儲在第二密鑰存儲單元21中。這樣,伺服器20C向終端IOC發送第二密碼和第二公開密鑰K42。當第一通信單元12接收到第二密碼和第二公開密鑰K42時,第一公用密鑰生成模塊1343利用秘密值存儲模塊131C中存儲的第一秘密值χ和第二公開密鑰K42,生成 Diffie-Hellman密鑰共享方式的公用密鑰K40。這樣,第一公用密鑰生成模塊1343利用第一秘密值χ和餘數Ry,求出(ROx的值。 這裡,若假設Ryx= (RT mod p,則Ryx以素數ρ為模與gxy同餘。所以,Rxy = Ryx。因此,第一公用密鑰生成模塊1343能夠生成公用密鑰K40。解密部1342C利用由第一公用密鑰生成模塊1343生成的公用密鑰K40、伺服器 20C的識別信息ID20、和從伺服器20C接收到的第二公開密鑰K42來生成解密密鑰(= MACk40(K40, Ry,ID20))。解密部 1342C 進行生成的解密密鑰(=MACk40(K40, Ry,ID20))和第二密碼(=[MACk40(K40,RMD20)XOR Kll])的邏輯異或運算,由此取得新的通信用私人密鑰Kll。第一保管模塊135將通過通信用私人密鑰解密模塊134C得到的新的通信用私人密鑰Kll存儲在第一密鑰存儲單元11中。並且,在新的通信用私人密鑰Kll被存儲在第一密鑰存儲單元11中以後,第一通信單元12與伺服器20C進行使用了新的通信用私人密鑰Kll作為公用密鑰的加密通信。在新的通信用私人密鑰Kll被存儲在第二密鑰存儲單元21中以後,第二通信單元22與終端 IOC進行使用了新的通信用私人密鑰Kll作為公用密鑰的加密通信。因此,在新的通信用私人密鑰Kll被發行後,即使他人知道以前的通信用私人密鑰K10,也無法監聽終端IOC和伺服器20C之間的通信。
以上說明的本實施方式的密鑰發布系統利用Diffie-Hellman密鑰共享方式的公用密鑰K40,對新的通信用私人密鑰Kll進行加密,並將其發送到終端10C。因此,即使是知道原先的通信用私人密鑰KlO的第三者,也無法對被加密了的新的通信用私人密鑰Kll進行解密。因此,能夠將新的通信用私人密鑰Kll安全地送達到終端10C。
權利要求
1.一種密鑰發布系統,其特徵在於,具備終端、和經由通信網絡與上述終端連接的伺服器; 上述終端具備第一密鑰存儲單元,其能夠被改寫,用於存儲通信用私人密鑰和公開密鑰; 第一通信單元,其用於與上述伺服器進行使用了上述第一密鑰存儲單元中存儲的上述通信用私人密鑰作為公用密鑰的加密通信;以及密鑰請求單元,在請求上述伺服器發行新的通信用私人密鑰時,該密鑰請求單元重新生成由數值構成的秘密值,並且利用上述第一存儲單元中存儲的上述公開密鑰來對上述秘密值進行加密,從而生成第一密碼,並將上述第一密碼發送給上述伺服器; 上述伺服器具備第二密鑰存儲單元,其能夠被改寫,除了存儲上述通信用私人密鑰以外,還存儲與上述公開密鑰成對的私有密鑰、即解密用私人密鑰;第二通信單元,其用於與上述終端進行使用了上述第二密鑰存儲單元中存儲的上述通信用私人密鑰作為公用密鑰的加密通信;以及密鑰發行單元,當上述終端請求發行新的通信用私人密鑰時,該密鑰發行單元發行新的通信用私人密鑰並將其存儲在上述第二密鑰存儲單元中,通過利用上述解密用私人密鑰對上述第一密碼進行解密來取得上述秘密值,利用該秘密值對上述新的通信用私人密鑰進行加密來生成第二密碼,並將上述第二密碼發送到請求了發行新的通信用私人密鑰的上述終端;上述密鑰請求單元構成為,通過利用上述秘密值對上述第二密碼進行解密,取得上述新的通信用私人密鑰,並將其存儲在上述第一密鑰存儲單元中;上述第一通信單元構成為,在上述新的通信用私人密鑰被存儲在上述第一密鑰存儲單元以後,與上述伺服器進行使用了上述新的通信用私人密鑰作為公用密鑰的加密通信;上述第二通信單元構成為,在上述新的通信用私人密鑰被存儲在上述第二密鑰存儲單元以後,與上述終端進行使用了上述新的通信用私人密鑰作為公用密鑰的加密通信。
2.根據權利要求1所述的密鑰發布系統,其特徵在於,上述密鑰請求單元構成為,在請求上述伺服器發行新的通信用私人密鑰時,將上述第一密鑰存儲單元中存儲的上述通信用私人密鑰作為上述公開密鑰使用,對上述新生成的秘密值進行加密;上述密鑰發行單元構成為,在上述終端請求發行新的通信用私人密鑰時,發行上述新的通信用私人密鑰,並且發行與上述新的通信用私人密鑰成對的私有密鑰、即新的解密用私人密鑰,並將其存儲在上述第二密鑰存儲單元中,在上述新的解密用私人密鑰被存儲在上述第二存儲單元以後,利用上述新的解密用私人密鑰對上述第一密碼進行解密。
3.根據權利要求1所述的密鑰發布系統,其特徵在於,上述密鑰請求單元構成為,生成作為上述秘密值使用的第一隨機變數和第二隨機變數,在向上述伺服器請求發行新的通信用私人密鑰之前,將上述第二隨機變數發送到上述伺服器,通過上述第一隨機變數和上述第二隨機變數的單純運算來生成通信數值,利用上述公開密鑰對上述通信數值進行加密,並發送到上述伺服器。
4.根據權利要求1所述的密鑰發布系統,其特徵在於,上述密鑰發行單元構成為,在上述終端請求發行新的通信用私人密鑰時,生成包含從上述終端接收到的上述秘密值的消息碼,利用上述消息碼對上述新的通信用私人密鑰進行加密,並發送到上述終端。
5. 一種密鑰發布系統,其特徵在於,具備終端、和經由通信網絡與上述終端連接的伺服器;上述終端具備第一密鑰存儲單元,其能夠被改寫,用於存儲通信用私人密鑰; 第一原根存儲單元,其存儲規定的原根;第一通信單元,其用於與上述伺服器進行使用了上述第一存儲單元中存儲的上述通信用私人密鑰作為公用密鑰的加密通信;以及密鑰請求單元,在請求上述伺服器發行新的通信用私人密鑰時,該密鑰請求單元重新生成由數值構成的第一秘密值,並且通過將上述第一秘密值應用於上述第一原根存儲單元中存儲的上述原根,生成Diffie-Hellman密鑰共享方式的第一公開密鑰,並發送到上述伺服器;上述伺服器具備第二密鑰存儲單元,其存儲上述通信用私人密鑰; 第二原根存儲單元,其存儲上述規定的原根;第二通信單元,其用於與上述終端進行使用了上述第二存儲單元中存儲的上述通信用私人密鑰作為公用密鑰的加密通信;以及密鑰發行單元,在上述終端請求發行新的通信用私人密鑰時,該密鑰發行單元生成由數值構成的第二秘密值,利用從上述終端接收到的第一公開密鑰和上述第二秘密值來生成上述Diffie-Hellman密鑰共享方式的公用密鑰,通過將上述第二秘密值應用於上述第二原根存儲單元中存儲的上述原根,生成上述Diffie-Hellman密鑰共享方式的第二公開密鑰,利用上述公用密鑰對上述新的通信用私人密鑰進行加密,並與上述第二公開密鑰一起發送到請求發行新的通信用私人密鑰的上述終端;上述密鑰請求單元構成為,在從上述伺服器接收到被加密了的上述新的通信用私人密鑰和上述第二公開密鑰時,利用上述重新生成的秘密值和從上述伺服器接收到的上述第二公開密鑰來生成上述公用密鑰,利用生成的上述公用密鑰對被加密了的上述新的通信用私人密鑰進行解密,取得上述新的通信用私人密鑰,並存儲在上述第一密鑰存儲單元中;上述第一通信單元構成為,在上述新的通信用私人密鑰被存儲在上述第一存儲單元以後,與上述伺服器進行使用了上述新的通信用私人密鑰作為公用密鑰的加密通信;上述第二通信單元構成為,在上述新的通信用私人密鑰被存儲在上述第二存儲單元以後,與上述終端進行使用了上述新的通信用私人密鑰作為公用密鑰的加密通信。
全文摘要
本發明涉及密鑰發布系統。密鑰發布系統具備將通信用私人密鑰(K10)作為公用密鑰使用來互相進行加密通信的終端(10)和伺服器(20)。上述終端(10)在請求發行新的通信用私人密鑰(K11)時,生成秘密值(R10),利用公開密鑰進行加密,並發送到上述伺服器(20)。上述伺服器(20)利用與上述公開密鑰成對的私有密鑰來對上述被加密了的秘密值(R10)進行解密。上述伺服器(20)發行新的通信用私人密鑰(K11),將秘密值(R10)作為公用密鑰使用來進行加密,並將其發送到上述終端(10)。上述終端(10)利用上述秘密值(R10)對被加密了的上述新的通信用私人密鑰(K11)進行解密,從而取得上述新的通信用私人密鑰(K11)。然後,上述終端(10)和上述伺服器(20)將上述新的通信用私人密鑰(K11)作為公用密鑰使用來互相進行加密通信。
文檔編號H04L9/08GK102232275SQ20098014830
公開日2011年11月2日 申請日期2009年12月3日 優先權日2008年12月5日
發明者福田尚弘 申請人:松下電工株式會社