説明

代数的トーラスを用いたデータ圧縮処理を行う装置およびプログラム

【課題】圧縮できない例外点が現れた場合であっても適切に処理を実行できる情報処理装置を提供すること。
【解決手段】予め定められた演算を実行し、代数的トーラス上の元である演算結果を出力する暗号化処理部102と、演算結果が、代数的トーラス上の元をアフィン表現に圧縮する圧縮写像によって圧縮できない代数的トーラス上の元を表す例外点でない場合に、演算結果を圧縮写像によって圧縮した圧縮結果を出力し、演算結果が例外点である場合に、例外点でない演算結果を圧縮した圧縮結果が属する集合と重複しない予め定められた特定集合に属する元を、演算結果の圧縮結果として出力する圧縮部104と、を備えた。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、有限体の乗法群の部分群の上で定義された離散対数問題の困難性を安全性の根拠とする公開鍵暗号方式などのように代数的トーラスを用いてデータ長を圧縮する処理を実行する装置およびプログラムに関する。
【背景技術】
【0002】
離散対数問題は、巡回群G=<g>においてy∈Gが与えられたときに、y=gを満たすxを求める問題である。巡回群Gとしては、有限体の乗法群や楕円曲線の有理点のなす加法群(ヤコビ群)が用いられる。これらの問題は、公開鍵暗号を構成するために利用される。これらの問題を解くアルゴリズムには、シャンクのアルゴリズムやポラードのρ法のようにいずれの巡回群上で定義された離散対数問題に対しても適用可能なものと、位数計算法にように有限体の乗法群上で定義された離散対数問題のみに適用可能なものが存在する。
【0003】
位数計算法は効率的であるため、有限体の乗法群上の離散対数問題を用いた公開鍵暗号は解読されやすい。したがって、同じ安全性を確保するために、有限体の乗法群上の離散対数問題を用いた公開鍵暗号は、楕円曲線上の離散対数問題を用いた公開鍵暗号よりも鍵長や暗号文長を大きくする必要がある。
【0004】
そこで、代数的トーラスを利用することにより、公開鍵暗号における公開鍵サイズや暗号文サイズを圧縮する暗号圧縮技術が提案されている(例えば、非特許文献1)。代数的トーラスは、有限体の乗法群の部分群として定義される。代数的トーラスは、元の表現を圧縮することができる。これにより、有限体の乗法群上の離散対数問題を用いた公開鍵暗号における鍵長や暗号文長が大きいという問題を解消することが可能である。
【0005】
例えば、(1)式で表される有限体の元は、(2)式で表される有限体の6つの成分を用いて(a,a,a,a,a,a)と表現される。ここでa(i=1〜6)は、(2)式の有限体の元である。これに対して、(3)式で表される6次のトーラスは、(1)式の有限体に含まれる巡回群であって、その元は、(2)式の有限体の2つの成分を用いて表現される。この表現をaffine表現(アフィン表現)と呼ぶ。このように、公開鍵暗号の鍵や暗号文がこのトーラスの元の場合には、長さを1/3に圧縮することができる。
【数1】

