• / 38
  • 下載費用:30 金幣  

信息處理裝置、信息處理方法以及非暫態計算機可讀介質.pdf

關 鍵 詞:
信息處理 裝置 方法 以及 非暫態 計算機 可讀 介質
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
摘要
申請專利號:

CN201310394534.2

申請日:

2013.09.03

公開號:

CN103678995A

公開日:

2014.03.26

當前法律狀態:

撤回

有效性:

無權

法律詳情: 發明專利申請公布后的視為撤回IPC(主分類):G06F 21/45申請公布日:20140326|||公開
IPC分類號: G06F21/45(2013.01)I 主分類號: G06F21/45
申請人: 索尼公司
發明人: 樋渡玄良; 作本紘一; 堅木雅宣; 神尾一也
地址: 日本東京
優先權: 2012.09.10 JP 2012-198343
專利代理機構: 中國國際貿易促進委員會專利商標事務所 11038 代理人: 王莉莉
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201310394534.2

授權公告號:

|||

法律狀態公告日:

2016.04.27|||2014.03.26

法律狀態類型:

發明專利申請公布后的視為撤回|||公開

摘要

提供了一種信息處理裝置、信息處理方法以及非暫態計算機可讀介質。信息處理裝置包括:在針對在驗證者中登記的一個公共密鑰存在多個不同的秘密密鑰的公共密鑰認證方案或數字簽名方案中,被配置為從所述多個不同的秘密密鑰中選擇一個秘密密鑰的密鑰選擇部;以及被配置為通過使用由所述密鑰選擇部選擇的秘密密鑰執行根據公共密鑰認證方案的與驗證者之間的認證處理或根據數字簽名方案的向驗證者的數字簽名生成處理的處理執行部。

權利要求書

權利要求書
1.  一種信息處理裝置,包括:
在針對在驗證者中登記的一個公共密鑰存在多個不同的秘密密鑰的公共密鑰認證方案或數字簽名方案中,被配置為從所述多個不同的秘密密鑰中選擇一個秘密密鑰的密鑰選擇部;以及
被配置為通過使用由所述密鑰選擇部選擇的秘密密鑰執行根據公共密鑰認證方案的與驗證者之間的認證處理或根據數字簽名方案的向驗證者的數字簽名生成處理的處理執行部。

2.  如權利要求1所述的信息處理裝置,
其中密鑰選擇部被配置為在執行與驗證者之間的認證處理或數字簽名生成處理時從所述多個不同的秘密密鑰中隨機選擇一個秘密密鑰。

3.  如權利要求2所述的信息處理裝置,
其中密鑰選擇部被配置為,在處理執行部通過重復與驗證者之間的認證處理而完成一次認證的情況下,或在處理執行部通過重復數字簽名生成處理而完成一次數字簽名的生成的情況下,針對認證處理或數字簽名生成處理的每一個從所述多個不同的秘密密鑰中隨機選擇一個秘密密鑰。

4.  如權利要求1所述的信息處理裝置,
其中處理執行部被配置為在驗證者中登記通過將散列函數應用于所述多個不同的秘密密鑰中的第一秘密密鑰而獲取的第一散列值。

5.  如權利要求4所述的信息處理裝置,
其中處理執行部被配置為將散列函數應用于在根據公共密鑰認證方案執行與驗證者之間的認證處理或根據數字簽名方案向驗證者執 行數字簽名生成處理時使用的秘密密鑰,并向該驗證者傳送用于要與第一散列值相比較的第二散列值。

6.  根據權利要求5所述的信息處理裝置,還包括:
被配置為在驗證者使用公共密鑰認證方案或數字簽名方案執行驗證處理時將第一散列值和第二散列值相比較,并且根據上述比較的結果執行規定通知處理的比較處理部。

7.  如權利要求1所述的信息處理裝置,
其中所述多個不同的秘密密鑰分別被登記在不同裝置內,并且
其中密鑰選擇部被配置為選擇登記的秘密密鑰。

8.  如權利要求1所述的信息處理裝置,
其中公共密鑰認證方案或數字簽名方案是將s∈Kn設為秘密密鑰并將環K上的多次多項式fi(x1,...,xn)和yi=fi(s)設為公共密鑰的公共密鑰認證方案,其中i=1至m。

9.  一種信息處理方法,包括:
在針對在驗證者中登記的一個公共密鑰存在多個不同的秘密密鑰的公共密鑰認證方案或數字簽名方案中,從所述多個不同的秘密密鑰中選擇一個秘密密鑰;以及
通過使用由密鑰選擇步驟選擇的秘密密鑰執行根據公共密鑰認證方案的與驗證者之間的認證處理或根據數字簽名方案的向驗證者的數字簽名生成處理。

10.  一種包括計算機程序的非暫態計算機可讀介質,所述計算機程序在被計算機執行時使得計算機:
在針對在驗證者中登記的一個公共密鑰存在多個不同的秘密密鑰的公共密鑰認證方案或數字簽名方案中,從所述多個不同的秘密密 鑰中選擇一個秘密密鑰;以及
通過使用由密鑰選擇步驟選擇的秘密密鑰執行根據公共密鑰認證方案的與驗證者之間的認證處理或根據數字簽名方案的向驗證者的數字簽名生成處理。

11.  一種信息處理裝置,包括
比較處理部,所述比較處理部被配置為:在針對一個公共密鑰存在多個不同的秘密密鑰的公共密鑰認證方案或數字簽名方案中,獲取通過證明者將散列函數應用于所述多個不同的秘密密鑰中的第一秘密密鑰而得到的第一散列值、以及通過證明者向在執行與驗證者之間的認證處理或根據數字簽名方案向驗證者的數字簽名處理時使用的秘密密鑰應用散列函數而得到的第二散列值;在使用公共密鑰認證方案或數字簽名方案執行認證處理時比較所述第一散列值和所述第二散列值;以及根據上述比較的結果向證明者執行規定通知處理。

說明書

