JPH1115374A - 秘密鍵分割供託方法およびその確認方法 - Google Patents

秘密鍵分割供託方法およびその確認方法

Info

Publication number
JPH1115374A
JPH1115374A JP9162385A JP16238597A JPH1115374A JP H1115374 A JPH1115374 A JP H1115374A JP 9162385 A JP9162385 A JP 9162385A JP 16238597 A JP16238597 A JP 16238597A JP H1115374 A JPH1115374 A JP H1115374A
Authority
JP
Japan
Prior art keywords
computer
secret key
verifier
divided
depository
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
Application number
JP9162385A
Other languages
English (en)
Inventor
Yoshiki Samejima
吉喜 鮫島
Toshiyuki Tsutsumi
俊之 堤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP9162385A priority Critical patent/JPH1115374A/ja
Publication of JPH1115374A publication Critical patent/JPH1115374A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 ElGamar型公開鍵暗号およびRSA公開鍵暗号の
秘密鍵を複数に分割して供託する場合に、検証機関にお
いて秘密鍵が正しく分割されて供託されているかをゼロ
知識証明を用いて容易に確認可能なように分割して供託
すること、また供託された秘密鍵が正しく分割され供託
されているかどうかを確認すること。 【解決手段】 分割した秘密鍵の和が元の秘密鍵に剰余
nまたはlで等しくなるように分割して供託する。供託
機関コンピュータに登録してある分割の秘密鍵が正しい
かどうかを検証者コンピュータによってゼロ知識証明を
利用して確認する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ElGamal暗号(エ
ルガマル暗号)やElGamal型楕円曲線暗号などElGamal型
公開鍵暗号およびRSA公開鍵暗号の秘密鍵分割供託方
法およびその確認方法に係り、特に、複数の供託機関に
秘密鍵を分割して供託する場合における供託方法と、そ
の供託された分割秘密鍵の確認方法に関するものであ
る。
【0002】
【従来の技術】通信内容を暗号化して送信することによ
り、通信内容の秘密性を確保することができるが、一方
において犯罪等の社会正義に反する不正目的で使用され
たとしても暗号通信の内容を捜査機関等が知ることはで
きないという矛盾がある。
【0003】そこで、暗号通信を不正目的に利用してい
るユーザの通信内容を解読し犯罪捜査に利用する方法と
して、各ユーザが使用する復号鍵(=秘密鍵)を第三者
機関である供託機関に登録させておき、捜査が必要な場
合には裁判所の許可を受け、捜査機関が復号鍵を供託機
関から入手し、捜査対象のユーザが送受信している暗号
文を解読する方法が提案されている。
【0004】また、供託機関自身の不正をも防止するた
め、1つの機関にのみ復号鍵を供託するのではなく、複
数の機関に分割して供託する方法が提案されている。
【0005】復号鍵を分割して供託した場合、捜査機関
は全ての供託機関に登録してある復号鍵を組み合わせて
元の復号鍵を組立て、解読に利用することになる。
【0006】なお、本発明が対象とするElGamal暗号やE
lGamal型楕円曲線暗号については、IEEE P1363: S
tandard for Public-Key CryPtograPhyの
Editorial Contributionの第4章の「Systems
based on the DiscreteLogarithm Problem」
と第5章の「Systems based on the ElliPtic C
urve Discrete Logarithm Problem」に詳しく
解説されているので、その説明は省略する。
【0007】また、RSA暗号についても「暗号理論入
門」(岡本 栄司著、共立出版、1994、pp88-99)に解説
されているので、その説明は省略する。
【0008】
【発明が解決しようとする課題】ところで、上記のよう
なElGamal型公開鍵暗号およびRSA公開鍵暗号におけ
る秘密鍵供託方法において、特に複数の供託機関に秘密
鍵を分割して供託する場合には、秘密鍵の所有者が正し
く当該秘密鍵を分割して供託しているかどうかが問題と
なる。
【0009】分割の仕方が正しくない場合には、捜査に
利用しようとしても暗号文が解読できない。もし、強制
的に容疑者であるユーザから秘密鍵を入手しようとする
と、捜査していることが容疑者に知れてしまう。
【0010】そこで、Ravi Ganesan、The Yaksha Secur
ity System、Communications of the ACM (March 199
6)、 Vol. 39、No. 3、pp 55-60に説明されているよう
に、RSA暗号の公開鍵で暗号化したデータを各供託機
関に回覧し、各々が保有している分割された秘密鍵片で
復号し、元のデータが復号できるかどうかで正しく分割
・供託されているかどうか確認する方法がある。
【0011】しかし、確認者が悪意を持っていた場合、
本来はユーザだけがアクセスできるはずの暗号データを
復号できてしまうという問題がある。
【0012】本発明は、このような問題を解決するため
になされたものであり、その第1の目的は、ElGamal型
公開鍵暗号およびRSA公開鍵暗号における秘密鍵分割
して供託した場合に、正しく分割して供託されているこ
とをゼロ知識証明等を用いて容易に検証することが可能
な秘密鍵供託方法を提供することにある。
【0013】また、本発明の第2の目的は、秘密鍵が正
しく分割されて供託されていることを確認することがで
きる確認方法を提供することにある。
【0014】
【課題を解決するための手段】上記第1の目的を達成す
るために、本発明は、クライアントコンピュータがElGa
mal暗号アルゴリズムによって暗号化された暗号文を復
号するための秘密鍵を複数の供託機関コンピュータに分
割して供託する方法において、基本元をB、Bの位数を
n(すなわち、n個の和が0となる最小数)、秘密鍵を
s、公開鍵PをP=sB、iを秘密鍵sの分割数とした
とき、クライアントコンピュータは複数の供託機関コン
ピュータに対し、自クライアントコンピュータが使用す
る秘密鍵sをs=Σsi(mod n)となるように分割して
供託することを特徴とする。
【0015】特に、素数n、剰余nでn−1乗して1に
なる数gを基本元とし、秘密鍵をs、公開鍵Pを剰余n
で計算して「P={gのs乗}(mod n)」としたエルガ
マル公開鍵暗号の秘密鍵sをi個に分割して供託する場
合、クライアントコンピュータは自クライアントコンピ
ュータが使用する秘密鍵sを、分割した秘密鍵siの和
が剰余n−1で元の秘密鍵に等しい「s=Σsi(mod n
-1)」となるように分割してi個の供託機関コンピュー
タに供託することを特徴とする。
【0016】ここで、実施形態では、ElGamal型公開鍵
暗号としてElGamal暗号の例を示すが、ElGamal型楕円曲
線暗号でも同様に適用可能である。
【0017】また、RSA公開鍵暗号において、2つの
任意の素数をp,q、nをp×q、lをp−1とq−1の
最小公倍数、eとdを剰余lでe×d=1なる数、nと
eを公開鍵、dを秘密鍵、iを秘密鍵sの分割数とした
とき、秘密鍵dを、秘密鍵dの和が元の秘密鍵dに剰余
lで等しいd=Σdi(mod l)となるように分割してク
ライアントコンピュータから複数の供託機関コンピュー
タに供託することを特徴とする。
【0018】また、上記第2の目的を達成するために、
本発明は、供託機関コンピュータに登録してある分割の
秘密鍵が正しいかどうかを検証者コンピュータに、ゼロ
知識証明を利用して確認することを特徴とする。
【0019】その第1の確認方法としては、供託機関コ
ンピュータKiからpi=gのsi乗(mod n)を検証者コ
ンピュータVに伝達した後、検証者コンピュータVにお
いてp=Πpi(mod n)を確認し、さらに各供託機関コ
ンピュータKiがpi={gのsi乗}(mod n)なるsi
を知っていることを次の手順を所定回数だけ繰り返して
確認する。
【0020】(1) 供託機関コンピュータKiで乱数rを
生成し、X={gのr乗}(mod n)をVに送る。
【0021】(2) 検証者コンピュータVは「0」以上
「n−1」未満の乱数bを選び、供託機関コンピュータ
iに送る。
【0022】(3) 供託機関コンピュータKiはy=r+
bsi(mod n−1)を計算して検証者コンピュータVに
送る。
【0023】(4) 検証者コンピュータVは{gのy
乗}=x×{Piのb乗}(mod n)を確認する。
【0024】ここで(1),(4)の巾乗と乗算は剰余n
で、(3)の和は剰余n-1で計算する。
【0025】また、第2の確認方法としては、次の手順
を、各供託機関コンピュータKiに対して同時並行して
所定回数だけ繰り返す。
【0026】(1) 各供託機関コンピュータKiは乱数r
iを生成、xi={gのri乗}(modn)を検証者コンピュ
ータVに送る。
【0027】(2) 検証者コンピュータVは「0」以上
「n−1」未満の乱数bを選び、各供託機関コンピュー
タKiに送る。
【0028】(3) 各供託機関コンピュータKiはyi
i+bsi(mod n−1)を計算して検証者コンピュータ
Vに送る。
【0029】(4) 検証者コンピュータVはΠ{gのyi
乗}={Pのb乗}×Πxi(mod n)を確認する。
【0030】ここで(1)、(4)の巾乗と乗算は剰余n
で、(3)の和は剰余n−1で計算し、Πxiは剰余nで
の全てのxiの積、Π{gのyi乗}はyiは剰余n−1
での全てのyiの積を示す。
【0031】ElGamal型楕円曲線暗号においては、(1)
各供託機関コンピュータKiは、分割した秘密鍵siに対
応する公開鍵Piを「Pi=siB」として楕円曲線上で
計算して検証者コンピュータVに送り、(2)検証者コン
ピュータVは「P=ΣPi」を楕円曲線上で確認し、
(3)検証者コンピュータVは各供託機関コンピュータK
iとの間で(3-1)供託機関コンピュータKiは乱数rを
生成し、「X=rB」を楕円曲線上で計算して検証者コ
ンピュータVに送り、(3-2)検証者コンピュータVは
乱数bを生成してKiに送り、(3-3)供託機関コンピュ
ータKiは保有している分割秘密鍵siを使って「y=r
+bsi(mod n)」を計算してVに送り、(3-4)Vはy
個のBの和「yB」と「bPi+X」が等しいことを楕
円曲線上で確認する。
【0032】一方、RSA暗号の場合においても、供託
機関コンピュータKiに登録していある分割秘密鍵が正
しいかどうかを、ゼロ知識証明を利用して確認する。具
体的には次の手順を所定回数だけ繰り返す。
【0033】ここで、RAS暗号の公開鍵をn,eと
し、秘密鍵をd=Σdi(mod l)とする。ただし、n=
p×q、l=lcm(p−1,q−1)、diは各供託機関K
iに預けてある分割した秘密鍵である。
【0034】(1) 検証者コンピュータVは乱数Rを生
成し、各供託機関コンピュータKiに送る。
【0035】(2) 各供託機関コンピュータKiは乱数R
iを生成し、Xi={Riのe乗}(mod n)をVに送る。
【0036】(3) 検証者コンピュータVは0≦ν<n
なるνをランダムに選び、各供託機関コンピュータKi
に送る。
【0037】(4) 各供託機関コンピュータKiは、Yi
=Ri×{Rのνdi乗}(mod n)を計算して検証者コン
ピュータVに送る。
【0038】(5) 検証者コンピュータVはΠ{Yiのe
乗}=(Rのν乗)×ΠXi(mod n)を確認する。
【0039】ここで(2),(4),(5)の巾乗と乗算は剰余
nで計算し、Π{Xiのe乗}は全てのXiの積、Π{Yiのe
乗}は全ての{Yi}のe乗の積を示す。
【0040】
【発明の実施の形態】以下、本発明の実施の形態を図面
に基づいて詳細に説明する。
【0041】図1は、本発明を適用した秘密鍵分割供託
確認システムの全体構成を示す図であり、101は検証
者Vのコンピュータ102と供託機関K1,K2のコンピ
ュータ103,104とを接続するネットワークであ
る。102は検証者Vのコンピュータであり、103お
よび104は供託機関K1,K2のコンピュータであり、
それぞれネットワーク101に接続している。
【0042】供託機関コンピュータ103,104に
は、ユーザが使用するクライアントコンピュータ105
または106からネットワーク107を通じて登録機関
コンピュータ108に依頼された秘密鍵Sを登録機関コ
ンピュータ108で複数に分割した分割秘密鍵siが供
託される。この場合、分割機関コンピュータ108を経
由せずに各クライアントコンピュータ105または10
6から直接に分割した秘密鍵siを供託する方法も実施
される。
【0043】なお、ここでは2つの供託機関K1,K2
システム内に存在する構成を図示しているが、3つ以上
でも構わない。
【0044】図2は、供託機関K1,K2のコンピュータ
103,104の内部構成を示すブロック図であり、2
02は当該供託機関コンピュータからネットワーク10
1にデータを送信したり、逆にネットワーク101から
送信されて来たデータを受信し、当該供託機関コンピュ
ータ内部に取り込む通信器である。
【0045】203は図3に例示するように鍵所有者の
公開鍵と分割された秘密鍵の1つを保持している秘密鍵
データベースである。
【0046】204は検証者コンピュータ102との間
で後述するプロトコルによって分割秘密鍵の確認を行う
CPU(演算処理装置)、205は分割秘密鍵の確認を
行うためのプログラムやデータを一時記憶するメモリ、
206は乱数生成器であり、これらの各部はバスライン
207で接続されている。
【0047】図3は、供託機関コンピュータ103,1
04内の秘密鍵データベース203の内部構成を示すも
のであり、鍵の所有者名を示すフィールド301と、所
有者が供託した秘密鍵の一部を格納しているフィールド
302と、所有者の公開鍵を格納しているフィールド3
03とから構成され、複数の所有者の分割秘密鍵および
公開鍵が所有者名別に格納されている。
【0048】図4は、検証者Vのコンピュータ102の
内部構成を示すブロック図であり、402は当該検証者
コンピュータからネットワーク101にデータを送信し
たり、逆にネットワーク101から送信されて来たデー
タを受信して当該検証者コンピュータ内部に取り込む通
信器である。403は図5に例示しているように鍵所有
者の公開鍵を保持している公開鍵データベースである。
【0049】404は供託機関コンピュータとの間で後
述するプロトコルによって分割秘密鍵の確認を行うCP
U、405は分割秘密鍵の確認を行うためのプログラム
やデータを一時記憶するメモリ、406は乱数生成器で
あり、これらの各部はバスライン407で接続されてい
る。
【0050】図5は、検証者コンピュータ102内の公
開鍵データベース403の内部構成を示すものであり、
鍵の所有者名を示すフィールド501と、所有者の公開
鍵を格納しているフィールド502とから構成され、複
数の所有者の公開鍵が所有者名別に格納されている。
【0051】本実施形態において、まず、ユーザの秘密
鍵を分割する方法について説明する。
【0052】クライアントコンピュータ105,106
がElGamal暗号アルゴリズムによって暗号化された暗号
文を復号するための秘密鍵を複数の供託機関コンピュー
タ103,104に分割して供託する場合、任意の素数
をn、gを剰余nで位数n−1なる数(gの{n−1}乗
=1(mod n))、秘密鍵をs、公開鍵をp={gのs
乗}(mod n)、iを秘密鍵sの分割数としたとき、各ク
ライアントコンピュータ105,106は複数の供託機
関コンピュータ103,104に対し、自クライアント
コンピュータの1ユーザが使用する秘密鍵sをs=Σs
i(mod n−1)となるように分割して供託する。すなわ
ち、分割した秘密鍵sの和が剰余nで元の秘密鍵に等し
くなるように分割し、その分割した秘密鍵を1個ずつ各
供託機関コンピュータ103,104に供託する。これ
によって、各供託機関コンピュータ103,104内の
秘密鍵データベース203には図3で示したような構造
で分割秘密鍵が公開鍵と共に格納される。
【0053】ここで、本実施形態では、ElGamal型公開
鍵暗号としてElGamal暗号の例を説明するが、ElGamal型
楕円曲線暗号でも同様に適用可能である。
【0054】次に、供託機関コンピュータに供託した秘
密鍵が正しく分割して供託されているかどうかをゼロ知
識証明を用いて確認する方法について説明する。
【0055】図6は、検証者コンピュータ102と供託
機関コンピュータ103,104との主要なやりとりを
摸式的に示した図であり、まず、ステップ601におい
て、供託機関Ki(i=1,2)のコンピュータ10
3,104で乱数rを生成し、「数1」で示すようにX
={gのr乗}を剰余nで計算し、検証者コンピュータ
102に向けて送信する。
【0056】
【数1】
【0057】次にステップ602において、検証者コン
ピュータ102で「0」以上「n−1」未満の乱数b
(mod n-1)を生成し、供託機関コンピュータ103,1
04に向けて送信する。
【0058】最後のステップ603において、供託機関
iのコンピュータ103,104は「y=r+bsi
を剰余n-1で計算し、検証者コンピュータ102に向
けて送信する。通常、これを所定の回数繰り返す。所定
回数繰り返す理由は、検証者コンピュータ102が生成
する乱数bが供託機関コンピュータ103,104で予
測されていると、供託機関コンピュータ103,104
が検証者コンピュータ102を騙す可能性があるからで
あり、所定個数の乱数bに対して、供託されている分割
秘密鍵siが正しく分割されていることが検証されたと
きのみ、分割が正しく行われているものとし、1回でも
検証不可の場合は不正常であると判断される。
【0059】図7は、供託機関コンピュータ103,1
04と検証者コンピュータ102とが実施する処理の全
体の流れを示すフローチャートである。
【0060】まず、ステップ701において、検証者コ
ンピュータ102は各供託機関コンピュータ103,1
04とのネットワーク101を介した通信路を確立した
後、これから検証する秘密鍵の所有者名を各供託機関K
iのコンピュータ103,104に送信する。
【0061】次に、ステップ702において、各供託機
関コンピュータ103,104は検証者コンピュータ1
02から送られてきた所有者名をキーワードとして秘密
鍵データベース203を検索し、その所有者名に対応す
る分割秘密鍵siを取り出し、「数2」で示すPi=gの
si乗を剰余nで計算し、その計算結果であるPiの通信
パケットを検証者コンピュータ102に送信する。
【0062】
【数2】
【0063】ここでg、nは公開鍵の一部であり、秘密
鍵データベース203の公開鍵のフィールド303から
取り出す。
【0064】次に、ステップ703において、検証者コ
ンピュータ102は各供託機関コンピュータ103,1
04から受け取ったPiの積=ΠPiを剰余nで計算した
後、今回の検証対象の所有者名に対応する公開鍵Pを公
開鍵データベース403から検索し、ΠPi=Pかどう
かを確認する。異なる場合は、正しい分割秘密鍵が供託
されていないと判断し、検証を中止する。
【0065】次に、ステップ704において、図8に示
す検証プロトコルを検証者コンピュータ102と各供託
機関コンピュータ103,104との間で所定回数繰り
返す。この場合の回数はどの程度の確率で検証したいの
かによる。
【0066】具体的には、N回繰り返すと検証の正しさ
は、「数3」で表すことができ、逆に、間違いの確率は
「数4」で表すことができる。
【0067】
【数3】
【0068】
【数4】
【0069】次に、ステップ705において、検証者コ
ンピュータ102は検証結果を鍵供託機関コンピュータ
103,104に通知し、通信路を解除する。
【0070】図8は、ステップ704の1回分の検証者
コンピュータ1102と供託機関コンピュータ103,
104とのやりとりの詳細を示すフローチャートであ
り、図6に対応している。
【0071】まず、ステップ801において、供託機関
コンピュータ103,104は「0」以上「n−1未
満」の乱数rを生成し、「数1」で示したように、X=
{gのr乗}を剰余nで計算し、検証者コンピュータ1
02に送る。
【0072】続くステップ802において、検証者コン
ピュータは「0」以上「n−1未満」の乱数bを生成し
て各供託機関コンピュータ103,104に送る。ここ
で、nは所有者の公開鍵の一部であり、公開鍵データベ
ース403中の鍵所有者名のフィールド502から取り
出す。
【0073】次に、803において、供託機関コンピュ
ータ103,104はy=r+bsi(mod n)を計算
し、検証者コンピュータ102に送る。
【0074】続くステップ804において、検証者コン
ピュータ102は、「数5」の両辺が等しくなるかどう
かを確認する。
【0075】
【数5】
【0076】次に、図9を参照し、図8のステップ80
1に当たる供託機関コンピュータ103,104の処理
の詳細を説明する。
【0077】まず、供託機関コンピュータ103,10
4は、ステップ901において、乱数生成器206を用
いて「0」以上「n−1未満」の乱数rを生成し、メモ
リ205に格納する。ここで、nは所有者の公開鍵の一
部であり、秘密鍵データベース203中の鍵所有者の公
開鍵のフィールド303から取り出す。
【0078】続くステップ902においては、「数1」
で示したように、X={gのr乗}を剰余nで計算し、
メモリ205に格納する。さらにステップ903におい
ては、メモリ205内にステップ902の計算結果
「X」の通信パケットを組立て、その通信パケットを通
信器202を用いて検証者コンピュータ102に送る。
【0079】次に、図10を参照し、図8のステップ8
02に当たる検証者コンピュータ102の処理の詳細を
説明する。
【0080】まず、ステップ1001において、供託機
関コンピュータ103,104が送信した通信パケット
を通信器402を用いて受信し、その通信パケットの中
の「X」をメモリ405に格納する。
【0081】続くステップ1002においては、乱数生
成器406を用いて「0」以上「n−1」未満の乱数b
を生成し、メモリ405に格納する。ここで、nは所有
者の公開鍵の一部であり、公開鍵データベース403中
の鍵所有者名の公開鍵のフィールド502から取り出
す。
【0082】続くステップ1003においては、メモリ
405内に乱数bの通信パケットを組立て、その通信パ
ケットを通信器402を用いて供託機関コンピュータ1
03,104に送る。
【0083】次に、図11を参照し、図8のステップ8
03に当たる供託機関コンピュータ103,104の処
理の詳細を説明する。
【0084】まず、ステップ1101において、検証者
コンピュータ102が送信した乱数bの通信パケットを
通信器202を用いて受信し、その中の乱数bをメモリ
205に格納する。
【0085】続くステップ1102においては、メモリ
205に格納した乱数b、図9のステップ901で生成
した乱数r、秘密鍵データベース203のフィールド3
02の分割秘密鍵siを用いて、y=r+bsi(mod n-
1)を計算する。
【0086】続くステップ1103においては、メモリ
205内にステップ1102の計算結果「y」の通信パ
ケットを組立て、その通信パケットを通信器202を用
いて検証者コンピュータ102に送る。
【0087】次に、図12を参照し、図8のステップ8
04に当たる検証者コンピュータ102の処理の詳細を
説明する。
【0088】まず、ステップ1201において、供託機
関コンピュータ103,104が送信した「y」の通信
パケットを通信器402を用いて受信し、その中の
「y」をメモリ405に格納する。
【0089】続くステップ1202においては、「数
5」の両辺が等しくなることを確認する。この式が成立
しない場合は確認不可として図7のステップ704の処
理を終える。
【0090】分割秘密鍵の確認方法の他の例 次に、供託機関コンピュータ103,104に供託され
たElGamal暗号における分割秘密鍵の確認方法の他の例
について、図13〜図15を参照して説明する。なお、
処理の大部分は前述の確認方法と同様であるので、主要
な部分である図6、図7、図8に対応する部分だけを説
明する。
【0091】図13は、検証者コンピュータ102と供
託機関コンピュータ103,104との主要なやりとり
を摸式的に示したものであり、まず、ステップ1301
において、各供託機関コンピュータ103,104が乱
数riを生成し、「数6」で示されるXiを検証者コンピ
ュータ102に向けて送信する。
【0092】
【数6】
【0093】次にステップ1302において、検証者コ
ンピュータ102で「0」以上「n−1未満」の乱数b
を生成し、b(mod n−1)を各供託機関コンピュータ1
03,104に向けて、送信する。
【0094】最後のステップ1303においては、供託
機関コンピュータ103,104において、 yi=ri+bsi(mod n-1) を計算し、検証者コンピュータ102に向けて送信す
る。通常、これを所定の回数繰り返す。所定回数繰り返
すのは前述の通りである。
【0095】図14は、検証者コンピュータ102と供
託機関コンピュータ103,104における処理の全体
の流れを示すフローチャートであり、まず、ステップ1
401において、検証者コンピュータ102は各供託機
関コンピュータ103,104とのネットワーク101
を介した通信路を確立した後、これから検証する分割秘
密鍵の所有者名を各供託機関コンピュータ103,10
4に送信する。
【0096】続くステップ1402において、図15に
示す検証プロトコルを、検証者コンピュータ102と各
供託機関コンピュータ103,104との間で所定回数
繰り返す。この場合の、繰り返し回数はどの程度の確率
で検証したいのかによる。
【0097】検証の正しさは、「数3」で示した通りで
ある。
【0098】続くステップ1403において、検証者コ
ンピュータ102は検証結果を供託機関コンピュータ1
03,104に通知し、通信路を解除する。
【0099】図15は、図14のステップ1402の1
回分のやりとりを示すフローチャートであり、先の図8
で説明した方法との違いは、各ステップを各供託機関コ
ンピュータ103,104に対して同時並列的に処理進
めるようにしていることである。
【0100】ステップ1501において、各供託機関コ
ンピュータ103,104は、「0」以上「n−1未
満」の乱数riを生成し、「数6」で示したXiを計算
し、その計算結果のXiを検証者コンピュータ102に
送る。ここで、nは所有者の公開鍵の一部であり、秘密
鍵データベース203中の公開鍵のフィールド303か
ら取り出す。
【0101】続くステップ1502において、検証者コ
ンピュータ102は「0」以上「n−1未満」の乱数b
を生成して各供託機関コンピュータ103,104に送
る。ここで、nは所有者の公開鍵の一部であり、公開鍵
データベース403中の公開鍵のフィールド502から
取り出す。
【0102】続くステップ1503において、各供託機
関コンピュータ103,104は、 yi=ri+bsi(mod n-1) を計算し、検証者コンピュータ102に送る。
【0103】続くステップ1504において、検証者コ
ンピュータ102は、「数7」の両辺が等しいかどうか
を確認し、等しければ秘密鍵Sは正しく分割されている
ものと判断する。
【0104】
【数7】
【0105】このように、以上説明した分割秘密鍵の確
認方法によれば、クライアントコンピュータを使用する
ユーザが複数の供託機関コンピュータに供託した分割秘
密鍵が正しく分割されていることを確認することができ
る。この場合、ゼロ知識証明を用いているため、供託機
関コンピュータ同士、あるいは供託機関コンピュータと
検証者コンピュータとの間で秘密鍵自体が知られてしま
うことがなく、複数の機関に供託している意義が損なわ
れないという利点がある。
【0106】すなわち、各供託機関コンピュータ10
3,104はΠPi=Pや「数5」が成り立つような
i,X,yを検証者コンピュータ102に送信してい
るが、送信者コンピュータ102がランダムに送って来
る乱数bを予測できないので、供託機関コンピュータが
秘密鍵を知らなかったり、誤って供託されていた場合に
は、このようなX,yを生成するのは不可能である。ま
た、各供託機関コンピュータ103,104は分割秘密
鍵siの情報として、Pi={gのsi乗}やy=r+b
i(但し、X=gのr乗)を送信しているが、これか
らsiの情報を得るのは不可能である。なぜならば、Pi
やX=gのr乗なるXからrを求めてsiを求めるのは
離散対数問題そのものであり、ElGamal暗号を解
読するのに等しく、著しく困難であるからである。
【0107】従って、各ユーザの秘密鍵が正しく分割さ
れていることが検証されているならば、図16のシステ
ム構成図に示すように、クライアントコンピュータ10
5と106との暗号文を捜査機関11が裁判所110の
許可を得て解読しようとする場合に、各供託機関コンピ
ュータ103,104,109に分割して供託されてい
るクライアントコンピュータ105,106の分割秘密
鍵を取得し、この分割秘密鍵によってクライアントコン
ピュータ105,106間の暗号文を解読し、犯罪捜査
等に役立てることができる。
【0108】RSA公開鍵暗号における秘密鍵の分割供
託方法 次に、RSA公開鍵暗号における秘密鍵の分割供託方法
について説明する。
【0109】RSA公開鍵暗号における秘密鍵を複数の
供託機関コンピュータ103,104に分割して供託す
る場合、2つの素数をp,q、n=p×q、lを「p−
1」と「q−1」の最小公倍数(すなわち、l=lcm
(p−1,q−1))、eとdを剰余lでe×d=1な
る数とし、nとeを公開鍵、dを秘密鍵、iを秘密鍵d
の分割数、分割した秘密鍵をdiとしたとき、分割した
秘密鍵diの和が元の秘密鍵dに剰余lで等しい、d=
Σdi(mod l)となるように分割して供託する。
【0110】これによって、各供託機関コンピュータ1
03,104内の秘密鍵データベース203には、図3
で示したような構造で分割秘密鍵diが公開鍵n,eと
共に格納される。
【0111】なお、RSA公開鍵暗号における分割秘密
鍵の確認システムのハードウェア構成は、図1〜図5と
全く同様の構成であるので、ハードウェア構成について
は図1〜図5を参照して説明する。
【0112】図17は、検証者コンピュータ102と供
託機関コンピュータ103,104との主要なやりとり
部分を摸式的に示した図であり、まず、ステップ170
1において、検証者コンピュータ102で乱数Rを生成
し、この乱数Rを各供託機関Kiのコンピュータ10
3,104に向けて送信する。
【0113】次に、ステップ1702において、各供託
機関Kiのコンピュータ103,104が乱数Riを生成
し、「数8」で示すように、Xi={Riのe乗}を剰余
nで計算し、その計算結果Xiを検証者コンピュータ1
02Vに向けて送信する。
【0114】
【数8】
【0115】続くステップ1703において、検証者コ
ンピュータ102において乱数νを生成し、その乱数ν
を各供託機関コンピュータ103,104に向けて送信
する。
【0116】最後のステップ1704において、各供託
機関コンピュータ103,104が「数9」で示される
iを計算し、検証者コンピュータ102に向けて送信
する。通常、これを所定の回数繰り返す。所定回数繰り
返す理由は、ElGamal暗号の場合と同じである。
【0117】
【数9】
【0118】図18は、供託機関コンピュータ103,
104と検証者コンピュータ102とが実施する処理の
全体の流れを示すフローチャートである。
【0119】まず、ステップ1801において、検証者
コンピュータ102は各供託機関コンピュータ103,
104とのネットワーク101を介した通信路を確立し
た後、これから検証する秘密鍵の所有者名を通信パケッ
トによって各供託機関コンピュータ103,104に送
信する。
【0120】次に、ステップ1802において、図19
に示す検証処理を検証者コンピュータ102と各供託機
関コンピュータ103,104とで同時に並行して所定
回数繰り返す。規定回数はどの程度の確率でによる。検
証の正しさは、「数10」で表すことができ、ほぼ「数
11」の値以上となる。また間違いの確率は、「数1
2」で表され、「数13」以下の値となる。
【0121】
【数10】
【0122】
【数11】
【0123】
【数12】
【0124】
【数13】
【0125】続くステップ1803において、検証者コ
ンピュータ102は検証結果を供託機関コンピュータ1
03,104に通知し、通信路を解除する。
【0126】図19は、図18のステップ1802の1
回分のやりとりを示すフローチャートであり、まず、ス
テップ1901において、検証者コンピュータ102は
「0」以上「n未満」の乱数Rを生成し、各供託機関コ
ンピュータ103,104に送る。ここで、nは所有者
の公開鍵の一部であり、公開鍵データベース203中の
公開鍵のフィールド303から取り出す。
【0127】続くステップ1902において、各供託機
関コンピュータ103,104は「0」以上「n未満」
の乱数Riを生成し、その乱数Riで「数8」で示したX
iを計算し、検証者コンピュータ102に送る。
【0128】続くステップ1903において、検証者コ
ンピュータ102は乱数νを生成して各供託機関コンピ
ュータ103,104に送る。
【0129】続くステップ1904において、各供託機
関コンピュータ103,104は「数9」で示したYi
を計算し、検証者コンピュータ102に送る。
【0130】続くステップ1905において、検証者コ
ンピュータ102は「数10」の両辺が等しいかどうか
を確認し、等しければ分割秘密鍵diは正しく分割され
ているものと判断する。
【0131】
【数14】
【0132】次に、図20を参照し、図19のステップ
1901に当たる検証者コンピュータ102の処理を説
明する。
【0133】まず、ステップ2001において、検証者
コンピュータ102は乱数生成器406を用いて「0」
以上「n未満」の乱数Rを生成し、メモリ405に格納
する。
【0134】次に、ステップ2002においては、メモ
リ405内に乱数Rの通信パケットを組立て、通信器4
02を用いて各供託機関コンピュータ103,104に
送る。
【0135】次に、図21を参照し、図19のステップ
1902に当たる供託機関コンピュータ103,104
の処理を説明する。
【0136】まず、供託機関コンピュータ103,10
4はステップ2101において、検証者コンピュータ1
02が送信した乱数Rの通信パケットを通信器202を
用いて受信し、中身の乱数Rをメモリ205に格納す
る。
【0137】続くステップ2102において、乱数生成
器206を用いて「0」以上「n未満」の乱数Riを生
成してメモリ205に格納する。続くステップ1503
においては「数8」で示したXiを計算し、メモリ20
5に格納する。次に、ステップ2104において、メモ
リ205内で計算結果Xiの通信パケットを組立て、そ
の通信パケットを通信器202を用いて検証者コンピュ
ータ102に送る。
【0138】次に、図22を参照し、図19のステップ
1903に当たる検証者コンピュータ102の処理を説
明する。
【0139】まず、ステップ2201において、検証者
コンピュータ102は供託機関コンピュータ103,1
04が送信したXiの通信パケットを通信器402を用
いて受信し、中身のXiをメモリ405に格納する。続
くステップ2202において、乱数生成器406を用い
て「0」以上「n未満」の乱数νを生成し、メモリ40
5に格納する。
【0140】続くステップ2203において、メモリ4
05内で乱数νの通信パケットを組立て、その通信パケ
ットを通信器402を用いて各供託機関コンピュータ1
03,104に送る。
【0141】次に、図23を参照し、図19のステップ
1904に当たる供託機関コンピュータ103,104
の処理を説明する。まず、供託機関コンピュータ10
3,104は、ステップ2301において、検証者コン
ピュータ102が送信した乱数νの通信パケットを通信
器202を用いて受信し、中身の乱数νをメモリ205
に格納する。
【0142】続くステップ2302においては、メモリ
205に格納した乱数R,ν,Riおよび秘密鍵データ
ベース203の分割秘密鍵のフィールド302の分割秘
密鍵diを用い、「数9」で示したYiを計算する。
【0143】続くステップ2303において、メモリ2
05内で計算結果Yiの通信パケットを組立て、その通
信パケットを通信器202を用いて検証者コンピュータ
102に送る。
【0144】次に、図24を参照し、図19のステップ
1905に当たる検証者コンピュータ102の処理を説
明する。まず、検証者コンピュータ102はステップ2
401において、供託機関コンピュータ103,104
が送信したYiの通信パケットを通信器402を用いて
受信し、中身のYiをメモリ405に格納する。
【0145】続くステップ2402においては、「数1
4」の両辺が等しいかどうかを検証し、等しければ、分
割秘密鍵diは正しく分割されているものと判断し、等
しくなければ、検証不能する。
【0146】このように、RSA公開鍵暗号における秘
密鍵を複数の供託機関コンピュータ103,104に分
割して供託する場合に、分割した秘密鍵diの和が元の
秘密鍵dに剰余lで等しい、d=Σdi(mod l)となる
ように分割して供託することにより、検証機関において
秘密鍵diが正しく分割されて供託されているかをゼロ
知識証明を用いて容易に確認するのに役立てることがで
きる。
【0147】また、分割された秘密鍵diをゼロ知識証
明を用いて検証することにより、正しく分割されて供託
されているかを確認することができる。すなわち、各供
託機関コンピュータ103,104は「数14」が成り
立つようなXi,Yiを検証者コンピュータ102に送信
しているが、検証者コンピュータ102が送信する乱数
νが予測できないため、供託機関コンピュータ103,
104が秘密鍵diを知らなかったり、誤って供託され
ていた場合には、「数14」が成り立つようなXi,Yi
を計算するのは不可能である。従って、正しく分割され
ていた場合にのみ「数14」が成立し、秘密鍵diが正
しく分割されて供託されていることを確認することがで
きる。
【0148】また、各供託機関コンピュータ103,1
04は、分割秘密鍵diの情報として「数9」で示した
Yiを送信しているが、これから{Rのdi乗}の情報
を得るのは不可能である。何故ならば、Riがわかれば
「数9」により{Rのdi乗}を計算できるが、Riは各
供託機関コンピュータ103,104がランダムに生成
し、各供託機関コンピュータ103,104のみが知っ
ている情報である。また、Riに関する情報で供託機関
コンピュータの外部に出力したのは「数1」の情報のみ
であり、これからRiを計算するのはRSA暗号そのも
のを解読するのに等しく、解読は著しく困難である。よ
って、検証者コンピュータ102の検証者が悪意を持っ
て暗号データに対し秘密鍵dを求めようとしても不可能
であり、悪意の検証者によってユーザの秘密鍵dが盗用
されるのを防止し、供託した秘密鍵の秘密を維持するこ
とができる。
【0149】なお、図17では検証者コンピュータ10
2において乱数Rとνを別のタイミングで生成している
が、同時に生成し、これらを一緒に供託機関コンピュー
タ103,104に送信するようにしてもよい。
【0150】
【発明の効果】以上説明したように、本発明によれば、
RSA公開鍵暗号やElGamal型公開鍵暗号における秘密
鍵を複数の供託機関に分割して供託する場合に、分割し
た秘密鍵の和が元の秘密鍵に剰余nまたはlで等しくな
るように分割して供託することにより、検証機関におい
て秘密鍵が正しく分割されて供託されているかをゼロ知
識証明を用いて容易に確認するのに役立てることができ
る。
【0151】また、分割された秘密鍵をゼロ知識証明を
用いて検証することにより、正しく分割されて供託され
ているかを確認することができる。特に、検証者コンピ
ュータの検証者が悪意を持って暗号データに対し秘密鍵
を求めようとしても不可能であり、悪意の検証者によっ
てユーザの秘密鍵が盗用されるのを防止し、供託した秘
密鍵の秘密を維持することができるという効果がある。
【図面の簡単な説明】
【図1】本発明を適用した秘密鍵分割供託確認システム
の全体構成図である。
【図2】供託機関コンピュータの内部構成を示すブロッ
ク図である。
【図3】供託機関コンピュータ内に設けられた秘密鍵デ
ータベースの内部構成図である。
【図4】検証者コンピュータの内部構成を示すブロック
図である。
【図5】検証者コンピュータ内に設けられた公開鍵デー
タベースの内部構成図である。
【図6】検証者コンピュータと供託機関コンピュータと
の主要なやりとりを示す図である。
【図7】検証者コンピュータと供託機関コンピュータが
実施する処理の全体の流れを示すフローチャートであ
る。
【図8】図7のステップ704の詳細を示すフローチャ
ートである。
【図9】図8のステップ801の詳細を示すフローチャ
ートである。
【図10】図8のステップ802の詳細を示すフローチ
ャートである。
【図11】図8のステップ803の詳細を示すフローチ
ャートである。
【図12】図8のステップ804の詳細を示すフローチ
ャートである。
【図13】分割秘密鍵の確認方法の他の例における検証
者コンピュータと供託機関コンピュータとの主要なやり
とりを示す図である。
【図14】検証者コンピュータと供託機関コンピュータ
が実施する処理の全体の流れを示すフローチャートであ
る。
【図15】図14のステップ1402の詳細を示すフロ
ーチャートである。
【図16】分割秘密鍵を捜査機関が使用して暗号文を解
読するためのシステム構成を示す図である。
【図17】RSA公開鍵暗号における検証者コンピュー
タと供託機関コンピュータとの主要なやりとりを示す図
である。
【図18】RSA公開鍵暗号における検証者コンピュー
タと供託機関コンピュータが実施する処理の全体の流れ
を示すフローチャートである。
【図19】図18のステップ1802の詳細を示すフロ
ーチャートである。
【図20】図19のステップ1901の詳細を示すフロ
ーチャートである。
【図21】図19のステップ1902の詳細を示すフロ
ーチャートである。
【図22】図19のステップ1903の詳細を示すフロ
ーチャートである。
【図23】図19のステップ1904の詳細を示すフロ
ーチャートである。
【図24】図19のステップ1905の詳細を示すフロ
ーチャートである。
【符号の説明】
101…ネットワーク、102…検証者コンピュータ、
103,104…供託機関コンピュータ、105,10
6…クライアントコンピュータ、107…ネットワー
ク、108…登録機関コンピュータ、203…秘密鍵デ
ータベース、206…乱数生成器、302…分割秘密
鍵、303…公開鍵、403…公開鍵データベース、4
06…乱数生成器。