【0006】
なお、以下では、(1)式のような有限体をFq^6と表記する場合がある。
【0007】
【非特許文献1】K.Rubin and A.Silverberg.“Torus−Based Cryptography”、CRYPTO 2003、Springer LNCS 2729、349−365、2003.
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、T(F)には、アフィン表現に圧縮できない元を表す例外点が存在し、例外点はそれ以外の点と同じように表現できないという問題がある。非特許文献1では、例外点が現れた場合、暗号化が失敗するが、例外点が現れる確率は小さいため無視することが記載されている。しかし、公開鍵暗号における乗算、平方、べき乗、逆元、Frobenius写像などの演算では、確率は小さくても通常点を例外点に写像する場合があるので、暗号文や公開鍵として例外点を用いないようにすることはできない。
【0009】
なお、トーラスの元をextension field表現(拡大体表現)またはprojective表現(射影表現、詳細は後述)で表現すれば、例外点も表現できるため上記の問題は生じない。しかし、アフィン表現ではないため圧縮の効果が得られない。
【0010】
本発明は、上記に鑑みてなされたものであって、非特許文献1の暗号圧縮技術のように代数的トーラスを用いてデータ長を圧縮する処理で、圧縮できない例外点が現れた場合であっても、適切に処理を実行できる装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上述した課題を解決し、目的を達成するために、本発明は、予め定められた演算を実行し、代数的トーラス上の元である演算結果を出力する演算処理部と、前記演算結果が、前記代数的トーラス上の元をアフィン表現に圧縮する圧縮写像によって圧縮できない前記代数的トーラス上の元を表す例外点である場合に、前記例外点でない前記演算結果を前記圧縮写像によって圧縮した圧縮結果が属する集合と重複しない予め定められた特定集合に属する元を、前記演算結果の圧縮結果として出力する圧縮部と、を備えたことを特徴とする。
【0012】
また、本発明は、コンピュータを、予め定められた演算を実行し、代数的トーラス上の元である演算結果を出力する演算処理部と、前記演算結果が、前記代数的トーラス上の元をアフィン表現に圧縮する圧縮写像によって圧縮できない前記代数的トーラス上の元を表す例外点である場合に、前記例外点でない前記演算結果を前記圧縮写像によって圧縮した圧縮結果が属する集合と重複しない予め定められた特定集合に属する元を、前記演算結果の圧縮結果として出力する圧縮部と、として機能させるための情報処理プログラムである。
【発明の効果】
【0013】
本発明によれば、代数的トーラスを用いてデータ長を圧縮する処理で、圧縮できない例外点が現れた場合であっても、適切に処理を実行することができるという効果を奏する。
【発明を実施するための最良の形態】
【0014】
以下に添付図面を参照して、この発明にかかる装置およびプログラムの最良な実施の形態を詳細に説明する。
【0015】
(第1の実施の形態)
第1の実施の形態では、代数的トーラスを用いた公開鍵暗号方式による暗号処理システムを構成する暗号化装置または復号装置として本発明の情報処理装置を実現した例について説明する。適用可能な装置はこれに限られず、代数的トーラスを用いてデータ長を圧縮する処理を実行する装置であればあらゆる装置に適用できる。
【0016】
第1の実施の形態にかかる暗号処理システムでは、暗号化装置が、アフィン表現に圧縮するトーラス上の元が例外点である場合に、特定の集合に属する元を、当該例外点に対応するアフィン表現として出力する。
【0017】
ここで、本実施の形態で用いる用語の定義等について説明する。
(定義1:体)環kは、零元0(加法に関する単位元)を除く、以下の(4)式で表される集合kに関して環となるとき、体(field)であるという。有限個の元からなる体を有限体(finite field)といい、上述のようにFと表す。ここで、qは元の個数であり、その有限体の位数(order)と呼ばれる。qは素数のべき乗(素べき)となる。すなわち、qは素数pと正整数nによりq=pと表される。
【数2】

【0018】
(定義2:乗法群)群Gの演算が乗法のとき、Gを乗法群(multiplicative group)という。
【0019】
(定義3:体の乗法群)体kの元のうち、0以外の元の集合は、乗法に関して群をなす。これを体kの乗法群(multiplicative group of field k)という。有限体Fの乗法群は、0以外の元から構成され、以下の(5)式で表される。
【数3】

【0020】
(定義4:アフィン空間)kを体とする。集合{(a,a, ・ ・ ・ , a) | a∈k, a∈k, ・ ・ ・ , a∈k}を、体k上のn次元アフィン空間(affine space)といい、以下の(6)式で表す。
【数4】

【0021】
(定義5:代数的トーラス)代数的トーラス(algebraic torus)Tを、以下の(7)式のように定義する。
【数5】

ResK/kは、体Kから体kへのスカラーのWeil restrictionと呼ばれ、以下の(8)式で表される同形が成り立つ。
【数6】

【0022】
(定理1)以下の(9)式および(10)式の定理が成り立つ。
【数7】

【0023】
(定義6:有理トーラス)TをF上の次元dの代数的トーラスとする。双有理写像(birational map)ρ:T→Aが存在するとき、Tは有理(rational)であるという。すなわち、Tが有理であるとき、Zariski開部分集合W⊂T、U⊂A(F)、有理関数ρ, ・ ・ ・ , ρ∈F(x, ・ ・ ・ , x)と、ψ, ・ ・ ・ ,ψ∈F(y, ・ ・ ・ , y)が存在し、ρ=(ρ, ・ ・ ・ , ρ):W→Uかつψ=(ψ, ・ ・ ・ , ψ):U→Wである。
【0024】
(例1:Tの有理パラメトライゼーション)f(x)=x+1をFq^3上の2次既約多項式とし、xをf(x)=0の根とする。f(y)=y+wをF上の3次既約多項式とし、yをf(y)=0の根とする。Fq^3=F(y)、Fq^6=Fq^3(x)である。Fq^3のF−基底を{α=1,α=y,α=y}ととる。{1,y,y,x,xy,xy}はFq^6のF−基底となる。σ∈Gal(Fq^6/F)を位数2の元とする。具体的には、以下の(11)式とする。また、以下の(12)式で表されるψを、以下の(13)式で定義する。
【数8】

