説明

秘密情報を用いて演算する装置、方法およびプログラム

【課題】秘密鍵を用いた演算処理の安全性を向上させる復号装置を提供する。
【解決手段】乗法群の部分群上の離散対数問題に基づく暗号方式により平文データを暗号化した暗号文データを復号化する復号装置であって、部分群上の元であってアフィン表現で表された暗号文データを入力する入力部101と、アフィン表現を射影表現に変換する複数の写像のうちいずれか1つの写像をランダムに選択し、選択した写像によって入力された暗号文データを射影表現に変換する変換部111と、射影表現に変換された暗号文データに対して暗号方式で予め定められた復号処理を実行することにより平文データを算出する演算処理部112と、を備えた。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、乗法群の部分群上の要素に対して秘密情報を用いて演算処理を実行する装置、方法およびプログラムに関する。
【背景技術】
【0002】
事前に鍵を共有することを必要とせずに安全な通信を実現する公開鍵暗号は、ネットワーク・セキュリティの基盤技術として幅広く利用されている。また、情報端末の多様化が進み、小型機器においても方式や実装を工夫して公開鍵を用いた各種スキーム/プロトコルが用いられるようになっている。
【0003】
公開鍵暗号において現在の典型的な暗号系サイズは1024ビットである。なお、暗号系サイズとは、公開鍵暗号で用いる表現形式で表した場合のデータのサイズを表す。例えば公開鍵暗号方式の1つであるCramer−Shoup暗号等では、1024ビットの拡大体表現と呼ばれる表現形式で各種データが表現される。計算機の進歩とともに攻撃者の能力も上がっているため、解読が困難とされる暗号系サイズは年々大きくなっている。公開鍵暗号では公開鍵サイズや暗号文サイズは暗号系サイズの数倍(方式により異なる)となる。例えば、公開鍵サイズは、暗号系サイズと鍵の個数との積になる。また、暗号文サイズは、暗号系サイズと、1つのメッセージを暗号化するのに必要な暗号文の数との積になる。したがって、メモリ容量や通信帯域が十分でない機器にとっては暗号系サイズの増大が問題となる。
【0004】
そこで、公開鍵暗号における公開鍵サイズや暗号文サイズを圧縮する暗号圧縮技術が提案されている(例えば、非特許文献1)。この暗号圧縮技術は、公開鍵暗号で用いる数の集合のうち代数的トーラスと呼ばれる部分集合を用いると、集合の要素を小さいビット数で表現できるという事実に基づいている。また、圧縮率、すなわち圧縮前のビット数の圧縮後のビット数に対する割合を増大するための改良技術として、集合の要素を小さいビット数の表現に変換する際に付加的な入力を用いる技術が知られている(例えば、非特許文献2)。
【0005】
【非特許文献1】K.Rubin and A.Silverberg.“Torus−Based Cryptography”,CRYPTO 2003,Springer LNCS 2729,349−365,2003.
【非特許文献2】M.van Dijk and D.Woodruff.“Asymptotically Optimal Communication for Torus−Based Cryptography” CRYPTO 2004,Springer LNCS 3152,157−178,2004.
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、非特許文献1などの代数的トーラスを用いた暗号圧縮技術では、電磁波解析などにより秘密情報を解読するサイドチャネル攻撃などへの対処が考慮されていないため、不正な攻撃に対してセキュリティが低下する場合があるという問題があった。
【0007】
ここで、秘密情報とは、演算処理の途中において出現する、非公開情報の一切を表す。例えば、Cramer−Shoup暗号では、秘密鍵だけでなく、暗号化処理の計算途中に出現するハッシュ値やランダムに生成される乱数なども秘密情報に含まれる。公開鍵などは、非公開情報でないため、秘密情報には当たらない。
【0008】
本発明は、上記に鑑みてなされたものであって、秘密情報を用いた演算処理の安全性を向上させることができる装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するために、本発明は、乗法群の部分群上の要素に対して秘密情報を用いて演算処理を実行する演算装置であって、前記部分群上の元である入力データを入力する入力部と、アフィン表現を射影表現に変換する複数の写像のうちいずれか1つの前記写像をランダムに選択し、選択した前記写像によって入力された前記入力データを射影表現に変換する変換部と、射影表現に変換された前記入力データに対して前記秘密情報を用いて演算処理を実行する演算処理部と、を備えたことを特徴とする。
【0010】
また、本発明は、上記装置を実行することができる方法およびプログラムである。
【発明の効果】
【0011】
本発明によれば、秘密情報を用いた演算処理の安全性を向上させることができるという効果を奏する。
【発明を実施するための最良の形態】
【0012】
以下に添付図面を参照して、この発明にかかる装置、方法およびプログラムの最良な実施の形態を詳細に説明する。なお、以下では、秘密情報を用いた演算処理を実行する演算装置(秘密情報に基づく演算装置)を、代数的トーラスを用いた暗号圧縮技術によって暗号化された暗号化データを秘密情報を用いて復号する復号装置として実現した例について説明する。適用可能な装置は復号装置に限られるものではなく、乗法群の部分群上の要素に対して秘密情報を用いて演算処理を実行する装置であれば、あらゆる装置に適用できる。例えば、秘密鍵データを用いて署名を作成する装置に対しても本実施の形態の手法を適用できる。
【0013】
一般に、四則演算が定義される数の集合である体のうち、数の集合が有限の体は有限体と呼ばれる。また、有限体に含まれる数の個数は素数であるか素数のべき乗であることが知られている。このような体は、それぞれ素体と拡大体と呼ばれる。暗号圧縮技術で用いられる代数的トーラスは、拡大体上の乗法群の部分群である。
【0014】
代数的トーラスの表現としては、拡大体表現、射影表現、およびアフィン表現の3種類が存在する。従来の代数的トーラスを用いた暗号圧縮技術では、まず、暗号化装置がメッセージを拡大体表現となっている代数的トーラスの要素に対応させる。次に、拡大体表現で計算を行って暗号文データを算出し、暗号文データを圧縮したアフィン表現へと変換し、圧縮された圧縮暗号文データを復号装置に送信する。復号装置では、受信した圧縮暗号文データを拡大体表現に変換し、拡大体表現で計算を行って平文データを復号する。
【0015】
一方、本実施の形態にかかる復号装置は、まず、アフィン表現で表された圧縮暗号文データを拡大体表現ではなく射影表現に変換して計算を実行する。このとき、アフィン表現をそれぞれ異なる射影表現に変換する複数の変換写像を用意し、その中からランダムに選択した1つの変換写像を用いてアフィン表現を射影表現に変換する。
【0016】
これにより、復号処理のランダム性が増加し、安全性が向上する。すなわち、電磁波解析などにより秘密鍵を解読するサイドチャネル攻撃等を受けた場合であっても、波形が一定にならないため秘密鍵を解読されるおそれが低下する。
【0017】
ここで、本実施の形態にかかる暗号処理システムの概要について用いて説明する。図1は、本実施の形態にかかる暗号処理システムの概要を示す図である。図1に示すように、本実施の形態にかかる暗号処理システムは、暗号化装置200と、秘密情報に基づく演算装置100とを含んでいる。
【0018】
暗号化装置200は、乗法群の部分群である代数的トーラス上の離散対数問題に基づく公開鍵暗号方式により平文データを暗号化した暗号文を生成し、生成した暗号文をアフィン表現に圧縮して演算装置100に送信する。
【0019】
演算装置100は、アフィン表現で表された暗号文を受信すると、暗号文のアフィン表現を、対応する複数の射影表現のうち、乱数に応じて選択されるいずれかの射影表現に変換する。そして、演算装置100は、変換した射影表現を用いて演算を実行し、代数的トーラス上の元である平文データを演算結果として出力する。
【0020】
従来の復号装置は、アフィン表現を対応する1つの射影表現に変換して演算していた。これに対し、本実施の形態では、同図に示したように、複数の射影表現から選択した射影表現に変換して演算を実行できる。これにより、秘密情報を用いた演算処理の1つである代数的トーラスを用いた暗号方式のランダム性を増加させることができる。
【0021】
次に、本実施の形態にかかる演算装置100の構成について説明する。図2は、本実施の形態にかかる演算装置100のブロック図である。図2に示すように、演算装置100は、代数的トーラスを用いた公開鍵暗号方式で暗号化された暗号文データを復元する装置であり、入力部101と、分割部102と、乱数生成部103と、演算制御部110と、記憶部104と、を備えている。
【0022】
入力部101は、暗号化装置200から送信された圧縮暗号文データや、復号化に用いる公開鍵暗号方式の秘密鍵データなどの入力データを入力する。記憶部104は、入力された圧縮暗号文データや秘密鍵データなどを保存する。記憶部104は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0023】
分割部102は、入力された圧縮暗号文データを、復号処理の単位とする複数の部分データに分割する。例えば、分割部102は、圧縮暗号文データを、予め定められたサイズの部分データごとに分割する。なお、分割方法はこれに限られるものではない。また、演算装置100内では圧縮暗号文データを分割しないように構成してもよい。例えば、暗号化装置200が平文データを部分データに分割し、各部分データを暗号化および圧縮した複数の圧縮暗号文データを送信するように構成してもよい。この場合、演算装置100は、複数の圧縮暗号文データを単位として復号処理を実行すればよい。
【0024】
乱数生成部103は、変換部111(後述)が複数の変換写像から1つの変換写像を選択するために用いる乱数を生成する。
【0025】
演算制御部110は、秘密情報に基づく演算処理を制御する。本実施の形態では、演算制御部110は、暗号文データの復号処理を実行する。演算制御部110は、変換部111と、演算処理部112と、判定部113と、を含んでいる。
【0026】
変換部111は、復号処理で扱う各種データの表現形式を相互に変換する。例えば、変換部111は、アフィン表現に圧縮された暗号文データを射影表現に変換する。また、変換部111は、射影表現で復号された平文データをアフィン表現に変換する。
【0027】
ここで、本実施の形態で用いる各表現、および表現間の変換方法の詳細について説明する。まず、本実施の形態で用いる用語の定義について説明する。
【0028】
(定義1)有限個の元からなる体を有限体(finite field)といい、Fと表す。ここで、pは素数である。有限体Fの元は、(1)式を満たす非負整数で表される。
【数1】

