【実施例】
【0024】
組織内に、一つのチームがあるとする。チームには、リーダーと複数のフォロワーがいる。さらに、トップが、チーム外から管理している。
【0025】
図1は、本願発明の実施の形態に係る暗号文管理システムの一例を示す図である。暗号文管理システム1は、暗号文管理装置3(本願請求項の「暗号文管理装置」の一例)と、サーバ群5(本願請求項の「保持装置」の一例)と、復元装置群7を備える。
【0026】
サーバ群5は、トップサーバ群11と、リーダーサーバ群13を備える。
【0027】
復元装置群7は、トップ復元装置21と、リーダー復元装置23と、フォロワー復元装置25
1,…,25
rを備える。なお、符号の添え字は、省略する場合もある。復元装置は、各プレイヤーが使用するものであり、パソコンなどである。なお、暗号文データや鍵データや秘密データなどは、ハードディスクなどには保存せず、メモリなどに一時的に保存することにより、情報漏えいを防ぐ。
【0028】
トップサーバ群11は、トップが管理する一つ又は複数のサーバである。他のプレイヤーは、トップの許可により、保持する情報にアクセスすることができる。トップ復元装置21は、トップが使用する復元装置である。
【0029】
リーダーサーバ群13は、リーダーが管理する一つ又は複数のサーバである。フォロワーは、リーダーの許可により、保持する情報にアクセスすることができる。リーダー復元装置23は、リーダーが使用する復元装置である。
【0030】
フォロワー復元装置25は、フォロワーが使用する復元装置である。
【0031】
暗号文管理装置3は、鍵データを利用して秘密データの暗号文を作成し、暗号文データ及び鍵データを分割し、サーバ群5や復元装置群7に対して分割暗号文データ及び分割鍵データの組み合わせを配布する。サーバや復元装置では、暗号文管理装置3から分割暗号文データ及び分割鍵データの組み合わせを受信して保管する。復元装置は、分割暗号文データ及び分割鍵データから暗号文データ及び鍵データを復元し、鍵データを用いて暗号文データから秘密データを復号する。以下では、簡単のために、「データ」の表現を省略する場合がある。ここで、組み合わせは、2つのデータ部分を物理的に一つにする場合(一般的にコンピュータ業界での「リンク」)と、ただペアとして扱う場合(一般用語としての「リンク」)を意味するものである。
【0032】
図2は、(a)暗号文管理装置3、(b)サーバ群5の各サーバ、及び、(c)復元装置群7の各復元装置の構成の一例を示すブロック図である。
図3は、(a)暗号文管理装置3、(b)サーバ、(c)トップ復元装置21、リーダー復元装置23及びフォロワー復元装置25の動作の一例を示すフロー図である。
【0033】
図2(a)及び
図3(a)を参照して、暗号文管理装置の構成及び動作の一例を説明する。
【0034】
暗号文管理装置31は、秘密データ記憶部33と、鍵記憶部35と、暗号文記憶部37と、分割暗号文記憶部39と、分割鍵記憶部41と、暗号化部43(本願請求項の「暗号化手段」の一例)と、分割部43(本願請求項の「分割手段」の一例)と、配布部45(本願請求項の「配布手段」の一例)を備える。
【0035】
秘密データ記憶部33は、秘密データを記憶する。鍵記憶部35は、鍵を記憶する。
【0036】
暗号化部43は、鍵を使って秘密データを暗号化して暗号文を生成する(ステップSTM1)。暗号文記憶部37は、暗号文を記憶する。
【0037】
分割部45は、暗号文及び鍵を分割して、分割暗号文及び分割鍵を生成する(ステップSTM2)。分割部45は、(s,m)型秘密分散で、暗号文Eをm個の分割暗号文E
q(q=1,…,m)に分割して、そのうちのs個を集めれば復元できるようにする。また、分割部45は、(t,n)型秘密分散で、鍵Kをn個の分割鍵K
q(q=1,…,n)に分割し、そのうちのt個を集めれば復元できるようにする。分割暗号文記憶部39は、分割暗号文を記憶する。分割鍵記憶部41は、分割鍵を記憶する。ここで、mは自然数であり、sは、2以上m未満の自然数である。また、nは自然数であり、tは、2以上n未満の自然数である。また、簡単のために、s=t及びm>nであり、分割暗号文の個数は分割鍵の個数よりも多く、同じ個数sで復元処理ができるものとする。
【0038】
配布部47は、分割暗号文と分割鍵の組み合わせS
q(q=1,…,m)を生成する(ステップSTM3)。S
q=(E
q,K
q)(q=1,…,n−1)とし、S
q=(E
q,K
n)(q=n,…,m)とする。すなわち、E
qとK
q(q=1,…,n−1)は、全ての異なる分割暗号データE
qに対して、異なる分割鍵データK
qが組み合わさる。このように、すべてが異なる組み合わせを「平等な組み合わせ」という。また、E
q(q=n,…,m)とK
nを組み合わせる。K
nは、複数回組み合わされており、このような複数回組み合わされる分割暗号文及び/又は分割鍵を含む組み合わせを「不平等な組み合わせ」という。このように、平等な組み合わせと不平等な組み合わせにより、組み合わせS
qを生成する。
【0039】
続いて、配布部47は、サーバ及び復元装置に、組み合わせS
qを配布する(ステップSTM4)。
【0040】
配布部47は、トップサーバ群11に対して、平等な組み合わせS
q(q=1,…,n−1)のうちs個を送信する。また、m−n+1個の不平等な組み合わせを送信する。トップサーバ群11は、受信したS
qを保存する。トップサーバ群11が保存した情報により、秘密データを復元することができる。ただし、一つのサーバで全ての組み合わせを管理するのではなく、例えばs+m−n+1台のサーバに対して各サーバに1個の組み合わせのみを保存する。サーバーコストを削減する目的で、閾値数未満であれば、各サーバに複数のリンク小片を保存することにより、各サーバでの情報での復元・復号処理を防止することは可能であるが、セキュリティー上のリスクは増大させることとなる。また、不平等な組み合わせでは分割鍵K
nが共通しているため、s個集めたとしても復元することができない。
【0041】
配布部47は、リーダーサーバ群13に対して、平等な組み合わせのうちs個未満を送信する。リーダーサーバ群13は、受信したS
qを保存する。以下では、s−1台のサーバに、s−1個を送信し、各サーバが1個の組み合わせを保存するとする。リーダーサーバ群13が保存した情報により、秘密データを復元することができない。
【0042】
リーダーサーバ群13が保存した情報に、不平等な組み合わせの1つの情報を加えることにより、秘密データを復元することができる。そのため、仮に、トップサーバ群11のうち、平等な組み合わせを記憶するサーバが故障しても復元でき、耐故障性が高い。なお、正確には、リーダーサーバ群13が保存しない平等な組み合わせの一つの情報でも復元できる。そのため、この事例では、トップサーバ群11のうち、リーダーサーバ群13が保存しない組み合わせが一つでもあれば、アクセス許可を取得した後に復元することができる。
【0043】
図2(b)及び
図3(b)を参照して、サーバの構成及び動作の一例を説明する。
【0044】
サーバ61は、組み合わせ記憶部63と、受信部65と、送信部67を備える。受信部65は、暗号文管理装置31の配布部47から、分割暗号文と分割鍵の組み合わせを受信し(ステップSTS1)、組み合わせ記憶部63に記憶する(ステップSTS2)。送信部67は、アクセスが許可されている復元装置から要求があると、復元装置71に対して、分割暗号文と分割鍵の組み合わせを送信する(ステップSTS3)。
【0045】
図2(c)並びに
図3(c)を参照して、復元装置の構成及び動作の一例を説明する。復元装置71は、分割暗号文記憶部73と、分割鍵記憶部75と、暗号文記憶部77と、鍵記憶部79と、秘密データ記憶部81と、受信部83と、復元部85と、復号部87を備える。秘密データは、図示を省略する表示部に表示される。
【0046】
受信部83は、サーバから分割暗号文と分割鍵の組み合わせを受信する。分割暗号文記憶部73は、分割暗号文を記憶する。分割鍵記憶部75は、分割鍵を記憶する。復元部85は、分割暗号文及び分割鍵から暗号文及び鍵を復元する。復号部87は、鍵記憶部79の鍵を用いて、暗号文記憶部77の暗号文を復号して秘密データを生成する。秘密データ記憶部81は、秘密データを記憶する。
【0047】
図3(c)を参照して、トップ復元装置21の動作の一例を説明する。平等な組み合わせの情報により、秘密データを復元することができる。そのため、トップ復元装置21の受信部83は、トップサーバ群11にアクセスして平等な組み合わせS
qを受信する(ステップSTF1)。受信した分割暗号文及び分割鍵を、それぞれ、分割暗号文記憶部73及び分割鍵記憶部75に記憶する。復元部85は、分割暗号文及び分割鍵を用いて暗号文及び鍵を復元し、それぞれ、暗号文記憶部77及び鍵記憶部79に記憶する(ステップSTF2)。復号部87は、鍵を用いて暗号文を復号して秘密データを得て、秘密データ記憶部81に記憶する(ステップSTF3)。
【0048】
図3(c)を参照して、リーダー復元装置23の動作の一例を説明する。受信部83は、s個の組み合わせS
qを受信する(ステップSTF1)。まず、リーダーサーバ群13が記憶するs−1個の組み合わせS
qを受信する。トップにサーバへのアクセスを許可してもらい、他の1個の組み合わせS
qを受信する。受信部83は、受信した分割暗号文及び分割鍵を、それぞれ、分割暗号文記憶部73及び分割鍵記憶部75に記憶する。復元部85は、分割暗号文及び分割鍵を用いて暗号文及び鍵を復元し、それぞれ、暗号文記憶部77及び鍵記憶部79に記憶する(ステップSTF2)。復号部87は、鍵を用いて暗号文を復号して秘密データを得て、秘密データ記憶部81に記憶する(ステップSTF3)。
【0049】
図3(c)を参照して、フォロワー復元装置25の動作の一例を説明する。フォロワーは、最初、アクセス権がなく、トップ及びリーダーの許可により、s個の組み合わせに限り、サーバへのアクセスを許可してもらう。受信部83は、s個の組み合わせS
qを受信する(ステップSTF1)。例えば、まず、トップの許可により不平等な組み合わせの1個であるS
qを受信する。フォロワーは、リーダーにリーダーサーバ群13へのアクセスを許可してもらい、フォロワーは、リーダーが管理するサーバにアクセスして他のs−1個の組み合わせS
qを受信する。受信部83は、受信した分割暗号文及び分割鍵を、それぞれ、分割暗号文記憶部73及び分割鍵記憶部75に記憶する。復元部85は、分割暗号文及び分割鍵を用いて暗号文及び鍵を復元し、それぞれ、暗号文記憶部77及び鍵記憶部79に記憶する(ステップSTF2)。復号部87は、鍵を用いて暗号文を復号して秘密データを得て、秘密データ記憶部81に記憶する(ステップSTF3)。
【0050】
なお、本実施例では、サーバが分割暗号文と分割鍵の組み合わせを保存し、そのアクセス制御を含めて、秘密管理を行う例を説明した。例えば、分割暗号文と分割鍵の組み合わせを、USBメモリのような持ち運び可能な記録媒体に保存し、復元装置は、記録媒体から読み出して復号処理等を行うようにしてもよい。
【0051】
続いて、
図4及び表1を参照して、本願発明を、事例を使って説明する。IDA(t,m)の記号はRabinのIDAによるm分割t合成を表し、PSS(s,n)の記号はShamirのPSSによるn分割s合成を表す。また、組織内に、1名の社長(L
1)と、1名の部長(L
2)と、2名の社員(L
31、L
32。2人)による場合について説明する。
【0052】
まず、
図4を参照して、この事例における暗号文管理システムの構成及び動作の一例を説明する。暗号文管理システム101は、情報作成装置103と、暗号文管理装置105と、サーバ群107と、復元装置109と、表示装置111を備える。
【0053】
情報作成装置103は、平文記憶部113と、平文処理部115を備える。平文記憶部113は、秘密データを記憶する。平文処理部115は、秘密データの編集などの処理を行う。文書作成者は、情報作成装置103で文書を作成し、これを暗号化するために暗号文管理装置105に送る。
【0054】
暗号文管理装置105は、暗号化部117と、分割部119と、配布部121を備える。暗号化部117と分割部119と配布部121は、
図2の暗号化部43と分割部45と配布部47と同様に動作することにより、平文記憶部113に記憶された秘密データに対して、暗号化処理及び分割処理を行って分割暗号文及び分割鍵を生成し、配布部12が、これらを組み合わせてサーバ群107の各サーバに配布する。
【0055】
サーバ群107には、この事例では5台のサーバ1,・・・,サーバ5が存在する。
【0056】
分割処理及び配布処理について、具体的に説明する。閾値は2、暗号文の分割数は5、鍵の分割数は4である。
(Dis1)まず、暗号化鍵Kをランダムに選ぶ。秘密データSを暗号関数ENC、鍵Kで暗号化する。E=ENC
K(S)。
(Dis2)EをIDA(2,5)で5個に分割する:E
1,E
2,E
3,E
4,E
5
(Dis3)ShamirのPSS(2,4)で、鍵Kを4個に分割する:K
1,K
2,K
3,K
4
(Dis4)分散暗号文と分散鍵の組み合わせS
kを生成する。この事例では、S
1=(E
1,K
1)、S
2=(E
2,K
2)、S
3=(E
3,K
3)、S
4=(E
4,K
4)、S
5=(E
5,K
4)とする。
(Dis5)各サーバに組み合わせS
kを配布する。
【0057】
表1は、各サーバに格納される分割暗号文と分割鍵の組み合わせを示す。■は、各サーバに格納されている。↑は、他のプレイヤーが管理するサーバの組み合わせS
kを、管理者の許可によりアクセスして得るものである。
【0058】
サーバ1にS
1を、サーバ2にS
2を、サーバ3にS
3を、サーバ4にS
4を、サーバ5にS
5を格納する。L
1は、サーバ1、2、4及び5のアクセスを管理する。L
2は、サーバ3のアクセスを管理する。L
1は、L
2に対し、サーバ2へのアクセスを許可する。L
1は、L
31に対し、サーバ4へのアクセスを許可する。L
1は、L
32に対し、サーバ5へのアクセスを許可する。L
2は、L
3に対し、サーバ3へのアクセスを許可する。
【0059】
【表1】
【0060】
L
1(社長)は、合成できる小片を2つ持つので、いつでも合成できる。L
2(部長)は、自分だけでは合成できず、社長のサーバ2から小片を1つ借りる。L
3(社員)は、自分だけでは合成できず、部長のサーバ3から小片を1つ借りる。L
3の2人は、自分達に割り当てられている小片S
4=(E
4,K
4)及びS
5=(E
5,K
4)を合わせても鍵が一緒なので合成できない。仮にL
32が自分の小片を流出した場合、E
5を含むので、誰が流出したか分かる。
【0061】
復元装置109は、受信部123と、復元部125と、復号部127を備える。受信部123は、サーバ群にダウンロードリクエストを行い、認証された後に、分割暗号文及び分割鍵の組み合わせをダウンロードする。
【0062】
サーバ1及び2は、L
1がユーザとして認証できたならば、格納する小片のダウンロードを許可する。サーバ2は、L
2がユーザとして認証できたならば、格納する小片のダウンロードを許可する。サーバ3は、L
2又はL
3がユーザとして認証できたならば、格納する小片のダウンロードを許可する。サーバ4及び5は、それぞれ、L
31及びL
32がユーザとして認証できたならば、格納する小片のダウンロードを許可する。
【0063】
復元部125及び復号部127は、
図2の復元部85及び復号部87と同様に動作し、ダウンロードされた閾値数分の分割暗号文及び分割鍵から暗号文及び鍵を復元し、元の秘密データを復号する。
【0064】
表示部111は、復号した秘密データを表示する。
【0065】
L
2が、L
3によるサーバ3へのアクセスを禁止すると、L
31及びL
32は、単独で復元することはできず、また、協力しても、K
4が共通するために復元はできない。ここに、不平等性がある。よって、L
2は、L
3が情報漏えいしたような非常時に、サーバ3を止めることにより情報流出を防ぐことができる。
【0066】
なお、
図4において、情報作成装置103、暗号文管理装置105、及び、復元装置109は別々のシステム(パソコン)と捉えてもよく、また、通信中の情報漏洩を防ぐためには一台のシステム(パソコン)の中にある機能部分として実現してもよい。情報を閲覧するだけの場合は、復元装置109によるダウンロードリクエストから始まる。
【0067】
なお、本実施例は、容易に一般化することができる。すなわち、本実施例では、分割された暗号文及び鍵の組み合わせについて、不平等な組み合わせにおける分割鍵が1つで分割暗号文が複数である場合について説明したが、分割暗号文が1つで分割鍵が複数であってもよく、また、分割鍵が複数で、分割暗号文も複数であってもよい。ただし、運用上、不平等な組み合わせは、情報を流出するリスクのあるプレイヤーにアクセス許可をすることを想定している。そのため、秘密管理の観点からは、不平等な組み合わせにおける分割暗号文と分割鍵の個数は、少なくとも一方は、分割暗号文についてはs個未満とするか、分割鍵の個数についてはt個未満とすることが望ましい。これにより、不平等な組み合わせにアクセス許可されるプレイヤーが集まっても、暗号文と鍵の少なくとも一方は復元できない。そのため、復元するには、平等な組み合わせへのアクセス許可を得ることが必要となる。そのため、平等な組み合わせを適切に管理することにより、秘密管理を行うことができる。
【0068】
例えば、暗号文を(3,7)型秘密分散して分割暗号文E
1,…,E
7とし、鍵を(3,5)型秘密分散して分割鍵K
1,…,K
5とする。そして、平等な組み合わせを(E
1,K
1),(E
2,K
2),(E
3,K
3)とする。不平等な組み合わせとして、例えば、(E
4,K
4),(E
5,K
4),(E
6,K
5),(E
7,K
5)のようにしてもよい。これにより、例えば、不平等な組み合わせへのアクセスを、チーム1のフォロワーには分割鍵K
4の組み合わせに、チーム2のフォロワーには分割鍵K
5の組み合わせに許可するように、いわば、垂直的な階層構造だけでなく、同レベルの水平的な組織構造にも対応することが可能になる。また、不平等な組み合わせを(E
4,K
4),…,(E
7,K
4),(E
4,K
5),…,(E
7,K
5)のようにすることにより、不平等な組み合わせの数を大幅に増やすことができる。
【0069】
また、本実施例では、暗号文及び鍵の分割は、Kwawczykに習いIDAとPSSを利用したが、本願発明は、秘密をn個に分割してt個で復元ができる秘密分散のアルゴリズムや手法であれば、どのようなものでも実現することが可能である。例えば、ランプ型などを利用してもよい。また、例えば、Rivestは、1997年に計算量的に安全な(n,n)型秘密分散とみなせるAONTを提案した。さらに、RS符号化の後処理を適用したAONT-RSも提案されている。本願発明は、AONTやAONT-RSを用いても実現できる。この場合は、例えば、AONTのように初期値が秘密鍵として利用できるkeyed-AONTの鍵に対して、Shamirの秘密分散を適用する。