ここで、u=(u0,1,)とし、γを以下の(14)式で表す。また、以下の(15)式より、以下の(16)式が成り立つ。
【数9】

【0025】
1.以下の(17)式および(18)式を用いると、すべてのu=(u,u,u)に対して、以下の(19)式が成り立つ。
【数10】

【0026】
2.Uを以下の(20)式で定義すると、以下の(21)式が成り立つ。また、Hilbertの定理90より、T(F)−{1}の元はすべてψの像に含まれる。よって、以下の(22)式が成り立つ。
【数11】

【0027】
Uを定義する方程式は、以下の(23)式である。したがって、この式を解くと、以下の(24)式が得られる。
【数12】

【0028】
γ=u+uy+uを(24)式に代入すると、以下の(25)式が得られる。
【数13】

【0029】
≠0のとき、以下の(26)式が成り立つため、U|u≠0は以下の(27)式を満たすu,uによりパラメトライズされる。一方、u=0のとき、u=1/3であるが、ここで、qを選ぶ際に、3はFにおいて平方非剰余となるように選ぶものとする。
【数14】

【0030】
このとき、u=1/3は解を持たないので、U|u=0は空集合である。よって、このとき、U=U|u≠0は、上記(27)式を満たすu,uによりパラメトライズされる。
【0031】
そこで、以下の(28)式で表される写像gを、以下の(29)式により定義する。
【数15】

【0032】
(定義7:射影表現)以下の(30)式を、T(F)の射影表現という。なお、αとβとが(30)式の条件を満たすとき、射影表現を(α,β)のように簡略化して表現する。
【数16】

【0033】
(定義8:アフィン表現)以下の(31)式を、T(F)のアフィン表現という。なお、uとuとが(31)式の条件を満たすとき、アフィン表現を(u,u)のように簡略化して表現する。
【数17】

【0034】
(定義9:例外点と通常点)以下の(32)式で示すような、アフィン空間A(F)から代数的トーラスT(F)への有理写像ψと、その逆写像ρが定義されている。
【数18】