Claims (16)

    【特許請求の範囲】
  1. 【請求項1】 クライアントコンピュータがエルガマル
    暗号アルゴリズムによって暗号化された暗号文を復号す
    るための秘密鍵を複数の供託機関コンピュータに分割し
    て供託する方法において、 基本元をB、Bの位数をn、秘密鍵をs、公開鍵PをP
    =sB、iを秘密鍵sの分割数としたとき、クライアン
    トコンピュータは複数の供託機関コンピュータに対し、
    自クライアントコンピュータが使用する秘密鍵sをs=
    Σsi(mod n)となるように分割して供託することを特
    徴とする秘密鍵分割供託方法。
  2. 【請求項2】 請求項1の秘密鍵分割供託方法を用いて
    供託機関コンピュータに供託された分割秘密鍵の和が元
    の秘密鍵に等しいこと確認する方法であって、分割秘密
    鍵の和が元の秘密鍵に等しいことをゼロ知識証明を用い
    て検証することを特徴とする分割秘密鍵確認方法。
  3. 【請求項3】 分割が正しいかどうか確認する検証者コ
    ンピュータと分割した秘密鍵を持つ供託機関コンピュー
    タとの間で、 (1)各供託機関コンピュータは分割した秘密鍵siに対
    応する公開鍵Piを基本元Bのsi個の和として求めて検
    証者コンピュータに送り、 (2)検証者コンピュータは公開鍵Pが各供託機関コンピ
    ュータから送られてきた全てのPiの和ΣPiに等しいこ
    とを確認し、 (3)検証者コンピュータは各供託機関コンピュータとの
    間で (3-1)供託機関コンピュータは乱数rを生成して基本
    元Bのr個の和Xを計算して検証者コンピュータに送
    り、 (3-2)検証者コンピュータは乱数bを生成して供託機
    関コンピュータに送り、 (3-3)供託機関コンピュータは保有している分割秘密
    鍵siを使って「r+bsi=y」を剰余nで計算して検
    証者コンピュータに送り、 (3-4)検証者コンピュータはy個のBの和yBとb個
    のPiとXの和「bPi+X」が等しいことを確認する、
    処理を1回以上繰り返し、分割した秘密鍵siの和が元
    の秘密鍵sに等しいことを検証することを特徴とする請
    求項2記載の分割秘密鍵確認方法。
  4. 【請求項4】 分割が正しいかどうか確認する検証者コ
    ンピュータと分割した秘密鍵を持つ供託機関コンピュー
    タとの間で、(1)各供託機関コンピュータは乱数ri
    生成して基本元Bのri個の和「Xi=riB」を計算し
    て検証者コンピュータに送り、 (2)検証者コンピュータは乱数bを生成して各供託機関
    コンピュータに送り、 (3)各供託機関コンピュータは保有している分割秘密鍵
    iを使って「yi=ri+bsi」を剰余nで計算して検
    証者コンピュータに送り、 (4)検証者コンピュータは各供託機関コンピュータから
    送られてきた全てのyi個の基本元Bの和ΣyiBと「b
    P+ΣXi」とが等しいかどうか確認する、処理を1回
    以上繰り返し、分割した秘密鍵siの和が元の秘密鍵s
    に等しいことを検証することを特徴とする請求項2記載
    の秘密鍵鍵確認方法。
  5. 【請求項5】 クライアントコンピュータがエルガマル
    暗号アルゴリズムによって暗号化された暗号文を復号す
    るための秘密鍵を複数の供託機関コンピュータに分割し
    て供託する方法において、 素数n、剰余nでn−1乗して1になる数gを基本元と
    し、秘密鍵をs、公開鍵Pを剰余nで計算して「P=
    {gのs乗}(mod n)」としたエルガマル公開鍵暗号の
    秘密鍵sをi個に分割して供託するとき、クライアント
    コンピュータは自クライアントコンピュータが使用する
    秘密鍵sを、分割した秘密鍵siの和が剰余n−1で元
    の秘密鍵に等しい「s=Σsi(mod n-1)」となるよう
    に分割してi個の供託機関コンピュータに供託すること
    を特徴とする秘密鍵分割供託方法。
  6. 【請求項6】 請求項5の秘密鍵分割供託方法を用いて
    供託機関コンピュータに供託された分割秘密鍵の和が元
    の秘密鍵に等しいこと確認する方法であって、分割秘密
    鍵の和が元の秘密鍵に等しいことをゼロ知識証明を用い
    て検証することを特徴とする分割秘密鍵確認方法。
  7. 【請求項7】 分割が正しいかどうかを確認する検証者
    コンピュータと分割した秘密鍵を持つ供託機関コンピュ
    ータとの間で、 (1)各供託機関コンピュータは分割した秘密鍵siに対
    応する公開鍵Piを「Pi={gのsi乗}(mod n)」と計
    算して検証者コンピュータに送り、 (2)検証者コンピュータは「P=ΠPi(mod n)」とな
    ることを確認し、 (3)検証者コンピュータは各供託機関コンピュータとの
    間で (3-1)供託機関コンピュータは乱数rを生成し、「X
    ={gのr乗}(mod n)」検証者コンピュータに送り、 (3-2)検証者コンピュータは乱数bを生成して供託機
    関コンピュータに送り、 (3-3)供託機関コンピュータは自身が保有している分
    割秘密鍵siを使って「y=r+bsi(mod n−1)」を
    計算して検証者コンピュータに送り、 (3-4)検証者コンピュータは「{gのy乗}(mod
    n)」と「X×{Piのb乗}(mod n)」が等しいかどう
    かを確認する、処理を1回以上繰り返し、分割した秘密
    鍵の和が元の秘密鍵に等しいことを検証することを特徴
    とする請求項6記載の分割秘密鍵確認方法。
  8. 【請求項8】 分割が正しいかどうか確認する検証者コ
    ンピュータと分割した秘密鍵を持つ各供託機関コンピュ
    ータとの間で、 (1)各供託機関コンピュータは乱数riを生成し、「Xi
    ={gのri乗}(modn)」を検証者コンピュータに送
    り、 (2)検証者コンピュータは乱数bを生成して各供託機関
    コンピュータに送り、 (3)各供託機関コンピュータは自身が保有している分割
    秘密鍵siを使って「yi=ri+bsi(mod n-1)」を
    計算して検証者コンピュータに送り、 (4)検証者コンピュータは「Π{gのyi乗}(mod n)」
    と「Pのb乗×ΠXi(mod n)」が等しいかどうか確認
    する、という処理を1回以上繰り返し、分割した秘密鍵
    の和が元の秘密鍵に等しいことを検証することを特徴と
    する請求項6記載の分割秘密鍵の確認方法。
  9. 【請求項9】 基本点をB、Bの位数をn、n個の和が
    0となる最小数がn、秘密鍵をs、公開鍵Pをs個のB
    の和(P=sB)としたエルガマル型楕円曲線公開鍵暗号
    の秘密鍵sをi個に分割してクライアントコンピュータ
    から供託機関コンピュータに供託する方法であって、 分割した秘密鍵sの和が元の秘密鍵に剰余nで等しい
    「s=Σsi(mod n)」となるように分割して供託する
    ことを特徴とする秘密鍵分割供託方法。
  10. 【請求項10】 請求項9の秘密鍵分割供託方法を用い
    て供託機関コンピュータに供託された分割秘密鍵の和が
    元の秘密鍵に等しいこと確認する方法であって、分割秘
    密鍵の和が元の秘密鍵に等しいことをゼロ知識証明を用
    いて検証することを特徴とする分割秘密鍵確認方法。
  11. 【請求項11】 分割が正しいかどうかを確認する検証
    者コンピュータと分割した秘密鍵を持つ供託機関コンピ
    ュータとの間で、 (1)各供託機関コンピュータは分割した秘密鍵siに対
    応する公開鍵Piを「Pi=siB」として楕円曲線上で
    計算して検証者コンピュータに送り、 (2)検証者コンピュータは「P=ΣPi」を楕円曲線上
    で確認し、 (3)検証者コンピュータは各供託機関コンピュータとの
    間で (3-1)供託機関コンピュータは乱数rを生成し、「X
    =rB」を楕円曲線上で計算して検証者コンピュータに
    送り、 (3-2)検証者コンピュータは乱数bを生成して供託機
    関コンピュータに送り、 (3-3)供託機関コンピュータは保有している分割秘密
    鍵siを使って「y=r+bsi(mod n)」を計算して検
    証者コンピュータに送り、 (3-4)検証者コンピュータはy個のBの和「yB」と
    「bPi+X」が等しいことを楕円曲線上で確認する、
    という(3-1)から(3-4)の処理を1回以上繰り返すこ
    とで分割した秘密鍵の和が元の秘密鍵に等しいことを検
    証することを特徴とする請求項10記載の分割秘密鍵確
    認方法。
  12. 【請求項12】 分割が正しいかどうか確認する検証者
    コンピュータと分割した秘密鍵を持つ供託機関コンピュ
    ータとの間で、 (1)各供託機関コンピュータは乱数riを生成し、「Xi
    =riB」を楕円曲線上で計算して検証者コンピュータ
    に送り、 (2)検証者コンピュータは乱数bを生成して各供託機関
    コンピュータに送り、 (3)各供託機関コンピュータは自身が保有している分割
    秘密鍵siを使って「yi=ri+bsi(mod n)」を計算
    して検証者コンピュータに送り、 (4)検証者コンピュータは全てのyi個のBの和「Σyi
    B」と「bP+ΣXi」が楕円曲線上で等しいかどうか
    確認する、という処理を1回以上繰り返し、分割した秘
    密鍵の和が元の秘密鍵に等しいことを検証することを特
    徴とする請求項10記載の分割秘密鍵の確認方法。
  13. 【請求項13】 2つの素数をp,q、n=p×q、l
    を「p−1」と「q−1」の最小公倍数、eとdを剰余
    lで「e×d=1」なる数とし、nとeを公開鍵、dを
    秘密鍵とするRSA公開鍵暗号の秘密鍵dをi個に分割
    してクライアントコンピュータから複数の供託機関コン
    ピュータに供託する方法であって、 分割した秘密鍵diの和が元の秘密鍵dに剰余lで等し
    い「d=Σdi(mod l)」となるように分割して供託す
    ることを特徴とする秘密鍵分割供託方法。
  14. 【請求項14】 請求項13に記載の秘密鍵分割供託方
    法を用いて供託機関コンピュータに供託した分割秘密鍵
    の和が元の秘密鍵に剰余lで等しいことを確認する方法
    であって、分割秘密鍵の和が元の秘密鍵に剰余lで等し
    いことをゼロ知識証明を用いて検証することを特徴とす
    る分割秘密鍵の確認方法。
  15. 【請求項15】 分割が正しいかどうか確認する検証者
    コンピュータと分割した秘密鍵を持つ供託機関コンピュ
    ータとの間で、 (1)検証者コンピュータは0以上n未満の乱数Rを生成
    して各供託機関コンピュータに送り、 (2)各供託機関コンピュータは乱数Riを生成してXi
    {Riのe乗}を剰余lで計算して検証者コンピュータに
    送り、 (3)検証者コンピュータは0以上n未満の乱数νを生成
    して各供託機関コンピュータに送り、 (4)各供託機関コンピュータは保有している分割秘密鍵
    iを使って「Yi=Ri×{Rのdiv乗}」を剰余lで計
    算して検証者コンピュータに送り、 (5)検証者コンピュータは「ΠXi×{Rのν乗}」と
    「Π{Yiのe乗}」が剰余lで等しいかどうか確認す
    る、という処理を1回以上繰り返し、分割した秘密鍵の
    和が元の秘密鍵に等しいことを検証することを特徴とす
    る請求項14記載の分割秘密鍵の確認方法。
  16. 【請求項16】 分割が正しいかどうか確認する検証者
    コンピュータと分割した秘密鍵を持つ供託機関コンピュ
    ータとの間で、 (1)各供託機関コンピュータは乱数Riを生成して「Xi
    ={Riのe乗}」を剰余lで計算して検証者コンピュー
    タに送り、 (2)検証者コンピュータは0以上n未満の乱数Rとνを
    生成して各供託機関コンピュータに送り、 (3)各供託機関は保有している分割秘密鍵diを使って
    「Yi=Ri×{Rのdiν乗}」を剰余lで計算して検証
    者コンピュータに送り、 (4)検証者コンピュータは「ΠXi×{Rのν乗}」と
    「Π{Yiのe乗}」が剰余lで等しいかどうか確認す
    る、という処理を1回以上繰り返し、分割した秘密鍵の
    和が元の秘密鍵に等しいことを検証することを特徴とす
    る請求項14記載の分割秘密鍵の確認方法。