【0029】
(定義2)以下の(2)式の有限体(以下、Fp^mと表記する)の元は、以下の(3)式で示すように、Fに係数を持つ高々(m−1)次(mは正整数)の多項式で表される。以下、zを多項式の不定元とする。
【数2】

【0030】
(定義3)以下の(4)式の有限体(以下、F(p^m)^3と表記する)の元は、以下の(5)式で示すように、Fp^mに係数を持つ高々2次の多項式で表される。以下、yを多項式の不定元とする。
【数3】

【0031】
(定義4)代数的トーラスを、以下の(6)式で表す(以下、T(Fp^m)と表記する)。
【数4】

【0032】
(定義5)T(Fp^m)の要素は、以下の(7)式のようにα,β∈F(p^m)^3を用いて表される。ここで、α+βxはF(p^m)^6の要素であり、F(p^m)^3に係数を持つ高々1次の多項式で表される。有限体F(p^m)^6の元は、F(p^m)^3の要素を係数とし、2次の原始既約多項式の根ηを変数とする1次式a+aη,a∈F(p^m)^3で表される。xは多項式の不定元である。また、αとβとが(7)式の条件を満たすとき、射影表現を以下の(8)式のように簡略化して表現する。
【数5】

【0033】
(定義6)(9)式で表される代数的トーラスの単位元を除く要素は、以下の(10)式を満たすc,cを用いて表される。ここで、(11)式は有限体Fp^mの零元以外の元から構成される、有限体Fp^mの乗法群を表す。また、(10)式のwは、(11)式の乗法群の要素であって、計算効率等を考慮して事前に定められた値をとる。c,cが(10)式を満たすとき、アフィン表現を以下の(12)式のように簡略化して表現する。
【数6】