【0035】
このとき、1∈T(F)を例外点と呼ぶ。このような例外点1は、写像ρによっては圧縮できない。また、例外点以外のT(F)の元を通常点と呼ぶ。通常点は、写像ρによって、A(F)の元として表現できる。すなわち、通常点は1/3の長さに圧縮できる。
【0036】
次に、第1の実施の形態にかかる暗号処理システムの構成について説明する。図1は、第1の実施の形態にかかる暗号処理システムのブロック図である。図1に示すように、第1の実施の形態にかかる暗号処理システムは、暗号化装置100と、復号装置200とを含んでいる。
【0037】
最初に、暗号化装置100の構成について説明する。暗号化装置100は、代数的トーラスを用いた公開鍵暗号方式で平文を暗号化する装置であり、入力部101と、暗号化処理部102と、判定部103と、圧縮部104と、記憶部121と、を備えている。
【0038】
入力部101は、平文データや、暗号化に用いる公開鍵暗号方式の暗号鍵データ(以下、公開鍵データという)などを入力する。記憶部121は、入力された平文データや公開鍵データなどを保存する。
【0039】
暗号化処理部102は、予め定められた演算を実行することにより、代数的トーラス上の元である演算結果を出力する演算処理部として機能する。具体的には、暗号化処理部102は、平文データに対して公開鍵データを用いて、有限体上の離散対数問題に基づいた暗号化処理を施して複数の要素を含む暗号文データを出力する。より具体的には、暗号化処理部102は、有限体上の離散対数問題に基づく暗号化方式として、ElGamal暗号方式やCramer−Shoup暗号方式により、複数回のべき乗または乗算、あるいは暗号文データを入力値として用いるハッシュ関数Hを用いて平文データに暗号化処理を施して暗号文データを出力する。以下では、暗号化処理部102が、Cramer−Shoup暗号方式で平文データを暗号化するものとして説明する。
【0040】
ここで、Cramer−Shoup暗号方式について説明する。図2は、Cramer−Shoup暗号方式の暗号化および復号化の処理手順を示す説明図である。図2で、qは素数、gは暗号が定義される群G(位数はq)の生成元、g〜,e,f,hは群Gの元である。平文データmもGの元である。rはランダムに生成される乱数である。
【0041】
暗号化処理601では、(10−1)〜(10−4)式により平文データmに対応する暗号文データ(c,c,c,c)を計算する。ここで、(10−3)式におけるHはハッシュ関数を示しており、ハッシュ関数Hに暗号文データを入力してハッシュ値vを求めている。秘密鍵は1からqまでの整数(または0からq−1までの整数)とする。
【0042】
復号処理602では、(11−1)〜(11−6)式により秘密鍵(x1,x2,y1,y2,z1,z2)と暗号文データ(c,c,c,c)から正当な平文データであるか否かをチェックし、平文データmを計算する。ここで、秘密鍵(x1,x2,y1,y2,z1,z2)は1からqまでの整数とする。また、c∈?G(またはG〜)は、cが群G(または群G〜)に属するか否かを判断することを示している。
【0043】
このように、暗号化処理部102は、Cramer−Shoup暗号方式によって4つの要素からなる暗号文データc,c,c,cを出力する。c,c,c,cは、それぞれ代数的トーラスの元であり、拡大体表現の場合は、各要素がそれぞれa+ax+ay+axy+a(y−2)+ax(y−2)のように表される。ここで、各aはFの元である。上述のように、この拡大体表現はaのみを用いて(a,a,a,a,a,a)と表してもよい。
【0044】
なお、本実施の形態では、暗号化処理部102は、射影表現で表された暗号文データを出力する場合を例に説明する。これにより、処理コストが大きい拡大体表現と射影表現との間の変換処理をできるだけ少なくし、暗号化に関する演算処理のコストを低減することが可能となる。なお、拡大体表現で表された暗号文データを出力する場合にも、本実施の形態と同様の手法を適用できる。また、暗号化処理部102は演算処理部の一例であり、代数的トーラス上の元を演算結果として出力するものであれば、暗号化処理以外の演算処理を実行するように構成してもよい。
【0045】
暗号文データの各要素が、後述する圧縮部104による圧縮の対象となる代数的トーラス上の元(対象元)となる。
【0046】
判定部103は、暗号化処理部102が出力した暗号文データに含まれる各要素が、上述した代数的トーラス上の例外点(例外点1)であるか否かを判定する。
【0047】
圧縮部104は、非特許文献1のような代数的トーラスを利用した暗号圧縮技術によって暗号文データを圧縮した圧縮暗号文データを出力する。具体的には、圧縮部104は、判定部103が例外点でないと判定した暗号文データの要素を、上述の双有理写像ρによって射影表現からアフィン表現に圧縮し、圧縮したアフィン表現を含む圧縮結果(処理結果)を生成する。
【0048】
判定部103が例外点であると判定した要素に対しては、圧縮部104は、例外点に対応するアフィン表現として、予め定められた特定集合に属する元を出力する。具体的には、圧縮部104は、以下の(33)式で表される特定集合に属する元を、例外点に対応する圧縮結果を表すアフィン表現として出力する。なお、mは正整数であり、q=pが成り立つ。
【数19】

【0049】
ここで、特定集合と、上述の双有理写像ρの逆写像ψとの関係について図3を用いて説明する。上記(例1:Tの有理パラメトライゼーション)で述べたように、例外点1を除く代数的トーラス上の元(T(F)−{1}の元)は、(27)式を満たすu,uによりパラメトライズされる。図3では、2次元アフィン空間A(F)に含まれる集合302が、写像gおよびψによって、集合301に対応することが示されている。
【0050】
本実施の形態では、例外点1を表す元303を、2次元アフィン空間A(F)から集合302を除いた集合304に属する元に対応させる。すなわち、圧縮部104が、集合304に属する元を、例外点1に対応するアフィン表現として出力する。これにより、例外点1を、通常点のアフィン表現と重複しないアフィン表現で表すことが可能となる。
【0051】
圧縮部104は、以下の(34)式に示す射影表現を入力とし、(35)式に示すアフィン表現を出力することにより、例外点1を含む射影表現をアフィン表現に変換する。具体的には、圧縮部104は、以下の(36)式に示す手順に従って射影表現をアフィン表現に変換する。上記(30)式に示すように、β=0のときは、α+βx/(α+βσ(x))=α/α=1であり、例外点1に対応する。したがって、(36)式の手順1でβ=0と判定したとき、すなわち、射影表現が例外点1であると判定したとき、圧縮部104は、上記(31)式のu,uの値を、Fp^m(F)の零元に設定する。これは、圧縮部104が、例外点1を図3の集合304の元、すなわち、零元で表したアフィン表現に変換することを意味する。
【数20】