說明書信息處理裝置、信息處理方法以及非暫態計算機可讀介質
技術領域
本公開涉及信息處理裝置、信息處理方法以及非暫態計算機可讀介質。
背景技術
隨著信息處理技術和通信技術的快速發展,官方和私人文檔的數字化正被快速推進。因此,許多個人和公司對電子文檔的安全管理抱有極大的興趣。隨著這一興趣的增長,對抗諸如電子文檔的竊聽和偽造之類的篡改的安全性在許多領域被熱烈討論。對抗電子文檔竊聽的安全性例如通過加密電子文檔來確保。同樣地,對抗電子文檔偽造的安全性例如通過使用數字簽名來確保。然而,加密和數字簽名需要具有足夠的抗篡改性。
一般地,公共密鑰加密技術被廣泛地用于個人驗證。公共密鑰加密方案是其中某個人(證明者)通過使用公共密鑰和秘密密鑰來說服另一個人(驗證者)他/她是證明者本人的認證方案。
在此公共密鑰加密技術中,秘密密鑰的泄漏是最應避免的事件。由于秘密密鑰對用于個人驗證的認證或簽名等而言是必須的,因此期望的是,證明者能夠在需要時訪問秘密密鑰。例如,可以要求證明者存儲諸如密碼的秘密密鑰,攜帶寫在紙上的秘密密鑰,或是攜帶存儲在諸如IC卡之類的設備內的秘密密鑰。例如,JP2011-87284A公開了使用其中包括有秘密密鑰的IC卡的認證系統的技術。
發明內容
在公共密鑰加密技術中,由于秘密密鑰不像密碼那樣易于記憶,因此證明者想要記住秘密密鑰并不容易。進一步地,如果秘密密鑰被 寫在紙上,則存在很高的風險該秘密密鑰的內容會因被其他人窺伺或秘密拍照而被泄漏給其他人。在相關領域的公共密鑰加密技術中,由于通過使用與一個公共密鑰相對應的一種類型的秘密密鑰來執行認證,因此如果秘密密鑰泄漏,則無法知曉該秘密密鑰是否被本人使用還是已被其他人仿制。如果秘密密鑰泄漏,那么密鑰泄漏時間之后的仿制將無法避免,除非通過某類方法檢測到這一仿制。
另一方面,在其中秘密密鑰被存儲在諸如IC卡之類的設備中的情況下,除非該IC卡遺失,否則其他人將難以仿制。在IC卡遺失的情況下,如果存儲在該IC卡內的秘密密鑰的使用被中止,則能防止其他人的仿制并且能夠抑制損害的擴大。然而,已經針對諸如IC卡的設備提出了諸如側通道攻擊的解析方法,并且如果不應用針對該側通道攻擊的對策,則秘密密鑰可能會被泄漏。
此外,在其中要實現分散至多個服務器的認證、由多個用戶的簽名等的情況下,簽名生成或認證的權利可以由多個人分享,并且已經提出了群組簽名技術,例如作為多人分享簽名生成權利的技術。然而,這一群組簽名技術僅涉及用于多人共享簽名生成權利的專門應用的某些特定簽名方案,并且上述情況無法在任意簽名方案或認證方案中實現。
簡單地,可以考慮由多個用戶共享相同的秘密密鑰來作為多人共享簽名生成或認證權利的另一方法。然而,在這一共享秘密密鑰的方法中,其他用戶會因為某疏忽的用戶的密鑰管理導致秘密密鑰泄露而遭受損害。進一步地,由于同一秘密密鑰由多個用戶共享,因此還需要考慮即使嘗試根據泄露的秘密密鑰找出泄漏該秘密密鑰的用戶也會很難確認該泄露秘密密鑰的用戶的狀況。
因此,本公開通過考慮上述狀況而被作出。根據本公開的一個實施例,提供了一種新穎且改進的信息處理裝置、信息處理方法和非暫態計算機可讀介質,其通過使用針對同一公共密鑰的多個秘密密鑰實現了一種檢測密鑰泄漏的方法、一種防止密鑰泄漏的方法、以及一種抑制密鑰泄漏的方法。
根據本公開的一個實施例,提供了一種信息處理裝置,包括:在針對在驗證者中登記的一個公共密鑰存在多個不同的秘密密鑰的公共密鑰認證方案或數字簽名方案中,被配置為從所述多個不同的秘密密鑰中選擇一個秘密密鑰的密鑰選擇部;以及被配置為通過使用由所述密鑰選擇部選擇的秘密密鑰執行根據公共密鑰認證方案的與驗證者之間的認證處理或根據數字簽名方案的向驗證者的數字簽名生成處理的處理執行部。
根據本公開的一個實施例,提供了一種信息處理方法,包括:在針對在驗證者中登記的一個公共密鑰存在多個不同的秘密密鑰的公共密鑰認證方案或數字簽名方案中,從所述多個不同的秘密密鑰中選擇一個秘密密鑰;以及通過使用由密鑰選擇步驟選擇的秘密密鑰執行根據公共密鑰認證方案的與驗證者之間的認證處理或根據數字簽名方案的向驗證者的數字簽名生成處理。
根據本公開的一個實施例,提供了一種包括計算機程序的非暫態計算機可讀介質,所述計算機程序在被計算機執行時使得計算機:在針對在驗證者中登記的一個公共密鑰存在多個不同的秘密密鑰的公共密鑰認證方案或數字簽名方案中,從所述多個不同的秘密密鑰中選擇一個秘密密鑰;以及通過使用由密鑰選擇步驟選擇的秘密密鑰執行根據公共密鑰認證方案的與驗證者之間的認證處理或根據數字簽名方案的向驗證者的數字簽名生成處理。
根據本公開的一個實施例,提供了一種包括比較處理部的信息處理裝置,所述比較處理部被配置為:在針對一個公共密鑰存在多個不同的秘密密鑰的公共密鑰認證方案或數字簽名方案中,獲取通過證明者將散列函數應用于所述多個不同的秘密密鑰中的第一秘密密鑰而得到的第一散列值、以及通過證明者向在執行與驗證者之間的認證處理或根據數字簽名方案向驗證者的數字簽名處理時使用的秘密密鑰應用散列函數而得到的第二散列值;在使用公共密鑰認證方案或數字簽名方案執行認證處理時比較所述第一散列值和所述第二散列值;以及根據上述比較的結果向證明者執行規定通知處理。
根據如上所述的本公開,能夠提供一種新穎且改進的信息處理裝置、信息處理方法和非暫態計算機可讀介質,其通過使用針對同一公共密鑰的多個秘密密鑰實現了一種檢測密鑰泄漏的方法、一種防止密鑰泄漏的方法、以及一種抑制密鑰泄漏的方法。
附圖說明
圖1是例示了根據公共密鑰認證方案的算法配置的說明圖;
圖2是例示了根據數字簽名方案的算法配置的說明圖;
圖3是例示了根據n遍公共密鑰認證方案的算法配置的說明圖;
圖4是例示了在其中存儲有秘密密鑰的認證處理設備100a和執行驗證處理的驗證處理設備200a之間的認證處理的概況的說明圖;
圖5是示出了在其中存儲有秘密密鑰的認證處理設備100a和執行驗證處理的驗證處理設備200a之間的認證處理的流程圖;
圖6A是示出了平均波形的差分波形的例子的說明圖;
圖6B是示出了平均波形的差分波形的例子的說明圖;
圖7是示出了本公開第一實施例的操作的流程圖;
圖8是示出了在其中存儲有秘密密鑰的認證處理設備100b和執行驗證處理的驗證處理設備200b之間的認證處理的概況的說明圖;
圖9是示出了在其中存儲有秘密密鑰的認證處理設備100b和執行驗證處理的驗證處理設備200b之間的認證處理的流程圖;
圖10是示出了本公開第二實施例的操作的流程圖;
圖11是示出了通過生成共享的秘密密鑰x的密鑰生成器將秘密密鑰x提供給每個不同的用戶的認證系統的概念的說明圖;
圖12是示出了根據本公開第三實施例的認證系統的概念的說明圖;
圖13是示出了根據本公開第三實施例的認證系統的概念的說明圖;
圖14是示出了本公開第一實施例的變形例的操作的流程圖;
圖15是例示了根據3遍公共密鑰認證方案的高效算法的說明圖; 以及
圖16是例示了能夠執行根據本公開每個實施例的算法的信息處理裝置的硬件配置例的說明圖。
具體實施方式
其后,將參考附圖詳細描述本公開的優選實施例。注意到,在本說明書和附圖中,具有基本相同功能和結構的結構性元件由相同的參考編號所指示,并由此省略對這些結構性元件的重復解釋。
描述將以如下次序給出。
<1.對公共密鑰認證方案和秘密密鑰的描述>
<2.本公開的第一實施例>
[概述]
[操作]
<3.本公開的第二實施例>
[概述]
[操作]
<4.本公開的第三實施例>
[概述]
<5.變形例>
<6.硬件配置>
<7.結論>
<1.對公共密鑰認證方案和秘密密鑰的描述>
在描述本公開的適當實施例之前,首先將描述公共密鑰認證方案和數字簽名方案的概述,隨后將描述由在本實施例隨后描述的實施例中的每一個實施例所使用的秘密密鑰。
公共密鑰認證方案是其中一個人(證明者)通過使用公共密鑰和秘密密鑰來說服另一個人(驗證者)他/她是證明者本人的認證方案。例如,使得證明者A的公共密鑰pkA對驗證者已知。另一方面,證明者A的秘密密鑰skA由證明者秘密管理。根據公共密鑰認證方案,知 曉與公共密鑰pkA相對應的秘密密鑰skA的人被認為是證明者A本身。
在證明者A試圖向驗證者B證明他/她是證明者本身的情況下,證明者A能夠與驗證者B執行交互協議并且證明他/她知曉與公共密鑰pkA相對應的秘密密鑰skA。隨后,在驗證者B通過證明者A知曉秘密密鑰skA的交互協議而進行證明的情況下,證明者A的合法性(他/她是證明者本身)得到證明。
此外,為了確保公共密鑰認證方案的安全性,要滿足如下闡述的兩個條件。
第一條件是在交互協議由不具有密鑰sk的偽造者執行時盡可能地降低偽造被建立的可能性。該第一條件被滿足的狀況被稱為“健全性”。換句話說,使用健全性交互協議,不具有密鑰sk的偽造者無法以不能忽視的可能性建立偽造。第二條件是即使交互協議被執行,關于證明者A的秘密密鑰skA的信息也不會完全被泄漏給驗證者B。該第二條件被滿足的狀況被稱為“零知識性”。
公共密鑰認證方案的安全性通過使用具有如上所述的健全性和零知識性的交互方案來確保。
在公共密鑰認證方案的模型中,存在如圖1所示的兩個實體,即,證明者和驗證者。證明者通過使用密鑰生成算法Gen生成公共密鑰pk和該證明者唯一的秘密密鑰sk的密鑰對。隨后,證明者通過使用由使用所述密鑰生成算法Gen生成的公共密鑰pk和秘密密鑰sk的密鑰對來執行與驗證者的交互協議。此時,證明者通過使用證明者算法P來執行該交互協議。如上所述,在該交互協議中,證明者通過使用該證明者算法P向驗證者證明他/她持有該秘密密鑰sk。
另一方面,驗證者通過使用驗證者算法V來執行交互協議,并且驗證該證明者是否持有與證明者已經發布的公共密鑰相對應的秘密密鑰。也就是說,驗證者是驗證證明者是否具有與公共密鑰相對應的秘密密鑰的實體。如所述,公共密鑰認證方案的模型由兩個實體(即,證明者和驗證者)和三個算法(即,密鑰生成算法Gen、證明者算法P和驗證者算法V)配置而來。
附加地,雖然在如下的描述中使用表達“證明者”和“驗證者”,但是這些表達嚴格意味著實體。因此,執行密鑰生成算法Gen和證明者算法P的對象是與實體“證明者”相對應的信息處理裝置。類似地,執行驗證者算法V的對象是信息處理裝置。
(密鑰生成算法Gen)
密鑰生成算法Gen由證明者使用。密鑰生成算法Gen是用于生成公共密鑰pk和證明者唯一的秘密密鑰sk的密鑰對的算法。由密鑰生成算法Gen生成的公共密鑰pk被公布。進一步地,公布的公共密鑰pk由驗證者使用。另一方面,由密鑰生成算法Gen生成的秘密密鑰sk由證明者秘密管理。被秘密管理的秘密密鑰sk被用來向驗證者證明與公共密鑰pk相對應的秘密密鑰的持有。形式上,密鑰生成算法Gen由如下公式(1)表示,作為使用安全參數1λ(λ是零或以上的整數)作為輸入并輸出秘密密鑰sk和公共密鑰pk的算法。
(sk,pk)←Gen(1λ)...(1)
(證明者算法P)
證明者算法P由證明者使用。證明者算法P是用于證明持有與公共密鑰pk相對應的秘密密鑰sk的算法。證明者算法P被定義為將證明者的公共密鑰pk和秘密密鑰sk作為輸入并與證明者執行交互協議的算法。
(驗證者算法V)
驗證者算法V由驗證者使用。驗證者算法V是用于在交互協議中驗證證明者是否持有與公共密鑰pk相對應的秘密密鑰sk的算法。驗證者算法V被定義為使用證明者的公共密鑰pk作為輸入并在與證明者執行交互協議之后輸出0或1(1位)的算法。此外,在輸出為0的情況下,認定證明者非法,而在輸出為1的情況下,則認定證明者合法。形式上,驗證者算法V被表示為如下的式(2)。
0/1←V(pk)…(2)
如上所述,公共密鑰認證方案必須滿足兩個條件(即,健全性和零知識性)來確保安全性。然而,為了讓證明者證明他/她持有秘密密 鑰sk,該證明者必須執行依賴于秘密密鑰sk的過程,將結果通知給驗證者,并使得驗證者基于通知的內容執行驗證。依賴于秘密密鑰sk的過程的執行是確保健全性所必須的。另一方面,即使在將上述過程的結果通知給驗證者的情況下,也必須完全不向驗證者泄漏秘密密鑰sk。因此,需要設計密鑰生成算法Gen、證明者算法P和驗證者算法V來滿足這些條件。
接下來,將參考圖2提供對數字簽名方案的算法的概述。圖2是例示了數字簽名方案的算法概述的說明圖。
與紙質文檔相反,難以向數字化數據加蓋印章或添加簽名。然后,為了證明該數字化數據的創建者,需要用于實現與加蓋印章或添加簽名類似效果的電子機制。該機制是數字簽名。數字簽名是其中僅由數據創建者知曉的簽名數據被提供給與該數據關聯的接收人并且簽名數據由接收人驗證的機制。
(模型)
在數字簽名方案的模型中,如圖2所示,存在被稱為簽署者和驗證者的兩個實體。然后,數字簽名方案的模型包括三個算法:密鑰生成算法Gen、簽名生成算法sig和簽名驗證算法Ver。
簽署者通過使用密鑰生成算法Gen生成簽署者唯一的簽名密鑰sk和驗證密鑰pk的密鑰對。簽署者還使用簽名生成算法sig生成要被附至文檔M的數字簽名σ。也就是說,簽署者是將數字簽名附至文檔M的實體。另一方面,驗證者通過使用簽名驗證算法Ver驗證附至文檔M的數字簽名σ。也就是說,驗證者是驗證該數字簽名σ以檢查該文檔M的創建者是否是簽署者的實體。
在隨后的描述中,雖然使用“簽署者”和“驗證者”的表達,但是這些表達在嚴格意義上指代實體。因此,執行密鑰生成算法Gen和簽名生成算法sig的主體是與“簽署者”實體相對應的信息處理裝置。類似地,執行簽名驗證算法Ver的主體是信息處理裝置。這些信息處理裝置的硬件配置例如如圖16所示。也就是說,密鑰生成算法Gen、簽名生成算法sig和簽名驗證算法Ver由CPU902等基于記錄在ROM 904、RAM906、存儲單元920和可移除記錄介質928等上的程序執行。
(密鑰生成算法Gen)
密鑰生成算法Gen由簽署者使用。密鑰生成算法Gen是用于生成簽署者唯一的簽名密鑰sk和驗證密鑰pk的密鑰對的算法。由密鑰生成算法Gen生成的驗證密鑰pk變得公開。另一方面,由密鑰生成算法Gen生成的簽名密鑰sk由簽署者秘密管理。然后,簽名密鑰sk被用于生成要被附至文檔M的數字簽名σ。例如,密鑰生成算法Gen采用安全參數1λ(λ是等于0或大于0的整數)作為輸入并輸出簽名密鑰sk和驗證密鑰pk。在此情況下,密鑰生成算法Gen在形式上被表達為類似如下的式(3):
(sk,pk)←Gen(1λ)
...(3)
(簽名生成算法sig)
簽名生成算法sig由簽署者使用。簽名生成算法sig是生成要被附至文檔M的數字簽名σ的算法。簽名生成算法sig是采用簽名密鑰sk和文檔M作為輸入并輸出數字簽名σ的算法。簽名生成算法sig可以在形式上被表達為類似如下式(4):
σ←Sig(sk,M)
...(4)
(簽名驗證算法Ver)
簽名驗證算法Ver由驗證者使用。簽名驗證算法Ver是驗證數字簽名σ是否是對文檔M的有效數字簽名的算法。簽名驗證算法Ver是采用簽署者的驗證密鑰pk、文檔M和數字簽名σ作為輸入并且輸出0或1(1位)的算法。簽名驗證算法Ver能夠在形式上被表達為類似如下式(5):如果簽名驗證算法Ver輸出為0(驗證密鑰pk拒絕文檔M和數字簽名σ),則驗證者判斷數字簽名σ無效,但如果簽名驗證算法Ver輸出為1(驗證密鑰pk接受文檔M和數字簽名σ),則驗證者 判斷數字簽名σ有效。
0/1←Ver(pk,M,σ)
...(5)
(n遍公共密鑰認證方案)
接下來,將參考圖3描述n遍(n-pass)公共密鑰認證方案。圖3是例示了n遍公共密鑰認證方案的說明圖。
公共密鑰認證方案如上所述是在交互協議期間向驗證者證明該證明者持有與公共密鑰pk相對應的秘密密鑰sk的認證方案。此外,需要交互協議滿足健全性和零知識性的兩個條件。然后,如圖3所示,證明者和驗證者在各自執行相應的處理的同時交換信息n次。
在n遍公共密鑰認證方案中,處理(進程#1)由證明者使用證明者算法P執行并且信息T1被發送至驗證者。接下來,處理(進程#2)由驗證者使用驗證者算法V執行并且信息T2被發送至證明者。進一步地,在處理(進程#n+1)被最后執行之前,對于k=3~n,順續地執行處理并發送信息Tk。如上所述發送并接收信息n次的方案被稱為“n遍”公共密鑰認證方案。
上文已經描述了n遍公共密鑰認證方案。
如上所述,存在有諸如在JP2012-98690A中所公開那樣的公共密鑰認證方案和數字簽名方案,這些方案以源自求解多次多變量聯立方程的困難性的安全性為基礎,由此滿足設計密鑰生成算法Gen、證明者算法P和驗證者算法V時的要求。由JP2012-98690A使用的函數是由m行的n變量2次多項式(m和n分別是2或大于2的整數)構成的函數,并且通過使用這一函數,諸如JP2012-98690A中所述的公共密鑰認證方案能夠從一個公共密鑰中生成多個秘密密鑰。JP2012-98690A中使用的由m行的n變量2次多項式構成的函數被稱為MQ(多變量2次)函數。
首先將描述JP2012-98690A使用的公共密鑰認證方案的密鑰生成算法。在此,將考慮其中一組二次多項式(f1(x),...,fm(x))被用作公共密鑰pk的一部分的情況。然而,二次多項式fi(x)可被諸如表達為如 下的式(6)。進一步地,向量(x1,...,xn)被表示為x,該組二次多項式(f1(x),...,fm(x))被表示為多變量多項式F(x)。
f1(x1,...,xn)=Σj,kaijkxjxk+Σjbijxj...(6)]]>
進一步地,該組二次多項式(f1(x),...,fm(x))可被諸如表達為如下的式(7)。進一步地,A1,...,Am是n×n矩陣。此外,b1,...,bm分別是n×1向量。
F(x)=f1(x)...fm(x)=xTA1x+b1Tx...xTAmx+bmTx...(7)]]>
在使用這一表達時,多變量多項式F可被諸如表達為如下的式(8)和(9)。這一表達的建立可以容易地從如下的式(10)確認。
F(x+y)=F(x)+F(y)+G(x,y)...(8)
G(x,y)=yT(A1T+A1)x...yT(AmT+Am)x...(9)]]>
f1(x+y)=(x+y)TA1(x+y)+b1T(x+y)=xTA1x+xTA1y+yTA1x+yTA1y+b1Tx+b1Ty=f1(x)+f1(y)+xTA1y+yTA1x=f1(x)+f1(y)+xT(A1T)Ty+yTA1x=f1(x)+f1(y)(A1Tx)Ty+yTA1x=f1(x)+f1(y)+yT(A1Tx)+yTA1x=f1(x)+f1(y)+yT(A1T+A1)x---(10)]]>
在分成其中F(x+y)依賴于x的第一部分、其中F(x+y)依賴于y的第二部分以及其中F(x+y)依賴于x和y兩者的第三部分時,與第三部分相對應的項G(x,y)變為關于x和y的雙線性。其后,將會存在其中項G(x,y)被稱為雙線性項的情況。當使用這一性質時,將變得能夠建立高效算法。
例如,通過使用向量t0∈Kn和e0∈Km,用于掩蔽多變量多項式F(x+r)的多變量多項式F1(x)被表示為F1(x)=G(x,t0)+e0。在此情況下,多變量多項式F(x+r0)和F1(x)之和可被諸如表達為如下的式(11)。在 此,如果t1=r0+t0且e1=F(r0)+e0,則多變量多項式F2(x)=F(x+r0)+F1(x)可由向量t1∈Kn和e1∈Km表達。因此,如果設F1(x)=G(x,t0)+e0,則可以使用Kn上的向量和Km上的向量來表達F1和F2,并且能夠使用通信所需的減小的數據大小來表達該有效算法。
F(x+r0)+F1(x)
=F(x)+F(r0)+G(x,r0)+G(x,t0)+e0...(11)
=F(x)+G(x,r0+t0)+F(r0)+e0
注意到有關來自F2(或F1)的r0的信息完全不會被泄漏。例如,只要e0和t0(或e1和t1)不被知曉,就完全無法知曉r0的信息,即便在提供了e1和t1(或e0和t0)的情況下亦是如此。因此,確保了零知識性的性質。
在此,在m=n的情況下,MQ函數可以得到變為F(x1)=F(x2)的x1和x2。具體的導出方法如下。
當n=m時,在為MQ函數提供(Δ∈GF)(2n)之時,將存在其中輸出x(s.t.F(x)=F(x+Δ)的算法。這是因為如下的函數成立。
(x)=F(x+Δ)&LeftRightArrow;F(Δ)+G(x,Δ)=0]]>
上述函數變為與x=(x1,...,xn)和xi=GF(2)相關的聯立線性方程。由于變量xi(i=1,2,...,n)的數目和式子的行數相匹配,因此能夠從上述聯立線性方程中導出解x。
當n=cm(c是等于2或大于2的整數)時,在為MQ函數提供(Δ1,…,Δc∈GF)(2n)之時,將存在輸出x(s.t.F(x)=F(x+Δ1)=…=F(x+Δc)的算法。這是因為如下的函數成立。
F(x)=F(x+Δ1)&LeftRightArrow;F(Δ1)+G(x,Δ1)=0]]>
...
F(x)=F(x+Δc)&LeftRightArrow;F(Δc)+G(x,Δc)=0]]>
每一個上述方程都變為與x=(x1,...,xn)和xi=GF(2)相關的聯立線性方程。當組合每一個上述方程時,方程的行數變為與用于變量xi(i=1,2,...,n)的cm的聯立線性方程。因此,與n=m的情況相類似,可以從上述聯立線性方程中導出解x。
以此方式,可以通過使用能夠從一個公共密鑰生成多個秘密密鑰 的公共密鑰認證方案來實現檢測密鑰泄漏的方法、防止密鑰泄漏的方法以及抑制密鑰泄漏的方法。其后,將詳細描述能夠從一個公共密鑰生成多個秘密密鑰的公共密鑰認證方案的應用例。
<2.本公開的第一實施例>
[概述]
首先將描述本公開的第一實施例的概述。本公開的第一實施例是可應用于秘密密鑰被存儲在諸如IC卡之類的設備中并且認證過程由所述設備執行以供個人認證的情況的技術。
圖4是例示了在其中存儲有秘密密鑰的認證處理設備100a和執行驗證處理的驗證處理設備200a之間的認證處理的概況的說明圖。由上述密鑰生成算法Gen生成的秘密密鑰x在認證處理之前被存儲在認證處理設備100a內。進一步地,由上述密鑰生成算法Gen生成的公共密鑰F(x)在認證處理之前被存儲在驗證處理設備200a內。例如,認證處理設備100a是IC卡,而驗證處理設備200a是服務器裝置、金融機構的ATM(自動柜員機)等。同樣地,在認證處理設備100a被保持在讀取器/寫入器之上時,執行認證處理設備100a和驗證處理設備200a之間的認證協議。
圖5是示出了在其中存儲有秘密密鑰的認證處理設備100a和執行驗證處理的驗證處理設備200a之間的認證處理的流程圖。
希望認證其本人的用戶通過上述密鑰生成算法Gen預先生成秘密密鑰x和公共密鑰F(x)(步驟S11)。該秘密密鑰x和公共密鑰F(x)的生成由能夠執行密鑰生成算法Gen的信息處理裝置執行。
當用戶生成秘密密鑰x和公共密鑰F(x)時,秘密密鑰x在保持秘密性的同時在認證處理設備100a內登記(步驟S12),而公共密鑰F(x)則在驗證處理設備200a內登記(步驟S13)。然后,當用戶指示對認證處理設備100a執行認證時,證明者算法P由認證處理設備100a執行(步驟S14),并且認證處理設備100a和驗證處理設備200a之間的認證處理由正在認證處理設備100a中執行的驗證者算法V來執行(步驟S15)。
如果秘密密鑰x被存儲在諸如IC卡之類的設備中,則只要該設備未丟失,就能預期該秘密密鑰x的內容不會被泄漏給第三方。然而,如上所述,已經提出了針對諸如IC卡之類的設備的解析方法,諸如側通道攻擊。在該側通道攻擊中,存在電力解析攻擊。電力解析攻擊是從實現密碼算法的設備的電力消耗中提取存儲在該設備中的秘密密鑰的攻擊方法。
已知諸如IC卡之類的設備的電力消耗隨著輸入變化。因此,存在有其中秘密密鑰的值能夠通過觀察依賴于存儲在該設備中的秘密密鑰值的電力消耗改變而被解析的情況。基本上,由于電力消耗中混有噪聲,因此在電力解析攻擊中需要通過統計學處理多個波形來減小噪聲的影響以提取秘密密鑰。業已提出了差分電力解析(DPA)作為一種這樣的方法(Paul Kocher,Joshua Jaffe,Benjamin Jun,“Differential Power Analysis”,CRYPT0’99)。
在此,將描述用于使用MQ函數的簽名方案(MQ簽名方案)的1位DPA的例子。在MQ簽名方案中,對秘密密鑰x執行隨機數r0的異或操作,并在其后隨機輸出該隨機數r0作為簽名中的元素。通過這一操作可以解析秘密密鑰x中的第i位xi。具體地,xi可由如下描述的1位DPA進行解析。
首先,在生成了多個簽名之后,收集輸出了隨機數r0的簽名。接下來,根據該隨機數r0的第i位r0,i的值而將收集的簽名分為兩組。隨后,計算每組的平均波形,并且計算著兩個平均波形的差分波形。秘密密鑰x的第i位xi能夠通過這一差分波形的峰姿態而被解析。
圖6A和6B是示出了平均波形的差分波形的例子的說明圖。圖6A是在秘密密鑰x的第i位xi為0時可被預期的平均波形的差分波形的例子,而圖6B是在秘密密鑰x的第i位xi為1時可被預期的平均波形的差分波形的例子。在xi為0時,隨機數r0的值與該隨機數r0和秘密密鑰x0(r0+x0)之間的異或值彼此匹配。因此,在裝載之時和在存儲這些值之時的電力消耗類似,并且如圖6A所示,平均波形的正負兩個峰變得相同。另一方面,在xi為1時,隨機數r0的值與該隨機數r0和秘密密鑰x0(r0+x0) 之間的異或值不相同。因此,在裝載之時和在存儲這些值之時的電力消耗顯著不同,并且如圖6B所示,平均波形的正負兩個峰變得不同。通過嘗試對該秘密密鑰x的所有位進行解析,就可以利用電力解析攻擊來提取秘密密鑰x的內容。
雖然這是執行MQ簽名方案時的1位DPA示例,但是存在有用于MQ認證方案的類似處理。因此,MQ簽名方案時的1位DPA能夠很容易地擴展至MQ認證方案時的1位DPA。
因此,在本公開的第一實施例中,是無法從通過電力解析攻擊獲取的平均波形的差分波形中估計某一位的值的。具體地,如上所述,生成與一個公共密鑰相對應的多個秘密密鑰,并且在執行認證處理時,認證處理設備100a從該多個秘密密鑰中隨機選擇一個秘密密鑰。以此方式,認證處理設備100a就能夠通過從多個秘密密鑰中隨機選擇一個秘密密鑰并執行認證處理來防止秘密密鑰被電力解析攻擊所提取。
[操作]
圖7是根據本公開的第一實施例示出了在其中存儲有秘密密鑰的認證處理設備100a和執行驗證處理的驗證處理設備200a之間的認證處理的流程圖。圖7所示的流程圖示出了其中希望認證其本身的用戶生成公共密鑰以及與該公共密鑰相對應的兩個秘密密鑰的情況下的認證處理。
希望認證其本人的用戶通過上述密鑰生成算法Gen預先生成秘密密鑰x1、x2和公共密鑰F(x1)(步驟S101)。在此,公共密鑰F(x1)滿足F(x1)=F(x2)。這些秘密密鑰x1、x2以及公共密鑰F(x1)的生成由能夠執行密鑰生成算法Gen的信息處理裝置執行。
當用戶生成秘密x1、x2和公共密鑰F(x1)時,秘密密鑰x1、x2在保持秘密性的同時在認證處理設備100a內登記(步驟S102),而公共密鑰F(x1)則在驗證處理設備200a內登記(步驟S103)。隨后,當用戶指示對認證處理設備100a執行認證時(步驟S104),該認證處理設備100a首先隨機選擇i∈{1,2}(步驟S105)。然后,使用與在上述步驟S105中選擇的i相對應的秘密密鑰xi,由證明者算法P和驗證 者算法V在認證處理設備100a和驗證處理設備200a之間執行認證處理(步驟S106)。
以此方式,在執行認證處理時,由于是該認證處理設備100a從兩個秘密密鑰中隨機選擇一個秘密密鑰,因此由電力解析攻擊進行的1位DPA變得困難。這是因為秘密密鑰x1的第i位x1i和秘密密鑰x2的第i位x2i是不同的,由此就無法精確執行統計學處理。雖然上述1位DPA估計其中平均波形的差分波形被計算的位的值,但由于峰不會由于算出平均波形的差分波形而出現,因此在某些位的值針對每個處理而不同時,對這一位的值的估計將變得非常困難。
另一方面,由于認證處理設備100a在執行認證處理之時僅從兩個秘密密鑰中選擇一個秘密密鑰,因此就可以不需要包括作為電力解析攻擊的對抗措施的不必要的電路,并且可以不需要執行不必要的處理。因此,認證處理設備100a能夠以較低的成本并且在幾乎不降低速度或增加電力消耗的情況下實現針對電力解析攻擊的對抗措施。
<3.本公開的第二實施例>
[概述]
接下來將描述本公開的第二實施例的概述。本公開的第二實施例是可應用于其中用戶在執行用于個人驗證的認證之時將預先生成的秘密密鑰的內容輸入到設備中的情況的技術。
圖8是示出了在其中執行認證處理的認證處理裝置100b和執行驗證處理的驗證處理裝置200b之間的認證處理的概況的說明圖。由上述密鑰生成算法Gen生成的秘密密鑰x由希望接收個人驗證的用戶輸入至認證處理設備100b。進一步地,由上述密鑰生成算法Gen生成的公共密鑰F(x)在由證明者算法P和驗證者算法V進行的認證處理之前被存儲在驗證處理設備200b內。
例如,認證處理設備100b是前端裝置,并且可以是諸如個人計算機、智能電話或平板之類的信息處理裝置之外的裝置,例如金融機構的ATM(自動柜員機)等。例如,驗證處理設備200b是后端裝置,并且是服務器裝置等。同樣地,在認證處理設備100b執行來自用戶的 秘密密鑰的輸入之時,通過證明者算法P和驗證者算法V執行認證處理設備100b和驗證處理設備200b之間的認證協議。
圖9是示出了由證明者算法P和驗證者算法V在執行認證處理的認證處理設備100b和執行驗證處理的驗證處理設備200b之間執行的認證處理的流程圖。
希望認證其本人的用戶通過上述密鑰生成算法Gen生成秘密密鑰x和公共密鑰F(x)(步驟S21)。該秘密密鑰x和公共密鑰F(x)的生成由能夠執行密鑰生成算法Gen的信息處理裝置執行。
當用戶生成秘密密鑰x和公共密鑰F(x)時,公共密鑰在驗證處理設備200b中登記(步驟S22)。秘密密鑰x處于在保持秘密性的同時用戶還能在任意時刻對其進行訪問的狀態。雖然如果防止秘密密鑰泄漏,用戶會希望記憶該秘密密鑰x的內容,但由于秘密密鑰x不像密碼那樣容易記住,因此假設該秘密密鑰x會被寫在紙上等以供忘時之需。同樣地,用戶將秘密密鑰x輸入至認證處理設備100b,用以在認證處理設備100b和驗證處理設備200b之間執行認證處理(步驟S23)。當秘密密鑰x被輸入至認證處理設備100b時,由證明者算法P和驗證者算法V在認證處理設備100b和驗證處理設備200b之間執行認證處理(步驟S24)。
與其中秘密密鑰被記憶的條件相比,在秘密密鑰被寫在紙上等的情況下,存在有該秘密密鑰的內容將會歸因于其他人的窺視或秘密攝影而被泄漏給其他人的高度風險。以此方式,在秘密密鑰x被從外部直接輸入認證處理設備100b并且認證處理由證明者算法P和驗證者算法V在認證處理設備100b和驗證處理設備200b之間執行的情況下,如果該秘密密鑰x被泄漏給其他人,則存在這個人將使用秘密密鑰x執行常規認證的可能性。在此情況下,認證處理設備100b無法區別該秘密密鑰x是由常規用戶還是由這個人輸入的。
因此,在本公開的第二實施例中,如上所述,生成與一個公共密鑰相對應的多個秘密密鑰,其中一個秘密密鑰被用戶作為常規使用的秘密密鑰存儲,而另一個秘密密鑰則被用戶寫在了例如紙上等以供在 忘記秘密密鑰的內容時臨時使用。同樣地,驗證處理設備200b在執行認證處理之時,判斷哪個秘密密鑰是輸入至認證處理設備100b的秘密密鑰,并且判定其是否是并非常規使用的秘密密鑰的臨時使用秘密密鑰,即,是被用戶寫在紙上等的秘密密鑰。在執行認證處理之時,正被使用的臨時使用秘密密鑰由驗證處理設備200b判定,并且如果使用的是該臨時使用秘密密鑰,則可以通過通知用戶該臨時使用秘密密鑰已被使用來提醒用戶判定這是用戶對臨時使用秘密密鑰的有意使用,還是該臨時使用秘密密鑰已被泄漏。
[操作]
圖10是示出了根據本公開的第二實施例的在被輸入秘密密鑰的認證處理設備100b和執行驗證處理的驗證處理設備200b之間的認證處理的流程圖。圖10所示的流程圖示出了其中希望認證其本身的用戶生成公共密鑰以及與該公共密鑰相對應的兩個秘密密鑰的情況下的認證處理。
希望認證其本身的用戶通過上述密鑰生成算法Gen預先生成秘密密鑰x1、x2和公共密鑰F(x1),并將散列函數h應用于秘密密鑰x1、x2以生成散列值z2=h(x2)(步驟S201)。在此,公共密鑰F(x1)滿足F(x1)=F(x2)。這些秘密密鑰x1、x2以及公共密鑰F(x1)的生成由能夠執行密鑰生成算法Gen的信息處理裝置執行。例如,用戶通過記憶秘密密鑰x1或將其寫在紙上等而不將其出示給其他人的方式嚴格保持秘密密鑰x1作為常規使用的秘密密鑰,并且通常攜帶寫在紙介質上等的秘密密鑰x2作為臨時使用秘密密鑰。
用戶通過執行密鑰生成算法生成秘密密鑰x1、x2和公共密鑰F(x1),并且在通過將散列函數應用于秘密密鑰x2以附加地生成散列值z2時,在驗證處理設備200b中登記公共密鑰F(x1)和散列值z2(步驟S202)。隨后,用戶從秘密密鑰x1、x2中輸入一個秘密密鑰x至認證處理設備100b,以通過證明者算法P和驗證者算法V在認證處理設備100b和驗證處理設備200b之間執行認證處理(步驟S203)。
當秘密密鑰由用戶輸入時,認證處理設備100b通過將散列函數 h應用于輸入的秘密密鑰來計算散列值z,并將該散列值z傳送至驗證處理設備200b(步驟S204)。驗證處理設備200b比較發送自認證處理設備100b的散列值z和由用戶預先登記的散列值z2是否相互匹配。
如果散列值z和z2不匹配,則驗證處理設備200b不執行任何具體處理,并且如果散列值z和z2匹配,則驗證處理設備200b通過諸如電子郵件等的方法通知用戶該臨時使用的秘密密鑰x2已被輸入至認證處理設備100b(步驟S205)。
然后,使用在上述步驟S203輸入的秘密密鑰x,由證明者算法P和驗證者算法V在認證處理設備100b和驗證處理設備200b之間執行認證處理(步驟S206)。然后,如果用戶接收到來自驗證處理設備200b的通知,則密鑰的泄漏能夠通過判斷是否使用了用戶本身記不住的臨時使用的秘密密鑰x2而被檢測到(步驟S207)。
如上所述,在本實施例中,假設用戶通常攜帶寫在紙介質上等的秘密密鑰x2作為臨時使用秘密密鑰。因此,該秘密密鑰x2是很可能出于某種原因(諸如紙介質丟失)而被其他人得到的信息。
然而,在此通過將從秘密密鑰x2生成的散列值連同公共密鑰一起登記在驗證處理設備200b中,用戶能被來自驗證處理設備200b的通知告知在執行認證處理之時所使用的秘密密鑰x2是由用戶本人輸入的還是由其他人輸入的。使用秘密密鑰x1、x2的用戶能夠憑借來自驗證處理設備200b的通知檢測是否存在有臨時使用秘密密鑰的泄漏,并且在已經存在泄漏的情況下,用戶可以通過無效在驗證處理設備200b中登記的公共密鑰來防止損失的擴大。
注意到雖然在以上的描述中驗證處理設備200b在散列值z和z2不相互匹配時不執行任何具體處理,但是本公開不限于這一例子。由于不相互匹配的散列值z和z2由常規使用的秘密密鑰x1使用,因此驗證處理設備200b可以通過諸如電子郵件等的方法通知用戶該常規使用的秘密密鑰x1已被使用。
<4.本公開的第三實施例>
[概述]
接下來將描述本公開的第三實施例的概述。本公開的第三實施例是可應用于其中通過向每個不同的用戶提供兩個或更多個秘密密鑰中的一個密鑰而在多個用戶之間共享認證權利的情況的技術。
圖11是示出了通過生成共享的秘密密鑰x的密鑰生成器將秘密密鑰x提供給每個不同的用戶的認證系統的概念的說明圖。該密鑰生成器生成公共密鑰y=F(x)和秘密密鑰x,并將生成的秘密密鑰發送給用戶1和2。密鑰生成器向其發送秘密密鑰x的用戶1和2使用該秘密密鑰x執行認證。也就是說,共享的秘密密鑰x由用戶1和2共享。
然而,如果這一相同的秘密密鑰被提供給多個用戶,那么通過在秘密密鑰已被發布在互聯網的網站上等發覺該秘密密鑰已被泄漏的情況下,將無法檢測出是哪個用戶泄漏了該秘密密鑰的內容。因此,在本公開的第三實施例中,公開了一種在發覺秘密密鑰已被泄漏的情況下能夠輕易追蹤是哪個用戶泄漏了秘密密鑰的機制。
如上所述,當MQ函數被用于生成秘密密鑰時,可以生成與同一公共密鑰相對應的多個不同的秘密密鑰。因此,在發覺秘密密鑰已被泄漏的情況下,由于通過向多個用戶中的每一個用戶發送不同的秘密密鑰而能夠輕易追蹤是哪個用戶泄漏了秘密密鑰,因此能夠制止秘密密鑰的泄漏。
圖12是示出了根據本公開第三實施例的認證系統的概念的說明圖。圖12中示出的是其中通過密鑰生成器生成不同的秘密密鑰x1、x2而向每個不同的用戶提供秘密密鑰x1、x2的認證系統。
密鑰生成器通過使用上述密鑰生成算法生成與同一公共密鑰y相對應的多個不同的秘密密鑰x1、x2,并將秘密密鑰x1發送給用戶1而將秘密密鑰x2發送給用戶2。進一步地,該密鑰生成器管理要將哪個秘密密鑰發送給哪個用戶。然后,用戶1使用秘密密鑰x1而用戶2使用秘密密鑰x2,以分別與驗證者執行認證處理和簽名生成處理。
由此,通過生成與同一公共密鑰相對應的多個不同的秘密密鑰并將不同的秘密密鑰發送給相應的用戶,通過管理要將哪個秘密密鑰發送給哪個用戶,就能夠在發覺秘密密鑰已被泄漏的情況下輕易追蹤是 哪個用戶泄漏了秘密密鑰,因此能夠制止秘密密鑰的泄漏。
注意到雖然上述的例子描述了其中生成與同一公共密鑰相對應的多個不同的秘密密鑰并將不同的秘密密鑰發送給各用戶的情況,但是本公開的第三實施例在認證處理由多個服務器中的秘密密鑰執行時可以類似地應用于其中生成與同一公共密鑰相對應的多個不同的秘密密鑰并將不同的秘密密鑰發送給各用戶的情況。
圖13是示出了根據本公開第三實施例的認證系統的概念的說明圖。圖13中示出的是其中通過密鑰生成器生成不同的秘密密鑰x1、x2而向每個不同的服務器提供秘密密鑰x1、x2的認證系統。由此,密鑰生成器向每個不同的服務器提供秘密密鑰x1、x2,并且管理要將哪個秘密密鑰發送給哪個服務器。同樣地,如果各服務器變為證明者和簽署者并且分別同驗證者執行認證處理和簽名生成處理,則能夠在發覺秘密密鑰已被泄漏的情況下輕易追蹤是哪個服務器泄漏了秘密密鑰。
<5.變形例>
雖然以上的描述示出了其中通過使用MQ函數針對一個公共密鑰生成兩個秘密密鑰的情況,但是可以通過如上所述將由m行的n變量多次多項式構成的MQ函數的n值設置為m的c倍(c是2或以上的整數)來針對一個公共密鑰生成c個秘密密鑰。
同樣地,作為上述第一實施例的變形例,針對一個公共密鑰生成的c個秘密密鑰被全部包括在認證處理設備100a中,并且在執行認證處理時,可以通過從c個秘密密鑰中隨機選擇一個秘密密鑰來防止由電力解析攻擊導致的秘密密鑰的泄漏。
進一步地,作為上述第二實施例的變形例,可以為三種或更多種類型的秘密密鑰中的每一種提供不同的角色。雖然在上述第二實施例中在臨時使用的秘密密鑰被使用的情況下從驗證處理設備200b通過電子郵件等來通知用戶該臨時使用的秘密密鑰已被使用,但是也可以針對一個公共密鑰生成三個秘密密鑰,例如,其中的兩個秘密密鑰可以用作臨時使用的秘密密鑰,并且向這些臨時使用的秘密密鑰分別提 供不同的角色。
進一步地,作為上述第三實施例的變形例,可以通過向每個不同的用戶提供針對一個公共密鑰生成的c個秘密密鑰而在三個或更多個人之間共享權利,并且能夠在發覺秘密密鑰已被泄漏的情況下輕易追蹤是哪個用戶泄漏了秘密密鑰。
如上所述,當通過使用MQ函數生成的秘密密鑰執行認證處理時,一次認證處理被設為上述第一實施例的變形例,并且已知該一次認證處理的偽成功的概率能夠隨著使用上述n遍公共密鑰認證方案來重復多次(多回)該認證處理而降低。同樣地,在其中已經針對一個公共密鑰生成了多個秘密密鑰的情況下,通過為每回使用不同的秘密密鑰來執行認證處理也是可行的。因此,作為上述第一實施例的變形例,認證處理設備100a可以在執行一次認證處理時為每回隨機選擇秘密密鑰。
圖14是根據本公開的第一實施例的變形例示出了在其中存儲有秘密密鑰的認證處理設備100a和執行驗證處理的驗證處理設備200a之間的認證處理的流程圖。圖14所示的流程圖示出了其中希望認證其本身的用戶生成公共密鑰以及與該公共密鑰相對應的兩個秘密密鑰的情況下的認證處理。
希望認證其本人的用戶通過上述密鑰生成算法Gen預先生成秘密密鑰x1、x2和公共密鑰F(x1)(步驟S111)。在此,公共密鑰F(x1)滿足F(x1)=F(x2)。這些秘密密鑰x1、x2以及公共密鑰F(x1)的生成由能夠執行密鑰生成算法Gen的信息處理裝置執行。
當用戶生成秘密密鑰x1、x2和公共密鑰F(x1)時,秘密密鑰x1、x2在保持秘密性的同時在認證處理設備100a內登記(步驟S112),而公共密鑰F(x1)則在驗證處理設備200a內登記(步驟S113)。隨后,當用戶指示對認證處理設備100a執行認證時(步驟S114),該認證處理設備100a首先隨機選擇(i1,i2,...,iN)∈{1,2}(步驟S115)。在此,N代表在該一次認證處理中的回數。因此,上述步驟S115是其中認證處理設備100a從x1、x2中為每回隨機選擇要使用的秘密密鑰的處理。
然后,使用與在上述步驟S115中選擇的i相對應的秘密密鑰xij來在認證處理設備100a和驗證處理設備200a之間執行認證處理(步驟S116。注意到j是從1到N的整數。
由此,就能夠預期其中由電力解析攻擊進行的1位DPA會由于認證處理設備100a在一次認證處理中為每回隨機選擇要使用的秘密密鑰而變得困難的效果。
雖然上述實施例示出了其中使用MQ函數生成秘密密鑰的情況的例子,但是不言自明的是其可以類似地應用于使用MQ函數的數字簽名的情況。進一步地,雖然上述實施例在針對一個公共密鑰生成多個秘密密鑰時使用MQ函數,但是不言自明的是,如果存在有能夠針對一個公共密鑰生成多個秘密密鑰的算法,則本公開將不會限于對MQ函數的使用。
在此,將描述在每個上述實施例中執行的認證處理的算法例。在此,將描述3遍方案的算法。3遍方案的算法諸如下文所述由密鑰生成算法Gen、證明者算法P和驗證者算法V組成。
密鑰生成算法Gen生成在環K上定義的m行的多變量多項式f1(x1,...,xn),...,fm(x1,...,xn)以及向量s=(s1,...,sn)∈Kn。接下來,該密鑰生成算法Gen計算y=(y1,...,ym)←(f1(s),...,fm(s))。隨后,該密鑰生成算法Gen將(f1(x1,...,xn),...,fm(x1,...,xn),y)設為公共密鑰pk并將s設為秘密密鑰。
其后,將參考圖15描述在交互協議中執行證明者算法P的處理和執行驗證者算法V的處理。在此交互協議中,證明者在不向驗證者泄漏秘密密鑰s的任何信息的情況下向驗證者示出“其本身知曉滿足y=F(s)的s”。另一方面,驗證者驗證該證明者是否知曉滿足y=F(s)的s。注意到公共密鑰pk被公開給驗證者。此外,秘密密鑰s由證明者秘密管理。其后,將按照圖15所示的流程圖來進行描述。
進程#1
如圖15所示,首先證明者算法P隨機生成向量t0∈Kn和e0∈Km。接下來,證明者算法P計算r1←s-r0。這一計算對應于由向量r0掩蔽 秘密密鑰s的操作。此外,證明者算法P計算t1←r0-t0。接下來,證明者算法P計算e1←F(r0)-e0。
進程#1(繼續):
接下來,證明者算法P計算c0←H(r1,G(t0,r1)+e0)。接下來,證明者算法P計算c1←H(t0,e0)。接下來,證明者算法P計算c2←H(t1,e1)。在進程#1中生成的消息(c0,c1,c2)被發送給驗證者算法V。
進程#2
接收到消息(c0,c1,c2)的驗證者算法V從三個驗證模式中選擇要使用哪個驗證消息。例如,驗證者算法V從表示驗證模式的類型的三個數值{0,1,2}中選擇一個數值,并且將選擇的數值設為請求Ch。該請求Ch被發送給證明者算法P。
進程#3
接收到該請求Ch的證明者算法P根據接收到的請求Ch生成要發送給驗證者算法V的響應Rsp。在其中Ch=0的情況下,證明者算法P生成響應Rsp=(r0,t1,e1)。在其中Ch=1的情況下,證明者算法P生成響應Rsp=(r1,t0,e0)。在其中Ch=2的情況下,證明者算法P生成響應Rsp=(r1,t1,e1)。在進程#3中生成的響應Rsp被發送給驗證者算法V。
進程#4
接收到響應Rsp的驗證者算法V通過使用接收到的響應Rsp執行隨后的驗證處理。
在Ch=0的情況下,驗證者算法V驗證c1=H(r0-t1,F(r0)-e1)的等號成立與否。此外,驗證者算法V驗證c2=H(t1,e1)的等號成立與否。驗證者算法V在這些驗證全部成功時輸出指示成功驗證的值1,而在驗證中存在失敗時輸出指示驗證失敗的值0。
在Ch=1的情況下,驗證者算法V驗證c0=H(r1,G(t0,r1)+e0)的等號成立與否。此外,驗證者算法V驗證c1=H(t0,e0)的等號成立與否。驗證者算法V在這些驗證全部成功時輸出指示成功驗證的值1,而在驗證中存在失敗時輸出指示驗證失敗的值0。
在Ch=2的情況下,驗證者算法V驗證c0=H(r1,y-F(r1)-G(t1,r1)-e1)的等號成立與否。此外,驗證者算法V驗證c2=H(t1,e1)的等號成立與否。驗證者算法V在這些驗證全部成功時輸出指示成功驗證的值1,而在驗證中存在失敗時輸出指示驗證失敗的值0。
至此,已經描述了根據3遍方案的有效算法的配置例。當然,在本公開中執行認證處理時的算法不限于這一示例,并且不言自明的是,在從m行多變量多項式中生成公共密鑰以及與該公共密鑰相對應的多個秘密密鑰的情況下,可以在類似的認證處理中使用其他算法。
<6:硬件配置>
上述的每個算法例如可以通過使用圖16所示的信息處理裝置的硬件配置來執行。也就是說,可以使用計算機程序通過控制圖16所示的硬件來實現每個算法的處理。此外,這一硬件的模式是任意的,并且可以是個人計算機,諸如移動電話、PHS或PDA之類的移動信息終端,游戲機,接觸或非接觸式IC芯片,接觸或非接觸式IC卡,或是各種類型的信息家電。此外,PHS是個人輕便電話系統的縮寫。同樣地,PDA是個人數字助理的縮寫。
如圖16所示,硬件主要包括CPU902、ROM904、RAM906、主機總線908和橋910。此外,這一硬件包括外部總線912、接口914、輸入單元916、輸出單元918、存儲單元920、驅動器922、連接端口924和通信單元926。此外,CPU是中央處理單元的縮寫。同樣地,ROM是只讀存儲器的縮寫。進一步地,RAM是隨機存取存儲器的縮寫。
CPU902例如起到算術處理單元或控制單元的作用,并且基于記錄在ROM904、RAM906、存儲單元920和可移除記錄介質928等上的各種程序執行每個結構元件的操作或部分操作。ROM904是用于存儲例如要被裝載到CPU902上的程序或要在算術操作中使用的數據等的設備。RAM906臨時或永久性地存儲例如被裝載到CPU902上的程序或在程序執行過程中任意改變的各種參數等。
這些結構性元件彼此通過例如能夠執行高速數據傳輸的主機總 線908相連接。一方面,主機總線908通過橋910連接至外部總線912,后者的數據傳輸速度例如相對較低。此外,輸入單元916例如是鼠標、鍵盤、觸摸面板、按鈕、開關、杠桿等。此外,輸入單元916可以是能夠通過使用紅外線或其他無線電波傳送控制信號的遙控器。
輸出單元918是能夠視覺或聽覺通知用戶所獲得的信息的例如像是CRT、LCD、PDP或ELD的顯示設備,像是揚聲器或耳機的音頻輸出設備,打印機,移動電話或傳真機。此外,CRT是陰極射線管的縮寫。LCD是液晶顯示器的縮寫。PDP是等離子顯示面板的縮寫。同樣地,ELD是電致發光顯示器的縮寫。
存儲單元920是用于存儲各種數據的設備。存儲單元920是例如像是硬盤驅動器(HDD)、半導體存儲設備的磁性存儲設備、光學存儲設備或磁光存儲設備。HDD是硬盤驅動器的縮寫。
驅動器922是讀取記錄在諸如磁盤、光盤、磁光盤或半導體存儲器的可移除記錄介質928上的信息并將信息寫入該可移除記錄介質928的設備。該可移除記錄介質928例如是DVD介質、藍光介質、HD-DVD介質、各種類型的半導體存儲介質等。當然,該可移除記錄介質928也可以是例如其上裝有非接觸式IC芯片的電子設備或IC卡。IC是集成電路的縮寫。
連接端口924是諸如USB端口、IEEE1394端口、SCSI、RS-232C端口的端口,或是用于連接諸如光學音頻終端的外部連接設備930的端口。該外部連接設備930例如是打印機、移動音樂播放器、數碼相機、數碼攝像機或IC記錄器。此外,USB是通用串行總線的縮寫。同樣地,SCSI是小型計算機系統接口的縮寫。
通信單元926是要與網絡932相連接的通信設備,并且例如是用于有線或無線LAN的通信卡、Bluetooth(注冊商標)或WUSB、光學通信路由器、ADSL路由器或是用于接觸式或非接觸式通信的設備。連接至該通信單元926的網絡932由有線連接或無線連接的網絡配置,并且例如是因特網、家用LAN、紅外通信、可見光通信、廣播或衛星通信等。此外,LAN是局域網的縮寫。同樣地,WUSB是無線USB 的縮寫。此外,ADSL是非對稱數字訂戶線路的縮寫。
<7.結論>
根據如上所述的本公開,通過使用其中能夠針對同一公共密鑰生成多個秘密密鑰的公共密鑰認證方案(諸如,使用MQ函數的密鑰生成算法)實現了一種檢測密鑰泄漏的方法、一種防止密鑰泄漏的方法以及一種抑制密鑰泄漏的方法。
在本公開的第一實施例中,針對同一公共密鑰生成的多個秘密密鑰被記錄在認證處理設備內,作為其中記錄有秘密密鑰的諸如IC卡的認證處理設備的電力解析攻擊的對抗措施。在執行認證處理時,該認證處理設備從多個秘密密鑰中隨機選取一個秘密密鑰。通過具有在執行認證處理時從多個秘密密鑰中隨機選取一個秘密密鑰的認證處理設備,通過電力解析攻擊提取秘密密鑰將變得困難。
在本公開的第二實施例中,在其中秘密密鑰被輸入認證處理設備的情況下,如果并非常規使用的秘密密鑰的臨時使用秘密密鑰被輸入到認證處理設備內,則將經由認證處理設備通知用戶該臨時使用的秘密密鑰已被使用。通過向用戶通知該臨時使用的秘密密鑰已被使用,使得用戶可以判斷該臨時使用的秘密密鑰是已被有意使用還是已被泄漏。
在本公開的第三實施例中,與一個公共密鑰相對應的多個秘密密鑰被分別發送至不同的用戶。在一個秘密密鑰被泄漏的情況下,由于通過將與一個公共密鑰應的多個秘密密鑰中的每一個發送至不同的用戶而能夠容易地追蹤是誰泄漏了密鑰,因此能夠制止秘密密鑰的泄漏。
注意到雖然已經通過示出使用MQ函數生成秘密密鑰作為能夠針對一個公共密鑰生成的多個秘密密鑰的的例子描述了每一個的上述實施例,但是本公開不限于這些例子。根據能夠生成針對一個公共密鑰的多個秘密密鑰的公共密鑰認證方案和數字簽名方案,不言自明的是這些方案可以類似地應用于每一個的上述實施例。此外,雖然在每一個的上述實施例,執行認證處理的認證處理設備和實現驗證處理的驗證處理設備可以分別被包括在分開的裝置內,但是它們也可被包括 在同一裝置內。
最后,將簡要描述根據本技術實施例的技術性內容。在此闡述的技術性內容可被應用于各種信息處理裝置,諸如個人計算機、移動電話、便攜式游戲機、便攜式信息終端、信息家電、車輛導航系統等。進一步地,可以通過使用單個信息處理裝置或使用多個信息處理裝置來實現如下描述的信息處理裝置的功能。此外,用于由如下描述的信息處理裝置執行的處理的數據存儲設備和算術處理設備可以被安裝在該信息處理裝置上,或者可被安裝在經網絡相連的設備上。
注意到,以上描述的密鑰生成算法Gen、證明者算法P、驗證者算法V、簽名生成算法sig和簽名驗證算法Ver是根據本公開實施例的密鑰選擇部和處理執行部的例子。
本領域技術人員應該理解的是,取決于設計要求和其他因素,會出現各種修改、組合、子組合和變化,而這些修改、組合、子組合和變化仍將位于所附權利要求或其等效方案的范圍內。
此外,本技術還可如下構成。
(1)一種信息處理裝置,包括:
在針對在驗證者中登記的一個公共密鑰存在多個不同的秘密密鑰的公共密鑰認證方案或數字簽名方案中,被配置為從所述多個不同的秘密密鑰中選擇一個秘密密鑰的密鑰選擇部;以及
被配置為通過使用由所述密鑰選擇部選擇的秘密密鑰執行根據公共密鑰認證方案的與驗證者之間的認證處理或根據數字簽名方案的向驗證者的數字簽名生成處理的處理執行部。
(2)如(1)的信息處理裝置,
其中密鑰選擇部被配置為在執行與驗證者之間的認證處理或數字簽名生成處理時從所述多個不同的秘密密鑰中隨機選擇一個秘密密鑰。
(3)如(2)的信息處理裝置,
其中密鑰選擇部被配置為,在處理執行部通過重復與驗證者之間的認證處理而完成一次認證的情況下,或在處理執行部通過重復數字 簽名生成處理而完成一次數字簽名的生成的情況下,針對認證處理或數字簽名生成處理的每一個從所述多個不同的秘密密鑰中隨機選擇一個秘密密鑰。
(4)如(1)的信息處理裝置,
其中處理執行部被配置為在驗證者中登記通過將散列函數應用于所述多個不同的秘密密鑰中的第一秘密密鑰而獲取的第一散列值。
(5)如(4)的信息處理裝置,
其中處理執行部被配置為將散列函數應用于在根據公共密鑰認證方案執行與驗證者之間的認證處理或根據數字簽名方案向驗證者執行數字簽名生成處理時使用的秘密密鑰,并向該驗證者傳送用于要與第一散列值相比較的第二散列值。
(6)如(5)的信息處理裝置,還包括:
被配置為在驗證者使用公共密鑰認證方案或數字簽名方案執行驗證處理時將第一散列值和第二散列值相比較,并且根據上述比較的結果執行規定通知處理的比較處理部。
(7)如(1)的信息處理裝置,
其中所述多個不同的秘密密鑰分別被登記在不同裝置內,并且
其中密鑰選擇部被配置為選擇登記的秘密密鑰。
(8)如(1)的信息處理裝置,
其中公共密鑰認證方案或數字簽名方案是將s∈Kn設為秘密密鑰并將環K上的多次多項式fi(x1,...,xn)和yi=fi(s)設為公共密鑰的公共密鑰認證方案,其中i=1至m。
(9)一種信息處理方法,包括:
在針對在驗證者中登記的一個公共密鑰存在多個不同的秘密密鑰的公共密鑰認證方案或數字簽名方案中,從所述多個不同的秘密密鑰中選擇一個秘密密鑰;以及
通過使用由密鑰選擇步驟選擇的秘密密鑰執行根據公共密鑰認證方案的與驗證者之間的認證處理或根據數字簽名方案的向驗證者的數字簽名生成處理。
(10)一種包括計算機程序的非暫態計算機可讀介質,所述計算機程序在被計算機執行時使得計算機:
在針對在驗證者中登記的一個公共密鑰存在多個不同的秘密密鑰的公共密鑰認證方案或數字簽名方案中,從所述多個不同的秘密密鑰中選擇一個秘密密鑰;以及
通過使用由密鑰選擇步驟選擇的秘密密鑰執行根據公共密鑰認證方案的與驗證者之間的認證處理或根據數字簽名方案的向驗證者的數字簽名生成處理。
(11)一種信息處理裝置,包括
比較處理部,所述比較處理部被配置為:在針對一個公共密鑰存在多個不同的秘密密鑰的公共密鑰認證方案或數字簽名方案中,獲取通過證明者將散列函數應用于所述多個不同的秘密密鑰中的第一秘密密鑰而得到的第一散列值、以及通過證明者向在執行與驗證者之間的認證處理或根據數字簽名方案向驗證者的數字簽名處理時使用的秘密密鑰應用散列函數而得到的第二散列值;在使用公共密鑰認證方案或數字簽名方案執行認證處理時比較所述第一散列值和所述第二散列值;以及根據上述比較的結果向證明者執行規定通知處理。
本公開包含在于2012年10月9日向日本專利局提交的日本優先權專利申請JP2012-198343中所公開的主題,其中該專利申請的全部內容通過引用合并在此。

關于本文
本文標題:信息處理裝置、信息處理方法以及非暫態計算機可讀介質.pdf
鏈接地址:http://www.pqsozv.live/p-6180688.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
钻石光影