【0034】
以上の定義を元に、変換部111が実行する表現間の変換処理について説明する。まず、変換部111がアフィン表現を射影表現に変換する複数の写像の基準となる写像(基準写像)について説明する。
【0035】
基準写像は、以下の(13)式に示すアフィン表現を入力とし、(14)式に示す射影表現を出力する写像である。具体的には、基準写像は、以下の(15)式に示す手順に従い、アフィン表現の分数式である上述の(10)式を、射影表現の分数式である上述の(8)式に読み換えることにより、アフィン表現を射影表現に変換する。なお、(15)式の手順5、6は、b、bの値をFp^mの零元とすることを表している。
【数7】

【0036】
次に、変換部111が射影表現をアフィン表現に変換する写像について説明する。変換部111は、以下の(16)式に示す射影表現を入力とし、(17)式に示すアフィン表現を出力することにより、射影表現をアフィン表現に変換する。具体的には、変換部111は、以下の(18)式に示す手順に従って射影表現をアフィン表現に変換する。なお、(18)式の手順1は、βがF(p^m)^3の零元である場合、c,cの値をFp^mの零元とすることを表している。
【数8】

【0037】
本実施の形態では、(13)式から(15)式で説明した基準写像が出力する射影表現をF(p^m)^3の要素であるkで乗じた射影表現を出力する複数の変換写像を定義して利用する。すなわち、n(nは2以上の整数)個のF(p^m)^3の要素k〜kを予め定め、基準写像が出力する射影表現(α,β)をk〜k倍した射影表現(kα,kβ)〜(kα,kβ)をそれぞれ出力する、n個の変換写像を用いる。
【0038】
そして、変換部111は、このように定義された複数の変換写像のうち、乱数生成部103によって生成された乱数に応じて予め定められた変換写像を選択し、選択した変換写像によってアフィン表現を射影表現に変換する。
【0039】
図3は、乱数の使用方法を示す説明図である。図3のCPT301は圧縮暗号文データを表している。本実施の形態では、上述のように分割部102がCPT301を複数の部分データ311〜31t(cpt〜cpt)。そして、本実施の形態では、変換部111が、n個のk(=k〜k)から乱数に応じて選択されたkに対応する変換写像によって、各部分データcpt〜cptを復号化する。
【0040】
なお、複数の変換写像で変換された複数の射影表現は、いずれも同一のアフィン表現に対応する。これは、(18)式の手順2.1で、αをβで除算したγを求めるときにkが相殺されるためである。このため、複数の変換写像のうちいずれかの変換写像で変換された射影表現による演算結果と、他の変換写像で変換された射影表現による演算結果は、アフィン表現で表すと一致する。
【0041】
演算処理部112は、変換部111によって射影表現に変換された暗号文データに対して秘密情報を用いて演算処理を実行する。具体的には、演算処理部112は、暗号文データに対して秘密鍵データを用いて、有限体上の離散対数問題に基づいた復号処理を施して平文データを算出する。具体的には、演算処理部112は、Cramer−Shoup暗号方式により、複数回のべき乗または乗算、あるいは暗号文データを入力値として用いるハッシュ関数Hを用いて暗号文データに復号処理を施して平文データを出力する。なお、演算処理部112がElGamal暗号などの他の暗号方式を利用するように構成してもよい。
【0042】
ここで、Cramer−Shoup暗号方式について説明する。図4は、Cramer−Shoup暗号方式の暗号化および復号化の処理手順を示す説明図である。図4で、qは素数、gは暗号が定義される群G(位数はq)の生成元、g〜,e,f,hは群Gの元である。平文データmもGの元である。rはランダムに生成される乱数である。
【0043】
暗号化処理601では、(10−1)〜(10−4)式により平文データmに対応する暗号文データ(ct,ct,ct,ct)を計算する。ここで、(10−3)式におけるHはハッシュ関数を示しており、ハッシュ関数Hに暗号文データを入力してハッシュ値vを求めている。秘密鍵は1からqまでの整数(または0からq−1までの整数)とする。
【0044】
復号処理602では、(11−1)〜(11−6)式により秘密鍵(x,x,y,y,z,z)と暗号文データ(ct,ct,ct,ct)から正当な平文データであるか否かのチェックを行い、平文データmを計算する。ここで、秘密鍵(x,x,y,y,z,z)は1からqまでの整数とする。また、ct∈?G(またはG〜)は、ctが群G(または群G〜)に属するか否かを判断することを示している。
【0045】
なお、上述のように、解読されうる秘密情報は、秘密鍵(x,x,y,y,z,z)だけでなく、計算の途中に出現するb(11−3)、乱数r、およびハッシュ値vなども含まれる。
【0046】
図2に戻り、判定部113は、暗号文データの正当性を判定する。例えば、判定部113は、暗号文データの各要素が正しい群の元であるか否かを判定する。また、判定部113は、入力された暗号文データのハッシュ値を算出し、算出したハッシュ値を用いて算出した値と、入力された暗号文データの所定の成分とを比較し、両者が一致しているか否かによって、暗号文データが正当であることを判定する。
【0047】
次に、このように構成された本実施の形態にかかる演算装置100による復号処理について図5を用いて説明する。図5は、本実施の形態における復号処理の全体の流れを示すフローチャートである。
【0048】
まず、入力部101は、上述のCramer−Shoup暗号方式で暗号化され、アフィン表現に圧縮された暗号文データ(圧縮暗号文データ)を入力する(ステップS501)。例えば、入力部101は、暗号化装置200から受信され、記憶部104に保存された圧縮暗号文データを記憶部104から入力する。
【0049】
次に、分割部102は、入力された圧縮暗号文データを複数の部分データに分割する(ステップS502)。以下では、各部分データを4つの成分(ct,ct,ct,ct)で表す。なお、以下では、記号「*」が付与された変数は、アフィン表現で表されたデータを意味する。また、記号「’」が付与された変数は射影表現で表されたデータを意味する。
【0050】
次に、演算制御部110は、未処理の部分データを取得する(ステップS503)。次に、判定部113が、取得した部分データの成分(要素)であるct、ct、ct、ctのそれぞれが正しい群の元であるか否か、すなわち、ct,ct,ct,ct∈Gを満たすか否かを判断する(ステップS504)。
【0051】
部分データの成分が正しい群の元でないと判断された場合は(ステップS504:NO)、復号処理を終了する。部分データの成分が正しい群の元であると判断された場合(ステップS504:YES)、演算制御部110は、ハッシュ関数Hへの入力としてct、ct、ctを用いてハッシュ値v=H(ct、ct、ct)を算出する(ステップS505)。
【0052】
次に、乱数生成部103が乱数を生成する(ステップS506)。そして、変換部111は、生成された乱数に対応する変換写像を選択する(ステップS507)。
【0053】
複数の変換写像と乱数とは、例えば以下のように対応づけることができる。複数の変換写像は、上述のようにF(p^m)^3の要素であるkによって識別される。また、kはそれぞれ3m個の要素を持つベクトルで表現することができる。そこで、乱数生成部103が、0からp3m−1までのいずれかの値を取るような乱数を生成するように構成する。そして、生成した乱数を3m桁のp進数で表したときの各桁の値を、ベクトルの各要素とするkに対応づける。これにより、生成した乱数を、p3m個の異なるkに対応させることができる。
【0054】
なお、乱数と変換写像とを対応づける方法はこれに限られるものではなく、乱数に応じて、複数の変換写像のうちいずれかを選択可能な方法であればあらゆる方法を適用できる。
【0055】
次に、変換部111は、選択した変換写像によって、アフィン表現で表されたct、ctを射影表現ct’、ct’に変換する(ステップS508)。また、演算処理部112は、ハッシュ値vと、ct’、ct’と、秘密鍵データのうちx1、x2、y1、y2とを用いて、べき乗計算K’=ct(x1+y1v)ct(x2+y2v)を実行する(ステップS509)。そして、変換部111は、射影表現で表されたK’をアフィン表現Kに変換する(ステップS510)。
【0056】
次に、判定部113は、Kと入力された暗号文データの成分のうちctとが一致するか否かを判断する(ステップS511)。なお、本ステップでは、Kとctとが等価であることを確認できればよい。したがって、射影表現K’をアフィン表現Kに変換する代わりに、拡大体表現Kに変換し、Kとctとが一致することを確認するように構成してもよい。
【0057】
一致しない場合は(ステップS511:NO)、復号処理を終了する。一致する場合は(ステップS511:YES)、変換部111は、アフィン表現で表されたctを射影表現ct’に変換する(ステップS512)。次に、演算処理部112は、ct’、ct’と、秘密鍵データのうちz1、z2とを用いて、べき乗計算b’= ctz1ctz2を実行する(ステップS513)。
【0058】
次に、演算処理部112は、変換により得られたct’と、算出されたb’とを用いて、射影表現で表された、部分データに対応する復号データm’=ct’b’−1を算出する(ステップS514)。次に、変換部111が、復号データm’をアフィン表現で表された平文データmに変換する(ステップS515)。
【0059】
次に、演算制御部110は、すべての部分データを処理したか否かを判断する(ステップS516)。すべての部分データを処理していない場合は(ステップS516:NO)、次の未処理の部分データを取得して処理を繰り返す(ステップS503)。
【0060】
すべての部分データを処理した場合は(ステップS516:YES)、演算処理部112が、各部分データに対応する復号データm’を結合した平文データを算出し(ステップS517)、復号処理を終了する。
【0061】
なお、本実施の形態では、復号する圧縮暗号文データを部分データに分割し、分割した部分データ単位で、乱数に応じて選択した変換写像を利用していた。これに対し、演算装置100内に備えられたタイマーなどによって時間を計測し、一定時間が経過するごとに利用する変換写像を切り替えるように構成してもよい。
【0062】
このように、本実施の形態にかかる復号装置では、アフィン表現をそれぞれ異なる射影表現に変換する複数の変換写像を用意し、その中からランダムに選択した1つの変換写像を用いてアフィン表現を射影表現に変換する。そして、変換した射影表現を用いて復号処理の演算を実行する。これにより、秘密情報を用いた演算処理のランダム性を増加させ、安全性を向上させることができる。
【0063】
次に、本実施の形態にかかる復号装置のハードウェア構成について図6を用いて説明する。図6は、本実施の形態にかかる復号装置のハードウェア構成を示す説明図である。
【0064】
本実施の形態にかかる復号装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
【0065】
本実施の形態にかかる復号装置で実行される復号プログラムは、ROM52等に予め組み込まれて提供される。
【0066】
本実施の形態にかかる復号装置で実行される復号プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【0067】
さらに、本実施の形態にかかる復号装置で実行される復号プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施の形態にかかる復号装置で実行される復号プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0068】
本実施の形態にかかる復号装置で実行される復号プログラムは、上述した各部(部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU51が上記ROM52から復号プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、各部が主記憶装置上に生成されるようになっている。
【産業上の利用可能性】
【0069】
以上のように、本発明にかかる装置、方法およびプログラムは、Cramer−Shoup暗号方式のように、離散対数問題を安全性の根拠とする公開鍵暗号方式によりデータを復号化する装置に適している。
【図面の簡単な説明】
【0070】
【図1】本実施の形態にかかる暗号処理システムの概要を示す図である。
【図2】本実施の形態にかかる復号装置のブロック図である。
【図3】乱数の使用方法を示す説明図である。
【図4】Cramer−Shoup暗号方式の暗号化および復号化の処理手順を示す説明図である。
【図5】本実施の形態における復号処理の全体の流れを示すフローチャートである。
【図6】本実施の形態にかかる復号装置のハードウェア構成を示す説明図である。
【符号の説明】
【0071】
51 CPU
52 ROM
53 RAM
54 通信I/F
61 バス
100 演算装置
101 入力部
102 分割部
103 乱数生成部
104 記憶部
110 演算制御部
111 変換部
112 演算処理部
113 判定部
200 暗号化装置

【特許請求の範囲】
【請求項1】
乗法群の部分群上の要素に対して秘密情報を用いて演算処理を実行する演算装置であって、
前記部分群上の元である入力データを入力する入力部と、
アフィン表現を射影表現に変換する複数の写像のうちいずれか1つの前記写像をランダムに選択し、選択した前記写像によって入力された前記入力データを射影表現に変換する変換部と、
射影表現に変換された前記入力データに対して秘密情報を用いて演算処理を実行する演算処理部と、
を備えたことを特徴とする演算装置。
【請求項2】
前記入力データは、前記部分群上の離散対数問題に基づく暗号方式により暗号化し、前記アフィン表現で表された暗号文データであり、
前記変換部は、前記複数の写像のうちいずれか1つの前記写像をランダムに選択し、選択した前記写像によって入力された前記暗号文データを射影表現に変換し、
前記演算処理部は、前記秘密情報を用いて、射影表現に変換された前記暗号文データに対して前記暗号方式で予め定められた復号処理を実行することにより平文データを算出すること、
を特徴とする請求項1に記載の演算装置。
【請求項3】
前記暗号方式は、Cramer−Shoup暗号方式であること、
を特徴とする請求項2に記載の演算装置。
【請求項4】
前記暗号方式は、代数的トーラスである前記部分群上の離散対数問題に基づく暗号方式であること、
を特徴とする請求項2に記載の演算装置。
【請求項5】
前記変換部は、予め定められた基準写像によってアフィン表現を変換した射影表現に対して予め定められた複数の乗数をそれぞれ乗じて得られる複数の射影表現を、アフィン表現の変換結果としてそれぞれ出力する複数の前記写像のうち、いずれか1つの前記写像をランダムに選択し、選択した前記写像によって入力された前記入力データを射影表現に変換すること、
を特徴とする請求項1に記載の演算装置。
【請求項6】
乱数を生成する乱数生成部をさらに備え、
前記変換部は、複数の写像のうち、生成された乱数に対応するいずれか1つの前記写像を選択し、選択した前記写像によって入力された前記入力データを射影表現に変換すること、
を特徴とする請求項1に記載の演算装置。
【請求項7】
入力された前記入力データを複数の部分データに分割する分割部をさらに備え、
前記変換部は、前記部分データごとに、複数の前記写像のうちいずれか1つの前記写像を選択し、選択した前記写像によって前記部分データを射影表現に変換し、
前記演算処理部は、射影表現に変換された前記部分データに対して前記秘密情報を用いて演算処理を実行すること、
を特徴とする請求項1に記載の演算装置。
【請求項8】
乗法群の部分群上の要素に対して秘密情報を用いて演算処理を実行する演算方法であって、
入力部が、前記部分群上の元である入力データを入力する入力ステップと、
変換部が、アフィン表現を射影表現に変換する複数の写像のうちいずれか1つの前記写像をランダムに選択し、選択した前記写像によって入力された前記入力データを射影表現に変換する変換ステップと、
演算処理部が、射影表現に変換された前記入力データに対して前記秘密情報を用いて演算処理を実行する演算処理ステップと、
を備えたことを特徴とする演算方法。
【請求項9】
乗法群の部分群上の要素に対して秘密情報を用いて演算処理を実行する演算装置で実行される演算プログラムであって、
前記演算装置を、
前記部分群上の元である入力データを入力する入力部と、
アフィン表現を射影表現に変換する複数の写像のうちいずれか1つの前記写像をランダムに選択し、選択した前記写像によって入力された前記入力データを射影表現に変換する変換部と、
射影表現に変換された前記入力データに対して前記秘密情報を用いて演算処理を実行する演算処理部と、
として機能させる演算プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−68293(P2010−68293A)
【公開日】平成22年3月25日(2010.3.25)
【国際特許分類】
【出願番号】特願2008−233234(P2008−233234)
【出願日】平成20年9月11日(2008.9.11)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】