【0052】
なお、例外点1に対する(u,u)の算出方法はこれに限られず、集合304に属する元を求める方法であればあらゆる方法が適用できる。
【0053】
圧縮部104は、このようにして暗号文データの各要素に対して生成した処理結果を圧縮暗号文データとして出力する。また、出力された圧縮暗号文データは、外部装置との間でデータを送受信する送受信部(図示せず)などによって、復号装置200に送信される。
【0054】
次に、復号装置200の構成について説明する。復号装置200は、代数的トーラスを用いた公開鍵暗号方式で暗号化された暗号文データを復元する装置であり、入力部201と、伸長部202と、復号処理部203と、記憶部221と、を備えている。
【0055】
入力部201は、暗号化装置100から送信された圧縮暗号文データや、復号化に用いる公開鍵暗号方式の秘密鍵データなどを入力する。記憶部221は、入力された圧縮暗号文データや秘密鍵データなどを保存する。
【0056】
伸長部202は、代数的トーラスを利用した暗号圧縮技術によって圧縮された暗号文データを伸長する。具体的には、伸長部202は、暗号文データの要素を、上述の双有理写像ρの逆写像ψによってアフィン表現から射影表現に伸長する。なお、以下では逆写像ψを伸長写像という。
【0057】
ここで、伸長部202が、アフィン表現を射影表現に変換する伸長写像の詳細について説明する。伸長写像は、以下の(37)式に示すアフィン表現を入力とし、(38)式に示す射影表現を出力する写像である。具体的には、伸長写像は、以下の(39)式に示す手順に従い、アフィン表現の分数式である上述の(31)式を、射影表現の分数式である上述の(30)式に読み換えることにより、アフィン表現を射影表現に変換する。なお、(39)式の手順5、6は、b、bの値をFp^mの零元とすることを表している。
【数21】