JP9162385A 1997-06-19 1997-06-19 秘密鍵分割供託方法およびその確認方法 Pending JPH1115374A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9162385A JPH1115374A (ja) 1997-06-19 1997-06-19 秘密鍵分割供託方法およびその確認方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9162385A JPH1115374A (ja) 1997-06-19 1997-06-19 秘密鍵分割供託方法およびその確認方法

Publications (1)

Publication Number Publication Date
JPH1115374A true JPH1115374A (ja) 1999-01-22

Family

ID=15753581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9162385A Pending JPH1115374A (ja) 1997-06-19 1997-06-19 秘密鍵分割供託方法およびその確認方法

Country Status (1)

Country Link
JP (1) JPH1115374A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002529778A (ja) * 1998-10-30 2002-09-10 サートコ インコーポレイテッド 共有無作為性の分散暗号化への組み込み
US20210209241A1 (en) * 2019-04-26 2021-07-08 Green Zone Security., Ltd. Apparatus and method for data obfuscation of IoT device using pseudorandom number

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002529778A (ja) * 1998-10-30 2002-09-10 サートコ インコーポレイテッド 共有無作為性の分散暗号化への組み込み
US20210209241A1 (en) * 2019-04-26 2021-07-08 Green Zone Security., Ltd. Apparatus and method for data obfuscation of IoT device using pseudorandom number

