JP2014052588A - 情報処理装置、情報処理方法及びコンピュータプログラム - Google Patents
情報処理装置、情報処理方法及びコンピュータプログラム Download PDFInfo
- Publication number
- JP2014052588A JP2014052588A JP2012198343A JP2012198343A JP2014052588A JP 2014052588 A JP2014052588 A JP 2014052588A JP 2012198343 A JP2012198343 A JP 2012198343A JP 2012198343 A JP2012198343 A JP 2012198343A JP 2014052588 A JP2014052588 A JP 2014052588A
- Authority
- JP
- Japan
- Prior art keywords
- key
- verifier
- authentication
- public key
- secret
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Abstract
【課題】同一の公開鍵に対して複数の秘密鍵を用いることで、鍵漏洩の検知手法や、鍵漏洩の防止手法や、鍵漏洩の抑止手法を実現する、情報処理装置を提供する。
【解決手段】検証者に登録される1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式における、前記複数の秘密鍵のいずれか1つを選択する鍵選択部と、前記鍵選択部が選択した秘密鍵を用いて、前記公開鍵認証方式による前記検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理を実行する処理実行部と、を備える、情報処理装置が提供される。かかる情報処理装置は、同一の公開鍵に対応する複数の秘密鍵の中から1つの秘密鍵を選択して用いることで、鍵漏洩の検知手法や、鍵漏洩の防止手法や、鍵漏洩の抑止手法を実現する。
【選択図】図1
【解決手段】検証者に登録される1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式における、前記複数の秘密鍵のいずれか1つを選択する鍵選択部と、前記鍵選択部が選択した秘密鍵を用いて、前記公開鍵認証方式による前記検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理を実行する処理実行部と、を備える、情報処理装置が提供される。かかる情報処理装置は、同一の公開鍵に対応する複数の秘密鍵の中から1つの秘密鍵を選択して用いることで、鍵漏洩の検知手法や、鍵漏洩の防止手法や、鍵漏洩の抑止手法を実現する。
【選択図】図1
Description
本開示は、情報処理装置、情報処理方法及びコンピュータプログラムに関する。
情報処理技術や通信技術の急速な発展に伴い、公文書、私文書を問わず、文書の電子化が急速に進んでいる。これに伴い、多くの個人や企業は、電子文書の安全管理に大きな関心を寄せている。こうした関心の高まりを受け、各方面で電子文書の盗聴や偽造等のタンパリング行為に対する安全性が盛んに議論されるようになってきた。電子文書の盗聴に対する安全性は、例えば、電子文書を暗号化することにより確保される。また、電子文書の偽造に対する安全性は、例えば、電子署名を利用することにより確保される。但し、暗号や電子署名には十分なタンパリング耐性が求められる。
本人確認のためには、一般に公開鍵暗号技術が広く用いられている。公開鍵暗号方式は、ある人(証明者)が、公開鍵及び秘密鍵を利用して、他の人(検証者)に本人であることを納得させるための認証方式である。
この公開鍵暗号技術において、秘密鍵の漏洩は最も避けなければならない事象である。秘密鍵は、本人確認のための認証や署名等で必要になるので、証明者は、必要に応じてアクセスできるようにしておくことが望まれる。例えば、証明者は、パスワードのように秘密鍵を記憶したり、紙にメモして持ち歩いたり、またICカードのようなデバイスに格納して携帯すること等が求められる。例えば、秘密鍵を備えたICカードによる認証システムを開示した技術として特許文献1等がある。
公開鍵暗号技術において、秘密鍵はパスワードのように覚えやすいものにはなっていないので、証明者が秘密鍵を頭で記憶するのは容易なことではない。また、秘密鍵を紙にメモすると、他者による覗き行為や盗撮等によってその秘密鍵の内容が他者に漏洩してしまう危険性が高い。従来は、公開鍵暗号技術において、1つの公開鍵に対応する1種類の秘密鍵を用いて認証が行われていたので、秘密鍵が漏洩してしまうと、本人が使用した秘密鍵か、他者による成りすましが実行されているかが分からない。秘密鍵が漏洩してしまうと、何らかの方法でその成りすましを検知しない限り、鍵漏洩時以降の成りすましを防ぐことが出来ない。
一方、秘密鍵をICカードのようなデバイスに格納した場合、そのICカードを紛失しない限りは他者による成りすましは困難である。ICカードを紛失した場合は、ICカードに格納した秘密鍵の利用を中止するようにすれば、他者による成りすましを防ぎ、被害の拡大を抑えることが出来る。しかし、ICカードのようなデバイスにはサイドチャネル攻撃という解析手法が提案されており、そのサイドチャネル攻撃に対する対策を施さなければ、秘密鍵が漏洩してしまう。
また、複数サーバへの分散による認証や、複数ユーザによる署名等を実現したい場合には、署名生成や認証の権利を複数人で共有できれば良く、例えば署名生成の権利を複数人で共有するための技術として、グループ署名技術が提案されている。ただし、このグループ署名技術は,署名生成の権利を複数人で共有する用途に特化した、特定のいくつかの署名手法のみを指すものであり、任意の署名方式,認証方式において上記の目的を達成することができない。
署名生成や認証の権利を複数人で共有する目的を実現するための他の手法として、単純に、複数ユーザによる同一の秘密鍵の共有が考えられる。しかし、この秘密鍵を共有する手法では、鍵の管理がおろそかなユーザからの秘密鍵の漏洩により、他のユーザは損害を被ってしまう。また、漏洩した秘密鍵から、秘密鍵を漏洩させたユーザを捜そうとしても、同一の秘密鍵を複数ユーザで共有していることから、秘密鍵を漏洩させたユーザの特定が困難になる状況も考えらえる。
そこで、本開示は、上記問題に鑑みてなされたものであり、本開示の目的とするところは、同一の公開鍵に対して複数の秘密鍵を用いることで、鍵漏洩の検知手法や、鍵漏洩の防止手法や、鍵漏洩の抑止手法を実現する、新規かつ改良された情報処理装置、情報処理方法及びコンピュータプログラムを提供することにある。
本開示によれば、検証者に登録される1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式における、前記複数の秘密鍵のいずれか1つを選択する鍵選択部と、前記鍵選択部が選択した秘密鍵を用いて、前記公開鍵認証方式による前記検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理を実行する処理実行部と、を備える、情報処理装置が提供される。
また本開示によれば、検証者に登録される1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式における、前記複数の秘密鍵のいずれか1つを選択する鍵選択ステップと、前記鍵選択ステップで選択された秘密鍵を用いて、前記公開鍵認証方式による前記検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理を実行する処理実行ステップと、を備える、情報処理方法が提供される。
また本開示によれば、コンピュータに、検証者に登録される1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式における、前記複数の秘密鍵のいずれか1つを選択する鍵選択ステップと、前記鍵選択ステップで選択された秘密鍵を用いて、前記公開鍵認証方式による前記検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理を実行する処理実行ステップと、を実行させる、コンピュータプログラムが提供される。
また本開示によれば、1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式において、証明者が前記複数の秘密鍵の内の第1の秘密鍵にハッシュ関数を適用して得られる第1のハッシュ値及び前記証明者が検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理の際に使用した秘密鍵にハッシュ関数を適用して得られる第2のハッシュ値を取得し、前記公開鍵認証方式または前記電子署名方式を用いた検証処理の際に前記第1のハッシュ値と前記第2のハッシュ値とを比較し、比較の結果に応じて前記証明者への所定の通知処理を実行する比較処理部を備える、情報処理装置が提供される。
以上説明したように本開示によれば、同一の公開鍵に対して複数の秘密鍵を用いることで、鍵漏洩の検知手法や、鍵漏洩の防止手法や、鍵漏洩の抑止手法を実現する、新規かつ改良された情報処理装置、情報処理方法及びコンピュータプログラムを提供することができる。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
<1.公開鍵認証方式及び秘密鍵の説明>
<2.本開示の第1の実施形態>
[概要]
[動作]
<3.本開示の第2の実施形態>
[概要]
[動作]
<4.本開示の第3の実施形態>
[概要]
<5.変形例>
<6.ハードウェア構成例>
<7.まとめ>
<1.公開鍵認証方式及び秘密鍵の説明>
<2.本開示の第1の実施形態>
[概要]
[動作]
<3.本開示の第2の実施形態>
[概要]
[動作]
<4.本開示の第3の実施形態>
[概要]
<5.変形例>
<6.ハードウェア構成例>
<7.まとめ>
<1.公開鍵認証方式及び秘密鍵の説明>
本開示の好適な実施の形態について説明する前に、まず、公開鍵認証方式及び電子署名方式の概要を説明し、続いて、後述する本開示の各実施形態で用いられる秘密鍵について説明する。
本開示の好適な実施の形態について説明する前に、まず、公開鍵認証方式及び電子署名方式の概要を説明し、続いて、後述する本開示の各実施形態で用いられる秘密鍵について説明する。
公開鍵認証方式とは、ある人(証明者)が、公開鍵pk及び秘密鍵skを利用して、他の人(検証者)に本人であることを納得させるための認証方式である。例えば、証明者Aの公開鍵pkAは、検証者に公開される。一方、証明者Aの秘密鍵skAは、証明者により秘密に管理される。公開鍵認証方式では、公開鍵pkAに対応する秘密鍵skAを知る者が証明者A本人であるとみなされる。
証明者Aが検証者Bに対して本人であることを証明しようとする場合、証明者Aは、検証者Bと対話プロトコルを実行して、自身が公開鍵pkAに対応する秘密鍵skAを知っていることを証明すればよい。そして、対話プロトコルにより証明者Aが秘密鍵skAを知っていることが検証者Bにより証明された場合、証明者Aの正当性(本人であること)が証明される。
なお、公開鍵認証方式の安全性を確保するには、次に示す2つの条件が求められる。
1つ目の条件は、対話プロトコルを実行した際に秘密鍵skを持たない偽証者により偽証が成立してしまう確率を限りなく小さくすることである。この1つ目の条件が成り立つことを「健全性」と呼ぶ。つまり、健全性を有する対話プロトコルにおいては、秘密鍵skを持たない偽証者により、無視できない確率で偽証が成立することはないと言い換えられる。2つ目の条件は、対話プロトコルを実行したとしても、証明者Aが有する秘密鍵skAの情報が検証者Bに一切漏れることがないようにすることである。この2つ目の条件が成り立つことを「零知識性」と呼ぶ。
上記の健全性と零知識性を有する対話プロトコルを利用することにより、公開鍵認証方式の安全性が確保される。
公開鍵認証方式のモデルには、図1に示すように、証明者と検証者という2つのエンティティが存在する。証明者は、鍵生成アルゴリズムGenを用いて、証明者固有の秘密鍵skと公開鍵pkの組を生成する。次いで、証明者は、鍵生成アルゴリズムGenを用いて生成した秘密鍵skと公開鍵pkの組を利用して検証者と対話プロトコルを実行する。このとき、証明者は、証明者アルゴリズムPを利用して対話プロトコルを実行する。上記の通り、対話プロトコルにおいて、証明者は、証明者アルゴリズムPを利用して、秘密鍵skを保有していることを検証者に証明する。
一方、検証者は、検証者アルゴリズムVを利用して対話プロトコルを実行し、証明者が公開している公開鍵に対応する秘密鍵を、その証明者が保有しているか否かを検証する。つまり、検証者は、証明者が公開鍵に対応する秘密鍵を保有しているか否かを検証するエンティティである。このように、公開鍵認証方式のモデルは、証明者と検証者という2つのエンティティ、及び、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVという3つのアルゴリズムにより構成される。
なお、以下の説明において、「証明者」「検証者」という表現を用いるが、これらの表現はあくまでもエンティティを意味するものである。従って、鍵生成アルゴリズムGen、証明者アルゴリズムPを実行する主体は、「証明者」のエンティティに対応する情報処理装置である。同様に、検証者アルゴリズムVを実行する主体は、情報処理装置である。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、証明者により利用される。そして、鍵生成アルゴリズムGenは、証明者に固有の秘密鍵skと公開鍵pkの組を生成するアルゴリズムである。鍵生成アルゴリズムGenにより生成された公開鍵pkは公開される。そして、公開された公開鍵pkは、検証者により利用される。一方、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者が秘密に管理する。そして、秘密に管理される秘密鍵skは、検証者に対して公開鍵pkに対応する秘密鍵skを保有していることを証明するために利用される。形式的に、鍵生成アルゴリズムGenは、セキュリティパラメータ1λ(λは0以上の整数)を入力とし、秘密鍵skと公開鍵pkを出力するアルゴリズムとして、下記の式(1)のように表現される。
鍵生成アルゴリズムGenは、証明者により利用される。そして、鍵生成アルゴリズムGenは、証明者に固有の秘密鍵skと公開鍵pkの組を生成するアルゴリズムである。鍵生成アルゴリズムGenにより生成された公開鍵pkは公開される。そして、公開された公開鍵pkは、検証者により利用される。一方、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者が秘密に管理する。そして、秘密に管理される秘密鍵skは、検証者に対して公開鍵pkに対応する秘密鍵skを保有していることを証明するために利用される。形式的に、鍵生成アルゴリズムGenは、セキュリティパラメータ1λ(λは0以上の整数)を入力とし、秘密鍵skと公開鍵pkを出力するアルゴリズムとして、下記の式(1)のように表現される。
(証明者アルゴリズムP)
証明者アルゴリズムPは、証明者により利用される。そして、証明者アルゴリズムPは、公開鍵pkに対応する秘密鍵skを保有していることを証明するアルゴリズムである。証明者アルゴリズムPは、証明者の秘密鍵skと公開鍵pkを入力とし、検証者との対話プロトコルを実行するアルゴリズムとして定義される。
証明者アルゴリズムPは、証明者により利用される。そして、証明者アルゴリズムPは、公開鍵pkに対応する秘密鍵skを保有していることを証明するアルゴリズムである。証明者アルゴリズムPは、証明者の秘密鍵skと公開鍵pkを入力とし、検証者との対話プロトコルを実行するアルゴリズムとして定義される。
(検証者アルゴリズムV)
検証者アルゴリズムVは、検証者により利用される。そして、検証者アルゴリズムVは、対話プロトコルの中で、公開鍵pkに対応する秘密鍵skを証明者が保有しているか否かを検証するアルゴリズムである。検証者アルゴリズムVは、証明者の公開鍵pkを入力とし、証明者との間で対話プロトコルを実行した後、0又は1(1bit)を出力するアルゴリズムとして定義される。なお、出力0の場合には証明者が不正なものであり、出力1の場合には証明者が正当なものであるとする。形式的に、検証者アルゴリズムVは、下記の式(2)のように表現される。
検証者アルゴリズムVは、検証者により利用される。そして、検証者アルゴリズムVは、対話プロトコルの中で、公開鍵pkに対応する秘密鍵skを証明者が保有しているか否かを検証するアルゴリズムである。検証者アルゴリズムVは、証明者の公開鍵pkを入力とし、証明者との間で対話プロトコルを実行した後、0又は1(1bit)を出力するアルゴリズムとして定義される。なお、出力0の場合には証明者が不正なものであり、出力1の場合には証明者が正当なものであるとする。形式的に、検証者アルゴリズムVは、下記の式(2)のように表現される。
上記の通り、公開鍵認証方式は、安全性を確保するため、健全性と零知識性という2つの条件を満たすことが求められる。しかし、証明者が秘密鍵skを保有していることを証明者に証明させるためには、証明者が秘密鍵skに依存した手続きを実行し、その結果を検証者に通知して、その通知内容に基づく検証を検証者に実行させる必要がある。秘密鍵skに依存した手続きを実行するのは、健全性を担保するために必要である。一方で、この手続きの結果を検証者に通知しても、秘密鍵skの情報が一切検証者に漏れないようにする必要がある。そのため、これらの要件を満たすように、上記の鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVが設計されることが必要になる。
次に、電子署名方式のアルゴリズムについて概要を説明する。図2は、電子署名方式のアルゴリズムについて概要を説明するための説明図である。
紙文書とは異なり、ある電子化されたデータに対して押印したり署名を記載したりすることはできない。そのため、電子化されたデータの作成者を証明するためには、紙文書に押印したり署名を記載したりするのと同等の効果が得られる電子的な仕組みを必要とする。この仕組みが電子署名である。電子署名とは、データの作成者しか知らない署名データをデータに関連付けて受領者に提供し、その署名データを受領者側で検証する仕組みのことを言う。
(モデル)
電子署名方式のモデルには、図2に示すように、署名者及び検証者という2つのエンティティが存在する。そして、電子署名方式のモデルは、鍵生成アルゴリズムGen、署名生成アルゴリズムSig、署名検証アルゴリズムVerという3つのアルゴリズムにより構成される。
電子署名方式のモデルには、図2に示すように、署名者及び検証者という2つのエンティティが存在する。そして、電子署名方式のモデルは、鍵生成アルゴリズムGen、署名生成アルゴリズムSig、署名検証アルゴリズムVerという3つのアルゴリズムにより構成される。
署名者は、鍵生成アルゴリズムGenを利用して署名者固有の署名鍵skと検証鍵pkとの組を生成する。また、署名者は、署名生成アルゴリズムSigを利用して文書Mに付与する電子署名σを生成する。つまり、署名者は、文書Mに電子署名を付与するエンティティである。一方、検証者は、署名検証アルゴリズムVerを利用して文書Mに付与された電子署名σを検証する。つまり、検証者は、文書Mの作成者が署名者であるか否かを確認するために、電子署名σを検証するエンティティである。
なお、以下の説明において、「署名者」「検証者」という表現を用いるが、これらの表現はあくまでもエンティティを意味するものである。従って、鍵生成アルゴリズムGen、署名生成アルゴリズムSigを実行する主体は、「署名者」のエンティティに対応する情報処理装置である。同様に、署名検証アルゴリズムVerを実行する主体は、情報処理装置である。
(鍵生成アルゴリズムGen)
鍵生成アルゴリズムGenは、署名者により利用される。鍵生成アルゴリズムGenは、署名者固有の署名鍵skと検証鍵pkとの組を生成するアルゴリズムである。鍵生成アルゴリズムGenにより生成された検証鍵pkは公開される。一方、鍵生成アルゴリズムGenにより生成された署名鍵skは、署名者により秘密に管理される。そして、署名鍵skは、文書Mに付与される電子署名σの生成に利用される。例えば、鍵生成アルゴリズムGenは、セキュリティパラメータ1λ(λは0以上の整数)を入力とし、署名鍵sk及び公開鍵pkを出力する。この場合、鍵生成アルゴリズムGenは、形式的に、下記の式(3)のように表現することができる。
鍵生成アルゴリズムGenは、署名者により利用される。鍵生成アルゴリズムGenは、署名者固有の署名鍵skと検証鍵pkとの組を生成するアルゴリズムである。鍵生成アルゴリズムGenにより生成された検証鍵pkは公開される。一方、鍵生成アルゴリズムGenにより生成された署名鍵skは、署名者により秘密に管理される。そして、署名鍵skは、文書Mに付与される電子署名σの生成に利用される。例えば、鍵生成アルゴリズムGenは、セキュリティパラメータ1λ(λは0以上の整数)を入力とし、署名鍵sk及び公開鍵pkを出力する。この場合、鍵生成アルゴリズムGenは、形式的に、下記の式(3)のように表現することができる。
(署名生成アルゴリズムSig)
署名生成アルゴリズムSigは、署名者により利用される。署名生成アルゴリズムSigは、文書Mに付与される電子署名σを生成するアルゴリズムである。署名生成アルゴリズムSigは、署名鍵skと文書Mとを入力とし、電子署名σを出力するアルゴリズムである。この署名生成アルゴリズムSigは、形式的に、下記の式(4)のように表現することができる。
署名生成アルゴリズムSigは、署名者により利用される。署名生成アルゴリズムSigは、文書Mに付与される電子署名σを生成するアルゴリズムである。署名生成アルゴリズムSigは、署名鍵skと文書Mとを入力とし、電子署名σを出力するアルゴリズムである。この署名生成アルゴリズムSigは、形式的に、下記の式(4)のように表現することができる。
(署名検証アルゴリズムVer)
署名検証アルゴリズムVerは、検証者により利用される。署名検証アルゴリズムVerは、電子署名σが文書Mに対する正当な電子署名であるか否かを検証するアルゴリズムである。署名検証アルゴリズムVerは、署名者の検証鍵pk、文書M、電子署名σを入力とし、0又は1(1bit)を出力するアルゴリズムである。この署名検証アルゴリズムVerは、形式的に、下記の式(5)のように表現することができる。なお、検証者は、署名検証アルゴリズムVerが0を出力した場合(公開鍵pkが文書Mと電子署名σを拒否する場合)に電子署名σが不当であると判断し、1を出力した場合(公開鍵pkが文書Mと電子署名σを受理する場合)に電子署名σが正当であると判断する。
署名検証アルゴリズムVerは、検証者により利用される。署名検証アルゴリズムVerは、電子署名σが文書Mに対する正当な電子署名であるか否かを検証するアルゴリズムである。署名検証アルゴリズムVerは、署名者の検証鍵pk、文書M、電子署名σを入力とし、0又は1(1bit)を出力するアルゴリズムである。この署名検証アルゴリズムVerは、形式的に、下記の式(5)のように表現することができる。なお、検証者は、署名検証アルゴリズムVerが0を出力した場合(公開鍵pkが文書Mと電子署名σを拒否する場合)に電子署名σが不当であると判断し、1を出力した場合(公開鍵pkが文書Mと電子署名σを受理する場合)に電子署名σが正当であると判断する。
(nパスの公開鍵認証方式)
次に、図3を参照しながら、nパスの公開鍵認証方式について説明する。図3は、nパスの公開鍵認証方式について説明するための説明図である。
次に、図3を参照しながら、nパスの公開鍵認証方式について説明する。図3は、nパスの公開鍵認証方式について説明するための説明図である。
上記の通り、公開鍵認証方式は、対話プロトコルの中で、証明者が公開鍵pkに対応する秘密鍵skを保有していることを検証者に証明する認証方式である。また、対話プロトコルは、健全性及び零知識性という2つの条件を満たす必要がある。そのため、対話プロトコルの中では、図3に示すように、証明者及び検証者の双方がそれぞれ処理を実行しながらn回の情報交換を行う。
nパスの公開鍵認証方式の場合、証明者アルゴリズムPを用いて証明者により処理(工程#1)が実行され、情報T1が検証者に送信される。次いで、検証者アルゴリズムVを用いて検証者により処理(工程#2)が実行され、情報T2が証明者に送信される。さらに、k=3〜nについて処理の実行及び情報Tkの送信が順次行われ、最後に処理(工程#n+1)が実行される。このように、情報がn回送受信される方式のことを「nパス」の公開鍵認証方式と呼ぶ。
以上、nパスの公開鍵認証方式について説明した。
上述した、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVの設計の際の要件を満たすものとして、例えば特開2012−98690号公報等で開示されている、多次多変数連立方程式に対する求解問題の困難性に安全性の根拠をおく公開鍵認証方式及び電子署名方式がある。上記文献で用いられる関数は、m本のn変数の2次多項式(m、nはいずれも2以上の整数)で構成される関数であるが、この関数を用いることで、上記文献による公開鍵認証方式は1つの公開鍵から複数の秘密鍵を生成することができる。上記文献で用いられる、m本のn変数多次多項式で構成される関数を、MQ(Multivariate Quadratic)関数と称する。
まず、上記文献による公開鍵認証方式の鍵生成アルゴリズムを説明する。ここでは、公開鍵pkの一部として2次多項式の組(f1(x),…,fm(x))を利用する場合について考える。但し、2次多項式fi(x)は、下記の式(6)のように表現されるものとする。また、ベクトル(x1,…,xn)をxと表記し、2次多項式の組(f1(x),…,fm(x))を多変数多項式F(x)と表記することにする。
また、2次多項式の組(f1(x),…,fm(x))は、下記の式(7)のように表現することができる。また、A1,…,Amは、n×n行列である。さらに、b1,…,bmはそれぞれn×1ベクトルである。
この表現を用いると、多変数多項式Fは、下記の式(8)及び式(9)のように表現することができる。この表現が成り立つことは、下記の式(10)から容易に確認することができる。
このようにF(x+y)をxに依存する第1の部分と、yに依存する第2の部分と、x及びyの両方に依存する第3の部分とに分けたとき、第3の部分に対応する項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を表現できるようになり、通信に必要なデータサイズの少ない効率的なアルゴリズムを実現することが可能になる。
なお、F2(或いはF1)からr0に関する情報が一切漏れることはない。例えば、e1及びt1(或いはe0及びt0)を与えられても、e0及びt0(或いはe1及びt1)を知らない限り、r0の情報を一切知ることはできない。従って、零知識性が担保される。
ここでMQ関数は、m=nの場合に、F(x1)=F(x2)となるx1、x2を求めることができる。具体的な導出方法は以下の通りである。
n=mとした際に、MQ関数に対して、Δ∈GF(2n)を与えられた時に、x(s.t. F(x)=F(x+Δ))を出力するというアルゴリズムが存在する。なぜなら、以下の関係が成り立つからである。
F(x)=F(x+Δ)⇔F(Δ)+G(x,Δ)=0
F(x)=F(x+Δ)⇔F(Δ)+G(x,Δ)=0
上述の関係は、x=(x1,…,xn),xi=GF(2)に関する一次の連立方程式となる。変数xi(i=1,2,・・・,n)の個数と、式の本数mとが一致しているので、上記の連立一次方程式から解xを導出することができる。
また、n=cm(cは2以上の整数)とした際に、MQ関数に対して、Δ1,・・・,Δc∈GF(2n)を与えられた時に、x(s.t. F(x)=F(x+Δ1)=・・・=F(x+Δc))を出力するというアルゴリズムが存在する。なぜなら、以下の関係が成り立つからである。
F(x)=F(x+Δ1)⇔F(Δ1)+G(x,Δ1)=0
・・・
F(x)=F(x+Δc)⇔F(Δc)+G(x,Δc)=0
F(x)=F(x+Δ1)⇔F(Δ1)+G(x,Δ1)=0
・・・
F(x)=F(x+Δc)⇔F(Δc)+G(x,Δc)=0
上述のそれぞれの方程式は、x=(x1,…,xn),xi=GF(2)に関する一次の連立方程式となる。上述のそれぞれの方程式を組み合わせると、変数xi(i=1,2,・・・,n)に対して、式の本数がcmの連立一次方程式となる。そのため、n=mの場合と同様に、上記の連立一次方程式から解xを導出することができる。
このように、1つの公開鍵から複数の秘密鍵を生成することができる公開鍵認証方式を用いることで、鍵漏洩の検知手法や、鍵漏洩の防止手法や、鍵漏洩の抑止手法が実現できる。以下では、1つの公開鍵から複数の秘密鍵を生成することができる公開鍵認証方式の適用例について詳細に説明する。
<2.本開示の第1の実施形態>
[概要]
まず、本開示の第1の実施形態に概要について説明する。本開示の第1の実施形態は、ICカードのようなデバイスに秘密鍵を格納し、本人確認のために、当該デバイスで認証処理を実行する場合に適用可能な技術である。
[概要]
まず、本開示の第1の実施形態に概要について説明する。本開示の第1の実施形態は、ICカードのようなデバイスに秘密鍵を格納し、本人確認のために、当該デバイスで認証処理を実行する場合に適用可能な技術である。
図4は、秘密鍵が格納された認証処理デバイス100aと、検証処理を実行する検証処理デバイス200aとの間の認証処理の概要を示す説明図である。認証処理デバイス100aには、上述の鍵生成アルゴリズムGenによって生成される秘密鍵xが認証処理に先立って格納される。また検証処理デバイス200aには、上述の鍵生成アルゴリズムGenによって生成される公開鍵F(x)が認証処理に先立って格納される。認証処理デバイス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に対して認証実行を指示すると(ステップS14)、認証処理デバイス100aで証明者アルゴリズムPが実行され、検証処理デバイス200aで検証者アルゴリズムVが実行されることで、認証処理デバイス100aと検証処理デバイス200aとの間で認証処理が実行される(ステップS15)。
ICカードのようなデバイスに秘密鍵xを格納しておけば、そのデバイスを紛失しない限り秘密鍵xの内容が第三者に漏洩することは無いはずである。しかし、上述したように、ICカードのようなデバイスにはサイドチャネル攻撃という解析手法が提案されている。そのサイドチャネル攻撃の中に、電力解析攻撃がある。電力解析攻撃は、暗号アルゴリズムが実装されたデバイスの消費電力から、そのデバイスに格納されている秘密鍵を抽出する攻撃手法である。
ICカードのようなデバイスの消費電力は、入力に依存して変化することが知られている。そのため、デバイスに格納された秘密鍵の値に依存した消費電力の変化を観測することで、秘密鍵の値を解析することが出来る場合がある。基本的には、消費電力にはノイズが混じっているので、電力解析攻撃では、複数の波形を統計処理することで、ノイズの影響を小さくして秘密鍵を抽出する。その一手法として、Differential Power Analysis (DPA)が提案されている(Paul Kocher, Joshua Jaffe, Benjamin Jun, “Differential Power Analysis”, CRYPTO’99)。
ここで、MQ関数を用いた署名方式(MQ署名方式)に対する1bit DPAの例を説明する。MQ署名方式では,秘密鍵xに対して,乱数r0との排他的論理和演算を行い、その後,乱数r0は確率的に署名内の要素として出力される。この演算を利用することで、秘密鍵xのi番目のビットxiを解析することが出来る。具体的には以下のようにして1bit DPAによりxiを解析することができる。
まず、複数回の署名生成後に、乱数r0が出力される署名を集める。次に、乱数r0のi番目のビットr0,iの値に応じて、集めた署名を2つのグループに分ける。そして、グループごとに平均波形を計算し、その2つの平均波形の差分波形を計算する。この差分波形のピークの出方によって、秘密鍵xのi番目のビットxiを解析することが出来る。
図6A及び図6Bは、平均波形の差分波形の例を示す説明図である。図6Aは、秘密鍵xのi番目のビットxiが0の時に期待できる平均波形の差分波形の例であり、図6Bは、秘密鍵xのi番目のビットxiが1の時に期待できる平均波形の差分波形の例である。xiが0の時は、乱数r0の値と、乱数r0と秘密鍵x0との排他的論理和の値(r0+x0)とが一致する。そのため、それぞれの値のロード時とストア時の消費電力が類似し、図6Aに示すように、平均波形の2つのピークの正負が同じになる。一方、xiが1の時は、乱数r0の値と、乱数r0と秘密鍵x0との排他的論理和の値(r0+x0)とが異なる。そのため、それぞれの値のロード時とストア時の消費電力が大きく異なり、図6Bに示すように、平均波形の2つのピークの正負が異なる。これを秘密鍵xの全てのビットに対して解析を試みることで、秘密鍵xの内容が電力解析攻撃によって抽出されてしまう。
これはMQ署名方式の際の1bit DPAの例であるが、MQ認証方式でも同様の処理が存在する。従って、MQ署名方式の1bit DPAをMQ認証方式の1bit DPAに容易に拡張することができる。
そこで本開示の第1の実施形態では、電力解析攻撃によって得られる平均波形の差分波形からビットの値を推定できないようにする。具体的には、上述したような、1つの公開鍵に対応する複数の秘密鍵を生成し、認証処理の際に、認証処理デバイス100aは、その複数の秘密鍵の中から1つの秘密鍵をランダムに選択する。このように、複数の秘密鍵の中から1つの秘密鍵をランダムに選択して認証処理を実行することで、認証処理デバイス100aは、電力解析攻撃によって秘密鍵が抽出されるのを防ぐことができる。
[動作]
図7は、本開示の第1の実施形態にかかる、秘密鍵が格納された認証処理デバイス100aと、検証処理を実行する検証処理デバイス200aとの間の認証処理を示す流れ図である。図7に示した流れ図は、本人であることを認証してもらいたいユーザが、公開鍵及びその公開鍵に対応する2つの秘密鍵を生成する場合の認証処理について示したものである。
図7は、本開示の第1の実施形態にかかる、秘密鍵が格納された認証処理デバイス100aと、検証処理を実行する検証処理デバイス200aとの間の認証処理を示す流れ図である。図7に示した流れ図は、本人であることを認証してもらいたいユーザが、公開鍵及びその公開鍵に対応する2つの秘密鍵を生成する場合の認証処理について示したものである。
本人であることを認証してもらいたいユーザは、予め上述の鍵生成アルゴリズム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)。そして、認証処理デバイス100aと検証処理デバイス200aとの間で、上記ステップS105で選択されたiに対応する秘密鍵xiを用いた、証明者アルゴリズムPおよび検証者アルゴリズムVによる認証処理が実行される(ステップS106)。
このように、認証処理の際に、認証処理デバイス100aが2つの秘密鍵の中から1つの秘密鍵をランダムに選択することで、電力解析攻撃による1bit DPAが困難になる。秘密鍵x1のi番目のビットx1iと、秘密鍵x2のi番目のビットx2iとが異なっていると、統計処理が正確に実施できなくなるからである。上述した1bit DPAは、平均波形の差分波形を計算することであるビットの値を推測するものであるが、あるビットの値が処理毎に異なると、平均波形の差分波形を計算してもピークが現れなくなるので、そのビットの値を推測することが極めて困難になる。
一方、認証処理デバイス100aは、認証実行時に2つの秘密鍵の中から1つの秘密鍵を選択するだけなので、電力解析攻撃の対策のために余計な回路を組み込んだり、余計な処理を実行したりする必要がない。従って、認証処理デバイス100aは、速度の低下や消費電力の増加がほとんど無く、電力解析攻撃の対策を低コストで実現することができる。
<3.本開示の第2の実施形態>
[概要]
次に、本開示の第2の実施形態に概要について説明する。本開示の第2の実施形態は、本人確認のために、ユーザが予め生成した秘密鍵の内容を認証時にデバイスに入力する場合に適用可能な技術である。
[概要]
次に、本開示の第2の実施形態に概要について説明する。本開示の第2の実施形態は、本人確認のために、ユーザが予め生成した秘密鍵の内容を認証時にデバイスに入力する場合に適用可能な技術である。
図8は、認証処理を実行する認証処理デバイス100bと、検証処理を実行する検証処理デバイス200bとの間の認証処理の概要を示す説明図である。認証処理デバイス100bには、上述の鍵生成アルゴリズムGenによって生成される秘密鍵xが、本人確認を受けたいユーザによって入力される。また検証処理デバイス200bには、上述の鍵生成アルゴリズムGenによって生成される公開鍵F(x)が、証明者アルゴリズムPおよび検証者アルゴリズムVによる認証処理に先立って格納される。
認証処理デバイス100bは、例えばフロントエンドの装置であり、例えばパーソナルコンピュータ、スマートフォン、タブレット等の情報処理装置の他、金融機関のATM(自動現金預け払い機)等であってもよい。検証処理デバイス200bは、例えばバックエンドの装置であり、サーバ装置等である。そして認証処理デバイス100bは、ユーザからの秘密鍵の入力を契機に、証明者アルゴリズムPおよび検証者アルゴリズムVによる、認証処理デバイス100bと検証処理デバイス200bとの間の認証プロトコルが実行されるものとする。
図9は、認証処理を実行する認証処理デバイス100bと、検証処理を実行する検証処理デバイス200bとの間の、証明者アルゴリズムPおよび検証者アルゴリズムVによる認証処理を示す流れ図である。
本人であることを認証してもらいたいユーザは、予め上述の鍵生成アルゴリズムGenによって秘密鍵x及び公開鍵F(x)を生成する(ステップS21)。この秘密鍵x及び公開鍵F(x)の生成は、鍵生成アルゴリズムGenを実行することが可能な情報処理装置で行われる。
ユーザは、秘密鍵x及び公開鍵F(x)を生成すると、公開鍵F(x)を検証処理デバイス200bに登録する(ステップS22)。秘密鍵xは秘密を保ったまま、かつユーザがいつでもアクセスできる状態にする。秘密鍵の漏洩を防ぐならば、ユーザは秘密鍵xの内容を頭に記憶することが望ましいが、秘密鍵xはパスワードのように覚えやすいものにはなっていないので、忘れた時のために紙などにメモしておくことを想定する。そしてユーザは、認証処理デバイス100bと検証処理デバイス200bとで認証処理を実行させるために、秘密鍵xを認証処理デバイス100bに入力する(ステップS23)。秘密鍵xが認証処理デバイス100bに入力されると、認証処理デバイス100bと検証処理デバイス200bとの間で、証明者アルゴリズムPおよび検証者アルゴリズムVによる認証処理が実行される(ステップS24)。
秘密鍵を頭で記憶している状況に比べ、秘密鍵を紙などにメモしておいた場合は、他者によるメモの覗き行為や盗撮等によって、その秘密鍵の内容が他者に漏洩してしまう危険性が高い。このように、認証処理デバイス100bに秘密鍵xが外部から直接入力されて、認証処理デバイス100bと検証処理デバイス200bとの間で証明者アルゴリズムPおよび検証者アルゴリズムVによる認証処理が実行される場合、その秘密鍵xが他者に漏洩してしまうと、その他者は、秘密鍵xを用いて正規の認証が実行可能になってしまう。その際に、検証処理デバイス200bは、秘密鍵xを入力したのが、正規のユーザなのか、他者なのかを区別することができなくなってしまう。
そこで本開示の第2の実施形態では、上述したような、1つの公開鍵に対応する複数の秘密鍵を生成し、1つは通常に使われる秘密鍵としてユーザが記憶して、もう1つは、秘密鍵の内容を忘れた時のための臨時用として、例えば紙などにユーザがメモしておく。そして検証処理デバイス200bは、認証処理時に、認証処理デバイス100bに入力された秘密鍵がどちらの秘密鍵かを判断し、通常に使われる秘密鍵でない臨時用の秘密鍵、すなわちユーザが紙などにメモした秘密鍵が使われたかどうかを判定する。認証処理時に、臨時用の秘密鍵が使われたことを検証処理デバイス200bで判断するとともに、臨時用の秘密鍵が使われると、臨時用の秘密鍵が使われた旨をユーザに通知することで、ユーザによる意図的な臨時用の秘密鍵の使用なのか、臨時用の秘密鍵の漏洩があったのかをユーザに気付かせることができる。
[動作]
図10は、本開示の第2の実施形態にかかる、秘密鍵が入力される認証処理デバイス100bと、検証処理を実行する検証処理デバイス200bとの間の認証処理を示す流れ図である。図10に示した流れ図は、本人であることを認証してもらいたいユーザが、公開鍵及びその公開鍵に対応する2つの秘密鍵を生成する場合の認証処理について示したものである。
図10は、本開示の第2の実施形態にかかる、秘密鍵が入力される認証処理デバイス100bと、検証処理を実行する検証処理デバイス200bとの間の認証処理を示す流れ図である。図10に示した流れ図は、本人であることを認証してもらいたいユーザが、公開鍵及びその公開鍵に対応する2つの秘密鍵を生成する場合の認証処理について示したものである。
本人であることを認証してもらいたいユーザは、予め上述の鍵生成アルゴリズムGenによって秘密鍵x1、x2及び公開鍵F(x1)を生成するとともに、秘密鍵x1、x2に対してハッシュ関数hを適用し、ハッシュ値z2=h(x2)を生成する(ステップS201)。ここで、公開鍵F(x1)は、F(x1)=F(x2)を満たすものである。この秘密鍵x1、x2及び公開鍵F(x1)の生成は、鍵生成アルゴリズムGenを実行することが可能な情報処理装置で行われる。例えば、ユーザは秘密鍵x1を通常使用時の秘密鍵として、頭に記憶するか紙などにメモして他者に見られないように厳重に保管し、秘密鍵x2を臨時用の秘密鍵として紙媒体などにメモして常時携帯する。
ユーザは、鍵生成アルゴリズムGenを実行して秘密鍵x1、x2及び公開鍵F(x1)を生成し、さらに秘密鍵x2にハッシュ関数を適用してハッシュ値z2を生成すると、公開鍵F(x1)と、ハッシュ値z2とを検証処理デバイス200bに登録する(ステップS202)。そしてユーザは、認証処理デバイス100bと検証処理デバイス200bとの間で証明者アルゴリズムPおよび検証者アルゴリズムVによる認証処理を実行させるために、秘密鍵x1、x2の中からいずれか1つの秘密鍵xを認証処理デバイス100bに入力する(ステップS203)。
ユーザから秘密鍵が入力されると、認証処理デバイス100bは、入力された秘密鍵にハッシュ関数hを適用してハッシュ値zを計算し、そのハッシュ値zを検証処理デバイス200bに送信する(ステップS204)。検証処理デバイス200bは、認証処理デバイス100bから送信されたハッシュ値zが、予めユーザから登録されたハッシュ値z2と一致するかどうか比較する。
ハッシュ値zがz2と一致していなければ、検証処理デバイス200bは特に何も処理をしないが、ハッシュ値zがz2と一致していれば、検証処理デバイス200bはユーザに対し、臨時用の秘密鍵x2が認証処理デバイス100bに入力された旨を、メール等の何らかの方法で通知する(ステップS205)。
そして、認証処理デバイス100bと検証処理デバイス200bとの間で、上記ステップS203で入力された秘密鍵xを用いた、証明者アルゴリズムPおよび検証者アルゴリズムVによる認証処理が実行される(ステップS206)。そしてユーザは、検証処理デバイス200bから通知を受けていれば、臨時用の秘密鍵x2の身に覚えのない利用かどうかを判断することで、鍵の漏洩を検知することができる(ステップS207)。
上述したように、本実施形態では、ユーザは秘密鍵x2を臨時用の秘密鍵として紙媒体などにメモして常時携帯することを想定している。従って、この秘密鍵x2は、上記紙媒体などの紛失など、何らかの理由で他者にアクセスされる可能性が高い情報である。
しかし、このように、秘密鍵x2から生成したハッシュ値を、公開鍵とともに検証処理デバイス200bに登録しておくことで、ユーザは、認証処理時に使用された秘密鍵x2が、ユーザ自身が入力したのか、他者が入力したのかを、検証処理デバイス200bからの通知で知ることが出来る。検証処理デバイス200bからの通知により、秘密鍵x1、x2を使用するユーザは臨時用の秘密鍵の漏洩があったかどうかを検知でき、漏洩があった場合は、検証処理デバイス200bに登録した公開鍵を無効化することで被害の拡大を防ぐことができる。
なお上述の説明では、ハッシュ値zがz2と一致していなければ、検証処理デバイス200bは特に何も処理をしないとしたが、本開示は係る例に限定されるものではない。ハッシュ値zがz2と一致していないということは、通常使用時の秘密鍵x1が使用されたことになるので、検証処理デバイス200bは、通常使用時の秘密鍵x1が使用されたことを、メール等の何らかの方法でユーザに通知するようにしても良い。
<4.本開示の第3の実施形態>
[概要]
次に、本開示の第3の実施形態に概要について説明する。本開示の第3の実施形態は、2以上の秘密鍵をそれぞれ異なるユーザに与えて認証の権利を該ユーザ間で共有する場合に適用可能な技術である。
[概要]
次に、本開示の第3の実施形態に概要について説明する。本開示の第3の実施形態は、2以上の秘密鍵をそれぞれ異なるユーザに与えて認証の権利を該ユーザ間で共有する場合に適用可能な技術である。
図11は、鍵生成者が共通の秘密鍵xを生成してそれぞれ異なるユーザに秘密鍵xを与える認証システムの概念を示す説明図である。鍵生成者は、公開鍵y=F(x)及び秘密鍵xを生成し、生成した秘密鍵をユーザ1、2に配送する。鍵生成者から秘密鍵xが配送されたユーザ1、2は、その秘密鍵xを使用した認証を実行する。つまり、共通の秘密鍵xをユーザ1、2で共有する。
しかし、このように同じ秘密鍵を複数のユーザに与えると、秘密鍵がインターネット上のWebサイトに掲載されるなど、秘密鍵が漏れたことが発覚した場合に、どのユーザが秘密鍵の内容を漏らしたのかを検証することができない。そこで本開示の第3の実施形態では、秘密鍵が漏れたことが発覚した場合に、どのユーザが秘密鍵を漏らしたのかを容易に追跡可能な仕組みを開示する。
上述してきたように、秘密鍵の生成にMQ関数を用いると、同一の公開鍵に対応する異なる複数の秘密鍵を生成することができる。従って、複数のユーザにそれぞれ異なる秘密鍵を配送することで、秘密鍵が漏れたことが発覚した場合にどのユーザが秘密鍵を漏らしたのかを容易に追跡できるので、秘密鍵の漏洩に対する抑止力となる。
図12は、本開示の第3の実施形態にかかる認証システムの概念を示す説明図である。図12に示したのは、鍵生成者が異なる秘密鍵x1,x2を生成して、それぞれ異なるユーザに秘密鍵x1,x2を与える認証システムの概念である。
鍵生成者は、上述の鍵生成アルゴリズムを用いて、同一の公開鍵yに対応する異なる複数の秘密鍵x1、x2を生成し、ユーザ1には秘密鍵x1を、ユーザ2には秘密鍵x2をそれぞれ配送する。また鍵生成者は、どのユーザにどの秘密鍵を配送したかを管理しておく。そして、ユーザ1は秘密鍵x1を用いて、ユーザ2は秘密鍵x2を用いて、検証者との間でそれぞれ認証処理や署名生成処理を実行する。
このように、同一の公開鍵に対応する異なる複数の秘密鍵を生成し、各ユーザに異なる秘密鍵を配送して、どのユーザにどの秘密鍵を配送したかを管理しておくことで、秘密鍵が漏れたことが発覚した場合にどのユーザが秘密鍵を漏らしたのかを容易に追跡できるとともに、秘密鍵の漏洩に対する抑止力となる。
なお、上述の例では、同一の公開鍵に対応する異なる複数の秘密鍵を生成し、各ユーザに異なる秘密鍵を配送する場合を説明したが、複数のサーバで秘密鍵による認証処理を実行する際に、同一の公開鍵に対応する異なる複数の秘密鍵を生成し、各サーバに異なる秘密鍵を配送する場合にも、本開示の第3の実施形態は同様に適用可能である。
図13は、本開示の第3の実施形態にかかる認証システムの概念を示す説明図である。図13に示したのは、鍵生成者が異なる秘密鍵x1,x2を生成して、それぞれ異なるサーバに秘密鍵x1,x2を与える認証システムの概念である。このように、鍵生成者は、それぞれ異なるサーバに秘密鍵x1,x2を与え、どのサーバにどの秘密鍵を配送したかを管理しておく。そして、各サーバが証明者や署名者となり、検証者との間でそれぞれ認証処理や署名生成処理を実行すると、秘密鍵が漏れたことが発覚した場合にどのサーバから秘密鍵が漏洩したのかを容易に追跡できる。
<5.変形例>
上述の説明では、MQ関数を用いて1つの公開鍵に対して2つの秘密鍵を生成する場合を示したが、上述したように、m本のn変数多次多項式で構成されるMQ関数のnの値をmのc倍(cは2以上の整数)とすることで、1つの公開鍵に対してc個の秘密鍵を生成することができる。
上述の説明では、MQ関数を用いて1つの公開鍵に対して2つの秘密鍵を生成する場合を示したが、上述したように、m本のn変数多次多項式で構成されるMQ関数のnの値をmのc倍(cは2以上の整数)とすることで、1つの公開鍵に対してc個の秘密鍵を生成することができる。
そして、上述した第1の実施形態の変形例として、1つの公開鍵に対して生成したc個の秘密鍵をすべて認証処理デバイス100aに組み込み、認証処理の際に、c個の秘密鍵の中から1つの秘密鍵をランダムに選択することで、電力解析攻撃による秘密鍵の漏洩を防ぐようにしても良い。
また、上述した第2の実施形態の変形例として、3種類以上の秘密鍵に対してそれぞれ別の役割を与えるようにしても良い。上述した第2の実施形態では、臨時用の秘密鍵が使われた場合には、検証処理デバイス200bからメール等で臨時用の秘密鍵が使われたことをユーザに通知していたが、例えば、1つの公開鍵に対して3つの秘密鍵を生成し、その中の2つの秘密鍵を臨時用の秘密鍵としてもよく、その臨時用の秘密鍵のそれぞれに対して別々の役割を与えるようにしても良い。
また、上述した第3の実施形態の変形例として、1つの公開鍵に対して生成したc個の秘密鍵をそれぞれ別のユーザに与えることで、三者間以上で権利を共有すると共に、秘密鍵が漏れたことが発覚した場合にどのユーザが秘密鍵を漏らしたのかを容易に追跡できるようにしてもよい。
上述した、MQ関数を用いて生成された秘密鍵による認証処理の際には、1回の認証処理を上述した第1の実施形態の変形例として、1回の認証処理において、上述したnパスの公開鍵認証方式による認証処理を複数回(複数ラウンド)繰り返すことで、偽証が成功する確率を充分に小さくすることができることが知られている。そして、1つの公開鍵に対して複数の秘密鍵を生成できる場合は、ラウンドごとに異なる秘密鍵を用いても認証処理が可能となる。従って、上述した第1の実施形態の変形例として、認証処理デバイス100aは、1回の認証処理の際に、ラウンドごとに秘密鍵をランダムに選択してもよい。
図14は、本開示の第1の実施形態の変形例にかかる、秘密鍵が格納された認証処理デバイス100aと、検証処理を実行する検証処理デバイス200aとの間の認証処理を示す流れ図である。図14に示した流れ図は、本人であることを認証してもらいたいユーザが、公開鍵及びその公開鍵に対応する2つの秘密鍵を生成する場合の認証処理について示したものである。
本人であることを認証してもらいたいユーザは、予め上述の鍵生成アルゴリズム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は1回の認証処理におけるラウンド数を示す。従って上記ステップS115は、認証処理デバイス100aが、使用する秘密鍵をx1、x2の中からラウンドごとにランダムに選択する処理である。
そして、認証処理デバイス100aと検証処理デバイス200aとの間で、上記ステップS115で選択されたiに対応する秘密鍵xijを用いた認証処理が実行される(ステップS116)。なお、jは1からNまでの間の整数である。
このように、認証処理デバイス100aが1回の認証処理においてラウンドごとに使用する秘密鍵をランダムに選択することで、電力解析攻撃による1bit DPAが困難になるという効果が期待できる。
上述の実施形態ではMQ関数を用いた秘密鍵の生成の場合を例示したが、MQ関数を用いた電子署名の場合にも、同様に適用可能であることは言うまでもない。また、上述の実施形態では、1つの公開鍵に対して複数の秘密鍵を生成する際にMQ関数を用いていたが、このように、1つの公開鍵に対して複数の秘密鍵を生成することができるアルゴリズムであれば、本開示は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は、ランダムにベクトルr0,t0∈Kn及びe0∈Kmを生成する。次いで、証明者アルゴリズムPは、r1←s−r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。さらに、証明者アルゴリズムPは、t1←r0−t0を計算する。次いで、証明者アルゴリズムPは、e1←F(r0)−e0を計算する。
図15に示すように、まず、証明者アルゴリズムPは、ランダムにベクトルr0,t0∈Kn及びe0∈Kmを生成する。次いで、証明者アルゴリズムPは、r1←s−r0を計算する。この計算は、秘密鍵sをベクトルr0によりマスクする操作に相当する。さらに、証明者アルゴリズム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に送られる。
次いで、証明者アルゴリズム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は、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す3つの数値{0,1,2}の中から1つの数値を選択し、選択した数値を要求Chに設定する。この要求Chは証明者アルゴリズムPに送られる。
メッセージ(c0,c1,c2)を受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。例えば、検証者アルゴリズムVは、検証パターンの種類を表す3つの数値{0,1,2}の中から1つの数値を選択し、選択した数値を要求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に送られる。
要求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を利用して以下の検証処理を実行する。
返答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は、Personal Handy−phone Systemの略である。また、上記のPDAは、Personal Digital Assistantの略である。
上記の各アルゴリズムは、例えば、図16に示す情報処理装置のハードウェア構成を用いて実行することが可能である。つまり、当該各アルゴリズムの処理は、コンピュータプログラムを用いて図16に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、PHS、PDA等の携帯情報端末、ゲーム機、接触式又は非接触式のICチップ、接触式又は非接触式のICカード、又は種々の情報家電がこれに含まれる。但し、上記のPHSは、Personal Handy−phone Systemの略である。また、上記のPDAは、Personal Digital Assistantの略である。
図16に示すように、このハードウェアは、主に、CPU902と、ROM904と、RAM906と、ホストバス908と、ブリッジ910と、を有する。さらに、このハードウェアは、外部バス912と、インターフェース914と、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926と、を有する。但し、上記のCPUは、Central Processing Unitの略である。また、上記のROMは、Read Only Memoryの略である。そして、上記のRAMは、Random Access Memoryの略である。
CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM904は、CPU902に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。RAM906には、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
これらの構成要素は、例えば、高速なデータ伝送が可能なホストバス908を介して相互に接続される。一方、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続される。また、入力部916としては、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力部916としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ(以下、リモコン)が用いられることもある。
出力部918としては、例えば、CRT、LCD、PDP、又はELD等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。但し、上記のCRTは、Cathode Ray Tubeの略である。また、上記のLCDは、Liquid Crystal Displayの略である。そして、上記のPDPは、Plasma DisplayPanelの略である。さらに、上記のELDは、Electro−Luminescence Displayの略である。
記憶部920は、各種のデータを格納するための装置である。記憶部920としては、例えば、ハードディスクドライブ(HDD)等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。但し、上記のHDDは、Hard Disk Driveの略である。
ドライブ922は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928は、例えば、DVDメディア、Blu−rayメディア、HD DVDメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体928は、例えば、非接触型ICチップを搭載したICカード、又は電子機器等であってもよい。但し、上記のICは、Integrated Circuitの略である。
接続ポート924は、例えば、USBポート、IEEE1394ポート、SCSI、RS−232Cポート、又は光オーディオ端子等のような外部接続機器930を接続するためのポートである。外部接続機器930は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はICレコーダ等である。但し、上記のUSBは、Universal Serial Busの略である。また、上記のSCSIは、Small Computer System Interfaceの略である。
通信部926は、ネットワーク932に接続するための通信デバイスであり、例えば、有線又は無線LAN、Bluetooth(登録商標)、又はWUSB用の通信カード、光通信用のルータ、ADSL用のルータ、又は接触又は非接触通信用のデバイス等である。また、通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークにより構成され、例えば、インターネット、家庭内LAN、赤外線通信、可視光通信、放送、又は衛星通信等である。但し、上記のLANは、Local Area Networkの略である。また、上記のWUSBは、Wireless USBの略である。そして、上記のADSLは、Asymmetric Digital Subscriber Lineの略である。
<7.まとめ>
以上説明したように本開示によれば、MQ関数を用いた鍵生成アルゴリズムのように、同一の公開鍵に対して複数の秘密鍵が生成できる公開鍵認証方式を用いることで、鍵漏洩の検知手法や、鍵漏洩の防止手法や、鍵漏洩の抑止手法を実現する。
以上説明したように本開示によれば、MQ関数を用いた鍵生成アルゴリズムのように、同一の公開鍵に対して複数の秘密鍵が生成できる公開鍵認証方式を用いることで、鍵漏洩の検知手法や、鍵漏洩の防止手法や、鍵漏洩の抑止手法を実現する。
本開示の第1の実施形態では、秘密鍵が記録されたICカードのような認証処理デバイスに対する電力解析攻撃対策として、同一の公開鍵に対して生成された複数の秘密鍵が認証処理デバイスに記録される。認証処理の際に、認証処理デバイスは、複数の秘密鍵の中から1つの秘密鍵をランダムに選択する。認証処理デバイスが認証処理の際に複数の秘密鍵の中から1つの秘密鍵をランダムに選択することで、電力解析攻撃による秘密鍵の抽出を困難にすることができる。
本開示の第2の実施形態では、秘密鍵を認証処理デバイスに入力するような場合に、通常使用時の秘密鍵ではない臨時用の秘密鍵が認証処理デバイスに入力されると、検証処理デバイスを通じて、臨時用の秘密鍵が使用されたことをユーザに通知する。臨時用の秘密鍵が使用されたことが通知されることで、ユーザは、臨時用の秘密鍵が意図的に利用されたのか、また漏洩してしまったのかを判断することができる。
本開示の第3の実施形態では、1つの公開鍵に対する複数の秘密鍵を、それぞれ異なるユーザに配送する。1つの公開鍵に対する複数の秘密鍵を、それぞれ異なるユーザに配送することで、仮にどれか1つの秘密鍵が漏洩してしまった場合に、誰がその秘密鍵を漏洩させたのかを容易に追跡することが出来るので、秘密鍵の漏洩に対する抑止力となり得る。
なお、上述の各実施形態では、1つの公開鍵に対する複数の秘密鍵を生成できるものとして、MQ関数を用いて生成された秘密鍵を例示して説明したが、本開示は係る例に限定されるものではない。1つの公開鍵に対する複数の秘密鍵を生成できるような公開鍵認証方式や電子署名方式であれば、上述した各実施形態へこれらの方式を同様に適用可能であることは言うまでもない。また、上記の各実施形態では、認証処理を実行する認証処理デバイスと、検証処理を実行する検証処理デバイスは別々の装置にそれぞれ設けられていても良いが、同一の装置に設けられていても良い。
最後に、本技術の実施形態に係る技術内容について簡単に纏める。ここで述べる技術内容は、例えば、PC、携帯電話、ゲーム機、情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置に対して適用することができる。なお、以下で述べる情報処理装置の機能は、1台の情報処理装置を利用して実現することも可能であるし、複数台の情報処理装置を利用して実現することも可能である。また、以下で述べる情報処理装置が処理を実行する際に用いるデータ記憶手段及び演算処理手段は、当該情報処理装置に設けられたものであってもよいし、ネットワークを介して接続された機器に設けられたものであってもよい。
なお、上記の鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムV、署名生成アルゴリズムSig、署名検証アルゴリズムVerは、本開示の鍵選択部、処理実行部の一例である。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成も取ることができる。
(1)
検証者に登録される1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式における、前記複数の秘密鍵のいずれか1つを選択する鍵選択部と、
前記鍵選択部が選択した秘密鍵を用いて、前記公開鍵認証方式による前記検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理を実行する処理実行部と、
を備える、情報処理装置。
(2)
前記鍵選択部は、前記検証者との間の認証処理または電子署名生成処理の際に前記複数の秘密鍵のいずれかをランダムに選択する、前記(1)に記載の情報処理装置。
(3)
前記鍵選択部は、前記処理実行部が前記検証者との間で前記認証処理を繰り返すことで1回の認証を完了させる、または前記処理実行部が前記電子署名生成処理を繰り返すことで1回の電子署名の生成を完了させる場合に、前記認証処理または前記電子署名生成処理ごとに前記複数の秘密鍵のいずれかをランダムに選択する、複数の秘密鍵のいずれかをランダムに選択する、前記(2)に記載の情報処理装置。
(4)
前記処理実行部は、前記複数の秘密鍵の内の第1の秘密鍵にハッシュ関数を適用して得られる第1のハッシュ値を前記検証者に登録する、前記(1)に記載の情報処理装置。
(5)
前記処理実行部は、前記公開鍵認証方式による検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理の際に使用した秘密鍵にハッシュ関数を適用し、前記第1のハッシュ値と比較される第2のハッシュ値を前記検証者に送信する、前記(4)に記載の情報処理装置。
(6)
前記検証者による前記公開鍵認証方式または前記電子署名方式を用いた検証処理の際に前記第1のハッシュ値と前記第2のハッシュ値とを比較し、比較の結果に応じて所定の通知処理を実行する比較処理部をさらに備える、前記(5)に記載の情報処理装置。
(7)
前記複数の秘密鍵の各々が異なる装置に登録され、
前記鍵選択部は、該登録された秘密鍵を選択する、前記(1)に記載の情報処理装置。
(8)
前記公開鍵認証方式または電子署名方式は、s∈Knを秘密鍵に設定し、環K上の多次多項式fi(x1,…,xn)(i=1〜m)及びyi=fi(s)を公開鍵に設定する公開鍵認証方式である、前記(1)に記載の情報処理装置。
(9)
検証者に登録される1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式における、前記複数の秘密鍵のいずれか1つを選択する鍵選択ステップと、
前記鍵選択ステップで選択された秘密鍵を用いて、前記公開鍵認証方式による前記検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理を実行する処理実行ステップと、
を備える、情報処理方法。
(10)
コンピュータに、
検証者に登録される1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式における、前記複数の秘密鍵のいずれか1つを選択する鍵選択ステップと、
前記鍵選択ステップで選択された秘密鍵を用いて、前記公開鍵認証方式による前記検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理を実行する処理実行ステップと、
を実行させる、コンピュータプログラム。
(11)
1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式において、証明者が前記複数の秘密鍵の内の第1の秘密鍵にハッシュ関数を適用して得られる第1のハッシュ値及び前記証明者が検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理の際に使用した秘密鍵にハッシュ関数を適用して得られる第2のハッシュ値を取得し、前記公開鍵認証方式または前記電子署名方式を用いた検証処理の際に前記第1のハッシュ値と前記第2のハッシュ値とを比較し、比較の結果に応じて前記証明者への所定の通知処理を実行する比較処理部を備える、情報処理装置。
(1)
検証者に登録される1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式における、前記複数の秘密鍵のいずれか1つを選択する鍵選択部と、
前記鍵選択部が選択した秘密鍵を用いて、前記公開鍵認証方式による前記検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理を実行する処理実行部と、
を備える、情報処理装置。
(2)
前記鍵選択部は、前記検証者との間の認証処理または電子署名生成処理の際に前記複数の秘密鍵のいずれかをランダムに選択する、前記(1)に記載の情報処理装置。
(3)
前記鍵選択部は、前記処理実行部が前記検証者との間で前記認証処理を繰り返すことで1回の認証を完了させる、または前記処理実行部が前記電子署名生成処理を繰り返すことで1回の電子署名の生成を完了させる場合に、前記認証処理または前記電子署名生成処理ごとに前記複数の秘密鍵のいずれかをランダムに選択する、複数の秘密鍵のいずれかをランダムに選択する、前記(2)に記載の情報処理装置。
(4)
前記処理実行部は、前記複数の秘密鍵の内の第1の秘密鍵にハッシュ関数を適用して得られる第1のハッシュ値を前記検証者に登録する、前記(1)に記載の情報処理装置。
(5)
前記処理実行部は、前記公開鍵認証方式による検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理の際に使用した秘密鍵にハッシュ関数を適用し、前記第1のハッシュ値と比較される第2のハッシュ値を前記検証者に送信する、前記(4)に記載の情報処理装置。
(6)
前記検証者による前記公開鍵認証方式または前記電子署名方式を用いた検証処理の際に前記第1のハッシュ値と前記第2のハッシュ値とを比較し、比較の結果に応じて所定の通知処理を実行する比較処理部をさらに備える、前記(5)に記載の情報処理装置。
(7)
前記複数の秘密鍵の各々が異なる装置に登録され、
前記鍵選択部は、該登録された秘密鍵を選択する、前記(1)に記載の情報処理装置。
(8)
前記公開鍵認証方式または電子署名方式は、s∈Knを秘密鍵に設定し、環K上の多次多項式fi(x1,…,xn)(i=1〜m)及びyi=fi(s)を公開鍵に設定する公開鍵認証方式である、前記(1)に記載の情報処理装置。
(9)
検証者に登録される1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式における、前記複数の秘密鍵のいずれか1つを選択する鍵選択ステップと、
前記鍵選択ステップで選択された秘密鍵を用いて、前記公開鍵認証方式による前記検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理を実行する処理実行ステップと、
を備える、情報処理方法。
(10)
コンピュータに、
検証者に登録される1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式における、前記複数の秘密鍵のいずれか1つを選択する鍵選択ステップと、
前記鍵選択ステップで選択された秘密鍵を用いて、前記公開鍵認証方式による前記検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理を実行する処理実行ステップと、
を実行させる、コンピュータプログラム。
(11)
1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式において、証明者が前記複数の秘密鍵の内の第1の秘密鍵にハッシュ関数を適用して得られる第1のハッシュ値及び前記証明者が検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理の際に使用した秘密鍵にハッシュ関数を適用して得られる第2のハッシュ値を取得し、前記公開鍵認証方式または前記電子署名方式を用いた検証処理の際に前記第1のハッシュ値と前記第2のハッシュ値とを比較し、比較の結果に応じて前記証明者への所定の通知処理を実行する比較処理部を備える、情報処理装置。
Gen 鍵生成アルゴリズム
P 証明者アルゴリズム
V 検証者アルゴリズム
Sig 署名生成アルゴリズム
Ver 署名検証アルゴリズム
P 証明者アルゴリズム
V 検証者アルゴリズム
Sig 署名生成アルゴリズム
Ver 署名検証アルゴリズム
Claims (11)
- 検証者に登録される1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式における、前記複数の秘密鍵のいずれか1つを選択する鍵選択部と、
前記鍵選択部が選択した秘密鍵を用いて、前記公開鍵認証方式による前記検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理を実行する処理実行部と、
を備える、情報処理装置。 - 前記鍵選択部は、前記検証者との間の認証処理または電子署名生成処理の際に前記複数の秘密鍵のいずれかをランダムに選択する、請求項1に記載の情報処理装置。
- 前記鍵選択部は、前記処理実行部が前記検証者との間で前記認証処理を繰り返すことで1回の認証を完了させる、または前記処理実行部が前記電子署名生成処理を繰り返すことで1回の電子署名の生成を完了させる場合に、前記認証処理または前記電子署名生成処理ごとに前記複数の秘密鍵のいずれかをランダムに選択する、請求項2に記載の情報処理装置。
- 前記処理実行部は、前記複数の秘密鍵の内の第1の秘密鍵にハッシュ関数を適用して得られる第1のハッシュ値を前記検証者に登録する、請求項1に記載の情報処理装置。
- 前記処理実行部は、前記公開鍵認証方式による検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理の際に使用した秘密鍵にハッシュ関数を適用し、前記第1のハッシュ値と比較される第2のハッシュ値を前記検証者に送信する、請求項4に記載の情報処理装置。
- 前記検証者による前記公開鍵認証方式または前記電子署名方式を用いた検証処理の際に前記第1のハッシュ値と前記第2のハッシュ値とを比較し、比較の結果に応じて所定の通知処理を実行する比較処理部をさらに備える、請求項5に記載の情報処理装置。
- 前記複数の秘密鍵の各々が異なる装置に登録され、
前記鍵選択部は、該登録された秘密鍵を選択する、請求項1に記載の情報処理装置。 - 前記公開鍵認証方式または電子署名方式は、s∈Knを秘密鍵に設定し、環K上の多次多項式fi(x1,…,xn)(i=1〜m)及びyi=fi(s)を公開鍵に設定する公開鍵認証方式である、請求項1に記載の情報処理装置。
- 検証者に登録される1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式における、前記複数の秘密鍵のいずれか1つを選択する鍵選択ステップと、
前記鍵選択ステップで選択された秘密鍵を用いて、前記公開鍵認証方式による前記検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理を実行する処理実行ステップと、
を備える、情報処理方法。 - コンピュータに、
検証者に登録される1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式における、前記複数の秘密鍵のいずれか1つを選択する鍵選択ステップと、
前記鍵選択ステップで選択された秘密鍵を用いて、前記公開鍵認証方式による前記検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理を実行する処理実行ステップと、
を実行させる、コンピュータプログラム。 - 1つの公開鍵に対してそれぞれ異なる複数の秘密鍵が存在する公開鍵認証方式または電子署名方式において、証明者が前記複数の秘密鍵の内の第1の秘密鍵にハッシュ関数を適用して得られる第1のハッシュ値及び前記証明者が検証者との間の認証処理または前記電子署名方式による前記検証者への電子署名生成処理の際に使用した秘密鍵にハッシュ関数を適用して得られる第2のハッシュ値を取得し、前記公開鍵認証方式または前記電子署名方式を用いた検証処理の際に前記第1のハッシュ値と前記第2のハッシュ値とを比較し、比較の結果に応じて前記証明者への所定の通知処理を実行する比較処理部を備える、情報処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012198343A JP2014052588A (ja) | 2012-09-10 | 2012-09-10 | 情報処理装置、情報処理方法及びコンピュータプログラム |
US13/956,788 US9979549B2 (en) | 2012-09-10 | 2013-08-01 | Information processing to perform authentication between a prover and a verifier |
CN201310394534.2A CN103678995A (zh) | 2012-09-10 | 2013-09-03 | 信息处理装置、信息处理方法以及非暂态计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012198343A JP2014052588A (ja) | 2012-09-10 | 2012-09-10 | 情報処理装置、情報処理方法及びコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014052588A true JP2014052588A (ja) | 2014-03-20 |
Family
ID=50234618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012198343A Pending JP2014052588A (ja) | 2012-09-10 | 2012-09-10 | 情報処理装置、情報処理方法及びコンピュータプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US9979549B2 (ja) |
JP (1) | JP2014052588A (ja) |
CN (1) | CN103678995A (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5790288B2 (ja) * | 2011-08-12 | 2015-10-07 | ソニー株式会社 | 情報処理装置、及び情報処理方法 |
US9202057B2 (en) * | 2013-08-30 | 2015-12-01 | Symantec Corporation | Systems and methods for identifying private keys that have been compromised |
US9589143B2 (en) * | 2014-04-17 | 2017-03-07 | Xerox Corporation | Semi-trusted Data-as-a-Service platform |
CN105577379B (zh) * | 2014-10-16 | 2020-04-28 | 阿里巴巴集团控股有限公司 | 一种信息处理方法及装置 |
US10382169B2 (en) | 2016-04-01 | 2019-08-13 | Huawei Technologies Co., Ltd. | HARQ systems and methods for grant-free uplink transmissions |
US10673593B2 (en) | 2016-11-03 | 2020-06-02 | Huawei Technologies Co., Ltd. | HARQ signaling for grant-free uplink transmissions |
CN112119611A (zh) * | 2018-05-14 | 2020-12-22 | 区块链控股有限公司 | 使用区块链执行原子交换的计算机实现的系统和方法 |
CN108833096A (zh) * | 2018-06-26 | 2018-11-16 | 湖南格凡安信科技有限公司 | 一种数据加密动态密钥管理系统和方法 |
US11728991B2 (en) | 2019-05-28 | 2023-08-15 | International Business Machines Corporation | Privacy-preserving leakage-deterring public-key encryption from attribute-based encryptions |
US11711203B2 (en) * | 2019-10-10 | 2023-07-25 | SheerID, Inc. | Systems and methods for gated offer eligibility verification |
US11843619B1 (en) * | 2022-10-07 | 2023-12-12 | Uab 360 It | Stateless system to enable data breach notification |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008099682A1 (ja) * | 2007-02-16 | 2008-08-21 | Panasonic Corporation | 分散情報配布装置、保持装置、認証局装置及びシステム |
US8595504B2 (en) * | 2008-08-12 | 2013-11-26 | Industrial Technology Research Institute | Light weight authentication and secret retrieval |
JP5300026B2 (ja) | 2009-09-16 | 2013-09-25 | 国立大学法人東京工業大学 | Icカードシステムにおけるカード認証システム |
US8775797B2 (en) * | 2010-11-19 | 2014-07-08 | Microsoft Corporation | Reliable software product validation and activation with redundant security |
US8584215B2 (en) * | 2012-02-07 | 2013-11-12 | Cisco Technology, Inc. | System and method for securing distributed exporting models in a network environment |
EP2634956B1 (en) * | 2012-02-29 | 2016-11-02 | BlackBerry Limited | Communicating an identity to a server |
-
2012
- 2012-09-10 JP JP2012198343A patent/JP2014052588A/ja active Pending
-
2013
- 2013-08-01 US US13/956,788 patent/US9979549B2/en not_active Expired - Fee Related
- 2013-09-03 CN CN201310394534.2A patent/CN103678995A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US9979549B2 (en) | 2018-05-22 |
CN103678995A (zh) | 2014-03-26 |
US20140075199A1 (en) | 2014-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11032075B2 (en) | Methods for secure cryptogram generation | |
JP2014052588A (ja) | 情報処理装置、情報処理方法及びコンピュータプログラム | |
Xi et al. | A fingerprint based bio‐cryptographic security protocol designed for client/server authentication in mobile computing environment | |
He et al. | Enhanced three-factor security protocol for consumer USB mass storage devices | |
US9577827B2 (en) | Information processing device, information processing method, and program | |
WO2013031414A1 (ja) | 署名検証装置、署名検証方法、プログラム、及び記録媒体 | |
JP2008269610A (ja) | リモートアプリケーションを対象とした機密データの保護 | |
WO2015019821A1 (ja) | 情報処理装置、情報処理方法及びコンピュータプログラム | |
JP2015033038A (ja) | 情報処理装置、情報処理方法及びコンピュータプログラム | |
Malina et al. | Secure and efficient two-factor zero-knowledge authentication solution for access control systems | |
CN110677253B (zh) | 基于非对称密钥池和ecc的抗量子计算rfid认证方法及系统 | |
JP7250960B2 (ja) | ユーザのバイオメトリクスを利用したユーザ認証および署名装置、並びにその方法 | |
JP2014068139A (ja) | 送信装置、受信装置、送信方法、受信方法及びプログラム | |
Xiang et al. | Scalable attestation protocol resilient to physical attacks for IoT environments | |
Zhu et al. | A proposal for account recovery in decentralized applications | |
Liu et al. | EQRC: A secure QR code-based E-coupon framework supporting online and offline transactions | |
CN110601845B (zh) | 基于对称密钥池和ecc的抗量子计算rfid认证方法及系统 | |
Alhothaily | Secure Verification for Payment and Banking Systems | |
Alshehri et al. | A formal framework for security analysis of NFC mobile coupon protocols | |
Babu et al. | Two Factor Authentication using Hardware and Biometrics Factors for IoT Devices and Users | |
US9882721B2 (en) | Authentication using electronic signature | |
Harvin | HANDBOOK OF CRYPTOGRAPHY | |
Piper | An Introduction to Cryptography | |
Nali et al. | CROO: A universal infrastructure and protocol to detect identity fraud | |
Qingchen et al. | Verifiable RFID Location Privacy Scheme Based on NIZK |