【0058】
このような伸長写像により、伸長部202は、図3の集合304に属する元(零元)で表されたアフィン表現を、例外点1に変換することができる。
【0059】
復号処理部203は、伸長部202で伸長された暗号文データの要素それぞれに対して、記憶部221に記憶された秘密鍵データを用いて、有限体上の離散対数問題に基づいた復号化処理を施して平文データを出力する。具体的には、復号処理部203は、ElGamal暗号方式やCramer−Shoup暗号方式により、複数回のべき乗または乗算または暗号文データを入力値として用いるハッシュ関数を用いて、暗号文データに復号化処理を施して平文データを得る。
【0060】
なお、暗号化装置100の記憶部121および復号装置200の記憶部221は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0061】
次に、このように構成された第1の実施の形態にかかる暗号化装置100による暗号化処理について図4を用いて説明する。図4は、第1の実施の形態における暗号化処理の全体の流れを示すフローチャートである。
【0062】
なお、暗号化装置100は、事前に公開鍵データおよび平文データを入力し、記憶部121等に記憶しているものとする。
【0063】
まず、暗号化処理部102は、図2で示したように乱数rを生成する(ステップS401)。次に、暗号化処理部102は、公開鍵データに含まれるg〜、e、fを用いて、生成した乱数rを乗数に用いたべき乗計算と乗算とを実行し、暗号文データの要素であるc,cを求める(ステップS402)。次に、暗号化処理部102は、乗算により平文を加工し、暗号文データの要素であるcを求める(ステップS403)。
【0064】
次に、暗号化処理部102は、公開鍵データに含まれるe、fと乱数とを用いてハッシュ計算を行ってハッシュ値vを求める(ステップS404)。次に、暗号化処理部102は、求めたハッシュ値vを乗数に用いたべき乗計算を行うことにより暗号文データの要素であるcを求める(ステップS405)。そして、暗号化処理部102は、算出した暗号文データ(c,c,c,c)を出力する(ステップS406)。
【0065】
次に、判定部103は、受け取った暗号文データの要素のうち、未処理の要素を取得する(ステップS407)。そして、判定部103は、取得した暗号文データの要素が例外点1であるか否かを判定する(ステップS408)。
【0066】
暗号文データの要素が例外点1でない場合、すなわち、通常点である場合は(ステップS408:NO)、圧縮部104は、双有理写像ρにより暗号文データの要素を圧縮し、アフィン表現を生成する(ステップS409)。そして、圧縮部104は、アフィン表現に圧縮した圧縮暗号文データの要素を出力する(ステップS410)。
【0067】
ステップS408で、例外点1であると判断された場合は(ステップS408:YES)、圧縮部104は、特定集合の元で表されたアフィン表現に圧縮した圧縮暗号文データの要素を出力する(ステップS411)。具体的には、圧縮部104は、図3の集合304に含まれるアフィン表現(u,u)=(0,0)を、圧縮暗号文データの要素として出力する。
【0068】
次に、圧縮部104は、暗号文データのすべての要素を処理したか否かを判断し(ステップS412)、処理していない場合は(ステップS412:NO)、次の未処理の要素を取得して処理を繰り返す(ステップS407)。すべての要素を処理した場合は(ステップS412:YES)、暗号化処理を終了する。
【0069】
次に、第1の実施の形態にかかる復号装置200による復号処理について図5を用いて説明する。図5は、第1の実施の形態における復号処理の全体の流れを示すフローチャートである。
【0070】
なお、復号装置200には、暗号化装置100が圧縮に用いた公開鍵データに対応する秘密鍵データが事前に入力され、記憶部221等に記憶されているものとする。
【0071】
まず、入力部201は、復号の対象となる圧縮暗号文データを入力する(ステップS501)。例えば、入力部201は、暗号化装置100から送信され、記憶部221に記憶された圧縮暗号文データを、当該記憶部221から入力する。
【0072】
次に、復号処理部203は、入力された圧縮暗号文データの各要素が正しい群の元であるか否かを検査する(ステップS502)。具体的には、復号処理部203は、図2の(11−1)および(11−2)に示すように、各要素が群Gまたは群G〜に属することを検査する。
【0073】
圧縮暗号文データの各要素が正しい群の元でない場合は(ステップS502:NO)、復号処理を終了する。圧縮暗号文データの各要素が正しい群の元である場合(ステップS502:YES)、伸長部202は、圧縮暗号文データの要素のうち、未処理の要素を取得する(ステップS503)。
【0074】
次に、伸長部202は、伸長写像により圧縮暗号文データの要素を伸長する(ステップS504)。具体的には、伸長部202は、上述の(37)式から(39)式で示した伸長写像により、圧縮暗号文データの各要素を射影表現に伸長する。
【0075】
次に、伸長部202は、圧縮暗号文データのすべての要素を処理したか否かを判断する(ステップS505)。すべての要素を処理していない場合は(ステップS505:NO)、次の要素を取得して処理を繰り返す(ステップS503)。
【0076】
すべての要素を処理した場合は(ステップS505:YES)、以下に示すように、復号処理部203が伸長した暗号文データを平文データに復号する(ステップS506〜ステップS509)。なお、すべての要素を伸長することにより、暗号文データ(c,c,c,c)が得られている。
【0077】
まず、復号処理部203は、秘密鍵データと暗号文データの要素c,c,cとを用いてハッシュ関数によりハッシュ値vを算出する(ステップS506)。次に、復号処理部203は、ハッシュ値vと、暗号文データの要素c,cと、秘密鍵データとを用いて、べき乗計算と乗算とにより検査式に用いる値を計算する(ステップS507)。具体的には、復号処理部203は、図2の(11−6)の検査式の右辺の値を計算する。
【0078】
次に、復号処理部203は、検査式が成立するか否か、すなわち、計算した値と暗号文データの要素cとが一致するか否かを判断する(ステップS508)。検査式が成立しない場合は(ステップS508:NO)、復号処理を終了する。
【0079】
検査式が成立する場合は(ステップS508:YES)、図2の(11−3)、(11−4)に示すように、暗号文データの要素c,cと秘密鍵データz1、z2とを用いたべき乗計算、および、べき乗計算で得られた値と暗号文データの要素cとを用いた乗算を実行し、平文データmを復号する(ステップS509)。
【0080】
なお、復号処理部203は、アフィン表現で表された暗号文データの各要素を射影表現に変換した後、ハッシュ値の算出、および、検査式の検査等の処理を実行している。これに対し、ハッシュ値や検査式の検査等の処理をアフィン表現で実行するように構成してもよい。例えば、復号処理部203が、アフィン表現で算出された検査値とアフィン表現で表された暗号文データの要素cとが一致するか否かを判定してもよい。このような場合、復号処理部203は、比較する値が共に図3の集合304に属するなら、両者が一致すると判定する必要がある。集合304に属するアフィン表現は、いずれも射影表現または拡大体表現で例外点1に相当するためである。
【0081】
このように、第1の実施の形態にかかる暗号処理システムでは、暗号化装置が、アフィン表現に圧縮するトーラス上の元が例外点である場合に、特定の集合に属する元を、当該例外点に対応するアフィン表現として出力する。復号装置は、このアフィン表現を、例外点以外の元である通常点を変換したアフィン表現と同様の伸長写像で伸長することができる。したがって、代数的トーラスを用いてデータ長を圧縮する処理で、圧縮できない例外点が現れた場合であっても適切に処理を実行することが可能となる。
【0082】
また、従来の方法では、例外点が現れた場合、演算結果を廃棄し、改めて計算しなおすことで対応する場合があったが、このような処理の無駄を排除することができる。また、計算しなおす方法では、処理完了までの時間を保証できなかったが、本実施の形態の方法によれば、演算処理の完了までの時間を保証することができる。
【0083】
(第2の実施の形態)
第2の実施の形態にかかる暗号処理システムは、暗号化装置が、代数的トーラス上の元を表現する所定の有限体の零元の逆元を零元として、射影表現からアフィン表現への変換処理を実行する。これにより、変換処理内で、射影表現で表されたトーラス上の元が例外点であるか否かを判定する処理が不要となる。
【0084】
図6は、第2の実施の形態にかかる暗号処理システムの構成を示すブロック図である。図6に示すように、第2の実施の形態にかかる暗号処理システムは、暗号化装置600と、復号装置200とを含んでいる。
【0085】
同図に示すように、第2の実施の形態にかかる暗号化装置600は、入力部101と、暗号化処理部102と、圧縮部604と、記憶部121と、を備えている。
【0086】
第2の実施の形態では、判定部103を削除したことおよび圧縮部604の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかる暗号化装置100の構成を表すブロック図である図1と同様であるので、同一符号を付し、ここでの説明は省略する。
【0087】
圧縮部604は、暗号化処理部102から出力された暗号文データを、代数的トーラスを利用した暗号圧縮技術によって圧縮した圧縮暗号文データを出力する。
【0088】
第1の実施の形態の圧縮部104は、上述したように、(36)式に示す手順に従って射影表現をアフィン表現に変換する。(36)式の手順2.1では、有限体Fq^3の元であるβの逆元β−1を算出している。βが零元である場合、逆元が算出できないため、(36)式の手順1に示すような判定処理によって対応するアフィン表現を求めている。
【0089】
第2の実施の形態の圧縮部604は、有限体Fq^3の零元の逆元の値として、有限体Fq^3の零元を用いる。これにより、(36)式の手順1の判定処理を省略し、手順2のみによって射影表現をアフィン表現に変換することができる。すなわち、β=0の逆元β−1を0とすれば、手順2.1のγが0となり、手順2.2から、γ=u+uy+u=0を満たす(u1,u2)として(0,0)が求められる。これは、第1の実施の形態で手順1を実行した結果と一致する。
【0090】
次に、このように構成された第2の実施の形態にかかる暗号化装置600による暗号化処理について図7を用いて説明する。図7は、第2の実施の形態における暗号化処理の全体の流れを示すフローチャートである。
【0091】
ステップS701からステップS707までの、乱数生成処理、および暗号文算出処理は、第1の実施の形態にかかる暗号化装置100におけるステップS401からステップS407までと同様の処理なので、その説明を省略する。
【0092】
第2の実施の形態では、判定部103によって、暗号文データの要素が例外点か否かを判定する処理である図4のステップS408および判定結果に応じたアフィン表現を出力するステップS411が削除されている。
【0093】
代わりに、圧縮部604は、有限体Fq^3の零元の逆元として有限体Fq^3の零元を用いて、双有理写像ρにより暗号文の要素を圧縮する処理を実行する(ステップS708)。
【0094】
ステップS709の圧縮暗号文出力処理およびステップS710の終了判定処理は、第1の実施の形態にかかる暗号化装置100におけるステップS410およびステップS412と同様の処理なので、その説明を省略する。
【0095】
このように、第2の実施の形態では、圧縮の対象となる対象元がすべて通常点となるまで乱数を再生成して処理を繰り返すため、双有理写像ρによって圧縮されたアフィン表現のみを要素として含む圧縮暗号文データを生成することができる。
【0096】
このように、第2の実施の形態にかかる暗号処理システムでは、暗号化装置が、代数的トーラス上の元を表現する所定の有限体の零元の逆元を零元として、射影表現からアフィン表現への変換処理を実行する。これにより、変換処理内で、射影表現で表されたトーラス上の元が例外点であるか否かを判定する処理が不要となる。
【0097】
次に、第1および第2の実施の形態にかかる暗号化装置および復号装置のハードウェア構成について説明する。第1および第2の実施の形態にかかる暗号化装置および復号装置は、CPU(Central Processing Unit)などの制御装置と、ROM(Read Only Memory)やRAM(Random Access Memory)などの記憶装置と、ネットワークに接続して通信を行う通信I/Fと、各部を接続するバスを備えている。
【0098】
第1および第2の実施の形態にかかる暗号化装置または復号装置で実行される情報処理プログラムは、ROM等に予め組み込まれて提供される。
【0099】
第1および第2の実施の形態にかかる暗号化装置または復号装置で実行される情報処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【0100】
さらに、第1および第2の実施の形態にかかる暗号化装置または復号装置で実行される情報処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1および第2の実施の形態にかかる暗号化装置または復号装置で実行される情報処理プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0101】
第1および第2の実施の形態にかかる暗号化装置または復号装置で実行される情報処理プログラムは、上述した各部(入力部、暗号化処理部、判定部、圧縮部、または、入力部、伸長部、復号処理部)を含むモジュール構成となっており、実際のハードウェアとしてはCPUがROMから情報処理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、各部が主記憶装置上に生成されるようになっている。
【産業上の利用可能性】
【0102】
以上のように、本発明にかかる装置およびプログラムは、Cramer−Shoup暗号方式のように、離散対数問題を安全性の根拠とする公開鍵暗号方式によりデータを暗号化または復号化する装置に適している。
【図面の簡単な説明】
【0103】
【図1】第1の実施の形態にかかる暗号処理システムのブロック図である。
【図2】Cramer−Shoup暗号方式の暗号化および復号化の処理手順を示す説明図である。
【図3】特定集合と写像との関係を表す図である。
【図4】第1の実施の形態における暗号化処理の全体の流れを示すフローチャートである。
【図5】第1の実施の形態における復号処理の全体の流れを示すフローチャートである。
【図6】第2の実施の形態にかかる暗号処理システムの構成を示すブロック図である。
【図7】第2の実施の形態における暗号化処理の全体の流れを示すフローチャートである。
【符号の説明】
【0104】
100、600 暗号化装置
101 入力部
102 暗号化処理部
103 判定部
104、604 圧縮部
121 記憶部
200 復号装置
201 入力部
202 伸長部
203 復号処理部
221 記憶部
301、302、304 集合
303 元