Similar Documents

Publication Publication Date Title
US5481613A (en) Computer network cryptographic key distribution system
Elkhiyaoui et al. CHECKER: On-site checking in RFID-based supply chains
US11405365B2 (en) Method and apparatus for effecting a data-based activity
CN110545279A (zh) 兼具隐私和监管功能的区块链交易方法、装置及系统
US11374910B2 (en) Method and apparatus for effecting a data-based activity
US20040165728A1 (en) Limiting service provision to group members
Saranya et al. Cloud based efficient authentication for mobile payments using key distribution method
US20040073790A1 (en) Intermediated delivery scheme for asymmetric fair exchange of electronic items
US6243466B1 (en) Auto-escrowable and auto-certifiable cryptosystems with fast key generation
US20230319103A1 (en) Identifying denial-of-service attacks
US11637817B2 (en) Method and apparatus for effecting a data-based activity
Malina et al. Efficient security solution for privacy-preserving cloud services
CN118160275A (zh) 阈值签名方案
Fugkeaw et al. Secure and Lightweight Blockchain-Enabled Access Control for Fog-Assisted IoT Cloud Based Electronic Medical Records Sharing
GB2594312A (en) Digital Signatures
Mu et al. Delegated decryption
GB2612310A (en) Generating shared keys
GB2610560A (en) Generating shared cryptographic keys
JPH1115374A (ja) 秘密鍵分割供託方法およびその確認方法
Sakuraii et al. A key escrow system with protecting user's privacy by blind decoding
Li et al. A construction for general and efficient oblivious commitment based envelope protocols
Wang et al. Security Enhancements for Data‐Driven Systems: A Blockchain‐Based Trustworthy Data Sharing Scheme
Pachatz Implementation and Security Analysis of Secret Sharing Protocols
GB2610559A (en) Generating shared cryptographic keys
GB2606169A (en) Nested threshold signatures