專利名稱:密碼通信系統和密碼通信方法
技術領域:
本發明涉及密碼通信系統和密碼通信方法,并且特別地涉及用于增強安全性的密碼通信系統和密碼通信方法。
背景技術:
在通信系統中,通信數據被加密以防止通信數據的竊取、偽造等。用于加密的技術 之一是其中通信的兩端使用共同的加密密鑰(以下稱為共用密鑰)的共用密鑰密碼體制。在共用密鑰密碼體制中,通信的兩端必須共用第三方不知道的共用密鑰。實現該目標的技術之一是使用RSA (注冊商標)、橢圓曲線密碼術等的公開密鑰密碼體制。在日本未經審查的專利申請公開No. 中公開了一種用于提供能夠防止使用非法復制的IC的集成電路的技術。在日本未經審查的專利申請公開(PCT申請的譯文)No. 中公開了一種使用用于生成不可物理復制的唯一數據的電路或別的元件來生成諸如RSA公開密鑰或私有密鑰之類的安全字以由此確保在電子設備中使用的集成電路的安全性的技術。此外,在日本未經審查的專利申請公開No. 中公開了一種用于減少通信系統中的密鑰交換的時間的技術,其中該密鑰交換是為了通過局域網使用共用加密密鑰來執行密碼通信。在日本未經審查的專利申請公開No. 2002-26899中公開了一種用于在經由自組織(ad-hoc)無線連接進行的數據傳輸/接收中容易地驗證數據的完整性的技術。
發明內容
例如,在使用共用密鑰CK(X)于半導體裝置ICx與半導體裝置Icy之間執行密碼通信的情況下,共用密鑰CK(X)需要在ICx與ICy之間共享。當ICx具有共用密鑰CK(X)時,ICx使用預先獲得的ICy的公開密鑰PK (y)來加密共用密鑰CK(X)并且將所加密的共用密鑰CK(X)’傳輸給ICy。然后,ICy使用ICy的私有密鑰SK(y)來解密所加密的共用密鑰CK(x)’并且由此獲得共用密鑰CK(X)。以此方式,通過使用公開密鑰密碼體制將共用密鑰CK(X)從ICx傳輸到ICy,可以在第三方不知道的情況下于ICx與ICy之間共享共用密鑰CK(X)。因而,能夠使用共用密鑰密碼體制在ICx與ICy之間執行密碼通信。在將共用密鑰CK(X)從ICx傳輸到ICy時,共用密鑰CK(X)的信息沒有泄露給第三方,因為共用密鑰CK(X)被加密了。但是,因為諸如共用密鑰CK(X)和私有密鑰SK(y)之類的重要數據被存儲于半導體裝置(半導體芯片)ICx和ICy的非易失性存儲器中,所以如果對半導體裝置進行非授權的分析,那么就會發生諸如共用密鑰CK(X)和私有密鑰SK(y)之類的重要數據的泄露。此外,在將半導體裝置ICz添加到其中建立了安全通信(例如,以上所述的半導體裝置ICx與半導體裝置ICy)的密碼通信系統的情形中,有必要驗證待添加的半導體裝置ICz是否是適當的半導體裝置。但是,為了驗證待添加的半導體裝置ICz是否是適當的半導體裝置,有必要將例如昂貴的安全服務器并入密碼通信系統中。這會導致密碼通信系統的成本增加。
根據本發明的一個方面的密碼通信系統包括第一半導體裝置和第二半導體裝置。第一半導體裝置通過使用作為由于第一半導體裝置的過程變化(process variation)等而產生的唯一碼的第一唯一碼以及用于校正第一唯一碼的第一校正數據來生成共用密鑰,通過使用公開密鑰來加密共用密鑰,以及將所加密的共用密鑰傳輸給第二半導體裝置。第二半導體裝置通過使用作為由于第二半導體裝置的過程變化等而產生的唯一碼的第二唯一碼以及用于校正第二唯一碼的第二校正數據來生成第二半導體裝置的私有密鑰,以及通過使用私有密鑰來解密從第一半導體裝置傳輸來的加密的共用密鑰。通過該操作,第一半導體裝置和第二半導體裝置具有相同的共用密鑰,從而以該共用密鑰來實現高度安全的通 目。根據本發明的一個方面的密碼通信系統包括第一半導體裝置和第二半導體裝置。第一半導體裝置通過使用作為由于第一半導體裝置的過程變化等而產生的唯一碼的第一唯一碼以及用于校正第一唯一碼的第一校正數據來生成第一半導體裝置的私有密鑰,通過使用私有密鑰和明文來生成簽名數據,以及將簽名數據傳輸給第二半導體裝置。第二半導體裝置通過使用第一半導體裝置傳輸來的簽名數據和公開密鑰來生成驗證數據,并且將驗證數據與明文比較以確定第一半導體裝置是否具有私有密鑰。通過該操作,第一半導體裝置不需要直接存儲作為重要數據的私有密鑰,由此提高在第一半導體裝置與第二半導體裝置之間的數字簽名的安全性。在上述方面中,第一半導體裝置的公開密鑰可以使用作為由于第二半導體裝置的過程變化等而產生的唯一碼的第二唯一碼以及用于校正第二唯一碼的第二校正數據來生成。根據本發明的一個方面的密碼通信系統包括第一到第三半導體裝置。第三半導體裝置將用于校正第一唯一碼的第一校正數據供應給第一半導體裝置,以及第一半導體裝置通過使用作為由于第一半導體裝置的過程變化等而產生的唯一碼的第一唯一碼以及由第三半導體裝置供應的第一校正數據來生成共用密鑰。此外,第三半導體裝置還將用于校正第二唯一碼的第二校正數據供應給第二半導體裝置,以及第二半導體裝置通過使用作為由于第二半導體裝置的過程變化等而產生的唯一碼的第二唯一碼以及由第三半導體裝置供應的第二校正數據來生成共用密鑰。通過該操作,第一半導體裝置和第二半導體裝置具有相同的共用密鑰,從而以該共用密鑰來實現高度安全的通信。在上述方面中,第三半導體裝置可以包括用于存儲與各個半導體裝置關聯的校正數據以及在各個半導體裝置內生成的共用密鑰的數據庫。此外,第三半導體裝置可以通過使用作為由于第一半導體裝置的過程變化等而產生的唯一碼的第一唯一碼及共用密鑰來生成第一校正數據,以及通過使用作為由于第二半導體裝置的過程變化等而產生的唯一碼的第二唯一碼及共用密鑰來生成第二校正數據。
此外,第三半導體裝置可以通過使用作為由于第一半導體裝置的過程變化等而產生的唯一碼的第一唯一碼及第一共用密鑰來生成第一校正數據,以及通過使用作為由于第二半導體裝置的過程變化等而產生的唯一碼的第二唯一碼及第二共用密鑰來生成第二校正數據。在這種情況下,第一半導體裝置可以具有第一共用密鑰,第二半導體裝置可以具有第二共用密鑰,以及第三半導體裝置可以具有第一和第二共用密鑰。因而,第一半導體裝置和第三半導體裝置能夠使用第一共用密鑰來通信,第二半導體裝置和第三半導體裝置能夠使用第二共用密鑰來通信,以及第一半導體裝置和第二半導體裝置能夠通過第三半導體裝置來通信。根據本發明的一個方面的密碼通信系統包括第一半導體裝置和第二半導體裝置。第一半導體裝置通過使用作為由于第一半導體裝置的過程變化等而產生的唯一碼的第一唯一碼以及用于校正第一唯一碼的第一校正數據來生成第一共用密鑰。此外,第一半導體裝置通過使用作為由于第二半導體的過程變化等而產生的唯一碼的第二唯一碼及第一共用密鑰來生成用于校正第二唯一碼的第二校正數據,以及將所生成的第二校正數據傳輸給第二半導體裝置。第二半導體裝置通過使用在第一半導體裝置內生成的第二校正數據及第 二唯一碼來生成第一共用密鑰。通過該操作,第一半導體裝置和第二半導體裝置具有相同的共用密鑰。因而,第一半導體裝置和第二半導體裝置能夠使用第一共用密鑰來執行高度安全的通信。在上述方面中,第二半導體裝置可以通過使用第一半導體裝置的公開密鑰來加密第二唯一碼,并且將所加密的第二唯一碼傳輸給第一半導體裝置,以及第一半導體裝置可以通過使用第一半導體裝置的私有密鑰來解密所加密的第二唯一碼。此外,根據本發明的一個方面的密碼通信系統可以包括包含用于存儲與各個半導體裝置關聯的各個半導體裝置的公開密鑰的數據庫的服務器。第二半導體裝置然后通過使用第二半導體裝置的私有密鑰及明文來生成簽名數據,并且將該簽名數據傳輸給第一半導體裝置。第一半導體裝置通過使用從服務器傳輸來的第二半導體裝置的公開密鑰以及從第二半導體裝置傳輸來的簽名數據來生成驗證數據,并且將驗證數據與明文比較以確定第二半導體裝置是否具有私有密鑰。此外,第二半導體裝置可以通過使用第一半導體裝置的公開密鑰來加密用于使用第一共用密鑰和第二唯一碼來生成第二校正數據的校正數據生成程序,并且將所加密的校正數據生成程序傳輸給第一半導體裝置。第一半導體裝置解密所加密的校正數據生成程序,以及執行所解密的校正數據生成程序并由此通過使用第一共用密鑰和第二唯一碼來生成第二校正數據。此外,第一共用密鑰生成單元可以通過使用作為由于第一半導體裝置的過程變化等而產生的唯一碼的第一唯一碼以及用于校正第一唯一碼的第三校正數據來生成第二共用密鑰。第一半導體裝置由此能夠使用第一共用密鑰與第二半導體裝置通信以及使用第二共用密鑰與第三半導體裝置通信,以及第二半導體裝置能夠通過第一半導體裝置與第三半導體裝置通信。此外,根據本發明的一個方面的密碼通信系統可以應用于車載半導體裝置。根據本發明的上述各方面,可以提供用于增強安全性的密碼通信系統和密碼通信方法。此外,根據本發明的上述各方面,可以提供能夠將半導體裝置容易地添加至其內執行安全通信的密碼通信系統中的密碼通信系統和密碼通信方法。
根據以下結合附圖進行的關于某些實施例的描述,上述及其他方面、優點和特征將變得更清楚,在附圖中圖I是示出根據第一實施例的密碼通信系統的框圖;圖2是解釋根據第一實施例的密碼通信系統的操作的流程圖;圖3是解釋共用密鑰生成單元的操作的流程圖;圖4是示出在共用密鑰生成單元內處理的唯一碼的實例的表格;圖5是示出根據第二實施例的密碼通信系統的框圖; 圖6是解釋根據第二實施例的密碼通信系統的操作的流程圖;圖7是示出根據第三實施例的密碼通信系統的框圖;圖8是解釋根據第三實施例的密碼通信系統的操作的流程圖;圖9是示出根據第四實施例的密碼通信系統的框圖;圖10是示出存儲于根據第四實施例的密碼通信系統的數據庫中的數據的實例的表格;圖11是解釋根據第四實施例的密碼通信系統的操作的流程圖;圖12是示出根據第五實施例的密碼通信系統的框13是解釋根據第五實施例的密碼通信系統的操作的流程圖;圖14是解釋校正數據生成單元的操作的流程圖;圖15是示出根據第六實施例的密碼通信系統的框圖;圖16是解釋根據第六實施例的密碼通信系統的操作的流程圖;圖17是示出將根據第一到第六實施例的密碼通信系統應用于車載半導體裝置的情形的框圖;圖18是示出根據第八實施例的密碼通信系統的框圖;圖19是解釋根據第八實施例的密碼通信系統的操作的流程圖;圖20是解釋共用密鑰生成單元的操作的流程圖;圖21是示出在共用密鑰生成單元內處理的唯一碼的實例的表格;圖22是解釋校正數據生成單元的操作的流程圖;圖23是示出其中校正數據使用多個半導體裝置來生成的情形的示意圖;圖24是示出根據第九實施例的密碼通信系統的框圖;圖25是解釋根據第九實施例的密碼通信系統的操作的流程圖;圖26是示出第十實施例的密碼通信系統的框圖;圖27是解釋根據第十實施例的密碼通信系統的操作的流程圖;圖28是示出第i^一實施例的密碼通信系統的框圖;圖29是解釋根據第十一實施例的密碼通信系統的操作的流程圖;圖30是示出第十二實施例的密碼通信系統的框圖;圖31是解釋根據第十二實施例的密碼通信系統的操作的流程圖;圖32是示出第十二實施例的密碼通信系統的配置的框圖;以及
圖33是示出將根據第八到第十二實施例的密碼通信系統應用于車載半導體裝置的情形的框圖。
具體實施例方式<第一實施例>本發明的實施例在下文參照附圖來描述。圖I是示出根據第一實施例的密碼通信系統的框圖。根據本實施例的密碼通信系統I包括半導體裝置ICa (第一半導體裝置)10和半導體裝置ICb (第二半導體裝置)20。半導體裝置10包括唯一碼生成單元11、存儲單元12、共用密鑰生成單元13和加密單元14。唯一碼生成單元11生成具有為半導體裝置10所獨有的值且含有隨機錯誤的唯一 碼(第一唯一碼)UC(a),并且將它輸出到共用密鑰生成單元13。唯一碼UC(a)是由包含于半導體裝置10內的元件所固有的物理性質確定的值。例如,唯一碼生成單元11可以使用在包含于半導體裝置10內的存儲元件啟動時的值來生成唯一碼UC(a)。唯一碼是使用隨實際制作的IC而不同的性質生成的碼,盡管IC的設計是相同的。這種技術被稱為PUF(物理不可復制功能),并且這是一種即使在具有同樣電路的多個IC通過相同的制造設備同時制作于一塊半導體晶圓上時也可為各個IC生成唯一碼并且進一步使IC不可復制的技術。這種技術的使用在不需要諸如防篡改芯片之類的專用硬件的情況下實現了數據的有效隱蔽。存儲單元12能夠存儲校正數據(第一校正數據)⑶(a)、在共用密鑰生成單元13內生成的共用密鑰CK(a)以及半導體裝置20的公開密鑰PK(b)。存儲單元12包括例如易失性存儲器(例如,SRAM)和非易失性存儲器(例如,閃存),校正數據CD (a)和公開密鑰PK (b)存儲于非易失性存儲器內,以及共用密鑰CK(a)存儲于易失性存儲器內。因而,盡管存儲單元12臨時性地存儲了共用密鑰CK(a),但是共用密鑰CK(a)的信息在半導體裝置10斷電時會被擦除。注意,共用密鑰CK(a)在采取了安全措施(例如,加密)之后可以根據需要存儲于非易失性存儲器內,并且可以對存儲于非易失性存儲器內的共用密鑰CK(a)實行諸如在半導體裝置10斷電時通過寫入來擦除數據的措施。共用密鑰生成單元I3使用由唯一碼生成單元11輸出的唯一碼UC(a)以及存儲于存儲單元12內的存儲數據CD (a)來生成共用密鑰CK (a)。在唯一碼生成單元11內生成的唯一碼UC(a)是含有在唯一碼的生成期間依據外部因素(例如,溫度和電壓)而變化的位值的數據。因此,在唯一碼生成單元11內生成的唯一碼UC(a)含有三類位(1)具有穩定值的位,(2)具有高變化性的位(B卩,值的變化相對較大的位)以及(3)具有低變化性的位(B卩,值的變化相對較小的位)。以此方式,在唯一碼生成單元11內生成的唯一碼UC(a)含有(2)具有高變化性的位以及(3)具有低變化性的位。因此,唯一碼UC(a)在每次生成時都具有不同的值。具有高變化性的位能夠在制作過程中找到。因而,通過在制作過程中作出每個位的判定,能夠產生用于屏蔽(mask)具有高變化性的位的屏蔽數據。通過使用屏蔽數據來屏蔽在唯一碼生成單元11內生成的唯一碼UC (a),能夠消去在UC (a)內所含有的具有高變化性的位。因為具有高變化性的位的位置在裝置與裝置之間是不同的,所以屏蔽數據是為半導體裝置所獨有的數據。另一方面,具有低變化性的位由于外部因素、剩余電荷等而變化,并因而難以作出估計。因此,具有低變化性的位使用在制作期間生成的ECC碼(例如,BCH碼或RS碼(Reed-Solomon code))來處理。共用密鑰生成單元13的操作將在下文具體地描述。圖3是解釋共用密鑰生成單元13的操作的流程圖,以及圖4是示出在共用密鑰生成單元13內處理的唯一碼的實例的表格。首先,共用密鑰生成單元13從唯一碼生成單元11中讀取唯一碼UC(a)(步驟S11)。在該步驟內所讀取的唯一碼UC(a)是尚未對其進行用于消去具有可變值的位的錯誤校正的唯一碼。然后,共用密鑰生成單元13使用包含于校正數據⑶(a)內的屏蔽數據來屏蔽所讀取的唯一碼UC(a)(步驟S12)。屏蔽數據是用于屏蔽在唯一碼UC(a)的各個位當中具有高誤碼率的、具有可變位值的位的數據。在圖4所示的實例中,因為唯一碼UC(a)的第一位和第六位的誤碼率是高的,所以屏蔽數據是“O”。因為其他位是具有低誤碼率的位或者具有穩定值的位,所以屏蔽數據是“I”。換言之,用于需要屏蔽的位的屏蔽數據是“0”,以及用于不需要屏蔽的位的屏蔽數據是“I”。通過使用屏蔽數據來屏蔽唯一碼UC(a),能夠獲得其中消去了唯一碼UC(a)的第一位和第六位的屏蔽唯一碼UC(a)’(通過屏蔽消去的位由“X ”指示)。之后,使屏蔽唯一碼UC(a)’左對齊。然后,使用包含于校正數據⑶(a)內的ECC碼(錯誤校正碼),共用密鑰生成單元13進行校正以去除包含于屏蔽唯一碼UC(a)’內的具有低程度的變化性的位的錯誤,由此獲得唯一碼UC(a)"(步驟S13)。在圖4所示的實例中,由于屏蔽唯一碼UC(a)’使用ECC碼來處理,因而第一位從“O”校正為“ I”。然后,共用密鑰生成單元13使用包含于校正數據⑶(a)內的操作參數來執行對已校正錯誤的唯一碼UC(a)"的指定操作(步驟S14)。在圖4所示的實例中,對已校正錯誤的唯一碼UC(a)"執行非(NOT)操作。在該操作之后的唯一碼UC(a)是共用密鑰CK (a)。注意,非操作只是一個示例,以及可以對已校正錯誤的唯一碼UC(a)"執行任何操作。通過改變操作參數,可以根據需要來改變共用密鑰CK(a)。此外,通過使用操作參數來執行對已校正錯誤的唯一碼UC(a)"的指定操作,共用密鑰CK(a)能夠被生成為與唯一碼UC(a)不明顯類似的碼。這進一步提高了安全級別。而且,可以跳過對已校正錯誤的唯一碼UC(a)"執行的操作。在這種情況下,使用屏蔽數據和ECC碼處理過的唯一碼UC(a)"用作共用密鑰CK(a)。以此方式生成的共用密鑰CK(a)被輸出到存儲單元12和加密單元14。注意,包含于校正數據⑶(a)內的屏蔽碼、ECC碼和操作參數被預先生成為半導體裝置10的唯一數據,并且存儲于存儲單元12內。用于生成校正數據⑶(a)的方法將在后面描述(參見第五實施例,圖14)。此外,為了抽取出包含于從唯一碼生成單元11中讀取的唯一碼UC (a)內的具有高變化性的位,多次執行唯一碼UC (a)的讀取并且然后基于屏蔽唯一碼UC(a)’來生成ECC碼。如上所述,共用密鑰生成單元13具有生成共用密鑰CK(a)的功能,以及還具有使用校正數據⑶(a)來校正唯一碼UC (a)的功能。圖I所示的私有密鑰生成單元23、圖5所示的私有密鑰生成單元33、圖7所示的私有密鑰生成單元53和公開密鑰生成單元63、圖9所示的共用密鑰生成單元73和83、圖12所示的共用密鑰生成單元113和123以及圖15所示的共用密鑰生成單元143和153也起著使用校正數據⑶來校正唯一碼UC的唯一碼校正單元的作用。注意,雖然在本說明書中出于方便起見而根據待生成的密鑰將密鑰生成單元稱為共用密鑰生成單元、私有密鑰生成單元或公開密鑰生成單元,但是這些單元的配置和操作是基本上相同的。共用密鑰CK(a)是一次性使用(一次)的密鑰或固定的密鑰,取決于用法。例如,當共用密鑰CK(a)是用于將加密數據存儲于非易失性存儲器內的固定密鑰時,校正數據⑶(a)被確定以便根據被獲得作為半導體裝置10的唯一碼UC(a)的位格式(bit pattern)來獲得作為共用密鑰CK (a)的位格式,并因此能夠容易地生成多個校正數據CD (a)。另一方面,當共用密鑰CK(a)是待用于ICa和ICb之間的每個通信會話的一次性使用的密鑰時,校正數據CD(a)被確定以便獲得用于多個不同的校正數據CD(a)的不同的位格式。圖I中的加密單元14通過使用半導體裝置20的公開密鑰PK (b)來加密在共用密鑰生成單元13內生成的共用密鑰CK(a)。待用于加密的公開密鑰PK(b)可以預先從半導體裝置20傳輸到半導體裝置10并存儲于存儲單元12內。作為選擇,待用于加密的公開密鑰PK(b)可以在加密單元14加密共用密鑰CK (a)時由半導體裝置20直接供應給加密單元14。
半導體裝置20包括唯一碼生成單元21、存儲單元22、私有密鑰生成單元23和解密單元24。唯一碼生成單元21生成具有為半導體裝置20所獨有的值且含有隨機錯誤的唯一碼(第二唯一碼)UC(b),并將其輸出到私有密鑰生成單元23。唯一碼生成單元21的配置和操作是與以上所述的唯一碼生成單元11基本上相同的。存儲單元22能夠存儲校正數據(第二校正數據)⑶(b)、公開密鑰PK (b)和已由解密單元解密的共用密鑰CK(a)。存儲單元22包括例如易失性存儲器和非易失性存儲器,校正數據CD(b)和公開密鑰(b)存儲于非易失性存儲器內,以及共用密鑰CK(a)存儲于易失性存儲器內。因而,盡管存儲單元22臨時存儲著共用密鑰CK(a),但是共用密鑰CK(a)的信息在半導體裝置20斷電時會被擦除。注意,共用密鑰CK(a)在采取了安全措施(例如,加密)之后可以根據需要存儲于非易失性存儲器內,以及可以對存儲于非易失性存儲器內的共用密鑰CK(a)實行諸如在半導體裝置20斷電時通過寫入來擦除數據的措施。私有密鑰生成單元23使用唯一碼UC(b)和校正數據⑶(b)來生成半導體裝置20的私有密鑰SK(b)。注意,用于在私有密鑰生成單元23內生成私有密鑰SK(b)的方法是與以上所描述的用于在共用密鑰生成單元13內生成共用密鑰CK(a)的方法基本上相同的。解密單元24通過使用私有密鑰SK(b)來解密在半導體裝置10的加密單元14內加密的共用密鑰,并由此生成共用密鑰CK(a)。根據本實施例的密碼通信系統的操作在下文參照圖2的流程圖來描述。首先,半導體裝置ICb (20)將半導體裝置ICb (20)的公開密鑰PK(b)傳輸給半導體裝置ICa (10)(步驟SI)。所傳輸的公開密鑰PK(b)被存儲于半導體裝置10的存儲單元12內。然后,半導體裝置10的共用密鑰生成單元13使用由唯一碼生成單元11輸出的唯一碼UC(a)以及存儲于存儲單元12內的校正數據CD (a)來生成共用密鑰CK (a)(步驟S2)。加密單元14通過使用半導體裝置20的公開密鑰PK(b)來加密在共用密鑰生成單元13內生成的共用密鑰CK(a),并由此生成加密的共用密鑰CK(a)’(步驟S3)。然后,加密的共用密鑰CK(a) ’由半導體裝置10傳輸給半導體裝置20 (步驟S4)。半導體裝置20的私有密鑰生成單元23使用唯一碼UC (b)和校正數據⑶(b)來生成半導體裝置20的私有密鑰SK (b)(步驟S5)。解密單元24通過使用私有密鑰SK (b)來解密所加密的共用密鑰CK(a)’,并由此生成共用密鑰CK(a)(步驟S6)。通過上述過程,半導體裝置10和半導體裝置20兩者能夠具有共用密鑰CK (a)。因而,半導體裝置10和半導體裝置20能夠使用共用密鑰CK(a)來執行密碼通信(步驟S7)。注意,上述步驟的順序能夠適當地改變,只要它是一致的。例如,步驟S5可以與在半導體裝置10內執行的步驟S2和S3并行地在半導體裝置20內執行。正如先前所描述的,在使用共用密鑰CK(X)來執行半導體裝置ICx與半導體裝置ICy之間的密碼通信的情形中,共用密鑰CK(X)需要在ICx和ICy之間共用。當ICx具有共用密鑰CK(X)時,ICx使用預先獲得的ICy的公開密鑰PK (y)來加密共用密鑰CK(X),并且將所加密的共用密鑰CK(X)’傳輸給ICy。然后,ICy使用ICy的私有密鑰SK(y)來解密所加密的共用密鑰CK(X)’,并由此獲得共用密鑰CK(x)。以此方式,通過使用公開密鑰密碼體制來將共用密鑰CK(X)從ICx傳輸到ICy,可以在第三方不知道的情況下于ICx和ICy之間共享共用密鑰CK(X)。因而,能夠使用共用密鑰密碼體制來執行ICx與ICy之間的密碼通信。在將共用密鑰CK(X)從ICx傳輸到ICy時,關于共用密鑰CK(X)的信息并沒有被 泄漏,因為共用密鑰CK(X)是加密的。但是,因為諸如共用密鑰CK(X)和私有密鑰SK(y)之類的重要數據被存儲于半導體裝置(半導體芯片)ICx和ICy的非易失性存儲器(存儲單元)內,所以如果對半導體裝置進行非授權的分析,則會發生諸如共用密鑰CK(X)和私有密鑰SK(y)之類的重要數據的泄漏。另一方面,在根據本實施例的密碼通信系統中,在半導體裝置10的共用密鑰生成單元13內通過使用含有為半導體裝置10所獨有的信息分量和可變的信息分量的唯一碼UC(a)以及用于校正唯一碼UC(a)的校正數據CD(a)來生成共用密鑰CK(a)。此外,在半導體裝置20的私有密鑰生成單元23內通過使用含有為半導體裝置20所獨有的信息分量和可變的信息分量的信息唯一碼UC (b)以及用于校正唯一碼UC (b)的校正數據CD (b)來生成半導體裝置20的私有密鑰SK (b)。因為諸如共用密鑰CK (a)和私有密鑰SK (b)之類的重要數據并沒有直接存儲于存儲單元12和22內,所以即使半導體裝置受到非授權的分析也不會發生諸如共用密鑰CK(a)和私有密鑰SK(b)之類的重要數據的泄漏。此外,盡管私有密鑰SK (b)需要是與公開密鑰PK (b)對應的密鑰,但仍然容易生成多個校正數據CD(b),因為校正數據CD(b)能夠被確定以便根據被獲得作為半導體裝置20的唯一碼UC(b)的位格式來獲得作為私有密鑰SK(b)的位格式。用于分析半導體裝置以便非授權地獲得數據的方法有如下這些。(I)用于使用FIB (聚焦離子束)對半導體裝置進行修改以及使用探針對半導體裝置進行物理分析的方法。(2)用于通過將電磁波(例如,激光束)施加于半導體裝置或者將噪聲插入電源端子來使CPU失控(run away)并由此以非授權的方式獲得數據的故障樹分析法。(3)用于觀察半導體裝置的電流消耗以及分析密鑰數據(key data)的泄漏分析法。為了避免非授權的分析,在需要高安全級別的領域內,使用了具有高安全級別的微型計算機(以下稱為安全微型計算機)。安全微型計算機具有用于保護布線區的罩蓋、用于檢測光或信號噪聲的功能、用于通過將隨機數信號與信號結合來干擾電流的功能等。在通過以上所述的泄漏分析法對密鑰數據的非授權分析中,由于基于具體數據的特定操作的執行而產生的功率消耗的特征圖(characteristic pattern)被提取。功率消耗的特征圖能夠通過使用隨機數等從多個校正數據⑶(a)或⑶(b)中進行隨機選擇來干擾。以此方式,可以通過使用安全微型計算機來防止第三方對半導體裝置的非授權分析。但是,在使用安全微型計算機的情形中,盡管能夠防止非授權的分析,但是半導體裝置的制造商也由于其防篡改性高而無法執行失效分析和故障分析。特別地,在用于汽車用途的車載微型計算機(ECU等)中,半導體裝置的失效分析和故障分析是必要的,因為需要高可靠性。由于該原因,具有比安全微型計算機低的安全級別的通用微型計算機廣泛地作為車載微型計算機來使用。因而,需要借助于通用微型計算機來提高半導體裝置的安全級別的密碼通信系統來用于車載微型計算機。在根據本實施例的密碼通信系統中,因為諸如共用密鑰CK(a)和私有密鑰SK(b)之類的重要數據并不直接存儲于存儲單元12和22內,所以即使半導體裝置受到非授權的分析也不會發生諸如共用密鑰CK(a)和私有密鑰SK(b)之類的重要數據的泄漏。因此,即使在半導體裝置10和半導體裝置20使用具有相對低的安全級別的通用微型計算機來配置 時,也能夠實現高的安全級別。注意,被用來生成共用密鑰CK (a)和私有密鑰SK (b)的校正數據⑶(a)和⑶(b)是具有相對高的安全級別的信息,盡管該安全級別低于共用密鑰CK(a)和私有密鑰SK(b)的安全級別。因而,安全微型計算機可以用于半導體裝置10和20,在半導體裝置10和20內存儲了校正數據CD (a)和CD(b)以便防止校正數據CD (a)和CD (a)泄漏給第三方。如上所述,根據本發明的實施例,可以提供提高了安全性的密碼通信系統和密碼通信方法。<第二實施例>本發明的第二實施例將在下面描述。圖5是示出根據本實施例的密碼通信系統2的框圖。在本實施例中,將密碼通信系統應用于數字簽名系統。根據本實施例的密碼通信系統2包括半導體裝置ICa (30)和半導體裝置ICb (40)。半導體裝置30包括唯一碼生成單元31、存儲單元32、私有密鑰生成單元33和簽名數據生成單元34。唯一碼生成單元31生成為半導體裝置30所獨有的唯一碼UC(a),并將其輸出到私有密鑰生成單元33。唯一碼生成單元31的基本配置和操作與第一實施例所描述的唯一碼生成單元11的基本配置和操作是相同的,并且在此省略關于它的多余解釋。存儲單元32能夠將半導體裝置30的校正數據⑶(a)、明文Plane (a)和公開密鑰PK (a)存儲于非易失性存儲器內。私有密鑰生成單元33使用由唯一碼生成單元31輸出的唯一碼UC (a)以及存儲于存儲單元32內的校正數據CD (a)來生成半導體裝置30的私有密鑰SK (a)。注意,私有密鑰生成單元33起著唯一碼校正單元的作用。私有密鑰生成單元33的基本配置和操作與第一實施例所描述的共用密鑰生成單元13的基本配置和操作是相同的,并且在此省略關于它的多余解釋。簽名數據生成單元34使用在私有密鑰生成單元33內生成的私有密鑰SK(a)以及存儲于存儲單元32內的明文Plane(a)來生成簽名數據Sig(a)。換言之,簽名數據生成單元34執行數字簽名方案中的簽名生成算法。半導體裝置40包括存儲單元41和驗證單元42。存儲單元41能夠存儲半導體裝置30的公開密鑰PK (a)。驗證單元42執行數字簽名方案中的驗證算法。特別地,驗證單元42使用半導體裝置30的簽名數據Sig(a)和公開密鑰PK(a)來生成驗證數據。簽名數據Sig(a)是通過使用半導體裝置30的私有密鑰SK(a)來加密明文Plane(a)而生成的數據。因而,通過使用半導體裝置30的公開密鑰PK(a)來解密簽名數據Sig(a)而獲得的驗證數據是與從半導體裝置30傳輸來的明文Plane (a)對應的數據。因此,驗證單元42將驗證數據與明文Plane (a)比較,并且當驗證數據和明文Plane (a)相匹配時,能夠確定半導體裝置30具有私有密鑰SK (a)。注意,由半導體裝置30供應的公開密鑰PK (a)可以直接供應給半導體裝置40的驗證單元42。 根據本實施例的密碼通信系統的操作在下面參照圖6的流程圖來描述。首先,半導體裝置30 (對應于簽名方)將半導體裝置30的公開密鑰PK(a)傳輸給半導體裝置40 (對應于驗證方)(步驟S21)。然后,半導體裝置30的私有密鑰生成單元33使用由唯一碼生成單元31輸出的唯一碼UC (a)以及存儲于存儲單元32內的校正數據CD (a)來生成半導體裝置30的私有密鑰SK(a)(步驟S22)。之后,半導體裝置30的簽名數據生成單元34執行數字簽名方案中的簽名生成算法。特別地,簽名數據生成單元34使用在私有密鑰生成單元33內生成的私有密鑰SK(a)以及存儲于存儲單元32內的明文Plane(a)來生成簽名數據Sig(a)(步驟S23)。在簽名數據生成單元34內生成的簽名數據Sig(a)被傳輸給半導體裝置40的驗證單元42 (步驟S24)。此外,明文Plane (a)被傳輸給半導體裝置40的驗證單元42 (步驟S25)。注意,盡管在圖5中示出了將明文Plane (a)存儲于存儲單元32內的情形,但是明文Plane (a)可以從外部直接供應給簽名數據生成單元34和驗證單元42。半導體裝置40的驗證單元42執行數字簽名方案中的驗證算法。特別地,驗證單元42使用半導體裝置30的簽名數據Sig(a)和公開密鑰PK(a)來生成驗證數據,并且將驗證數據與明文Plane (a)比較(步驟S26)。當驗證數據與明文Plane (a)相匹配時(當驗證算法接受簽名數據Sig (a)時),驗證單元42確定由半導體裝置30產生的簽名數據Sig (a)是有效的。換言之,確定半導體裝置30具有私有密鑰SK (a)。另一方面,當驗證數據和明文Plane (a)不匹配時(當驗證算法拒絕簽名數據Sig(a)時),驗證單元42確定由半導體裝置30產生的簽名數據Sig (a)是無效的。換言之,確定半導體裝置30不具有私有密鑰SK (a)。注意,上述步驟的順序能夠適當地改變,只要它是一致的。通常,在使用數字簽名方案來執行半導體裝置ICx (對應于簽名方)與半導體裝置ICy (對應于驗證方)之間的驗證的情況下,ICx需要具有私有密鑰SK(X)。私有密鑰SK(X)被存儲于半導體裝置ICx的非易失性存儲器(存儲單元)內。因此,如果半導體裝置受到非授權的分析,則會發生諸如私有密鑰SK(X)之類的重要數據的泄漏。另一方面,在根據本實施例的密碼通信系統中,在半導體裝置30的密鑰生成單元33內通過使用為半導體裝置30所獨有的唯一碼UC(a)以及存儲于存儲單元32內的校正數據CD(a)來生成半導體裝置30的私有密鑰SK(a)。因為作為重要數據的私有密鑰SK(a)并不直接存儲于存儲單元32內,所以即使半導體裝置受到非授權的分析也不會發生私有密鑰SK(a)的泄漏。因此,即使在半導體裝置30和半導體裝置40使用具有相對低的安全級別的通用微型計算機來配置時,也能夠實現高的安全級別。注意,可以將安全微型計算機用于半導體裝置30和40,以便進一步提高包括半導體裝置30和半導體裝置40的密碼通信系統的安全級別。如上所述,根據本發明的實施例,可以提供用于提高安全性的密碼通信系統和密碼通信方法。〈第三實施例〉本發明的第三實施例將在下面描述。圖7是示出根據本實施例的密碼通信系統3的框圖。在本實施例中,將密碼通信系統應用于數字簽名系統。根據第二實施例的密碼通信系統2在步驟S21將半導體裝置30的公開密鑰PK (a)傳輸給半導體裝置40,而在根據本實施例的密碼通信系統3中,半導體裝置50的公開密鑰PK(a)使用公開密鑰生成單元63來生成。圖7所示的根據本實施例的密碼通信系統3包括半導體裝置ICa (50)和半導體 裝置ICb (60)。半導體裝置50包括唯一碼生成單元51、存儲單元52、私有密鑰生成單元53及簽名數據生成單元54。唯一碼生成單元51生成為半導體裝置50所獨有的唯一碼UC(a)并將其輸出到私有密鑰生成單元53。唯一碼生成單元51的基本配置和操作與第一實施例所描述的唯一碼生成單元11的基本配置和操作是相同的,并且在此省略關于它的多余解釋。存儲單元52能夠將校正數據⑶(a)和明文Plane (a)存儲于非易失性存儲器內。私有密鑰生成單元53使用由唯一碼生成單元51輸出的唯一碼UC (a)以及存儲于存儲單元52內的校正數據CD (a)來生成半導體裝置50的私有密鑰SK (a)。注意,私有密鑰生成單元53起著唯一碼校正單元的作用。私有密鑰生成單元53的基本配置和操作與第一實施例所描述的共用密鑰生成單元13的基本配置和操作是相同的,并且在此省略關于它的多余解釋。簽名數據生成單元54使用在私有密鑰生成單元53內生成的私有密鑰SK(a)以及存儲于存儲單元52內的明文Plane(a)來生成簽名數據Sig(a)。換言之,簽名數據生成單元54執行數字簽名方案中的簽名生成算法。半導體裝置60包括唯一碼生成單元61、存儲單元62、公開密鑰生成單元63和驗證單元64。唯一碼生成單元61生成為半導體裝置60所獨有的唯一碼UC (b)并且將其輸出到公開密鑰生成單元63。唯一碼生成單元61的基本配置和操作與第一實施例所描述的唯一碼生成單元11的基本配置和操作是相同的,并且在此省略關于它的多余解釋。存儲單元62能夠將校正數據CD(b)存儲于非易失性存儲器內。公開密鑰生成單元63使用由唯一碼生成單元61輸出的唯一碼UC (b)以及存儲于存儲單元62內的校正數據CD (b)來生成半導體裝置50的公開密鑰PK (a)。注意,公開密鑰生成單元63起著唯一碼校正單元的作用。公開密鑰生成單元63的基本配置和操作與第一實施例所描述的共用密鑰生成單元13的基本配置和操作是相同的,并且在此省略關于它的重復描述。驗證單元64執行數字簽名方案中的驗證算法。特別地,驗證單元64使用半導體裝置50的簽名數據Sig(a)和公開密鑰PK(a)來生成驗證數據。簽名數據Sig(a)是通過使用半導體裝置50的私有密鑰SK (a)來加密明文Plane(a)而生成的數據。因而,通過使用半導體裝置50的公開密鑰PK(a)來解密簽名數據Sig(a)而獲得的驗證數據是與從半導體裝置50傳輸來的明文Plane(a)對應的數據。因此,驗證單元64將驗證數據與明文Plane (a)比較,并且當驗證數據與明文Plane (a)相匹配時,能夠確定半導體裝置50具有私有密鑰SK(a)。根據本實施例的密碼通信系統的操作在下面參照圖8的流程圖來描述。首先,半導體裝置50 (對應于簽名方)的私有密鑰生成單元53使用由唯一碼生成單元51輸出的唯一碼UC (a)以及存儲于存儲單元52內的校正數據CD (a)來生成半導體裝置50的私有密鑰SK(a)(步驟S31)。然后,半導體裝置50的簽名數據生成單元54執行數字簽名方案中的簽名生成算法。特別地,簽名數據生成單元54使用在私有密鑰生成單元50內生成的私有密鑰SK(a)以及存儲于存儲單元52內的明文Plane(a)來生成簽名數據Sig(a)(步驟S32)。另一方面,半導體裝置60 (對應于驗證方)的公開密鑰生成單元63使用由唯一碼生成單元61輸出的唯一碼UC (b)以及存儲于存儲單元62內的校正數據CD (b)來生成半導體裝置50的公開密鑰PK (a)(步驟S33)。
在簽名數據生成單元54內生成的簽名數據Sig(a)被傳輸給半導體裝置60的驗證單元64 (步驟S34)。此外,明文Plane (a)被傳輸給半導體裝置60的驗證單元64 (步驟S35)。注意,盡管在圖7中示出了將明文Plane (a)存儲于存儲單元52內的情形,但是明文Plane (a)可以從外部直接供應給簽名數據生成單元54和驗證單元64。半導體裝置60的驗證單元64執行數字簽名方案中的驗證算法。特別地,驗證單元64使用半導體裝置50的簽名數據Sig(a)和公開密鑰PK(a)來生成驗證數據,并且將驗證數據與明文Plane (a)比較(步驟S36)。當驗證數據與明文Plane (a)相匹配時(當時驗證算法接受簽名數據Sig (a)時),驗證單元64確定由半導體裝置50產生的簽名數據Sig (a)是有效的。換言之,確定半導體裝置50具有私有密鑰SK (a)。另一方面,當驗證數據與明文Plane (a)不匹配時(當驗證算法拒絕簽名數據Sig(a)時),驗證單元64確定由半導體裝置50產生的簽名數據Sig(a)是無效的。換言之,確定半導體裝置50不具有私有密鑰SK (a)。注意,上述步驟的順序能夠適當地改變,只要它是一致的。在根據本實施例的密碼通信系統中,在半導體裝置50的私有密鑰生成單元53內通過使用為半導體裝置50所獨有的唯一碼UC(a)和校正數據CD(a)來生成半導體裝置50的私有密鑰SK(a)。因為作為重要數據的私有密鑰SK(a)并不直接存儲于存儲單元52內,所以即使半導體裝置受到未授權的分析也不會發生作為重要數據的私有密鑰SK(a)的泄漏。因此,即使在半導體裝置50和半導體裝置60使用具有相對低的安全級別的通用微型計算機來配置時,也能夠實現高的安全級別。此外,在根據本實施例的密碼通信系統中,在半導體裝置60的公開密鑰生成單元63內通過使用唯一碼UC (b)和校正數據⑶(b)來生成半導體裝置50的公開密鑰PK (a)。因為不需要將公開密鑰PK (a)從半導體裝置50傳輸到半導體裝置60,所以可以防止所使用的密碼方法泄漏給第三方,這進一步提高了密碼通信系統的安全性。注意,可以將安全微型計算機用于半導體裝置50和60,以便進一步提高包括半導體裝置50和半導體裝置60的密碼通信系統的安全級別。〈第四實施例〉本發明的第四實施例將在下面描述。在以上所述的第一到第三實施例中,用于生成共用密鑰和私有密鑰的校正數據⑶(a)和⑶(b)被存儲于半導體裝置內。但是,用于生成共用密鑰和私有密鑰的校正數據CD (a)和CD(b)也是具有高安全級別的信息。因而,優選的是構造出其中校正數據CD (a)和CD(b)不被泄漏給第三方的密碼通信系統。在圖9所示的根據本實施例的密碼通信系統4中,待用于生成共用密鑰的校正數據并沒有存儲于半導體裝置70和80內,而是布置了包含用于集中管理校正數據的數據庫91的半導體裝置90。因為具有高安全級別的校正數據被存儲于半導體裝置90的數據庫91內,所以優選的是使用安全微型計算機來配置半導體裝置90。另一方面,具有高安全級別的共用密鑰CK(I)的信息并不存儲于半導體裝置70和80中的非易失性存儲器內,因而半導體裝置70和80能夠使用通用微型計算機來配置。特別地,盡管共用密鑰CK(I)臨時存儲于存儲單元72和82內,但是因為共用密鑰CK(I)存儲于易失性存儲器內,所以共用密鑰CK(I)的信息在半導體裝置70和80斷電時會被擦除。因此,具有高安全級別的共用密鑰CK(I)并不存儲于半導體裝置70和80內。根據本實施例的密碼通信系統將在下面詳細地描述。圖9所示的密碼通信系統4包括半導體裝置70、80和90。半導體裝置(第一半導體裝置)70包括唯一碼生成單元71、存儲單元72及共用密鑰生成單元(第一共用密鑰生成單元)73。 唯一碼生成單元71生成為半導體裝置70所獨有的唯一碼UC(a),并將其輸出到共用密鑰生成單元73。唯一碼生成單元71的基本配置和操作與第一實施例所描述的唯一碼生成單元11的基本配置和操作是相同的,并且在此省略關于它的多余解釋。存儲單元72將在共用密鑰生成單元73內生成的共用密鑰CK(I)存儲于易失性存儲器內。共用密鑰CK(I)在半導體裝置70斷電時被擦除。注意,共用密鑰CK(I)在采取了安全措施(例如,加密)之后可以根據需要存儲于非易失性存儲器內,以及可以對存儲于非易失性存儲器內的共用密鑰CK(I)實行諸如在半導體裝置70斷電時通過寫入來擦除數據的措施。共用密鑰生成單元73使用由唯一碼生成單元71輸出的唯一碼UC(a)以及由半導體裝置90供應的校正數據(第一校正數據)CD (1,a)來生成共用密鑰CK(I)。共用密鑰生成單元73起著唯一碼校正單元的作用。共用密鑰生成單元73的基本配置和操作與第一實施例所描述的共用密鑰生成單元13的基本配置和操作是相同的,并且在此省略關于它的多余解釋。半導體裝置(第二半導體裝置)80包括唯一碼生成單元81、存儲單元82和共用密鑰生成單元(第二共用密鑰生成單元)83。唯一碼生成單元81生成為半導體裝置80所獨有的唯一碼UC (b),并且將其輸出到共用密鑰生成單元83。唯一碼生成單元81的基本配置和操作與根據第一實施例所描述的唯一碼生成單元11的基本配置和操作是相同的,并且在此省略關于它的多余解釋。存儲單元82將在共用密鑰生成單元83內生成的共用密鑰CK(I)存儲于易失性存儲器內。共用密鑰CK(I)在半導體裝置80斷電時被擦除。注意,共用密鑰CK(I)在采取了安全措施(例如,加密)之后可以根據需要存儲于非易失性存儲器內,以及可以對存儲于非易失性存儲器內的共用密鑰CK(I)實行諸如在半導體裝置80斷電時通過寫入來擦除數據的措施。共用密鑰生成單元83通過使用由唯一碼生成單元81輸出的唯一碼UC(b)以及由半導體裝置90供應的校正數據(第二校正數據)⑶(l,b)來生成共用密鑰CK(I)。共用密鑰生成單元83起著唯一碼校正單元的作用。共用密鑰生成單元83的基本配置和操作與第一實施例所描述的共用密鑰生成單元13的基本配置和操作是相同的,并且在此省略關于它的多余解釋。半導體裝置(第三半導體裝置)90包括用于存儲校正數據的數據庫91。圖10是示出存儲于數據庫91內的數據的實例的表格。如圖10所示,與半導體裝置(ICa、ICb、ICc、···、ICz)以及在半導體裝置內生成的公開密鑰(CK(I)、CK (2)、CK (3)、…、CK (η))關聯的校正數據CD (I, a)、CD (I, b)、…被存儲于數據庫91內。例如,在半導體裝置ICa內生成共用密鑰CK(I)的情形中,校正數據⑶(1,a)被傳輸給半導體裝置ICa。此外,在半導體裝置ICb內生成共用密鑰CK(I)的情形中,校正數據⑶(l,b)被傳輸給半導體裝置ICb。同樣地,例如,在半導體裝置ICa內生成共用密鑰CK(3)的情形中,校正數據CD (3,a)被傳輸到半導體裝置ICa。此外,例如,在半導體裝置ICb內生成共用密鑰CK(3)的情形中,校正數據⑶(3,b)被傳輸給半導體裝置ICb。 在根據本實施例的密碼通信系統中,即使在唯一碼UC(a)和UC(b)不同時,也能夠通過使用操作參數對已校正錯誤的唯一碼UC(a)"和UC(b)"執行不同的操作來生成相同的共用密鑰CK(I)(參見第一實施例)。此外,共用密鑰CK能夠通過改變校正數據⑶的操作參數來改變。因而,能夠通過改變校正數據CD的操作參數來生成多個共用密鑰,如同圖10所示的共用密鑰CK(I)、CK(2)、CK(3)、-XK(η) 一樣。因而,在根據本實施例的密碼通信系統中,通過改變由半導體裝置90定期地傳輸給半導體裝置70和80的校正數據CD,能夠容易地改變半導體裝置70和80的共用密鑰CK,從而能夠容易地提高安全級別。注意,因為由半導體裝置90傳輸給半導體裝置70和80的校正數據⑶是具有高安全級別的信息,所以在將校正數據CD傳輸給半導體裝置70和80時,可以在傳輸之前使用公開密鑰密碼體制來加密校正數據⑶。在這種情況下,例如,半導體裝置70具有半導體裝置70的私有密鑰,以及半導體裝置90在傳輸校正數據CD(l,a)時使用半導體裝置70的公開密鑰來加密校正數據CD(1,a)。然后,半導體裝置70使用私有密鑰來解密所加密的校正數據CD(1,a),使得加密的校正數據能夠由半導體裝置90傳輸給半導體裝置70。根據本實施例的密碼通信系統4的操作在下面參照圖11的流程圖來描述。首先,半導體裝置ICs (90)將校正數據⑶(l,a)傳輸給半導體裝置ICa (70)(步驟S41)。然后,半導體裝置70的共用密鑰生成單元73使用由唯一碼生成單元71輸出的唯一碼UC(a)以及由半導體裝置90傳輸來的校正數據⑶(1,a)來生成共用密鑰CK(I)(步驟S42)。此外,半導體裝置ICs (90)將校正數據⑶(l,b)傳輸給半導體裝置ICb (80)(步驟S43)。然后,半導體裝置80的共用密鑰生成單元83使用由唯一碼生成單元81輸出的唯一碼UC(b)以及由半導體裝置90傳輸來的校正數據CD(l,b)來生成共用密鑰CK(I)(步驟S44)。在該過程中,半導體裝置70和半導體裝置80兩者能夠具有共用密鑰CK (I)。因而,半導體裝置70和半導體裝置80能夠使用共用密鑰CK(I)來執行密碼通信(步驟S45)。注意,上述步驟的順序能夠適當地改變,只要它是一致的。注意,當將校正數據CD從半導體裝置90傳輸到半導體裝置70或80時,校正數據⑶可以由半導體裝置90定期地傳輸給半導體裝置70或80。作為選擇,校正數據⑶可以在半導體裝置70或80請求傳輸校正數據CD時由半導體裝置90傳輸給半導體裝置70或80。半導體裝置90與半導體裝置70和80可以經由有線或無線的方式來相互連接。此夕卜,半導體裝置90與半導體裝置70和80可以被配置為僅在傳輸和接收校正數據CD時相互連接。而且,半導體裝置90可以通過互聯網將校正數據⑶傳輸給半導體裝置70和80。在這種情況下,為了安全起見,優選的是使用上述方法來加密校正數據⑶。此外,系統可以按某種方式來配置,使得多組半導體裝置使用不同的共用密鑰CK來彼此通信。例如,半導體裝置ICd、ICe和ICf可以被配置為使用共用密鑰CK(2)來相互通信,以及半導體裝置ICg、ICh和ICi可以被配置為使用共用密鑰CK⑶來相互通信。在這種情況下,用于生成共用密鑰CK(2)的校正數據⑶(2,d)、⑶(2,e)和⑶(2,f)由半導體裝置90分別傳輸給半導體裝置ICcUICe和ICf。此外,用于生成共用密鑰CK(3)的校正數據⑶(3,g)、⑶(3,h)及⑶(3,i)由半導體裝置90分別傳輸給半導體裝置ICg、ICh和ICi。以此方式,在根據本實施例的密碼通信系統中,包括用于集中管理校正數據CD的 半導體裝置90。因而,不需要將用于生成共用密鑰CK的校正數據CD存儲于半導體裝置70和80內,這提高了密碼通信系統的安全性。因為具有高安全級別的校正數據被存儲于半導體裝置90的數據庫91內,所以優選的是使用安全微型計算機來配置半導體裝置90。另一方面,具有高安全級別的共用密鑰CK的信息并沒有存儲于半導體裝置70和80中的非易失性存儲器內,因而半導體裝置70和80能夠使用通用微型計算機來配置。但是,安全微型計算機可以用于半導體裝置70和80以便進一步提高密碼通信系統的安全級別。此外,在根據本實施例的密碼通信系統中,因為校正數據CD使用數據庫91進行集中管理,所以每個半導體裝置的共用密鑰CK能夠被容易地改變。因而,可以容易地定期改變半導體裝置70和80的共用密鑰CK,這會進一步提供密碼通信系統的安全性。〈第五實施例〉本發明的第五實施例將在下面描述。圖12是示出根據本實施例的密碼通信系統的框圖。在第四實施例所描述的密碼通信系統中于數據庫91內集中管理校正數據,而在本實施例中待傳輸給半導體裝置ICa (110)和半導體裝置ICb (120)的校正數據使用包含于半導體裝置130內的校正數據生成單元132來生成。其他配置與根據第四實施例的密碼通信系統的配置是基本上相同的。這將在下面詳細地描述。圖12所示的密碼通信系統5包括半導體裝置110、120和130。半導體裝置110包括唯一碼生成單元111、存儲單元112和共用密鑰生成單元113。唯一碼生成單元111生成為半導體裝置110所獨有的唯一碼UC(a),并且將其輸出到共用密鑰生成單元113和半導體裝置130的校正數據生成單元132。唯一碼生成單元111的基本配置和操作與第一實施例所描述的唯一碼生成單元11的基本配置和操作是相同的,并且在此省略關于它的多余解釋。存儲單元112將在共用密鑰生成單元113內生成的共用密鑰CK(I)存儲于易失性存儲器內。共用密鑰CK(I)在半導體裝置110斷電時被擦除。注意,共用密鑰CK(I)在采取了安全措施(例如,加密)之后可以根據需要存儲于非易失性存儲器內,以及可以對存儲于非易失性存儲器內的共用密鑰CK(I)實行諸如在半導體裝置110斷電時通過寫入來擦除數據的措施。共用密鑰生成單元113使用由唯一碼生成單元111輸出的唯一碼UC(a)以及由半導體裝置130供應的校正數據⑶(1,a)來生成共用密鑰CK(I)。共用密鑰生成單元113起著唯一碼校正單元的作用。共用密鑰生成單元113的基本配置和操作與第一實施例所描述的共用密鑰生成單元13的基本配置和操作是相同的,并且在此省略關于它的多余解釋。半導體裝置120包括唯一碼生成單元121、存儲單元122和共用密鑰生成單元123。唯一碼生成單元121生成為半導體裝置120所獨有的唯一碼UC(b),并且將其輸出到共用密鑰生成單元123和半導體裝置130的校正數據生成單元132。唯一碼生成單元121的基本配置和操作與根據第一實施例所描述的唯一碼生成單元11的基本配置和操作是相同的,并且在此省略關于它的多余解釋。存儲單元122將在共用密鑰生成單元123內生成的共用密鑰CK(I)存儲于易失性存儲器內。共用密鑰CK(I)在半導體裝置120斷電時會被擦除。注意,共用密鑰CK(I)在
采取了安全措施(例如,加密)之后可以根據需要存儲于非易失性存儲器內,以及可以對存儲于非易失性存儲器內的共用密鑰CK(I)實行諸如在半導體裝置120斷電時通過寫入來擦除數據的措施。共用密鑰生成單元123使用由唯一碼生成單元121輸出的唯一碼UC(b)以及由半導體裝置130供應的校正數據CD(1,b)來生成共用密鑰CK(I)。共用密鑰生成單元123起著唯一碼校正單元的作用。共用密鑰生成單元123的基本配置和操作與第一實施例所描述的共用密鑰生成單元13的基本配置和操作是相同的,并且在此省略關于它的多余解釋。半導體裝置130包括存儲單元131和校正數據生成單元132。存儲單元131將共用密鑰CK(I)存儲于非易失性存儲器內。共用密鑰CK(I)的信息在半導體裝置130斷電時不會被擦除。因而,優選的是使用安全微型計算機來配置半導體裝置130,以便防止共用密鑰CK(I)的信息由于半導體裝置受到未授權的分析而泄露給第三方。注意,半導體裝置110和120可以使用通用微型計算機來配置,如同在第四實施例的情形中那樣。校正數據生成單元132使用半導體裝置110的唯一碼UC (a)以及存儲于半導體裝置131內的共用密鑰CK(I)來生成校正數據⑶(1,a)。此外,校正數據生成單元132使用半導體裝置120的唯一碼UC (b)以及存儲于半導體裝置131內的共用密鑰CK(I)來生成校正數據CD(Lb)0在校正數據生成單元132生成校正數據時的操作將在下面參照圖14詳細地描述。盡管在下面描述了校正數據生成單元132生成校正數據⑶(1,a)的情形,但是這同樣適用于校正數據生成單元132生成校正數據⑶(1,b)的情形。首先,校正數據生成單元132從半導體裝置ICa (110)多次獲得唯一碼UC(a)(步驟S61)。然后,校正數據生成單元132在統計上處理在步驟S61獲得的唯一碼UC (a),并且將唯一碼UC(a)的各個位分類成(I)具有穩定值的位、(2)具有高變化性的位(S卩,值的變化相對較大的位)以及(3)具有低變化性的位(S卩,值的變化相對較小的位)。然后,校正數據生成單元132使用(2)具有高變化性的位來生成屏蔽數據(步驟S62)。此時,用于指示唯一碼UC(a)的各個位當中以比指定閾值更高的變化性變化的位的位置的信息被設定為屏蔽數據。例如,在圖4所示的屏蔽數據中,具有高變化性的位的位置(S卩,待屏蔽的位置)由“O”指示。然后,校正數據生成單元132使用在步驟S62內生成的屏蔽數據來屏蔽唯一碼UC(a),并且消去具有高變化性的位。它然后生成用于校正屏蔽唯一碼UC(a)’(即,含有具有穩定值的位以及具有低變化性的位的唯一碼)的錯誤的ECC碼(步驟S63)。例如,ECC碼是BCH碼或RS碼。然后,校正數據生成單元132使用利用在步驟S62生成的屏蔽數據以及在步驟S63生成的ECC碼處理過的唯一碼UC(a)"(該唯一碼UC(a)"是含有具有穩定值的位的唯一碼)以及存儲于存儲單元131內的共用密鑰CK(I)來生成操作參數(步驟S64)。操作參數是用于根據校正的唯一碼UC(a)"來生成共用密鑰CK(I)所需的參數。最后,校正數據生成單元132將由上述過程生成的屏蔽數據、ECC碼和操作參數作為校正數據⑶(l,a)傳輸給半導體裝置ICa (110)(步驟S65)。根據本實施例的密碼通信系統5的操作將在下面參照圖13的流程圖來描述。首先,半導體裝置ICa (110)將唯一碼UC(a)傳輸到半導體裝置ICs (130)的校正數據生成單元132 (步驟S51)。然后,半導體裝置130的校正數據生成單元132使用傳輸來的唯一 碼UC(a)和共用密鑰CK(I)來生成校正數據⑶(1,a)(步驟S52)。對于用于生成校正數據⑶(l,a)的校正數據生成單元132,有必要多次獲得唯一碼UC (a)。因而,步驟S51被重復以多次獲得唯一碼UC(a)。所生成的校正數據⑶(1,a)被傳輸給半導體裝置110(步驟S53)。半導體裝置110的共用密鑰生成單元113使用由唯一碼生成單元111輸出的唯一碼UC (a)以及從半導體裝置130傳輸來的校正數據⑶(1,a)來生成共用密鑰CK(I)(步驟S54)。此外,半導體裝置ICb (120)將唯一碼UC (b)傳輸給半導體裝置ICs (130)的校正數據生成單元132 (步驟S55)。然后,半導體裝置130的校正數據生成單元132使用傳輸來的唯一碼UC(b)和共用密鑰CK(I)來生成校正數據⑶(l,b)(步驟S56)。對于用于生成校正數據⑶(l,b)的校正數據生成單元132,有必要多次獲得唯一碼UC (b)。因而,步驟S55被重復以多次獲得唯一碼UC (b)。所生成的校正數據⑶(l,b)被傳輸給半導體裝置120(步驟S57)。半導體裝置120的共用密鑰生成單元123使用由唯一碼生成單元121輸出的唯一碼UC (b)以及由半導體裝置130傳輸來的校正數據CD (l,b)來生成共用密鑰CK (I)(步驟 S58)。通過上述過程,半導體裝置110和半導體裝置120兩者能夠具有共用密鑰CK(I)。因而,半導體裝置110和半導體裝置120能夠使用共用密鑰CK(I)來執行密碼通信(步驟S59)。注意,上述步驟的順序能夠適當地改變,只要它是一致的。例如,步驟S51到S54和步驟S55到S58可以并行地執行。如上所述,同樣地,在根據本實施例的密碼通信系統中,包括用于集中管理校正數據的半導體裝置130。因而,沒有必要將用于生成共用密鑰的校正數據存儲于半導體裝置110和120內,這提高了密碼通信系統的安全性。因為具有高安全級別的校正數據被存儲于半導體裝置130的數據庫131內,所以優選的是使用安全微型計算機來配置半導體裝置130。另一方面,具有高安全級別的共用密鑰CK的信息并沒有存儲于半導體裝置110和120中的非易失性存儲器內,因而半導體裝置110和120能夠使用通用微型計算機來配置。但是,為了進一步提高密碼通信系統的安全級別,可以將安全微型計算機用于半導體裝置110和 120。〈第六實施例〉本發明的第六實施例將在下面描述。圖15是示出根據本實施例的密碼通信系統的框圖。在根據第五實施例的密碼通信系統中,描述了半導體裝置ICa (110)和半導體裝置ICb (120)具有相同的共用密鑰CK(I)的情形。在根據本實施例的密碼通信系統中,半導體裝置ICa (140)和半導體裝置ICb (150)具有不同的共用密鑰,并且彼此通過半導體裝置ICs (160)來通信。其他配置與根據第五實施例的密碼通信系統的配置是基本上相同的。這將在下面詳細地描述。圖15所示的密碼通信系統6包括半導體裝置140、150和160。半導體裝置140包括唯一碼生成單元141、存儲單元142和共用密鑰生成單元143。唯一碼生成單元141生成為半導體裝置140所獨有的唯一碼UC(a),并且將其輸出到共用密鑰生成單元143和半導體裝置160的校正數據生成單元162。唯一碼生成單元141的基本配置和操作與第一實施例所描述的唯一碼生成單元11的基本配置和操作是相同的,并且在此省略關于它的多余解釋。存儲單元142將在共用密鑰生成單元143內生成的共用密鑰(第一共用密鑰)CK(I)存儲于易失性存儲器內。共用密鑰CK(I)在半導體裝置140斷電時被擦除。 共用密鑰生成單元143使用由唯一碼生成單元141輸出的唯一碼UC(a)以及由半導體裝置160供應的校正數據CD(1,a)來生成共用密鑰CK(I)。共用密鑰生成單元143起著唯一碼校正單元的作用。共用密鑰生成單元143的基本配置和操作與第一實施例所描述的共用密鑰生成單元13的基本配置和操作是相同的,并且在此省略關于它的多余解釋。半導體裝置150包括唯一碼生成單元151、存儲單元152和共用密鑰生成單元153。唯一碼生成單元151生成為半導體裝置150所獨有的唯一碼UC (b),并且將其輸出到共用密鑰生成單元153和半導體裝置160的校正數據生成單元162。唯一碼生成單元151的基本配置和操作與根據第一實施例所描述的唯一碼生成單元11的基本配置和操作是相同的,并且在此省略關于它的多余解釋。存儲單元152將在共用密鑰生成單元153內生成的共用密鑰(第二共用密鑰)CK(2)存儲于易失性存儲器內。共用密鑰CK(2)在半導體裝置150斷電時被擦除。共用密鑰生成單元153使用由唯一碼生成單元151輸出的唯一碼UC(b)以及由半導體裝置160供應的校正數據⑶(2,b)來生成共用密鑰CK (2)。共用密鑰生成單元153起著唯一碼校正單元的作用。共用密鑰生成單元153的基本配置和操作與第一實施例所描述的共用密鑰生成單元13的基本配置和操作是相同的,并且在此省略關于它的多余解釋。半導體裝置160包括存儲單元161和校正數據生成單元162。存儲單元161將共用密鑰CK(I)和共用密鑰CK(2)存儲于非易失性存儲器內。共用密鑰CK(I)和共用密鑰CK(2)的信息即使在半導體裝置160斷電時也不會被擦除。因而,優選的是使用安全微型計算機來配置半導體裝置160,以便防止共用密鑰CK(I)和共用密鑰CK(2)的信息由于半導體裝置受到未授權的分析而泄露給第三方。注意,半導體裝置140和150可以使用通用微型計算機來配置,如同在第五實施例的情形中那樣。校正數據生成單元162使用半導體裝置140的唯一碼UC (a)以及存儲于半導體裝置161內的共用密鑰CK(I)來生成校正數據⑶(1,a)。此外,校正數據生成單元162使用半導體裝置150的唯一碼UC (b)以及存儲于半導體裝置161內的共用密鑰CK (2)來生成校正數據CD(2,b)。
根據本實施例的密碼通信系統6的操作將在下面參照圖16的流程圖來描述。首先,半導體裝置ICa (140)將唯一碼UC(a)傳輸給半導體裝置ICs (160)的校正數據生成單元162 (步驟S71)。然后,半導體裝置160的校正數據生成單元162使用傳輸來的唯一碼UC(a)和共用密鑰CK(I)來生成校正數據⑶(l,a)(步驟S72)。對于用于生成校正數據⑶(l,a)的校正數據生成單元162,有必要多次獲得唯一碼UC (a)。因而,步驟S71被重復以多次獲得唯一碼UC(a)。所生成的校正數據⑶(l,a)被傳輸給半導體裝置140(步驟S73)。半導體裝置140的共用密鑰生成單元143使用由唯一碼生成單元141輸出的唯一碼UC(a)以及從半導體裝置160傳輸來的校正數據⑶(1,a)來生成共用密鑰CK(I)(步驟S74)。此外,半導體裝置ICb (150)將唯一碼UC (b)傳輸給半導體裝置ICs (160)的校正數據生成單元162 (步驟S75)。然后,半導體裝置160的校正數據生成單元162使用傳輸來的唯一碼UC(b)和共用密鑰CK(2)來生成校正數據⑶(2,b)(步驟S76)。對于用于生成校正數據⑶(2,b)的校正數據生成單元162,有必要多次獲得唯一碼UC (b)。因而,步驟S75被重復以多次獲得唯一碼UC (b)。所生成的校正數據⑶(2,b)被傳輸給半導體裝置150(步驟S77)。半導體裝置150的共用密鑰生成單元153使用由唯一碼生成單元151輸出的 唯一碼UC (b)以及由半導體裝置160傳輸來的校正數據CD (2,b)來生成共用密鑰CK (2)(步驟 S78)。通過上述過程,半導體裝置140和半導體裝置160兩者能夠具有共用密鑰CK(I)。因而,半導體裝置140和半導體裝置160能夠使用共用密鑰CK(I)來執行密碼通信(步驟S79)。此外,半導體裝置150和半導體裝置160兩者能夠具有共用密鑰CK(2)。因而,半導體裝置150和半導體裝置160能夠使用共用密鑰CK (2)來執行密碼通信(步驟S80)。因此,半導體裝置140和半導體裝置150能夠通過半導體裝置160 (網關配置)來通信。注意,上述步驟的順序能夠適當地改變,只要它是一致的。例如,步驟S71到S74和步驟S75到S78可以并行地執行。如上所述,同樣地,在根據本實施例的密碼通信系統中,包括用于集中管理校正數據的半導體裝置160。因而,沒有必要將用于生成共用密鑰的校正數據存儲于半導體裝置140和150內,這提高了密碼通信系統的安全性。因為具有高安全級別的校正數據被存儲于半導體裝置160的數據庫161內,所以優選的是使用安全微型計算機來配置半導體裝置160。另一方面,具有高安全級別的共用密鑰CK的信息并沒有存儲于半導體裝置140和150中的非易失性存儲器內,因而半導體裝置140和150能夠使用通用微型計算機來配置。但是,為了進一步提高密碼通信系統的安全級別,可以將安全微型計算機用于半導體裝置140和 150。〈第七實施例〉本發明的第七實施例將在下面描述。圖17是示出將根據第一到第六實施例的密碼通信系統應用于車載半導體裝置的情形的框圖。如圖17所示,車輛180包括網關(gateway)單元170、故障診斷單元171、引擎控制單元172、制動控制單元173、車燈控制單元174、門鎖控制單元175、鑰匙插入控制單元176、汽車導航系統178和DCM (數據通信模塊)179。網關單元170是用于中繼包括單元171到176和汽車導航系統178的網絡的設備。安全微型計算機ICs包含于網關單元170內。故障診斷單元171是用于對車輛180的構件是否有故障進行診斷的單元。半導體裝置ICa包含于故障診斷單元171內。引擎控制單元172是用于對引擎操作進行全面電控制(燃料供給、點火定時控制等)的單元。半導體裝置ICb包含于引擎控制單元172內。制動控制單元173是用于控制諸如ABS (防抱死系統)之類的制動器的單元。半導體裝置ICc包含于制動控制單元173內。車燈控制單元174是用于控制車輛的前燈、指示燈等的單元。半導體裝置ICd包含于車燈控制單元174內。門鎖控制單元175是用于控制門鎖的單元。半導體裝置ICe以及用于與鑰匙177無線電通信的通信單元包含于門鎖控制單元175內。鑰匙插入控制單元176是用于確定所插入的鑰匙177是否是有效的用戶鑰匙的單元。半導體裝置ICf以及用于與鑰匙177無線電通信的通信單元包含于鑰匙插入控制單元176內。半導體裝置ICg以及用于與門鎖控制單元175及鑰匙插入控制單元176無線電通信的通信單元包含于鑰匙177內。例如,通用微型計算機可以用于包含于各個單元171到176和鑰匙177內的半導體裝置ICa到ICg。安全微型計算機ICh包含于汽車導航系統178內。DCM179是用于將從車輛內的 單元171到176中獲得的信息傳輸到外部服務器181或者從服務器181獲取信息的通信模塊。各個單元171到176和汽車導航系統178與網關單元170連接,以及單元171到176被配置以能夠通過網關單元170相互通信。用于在各個單元171到176與網關單元170之間的通信的共用密鑰在單元和單元之間可以是不同的。例如,共用密鑰CK(I)可以用于故障診斷單元171與網關單元170之間的通信,以及共用密鑰CK⑵可以用于引擎控制單元172與網關單元170之間的通信。注意,在這種情況下,在圖15所示的根據第六實施例的密碼通信系統6中的半導體裝置ICa (140)對應于故障診斷單元171,半導體裝置ICb
(150)對應于引擎控制單元172,以及半導體裝置ICs (160)對應于網關單元170。用來生成待用于各個單元171到176與網關單元170之間的通信的共用密鑰的校正數據CD可以存儲于例如網關單元170的半導體裝置ICs或者汽車導航系統178的半導體裝置ICh內。此外,用來生成共用密鑰的校正數據⑶可以由服務器181來供應。利用由服務器181供應的校正數據⑶,待用于各個單元171到176與網關單元170之間的通信的共用密鑰能夠容易地改變。由服務器181供應的校正數據⑶可以存儲于例如網關單元170的半導體裝置ICs或者汽車導航系統178的半導體裝置ICh內。此外,汽車導航系統178可以通過DCM179將從單元171到176獲得的信息(例如,失效信息等)傳輸到服務器181。此時,可以加密在DCM179與服務器181之間的通信。在圖17的實例中,示出了其中單元171到176通過網關單元170來執行通信的配置。但是,單元171到176可以使用相同的共用密鑰來相互通信。在這種情況下,單元171到176被配置以通過例如公共總線來相互連接。存儲于各個單元171到176內的共用密鑰可以使用例如在第一實施例(圖I)、第四實施例(圖9)和第五實施例(圖12)中描述的方法來生成。〈第八實施例〉圖18是示出根據第八實施例的密碼通信系統的框圖。根據本實施例的密碼通信系統201包括半導體裝置ICa (第一半導體裝置)210和半導體裝置ICz (第二半導體裝置)220。半導體裝置ICa (210)建立了與別的半導體裝置(沒有示出)的安全網絡。在本實施例中,描述了其中半導體裝置ICz (220)被添加至包含半導體裝置ICa (210)的安全網絡的情形。半導體裝置210包括唯一碼生成單元211、存儲單元212、共用密鑰生成單元(第一共用密鑰生成單元)213及校正數據生成單元214。唯一碼生成單元211生成具有為半導體裝置210所獨有的值且含有隨機錯誤的唯一碼(第一唯一碼)UC(a),并且將其輸出到共用密鑰生成單元213。唯一碼UC(a)是由包含于半導體裝置210內的元件所固有的物理性質確定的值。例如,唯一碼生成單元211可以使用在包含于半導體裝置210內的存儲元件啟動時的值來生成唯一碼UC(a)。唯一碼是使用隨實際制作的IC而不同的性質生成的碼,盡管IC的設計是相同的。這種技術被稱為PUF (物理不可復制功能),并且這是一種即使在具有同樣電路的多個IC通過相同的制造設備同時制作于一塊半導體晶圓上時也可為各個IC生成唯一碼并且進一步使IC不可復制的技術。這種技術的使用在不需要諸如防篡改芯片之類的專用硬件的情況下實現了數據的有效隱蔽。
存儲單元212能夠存儲校正數據(第一校正數據)⑶(a)以及在共用密鑰生成單元213內生成的共用密鑰(第一共用密鑰)CK (a)。存儲單元212包括例如易失性存儲器(例如,SRAM)和非易失性存儲器(例如,閃存),校正數據CD (a)存儲于非易失性存儲器內,以及共用密鑰CK(a)存儲于易失性存儲器內。因而,盡管存儲單元212臨時性地存儲了共用密鑰CK(a),但是共用密鑰CK(a)的信息在半導體裝置210斷電時會被擦除。注意,共用密鑰CK(a)在采取了安全措施(例如,加密)之后可以根據需要存儲于非易失性存儲器內,并且可以對存儲于非易失性存儲器內的共用密鑰CK(a)實行諸如在半導體裝置210斷電時通過寫入來擦除數據的措施。共用密鑰生成單元213使用由唯一碼生成單元211輸出的唯一碼UC(a)以及存儲于存儲單元212內的校正數據CD (a)來生成共用密鑰CK (a)。在唯一碼生成單元211內生成的唯一碼UC(a)是含有在唯一碼的生成期間依據外部因素(例如,溫度和電壓)而變化的位值的數據。因此,在唯一碼生成單元211內生成的唯一碼UC(a)含有三類位(I)具有穩定值的位,(2)具有高變化性的位(即,值的變化相對較大的位)以及(3)具有低變化性的位(S卩,值的變化相對較小的位)。以此方式,在唯一碼生成單元211內生成的唯一碼UC(a)含有(2)具有高變化性的位以及(3)具有低變化性的位。因此,唯一碼UC(a)在每次生成時都具有不同的值。具有高變化性的位能夠在制作過程中找到。因而,通過在制作過程中作出每個位的判定,能夠產生用于屏蔽具有高變化性的位的屏蔽數據。通過使用屏蔽數據來屏蔽在唯一碼生成單元211內生成的唯一碼UC(a),能夠消去在UC(a)內所含有的具有高變化性的位。因為具有高變化性的位的位置在裝置與裝置之間是不同的,所以屏蔽數據是為半導體裝置所獨有的數據。另一方面,具有低變化性的位由于外部因素、剩余電荷等而變化,并因而難以作出估計。因此,對于具有低變化性的位,例如ECC碼(例如,BCH碼或RS碼(Reed-Solomoncode))在制作期間生成,以及用于消去具有變化性的位的錯誤校正使用ECC碼來執行。共用密鑰生成單元213的操作將在下文特別地描述。圖20是解釋共用密鑰生成單元213的操作的流程圖,以及圖21是示出在共用密鑰生成單元213內處理的唯一碼的實例的表格。首先,共用密鑰生成單元213從唯一碼生成單元211中讀取唯一碼UC(a)(步驟Sill)。在該步驟內所讀取的唯一碼UC(a)是尚未對其進行用于消去具有可變性的位的錯誤校正的唯一碼。然后,共用密鑰生成單元213使用包含于校正數據⑶(a)內的屏蔽數據來屏蔽所讀取的唯一碼UC(a)(步驟S112)。屏蔽數據是用于屏蔽在唯一碼UC(a)的各個位當中具有高誤碼率的、具有可變位值的位的數據。在圖21所示的實例中,因為唯一碼UC(a)的第一位和第六位的誤碼率是高的,所以屏蔽數據是“O”。因為其他位是具有低誤碼率的位或者具有穩定值的位,所以屏蔽數據是“I”。換 言之,用于需要屏蔽的位的屏蔽數據是“0”,以及用于不需要屏蔽的位的屏蔽數據是“I”。通過使用屏蔽數據來屏蔽唯一碼UC(a),能夠獲得其中消去了唯一碼UC(a)的第一位和第六位的屏蔽唯一碼UC(a)’(通過屏蔽消去的位由“X”指示)。之后,使屏蔽唯一碼UC(a)’左對齊。然后,使用包含于校正數據⑶(a)內的ECC碼(錯誤校正碼),共用密鑰生成單元213校正包含于屏蔽唯一碼UC(a)’內的具有低程度的變化性的位的錯誤,由此獲得唯一碼UC(a)〃(步驟S113)。在圖21所示的實例中,由于屏蔽唯一碼UC(a)’使用ECC碼來處理,因而第一位從“O”校正為“I”。然后,共用密鑰生成單元213使用包含于校正數據⑶(a)內的操作參數來執行對已校正錯誤的唯一碼UC(a)"的指定操作(步驟S114)。在圖21所示的實例中,對已校正錯誤的唯一碼UC(a)"執行非(NOT)操作。在該操作之后的唯一碼UC(a)是共用密鑰CK (a)。注意,非操作只是一個示例,以及可以對已校正錯誤的唯一碼UC(a)"執行任何操作。通過改變操作參數,可以根據需要來改變共用密鑰CK(a)。此外,通過使用操作參數來執行對已校正錯誤的唯一碼UC(a)"的指定操作,共用密鑰CK(a)能夠被生成為與唯一碼UC(a)不明顯類似的碼。這進一步提高了安全級別。而且,可以跳過對已校正錯誤的唯一碼UC(a)"執行的操作。在這種情況下,使用屏蔽數據和ECC碼處理過的唯一碼UC(a)"用作共用密鑰CK (a)。以此方式生成的共用密鑰CK (a)被輸出到存儲單元212。如上所述,共用密鑰生成單元213具有生成共用密鑰CK (a)的功能,以及還具有使用校正數據⑶(a)來校正唯一碼UC(a)的功能。因而,共用密鑰生成單元213也起著唯一碼校正單元的作用。注意,包含于校正數據⑶(a)內的屏蔽碼、ECC碼和操作參數被預先生成為半導體裝置210的唯一數據,并且存儲于存儲單元212內。用于生成校正數據⑶(a)的方法與校正數據生成單元214生成校正數據⑶(z)的情形中的方法相同。校正數據生成單元214使用半導體裝置220的唯一碼(第二唯一碼)UC(Z)和共用密鑰CK (a)來生成校正數據(第二校正數據)⑶(Z)。在校正數據生成單元214生成校正數據時的操作將在下面參照圖22詳細地描述。首先,校正數據生成單元214從半導體裝置ICz (220)多次獲得唯一碼UC(Z)(步驟S121)。然后,校正數據生成單元214在統計上處理在步驟S121獲得的唯一碼UC(Z),并且將唯一碼UC(Z)的各個位分類成(I)具有穩定值的位、(2)具有高變化性的位(B卩,值的變化相對較大的位)以及(3)具有低變化性的位(即,值的變化相對較小的位)。然后,校正數據生成單元214使用(2)具有高變化性的位來生成屏蔽數據(步驟S122)。此時,用于指示唯一碼UC(Z)的各個位當中以比指定閾值更高的概率變化的位的位置的信息被設定為屏蔽數據。例如,在圖21所示的屏蔽數據中,具有高變化性的位的位置(S卩,待屏蔽的位置)由“O”指示。然后,校正數據生成單元214使用在步驟S122內生成的屏蔽數據來屏蔽唯一碼UC(Z),并且消去具有高變化性的位。它然后生成用于進行校正的ECC碼,以去除屏蔽唯一碼UC(a)’(即,含有具有穩定值的位以及具有低變化性的位的唯一碼)中具有變化性的位(步驟S123)。例如,ECC碼是BCH碼或RS碼。然后,校正數據生成單元214使用利用在步驟S122生成的屏蔽數據以及在步驟S123生成的ECC碼處理過的唯一碼UC (a)"(該唯一碼UC (a)"是含有具有穩定值的位的唯一碼)以及存儲于存儲單元212內的共用密鑰CK(a)來生成操作參數(步驟S124)。因而,操作參數是用于根據校正的唯一碼UC(Z)"來生成共用密鑰CK(a)所需的參數。最后,校正數據生成單元214將由上述過程生成的屏蔽數據、ECC碼和操作參數作為校正數據⑶(z)傳輸給半導體裝置ICz (220)(步驟S125)。注意,用于生成校正數據⑶(Z)的過程(步驟S121到S125)可以按照分布的方式在 多個半導體裝置當中來執行。圖23是示出其中校正數據CD(Z)使用多個半導體裝置ICa、ICb、ICc和ICd來生成的情形的示意圖。半導體裝置ICa、ICb、ICc和ICd建立了安全網絡。在圖23所示的實例中,半導體裝置ICa執行步驟S121和S125。因而,半導體裝置ICa起著對于半導體裝置ICz的告知方(teller)的作用。半導體裝置ICb執行步驟S122(屏蔽數據生成)。半導體裝置ICc執行步驟S123(ECC碼生成)。半導體裝置ICd執行步驟S124 (操作參數生成)。注意,圖23所示的實例是一個示例,以及用于執行各個步驟的半導體裝置可以任意地分配。以此方式,通過以分布的方式在多個半導體裝置當中執行用于生成校正數據CD(Z)的過程(S121到S125),可以提高密碼通信系統的安全級別,以及避免負載集中于一個半導體裝置上。圖18所示的半導體裝置220包括唯一碼生成單元221、存儲單元222和共用密鑰生成單元(第二共用密鑰生成單元)223。唯一碼生成單元221生成具有為半導體裝置220所獨有的值且含有隨機錯誤的唯一碼UC(Z),并將其輸出到校正數據生成單元214和共用密鑰生成單元223。注意,唯一碼生成單元221的配置和操作是與以上所述的唯一碼生成單元211基本上相同的。存儲單元222能夠具有在共用密鑰生成單元223內生成的共用密鑰CK(a)。存儲單元222將共用密鑰CK(a)存儲于易失性存儲器內。因而,盡管存儲單元222臨時存儲著共用密鑰CK(a),但是共用密鑰CK(a)的信息在半導體裝置220斷電時會被擦除。注意,共用密鑰CK(a)在采取了安全措施(例如,加密)之后可以根據需要存儲于非易失性存儲器內,以及可以對存儲于非易失性存儲器內的共用密鑰CK(a)實行諸如在半導體裝置220斷電時通過寫入來擦除數據的措施。共用密鑰生成單元223使用由唯一碼生成單元221輸出的唯一碼UC(Z)以及由校正數據生成單元214輸出的校正數據⑶(z)來生成共用密鑰(第一共用密鑰)CK (a)。注意,用于在共用密鑰生成單元223內生成共用密鑰CK(a)的方法是與以上所描述的用于在共用密鑰生成單元213內生成共用密鑰CK(a)的方法基本上相同的。根據本實施例的密碼通信系統的操作在下文參照圖19的流程圖來描述。首先,半導體裝置ICa (210)的共用密鑰生成單元213使用由唯一碼生成單元211輸出的唯一碼UC (a)以及存儲于存儲單元212內的校正數據⑶(a)來生成共用密鑰CK (a)(步驟S101)。然后,半導體裝置ICa (210)使用共用密鑰CK(a)來啟動與其他半導體裝置ICb到ICy (沒有示出)之間的通信(步驟S102)。半導體裝置220將半導體裝置220的唯一碼UC(Z)傳輸給半導體裝置210的校正數據生成單元214(步驟S103)。半導體裝置210的校正數據生成單元214使用半導體裝置220的唯一碼UC(Z)以及存儲于存儲單元212內的共用密鑰CK(a)來生成校正數據CD(Z)(步驟S104)。對于用于生成校正數據⑶(z)的校正數據生成單元214,有必要多次獲得唯一碼UC(Z)。因而,步驟S103被重復以多次獲得唯一碼UC(Z)。所生成的校正數據⑶(Z)被傳輸給半導體裝置220的共用密鑰生成單元223(步驟
5105)。半導體裝置220的共用密鑰生成單元223使用由唯一碼生成單元221輸出的唯一碼UC(Z)以及由校正數據生成單元214輸出的校正數據⑶(z)來生成共用密鑰CK(a)(步驟
5106)。通過上述過程,所添加的半導體裝置220能夠具有共用密鑰CK(a)。因而,所添加的 半導體裝置(ICz)220變得能夠使用共用密鑰CK(a)來執行與半導體裝置(ICa)210和其他半導體裝置ICb到ICy之間的密碼通信(步驟S107)。該過程是根據所傳輸來的數據UC(Z)來計算校正數據CD(Z)并且如上所描述的那樣將其發送回去的過程。有一種可能惡意攻擊者使用所制備的ICz來重復該過程或者重復傳輸不同的數據UC (z),并且由此通過CD (z)以及在該過程中的電流波形數據來分析共用密鑰生成單元的算法。因此,優選的是對圖19所示的流程的次數設定限值(例如,大約3-5次)。如同先前所描述的,在將半導體裝置ICz添加到其中建立了安全通信的密碼通信系統的情形中,有必要驗證待添加的半導體裝置ICz是否是適當的半導體裝置。但是,為了驗證待添加的半導體裝置ICz是否是適當的半導體裝置,有必要將例如昂貴的安全服務器并入密碼通信系統中。這會導致密碼通信系統的成本增加。另一方面,在根據本實施例的密碼通信系統中,在半導體裝置210內的校正數據生成單元214通過使用具有為半導體裝置220所獨有的值且含有隨機錯誤的唯一碼UC(Z)及共用密鑰CK(a)來生成用于校正唯一碼UC(Z)的校正數據⑶(z),并且在半導體裝置220內的共用密鑰生成單元223使用半導體裝置220的校正數據⑶(z)和唯一碼UC (z)來生成共用密鑰CK (a)。因而,可保證半導體裝置ICa (210)和半導體裝置ICz (220)基于相同的規則來生成共用密鑰CK(a),從而保證將半導體裝置ICz (220)添加至包括半導體裝置ICa
(210)的安全網絡內的安全性。因此,因為沒有必要為了驗證待添加的半導體裝置ICz是否是適當的半導體裝置而將昂貴的安全服務器并入密碼通信系統內,所以可以容易地且低成本地將半導體裝置添加到其中執行安全通信的密碼通信系統內。此外,在根據本實施例的密碼通信系統中,在半導體裝置210內的共用密鑰生成單元213使用具有為半導體裝置210所獨有的值的唯一碼UC (a)及校正數據⑶(a)來生成共用密鑰CK(a)。此外,在半導體裝置220內的共用密鑰生成單元223使用具有為半導體裝置220所獨有的值的唯一碼UC(Z)及校正數據CD (z)來生成共用密鑰CK (a)。因為作為重要數據的共用密鑰CK(a)并沒有直接存儲于存儲單元212和222內,所以即使半導體裝置受到非授權的分析也不會發生共用密鑰CK(a)的數據泄漏。因此,在根據本實施例的密碼通信系統中,可以提高安全性以及容易地且低成本地將半導體裝置添加到其中執行安全通信的密碼通信系統內。用于分析半導體裝置以便非授權地獲得數據的方法有如下這些。(I)用于使用FIB (聚焦離子束)對半導體裝置進行修改以及使用探針對半導體裝置進行物理分析的方法。(2)用于通過將電磁波(例如,激光束)施加于半導體裝置或者將噪聲插入電源端子來使CPU失控并由此以非授權的方式獲得數據的故障樹分析法。(3)用于觀察半導體裝置的電流消耗以及分析密鑰數據(key data)的泄漏分析法。為了防止非授權的分析,在需要高安全級別的領域內,使用了具有高安全級別的微型計算機(以下稱為安全微型計算機)。安全微型計算機具有用于保護布線區的罩蓋、用 于檢測光或信號噪聲的功能、用于通過將隨機數信號與信號結合來干擾電流的功能等。以此方式,可以通過使用安全微型計算機來防止第三方對半導體裝置的非授權分析。但是,在使用安全微型計算機的情形中,盡管能夠防止非授權的分析,但是半導體裝置的制造商也由于其防篡改性高而無法執行失效分析和故障分析。特別地,在用于汽車用途的車載微型計算機(ECU等)中,半導體裝置的失效分析和故障分析是必要的,因為需要高可靠性。由于該原因,具有比安全微型計算機低的安全級別的通用微型計算機廣泛地作為車載微型計算機來使用。因而,需要在使用通用微型計算機的情況下提高半導體裝置的安全級別的密碼通信系統來用于車載微型計算機。在根據本實施例的密碼通信系統中,因為諸如共用密鑰CK(a)之類的重要數據并不直接存儲于存儲單元212和222內,所以即使半導體裝置受到非授權的分析也不會發生諸如共用密鑰CK(a)之類的重要數據的泄漏。因此,即使在半導體裝置210和半導體裝置220使用具有相對低的安全級別的通用微型計算機來配置時,也能夠實現高的安全級別。注意,被用來在半導體裝置210內生成共用密鑰CK (a)的校正數據⑶(a)是具有相對高的安全級別的信息,盡管該安全級別低于共用密鑰CK(a)的安全級別。因而,安全微型計算機可以用于其中存儲了校正數據CD (a)的半導體裝置210,以便防止校正數據CD (a)泄漏給第三方。此外,由半導體裝置210傳輸給半導體裝置220的校正數據⑶(Z)是具有相對高的安全級別的信息,因為它是與唯一碼UC(Z)和共用密鑰CK(a)相關的數據。因而,當校正數據CD(Z)由半導體裝置210傳輸給半導體裝置220時,校正數據CD(Z)在傳輸之前可以使用公開密鑰密碼體制來加密。在這種情況下,半導體裝置220具有例如半導體裝置220的私有密鑰,以及半導體裝置210在傳輸校正數據CD(Z)之前使用半導體裝置220的公開密鑰來加密校正數據CD(Z)。然后,半導體裝置220使用私有密鑰來解密所加密的校正數據⑶(z)。加密的校正數據由此能夠從半導體裝置210傳輸到半導體裝置220。如上所述,根據本發明的實施例,可以提供能夠容易地將半導體裝置添加至其中執行安全通信的密碼通信系統內的密碼通信系統和密碼通信方法。<第九實施例>本發明的第九實施例將在下面描述。圖24是示出根據本實施例的密碼通信系統202的框圖。由半導體裝置ICz輸出的唯一碼UC(Z)是具有相對低的安全級別的信息,因為它由于其特性而含有錯誤的信息。因而,在根據第八實施例的密碼通信系統中,在唯一碼UC(z)由半導體裝置ICz傳輸給半導體裝置ICa時,沒有加密唯一碼UC (z)。但是,因為唯一碼UC(Z)是為半導體裝置ICz所獨有的信息,所以盡管它含有錯誤的信息,優選的是在傳輸之前對唯一碼UC(Z)進行加密。因而,在根據本實施例的密碼通信系統中,在唯一碼UC(Z)由半導體裝置ICz傳輸給半導體裝置ICa之前,對唯一碼UC(Z)進行加密。圖24所示的密碼通信系統202包括半導體裝置ICa (230)和半導體裝置ICb(240)。半導體裝置230包括唯一碼生成單元231、存儲單元232、共用密鑰生成單元233、校正數據生成單元234和解密單元235。唯一碼生成單元231生成為半導體裝置230所獨有的唯一碼UC (a),并將其輸出到共用密鑰生成單元233。唯一碼生成單元231的基本配置和操作與第八實施例所描述的唯一碼生成單元211的基本配置和操作是相同的,并且在此省略關于它的多余解釋。存儲單元232能夠存儲半導體裝置230的校正數據⑶(a)、公開密鑰PK (a)和私有密鑰SK (a),以及在共用密鑰生成單元233內生成的共用密鑰CK (a)。存儲單元232包括例如易失性存儲器和非易失性存儲器,以及校正數據CD(a)、公開密鑰(a)及私有密鑰SK(a) 存儲于非易失性存儲器內,而共用密鑰CK(a)存儲于易失性存儲器內。因而,盡管存儲單元232臨時存儲著共用密鑰CK (a),但是共用密鑰CK (a)的信息在半導體裝置230斷電時會被擦除。注意,共用密鑰CK(a)在采取了安全措施(例如,加密)之后可以根據需要存儲于非易失性存儲器內,以及可以對存儲于非易失性存儲器內的共用密鑰CK(a)實行諸如在半導體裝置230斷電時通過寫入來擦除數據的措施。共用密鑰生成單元233使用由唯一碼生成單元231輸出的唯一碼UC (a)以及存儲于存儲單元232內的校正數據CD (a)來生成共用密鑰CK (a)。注意,共用密鑰生成單元233起著唯一碼校正單元的作用。共用密鑰生成單元233的基本配置和操作與第八實施例所描述的共用密鑰生成單元213的基本配置和操作是相同的,并且在此省略關于它的多余解釋。校正數據生成單元234使用半導體裝置240的唯一碼UC(Z)和共用密鑰CK(a)來生成校正數據(第二校正數據)⑶(z)。校正數據生成單元234的基本配置和操作與第八實施例所描述的校正數據生成單元214的基本配置和操作是相同的,并且在此省略關于它的多余解釋。解密單元235使用半導體裝置230的私有密鑰SK (a)來解密由半導體裝置240的加密單元244加密的唯一碼UC (z)_c,并由此生成唯一碼UC(Z)。半導體裝置240包括唯一碼生成單元241、存儲單元242、共用密鑰生成單元243和加密單元244。唯一碼生成單元241生成為半導體裝置240所獨有的唯一碼UC (z),并且將其輸出到加密單元244和共用密鑰生成單元243。唯一碼生成單元241的基本配置和操作與第八實施例所描述的唯一碼生成單元211的基本配置和操作是相同的,并且在此省略關于它的多余解釋。存儲單元242能夠具有在共用密鑰生成單元243內生成的共用密鑰CK(a)。存儲單元242將共用密鑰CK(a)存儲于易失性存儲器內。因而,盡管存儲單元242臨時存儲著共用密鑰CK(a),但是共用密鑰CK(a)的信息在半導體裝置240斷電時會被擦除。注意,共用密鑰CK(a)在采取了安全措施(例如,加密)之后可以根據需要存儲于非易失性存儲器內,以及可以對存儲于非易失性存儲器內的共用密鑰CK(a)實行諸如在半導體裝置240斷電時通過寫入來擦除數據的措施。共用密鑰生成單元243使用由唯一碼生成單元241輸出的唯一碼UC(Z)以及由校正數據生成單元234輸出的校正數據⑶(z)來生成共用密鑰CK (a)。共用密鑰生成單元243起著唯一碼校正單元的作用。共用密鑰生成單元243的基本配置和操作與第八實施例所描述的共用密鑰生成單元213的基本配置和操作是相同的,并且在此省略關于它的多余解釋。加密單元244通過使用半導體裝置230的公開密鑰PK (a)來加密在唯一碼生成單元241內生成的唯一碼UC(Z)。待用于加密的公開密鑰PK(a)可以預先從半導體裝置230傳輸到半導體裝置240并存儲于存儲單元242內。作為選擇,待用于加密的公開密鑰PK(a)可以在加密單元224加密唯一碼UC(Z)時由半導體裝置230直接供應給加密單元244。所加密的唯一碼UC(z)_c被輸出到半導體裝置230的解密單元235。根據本實施例的密碼通信系統的操作在下面參照圖25的流程圖來描述。首先,半 導體裝置ICa (230)的共用密鑰生成單元233使用由唯一碼生成單元231輸出的唯一碼 UC(a)以及存儲于存儲單元232內的校正數據⑶(a)來生成共用密鑰CK(a)(步驟S130)。然后,半導體裝置ICa (230)使用共用密鑰CK(a)來啟動與其他半導體裝置ICb到ICy的通信(步驟S131)。然后,半導體裝置ICz (240)提出將校正數據⑶(Z)傳輸到半導體裝置ICa (230)的請求(步驟S132)。收到要求傳輸校正數據CD(Z)的請求時,半導體裝置230將半導體裝置230的公開密鑰PK(a)傳輸給半導體裝置240 (步驟S133)。半導體裝置240的加密單元244使用半導體裝置230的公開密鑰PK(a)來加密唯一碼UC(Z)(步驟S134)。注意,半導體裝置230的公開密鑰PK (a)可以預先存儲于半導體裝置240的存儲單元242內。在這種情況下,能夠跳過步驟S132和S133。半導體裝置240將加密的唯一碼UC(z)_c傳輸給半導體裝置230的解密單元235(步驟S135)。半導體裝置230的解密單元235通過使用半導體裝置230的私有密鑰SK (a)來解密所加密的唯一碼UC (z) _c,并由此生成唯一碼UC(Z)(步驟S136)。半導體裝置230的校正數據生成單元234使用半導體裝置240的唯一碼UC(Z)以及存儲于存儲單元232內的共用密鑰CK(a)來生成校正數據CD(Z)(步驟S137)。對于用于生成校正數據⑶(z)的校正數據生成單元234,有必要多次獲得唯一碼UC(Z)。因而,步驟S134到S136被重復以多次獲得唯一碼UC(Z)。所生成的校正數據⑶(Z)被傳輸到半導體裝置240的共用密鑰生成單元243 (步驟S138)。半導體裝置240的共用密鑰生成單元243使用由唯一碼生成單元241輸出的唯一碼UC (z)以及由校正數據生成單元234輸出的校正數據CD (z)來生成共用密鑰CK (a)(步驟S139)。通過上述過程,所添加的半導體裝置240能夠具有共用密鑰CK (a)。因而,所添加的半導體裝置(ICz)240變得能夠使用共用密鑰CK(a)來執行與半導體裝置(ICa)230和其他半導體裝置ICb到ICy的密碼通信(步驟S140)。如上所述,在根據本實施例的密碼通信系統中,半導體裝置230的校正數據生成單元234使用為半導體裝置240所獨有的唯一碼UC(Z)和共用密鑰CK(a)來生成校正數據CD(Z),以及半導體裝置240的共用密鑰生成單元243使用半導體裝置240的校正數據CD(Z)和唯一碼UC(Z)來生成共用密鑰CK(a)。因而,沒有必要為了驗證待添加的半導體裝置ICz是否是適當的半導體裝置而將昂貴的安全服務器并入密碼通信系統中,并且可以容易地且低成本地將半導體裝置添加到其中執行了安全通信的密碼通信系統內。此外,在根據本實施例的密碼通信系統中,因為諸如共用密鑰CK(a)之類的重要數據并沒有直接存儲于存儲單元232和242內,所以即使半導體裝置受到非授權的分析也不會發生諸如共用密鑰CK(a)之類的重要數據的泄漏。因此,即使在半導體裝置230和半導體裝置240使用具有相對低的安全級別的通用微型計算機來配置時,也能夠實現高的安全級別。注意,用來在半導體裝置230內生成共用密鑰CK(a)的校正數據⑶(a)以及半導體裝置230的私有密鑰SK(a)是具有相對高的安全級別的信息,盡管該安全級別低于共用密鑰CK (a)的安全級別。因而,安全微型計算機可以用于半導體裝置230,在半導體裝置230中存儲了校正數據CD(a)和私有密鑰SK (a)以便防止校正數據CD (a)和私有密鑰SK (a)泄 漏給第三方。此外,由半導體裝置230傳輸給半導體裝置240的校正數據⑶(Z)是具有相對高的安全級別的信息,因為它是與唯一碼UC(Z)和共用密鑰CK(a)相關的數據。因而,當校正數據CD(Z)由半導體裝置230傳輸給半導體裝置240時,校正數據CD(Z)在傳輸之前可以使用公開密鑰密碼體制來加密。如上所述,根據本發明的實施例,可以提供能夠容易地將半導體裝置添加至其中執行安全通信的密碼通信系統內的密碼通信系統和密碼通信方法。特別地,在根據本實施例的密碼通信系統中,半導體裝置240的唯一碼UC(Z)被加密并被傳輸給半導體裝置230,這進一步提高了密碼通信系統的安全性。<第十實施例>本發明的第十實施例將在下面描述。圖26是示出根據本實施例的密碼通信系統203的框圖。在本實施例中,將密碼通信系統應用于數字簽名系統。根據本實施例的密碼通信系統203包括半導體裝置ICa (250)、半導體裝置ICz (260)和安全服務器270。半導體裝置250包括唯一碼生成單元251、存儲單元252、共用密鑰生成單元253、校正數據生成單元254、解密單元255及驗證單元256。唯一碼生成單元251生成為半導體裝置250所獨有的唯一碼UC (a),并將其輸出到共用密鑰生成單元253。唯一碼生成單元251的基本配置和操作與第八實施例所描述的唯一碼生成單元211的基本配置和操作是相同的,并且在此省略關于它的多余解釋。存儲單元252能夠存儲半導體裝置250的校正數據⑶(a)、公開密鑰PK (a)和私有密鑰SK (a),以及在共用密鑰生成單元253內生成的共用密鑰CK (a)。存儲單元235包括例如易失性存儲器和非易失性存儲器,校正數據CD (a)、公開密鑰(a)及私有密鑰SK (a)存儲于非易失性存儲器內,以及共用密鑰CK(a)存儲于易失性存儲器內。因而,盡管存儲單元252臨時存儲著共用密鑰CK (a),但是共用密鑰CK (a)的信息在半導體裝置250斷電時會被擦除。共用密鑰生成單元253使用由唯一碼生成單元251輸出的唯一碼UC (a)以及存儲于存儲單元252內的校正數據⑶(a)來生成共用密鑰CK (a)。共用密鑰生成單元253起著唯一碼校正單元的作用。共用密鑰生成單元253的基本配置和操作與第八實施例所描述的共用密鑰生成單元213的基本配置和操作是相同的,并且在此省略關于它的多余解釋。
校正數據生成單元254使用半導體裝置260的唯一碼UC(Z)和共用密鑰CK (a)來生成校正數據⑶(z)。校正數據生成單元254的基本配置和操作與第八實施例所描述的校正數據生成單元214的基本配置和操作是相同的,并且在此省略關于它的多余解釋。解密單元255使用半導體裝置250的私有密鑰SK (a)來解密由半導體裝置250的加密單元264加密的唯一碼UC (z)_c,并由此生成唯一碼UC(Z)。驗證單元256執行數字簽名方案中的驗證算法。特別地,驗證單元256使用半導體裝置260的簽名數據Sig(a)和公開密鑰PK(Z)來生成驗證數據,并且將該驗證數據與明文Plane (a)比較。半導體裝置260包括唯一碼生成單元261、存儲單元262、共用密鑰生成單元263、加密單元264和簽名數據生成單元265。唯一碼生成單元261生成為半導體裝置260所獨有的唯一碼UC(Z),并且將其輸出到加密單元264和共用密鑰生成單元263。唯一碼生成單元261的基本配置和操作與第八實施例所描述的唯一碼生成單元211的基本配置和操作是 相同的,并且在此省略關于它的多余解釋。存儲單元262能夠存儲在共用密鑰生成單元263內生成的共用密鑰CK (a)、半導體裝置260的私有密鑰SK(Z)及明文Plane (z)。存儲單元262包括例如易失性存儲器和非易失性存儲器,以及半導體裝置260的私有密鑰SK(Z)和明文Plane (z)存儲于非易失性存儲器內,而共用密鑰CK(a)存儲于易失性存儲器內。因而,盡管存儲單元262臨時存儲著共用密鑰CK(a),但是共用密鑰CK(a)的信息在半導體裝置260斷電時會被擦除。注意,共用密鑰CK(a)在采取了安全措施(例如,加密)之后可以根據需要存儲于非易失性存儲器內,以及可以對存儲于非易失性存儲器內的共用密鑰CK(a)實行諸如在半導體裝置260斷電時通過寫入來擦除數據的措施。共用密鑰生成單元263使用由唯一碼生成單元261輸出的唯一碼UC(Z)以及由校正數據生成單元265輸出的校正數據⑶(z)來生成共用密鑰CK (a)。共用密鑰生成單元263起著唯一碼校正單元的作用。共用密鑰生成單元263的基本配置和操作與第八實施例所描述的共用密鑰生成單元213的基本配置和操作是相同的,并且在此省略關于它的多余解釋。加密單元264通過使用半導體裝置260的公開密鑰PK (a)來加密在唯一碼生成單元261內生成的唯一碼UC(Z)。待用于加密的公開密鑰PK (a)可以預先從半導體裝置250傳輸到半導體裝置260并存儲于存儲單元262內。作為選擇,待用于加密的公開密鑰PK(a)可以在加密單元264加密唯一碼UC(Z)時由半導體裝置250直接供應給加密單元264。作為進一步的選擇,公開密鑰PK(a)可以由安全服務器270來供應。所加密的唯一碼UC(z)_c被輸出到半導體裝置250的解密單元255。簽名數據生成單元265使用半導體裝置260的私有密鑰SK(Z)及明文Plane(Z)來生成簽名數據Sig(Z)。換言之,簽名數據生成單元265執行數字簽名方案中的簽名生成算法。安全服務器270包括用于存儲與半導體裝置ICa、ICb、…、ICz關聯的半導體裝置ICa、ICb、…、ICz的公開密鑰PK (a)、PK (b)、…、PK(Z)的數據庫271。在本實施例中,因為存儲于數據庫271內的公開密鑰信息是具有高安全級別的信息,優選的是將安全微型計算機用于安全服務器270。存儲于安全服務器270中的公開密鑰信息響應于請求而傳輸到每個半導體裝置。根據本實施例的密碼通信系統的操作在下面參照圖27的流程圖來描述。首先,半導體裝置ICa (250)的共用密鑰生成單元253使用由唯一碼生成單元251輸出的唯一碼UC (a)以及存儲于存儲單元252內的校正數據⑶(a)來生成共用密鑰CK (a)(步驟S141)。然后,半導體裝置ICa (250)使用共用密鑰CK(a)來啟動與其他半導體裝置ICb到ICy (沒有示出)的通信(步驟S142)。然后,半導體裝置ICz (260)將半導體裝置ICz (260)的半導體裝置信息(例如,唯一的ID等)傳輸給半導體裝置ICa (250)(步驟S143)。收到半導體裝置260的半導體裝置信息時,半導體裝置250提出將半導體裝置260的公開密鑰傳輸到安全服務器270的請求(步驟S144)。半導體裝置260的公開密鑰在半導體裝置250的驗證單元256驗證簽名數據時使用。安全服務器270將半導體裝置260的公開密鑰PK(Z)傳輸給半導體裝置250的驗證單元256 (步驟S145)。
然后,半導體裝置250提出將簽名數據傳輸給半導體裝置260的請求(步驟S146)。收到要求傳輸簽名數據的請求時,半導體裝置260使用私有密鑰SK(Z)和明文Plane(z)在簽名數據生成單元265內生成簽名數據Sig(Z)。明文Plane(z)和所生成的簽名數據Sig(z)被傳輸給半導體裝置250的驗證單元256 (步驟S147)。半導體裝置250的驗證單元256執行數字簽名方案中的驗證算法(步驟S148)。特別地,驗證單元256使用由安全服務器270供應的半導體裝置260的公開密鑰PK (z)和簽名數據Sig(Z)來生成驗證數據,并且將驗證數據與明文Plane (z)比較。簽名數據Sig(z)是通過使用半導體裝置260的私有密鑰SK(Z)來加密明文Plane(z)而生成的數據。因而,通過使用半導體裝置260的公開密鑰PK(Z)來解密簽名數據Sig(Z)而獲得的驗證數據是與由半導體裝置260傳輸來的明文Plane (z)對應的數據。因此,驗證單元256將驗證數據與明文Plane (Z)比較,并且當驗證數據與明文Plane (z)相匹配時,能夠確定半導體裝置260具有私有密鑰SK(Z)。因而,當驗證數據與明文Plane(a)相匹配時(當驗證算法接受簽名數據Sig(z)時),驗證單元256確定由半導體裝置260產生的簽名數據Sig(z)是有效的。因而,確定半導體裝置260具有私有密鑰SK(Z)。另一方面,當驗證數據與明文Plane(a)不匹配時(當驗證算法拒絕簽名數據Sig(Z)時),驗證單元256確定由半導體裝置260產生的簽名數據Sig(z)是無效的。當半導體裝置260被確定為適當的半導體裝置時,半導體裝置250將半導體裝置250的公開密鑰PK(a)傳輸給半導體裝置260 (步驟S149)。半導體裝置260的加密單元264通過使用半導體裝置250的公開密鑰PK(a)來加密唯一碼UC(Z)(步驟S150)。注意,半導體裝置250的公開密鑰PK (a)可以通過來自半導體裝置250的指令從安全服務器270傳輸到半導體裝置260。半導體裝置260將加密的唯一碼UC(z)_c傳輸給半導體裝置250的解密單元255(步驟S151)。半導體裝置250的解密單元255通過使用半導體裝置250的私有密鑰SK(a)來解密所加密的唯一碼UC (z) _c,并由此生成唯一碼UC(Z)(步驟S152)。半導體裝置250的校正數據生成單元254使用半導體裝置260的唯一碼UC(Z)和共用密鑰CK(a)生成校正數據⑶(Z)(步驟S153)。對于用于生成校正數據⑶(z)的校正數據生成單元254,有必要多次獲得唯一碼UC(Z)。因而,步驟S150到S152被重復以多次獲得唯一碼UC(Z)。所生成的校正數據⑶(Z)被傳輸給半導體裝置260的共用密鑰生成單元263 (步驟S154)。半導體裝置260的共用密鑰生成單元263使用由唯一碼生成單元261輸出的唯一碼UC(Z)以及由校正數據生成單元254輸出的校正數據CD(Z)來生成共用密鑰CK(a)(步驟S155)。通過上述過程,所添加的半導體裝置260能夠使用數據簽名方案來驗證。然后,當所添加的半導體裝置260是適當的半導體裝置時,半導體裝置260能夠具有共用密鑰CK (a)。因而,所添加的半導體裝置(ICz) 260變得能夠使用共用密鑰CK (a)來執行與半導體裝置(ICa) 240和其他半導體裝置ICb到ICy的密碼通信(步驟S156)。如上所述,在根據本實施例的密碼通信系統中,半導體裝置250的校正數據生成單元254使用為半導體裝置260所獨有的唯一碼UC(z)和共用密鑰CK(a)來生成校正數據CD(Z),以及半導體裝置260的共用密鑰生成單元263使用校正數據CD(Z)和半導體裝置260的唯一碼UC(Z)來生成共用密鑰CK(a)。因而,沒有必要為了驗證待添加的半導體裝置ICz是否是適當的半導體裝置而將昂貴的安全服務器并入密碼通信系統中,并且可以容易 地且低成本地將半導體裝置添加至其中執行安全通信的密碼通信系統中。此外,在根據本實施例的密碼通信系統中,因為諸如共用密鑰CK(a)之類的重要數據并沒有直接存儲于存儲單元252和262內,所以即使半導體裝置受到非授權的分析也不會發生諸如共用密鑰CK(a)之類的重要數據的泄漏。因此,即使在半導體裝置250和半導體裝置260使用具有相對低的安全級別的通用微型計算機來配置時,也能夠實現高的安全級別。另一方面,在本實施例中,存儲于安全服務器270的數據庫271內的公開密鑰信息是具有高的安全級別的信息。因而,優選的是將安全微型計算機用于安全服務器270。注意,用來生成半導體裝置260的共用密鑰CK (a)的校正數據⑶(a)和私有密鑰SK(Z)是具有相對高的安全級別的信息,盡管該安全級別低于共用密鑰CK(a)的安全級別。因而,安全微型計算機可以用于半導體裝置250和260,在半導體裝置250和260中存儲了校正數據CD (a)和私有密鑰SK(Z)以便防止校正數據CD (a)和私有密鑰SK(Z)泄漏給第三方。此外,由半導體裝置250傳輸給半導體裝置260的校正數據⑶(Z)是具有相對高的安全級別的信息,因為它是與唯一碼UC(Z)和共用密鑰CK(a)相關的數據。因而,當校正數據CD(Z)由半導體裝置250傳輸給半導體裝置260時,校正數據CD(Z)在傳輸之前可以使用公開密鑰密碼體制來加密。此外,在本實施例中,加密單元264包含于半導體裝置260內以及解密單元255包含于半導體裝置250內,以便在加密之后傳輸唯一碼UC (z)。但是,在本實施例中,加密單元264和解密單元255可以被省略,并且唯一碼UC(Z)可以在不加密的情況下傳輸,如同在第八實施例中的那樣。如上所述,根據本發明的實施例,可以提供能夠容易地將半導體裝置添加至其中執行安全通信的密碼通信系統內的密碼通信系統和密碼通信方法。特別地,在根據本實施例的密碼通信系統中,公開密鑰信息使用安全服務器270來集中管理。公開密鑰信息是在使用數字簽名方案來驗證待添加的半導體裝置時使用的信息,并且它是具有高安全級別的信息。通過使用安全服務器270來集中管理具有高安全級別的信息,能夠消除將具有高安全級別的信息存儲于半導體裝置250和260內的需要,使得半導體裝置250和260能夠使用通用微型計算機來配置。因而,可以降低構造密碼通信系統的成本。<第^^一實施例>本發明的第十一實施例將在下面描述。圖28是示出根據本實施例的密碼通信系統204的框圖。在根據本實施例的密碼通信系統204中,校正數據生成程序PRG(Z)由作為待添加的裝置的半導體裝置ICz (290)傳輸到半導體裝置ICa (280),而不是包含用于生成校正數據⑶(z)的校正數據生成單元。校正數據生成程序PRG(Z)然后在半導體裝置ICa(280)內執行,以由此生成校正數據⑶(z)。圖28所示的密碼通信系統204包括半導體裝置ICa (280)和半導體裝置ICb(290)。半導體裝置280包括唯一碼生成單元281、存儲單元282、共用密鑰生成單元283、程 序執行單元284和解密單元285。唯一碼生成單元281生成為半導體裝置280所獨有的唯一碼UC (a),并將其輸出到共用密鑰生成單元283。唯一碼生成單元281的基本配置和操作與第八實施例所描述的唯一碼生成單元211的基本配置和操作是相同的,并且在此省略關于它的多余解釋。存儲單元282能夠存儲半導體裝置280的校正數據⑶(a)、公開密鑰PK (a)和私有密鑰SK (a),以及在共用密鑰生成單元283內生成的共用密鑰CK (a)。存儲單元282包括例如易失性存儲器和非易失性存儲器,校正數據CD (a)、公開密鑰(a)及私有密鑰SK (a)存儲于非易失性存儲器內,以及共用密鑰CK(a)存儲于易失性存儲器內。因而,盡管存儲單元282臨時存儲著共用密鑰CK (a),但是共用密鑰CK (a)的信息在半導體裝置280斷電時會被擦除。共用密鑰生成單元283使用由唯一碼生成單元281輸出的唯一碼UC (a)以及存儲于存儲單元282內的校正數據⑶(a)來生成共用密鑰CK (a)。共用密鑰生成單元283起著唯一碼校正單元的作用。共用密鑰生成單元283的基本配置和操作與第八實施例所描述的共用密鑰生成單元213的基本配置和操作是相同的,并且在此省略關于它的多余解釋。程序執行單元284執行從半導體裝置290傳輸來的校正數據生成程序PRG(Z)。通過執行校正數據生成程序PRG(Z),能夠使用半導體裝置290的唯一碼UC (2)和共用密鑰CK(a)來生成校正數據⑶(z)。程序執行單元284典型為處理器,例如,CPU。校正數據生成程序PRG(Z)可以是例如僅能夠在半導體裝置280上運行的程序。作為選擇,校正數據生成程序PRG(Z)可以是不依賴于其所運行的半導體裝置的體系結構的程序,例如,JAVA (注冊商標)。構成密碼通信系統的某些半導體裝置具有不同的CPU核心體系架構。因而,通過使用不依賴于其所運行的半導體裝置的體系結構的程序(例如,JAVA),可以提高密碼通信系統的方便性,以及降低密碼通信系統的成本。注意,使用校正數據生成程序PRG (Z)來生成校正數據⑶(Z)的過程與在第八實施例所描述的校正數據生成單元214中的過程是相同的,并且在此省略關于它的多余解釋。解密單元285使用半導體裝置280的私有密鑰SK (a)來解密由半導體裝置290的加密單元294加密的唯一碼UC (z)_c,并由此生成唯一碼UC(Z)。半導體裝置290包括唯一碼生成單元291、存儲單元292、共用密鑰生成單元293和加密單元294。唯一碼生成單元291生成為半導體裝置290所獨有的唯一碼UC (z),并且將其輸出到加密單元294和共用密鑰生成單元293。唯一碼生成單元291的基本配置和操作與第八實施例所描述的唯一碼生成單元211的基本配置和操作是相同的,并且在此省略關于它的多余解釋。存儲單元292能夠具有在共用密鑰生成單元293內生成的共用密鑰CK (a)和校正數據生成程序PRG(Z)。存儲單元292包括例如易失性存儲器和非易失性存儲器,校正數據生成程序PRG(Z)存儲于非易失性存儲器內,以及共用密鑰CK(a)存儲于易失性存儲器內。因而,盡管存儲單元292臨時存儲著共用密鑰CK(a),但是共用密鑰CK(a)的信息在半導體裝置290斷電時會被擦除。注意,共用密鑰CK(a)在采取了安全措施(例如,加密)之后可以根據需要存儲于非易失性存儲器內,以及可以對存儲于非易失性存儲器內的共用密鑰CK(a)實行諸如在半導體裝置290斷電時通過寫入來擦除數據的措施。
共用密鑰生成單元293使用由唯一碼生成單元291輸出的唯一碼UC(Z)以及由程序執行單元284輸出的校正數據CD (z)來生成共用密鑰CK (a)。共用密鑰生成單元293起著唯一碼校正單元的作用。共用密鑰生成單元293的基本配置和操作與第八實施例所描述的共用密鑰生成單元213的基本配置和操作是相同的,并且在此省略關于它的多余解釋。加密單元294通過使用半導體裝置280的公開密鑰PK (a)來加密唯一碼UC(Z)和校正數據生成程序PRG(Z)。待用于加密的公開密鑰PK(a)可以預先從半導體裝置280傳輸到半導體裝置290并存儲于存儲單元292內。作為選擇,待用于加密的公開密鑰PK(a)可以在加密單元294加密唯一碼UC(Z)和校正數據生成程序PRG(Z)時由半導體裝置280直接供應給加密單元294。所加密的唯一碼UC (z)_c和校正數據生成程序PRG (z)被輸出到半導體裝置280的解密單元285。根據本實施例的密碼通信系統的操作在下面參照圖29的流程圖來描述。首先,半導體裝置ICa (280)的共用密鑰生成單元283使用由唯一碼生成單元281輸出的唯一碼UC(a)以及存儲于存儲單元282內的校正數據⑶(a)來生成共用密鑰CK(a)(步驟S160)。然后,半導體裝置ICa (280)使用共用密鑰CK(a)來啟動與其他半導體裝置ICb到ICy的通信(步驟S161)。然后,半導體裝置ICz (290)提出將校正數據⑶(Z)傳輸到半導體裝置ICa (280)的請求(步驟S162)。收到要求傳輸校正數據CD(Z)的請求時,半導體裝置280將半導體裝置280的公開密鑰PK(a)傳輸給半導體裝置290 (步驟S163)。半導體裝置290的加密單元294使用半導體裝置280的公開密鑰PK(a)來加密唯一碼UC(Z)和校正數據生成程序PRG(Z)(步驟S164)。注意,半導體裝置280的公開密鑰PK(a)可以預先存儲于半導體裝置290的存儲單元292內。在這種情況下,能夠跳過步驟S162和S163。半導體裝置290將加密的唯一碼UC(z)_c和校正數據生成程序PRG(Z)傳輸給半導體裝置280的解密單元285(步驟S165)。半導體裝置280的解密單元285通過使用半導體裝置280的私有密鑰SK (a)來解密加密的唯一碼UC(z)_c和校正數據生成程序PRG (z),并由此生成唯一碼UC(Z)和校正數據生成程序PRG(z)(步驟S166)。半導體裝置280的程序執行單元284執行在解密單元285內解密后的校正數據生成程序PRG(Z)。通過執行校正數據生成程序PRG(Z),能夠使用半導體裝置290的唯一碼UC(Z)及共用密鑰CK(a)來生成校正數據⑶(z)(步驟S167)。對于用于生成校正數據⑶(z)的校正數據生成程序PRG (z),有必要多次獲得唯一碼UC (z)。因而,步驟S164到S166 (除去校正數據生成程序PRG(Z)的傳輸)被重復以多次獲得唯一碼UC(Z)。此外,在校正數據⑶(z)生成之后可以刪除校正數據生成程序PRG(Z)。所生成的校正數據⑶(Z)被傳輸到半導體裝置290的共用密鑰生成單元293 (步驟S168)。半導體裝置290的共用密鑰生成單元293使用由唯一碼生成單元291輸出的唯一碼UC(Z)以及由程序執行單元284輸出的校正數據CD(z)來生成共用密鑰CK(a)(步驟S169)。通過上述過程,所添加的半導體裝置290能夠具有共用密鑰CK (a)。因而,所添加的半導體裝置(ICz)290變得能夠使用共用密鑰CK(a)來執行與半導體裝置(ICa)280和其他半導體裝置ICb到ICy的密碼通信(步驟S170)。如上所述,在根據本實施例的密碼通信系統中,半導體裝置280的程序執行單 元284使用為半導體裝置290所獨有的唯一碼UC(Z)和共用密鑰CK(a)來生成校正數據CD(Z),以及半導體裝置290的共用密鑰生成單元293使用校正數據CD(Z)和半導體裝置290的唯一碼UC(Z)來生成共用密鑰CK(a)。因而,沒有必要為了驗證待添加的半導體裝置ICz是否是適當的半導體裝置而將昂貴的安全服務器并入密碼通信系統中,并且可以容易地且低成本地將半導體裝置添加到其中執行了安全通信的密碼通信系統內。此外,在根據本實施例的密碼通信系統中,因為諸如共用密鑰CK(a)之類的重要數據并沒有直接存儲于存儲單元282和292內,所以即使半導體裝置受到非授權的分析也不會發生諸如共用密鑰CK(a)之類的重要數據的泄漏。因此,即使在半導體裝置280和半導體裝置290使用具有相對低的安全級別的通用微型計算機來配置時,也能夠實現高的安全級別。注意,用來在半導體裝置280內生成共用密鑰CK(a)的校正數據⑶(a)以及半導體裝置280的私有密鑰SK(a)是具有相對高的安全級別的信息,盡管該安全級別低于共用密鑰CK(a)的安全級別。因而,安全微型計算機可以用于其中存儲了校正數據CD(a)和私有密鑰SK (a)的半導體裝置280,以便防止校正數據CD (a)和私有密鑰SK (a)泄漏給第三方。此外,由半導體裝置280傳輸給半導體裝置290的校正數據⑶(Z)是具有相對高的安全級別的信息,因為它是與唯一碼UC(Z)和共用密鑰CK(a)相關的數據。因而,當校正數據CD(Z)由半導體裝置280傳輸給半導體裝置290時,校正數據CD(Z)在傳輸之前可以使用公開密鑰密碼體制來加密。此外,在本實施例中,加密單元294包含于半導體裝置290內以及解密單元285包含于半導體裝置280內,以便在加密之后傳輸唯一碼UC (z)和校正數據生成程序PRG(Z)。但是,在本實施例中,加密單元294和解密單元285可以被省略,并且唯一碼UC(Z)和校正數據生成程序PRG (z)可以在不加密的情況下傳輸,如同在第八實施例中的那樣。在上述實例中,描述了其中校正數據生成程序PRG(Z)由待添加的半導體裝置290傳輸給半導體裝置280的情形。但是,校正數據生成程序PRG(z)可以由例如服務器傳輸給半導體裝置280。如上所述,根據本發明的實施例,可以提供能夠容易地將半導體裝置添加至其中執行安全通信的密碼通信系統內的密碼通信系統和密碼通信方法。特別地,在根據本實施例的密碼通信系統中,即使在校正數據生成單元沒有預先包含于半導體裝置280內的時候,唯一碼UC (z)也能夠通過將校正數據生成程序PRG (z)存儲于待添加的半導體裝置290以及在半導體裝置280內執行校正數據生成程序PRG(Z)來生成。校正數據生成程序PRG(Z)可以在半導體裝置290發貨之前存儲或者可以在發貨之后根據需要從服務器上下載。此外,如果校正數據生成程序PRG(Z)是不依賴于其所運行的半導體裝置的體系結構的程序(例如,JAVA),則可以提高密碼通信系統的方便性以及降低密碼通信系統的成本。〈第十二實施例〉本發明的第十二實施例將在下面描述。圖30是示出根據本實施例的密碼通信系統205的框圖。在根據本實施例的密碼通信系統205中,多個共用密鑰CK(I)和CK(2)在半導體裝置ICa (300)的共用密鑰生成單元303內生成。然后,半導體裝置ICa (300)和半導體裝置ICz (310)使用共用密鑰CK(2)來通信,以及半導體裝置ICa (300)與半導體 裝置ICb到ICy使用共用密鑰CK⑴來通信。因而,半導體裝置ICa (300)起著路由器的作用。圖30所示的密碼通信系統205包括半導體裝置ICa (300)和半導體裝置ICz
(310)。半導體裝置300包括唯一碼生成單元301、存儲單元302、共用密鑰生成單元303和校正數據生成單元304。唯一碼生成單元301生成為半導體裝置300所獨有的唯一碼UC (a),并將其輸出到共用密鑰生成單元303。唯一碼生成單元301的基本配置和操作與第八實施例所描述的唯一碼生成單元211的基本配置和操作是相同的,并且在此省略關于它的多余解釋。存儲單元302能夠存儲校正數據⑶(I)和⑶(2)以及在共用密鑰生成單元303內生成的共用密鑰CK(I)和CK (2)。存儲單元302包括例如易失性存儲器和非易失性存儲器,校正數據CD(I)和CD (2)存儲于非易失性存儲器內,以及共用密鑰CK(I)和CK (2)存儲于易失性存儲器內。因而,盡管存儲單元302臨時存儲著共用密鑰CK(I)和CK(2),但是共用密鑰CK⑴和CK⑵的信息在半導體裝置300斷電時會被擦除。注意,共用密鑰CK⑴和CK(2)在采取了安全措施(例如,加密)之后可以根據需要存儲于非易失性存儲器內,以及可以對存儲于非易失性存儲器內的共用密鑰CK(I)和CK(2)實行諸如在半導體裝置300斷電時通過寫入來擦除數據的措施。共用密鑰生成單元303使用由唯一碼生成單元301輸出的唯一碼UC(a)以及存儲于存儲單元302內的校正數據(第三校正數據)⑶(I)來生成共用密鑰(第二共用密鑰)CK(I)0此外,共用密鑰生成單元303使用由唯一碼生成單元301輸出的唯一碼UC(a)以及存儲于存儲單元302內的校正數據(第一校正數據)⑶(2)來生成共用密鑰(第一共用密鑰)CK(2)。共用密鑰生成單元303起著唯一碼校正單元的作用。共用密鑰生成單元303的基本配置和操作與第八實施例所描述的共用密鑰生成單元213的基本配置和操作是相同的,并且在此省略關于它的多余解釋。校正數據生成單元304使用半導體裝置310的唯一碼UC(Z)和共用密鑰CK(2)來生成校正數據(第二校正數據)⑶(z)。校正數據生成單元304的基本配置和操作與第八實施例所描述的校正數據生成單元214的基本配置和操作是相同的,并且在此省略關于它的多余解釋。半導體裝置310包括唯一碼生成單元311、存儲單元312和共用密鑰生成單元313。唯一碼生成單元311生成為半導體裝置310所獨有的唯一碼UC(z),并且將其輸出到半導體裝置300的校正數據生成單元304。唯一碼生成單元311的基本配置和操作與第八實施例所描述的唯一碼生成單元211的基本配置和操作是相同的,并且在此省略關于它的多余解釋。存儲單元312能夠具有在共用密鑰生成單元313內生成的共用密鑰CK⑵。存儲單元312將共用密鑰CK(2)存儲于易失性存儲器內。因而,盡管存儲單元312臨時存儲著共用密鑰CK(2),但 是共用密鑰CK(2)的信息在半導體裝置310斷電時會被擦除。注意,共用密鑰CK(2)在采取了安全措施(例如,加密)之后可以根據需要存儲于非易失性存儲器內,以及可以對存儲于非易失性存儲器內的共用密鑰CK(2)實行諸如在半導體裝置310斷電時通過寫入來擦除數據的措施。共用密鑰生成單元313使用由唯一碼生成單元311輸出的唯一碼UC(Z)以及由校正數據生成單元304輸出的校正數據⑶(z)來生成共用密鑰CK (2)。共用密鑰生成單元313起著唯一碼校正單元的作用。共用密鑰生成單元313的基本配置和操作與第八實施例所描述的共用密鑰生成單元213的基本配置和操作是相同的,并且在此省略關于它的多余解釋。根據本實施例的密碼通信系統的操作在下面參照圖31的流程圖來描述。首先,半導體裝置ICa (300)的共用密鑰生成單元303使用由唯一碼生成單元301輸出的唯一碼UC (a)以及存儲于存儲單元302內的校正數據⑶(I)來生成共用密鑰CK(I)(步驟S171)。然后,半導體裝置ICa (300)使用共用密鑰CK(I)來啟動與其他半導體裝置ICb到ICy (第三半導體裝置)的通信(步驟S172)。半導體裝置310將半導體裝置310的唯一碼UC(Z)傳輸給半導體裝置300的校正數據生成單元304 (步驟S173)。半導體裝置300的共用密鑰生成單元303使用由唯一碼生成單元301輸出的唯一碼UC (a)以及存儲于存儲單元302內的校正數據⑶(2)來生成共用密鑰CK(2)(步驟S174)。然后,半導體裝置300的校正數據生成單元304使用半導體裝置310的唯一碼UC(Z)及共用密鑰CK(2)來生成校正數據⑶(z)(步驟S175)。對于用于生成校正數據⑶(z)的校正數據生成單元304,有必要多次獲得唯一碼UC (z)。因而,步驟S173被重復以多次獲得唯一碼UC(Z)。所生成的校正數據⑶(Z)被傳輸給半導體裝置310的共用密鑰生成單元313 (步驟S176)。半導體裝置310的共用密鑰生成單元313使用由唯一碼生成單元311輸出的唯一碼UC(Z)以及由校正數據生成單元304輸出的校正數據CD(Z)來生成共用密鑰CK(2)(步驟S177)。通過上述過程,半導體裝置300和半導體裝置310兩者都能夠具有共用密鑰CK (2)。因而,所添加的半導體裝置310變得能夠使用共用密鑰CK (2)來執行與半導體裝置300間的密碼通信(步驟S178)。另一方面,半導體裝置300與半導體裝置ICb到ICy使用共用密鑰CK(I)來執行通信。圖32是示出根據本實施例的密碼通信系統的配置的實例的框圖。如圖32所示,半導體裝置ICa和半導體裝置ICb及半導體裝置ICc使用共用密鑰CK(I)來通信,并且建立起安全網絡。此外,所添加的半導體裝置ICz使用共用密鑰CK(2)來與半導體裝置ICa通信。因而,半導體裝置ICa起著路由器的作用,使得所添加的半導體裝置ICz能夠通過半導體裝置ICa來執行與半導體裝置ICb和ICc之間的密碼通信。
如上所述,在根據本實施例的密碼通信系統中,半導體裝置300的校正數據生成單元304使用為半導體裝置310所獨有的唯一碼UC(Z)和共用密鑰CK(2)來生成校正數據⑶(z),以及半導體裝置310的共用密鑰生成單元313使用半導體裝置310的校正數據CD(Z)和唯一碼UC(Z)來生成共用密鑰CK(2)。因而,沒有必要為了驗證待添加的半導體裝置ICz是否是適當的半導體裝置而將昂貴的安全服務器并入密碼通信系統中,并且可以容易地且低成本地將半導體裝置添加到其中執行了安全通信的密碼通信系統內。此外,在根據本實施例的密碼通信系統中,因為諸如共用密鑰CK(I)和CK⑵之類的重要數據并沒有直接存儲于存儲單元302和312內,所以即使半導體裝置受到非授權的分析也不會發生諸如共用密鑰CK(I)和CK(2)之類的重要數據的泄漏。因此,即使在半導體裝置300和半導體裝置310使用具有相對低的安全級別的通用微型計算機來配置時,也 能夠實現高的安全級別。注意,用來生成共用密鑰CK⑴和CK⑵的校正數據⑶⑴和⑶⑵是具有相對高的安全級別的信息,盡管該安全級別低于共用密鑰CK⑴和CK⑵的安全級別。因而,安全微型計算機可以用于其中存儲了校正數據CD(I)和CD(2)的半導體裝置300,以便防止校正數據⑶⑴和⑶⑵泄漏給第三方。此外,由半導體裝置300傳輸給半導體裝置310的校正數據⑶(Z)是具有相對高的安全級別的信息,因為它是與唯一碼UC(Z)和共用密鑰CK(2)相關的數據。因而,當校正數據CD(Z)由半導體裝置300傳輸給半導體裝置310時,校正數據CD(Z)在傳輸之前可以使用公開密鑰密碼體制來加密。如上所述,根據本發明的實施例,可以提供能夠容易地將半導體裝置添加至其中執行安全通信的密碼通信系統內的密碼通信系統和密碼通信方法。<第十三實施例>本發明的第十三實施例將在下面描述。圖33是示出將根據第八到第十二實施例的密碼通信系統應用于車載半導體裝置的情形的框圖。如圖33所示,車輛360包括網關單元350、故障診斷單元351、引擎控制單元352、制動控制單元353、車燈控制單元354、門鎖控制單元355和鑰匙插入控制單元356。網關單元350是用于中繼包括單元351到356的網絡的設備。安全微型計算機ICa包含于網關單元350內。故障診斷單元351是用于對車輛360的構件是否有故障進行診斷的單元。半導體裝置ICb包含于故障診斷單元351內。引擎控制單元352是用于對引擎操作進行全面電控制(燃料供給、點火定時控制等)的單元。半導體裝置ICc包含于引擎控制單元352內。制動控制單元353是用于控制諸如ABS (防抱死系統)之類的制動器的單元。半導體裝置ICd包含于制動控制單元353內。車燈控制單元354是用于控制車輛的前燈、指示燈等的單元。半導體裝置ICe包含于車燈控制單元354內。門鎖控制單元355是用于控制門鎖的單元。半導體裝置ICf以及用于與鑰匙357無線電通信的通信單元包含于門鎖控制單元355內。鑰匙插入控制單元356是用于確定所插入的鑰匙357是否是有效的用戶鑰匙的單元。半導體裝置ICg以及用于與鑰匙357無線電通信的通信單元包含于鑰匙插入控制單元356內。半導體裝置ICh和通信單元包含于鑰匙357內。例如,通用微型計算機可以用于包含于各個單元351到356和鑰匙357內的半導體裝置ICb到ICh。
故障診斷單元351、引擎控制單元352、制動控制單元353、車燈控制單元354、門鎖控制單元355和鑰匙插入控制單元356與網關單元350連接,以及各個單元351到356被配置以能夠通過網關單元350相互通信。用于在各個單元351到356與網關單元350之間的通信的共用密鑰在單元和單元之間可以是不同的。例如,共用密鑰A可以用于故障診斷單元351與網關單元350之間的通信,以及共用密鑰B可以用于引擎控制單元352與網關單元350之間的通信。網關單元(ICa)350與各個單元(ICb到ICg)351到356建立了安全網絡。當將包含半導體裝置ICz的汽車導航系統358添加到安全網絡時,在第八到第十二實施例中描述的方法的使用允許汽車導航系統(ICz) 358被容易地且低成本地添加到安全網絡中。在圖33所示的實例中,示出了其中單元351到356和汽車導航系統358通過網關單元350來執行通信的配置。但是,單元351到356和汽車導航系統358可以 使用相同的共用密鑰來相互通信。在這種情況下,單元351到356和汽車導航系統358被配置以通過例如公共總線來相互連接。它還可以應用于不同于圖33所示的單元的各種單元之間的通 目。應當指出,在本實施例中描述了其中將根據第一到第六實施例及第八到第十二實施例的密碼通信系統應用于車載半導體裝置的情形。但是,根據第一到第六實施例及第八到第十二實施例的密碼通信系統同樣可以應用于典型的LAN、智能儀表、智能電網、非接觸式IC卡等,并不僅限與車載半導體裝置。用于構造密碼通信系統的半導體裝置可以經由有線或無線連接來相互通信。此外,第一到第十三實施例能夠由本領域技術人員根據意愿來
彡口口 雖然本發明已經根據多種實施例進行了描述,但是本領域技術人員應當意識到,本發明能夠實行在所附權利要求的精神和范圍內的各種修改,以及本發明并不限于以上所述的實例。此外,權利要求的范圍并不受以上所描述的實施例的限定。而且,應當指出,申請人的意圖是覆蓋全部要求權利的要件的等同物,即使在審查期間后期修改的。
權利要求
1.一種密碼通信系統,包括第一半導體裝置和第二半導體裝置, 所述第一半導體裝置包括 共用密鑰生成單元,用于通過使用具有為所述第一半導體裝置所獨有的值且含有隨機錯誤的第一唯一碼以及用于校正所述第一唯一碼的第一校正數據來生成共用密鑰;以及 加密單元,用于通過使用所述第二半導體裝置的公開密鑰來加密在所述共用密鑰生成單元內生成的所述共用密鑰,并且 所述第二半導體裝置包括 私有密鑰生成單元,用于通過使用具有為所述第二半導體裝置所獨有的值且含有隨機錯誤的第二唯一值以及用于校正所述第二唯一值的第二校正數據來生成所述第二半導體裝置的私有密鑰;以及 解密單元,用于通過使用所述私有密鑰來解密在所述加密單元內加密過的所述共用密鑰。
2.根據權利要求I所述的密碼通信系統,其中所述第一半導體裝置和所述第二半導體裝置使用所述共用密鑰來通信。
3.根據權利要求I所述的密碼通信系統,其中所述第一校正數據包括用于屏蔽所述第一唯一碼的各個位當中具有高誤碼率的位的屏蔽數據,以及用于校正所述第一唯一碼的各個位當中具有低誤碼率的位的錯誤校正碼。
4.根據權利要求3所述的密碼通信系統,其中所述第一校正數據還包括用于對已使用所述屏蔽數據和所述錯誤校正碼進行錯誤校正的所述第一唯一碼執行指定操作的操作參數。
5.根據權利要求4所述的密碼通信系統,其中所述共用密鑰生成單元使用所述屏蔽數據來屏蔽所述第一唯一碼,使用所述錯誤校正碼來校正所屏蔽的第一唯一碼的錯誤,并通過使用所述操作參數來執行對已使用所述屏蔽數據和所述錯誤校正碼進行錯誤校正的所述第一唯一碼的操作。
6.根據權利要求I所述的密碼通信系統,其中所述第一半導體裝置和第二半導體裝置使用安全微型計算機來配置。
7.根據權利要求I所述的密碼通信系統,其中所述第一半導體裝置和第二半導體裝置使用通用微型計算機來配置。
8.根據權利要求I所述的密碼通信系統,其中所述第一半導體裝置和第二半導體裝置是車載微型計算機。
9.根據權利要求8所述的密碼通信系統,其中所述第一半導體裝置和第二半導體裝置之一是故障診斷單元。
10.根據權利要求8所述的密碼通信系統,其中所述第一半導體裝置和第二半導體裝置之一是汽車導航系統。
11.一種密碼通信系統,包括第一半導體裝置和第二半導體裝置, 所述第一半導體裝置包括 私有密鑰生成單元,用于通過使用具有為所述第一半導體裝置所獨有的值且含有隨機錯誤的第一唯一碼以及用于校正所述第一唯一碼的第一校正數據來生成所述第一半導體裝置的私有密鑰;以及簽名數據生成單元,用于通過使用所述私有密鑰和明文來生成簽名數據,并且 所述第二半導體裝置包括 驗證單元,用于通過使用所述第一半導體裝置的所述簽名數據和公開密鑰來生成驗證數據并且將所述驗證數據與所述明文比較。
12.根據權利要求11所述的密碼通信系統,其中所述第二半導體裝置包括 公開密鑰生成單元,用于通過使用具有為所述第二半導體裝置所獨有的值且含有隨機錯誤的第二唯一碼以及用于校正所述第二唯一碼的第二校正數據來生成所述第一半導體裝置的公開密鑰。
13.根據權利要求11所述的密碼通信系統,其中所述第一校正數據包括用于屏蔽所述第一唯一碼的各個位當中具有高誤碼率的位的屏蔽數據,以及用于校正所述第一唯一碼的各個位當中具有低誤碼率的位的錯誤校正碼。
14.根據權利要求13所述的密碼通信系統,其中所述第一校正數據還包括用于對已使用所述屏蔽數據和所述錯誤校正碼進行錯誤校正的所述第一唯一碼執行指定操作的操作參數。
15.根據權利要求14所述的密碼通信系統,其中所述私有密鑰生成單元使用所述屏蔽數據來屏蔽所述第一唯一碼,使用所述錯誤校正碼來校正所屏蔽的第一唯一碼的錯誤,并通過使用所述操作參數來執行對已使用所述屏蔽數據和所述錯誤校正碼進行錯誤校正的所述第一唯一碼的操作。
16.根據權利要求11所述的密碼通信系統,其中所述第一半導體裝置和第二半導體裝置使用安全微型計算機來配置。
17.根據權利要求11所述的密碼通信系統,其中所述第一半導體裝置和第二半導體裝置使用通用微型計算機來配置。
18.根據權利要求11所述的密碼通信系統,其中所述第一半導體裝置和第二半導體裝置是車載微型計算機。
19.根據權利要求18所述的密碼通信系統,其中所述第一半導體裝置和第二半導體裝置之一是故障診斷單元。
20.根據權利要求18所述的密碼通信系統,其中所述第一半導體裝置和第二半導體裝置之一是汽車導航系統。
21.—種密碼通信系統,包括第一半導體裝置到第三半導體裝置,其中 所述第三半導體裝置被配置為將用于校正第一唯一碼的第一校正數據供應給所述第一半導體裝置以及將用于校正第二唯一碼的第二校正數據供應給所述第二半導體裝置, 所述第一半導體裝置包括第一共用密鑰生成單元,用于通過使用具有為所述第一半導體裝置所獨有的值且含有隨機錯誤的第一唯一碼以及由所述第三半導體裝置供應的所述第一校正數據來生成共用密鑰,并且 所述第二半導體裝置包括第二共用密鑰生成單元,用于通過使用具有為所述第二半導體裝置所獨有的值且含有隨機錯誤的第二唯一碼以及由所述第三半導體裝置供應的所述第二校正數據來生成共用密鑰。
22.根據權利要求21所述的密碼通信系統,其中所述第三半導體裝置包括用于存儲與相應半導體裝置關聯的校正數據以及在所述相應半導體裝置內生成的共用密鑰的數據庫。
23.根據權利要求21所述的密碼通信系統,其中所述第三半導體裝置包括校正數據生成單元,用于通過使用共用密鑰以及具有為所述第一半導體裝置所獨有的值且含有隨機錯誤的第一唯一碼來生成所述第一校正數據,并通過使用所述共用密鑰以及具有為所述第二半導體裝置所獨有的值且含有隨機錯誤的第二唯一碼來生成所述第二校正數據。
24.根據權利要求21所述的密碼通信系統,其中 所述第三半導體裝置包括校正數據生成單元,用于通過使用第一共用密鑰以及具有為所述第一半導體裝置所獨有的值且含有隨機錯誤的第一唯一碼來生成所述第一校正數據,并通過使用第二共用密鑰以及具有為所述第二半導體裝置所獨有的值且含有隨機錯誤的第二唯一碼來生成所述第二校正數據, 包含于所述第一半導體裝置內的所述第一共用密鑰生成單元生成所述第一共用密鑰, 包含于所述第二半導體裝置內的所述第二共用密鑰生成單元生成所述第二共用密鑰, 所述第一半導體裝置和所述第三半導體裝置使用所述第一共用密鑰來通信,以及 所述第二半導體裝置和所述第三半導體裝置使用所述第二共用密鑰來通信。
25.根據權利要求21所述的密碼通信系統,其中所述第一校正數據以加密的狀態供應給所述第一半導體裝置,以及所述第二校正數據以加密的狀態供應給所述第二半導體裝置。
26.根據權利要求23所述的密碼通信系統,其中所述校正數據生成單元多次獲得所述第一唯一碼,生成用于屏蔽所獲得的第一唯一碼的各個位當中具有高誤碼率的位的屏蔽數據,并生成用于校正所獲得的第一唯一碼的各個位當中具有低誤碼率的位的錯誤校正碼。
27.根據權利要求26所述的密碼通信系統,其中所述校正數據生成單元還通過使用所述共用密鑰以及已使用所述屏蔽數據和所述錯誤校正碼進行錯誤校正的所述第一唯一碼來生成操作參數。
28.根據權利要求21所述的密碼通信系統,其中 所述第三半導體裝置使用安全微型計算機來配置,并且 所述第一半導體裝置和第二半導體裝置使用通用微型計算機來配置。
29.根據權利要求21所述的密碼通信系統,其中所述第一半導體裝置到第三半導體裝置是車載微型計算機。
30.根據權利要求24所述的密碼通信系統,其中 所述第一半導體裝置和第二半導體裝置是車載微型計算機, 所述第三半導體裝置是網關單元,以及 所述第一半導體裝置和第二半導體裝置通過所述網關單元來通信。
31.根據權利要求29所述的密碼通信系統,其中所述第一半導體裝置和第二半導體裝置之一是故障診斷單元。
32.根據權利要求29所述的密碼通信系統,其中所述第一半導體裝置和第二半導體裝置之一是汽車導航系統。
33.一種使用第一半導體裝置和第二半導體裝置的密碼通信方法,包括 在所述第一半導體裝置中, 通過使用具有為所述第一半導體裝置所獨有的值且含有隨機錯誤的第一唯一碼以及用于校正所述第一唯一碼的第一校正數據來生成共用密鑰; 通過使用所述第二半導體裝置的公開密鑰來加密所生成的共用密鑰;以及 在所述第二半導體裝置中, 通過使用具有為所述第二半導體裝置所獨有的值且含有隨機錯誤的第二唯一值以及用于校正所述第二唯一值的第二校正數據來生成所述第二半導體裝置的私有密鑰;以及通過使用所述私有密鑰來解密所加密的共用密鑰。
34.一種使用第一半導體裝置和第二半導體裝置的密碼通信方法,包括 在所述第一半導體裝置中, 通過使用具有為所述第一半導體裝置所獨有的值且含有隨機錯誤的第一唯一碼以及用于校正所述第一唯一碼的第一校正數據來生成所述第一半導體裝置的私有密鑰; 通過使用所述私有密鑰和明文來生成簽名數據;以及 在所述第二半導體裝置中, 通過使用所述第一半導體裝置的所述簽名數據和公開密鑰來生成驗證數據,并且將所述驗證數據與所述明文比較。
35.一種使用第一半導體裝置到第三半導體裝置的密碼通信方法,包括 將用于校正第一唯一碼的第一校正數據從所述第三半導體裝置傳輸到所述第一半導體裝置; 在所述第一半導體裝置內通過使用具有為所述第一半導體裝置所獨有的值且含有隨機錯誤的第一唯一碼以及由所述第三半導體裝置供應的所述第一校正數據來生成共用密鑰; 將用于校正第二唯一碼的第二校正數據從所述第三半導體裝置傳輸到所述第二半導體裝置;以及 在所述第二半導體裝置內通過使用具有為所述第二半導體裝置所獨有的值且含有隨機錯誤的第二唯一碼以及由所述第三半導體裝置供應的所述第二校正數據來生成共用密鑰。
36.一種密碼通信系統,包括第一半導體裝置和第二半導體裝置, 所述第一半導體裝置包括 第一共用密鑰生成單元,用于通過使用具有為所述第一半導體裝置所獨有的值且含有隨機錯誤的第一唯一碼以及用于校正所述第一唯一碼的第一校正數據來生成第一共用密鑰;以及 校正數據生成單元,用于通過使用在所述第一共用密鑰生成單元內生成的所述第一共用密鑰以及具有為所述第二半導體裝置所獨有的值且含有隨機錯誤的第二唯一碼來生成用于校正第二唯一碼的第二校正數據,并且所述第二半導體裝置包括 第二共用密鑰生成單元,用于通過使用所述第二唯一碼和所述第二校正數據來生成所述第一共用密鑰。
37.根據權利要求36所述的密碼通信系統,其中 所述第二半導體裝置還包括用于通過使用所述第一半導體裝置的公開密鑰來加密所述第二唯一碼的加密單元,并且所述第一半導體裝置還包括用于通過使用所述第一半導體裝置的私有密鑰來解密在所述加密單元內加密過的所述第二唯一碼的解密單元。
38.根據權利要求36所述的密碼通信系統,其中 所述密碼通信系統還包括包含用于存儲與相應半導體裝置關聯的所述相應半導體裝置的公開密鑰的數據庫的服務器, 所述第二半導體裝置通過使用所述第二半導體裝置的私有密鑰及明文來生成簽名數據,并且 所述第一半導體裝置還包括驗證單元,用于通過使用所述第二半導體裝置的所述簽名數據以及從所述服務器傳輸來的所述第二半導體裝置的公開密鑰來生成驗證數據,并且將所述驗證數據與所述明文比較。
39.根據權利要求37所述的密碼通信系統,其中 包含于所述第二半導體裝置內的所述加密單元還通過使用所述第一半導體裝置的所述公開密鑰來加密校正數據生成程序,所述校正數據生成程序用于使用在所述第一共用密鑰生成單元內生成的所述第一共用密鑰及所述第二唯一碼來生成第二校正數據, 包含于所述第一半導體裝置內的所述解密單元還通過使用所述第一半導體裝置的所述私有密鑰來解密所加密的校正數據生成程序,并且 所述第一半導體裝置執行所解密的校正數據生成程序并且通過使用所述第一共用密鑰和所述第二唯一碼來生成所述第二校正數據。
40.根據權利要求36所述的密碼通信系統,其中所述第一半導體裝置和所述第二半導體裝置使用所述第一共用密鑰來通信。
41.根據權利要求40所述的密碼通信系統,其中 所述第一共用密鑰生成單元還通過使用為所述第一半導體裝置所獨有的所述第一唯一碼及第三校正數據來生成第二共用密鑰,以及 所述第一半導體裝置使用所述第二共用密鑰與所述第三半導體裝置通信,并且 所述第二半導體裝置通過所述第一半導體裝置與所述第三半導體裝置通信。
42.根據權利要求36所述的密碼通信系統,其中所述第一校正數據包括用于屏蔽所述第一唯一碼的各個位當中具有高誤碼率的位的第一屏蔽數據,以及用于校正所述第一唯一碼的各個位當中具有低誤碼率的位的第一錯誤校正碼。
43.根據權利要求42所述的密碼通信系統,其中所述第一校正數據還包括用于對已使用所述第一屏蔽數據和所述第一錯誤校正碼進行錯誤校正的所述第一唯一碼執行指定操作的第一操作參數。
44.根據權利要求43所述的密碼通信系統,其中所述第一共用密鑰生成單元使用所述第一屏蔽數據來屏蔽所述第一唯一碼,使用所述第一錯誤校正碼來校正所屏蔽的第一唯一碼的錯誤,并通過使用所述第一操作參數來執行對已使用所述第一屏蔽數據和所述第一錯誤校正碼進行錯誤校正的所述第一唯一碼的操作。
45.根據權利要求36所述的密碼通信系統,其中所述第二校正數據以加密的狀態由所述第一半導體裝置傳輸給所述第二半導體裝置。
46.根據權利要求36所述的密碼通信系統,其中所述校正數據生成單元多次獲得所述第二唯一碼,生成用于屏蔽所獲得的第二唯一碼的各個位當中具有高誤碼率的位的第二屏蔽數據,生成用于校正所獲得的第二唯一碼的各個位當中具有低誤碼率的位的第二錯誤校正碼,并通過使用所述第一共用密鑰以及已使用所述第二屏蔽數據和所述第二錯誤校正碼進行錯誤校正的所述第二唯一碼來生成第二操作參數。
47.根據權利要求36所述的密碼通信系統,其中生成所述校正數據的過程以分布式的方式在多個半導體裝置當中執行。
48.根據權利要求36所述的密碼通信系統,其中所述第一半導體裝置使用安全微型計算機來配置。
49.根據權利要求36所述的密碼通信系統,其中所述第一半導體裝置和第二半導體裝置使用通用微型計算機來配置。
50.根據權利要求36所述的密碼通信系統,其中所述第一半導體裝置和第二半導體裝置是車載微型計算機。
51.根據權利要求36所述的密碼通信系統,其中 所述第一半導體裝置是用于形成車內網絡的車載微型計算機,并且 所述第二半導體裝置是汽車導航系統。
52.一種使用第一半導體裝置和第二半導體裝置的密碼通信方法,包括 在所述第一半導體裝置中, 通過使用具有為所述第一半導體裝置所獨有的值且含有隨機錯誤的第一唯一碼以及用于校正所述第一唯一碼的第一校正數據來生成第一共用密鑰; 通過使用所生成的第一共用密鑰以及具有為所述第二半導體裝置所獨有的值且含有隨機錯誤的第二唯一碼來生成用于校正第二唯一碼的第二校正數據;以及在所述第二半導體裝置中, 通過使用所述第二唯一碼和所述第二校正數據來生成所述第一共用密鑰。
53.根據權利要求52所述的密碼通信方法,包括 在所述第二半導體裝置內通過使用所述第一半導體裝置的公開密鑰來加密所述第二唯一碼,以及 在所述第一半導體裝置內通過使用所述第一半導體裝置的私有密鑰來解密所加密的第二唯一碼。
54.根據權利要求52所述的密碼通信方法,包括 在所述第二半導體裝置內通過使用所述第二半導體裝置的私有密鑰及明文來生成簽名數據;以及 通過使用從包含用于存儲與相應半導體裝置關聯的所述相應半導體裝置的公開密鑰的數據庫的服務器傳輸來的所述第二半導體裝置的公開密鑰以及所述第二半導體裝置的所述簽名數據來生成驗證數據,并且將所述驗證數據與所述明文比較。
55.根據權利要求53所述的密碼通信方法,包括 在所述第二半導體裝置內, 通過使用所述第一半導體裝置的所述公開密鑰來加密校正數據生成程序,所述校正數據生成程序用于使用所述第一共用密鑰和所述第二唯一碼來生成所述第二校正數據;在所述第一半導體裝置內, 解密所加密的校正數據生成程序;以及執行所解密的校正數據生成程序并且通過使用所述第一共用密鑰和所述第二唯一碼來生成所述第二校正數據。
56.根據權利要求52所述的密碼通信方法,其中所述第一半導體裝置和所述第二半導體裝置使用所述第一共用密鑰來通信。
57.根據權利要求56所述的密碼通信方法,包括 在所述第一共用密鑰生成單元內通過使用為所述第一半導體裝置所獨有的所述第一唯一碼及第三校正數據來生成第二共用密鑰,其中 所述第一半導體裝置使用所述第二共用密鑰與所述第三半導體裝置通信,并且 所述第二半導體裝置通過所述第一半導體裝置與所述第三半導體裝置通信。
全文摘要
本發明公開了一種密碼通信系統和密碼通信方法。密碼通信系統包括第一半導體裝置和第二半導體裝置。第一半導體裝置包括用于通過使用唯一碼UC(a)和校正數據CD(a)來生成共用密鑰CK(a)的共用密鑰生成單元,以及用于通過使用第二半導體裝置的公開密鑰PK(b)來加密在共用密鑰生成單元內生成的共用密鑰CK(a)的加密單元。第二半導體裝置包括用于通過使用唯一碼UC(b)和校正數據CD(b)來生成私有密鑰SK(b)的私有密鑰生成單元,以及用于通過使用私有密鑰SK(b)來解密在加密單元內加密過的共用密鑰CK(a)的解密單元。
文檔編號H04L9/30GK102843231SQ201210211008
公開日2012年12月26日 申請日期2012年6月20日 優先權日2011年6月20日
發明者塩田茂雅, 古田茂, 廣川祐之, 山崎曉, 押田大介 申請人:瑞薩電子株式會社