(57)【要約】【課題】セキュリティ性が高く、低廉な公開鍵暗号方式を実現すること。【解決手段】任意の２点Ｐ１，Ｐ２の各座標値ｘ１，ｙ１，ｘ２，ｙ２を暗号化装置１０１と復号装置１０２とに分散して保持させ、秘密鍵ｓ自体は消去し、復号装置１０２にも暗号化装置１０１にも保持させない。具体的には、暗号化装置１０１には座標値ｙ２のみ保持させ、復号装置１０２には、座標値ｘ１，ｙ１，ｘ２を保持させる。暗号化装置１０１と復号装置１０２との間で暗号化通信する場合には、暗号化装置１０１および復号装置１０２のいずれにも秘密鍵ｓが保存されていないが、復号装置１０２において、公開鍵暗号方式による平文Ｍを復号することができる。また、暗号化装置１０１において、復号装置１０２の認証が可能となる。【選択図】図１
2009225378.tif 000002
【特許請求の範囲】
【請求項１】
一次直線に関する秘密分散方式により秘密鍵ｓを復元可能な前記一次直線上の２点の座標（ｘ１，ｙ１）、（ｘ２，ｙ２）のうち、分散データｘ１，ｙ１，ｘ２を保持する一方の分散元装置と、分散データｙ２および平文Ｍを保持する他方の分散元装置との間の暗号化通信により、前記他方の分散元装置がモジュラスＮを用いた公開鍵暗号方式により公開鍵ｅで前記平文Ｍを暗号化した暗号文Ｃを、前記一方の分散元装置で前記平文Ｍに復号する復号方法であって、
前記一方の分散元装置が、前記暗号文Ｃを前記他方の分散元装置から受信する第１の受信工程と、
前記一方の分散元装置が、前記公開鍵暗号方式により、前記分散データｘ１，ｘ２から得られる第１の指数データｚ１で前記第１の受信工程によって受信された暗号文Ｃを第１の中間暗号文Ｚに暗号化する第１の中間暗号化工程と、
前記一方の分散元装置が、前記第１の中間暗号化工程によって暗号化された第１の中間暗号文Ｚを前記他方の分散元装置に送信する送信工程と、
前記他方の分散元装置が、前記公開鍵暗号方式により、前記分散データｙ２で前記送信工程によって送信された第１の中間暗号文Ｚを第２の中間暗号文Ｙ２に暗号化する第２の中間暗号化工程と、
前記一方の分散元装置が、前記第２の中間暗号化工程によって暗号化された第２の中間暗号文Ｙ２を前記他方の分散元装置から受信する第２の受信工程と、
前記一方の分散元装置が、前記公開鍵暗号方式により、前記分散データｘ１，ｘ２，ｙ１から得られる第２の指数データｚ２で前記暗号文Ｃを中間復号文Ｙ１に復号する中間復号工程と、
前記一方の分散元装置が、前記第２の受信工程によって受信された第２の中間暗号文Ｙ２と、前記中間復号工程によって復号された中間復号文Ｙ１に基づいて、前記平文Ｍを生成する生成工程と、
を含んだことを特徴とする復号方法。
【請求項２】
一次直線に関する秘密分散方式により秘密鍵ｓを復元可能な前記一次直線上の２点の座標（ｘ１，ｙ１）、（ｘ２，ｙ２）のうち、分散データｘ１，ｙ１，ｘ２を保持し、分散データｙ２および平文Ｍを保持する他の分散元装置との暗号化通信により、前記他の分散元装置が、モジュラスＮを用いた公開鍵暗号方式により公開鍵ｅで前記平文Ｍを暗号化した暗号文Ｃを、前記平文Ｍに復号する復号装置であって、
前記暗号文Ｃを前記他の分散元装置から受信する第１の受信手段と、
前記公開鍵暗号方式により、前記分散データｘ１，ｘ２から得られる第１の指数データｚ１で前記第１の受信手段によって受信された暗号文Ｃを第１の中間暗号文Ｚに暗号化する中間暗号化手段と、
前記中間暗号化手段によって暗号化された第１の中間暗号文Ｚを前記他の分散元装置に送信する送信手段と、
前記他の分散元装置が、前記公開鍵暗号方式により、前記分散データｙ２で前記第１の中間暗号文Ｚを暗号化した第２の中間暗号文Ｙ２を、前記他の分散元装置から受信する第２の受信手段と、
前記公開鍵暗号方式により、前記分散データｘ１，ｘ２，ｙ１から得られる第２の指数データｚ２で前記暗号文Ｃを中間復号文Ｙ１に復号する中間復号手段と、
前記第２の受信手段によって受信された第２の中間暗号文Ｙ２と、前記中間復号手段によって得られた中間復号文Ｙ１に基づいて、前記平文Ｍを生成する生成手段と、
を備えることを特徴とする復号装置。
【請求項３】
一次直線に関する秘密分散方式により秘密鍵ｓを復元可能な前記一次直線上の２点の座標（ｘ１，ｙ１）、（ｘ２，ｙ２）のうち、分散データｙ２および平文Ｍを保持し、分散データｘ１，ｙ１，ｘ２を保持する他の分散元装置との暗号化通信をおこなう暗号化装置であって、
前記他の分散元装置から送信されてくる情報を受信する受信手段と、
前記受信手段によって受信された情報を判別する判別手段と、
前記判別手段による判別結果が公開鍵ｅまたは当該公開鍵ｅによる暗号化要求である場合、モジュラスＮを用いた公開鍵暗号方式により、前記公開鍵ｅで前記平文Ｍを暗号化し、前記判別手段による判別結果が、前記暗号文Ｃが送信された結果前記他の分散元装置から送信されてきた暗号化対象データである場合、前記公開鍵暗号方式により、前記分散データｙ２で前記暗号化対象データを暗号化する暗号化手段と、
前記暗号化手段によって暗号化された暗号文を前記他の分散元装置に送信する送信手段と、
を備えることを特徴とする暗号化装置。
【請求項４】
一次直線に関する秘密分散方式により秘密鍵ｓを復元可能な前記一次直線上の２点の座標（ｘ１，ｙ１）、（ｘ２，ｙ２）のうち、分散データｘ１，ｙ１，ｘ２を保持する一方の分散元装置と、分散データｙ２および平文Ｍを保持する他方の分散元装置との間の暗号化通信により、前記他方の分散元装置が前記一方の分散元装置を認証する認証方法であって、
前記一方の分散元装置が、前記他方の分散元装置がモジュラスＮを用いた公開鍵暗号方式により公開鍵ｅで前記平文Ｍを暗号化した暗号文Ｃを、前記他方の分散元装置から受信する第１の受信工程と、
前記一方の分散元装置が、前記公開鍵暗号方式により、前記分散データｘ１，ｘ２から得られる第１の指数データｚ１で前記第１の受信工程によって受信された暗号文Ｃを第１の中間暗号文Ｚに暗号化する第１の中間暗号化工程と、
前記一方の分散元装置が、前記第１の中間暗号化工程によって暗号化された第１の中間暗号文Ｚを前記他方の分散元装置に送信する第１の送信工程と、
前記他方の分散元装置が、前記公開鍵暗号方式により、前記分散データｙ２で前記第１の送信工程によって送信された第１の中間暗号文Ｚを第２の中間暗号文Ｙ２に暗号化する第２の中間暗号化工程と、
前記一方の分散元装置が、前記第２の中間暗号化工程によって暗号化された第２の中間暗号文Ｙ２を前記他方の分散元装置から受信する第２の受信工程と、
前記一方の分散元装置が、前記公開鍵暗号方式により、前記分散データｘ１，ｘ２，ｙ１から得られる第２の指数データｚ２で前記暗号文Ｃを中間復号文Ｙ１に復号する中間復号工程と、
前記一方の分散元装置が、前記第２の受信工程によって受信された第２の中間暗号文Ｙ２と、前記中間復号工程によって復号された中間復号文Ｙ１に基づいて、平文を生成する生成工程と、
前記一方の分散元装置が、前記生成工程によって生成された平文を前記他方の分散元装置に送信する第２の送信工程と、
前記他方の分散元装置が、前記第２の送信工程によって送信されてきた平文と前記平文Ｍとの同一性により前記一方の分散元装置を認証する認証工程と、
前記他方の分散元装置が、前記認証工程によって認証された認証結果を出力する出力工程と、
を含んだことを特徴とする認証方法。
【請求項５】
一次直線に関する秘密分散方式により秘密鍵ｓを復元可能な前記一次直線上の２点の座標（ｘ１，ｙ１）、（ｘ２，ｙ２）のうち、分散データｙ２および平文Ｍを保持し、分散データｘ１，ｙ１，ｘ２を保持する他の分散元装置との暗号化通信をおこなう認証装置であって、
前記他の分散元装置から送信されてくる情報を受信する受信手段と、
前記受信手段によって受信された情報を判別する判別手段と、
前記判別手段による判別結果が公開鍵ｅまたは当該公開鍵ｅによる暗号化要求である場合、モジュラスＮを用いた公開鍵暗号方式により、前記公開鍵ｅで前記平文Ｍを暗号化し、前記判別手段による判別結果が、前記暗号文Ｃが送信された結果、前記他の分散元装置から送信されてきた暗号化対象データである場合、前記公開鍵暗号方式により、前記分散データｙ２で前記暗号化対象データを暗号化する暗号化手段と、
前記暗号化手段によって暗号化された暗号文を前記他の分散元装置に送信する送信手段と、
前記判別手段による判別結果が、前記分散データｙ２で暗号化された暗号文が送信された結果、前記他の分散元装置から送信されてきた認証対象データである場合、当該認証対象データと前記平文Ｍとの同一性により前記他の分散元装置を認証する認証手段と、
前記認証手段によって認証された認証結果を出力する出力手段と、
を備えることを特徴とする認証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、秘密分散法を用いた公開鍵暗号方式による復号方法、復号装置、暗号化装置、認証方法および認証装置に関する。
【背景技術】
【０００２】
近年、入退出の管理、企業の顧客情報管理、クレジットカード・キャッシュカードの利用などにおいて、一般的に公開鍵暗号方式を採用した認証システムが多く用いられる。特に、秘密分散法を用いた暗号化技術が下記特許文献１および下記特許文献２に開示されている。
【０００３】
【特許文献１】特開平９−２１２０８９号公報
【特許文献２】特開２００４−３４３８１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来技術の公開鍵暗号方式では、暗号文を復号する際に、秘密鍵をセキュアでないメモリ上に展開するため、秘密鍵が漏洩する場合があり、セキュリティ上問題があった。また、秘密鍵を暗号化して保持していても、暗号文を復号する際に、秘密鍵を復号してセキュアでないメモリ上に展開するため、秘密鍵が漏洩する場合があり、セキュリティ上問題があった。
【０００５】
さらに、外部からの読み出しが困難な特殊なメモリを準備し、当該メモリに秘密鍵を格納しても、特殊なデバイスを別途準備しなくてはならないため、汎用ＬＳＩチップに比べて製造コストが増大するという問題があった。
【０００６】
この発明は、上述した従来技術による問題点を解消するため、セキュリティ性が高く、低廉な公開鍵暗号方式を実現することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、一次直線に関する秘密分散方式により秘密鍵ｓを復元可能な前記一次直線上の２点の座標（ｘ１，ｙ１）、（ｘ２，ｙ２）のうち、分散データｘ１，ｙ１，ｘ２を保持する一方の分散元装置と、分散データｙ２および平文Ｍを保持する他方の分散元装置との間の暗号化通信により、前記他方の分散元装置がモジュラスＮを用いた公開鍵暗号方式により公開鍵ｅで前記平文Ｍを暗号化した暗号文Ｃを、前記一方の分散元装置で前記平文Ｍに復号する方法、装置、およびプログラムであって、前記一方の分散元装置が、前記暗号文Ｃを前記他方の分散元装置から受信し、前記一方の分散元装置が、前記公開鍵暗号方式により、前記分散データｘ１，ｘ２から得られる第１の指数データｚ１で前記暗号文Ｃを第１の中間暗号文Ｚに暗号化し、前記一方の分散元装置が、前記第１の中間暗号文Ｚを前記他方の分散元装置に送信し、前記他方の分散元装置が、前記公開鍵暗号方式により、前記分散データｙ２で前記第１の中間暗号文Ｚを第２の中間暗号文Ｙ２に暗号化し、前記一方の分散元装置が、前記第２の中間暗号文Ｙ２を前記他方の分散元装置から受信し、前記一方の分散元装置が、前記公開鍵暗号方式により、前記分散データｘ１，ｘ２，ｙ１から得られる第２の指数データｚ２で前記暗号文Ｃを中間復号文Ｙ１に復号し、前記一方の分散元装置が、前記第２の中間暗号文Ｙ２と、前記中間復号文Ｙ１に基づいて、前記平文Ｍを生成することを要件とする。
【０００８】
また、上記方法、装置、およびプログラムにおいて、前記一方の分散元装置が、前記生成された平文を前記他方の分散元装置に送信し、前記他方の分散元装置が、送信されてきた平文と前記平文Ｍとの同一性により前記一方の分散元装置を認証し、前記他方の分散元装置が、認証結果を出力することとしてもよい。
【０００９】
上記方法、装置、およびプログラムによれば、秘密鍵を一度も復元することなく、他方の分散元装置からの暗号文Ｃを一方の分散元装置で平文Ｍに復号することができる。
【発明の効果】
【００１０】
この方法、装置、およびプログラムによれば、セキュリティ性が高く、低廉な公開鍵暗号方式を実現することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１１】
（秘密鍵の管理方式）
以下に添付図面を参照して、この方法、装置、およびプログラムの好適な実施の形態を詳細に説明する。図１は、秘密鍵の管理方式を示す説明図である。符号１００は秘密分散法を示すグラフである。Ｘ軸およびＹ軸からなるグラフ１００において、一次直線Ｌは、Ｙ＝ａＸ＋ｓであらわされる一次関数である。ａは傾き、ｓは切片である。一次直線Ｌは、任意の２点Ｐ１、Ｐ２を通る。
【００１２】
ここで、点Ｐ１の座標を（ｘ１，ｙ１）、点Ｐ２の座標を（ｘ２，ｙ２）とする。一次直線Ｌ上の任意の２点Ｐ１，Ｐ２の座標が分かれば、傾きａと切片ｓを求めることができる。ここで、切片ｓを秘密鍵とすれば、任意の２点Ｐ１，Ｐ２の座標から秘密鍵ｓを復元することができる。秘密鍵ｓは、下記式（１）により算出することができる。
【００１３】
ｓ＝ｙ１−ｘ１×｛（ｙ２−ｙ１）／（ｘ２−ｘ１）｝・・・（１）
【００１４】
本実施の形態では、任意の２点Ｐ１，Ｐ２の各座標値ｘ１，ｙ１，ｘ２，ｙ２を暗号化装置１０１と復号装置１０２とに分散して内部の記憶領域（不揮発性メモリやハードディスク）に保持させ、秘密鍵ｓ自体は消去し、復号装置１０２にも暗号化装置１０１にも保持させない。具体的には、暗号化装置１０１には座標値ｙ２のみ保持させ、復号装置１０２には、座標値ｘ１，ｙ１，ｘ２を保持させる。以降、各座標値ｘ１，ｙ１，ｘ２，ｙ２を分散データと呼ぶ。各分散データｘ１，ｙ１，ｘ２，ｙ２の保持は、暗号化装置１０１および復号装置１０２の製品出荷前におこなっていればよい。なお、秘密鍵として切片ｓにかえて傾きａを用いてもよい。
【００１５】
暗号化装置１０１には、分散データｙ２と平文Ｍと公開鍵ｅとモジュラスＮが保持される。公開鍵ｅおよびモジュラスＮは、平文Ｍの暗号化前に暗号化装置１０１に保持されていればよく、復号装置１０２から送られてきてもよく、他の装置から送られてきてもよい。また、暗号化装置１０１において生成することとしてもよい。この場合、モジュラスＮは復号装置１０２に送信されることとなる。
【００１６】
また、復号装置１０２には、分散データｘ１，ｙ１，ｘ２と同一のモジュラスＮが保持される。モジュラスＮは、復号前に復号装置１０２に保持されていればよく、暗号化装置１０１から送られてきてもよく、他の装置から送られてきてもよい。また、復号装置１０２において生成することとしてもよい。この場合、モジュラスＮは暗号化装置１０１に送信されることとなる。
【００１７】
そして、実際に、暗号化装置１０１と復号装置１０２との間で暗号化通信する場合には、暗号化装置１０１および復号装置１０２のいずれにも秘密鍵が保存されていないが、復号装置１０２において、公開鍵暗号方式による平文Ｍを復号することができる。また、暗号化装置１０１において、復号装置１０２の認証が可能となる。なお、暗号化装置１０１および復号装置１０２間の通信は、直接通信してもよく、また、インターネット、ＬＡＮ、ＷＡＮなどのネットワークを介して間接的に通信してもよい。また、暗号化装置１０１および復号装置１０２間の通信は、非接触通信であってもよい。
【００１８】
（暗号化装置１０１および復号装置１０２間のシーケンス）
図２は、暗号化装置１０１および復号装置１０２間のシーケンス図である。図２に示したシーケンスは、暗号化装置１０１に保持されている平文Ｍを暗号化し、その暗号文Ｃを復号装置１０２において秘密鍵ｓを一度も使用せずに平文Ｍに復号する手順である。
【００１９】
まず、復号装置１０２が、公開鍵ｅおよびモジュラスＮを暗号化装置１０１に送信する（ステップＳ２０１）。暗号化装置１０１が公開鍵ｅおよびモジュラスＮを他の装置から受けたり、暗号化装置１０１で生成する場合は、必要ない。
【００２０】
つぎに、暗号化装置１０１は、モジュラスＮを用いたＲＳＡ公開鍵暗号方式により、平文Ｍを公開鍵ｅで暗号化する（ステップＳ２０２）。具体的には、下記式（２）により、平文Ｍを暗号化する。Ｃは暗号文である。
【００２１】
ＭeｍｏｄＮ＝Ｃ・・・（２）
【００２２】
なお、従来のモジュラスＮを用いたＲＳＡ（Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ）公開鍵暗号方式では、暗号文Ｃを秘密鍵ｓで復号すると、平文Ｍを得ることができる。具体的には、下記式（３）により、暗号文Ｃを復号する。
【００２３】
ＣsｍｏｄＮ＝Ｍ・・・（３）
【００２４】
暗号化装置１０１は、ステップＳ２０２で得られた暗号文Ｃを復号装置１０２に送信する（ステップＳ２０３）。復号装置１０２は、保持している分散データｘ１，ｘ２を用いて第１の指数データｚ１を算出する。また、保持している分散データｘ１，ｘ２，ｙ１を用いて第２の指数データｚ２を算出する（ステップＳ２０４）。第１の指数データｚ１および第２の指数データｚ２は、下記式（４），（５）により算出される。
【００２５】
ｚ１＝ｘ１／（ｘ２−ｘ１）・・・・・・（４）
ｚ２＝ｙ１×ｘ２／（ｘ２−ｘ１）・・・（５）
【００２６】
なお、第１の指数データｚ１および第２の指数データｚ２は、暗号文Ｃの受信前に算出してもよく、暗号文Ｃの受信後に算出することとしてもよい。また、分散データｘ１，ｘ２，ｙ１のかわりに、あらかじめ、第１の指数データｚ１および第２の指数データｚ２を保持しておくこととしてもよい。
【００２７】
上記式（４），（５）で示した第１の指数データｚ１および第２の指数データｚ２の算出式が分からなければ、秘密鍵ｓの復元元となる分散データｘ１，ｘ２，ｙ１自体が求められないため、セキュリティの向上を図ることができる。また、分散データまたは指数データのうちいずれか一方のデータを保持しておけばよいので、外部からは、復号装置１０２に保持されているデータが、分散データなのか指数データなのかもわからない。したがって、セキュリティの向上を図ることができる。
【００２８】
このあと、モジュラスＮを用いたＲＳＡ公開鍵暗号方式により、暗号文Ｃを指数データｚ１で暗号化する。同様に、暗号文Ｃを指数データｚ２で復号する（ステップＳ２０５）。具体的には、下記式（６）により、暗号文Ｃを指数データｚ１で暗号化し、下記式（７）により、指数データｚ２で復号する。
【００２９】
Ｃz1ｍｏｄＮ＝Ｚ・・・・（６）
Ｃz2ｍｏｄＮ＝Ｙ１・・・（７）
【００３０】
ここで、Ｚは中間暗号文であり、Ｙ１は中間復号文である。また、式（６）および式（７）はともに、モジュラスＮを用いたＲＳＡ公開鍵暗号方式により、暗号文Ｃを指数データ（ｚ１，ｚ２）でべき乗した値のモジュラスＮを取る計算である。したがって、いずれを暗号化と称し、いずれを復号と称しても計算自体はかわらないが、便宜上、上記式（６）を暗号化と称したのは、計算結果であるＺを暗号化装置１０１に送信するからであり、上記式（７）を復号と称したのは、計算結果であるＹ１を暗号化装置１０１に送信せず、復号装置１０２内部に保持しておくからである。
【００３１】
このあと、復号装置１０２は、第１の中間暗号文Ｚを暗号化装置１０１に送信する（ステップＳ２０６）。暗号化装置１０１は、モジュラスＮを用いたＲＳＡ公開鍵暗号方式により、受信した第１の中間暗号文Ｚを分散データｙ２で暗号化する（ステップＳ２０７）。具体的には、下記式（８）により、第１の中間暗号文Ｚを分散ｙ２で暗号化する。
【００３２】
Ｚy2ｍｏｄＮ＝Ｙ２・・・（８）
【００３３】
Ｙ２は、第２の中間暗号文である。このあと、暗号化装置１０１は、第２の中間暗号文Ｙ２を復号装置１０２に送信する（ステップＳ２０８）。復号装置１０２は、上記式（７）で算出された中間復号文Ｙ１と暗号化装置１０１から受信された第２の中間暗号文Ｙ２とを用いて、平文Ｍを生成する（ステップＳ２０９）。具体的には、下記式（９）により、平文Ｍを生成する。
【００３４】
Ｙ１／Ｙ２＝Ｍ・・・（９）
【００３５】
ここで、上記式（９）を証明する。式（９）の左辺を展開すると、上記式（６）〜（８）により、下記式（１０）を得る。
【００３６】
Ｙ１／Ｙ２＝（Ｃz2ｍｏｄＮ）／（Ｚy2ｍｏｄＮ）
＝（Ｃz2ｍｏｄＮ）／（Ｃz1×y2ｍｏｄＮ）
＝Ｃz2-z1×y2ｍｏｄＮ・・・・・・・・・・・・・・（１０）
【００３７】
ここで、第１の指数データｚ１を変形すると、下記式（１１）のとおりである。
【００３８】
ｚ１＋１＝ｘ１／（ｘ２−ｘ１）＋１
＝｛ｘ２／（ｘ２−ｘ１）｝・・・（１１）
【００３９】
式（１０）の暗号文Ｃの指数部（ｚ２−ｚ１×ｙ２）に着目すると、指数部（ｚ２−ｚ１×ｙ２）は下記式（１２）のように展開される。
【００４０】
ｚ２−ｚ１×ｙ２＝ｙ１×ｘ２／（ｘ２−ｘ１）−ｙ２×ｘ１／（ｘ２−ｘ１）
＝ｙ１×｛ｘ１／（ｘ２−ｘ１）＋１｝−ｙ２×ｘ１／（ｘ２−ｘ１）
＝ｙ１−ｘ１×｛（ｙ２−ｙ１）／（ｘ２−ｘ１）｝
＝ｓ・・・・・・・・・・・・・・・・・・・・・・・・・・（１２）
【００４１】
すなわち、指数部（ｚ２−ｚ１×ｙ２）＝ｓであるため、式（１０）は、下記式（１３）のようになる。
【００４２】
Ｙ１／Ｙ２＝Ｃz2-z1×y2ｍｏｄＮ
＝ＣsｍｏｄＮ・・・（１３）
【００４３】
上記式（３）と上記式（１３）により、下記式（１４）を得る。
【００４４】
Ｍ＝ＣsｍｏｄＮ＝Ｙ１／Ｙ２・・・（１４）
【００４５】
したがって、上記式（１３）の復号文Ｙ１／Ｙ２は、暗号化装置１０１によって暗号文Ｃに暗号化された平文Ｍと一致する。
【００４６】
（暗号化装置１０１の機能的構成）
図３は、暗号化装置１０１の機能的構成を示すブロック図である。図３において、暗号化装置１０１は、受信部３０１と、判別部３０２と、暗号化処理部３０３と、送信部３０４と、から構成される。なお、各機能３０１〜３０４で得られたデータは、揮発性メモリや不揮発性メモリ、ハードディスクなどの記憶領域に格納され、各機能３０１〜３０４が必要に応じて読み出す。
【００４７】
まず、受信部３０１は、復号装置１０２から送信されてくる情報を受信する機能を有する。復号装置１０２から受信される情報としては、公開鍵ｅ、公開鍵ｅによる暗号化要求、モジュラスＮ、第１の中間暗号文Ｚなどがある。
【００４８】
また、判別部３０２は、受信部３０１によって受信された情報を判別する機能を有する。具体的には、たとえば、受信された情報のヘッダを参照することにより、当該情報を特定することができる。
【００４９】
また、暗号化処理部３０３は、モジュラスＮを用いたＲＳＡ公開鍵暗号方式により、暗号化対象データを暗号化する機能を有する。具体的には、たとえば、判別部３０２により公開鍵ｅまたは公開鍵ｅによる暗号化要求であると判別された場合、公開鍵ｅで平文Ｍを暗号化する。具体的には、上記式（２）を計算することで、暗号文Ｃを生成する。
【００５０】
また、判別部３０２により第１の中間暗号文Ｚであると判別された場合、分散データｙ２で第１の中間暗号文Ｚを暗号化する。具体的には、上記式（８）を計算することで、第２の中間暗号文Ｙ２を生成する。
【００５１】
また、送信部３０４は、暗号化処理部３０３によって得られた暗号文を復号装置１０２に送信する機能を有する。具体的には、暗号文Ｃや第２の中間暗号文Ｙ２を復号装置１０２に送信する。なお、暗号化装置１０１をソフトウェアにより実現する場合、受信部３０１、判別部３０２、暗号化処理部３０３、および送信部３０４は、具体的には、たとえば、図２に示したステップＳ２０１〜Ｓ２０３、Ｓ２０６〜Ｓ２０８に示した手順に相当する暗号化アルゴリズムを、記憶領域から読み出してＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）に実行させることにより、または、通信Ｉ／Ｆ（ｉｎｔｅｒｆａｃｅ）により、その機能を実現する。
【００５２】
また、暗号化装置１０１をハードウェアにより実現する場合、受信部３０１、判別部３０２、暗号化処理部３０３、および送信部３０４は、具体的には、たとえば、図２に示したステップＳ２０１〜Ｓ２０３、Ｓ２０６〜Ｓ２０８に示した手順に相当するＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｉｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）記述を論理合成して、スタンダードセルやストラクチャードＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などのＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）に与えることにより、または、通信Ｉ／Ｆにより、その機能を実現する。
【００５３】
（復号装置１０２の機能的構成）
図４は、復号装置１０２の機能的構成を示すブロック図である。図４において、復号装置１０２は、受信部４０１と、判別部４０２と、算出部４０３と、中間暗号化処理部４０４と、中間復号部４０５と、生成部４０６と、送信部４０７と、から構成される。なお、各機能４０１〜４０７で得られたデータは、揮発性メモリや不揮発性メモリ、ハードディスクなどの記憶領域に格納され、各機能４０１〜４０７が必要に応じて読み出す。
【００５４】
まず、受信部４０１は、暗号化装置１０１から送信されてくる情報を受信する機能を有する。暗号化装置１０１から受信される情報としては、公開鍵ｅ、モジュラスＮ、暗号文Ｃ、第１の中間復号文Ｚなどがある。
【００５５】
また、判別部４０２は、受信部４０１によって受信された情報を判別する機能を有する。具体的には、たとえば、受信された情報のヘッダを参照することにより、当該情報を特定することができる。
【００５６】
また、算出部４０３は、分散データｘ１，ｘ２，ｙ１を用いて第１の指数データｚ１および第２の指数データｚ２を算出する機能を有する。具体的には、たとえば、第１の指数データｚ１場合には、図２のステップＳ２０４および上記式（４）により算出する。また、第２の指数データｚ２の場合には、上記式（５）により算出する。なお、第１の指数データｚ１および第２の指数データｚ２があらかじめ保持されている場合には、算出部４０３は不要である。
【００５７】
また、中間暗号化処理部４０４は、モジュラスＮを用いたＲＳＡ公開鍵暗号方式により、中間暗号文を生成する機能を有する。具体的には、たとえば、図２のステップＳ２０５および上記式（６）に示したように、第１の指数データｚ１で暗号文Ｃを第１の中間暗号文Ｚに暗号化する。
【００５８】
また、中間復号部４０５は、モジュラスＮを用いたＲＳＡ公開鍵暗号方式により、中間復号文を生成する機能を有する。具体的には、たとえば、図２のステップＳ２０５および上記式（７）に示したように、第２の指数データｚ２で暗号文Ｃを中間復号文Ｙ１に復号する。
【００５９】
また、生成部４０６は、中間復号文Ｙ１と第２の中間暗号文Ｙ２とにより、暗号文Ｃの復号文Ｙ１／Ｙ２を生成する機能を有する。具体的には、たとえば、図２のステップＳ２０９および上記式（９）に示したように、Ｙ１／Ｙ２を生成することで、平文Ｍを得ることができる。
【００６０】
また、送信部４０７は、各種情報を暗号化装置１０１に送信する機能を有する。具体的には、ステップＳ２０６に示したように、中間暗号化処理部４０４によって得られた第１の中間暗号文Ｚを復号装置１０２に送信する。また、公開鍵ｅ、公開鍵ｅによる暗号化要求、モジュラスＮを暗号化装置１０１に送信することとしてもよい。
【００６１】
なお、復号装置１０２をソフトウェアにより実現する場合、受信部４０１、判別部４０２、暗号化処理部、および送信部４０７は、具体的には、たとえば、図２に示したステップＳ２０１〜Ｓ２０３、Ｓ２０６〜Ｓ２０８に示した手順に相当する暗号化アルゴリズムを、記憶領域から読み出してＣＰＵに実行させることにより、または、通信Ｉ／Ｆにより、その機能を実現する。
【００６２】
また、暗号化装置１０１をハードウェアにより実現する場合、受信部４０１、判別部４０２、算出部４０３、中間暗号化処理部４０４、中間復号部４０５、生成部４０６、および送信部４０７と、は、具体的には、たとえば、図２に示したステップＳ２０１、Ｓ２０３〜Ｓ２０６、Ｓ２０８、Ｓ２０９に示した手順に相当するＨＤＬ記述を論理合成して、ＡＳＩＣやＰＬＤに与えることにより、または、通信Ｉ／Ｆにより、その機能を実現する。
【００６３】
（認証装置６０１および復号装置１０２間のシーケンス）
本実施の形態は、暗号化装置１０１に保持されている平文Ｍを暗号化し、その暗号文Ｃを復号装置１０２において秘密鍵ｓを一度も使用せずに平文Ｍに復号することのほか、復号装置１０２による復号結果を認証することができる。
【００６４】
図５は、認証装置６０１および復号装置１０２間のシーケンス図である。図５に示したシーケンスは、図２に示したシーケンスにおいて、復号装置１０２による復号結果を認証装置６０１で認証する手順である。なお、図２に示したステップと同一ステップには同一番号を付し、その説明を省略する。
【００６５】
復号装置１０２は、ステップＳ２０９によって得られた復号結果Ｍ（＝Ｙ１／Ｙ２）を認証装置６０１に送信する（ステップＳ２１０）。認証装置６０１は、復号結果Ｍを受信して、認証処理を実行する（ステップＳ２１１）。すなわち、復号結果Ｍと保持されている平文Ｍとが一致するか否かを判断する。そして、認証結果（認証の成否）を復号装置１０２に送信する（ステップＳ２１２）。このあと、各種処理を実行する（ステップＳ２１３）。
【００６６】
各種処理とは、認証装置６０１と連携する装置により処理が異なるが、たとえば、入退出を管理する装置と連携している場合には、認証された場合にはドアの鍵を開錠して入退出できるようにし、認証されなかった場合には、施錠を維持して入退出を禁止する。
【００６７】
また、顧客情報を管理する装置と連携している場合には、認証された場合には顧客情報にアクセスできるようにし、認証されなかった場合には、顧客情報へのアクセスを禁止する。また、クレジットカードやキャッシュカードを利用する場合には、認証された場合には、決済や現金の引き出しなどができるようにし、認証されなかった場合には、決済や現金引き出しを禁止する。
【００６８】
（認証装置６０１の機能的構成）
図６は、認証装置６０１の機能的構成を示すブロック図である。認証装置６０１は、図３に示した暗号化装置１０１に、認証部３０５および出力部３０６を追加した構成である。したがって、図３に示した構成と同一構成には同一符号を付し、その説明を省略する。
【００６９】
まず、判別部３０２は、受信部３０１において受信された情報が復号結果Ｍである場合、認証部３０５に復号結果Ｍを転送する。また、認証部３０５は、復号装置１０２を認証する機能を有する。具体的には、たとえば、図５に示したステップＳ２１１に示したように、復号装置１０２からの復号結果Ｍと保持されている平文Ｍとの一致判定を実行する。この場合、送信部３０４は、認証結果（一致判定結果）を復号装置１０２に送信する。
【００７０】
また、出力部３０６は、認証結果を出力する機能を有する。具体的には、たとえば、認証装置６０１にディスプレイが設けられている場合には、認証結果を表示する。また、他の装置と連携している場合には、当該他の装置に認証結果を転送する。これにより、図５のステップＳ２１３に示した各種処理を実行することができる。
【００７１】
なお、認証装置６０１をソフトウェアにより実現する場合、受信部３０１、判別部３０２、暗号化処理部３０３、送信部３０４、認証部３０５、および出力部３０６は、具体的には、たとえば、図５に示したステップＳ２０１〜Ｓ２０３、Ｓ２０６〜Ｓ２０８、Ｓ２１０〜Ｓ２１３に示した手順に相当する認証アルゴリズムを、記憶領域から読み出してＣＰＵに実行させることにより、または、通信Ｉ／Ｆにより、その機能を実現する。
【００７２】
また、認証装置６０１をハードウェアにより実現する場合、受信部３０１、判別部３０２、暗号化処理部３０３、送信部３０４、認証部３０５、および出力部３０６は、具体的には、たとえば、図５に示したステップＳ２０１〜Ｓ２０３、Ｓ２０６〜Ｓ２０８、Ｓ２１０〜Ｓ２１３に示した手順に相当するＨＤＬ記述を論理合成して、ＡＳＩＣやＦＰＧＡなどのＰＬＤに与えることにより、または、通信Ｉ／Ｆにより、その機能を実現する。
【００７３】
以上説明したように、本実施の形態によれば、秘密鍵ｓを一度も復元することなく、他方の分散元（暗号化装置１０１、認証装置６０１）からの暗号文Ｃを一方の分散元（復号装置１０２）で平文Ｍに復号することができる。したがって、秘密鍵ｓをセキュアでないメモリに展開することがないため、秘密鍵ｓが漏洩することがなく、セキュリティの向上を図ることができる。
【００７４】
また、復号装置１０２から分散データｘ１、ｘ２、ｙ１がすべて漏洩しても、暗号化装置１０１（または認証装置６０１）から分散データｙ２が漏洩しない限り、秘密鍵ｓを復元することができない。逆に、暗号化装置１０１（または認証装置６０１）から分散データｙ２が漏洩しても、復号装置１０２から分散データｘ１、ｘ２、ｙ１がすべて漏洩しない限り、セキュリティは保たれることとなる。
【００７５】
また、本実施の形態では、外部からの読み出しが困難な特殊なメモリを準備して秘密鍵ｓを格納する必要がないため、特殊なデバイスを別途準備する必要もない。したがって、復号装置１０２の製造コストの低減化を図ることができる。
【００７６】
また、上述した実施の形態において、公開鍵ｅやモジュラスＮは、暗号化装置１０１（または認証装置６０１）または復号装置１０２において図２または図５による一連の処理手順の都度、生成することとしてもよい。これにより、復号または認証する都度、公開鍵ｅやモジュラスＮを変更できるため、セキュリティの向上を図ることができる。
【００７７】
また、上述した実施の形態において、分散データｘ１，ｘ２，ｙ１を復号装置１０２に、分散データｙ２を暗号化装置１０１（または認証装置６０１）にあらかじめ保持させておくこととしたが、復号装置１０２において秘密鍵ｓを生成してから分散データｘ１，ｘ２，ｙ１，ｙ２を生成し、分散データｘ１，ｘ２，ｙ１を復号装置１０２に保持しておき、分散データｙ２を暗号化装置１０１（または認証装置６０１）に送信することとしてもよい。この場合、復号装置１０２では、生成された秘密鍵ｓを消去しておく。これにより、復号または認証する都度、秘密鍵ｓを変更できるため、セキュリティの向上を図ることができる。なお、この秘密鍵の分散は認証装置および復号装置の出荷前に行っておくことが、セキュリティ上望ましい。
【産業上の利用可能性】
【００７８】
以上のように、上記方法、装置、およびプログラムは、秘密分散法を利用した公開鍵暗号方式に有用であり、たとえば、パーソナルコンピュータ、サーバー、トークンデバイス、カードキー、携帯端末に適している。
【図面の簡単な説明】
【００７９】
【図１】秘密鍵の管理方式を示す説明図である。
【図２】暗号化装置および復号装置間のシーケンス図である。
【図３】暗号化装置の機能的構成を示すブロック図である。
【図４】復号装置の機能的構成を示すブロック図である。
【図５】認証装置および復号装置間のシーケンス図である。
【図６】認証装置の機能的構成を示すブロック図である。
【符号の説明】
【００８０】
１０１  暗号化装置
１０２  復号装置
３０１  受信部
３０２  判別部
３０３  暗号化処理部
３０４  送信部
３０５  認証部
３０６  出力部
４０１  受信部
４０２  判別部
４０３  算出部
４０４  中間暗号化処理部
４０５  中間復号部
４０６  生成部
４０７  送信部
６０１  認証装置
Ｃ  暗号文
ｅ  公開鍵
Ｍ  平文
Ｎ  モジュラス
ｓ  秘密鍵
ｘ１，ｘ２，ｙ１，ｙ２  分散データ
Ｙ１  中間復号文
Ｙ２  中間暗号文
Ｚ  中間暗号文
ｚ１  指数データ
ｚ２  指数データ
【図１】
2009225378.tif 000003
【図２】
2009225378.tif 000004
【図３】
2009225378.tif 000005
【図４】
2009225378.tif 000006
【図５】
2009225378.tif 000007
【図６】
2009225378.tif 000008