特許第6933290号(P6933290)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧

特許6933290秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム
<>
  • 特許6933290-秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム 図000002
  • 特許6933290-秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム 図000003
  • 特許6933290-秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム 図000004
  • 特許6933290-秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム 図000005
  • 特許6933290-秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム 図000006
  • 特許6933290-秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム 図000007
  • 特許6933290-秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6933290
(24)【登録日】2021年8月23日
(45)【発行日】2021年9月8日
(54)【発明の名称】秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム
(51)【国際特許分類】
   G09C 1/00 20060101AFI20210826BHJP
   H04L 9/32 20060101ALI20210826BHJP
【FI】
   G09C1/00 650Z
   H04L9/00 673A
   H04L9/00 675D
【請求項の数】9
【全頁数】18
(21)【出願番号】特願2020-501714(P2020-501714)
(86)(22)【出願日】2019年2月14日
(86)【国際出願番号】JP2019005351
(87)【国際公開番号】WO2019163636
(87)【国際公開日】20190829
【審査請求日】2020年8月13日
(31)【優先権主張番号】特願2018-27999(P2018-27999)
(32)【優先日】2018年2月20日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100121706
【弁理士】
【氏名又は名称】中尾 直樹
(74)【代理人】
【識別番号】100128705
【弁理士】
【氏名又は名称】中村 幸雄
(74)【代理人】
【識別番号】100147773
【弁理士】
【氏名又は名称】義村 宗洋
(72)【発明者】
【氏名】五十嵐 大
(72)【発明者】
【氏名】諸橋 玄武
(72)【発明者】
【氏名】千田 浩司
【審査官】 打出 義尚
(56)【参考文献】
【文献】 国際公開第2016/159357(WO,A1)
【文献】 KIKUCHI, Ryo et al.,Password-Based Authentication Protocol for Secret-Sharing-Based Multiparty Computation,IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences,2018年01月01日,Volume E101.A, Issue 1,pp. 51-63,https://www.jstage.jst.go.jp/article/transfun/E101.A/1/E101.A_51/_article/,Online ISSN 1745-1337,Print ISSN 0916-8508
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
Lが1以上の整数であり、εが2以上の整数であり、Fが有限体であり、Fεが前記有限体Fの拡大体であり、前記拡大体Fεの拡大次数がεであり、ceil(x)が実数x以上の最小の整数であり、M=ceil(L/ε)であり、j=0,…、L−1であり、m=0,…,M−1であり、
認証情報wの秘密分散値である秘匿化認証情報[w]∈[F]を格納する記憶部と、
認証情報ωの秘密分散値である秘匿化認証情報[ω]∈[F]の入力を受け付ける入力部と、
前記秘匿化認証情報[w]および前記秘匿化認証情報[ω]を用い、秘密計算によって第1秘匿化検証値[z]=[w−ω]を得る第1演算部と、
拡大体乱数rの秘密分散値である秘匿化拡大体乱数[r∈[Fε]を得る乱数生成部と、
z=(z,…,zL−1)=w−ωであり、z∈Fであり、m=0,…,M−1についてy=(zεm,…,zε(m+1)−1)であり、q=ε(M−1),…,εM−1のうちq>L−1となるzが0であり、前記第1秘匿化検証値[z]を用い、秘密計算によってyを秘匿化した第2秘匿化検証値[yを得る第2演算部と、
前記秘匿化拡大体乱数[rおよび前記第2秘匿化検証値[yを用い、秘密算によって第3秘匿化検証値[rを得て出力する第3演算部と、
を有する秘密計算装置。
【請求項2】
請求項1の秘密計算装置であって、
Mが2以上の整数である、秘密計算装置。
【請求項3】
請求項1または2の秘密計算装置であって、
KおよびNが2以上の整数であり、K≦Nであり、
前記秘匿化拡大体乱数[rは、(K,N)シャミア秘密分散方式に則った秘密分散値であり、
前記第2演算部は、前記第1秘匿化検証値[z]を表す列の要素を結合して前記第2秘匿化検証値[yを得、
前記第3演算部は、前記第2秘匿化検証値[yを前記(K,N)シャミア秘密分散方式に則った秘密分散値として前記第3秘匿化検証値[rを得、
前記第3秘匿化検証値[rが(2K−1,N)シャミア秘密分散方式に則った秘密分散値となる、秘密計算装置。
【請求項4】
請求項3の秘密計算装置であって、
K=2である、秘密計算装置。
【請求項5】
請求項4の秘密計算装置であって、
∈Fεであり、∈Fεであり、∈Fεであり、∈Fεであり、I∈Fεであり、[r=r・I∈Fεであり、[y=y・I∈Fεであり、[r=r・y+(r・y)・I+・I∈Fεであり、
当該秘密計算装置は、
第2拡大体乱数R∈Fεの秘密分散値である第2秘匿化拡大体乱数[R=R・I∈Fεを得る第2乱数生成部と、
拡大体乗算値[R・I=R・I+・I∈Fεを得る第4演算部と、
第4秘匿化検証値[r+[R・I=r・y+(r・y+R)・I+()・I∈Fεを得て出力する第5演算部と、
をさらに有する秘密計算装置。
【請求項6】
複数の秘密計算装置と検証装置とを有し、
Lが1以上の整数であり、εが2以上の整数であり、Fが有限体であり、Fεが前記有限体Fの拡大体であり、前記拡大体Fεの拡大次数がεであり、ceil(x)が実数x以上の最小の整数であり、M=ceil(L/ε)であり、j=0,…、L−1であり、m=0,…,M−1であり、
前記秘密計算装置のそれぞれは、
認証情報wの秘密分散値である秘匿化認証情報[w]∈[F]を格納する記憶部と、
認証情報ωの秘密分散値である秘匿化認証情報[ω]∈[F]の入力を受け付ける第1入力部と、
前記秘匿化認証情報[w]および前記秘匿化認証情報[ω]を用い、秘密計算によって第1秘匿化検証値[z]=[w−ω]を得る第1演算部と、
拡大体乱数rの秘密分散値である秘匿化拡大体乱数[r∈[Fε]を得る乱数生成部と、
z=(z,…,zL−1)=w−ωであり、z∈Fであり、m=0,…,M−1についてy=(zεm,…,zε(m+1)−1)であり、q=ε(M−1),…,εM−1のうちq>L−1となるzが0であり、前記第1秘匿化検証値[z]を用い、秘密計算によってyを秘匿化した第2秘匿化検証値[yを得る第2演算部と、
前記秘匿化拡大体乱数[rおよび前記第2秘匿化検証値[yを用い、秘密算によって第3秘匿化検証値[rを得て出力する第3演算部と、を含み、
前記検証装置は、すべてのm=0,…,M−1についてr=0を満たす場合に認証成功と判定する、秘密計算認証システム。
【請求項7】
請求項6の秘密計算認証システムであって、
N個の前記秘密計算装置を有し、
Nが3以上の整数であり、
前記秘匿化拡大体乱数[rは、(2,N)シャミア秘密分散方式に則った秘密分散値であり、
前記第2演算部は、前記第1秘匿化検証値[z]を表す列の要素を結合して前記第2秘匿化検証値[yを得、
前記第3演算部は、前記第2秘匿化検証値[yを前記(2,N)シャミア秘密分散方式に則った秘密分散値として前記第3秘匿化検証値[rを得、
∈Fεであり、∈Fεであり、∈Fεであり、∈Fεであり、I∈Fεであり、[r=r・I∈Fεであり、[y=y・I∈Fεであり、[r=r・y+(r・y)・I+・I∈Fεであり、i=1,…,Nであり、
前記秘密計算装置のそれぞれは、
第2拡大体乱数R∈Fεの秘密分散値である第2秘匿化拡大体乱数[R=R・I∈Fεを得る第2乱数生成部と、
拡大体乗算値[R・I=R・I+・I∈Fεを得る第4演算部と、
第4秘匿化検証値[r+[R・I=r・y+(r・y+R)・I+()・I∈Fεを得て出力する第5演算部と、をさらに含む、
前記検証装置は、(3,N)シャミア秘密分散方式に則って、{φ(1),φ(2),φ(3)}⊆{1,…,N}について、[rφ(1)+[Rφ(1)・Iと[rφ(2)+[Rφ(2)・Iと[rφ(3)+[Rφ(3)・Iとに対する演算を行い、すべてのm=0,…,M−1についてr=0を満たす場合に認証成功と判定する、秘密計算認証システム。
【請求項8】
秘密計算装置の秘密計算方法であって、
Lが1以上の整数であり、εが2以上の整数であり、Fが有限体であり、Fεが前記有限体Fの拡大体であり、前記拡大体Fεの拡大次数がεであり、ceil(x)が実数x以上の最小の整数であり、M=ceil(L/ε)であり、j=0,…、L−1であり、m=0,…,M−1であり、
入力部が、認証情報ωの秘密分散値である秘匿化認証情報[ω]∈[F]の入力を受け付ける入力ステップと、
第1演算部が、認証情報wの秘密分散値である秘匿化認証情報[w]∈[F]および前記秘匿化認証情報[ω]を用い、秘密計算によって第1秘匿化検証値[z]=[w−ω]を得る第1演算ステップと、
乱数生成部が、拡大体乱数rの秘密分散値である秘匿化拡大体乱数[r∈[Fε]を得る乱数生成ステップと、
z=(z,…,zL−1)=w−ωであり、z∈Fであり、m=0,…,M−1についてy=(zεm,…,zε(m+1)−1)であり、q=ε(M−1),…,εM−1のうちq>L−1となるzが0であり、第2演算部が、前記第1秘匿化検証値[z]を用い、秘密計算によってyを秘匿化した第2秘匿化検証値[yを得る第2演算ステップと、
第3演算部が、前記秘匿化拡大体乱数[rおよび前記第2秘匿化検証値[yを用い、秘密算によって第3秘匿化検証値[rを得る第3演算ステップと、
を有する秘密計算方法。
【請求項9】
請求項1から5の何れかの秘密計算装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、秘密計算技術に関し、特に、秘密計算によって認証処理を行う秘密計算認証技術に関する。
【背景技術】
【0002】
秘密計算技術(例えば、非特許文献1等参照)を用いれば、認証情報(例えば、パスワード)を秘密に保ったまま認証処理を行うことができる。単純な方法は、登録済みの認証情報wの秘匿化認証情報[w]と入力された認証情報ωの秘匿化認証情報[ω]とを用い、秘密計算によってw−ωに対応する秘匿化検証値[w−ω]を計算する方法である。w−ω=0であればw=ω(認証成功)であり、w−ω≠0であればw≠ω(認証失敗)であるため、秘匿化検証値[w−ω]は認証結果の秘匿値を表す。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Ivan Damgard, Matthias Fitzi, Eike Kiltz, Jesper Buus Nielsen, Tomas Toft, “Unconditionally Secure Constant-Rounds Multi-party Computation for Equality, Comparison, Bits and Exponentiation”, TCC 2006, pp. 285-304.
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、上述した方法では、なりすましに対する安全性が低いという問題点がある。すなわち、w−ω≠0であるにもかかわらず0が復元されるような不正な秘匿化検証値が計算された場合には、w−ω≠0であるにもかかわらず認証成功と判定されてしまう。また認証情報w,ωが秘密に保たれているため、このような不正な秘匿化検証値を検知することも困難である。
【0005】
本発明の目的は、認証情報を秘密に保ったまま、なりすましに対する安全性が高い認証処理を行う技術を提供することである。
【課題を解決するための手段】
【0006】
秘密計算装置は、認証情報wの秘密分散値である秘匿化認証情報[w]∈[F]を格納し、認証情報ωの秘密分散値である秘匿化認証情報[ω]∈[F]の入力を受け、秘匿化認証情報[w]および秘匿化認証情報[ω]を用い、秘密計算によって第1秘匿化検証値[z]=[w−ω]を得、拡大体乱数rの秘密分散値である秘匿化拡大体乱数[r∈[Fε]を得、第1秘匿化検証値[z]を用い、秘密計算によってyを秘匿化した第2秘匿化検証値[yを得、秘匿化拡大体乱数[rおよび第2秘匿化検証値[yを用い、秘密算によって第3秘匿化検証値[rを得て出力する。ただし、Lが1以上の整数であり、εが2以上の整数であり、Fが有限体であり、Fεが有限体Fの拡大体であり、拡大体Fεの拡大次数がεであり、ceil(x)が実数x以上の最小の整数であり、M=ceil(L/ε)であり、j=0,…、L−1であり、m=0,…,M−1であり、z=(z,…,zL−1)=w−ωであり、z∈Fであり、m=0,…,M−1についてy=(zεm,…,zε(m+1)‐1)であり、q=ε(M−1),…,εM−1のうちq>L−1となるzが0である。
【発明の効果】
【0007】
認証情報を秘密に保ったまま、なりすましに対する安全性が高い認証処理を行うことができる。
【図面の簡単な説明】
【0008】
図1図1は実施形態の秘密計算認証システムの機能構成を例示したブロック図である。
図2図2は実施形態の秘密計算装置の機能構成を例示したブロック図である。
図3図3Aは実施形態の利用者装置の機能構成を例示したブロック図である。図3Bは実施形態の検証装置の機能構成を例示したブロック図である。
図4図4は実施形態の利用者装置の処理を説明するためのフロー図である。
図5図5は実施形態の秘密計算装置の処理を説明するためのフロー図である。
図6図6は実施形態の検証装置の処理を説明するためのフロー図である。
図7図7は実施形態の処理を説明するための概念図である。
【発明を実施するための形態】
【0009】
以下、図面を用いて本発明の実施形態を説明する。
[概要]
実施形態の秘密計算認証システムは、N個(複数個)の秘密計算装置P,…,Pと検証装置とを有する。検証装置はN個の秘密計算装置P,…,Pの外部の装置であってもよいし、何れかの秘密計算装置Pの内部に含まれた装置であってもよい。秘密計算装置Pのそれぞれは、認証情報wの秘密分散値である秘匿化認証情報[w]∈[F]を記憶部に格納する。ただし、i=1,…,Nであり、Nは2以上の整数である。「β∈β」はβがβに属することを表す。Fは有限体を表し、Lは1以上の整数を表す。有限体Fは、素体であってもよいし、拡大体であってもよい。例えばLは2以上の整数である。[F]は有限体Fの元の秘密分散値を表し、[F]はL個の[F]からなる集合を表す。[α]は秘密計算装置Pに割り当てられたαの秘密分散値を意味する。認証情報wは正規の利用者に対して事前登録されたものである。認証情報wに限定はなく、例えば、パスワード、生体認証情報、音声認証情報、パターン認証情報等どのようなものであってもよい。秘密計算装置Pのそれぞれは、複数個の認証情報wにそれぞれ対応する秘匿化認証情報[w]を格納してもよいし、単数の認証情報wに対応する秘匿化認証情報[w]のみを格納してもよい。秘密分散値を得るための秘密分散方式に限定はなく、複製型秘密分散方式(例えば、参考文献1等参照)、シャミア秘密分散方式(例えば、参考文献2等参照)などの周知の(K,N)秘密分散方式(「K-out-of-Nしきい値秘密分散方式」ともいう)を用いればよい。ただし、Kは2以上の整数であり、K≦Nを満たす。例えばK=2である。(K,N)秘密分散方式では、任意の相違なるK個の秘密分散値が与えられれば秘匿化されている秘密情報を復元できるが、任意のK−1個の秘密分散値が与えられても秘密情報の情報はまったく得られない。以下では(K,N)秘密分散方式であるシャミア秘密分散方式を「(K,N)シャミア秘密分散方式」と呼ぶ。
参考文献1:五十嵐大,千田浩司,濱田浩気,高橋克巳,“軽量検証可能3パーティ秘匿関数計算の効率化及びこれを用いたセキュアなデータベース処理,”InSCIS2011,2011.
参考文献2:A. Shamir, "How to Share a Secret", Communications of the ACM, November 1979, Volume 22, Number 11, pp.612-613.
【0010】
各秘密計算装置Pの入力部には、認証情報ωの秘密分散値である秘匿化認証情報[ω]∈[F]が入力される。各秘密計算装置Pの演算部は、秘匿化認証情報[w]および秘匿化認証情報[ω]を用い、秘密計算によって第1秘匿化検証値[z]=[w−ω]を得て出力する。[w−ω]はw−ωの秘密分散値を表す。秘密計算方法に限定はなく、例えば非特許文献1や参考文献3に記載された周知の秘密計算方法を用いればよい。以下の秘密計算についても同様である。
参考文献3:千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, “軽量検証可能3パーティ秘匿関数計算の再考”, In CSS, 2010.
【0011】
各秘密計算装置Pの乱数生成部は、拡大体乱数r∈Fεの秘密分散値である秘匿化拡大体乱数[r∈[Fε]を得て出力する。ただし、εが2以上の整数であり、Fεが有限体Fの拡大体であり、拡大体Fεの拡大次数がεである。ceilは天井関数であり、ceil(x)は実数x以上の最小の整数を表す。m=0,…,M−1であり、M=ceil(L/ε)を満たす。Mは1以上の整数である。例えば、Mは2以上の整数である。秘匿化拡大体乱数[rの生成は、いずれの秘密計算装置Pからも拡大体乱数rが秘匿された状態で行われなければならない。このような方法はよく知られており、どのような方法が用いられてもよい。例えば、秘密計算装置P,…,Pが協調して秘匿化拡大体乱数[rを生成できる。一例を挙げると、各秘密計算装置Pi’がそれぞれ拡大体乱数rm,i’の秘密分散値[rm,i’∈[Fε]を計算して秘密計算装置Pに送り(ただし、i=1,…,N、i’=1,…,Nかつi’≠i)、各秘密計算装置Pが秘密分散値[rm,1,…,[rm,Nを用いた秘密計算によって[r=[rm,1+…+rm,Nを得る。
【0012】
各秘密計算装置Pの演算部は、第1秘匿化検証値[z]を用い、秘密計算によってyを秘匿化した第2秘匿化検証値[yを得て出力する。ただし、z=(z,…,zL−1)=w−ωであり、z∈Fであり、j=0,…、L−1であり、m=0,…,M−1についてy=(zεm,…,zε(m+1)−1)であり、q=ε(M−1),…,εM−1のうちq>L−1となるzが0である。q>L−1となるzはz=0とされてもよいし(すなわち、0がzにパディングされてもよいし)、q>L−1となるzが0であることを表す情報が付加されてもよい。各秘密計算装置Pの演算部は、第1秘匿化検証値[z]を表す列を分割して各第2秘匿化検証値[yを得てもよい。例えば、q>L−1となるzが存在しないのであれば、各秘密計算装置Pの演算部が第1秘匿化検証値[z]=[y|…|[yM−1をM個に分割して[y,…,[yM−1を得てもよい。ただし、α|αはαとαとの連結を表す。q>L−1となるzが存在するのであれば、各秘密計算装置Pの演算部は、第1秘匿化検証値[z]=[y|…|[yM−2|[y’M−1を[y,…,[yM−2,[y’M−1に分割するとともに、q>L−1についてのz=0の秘密分散値[0,…,0]またはq>L−1となるzが0であることを表す情報の秘密分散値[0,…,0]を得、[yM−1=[y’M−1|[0,…,0]としてもよい。
【0013】
第2秘匿化検証値[yはε次拡大体Fε上の(K,N)シャミア秘密分散方式に則った秘密分散値として扱うことができる。K=2の場合について説明する。y=(zεm,…,zε(m+1)−1)をε次拡大体の元をベクトル表現したものとみなす。すなわち、y=(zεm,…,zε(m+1)−1)∈Fεとして扱う。ε次拡大体Fε上の(2,N)シャミア秘密分散方式に則ってy=(zεm,…,zε(m+1)−1)∈Fεを秘密分散して得られる秘密分散値[yは、以下のようになる。
[y=y・I
=(zεmm,0・i,…,zε(m+1)−1m,ε−1・i) (1)
なぜなら、ε次拡大体Fε上の(2,N)シャミア秘密分散方式に則って秘密分散値を求めるための多項式をg(χ)=y・χ∈Fεとみなせるからである。ただし、m,0,…,m,ε−1は拡大体乱∈Fεのベクトル表現=(m,0,…,m,ε−1)∈Fεの各要素であり、iに対応する座標軸I∈Fεのベクトル表現がI=(i,0,…,0)∈Fεである。座標軸χ=(η,0,…,0)∈Fεであり、ηは整数変数である。χ=I=(i,0,…,0)としたg(I)が[yであり、χ=0=(0,0,…,0)としたg(0)がyである。式(1)に示すように、この秘密分散値[yはε次拡大体Fεの元となっている。なお、y∈Fε∈Fε,I∈Fεを多項式表現すると以下のようになる。
=zεm+zεm+1・X+…+zε(m+1)−1・Xε−1
=sm,0+sm,1・X+…+m,ε−1・Xε−1
I=i+0・X+…+・Xε−1
従って、y・I∈Fεを多項式表現すると以下のようになる。
・I
=zεm+zεm+1・X+…+zε(m+1)−1・Xε−1+(sm,0+sm,1・X+…+m,ε−1・Xε−1)(i+0・X+…+・Xε−1
=zεm+zεm+1・X+…+zε(m+1)−1・Xε−1+sm,0・I+sm,1・I・X+…+m,ε−1・I・Xε−1
=zεm+sm,0・I+(zεm+1+sm,1・I)・X+…+(zε(m+1)−1m,ε−1・I)・Xε−1 (2)
ただし、Xは有限体F上の既約多項式ρ(X)についてρ(X)=0を満たす。式(2)の各係数を要素とするベクトルは(zεmm,0・i,…,zε(m+1)−1m,ε−1・i)となる。このことから、y・I∈Fεをベクトル表現すると式(1)のようになることが分かる。
【0014】
L=2、ε=2、K=2、N=3、有限体Fが位数5の素体GF(5)であるの場合の簡単な例を示す。z=0、z=0を素体GF(5)上で(2,3)シャミア秘密分散方式によって秘密分散した場合、秘密計算装置Pに対応するz、z秘密分散値の一例は、それぞれ、f(i)=z+2i mod 5、f(i)=z+i mod 5である。このときM=ceil(2/2)=1であり、第2秘匿化検証値[y=[(z,z)]は[y=[(z+2i mod 5,z+i mod 5)]となる。すなわち、[y=[(2,1)]、[y=[(4,2)]、[y=[(1,3)]となる。このとき、第2秘匿検証値[yは、GF(5)の2次拡大体Fε=GF(5)上でのシャミア秘密分散法に則った秘密分散値と扱っても構わない。これは、(2,N)シャミア秘密分散方式に則って秘密分散値を求めるための多項式をg(χ)=y・χ∈GF(5)とみなせるためである。ただし、秘密情報y=(z,z)であり、乱数=(2,1)であり、座標軸χ=(η,0)とする。ηは整数変数であり、χ=I=(i,0)としたg(I)が[yであり、χ=(0,0)=0としたg(0)がyである。このように第2秘匿化検証値[yはε次拡大体Fε上の(K,N)シャミア秘密分散方式に則った秘密分散値として扱うことができる。
【0015】
各秘密計算装置Pの演算部は、秘匿化拡大体乱数[rおよび第2秘匿化検証値[yを用い、秘密算によって第3秘匿化検証値[rを得て出力する。上述のように、秘匿化認証情報[w]が(K,N)シャミア秘密分散方式に則った秘密分散値であり、秘匿化認証情報[ω]が(K,N)シャミア秘密分散方式に則った秘密分散値であり、第1秘匿化検証値[z]を表す列の要素を結合して各第2秘匿化検証値[yが得られ、秘匿化拡大体乱数[rが(K,N)シャミア秘密分散方式に則った秘密分散値である場合、各秘密計算装置Pの演算部は、第2秘匿化検証値[yを(K,N)シャミア秘密分散方式に則った秘密分散値として第3秘匿化検証値[rを得ることができる。各秘密計算装置Pの演算部は、例えば、[r=[r[yの計算(拡大体Fε上での乗算)を行う。2個の(K,N)シャミア秘密分散方式に則った秘密分散値の乗算結果は(2K−1,N)シャミア秘密分散方式に則った秘密分散値となる。そのため、このように得られた第3秘匿化検証値[rは(2K−1,N)シャミア秘密分散方式に則った秘密分散値となる。例えば、K=2の場合、第3秘匿化検証値[rは(3,N)シャミア秘密分散方式に則った秘密分散値となっている。すなわち、式(1)と同様、ε次拡大体Fε上の(2,N)シャミア秘密分散方式に則ってr∈Fεを秘密分散して得られる秘密分散値[rは、以下のようになる。
[r=r・I (3)
ただし、∈Fεは拡大体乱数ある。式(2)および式(3)から、以下を満たすことが分かる。
[r=[r[y
=(y・I)(r・I)
=r・y+(rs+s・y)・I+s・s・I∈Fε (4)
これにより、[rが(3,N)シャミア秘密分散方式に則ったrの秘密分散値となっていることが分かる。なぜなら、ε次拡大体Fε上の(3,N)シャミア秘密分散方式に則って秘密分散値を求めるための多項式をg’(χ)=r・y+(rs+s・y)・χ+s・s・χ∈Fεとみなせ、χ=I=(i,0,…,0)としたg’(I)が[rとなり、χ=0=(0,0,…,0)としたg’(0)がr・yとなるからである。
【0016】
ここで、第3秘匿化検証値[r,…,[rM−1M−1が認証結果の秘匿値として出力されてもよい(方式1)。しかし、各秘密計算装置Pがさらに以下の処理を行うことでさらに安全性を向上させることができる(方式2)。方式2の場合、さらに各秘密計算装置Pの乱数生成部が、ε次拡大体Fε上の(2,N)シャミア秘密分散方式に則って、第2拡大体乱数R∈Fεの秘密分散値である第2秘匿化拡大体乱数[R=R・I∈Fεを得て出力する。前述した秘匿化拡大体乱数[rの生成と同様、第2秘匿化拡大体乱数[Rの生成は、いずれの秘密計算装置Pからも第2拡大体乱数Rが秘匿された状態で行われなければならない。このような方法はよく知られており、どのような方法が用いられてもよい。次に、各秘密計算装置Pの演算部が、第2秘匿化拡大体乱数[RとIとを用い、拡大体乗算値[R・I=R・I+・I∈Fεを得て出力する。さらに、各秘密計算装置Pの演算部が、第3秘匿化検証値[rと拡大体乗算値[R・Iとを用い、第4秘匿化検証値[r+[R・I=r・y+(r・y+R)・I+()・I∈Fεを得て出力する。ここで[r+[R・Iは、ε次拡大体Fε上の(3,N)シャミア秘密分散方式に則ったr・yの秘密分散値となっている。なぜなら、ε次拡大体Fε上の(3,N)シャミア秘密分散方式に則って秘密分散値を求めるための多項式をg”(χ)=r・y+(r・y+R)・χ+()・χ∈Fεとみなせ、χ=I=(i,0,…,0)としたg’(I)が[rとなり、χ=0=(0,0,…,0)としたg’(0)がr・yとなるからである。
【0017】
検証装置は、すべてのm=0,…,M−1についてr=0を満たす場合に認証成功と判定する。一方、検証装置は、何れかのm=0,…,M−1についてr=0を満たさない場合に認証失敗と判定する。以下に、方式1,2に対する検証装置の処理を示す。
【0018】
方式1の場合、第3秘匿化検証値[rが(κ,N)シャミア秘密分散方式に則った秘密分散値である場合、互いに相違する少なくともκ個の第3秘匿化検証値[rφ(1),…,[rφ(κ)が検証装置の復元部に入力され、検証装置の復元部は、第3秘匿化検証値[rφ(1),…,[rφ(κ)を用いて検証値rを復元して出力する。ただし、κは1以上N以下の正整数であり、{φ(1),…,φ(κ)}⊆{1,…,N}である。例えば、第3秘匿化検証値[rが(2K−1,N)シャミア秘密分散方式に則った秘密分散値である場合、検証装置の復元部は、少なくとも2K−1個の秘密計算装置から出力された第3秘匿化検証値[rφ(1),…,[rφ(2K−1)を用いて検証値rを復元して出力する。検証装置の判定部は、何れかの認証情報wに対し、すべてのm=0,…,M−1についてr=0を満たす場合に認証成功とする。一方、すべての認証情報wに対し、何れかのmについてr=0を満たさない場合に認証失敗とする。あるいは、方式1において検証装置が[r,…,[rM−1M−1の少なくとも一部を用いた秘密計算および復元を含む演算を行い、それによって得られた復元値を用い、すべてのm=0,…,M−1についてr=0を満たすか否かを判定してもよい。例えば、検証装置が[rμ,…,[rM−1M−1μを用いた秘密計算によって秘密分散値[r+…+rM−1M−1μを得、これらから復元されるr+…+rM−1M−1が0である場合にすべてのm=0,…,M−1についてr=0を満たすと判定し、r+…+rM−1M−1が0でない場合にm=0,…,M−1の何れかについてr=0を満たさないと判定してもよい。ただし、μ=φ(1),…,φ(κ)である。
【0019】
方式2の場合、検証装置は、前述の第4秘匿化検証値[r+[R・Iのうち、[rφ(1)+[Rφ(1)・I、[rφ(2)+[Rφ(2)・I、[rφ(3)+[Rφ(3)・Iを用い、ε次拡大体Fε上の(3,N)シャミア秘密分散方式に則って、[rφ(1)+[Rφ(1)・Iと[rφ(2)+[Rφ(2)・Iと[rφ(3)+[Rφ(3)・Iとに対する演算を行い、すべてのm=0,…,M−1についてr=0を満たす場合に認証成功と判定する。例えば、検証装置の復元部に[rφ(1)+[Rφ(1)・Iと[rφ(2)+[Rφ(2)・Iと[rφ(3)+[Rφ(3)・Iが入力され、検証装置の復元部はこれらを用いて検証値rを復元して出力する。検証装置の判定部は、何れかの認証情報wに対し、すべてのm=0,…,M−1についてr=0を満たす場合に認証成功とする。一方、すべての認証情報wに対し、何れかのmについてr=0を満たさない場合に認証失敗とする。あるいは、方式2において検証装置が[ri”+[Ri”・I”,…,[rM−1M−1i”+[RM−1i”・I”の少なくとも一部を用いた秘密計算および復元を含む演算を行い、それによって得られた復元値を用い、すべてのm=0,…,M−1についてr=0を満たすか否かを判定してもよい。ただし、i=φ(1),φ(2),φ(3)であり、I”=(i,0,…,0)∈Fεである。例えば、検証装置が[ri”+[Ri”・I”,…,[rM−1M−1i”+[RM−1i”・I”を用いた秘密計算によって秘密分散値[r+…+rM−1M−1i”を得、秘密分散値[r+…+rM−1M−1i”を復元して得られるr+…+rM−1M−1が0である場合にすべてのm=0,…,M−1についてr=0を満たすと判定し、r+…+rM−1M−1が0でない場合にm=0,…,M−1の何れかについてr=0を満たさないと判定してもよい。
【0020】
以上の手法では、秘匿化拡大体乱数[rを用いることで、w−ω≠0であるにもかかわらずr=0が復元されるような不正な秘匿化検証値が生成され、認証成功と判定されることを防止できる。また、w−ω=0である場合には拡大体乱数rの値にかかわらずr=0となるため、w−ω=0であるにもかかわらず認証失敗と判定されることはない。また各処理が秘密計算によって行われるため、認証情報を秘密に保ったまま認証処理を行うことができる。このように、認証情報を秘密に保ったまま、なりすましに対する安全性が高い認証処理を行うことができる。
【0021】
[第1実施形態]
次に図面を用いて本発明の第1実施形態を説明する。第1実施形態は方式1の一例である。
<構成>
図1に例示するように、本実施形態の秘密計算認証システム1は、利用者装置11、複数個の秘密計算装置12−1,…,12−N、および検証装置13を有し、これらはネットワークを通じて通信可能に構成されている。本実施形態のNは2以上の整数である。なお、説明の簡略化のため、図1の秘密計算認証システム1は利用者装置11および検証装置13をそれぞれ1個含むが、秘密計算認証システム1が2個以上の利用者装置11および/または検証装置13を含んでいてもよい。
【0022】
図2に例示するように、本実施形態の秘密計算装置12−iは、入力部121−i、出力部122−i、制御部124−i、演算部125−i,126−i,127−i、乱数生成部128−i、判定部129−i、および記憶部123−iを有する。秘密計算装置12−iは、制御部124−iの制御下で各処理を実行し、各部が得たデータは記憶部123−iに格納され、必要に応じて読み出されて他の処理に用いられる。図3Aに例示するように、本実施形態の利用者装置11は、入力部111、出力部112、制御部114、秘匿化部115、および表示部116を有する。利用者装置11は、制御部114の制御下で各処理を実行し、各部が得たデータは記憶部(図示せず)に格納され、必要に応じて読み出されて他の処理に用いられる。図3Bに例示するように、本実施形態の検証装置13は、入力部131、出力部132、制御部134、復元部136、および判定部137を有する。検証装置13は、制御部134の制御下で各処理を実行し、各部が得たデータは記憶部(図示せず)に格納され、必要に応じて読み出されて他の処理に用いられる。
【0023】
<事前処理>
各秘密計算装置12−i(ただし、i=1,…,N)の記憶部123−iには、事前登録された単数または複数の秘匿化認証情報[w]∈[F]が格納される。認証情報w自体は各秘密計算装置12−iに公開されない。なお、秘密計算認証システム1で使用される秘密分散方式は予め定められており、利用者装置11、複数個の秘密計算装置12−1,…,12−N、および検証装置13は、この秘密分散方式に則った秘密分散値に対する秘密計算を行う。
【0024】
<秘密計算認証処理>
図4に例示するように、まず利用者が利用者装置11(図3A)の入力部111に認証情報ωを入力する(ステップS1111)。認証情報ωは秘匿化部115に送られ、秘匿化部115は当該認証情報ωの秘密分散値である秘匿化認証情報[ω](ただし、i=1,…,N)を得て出力する(ステップS115)。秘匿化認証情報[ω]は出力部112に送られ、出力部112は各秘匿化認証情報[ω]を各秘密計算装置12−iに対して出力する(ステップS1121)。
【0025】
図5に例示するように、各秘匿化認証情報[ω]はネットワーク経由で各秘密計算装置12−i(図2)に送信され、入力部121−iに入力される(ステップS121−i)。秘匿化認証情報[ω]は判定部129−iに入力される。判定部129−iは記憶部123−iから何れかの秘匿化認証情報[w](例えば、ステップS1291−i以降の処理が行われていない何れかの秘匿化認証情報[w])を読み出し(ステップS123−i)、秘匿化認証情報[ω]のサイズと秘匿化認証情報[w]のサイズとが互いに同一であるかを判定する(ステップS1291−i)。これらが互いに同一でないと判定された場合には「失敗」を表す情報を出力し(ステップS1221−i)、ステップS1292−iの処理に進む。
【0026】
一方、秘匿化認証情報[ω]のサイズと秘匿化認証情報[w]のサイズとが互いに同一であると判定された場合、演算部125−i(第1演算部)はこれらの秘匿化認証情報[ω]および秘匿化認証情報[w]を入力とし、秘密計算によって秘匿化検証値[z]=[w−ω](第1秘匿化検証値)を得て出力する(ステップS125−i、図7)。乱数生成部128−iは、拡大体乱数rの秘密分散値である秘匿化拡大体乱数[r∈[Fε](ただし、m=0,…,M−1,M=ceil(L/ε))を得て出力する(ステップS128−i、図7)。演算部126−i(第2演算部)は、秘匿化検証値[z]を入力とし、秘密計算によってyを秘匿化した秘匿化検証値[y(第2秘匿化検証値)を得て出力する。ただし、z=(z,…,zL−1)=w−ωであり、z∈Fであり、j=0,…、L−1であり、y=(zεm,…,zε(m+1)−1)であり、q=ε(M−1),…,εM−1のうちq>L−1となるzが0である。すなわち、図7に例示するように、Mε−L=0であればz,…,zL−1の列をM等分して得られる各列がy=(zεm,…,zε(m+1)−1)である。Mε−L≠0であれば、m=0,…,M−2についてはy=(zεm,…,zε(m+1)−1)であり、m=M−1についてはzε(M−1),…,zL−1とMε−L個の0とからなる(zε(M−1),…,zL−1,0,…,0)がyM−1である(ステップS126−i)。演算部127−i(第3演算部)は、秘匿化拡大体乱数[rおよび秘匿化検証値[yを入力とし、秘密算によって秘匿化検証値[r(第3秘匿化検証値)を得て出力し、ステップS1292−iの処理に進む(ステップS127−i)。
【0027】
ステップS1292−iでは、記憶部123−iに格納されたすべての秘匿化認証情報[w]についてステップS123−i以降の処理が実行されたかを判定する(ステップS1292−i)。すべての秘匿化認証情報[w]についてステップS123−i以降の処理が実行されていない場合、処理がステップS123−iに戻される。一方、すべての秘匿化認証情報[w]についてステップS123−i以降の処理が実行された場合、ステップS1222−iの処理が実行される。
【0028】
ステップS1222−iでは、ステップS127−iで得られた秘匿化検証値[rが出力部122−iに入力される。ステップS127−iで得られた秘匿化検証値[rが存在しない場合には「失敗」を表す情報が出力部122−iに入力される。出力部122−iは秘匿化検証値[rまたは「失敗」を表す情報を検証装置13に対して出力する(ステップS1222−i)。
【0029】
図6に例示するように、秘匿化検証値[rまたは「失敗」を表す情報はネットワーク経由で検証装置13に送信され、検証装置13(図3B)の入力部131に入力される(ステップS131)。ここで「失敗」を表す情報が入力された場合、ステップS1322の処理が実行される。一方、秘匿化検証値[rを表す情報が入力された場合、ステップS136以降の処理が実行される(ステップS1370)
【0030】
ステップS136では、復元部136は同一のwに対応する秘匿化検証値[rφ(1),…,[rφ(K)を用いて検証値rを復元して出力する。ただし、{φ(1),…,φ(K)}⊆{1,…,N}である(ステップS136)。判定部137はr,…,rM−1M−1を入力とし、すべてのm=0,…,M−1についてr=0を満たすかを判定する(ステップS1371)。すべてのm=0,…,M−1についてr=0を満たすと判定された場合、判定部137は「認証が成功したことを表す情報」を出力する(ステップS1321)。一方、何れかのmについてr=0を満たさないと判定された場合、次に判定部137はすべてのwについてステップS136の処理を行ったかを判定する(ステップS1372)。何れかのwについてステップS136の処理を行っていないと判定された場合、処理がステップS136に戻る。一方、すべてのwについてステップS136の処理を行ったと判定された場合、ステップS1322の処理が実行される。ステップS1322では、判定部137が「認証が失敗したことを表す情報」を出力する(ステップS1322)。
【0031】
ステップS1321出力された「認証が成功したことを表す情報」またはステップS1322で出力された「認証が失敗したことを表す情報」である認証結果は出力部132に入力される。出力部132は認証結果を利用者装置11に対して出力する。認証結果は利用者装置11図3A)の入力部111に入力され(ステップS1112)、表示部116から表示される(ステップS116)。
【0032】
[第1実施形態の変形例]
検証装置13が[r,…,[rM−1M−1の少なくとも一部を用いた秘密計算および復元を含む演算を行い、それによって得られた復元値を用い、すべてのm=0,…,M−1についてr=0を満たすか否かを判定してもよい。前述した一例の他、例えば、検証装置13が[rμ,…,[rM−1M−1μを用いた秘密計算によって秘密分散値[r+rμ,[r+rμ,…,[rM−2M−2+rM−1M−1μを得、これらから復元されるr+r,r+r,…,rM−2M−2+rM−1M−1がすべて0である場合にすべてのm=0,…,M−1についてr=0を満たすと判定し、そうでない場合にm=0,…,M−1の何れかについてr=0を満たさないと判定してもよい。
【0033】
[第2実施形態]
次に図面を用いて本発明の第2実施形態を説明する。第2実施形態は方式2の一例である。以下では第1実施形態との相違点を中心に説明し、第1実施形態と共通する事項については同じ参照番号を用いて説明を簡略化する。また、以下では逐一説明しないが、特に断りのない限り、本実施形態では、秘密分散方式として(2,N)シャミア秘密分散方式が用いられる。
【0034】
<構成>
図1に例示するように、本実施形態の秘密計算認証システム2は、利用者装置11、複数個の秘密計算装置22−1,…,22−N、および検証装置23を有し、これらはネットワークを通じて通信可能に構成されている。本実施形態のNは3以上の整数である。なお、説明の簡略化のため、図1の秘密計算認証システム2は利用者装置11および検証装置3をそれぞれ1個含むが、秘密計算認証システム2が2個以上の利用者装置11および/または検証装置3を含んでいてもよい。
【0035】
図2に例示するように、本実施形態の秘密計算装置22−iは、入力部121−i、出力部122−i、制御部124−i、演算部125−i,126−i,127−i,223−i,224−i、乱数生成部128−i,228−i、判定部129−i、および記憶部123−iを有する。秘密計算装置22−iは、制御部124−iの制御下で各処理を実行し、各部が得たデータは記憶部123−iに格納され、必要に応じて読み出されて他の処理に用いられる。図3Bに例示するように、本実施形態の検証装置23は、入力部131、出力部132、制御部134、復元部236、および判定部137を有する。検証装置23は、制御部134の制御下で各処理を実行し、各部が得たデータは記憶部(図示せず)に格納され、必要に応じて読み出されて他の処理に用いられる。
【0036】
<事前処理>
第1実施形態と同じである。
【0037】
<秘密計算認証処理>
図4に例示するように、第1実施形態で説明したステップS1111,S115,S1121の処理が実行される。これによって利用者装置11から出力された各秘匿化認証情報[ω]は各秘密計算装置22−i(図2)の入力部121−iに入力される(ステップS121−i)。その後、第1実施形態で説明したステップS123−i,S1291−iの処理が実行され、ステップS1291−iで秘匿化認証情報[ω]のサイズと秘匿化認証情報[w]のサイズとが互いに同一でないと判定された場合には「失敗」を表す情報を出力し(ステップS1221−i)、ステップS1292−iの処理に進む。一方、秘匿化認証情報[ω]のサイズと秘匿化認証情報[w]のサイズとが互いに同一であると判定された場合には第1実施形態で説明したステップS125−i,S128−i,126−i,S127−iの処理が実行される。本実施形態では、r∈Fεであり、∈Fεであり、∈Fεであり、I∈Fεであり、[r=r・I∈Fεであり、[y=y・I∈Fεであり、[r=r・y+(r・y)・I+・I∈Fεである。
【0038】
その後、乱数生成部228−i(第2乱数生成部)が、拡大体乱数(第2拡大体乱数)R∈Fεの秘密分散値である秘匿化拡大体乱数(第2秘匿化拡大体乱数)[R=R・I∈Fεを得て出力する(ステップS228−i)。次に、演算部223−i(第4演算部)が、秘匿化拡大体乱数[RとIとをε次拡大体Fε上で乗算し、拡大体乗算値[R・I=R・I+・I∈Fεを得て出力する。ただし、∈Fεである(ステップS223−i)。さらに、演算部224−i(第5演算部)が、秘匿化検証値[rと拡大体乗算値[R・Iとを用い、秘匿化検証値(第4秘匿化検証値)[r+[R・I=r・y+(r・y+R)・I+()・I∈Fεを得て出力する(ステップS224−i)。
【0039】
ステップS1292−iでは、記憶部123−iに格納されたすべての秘匿化認証情報[w]についてステップS123−i以降の処理が実行されたかを判定する(ステップS1292−i)。すべての秘匿化認証情報[w]についてステップS123−i以降の処理が実行されていない場合、処理がステップS123−iに戻される。一方、すべての秘匿化認証情報[w]についてステップS123−i以降の処理が実行された場合、ステップS2222−iの処理が実行される。
【0040】
ステップS222−iでは、ステップS224−iで得られた秘匿化検証値[r+[R・Iが出力部122−iに入力される。ステップS224−iで得られた秘匿化検証値が存在しない場合には「失敗」を表す情報が出力部122−iに入力される。出力部122−iは秘匿化検証値[r+[R・Iまたは「失敗」を表す情報を検証装置13に対して出力する(ステップS2222−i)。
【0041】
図6に例示するように、秘匿化検証値[r+[R・Iまたは「失敗」を表す情報はネットワーク経由で検証装置23に送信され、検証装置23(図3B)の入力部131に入力される(ステップS31)。ここで「失敗」を表す情報が入力された場合、ステップS1322の処理が実行される。一方、秘匿化検証値[r+[R・Iを表す情報が入力された場合、ステップS236以降の処理が実行される。
【0042】
ステップS236では、復元部236が(3,N)シャミア秘密分散方式に則って、[rK(1)+[RK(1)・Iと[rK(2)+[RK(2)・Iと[rK(3)+[RK(3)・Iとを用いて検証値rを復元して出力する。ただし、{K(1),K(2),K(3)}⊆{1,…,N}である(ステップS236)。判定部137はr,…,rM−1M−1を入力とし、すべてのm=0,…,M−1についてr=0を満たすかを判定する(ステップS1371)。すべてのm=0,…,M−1についてr=0を満たすと判定された場合、判定部137は「認証が成功したことを表す情報」を出力する(ステップS1321)。一方、何れかのmについてr=0を満たさないと判定された場合、次に判定部137はすべてのwについてステップS236の処理を行ったかを判定する(ステップS1372)。何れかのwについてステップS236の処理を行っていないと判定された場合、処理がステップS236に戻る。一方、すべてのwについてステップS236の処理を行ったと判定された場合、ステップS1322の処理が実行される。ステップS1322では、判定部137が「認証が失敗したことを表す情報」を出力する(ステップS1322)。それ以降の処理は第1実施形態と同じである。
【0043】
[第2実施形態の変形例]
検証装置23が[ri”+[Ri”・I”,…,[rM−1M−1i”+[RM−1i”・I”の少なくとも一部を用いた秘密計算および復元を含む演算を行い、それによって得られた復元値を用い、すべてのm=0,…,M−1についてr=0を満たすか否かを判定してもよい。ただし、i=φ(1),φ(2),φ(3)であり、I”=(i,0,…,0)∈Fεである。前述した一例の他、例えば、検証装置23が[ri”+[Ri”・I”,…,[rM−1M−1i”+[RM−1i”・I”を用いた秘密計算によって、r+r,r+r,…,rM−2M−2+rM−1M−1それぞれの秘密分散値を生成し、これらから復元されるr+r,r+r,…,rM−2M−2+rM−1M−1がすべて0である場合にすべてのm=0,…,M−1についてr=0を満たすと判定し、そうでない場合にm=0,…,M−1の何れかについてr=0を満たさないと判定してもよい。
【0044】
[変形例等]
本発明は上述の実施形態に限定されるものではない。例えば、秘密計算装置12−1〜12−Nの少なくとも一部(例えば、すべての秘密計算装置12−1〜12−N)が利用者装置11を含んでいてもよいし、検証装置13を含んでいてもよい。また、各装置の各部で扱われる秘密分散値がすべて同じ秘密分散方式に則ったものであってもよいし、そうでなくてもよい。後者の場合、公知の秘密分散値の変換方法によって、特定の秘密分散方式に則った秘密分散値が他の秘密分散方式に則った秘密分散値に変換されてもよい。また、「αを用いてβを得る」とは、αを用いた計算によってβを算出することであってもよいし、αを用いた検索処理により、事前計算されていたβを抽出することであってもよい。
【0045】
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0046】
上記の各装置は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
【0047】
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
【0048】
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0049】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
【0050】
コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されるのではなく、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
【符号の説明】
【0051】
1,2 秘密計算認証システム
11 利用者装置
12−i,22−i 秘密計算装置
13,23 検証装置
図1
図2
図3
図4
図5
図6
図7