JP2016012111A - 暗号処理方法、暗号処理装置、および暗号処理プログラム - Google Patents

暗号処理方法、暗号処理装置、および暗号処理プログラム Download PDF

Info

Publication number
JP2016012111A
JP2016012111A JP2014135113A JP2014135113A JP2016012111A JP 2016012111 A JP2016012111 A JP 2016012111A JP 2014135113 A JP2014135113 A JP 2014135113A JP 2014135113 A JP2014135113 A JP 2014135113A JP 2016012111 A JP2016012111 A JP 2016012111A
Authority
JP
Japan
Prior art keywords
polynomial
encrypted
random number
data
encryption
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.)
Withdrawn
Application number
JP2014135113A
Other languages
English (en)
Inventor
武仲 正彦
Masahiko Takenaka
正彦 武仲
由美 酒見
yumi Sakami
由美 酒見
雅哉 安田
Masaya Yasuda
雅哉 安田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014135113A priority Critical patent/JP2016012111A/ja
Priority to US14/734,259 priority patent/US9614665B2/en
Publication of JP2016012111A publication Critical patent/JP2016012111A/ja
Withdrawn legal-status Critical Current

Links

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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Biomedical Technology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】準同型暗号を利用した暗号処理システムにおいて、暗号化された情報を簡便にキャンセルする。
【解決手段】
コンピュータによって実行される暗号処理方法の一例は、第1のデータを第1の変換多項式を用いて変換して第1の多項式を取得し、第1のデータに対応する乱数と第2のデータとを基に得られる式を、第2の変換多項式を用いて変換して第2の多項式を取得し、第1の変換多項式または前記第2の変換多項式のうち少なくとも一方を用いて前記乱数を変換して乱数多項式を取得し、第1の多項式と第2の多項式と乱数多項式とを、準同型暗号方式を用いて暗号化して、暗号化された第1の多項式と暗号化された第2の多項式と暗号化された乱数多項式とを取得し、暗号化された第1の多項式と暗号化された第2の多項式と暗号化された乱数多項式とを用いて、第1のデータと第2のデータとの照合を行うことを特徴とする。
【選択図】図10

Description

