專利名稱:通信裝置及通信系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及作為信息安全技術(shù)的密碼技術(shù),特別涉及用共享密鑰與合 法的通信對方進(jìn)行秘密通信的技術(shù)。
背景技術(shù):
近年來,在家電產(chǎn)品、手機(jī)等之間經(jīng)網(wǎng)絡(luò)進(jìn)行通信的機(jī)會(huì)增加了。例
如,AV (Audiovisual,音視頻)設(shè)備為了保護(hù)內(nèi)容的著作權(quán)而在設(shè)備之間, 而手機(jī)為了防止通信內(nèi)容的泄露而在手機(jī)和作為通信對方的裝置之間,有 時(shí)在進(jìn)行了認(rèn)證密鑰共享后,進(jìn)行用共享的密鑰加密過的通信。這里,所 謂認(rèn)證密鑰共享,是指在設(shè)備之間等,通過相互認(rèn)證來確認(rèn)通信對方的設(shè) 備是否是正確制作的設(shè)備,與此同時(shí)共享密鑰(以下,將共享的密鑰稱為共 享密鑰。)。
例如,有用IEEE1394連接了 AV設(shè)備時(shí)使用的、被稱為DTCP (Digital Transmission Content Protection,數(shù)字傳輸內(nèi)容保護(hù))的著作權(quán)保護(hù)標(biāo) 準(zhǔn)中規(guī)定的認(rèn)證密鑰共享方法(參考非專利文獻(xiàn)1)。該方法的認(rèn)證方式使用 采用了橢圓DSA簽名的詢問一應(yīng)答認(rèn)證,密鑰共享方式使用橢圓DH密鑰共 享。詢問一應(yīng)答認(rèn)證、橢圓DSA簽名及橢圓DH密鑰共享詳見非專利文獻(xiàn)2。
上述所示的DTCP的認(rèn)證密鑰共享方法未被特別指出存在安全性的問 題、即有實(shí)效性的攻擊方法。但是,未證明對包含未知攻擊方法在內(nèi)的所 有攻擊方法的安全性。
這里,所謂"證明安全性",是指密碼體制的安全性不是經(jīng)驗(yàn)性的,而 是可以在數(shù)學(xué)上證明的。例如,在公鑰密碼中,證明在沒有私鑰的用戶破 譯密文的情況下,需要解被認(rèn)為是數(shù)學(xué)上難以求解的問題(例如,素因數(shù)分 解問題或橢圓離散對數(shù)問題)。在能夠進(jìn)行該證明的情況下,顯示密文的破 譯比被認(rèn)為是難以求解的問題更難。因此,在能夠進(jìn)行這種證明的情況下, 對公鑰密碼有安全性證明。如果不能證明安全性,則只能將密碼體制的安全保證到經(jīng)驗(yàn)上"大概 難以破譯"這一級(jí)別,所以使用該密碼體制仍感不安。因此,用戶不能安 心使用現(xiàn)有的認(rèn)證密鑰共享方法。
因此,提出了采用證明了安全性的密鑰分發(fā)方式一一密鑰封裝機(jī)制
(Key Encapsulation Mechanisms,以下稱為KEM。)的認(rèn)證密鑰共享方式(參 考專利文獻(xiàn)l)。該技術(shù)不會(huì)泄露密鑰,所以用戶能夠安心地共享認(rèn)證密鑰。 專利文獻(xiàn)l:國際公開第W005/039100號(hào)
非專利文獻(xiàn) 1 : DTCP Specification 的 White paper 〈URL: http:〃www. dtcp. com/data/spec, html〉
非專利文獻(xiàn)2:(日本)岡本龍明、山本博資,"現(xiàn)代密碼",產(chǎn)業(yè)圖書
(1997年)
然而,采用KEM的認(rèn)證密鑰共享方法證明了對共享密鑰的泄露的安全 性,但是未證明對冒名攻擊的安全性。所謂冒名攻擊,是指攻擊者冒充通 信對方的用戶(設(shè)備),與合法的用戶(設(shè)備)之間進(jìn)行的泄露合法的用戶(設(shè) 備)的信息或者阻止對方通信的攻擊。
因此,發(fā)送數(shù)據(jù)的發(fā)送方的裝置有可能向冒充合法裝置的非法裝置發(fā) 送數(shù)據(jù),所以整個(gè)系統(tǒng)的安全性仍有問題。
這是因?yàn)?,例如,即使保證了對共享密鑰的泄露的安全性,并且難以 根據(jù)用共享密鑰加密過的一個(gè)一個(gè)數(shù)據(jù)來推測共享密鑰,如果大量收集加 密過的數(shù)據(jù),則有時(shí)也容易推測共享密鑰。
因此,在認(rèn)證密鑰共享中,希望對冒名攻擊是安全的。再者,在此情 況下,希望不僅對共享密鑰的泄露、而且對冒名攻擊的防衛(wèi)策略也有安全 性證明。
發(fā)明內(nèi)容
因此,本發(fā)明的目的在于提供一種通信裝置、通信系統(tǒng),對冒名攻擊 也能夠證明安全性。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供一種通信裝置,用與通信對方的外部 裝置共享的密鑰來進(jìn)行通信對象數(shù)據(jù)的秘密通信,其特征在于,包括密 鑰生成單元,不讓第三者知道地在與上述外部裝置之間用證明了安全性的密碼體制來生成要共享的共享密鑰;判斷單元,通過用在與上述外部裝置 之間共享、且依賴于上述共享密鑰的密鑰依賴函數(shù)進(jìn)行認(rèn)證,來判斷上述 外部裝置是否合法;以及數(shù)據(jù)生成單元,在上述判斷單元判斷出上述外部 裝置合法的情況下,在通信對象數(shù)據(jù)的秘密通信時(shí),為了驗(yàn)證上述通信對 象數(shù)據(jù)的合法性,而使用上述通信對象數(shù)據(jù),用與依賴于上述共享密鑰的 上述密鑰依賴函數(shù)相同的函數(shù)來生成驗(yàn)證用數(shù)據(jù)。 本發(fā)明的效果如下。
根據(jù)上述所示的結(jié)構(gòu),通信裝置用共享密鑰和密鑰依賴函數(shù)來進(jìn)行認(rèn) 證,進(jìn)而用同一共享密鑰和密鑰依賴函數(shù)來生成驗(yàn)證用數(shù)據(jù),所以能夠防 止冒名攻擊。以下說明其理由。
通信裝置在認(rèn)證時(shí)受到冒名攻擊的情況下,通過該認(rèn)證能夠判斷出是 非法的外部裝置,所以通過以后不發(fā)送通信對象數(shù)據(jù),能夠防止冒名攻擊。
此外,在認(rèn)證后由于冒名攻擊而從非法的裝置接收通信對象數(shù)據(jù)的情 況下,通信裝置會(huì)從非法的裝置接收到通信對象數(shù)據(jù),但是如果知道通信 對方是非法的裝置,則拋棄接收到的通信對象數(shù)據(jù)即可。在此情況下,為 了驗(yàn)證通信對象數(shù)據(jù)的合法性,也從非法的裝置發(fā)送驗(yàn)證數(shù)據(jù)。然而,非 法的裝置沒有共享密鑰及依賴于它的密鑰依賴函數(shù),所以不能發(fā)送合法的 驗(yàn)證數(shù)據(jù)。即使通信裝置從非法的裝置接收到驗(yàn)證數(shù)據(jù),由于接收到的驗(yàn) 證數(shù)據(jù)不是用依賴于通信裝置具有的共享密鑰的密鑰依賴函數(shù)生成的,所 以與通信裝置自身生成的驗(yàn)證數(shù)據(jù)不同,也能夠判斷出通信對象數(shù)據(jù)非法, 即發(fā)送通信對象數(shù)據(jù)的裝置非法。由此,通信裝置在判斷出發(fā)送了通信對 象數(shù)據(jù)的裝置非法的情況下通過拋棄接收到的通信對象數(shù)據(jù),能夠防止冒 名攻擊。
再者,通信裝置通過證明了安全性的密碼體制來生成要共享的共享密 鑰,所以對泄露是安全的。由此,通信裝置用對泄露是安全的共享密鑰來 進(jìn)行外部裝置的認(rèn)證及秘密通信,所以也保證了對這些處理的安全性。
以下,簡單證明對冒名攻擊的安全性。
在認(rèn)證時(shí),通信裝置為了確認(rèn)外部裝置是合法的,需要外部裝置生成 正確的驗(yàn)證用數(shù)據(jù),為此,需要在通信裝置和外部裝置之間共享同一共享 密鑰。然而,共享密鑰是用證明了安全性的密碼體制生成的,所以在數(shù)學(xué)上能夠證明被泄露、即非法的裝置取得共享密鑰的概率非常小,達(dá)到可以 忽略的程度。因此,在數(shù)學(xué)上也能夠證明非法的裝置不能生成正確的驗(yàn)證 用數(shù)據(jù)。因此,能夠證明通信裝置對冒名攻擊也有安全性。
這里,也可以使上述密鑰生成單元生成上述第1密鑰數(shù)據(jù),通過將上 述第1密鑰數(shù)據(jù)秘密地發(fā)送到上述外部裝置,及秘密地接收上述外部裝置
生成的第2密鑰數(shù)據(jù),而在與上述外部裝置之間共享上述第1密鑰數(shù)據(jù)及 上述第2密鑰數(shù)據(jù),用共享的上述第1密鑰數(shù)據(jù)和上述第2密鑰數(shù)據(jù)來生 成上述共享密鑰。
根據(jù)該結(jié)構(gòu),通信裝置用秘密地共享的第1密鑰數(shù)據(jù)及第2密鑰數(shù)據(jù) 來生成共享密鑰,所以共享密鑰不會(huì)被泄露到外部。
這里,也可以使上述認(rèn)證是詢問應(yīng)答認(rèn)證;上述判斷單元從上述外部 裝置接收對詢問數(shù)據(jù)和上述共享密鑰施以上述函數(shù)而生成的應(yīng)答數(shù)據(jù),進(jìn) 行上述詢問應(yīng)答認(rèn)證,其中,將上述第l密鑰數(shù)據(jù)作為上述詢問數(shù)據(jù)。
根據(jù)該結(jié)構(gòu),通信裝置無需在詢問應(yīng)答認(rèn)證時(shí)重新發(fā)送詢問數(shù)據(jù),所 以能夠削減通信量。
這里,也可以使上述密鑰生成單元通過上述第1密鑰數(shù)據(jù)和上述第2 密鑰數(shù)據(jù)之間的邏輯"異或"運(yùn)算來計(jì)算共享密鑰數(shù)據(jù),根據(jù)算出的共享 密鑰數(shù)據(jù)來生成上述共享密鑰。
根據(jù)該結(jié)構(gòu),通信裝置通過第1密鑰數(shù)據(jù)和第2密鑰數(shù)據(jù)之間的邏輯 "異或"運(yùn)算來計(jì)算共享密鑰數(shù)據(jù),所以能夠使得難以根據(jù)共享密鑰數(shù)據(jù) 來導(dǎo)出第1密鑰數(shù)據(jù)和第2密鑰數(shù)據(jù)。
這里,也可以使上述密鑰生成單元將上述共享密鑰數(shù)據(jù)的一部分作為 上述共享密鑰。
根據(jù)該結(jié)構(gòu),通信裝置能夠通過使共享密鑰為共享密鑰數(shù)據(jù)的一部分 來生成它。
這里,也可以使上述密鑰生成單元將上述共享密鑰數(shù)據(jù)本身作為上述 共享密鑰。
根據(jù)該結(jié)構(gòu),通信裝置使共享密鑰與共享密鑰數(shù)據(jù)相同,所以無需重 新生成共享密鑰。因此,能夠削減通信裝置中的處理量。
這里,也可以使上述密鑰生成單元對上述第1密鑰數(shù)據(jù)和上述第2密鑰數(shù)據(jù)施以上述密鑰依賴函數(shù)來生成共享密鑰數(shù)據(jù),根據(jù)生成的共享密鑰 數(shù)據(jù)來生成上述共享密鑰。
根據(jù)該結(jié)構(gòu),通信裝置對第1密鑰數(shù)據(jù)和第2密鑰數(shù)據(jù)施以函數(shù)而變 換為共享密鑰數(shù)據(jù),所以能夠防止第1密鑰數(shù)據(jù)及第2密鑰數(shù)據(jù)的泄露。
這里,也可以使上述密鑰依賴函數(shù)是依賴于上述共享密鑰的單向函數(shù)。
根據(jù)該結(jié)構(gòu),通信裝置用單向函數(shù)來生成共享密鑰數(shù)據(jù)。由此,難以 根據(jù)生成的共享密鑰數(shù)據(jù)來生成第1密鑰數(shù)據(jù)及第2密鑰數(shù)據(jù),所以能夠 提高對第1密鑰數(shù)據(jù)及第2密鑰數(shù)據(jù)的泄露的安全性。
這里,也可以使上述共享密鑰是上述判斷單元進(jìn)行認(rèn)證及生成上述驗(yàn) 證用數(shù)據(jù)時(shí)所用的驗(yàn)證用共享密鑰;上述密鑰生成單元還根據(jù)上述共享密 鑰數(shù)據(jù)來生成與在上述外部裝置之間共享、且用于通信對象數(shù)據(jù)的加密及 解密的密碼用共享密鑰;上述通信裝置還包括發(fā)送單元,用上述密碼用 共享密鑰對上述通信對象數(shù)據(jù)進(jìn)行加密,來生成加密數(shù)據(jù),將生成的上述 加密數(shù)據(jù)與上述驗(yàn)證用數(shù)據(jù)一起發(fā)送到上述外部裝置。
根據(jù)該結(jié)構(gòu),通信裝置用要與外部裝置共享的密碼用共享密鑰對通信 對象數(shù)據(jù)進(jìn)行加密來生成加密數(shù)據(jù),將生成的加密數(shù)據(jù)發(fā)送到外部裝置, 通信對象數(shù)據(jù)不會(huì)被泄露。
這里,也可以使上述共享密鑰是驗(yàn)證用共享密鑰;上述密鑰生成單元 還根據(jù)上述共享密鑰數(shù)據(jù)來生成要在與上述外部裝置之間共享的密碼用共 享密鑰;上述通信裝置還包括接收單元,從上述外部裝置接收用上述密 碼用共享密鑰對通信對象數(shù)據(jù)進(jìn)行加密所得的加密數(shù)據(jù);上述數(shù)據(jù)生成單 元對上述接收單元接收到的加密數(shù)據(jù)進(jìn)行解密來取得解密數(shù)據(jù),將取得的 解密數(shù)據(jù)作為通信對象數(shù)據(jù)來生成上述驗(yàn)證用數(shù)據(jù)。
根據(jù)該結(jié)構(gòu),通信裝置根據(jù)用要與外部裝置共享的密碼用共享密鑰解 密出的加密數(shù)據(jù)來生成驗(yàn)證數(shù)據(jù),所以只要不與外部裝置共享合法的密碼 用共享密鑰及合法的驗(yàn)證用共享密鑰,則不能取得合法的解密數(shù)據(jù)及合法 的驗(yàn)證用數(shù)據(jù)。即,只有合法的通信裝置才能夠取得解密數(shù)據(jù)及驗(yàn)證數(shù)據(jù)。
這里,也可以使上述密鑰生成單元用密鑰封裝機(jī)制作為上述密鑰分發(fā) 來生成上述共享密鑰。
根據(jù)該結(jié)構(gòu),通信裝置在與外部裝置之間用密鑰封裝機(jī)制來生成共享密鑰,所以共享密鑰不會(huì)被泄露。
此外,通過采用密鑰封裝機(jī)制,對密鑰泄露是安全的,所以證明了在 認(rèn)證時(shí)對冒名攻擊的安全性。
圖1是密碼通信系統(tǒng)1的概要圖。
圖2是密碼通信裝置A10的結(jié)構(gòu)方框圖。
圖3是密碼通信裝置B20的結(jié)構(gòu)方框圖。
圖4是密碼通信系統(tǒng)1的工作流程圖。下接圖5。
圖5是密碼通信系統(tǒng)1的工作流程圖。上接圖4,下接圖6。
圖6是密碼通信系統(tǒng)1的工作流程圖。上接圖5,下接圖7。
圖7是密碼通信系統(tǒng)1的工作流程圖。上接圖6。
標(biāo)號(hào)說明
1密碼通信系統(tǒng)10密碼通信裝置A20密碼通信裝置B30通信路徑
101、201輸入輸出部
102、202收發(fā)部
103、203公鑰(public key)保存部
104、204私鑰(private key)保存部
105、205KEM密文生成部
106、206KEM密文解密部
107、207共享密鑰(shared key)生成部
108、208共享密鑰保存部
109、209詢問數(shù)據(jù)生成部
110、210應(yīng)答數(shù)據(jù)生成部
m、211應(yīng)答數(shù)據(jù)驗(yàn)證部
112、212MAC生成部113、 213 共用密鑰加密部
114、 214 共用密鑰解密部
115、 215 DEM密文生成部
116、 216 DEM密文解密部
具體實(shí)施方式
1.第l實(shí)施方式
下面說明本發(fā)明第1實(shí)施方式的密碼通信系統(tǒng)1。
密碼通信系統(tǒng)1如圖1所示,由密碼通信裝置A10和密碼通信裝置B20 構(gòu)成,密碼通信裝置A10和密碼通信裝置B20經(jīng)通信路徑30進(jìn)行通信。
密碼通信裝置A10及密碼通信裝置B20防止密鑰的泄露及冒名攻擊, 與通信對方用共享密鑰進(jìn)行密碼通信。
密碼通信裝置A10及密碼通信裝置B20的秘密通信大體分來,由3個(gè) 階段工作組成。
第1個(gè)階段是密碼通信裝置A10和密碼通信裝置B20用KEM進(jìn)行相互 認(rèn)證及密鑰分發(fā)、相互的裝置共享密鑰的階段。
第2個(gè)階段是密碼通信裝置A10和密碼通信裝置B20分別通過用共享 的密鑰進(jìn)行詢問一應(yīng)答認(rèn)證來確認(rèn)相互的發(fā)送對方未進(jìn)行冒名攻擊的階段。
第3個(gè)階段是用共享的密鑰在密碼通信裝置A10和密碼通信裝置B20 之間經(jīng)通信路徑30收發(fā)加密過的數(shù)據(jù)的階段。
這里,所謂數(shù)據(jù),例如是文本數(shù)據(jù)、音樂數(shù)據(jù)、圖像數(shù)據(jù)、電影內(nèi)容 數(shù)據(jù)。
這里:說明本實(shí)施方式所用的密鑰分發(fā)方式之一的密鑰封裝機(jī)制(Key Encapsulation Mechanism, 以下稱為"KEM"。)。
密鑰封裝機(jī)制簡單地說,就是用公鑰密碼在發(fā)送裝置和接收裝置之間 分發(fā)共享密鑰的算法。首先,發(fā)送端向公鑰加密算法E中輸入接收者的公 鑰pk來生成密文C和共享密鑰K,將密文C傳輸?shù)浇邮斩恕H缓?,接收?向公鑰解密算法D中輸入私鑰sk和密文C來求與發(fā)送端相同的共享密鑰K。在本說明書中,將密文C也稱為"密鑰數(shù)據(jù)K的KEM密文"等。
而且,密鑰封裝機(jī)制的目的在于,通過用密鑰封裝機(jī)制在發(fā)送裝置和 接收裝置間共享共享密鑰K,其后,用共享密鑰K通過共享密鑰密碼對從發(fā)
送裝置向接收裝置發(fā)送的通信內(nèi)容數(shù)據(jù)進(jìn)行加密。這里,從具有發(fā)送裝置 的發(fā)送者向具有接收裝置的接收者單向發(fā)送信息,發(fā)送者不能虛構(gòu)地創(chuàng)建 共享密鑰,抑制了發(fā)送者的非法,這一點(diǎn)是現(xiàn)有的密鑰分發(fā)方式所沒有的 特征。
作為這種密鑰封裝機(jī)制,公開了被稱為PSEC-KEM的算法。 PSEC-KEM算法的細(xì)節(jié)記載于著者Tatsuaki Okamoto的"Generic conversion for constructing IND-CCA2 public—key encryption in the random oracle model",所以省略其說明。以下,簡單說明PSEC-KEM算 法。
(1) PSEC-KEM的系統(tǒng)參數(shù) PSEC-KEM具有以下系統(tǒng)參數(shù)。
*橢圓曲線E
'橢圓曲線E上的階數(shù)n的點(diǎn)P 散列(hash)函數(shù)G、 H
橢圓曲線、階數(shù)及散列函數(shù)詳細(xì)描述于非專利文獻(xiàn)2,所以這里省略其 說明。
散列函數(shù)G、 H由發(fā)送端及接收端雙方共享。
(2) PSEC-KEM的公鑰和私鑰
隨機(jī)選擇Zn的元素x,生成W=x*P。
這里,Zn是由(O, 1,, n-1}組成的集合,x水P表示通過將橢圓曲線 E上的點(diǎn)P相加x次而得到的橢圓曲線上的點(diǎn)。橢圓曲線上的點(diǎn)的相加方法 描述于非專利文獻(xiàn)2。
.設(shè)公鑰pk為(E, P, W, n),設(shè)私鑰sk為x。
(3) PSEC-KEM的加密
加密時(shí),向下述公鑰解密算法KemE中輸入公鑰pk而輸出共享密鑰K 和密文C。
以下說明公鑰解密算法KernE。 隨機(jī)生成Zn的元素s。
-生成G(s),將G(s)分割為G(s)二al !K。這里,| l表示位(bit)結(jié)合, 所謂將G(s)分割為G(s)二al |K,表示使G(s)的高幾位為a,使其余幾位為 K。
生成R=a*P, Q=a*W。
生成v二s xor H(R| lQ)。這里,xor表示邏輯"異或"運(yùn)算。 ,輸出共享密鑰K和密文C^R, v)。
發(fā)送端的裝置將密文C發(fā)送到通信對方(接收端的裝置)。 (4) PSEC-KEM的解密
接收端的裝置從發(fā)送端的裝置接收密文C,向下述公鑰解密算法KemD中輸入密文C^R, v)和私鑰sk而輸出共享密鑰K。 以下說明公鑰解密算法KemD。
生成Q=x*R。這里,如上所述,x是私鑰sk。 .生成s, =v xor H(R| lQ)。這里,v和R根據(jù)密文C來得到。 -生成G(s,),將G(s,)分割為G(s, )=a, | |K,。這里,分割的方
法與加密端相同。
.檢査^a,木P是否成立。如果成立,則將K,作為共享密鑰K輸出。 在將該P(yáng)SEC-KEM算法應(yīng)用于在發(fā)送裝置和接收裝置之間進(jìn)行加密通信 的密碼系統(tǒng)的情況下,首先,發(fā)送裝置取得通信目的地接收裝置的公鑰pk, 將取得的公鑰pk輸入到前述公鑰加密算法KemE中而導(dǎo)出共享密鑰K和密 文C,將密文C發(fā)送到接收裝置。然后,接收裝置從發(fā)送裝置接收密文C, 將接收到的密文C和自身具有的私鑰sk輸入到前述公鑰解密算法KemD中, 而導(dǎo)出與發(fā)送裝置導(dǎo)出的相等的共享密鑰K。
以下,詳細(xì)說明該情況。
現(xiàn)在,PSEC-KEM算法設(shè)散列函數(shù)H的輸入為(WPl la*W),用公鑰加密 算法KemE使H(WPl | a*W)的值作用于隨機(jī)生成的元素s而生成v。然后, 在公鑰解密算法KemD中,可以根據(jù)密文C中包含的R=a*P用私鑰sk(=x) 來求Q=x*R=x* (a*P) =a* (x*P) =a*W,所以通過計(jì)算v xor H (a*P | | a*W), 能夠求出公鑰加密算法KemE中生成的隨機(jī)元素s 。這里,v xor H (a*P | | a*W) 是公鑰加密算法KeraE根據(jù)s來計(jì)算v的運(yùn)算的逆運(yùn)算。因此,公鑰加密算法KemE和公鑰解密算法KemD能夠向散列函數(shù)G中輸入相同的s的值,能 夠?qū)С鱿嗤墓蚕砻荑€K。其結(jié)果是,具有私鑰sk的接收裝置能夠?qū)С雠c 發(fā)送裝置導(dǎo)出的相同的共享密鑰K。
另一方面,不知道私鑰sk的其他接收裝置即使取得公鑰pk并接收到 密文C,也不知道私鑰sk (=x),所以不能根據(jù)R=a*P來計(jì)算Q=a*W (二 (ax) *P), 不能導(dǎo)出與發(fā)送裝置導(dǎo)出的相同的共享密鑰K。這是因?yàn)?,不知道私鑰sk 的其他接收裝置只能利用公鑰pk,所以在上述Q的計(jì)算中利用公鑰pk中包 含的W=x*p來取代私鑰sk(=x),但是一般根據(jù)a*P和W=x*P來求 Q二a求W("ax盧P)被稱為橢圓曲線上的Diffie-Hellraan問題,只要不知道a 或x的值,就難以計(jì)算。這記載于著者Neal Koblitz的"Algebraic Aspects of Cryptography" (Algorithms and Computation in Mathematics Vol. 3, pp. 132-133, Springer-Verlag, 1998.),所以這里省略其說明。
艮口, PSEC-KEM算法不用私鑰,而用難以根據(jù)a*P來計(jì)算a*W的 Diffie-Hellman問題,來最終導(dǎo)出共享密鑰K,從而如果不知道私鑰,就 不能導(dǎo)出該共享密鑰K。
因此,根據(jù)以上,發(fā)送裝置和接收裝置能夠秘密地共享共享密鑰K,其 后,使用私鑰密碼,對從發(fā)送裝置向接收裝置發(fā)送的通信內(nèi)容數(shù)據(jù),用共 享密鑰K通過共享密鑰密碼進(jìn)行加密。
上述PSEC-KEM算法被證明了如果前述橢圓曲線上的Diffie-Hellman 問題很困難,則不知道私鑰的接收裝置不能得到共享密鑰K。由于證明了方 式的安全性,所以將這種證明稱為"安全性證明"。PSEC-KEM之外的其他 KEM算法,例如RSA-KEM或NTRU-KEM(參考(日本)特開2004—201292號(hào)公 報(bào)及特開2004—201293號(hào)公報(bào))等也以同樣的困難的數(shù)學(xué)問題為根據(jù)而證 明了安全性。
RSA-KEM的細(xì)節(jié)記載于著者Victor Shoup的"A proposal for an ISO standard for public key encryption (version 2.1),,, 所以省略其說 明。
此夕卜,NTRU-KEM的細(xì)節(jié)記載于(日本)特開2004—201292號(hào)公報(bào)及特開 2004—201293號(hào)公報(bào),所以省略其說明。
有時(shí)也用上述說明過的KEM,從2臺(tái)密碼通信裝置的雙方相互發(fā)送KEM密文。在此情況下,通過用從一方的密碼通信裝置A向另一方的密碼通信
裝置B發(fā)送KEM密文而共享的共享密鑰(稱為KA)、和從密碼通信裝置B向 密碼通信裝置A發(fā)送KEM密文而共享的共享密鑰(稱為KB)兩者來創(chuàng)建共享 密鑰K,能夠進(jìn)行更安全的密鑰共享。
在密碼通信系統(tǒng)1中,按這種從雙方相互發(fā)送KEM密碼部分的結(jié)構(gòu)來 進(jìn)行密鑰共享。
以下,說明構(gòu)成密碼通信系統(tǒng)1的密碼通信裝置AIO、 B20、及他們的 工作。
1.2密碼通信裝置AIO的結(jié)構(gòu)
密碼通信裝置AIO如圖2所示,由輸入輸出部101、收發(fā)部102、公鑰 保存部103、私鑰保存部104、 KEM密文生成部105、 KEM密文解密部106、 共享密鑰生成部107、共享密鑰保存部108、詢問數(shù)據(jù)生成部109、應(yīng)答數(shù) 據(jù)生成部110、應(yīng)答數(shù)據(jù)驗(yàn)證部111、 MAC(篡改檢測碼,Message Authentication Code)生成部112、共用密鑰加密部113、共用密鑰解密部 114、 DEM(Data Encapsulation Mechanism,數(shù)據(jù)封裝機(jī)制)密文生成部115、 及DEM密文解密部116構(gòu)成。
(1) 公鑰保存部103
公鑰保存部103保存著密碼通信裝置B20的公鑰KPB。 公鑰KPB與私鑰KSB —起被相對應(yīng)地預(yù)先提供給密碼通信裝置B20。此 外,在密碼通信裝置A10中,假設(shè)公鑰KPB是預(yù)先從外部提供并保存著的, 或者從密碼通信裝置B20發(fā)送、經(jīng)通信路徑30預(yù)先接收并保存著的。
(2) 私鑰保存部104
私鑰保存部104保存著密碼通信裝置AIO的私鑰KSA。
私鑰KSA與公鑰KPA —起被相對應(yīng)地預(yù)先提供給密碼通信裝置AIO。
(3) KEM密文生成部105
KEM密文生成部105用公鑰KPB和密鑰封裝機(jī)制(KEM)的公鑰加密算法 KemE,來生成密鑰數(shù)據(jù)KA及密鑰數(shù)據(jù)KA的KEM密文KEMA。密鑰數(shù)據(jù)KA及 KEM密文KEMA的生成方法是與上述所示的PSEC-KEM的加密同樣的方法,所 以省略其說明。
KEM密文生成部105將生成的KEM密文KEMA經(jīng)收發(fā)部102發(fā)送到密碼通信裝置B20。
KEM密文生成部105將生成的密鑰數(shù)據(jù)KA輸出到共享密鑰生成部107。
(4) KEM密文解密部106
KEM密文解密部106從密碼通信裝置B20經(jīng)收發(fā)部102接收用KEM中的 公鑰加密算法KemE對密鑰數(shù)據(jù)KB進(jìn)行加密所得的密文一 一KEM密文KEMB。
KEM密文解密部106向與公鑰加密算法KemE對應(yīng)的公鑰解密算法KemD 提供私鑰KSA及KEM密文KEMB作為輸入值,對接收到的KEM密文KEMB進(jìn) 行解密,來生成密鑰數(shù)據(jù)KB。密鑰數(shù)據(jù)KB的解密方法是與上述所示的 PSEC-KEM的解密同樣的方法,所以省略其說明。
KEM密文解密部106將生成的密鑰數(shù)據(jù)KB輸出到共享密鑰生成部107。
(5) 共享密鑰生成部107
共享密鑰生成部107分別從KEM密文生成部105接收密鑰數(shù)據(jù)KA,從 KEM密文解密部106接收密鑰數(shù)據(jù)KB。
共享密鑰生成部107用接收到的密鑰數(shù)據(jù)KA和KB,來生成共用密鑰密 碼(common key cryptosystem)用共享密鑰KS和MAC用共享密鑰KH,將 生成的共用密鑰密碼用共享密鑰KS和MAC用共享密鑰KH保存到共享密鑰 保存部108中。
以下示出生成共用密鑰密碼用共享密鑰KS和MAC用共享密鑰KH的具 體例。
共享密鑰生成部107取密鑰數(shù)據(jù)KA和KB的邏輯"異或"(xor),生成 共享密鑰數(shù)據(jù)K。共享密鑰生成部107將生成的共享密鑰數(shù)據(jù)K的一部分作 為共用密鑰密碼用共享密鑰KS,將其他部分作為MAC用共享密鑰KH。艮P, 共享密鑰生成部107對生成的共享密鑰數(shù)據(jù)K取得共用密鑰密碼用共享密 鑰KS和MAC用共享密鑰KH、使其滿足K4Sl lKH即可。這里,| l表示連 結(jié)。此外,用于從共享密鑰數(shù)據(jù)K中取得共用密鑰密碼用共享密鑰KS和MAC 用共享密鑰KH的劃分位置只要與密碼通信裝置B20端一致即可,可以是任 意的位置。
共享密鑰數(shù)據(jù)K的生成方法只要包含密鑰數(shù)據(jù)KA和KB這兩個(gè)信息即 可。例如,也可以將密鑰數(shù)據(jù)KA和KB的位或字節(jié)連結(jié)所得的數(shù)據(jù)K'的散 列函數(shù)值作為共享密鑰數(shù)據(jù)K。(6) 共享密鑰保存部l08
共享密鑰保存部108具有用于保存共享密鑰生成部107生成的共用密 鑰密碼用共享密鑰KS和MAC用共享密鑰KH的區(qū)域。
(7) 詢問數(shù)據(jù)生成部109
詢問數(shù)據(jù)生成部109生成隨機(jī)數(shù)一一詢問數(shù)據(jù)nA,將生成的詢問數(shù)據(jù) nA經(jīng)收發(fā)部102發(fā)送到密碼通信裝置B20。
詢問數(shù)據(jù)生成部109臨時(shí)存儲(chǔ)生成的詢問數(shù)據(jù)nA。
(8) 應(yīng)答數(shù)據(jù)生成部IIO
應(yīng)答數(shù)據(jù)生成部110從密碼通信裝置B20經(jīng)收發(fā)部102接收詢問數(shù)據(jù) nB和對詢問數(shù)據(jù)生成部109發(fā)送的詢問數(shù)據(jù)nA的應(yīng)答數(shù)據(jù)rB,或者只接 收詢問數(shù)據(jù)nB。
(接收到詢問數(shù)據(jù)nB和應(yīng)答數(shù)據(jù)rB的情況)
應(yīng)答數(shù)據(jù)生成部110從密碼通信裝置B20接收到詢問數(shù)據(jù)nB和應(yīng)答數(shù) 據(jù)rB后,臨時(shí)存儲(chǔ)接收到的詢問數(shù)據(jù)nB。
應(yīng)答數(shù)據(jù)生成部110將應(yīng)答數(shù)據(jù)rB和指示驗(yàn)證應(yīng)答數(shù)據(jù)的驗(yàn)證指示輸 出到應(yīng)答數(shù)據(jù)驗(yàn)證部lll。
應(yīng)答數(shù)據(jù)生成部110從應(yīng)答數(shù)據(jù)驗(yàn)證部111接收到指示生成應(yīng)答數(shù)據(jù) 的應(yīng)答數(shù)據(jù)生成指示后,將指示生成篡改檢測碼(Message Authentication Code, MAC)的MAC生成指示、和臨時(shí)存儲(chǔ)著的詢問數(shù)據(jù)nB輸出到MAC生成 部112。
應(yīng)答數(shù)據(jù)生成部110從MAC生成部112接收到MAC值HnB后,將接收 到的MAC值HnB作為應(yīng)答數(shù)據(jù)rA,經(jīng)收發(fā)部102發(fā)送到密碼通信裝置B20。 MAC值HnB將在后面說明MAC生成部112的部分中描述。 (只接收到詢問數(shù)據(jù)nB的情況)
應(yīng)答數(shù)據(jù)生成部110從密碼通信裝置B20接收到詢問數(shù)據(jù)nB后,將MAC 生成指示和接收到的詢問數(shù)據(jù)nB輸出到MAC生成部112。
應(yīng)答數(shù)據(jù)生成部110從MAC生成部112接收到MAC值HnB后,將接收 到的MAC值HnB作為應(yīng)答數(shù)據(jù)rA,與詢問數(shù)據(jù)生成部109生成的詢問數(shù)據(jù) nA —起,經(jīng)收發(fā)部102發(fā)送到密碼通信裝置B20。
(9) 應(yīng)答數(shù)據(jù)驗(yàn)證部lll應(yīng)答數(shù)據(jù)驗(yàn)證部in從應(yīng)答數(shù)據(jù)生成部110接收到驗(yàn)證指示和應(yīng)答數(shù) 據(jù)rB后,取得詢問數(shù)據(jù)生成部109臨時(shí)存儲(chǔ)著的詢問數(shù)據(jù)nA。
應(yīng)答數(shù)據(jù)驗(yàn)證部111將MAC生成指示和取得的詢問數(shù)據(jù)nA輸出到MAC 生成部112。
應(yīng)答數(shù)據(jù)驗(yàn)證部111從MAC生成部112接收到MAC值HnA后,判斷MAC 值HnA和應(yīng)答數(shù)據(jù)rB是否一致。
在判斷為一致的情況下,應(yīng)答數(shù)據(jù)生成部110將應(yīng)答數(shù)據(jù)生成指示輸 出到應(yīng)答數(shù)據(jù)生成部110。
在判斷為不一致的情況下,應(yīng)答數(shù)據(jù)生成部no中止與密碼通信有關(guān) 的整個(gè)處理。
應(yīng)答數(shù)據(jù)驗(yàn)證部111從密碼通信裝置B20經(jīng)收發(fā)部102接收到應(yīng)答數(shù) 據(jù)rB后,取得詢問數(shù)據(jù)生成部109臨時(shí)存儲(chǔ)著的詢問數(shù)據(jù)nA,進(jìn)行與上述 同樣的動(dòng)作,驗(yàn)證應(yīng)答數(shù)據(jù)rB。
(10) MAC生成部112
MAC生成部112預(yù)先存儲(chǔ)著帶密鑰散列函數(shù)Hash。所謂帶密鑰散列函 數(shù),是指被提供密鑰和數(shù)據(jù)作為輸入、依賴于密鑰的單向函數(shù)。本實(shí)施方 式中所用的帶密鑰散列函數(shù)Hash是使用MAC用共享密鑰KH、而且依賴于 MAC用共享密鑰KH的函數(shù)。帶密鑰散列函數(shù)記載于非專利文獻(xiàn)2的189 195頁,所以省略其說明。
MAC生成部112對MAC對象數(shù)據(jù)使用共享密鑰保存部108中保存著的 MAC用共享密鑰KH,來生成(計(jì)算)由規(guī)定的位長t(t在l以上)組成的篡改 檢測碼的值(MAC值)。
這里,設(shè)MAC對象數(shù)據(jù)DM的MAC值為HDM=Hash (KH, DM)。此外,Hash (KH, DM)表示用MAC用共享密鑰KH通過帶密鑰散列函數(shù)Hash計(jì)算出的數(shù)據(jù)DM 的散列值。
MAC生成部112從應(yīng)答數(shù)據(jù)生成部110接收到MAC生成指示和詢問數(shù)據(jù) nB后,取得共享密鑰保存部108中保存著的MAC用共享密鑰KH。 MAC生成 部112用預(yù)先存儲(chǔ)著的帶密鑰散列函數(shù)Hash和取得的KH,來計(jì)算詢問數(shù)據(jù) nB的區(qū)C值HnB^Hash(KH, nB)),將算出的MAC值HnB輸出到應(yīng)答數(shù)據(jù)生 成部110。MAC生成部112從應(yīng)答數(shù)據(jù)驗(yàn)證部111接收到MAC生成指示和詢問數(shù)據(jù) nA后,取得共享密鑰保存部108中保存著的MAC用共享密鑰KH。 MAC生成 部112用預(yù)先存儲(chǔ)著的帶密鑰散列函數(shù)Hash和取得的KH,來計(jì)算詢問數(shù)據(jù) nA的MAC值HnA(iash(KH, nA)),將算出的MAC值HnA輸出到應(yīng)答數(shù)據(jù)驗(yàn) 證部111。
MAC生成部112從DEM密文生成部115接收到MAC生成指示、和用共用 密鑰密碼加密、發(fā)送到密碼通信裝置B20的數(shù)據(jù)(以下稱為加密對象數(shù) 據(jù)。)DA后,取得共享密鑰保存部108中保存著的MAC用共享密鑰KH。 MAC 生成部112用預(yù)先存儲(chǔ)著的帶密鑰散列函數(shù)Hash和取得的KH,來計(jì)算加密 對象數(shù)據(jù)DA的MAC值HDA (二Hash(KH, DA)),將算出的MAC值HDA輸出到 DEM密文生成部115。
MAC生成部112接收到MAC生成指示、和從DEM密文解密部116接收到 解密數(shù)據(jù)DB'后,取得共享密鑰保存部108中保存著的MAC用共享密鑰KH。 MAC生成部112用預(yù)先存儲(chǔ)著的帶密鑰散列函數(shù)Hash和取得的KH,來計(jì)算 針對解密數(shù)據(jù)DB,的MAC值HDB, (=Hash(KH, DB,)),將算出的MAC值 HDB,輸出到DEM密文生成部115。
解密數(shù)據(jù)DB'將在后面說明共用密鑰解密部114的部分中描述。
Hash(KH, DM)也可以為Hash (KH, DM)=SHA1(KH| |DM)。這里,SHA1 (x) 是x的SHAl散列函數(shù)值,i l表示連結(jié)。
(11)共用密鑰加密部113
共用密鑰加密部113從DEM密文生成部115接收到加密對象數(shù)據(jù)DA和 指示加密的加密指示后,取得共享密鑰保存部108中保存著的共用密鑰密 碼用共享密鑰KS。
共用密鑰加密部113用取得的共用密鑰密碼用共享密鑰KS和共用密鑰 密碼算法對加密對象數(shù)據(jù)DA進(jìn)行加密,來生成針對加密對象數(shù)據(jù)DA的加 密數(shù)據(jù)EDA^Enc(KS, DA))。這里,Enc(KS, DA)表示用密鑰KS通過共用密 鑰密碼對數(shù)據(jù)DA進(jìn)行加密所得的密文。共用密鑰密碼例如是DES密碼或AES 密碼。共用密鑰密碼的細(xì)節(jié)記載于非專利文獻(xiàn)2的79 105頁,所以省略 其說明。
共用密鑰加密部113將生成的加密數(shù)據(jù)Enc(Ks, DA)輸出到DEM密文生成部115。
(12) 共用密鑰解密部114
共用密鑰解密部114從DEM密文解密部116接收到用共用密鑰密碼用 共享密鑰KS對加密對象數(shù)據(jù)DB進(jìn)行加密所得的加密數(shù)據(jù)EDB(=Enc(KS, DB))、和指示對加密數(shù)據(jù)進(jìn)行解密的解密指示后,取得共享密鑰保存部108 中保存著的共用密鑰密碼用共享密鑰KS。
共用密鑰解密部114用取得的共用密鑰密碼用共享密鑰KS和共用密鑰 解密算法對加密數(shù)據(jù)Enc(KS, DB)進(jìn)行解密,來生成解密數(shù)據(jù)DB'。
共用密鑰解密部114將生成的解密數(shù)據(jù)DB'輸出到DEM密文解密部
116。
(13) DEM密文生成部115
DEM密文生成部115從外部經(jīng)輸入輸出部101接收到加密對象數(shù)據(jù)DA 后,將加密指示和接收到的加密對象數(shù)據(jù)DA輸出到共用密鑰加密部113。
DEM密文生成部115將MAC指示和接收到的加密對象數(shù)據(jù)DA輸出到MAC 生成部112。
DEM密文生成部115從共用密鑰加密部113接收到加密數(shù)據(jù) EDA (=Enc (KS, DA)),從MAC生成部112接收到MAC值HDA (二Hash (KH, DA)) 后,連結(jié)它們,來生成DEM密文DEMA(二Enc(KS, DA) | |HDA)。
DEM密文生成部115將生成的DEM密文DEMA經(jīng)收發(fā)部102發(fā)送到密碼 通信裝置B20。
(14) DEM密文解密部116
DEM密文解密部116從密碼通信裝置B20經(jīng)收發(fā)部102接收DEM密文 DEMB(二EDBl |HDB)。這里,EDB是用密碼通信裝置B20具有的共用密鑰密碼 用共享密鑰KS對加密對象數(shù)據(jù)DB進(jìn)行加密所得的加密數(shù)據(jù)(Enc(KS, DB)), HDB是加密對象數(shù)據(jù)DB的MAC值(Hash (KH, DB))。
DEM密文解密部116將接收到的DEM密文DEMB(=EDB| lHDB)分離為加 密數(shù)據(jù)EDB和MAC值HDB 。
這里,示出分解的一例。假設(shè)DEM密文DEMB的位長為u,如上所述, MAC值HDB的位長是t,所以知道u〉t。DEM密文解密部116從DEM密文DEMB 的起始處起提取由u-t位長組成的數(shù)據(jù),將提取出的數(shù)據(jù)作為加密數(shù)據(jù)EDB,將其余由t位長組成的數(shù)據(jù)作為MAC值HDB。
DEM密文解密部116將解密指示和加密數(shù)據(jù)EDB^Enc(KS, DB))輸出到 共用密鑰解密部114。
DEM密文解密部116從共用密鑰解密部114接收到解密數(shù)據(jù)DB'后, 將MAC指示和解密數(shù)據(jù)DB,輸出到MAC生成部112。
DEM密文解密部116接收到MAC值HDB, (=Hash(KH, DB,))后,與從 DEM密文DEMB分離出的HDB進(jìn)行比較,判斷是否一致。
在判斷為一致的情況下,DEM密文解密部116將解密數(shù)據(jù)DB'、即加 密對象數(shù)據(jù)DB經(jīng)輸入輸出部101輸出到外部。
在判斷為不一致的情況下,DEM密文解密部116中止與密碼通信有關(guān)的 整個(gè)處理。
(15) 輸入輸出部IOI
輸入輸出部101從外部接受加密對象數(shù)據(jù)DA,將接受到的加密對象數(shù) 據(jù)DA輸出到DEM密文生成部115。
輸入輸出部101從DEM密文解密部116接收到解密數(shù)據(jù)DB'后,將接 收到的解密數(shù)據(jù)DB'輸出到外部。
(16) 收發(fā)部102
收發(fā)部102從KEM密文生成部105接收到KEM密文KEMA后,將接收到 的KEM密文KEMA經(jīng)通信路徑30發(fā)送到密碼通信裝置B20。
收發(fā)部102從密碼通信裝置B20經(jīng)通信路徑30接收到KEM密文KEMB 后,將接收到的KEM密文KEMB輸出到KEM密文解密部106。
收發(fā)部102從詢問數(shù)據(jù)生成部109接收到詢問數(shù)據(jù)nA后,將接收到的 詢問數(shù)據(jù)nA經(jīng)通信路徑30發(fā)送到密碼通信裝置B20。
收發(fā)部102從應(yīng)答數(shù)據(jù)生成部llO接收到應(yīng)答數(shù)據(jù)rA后,將接收到的 應(yīng)答數(shù)據(jù)rA經(jīng)通信路徑30發(fā)送到密碼通信裝置B20。
收發(fā)部102從密碼通信裝置B20經(jīng)通信路徑30接收到詢問數(shù)據(jù)nB和 應(yīng)答數(shù)據(jù)rB,或者只接收到詢問數(shù)據(jù)nB后,將接收到的詢問數(shù)據(jù)nB及應(yīng) 答數(shù)據(jù)rB、或者詢問數(shù)據(jù)nB輸出到應(yīng)答數(shù)據(jù)生成部110。
收發(fā)部102從密碼通信裝置B20經(jīng)通信路徑30接收到應(yīng)答數(shù)據(jù)rB后, 將接收到的應(yīng)答數(shù)據(jù)rB輸出到應(yīng)答數(shù)據(jù)驗(yàn)證部111。收發(fā)部102從DEM密文生成部115接收到DEM密文DEMA后,將接收到 的DEM密文DEMA經(jīng)通信路徑30發(fā)送到密碼通信裝置B20。
收發(fā)部102從密碼通信裝置B20經(jīng)通信路徑30接收到DEM密文DEMB 后,將接收到的DEM密文DEMB輸出到DEM密文解密部116。
1.3密碼通信裝置B20的結(jié)構(gòu)
密碼通信裝置B20如圖3所示,由輸入輸出部201、收發(fā)部202、公鑰 保存部203、私鑰保存部204、 KEM密文生成部205、 KEM密文解密部206、 共享密鑰生成部207、共享密鑰保存部208、詢問數(shù)據(jù)生成部209、應(yīng)答數(shù) 據(jù)生成部210、應(yīng)答數(shù)據(jù)驗(yàn)證部211、 MAC生成部212、共用密鑰加密部213、 共用密鑰解密部214、 DEM密文生成部215、及DEM密文解密部216構(gòu)成。
(1) 公鑰保存部203
公鑰保存部203保存著密碼通信裝置A10的公鑰KPA。 公鑰KPA與私鑰KSA —起被相對應(yīng)地預(yù)先提供給密碼通信裝置AIO。此 外,此外,在密碼通信裝置B20中,假設(shè)公鑰KPA是預(yù)先從外部提供并保 存著的,或者從密碼通信裝置A10發(fā)送、經(jīng)通信路徑30預(yù)先接收并保存著 的。
(2) 私鑰保存部204
私鑰保存部204保存著密碼通信裝置B20的私鑰KSB。
私鑰KSB與公鑰KPB —起被相對應(yīng)地預(yù)先提供給密碼通信裝置B20。
(3) KEM密文生成部205
KEM密文生成部205用公鑰KPA和密鑰封裝機(jī)制(KEM)的公鑰加密算法 KemE,來生成密鑰數(shù)據(jù)KB及密鑰數(shù)據(jù)KB的KEM密文KEMB。密鑰數(shù)據(jù)KB及 KEM密文KEMB的生成方法是與上述所示的PSEC-KEM的加密同樣的方法,所 以省略其說明。
KEM密文生成部205將生成的KEM密文KEMB經(jīng)收發(fā)部202發(fā)送到密碼 通信裝置AIO。
K函密文生成部205將生成的密鑰數(shù)據(jù)KB輸出到共享密鑰生成部207。
(4) KEM密文解密部206
KEM密文解密部206從密碼通信裝置AIO經(jīng)收發(fā)部202,接收KEM密文 KEMA。KEM密文解密部206向與公鑰加密算法KemE對應(yīng)的公鑰解密算法KemD 提供私鑰KSB及KEM密文KEMA作為輸入值,對接收到的KEM密文KEMA進(jìn) 行解密,來生成密鑰數(shù)據(jù)KA。密鑰數(shù)據(jù)KA的解密方法是與上述所示的 PSEC-KEM的解密同樣的方法,所以省略其說明。
KEM密文解密部206將生成的密鑰數(shù)據(jù)KA輸出到共享密鑰生成部207。
(5) 共享密鑰生成部207
共享密鑰生成部207分別從KEM密文生成部205接收密鑰數(shù)據(jù)KB,從 KEM密文解密部206接收密鑰數(shù)據(jù)KA。
共享密鑰生成部207用接收到的密鑰數(shù)據(jù)KA和KB,來生成共用密鑰密 碼用共享密鑰KS和MAC用共享密鑰KH,將生成的共用密鑰密碼用共享密鑰 KS和MAC用共享密鑰KH保存到共享密鑰保存部208中。
共用密鑰密碼用共享密鑰KS和MAC用共享密鑰KH的生成采用與共享 密鑰生成部107中的生成方法相同的方法。
(6) 共享密鑰保存部208
共享密鑰保存部208具有用于保存共享密鑰生成部207生成的共用密 鑰密碼用共享密鑰KS和MAC用共享密鑰KH的區(qū)域。
(7) 詢問數(shù)據(jù)生成部209
詢問數(shù)據(jù)生成部209生成隨機(jī)數(shù)_一詢問數(shù)據(jù)nB,將生成的詢問數(shù)據(jù) nB經(jīng)收發(fā)部202發(fā)送到密碼通信裝置B20。
詢問數(shù)據(jù)生成部209臨時(shí)存儲(chǔ)生成的詢問數(shù)據(jù)nB。
(8) 應(yīng)答數(shù)據(jù)生成部210
應(yīng)答數(shù)據(jù)生成部210從密碼通信裝置A10經(jīng)收發(fā)部202接收詢問數(shù)據(jù) nA、和對詢問數(shù)據(jù)生成部209發(fā)送的詢問數(shù)據(jù)nB的應(yīng)答數(shù)據(jù)rA,或者只接 收詢問數(shù)據(jù)nA。
(接收到詢問數(shù)據(jù)nA和應(yīng)答數(shù)據(jù)rA的情況)
應(yīng)答數(shù)據(jù)生成部210從密碼通信裝置A10接收到詢問數(shù)據(jù)nA和應(yīng)答數(shù) 據(jù)rA后,臨時(shí)存儲(chǔ)接收到的詢問數(shù)據(jù)nA。
應(yīng)答數(shù)據(jù)生成部210將應(yīng)答數(shù)據(jù)rA、和指示驗(yàn)證應(yīng)答數(shù)據(jù)的驗(yàn)證指示 輸出到應(yīng)答數(shù)據(jù)驗(yàn)證部211。
應(yīng)答數(shù)據(jù)生成部210從應(yīng)答數(shù)據(jù)驗(yàn)證部211接收到指示生成應(yīng)答數(shù)據(jù)的應(yīng)答數(shù)據(jù)生成指示后,將MAC生成指示和臨時(shí)存儲(chǔ)著的詢問數(shù)據(jù)nA輸出 到MAC生成部212。
應(yīng)答數(shù)據(jù)生成部210從MAC生成部212接收到MAC值HnA后,將接收 到的MAC值HnA作為應(yīng)答數(shù)據(jù)rB,經(jīng)收發(fā)部202發(fā)送到密碼通信裝置AIO。
MAC值HnA將在后面說明MAC生成部212的部分中描述。
(只接收到詢問數(shù)據(jù)nA的情況)
應(yīng)答數(shù)據(jù)生成部210從密碼通信裝置AIO接收到詢問數(shù)據(jù)nA后,將MAC 生成指示和接收到的詢問數(shù)據(jù)nA輸出到MAC生成部212。
應(yīng)答數(shù)據(jù)生成部210從MAC生成部112接收到MAC值HnA后,將接收 到的MAC值HnA作為應(yīng)答數(shù)據(jù)rB,與詢問數(shù)據(jù)生成部209生成的詢問數(shù)據(jù) nB—起,經(jīng)收發(fā)部202發(fā)送到密碼通信裝置B20。
(9) 應(yīng)答數(shù)據(jù)驗(yàn)證部211
應(yīng)答數(shù)據(jù)驗(yàn)證部211從應(yīng)答數(shù)據(jù)生成部210接收到驗(yàn)證指示和應(yīng)答數(shù) 據(jù)rA后,取得詢問數(shù)據(jù)生成部209臨時(shí)存儲(chǔ)著的詢問數(shù)據(jù)nB。
應(yīng)答數(shù)據(jù)驗(yàn)證部211將MAC生成指示和取得的詢問數(shù)據(jù)nB輸出到MAC 生成部212。
應(yīng)答數(shù)據(jù)驗(yàn)證部211從MAC生成部212接收到MAC值HnB后,判斷MAC 值HnB和應(yīng)答數(shù)據(jù)rA是否一致。
在判斷為一致的情況下,應(yīng)答數(shù)據(jù)生成部210將應(yīng)答數(shù)據(jù)生成指示輸 出到應(yīng)答數(shù)據(jù)生成部210。
在判斷為不一致的情況下,應(yīng)答數(shù)據(jù)生成部210中止與密碼通信有關(guān) 的整個(gè)處理。
應(yīng)答數(shù)據(jù)驗(yàn)證部211從密碼通信裝置AIO經(jīng)收發(fā)部202接收到應(yīng)答數(shù) 據(jù)rA后,取得詢問數(shù)據(jù)生成部209臨時(shí)存儲(chǔ)著的詢問數(shù)據(jù)nB,進(jìn)行與上述 同樣的動(dòng)作,驗(yàn)證應(yīng)答數(shù)據(jù)rA。
(10) MAC生成部212
MAC生成部212預(yù)先存儲(chǔ)著帶密鑰散列函數(shù)Hash。
MAC生成部212對MAC對象數(shù)據(jù)DM使用共享密鑰保存部208中保存著 的MAC用共享密鑰KH,來生成(計(jì)算)由規(guī)定的位長t (t在1以上)組成的 MAC值HDM。MAC生成部212生成的MAC值的位長與密碼通信裝置A20的MAC生成部112生成的MAC值的位長相同。
MAC生成部212從應(yīng)答數(shù)據(jù)生成部210接收到MAC生成指示和詢問數(shù)據(jù) nA后,取得共享密鑰保存部208中保存著的MAC用共享密鑰KH。 MAC生成 部212用預(yù)先存儲(chǔ)著的帶密鑰散列函數(shù)Hash、和取得的KH,來計(jì)算詢問數(shù) 據(jù)nA的MAC值HnA (=Hash (KH, nA)),將算出的MAC值HnA輸出到應(yīng)答數(shù)據(jù) 生成部210。
MAC生成部212從應(yīng)答數(shù)據(jù)驗(yàn)證部211接收到MAC生成指示和詢問數(shù)據(jù) nB后,取得共享密鑰保存部208中保存著的MAC用共享密鑰KH。 MAC生成 部212用預(yù)先存儲(chǔ)著的帶密鑰散列函數(shù)Hash和取得的MAC用共享密鑰KH, 來計(jì)算詢問數(shù)據(jù)nB的MAC值HnB(二Hash(KH, nB)),將算出的MAC值HnB輸 出到應(yīng)答數(shù)據(jù)驗(yàn)證部211。
MAC生成部212從DEM密文生成部215接收到MAC生成指示、和加密、 發(fā)送到密碼通信裝置A10的數(shù)據(jù)一 一加密對象數(shù)據(jù)DB后,取得共享密鑰保 存部208中保存著的MAC用共享密鑰KH。 MAC生成部212用預(yù)先存儲(chǔ)著的 帶密鑰散列函數(shù)Hash和取得的MAC用共享密鑰KH,來計(jì)算加密對象數(shù)據(jù) DB的MAC值HDB(二Hash(KH, DB)),將算出的MAC值HDB輸出到DEM密文生 成部215。
MAC生成部212接收到MAC生成指示、和從DEM密文解密部216接收到 解密數(shù)據(jù)M'后,取得共享密鑰保存部208中保存著的MAC用共享密鑰KH。 MAC生成部212用預(yù)先存儲(chǔ)著的帶密鑰散列函數(shù)Hash、和取得的MAC用共 享密鑰KH,來計(jì)算解密數(shù)據(jù)DA,的MAC值HDA, (=Hash(KH, DA,)),將算 出的MAC值HDA,輸出到DEM密文生成部215。
解密數(shù)據(jù)DA'將在后面說明共用密鑰解密部214的部分中描述。
(11)共用密鑰加密部213
共用密鑰加密部213從DEM密文生成部215接收到加密對象數(shù)據(jù)DB、 和指示加密的加密指示后,取得共享密鑰保存部208中保存著的共用密鑰 密碼用共享密鑰KS。
共用密鑰加密部213用取得的共用密鑰密碼用共享密鑰KS和共用密鑰 密碼算法對加密對象數(shù)據(jù)DB進(jìn)行加密,來生成加密對象數(shù)據(jù)DB的加密數(shù) 據(jù)EDB(=Enc(KS, DB))。這里,Enc(KS, DB)表示用密鑰KS通過共用密鑰密碼對數(shù)據(jù)DB進(jìn)行加密所得的密文。共用密鑰密碼例如是DES密碼或AES密 碼。共用密鑰密碼記載于非專利文獻(xiàn)2的79 105頁。
共用密鑰加密部213將生成的加密數(shù)據(jù)Enc (Ks, DB)輸出到DEM密文生 成部215。
(12) 共用密鑰解密部214
共用密鑰解密部214從DEM密文解密部216接收到用共用密鑰密碼用 共享密鑰KS對加密對象數(shù)據(jù)DA進(jìn)行加密所得的加密數(shù)據(jù)EDA(=Enc(KS, DA))、和指示對加密數(shù)據(jù)進(jìn)行解密的解密指示后,取得共享密鑰保存部208 中保存著的共用密鑰密碼用共享密鑰KS。
共用密鑰解密部214用取得的共用密鑰密碼用共享密鑰KS和共用密鑰 解密算法對加密數(shù)據(jù)Enc(KS, DA)進(jìn)行解密,來生成解密數(shù)據(jù)DA,。
共用密鑰解密部214將生成的解密數(shù)據(jù)DA,輸出到DEM密文解密部
216。
(13) DEM密文生成部215
DEM密文生成部215從外部經(jīng)輸入輸出部201接收到加密對象數(shù)據(jù)DB 后,將加密指示和接收到的加密對象數(shù)據(jù)DB輸出到共用密鑰加密部213。
DEM密文生成部215將MAC指示和接收到的加密對象數(shù)據(jù)DB輸出到MAC 生成部212。
DEM密文生成部215從共用密鑰加密部213接收到加密數(shù)據(jù) EDB(=Enc(KS, DB)),從MAC生成部212接收到MAC值HDB(二Hash(KH, DB)) 后,連結(jié)它們,來生成DEM密文DEMB(二Enc(KS, DB) | |扁)。
DEM密文生成部215將生成的DEM密文DEMB經(jīng)收發(fā)部202發(fā)送到密碼 通信裝置AIO。
(14) DEM密文解密部216
DEM密文解密部216從密碼通信裝置A10經(jīng)收發(fā)部202接收DEM密文 DEMA(二EDAl |HDA)。這里,EDA是用密碼通信裝置A10具有的共用密鑰密碼 用共享密鑰KS對加密對象數(shù)據(jù)DA進(jìn)行加密所得的加密數(shù)據(jù)(Enc(KS, DA)), HDA是加密對象數(shù)據(jù)DA的MAC值(Hash (KH, DA))。
DEM密文解密部216將接收到的DEM密文DE區(qū)(-EDAl iHDA)分離為加 密數(shù)據(jù)EDA和MAC值HDA。 DEM密文解密部216用與上述所示的DEM密文解密部116的分解的方法相同的方法來分解DEM密文DEMA。
DEM密文解密部216將解密指示和加密數(shù)據(jù)EDA(=Enc(KS, DA))輸出到 共用密鑰解密部214。
DEM密文解密部216從共用密鑰解密部214接收到解密數(shù)據(jù)DA'后, 將MAC指示和解密數(shù)據(jù)DA'輸出到MAC生成部212。
DEM密文解密部216接收到MAC值HDA, (=Hash(KH, DB,))后,與從 DEM密文DEMA分離出的HDA進(jìn)行比較,判斷是否一致。
在判斷為一致的情況下,DEM密文解密部216將解密數(shù)據(jù)DA,、即加 密對象數(shù)據(jù)DA經(jīng)輸入輸出部201輸出到外部。
在判斷為不一致的情況下,DEM密文解密部216中止與密碼通信有關(guān)的 整個(gè)處理。
(15) 輸入輸出部201
輸入輸出部201從外部接受加密對象數(shù)據(jù)DB,將接受到的加密對象數(shù) 據(jù)DB輸出到DEM密文生成部215。
輸入輸出部201從DEM密文解密部216接收到解密數(shù)據(jù)DA'后,將接 收到的解密數(shù)據(jù)DA'輸出到外部。
(16) 收發(fā)部202
收發(fā)部202從KEM密文生成部205接收到KEM密文KEMB后,將接收到 的KEM密文KEMA經(jīng)通信路徑30發(fā)送到密碼通信裝置AIO。
收發(fā)部202從密碼通信裝置AIO經(jīng)通信路徑30接收到KEM密文KEMA 后,將接收到的KEM密文KEMA輸出到KEM密文解密部206。
收發(fā)部202從詢問數(shù)據(jù)生成部209接收到詢問數(shù)據(jù)nB后,將接收到的 詢問數(shù)據(jù)nB經(jīng)通信路徑30發(fā)送到密碼通信裝置AIO。
收發(fā)部202從應(yīng)答數(shù)據(jù)生成部210接收到應(yīng)答數(shù)據(jù)rB后,將接收到的 應(yīng)答數(shù)據(jù)rB經(jīng)通信路徑30發(fā)送到密碼通信裝置AIO。
收發(fā)部202從密碼通信裝置AIO經(jīng)通信路徑30接收到詢問數(shù)據(jù)nA和 應(yīng)答數(shù)據(jù)rA,或者只接收到詢問數(shù)據(jù)nA后,將接收到的詢問數(shù)據(jù)nA及應(yīng) 答數(shù)據(jù)rA、或者詢問數(shù)據(jù)nA輸出到應(yīng)答數(shù)據(jù)生成部210。
收發(fā)部202從密碼通信裝置AIO經(jīng)通信路徑30接收到應(yīng)答數(shù)據(jù)rA后, 將接收到的應(yīng)答數(shù)據(jù)rA輸出到應(yīng)答數(shù)據(jù)驗(yàn)證部211。收發(fā)部202從DEM密文生成部215接收到DEM密文DEMB后,將接收到 的DEM密文DEMB經(jīng)通信路徑30發(fā)送到密碼通信裝置AIO。
收發(fā)部202從密碼通信裝置AIO經(jīng)通信路徑30接收到DEM密文DEMA 后,將接收到的DEM密文DEMA輸出到DEM密文解密部216。
1.4密碼通信系統(tǒng)l的工作
(1) 工作概要
密碼通信系統(tǒng)1的工作大體分來,由密碼通信裝置AIO和密碼通信裝 置B20共享密鑰的密鑰共享階段、使用共享的密鑰來相互認(rèn)證的詢問一應(yīng) 答認(rèn)證階段、使用共享的密鑰來收發(fā)數(shù)據(jù)的數(shù)據(jù)密碼通信階段組成。
在密鑰共享階段,密碼通信裝置AIO和密碼通信裝置B20用KEM來進(jìn) 行相互認(rèn)證及密鑰分發(fā),相互的裝置共享密鑰。
在詢問一應(yīng)答認(rèn)證階段,通過用共享的密鑰進(jìn)行詢問一應(yīng)答認(rèn)證,密 碼通信裝置AIO和密碼通信裝置B20分別確認(rèn)相互的發(fā)送對方未進(jìn)行冒名 攻擊。
在數(shù)據(jù)密碼通信階段,用共享的密鑰在密碼通信裝置AIO和密碼通信 裝置B20之間經(jīng)通信路徑30來收發(fā)加密過的數(shù)據(jù)。
這里,所謂數(shù)據(jù),例如是文本數(shù)據(jù)、音樂數(shù)據(jù)、圖像數(shù)據(jù)、電影內(nèi)容 數(shù)據(jù)。
(2) 動(dòng)作
以下,用圖4至圖7所示的流程圖來說明密碼通信系統(tǒng)1的工作。 密碼通信裝置AIO的KEM密文生成部105用公鑰KPB和KEM的公鑰加
密算法KemE,來生成密鑰數(shù)據(jù)KA及密鑰數(shù)據(jù)KA的KEM密文KEMA (步驟S5)。 KEM密文生成部105將生成的KEM密文KEMA發(fā)送到密碼通信裝置
B20(步驟S10)。
密碼通信裝置B20的KEM密文解密部206從密碼通信裝置AIO經(jīng)收發(fā) 部202接收KEM密文KEMA(步驟S15)。
KEM密文解密部206用與公鑰加密算法KemE對應(yīng)的公鑰解密算法KemD、 及私鑰KSB對接收到的KEM密文KEMA進(jìn)行解密,來生成密鑰數(shù)據(jù)KA(步驟 S20)。
密碼通信裝置B20的KEM密文生成部205用公鑰KPA和KEM的公鑰加密算法KemE,來生成密鑰數(shù)據(jù)KB及密鑰數(shù)據(jù)KB的KEM密文KEMB (步驟S25)。 KEM密文生成部205將生成的KEM密文KEMB發(fā)送到密碼通信裝置 A10(步驟S30)。
密碼通信裝置B20的共享密鑰生成部207用KEM密文生成部205生成 的密鑰數(shù)據(jù)KB、和KEM密文解密部206生成的密鑰數(shù)據(jù)KA,來生成共享密 鑰K(=KA xor KB)(步驟S35)。
共享密鑰生成部207根據(jù)生成的共享密鑰K來生成共用密鑰密碼用共 享密鑰KS和MAC用共享密鑰KH (K=KS| |KH),將生成的共用密鑰密碼用共 享密鑰KS和MAC用共享密鑰KH保存到共享密鑰保存部208中(步驟S40)。
密碼通信裝置A10的KEM密文解密部106從密碼通信裝置B20經(jīng)收發(fā) 部102接收KEM密文KEMB (步驟S45)。
KEM密文解密部106用公鑰解密算法KemD、及私鑰KSA對接收到的KEM 密文KEMB進(jìn)行解密,來生成密鑰數(shù)據(jù)KB (步驟S50)。
密碼通信裝置A10的共享密鑰生成部107用KEM密文生成部105生成 的密鑰數(shù)據(jù)KA、和KEM密文解密部106生成的密鑰數(shù)據(jù)KB,來生成共享密 鑰K (二KA xor KB)(步驟S55)。 共享密鑰生成部107用生成的共享密鑰K來生成共用密鑰密碼用共享 密鑰KS和MAC用共享密鑰KH (K=KS| |KH),將生成的共用密鑰密碼用共享 密鑰KS和MAC用共享密鑰KH保存到共享密鑰保存部108中(步驟S60)。
密碼通信裝置A10的詢問數(shù)據(jù)生成部109生成詢問數(shù)據(jù)nA(步驟S65), 將生成的詢問數(shù)據(jù)nA發(fā)送到密碼通信裝置B20 (步驟S70)。
密碼通信裝置B20的應(yīng)答數(shù)據(jù)生成部210從密碼通信裝置A10接收詢 問數(shù)據(jù)nA(步驟S75)。
密碼通信裝置B20的MAC生成部212用共享密鑰保存部208中保存著 的MAC用共享密鑰KH、和預(yù)先存儲(chǔ)著的帶密鑰散列函數(shù)Hash,來計(jì)算詢問 數(shù)據(jù)nA的MAC值HnA (=Hash (KH, nA)),將算出的MAC值HnA作為應(yīng)答數(shù)據(jù) rB(步驟S80)。
密碼通信裝置B20的詢問數(shù)據(jù)生成部209生成詢問數(shù)據(jù)nB(步驟S85)。 詢問數(shù)據(jù)生成部209將詢問數(shù)據(jù)nB,應(yīng)答數(shù)據(jù)生成部210將應(yīng)答數(shù)據(jù) rB,分別發(fā)送到密碼通信裝置A10 (步驟S90)。密碼通信裝置A10的應(yīng)答數(shù)據(jù)生成部110從密碼通信裝置B20接收詢 問數(shù)據(jù)nB和應(yīng)答數(shù)據(jù)rB(步驟S95)。
應(yīng)答數(shù)據(jù)生成部110將應(yīng)答數(shù)據(jù)i"B和驗(yàn)證指示輸出到應(yīng)答數(shù)據(jù)驗(yàn)證部 111。應(yīng)答數(shù)據(jù)驗(yàn)證部111從應(yīng)答數(shù)據(jù)生成部110接收到驗(yàn)證指示和應(yīng)答數(shù) 據(jù)rB后,取得詢問數(shù)據(jù)生成部109臨時(shí)存儲(chǔ)著的詢問數(shù)據(jù)nA。應(yīng)答數(shù)據(jù)驗(yàn) 證部111將MAC生成指示和取得的詢問數(shù)據(jù)nA輸出到MAC生成部112。 MAC 生成部112用共享密鑰保存部108中保存著的MAC用共享密鑰KH和帶密鑰 散列函數(shù)Hash,來計(jì)算詢問數(shù)據(jù)nA的MAC值HnA,將算出的MAC值HnA輸 出到應(yīng)答數(shù)據(jù)驗(yàn)證部111。應(yīng)答數(shù)據(jù)驗(yàn)證部111從MAC生成部112接收到 MAC值HnA后,判斷MAC值HnA和應(yīng)答數(shù)據(jù)rB是否一致(步驟S100)。
在判斷為不一致的情況下(步驟SIOO中的"NG"),中止與密碼通信有 關(guān)的處理。
在判斷為一致的情況下(步驟S100中的"OK"),應(yīng)答數(shù)據(jù)生成部110 將應(yīng)答數(shù)據(jù)生成指示輸出到應(yīng)答數(shù)據(jù)生成部110。應(yīng)答數(shù)據(jù)生成部110從應(yīng) 答數(shù)據(jù)驗(yàn)證部111接收到應(yīng)答數(shù)據(jù)生成指示后,將MAC生成指示和臨時(shí)存 儲(chǔ)著的詢問數(shù)據(jù)nB輸出到MAC生成部112。 MAC生成部112從應(yīng)答數(shù)據(jù)驗(yàn) 證部111接收到MAC生成指示和詢問數(shù)據(jù)nB后,用共享密鑰保存部208中 保存著的MAC用共享密鑰KH和帶密鑰散列函數(shù)Hash,來計(jì)算詢問數(shù)據(jù)nB 的MAC值HnB (=Hash (KH, nB)),將算出的MAC值HnB作為應(yīng)答數(shù)據(jù)rA(步 驟S105)。
應(yīng)答數(shù)據(jù)生成部110將應(yīng)答數(shù)據(jù)rA發(fā)送到密碼通信裝置B20(步驟 SllO)。
密碼通信裝置B20的應(yīng)答數(shù)據(jù)驗(yàn)證部211從密碼通信裝置A10接收應(yīng) 答數(shù)據(jù)rA(步驟S115)。
應(yīng)答數(shù)據(jù)驗(yàn)證部211取得詢問數(shù)據(jù)生成部209臨時(shí)存儲(chǔ)著的詢問數(shù)據(jù) nB。應(yīng)答數(shù)據(jù)驗(yàn)證部211將MAC生成指示和取得的詢問數(shù)據(jù)nB輸出到MAC 生成部212。 MAC生成部212從應(yīng)答數(shù)據(jù)驗(yàn)證部211接收到MAC生成指示和 詢問數(shù)據(jù)nB后,用共享密鑰保存部208中保存著的MAC用共享密鑰KH和 帶密鑰散列函數(shù)Hash,來計(jì)算詢問數(shù)據(jù)nB的MAC值HnB,將算出的MAC值 HnB輸出到應(yīng)答數(shù)據(jù)驗(yàn)證部211。應(yīng)答數(shù)據(jù)驗(yàn)證部211從MAC生成部212接收到MAC值HnB后,判斷MAC值HnB和應(yīng)答數(shù)據(jù)rA是否一致(步驟S120)。 在判斷為不一致的情況下(步驟S120中的"NG"),中止與密碼通信有 關(guān)的處理。
在判斷為一致的情況下(步驟S120中的"OK"),繼續(xù)進(jìn)行與密碼通信 有關(guān)的處理。
密碼通信裝置A10的DEM密文生成部115從外部經(jīng)輸入輸出部101接 收加密對象數(shù)據(jù)DA(步驟S125)。
密碼通信裝置A10的共用密鑰加密部113用共用密鑰保存部108中保 存著的共用密鑰密碼用共享密鑰KS和共用密鑰密碼算法對DEM密文生成部 115接收到的加密對象數(shù)據(jù)DA進(jìn)行加密,來生成加密對象數(shù)據(jù)DA的加密數(shù) 據(jù)EDA(=Enc(KS, DA))(步驟S130)。
密碼通信裝置A10的MAC生成部112用共用密鑰保存部108中保存著 的MAC用共享密鑰KH和帶密鑰散列函數(shù)Hash,來計(jì)算DEM密文生成部115 接收到的加密對象數(shù)據(jù)DA的MAC值HDA(二Hash(KH, DA))(步驟S135)。
DEM密文生成部115連結(jié)共用密鑰加密部113生成的加密數(shù)據(jù)EDA、和 MAC生成部112算出的MAC值HM,來生成DEM密文DEMA(=Enc(KS, DA) | i腿)(步驟S140)。
DEM密文生成部115將生成的DEM密文DEMA發(fā)送到密碼通信裝置 B20(步驟S145)。
密碼通信裝置B20的DEM密文解密部216從密碼通信裝置A10接收DEM 密文DEMA(步驟S150)。
DEM密文解密部216將接收到的DEM密文DEMA分離為加密數(shù)據(jù)EDA和 MAC值HDA(步驟S155)。
密碼通信裝置B20的共用密鑰解密部214用共享密鑰保存部208中存 儲(chǔ)著的共用密鑰密碼用共享密鑰KS和共用密鑰解密算法對DEM密文解密部 216取得的加密數(shù)據(jù)EDA進(jìn)行解密,來生成解密數(shù)據(jù)DA,(步驟S160)。
密碼通信裝置B20的MAC生成部212用共享密鑰保存部208中保存著 的MAC用共享密鑰KH和帶密鑰散列函數(shù)Hash,來計(jì)算共用密鑰解密部214 生成的解密數(shù)據(jù)DA,的MAC值HDA, (=Hash(KH, DA,))(步驟S165)。
DEM密文解密部216比較MAC生成部212算出的MAC值HDA, (=Hash(KH,DB,))、和從DEM密文DEMA分離出的HDA,判斷是否一致(步驟S170)。
在判斷為不一致的情況下(步驟S170中的"NG"),中止與密碼通信有 關(guān)的處理。
在判斷為一致的情況下(步驟S170中的"OK" ), DEM密文解密部216 將解密數(shù)據(jù)DA'、即加密對象數(shù)據(jù)DA經(jīng)輸入輸出部201輸出到外部(步驟 S175)。
密碼通信裝置B20的DEM密文生成部215從外部經(jīng)輸入輸出部201接 收加密對象數(shù)據(jù)DB(步驟S180)。
密碼通信裝置B20的共用密鑰加密部213用共享密鑰保存部208中保 存著的共用密鑰密碼用共享密鑰KS和共用密鑰密碼算法對DEM密文生成部 215接收到的加密對象數(shù)據(jù)DB進(jìn)行加密,來生成加密對象數(shù)據(jù)DB的加密數(shù) 據(jù)EDB (=Enc (KS, DA))(步驟S185)。
密碼通信裝置B20的MAC生成部212用共享密鑰保存部208中保存著 的MAC用共享密鑰KH和帶密鑰散列函數(shù)Hash,來計(jì)算DEM密文生成部215 接收到的加密對象數(shù)據(jù)DB的MAC值HDB(=Hash (KH, DB))(步驟S190)。
DEM密文生成部215連結(jié)共用密鑰加密部213生成的加密數(shù)據(jù)EDB、和 MAC生成部212算出的MAC值HDB,來生成DEM密文DEMB(=Enc (KS, DB) | I HDB)(步驟S195)。
DEM密文生成部215將生成的DEM密文DEMB發(fā)送到密碼通信裝置 A10(步驟S200)。
密碼通信裝置A10的DEM密文解密部116從密碼通信裝置B20接收DEM 密文DEMB(步驟S205)。
DEM密文解密部116將接收到的DEM密文DEMB(=EDB| lHDB)分離為加 密數(shù)據(jù)EDB和MAC值HDB (步驟S210)。
密碼通信裝置A10的共用密鑰解密部114用共享密鑰保存部108中保 存著的共用密鑰密碼用共享密鑰KS和共用密鑰解密算法對DEM密文解密部 116取得的加密數(shù)據(jù)EDB進(jìn)行解密,來生成解密數(shù)據(jù)DB'(步驟S215)。
密碼通信裝置A10的MAC生成部112用共享密鑰保存部108中保存著 的MAC用共享密鑰KH和帶密鑰散列函數(shù)Hash,來計(jì)算共用密鑰解密部114 生成的解密數(shù)據(jù)DB,的MAC值HDB, (二Hash(KH, DB,))(步驟S220)。DEM密文解密部116比較MAC生成部112算出的MAC值HDB'、和從DEM 密文DEMB分離出的HDB,判斷是否一致(步驟S225)。
在判斷為不一致的情況下(步驟S225中的"NG"),中止與密碼通信有 關(guān)的處理。
在判斷為一致的情況下(步驟S230中的"OK" ), DEM密文解密部116 將解密數(shù)據(jù)DB'、即加密對象數(shù)據(jù)DB經(jīng)輸入輸出部IOI輸出到外部(步驟 S230)。
這里,密鑰共享階段相當(dāng)于步驟S5至步驟S60的處理,詢問一應(yīng)答認(rèn) 證階段相當(dāng)于步驟S65至步驟S120的處理,數(shù)據(jù)密碼通信階段相當(dāng)于步驟 S125至步驟S230的處理。
1.5第l實(shí)施方式的效果
在第1實(shí)施方式中,通過在密鑰封裝機(jī)制(KEM)和發(fā)送DEM密文的處理 上追加用MAC用共享密鑰來執(zhí)行詢問一應(yīng)答認(rèn)證的處理,不僅能夠保證共 享密鑰泄露的困難性,也能夠保證對冒名攻擊的安全性。
以下,對此進(jìn)行詳細(xì)說明。
只要是發(fā)送用按密鑰封裝機(jī)制而共享的密鑰對數(shù)據(jù)進(jìn)行加密所得的加 密數(shù)據(jù)和該數(shù)據(jù)的帶密鑰散列函數(shù)值的方式,則作為數(shù)據(jù)加密方法,以困 難的數(shù)學(xué)問題為根據(jù)而保證了能夠證明與共享密鑰的泄露和密文數(shù)據(jù)的平 文數(shù)據(jù)的泄露有關(guān)的安全性。
這記載于著者Victor Shoup的"A proposal for an ISO standard for public key encryption (version 2.1)",所以這里省略其說明。
本方式同樣發(fā)送用按密鑰封裝機(jī)制而共享的密鑰對數(shù)據(jù)進(jìn)行加密所得 的加密數(shù)據(jù)和該數(shù)據(jù)的帶密鑰散列值,所以能夠保證同樣的安全性。
此外,在密碼通信裝置A10中,如果未保持正確的私鑰KSA,則不能對 KEM密文KEMB進(jìn)行解密來取得密鑰數(shù)據(jù)KB,所以不能得到與密碼通信裝置 B20共享的共用密鑰密碼用共享密鑰KS及MAC用共享密鑰KH。因此,不能 在步驟S215中對加密數(shù)據(jù)EDB進(jìn)行解密。此外,密碼通信裝置B20也同樣, 如果未保持正確的私鑰KSB,則不能對KEM密文KEMA進(jìn)行解密來取得密鑰 數(shù)據(jù)KA,所以不能得到與密碼通信裝置A10共享的共用密鑰密碼用共享密 鑰KS及MAC用共享密鑰KH。因此,不能在步驟S160中對加密數(shù)據(jù)EDA進(jìn)行解密。為了正確地取得密鑰數(shù)據(jù)KA或密鑰數(shù)據(jù)KB,需要正確的私鑰KSA 或KSB。
因此,通過從雙方的設(shè)備相互發(fā)送KEM密文KEMB、 KEMA,能夠?qū)崿F(xiàn)雙 向的認(rèn)證。
再者,在第l實(shí)施方式中,用MAC用共享密鑰KH來執(zhí)行詢問一應(yīng)答認(rèn) 證。為了判定為是正確的密碼通信裝置,需要發(fā)送正確的應(yīng)答數(shù)據(jù)。在第l 實(shí)施方式中,為了生成應(yīng)答數(shù)據(jù),使用DEM密文生成部所使用的MAC生成 部。DEM密文生成部所使用的MAC生成部只要不知道MAC用共享密鑰KH, 則能夠生成正確的應(yīng)答數(shù)據(jù)的概率非常低。
因此,在能夠生成正確的應(yīng)答數(shù)據(jù)的情況下,即,在通過認(rèn)證而能夠 進(jìn)行冒名攻擊的情況下,則攻擊者知道了MAC用共享密鑰KH。但是,不限 于MAC用共享密鑰KH,能夠證明用KEM生成的各共享密鑰的泄露很困難(對 共享密鑰的泄露是安全的),所以能夠證明冒名攻擊很困難。
根據(jù)以上,能夠?qū)崿F(xiàn)不僅能夠保證密鑰泄露和平文泄露的安全性、而 且能夠保證對冒名攻擊的安全性的認(rèn)證密鑰共享,其價(jià)值很大。
1.6密碼通信系統(tǒng)l的變形例
在上述實(shí)施方式中,密碼通信系統(tǒng)1由2臺(tái)密碼通信裝置構(gòu)成,但是 不限于此。
本發(fā)明的密碼通信系統(tǒng)也可以由在1臺(tái)計(jì)算機(jī)裝置內(nèi)具有防篡改性的 區(qū)域A和另一區(qū)域B值收發(fā)(輸入輸出)數(shù)據(jù)時(shí)進(jìn)行密碼通信的2個(gè)程序組 成。這2個(gè)程序由計(jì)算機(jī)裝置執(zhí)行,在執(zhí)行的2個(gè)程序間,進(jìn)行本發(fā)明的 密碼通信。
這里,假設(shè)進(jìn)行密碼通信的2個(gè)程序?yàn)槌绦駻及B,程序A存在于區(qū)域 A中,程序B存在于區(qū)域B中。
程序A及程序B分別包含輸入輸出步驟、收發(fā)部步驟、KEM密文生成步 驟、KEM密文解密步驟、共享密鑰生成步驟、詢問數(shù)據(jù)生成步驟、應(yīng)答數(shù)據(jù) 生成步驟、應(yīng)答數(shù)據(jù)驗(yàn)證步驟、MAC生成步驟、共用密鑰加密步驟、共享密 鑰解密步驟、DEM密文生成步驟、及DEM密文解密步驟。此外,區(qū)域A及B與上述所示的密碼通信裝置同樣,具有保存著通信
對方的公鑰的公鑰保存部、保存著自身的私鑰的私鑰保存部、及具有保存
共用密鑰密碼用共享密鑰KS和MAC用共享密鑰KH的區(qū)域的共享密鑰保存 部。這里,假設(shè)區(qū)域A中的各保存部的內(nèi)容的結(jié)構(gòu)是區(qū)域A具有防篡改 性,所以不會(huì)泄露到外部,而區(qū)域B中的各保存部的內(nèi)容也不會(huì)泄露到外 部(例如,防篡改性)。
各步驟通過進(jìn)行與上述實(shí)施方式中所示的各構(gòu)件同樣的工作,與上述 同樣,實(shí)現(xiàn)了密鑰共享階段、詢問一應(yīng)答認(rèn)證階段及數(shù)據(jù)密碼通信階段, 所以省略對各步驟的動(dòng)作的說明。
這里,將本發(fā)明適用于2個(gè)程序間的密碼通信,但是不限于此。
本發(fā)明也可以適用于密碼通信裝置和程序之間的密碼通信。具體地說, 也可以適用于密碼通信裝置為DVD裝置、程序被記錄在DVD上的情況下的 密碼通信。程序由DVD裝置內(nèi)的執(zhí)行單元執(zhí)行,在DVD裝置具備的構(gòu)件(例 如與密碼通信裝置A10同樣的構(gòu)件)和執(zhí)行的程序間進(jìn)行本發(fā)明的密碼通信。
1.7其他變形例
上述說明過的實(shí)施方式是本發(fā)明的實(shí)施的一例,本發(fā)明絲毫不限于該 實(shí)施方式,在不脫離其主旨的范圍內(nèi)可以各種形態(tài)來實(shí)施。例如,如下情 況也被包含在本發(fā)明中。
(1) 在上述實(shí)施方式中,從密碼通信裝置A10及密碼通信裝置B20分 別收發(fā)數(shù)據(jù),但是不限于此。
也可以使只有一個(gè)密碼通信裝置(例如密碼通信裝置A10)發(fā)送數(shù)據(jù),只 有另一個(gè)密碼通信裝置(例如密碼通信裝置B20)接收數(shù)據(jù)。
(2) 在上述實(shí)施方式中,在密鑰共享階段和詢問一應(yīng)答認(rèn)證階段之間、 詢問一應(yīng)答認(rèn)證階段和數(shù)據(jù)密碼通信階段之間,也可以在途中包含其他某 些處理,例如確認(rèn)設(shè)備的功能(音樂視聽功能、電影視聽功能或廣播接收功 能等)的處理。此外,各階段的內(nèi)部的處理步驟的順序不限于上述所示的。
(3) 在上述實(shí)施方式中,在詢問一應(yīng)答認(rèn)證階段,各密碼通信裝置將 隨機(jī)生成的詢問數(shù)據(jù)發(fā)送到通信對方的裝置,但是不限于此。
也可以使各密碼通信裝置將根據(jù)來自通信對方的KEM密文而求出的密鑰數(shù)據(jù)(如果是密碼通信裝置A10則是密鑰數(shù)據(jù)KB,如果是密碼通信裝置 B20則是密鑰數(shù)據(jù)KA)作為詢問數(shù)據(jù)。
通過這樣做,能夠削減發(fā)送詢問數(shù)據(jù)的處理。此時(shí),對方能通過確認(rèn) 自身生成的密鑰數(shù)據(jù)和作為詢問數(shù)據(jù)發(fā)送的密鑰數(shù)據(jù)是否一致來進(jìn)行與詢 問一應(yīng)答認(rèn)證階段同樣的認(rèn)證。
例如,密碼通信裝置A10從密碼通信裝置B20接收到詢問數(shù)據(jù) rB(=Hash(KH, KA)后,計(jì)算自身生成的KA的MAC值,通過判斷算出的MAC 值和詢問數(shù)據(jù)rB是否一致,來認(rèn)證通信對方。
此外,密碼通信裝置B20從密碼通信裝置A10接收到詢問數(shù)據(jù) rA(=Hash(KH, KB)后,計(jì)算自身生成的KB的MAC值,通過判斷算出的MAC 值和詢問數(shù)據(jù)rA是否一致,來認(rèn)證通信對方。
(4) 在上述實(shí)施方式中,各密碼通信裝置的共享密鑰生成部生成共享 密鑰K,將生成的共享密鑰K的一部分作為共用密鑰密碼用共享密鑰KS, 將其他部分作為MAC用共享密鑰KH,但是不限于此。
也可以使各密碼通信裝置的共享密鑰生成部將生成的共享密鑰K本身 作為共用密鑰密碼用共享密鑰KS及MAC用共享密鑰KH。即,K=KS=KH。
(5) 在上述實(shí)施方式中,各密碼通信裝置的共享密鑰生成部在生成共 享密鑰K時(shí)用密鑰KA和密鑰KB的邏輯"異或"來生成,但是不限于此。
共享密鑰生成部也可以使用MAC生成部所使用的散列函數(shù)Hash,來生 成共享密鑰K。
例如,各密碼通信裝置的共享密鑰生成部可以將Hash(KA, KB)作為共 享密鑰K,也可以將Hash(KB, KA)作為共享密鑰K。
此外,在散列函數(shù)Hash為上述實(shí)施方式中所示的SHA1的情況下,各 密碼通信裝置的共享密鑰生成部可以將SHAl(KAl lKB)作為共享密鑰K,也 可以將SHAl(KBl lKA)作為共享密鑰K。
由此,生成共享密鑰的安全性提高。
(6) 在上述實(shí)施方式中,各密碼通信裝置將通信對方的公鑰預(yù)先保存 在公鑰保存部中,但是不限于此。
也可以使密碼通信裝置將證書中心發(fā)行的公鑰證書(包含證書中心對 公鑰的簽名和公鑰本身)發(fā)送到通信對方。例如,密碼通信裝置A10從作為通信對方的密碼通信裝置B20接收對公鑰KPB的公鑰證書,密碼通信裝置 B20從作為通信對方的密碼通信裝置A10接收對公鑰KPA的公鑰證書。
在此情況下,作為通信對方的密碼通信裝置具有證書中心的公鑰,在 密鑰共享階段之前,用證書中心的公鑰來驗(yàn)證相互的公鑰證書,在判定為 正確的證書時(shí)將公鑰證書中包含的公鑰保存到公鑰保存部中。
此外,也可以是各密碼通信裝置從證書中心接收公鑰證書。
(7)在上述實(shí)施方式中,在進(jìn)行詢問一應(yīng)答認(rèn)證時(shí),采用了計(jì)算帶密 鑰散列值的方法,但是不限于此。
例如,也可以是交換用MAC用共享密鑰KH對詢問數(shù)據(jù)進(jìn)行加密而生成
的應(yīng)答數(shù)據(jù)。
此情況下的驗(yàn)證可以比較對應(yīng)答數(shù)據(jù)的加密進(jìn)行解密的結(jié)果和發(fā)送方 保持著的詢問數(shù)據(jù),也可以比較用同樣的方法對發(fā)送方保持著的詢問數(shù)據(jù) 進(jìn)行加密所得的結(jié)果和應(yīng)答數(shù)據(jù)。
此外,認(rèn)證方法也并不限于詢問一應(yīng)答??梢允怯肒EM共享的密鑰數(shù) 據(jù)影響認(rèn)證結(jié)果的任何認(rèn)證方法。
此外,在詢問一應(yīng)答認(rèn)證中,也不限于上述實(shí)施方式中所示的認(rèn)證方 法。也可以是用與上述所示的方法不同的方法進(jìn)行的詢問_應(yīng)答認(rèn)證。
以下,說明其一例。這里,以圖5所示的步驟S65至S100的變更點(diǎn)為 中心來說明密碼通信裝置A10認(rèn)證密碼通信裝置B20的情況。
密碼通信裝置A10執(zhí)行步驟S65后,用密碼通信裝置A10具有的MAC 用共享密鑰KH對生成的詢問數(shù)據(jù)nA進(jìn)行加密來生成加密數(shù)據(jù)Enc(KH, nA)。
密碼通信裝置A10在步驟S70中將生成的加密數(shù)據(jù)Enc (KH, nA)發(fā)送到 密碼通信裝置B20。
密碼通信裝置B20在步驟S75中接收加密數(shù)據(jù)Enc (KH, nA)。
密碼通信裝置B20在步驟S80中用自身具有的MAC用共享密鑰KH對接 收到的加密數(shù)據(jù)Enc(KH, nA)進(jìn)行解密,生成解密數(shù)據(jù)nA',將生成的加 密數(shù)據(jù)nA'作為應(yīng)答數(shù)據(jù)rB(^A')。
密碼通信裝置B20執(zhí)行步驟S85、 S90。
密碼通信裝置A10執(zhí)行步驟S95后,比較接收到的應(yīng)答數(shù)據(jù)和自身存 儲(chǔ)著的詢問數(shù)據(jù)nA來判斷密碼通信裝置B20的合法性。在步驟S85中,密碼通信裝置B20也可以用密碼通信裝置B20具有的 MAC用共享密鑰KH對生成的詢問數(shù)據(jù)nB進(jìn)行加密來生成加密數(shù)據(jù)Enc (KH, nB)。此時(shí),密碼通信裝置A10在步驟S105中,用自身具有的MAC用共享 密鑰KH對接收到的加密數(shù)據(jù)Enc(KH, nB)進(jìn)行解密,生成解密數(shù)據(jù)nB', 將生成的加密數(shù)據(jù)nB'作為應(yīng)答數(shù)據(jù)rA(^B')。
(8) 在上述實(shí)施方式中,雙向進(jìn)行詢問一應(yīng)答認(rèn)證,但是不限于此。 也可以是單向的詢問一應(yīng)答認(rèn)證。在此情況下,也能夠證明對被認(rèn)證
者的冒名攻擊的安全性。
在此情況下,無需創(chuàng)建MAC用共享密鑰KH,也可以直接用密鑰數(shù)據(jù)KA 或密鑰數(shù)據(jù)KB來進(jìn)行認(rèn)證。即,由于是單向的認(rèn)證,所以如果KEM密文的 接收方具有正確的私鑰,則能夠取得密鑰數(shù)據(jù)KA或密鑰數(shù)據(jù)KB,所以用取 得的密鑰數(shù)據(jù)進(jìn)行認(rèn)證即可。
在此情況下,例如在共享密鑰數(shù)據(jù)KA的情況下,通過從密碼通信裝置 B20向密碼通信裝置A10進(jìn)行單向認(rèn)證,也能夠進(jìn)行簡單的相互認(rèn)證。艮口, 由于能夠共享密鑰數(shù)據(jù),因此可以確認(rèn)密碼通信裝置B20具有合法的私鑰 KSB,所以能夠確認(rèn)密碼通信裝置B20是合法的。其后,通過詢問一應(yīng)答認(rèn) 證,能確認(rèn)密碼通信裝置A10是否是共享密鑰數(shù)據(jù)KA的裝置,所以能夠確 認(rèn)密碼通信裝置AIO的合法性。
此外,當(dāng)然可以在生成了MAC用共享密鑰KH后,用它來進(jìn)行單向的認(rèn) 證,在上述情況下也可以進(jìn)行從密碼通信裝置A10向密碼通信裝置B20的 單向認(rèn)證。
(9) 在上述實(shí)施方式中,密碼通信裝置B20也可以是帶IC功能的存儲(chǔ)卡。
帶IC功能的存儲(chǔ)卡的結(jié)構(gòu)可以由與密碼通信裝置B20同樣的構(gòu)件來實(shí)
現(xiàn),所以這里省略其說明。
在本發(fā)明中,假設(shè)帶IC功能的存儲(chǔ)卡包含在密碼通信裝置的概念中。 即,本發(fā)明可以適用于2個(gè)帶IC功能的存儲(chǔ)卡間的密碼通信,也可以適用 于在上述所示的密碼通信裝置A10和帶IC功能的存儲(chǔ)卡間的密碼通信。
(10) 在上述實(shí)施方式中,共享密鑰生成部107及207對共享密鑰數(shù)據(jù) K取得共用密鑰密碼用共享密鑰KS和MAC用共享密鑰KH,使得滿足K=KS ||KH,但是不限于此。
共享密鑰生成部107及207也可以對共享密鑰數(shù)據(jù)K取得共用密鑰密 碼用共享密鑰KS和MAC用共享密鑰KH,使得滿足K4Hi !KS。
例如,也可以將對共享密鑰數(shù)據(jù)施以不同的變換而得到的2個(gè)值分別 作為共用密鑰密碼用共享密鑰KS和MAC用共享密鑰KH。
艮口,共用密鑰密碼用共享密鑰KS和MAC用共享密鑰KH分別是依賴于 共享密鑰數(shù)據(jù)而決定的值即可。
(11) 在上述實(shí)施方式中,密碼通信裝置B20將應(yīng)答數(shù)據(jù)rB和詢問數(shù) 據(jù)nB—起發(fā)送到密碼通信裝置A10,但是不限于此。
也可以將應(yīng)答數(shù)據(jù)rB和詢問數(shù)據(jù)nB以不同的定時(shí)發(fā)送到密碼通信裝 置AIO。在此情況下,密碼通信裝置A10也可以以不同的定時(shí)來接收應(yīng)答數(shù) 據(jù)rB和詢問數(shù)據(jù)nB。
(12) 上述各裝置具體地說是由微處理器、ROM、 RAM、硬盤驅(qū)動(dòng)器、顯 示單元、鍵盤、鼠標(biāo)等構(gòu)成的計(jì)算機(jī)系統(tǒng)。在上述RAM或硬盤驅(qū)動(dòng)器中, 存儲(chǔ)著計(jì)算機(jī)程序。各裝置通過使上述微處理器根據(jù)上述計(jì)算機(jī)程序工作, 來實(shí)現(xiàn)其功能。這里,計(jì)算機(jī)程序?yàn)榱藢?shí)現(xiàn)規(guī)定的功能,是組合多個(gè)表示
對計(jì)算機(jī)的指令的指令碼而構(gòu)成的。
(13) 也可以使構(gòu)成上述各裝置的構(gòu)件的一部分或全部由1個(gè)系統(tǒng)LSI (Large Scale Integration:大規(guī)模集成電路)構(gòu)成。系統(tǒng)LSI是將多個(gè)構(gòu) 成部分集成在1個(gè)芯片上而制造出的超多功能LSI,具體地說,是包含微處 理器、R0M、 RAM等而構(gòu)成的計(jì)算機(jī)系統(tǒng)。在上述RAM中,存儲(chǔ)著計(jì)算機(jī)程 序。系統(tǒng)LSI通過使上述微處理器根據(jù)上述計(jì)算機(jī)程序工作,來實(shí)現(xiàn)其功 能。
此外,構(gòu)成上述各裝置的構(gòu)件的各部可以分別單片化,也可以包含一 部分或全部來單片化。
此外,這里,稱為系統(tǒng)LSI,但是根據(jù)集成度的不同,有時(shí)也稱為IC、 LSI、 S (超)LSI、 U (甚)LSI。此外,集成電路化的手法并不限于LSI, 也可以用專用電路或通用處理器來實(shí)現(xiàn)。也可以利用在制造LSI后可編程 的FPGA (Field Programmable Gate Array,現(xiàn)場可編程門陣列)或可重構(gòu) LSI內(nèi)部的電路單元的鏈接或設(shè)置的可重構(gòu)處理器。再者,如果由于半導(dǎo)體技術(shù)的進(jìn)步或派生的別的技術(shù)而出現(xiàn)了替代LSI
的集成電路化的技術(shù),則當(dāng)然也可以用該技術(shù)來進(jìn)行功能塊的集成化。適 用生物技術(shù)等也有可能性。
(14) 構(gòu)成上述各裝置的構(gòu)件的一部分或全部也可以由可插入各裝置并 可拔出的IC卡或單體的模塊構(gòu)成。上述IC卡或上述模塊是由微處理器、 ROM、 RAM等構(gòu)成的計(jì)算機(jī)系統(tǒng)。也可以使上述IC卡或上述模塊包含上述超 多功能LSI。上述IC卡或上述模塊通過使微處理器根據(jù)計(jì)算機(jī)程序工作, 來實(shí)現(xiàn)其功能。也可以使該IC卡或該模塊具有防篡改性。
(15) 本發(fā)明也可以是上述所示的方法。此外,可以是用計(jì)算機(jī)來實(shí)現(xiàn) 這些方法的計(jì)算機(jī)程序,也可以是由上述計(jì)算機(jī)程序組成的數(shù)字信號(hào)。
(16) 此外,本發(fā)明也可以是記錄著上述計(jì)算機(jī)程序或上述數(shù)字信號(hào)的 計(jì)算機(jī)可讀的記錄介質(zhì),例如軟盤、硬盤、CD-R0M、 M0、 DVD、 DVD-R0M、 DVD-RAM、 BD (Blu-ray Disc,藍(lán)光光盤)、半導(dǎo)體存儲(chǔ)器等。此外,也可 以是這些記錄介質(zhì)上記錄著的上述數(shù)字信號(hào)。
(17) 此外,本發(fā)明也可以是經(jīng)由電信線路、無線或有線通信線路、以 因特網(wǎng)為代表的網(wǎng)絡(luò)、數(shù)據(jù)廣播等而傳輸?shù)纳鲜鲇?jì)算機(jī)程序或上述數(shù)字信 號(hào)。
(18) 此外,本發(fā)明也可以是包括微處理器和存儲(chǔ)器的計(jì)算機(jī)系統(tǒng),上 述存儲(chǔ)器存儲(chǔ)著上述計(jì)算機(jī)程序,上述微處理器根據(jù)上述計(jì)算機(jī)程序來工 作。
(19) 此外,也可以通過將上述程序或上述數(shù)字信號(hào)記錄到上述記錄介 質(zhì)上來移送,或者通過將上述程序或上述數(shù)字信號(hào)經(jīng)由上述網(wǎng)絡(luò)等來移送, 而用獨(dú)立的其他計(jì)算機(jī)系統(tǒng)來實(shí)施。
(20) 也可以分別組合上述實(shí)施方式及上述變形例。 1.8總結(jié)
(1)本發(fā)明是一種密碼通信系統(tǒng),包括第1密碼通信裝置和第2密碼 通信裝置,在上述第1密碼通信裝置和上述第2密碼通信裝置之間分發(fā)密 鑰,用共享的密鑰從上述第1密碼通信裝置向上述第2密碼通信裝置發(fā)送 內(nèi)容數(shù)據(jù),其特征在于,上述第1密碼通信裝置包括輸入部,接受上述 內(nèi)容數(shù)據(jù)的輸入;第1收發(fā)部,向上述第2密碼通信裝置發(fā)送數(shù)據(jù),從上述第2密碼通信裝置接收數(shù)據(jù);第l密鑰密文生成部,生成第l密鑰和對
第1密鑰進(jìn)行加密所得的第1密鑰密文;第1密鑰密文解密部,對第2密 鑰密文進(jìn)行解密來生成第1解密密鑰;第1共享密鑰生成部,根據(jù)上述第1 密鑰和上述第1解密密鑰來生成第1共享密鑰;第1共享密鑰保存部,保 存上述第1共享密鑰;第1詢問數(shù)據(jù)生成部,生成第1詢問數(shù)據(jù);第1應(yīng) 答數(shù)據(jù)生成部,生成對第2詢問數(shù)據(jù)的第1應(yīng)答數(shù)據(jù);第1應(yīng)答數(shù)據(jù)驗(yàn)證 部,驗(yàn)證第2應(yīng)答數(shù)據(jù);以及數(shù)據(jù)密文生成部,對上述內(nèi)容數(shù)據(jù)進(jìn)行加密 來生成加密內(nèi)容數(shù)據(jù);上述第2密碼通信裝置包括輸出部,輸出解密內(nèi) 容數(shù)據(jù);第2收發(fā)部,向上述第1密碼通信裝置發(fā)送數(shù)據(jù),從上述第1密 碼通信裝置接收數(shù)據(jù);第2密鑰密文生成部,生成第2密鑰和對第2密鑰 進(jìn)行加密所得的第2密鑰密文;第2密鑰密文解密部,對上述第1密鑰密 文進(jìn)行解密來生成第2解密密鑰;第2共享密鑰生成部,根據(jù)上述第2密 鑰和上述第2解密密鑰來生成第2共享密鑰;第2共享密鑰保存部,保存
上述第2共享密鑰;第2詢問數(shù)據(jù)生成部,生成上述第2詢問數(shù)據(jù);第2 應(yīng)答數(shù)據(jù)生成部,生成對上述第1詢問數(shù)據(jù)的上述第2應(yīng)答數(shù)據(jù);第2應(yīng)
答數(shù)據(jù)驗(yàn)證部,驗(yàn)證上述第1應(yīng)答數(shù)據(jù);以及數(shù)據(jù)密文解密部,對上述加 密內(nèi)容數(shù)據(jù)進(jìn)行解密來生成上述解密內(nèi)容數(shù)據(jù);上述第1應(yīng)答數(shù)據(jù)生成部 使用應(yīng)答數(shù)據(jù)用帶密鑰散列函數(shù)來生成將上述第1共享密鑰的全部或一部 分作為密鑰的帶密鑰散列值而作為上述第1應(yīng)答數(shù)據(jù);上述第1應(yīng)答數(shù)據(jù) 驗(yàn)證部使用上述應(yīng)答數(shù)據(jù)用帶密鑰散列函數(shù)來生成將上述第1共享密鑰的 全部或一部分作為密鑰的帶密鑰散列值并用來驗(yàn)證上述第2應(yīng)答數(shù)據(jù);上 述數(shù)據(jù)密文生成部使用將上述第1共享密鑰的全部或一部分作為密鑰的帶 密鑰散列值、數(shù)據(jù)密文用帶密鑰散列函數(shù)來生成上述加密內(nèi)容數(shù)據(jù);上述 第2應(yīng)答數(shù)據(jù)生成部使用應(yīng)答數(shù)據(jù)用帶密鑰散列函數(shù)來生成將上述第2共 享密鑰的全部或一部分作為密鑰的帶密鑰散列值而作為上述第2應(yīng)答數(shù)據(jù); 上述第2應(yīng)答數(shù)據(jù)驗(yàn)證部使用上述應(yīng)答數(shù)據(jù)用帶密鑰散列函數(shù)來生成將上 述第2共享密鑰的全部或一部分作為密鑰的帶密鑰散列值并用來驗(yàn)證上述 第1應(yīng)答數(shù)據(jù);上述數(shù)據(jù)密文解密部使用上述數(shù)據(jù)密文用帶密鑰散列函數(shù) 來生成將上述第2共享密鑰的全部或一部分作為密鑰的帶密鑰散列值。
(2)在上述(l)中,上述應(yīng)答數(shù)據(jù)用帶密鑰散列函數(shù)和上述數(shù)據(jù)密文用帶密鑰散列函數(shù)也可以相同。
(3) 在上述(l)中,上述第1密鑰密文及上述第2密鑰密文也可以用密
鑰封裝機(jī)制來生成。
(4) 在上述(1)至(3)的任一項(xiàng)中,也可以使上述第1共享密鑰生成部 將上述第1密鑰和上述第1解密密鑰的邏輯"異或"作為上述第1共享密 鑰來輸出,上述第2共享密鑰生成部將上述第2密鑰和上述第2解密密鑰 的邏輯"異或"作為上述第2共享密鑰來輸出。
(5) 在上述(1)至(3)的任一項(xiàng)中,也可以使上述第1共享密鑰生成部將 用生成共享密鑰的散列函數(shù)一一共享密鑰生成散列函數(shù)對上述第1密鑰和 上述第1解密密鑰的位連結(jié)計(jì)算出的散列值作為上述第1共享密鑰來輸出, 上述第2共享密鑰生成部將用上述共享密鑰生成散列函數(shù)對上述第2密鑰 和上述第2解密密鑰的位連結(jié)計(jì)算出的散列值作為上述第2共享密鑰來輸 出。
(6) 在上述(5)中,也可以使上述應(yīng)答數(shù)據(jù)用帶密鑰散列函數(shù)和上述數(shù) 據(jù)密文用帶密鑰散列函數(shù)基于上述共享密鑰生成散列函數(shù)。
(7) 在上述(1)至(6)的任一項(xiàng)中,也可以使上述第1密碼通信裝置不 包括第1詢問數(shù)據(jù)生成部,將上述第1詢問數(shù)據(jù)作為上述第1密鑰;上述 第2密碼通信裝置不包括第2詢問數(shù)據(jù)生成部,將上述第2詢問數(shù)據(jù)作為 上述第2密鑰。
(8) 此外,本發(fā)明是一種密碼通信系統(tǒng)中的內(nèi)容發(fā)送裝置,該密碼通 信系統(tǒng)包括內(nèi)容發(fā)送裝置和內(nèi)容接收裝置,在上述內(nèi)容發(fā)送裝置和上述內(nèi) 容接收裝置之間分發(fā)密鑰,用共享的密鑰來進(jìn)行加密通信,其特征在于, 該內(nèi)容發(fā)送裝置包括輸入部,接受上述內(nèi)容數(shù)據(jù)的輸入;收發(fā)部,向上 述內(nèi)容接收裝置發(fā)送數(shù)據(jù),從上述內(nèi)容接收裝置接收數(shù)據(jù);第1密鑰密文 生成部,生成第1密鑰和對第1密鑰進(jìn)行加密所得的第1密鑰密文;第1 密鑰密文解密部,對從上述內(nèi)容接收裝置發(fā)送的第2密鑰密文進(jìn)行解密來 生成第1解密密鑰;共享密鑰生成部,根據(jù)上述第1密鑰和上述第1解密 密鑰來生成第1共享密鑰;共享密鑰保存部,保存上述第1共享密鑰;詢 問數(shù)據(jù)生成部,生成第1詢問數(shù)據(jù);應(yīng)答數(shù)據(jù)生成部,生成對從上述內(nèi)容 接收裝置發(fā)送的第2詢問數(shù)據(jù)的第1應(yīng)答數(shù)據(jù);應(yīng)答數(shù)據(jù)驗(yàn)證部,驗(yàn)證從上述內(nèi)容接收裝置發(fā)送的第2應(yīng)答數(shù)據(jù);以及數(shù)據(jù)密文生成部,對上述內(nèi)
容數(shù)據(jù)進(jìn)行加密來生成加密內(nèi)容數(shù)據(jù);上述應(yīng)答數(shù)據(jù)生成部使用應(yīng)答數(shù)據(jù)
用帶密鑰散列函數(shù)來生成將上述第1共享密鑰的全部或一部分作為密鑰的
帶密鑰散列值而作為上述第1應(yīng)答數(shù)據(jù);上述應(yīng)答數(shù)據(jù)驗(yàn)證部使用上述應(yīng) 答數(shù)據(jù)用帶密鑰散列函數(shù)來生成將上述第1共享密鑰的全部或一部分作為
密鑰的帶密鑰散列值并用來驗(yàn)證上述第2應(yīng)答數(shù)據(jù);上述數(shù)據(jù)密文生成部
使用數(shù)據(jù)密文用帶密鑰散列函數(shù)來生成將上述第1共享密鑰的全部或一部 分作為密鑰的帶密鑰散列值。
(9) 在上述(8)中,上述第1密鑰密文及上述第2密鑰密文也可以用密
鑰封裝機(jī)制來生成。
(10) 在上述(9)中,上述應(yīng)答數(shù)據(jù)用帶密鑰散列函數(shù)和上述數(shù)據(jù)密文 用帶密鑰散列函數(shù)也可以基于上述共享密鑰生成散列函數(shù)。
(11) 此外,本發(fā)明是一種密碼通信系統(tǒng)中的內(nèi)容接收裝置,該密碼通 信系統(tǒng)包括內(nèi)容發(fā)送裝置和內(nèi)容接收裝置,在上述內(nèi)容發(fā)送裝置和上述內(nèi) 容接收裝置之間分發(fā)密鑰,用共享的密鑰來進(jìn)行加密通信,其特征在于, 上述內(nèi)容接收裝置包括輸出部,輸出解密內(nèi)容數(shù)據(jù);收發(fā)部,向上述內(nèi) 容發(fā)送裝置發(fā)送數(shù)據(jù),從上述內(nèi)容發(fā)送裝置接收數(shù)據(jù);第2密鑰密文生成 部,生成第2密鑰和對第2密鑰進(jìn)行加密所得的第2密鑰密文;第2密鑰 密文解密部,對從上述內(nèi)容發(fā)送裝置發(fā)送的第1密鑰密文進(jìn)行解密來生成 第2解密密鑰;共享密鑰生成部,根據(jù)上述第2密鑰和上述第2解密密鑰
來生成第2共享密鑰;共享密鑰保存部,保存上述第2共享密鑰;詢問數(shù) 據(jù)生成部,生成第2詢問數(shù)據(jù);應(yīng)答數(shù)據(jù)生成部,生成對從上述內(nèi)容發(fā)送 裝置發(fā)送的第1詢問數(shù)據(jù)的上述第2應(yīng)答數(shù)據(jù);應(yīng)答數(shù)據(jù)驗(yàn)證部,驗(yàn)證從 上述內(nèi)容發(fā)送裝置發(fā)送的上述第1應(yīng)答數(shù)據(jù);以及數(shù)據(jù)密文解密部,對從
上述內(nèi)容發(fā)送裝置發(fā)送的加密內(nèi)容數(shù)據(jù)進(jìn)行解密來生成上述解密內(nèi)容數(shù)
據(jù);上述應(yīng)答數(shù)據(jù)生成部使用應(yīng)答數(shù)據(jù)用帶密鑰散列函數(shù)來生成將上述第2 共享密鑰的全部或一部分作為密鑰的帶密鑰散列值而作為上述第2應(yīng)答數(shù) 據(jù);上述應(yīng)答數(shù)據(jù)驗(yàn)證部使用上述應(yīng)答數(shù)據(jù)用帶密鑰散列函數(shù)來生成將上 述第2共享密鑰的全部或一部分作為密鑰的帶密鑰散列值并用來驗(yàn)證上述 第1應(yīng)答數(shù)據(jù);上述數(shù)據(jù)密文解密部使用數(shù)據(jù)密文用帶密鑰散列函數(shù)來生成將上述第2共享密鑰的全部或一部分作為密鑰的帶密鑰散列值。
(12) 在上述(ll)中,上述第1密鑰密文及上述第2密鑰密文也可以用 密鑰封裝機(jī)制來生成。
(13) 在上述(ll)、 (12)的任一項(xiàng)中,上述應(yīng)答數(shù)據(jù)用帶密鑰散列函數(shù) 和上述數(shù)據(jù)密文用帶密鑰散列函數(shù)也可以基于上述共享密鑰生成散列函
數(shù)o
(14) 根據(jù)這些結(jié)構(gòu),通過在使用密鑰封裝機(jī)制進(jìn)行了密鑰共享之后, 追加使用共享的密鑰的詢問一應(yīng)答認(rèn)證,能夠保證冒名攻擊的安全性,所 以其價(jià)值很大。
產(chǎn)業(yè)上的可利用性
構(gòu)成本發(fā)明的各裝置、各方法及計(jì)算機(jī)程序可以在需要安全而且可靠 地處理信息的所有產(chǎn)業(yè)中經(jīng)營性地、持續(xù)性地及反復(fù)性地使用。
此外,構(gòu)成本發(fā)明的各裝置、各方法及各計(jì)算機(jī)程序可以在電器設(shè)備 制造產(chǎn)業(yè)中經(jīng)營性地、持續(xù)性地及反復(fù)性地制造、銷售。
權(quán)利要求
1. 一種通信裝置,用與通信對方的外部裝置共享的密鑰來進(jìn)行通信對象數(shù)據(jù)的秘密通信,其特征在于,包括密鑰生成單元,不讓第三者知道地在與上述外部裝置之間用證明了安全性的密碼體制來生成要共享的共享密鑰;判斷單元,通過用在與上述外部裝置之間共享、且依賴于上述共享密鑰的密鑰依賴函數(shù)進(jìn)行認(rèn)證,來判斷上述外部裝置是否合法;以及數(shù)據(jù)生成單元,在上述判斷單元判斷出上述外部裝置合法的情況下,在通信對象數(shù)據(jù)的秘密通信時(shí),為了驗(yàn)證上述通信對象數(shù)據(jù)的合法性,而使用上述通信對象數(shù)據(jù),用與依賴于上述共享密鑰的上述密鑰依賴函數(shù)相同的函數(shù)來生成驗(yàn)證用數(shù)據(jù)。
2. 如權(quán)利要求l所述的通信裝置,其特征在于,上述密鑰生成單元生成上述第1密鑰數(shù)據(jù),通過將上述第1密鑰數(shù)據(jù) 秘密地發(fā)送到上述外部裝置,及秘密地接收上述外部裝置生成的第2密鑰 數(shù)據(jù),而在與上述外部裝置之間共享上述第1密鑰數(shù)據(jù)及上述第2密鑰數(shù) 據(jù),用共享的上述第1密鑰數(shù)據(jù)和上述第2密鑰數(shù)據(jù)來生成上述共享密鑰。
3. 如權(quán)利要求2所述的通信裝置,其特征在于, 上述認(rèn)證是詢問應(yīng)答認(rèn)證;上述判斷單元從上述外部裝置接收對詢問數(shù)據(jù)和上述共享密鑰施以上 述函數(shù)而生成的應(yīng)答數(shù)據(jù),進(jìn)行上述詢問應(yīng)答認(rèn)證,其中,將上述第1密 鑰數(shù)據(jù)作為上述詢問數(shù)據(jù)。
4. 如權(quán)利要求2所述的通信裝置,其特征在于,上述密鑰生成單元通過上述第1密鑰數(shù)據(jù)和上述第2密鑰數(shù)據(jù)之間的 邏輯"異或"運(yùn)算來計(jì)算共享密鑰數(shù)據(jù),根據(jù)算出的共享密鑰數(shù)據(jù)來生成 上述共享密鑰。
5. 如權(quán)利要求4所述的通信裝置,其特征在于, 上述密鑰生成單元將上述共享密鑰數(shù)據(jù)的一部分作為上述共享密鑰。
6. 如權(quán)利要求4所述的通信裝置,其特征在于, 上述密鑰生成單元將上述共享密鑰數(shù)據(jù)本身作為上述共享密鑰。
7. 如權(quán)利要求2所述的通信裝置,其特征在于, 上述密鑰生成單元對上述第1密鑰數(shù)據(jù)和上述第2密鑰數(shù)據(jù)施以上述密鑰依賴函數(shù)來生成共享密鑰數(shù)據(jù),根據(jù)生成的共享密鑰數(shù)據(jù)來生成上述 共享密鑰。
8. 如權(quán)利要求l所述的通信裝置,其特征在于,上述密鑰依賴函數(shù)是 依賴于上述共享密鑰的單向函數(shù)。
9. 如權(quán)利要求l所述的通信裝置,其特征在于, 上述共享密鑰是上述判斷單元進(jìn)行認(rèn)證及生成上述驗(yàn)證用數(shù)據(jù)時(shí)所用的驗(yàn)證用共享密鑰;上述密鑰生成單元還根據(jù)上述共享密鑰數(shù)據(jù)來生成與在上述外部裝置 之間共享、且用于通信對象數(shù)據(jù)的加密及解密的密碼用共享密鑰;上述通信裝置還包括發(fā)送單元,用上述密碼用共享密鑰對上述通信 對象數(shù)據(jù)進(jìn)行加密,來生成加密數(shù)據(jù),將生成的上述加密數(shù)據(jù)與上述驗(yàn)證 用數(shù)據(jù)一起發(fā)送到上述外部裝置。
10. 如權(quán)利要求l所述的通信裝置,其特征在于, 上述共享密鑰是驗(yàn)證用共享密鑰;上述密鑰生成單元還根據(jù)上述共享密鑰數(shù)據(jù)來生成要在與上述外部裝 置之間共享的密碼用共享密鑰;上述通信裝置還包括接收單元,從上述外部裝置接收用上述密碼用 共享密鑰對通信對象數(shù)據(jù)進(jìn)行加密所得的加密數(shù)據(jù);上述數(shù)據(jù)生成單元對上述接收單元接收到的加密數(shù)據(jù)進(jìn)行解密來取得 解密數(shù)據(jù),將取得的解密數(shù)據(jù)作為通信對象數(shù)據(jù)來生成上述驗(yàn)證用數(shù)據(jù)。
11. 如權(quán)利要求l所述的通信裝置,其特征在于, 上述密鑰生成單元用密鑰封裝機(jī)制作為上述密鑰分發(fā)來生成上述共享密鑰。
12. —種通信裝置,將開始執(zhí)行的程序作為通信對方,用與上述程序 共享的密鑰來進(jìn)行通信對象數(shù)據(jù)的秘密通信,其特征在于,包括密鑰生成單元,不讓第三者知道地在與上述外部裝置之間用證明了安 全性的密碼體制來生成要共享的共享密鑰;判斷單元,通過用在與上述程序之間共享、且依賴于上述共享密鑰的密鑰依賴函數(shù)進(jìn)行認(rèn)證,來判斷上述程序是否合法;以及數(shù)據(jù)生成單元,在上述判斷單元判斷出上述程序合法的情況下,在通 信對象數(shù)據(jù)的秘密通信時(shí),為了驗(yàn)證上述通信對象數(shù)據(jù)的合法性,而使用 上述通信對象數(shù)據(jù),用與依賴于上述共享密鑰的上述密鑰依賴函數(shù)相同的 函數(shù)來生成驗(yàn)證用數(shù)據(jù)。
13. —種程序,使計(jì)算機(jī)裝置執(zhí)行,將計(jì)算機(jī)裝置作為通信對方,用 與上述計(jì)算機(jī)裝置共享的密鑰來進(jìn)行通信對象數(shù)據(jù)的秘密通信,其特征在 于,包含密鑰生成步驟,不讓第三者知道地在與上述計(jì)算機(jī)裝置之間用證明了 安全性的密碼體制來生成要共享的共享密鑰;判斷步驟,通過用在與上述計(jì)算機(jī)裝置之間共享、且依賴于上述共享 密鑰的密鑰依賴函數(shù)進(jìn)行認(rèn)證,來判斷上述計(jì)算機(jī)裝置是否合法;以及數(shù)據(jù)生成步驟,在上述判斷步驟判斷出上述計(jì)算機(jī)裝置合法的情況下, 在通信對象數(shù)據(jù)的秘密通信時(shí),為了驗(yàn)證上述通信對象數(shù)據(jù)的合法性,而 使用上述通信對象數(shù)據(jù),用與依賴于上述共享密鑰的上述密鑰依賴函數(shù)相 同的函數(shù)來生成驗(yàn)證用數(shù)據(jù)。
14. 一種第1程序,被保存在第l區(qū)域中,將存在于第2區(qū)域中的第2 程序作為通信對方,用與上述第2程序共享的密鑰來進(jìn)行通信對象數(shù)據(jù)的 秘密通信,上述第1程序及上述第2程序由計(jì)算機(jī)裝置執(zhí)行; 上述第1程序包含-密鑰生成步驟,不讓第三者知道地在與上述第2程序之間用證明了安 全性的密碼體制來生成要共享的共享密鑰;判斷步驟,通過用在與上述第2程序之間共享、且依賴于上述共享密 鑰的密鑰依賴函數(shù)進(jìn)行認(rèn)證,來判斷上述第2程序是否合法;以及數(shù)據(jù)生成步驟,在上述判斷步驟判斷出上述第2程序合法的情況下, 在通信對象數(shù)據(jù)的秘密通信時(shí),為了驗(yàn)證上述通信對象數(shù)據(jù)的合法性,而 使用上述通信對象數(shù)據(jù),用與依賴于上述共享密鑰的上述密鑰依賴函數(shù)相 同的函數(shù)來生成驗(yàn)證用數(shù)據(jù)。
15. —種通信系統(tǒng),用第1及第2通信裝置間共享的密鑰來進(jìn)行通信對象數(shù)據(jù)的秘密通信,其特征在于, 上述第l通信裝置包括第1密鑰生成單元,不讓第三者知道地在與上述第2通信裝置之間用 證明了安全性的密碼體制來生成要共享的第1共享密鑰;第1判斷單元,通過用在與上述第2通信裝置之間共享、且依賴于上述共享密鑰的密鑰依賴函數(shù)進(jìn)行認(rèn)證,來判斷上述第2通信裝置是否合法;以及第1數(shù)據(jù)生成單元,在上述第1判斷單元判斷出上述第2通信裝置合 法的情況下,在通信對象數(shù)據(jù)的秘密通信時(shí),為了驗(yàn)證上述通信對象數(shù)據(jù) 的合法性,而使用上述通信對象數(shù)據(jù),用與依賴于上述第1共享密鑰的上 述密鑰依賴函數(shù)相同的函數(shù)來生成第1驗(yàn)證用數(shù)據(jù);上述第2通信裝置發(fā)送上述第1通信裝置進(jìn)行認(rèn)證時(shí)所用的數(shù)據(jù)。
16. 如權(quán)利要求14所述的密碼通信系統(tǒng),其特征在于, 上述第2通信裝置還包括第2密鑰生成單元,不讓第三者知道地在與上述第1通信裝置之間用 證明了安全性的密碼體制來生成要共享的第2共享密鑰;第2判斷單元,通過用上述密鑰依賴函數(shù)進(jìn)行認(rèn)證,來判斷上述第1 通信裝置是否合法;以及第2數(shù)據(jù)生成單元,在上述第2判斷單元判斷出上述第1通信裝置合 法的情況下,在通信對象數(shù)據(jù)的秘密通信時(shí),為了驗(yàn)證上述通信對象數(shù)據(jù) 的合法性,而使用上述通信對象數(shù)據(jù),用與依賴于上述第2共享密鑰的上 述密鑰依賴函數(shù)相同的函數(shù)來生成第2驗(yàn)證用數(shù)據(jù);上述第1通信裝置發(fā)送上述第2通信裝置進(jìn)行認(rèn)證時(shí)所用的數(shù)據(jù)。
17. —種通信方法,在用與通信對方的外部裝置共享的密鑰來進(jìn)行通 信對象數(shù)據(jù)的秘密通信的通信裝置中使用,其特征在于,包含-密鑰生成步驟,不讓第三者知道地在與上述外部裝置之間用證明了安 全性的密碼體制來生成要共享的共享密鑰;判斷步驟,通過用在與上述外部裝置之間共享、且依賴于上述共享密 鑰的密鑰依賴函數(shù)進(jìn)行認(rèn)證,來判斷上述外部裝置是否合法;以及數(shù)據(jù)生成步驟,在上述判斷單元判斷出上述外部裝置合法的情況下,在通信對象數(shù)據(jù)的秘密通信時(shí),為了驗(yàn)證上述通信對象數(shù)據(jù)的合法性,而 使用上述通信對象數(shù)據(jù),用與依賴于上述共享密鑰的上述密鑰依賴函數(shù)相 同的函數(shù)來生成驗(yàn)證用數(shù)據(jù)。
18. —種通信程序,在用與通信對方的外部裝置共享的密鑰來進(jìn)行通信對象數(shù)據(jù)的秘密通信的通信裝置中使用,其特征在于,包含密鑰生成步驟,不讓第三者知道地在與上述外部裝置之間用證明了安全性的密碼體制來生成要共享的共享密鑰;判斷步驟,通過用在與上述外部裝置之間共享、且依賴于上述共享密鑰的密鑰依賴函數(shù)進(jìn)行認(rèn)證,來判斷上述外部裝置是否合法;以及數(shù)據(jù)生成步驟,在上述判斷單元判斷出上述外部裝置合法的情況下,在通信對象數(shù)據(jù)的秘密通信時(shí),為了驗(yàn)證上述通信對象數(shù)據(jù)的合法性,而使用上述通信對象數(shù)據(jù),用與依賴于上述共享密鑰的上述密鑰依賴函數(shù)相同的函數(shù)來生成驗(yàn)證用數(shù)據(jù)。
19. 如權(quán)利要求17所述的通信程序,其特征在于, 上述通信程序被記錄在計(jì)算機(jī)可讀的記錄介質(zhì)上。
20. —種通信裝置的集成電路,該通信裝置用與通信對方的外部裝置 共享的密鑰來進(jìn)行通信對象數(shù)據(jù)的秘密通信,其特征在于,包括密鑰生成單元,不讓第三者知道地在與上述外部裝置之間用證明了安 全性的密碼體制來生成要共享的共享密鑰;判斷單元,通過用在與上述外部裝置之間共享、且依賴于上述共享密 鑰的密鑰依賴函數(shù)進(jìn)行認(rèn)證,來判斷上述外部裝置是否合法;以及數(shù)據(jù)生成單元,在上述判斷單元判斷出上述外部裝置合法的情況下, 在通信對象數(shù)據(jù)的秘密通信時(shí),為了驗(yàn)證上述通信對象數(shù)據(jù)的合法性,而 使用上述通信對象數(shù)據(jù),用與依賴于上述共享密鑰的上述密鑰依賴函數(shù)相 同的函數(shù)來生成驗(yàn)證用數(shù)據(jù)。
全文摘要
提供一種對冒名攻擊也有安全性的通信裝置。用與通信對方的外部裝置共享的密鑰來進(jìn)行通信對象數(shù)據(jù)的秘密通信的通信裝置不讓第三者知道地在與上述外部裝置之間用證明了安全性的密碼體制來生成要共享的共享密鑰;通過用在與上述外部裝置之間共享、且依賴于上述共享密鑰的密鑰依賴函數(shù)進(jìn)行認(rèn)證,來判斷上述外部裝置是否合法;在判斷出上述外部裝置合法的情況下,在通信對象數(shù)據(jù)的秘密通信時(shí),為了驗(yàn)證上述通信對象數(shù)據(jù)的合法性,而使用上述通信對象數(shù)據(jù),用與依賴于上述共享密鑰的上述密鑰依賴函數(shù)相同的函數(shù)來生成驗(yàn)證用數(shù)據(jù)。
文檔編號(hào)H04L9/08GK101433014SQ20078001536
公開日2009年5月13日 申請日期2007年4月23日 優(yōu)先權(quán)日2006年4月28日
發(fā)明者大森基司, 布田裕一, 磯邊秀司, 長谷川真吾, 靜谷啟樹 申請人:松下電器產(chǎn)業(yè)株式會(huì)社