JP5251520B2 - 分散情報生成装置、復元装置、復元結果検証装置、秘密情報分散システム、方法およびプログラム - Google Patents

分散情報生成装置、復元装置、復元結果検証装置、秘密情報分散システム、方法およびプログラム Download PDF

Info

Publication number
JP5251520B2
JP5251520B2 JP2008556120A JP2008556120A JP5251520B2 JP 5251520 B2 JP5251520 B2 JP 5251520B2 JP 2008556120 A JP2008556120 A JP 2008556120A JP 2008556120 A JP2008556120 A JP 2008556120A JP 5251520 B2 JP5251520 B2 JP 5251520B2
Authority
JP
Japan
Prior art keywords
polynomial
secret information
output
distributed
random number
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.)
Active
Application number
JP2008556120A
Other languages
English (en)
Other versions
JPWO2008093690A1 (ja
Inventor
俊則 荒木
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2008556120A priority Critical patent/JP5251520B2/ja
Publication of JPWO2008093690A1 publication Critical patent/JPWO2008093690A1/ja
Application granted granted Critical
Publication of JP5251520B2 publication Critical patent/JP5251520B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Description

(関連出願についての記載)本願は、先の日本特許出願2007−023907号(2007年2月2日出願)の優先権を主張するものであり、前記先の出願の全記載内容は、本書に引用をもって繰込み記載されているものとみなされる。
本発明は、秘密情報を分散し復元するための分散情報生成装置、復元装置、復元結果検証装置、秘密情報分散システム、分散情報生成方法、復元方法、復元結果検証方法、秘密情報分散方法、分散情報生成プログラム、復元プログラム、復元結果検証プログラムおよび秘密情報分散プログラムに関する。
秘密の情報(以下、秘密情報と表記する。)を保管する場合、紛失、破壊の脅威と、盗難の脅威がある。紛失、破壊の脅威に対しては秘密情報のコピーを作成することが有効である。しかし、コピーを作成すると、盗難に対する脅威は増してしまう。
このような問題を解決する手段の1つとして、秘密分散法がある。秘密分散法の1つである(k,n)閾値法は、秘密情報をn個の分散情報に符号化し、そのうち任意のk個以上の分散情報を集めれば、秘密情報を完全に復元できるが、k−1個までの分散情報を集めただけでは、秘密情報に関する情報をまったく得られないという特徴を持つ。したがって、k−1個までの分散情報が盗難にあったとしても秘密情報は漏れない。また、n−k個までの分散情報が破壊されても、秘密情報を復元できる。
非特許文献1には、(k,n)閾値法として、k−1次多項式を用いることが記載されている。非特許文献1に記載された方式は、素数または素数のべき乗pに対する有限体GF(p)を秘密情報のデータ集合として用い、秘密情報sを定数項に持つGF(p)上のランダムなk−1次多項式f(x)上の点、(x,f(x)),・・・,(x,f(x))を分散情報とする方式である。k個の分散情報からk−1次の多項式を一意に復元することができ、f(0)である秘密情報sを復元することができる。また、k−1個以下の分散情報からはf(0)を定めることはできず、sに関する情報は一切漏れない。
非特許文献2に記載された方式は、非特許文献1に記載された方式と同様に、GF(p)上のランダムなk−1次多項式f(x)上の点、(x,f(x)),・・・,(x,f(x))を分散情報とする方式であり、秘密情報をk−1次多項式の定数項以外の部分、例えば1次以上の係数などにも埋め込むことで、分散情報のサイズを小さくおさえることができる方式である。しかし、k−1以下の分散情報からも秘密情報に関する情報が漏れるという弱点がある。なお、分散情報のサイズとは、分散情報の集合の要素数である。
非特許文献1,2に記載された方式に共通する性質として、x(i=1,・・・,n)に、分散情報を保管する機器に割り振られた番号などを用いることができることが挙げられる。以下、xに対するf(x)をxに対する分散情報と呼ぶ。
非特許文献3に記載された方式は、非特許文献1,2に記載された(k,n)閾値法において、不正を検知する方式である。(1−ε)を不正を検知できる確率とすると、秘密情報が要素数sの集合から選ばれるとき、分散情報は、要素数が((s−1)(k−1)/ε+k)の集合の要素になる。この方式は、復元する際に用いるk個の分散情報のうち、最大k−1個が改竄されても不正を検知できる方式である。
非特許文献4には、非特許文献3に記載された方式よりも、分散情報のサイズが小さく、最大k−1個が改竄されても不正を検知できることが記載されている。
Adi Shamir, "How to share a secret", Comm.ACM, 1979, 22(11), 612-613 G R Blakley, Catherine Meadows, "Security of Ramp schemes", Proc. of Cryptology, 1993, Vol.6, No.3, p.157-167 Martin Tompa, Heather Woll, "How to Share a Secret with Cheaters", In Journal of Cryptology, 1988, vol.1, p.133-138 Wakaha Ogata, Kaoru Kurosawa, Douglas R Stinson, "Optimum Secret Sharing Scheme Secure Against Cheating", SIAM J.Discrete Math, 2006, vol.20, no1, p.79-95
以上の非特許文献1〜4の開示事項は、本書に引用をもって繰り込み記載されているものとする。以下に本発明による関連技術の分析を与える。
ここで、例えば、非特許文献1,2に記載されている通常の(k,n)閾値法において、分散情報の作成、配付が正しく行われている状況を考える。秘密情報を復元しようとする者は、他の分散情報を保持する者から分散情報を集めようとする。しかし、分散情報を要求された側が、配付された値を改竄することなく渡すとは限らない。改竄された分散情報を用いて復元された値は、秘密情報と異なる値になってしまうことがある。例えば、遺言状を分散したデータを子孫に渡しておいた場合に、分散したデータが改竄され、一部の子孫にとって都合の良い内容に書き換えられては困る。
そのため、分散した秘密情報と復元結果とが異なる値になってしまうように改竄された値が復元に用いられた分散情報のなかに存在することが、高い確率で検知できるような方式が望まれる。以下、改竄した分散情報を渡す秘密分散法への参加者を不正者と呼ぶ。
これらの問題を解決している方式として、非特許文献3や非特許文献4に記されている方式が知られている。しかし、非特許文献3に記載された方式では、分散情報のサイズが、かなり大きくなってしまうという問題がある。また、非特許文献4に記載された方式では、k−1個の分散情報を作る不正者は、k−1個以下の分散情報しか知らない、という条件が必要となり、この条件を満たさない場合には不正を検知できないという問題がある。
また、非特許文献3,4に記載された方式は、復元処理に用いられた分散情報のなかに、少なくとも1つは正しく作られた分散情報が含まれていることを条件に不正を検出できる方式である。しかし、正しい分散情報であることが保障できるのは、自分自身に配られた分散情報だけである。つまり、自分自身が参加しなかった復元処理については、その復元処理に用いられた分散情報の中に正しく作られた分散情報が含まれているかどうか判断できないため、その復元処理の結果を信頼することはできない。
すなわち、k個以上の分散情報を知る不正者によって分散情報がk−1個まで改竄された場合であっても、高い確率で不正を検知可能な方式では、分散情報が秘密情報に比べてかなり大きなデータになってしまうという問題がある。また、自分が復元処理に参加しなかった場合、復元処理に用いられた分散情報のなかに改竄された値があったかどうか判らないという問題がある。
そこで、本発明は、不正者が閾値数個以上の分散情報を持っていても分散情報の改竄を検知する確率を高めることを可能とし、従来と比較して秘密情報に対する分散情報のサイズを縮減する分散情報生成装置、復元装置、復元結果検証装置、秘密情報分散システム、分散情報生成方法、復元方法、復元結果検証方法、秘密情報分散方法、分散情報生成プログラム、復元プログラム、復元結果検証プログラムおよび秘密情報分散プログラムを提供することを目的とする。
本発明は、自分が復元処理に参加しなかった場合でも、復元処理結果を検証できる復元結果検証装置、秘密情報分散システム、復元結果検証方法、秘密情報分散方法、復元結果検証プログラムおよび秘密情報分散プログラムを提供することを目的とする。
本発明の第1の側面による分散情報生成装置においては、秘密情報を分散する分散情報生成装置であって、秘密情報分散装置と、分散秘密情報分散装置と、秘密情報s、閾値k、分散情報数nおよび所定の固定値tを入力する分散入力手段とを備え、秘密情報分散装置は、固定値tと異なり、かつ互いに異なるn個の第1の乱数を生成して出力する第1乱数生成装置と、秘密情報sを埋め込んで(k−1)次多項式Fを生成する第1分散多項式生成装置と、多項式Fに各第1の乱数をそれぞれ入力して値を出力するとともに、多項式Fに固定値tを入力して値を出力する分散情報出力装置とを含み、分散秘密情報分散装置は、互いに異なるn個の第2の乱数を生成して出力する第2乱数生成装置と、分散情報出力装置の出力であって、多項式Fに固定値tを入力したときの出力を埋め込んで(k−1)次多項式Gを生成する第2分散多項式生成装置と、多項式Gに第2の乱数をそれぞれ入力して値を出力する分散分散情報出力装置とを含む。
本発明の第2の側面によれば、前記第1の側面に係る分散情報生成装置において、前記分散入力手段は、k−1以下のパラメータLを入力し、第1分散多項式生成装置は、秘密情報sを定数項から(L−1)次までの係数を連結した値に埋め込んで多項式Fを生成し、第2分散多項式生成装置は、多項式Fに固定値tを入力したときの出力を定数項とする多項式Gを生成してもよい。そのような構成によれば、さらに分散情報のサイズを小さくすることができる。
本発明の第3の側面によれば、前記第1の側面に係る分散情報生成装置において、前記第1分散多項式生成装置は、例えばパラメータLが1の場合、秘密情報sを定数項から(L−1)次までの係数を連結した値に埋め込んで多項式Fを生成するかわりに、秘密情報sを定数項とする多項式Fを生成してもよい。そのような構成によれば、k−1個以下の分散情報からは秘密情報に関する情報が漏れない。
本発明の第4の側面によれば、前記第1の側面に係る分散情報生成装置において、前記第1乱数生成装置は、第1の乱数として、固定値tと異なり、かつ互いに異なるn個の定数を生成して出力し、または、第2乱数生成装置は、第2の乱数として、互いに異なるn個の定数を生成して出力してもよい。そのような構成によれば、さらに分散情報のサイズを小さくすることができる。
本発明の第5の側面によれば、前記第1乃至第4のいずれか1の側面に係る分散情報生成装置において、前記第1乱数生成装置が出力した第1の乱数と、分散情報出力装置が出力した値であって多項式Fに第1の乱数を入力したときの出力とを対応付けて記憶するとともに、前記第2乱数生成装置が出力した第2の乱数と、分散分散情報出力装置が出力した値であって多項式Gに第2の乱数を入力したときの出力とを対応付けて記憶する記憶装置を備えてもよい。そのような構成によれば、分散情報生成装置の出力を記憶装置に記憶させることができる。
本発明の第6の側面による復元装置においては、閾値kと固定値tを入力する復元入力手段と、v乃至vと、互いに異なる値r乃至rを入力として、r乃至rを入力した出力が、v乃至vであるような、(k−1)次多項式F’を出力する多項式復元装置と、w乃至wと、互いに異なる値x乃至xを入力として、x乃至xを入力した出力が、w乃至wであるような(k−1)次多項式G’を出力する分散秘密情報復元装置と、多項式G’に埋め込まれた値と、多項式F’に固定値tを入力したときの出力とが等しい場合に、多項式F’に埋め込まれた値を秘密情報として出力し、等しくない場合に、不正の検出を示す情報を出力する不正検出装置とを備えた復元装置が提供される。より詳細には、秘密情報を分散する分散情報生成装置の出力に基づいて秘密情報を復元する復元装置であって、第1の側面に係る分散情報生成装置の出力を格納する記憶装置と、閾値kおよび所定の固定値tを入力する復元入力手段と、記憶装置から、前記第1の側面に係る分散情報生成装置における秘密情報分散装置が出力した第1の乱数と、第1の乱数を前記秘密情報分散装置が生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力し、入力した第1の乱数をrないしrとし、rないしrを多項式Fに入力した出力をそれぞれvないしvとして、rないしrが入力されたときそれぞれvないしvを出力する(k−1)次多項式F’を生成する多項式復元装置と、記憶装置から、第1の側面に係る分散情報生成装置における分散秘密情報分散装置が出力した第2の乱数と、第2の乱数を前記分散秘密情報分散装置が生成した(k−1)次多項式Gに入力したときの出力との対をk組分入力し、入力した第2の乱数をxないしxとし、xないしxを多項式Gに入力した出力をそれぞれwないしwとして、xないしxが入力されたときそれぞれwないしwを出力する(k−1)次多項式G’を生成する分散秘密情報復元装置と、多項式G’に埋め込まれた値と多項式F’に固定値tを入力したときの出力とが等しい場合に、多項式F’に埋め込まれた値を秘密情報として出力し、等しくない場合に、不正の検出を示す情報を出力する不正検出装置とを備える。
本発明の第7の側面によれば、前記第6の側面の復元装置において、前記復元入力手段は、k−1以下のパラメータLを入力し、前記不正検出装置は、多項式G’に埋め込まれた値として多項式G’の定数項を用い、秘密情報として多項式F’の定数項から(L−1)次までの係数を連結した値を用いる。より詳細には、前記記憶装置は、前記第2の側面の分散情報生成装置の出力を格納し、前記復元入力手段は、k−1以下のパラメータLを入力し、前記多項式復元装置は、記憶装置から、前記第2の側面の分散情報生成装置の秘密情報分散装置が出力した第1の乱数と、第1の乱数を前記秘密情報分散装置が生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力して、(k−1)次多項式F’を生成し、分散秘密情報復元装置は、記憶装置から、前記第2の側面の分散情報生成装置の分散秘密情報分散装置が出力した第2の乱数と、第2の乱数を前記分散秘密情報分散装置が生成した(k−1)次多項式Gに入力したときの出力との対をk組分入力して、(k−1)次多項式G’を生成し、不正検出装置は、多項式G’の定数項と多項式F’に固定値tを入力したときの出力とが等しい場合に、多項式F’の定数項から(L−1)次までの係数を連結した値を秘密情報として出力し、等しくない場合に、不正の検出を示す情報を出力してもよい。そのような構成によれば、さらに分散情報のサイズを小さくすることができる。
本発明の第8の側面によれば、前記第6の側面に係る復元装置において、前記不正検出装置は、多項式G’に埋め込まれた値として多項式G’の定数項を用い、秘密情報として多項式F’の定数項を用いる。より詳細には、前記記憶装置は、前記第3の側面の分散情報生成装置の出力を格納し、多項式復元装置は、記憶装置から、前記第3の側面の分散情報生成装置の秘密情報分散装置が出力した第1の乱数と、第1の乱数を前記秘密情報分散装置が生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力して、(k−1)次多項式F’を生成し、不正検出装置は、多項式G’の定数項と多項式F’に固定値tを入力したときの出力とが等しい場合に、多項式F’の定数項を秘密情報として出力し、等しくない場合に、不正の検出を示す情報を出力してもよい。そのような構成によれば、k−1個以下の分散情報からは秘密情報に関する情報が漏れない。
本発明の第9の側面によれば、前記第6乃至8のいずれか1の側面に係る復元装置において、前記記憶装置は、前記第4の側面の分散情報生成装置の出力を格納し、多項式復元装置は、記憶装置から、前記第4の側面の秘密情報分散装置が出力した第1の乱数と、第1の乱数を前記第4の側面の分散情報生成装置の秘密情報分散装置が生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力して、(k−1)次多項式F’を生成し、分散秘密情報復元装置は、記憶装置から、前記第4の側面のの分散情報生成装置の分散秘密情報分散装置が出力した第2の乱数と、第2の乱数を前記分散秘密情報分散装置が生成した(k−1)次多項式Gに入力したときの出力との対をk組分入力して、(k−1)次多項式G’を生成し、多項式復元装置は、第1の乱数として、固定値tと異なり、かつ互いに異なるn個の定数を入力し、または、分散秘密情報復元装置は、第2の乱数として、互いに異なるn個の定数を入力してもよい。そのような構成によれば、さらに分散情報のサイズを小さくすることができる。
本発明の第10の側面によれば、前記第6乃至第9のいずれか1の側面に係る復元装置において、前記不正検出装置は、多項式G’に埋め込まれた値と、多項式F’に固定値tを入力したときの出力内容とが等しい場合に、それぞれの出力内容に加えて多項式F’を出力することが望ましい。そのような構成によれば、復元装置が出力した値を検証することができる。
本発明の第11の側面による復元結果検証装置においては、k−1次多項式fとパラメータr、vを入力とし、多項式fにrを入力したときの値がvと等しい場合に不正が検出されなかったことを示す情報を出力し、等しくない場合に、不正の検出を示す情報を出力する。より詳細には、秘密情報を復元する復元装置が出力した値を検証する復元結果検証装置であって、復元装置が出力した(k−1)次多項式fを入力し、前記第1の側面から第5の側面のうちのいずれかの分散情報生成装置の出力を格納する記憶装置から、前記第1の側面から前記第5の側面のうちのいずれか1の秘密情報分散装置が出力した第1の乱数rと、前記第1の側面から前記第5の側面のうちのいずれかに記載の秘密情報分散装置が生成した多項式Fに第1の乱数rを入力したときの出力vとの対を入力し、多項式fに第1の乱数rを入力したときの出力と入力した値vとが等しい場合に、不正が検出されなかったことを示す情報を出力し、等しくない場合に、不正の検出を示す情報を出力する。
本発明の第12の側面による秘密情報分散システムにおいては、前記第1の側面から前記第5の側面のうちのいずれか1の分散情報生成装置と、前記第6の側面から前記第10の側面のうちのいずれか1の復元装置とを備える。
本発明の第13の側面の秘密情報分散システムによれば、前記第11の側面の復元結果検証装置を備えることが望ましい。そのような構成によれば、復元装置が出力した値を検証することができる。
本発明の第14の側面による分散情報生成方法においては、秘密情報を分散する分散情報生成方法であって、秘密情報s、閾値k、分散情報数nおよび所定の固定値tを入力する分散入力ステップと、秘密情報分散ステップと、分散秘密情報分散ステップとを含み、秘密情報分散ステップは、固定値tと異なり、かつ互いに異なるn個の第1の乱数を生成して出力する第1乱数生成ステップと、秘密情報sを埋め込んで(k−1)次多項式Fを生成する第1分散多項式生成ステップと、多項式Fに各第1の乱数をそれぞれ入力して値を出力するとともに、多項式Fに固定値tを入力して値を出力する分散情報出力ステップとを有し、分散秘密情報分散ステップは、互いに異なるn個の第2の乱数を生成して出力する第2乱数生成ステップと、分散情報出力ステップの出力であって、多項式Fに固定値tを入力したときの出力を埋め込んで(k−1)次多項式Gを生成する第2分散多項式生成ステップと、多項式Gに第2の乱数をそれぞれ入力して値を出力する分散分散情報出力ステップとを有する
本発明の第15の側面によれば、前記第14の側面における前記分散入力ステップで、k−1以下のパラメータLを入力し、第1分散多項式生成ステップで、秘密情報sを定数項から(L−1)次までの係数を連結した値に埋め込んで多項式Fを生成し、第2分散多項式生成ステップで、多項式Fに固定値tを入力したときの出力を定数項とする多項式Gを生成してもよい。そのような構成によれば、さらに分散情報のサイズを小さくすることができる。
本発明の第16の側面によれば、前記第15の側面における前記第1分散多項式生成ステップで、例えばパラメータLが1の場合、秘密情報sを定数項から(L−1)次までの係数を連結した値に埋め込んで多項式Fを生成するかわりに、秘密情報sを定数項とする多項式Fを生成してもよい。そのような構成によれば、k−1個以下の分散情報からは秘密情報に関する情報が漏れない。
本発明の第17の側面によれば、前記第14乃至第16のいずれか1の側面における前記第1乱数生成ステップで、第1の乱数として、固定値tと異なり、かつ互いに異なるn個の定数を生成して出力し、または、第2乱数生成ステップで、第2の乱数として、互いに異なるn個の定数を生成して出力してもよい。そのような構成によれば、さらに分散情報のサイズを小さくすることができる。
本発明の第18の側面によれば、前記第14乃至第17のいずれか1の側面における前記第1乱数生成ステップで出力した第1の乱数と、分散情報出力ステップで出力した値であって多項式Fに第1の乱数を入力したときの出力とを対応付けて記憶するとともに、第2乱数生成ステップで出力した第2の乱数と、分散分散情報出力ステップで出力した値であって多項式Gに第2の乱数を入力したときの出力とを対応付けて記憶装置に記憶させてもよい。そのような構成によれば、分散情報生成方法における出力を記憶装置に記憶させることができる。
本発明の第19の側面による復元方法においては、秘密情報を復元するための復元方法であって、閾値kと固定値tを入力し、
乃至vと、互いに異なる値r乃至rを入力として、r乃至rを入力した出力が、v乃至vであるような、(k−1)次多項式F’を出力し、
乃至wと、互いに異なる値x乃至xを入力として、x乃至xを入力した出力が、w乃至wであるような(k−1)次多項式G’を出力し、
多項式G’に埋め込まれた値と、多項式F’に固定値tを入力したときの出力とが等しい場合に、多項式F’に埋め込まれた値を秘密情報として出力し、等しくない場合に、不正の検出を示す情報を出力する。より詳細には、閾値kおよび所定の固定値tを入力する復元入力ステップと、前記第14の側面の分散情報生成方法で出力した内容を格納する記憶装置から、前記第14の側面の秘密情報分散ステップで出力した第1の乱数と、第1の乱数を前記第14の側面の秘密情報分散ステップで生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力し、入力した第1の乱数rないしrとし、rないしrを多項式Fに入力した出力をそれぞれvないしvとして、rないしrが入力されたときそれぞれvないしvを出力する(k−1)次多項式F’を生成する多項式復元ステップと、記憶装置から、前記第14の側面の分散秘密情報分散ステップで出力した第2の乱数と、第2の乱数を前記第14の側面の分散秘密情報分散ステップで生成した(k−1)次多項式Gに入力したときの出力との対をk組分入力し、入力した第2の乱数をxないしxとし、xないしxを多項式Gに入力した出力をそれぞれwないしwとして、xないしxが入力されたときそれぞれwないしwを出力する(k−1)次多項式G’を生成する分散秘密情報復元ステップと、多項式G’に埋め込まれた値と多項式F’に固定値tを入力したときの出力とが等しい場合に、多項式F’に埋め込まれた値を秘密情報として出力し、等しくない場合に、不正の検出を示す情報を出力する不正検出ステップとを含む。
本発明の第20の側面によれば、前記第19の側面における前記復元入力ステップで、前記復元入力ステップは、k−1以下のパラメータLを入力し、前記不正検出ステップは、多項式G’に埋め込まれた値として多項式G’の定数項を用い、秘密情報として多項式F’の定数項から(L−1)次までの係数を連結した値を用いる。より詳細には、k−1以下のパラメータLを入力し、多項式復元ステップで、前記第15の側面の分散情報生成方法で出力した内容を格納する記憶装置から、前記第15の側面の秘密情報分散ステップで出力した第1の乱数と、第1の乱数を前記第15の側面の秘密情報分散ステップで生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力して、(k−1)次多項式F’を生成し、分散秘密情報復元ステップで、記憶装置から、前記第15の側面の分散秘密情報分散ステップで出力した第2の乱数と、第2の乱数を前記第15の側面の分散秘密情報分散ステップで生成した(k−1)次多項式Gに入力したときの出力との対をk組分入力して、(k−1)次多項式G’を生成し、不正検出ステップで、多項式G’の定数項と多項式F’に固定値tを入力したときの出力とが等しい場合に、多項式F’の定数項から(L−1)次までの係数を連結した値を秘密情報として出力し、等しくない場合に、不正の検出を示す情報を出力してもよい。そのような構成によれば、さらに分散情報のサイズを小さくすることができる。
本発明の第21の側面によれば、前記第19の側面における前記多項式復元ステップで、前記不正検出ステップは、多項式G’に埋め込まれた値として多項式G’の定数項を用い、秘密情報として多項式F’の定数項を用いる。より詳細には、前記第16の側面の分散情報生成方法で出力した内容を格納する記憶装置から、前記第16の側面の前記秘密情報分散ステップで出力した第1の乱数と、第1の乱数を前記第16の側面の前記秘密情報分散ステップで生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力して、(k−1)次多項式F’を生成し、不正検出ステップで、多項式G’の定数項と多項式F’に固定値tを入力したときの出力とが等しい場合に、多項式F’の定数項を秘密情報として出力し、等しくない場合に、不正の検出を示す情報を出力してもよい。そのような構成によれば、k−1個以下の分散情報からは秘密情報に関する情報が漏れない。
本発明の第22の側面によれば、前記第19乃至21のいずれか1の側面における前記多項式復元ステップで、前記第17の側面の分散情報生成方法で出力した内容を格納する記憶装置から、前記第17の側面の前記秘密情報分散ステップで出力した第1の乱数と、第1の乱数を前記秘密情報分散ステップで生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力して、(k−1)次多項式F’を生成し、分散秘密情報復元ステップで、記憶装置から、前記第17の側面の前記分散秘密情報分散ステップで出力した第2の乱数と、第2の乱数を前記第17の側面の前記散秘密情報分散ステップで生成した(k−1)次多項式Gに入力したときの出力との対をk組分入力して、(k−1)次多項式G’を生成し、多項式復元ステップで、第1の乱数として、固定値tと異なり、かつ互いに異なるn個の定数を入力し、または、分散秘密情報復元ステップで、第2の乱数として、互いに異なるn個の定数を入力してもよい。そのような構成によれば、さらに分散情報のサイズを小さくすることができる。
本発明の第23の側面によれば、前記第19乃至21のいずれか1の側面における前記不正検出ステップで、多項式G’に埋め込まれた値と、多項式F’に固定値tを入力したときの出力内容とが等しい場合に、それぞれの出力内容に加えて多項式F’を出力することが望ましい。そのような構成によれば、復元方法において出力した値を検証することができる。
本発明の第24の側面による復元結果検証方法においては、復元された秘密情報を検証するための復元結果検証方法であって、復元された秘密情報として(k−1)次多項式fを入力し、第14の側面から第18の側面のうちのいずれか1の分散情報生成方法で出力した内容を格納する記憶装置から、第14の側面から第18の側面のうちのいずれか1の秘密情報分散ステップで出力した第1の乱数rと、第14の側面から第18の側面のうちのいずれか1の秘密情報分散ステップで生成した多項式Fに第1の乱数rを入力したときの出力vとの対を入力し、多項式fに第1の乱数rを入力したときの出力と入力した値vとが等しい場合に、不正が検出されなかったことを示す情報を出力し、等しくない場合に、不正の検出を示す情報を出力する復元結果検証方法が提供される。
本発明の第25の側面による秘密情報分散方法においては、第14の側面から第18の側面のうちのいずれか1の分散情報生成方法と、第19の側面から第23の側面のうちのいずれか1の復元方法とを含む。
本発明の第26の側面によれば、第25の側面に係る秘密情報分散方法において、第24の側面の復元結果検証方法を含むことが望ましい。そのような構成によれば、復元方法において出力した値を検証することができる。
本発明の第27の側面による分散情報生成プログラムにおいては、秘密情報を分散するための分散情報生成プログラムであって、コンピュータに、秘密情報s、閾値k、分散情報数nおよび所定の固定値tを入力する分散入力処理と、秘密情報分散処理と、分散秘密情報分散処理とを実行させ、秘密情報分散処理で、固定値tと異なり、かつ互いに異なるn個の第1の乱数を生成して出力する第1乱数生成処理と、秘密情報sを埋め込んで(k−1)次多項式Fを生成する第1分散多項式生成処理と、多項式Fに各第1の乱数をそれぞれ入力して値を出力するとともに、多項式Fに固定値tを入力して値を出力する分散情報出力処理とを実行させ、分散秘密情報分散処理で、互いに異なるn個の第2の乱数を生成して出力する第2乱数生成処理と、分散情報出力処理の出力であって、多項式Fに固定値tを入力したときの出力を埋め込んで(k−1)次多項式Gを生成する第2分散多項式生成処理と、多項式Gに第2の乱数をそれぞれ入力して値を出力する分散分散情報出力処理とを実行させる。
本発明の第28の側面によれば、前記第27の側面に係るプログラムにおいて、コンピュータに、前記分散入力処理で、k−1以下のパラメータLを入力する処理を実行させ、前記第1分散多項式生成処理で、秘密情報sを定数項から(L−1)次までの係数を連結した値に埋め込んで多項式Fを生成する処理を実行させ、前記第2分散多項式生成処理で、多項式Fに固定値tを入力したときの出力を定数項とする多項式Gを生成する処理を実行させてもよい。そのような構成によれば、さらに分散情報のサイズを小さくすることができる。
本発明の第29の側面によれば、前記第28の側面に係るプログラムにおいて、コンピュータに、前記第1分散多項式生成処理で、例えばパラメータLが1の場合、秘密情報sを定数項から(L−1)次までの係数を連結した値に埋め込んで多項式Fを生成するかわりに、秘密情報sを定数項とする多項式Fを生成する処理を実行させてもよい。そのような構成によれば、k−1個以下の分散情報からは秘密情報に関する情報が漏れない。
本発明の第30の側面によれば、前記第27乃至第29のいずれか1の側面に係るプログラムにおいて、コンピュータに、第1乱数生成処理で、第1の乱数として、固定値tと異なり、かつ互いに異なるn個の定数を生成して出力する処理を実行させ、または、第2乱数生成処理で、第2の乱数として、互いに異なるn個の定数を生成して出力する処理を実行させてもよい。そのような構成によれば、さらに分散情報のサイズを小さくすることができる。
本発明の第31の側面によれば、前記第27乃至第30のいずれか1の側面に係るプログラムにおいて、コンピュータに、第1乱数生成処理で出力した第1の乱数と、分散情報出力処理で出力した値であって多項式Fに第1の乱数を入力したときの出力とを対応付けて記憶するとともに、第2乱数生成処理で出力した第2の乱数と、分散分散情報出力処理で出力した値であって多項式Gに第2の乱数を入力したときの出力とを対応付けて記憶装置に記憶させる処理を実行させてもよい。そのような構成によれば、分散情報生成プログラム実行時の出力を記憶装置に記憶させることができる。
本発明の第32の側面による復元プログラムにおいては、秘密情報を復元するための復元プログラムであって、コンピュータに、閾値kおよび所定の固定値tを入力する復元入力処理と、
乃至vと、互いに異なる値r乃至rを入力として、r乃至rを入力した出力が、v乃至vであるような、(k−1)次多項式F’を出力する多項式復元処理と、
乃至wと、互いに異なる値x乃至xを入力として、x乃至xを入力した出力が、w乃至wであるような(k−1)次多項式G’を出力する分散秘密情報復元処理と、
多項式G’に埋め込まれた値と、多項式F’に固定値tを入力したときの出力とが等しい場合に、多項式F’に埋め込まれた値を秘密情報として出力し、等しくない場合に、不正の検出を示す情報を出力する不正検出処理と、を実行させる。より詳細には、閾値kおよび所定の固定値tを入力する復元入力処理と、第27の側面の分散情報生成プログラムで出力した内容を格納する記憶装置から、第27の側面の秘密情報分散処理で出力した第1の乱数と、第1の乱数を第27の側面の秘密情報分散処理で生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力し、入力した第1の乱数をrないしrとし、rないしrを多項式Fに入力した出力をそれぞれvないしvとして、rないしrが入力されたときそれぞれvないしvを出力する(k−1)次多項式F’を生成する多項式復元処理と、記憶装置から、第27の側面の分散秘密情報分散処理で出力した第2の乱数と、第2の乱数を第27の側面の分散秘密情報分散処理で生成した(k−1)次多項式Gに入力したときの出力との対をk組分入力し、入力した第2の乱数をxないしxとし、xないしxを多項式Gに入力した出力をそれぞれwないしwとして、xないしxが入力されたときそれぞれwないしwを出力する(k−1)次多項式G’を生成する分散秘密情報復元処理と、多項式G’に埋め込まれた値と多項式F’に固定値tを入力したときの出力とが等しい場合に、多項式F’に埋め込まれた値を秘密情報として出力し、等しくない場合に、不正の検出を示す情報を出力する不正検出処理とを実行させる。
本発明の第33の側面によれば、前記第32の側面に係るプログラムにおいて、コンピュータに、前記復元入力処理は、k−1以下のパラメータLを入力し、前記不正検出処理は、多項式G’に埋め込まれた値として多項式G’の定数項を用い、秘密情報として多項式F’の定数項から(L−1)次までの係数を連結した値を用いる。より詳細には、前記復元入力処理で、k−1以下のパラメータLを入力し、多項式復元処理で、前記第28の側面の分散情報生成プログラムで出力した内容を格納する記憶装置から、前記第28の側面の秘密情報分散処理で出力した第1の乱数と、第1の乱数を前記第28の側面の秘密情報分散処理で生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力して、(k−1)次多項式F’を生成する処理を実行させ、分散秘密情報復元処理で、記憶装置から、前記第28の側面の分散秘密情報分散処理で出力した第2の乱数と、第2の乱数を前記第28の側面の分散秘密情報分散処理で生成した(k−1)次多項式Gに入力したときの出力との対をk組分入力して、(k−1)次多項式G’を生成する処理を実行させ、不正検出処理で、多項式G’の定数項と多項式F’に固定値tを入力したときの出力とが等しい場合に、多項式F’の定数項から(L−1)次までの係数を連結した値を秘密情報として出力し、等しくない場合に、不正の検出を示す情報を出力する処理を実行させてもよい。そのような構成によれば、さらに分散情報のサイズを小さくすることができる。
本発明の第34の側面によれば、前記第33の側面に係るプログラムにおいて、コンピュータに、前記多項式復元処理で、前記第29の側面の分散情報生成プログラムで出力した内容を格納する記憶装置から、前記第29の側面の秘密情報分散処理で出力した第1の乱数と、第1の乱数を前記第29の側面の秘密情報分散処理で生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力して、(k−1)次多項式F’を生成する処理を実行させ、不正検出処理で、多項式G’の定数項と多項式F’に固定値tを入力したときの出力とが等しい場合に、多項式F’の定数項を秘密情報として出力し、等しくない場合に、不正の検出を示す情報を出力する処理を実行させてもよい。そのような構成によれば、k−1個以下の分散情報からは秘密情報に関する情報が漏れない。
本発明の第35の側面によれば、前記第32乃至第34のいずれか1の側面に係るプログラムにおいて、コンピュータに、前記多項式復元処理で、前記第30の側面の分散情報生成プログラムで出力した内容を格納する記憶装置から、前記第30の側面の秘密情報分散処理で出力した第1の乱数と、第1の乱数を前記第30の側面の秘密情報分散処理で生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力して、(k−1)次多項式F’を生成する処理を実行させ、前記分散秘密情報復元処理で、記憶装置から、前記第30の側面の分散秘密情報分散処理で出力した第2の乱数と、第2の乱数を前記第30の側面の分散秘密情報分散処理で生成した(k−1)次多項式Gに入力したときの出力との対をk組分入力して、(k−1)次多項式G’を生成する処理を実行させ、前記多項式復元処理で、第1の乱数として、固定値tと異なり、かつ互いに異なるn個の定数を入力する処理を実行させ、または、前記分散秘密情報復元処理で、第2の乱数として、互いに異なるn個の定数を入力する処理を実行させてもよい。そのような構成によれば、さらに分散情報のサイズを小さくすることができる。
本発明の第36の側面によれば、前記第32乃至第35のいずれか1の側面に係るプログラムにおいて、コンピュータに、前記不正検出処理で、多項式G’に埋め込まれた値と、多項式F’に固定値tを入力したときの出力内容とが等しい場合に、それぞれの出力内容に加えて多項式F’を出力する処理を実行させることが望ましい。そのような構成によれば、復元プログラム実行時に出力した値を検証することができる。
本発明の第36の側面による復元結果検証プログラムにおいては、復元された秘密情報を検証するための復元結果検証プログラムであって、コンピュータに、復元された秘密情報として(k−1)次多項式fを入力し、前記第27の側面から前記第31の側面のうちのいずれか1の分散情報生成プログラムで出力した内容を格納する記憶装置から、前記第27の側面から前記第31の側面のうちのいずれか1の秘密情報分散処理で出力した第1の乱数rと、前記第27の側面から前記第31の側面のうちのいずれか1の秘密情報分散処理で生成した多項式Fに第1の乱数rを入力したときの出力vとの対を入力し、多項式fに第1の乱数rを入力したときの出力と入力した値vとが等しい場合に、不正が検出されなかったことを示す情報を出力し、等しくない場合に、不正の検出を示す情報を出力する処理を実行させる。
本発明の第36の側面による秘密情報分散プログラムにおいては、前記第27の側面から前記第31の側面のうちのいずれか1の分散情報生成プログラムと、前記第32の側面から前記第36の側面のうちのいずれか1の復元プログラムとを含む秘密情報分散プログラムが提供される。
本発明の第37の側面による秘密情報分散プログラムにおいては、前記第27の側面から前記第31の側面のうちのいずれか1の分散情報生成プログラムと、前記第32の側面から前記第36の側面のうちのいずれか1の復元プログラムと、前記第37の側面の復元結果検証プログラムとを含む秘密情報分散プログラムが提供される。
本発明による秘密情報分散システムにおいては、例えば、(k,n)閾値法として、にk−1次多項式を用いた方式(非特許文献1、非特許文献2参照)を用いてもよい。
本発明による秘密情報分散システムにおいては、例えば、分散情報生成装置と、復元装置と、復元情報検証装置と、複数の記憶装置からなる秘密情報分散システムであって、秘密情報sと、閾値kと、分散情報数nを入力として、ある固定の値(以降、「T」と呼ぶ)と異なり、且つ互いに異なる分散情報数個の乱数の組(以降、「乱数セットA」と呼ぶ)と、互いに異なる分散情報数個の乱数の組(以降、「乱数セットB」と呼ぶ)を生成し、乱数セットAの各要素とTに対する秘密情報の分散情報を秘密情報を、ランダムな(k−1)次多項式fを用いて生成し、対応する乱数セットAの要素を記憶する記憶装置に記憶させ、乱数セットBの各要素に対するf(T)の分散情報をk−1次多項式を用いて生成し、対応する乱数セットBの要素を記憶する記憶装置に記憶させる分散情報生成装置と、k機の記憶装置から、それぞれの記憶する乱数セットAの要素と、乱数セットBの要素と、乱数セットAに対する秘密情報の分散情報と、乱数セットBに対するf(T)の分散情報を読み出し、閾値個の乱数セットBに対するf(T)の分散情報から復元したf(T)を復元し(以降、復元した値を「f’」と呼ぶ)、閾値個の乱数セットAに対する秘密情報の分散情報よりfを復元し(以降、復元した多項式を「f’」と呼ぶ)、(T,f’)が復元したf’上の点であるかをチェックし、(T,f’)が復元したf’上の点であったとき、f(0)を秘密情報として、多項式fをチェック用データとして出力し、それ以外の場合、不正の検出を表す記号を出力する復元装置と、秘密情報のデータ集合上の多項式fとを入力として、1機の記憶装置の記憶する乱数セットAの要素rと、乱数セットAの要素に対する秘密情報の分散情報vを読みだし、f(r)=vを満たしているとき、f(0)を出力し、それ以外の場合不正の検出を表す記号を出力する復元情報検証装置と、乱数セットA用データ集合の要素と、乱数セットB用データ集合の要素と、乱数セットAの要素に対する秘密情報の分散情報と、乱数セットBの要素に対する固定値に対する秘密情報の分散情報の分散情報とを記憶する装置を持つ記憶装置を備えることを特徴とする。このような構成を採用し、乱数セットA,B用のデータ集合のサイズを適切に選ぶことで、本発明の目的を達成することができる。
本発明によれば、不正者が閾値数個以上の分散情報を持っていても分散情報の改竄を検知する確率を高めることを可能とし、従来と比較して秘密情報に対する分散情報のサイズを縮減することができる。また、本発明によれば、自分が復元処理に参加しなかった場合でも、復元処理結果を検証できる。
本発明による秘密情報分散システムの一実施の形態を示すブロック図である。 分散情報生成装置および記憶装置の構成例を示すブロック図である。 復元装置および記憶装置の構成例を示すブロック図である。 復元結果検証装置および記憶装置の構成例を示すブロック図である。 コンピュータの構成例を示すブロック図である。 本発明の一実施の形態における分散情報生成装置の動作を示すフローチャートである。 本発明の一実施の形態における復元装置動作を示すフローチャートである。 本発明の一実施の形態における復元結果検証装置の動作を示すフローチャートである。
符号の説明
100 分散情報生成装置
101 秘密情報分散装置
102 分散秘密情報分散装置
200 復元装置
201 多項式秘密情報復元装置
202 分散秘密情報復元装置
203 不正検出装置
300_1〜n 記憶装置
301_1〜n 第1乱数記憶装置
302_1〜n 分散秘密情報記憶装置
303_1〜n 第2乱数記憶装置
304_1〜n 分散分散秘密情報記憶装置
400 復元結果検証装置
次に、本発明を実施するための最良の形態について図面を参照して説明する。まず、k−1人の不正者が、ある参加者をだますという不正、すなわち、k−1個の分散情報の改竄を検知する場合について説明する。図1は、本発明による秘密情報分散システムの構成の一実施形態を示すブロック図である。図1を参照すると、本実施形態の秘密情報分散システムは、分散情報生成装置100と、復元装置200と、記憶装置300−1〜300−nとを備える。
分散情報生成装置100は、秘密情報を分散する多項式fを生成して、第1の乱数に対する分散情報(以下、「分散秘密情報」と表記する。)を生成する。また、分散情報生成装置100は、生成した多項式fに予め定められた固定値tを入力した値f(t)を分散する多項式gを生成して、第2の乱数に対する分散情報(以下、「分散分散秘密情報」と表記する。)を生成する。
記憶装置300−1〜300−nは、分散情報生成装置100が生成した分散秘密情報および分散分散秘密情報を記憶する。例えば、分散情報生成装置100が生成したn個の分散秘密情報およびn個の分散分散秘密情報は、それぞれ記憶装置300−1〜300−nに記憶される。記憶装置300−1〜300−nは、例えば、サーバ装置のハードディスク装置や、USBメモリ等の記憶装置で実現される。
復元装置200は、記憶装置300−1〜300−nのうちk個の記憶装置が記憶する分散秘密情報に基づいて、多項式fを復元する。また、復元装置200は、記憶装置300−1〜300−nのうちk個の記憶装置が記憶する分散分散秘密情報に基づいて、f(t)を復元する。以下、復元した多項式fをf’と表記し、復元したf(t)をf’(t)と表記する場合がある。
復元装置200は、復元したf’(t)と、多項式f’に固定値tを入力した値とが等しくなる場合には、秘密情報を復元し、等しくならない場合には、不正があったと判断してその旨を示す情報を出力する。
分散情報生成装置100と記憶装置300−1〜300−n、および記憶装置300−1〜300−nと復元装置200は、例えば、記憶装置300−1〜300−nがサーバ装置のハードディスク装置である場合には、通信ネットワークを介して接続されてもよい。また、例えば、記憶装置300−1〜300−nがUSBメモリである場合には、USB接続される。
図2は、図1の分散情報生成装置100および記憶装置300−1〜300−nの構成例を示すブロック図である。分散情報生成装置100の構成例について、図2を用いて説明を行う。分散情報生成装置100は、秘密情報分散装置101と、分散秘密情報分散装置102とを含む。
分散情報生成装置100は、秘密情報用データ集合Sの元である秘密情報s、閾値を表すk、固定値tおよび分散情報数を表すnを入力し、分散秘密情報として分散秘密情報用データ集合BSの元を生成し、分散分散秘密情報として分散分散秘密情報用データ集合BBSの元を生成する。そして、記憶装置300−1〜300−nに対し、固定値tと異なり、且つ、互いに異なる第1乱数用データ集合RAの元と、互いに異なる第2乱数用データ集合RBの元と、分散秘密情報用データ集合BSの元と、分散分散秘密情報用データ集合BBSの元とを記憶させる。
なお、第1乱数用データ集合RAには、分散秘密情報用データ集合BSの部分集合を用い、第2乱数用データ集合RBには、分散分散秘密情報用データ集合BBSの部分集合を用いる。また、秘密情報s、閾値k、固定値tおよび分散情報数nは、例えば、ユーザ等によって入力装置から入力される。
秘密情報分散装置101は、集合Sの元s、閾値k、固定値tおよび分散情報数を表すnを入力する。また、秘密情報分散装置101は、記憶装置300−1〜300−nに対し、固定値tと異なり、且つ、互いに異なる第1乱数用データ集合RAの元を記憶させる。ここで、記憶装置300−i(i=1,・・・,n)が記憶する第1乱数用データ集合RAの元をrとする。
秘密情報分散装置101は、例えば、非特許文献1または非特許文献2に記載されている(k,n+1)閾値法を用いて、sを分散する分散秘密情報用データ集合BS上の多項式fを生成する。そして、多項式fに第1乱数用データ集合RAの元rを入力し、記憶装置300−iに分散秘密情報用データ集合BSの元f(r)を記憶させる。例えば、記憶装置300−1に対し、元f(r)を記憶させ、記憶装置300−2に対し、元f(r)を記憶させ、記憶装置300−nに対し、元f(r)を記憶させる。また、秘密情報分散装置101は、分散秘密情報分散装置102にf(t)を出力する。
なお、秘密情報分散装置101は、(k−1)次多項式fとして、例えば、係数や定数項に秘密情報sが埋め込まれた多項式fを生成する。
分散秘密情報分散装置102は、秘密情報分散装置101の出力f(t)、閾値kおよび分散情報数nを入力する。また、分散秘密情報分散装置102は、記憶装置300−1〜300−nに対し、互いに異なる第2乱数用データ集合RBの元を生成して記憶させる。ここで、記憶装置300−i(i=1,・・・,n)が記憶する第2乱数用データ集合RBの元をxとする。
分散秘密情報分散装置102は、例えば、非特許文献1または非特許文献2に記載されている(k,n+1)閾値法を用いて、分散秘密情報用データ集合BSの元であるf(t)を分散する分散分散秘密情報用データ集合BBS上の多項式gを生成する。そして、多項式gに第2乱数用データ集合RBの元xを入力し、記憶装置300−iに分散分散秘密情報用データ集合BBSの元g(x)を記憶させる。例えば、記憶装置300−1に対し、元g(x)を記憶させ、記憶装置300−2に対し、元g(x)を記憶させ、記憶装置300−nに対し、元g(x)を記憶させる。
図3は、復元装置200および記憶装置300−1〜300−nの構成例を示すブロック図である。復元装置200の構成例について、図3を用いて説明を行う。復元装置200は、多項式復元装置201と、分散秘密情報復元装置202と、不正検出装置203とを含む。
復元装置200は、固定値tおよび閾値kを入力する。また、記憶装置300−1〜300−nのうちのk機の記憶装置から、それぞれの記憶する第1乱数用データ集合RAの元と、第2乱数用データ集合RBの元と、分散秘密情報用データ集合BSの元と、分散分散秘密情報用データ集合BBSの元とを読み出す。そして、秘密情報用データ集合Sの元と分散秘密情報用データ集合BS上のk−1次多項式f、もしくは不正の検出を表す記号を出力する。
多項式復元装置201は、閾値kを入力し、記憶装置300−1〜300−nのうちのk機の記憶装置から、それぞれの記憶する第1乱数用データ集合RAの元と、分散秘密情報用データ集合BSの元とを読み出し、多項式用データ集合Vの元を出力する。
例えば、多項式復元装置201は、各記憶装置の第1乱数用データ集合RAの元および分散秘密情報用データ集合BSの元を代入したk個の連立方程式を生成して解を算出するなどの方法により、k−1次多項式fを求めて出力する。
分散秘密情報復元装置202は、閾値kを入力し、記憶装置300−1〜300−nのうちのk機の記憶装置から、第2乱数用データ集合RBの元と、分散分散秘密情報用データ集合BBSの元とを読み出し、分散秘密情報用データ集合BSの元を出力する。
例えば、分散秘密情報復元装置202は、各記憶装置の第2乱数用データ集合RBの元および分散分散秘密情報用データ集合BBSの元を代入したk個の連立方程式を解くなどの方法により、k−1次多項式gを求めて、分散秘密情報用データ集合BSの元を出力する。
ここで、分散秘密情報復元装置202が出力した分散秘密情報用データ集合BSの元をcとすると、第2乱数用データ集合RBの元および分散分散秘密情報用データ集合BBSの元が改竄されていない場合には、cは、秘密情報分散装置101が出力したf(t)と等しくなる。また、第1乱数用データ集合RAの元および分散秘密情報用データ集合BSの元が改竄されていない場合には、多項式復元装置201が出力した多項式fは、秘密情報分散装置101が生成した多項式fと等しくなる。したがって、第1乱数用データ集合RAの元、分散秘密情報用データ集合BSの元、第2乱数用データ集合RBの元および分散分散秘密情報用データ集合BBSの元が改竄されていない場合には、多項式復元装置201が出力した多項式fに固定値tを入力した値と、分散秘密情報復元装置202が出力した分散秘密情報用データ集合BSの元cとは、等しくなる。
不正検出装置203は、固定値tと、多項式復元装置201が出力した多項式用データ集合Vの元fと、分散秘密情報復元装置202が出力した分散秘密情報用データ集合BSの元cを入力する。そして、不正検出装置203は、f(t)=cを満たしているとき、秘密情報sとしてf(0)を出力し、チェック用データとしてfを出力する。また、f(t)=cを満たしていないとき、不正検出装置203は、不正の検出を表す記号を出力する。
なお、上記に示す実施の形態の構成は、以下に示すような復元装置200の構成を示している。多項式復元装置201は、秘密情報分散装置101が出力した第1の乱数と、第1の乱数を秘密情報分散装置101が生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力し、入力した第1の乱数をrないしrとし、rないしrを多項式Fに入力した出力をそれぞれvないしvとして、rないしrが入力されたときそれぞれvないしvを出力する(k−1)次多項式F’を生成する。分散秘密情報復元装置202は、分散秘密情報分散装置102が出力した第2の乱数と、第2の乱数を分散秘密情報分散装置102が生成した(k−1)次多項式Gに入力したときの出力との対をk組分入力し、入力した第2の乱数をxないしxとし、xないしxを多項式Gに入力した出力をそれぞれwないしwとして、xないしxが入力されたときそれぞれwないしwを出力する(k−1)次多項式G’を生成する。
記憶装置300−i(i=1,・・・,n)は、第1乱数用データ集合RAの元を記憶する第1乱数記憶装置301−iと、分散秘密情報データ集合BSの元を記憶する分散秘密情報記憶装置302−iと、第2乱数用データ集合RBの元を記憶する第2乱数記憶装置303−iと、分散分散秘密情報データ集合BBSの元を記憶する分散分散秘密情報記憶装置304−iとを備える。なお、図2および図3には、n機の記憶装置300−1〜300−nを示す。
本発明の一実施の形態において、復元結果検証装置は、ある分散情報を持っている参加者が、自分が参加しなかった復元処理の正しさを検証するために用いられる装置である。例えば、復元結果検証装置を用いて、k人の不正者が、自分たちの分散情報を使って復元処理を行い、復元結果を偽るという不正の有無を検証することができる。
図4は、復元結果検証装置400および記憶装置300の構成例を示すブロック図である。復元結果検証装置400は、例えば、ある分散情報を持っている参加者が、自分が参加しなかった復元処理の正しさを検証しようとする場合に使用される。復元結果検証装置400は、既に行われた復元処理における復元装置200の出力(図3の不正検出装置203からの出力データ1)と、その復元処理に用いられなかった分散秘密情報とを入力して、検証を行う。
以下の説明では、記憶装置300が、復元処理に用いられなかった分散情報を記憶している場合を例にして説明する。記憶装置300は、第1乱数用データ集合RAの元rを記憶する第1乱数記憶装置301と、分散秘密情報データ集合BSの元Vを記憶する分散秘密情報記憶装置302と、第2乱数用データ集合RBの元を記憶する第2乱数記憶装置303と、分散分散秘密情報データ集合BBSの元を記憶する分散分散秘密情報記憶装置304とを備える。
復元結果検証装置400は、記憶装置300から、第1乱数用データ集合RAの元rと、分散秘密情報用データ集合BSの元Vとを読み出す。また、復元結果検証装置400は、復元装置200が出力した多項式用データ集合Vの元fと、秘密情報用データ集合の元sとを入力する。
ここで、多項式用データ集合Vの元fは、例えば、ある分散情報を持っている参加者が参加しなかった復元処理における出力である。また、例えば、記憶装置300から読み出す第1乱数用データ集合RAの元rおよび分散秘密情報用データ集合BSの元Vは、当該参加者が持っている分散情報であって、改竄されていない情報である。したがって、復元装置200から入力した多項式用データ集合Vの元fが正しければ、f(r)=Vを満たす。
復元結果検証装置400は、f(r)=Vを満たしているとき、秘密情報用データ集合の元sを出力し、満たしていないとき不正の検出を表す記号を出力する。
なお、図2〜図4に示した分散情報生成装置100、復元装置200および復元結果検証装置400は、例えば、論理回路などから構成されるLSI(large scale integration )やDSP(digital signal processor)等の半導体集積回路によって実現してもよい。
また、分散情報生成装置100、復元装置200および復元結果検証装置400は、コンピュータ(例えば、パーソナルコンピュータ)によって実現してもよい。図5は、コンピュータの構成例を示すブロック図である。図5に示すコンピュータは、プログラムにしたがって所定の処理を実行する処理装置10と、処理装置に対してコマンドや情報などを入力するための入力装置20と、処理装置10の処理結果をモニタするための出力装置30とを備える。
図5に示す処理装置10は、CPU11と、主記憶装置12と、記録媒体13と、データ蓄積装置14と、メモリ制御インターフェース部15と、I/Oインターフェース部16とを有し、それぞれがバス18を介して接続される。
主記憶装置12は、CPU11の処理に必要な情報を一時的に記憶する。記録媒体13は、後述する分散情報生成装置100、復元装置200、復元結果検証装置400としての処理をCPU11に実行させるためのプログラムを記録する。データ蓄積装置14は、秘密情報や、閾値、分散情報数、固定値などを格納する。メモリ制御インターフェース部15は、主記憶装置12、記録媒体13及びデータ蓄積装置14のデータ転送を制御する。I/Oインターフェース部16は、入力装置20及び出力装置30とのインターフェース装置である。
なお、データ蓄積装置14は、処理装置10内にある必要はなく、処理装置10から独立して備えられてもよい。また、データ蓄積装置14は、第1乱数記憶装置301、分散秘密情報記憶装置302、第2乱数記憶装置303および分散分散秘密情報記憶装置304を備える記憶装置300としてもよい。
処理装置10は、記録媒体13に記録されたプログラムにしたがって、後述する分散情報生成装置100または復元装置200としての機能を実現する。記録媒体13は、磁気ディスク、半導体メモリ、光ディスクあるいはその他の記録媒体であってもよい。
次に、本発明の実施の形態の動作を、図6、図7、図8に示すフローチャートに従って説明する。
まず、分散情報生成装置100の動作について説明する。図6は、本実施の形態における分散情報生成装置100の動作を示すフローチャートである。
はじめに、分散情報生成装置100は、秘密情報用データ集合Sの元である秘密情報sと、閾値を表すkと、固定値tと、分散情報数を表すnとを入力する(ステップS11)。
次に、分散情報生成装置100は、秘密情報分散装置101に、閾値kと、分散情報数nと、秘密情報sと、固定値tとを入力し、記憶装置300−1〜300−nの第1乱数記憶装置301−1〜301−nに対し、互いに異なる第1乱数用データ集合RAの元を記憶させる(ステップS12)。
次に、秘密情報分散装置101は、kを閾値として、第1乱数記憶装置301−1〜301−nが記憶するデータ(第1の乱数)に対する秘密情報sの分散情報(分散秘密情報)と、固定値tに対する秘密情報sの分散情報とを生成する。秘密情報分散装置101は、第1乱数記憶装置301−1〜301−nが記憶するデータに対する秘密情報sの分散情報を、記憶装置300−1〜300−nの分散秘密情報記憶装置302−1〜302−nに記憶させる。また、秘密情報分散装置101は、固定値tに対する秘密情報sの分散情報cを分散秘密情報分散装置102に出力する(ステップS13)。
次に、分散情報生成装置100は、分散秘密情報分散装置102に、閾値kと、分散情報数nと、分散情報cとを入力し、記憶装置300−1〜300−nの第2乱数記憶装置303−1〜303−nに対し、互いに異なる第2乱数用データ集合RBの元を記憶させる(ステップS14)。
次に、分散秘密情報分散装置102は、kを閾値として、第2乱数記憶装置303−1〜303−nが記憶するデータ(第2の乱数)に対するcの分散情報(分散分散秘密情報)を生成する。分散秘密情報分散装置102は、第2乱数記憶装置303−1〜303−nが記憶するデータに対する分散情報cの分散情報を、記憶装置300−1〜300−nの分散分散秘密情報記憶装置304−1〜304−nに記憶させ(ステップS15)、処理を終了する。
次に、復元装置200の動作について説明する。図7は、本実施の形態における復元装置200の動作を示すフローチャートである。
復元装置200に、閾値を表すkと、固定値tとが入力される(ステップS21)。
復元装置200は、k機の記憶装置300−i〜300−iの記憶するデータを読み出す(ステップS22)。なお、記憶装置300−i〜300−iは、例えば、記憶装置300−i(i=1,・・・,n)のうちのk機を示す。
次に、復元装置200は、多項式復元装置201に、データを読み出した記憶装置300−i〜300−iの第1乱数記憶装置301−i〜301−iに記憶されていたデータと、データを読み出した記憶装置300−i〜300−iの分散秘密情報記憶装置302−i〜302−iに記憶されていたデータと、閾値kとを入力する(ステップS23)。
次に、多項式復元装置201は、秘密情報分散装置101の分散符号化方法に対応する復元方法を用いて、多項式用データ集合Vの元fを復元し、出力する(ステップS24)。
次に、復元装置200は、分散秘密情報復元装置202に、データを読み出した記憶装置300−i〜300−iの第2乱数記憶装置303−i〜303−iに記憶されていたデータと、データを読み出した記憶装置300−i〜300−iの分散分散秘密情報記憶装置304−i〜304−iに記憶されていたデータと、閾値kとを入力する(ステップS25)。
次に、分散秘密情報復元装置202は、分散秘密情報分散装置102の分散符号化方法に対応する復元方法を用い、復元計算を行い、分散秘密情報用データ集合BSの元cを復元し、出力する(ステップS26)。
次に、復元装置200は、不正検出装置203に、多項式用データ集合Vの元f、分散秘密情報用データ集合BSの元cおよび固定値tを入力し(ステップS27)、f(t)=cを満たすか否かをチェックする(ステップS28)。f(t)=cが成立していれば(ステップS28のYES分岐)、不正検出装置203は、f(0)とfとを出力し(ステップS29)、f(t)=cが成立していない場合(ステップS28のNO分岐)、不正の検出を表す記号を出力して(ステップS30)、処理を終了する。
次に、復元結果検証装置400の動作について説明する。図8は、本実施の形態における復元結果検証装置400の動作を示すフローチャートである。
最初に、復元結果検証装置400に、多項式用データ集合Vの元fが入力される(ステップS31)。
次に、復元結果検証装置400は、1機の記憶装置300が記憶するデータを読み出す(ステップS32)。例えば、復元結果検証装置400は、第1乱数記憶装置301が記憶する第1乱数用データ集合RAの元rと、分散秘密情報記憶装置302が記憶する分散秘密情報用データ集合BSの元Vとを読み出す。
次に、復元結果検証装置400は、データを読み出した記憶装置300の第1乱数記憶装置301に記憶されていたデータrと、データを読み出した記憶装置300の分散秘密情報記憶装置302に記憶されていたデータVが、f(r)=Vを満たしているかチェックする(ステップS33)。f(r)=Vが成立していれば(ステップS33のYES分岐)、復元結果検証装置400は、f(0)を出力し(ステップS34)、f(r)=Vが成立していない場合(ステップS33のNO分岐)、不正の検出を表す記号を出力して(ステップS35)、処理を終了する。
ここで、既存の方式に比べ、本発明の実施の形態の方が、より効率的である根拠を説明する。秘密情報は、0,・・・,p−1のうちいずれかの値であるものとする。非特許文献3に記載された方式は、第1に、秘密情報を定数項に持つmod q(q>p)上のk−1次多項式fを生成し、第2に、分散情報ごとにランダムな値を割り振り(r,・・・,rとする)、第3に、(r,f(r)),・・・,(r,f(r))を分散情報とする方式である。非特許文献3に記載された方式では、k個以上の分散情報よりfを復元し、fの定数項が、0,・・・,p−1のうちのいずれかであれば、不正はなかったものとする。
非特許文献3に記載された方式において、(r,f(r)),・・・,(rn−1,f(rn−1))を知っている不正者たちが、(r,f(r))を持っている人をだまそうとしている(不正者たちは、(r,f(r))がわからない)状況を考える。
ここで、不正者たちが、
(r,f(r)),・・・,(rk−1,f(rk−1))を、
(r’,f’),・・・,(rk−1’,fk−1’)
に改竄して復元装置に入力した場合を考える。
(r’,f’),・・・,(rk−1’,fk−1’),(r,f(r))より復元された多項式の定数項が、分散された秘密情報以外の0,・・・,p−1のいずれかであれば、不正は成功である。
ある秘密情報と異なる0,・・・,p−1のいずれかの値をs’とし、(r’,f’),・・・,(rk−1’,fk−1’),(0,s’)より復元された多項式をf’とする。f’は、fとは異なるk−1次多項式であるので、fとf’との交点は、高々k−1点である。(r,f(r))がこのf’上の点であれば、(r,f(r))を持っている人が、(r’,f’),・・・,(rk−1’,fk−1’),(r,f(r))を用いて秘密情報を復元すると、s’が復元される。
本来の秘密情報以外の値はp−1種類あり、それぞれの値についてf’が定まるので、p−1種類のf’が定まる。不正者は、すべてのf’とfとの交点がすべて異なるように(r’,f’),・・・,(rk−1’,fk−1’)を生成すると、rが(p−1)(k−1)通りの値のうちのどれかである場合に、不正は成功してしまう。
が0,・・・,Rから選ばれるものとすると、rが一様にランダムに選ばれているとき、(p−1)(k−1)/Rが不正の成功する確率である。つまり、この値が十分小さくなるような大きなRを選ばなくてはならない。不正の成功率をε程度にしたい場合、Rを((p−1)(k−1))/ε程度に設定する必要がある。
Rを((p−1)(k−1))/ε以上に設定するためには、qを((p−1)(k−1))/ε以上に設定する必要がある。ここで、rとf(r)が分散情報であって、rおよびf(r)のサイズはそれぞれqである。したがって、分散情報のサイズは、((p−1)(k−1)/ε)となる。
これに対して、本発明の実施の形態では、乱数の一方を定数にした方式は、
第1に、秘密情報を定数項に持つGF(p)上のk−1次多項式fを生成し、
第2に、分散情報ごとにランダムな値を割り振り(r,・・・,rとし、tとは異なるものとする)、
第3に、f(t)を定数項としたGF(p)上のk−1次多項式gを生成し、
第4に、(r,f(r),g(1)),・・・,(r,f(r),g(n))を分散情報とする方式である。この方式は、k個以上の分散情報よりfとgとを復元し、f(t)=g(0)を満たすかをチェックし、満たされていれば不正はなかったものとする。
この方式において、(r,f(r),g(1)),・・・,(rn−1,f(rn−1),g(n−1))を知っている不正者たちが、(r,f(r),g(n))を持っている人をだまそうとしている状況を考える。g不正者たちは、r,f(r)はわからないが、g(1),・・・,g(k)などからgが得られ、gへの入力もわかっているため、g(n)はわかっている。
不正者たちが、
(ri_1,f(ri_1),g(i)),・・・,(ri_(k−1),f(ri_(k−1)),g(ik−1))を、
(ri_1’,fi_1’,gi_1’),・・・,(ri_(k−1)’,fi_(k−1)’,gi_(k−1)’)
に改ざんして復元装置に入力した場合を考える。
(ri_1’,fi_1’),・・・,(ri_(k−1)’,fi_(k−1)’),(r,f(r))よりf’を復元し、
(i,g(i)’),・・・,(ik−1,g(ik−1)’),(n,g(n))よりg’を復元し、
f’(t)=g’(0)であれば不正は成功である。
このチェックは、
(ri_1’,fi_1’),・・・,(ri_(k−1)’,fi_(k−1)’),(t,g’(0)),(r,f(r))がすべて同じ多項式上の点であるか否かをチェックしているに他ならない。
f’は、(ri_1’,fi_1’),・・・,(ri_(k−1)’,fi_(k−1)’),(t,g’(0))から復元される1種類の多項式とみなすことができる。また、f’(0)は、秘密情報f(0)と異なる値なので、f(0)とf(0)’とは異なる。よって、fとf’とは、常に違う多項式である。そのため、fとf’とは、高々k−1点しか交点を持たない。よって、rが0,・・・,Rから選ばれるものとすると、(k−1)/Rが不正の成功する確率となる。
ε=(k−1)/Rとすると、(r,f(r),g(i))が分散情報であって、rのサイズがRであり、f(r)およびg(i)のサイズがpであることから、分散情報のサイズは、おおよそp/εとなる。よって、本発明の実施の形態では、従来と比較して、εだけ分散情報のサイズを小さくすることができる。
不正者が閾値数個以上の分散情報を持っていても不正の検出が可能可能な既存の方式では、1つの多項式を用いた方式が知られていた。この方式では、一つの多項式で秘密の分散と不正の検出の機能をまかなうため、非常に大きい有限体を用意する必要があった。本発明の一実施の形態では、秘密情報に関する2つの多項式を用意し、お互いをチェックしあう方法を採用して、それぞれ有限体のサイズを抑え、既存の方式に比べて分散情報のサイズの小さな方式を構成している。なお、本発明の一実施の形態の方式を用いれば、自身が復元処理に参加しなかった場合でも、復元処理結果を検証することもできる。
なお、本実施の形態では、(k,n)閾値法を例示して説明したが、線形秘密分散法であれば、(k,n)閾値法に限られない。
以下、図2、図3、図4を参照して、本の第1の実施例について説明する。
以下、秘密情報分散装置101が、定数項が秘密情報sである(k−1)次多項式を生成する場合について説明する。実施例1では、前記実施の形態における秘密情報のデータ集合にGF(p)を用いる。
GF(p)は、素数または素数のべき乗pに対する有限体であり、有限体上の加算を+、減算を−、除算を/、べき乗算を^で表す。なお、閾値k、分散情報数nおよび素数または素数のべき乗pは、k≦n≦p−1を満足するものとする。また、固定値tとして、0≦t≦p−1を満たす値を用いる。
なお、秘密情報分散装置101および分散秘密情報分散装置102が、非特許文献1記載の(k,n)閾値法を用いて、秘密情報を分散符号化する場合を例にして説明する。また、多項式復元装置201および分散秘密情報復元装置202が、非特許文献1記載の(k,n)閾値法を用いて、秘密情報を復元する場合を例にして説明する。
まず、分散情報生成装置100の第1の実施例について説明する。
分散情報生成装置100には、閾値k、分散情報数nおよび秘密情報sが入力される。
はじめに、分散情報生成装置100は、秘密情報分散装置101に、閾値k、分散情報数n、秘密情報sおよび固定値tを入力する。
秘密情報分散装置101は、tと異なり且つ互いに異なるr,r,・・・,rを、1,2,・・・,R(R≦p−1)からランダムに選び、記憶装置300−i(i=1,・・・,n)の第1乱数記憶装置301−iにrを記憶させる。例えば、
記憶装置300−1の第1乱数記憶装置301−1にrを記憶させ、
記憶装置300−2の第1乱数記憶装置301−2にrを記憶させ、
記憶装置300−nの第1乱数記憶装置301−nにrを記憶させる。そして、GF(p)上の定数項がsであるk−1次多項式をランダムに生成する。これを、f1(x)と記す。なお、f1(x)は、本発明の実施の形態における多項式fに相当する。
秘密情報分散装置101は、記憶装置300−i(i=1,・・・,n)の分散秘密情報記憶装置302−iにf1(ri)を記憶させる。例えば、
記憶装置300−1の分散秘密情報記憶装置302−1にf1(r1)を記憶させ、
記憶装置300−2の分散秘密情報記憶装置302−2にf1(r2)を記憶させ、
記憶装置300−nの分散秘密情報記憶装置302−nにf1(rn)を記憶させる。また、秘密情報分散装置101は、c=f1(t)を出力する。
次に、分散情報生成装置100は、分散秘密情報分散装置102に、閾値k、分散情報数nおよび秘密情報分散装置101の出力cを入力する。
分散秘密情報分散装置102は、互いに異なるx,x,・・・,xを、1,2,・・・,R(R≦p−1)からランダムに選び、記憶装置300−i(i=1,・・・,n)の第2乱数記憶装置303−iにxを記憶させる。例えば、
記憶装置300−1の第2乱数記憶装置303−1にxを記憶させ、
記憶装置300−2の第2乱数記憶装置303−2にxを記憶させ、
記憶装置300−nの第2乱数記憶装置303−nにxを記憶させる。秘密情報分散装置102は、GF(p)上の定数項がcであるk−1次多項式をランダムに生成する。これを、f2(x)と記す。なお、f2(x)は、前記実施の形態における多項式gに相当する。
秘密情報分散装置102は、記憶装置300−i(i=1,・・・,n)の分散分散秘密情報記憶装置304−iにf2(xi)を記憶させる。
例えば、記憶装置300−1の分散分散秘密情報記憶装置304−1にf2(x1)を記憶させ、
記憶装置300−2の分散分散秘密情報記憶装置304−2にf2(x2)を記憶させ、
記憶装置300−nの分散分散秘密情報記憶装置304−nにf2(xn)を記憶させる。
次に、復元装置200の実施例について説明する。
復元装置200には、閾値kおよび固定値tが入力される。復元装置200は、多項式復元装置201に閾値kを入力する。
多項式復元装置201は、記憶装置300−1〜300−nのうちのk機の記憶装置300−j,記憶装置300−j,・・・,記憶装置300−jから、それぞれの分散秘密情報記憶装置302−j,302−j,・・・,302−jが記憶する値を読み出す。ここで、分散秘密情報記憶装置302−j,302−j,・・・,302−jが記憶する値を、それぞれbs1j_1,bs1j_2,・・・,bs1j_kと記す。
次に、多項式復元装置201は、記憶装置300−j,300−j,・・・,300−jから、それぞれの第1乱数記憶装置301−j,301−j,・・・,301−jの記憶する値を読み出す。ここで、第1乱数記憶装置301−j,301−j,・・・,301−jが記憶する値を、それぞれrj_1,rj_2,・・・,rj_kと記す。
次に、多項式復元装置201は、座標(rj_1,bs1j_1),(rj_2,bs1j_2),・・・,(rj_k,bs1j_k)を通るGF(p)上のk−1次の多項式gs_1(x)を出力する。具体的には、連立方程式を解くなどの方法によりgs_1(x)を計算する。なお、gs_1(x)は、実施の形態における多項式用データ集合Vの元fまたは多項式f’に相当する。
次に、復元装置200は、分散秘密情報復元装置202に閾値kを入力する。
分散秘密情報復元装置202は、記憶装置300−j,300−j,・・・,300−jから、それぞれの分散分散秘密情報記憶装置304−j,304−j,・・・,304−jが記憶する値を読み出す。ここで、分散分散秘密情報記憶装置304−j,304−j,・・・,304−jが記憶する値を、それぞれbs2j_1,bs2j_2,・・・,bs2j_kと記す。
次に、分散秘密情報復元装置202は、記憶装置300−j,300−j,・・・,300−jから、それぞれの第2乱数記憶装置303−j,303−j,・・・,303−jが記憶する値を読み出す。ここで、第2乱数記憶装置303−j,303−j,・・・,303−jが記憶する値を、それぞれxj_1,xj_2,・・・,xj_kと記す。
次に、分散秘密情報復元装置202は、座標(xj_1,bs2j_1),(xj_2,bs2j2),・・・,(xj_k,bs2j_k)を通るGF(p)上のk−1次の多項式gs_2(x)の、gs_2(0)を出力する。具体的には、連立方程式を解く、ラグランジュ補間を用いるなどの方法によりgs_2(0)を計算する。なお、gs_2(x)は、実施の形態における多項式gまたはg’に相当する。
次に、復元装置200は、不正検出装置203に、gs_1(x)およびgs_2(0)を入力する。不正検出装置203は、gs_1(t)=gs_2(0)を満足するかをチェックする。満足している場合、gs_1(0)およびgs_1(x)を出力する。満足していない場合、不正を検知したことを示す記号として⊥を出力する。
次に、復元結果検証装置400の実施例について説明する。
復元結果検証装置400には、GF(p)上のk−1次の多項式g(x)が入力される。ここで、多項式g(x)は、例えば、ある復元処理における出力である。
復元結果検証装置400は、記憶装置300−iより、第1乱数記憶装置301−iの記憶する値rと、分散秘密情報記憶装置302−iが記憶する値Vを読み出す。次に、g(r)=Vを満たすかチェックし、満たしている場合、g(0)を出力し、満たしていない場合、不正の検出を表す記号を出力する。なお、記憶装置300−iは、例えば、記憶装置300−1〜300−nのうち、復元処理に用いられなかった分散情報が記憶されている1台の記憶装置である。
実施例1において、不正者が知る記憶装置300が記憶するデータの数をa、秘密情報のサイズをpとすると、分散情報のサイズはp×R×Rになり、不正の検出率は1−(k−1)/(R1−a)になる。
秘密情報のサイズをs、不正の検出率を(1−ε)と記すと、分散情報のサイズは、s×((k−1)/ε+t)×Rと表すことができる。
非特許文献3に記載された方式の分散情報のサイズは、((s−1)(k−1)/ε+k)である。k=2、t=2、p=280、ε=1/280、R=210として、比較する。
実施例1における分散情報のサイズは、およそ、2250であって、非特許文献1に記載された方式の分散情報のサイズは、およそ、2320である。実施例1における分散情報のサイズが、非特許文献1に記載された方式に比べ、分散情報のサイズが小さいことがわかる。
また、運用の形態によっては、自身が参加していない復元処理結果の検証を必要としないケースも考えられる。この場合、復元結果検証装置400と、復元装置200の出力する多項式fを取り除くことで、自身が参加している復元処理の中に不正なシェアがなかったかどうかを判定するための秘密情報分散システムを構成できる。また、Rのサイズは安全性には関係しない。そこで、運用の形態によっては記憶装置に振られたID番号を用いることができ、その場合、Rの分の分散情報のサイズを小さくできる。
以下、図2、図3、図4を参照して、本実施の形態の第2の実施例について説明する。以下、秘密情報分散装置101が、秘密情報sを定数項からL−1次までの係数を連結した値に埋め込んだ(k−1)次多項式を生成する場合について説明する。実施例2では、実施の形態における秘密情報のデータ集合にGF(p)を用いる。
GF(p)は、素数または素数のべき乗pに対する有限体であり、有限体上の加算を+、減算を−、除算を/、べき乗算を^で表す。GF(p)の要素sは、GF(p)の要素のL個組で、(s,s,s,・・・,sL−1)とあらわすことができる。
なお、閾値k、分散情報数nおよび素数または素数のべき乗pは、k≦n≦p−1を満足するものとする。また、固定値tとして、0≦t≦p−1を満たす値を用いる。
なお、秘密情報分散装置101および分散秘密情報分散装置102が、非特許文献1,2記載の(k,n)閾値法を用いて、秘密情報を分散符号化する場合を例にして説明する。また、多項式復元装置201および分散秘密情報復元装置202が、非特許文献1,2記載の(k,n)閾値法を用いて、秘密情報を復元する場合を例にして説明する。
まず、分散情報生成装置100の第2の実施例について説明する。
分散情報生成装置100には、閾値k、分散情報数nおよび秘密情報sが入力される。
はじめに、分散情報生成装置100は、秘密情報分散装置101に、閾値k、分散情報数n、秘密情報sおよび固定値tを入力する。ここで、秘密情報分散装置101は、k−1以下であるパラメータLを入力してもよい。
秘密情報分散装置101は、tと異なり且つ互いに異なるr,r,・・・,rを、1,2,・・・,R(R≦p−1)からランダムに選び、記憶装置300−i(i=1,・・・,n)の第1乱数記憶装置301−iにrを記憶させる。例えば、記憶装置300−1の第1乱数記憶装置301−1にrを記憶させ、記憶装置300−2の第1乱数記憶装置301−2にrを記憶させ、記憶装置300−nの第1乱数記憶装置301−nにrを記憶させる。そして、sを(s,・・・,sL−1)として、GF(p)上の多項式の係数に以下のように埋め込んだk−1次多項式fをランダムに生成する。
1(x)=s+s×x+・・・+sL−1×x(L−1)+a×x+・・・+ak−1×x(k−1)・・・式(1)
式(1)を、f1(x)と記す。
秘密情報分散装置101は、記憶装置300−i(i=1,・・・,n)の分散秘密情報記憶装置302−iにf1(ri)を記憶させる。例えば、記憶装置300−1の分散秘密情報記憶装置302−1にf1(r1)を記憶させ、記憶装置300−2の分散秘密情報記憶装置302−2にf1(r2)を記憶させ、記憶装置300−nの分散秘密情報記憶装置302−nにf1(rn)を記憶させる。また、秘密情報分散装置101は、c=f1(t)を出力する。
次に、分散情報生成装置100は、分散秘密情報分散装置102に、閾値k、分散情報数nおよび秘密情報分散装置101の出力cを入力する。
分散秘密情報分散装置102は、互いに異なるx,x,・・・,xを、1,2,・・・,R(R≦p−1)からランダムに選び、記憶装置300−i(i=1,・・・,n)の第2乱数記憶装置303−iにxを記憶させる。例えば、記憶装置300−1の第2乱数記憶装置303−1にxを記憶させ、記憶装置300−2の第2乱数記憶装置303−2にxを記憶させ、記憶装置300−nの第2乱数記憶装置303−nにxを記憶させる。
第2秘密情報分散装置102は、GF(p)上の定数項がcであるk−1次多項式をランダムに生成する。これを、f2(x)と記す。そして、第2秘密情報分散装置102は、記憶装置300−i(i=1,・・・,n)の分散分散秘密情報記憶装置304−iにf2(xi)を記憶させる。例えば、
記憶装置300−1の分散分散秘密情報記憶装置304−1にf2(x1)を記憶させ、
記憶装置300−2の分散分散秘密情報記憶装置304−2にf2(x2)を記憶させ、
記憶装置300−nの分散分散秘密情報記憶装置304−nにf2(xn)を記憶させる。
次に、復元装置200の実施例について説明する。
復元装置200には、閾値kおよび固定値tが入力される。復元装置200は、多項式復元装置201に閾値kを入力する。
多項式復元装置201は、記憶装置300−1〜300−nのうちのk機の記憶装置301−j,記憶装置301−j,・・・,記憶装置300−jから、それぞれの分散秘密情報記憶装置302−j,302−j,・・・,302−jが記憶する値を読み出す。ここで、分散秘密情報記憶装置302−j,302−j,・・・,302−jが記憶する値を、bs1j_1,bs1j_2,・・・,bs1j_kと記す。
次に、多項式復元装置201は、記憶装置300−j,300−j,・・・,300−jから、それぞれの第1乱数記憶装置301−j,301−j,・・・,301−jの記憶する値を読み出す。ここで、第1乱数記憶装置301−j,301−j,・・・,301−jが記憶する値を、それぞれrj_1,rj_2,・・・,rj_kと記す。
次に、多項式復元装置201は、座標(rj_1,bs1j_1),(rj_2,bs1j_2),・・・,(rj_k,bs1j_k)を通るGF(p)上のk−1次の多項式gs_1(x)を出力する。具体的には、連立方程式を解くなどの方法によりgs_1(x)を計算する。
次に、復元装置200は、分散秘密情報復元装置202に閾値kを入力する。
分散秘密情報復元装置202は、記憶装置300−j,300−j,・・・,300−jから、それぞれの分散分散秘密情報記憶装置304−j,304−j,・・・,304−jが記憶する値を読み出す。ここで、分散分散秘密情報記憶装置304−j,304−j,・・・,304−jが記憶する値を、それぞれbs2j_1,bs2j_2,・・・,bs2j_kと記す。
次に、分散秘密情報復元装置202は、記憶装置300−j,300−j,・・・,300−jから、それぞれの第2乱数記憶装置303−j,303−j,・・・,303−jが記憶する値を読み出す。ここで、第2乱数記憶装置303−j,303−j,・・・,303−jが記憶する値を、それぞれxj_1,xj_2,・・・,xj_kと記す。
次に、分散秘密情報復元装置202は、座標(xj_1,bs2j_1),(xj_2,bs2j_2),・・・,(xj_k,bs2j_k)を通るGF(p)上のk−1次の多項式gs_2(x)の、gs_2(0)を出力する。具体的には、連立方程式を解く、ラグランジュ補間を用いるなどの方法によりgs_2(0)を計算する。
次に、復元装置200は、不正検知装置203に、gs_1(x)およびgs_2(0)を入力する。不正検出装置203は、gs_1(t)=gs_2(0)を満足するかをチェックする。満足している場合、gs_1の定数項からL−1次の項までの係数(s,・・・,sL−1)と、gs_1(x)とを出力する。満足していない場合、不正を検知したことを示す記号として⊥を出力する。
次に、復元結果検証装置400の実施例について説明する。
復元結果検証装置400には、GF(p)上のk−1次の多項式g(x)が入力される。ここで、多項式g(x)は、例えば、ある復元処理における出力である。
復元結果検証装置400は、記憶装置300−iより、第1乱数記憶装置301−iの記憶する値rと、分散秘密情報記憶装置302−iの記憶する値Vを読み出す。次に、g(r)=Vを満たすかチェックし、満たしている場合、gの定数項からL−1次の項までの係数(s,・・・,sL−1)を出力し、満たしていない場合、不正の検出を表す記号を出力する。
実施例2において、不正者が知る記憶装置300が記憶するデータの数をa、秘密情報のサイズをpとすると、分散情報のサイズはp×R×Rになり、不正の検出率は1−(k−1)/(R1−a)になる。
k=2、t=2、p=280、ε=1/280、R=210とすると、実施例1における分散情報のサイズは、およそ、2250である。
実施例2において、k=2、t=2、p=2160、ε=1/280、R=210,L=2とすると、およそ、2250である。実施例1および非特許文献1に記載された方式に比べ、分散情報のサイズが小さいことがわかる。
しかし、閾値に満たない分散情報から秘密情報に関する情報が漏れるという性質がある。実施例2においても、運用の形態によっては、自身が参加していない復元処理結果の検証を必要としないケースも考えられる。この場合、復元結果検証装置400と、復元装置200の出力する多項式fを取り除くことで、自身が参加している復元処理の中に不正なシェアがなかったかどうかを判定するための秘密情報分散システムを構成できる。また、Rのサイズは安全性には関係しない。そこで、運用の形態によっては記憶装置に振られたID番号を用いることができ、その場合、Rの分の分散情報のサイズを小さくすることができる。
秘密鍵などの機密情報の分散管理に利用できる。例えば、個人のコンピュータで作成した分散情報の一部をサーバなどにアップロードし、一部をUSBメモリに入れて持ち歩く状況を考える。サーバの情報だけが盗難されても、USBメモリに入った情報だけが盗難されても、一切秘密鍵に関する情報を漏洩しないように分散することができるので、機密情報を安全に管理しながら利用することができる。
本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。

Claims (34)

  1. 秘密情報を分散する分散情報生成装置であって、
    秘密情報分散装置と、
    分散秘密情報分散装置と、
    秘密情報s、閾値k、分散情報数nおよび所定の固定値tを入力する分散入力手段とを備え、
    前記秘密情報分散装置は、
    固定値tと異なり、かつ互いに異なるn個の第1の乱数を生成して出力する第1乱数生成装置と、
    秘密情報sを埋め込んで(k−1)次多項式Fを生成する第1分散多項式生成装置と、 多項式Fに前記各第1の乱数をそれぞれ入力して値を出力するとともに、多項式Fに固定値tを入力して値を出力する分散情報出力装置とを含み、
    前記分散秘密情報分散装置は、
    互いに異なるn個の第2の乱数を生成して出力する第2乱数生成装置と、
    前記分散情報出力装置の出力であって、多項式Fに固定値tを入力したときの出力を埋め込んで(k−1)次多項式Gを生成する第2分散多項式生成装置と、
    多項式Gに第2の乱数をそれぞれ入力して値を出力する分散分散情報出力装置とを含む ことを特徴とする分散情報生成装置。
  2. 前記分散入力手段は、k−1以下のパラメータLを入力し、
    前記第1分散多項式生成装置は、秘密情報sを定数項から(L−1)次までの係数を連結した値に埋め込んで多項式Fを生成し、
    前記第2分散多項式生成装置は、多項式Fに固定値tを入力したときの出力を定数項とする多項式Gを生成する
    請求項1記載の分散情報生成装置。
  3. 前記第1分散多項式生成装置は、前記パラメータLが1の場合に、秘密情報sを定数項にだけ埋め込んで多項式Fを生成する請求項2記載の分散情報生成装置。
  4. 前記第1乱数生成装置は、第1の乱数として、固定値tと異なり、かつ互いに異なるn個の定数を生成して出力し、または、前記第2乱数生成装置は、第2の乱数として、互いに異なるn個の定数を生成して出力する請求項1から請求項3のうちのいずれか1項に記載の分散情報生成装置。
  5. 前記第1乱数生成装置が出力した第1の乱数と、前記分散情報出力装置が出力した値であって多項式Fに第1の乱数を入力したときの出力とを対応付けて記憶するとともに、前記第2乱数生成装置が出力した第2の乱数と、前記分散分散情報出力装置が出力した値であって多項式Gに第2の乱数を入力したときの出力とを対応付けて記憶する記憶装置を備えた請求項1から請求項4のうちのいずれか1項に記載の分散情報生成装置。
  6. 秘密情報を復元する復元装置が出力した値を検証する復元結果検証装置であって、
    前記復元装置が出力した(k−1)次多項式fを入力し、請求項1から請求項5のうちのいずれか1項に記載の分散情報生成装置の出力を格納する記憶装置から、請求項1から請求項5のうちのいずれか1項に記載の秘密情報分散装置が出力した第1の乱数rと、請求項1から請求項5のうちのいずれか1項に記載の秘密情報分散装置が生成した多項式Fに第1の乱数rを入力したときの出力vとの対を入力し、多項式fに第1の乱数rを入力したときの出力と入力した値vとが等しい場合に、不正が検出されなかったことを示す情報を出力し、等しくない場合に、不正の検出を示す情報を出力する
    ことを特徴とする復元結果検証装置。
  7. 秘密情報分散装置及び分散秘密情報分散装置を含む分散情報生成装置による秘密情報を分散する分散情報生成方法であって、
    前記分散情報生成装置が、秘密情報s、閾値k、分散情報数nおよび所定の固定値tを入力する分散入力ステップと、
    前記秘密情報分散装置による秘密情報分散ステップと、
    前記分散秘密情報分散装置による分散秘密情報分散ステップとを含み、
    前記秘密情報分散ステップは、
    前記秘密情報分散装置が、前記固定値tと異なり、かつ互いに異なるn個の第1の乱数を生成して記憶装置に出力する第1乱数生成ステップと、
    前記秘密情報分散装置が、秘密情報sを埋め込んで(k−1)次多項式Fを生成する第1分散多項式生成ステップと、
    前記秘密情報分散装置が、前記多項式Fに前記各第1の乱数をそれぞれ入力して値を前記記憶装置に出力するとともに、多項式Fに固定値tを入力して値を前記記憶装置に出力する分散情報出力ステップとを有し、
    前記分散秘密情報分散ステップは、
    前記分散秘密情報分散装置が、互いに異なるn個の第2の乱数を生成して前記記憶装置に出力する第2乱数生成ステップと、
    前記分散秘密情報分散装置が、前記多項式Fに固定値tを入力したときの出力を埋め込んで(k−1)次多項式Gを生成する第2分散多項式生成ステップと、
    前記分散秘密情報分散装置が、前記多項式Gに前記第2の乱数をそれぞれ入力して値を前記記憶装置に出力する分散分散情報出力ステップとを有する
    ことを特徴とする分散情報生成方法。
  8. 前記分散情報生成装置が、前記分散入力ステップで、k−1以下のパラメータLを入力し、
    前記秘密情報分散装置が、前記第1分散多項式生成ステップで、秘密情報sを定数項から(L−1)次までの係数を連結した値に埋め込んで多項式Fを生成し、
    前記分散秘密情報分散装置が、前記第2分散多項式生成ステップで、多項式Fに固定値tを入力したときの出力を定数項とする多項式Gを生成する
    請求項記載の分散情報生成方法。
  9. 前記秘密情報分散装置が、前記第1分散多項式生成ステップで、前記パラメータLが1の場合に、秘密情報sを定数項にだけ埋め込んで多項式Fを生成する請求項記載の分散情報生成方法。
  10. 前記秘密情報分散装置が、前記第1乱数生成ステップで、前記第1の乱数として、固定値tと異なり、かつ互いに異なるn個の定数を生成して出力し、または、
    前記分散秘密情報分散装置が、前記第2乱数生成ステップで、前記第2の乱数として、互いに異なるn個の定数を生成して出力する請求項から請求項のうちのいずれか1項に記載の分散情報生成方法。
  11. 前記秘密情報分散装置が、前記第1乱数生成ステップで出力した前記第1の乱数と、前記分散情報出力ステップで出力した値であって前記多項式Fに前記第1の乱数を入力したときの出力とを対応付けて前記記憶装置に記憶するとともに、前記分散秘密情報分散装置が、前記第2乱数生成ステップで出力した前記第2の乱数と、前記分散分散情報出力ステップで出力した値であって前記多項式Gに前記第2の乱数を入力したときの出力とを対応付けて前記記憶装置に記憶させる請求項から請求項1のうちのいずれか1項に記載の分散情報生成方法。
  12. 復元された秘密情報を検証する復元結果検証装置による復元結果検証方法であって、
    前記復元結果検証装置が、復元された秘密情報として(k−1)次多項式fを入力し、請求項から請求項1のうちのいずれか1項に記載の分散情報生成方法で出力した内容を格納する記憶装置から、請求項から請求項1のうちのいずれか1項に記載の秘密情報分散ステップで出力した第1の乱数rと、請求項から請求項1のうちのいずれか1項に記載の秘密情報分散ステップで生成した多項式Fに第1の乱数rを入力したときの出力vとの対を入力し、多項式fに第1の乱数rを入力したときの出力と入力した値vとが等しい場合に、不正が検出されなかったことを示す情報を出力装置に出力し、等しくない場合に、不正の検出を示す情報を前記出力装置に出力する
    ことを特徴とする復元結果検証方法。
  13. 秘密情報を分散するための分散情報生成処理をプログラムであって、
    秘密情報分散処理手段及び分散秘密情報分散処理手段を含む分散情報生成装置を構成するコンピュータに、
    前記分散情報生成装置にて、秘密情報s、閾値k、分散情報数nおよび所定の固定値tを入力する分散入力処理と、
    前記秘密情報分散処理手段で、前記固定値tと異なり、かつ互いに異なるn個の第1の乱数を生成して記憶装置に出力する第1乱数生成処理と、
    秘密情報sを埋め込んで(k−1)次多項式Fを生成する第1分散多項式生成処理と、
    前記多項式Fに前記各第1の乱数をそれぞれ入力して値を前記記憶装置に出力するとともに、多項式Fに固定値tを入力して値を前記記憶装置に出力する分散情報出力処理とを実行させ、
    前記分散秘密情報分散処理手段で、
    互いに異なるn個の第2の乱数を生成して前記記憶装置に出力する第2乱数生成処理と、
    前記多項式Fに固定値tを入力したときの出力を埋め込んで(k−1)次多項式Gを生成する第2分散多項式生成処理と、
    前記多項式Gに前記第2の乱数をそれぞれ入力して値を前記記憶装置に出力する分散分散情報出力処理とを実行させる
    ための分散情報生成プログラム。
  14. 前記分散入力処理で、k−1以下のパラメータLを入力する処理を実行させ、
    前記第1分散多項式生成処理で、前記秘密情報分散処理手段に、秘密情報sを定数項から(L−1)次までの係数を連結した値に埋め込んで多項式Fを生成し前記記憶装置に記憶する処理を実行させ、
    前記第2分散多項式生成処理で、前記分散秘密情報分散処理手段に、多項式Fに固定値tを入力したときの出力を定数項とする多項式Gを生成する処理を前記コンピュータに実行させる請求項13記載の分散情報生成プログラム。
  15. 前記第1分散多項式生成処理で、前記秘密情報分散処理手段に、前記パラメータLが1の場合に、秘密情報sを定数項にだけ埋め込んで前記多項式Fを生成する処理を前記コンピュータに実行させる請求項14記載の分散情報生成プログラム。
  16. 前記第1乱数生成処理で、前記秘密情報分散処理手段に、前記第1の乱数として、固定値tと異なり、かつ互いに異なるn個の定数を生成して出力する処理を実行させ、または、前記第2乱数生成処理で、前記分散秘密情報分散処理手段に、前記第2の乱数として、互いに異なるn個の定数を生成して出力する処理を前記コンピュータに実行させる請求項13から請求項15のうちのいずれか1項に記載の分散情報生成プログラム。
  17. 前記秘密情報分散処理手段に、前記第1乱数生成処理で出力した前記第1の乱数と、前記分散情報出力処理で出力した値であって前記多項式Fに前記第1の乱数を入力したときの出力とを対応付けて前記記憶装置に記憶するとともに、
    前記分散秘密情報分散処理手段に、前記第2乱数生成処理で出力した前記第2の乱数と、前記分散分散情報出力処理で出力した値であって前記多項式Gに前記第2の乱数を入力したときの出力とを対応付けて記憶装置に記憶させる処理を前記コンピュータに実行させる請求項13から請求項16のうちのいずれか1項に記載の分散情報生成プログラム。
  18. 復元された秘密情報を検証するための復元結果検証プログラムであって、
    復元結果検証装置を構成するコンピュータに、
    前記復元結果検証装置にて、復元された秘密情報として(k−1)次多項式fを入力し、請求項13から請求項17のうちのいずれか1項に記載の分散情報生成プログラムで出力した内容を格納する記憶装置から、請求項13から請求項17のうちのいずれか1項に記載の秘密情報分散処理で出力した第1の乱数rと、請求項13から請求項17のうちのいずれか1項に記載の秘密情報分散処理で生成した多項式Fに第1の乱数rを入力したときの出力vとの対を入力し、多項式fに第1の乱数rを入力したときの出力と入力した値vとが等しい場合に、不正が検出されなかったことを示す情報を出力装置に出力し、等しくない場合に、不正の検出を示す情報を前記出力装置に出力する処理を実行させるための復元結果検証プログラム。
  19. 秘密情報s、閾値k、分散情報数nおよび所定の固定値tを入力し、前記固定値tと異なり、かつ互いに異なるn個の第1の乱数を生成して出力し、前記秘密情報sを埋め込んで(k−1)次多項式Fを生成し、前記多項式Fに前記各第1の乱数をそれぞれ入力して値を出力するとともに、前記多項式Fに前記固定値tを入力して値を出力する秘密情報分散装置と、
    互いに異なるn個の第2の乱数を生成して出力し、前記秘密情報分散装置の出力であって、前記多項式Fに前記固定値tを入力したときの出力を埋め込んで(k−1)次多項式Gを生成し、前記多項式Gに前記第2の乱数をそれぞれ入力して値を出力する分散秘密情報分散装置と、
    を含むことを特徴とする分散情報生成装置。
  20. 前記秘密情報分散装置は、k−1以下のパラメータLを入力し、秘密情報sを定数項から(L−1)次までの係数を連結した値に埋め込んで多項式Fを生成し、
    前記分散秘密情報分散装置は、前記多項式Fに固定値tを入力したときの出力を定数項とする前記多項式Gを生成する
    請求項19記載の分散情報生成装置。
  21. 前記秘密情報分散装置は、前記パラメータLが1の場合、前記秘密情報sを定数項にだけ埋め込んで多項式Fを生成する請求項20記載の分散情報生成装置。
  22. 前記秘密情報分散装置は、前記第1の乱数として、前記固定値tと異なり、かつ互いに異なるn個の定数を生成して出力する請求項19から請求項21のうちのいずれか1項に記載の分散情報生成装置。
  23. 前記分散秘密情報分散装置は、前記第2の乱数として、互いに異なるn個の定数を生成して出力する請求項19から請求項21のうちのいずれか1項に記載の分散情報生成装置。
  24. 前記秘密情報分散装置から出力される前記第1の乱数と、前記多項式Fに第1の乱数を入力したときの出力とを対応付けて記憶するとともに、前記分散秘密情報分散装置から出力される、前記第2の乱数と、前記多項式Gに第2の乱数を入力したときの出力とを対応付けて記憶する記憶装置を備えた請求項19から請求項23のうちのいずれか1項に記載の分散情報生成装置。
  25. 秘密情報を分散する分散情報生成装置の出力に基づいて秘密情報を復元する復元装置であって、
    請求項19記載の分散情報生成装置の前記秘密情報分散装置の出力を格納する記憶装置と、
    閾値kおよび所定の固定値tを入力し、
    前記記憶装置から、請求項19記載の分散情報生成装置の前記秘密情報分散装置が出力した前記第1の乱数と、前記第1の乱数を前記秘密情報分散装置が生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力し、入力した前記第1の乱数をrないしrとし、rないしrを前記多項式Fに入力した出力をそれぞれvないしvとして、rないしrが入力されたときそれぞれvないしvを出力する(k−1)次多項式F’を生成する多項式復元装置と、
    前記記憶装置から、請求項19記載の分散情報生成装置の前記分散秘密情報分散装置が出力した前記第2の乱数と、前記第2の乱数を前記分散秘密情報分散装置が生成した(k−1)次多項式Gに入力したときの出力との対をk組分入力し、入力した前記第2の乱数をxないしxとし、xないしxを前記多項式Gに入力した出力をそれぞれwないしwとして、xないしxが入力されたときそれぞれwないしwを出力する(k−1)次多項式G’を生成する分散秘密情報復元装置と、
    前記多項式G’に埋め込まれた値と前記多項式F’に前記固定値tを入力したときの出力とが等しい場合に、前記多項式F’に埋め込まれた値を秘密情報として出力し、等しくない場合に、不正の検出を示す情報を出力する不正検出装置と
    を備えたことを特徴とする復元装置。
  26. 前記分散情報生成装置の前記秘密情報分散装置は、k−1以下のパラメータLを入力し、秘密情報sを定数項から(L−1)次までの係数を連結した値に埋め込んで多項式Fを生成し、前記分散情報生成装置の前記分散秘密情報分散装置は、前記多項式Fに固定値tを入力したときの出力を定数項とする前記多項式Gを生成し、前記記憶装置は、前記分散情報生成装置の出力を格納し、
    前記復元装置は、k−1以下のパラメータLを入力し、
    前記多項式復元装置は、前記記憶装置から、前記分散情報生成装置の前記秘密情報分散装置が出力した前記第1の乱数と、前記第1の乱数を前記秘密情報分散装置が生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力して、(k−1)次多項式F’を生成し、
    前記分散秘密情報復元装置は、前記記憶装置から、前記分散情報生成装置の前記分散秘密情報分散装置が出力した前記第2の乱数と、前記第2の乱数を前記分散秘密情報分散装置が生成した(k−1)次多項式Gに入力したときの出力との対をk組分入力して、(k−1)次多項式G’を生成し、
    前記不正検出装置は、前記多項式G’の定数項と前記多項式F’に前記固定値tを入力したときの出力とが等しい場合に、前記多項式F’の定数項から(L−1)次までの係数を連結した値を秘密情報として出力し、等しくない場合に、不正の検出を示す情報を出力する
    請求項25記載の復元装置。
  27. 前記分散情報生成装置の前記秘密情報分散装置は、秘密情報sを定数項から(L−1)次までの係数を連結した値に埋め込んで多項式Fを生成する代わりに、前記秘密情報sを定数項だけに埋め込んで多項式Fを生成し、
    前記記憶装置は、前記分散情報生成装置の出力を格納し、
    前記多項式復元装置は、前記記憶装置から、前記分散情報生成装置の前記秘密情報分散装置が出力した前記第1の乱数と、前記第1の乱数を前記秘密情報分散装置が生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力して、(k−1)次多項式F’を生成し、
    前記不正検出装置は、前記多項式G’の定数項と前記多項式F’に前記固定値tを入力したときの出力とが等しい場合に、多項式F’の定数項を秘密情報として出力し、等しくない場合に、不正の検出を示す情報を出力する
    請求項26記載の復元装置。
  28. 前記分散情報生成装置の前記秘密情報分散装置は、前記第1の乱数として、前記固定値tと異なり、かつ互いに異なるn個の定数を生成して出力し、
    前記記憶装置は、前記分散情報生成装置の出力を格納し、
    前記多項式復元装置は、前記記憶装置から、前記分散情報生成装置の前記秘密情報分散装置が出力した前記第1の乱数と、前記第1の乱数を前記秘密情報分散装置が生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力して、(k−1)次多項式F’を生成し、
    前記分散秘密情報復元装置は、前記記憶装置から、前記分散情報生成装置の前記分散秘密情報分散装置が出力した前記第2の乱数と、前記第2の乱数を前記分散秘密情報分散装置が生成した(k−1)次多項式Gに入力したときの出力との対をk組分入力して、(k−1)次多項式G’を生成し、
    前記多項式復元装置は、前記第1の乱数として、前記固定値tと異なり、かつ互いに異なるn個の定数を入力するか、または、前記分散秘密情報復元装置は、前記第2の乱数として、互いに異なるn個の定数を入力する
    請求項25から請求項27のうちのいずれか1項に記載の復元装置。
  29. 前記不正検出装置は、前記多項式G’に埋め込まれた値と、前記多項式F’に前記固定値tを入力したときの出力内容とが等しい場合に、それぞれの出力内容に加えて多項式F’を出力する請求項25から請求項28のうちのいずれか1項に記載の復元装置。
  30. 秘密情報を復元する復元装置が出力した値を検証する復元結果検証装置であって、
    前記復元装置が出力した(k−1)次多項式fを入力し、請求項19から請求項23のうちのいずれか1項に記載の分散情報生成装置の出力を格納する記憶装置から、前記分散情報生成装置の前記秘密情報分散装置が出力した前記第1の乱数rと、前記秘密情報分散装置が生成した前記多項式Fに前記第1の乱数rを入力したときの出力vとの対を入力し、多項式fに第1の乱数rを入力したときの出力と入力した値vとが等しい場合に、不正が検出されなかったことを示す情報を出力し、等しくない場合に、不正の検出を示す情報を出力する
    ことを特徴とする復元結果検証装置。
  31. 秘密情報s、閾値k、分散情報数nおよび所定の固定値tを入力し、前記固定値tと異なり、かつ互いに異なるn個の第1の乱数を生成して出力し、前記秘密情報sを埋め込んで(k−1)次多項式Fを生成し、前記多項式Fに前記各第1の乱数をそれぞれ入力して値を出力するとともに、前記多項式Fに前記固定値tを入力して値を出力する秘密情報分散装置と、
    互いに異なるn個の第2の乱数を生成して出力し、前記秘密情報分散装置の出力であって、前記多項式Fに前記固定値tを入力したときの出力を埋め込んで(k−1)次多項式Gを生成し、前記多項式Gに前記第2の乱数をそれぞれ入力して値を出力する分散秘密情報分散装置と、
    を含む分散情報生成装置と、
    復元装置と、を備え、
    前記復元装置は、閾値kと固定値tを入力する復元入力手段と、
    前記分散情報生成装置の前記秘密情報分散装置の出力を格納する記憶装置と、
    前記記憶装置から、前記分散情報生成装置の前記秘密情報分散装置が出力した前記第1の乱数と、前記第1の乱数を前記秘密情報分散装置が生成した(k−1)次多項式Fに入力したときの出力との対をk組分入力し、入力した前記第1の乱数r 乃至r を前記多項式Fに入力した出力をそれぞれv 乃至v として、乃至rを入力した出力が、v乃至vであるような、(k−1)次多項式F’を出力する多項式復元装置と、
    前記記憶装置から、前記分散情報生成装置の前記分散秘密情報分散装置が出力した前記第2の乱数と、前記第2の乱数を前記分散秘密情報分散装置が生成した(k−1)次多項式Gに入力したときの出力との対をk組分入力し、入力した前記第2の乱数をx 乃至x とし、x 乃至 を前記多項式Gに入力した出力をそれぞれw 乃至 として、乃至xを入力した出力が、w乃至wであるような(k−1)次多項式G’を出力する分散秘密情報復元装置と、
    多項式G’に埋め込まれた値と、多項式F’に固定値tを入力したときの出力とが等しい場合に、多項式F’に埋め込まれた値を秘密情報として出力し、等しくない場合に、不正の検出を示す情報を出力する不正検出装置と、
    を備えたことを特徴とする秘密情報分散・復元システム
  32. 前記復元入力手段は、k−1以下のパラメータLを入力し、
    前記不正検出装置は、多項式G’に埋め込まれた値として多項式G’の定数項を用い、秘密情報として多項式F’の定数項から(L−1)次までの係数を連結した値を用いる請求項31に記載の秘密情報分散・復元システム
  33. 前記不正検出装置は、多項式G’に埋め込まれた値として多項式G’の定数項を用い、秘密情報として多項式F’の定数項を用いる請求項31に記載の秘密情報分散・復元システム
  34. 前記不正検出装置は、多項式G’に埋め込まれた値と、多項式F’に固定値tを入力したときの出力内容とが等しい場合に、それぞれの出力内容に加えて多項式F’を出力する請求項31から請求項33のうちのいずれか1項に記載の秘密情報分散・復元システム
JP2008556120A 2007-02-02 2008-01-30 分散情報生成装置、復元装置、復元結果検証装置、秘密情報分散システム、方法およびプログラム Active JP5251520B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008556120A JP5251520B2 (ja) 2007-02-02 2008-01-30 分散情報生成装置、復元装置、復元結果検証装置、秘密情報分散システム、方法およびプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2007023907 2007-02-02
JP2007023907 2007-02-02
JP2008556120A JP5251520B2 (ja) 2007-02-02 2008-01-30 分散情報生成装置、復元装置、復元結果検証装置、秘密情報分散システム、方法およびプログラム
PCT/JP2008/051336 WO2008093690A1 (ja) 2007-02-02 2008-01-30 分散情報生成装置、復元装置、復元結果検証装置、秘密情報分散システム、方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2008093690A1 JPWO2008093690A1 (ja) 2010-05-20
JP5251520B2 true JP5251520B2 (ja) 2013-07-31

Family

ID=39673999

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008556120A Active JP5251520B2 (ja) 2007-02-02 2008-01-30 分散情報生成装置、復元装置、復元結果検証装置、秘密情報分散システム、方法およびプログラム

Country Status (3)

Country Link
US (1) US8300826B2 (ja)
JP (1) JP5251520B2 (ja)
WO (1) WO2008093690A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010147215A1 (ja) * 2009-06-19 2010-12-23 日本電気株式会社 秘密情報分散システム,秘密情報分散方法及びプログラム
JP5640624B2 (ja) * 2010-10-06 2014-12-17 日本電気株式会社 分散情報生成装置、復元装置、秘密分散システム、情報処理方法およびプログラム
EP2634718B1 (en) 2010-10-28 2020-08-19 Panasonic Corporation Tamper monitoring system, protection control module and detection module
JP6417727B2 (ja) * 2014-06-09 2018-11-07 富士通株式会社 情報集約システム、プログラム、および方法
WO2017119916A1 (en) * 2015-01-09 2017-07-13 Spyrus, Inc. Secure remote authentication
CN105071938B (zh) * 2015-07-14 2018-08-21 中国科学技术大学 一种基于门限秘密共享的组认证方法
WO2018034079A1 (ja) * 2016-08-18 2018-02-22 日本電気株式会社 秘密計算システム、秘密計算方法、秘密計算装置、分散情報生成装置およびそれらの方法とプログラム
US11632243B1 (en) * 2020-03-31 2023-04-18 Juniper Networks, Inc. Multi-key exchange

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003143135A (ja) * 2001-10-30 2003-05-16 Toshiba Corp 署名分散システム、プログラム及び方法
WO2006109776A1 (ja) * 2005-04-11 2006-10-19 Matsushita Electric Industrial Co., Ltd. 割符配布装置、認証サーバおよび認証方法
WO2006124289A2 (en) * 2005-05-13 2006-11-23 Temple University - Of The Commonwealth System Of Higher Education Secret sharing technique with low overhead information content

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2169449A1 (en) * 1993-08-13 1995-02-23 Frank Thomson Leighton Secret key exchange
US5345507A (en) * 1993-09-08 1994-09-06 International Business Machines Corporation Secure message authentication for binary additive stream cipher systems
WO1998036526A1 (en) * 1997-02-14 1998-08-20 Citibank, N.A. Cyclotomic polynomial construction of discrete logarithm cryptosystems over finite fields
US6237097B1 (en) * 1998-05-22 2001-05-22 Certco, Inc. Robust efficient distributed RSA-key generation
US6754824B1 (en) * 1999-06-25 2004-06-22 Telefonaktiebolaget L M Ericsson (Publ) Modulated message authentication system and method
US20040151309A1 (en) * 2002-05-03 2004-08-05 Gentry Craig B Ring-based signature scheme
EP1475920A4 (en) * 2002-12-03 2005-03-02 Matsushita Electric Ind Co Ltd KEY SHARING SYSTEM, SHARED KEY CREATING DEVICE, AND SHARED KEY RESTORING DEVICE

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003143135A (ja) * 2001-10-30 2003-05-16 Toshiba Corp 署名分散システム、プログラム及び方法
WO2006109776A1 (ja) * 2005-04-11 2006-10-19 Matsushita Electric Industrial Co., Ltd. 割符配布装置、認証サーバおよび認証方法
WO2006124289A2 (en) * 2005-05-13 2006-11-23 Temple University - Of The Commonwealth System Of Higher Education Secret sharing technique with low overhead information content

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JPN6012066561; G. R. Blakley and Catherin Meadows: '"SECURITY OF RAMP SCHEMES"' Lecture Notes in Computer Science, Advances in Cryptology: Proceedings of CRYPTO 84 Vol.196, 19850820, p.242-268 *
JPN6012066571; 左瑞麟: '"検証可能しきい値秘密分散法"' 電子情報通信学会技術研究報告 Vo.102,No.747, 20030319, p.31-34, 社団法人電子情報通信学会[オンライン] *
JPN7012005237; 山下修平,尾形わかは: '"多項式を用いた秘密分散共有法に関する一考察"' 2006年暗号と情報セキュリティスンポジウム 1F2 秘密分散, 20060117, 1F2-2, 2006年暗号と情報セキュリティシンポジウム実行委 *
JPN7012005238; 荒木俊則: '"n-1人までの不正者による不正を検知可能な良い(k,n)閾値法"' 2008年暗号と情報セキュリティシンポジウム 4F1 秘密分散, 20080122, 4F1-4, 社団法人電子情報通信学会 *

Also Published As

Publication number Publication date
WO2008093690A1 (ja) 2008-08-07
JPWO2008093690A1 (ja) 2010-05-20
US20100287366A1 (en) 2010-11-11
US8300826B2 (en) 2012-10-30

Similar Documents

Publication Publication Date Title
JP5251520B2 (ja) 分散情報生成装置、復元装置、復元結果検証装置、秘密情報分散システム、方法およびプログラム
US9292665B2 (en) Secure serial number
US5530757A (en) Distributed fingerprints for information integrity verification
JP5960678B2 (ja) 改ざん監視システム、管理装置、保護制御モジュール及び検知モジュール
JP5582143B2 (ja) 秘密情報分散システム,秘密情報分散方法及びプログラム
JP5957095B2 (ja) 改ざん検知装置、改ざん検知方法、およびプログラム
JP5299286B2 (ja) 分散情報生成装置、復元装置、検証装置及び秘密情報分散システム
JP5151987B2 (ja) 分散情報生成装置および復元装置
JP5609892B2 (ja) 検証装置、秘密情報復元装置、検証方法、プログラム、及び秘密分散システム
US9075798B2 (en) Verifying authenticity of input using a hashing algorithm
JP5944841B2 (ja) 秘密分散システム、データ分散装置、分散データ保有装置、秘密分散方法、およびプログラム
Nithiavathy Data integrity and data dynamics with secure storage service in cloud
JP5136412B2 (ja) 分散情報生成装置及び復元装置
JP6933290B2 (ja) 秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム
JP2013009245A (ja) 秘密情報分散システム及び秘密情報分散方法並びに秘密情報生成プログラム及び秘密情報復元プログラム
CN112822175B (zh) 一种信息访问方法、装置及电子设备
CN112751675B (zh) 一种基于区块链的信息监控方法、系统、设备及存储介质
Albeshri et al. A security architecture for cloud storage combining proofs of retrievability and fairness
Dhote et al. Secure Approach for Data in Cloud Computing
JPWO2009142285A1 (ja) 分散情報生成装置
Nalini et al. Efficient remote data possession checking in critical information infrastructures ensuring data storage security in cloud computing
CN112749965A (zh) 一种信息监控方法、系统、设备及存储介质
CN115242550A (zh) 一种纠错码矩阵生成保护方法及系统
Milkkal et al. Sheltered Data Storage Services in Cloud Computing
JP5640624B2 (ja) 分散情報生成装置、復元装置、秘密分散システム、情報処理方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130225

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130401

R150 Certificate of patent or registration of utility model

Ref document number: 5251520

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160426

Year of fee payment: 3