本発明は、暗号処理方法、暗号処理装置、および暗号処理プログラムに関する。
現在、個人情報、機密情報の保護の重要性が増す中、それらの情報を利用したサービスの市場が拡大しつつある。そのようなサービスとしては、たとえば、スマートフォンから取得できる個人ユーザの位置情報を活用したサービスなどがある。そこで、個人情報・機密情報を保護したままデータの利活用ができる秘匿化技術が注目されている。秘匿化技術の中には、データ種別・サービス要件に応じて、暗号技術や統計技術を使った技術がある。
暗号技術を用いた秘匿化技術として、準同型暗号技術がある。準同型暗号技術は、暗号化と復号とで一対の異なる鍵を用いる公開鍵暗号方式の1つで、暗号化したままデータ操作が可能となる機能を備えた暗号である。
準同型暗号方式を用いれば、暗号文の加算や乗算により、暗号文を復号することなく、加算や乗算を行った演算結果の暗号文を得ることができる。この準同型暗号の性質は、電子投票・電子現金などの分野や近年ではクラウド・コンピューティング分野において利用されることが期待されている。加算または乗算に関する準同型暗号方式として、乗算のみ可能なRSA暗号方式や、加算のみが可能なAdditive ElGamal暗号が知られている。乗算準同型暗号では、平文(メッセージ)a、bの暗号文をE(a)、E(b)とすると、平文の積a・bの暗号文E(a・b)を、E(a)とE(b)から計算することができる。また、加算準同型暗号では、平文a、bの暗号文をE(a)、E(b)とすると、平文の和a+bの暗号文E(a+b)を、E(a)とE(b)から計算することができる。準同型暗号方式を用いれば、暗号文の加算や乗算により、暗号文を復号することなく、加算や乗算を行った演算結果の暗号文を得ることができる。この準同型暗号の性質は、電子投票・電子現金などの分野や近年ではクラウド・コンピューティング分野において利用されることが期待されている。
最近、加算と乗算の両方に関して準同型性を有する暗号として完全準同型暗号が知られている(たとえば、非特許文献1、2)。加法と乗法が暗号化したままで計算できれば、排他的論理和、論理積、否定といった演算を暗号化したままで計算することができる。つまり、完全準同型暗号とは、すべての論理回路による演算に対して準同型性を有する暗号である。当初は、理論的な実現方法のみが示され、実用的な構成方法は明らかにされなかったが、鍵生成方法の具体的な構成方法の例や、暗号化できるデータの種類を拡張した暗号方式も提案されつつある。また、限定回だけ加算と乗算の両方が可能な準完全準同型暗号(Somewhat Homomorphic Encryption)があり、この暗号方式は完全準同型暗号に比べ暗号サイズと処理性能が大幅に少なくて済むため、より実用的な運用が期待されている。
一般に、暗号技術は2つの情報の類似性を検証する暗号処理システムにおいて使用されている。そのような暗号処理システムとしては、たとえば、生体認証システムが挙げられる(たとえば、非特許文献3)。たとえば、準同型暗号を応用した暗号処理システムでは、情報は計算サーバでは暗号化されて登録されるため、情報が漏れることはなく高い安全性を得ることができる。
C.Gentry、"Fully Homomorphic encryption using ideal lattices"、STOC2009、pp.169−178、2009 C.Gentry and S.Halevi、"Implementing Gentry’s Fully Homomorphic Encryption Scheme"、EUROCRYPT 2011、LNCS 6632、pp.129−148、 2011 安田、矢嶋、下山、小暮「複数企業が持つ購買履歴データのクラウド秘匿集計」SCIS 2012
しかし、準同型暗号を応用した暗号処理システムでは、ユーザがシステムを利用しなくなった場合に、暗号化された情報をシステムの鍵を変えることなくユーザが簡便にキャンセル(無効化)することが難しいという問題がある。
そこで、1つの側面では、本発明は、準同型暗号を利用した暗号処理システムにおいて、暗号化された情報を簡便にキャンセルすることを目的とする。
コンピュータによって実行される暗号処理方法の一例は、第1のデータを第1の変換多項式を用いて変換して第1の多項式を取得し、第1のデータに対応する乱数と第2のデータとを基に得られる式を、第2の変換多項式を用いて変換して第2の多項式を取得し、第1の変換多項式または前記第2の変換多項式のうち少なくとも一方を用いて前記乱数を変換して乱数多項式を取得し、第1の多項式と第2の多項式と乱数多項式とを、準同型暗号方式を用いて暗号化して、暗号化された第1の多項式と暗号化された第2の多項式と暗号化された乱数多項式とを取得し、暗号化された第1の多項式と暗号化された第2の多項式と暗号化された乱数多項式とを用いて、第1のデータと第2のデータとの照合を行うことを特徴とする。
実施形態の暗号処理装置および方法では、準同型暗号を利用した暗号処理システムにおいて、暗号化された情報を簡便にキャンセルすることができるという効果を奏する。
生態認証システムの概要を説明するための図である。 比較例における準同型暗号を利用した生体認証システムの概要を示す図である。 比較例における準同型暗号を利用した生体認証システムの端末の機能ブロックの例を示す図である。 比較例における準同型暗号を利用した生体認証システムの計算サーバの機能ブロック(登録時)の例を示す図である。 比較例における暗号化テンプレートのデータフォーマットの例を示す図である。 比較例における準同型暗号を利用した生体認証システムの計算サーバの機能ブロック(照合時)の例を示す図である。 比較例における準同型暗号を利用した生体認証システムの認証サーバの機能ブロックの例を示す図である。 比較例における準同型暗号を利用した生体認証方法の登録時の処理の流れの例を示す図である。 比較例における準同型暗号を利用した生体認証方法の照合時の処理の流れの例を示す図である。 実施例における準同型暗号を利用した生体認証システムの概要を示す図である。 実施例における準同型暗号を利用した生体認証システムの端末の機能ブロックの例を示す図である。 実施例における準同型暗号を利用した生体認証システムの端末の機能ブロックの別の例を示す図である。 乱数生成の例の概要を示す図である。 実施例における準同型暗号を利用した生体認証システムの計算サーバの機能ブロック(登録時)の例を示す図である。 実施例における暗号化テンプレートのデータフォーマットの例を示す図である。 実施例における暗号化テンプレートのデータフォーマットの別の例を示す図である。 実施例における準同型暗号を利用した生体認証システムの計算サーバの機能ブロック(照合時)の例を示す図である。 実施例における準同型暗号を利用した生体認証システムの計算サーバの機能ブロック(照合時)の別の例を示す図である。 実施例における準同型暗号を利用した生体認証システムの認証サーバの機能ブロックの例を示す図である。 準同型暗号を利用した暗号処理装置の構成の例を示す構成図である。 実施例における準同型暗号を利用した生体認証方法の登録時の処理の流れの例を示す図である。 実施例における準同型暗号を利用した生体認証方法の照合時の処理の流れの例を示す図である。 実施例における準同型暗号を利用した生体認証方法の照合時の処理の流れの別の例を示す図である。
以下では、まず、準同型暗号を用いた、ハミング距離などの秘匿距離の計算方法について説明する。以下では準同型暗号として、イデアル格子ベースの準同型暗号を例に説明する。その後、図1〜9を参照しながら比較例と図10〜22を参照しながら実施例を説明する。
<準同型暗号を用いた秘匿距離計算>
まず、準完全準同型暗号方式について説明する。以下で説明する準完全準同型暗号は、イデアル格子ベース準同型暗号とも呼ばれる。この名称は、イデアル格子を用いることで加法的準同型性と乗法的準同型性が導入されることに由来する。
完全準同型暗号とは、すべてのロジック回路による演算に対して準同型性を満たす暗号である。
以下の説明は、すべて準完全準同型暗号に関するものである。
準同型性の例としては、加算に関する準同型性や、乗算に関する準同型性がある。加算に関する準同型性や、乗算に関する準同型性とは、例えば、引数m、mについて、写像(関数)Fが、下の(1)または(2)が成立することである。すなわち、
が成立する。(1)の場合が加算に関して準同型、(2)の場合が乗算に関して準同型であるという。上の引数m、mを平文、写像Fとして暗号化関数Encを代入すれば、準同型暗号となる。平文m、mから暗号文Enc(m)、Enc(m)を得る演算を「暗号化」とも呼ぶ。暗号文Enc(m)、Enc(m)は誤解を生じない場合には、単に暗号文E(m)、E(m)と表記することがある。
準完全準同型暗号方式では、鍵ペア(pk、sk)と、平文m、m、…、mの公開鍵pkを用いて暗号化する関数である暗号化関数をEnc(または単にE)、秘密鍵skを用いて復号する復号関数をDecとすると、
を満たす写像Fの存在と、実行が保証される。準完全準同型暗号方式は公開鍵暗号方式である。ここで、Fは写像としたが、アルゴリズムであっても良い。さらに、写像Fは、加算および乗算の組み合わせによって表現可能であるとする。
上の数式(3)は次のことを意味する。左辺のプロセスをプロセスAと呼び、右辺のプロセスをプロセスBと呼ぶ。簡単のために、平文mを考える。プロセスAの暗号化のステップでは、平文mを公開鍵pkを用いて暗号化し、暗号データc=Enc(m)を得る。そして、この暗号データcについて、公開鍵pkを用いて所定の写像(アルゴリズム)Fを作用させる処理が行われ、処理結果rを得る。続いて、復号のステップでは、秘密鍵skを用いて、処理結果rの復号処理が行われ、復号結果R=Dec(F(Enc(m))が生成される。
一方プロセスBでは、平文mについて、所定の写像(アルゴリズム)Fを作用させる処理が行われ、処理結果R’=F(m)を得る。
上式は、プロセスAの結果r=Dec(F(Enc(m))と、プロセスBの結果R’=F(m)が等しいことを意味する。
さらに、平文m、m、…、mに対する準同型性は、
を意味する。ここで右辺では、暗号化関数Encの引数は、F(m、m、…、m)の一つだけであることに注意する。(任意のFに対して数4が成り立つとき完全準同型性を持つと呼ぶが、上記で説明したイデアル準同型暗号は有限回の加算と乗算の組み合わせで得られる写像Fに対してのみ準同型性をもつため、この暗号方式は準完全準同型暗号と呼ぶ)コメント:実際に完全準同型暗号を構成するためには、上記で説明した準完全準同型暗号を変形させる必要があるが、その変形方法は上記では述べていない。
鍵生成の方法には次のようなものがある。
鍵生成を行う際、次元nとビット長tの2つのパラメータが必要である。次元nとビット長tに対し、各成分の絶対値がtビット以下の整数となるn次元の乱数ベクトルv=(v、v、…、vn−1)を生成する。このとき、秘密鍵を、行列
とする。
また、上の行列Vのエルミート標準形である行列Bを公開鍵とする。エルミート標準形とは、整数行列に対して整数上の行基本変形を施して得られる下または上三角行列である。一般に、エルミート標準形が効率的に計算できることはよく知られており、公開鍵として行列Vのエルミート標準形である行列Bを用いることで、計算時間を短縮することができる。
暗号化について説明する。1ビットの平文bに対して公開鍵Bを用いて暗号化する場合、まず成分が0または1のn次元乱数ベクトルu=(u、u、…、un−1)を選び、e=(1、0、…、0)として、ベクトルa:
を生成する。このようにして得られたベクトルaをフレッシュ暗号文と呼ぶことがある。
1ビットの平文bの暗号文cは、
のように生成する。ここで、B−1は行列Bの逆行列とし、“q”は有理数qに最も近い整数値を与える関数とする。
1ビットの平文bの暗号文cの復号は、まず[数8]で定義されるn次元ベクトルa’、
を計算する。次に、n次元ベクトルa’の第1成分a’を取り、整数a’を2で割った余りが暗号文cを復号した値になる。
また、別の復号方法として、次のような方法が知られている。暗号文aの第1成分をcとする。また、wを秘密鍵Vの逆行列V−1の要素であり、かつ、奇数のものとする。さらに、
で、値域が[−d/2、d/2)なるものである。[数9]で、dは公開鍵Bの判別式とする。このとき、
によって、暗号文cを定義する。
暗号文cを、秘密鍵Vを用いて復号する場合、まず[数8]で定義される4次元ベクトルa’を計算する。次に、n次元ベクトルa’の第1成分a’を取り、整数a’を2で割った余りが暗号文cを復号した値になる。
上では、平文bが1ビットの場合を説明したが、平文の定義域を拡張することができる。平文bが{0、1、…、s−1}から選択される、すなわち平文空間サイズがsであるときも、上と同様の方法で、暗号化、復号を行うことができる。
平文空間サイズs以下の平文bに対して公開鍵Bを用いて暗号化する場合、まず成分が0または1のn次元乱数ベクトルu=(u、u、…、un−1)を選び、ベクトルa:
を生成する。上と同様、e=(1、0、…、0)である。このベクトルaもフレッシュ暗号文と呼ぶことがある。平文bの暗号文cは、上の[数7]と同様、
で与えられる。ここでベクトルc=(c、0、…、0)となることから、暗号文cは整数である。
平文bの暗号文cの復号は、まず以下のように定義されるn次元ベクトルa’、
を計算する。次に、n次元ベクトルa’の第1成分a’を取り、整数a’を平文空間サイズsで割った余りが暗号文cを復号した値になる。この復号処理は、ベクトルcに対して行列V−1を乗算する処理、及び、その乗算によって得られたベクトルに対し、行列Vを乗算する処理を行う。つまり、ベクトルと行列の積の計算を2回行うこととなる。このときの乗算回数は、ベクトルの要素数Dに比例し2×D回となる。また、扱うデータが大きい場合、乗算1回は多倍長の乗算となる。
暗号データの加算と乗算を説明する。上記の数値例のように、暗号文は必ず第一成分以外が0となるn次元ベクトルc=(c、0、…)として表せる。この暗号文の第1成分の整数は、平文bと平文空間サイズsと暗号化で利用するn次元ベクトルu=(u、u、…、un−1)を用いて、
として計算することも可能である。ただし、[x]は、
であり、値域が[−d/2、d/2)なる整数であり、dは公開鍵を表す行列Bの(1、1)成分、rは公開鍵を表す行列Bの(2、1)成分である。これにより、暗号文を整数データとしてみなすことができる。
2つの暗号文c、cに対し、暗号加算は[c+c]、暗号乗算は[c×c]として定義される。
上のような準同型暗号の性質を、2つのベクトルデータの比較に適用するためには、例えば以下のようにすれば良い。
ベクトルデータA=(a、a、…、a)とベクトルデータB=(b、b、…、b)があるとする。ここでは、ベクトルデータAとベクトルデータBは、n次元ベクトル量として書けるものとする。
ベクトルデータA=(a、a、…、a)に対して、変換多項式、
を計算する。このように、変換多項式a(x)では、ベクトルデータAの要素を累乗の昇順に並べる。そして、変換多項式a(x)を暗号化して暗号データEnc(a(x))を計算する。今の場合、
とする。
ベクトルデータB=(b、b、…、b)に対して、変換多項式、
を計算する。このように、変換多項式b(x)では、ベクトルデータBの要素を累乗の降順に並べる。そして、変換多項式b(x)を暗号化して暗号データEnc(b(x))を計算する。ベクトルデータB=(b、b、…、b)に対する変換多項式は、ベクトルデータA=(a、a、…、a)に対するものとは異なっている。
<準同型暗号を用いた秘匿距離計算>
次に、秘匿距離計算を行うために、事前に2つの整数C、Cを用意する。の整数C、Cは次の[数18]で定義される。
このとき、秘匿距離dは、
である。[数19]で、C×Enc(a(x))、C×Enc(b(x))はそれぞれ、暗号文上のハミング重みHW(a)、HW(b)に対応する。上の秘匿距離dを復号すると、2つのベクトルデータA=(a、a、…、a)とベクトルデータB=(b、b、…、b)のハミング距離となる。上記では秘匿距離としてハミング距離を用いたが、開示の方法は、ユークリッド距離などの距離計算やコサイン類似度などの類似度計算にも適用可能である。
また、[数18]、[数19]を用いた計算式以外にも、次のような計算が存在する。
たとえば、
とし、
に対して、秘匿距離dを
としても良い。
上記のように、まず、暗号鍵生成について、主に3つの鍵生成パラメータ(n、q、t)が必要である。nは2冪の整数で格子次元と呼ばれ、qは素数、tは素数qよりも小さい整数とする。暗号鍵生成の手順として、まず秘密鍵として各係数が非常に小さいn次元の多項式skをランダムに生成する(各係数の小ささはあるパラメータσで制限されてもよい)。次に、各係数がqより小さいn次元多項式aと各係数が非常に小さいn次元多項式eをランダムに生成する。そこで、a=−(a×sk +t×e)を計算し、組(a、a)を公開鍵pkと定義する(ただし、aの多項式計算時において、n次以上の多項式に対してx=−1、xn+1=−x、...、と計算することで、n次より小さい多項式を計算する。さらに、多項式の係数については、素数qで割った余りを出力する(このような演算を行う空間を、Rq=Fq[x]/(x+1)と表すことがある)。次に、各係数がtより小さいn次多項式で表される平文データmと公開鍵pk=(a、a)に対して、まず各係数が非常に小さい3つのn次元多項式u、f、gをランダムに生成し、平文データmの暗号データEnc(m、pk)=(c、c)を次のように定義する。(c、c)については、
と計算する。このとき、これらの計算も空間Rq上の演算を用いる。次に、2つの暗号文Enc(m、pk)=(c、c)とEnc(m、pk)=(d、d)に対して、暗号加算Enc(m、pk)+Enc(m、pk)を(c+d0、+d)と計算し、暗号乗算Enc(m、pk)×Enc(m、pk)を(c+d0、×d+c×d、c×d)と計算する。ここで、暗号乗算を行うと、暗号文のデータサイズが2成分ベクトルから3成分ベクトルになる。
最後に、復号処理であるが、複数の暗号乗算などの暗号操作などにより暗号文データの成分が増大したと仮定すると、暗号文c=(c、c、c、・・・)に対して、秘密鍵skを用いてDec(c、s)=[c+c×sk+c×sk2+・・・] mod tを計算することで、復号する。ここで、[z]の値は、整数zのqで割った余りwを計算し、w<qなら[z]=wを出力し、そうでなければ[z]=w―qを出力する。さらに、a mod tは整数aをtで割った余りを意味する。
以上のように、開示の方法は次のような特徴を有している。
(1)格子ベース準同型暗号を利用する、
(2)特徴量を表すベクトルを変換多項式によって多項式に変換する、
(3)変換多項式の暗号文とベクトルのハミング重みなどの重みの暗号文を用いる、
(4)秘匿距離計算として準同型暗号の多項式演算に関する準同型性を利用する。
このように、ハミング距離などの秘匿距離の計算に、準同型暗号を用いることによって、暗号データサイズと計算時間の大幅な削減が可能となる。
上のイデアル格子ベース準同型暗号の暗号化、復号は、次のように説明することもできる。
まず、用語を簡単に定義する。
格子とはZを整数環として、Z中の離散的な加法的部分群である。Z中でb、…、bn−1が線形独立だとすると、これらを並べて作られる正方行列B=[b、…、bnー1]を基底と呼ぶ。格子Lは、vをZの要素として、
と書くことができる。
格子Lがイデアル格子であるとは、格子Lと同型な環R=Z[x]/f(x)のイデアルIが存在することである。ここで、Z[x]は整数係数多項式環、f(x)は整数係数モニックなn次多項式である。
剰余環Rの1つの元、
で生成される単項イデアルの元は、a、a・x、a・x、a・xn−1の線形結合で書ける。aの転置をaと書く。
f(x)=x+1として、環R=Z[x]/(x+1)の整数係数モニック多項式a(x)=a+ax+…+an-1n−1を考える。ベクトルa=(a、a、…、an−1)を環R=Z[x]/(x+1)と同一視するためには、次のようにする。aに対して巡回行列を定義する。
これは上の[数5]と同一である。すると、2つの多項式a(x)、b(x)に対して、積をa(x)・b(x)=Rot(a)・bによって定義することができる。また、巡回行列Rot(a)は、基底行列となる。
すると、上の格子ベースの準同型暗号方法における鍵生成とは次のようなことである。つまり、環R=Z[x]/(x+1)のイデアルIと互いに素なイデアルJの基底行列を秘密鍵V、公開鍵Bはその基底行列のエルミート標準形である。たとえば、秘密鍵はRをランダム、かつノルムの小さな行列として、n1/2I+Rとすることができる。
このとき、暗号化は、平文bの暗号文cは、rをRから選び、c=b+rs mod Bの第1成分とする。平文bのノルムが小さければ、b=(c mod B)mod Iにより復号することができる。
上記のような格子ベースの準完全準同型暗号を用いてハミング距離などの秘匿距離を計算することによって、暗号ベクトルデータのサイズと秘匿距離計算の時間の両方を削減することができる。
なお上記の準同型演算は、イデアル格子、Ring−LWEベースのいずれを用いてもよい。
上で説明した準同型暗号方式は、生体認証システムだけでなく、タグ検索システムなどへの応用が考えられる。
<比較例>
図1は、暗号処理装置の一例として生態認証システムの概要を説明するための図である。
準同型暗号方式の応用例として、秘匿生体認証システムへの適用などのシーンが考えられる。準同型暗号を利用した秘匿生体認証システムの図1を用いて、説明する。このシステムは、指紋や静脈などの生体情報を利用した個人認証システムである。生体情報を利用した個人認証システムは、パスワードなどの複雑な情報を覚える必要がないため利用しやすい個人認証方式である反面、生体情報は各ユーザにとって終生不変な機密情報であるので生体情報漏洩などに対して強く保護しなければならないという課題がある。
図2は、比較例における準同型暗号を利用した生体認証システムの概要を示す図である。
図2に示した生体認証システム10では、ユーザの生体情報を準同型暗号で保護しつつ認証が可能となる方式である。システム10は、クライアント端末100(以下、クライアント端末を単に端末と呼ぶことがある)、計算サーバ110、認証サーバ120を含んでいる。
生体情報の登録時に生体認証システム10は、ユーザは指紋や静脈などの生体情報を端末100に入力する。端末100のバイナリ化部1002は特徴量を抽出し生体情報をベクトル化しベクトルAを得る。さらに暗号化部1004でベクトルAの多項式変換と準同型暗号化を行う。以下では、たとえば、ベクトルAを多項式1(たとえば[数14]のa(x))で多項式変換をし、準同型暗号化をしたものをE(A)と表す。別の例としては、ベクトルBを多項式2(たとえば[数16]のb(x))で多項式変換をし、準同型暗号化をしたものをE(B)と表す。暗号化部1004での暗号化の際には、公開鍵1006を用いる。また、登録でも暗号化部1012で公開鍵1012を用いて暗号化をすることもある。そして端末100は、準同型暗号化した生体情報E(A)を計算サーバ110に送り、計算サーバ110は、準同型暗号化した生体情報を、データベース(準同型暗号化テンプレート)1102に登録する。このとき、生体情報E(A)と一緒に、E(C)、E(C)をデータベース(準同型暗号化テンプレート)1102に登録しても良い。
照合時にユーザは、端末100に生体情報を入力し、バイナリ化部1008で生体情報をベクトル化してベクトルBを得る。暗号化部1010でベクトルAの多項式変換と準同型暗号化を行う。暗号化部1010での暗号化の際には、公開鍵1012を用いる。端末100は、ベクトル化生体情報を準同型暗号化したデータE(B)を計算サーバ110に送信し、計算サーバ110はデータベース1102に格納されているデータ(準同型暗号化テンプレート)を参照して、準同型暗号データ1104(E(A))と準同型暗号データ1116(E(B))との秘匿距離を計算する。そして計算サーバ110は、秘匿距離計算結果のみを準同型暗号の秘密鍵1204を持つ認証サーバ120に送信する。認証サーバ120の比較部1202は、受信した秘匿距離計算結果を復号し、復号結果と閾値を比較し、復号結果が閾値よりも小さい場合は、ユーザを認証する。
生体認証システム10において、2つの生体ベクトルデータを比較する際にはよくハミング距離計算を用いる。図2に示されている秘匿生体認証システム10の秘匿距離計算処理として、2つのベクトルデータを準同型暗号化した状態で、ハミング距離を計算することとする。図2の秘匿生体認証システムでは、計算サーバ110には準同型暗号化生体ベクトル情報をのみを送信し、計算サーバは秘密鍵を持たないため、ユーザの生体情報を知ることはできず、認証局も秘匿距離計算結果のみを復号するので、ユーザの生体情報(ベクトル化生体情報)を知ることはできない。これにより、秘密鍵を持つ認証サーバ120と計算サーバ110の両方が結託しない限り、ユーザの生体情報を保護したまま個人認証サービスを受けることができる。
図3〜7を参照して、比較例の生体認証システム10について、より詳細に説明する。
図3は、比較例における準同型暗号を利用した生体認証システムの端末の機能ブロックの例を示す図である。
生体認証システムの端末100のセンサ部1016はユーザの生体画像を取得する。
バイナリ特徴コード部1018は、センサ部1016で取得された生体画像を二値化するなどして、特徴コードを生成する。
多項式変換部1022は、登録/照合切替部1020に対して外部から入力される、登録時であるか照合時であるかを区別する命令に依存して、特徴コードを多項式変換して、多項式コードを出力する。
準同型暗号処理部1024は、公開鍵1006を用いて、多項式コードを暗号化する。準同型暗号処理部1024は、暗号化テンプレート/暗号化照合データを出力し、送信部1026から送信する。
そして、センサ部1016、バイナリ特徴コード部1018、多項式変換部1022、準同型暗号処理部1024、送信部1026は制御部1014によって制御され得る。
図4は、比較例における準同型暗号を利用した生体認証システムの計算サーバ110の機能ブロック(登録時)の例を示す図である。
受信部1110は、端末100から暗号化テンプレートを受信する。その暗号化テンプレートは、テンプレート登録部1112によって、暗号化テンプレートが格納されるデータベース1114に保存される。
図5は、比較例における暗号化テンプレートのデータフォーマットの例を示す図である。暗号化テンプレート116、たとえばユーザIDと暗号化テンプレートE(A)、E(C)、E(C)を含んでいる。
図6は、比較例における準同型暗号を利用した生体認証システムの計算サーバ110の機能ブロック(照合時)の例を示す図である。
受信部1110は、端末から暗号化照合データを受信する。暗号化照合データは、たとえばユーザIDと暗号化照合データE(B)を含んでいる。
準同型乗算部1116は、暗号化テンプレート保存部1112からE(A)と、定数E(C)を用いて両者の掛け算x=E(A)×E(R)を計算する。
準同型乗算部1118は、暗号化照合データからE(B)と、定数E(C)を用いて両者の掛け算y=E(C)×E(B)を計算する。
準同型乗算部1120は、暗号化テンプレート保存部1112からE(A)と、暗号化照合データからE(B)を用いて両者の掛け算z=E(A)×E(B)を計算する。
準同型加算部1122は、準同型乗算部1116、準同型乗算部1118、準同型乗算部1120からの出力x、y、zを用いて、暗号化ハミング距離E(HD)=x+y−2zを計算する。
準同型加算部1122は、準同型乗算部1116、準同型乗算部1118、準同型乗算部1120、準同型加算部1122は組み合わされて暗号化ハミング距離計算部1114を構成する。
送信部1124は、暗号化ハミング距離E(HD)を送信する。
図7は、比較例における準同型暗号を利用した生体認証システムの認証サーバ120の機能ブロックの例を示す図である。
認証サーバ120の受信部1208は、計算サーバ110から暗号化ハミング距離E(HD)を受信する。
準同型復号部1210は、秘密鍵1204を用いて、暗号化ハミング距離E(HD)を復号してハミング距離HDを得る。
比較部1212は、ハミング距離HDを予め与えられた閾値θと比較する。ハミング距離HDが閾値θより小さければユーザは認証され(OK)、そうでなければユーザは認証されない(NG)。
送信部1214は、比較部1212の比較結果(OK/NG)を送信する。
図8は、比較例における準同型暗号を利用した生体認証方法の登録時の処理の流れの例を示す図である。
処理が開始されるとS100でクライアント端末100のバイナリ化部1002は、生体認証のために登録される登録画像を用いて特徴コードAを生成する。
次のS102で端末100の暗号化部1004は、特徴コードAを暗号化し、暗号文E(A)を得る。S102の処理が終了すると、処理はS104に進む。
S104で端末100の送信部1026は、暗号文E(A)を送信する。S104の処理が終了すると、処理はS106に進む。
S106で計算サーバ110の受信部1110は、暗号文E(A)を受信する。S106の処理が終了すると、処理はS108に進む。
S108で計算サーバ110のテンプレート登録部1112は、暗号文E(A)をデータベース1102に格納する。
図9は、比較例における準同型暗号を利用した生体認証方法の照合時の処理の流れの例を示す図である。
処理が開始されるとS200でクライアント端末100のバイナリ化部1008は、照合に用いられる照合画像を用いて特徴コードBを生成する。
次のS202で端末100の暗号化部1010は、特徴コードBを暗号化し、暗号文E(B)を得る。S202の処理が終了すると、処理はS204に進む。
S204で端末100の送信部1026は、暗号文E(B)を送信する。S204の処理が終了すると、処理はS206に進む。
S206で計算サーバ110の受信部1110は、暗号文E(B)を受信する。S206の処理が終了すると、処理はS208に進む。
S208で計算サーバ110の暗号化ハミング距離計算部1114は、E(A)とE(B)の秘匿距離E(HD)を計算する。準同型乗算部1116で得られるx=E(A)×E(C)、準同型乗算部1118で得られるy=E(C)×E(B)、準同型乗算部1120で得られるz=E(A)×E(B)を用いて、暗号化ハミング距離E(HD)=x+y−2zを計算する。このとき、データベース1102に格納されている準暗号化テンプレートE(A)を参照する。
またS208で計算サーバ110の送信部1124は、暗号化ハミング距離E(HD)を送信する。S208の処理が終了すると、処理はS210に進む。
S210で認証サーバ120は、暗号化ハミング距離E(HD)を復号し、ハミング距離HDを予め与えられた閾値θと比較する。ハミング距離HDが閾値θより小さければユーザは認証され(OK)、そうでなければユーザは認証されない(NG)。
秘匿生体認証システム10において、生体情報は、計算サーバでは暗号化されて登録されるため、生の生体情報が漏れることはなく安全であると言える。しかし、ユーザがこのシステム10を利用しなくなった場合に、暗号化された生体情報をシステムの鍵を変えることなくユーザが簡便にキャンセルすることはできない。
以下で説明する実施例は、準同型暗号を利用した秘匿生体認証システムにおいて、計算サーバの処理負荷を大きく増加させることなく、ユーザによる登録された暗号化生体情報をキャンセルする処理を実現する。
<実施例>
以下、図10〜22を参照して実施例の暗号処理装置(生体認証システム)について説明する。以下では、平文Aを多項式1で多項式化したのち準同型暗号化したものをE(A)と表わすことがある。以下では、主に生体認証システムについて説明するが、生体認証システムのほか、タグ検索システムなどへの応用が可能である。
実施例の暗号処理装置(生体認証システム)は、ユーザが保管する乱数でテンプレートや照合データをマスクし、それを準同型暗号で二重に暗号化して送信する。そして実施例の暗号処理装置は、二重暗号化されたまま照合処理を行い、照合処理でマスクをキャンセルするマスクはユーザが変更できるので、ユーザによる登録生体情報のキャンセル(無効化)が可能である。
以下でも、既に説明した準同型暗号方式を利用する。登録用の生体情報を表すベクトルデータA=(a、a、・・・)と照合時の生体情報を表すベクトルデータB=(b、b、・・・)を暗号化して、秘匿距離を計算する場合を考える。本例では、秘匿距離はハミング距離を用いるが、他の距離を用いても良い。
まず加算マスクと呼ぶ方法について説明する。
この場合は、ユーザ固有かつ秘匿された暗号学的に安全な乱数ベクトルR=(r、r、・・・)を生成する。乱数ベクトルRを単に乱数とも呼ぶこともある。続いて公開鍵pkを用いてA、Rを2種類の多項式化と準同型暗号Eで暗号化し、暗号文E(R)、E(R)を計算する。多項式化と準同型暗号化に関しては、既に説明したものを使用し得る。2種類の多項式化は、第1の変換多項式は第1のベクトルの要素を累乗の昇順に並べ、第2の変換多項式は第2のベクトルの要素を累乗の降順に並べる、または第1の変換多項式は第1のベクトルの要素を累乗の降順に並べ、第2の変換多項式は前記第2のベクトルの要素を累乗の昇順に並べるものであっても良い。上記[数15]、[数17]はそのような多項式の組の例である。乱数(乱数ベクトル)Rは不揮発性メモリなどのメモリに格納しておいても良い。ただし、乱数Rは外部から書き換え可能であるとする。同様に、ベクトルBに対しても、乱数R、公開鍵pkに対して準同型暗号を用いた暗号文 E(B+R)を計算する。準同型暗号の性質から、二つの暗号文から、ふたつの平文ベクトルのハミング距離HD(A、B)の暗号文を生成することができる。
ここで、ユーザは乱数ベクトルRをR´に変更することで、システムの変更なく登録された暗号化生体情報をキャンセルすることができる。また、そのために増加する計算量は、準同型暗号加算2回、保存しなければならない情報が暗号化生体情報E(A)だけから、E(A)、E(R)と2倍に過ぎない。
また、乗算マスクと呼ぶ方法も存在する。
この場合は、ユーザ固有かつ秘匿された暗号学的に安全な乱数ベクトルR=(r、r、・・・)を生成し、その逆元R−1=(r −1、r −1、・・・)を計算する。そしてその乱数ベクトルRを用いて生体情報を表すベクトルAに対し、各項の乗算演算を行う。すなわちA×R−1=(a×r −1、a×r −1、・・・)を計算する。続いて公開鍵pkを用いてA×R−1、R、R−1を2種類の多項式化と準同型暗号Eで暗号化し、E(A×R−1)、E(R−1)、E(R)を計算する。多項式化と準同型暗号化に関しては、既に説明したものを使用し得る。同様に、ベクトルBに対しても、乱数R、公開鍵pkに対して準同型暗号を用いた暗号文E2(B×R)を計算する。準同型暗号の性質から、2つの暗号文から、ふたつの平文ベクトルのハミング距離HD(A、B)の暗号文を生成することができる。Rは不揮発性メモリなどのメモリに格納しておいても良い。
ここで、ユーザは乱数ベクトルRをR´に変更することで、システムの変更なく登録された暗号化生体情報をキャンセルすることができる。また、そのために増加する計算量は、元の計算量と全く同じであり、保存しなければならない情報が暗号化生体情報E(A)だけから、E(A×R−1)、E(R−1)、E(R)と3倍に過ぎない。
図10は、実施例における準同型暗号を利用した生体認証システムの概要を示す図である。図10に示されている生体認証システム20を暗号処理装置と呼ぶこともある。
図10に示した生体認証システム20は、加算マスクを用いる場合、クライアント端末200a(以下、クライアント端末を単に端末と呼ぶことがある)、計算サーバ210a、認証サーバ220を含んでいる。生体認証システム20は、乗算マスクを用いる場合、クライアント端末200b(以下、クライアント端末を単に端末と呼ぶことがある)、計算サーバ210b、認証サーバ220を含んでいる。
生体情報の登録時に生体認証システム20は、ユーザは指紋や静脈などの生体情報を端末200a(200b)に入力する。端末200のバイナリ化部2002は特徴量を抽出し生体情報をベクトル化しベクトルAを得る。さらに暗号化部2004でベクトルAと乱数Rの多項式変換と準同型暗号化を行い加算マスクの場合はE(A)、E(R)(乗算マスクの場合は、E(A×R−1)、E(R−1)、E(R))を得る。E(R)(加算マスクの場合)、(乗算マスクの場合は、E(R−1)、E(R))を乱数多項式と呼ぶことがある。ベクトルAと乱数Rは別々の多項式で変換される。多項式1、2の例は、次のようなa(x)、b(x)であり得る。
暗号化部2004での暗号化の際には、公開鍵2006を用いる。また、暗号化部2004は乱数Rを格納するメモリを有している。このメモリは不揮発性メモリであっても良い。そして端末200aは、加算マスクの場合はE(A)、E(R)(乗算マスクの場合は、E(A×R−1)、E(R−1)、E(R))を計算サーバ210aに送り、計算サーバ210は、準同型暗号化した生態情報を、データベース2102に登録する。
照合時にユーザは、端末200に生体情報を入力し、バイナリ化部2008で生体情報をベクトル化してベクトルBを得る。端末200aのマスク部2010ではベクトルBに対して加算マスクを施す。端末200bのマスク部2010ではベクトルBに対して乗算マスクを施す。暗号化部2012でベクトルB+Rの多項式変換と準同型暗号化を行う。以下、端末200a、端末200bを単に端末200と表現することがある。端末200は、加算マスクまたは乗算マスクを用いる。
暗号化部2012での暗号化の際には、公開鍵2014を用いる。端末200aは、加算マスクの場合、ベクトル化生体情報を準同型暗号化したデータE(B+R)(乗算マスクの場合は、E(B×R))を計算サーバ210a(210b)に送信する。
計算サーバ210a(210b)はデータベース(準同型暗号化テンプレート)2102に格納されているデータを参照して、秘匿距離計算部2104で加算マスクの場合は準同型暗号データE(A)と準同型暗号データE(B)との秘匿距離を計算する。この計算の前にアンマスク部2106で準同型暗号データE(B+R)(加算マスクの場合)またはE(B×R)(乗算マスクの場合)のアンマスクを行う。たとえば、E(B+R)をアンマスクするには、E(B+R)−E(R)を計算する。E(B×R)をアンマスクするには、E(B×R)×E(R−1)を計算する。そして計算サーバ210は、秘匿距離計算結果のみを準同型暗号の秘密鍵2204を持つ認証サーバ220に送信する。
認証サーバ220の比較部2202は、受信した秘匿距離計算結果を復号し、復号結果と閾値を比較し、復号結果が閾値よりも小さい場合は、ユーザを認証する。
図11は、加算マスクを用いる実施例における準同型暗号を利用した生体認証システムの端末200aの機能ブロックの例を示す図である。
端末200aのセンサ部2018はユーザの生体画像を取得する。
乱数入力部2022は、乱数の入力を受ける。乱数入力部2022はメモリであり、乱数が格納されていても良い。
バイナリ特徴コード部2020は、センサ部2018で取得された生体画像を二値化するなどして、特徴コードを生成する。特徴コードはベクトルであっても良い。
加算部2024は、特徴コードと乱数を加える。
切替2026は、登録/照合切替部2028に対して外部から入力される、登録時であるか照合時であるかを区別する命令に依存して、バイナリ特徴コード部2020からの出力を多項式変換部2030に入力するか(登録時)、加算部2024からの出力を多項式変換部2030に入力するか(照合時)を切り替える。
多項式変換部2030は、登録/照合切替部1020に対して外部から入力される、登録時であるか照合時であるかを区別する命令に依存して、入力されたA(登録時)またはB+R(照合時)を多項式変換して、多項式コードを出力する。
準同型暗号処理部2034は、公開鍵2032を用いて、多項式コードを暗号化する。準同型暗号処理部2034は、暗号化テンプレート/暗号化照合データを出力し、送信部2036から送信する。
センサ部2018、バイナリ特徴コード部2020、乱数入力部2022、加算部2024、切替2026、登録/照合切替部2028、多項式変換部2030、準同型暗号処理部2034、送信部2036は、制御部2016によって制御され得る。
図12は、乗算マスクを用いる実施例における準同型暗号を利用した生体認証システムの端末200bの機能ブロックの別の例を示す図である。
端末200bのセンサ部2042はユーザの生体画像を取得する。
バイナリ特徴コード部2050は、センサ部2042で取得された生体画像を二値化するなどして、特徴コードを生成する。特徴コードはベクトルであっても良い。
乱数入力部2046は、乱数の入力を受ける。乱数入力部2046はメモリであり、乱数が格納されていても良い。この場合、乱数が外部から書き換え可能であるとする。
逆数計算部2044は、乱数の逆数を計算する。
切替2048は、登録/照合切替部2054に対して外部から入力される、登録時であるか照合時であるかを区別する命令に依存して、乗算部2052に乱数を入力するか、乱数の逆数を入力するかを切り替える。
乗算部2052は、登録/照合切替部2054に対して外部から入力される、登録時であるか照合時であるかを区別する命令に依存して、登録時はA×R−1を、照合時はB×Rを計算する。
多項式変換部2056は、登録/照合切替部1054に対して外部から入力される、登録時であるか照合時であるかを区別する命令に依存して、入力されたA×R−1(登録時)またはB×R(照合時)を多項式変換して、多項式コードを出力する。
準同型暗号処理部2060は、公開鍵2058を用いて、多項式コードを暗号化する。準同型暗号処理部2060は、暗号化テンプレート/暗号化照合データを出力し、送信部2062から送信する。
図13は、乱数生成の例の概要を示す図である。
乱数入力部2022、2046に入力される乱数は、Password Base Key Derivation Function(PBKDF)等を用いて、外部から入力されるパスワードや鍵から乱数生成部2064で生成されても良い。
図14は、実施例における準同型暗号を利用した生体認証システムの計算サーバ210a(210b)の機能ブロック(登録時)の例を示す図である。
受信部2110は、端末200a(200b)から暗号化テンプレートを受信する。その暗号化テンプレートは、テンプレート登録部2112によって、暗号化テンプレート保存部2102に保存される。
図15Aは、加算マスクを用いる実施例における暗号化テンプレートのデータフォーマットの例を示す図である。
暗号化テンプレート/暗号化照合データ2142は、たとえばユーザIDと暗号化テンプレートE(A)、E(C)、E(C)、暗号化乱数E(R)を含んでいる。
図15Bは、乗算マスクを用いる実施例における暗号化テンプレートのデータフォーマットの別の例を示す図である。
暗号化テンプレート/暗号化照合データ2144は、たとえばユーザIDと暗号化テンプレートE(A×R−1)、暗号化乱数E(R)、暗号化逆数E(R−1)を含んでいる。
図16は、加算マスクを用いる実施例における準同型暗号を利用した生体認証システムの計算サーバ210aの機能ブロック(照合時)の例を示す図である。
受信部2110は、端末から暗号化照合データE(B+R)を受信する。
準同型加算部2114は、暗号化テンプレート保存部2102に格納されている乱数E(R)を参照して、E(B+R)−E(R)を計算する。
準同型乗算部2116は、暗号化テンプレート保存部2102に格納されているE(A)と、E(C)を用いて両者の掛け算x=E(A)×E(C)を計算する。
準同型乗算部2118は、暗号化テンプレート保存部2102に格納されているE(C)と、暗号化照合データからE(B)を用いて両者の掛け算y=E(C)×(E(B+R)−E(R))を計算する。
準同型乗算部2120は、暗号化テンプレート保存部2102に格納されているE(A)と、暗号化照合データから(E(B+R)−E(R))を用いて両者の掛け算z=E(A)×(E(B+R)−E(R))を計算する。
準同型加算部2022は、準同型乗算部2116、準同型乗算部2118、準同型乗算部2120からの出力x、y、zを用いて、暗号化ハミング距離E(HD)=x+y−2zを計算する。
準同型加算部2114、準同型乗算部2116、準同型乗算部2118、準同型乗算部2120、準同型加算部2122は組み合わされて暗号化ハミング距離計算部(秘匿距離計算部)2112を構成する。
送信部2024は、暗号化ハミング距離E(HD)を送信する。
図17は、乗算マスクを用いる実施例における準同型暗号を利用した生体認証システムの計算サーバの機能ブロック(照合時)の別の例を示す図である。
受信部2110は、端末から暗号化照合データE(B×R)を受信する。
準同型乗算部2132は、暗号化照合データ2102からE(A×R−1)と、暗号化乱数E(R)を用いて両者の掛け算x=E(A×R−1)×E(R)を計算する。
準同型乗算部2134は、暗号化照合データ2102からE(B×R)と、暗号化逆数E(R−1)を用いて両者の掛け算y=E(B×R)×E(R−1)を計算する。
準同型乗算部2136は、暗号化テンプレート保存部2102からE(A)と、暗号化照合データから(E(B+R)−E(R))を用いて両者の掛け算z=E(A)×(E(B+R)−E(R))を計算する。
準同型加算部2138は、準同型乗算部2132、準同型乗算部2134、準同型乗算部2136からの出力x、y、zを用いて、暗号化ハミング距離E(HD)=x+y−2zを計算する。
送信部2140は、暗号化ハミング距離E(HD)を送信する。
準同型乗算部2132、準同型乗算部2134、準同型乗算部2136、準同型加算部2138は組み合わされて暗号化ハミング距離計算部(秘匿距離計算部)2130を構成する。
図18は、実施例における準同型暗号を利用した生体認証システムの認証サーバ220の機能ブロックの例を示す図である。
認証サーバ220の受信部2208は、計算サーバ210から暗号化ハミング距離E(HD)を受信する。
準同型復号部2210は、秘密鍵2204を用いて、暗号化ハミング距離E(HD)を復号してハミング距離HDを得る。
比較部2212は、ハミング距離HDを予め与えられた閾値θと比較する。ハミング距離HDが閾値θより小さければユーザは認証され(OK)、そうでなければユーザは認証されない(NG)。
送信部2214は、比較部2212の比較結果(OK/NG)を送信する。
このように暗号処理装置20は、多項式変換部2030、3056と、暗号化部2034、2058と、秘匿距離計算部2112、2130と、比較部2212を含む。
多項式変換部2030、3056は、第1のデータを第1の変換多項式を用いて変換して第1の多項式を取得し、第1のデータに対応する乱数と第2のデータとを基に得られる式を、第2の変換多項式を用いて変換して第2の多項式を取得し、第1の変換多項式または前記第2の変換多項式のうち少なくとも一方を用いて前記乱数を変換して乱数多項式を取得する。。
暗号化部2034、2058は、第1の多項式と第2の多項式と乱数多項式とを、準同型暗号方式を用いて暗号化して、暗号化された第1の多項式と暗号化された第2の多項式と暗号化された乱数多項式とを取得する。
比較部は、暗号化された第1の多項式と暗号化された第2の多項式と暗号化された乱数多項式とを用いて、第1のデータと前記第2のデータとの照合を行う。
秘匿距離計算部2112、2130は、暗号化された第1の多項式と暗号化された第2の多項式と暗号化された乱数多項式とを用いて、復号すると第1のデータと第2のデータの間の秘匿距離となる暗号化秘匿距離を算出してもよい。この場合、比較部2212は、第1のデータと第2のデータとの照合を、秘匿距離と所定の値との比較によって行い得る。
ここで、乱数は、第1のベクトルと一対一の対応関係を有しても良い。
上記のような構成を採用することによって暗号処理装置は、準同型暗号を利用した暗号処理システムにおいて、暗号化された情報を簡便にキャンセルすることができるという効果を奏する。
図19は、準同型暗号を利用した暗号処理装置の構成の例を示す構成図である。準同型暗号装置は、汎用コンピュータ500として実現され得る。
このコンピュータ300は、CPU302、ROM304、RAM306、ハードディスク装置308、入力装置310、表示装置312、インタフェース装置314、及び記録媒体駆動装置316を備えている。なお、これらの構成要素はバスライン320を介して接続されており、CPU302の管理の下で各種のデータを相互に授受することができる。
CPU(Central Processing Unit)302は、このコンピュータ300全体の動作を制御する演算処理装置であり、コンピュータ300の制御処理部として機能する。
ROM(Read Only Memory)304は、所定の基本制御プログラムが予め記録されている読み出し専用半導体メモリである。CPU302は、この基本制御プログラムをコンピュータ300の起動時に読み出して実行することにより、このコンピュータ300の各構成要素の動作制御が可能になる。
RAM(Random Access Memory)306は、CPU302が各種の制御プログラムを実行する際に、必要に応じて作業用記憶領域として使用する、随時書き込み読み出し可能な半導体メモリである。
ハードディスク装置308は、CPU302によって実行される各種の制御プログラムや各種のデータを記憶しておく記憶装置である。CPU302は、ハードディスク装置308に記憶されている所定の制御プログラムを読み出して実行することにより、後述する各種の制御処理を行えるようになる。
入力装置310は、例えばマウス装置やキーボード装置であり、システムの利用者により操作されると、その操作内容に対応付けられている各種情報の入力を取得し、取得した入力情報をCPU302に送付する。
表示装置312は例えば液晶ディスプレイであり、CPU302から送付される表示データに応じて各種のテキストや画像を表示する。
インタフェース装置314は、このコンピュータ300に接続される各種機器との間での各種情報の授受の管理を行う。
記録媒体駆動装置316は、可搬型記録媒体318に記録されている各種の制御プログラムやデータの読み出しを行う装置である。CPU302は、可搬型記録媒体318に記録されている所定の制御プログラムを、記録媒体駆動装置316を介して読み出して実行することによって、後述する各種の制御処理を行うようにすることもできる。なお、可搬型記録媒体318としては、例えばUSB(Universal Serial Bus)規格のコネクタが備えられているフラッシュメモリ、CD−ROM(Compact Disc Read Only Memory)、DVD−ROM(Digital Versatile Disc Read Only Memory)などがある。
このようなコンピュータ300を用いて暗号処理装置を構成するには、例えば、上述の各処理部における処理をCPU302に行わせるための制御プログラム(暗号処理プログラム)を作成する。作成された制御プログラムはハードディスク装置308若しくは可搬型記録媒体318に予め格納しておく。そして、CPU302に所定の指示を与えてこの制御プログラム(暗号処理プログラム)を読み出させて実行させる。こうすることで、暗号処理装置が備えている機能がCPU302により提供される。
図20は、実施例における準同型暗号を利用した生体認証方法の登録時の処理の流れの例を示す図である。
処理が開始されるとS300でクライアント端末200のバイナリ化部2002は、外部から乱数Rの入力を受ける。この乱数はクライアント端末200のバイナリ化部2002に予め用意されていても良い。
次のS302でクライアント端末200のバイナリ化部2002は、生体認証のために登録される登録画像を用いて特徴コードAを生成する。S300の処理とS302の処理の順番は逆でも良い。
次のS304で端末200の暗号化部2004は、乱数Rと特徴コードAを暗号化し、暗号文E(R)、E(A)を得る。S102の処理が終了すると、処理はS104に進む。S304の処理が終了すると、処理はS306に進む。
S306で端末200の送信部2036は、暗号文E(R)、E(A)を送信する。S306の処理が終了すると、処理はS308に進む。
S308で計算サーバ210の受信部2110は、暗号文E(R)、E(A)を受信する。また、S308で計算サーバ210のテンプレート登録部2112は、暗号文E(R)、E(A)をデータベース(準同型暗号化テンプレート保存部)2102に格納する。
図21は、加算マスクを用いる実施例における準同型暗号を利用した生体認証方法の照合時の処理の流れの例を示す図である。
また、暗号処理装置が図19に示されているような汎用コンピュータ300である場合には、下記の説明は、そのような処理を行う制御プログラム(暗号処理プログラム)を定義する。すなわち、以下では、下記に説明する処理を汎用コンピュータに行わせる制御プログラム(暗号処理プログラム)の説明でもある。
以下の処理では、クライアント端末200のバイナリ化部2008に乱数Rが格納されており、ユーザはその乱数Rを新しい乱数R´に変更する処理を含んでいる。
処理が開始されるとS400でクライアント端末200のバイナリ化部2008は、旧乱数Rを入力する。
次のS402でクライアント端末200のバイナリ化部2008は、新乱数R´を入力する。単に従来の乱数を用いた照合処理だけならば、このステップは省略しても良い。
S404でクライアント端末200のバイナリ化部2008は、照合に用いられる照合画像を用いて特徴コードBを生成する。
S400〜S404の処理の順番は任意である。
S406で端末200の暗号化部2010は、特徴コードBと乱数Rの和B+Rを暗号化し、暗号文E(B+R)を得る。本ステップの処理が終了すると、処理はS408に進む。
S408で端末200の暗号化部2010は、乱数R´を暗号化しE(R´)を得る。本ステップの処理が終了すると、処理はS410に進む。単に従来の乱数を用いた照合処理だけならば、このステップは省略しても良い。
S410で端末200の送信部2026は、E(B+R)、E(R´)を送信する。単に従来の乱数を用いた照合処理だけならば、E(B+R)のみを送信しても良い。本ステップの処理が終了すると、処理はS412に進む。
S412で計算サーバ210の受信部2110は、E(B+R)、E(R´)を受信する。本ステップの処理が終了すると、処理はS414に進む。
次のS414で計算サーバ210のアンマスク部2106は、アンマスク処理を行う。加算マスクの場合は、E(B+R)−E(R)を計算することによってアンマスクすることができる。本ステップの処理が終了すると、処理はS416に進む。
S416で計算サーバ210の秘匿距離計算部2104は、E(A)とE(B)の秘匿距離、たとえばハミング距離HDを計算する。またS416で計算サーバ210の送信部2124は、計算結果を認証サーバ220に送る。本ステップの処理が終了すると、処理はS418に進む。
S418で認証サーバ220の受信部2208は計算サーバ210から送られた暗号化された秘匿距離、たとえばハミング距離HDを受信し、準同型複合部2210で復号する。そして、比較部2212で閾値θと復号されたハミング距離HDを比較する。ハミング距離HDが閾値θより小さければユーザは認証され(OK)、そうでなければユーザは認証されない(NG)。
次のS420で認証サーバ220の送信部2214は判定結果を計算サーバ210に送信する。本ステップの処理が終了すると、処理はS422に進む。
S422で計算サーバ210の受信部2110は、判定結果を受信する。本ステップの処理が終了すると、処理はS424に進む。
S424で計算サーバ210は、ユーザが認証されたか否かを判定する。この判定の結果が“YES”、つまり照合しようとしているユーザが新規のユーザではない場合、新たな処理をせずに終了する。この判定の結果が“NO”、つまり照合しようとしているユーザが新規のユーザである場合、ユーザが登録された暗号化生体情報をキャンセルするために、処理はS426に進む。
S426で計算サーバ210は、E(A)とE(R´)をデータベース2102に登録する。
図22は乗算マスクを用いる実施例における準同型暗号を利用した生体認証方法の照合時の処理の流れの例を示す図である。
また、暗号処理装置が図19に示されているような汎用コンピュータ300である場合には、下記の説明は、そのような処理を行う制御プログラム(暗号処理プログラム)を定義する。すなわち、以下では、下記に説明する処理を汎用コンピュータに行わせる制御プログラム(暗号処理プログラム)の説明でもある。
処理が開始されるとS500でクライアント端末200のバイナリ化部2008は、旧乱数Rを入力する。
次のS502でクライアント端末200のバイナリ化部2008は、新乱数R´を入力する。単に従来の乱数を用いた照合処理だけならば、このステップは省略しても良い。
S504でクライアント端末200のバイナリ化部2008は、照合に用いられる照合画像を用いて特徴コードBを生成する。
S500〜S504の処理の順番は任意である。
S506で端末200の暗号化部2010は、特徴コードBと乱数Rの積B×Rを暗号化し、暗号文E(B×R)を得る。本ステップの処理が終了すると、処理はS508に進む。
S508で端末200の暗号化部2010は、特徴コードBと乱数Rの逆数の積B×R´−1、乱数Rの逆数R´−1、乱数R´を暗号化し、E(B×R´−1)、E(R´−1)、E(R´)を得る。本ステップの処理が終了すると、処理はS510に進む。単に従来の乱数を用いた照合処理だけならば、このステップは省略しても良い。
S510で端末200の送信部2026は、E(B×R)、E(B×R´−1)、E(R´−1)、E(R´)を送信する。単に従来の乱数を用いた照合処理だけならば、E(B×R)のみを送信しても良い。本ステップの処理が終了すると、処理はS512に進む。
S512で計算サーバ210の受信部2110は、E(B×R)、E(B×R´−1)、E(R´−1)、E(R´)を受信する。本ステップの処理が終了すると、処理はS514に進む。
次のS514で計算サーバ210のアンマスク部2106は、アンマスク処理を行う。加算マスクの場合は、E(B×R)×E(R−1)を計算することによってアンマスクすることができる。本ステップの処理が終了すると、処理はS516に進む。
S516で計算サーバ210の秘匿距離計算部2104は、E(A)とE(B)の秘匿距離、たとえばハミング距離HDを計算する。またS516で計算サーバ210の送信部2124は、計算結果を認証サーバ220に送る。本ステップの処理が終了すると、処理はS518に進む。
S518で認証サーバ220の受信部2208は計算サーバ210から送られた暗号化された秘匿距離、たとえばハミング距離HDを受信し、準同型複合部2210で復号する。そして、比較部2212で閾値θと復号されたハミング距離HDを比較する。ハミング距離HDが閾値θより小さければユーザは認証され(OK)、そうでなければユーザは認証されない(NG)。
次のS520で認証サーバ220の送信部2214は判定結果を計算サーバ210に送信する。本ステップの処理が終了すると、処理はS522に進む。
S522で計算サーバ210の受信部2110は、判定結果を受信する。本ステップの処理が終了すると、処理はS424に進む。
S524で計算サーバ210は、ユーザが認証されたか否かを判定する。この判定の結果が“YES”、つまり照合しようとしているユーザが新規のユーザではない場合、新たな処理をせずに終了する。この判定の結果が“NO”、つまり照合しようとしているユーザが新規のユーザである場合、ユーザが登録された暗号化生体情報をキャンセルするために、処理はS526に進む。
S526で計算サーバ210は、E(B×R´−1)、E(R´−1)、E(R´)をデータベース2102に登録する。
上記のような処理を用いることで、準同型暗号を利用した暗号処理システムにおいて、暗号化された情報を簡便にキャンセルすることができるという効果を奏する。
また、上記の方法では、ユーザによる生体特徴ベクトルのキャンセル・再登録は乱数RをR´に変更すればよく、暗号化生体情報の再登録は不要であるという利点を有する。
上記実施例に関し、さらに以下の付記を開示する。
(付記1)
コンピュータによって実行される暗号処理方法であって、
第1のデータを第1の変換多項式を用いて変換して第1の多項式を取得し、
前記第1のデータに対応する乱数と第2のデータとを基に得られる式を、第2の変換多項式を用いて変換して第2の多項式を取得し、
前記第1の変換多項式または前記第2の変換多項式のうち少なくとも一方を用いて前記乱数を変換して乱数多項式を取得し、
前記第1の多項式と前記第2の多項式と前記乱数多項式とを、準同型暗号方式を用いて暗号化して、暗号化された第1の多項式と暗号化された第2の多項式と暗号化された乱数多項式とを取得し、
前記暗号化された第1の多項式と前記暗号化された第2の多項式と前記暗号化された乱数多項式とを用いて、前記第1のデータと前記第2のデータとの照合を行う、
を含む暗号処理方法。
(付記2)
さらに、
前記暗号化された第1の多項式と前記暗号化された第2の多項式と前記暗号化された乱数多項式とを用いて、復号すると前記第1のデータと前記第2のデータの間の秘匿距離となる暗号化秘匿距離を算出し、
前記第1のデータと前記第2のデータとの前記照合は、前記秘匿距離と所定の値との比較によって行う、付記1に記載の暗号処理方法。
(付記3)
第2のベクトルと前記乱数を演算して得られる式は、第2のベクトルと前記乱数の和である、付記1または2に記載の暗号処理方法。
(付記4)
第2のベクトルと前記乱数を演算して得られる式は、第2のベクトルと前記乱数の積である、付記1または2に記載の暗号処理方法。
(付記5)
さらに、
外部から入力されパスワードを用いて、前記乱数を生成することを含む、付記1乃至4のいずれか一項に記載の暗号処理方法。
(付記6)
前記第1の変換多項式は前記第1のベクトルの要素を累乗の昇順に並べ、前記第2の変換多項式は前記第2のベクトルの要素を累乗の降順に並べる、または前記第1の変換多項式は前記第1のベクトルの要素を累乗の降順に並べ、前記第2の変換多項式は前記第2のベクトルの要素を累乗の昇順に並べる、付記1乃至4のいずれか一項に記載の暗号処理方法。
(付記7)
第1のデータを第1の変換多項式を用いて変換して第1の多項式を取得する多項式変換部と、
前記第1のデータに対応する乱数と第2のデータとを基に得られる式を、第2の変換多項式を用いて変換して第2の多項式を取得し、前記第1の変換多項式または前記第2の変換多項式のうち少なくとも一方を用いて前記乱数を変換して乱数多項式を取得し、前記第1の多項式と前記第2の多項式と前記乱数多項式とを、準同型暗号方式を用いて暗号化して、暗号化された第1の多項式と暗号化された第2の多項式と暗号化された乱数多項式とを取得する暗号化部と、
前記暗号化された第1の多項式と前記暗号化された第2の多項式と前記暗号化された乱数多項式とを用いて、前記第1のデータと前記第2のデータとの照合を行う比較部と、
を含む暗号処理装置。
(付記8)
さらに、
前記暗号化された第1の多項式と前記暗号化された第2の多項式と前記暗号化された乱数多項式とを用いて、復号すると前記第1のデータと前記第2のデータの間の秘匿距離となる暗号化秘匿距離を算出する秘匿距離算出部と、
を含み、
前記比較部は、前記第1のデータと前記第2のデータとの前記照合は、前記秘匿距離と所定の値との比較によって行う、付記7に記載の暗号処理方法。
(付記9)
第2のベクトルと前記乱数を演算して得られる式は、第2のベクトルと前記乱数の和である、付記7または8に記載の暗号処理装置。
(付記10)
第2のベクトルと前記乱数を演算して得られる式は、第2のベクトルと前記乱数の積である、付記7または8に記載の暗号処理装置。
(付記11)
さらに、
外部から入力されパスワードを用いて、前記乱数を生成する乱数生成部を含む、付記7乃至10のいずれか一項に記載の暗号処理装置。
(付記12)
前記多項式変換部は、前記第1の変換多項式は前記第1のベクトルの要素を累乗の昇順に並べ、前記第2の変換多項式は前記第2のベクトルの要素を累乗の降順に並べる、または前記第1の変換多項式は前記第1のベクトルの要素を累乗の降順に並べ、前記第2の変換多項式は前記第2のベクトルの要素を累乗の昇順に並べる、付記7乃至11のいずれか一項に記載の暗号処理装置。
(付記13)
第1のデータを第1の変換多項式を用いて変換して第1の多項式を取得し、
前記第1のデータに対応する乱数と第2のデータとを基に得られる式を、第2の変換多項式を用いて変換して第2の多項式を取得し、
前記第1の変換多項式または前記第2の変換多項式のうち少なくとも一方を用いて前記乱数を変換して乱数多項式を取得し、
前記第1の多項式と前記第2の多項式と前記乱数多項式とを、準同型暗号方式を用いて暗号化して、暗号化された第1の多項式と暗号化された第2の多項式と暗号化された乱数多項式とを取得し、
前記暗号化された第1の多項式と前記暗号化された第2の多項式と前記暗号化された乱数多項式とを用いて、前記第1のデータと前記第2のデータとの照合を行う
処理をコンピュータに実行させることを特徴とする暗号処理プログラム。
(付記14)
さらに、
前記暗号化された第1の多項式と前記暗号化された第2の多項式と前記暗号化された乱数多項式とを用いて、復号すると前記第1のデータと前記第2のデータの間の秘匿距離となる暗号化秘匿距離を算出し、
前記第1のデータと前記第2のデータとの前記照合は、前記秘匿距離と所定の値との比較によって行う処理をコンピュータに実行させることを特徴とする、付記13に記載の暗号処理プログラム。
(付記15)
第2のベクトルと前記乱数を演算して得られる式は、第2のベクトルと前記乱数の和である、付記13または14に記載の暗号処理プログラム。
(付記16)
第2のベクトルと前記乱数を演算して得られる式は、第2のベクトルと前記乱数の積である、付記13または14に記載の暗号処理プログラム。
(付記17)
さらに、
外部から入力されパスワードを用いて、前記乱数を生成する処理をコンピュータに実行させることを特徴とする、付記13乃至16のいずれか一項に記載の暗号処理プログラム。
(付記18)
前記第1の変換多項式は前記第1のベクトルの要素を累乗の昇順に並べ、前記第2の変換多項式は前記第2のベクトルの要素を累乗の降順に並べる、または前記第1の変換多項式は前記第1のベクトルの要素を累乗の降順に並べ、前記第2の変換多項式は前記第2のベクトルの要素を累乗の昇順に並べる、付記13乃至17のいずれか一項に記載の暗号処理プログラム。
10、20 生体認証システム
100、200(200a、200b) クライアント端末(端末)
110、210(210a、210b) 計算サーバ
120、220 認証サーバ
1002、1008、 バイナリ化部
1004、1010 暗号化部
1006、1012 公開鍵
1102、1112、2102 データベース
1110 受信部
1016、2018、2042 センサ部
1018、2020、2050 バイナリ特徴コード化部
1020、2028、2054 登録/照合切替部
1022、2030、2056 多項式変換部
1024、2032、2060 準同型暗号処理部
1124、2140、1026、2026、2062、2124、2214 送信部
1116、1118、1120 準同型乗算部
1122 準同型加算部
1014、2016、2108、2040、2126、2206 制御部
2022、2046 乱数入力部
2024 加算部
2052 乗算部
2026、2048 切替
2110、2126 受信部
2112 暗号化ハミング距離計算部
2114、2122、2138 準同型加算部
2116、2118、2120、2132、2134、2136 準同型乗算部
2122 テンプレート登録部
1202、2212 比較部
1204 秘密鍵
2210 準同型復号部

Claims (8)

  1. コンピュータによって実行される暗号処理方法であって、
    第1のデータを第1の変換多項式を用いて変換して第1の多項式を取得し、
    前記第1のデータに対応する乱数と第2のデータとを基に得られる式を、第2の変換多項式を用いて変換して第2の多項式を取得し、
    前記第1の変換多項式または前記第2の変換多項式のうち少なくとも一方を用いて前記乱数を変換して乱数多項式を取得し、
    前記第1の多項式と前記第2の多項式と前記乱数多項式とを、準同型暗号方式を用いて暗号化して、暗号化された第1の多項式と暗号化された第2の多項式と暗号化された乱数多項式とを取得し、
    前記暗号化された第1の多項式と前記暗号化された第2の多項式と前記暗号化された乱数多項式とを用いて、前記第1のデータと前記第2のデータとの照合を行う、
    を含む暗号処理方法。
  2. さらに、
    前記暗号化された第1の多項式と前記暗号化された第2の多項式と前記暗号化された乱数多項式とを用いて、復号すると前記第1のデータと前記第2のデータの間の秘匿距離となる暗号化秘匿距離を算出し、
    前記第1のデータと前記第2のデータとの前記照合は、前記秘匿距離と所定の値との比較によって行う、請求項1に記載の暗号処理方法。
  3. 第2のベクトルと前記乱数を演算して得られる式は、第2のベクトルと前記乱数の和である、請求項1または2に記載の暗号処理方法。
  4. 第2のベクトルと前記乱数を演算して得られる式は、第2のベクトルと前記乱数の積である、請求項1または2に記載の暗号処理方法。
  5. さらに、
    外部から入力されパスワードを用いて、前記乱数を生成することを含む、請求項1乃至4のいずれか一項に記載の暗号処理方法。
  6. 前記第1の変換多項式は前記第1のベクトルの要素を累乗の昇順に並べ、前記第2の変換多項式は前記第2のベクトルの要素を累乗の降順に並べる、または前記第1の変換多項式は前記第1のベクトルの要素を累乗の降順に並べ、前記第2の変換多項式は前記第2のベクトルの要素を累乗の昇順に並べる、請求項1乃至4のいずれか一項に記載の暗号処理方法。
  7. 第1のデータを第1の変換多項式を用いて変換して第1の多項式を取得する多項式変換部と、
    前記第1のデータに対応する乱数と第2のデータとを基に得られる式を、第2の変換多項式を用いて変換して第2の多項式を取得し、前記第1の変換多項式または前記第2の変換多項式のうち少なくとも一方を用いて前記乱数を変換して乱数多項式を取得し、前記第1の多項式と前記第2の多項式と前記乱数多項式とを、準同型暗号方式を用いて暗号化して、暗号化された第1の多項式と暗号化された第2の多項式と暗号化された乱数多項式とを取得する暗号化部と、
    前記暗号化された第1の多項式と前記暗号化された第2の多項式と前記暗号化された乱数多項式とを用いて、前記第1のデータと前記第2のデータとの照合を行う比較部と、
    を含む暗号処理装置。
  8. 第1のデータを第1の変換多項式を用いて変換して第1の多項式を取得し、
    前記第1のデータに対応する乱数と第2のデータとを基に得られる式を、第2の変換多項式を用いて変換して第2の多項式を取得し、
    前記第1の変換多項式または前記第2の変換多項式のうち少なくとも一方を用いて前記乱数を変換して乱数多項式を取得し、
    前記第1の多項式と前記第2の多項式と前記乱数多項式とを、準同型暗号方式を用いて暗号化して、暗号化された第1の多項式と暗号化された第2の多項式と暗号化された乱数多項式とを取得し、
    前記暗号化された第1の多項式と前記暗号化された第2の多項式と前記暗号化された乱数多項式とを用いて、前記第1のデータと前記第2のデータとの照合を行う
    処理をコンピュータに実行させることを特徴とする暗号処理プログラム。
JP2014135113A 2014-06-30 2014-06-30 暗号処理方法、暗号処理装置、および暗号処理プログラム Withdrawn JP2016012111A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014135113A JP2016012111A (ja) 2014-06-30 2014-06-30 暗号処理方法、暗号処理装置、および暗号処理プログラム
US14/734,259 US9614665B2 (en) 2014-06-30 2015-06-09 Encryption processing method, encryption processing device, and computer-readable recording medium storing program for encryption processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014135113A JP2016012111A (ja) 2014-06-30 2014-06-30 暗号処理方法、暗号処理装置、および暗号処理プログラム

Publications (1)

Publication Number Publication Date
JP2016012111A true JP2016012111A (ja) 2016-01-21

Family

ID=54931700

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014135113A Withdrawn JP2016012111A (ja) 2014-06-30 2014-06-30 暗号処理方法、暗号処理装置、および暗号処理プログラム

Country Status (2)

Country Link
US (1) US9614665B2 (ja)
JP (1) JP2016012111A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018042045A (ja) * 2016-09-06 2018-03-15 日本電気株式会社 照合システムと方法とプログラム
JP2019517684A (ja) * 2016-12-13 2019-06-24 深▲せん▼市全同態科技有限公司 モジュロ演算に基づく完全準同型暗号化の処理方法
US11128462B2 (en) 2016-12-15 2021-09-21 Nec Corporation Matching system, method, apparatus, and program
WO2022201234A1 (ja) * 2021-03-22 2022-09-29 日本電信電話株式会社 秘密検索方法、秘密検索システム、秘密検索装置、暗号化装置、検索者端末、およびプログラム
WO2022201235A1 (ja) * 2021-03-22 2022-09-29 日本電信電話株式会社 秘密検索方法、秘密検索システム、秘密検索装置、暗号化装置、検索者端末、およびプログラム
CN115348017A (zh) * 2022-10-18 2022-11-15 阿里巴巴(中国)有限公司 密文处理方法以及装置
JP2023082650A (ja) * 2021-12-02 2023-06-14 プロパティエージェント株式会社 情報処理システム、プログラムおよび情報処理方法

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6413598B2 (ja) * 2014-10-10 2018-10-31 富士通株式会社 暗号処理方法、暗号処理装置、及び暗号処理プログラム
WO2017008043A1 (en) * 2015-07-08 2017-01-12 Brown University Homomorphic encryption
EP3119031A1 (en) * 2015-07-16 2017-01-18 ABB Schweiz AG Encryption scheme using multiple parties
WO2017065123A1 (ja) * 2015-10-13 2017-04-20 日本電信電話株式会社 秘密乱数合成装置、秘密乱数合成方法、およびプログラム
US10116437B1 (en) * 2015-12-14 2018-10-30 Ingram Micro, Inc. Method for protecting data used in cloud computing with homomorphic encryption
FR3048102B1 (fr) 2016-02-24 2018-03-09 Commissariat A L'energie Atomique Et Aux Energies Alternatives Methode d'execution confidentielle d'un programme operant sur des donnees chiffrees par un chiffrement homomorphe
JP6974461B2 (ja) 2016-08-02 2021-12-01 エックス−ロゴス、エルエルシー 幾何代数を用いた高度データ中心型暗号化システムのための方法およびシステム
JP6629466B2 (ja) * 2017-01-20 2020-01-15 日本電信電話株式会社 秘密計算システム、秘密計算装置、秘密計算方法、プログラム
WO2018140961A1 (en) * 2017-01-30 2018-08-02 X-Logos, LLC Methods and systems for enhanced data-centric additive homomorphic encryption systems using geometric algebra
CN106878023A (zh) * 2017-02-22 2017-06-20 福建升腾资讯有限公司 一种基于指静脉认证登入云桌面的方法及系统
US11294846B2 (en) * 2017-09-18 2022-04-05 Intel Corporation System, apparatus and method for secure communication on a bus
WO2019112650A1 (en) * 2017-12-08 2019-06-13 Visa International Service Association Server-assisted privacy protecting biometric comparison
US11296888B2 (en) * 2018-03-20 2022-04-05 Visa International Service Association Distributed biometric comparison framework
US11177935B2 (en) * 2018-08-31 2021-11-16 Microsoft Technology Licensing, Llc Homomorphic evaluation of tensor programs
WO2020121460A1 (ja) * 2018-12-12 2020-06-18 日本電気株式会社 照合システム、クライアントおよびサーバ
US11250116B2 (en) * 2019-10-25 2022-02-15 Visa International Service Association Optimized private biometric matching
CN111212425B (zh) * 2020-01-10 2022-07-12 中国联合网络通信集团有限公司 一种接入方法和服务器、终端
US11764943B2 (en) 2020-08-10 2023-09-19 Algemetric, Inc. Methods and systems for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger/blockchain technology
US11683151B2 (en) 2020-09-17 2023-06-20 Algemetric, Inc. Methods and systems for distributed computation within a fully homomorphic encryption scheme using p-adic numbers
CN113285798B (zh) * 2021-05-21 2022-09-27 中国联合网络通信集团有限公司 数据处理方法、竞投端设备和计算机可读介质
CN114221752B (zh) * 2022-02-23 2022-04-29 杭州美创科技有限公司 基于同态加密技术的可信实体认证通信方法
US11924346B2 (en) * 2022-04-28 2024-03-05 Nxp B.V. Efficient and masked sampling of polynomials for lattice-based cryptography
CN116455575B (zh) * 2023-06-16 2023-10-10 北京天润基业科技发展股份有限公司 一种密钥生成、加密、解密方法、电子设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE463898T1 (de) * 2006-01-02 2010-04-15 Sap Ag System und verfahren für den vergleich von privatwerten
US20100329448A1 (en) * 2009-06-30 2010-12-30 Rane Shantanu D Method for Secure Evaluation of a Function Applied to Encrypted Signals
US9313028B2 (en) * 2012-06-12 2016-04-12 Kryptnostic Method for fully homomorphic encryption using multivariate cryptography

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018042045A (ja) * 2016-09-06 2018-03-15 日本電気株式会社 照合システムと方法とプログラム
JP2019517684A (ja) * 2016-12-13 2019-06-24 深▲せん▼市全同態科技有限公司 モジュロ演算に基づく完全準同型暗号化の処理方法
US11128462B2 (en) 2016-12-15 2021-09-21 Nec Corporation Matching system, method, apparatus, and program
US11882218B2 (en) 2016-12-15 2024-01-23 Nec Corporation Matching system, method, apparatus, and program
WO2022201234A1 (ja) * 2021-03-22 2022-09-29 日本電信電話株式会社 秘密検索方法、秘密検索システム、秘密検索装置、暗号化装置、検索者端末、およびプログラム
WO2022201235A1 (ja) * 2021-03-22 2022-09-29 日本電信電話株式会社 秘密検索方法、秘密検索システム、秘密検索装置、暗号化装置、検索者端末、およびプログラム
JP2023082650A (ja) * 2021-12-02 2023-06-14 プロパティエージェント株式会社 情報処理システム、プログラムおよび情報処理方法
JP7336572B2 (ja) 2021-12-02 2023-08-31 プロパティエージェント株式会社 情報処理システム、プログラムおよび情報処理方法
CN115348017A (zh) * 2022-10-18 2022-11-15 阿里巴巴(中国)有限公司 密文处理方法以及装置
CN115348017B (zh) * 2022-10-18 2023-02-07 阿里巴巴(中国)有限公司 密文处理方法以及装置

Also Published As

Publication number Publication date
US20150381348A1 (en) 2015-12-31
US9614665B2 (en) 2017-04-04

Similar Documents

Publication Publication Date Title
JP2016012111A (ja) 暗号処理方法、暗号処理装置、および暗号処理プログラム
US9100185B2 (en) Encryption processing apparatus and method
JP6413598B2 (ja) 暗号処理方法、暗号処理装置、及び暗号処理プログラム
JP6083234B2 (ja) 暗号処理装置
JP6934963B2 (ja) データを暗号化する方法およびシステム
JP6244728B2 (ja) 情報処理方法及びプログラム
JP6421576B2 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
JP6349841B2 (ja) 暗号文処理装置、暗号文処理方法、暗号文処理プログラムおよび情報処理装置
EP3068066B1 (en) Private computation on encrypted biometric data using homomorphic encryption
JP6413743B2 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
JP6260442B2 (ja) 情報処理方法及びプログラム
US10270588B2 (en) Method and system for additive homomorphic encryption scheme with operation error detection functionality
WO2014112048A1 (ja) 暗号システム、再暗号化鍵生成装置、再暗号化装置、暗号方法及び暗号プログラム
JP6575532B2 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
JP6738062B2 (ja) 暗号文照合システム、方法、および記録媒体
JP6738061B2 (ja) 暗号文照合システム、方法、および記録媒体
JP6189788B2 (ja) 鍵生成装置、再暗号化装置、およびプログラム
JPWO2017170780A1 (ja) 暗号文照合システム、ノード装置、暗号文照合方法、およびプログラム
Srinivas et al. An Enhancement in Crypto Key Generation Using Image Features with CRT

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170309

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20171225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171227