【特許請求の範囲】
【請求項1】
予め定められた演算を実行し、代数的トーラス上の元である演算結果を出力する演算処理部と、
前記演算結果が、前記代数的トーラス上の元をアフィン表現に圧縮する圧縮写像によって圧縮できない前記代数的トーラス上の元を表す例外点である場合に、前記例外点でない前記演算結果を前記圧縮写像によって圧縮した圧縮結果が属する集合と重複しない予め定められた特定集合に属する元を、前記演算結果の圧縮結果として出力する圧縮部と、
を備えたことを特徴とする情報処理装置。
【請求項2】
前記圧縮部は、前記演算結果が前記例外点でない場合に、前記演算結果を前記圧縮写像によって圧縮した圧縮結果を出力すること、
を特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記演算結果が前記例外点か否かを判定する判定部をさらに備え、
前記圧縮部は、前記判定部によって前記演算結果が前記例外点であると判定された場合に、前記特定集合に属する元を前記圧縮結果として出力すること、
を特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記代数的トーラス上の元は、予め定められた有限体上の元によって表現され、
前記圧縮写像は、前記代数的トーラス上の元を表現する前記有限体上の元の逆元を算出し、算出した逆元を用いてアフィン表現に圧縮する写像であり、
前記圧縮部は、前記演算結果が、逆元を算出できない元である前記有限体上の零元によって表現された前記例外点である場合に、零元の逆元として零元を用いて前記圧縮写像により前記演算結果をアフィン表現に圧縮することにより、前記特定集合に属する元である前記圧縮結果を出力すること、
を特徴とする請求項1に記載の情報処理装置。
【請求項5】
前記特定集合は、予め定められた有限体上の2次元アフィン空間から、前記代数的トーラス上の単位元以外の元を前記圧縮写像で圧縮して得られる元を除いた元からなる集合であること、
を特徴とする請求項1に記載の情報処理装置。
【請求項6】
前記特定集合は、前記圧縮写像に対応する伸長写像によって前記例外点に変換される元を含むこと、
を特徴とする請求項1に記載の情報処理装置。
【請求項7】
前記演算処理部は、前記代数的トーラス上の離散対数問題に基づく暗号方式により平文データを暗号化した暗号文データである前記演算結果を出力すること、
を特徴とする請求項1に記載の情報処理装置。
【請求項8】
コンピュータを、
予め定められた演算を実行し、代数的トーラス上の元である演算結果を出力する演算処理部と、
前記演算結果が、前記代数的トーラス上の元をアフィン表現に圧縮する圧縮写像によって圧縮できない前記代数的トーラス上の元を表す例外点である場合に、前記例外点でない前記演算結果を前記圧縮写像によって圧縮した圧縮結果が属する集合と重複しない予め定められた特定集合に属する元を、前記演算結果の圧縮結果として出力する圧縮部と、
として機能させるための情報処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate