説明

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

【課題】圧縮できない例外点が現れた場合であっても適切に処理を実行できる情報処理装置を提供すること。
【解決手段】代数的トーラス上の元を圧縮写像によってアフィン表現に圧縮可能な圧縮部と、圧縮の対象となる代数的トーラス上の元を表す対象元が、圧縮写像によって圧縮できない代数的トーラス上の元を表す例外点であるか否かを判定する判定部と、を備え、圧縮部は、対象元が例外点であると判定された場合に、対象元が例外点であることを表す例外情報を含む処理結果を生成し、対象元が例外点でないと判定された場合に、対象元を圧縮写像によって圧縮したアフィン表現を含む処理結果を生成することを特徴とする。

【発明の詳細な説明】
【技術分野】
【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】
また、本発明は、コンピュータを、代数的トーラス上の元をアフィン表現に圧縮する圧縮写像によって、圧縮の対象となる前記代数的トーラス上の元を表す対象元を圧縮した結果であって、前記対象元が前記圧縮写像によって圧縮できない前記代数的トーラス上の元を表す例外点であるか否かを表す例外情報を含む処理結果を入力する入力部と、前記圧縮写像によって圧縮された前記代数的トーラス上の元を、前記圧縮写像に対応する伸長写像によって伸長可能な伸長部と、前記処理結果に含まれる前記例外情報に基づいて、前記対象元が前記例外点であるか否かを判定する判定部と、として機能させる情報処理プログラムであって、前記伸長部は、前記対象元が前記例外点であると判定された場合に、前記例外点に対して予め定められた前記代数的トーラス上の元を生成し、前記対象元が前記例外点でないと判定された場合に、前記処理結果を前記伸長写像によって伸長した前記代数的トーラス上の元を生成すること、を特徴とする。
【発明の効果】
【0016】
本発明によれば、代数的トーラスを用いてデータ長を圧縮する処理で、圧縮できない例外点が現れた場合であっても、適切に処理を実行することができるという効果を奏する。
【発明を実施するための最良の形態】
【0017】
以下に添付図面を参照して、この発明にかかる装置およびプログラムの最良な実施の形態を詳細に説明する。
【0018】
(第1の実施の形態)
第1の実施の形態では、代数的トーラスを用いた公開鍵暗号方式による暗号処理システムを構成する暗号化装置または復号装置として本発明の情報処理装置を実現した例について説明する。適用可能な装置はこれに限られず、代数的トーラスを用いてデータ長を圧縮する処理を実行する装置であればあらゆる装置に適用できる。
【0019】
第1の実施の形態にかかる暗号処理システムでは、暗号化装置が、アフィン表現に圧縮する対象となるトーラス上の元である対象元が例外点であるか否かを判定し、例外点の場合は対象元を圧縮せず、例外点であることを表す情報を含む暗号文を生成する。そして、復号装置は、例外点であることを表す情報を元に暗号文を復元する。
【0020】
ここで、本実施の形態で用いる用語の定義等について説明する。
(定義1:体)環kは、零元0(加法に関する単位元)を除く、以下の(4)式で表される集合kに関して環となるとき、体(field)であるという。有限個の元からなる体を有限体(finite field)といい、上述のようにFと表す。ここで、qは元の個数であり、その有限体の位数(order)と呼ばれる。qは素数のべき乗(素べき)となる。すなわち、qは素数pと正整数nによりq=pと表される。
【数2】

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

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

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

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

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

【0026】
(定義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である。
【0027】
(例1:Tの有理パラメトライゼーション)x∈Fq^2−Fとする。Fq^3のF基底を{α}とする。{α,xα,xα,xα}は、Fq^6のF基底となる。σ∈Gal(Fq^6/F)を位数2の元とする。具体的には、以下の(11)式とする。また、以下の(12)式で表されるψを、以下の(13)式で定義する。
【数8】

ここで、γ=uα+uα+uαとする。x∈Fq^2であるため、以下の(14)式が成り立つ。
【数9】

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

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

【0030】
Uは、u、u、uの2次方程式で定義された、Aの中の超曲面である。一点a=(a,a,a)∈U(F)をとる。(α)を適当にとると、aにおけるUの接平面をu=aとすることができる。(v,v)∈F×Fに対して、Uと直線a+(1,v,v)/tは、2個の交点を持つ。一方はu=a、他方はt=f(v,v)である。ここで、f(v,v)=1−v−v+vである。(v,v)から2番目の点への写像gは、以下の(21)式で示すように同形である。
【数12】

【0031】
ここで、v(f)は、f(v,v)=0で定義されるAの部分多様体である。また、以下の(22)式で示すように、ψ=ψ○gは同形である。ここで、記号「○」は写像の合成を表す。
【数13】

【0032】
β=β+βx∈T(F)−{1,ψ(a)}とする。また、β∈Fq^3とする。さらに、γ=(1+β)/βとすると、以下の(23)式が成り立つ。
【数14】

【0033】
また、γ=uα+uα+uαとし、ρ(β)を以下の(24)式で表すと、以下の(25)式の写像ρは、同形ψの逆写像である。
【数15】

【0034】
(定理2)上述の写像ρとψは、TとAの間の双有理写像とその逆写像を与える。
【0035】
(例2)q≡2 or 5 (mod 9)とする。また、x=ζ、y=ζ+ζ−1とすると、Fq^6=F(ζ9)、Fq^2=F(x)、Fq^3=F(y)である。Fq^3のための基底を{1,y,y−2}とする。また、a=(0,0,0)とすると、以下の(26)式が成り立つ。
【数16】

【0036】
Uを定義する方程式は、以下の(27)式である。この方程式を解くと、以下の(28)式が成り立つ。
【数17】

【0037】
ここで、基底に関して以下の(29)式〜(31)式を用い、Frobenius写像に関して以下の(32)式および(33)式を用いる。
【数18】

【0038】
ここで、γ=u+uy+u(y−2)を(28)式に代入する。以下の(34)式および(35)式より、(36)式が成り立つ。
【数19】

【0039】
これと直線u=a+(1,v,v)/tとの交点は、aと、t=f(v,v)=1−v−v2+v≡f(v,v)で与えられる。よって、以下の(37)式が成り立つ。
【数20】

【0040】
逆写像は、β=β+βx∈T(F)−{1、x}に対して、(1+β)/β=u+uy+u(y−2)とすると、以下の(38)式のρ(β)で表される。
【数21】

【0041】
(定義7:拡大体表現)z=ζとするとき、以下の(39)式を、T(F)の拡大体表現という。
【数22】

【0042】
(定義8:射影表現)x=ζとするとき、以下の(40)式を、T(F)の射影表現という。
【数23】

【0043】
(定義9:affine表現)x=ζとするとき、以下の(41)式を、T(F)のaffine表現という。
【数24】

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

【0045】
このとき、1、ψ(a)=x∈T(F)を例外点と呼ぶ。このような例外点1およびψ(a)は、写像ρによっては圧縮できない。また、例外点以外のT(F)の元を通常点と呼ぶ。通常点は、写像ρによって、A(F)の元として表現できる。すなわち、通常点は1/3の長さに圧縮できる。
【0046】
次に、第1の実施の形態にかかる暗号処理システムの構成について説明する。図1は、第1の実施の形態にかかる暗号処理システムのブロック図である。図1に示すように、第1の実施の形態にかかる暗号処理システムは、暗号化装置100と、復号装置200とを含んでいる。
【0047】
最初に、暗号化装置100の構成について説明する。暗号化装置100は、代数的トーラスを用いた公開鍵暗号方式で平文を暗号化する装置であり、入力部101と、暗号化処理部102と、判定部103と、圧縮部104と、記憶部121と、を備えている。
【0048】
入力部101は、平文データや、暗号化に用いる公開鍵暗号方式の暗号鍵データ(以下、公開鍵データという)などを入力する。記憶部121は、入力された平文データや公開鍵データなどを保存する。
【0049】
暗号化処理部102は、平文データに対して公開鍵データを用いて、有限体上の離散対数問題に基づいた暗号化処理を施して複数の要素を含む暗号文データを出力する。具体的には、暗号化処理部102は、有限体上の離散対数問題に基づく暗号化方式として、ElGamal暗号方式やCramer−Shoup暗号方式により、複数回のべき乗または乗算、あるいは暗号文データを入力値として用いるハッシュ関数Hを用いて平文データに暗号化処理を施して暗号文データを出力する。以下では、暗号化処理部102が、Cramer−Shoup暗号方式で平文データを暗号化するものとして説明する。
【0050】
ここで、Cramer−Shoup暗号方式について説明する。図2は、Cramer−Shoup暗号方式の暗号化および復号化の処理手順を示す説明図である。図2で、qは素数、gは暗号が定義される群G(位数はq)の生成元、g〜,e,f,hは群Gの元である。平文データmもGの元である。rはランダムに生成される乱数である。
【0051】
暗号化処理601では、(10−1)〜(10−4)式により平文データmに対応する暗号文データ(c,c,c,c)を計算する。ここで、(10−3)式におけるHはハッシュ関数を示しており、ハッシュ関数Hに暗号文データを入力してハッシュ値v
を求めている。秘密鍵は1からqまでの整数(または0からq−1までの整数)とする。
【0052】
復号処理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〜)に属するか否かを判断することを示している。
【0053】
このように、暗号化処理部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)と表してもよい。
【0054】
暗号文データの各要素が、後述する圧縮部104による圧縮の対象となる代数的トーラス上の元(対象元)となる。
【0055】
判定部103は、暗号化処理部102が出力した暗号文データに含まれる各要素が、上述した代数的トーラス上の例外点であるか否かを判定する。また、判定部103は、例外点であると判定した要素が、代数的トーラス上の複数の例外点のうち、いずれの例外点であるかを判定する。
【0056】
圧縮部104は、非特許文献1のような代数的トーラスを利用した暗号圧縮技術によって暗号文データを圧縮した圧縮暗号文データを出力する。具体的には、圧縮部104は、判定部103が例外点でないと判定した暗号文データの要素を、上述の双有理写像ρによって拡大体表現からアフィン表現に圧縮し、圧縮したアフィン表現と、圧縮の対象となった対象元が通常点であることを表す情報を含む処理結果を生成する。
【0057】
このように、本実施の形態では、圧縮部104は、圧縮したアフィン表現だけでなく、対象元が通常点であるか例外点であるかを表す情報を含む処理結果を生成する。例えば、圧縮部104は、処理結果中の所定の1ビットを通常点であるか例外点であるかを表すビット(例外情報ビット)とする。そして、例えば例外情報ビットが0の場合は通常点であることを表し、1の場合は例外点であることを表す。
【0058】
判定部103が例外点であると判定した要素に対しては、圧縮部104は、例外情報ビットと、いずれの例外点であるかを識別する識別情報とを含む処理結果を生成する。例えば、処理結果中で例外情報ビットと異なる所定の1ビットを、いずれの例外点であるかを表すビット(識別情報ビット)とする。そして、例えば識別情報ビットが0の場合は例外点が1であることを表し、1の場合は例外点ψ(a)を表す。
【0059】
なお、通常点の場合に圧縮して得られるアフィン表現を格納するビット列に含まれるいずれか1ビットを、識別情報ビットとして利用するように構成してもよい。これは、通常点であって、かつ、例外点であるような場合は生じないからである。
【0060】
また、アフィン表現はA(F)の全てをとりえるわけではないため、上述の部分多様体v(f)に含まれる点を使って例外点を表現するように構成してもよい。例えば、(A,A)と(B,B)とがv(f)の元であるならば、(A,A)および(B,B)が、それぞれ例外点1および例外点ψ(a)を表すものとすればよい。この場合、出力される情報のサイズはアフィン表現のサイズと同じである。
【0061】
圧縮部104は、このようにして暗号文データの各要素に対して生成した処理結果を圧縮暗号文データとして出力する。また、出力された圧縮暗号文データは、外部装置との間でデータを送受信する送受信部(図示せず)などによって、復号装置200に送信される。
【0062】
次に、復号装置200の構成について説明する。復号装置200は、代数的トーラスを用いた公開鍵暗号方式で暗号化された暗号文データを復元する装置であり、入力部201と、判定部202と、伸長部203と、復号処理部204と、記憶部221と、を備えている。
【0063】
入力部201は、暗号化装置100から送信された圧縮暗号文データや、復号化に用いる公開鍵暗号方式の秘密鍵データなどを入力する。記憶部221は、入力された圧縮暗号文データや秘密鍵データなどを保存する。
【0064】
判定部202は、圧縮暗号文データの各要素に含まれる例外情報ビットが0(通常点)であるか、1(例外点)であるかを判定する。これは、暗号化装置100の圧縮部104が当該要素を得るために圧縮の対象とした対象元が例外点であるか否かを判定することを意味する。
【0065】
伸長部203は、代数的トーラスを利用した暗号圧縮技術によって圧縮された暗号文データを伸長する。具体的には、伸長部203は、判定部202が例外情報ビット=0(通常点)と判定した場合に、暗号文データの要素を、上述の双有理写像ρの逆写像ψによってアフィン表現から拡大体表現に伸長する。なお、以下では逆写像ψを伸長写像という。
【0066】
判定部202が例外情報ビット=1(例外点)と判定した場合は、伸長部203は、識別情報ビットで識別される例外点に対応する、拡大体表現で表された所定の元を、暗号文データの要素に対する伸長結果として生成する。
【0067】
復号処理部204は、伸長部203で伸長された暗号文データの要素それぞれに対して、記憶部221に記憶された秘密鍵データを用いて、有限体上の離散対数問題に基づいた復号化処理を施して平文データを出力する。具体的には、復号処理部204は、ElGamal暗号方式やCramer−Shoup暗号方式により、複数回のべき乗または乗算または暗号文データを入力値として用いるハッシュ関数を用いて、暗号文データに復号化処理を施して平文データを得る。
【0068】
なお、暗号化装置100の記憶部121および復号装置200の記憶部221は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0069】
次に、このように構成された第1の実施の形態にかかる暗号化装置100による暗号化処理について図3を用いて説明する。図3は、第1の実施の形態における暗号化処理の全体の流れを示すフローチャートである。
【0070】
なお、暗号化装置100は、事前に公開鍵データおよび平文データを入力し、記憶部121等に記憶しているものとする。
【0071】
まず、暗号化処理部102は、図2で示したように乱数rを生成する(ステップS301)。次に、暗号化処理部102は、公開鍵データに含まれるg〜、e、fを用いて、生成した乱数rを乗数に用いたべき乗計算と乗算とを実行し、暗号文データの要素であるc,cを求める(ステップS302)。次に、暗号化処理部102は、乗算により平文を加工し、暗号文データの要素であるcを求める(ステップS303)。
【0072】
次に、暗号化処理部102は、公開鍵データに含まれるe、fと乱数とを用いてハッシュ計算を行ってハッシュ値vを求める(ステップS304)次に、暗号化処理部102は、求めたハッシュ値vを乗数に用いたべき乗計算を行うことにより暗号文データの要素であるcを求める(ステップS305)。そして、暗号化処理部102は、算出した暗号文データ(c,c,c,c)を出力する(ステップS306)。
【0073】
次に、判定部103は、受け取った暗号文データの要素のうち、未処理の要素を取得する(ステップS307)。そして、判定部103は、拡大体表現(a,a,a,a,a,a)で表された要素が例外点であるかを判定する例外点判定処理を実行する(ステップS308)。例外点判定処理の詳細については後述する。
【0074】
次に、圧縮部104が、例外点判定処理の判定結果が例外点1または例外点ψ(a)であることを表すか否かを判断する(ステップS309)。判定結果が例外点1または例外点ψ(a)でないこと、すなわち、通常点であることを表す場合は(ステップS309:NO)、圧縮部104は、双有理写像ρにより暗号文データの要素を圧縮し、アフィン表現を生成する(ステップS310)。そして、圧縮部104は、通常点であることを表す情報を含む圧縮暗号文データの要素を出力する(ステップS311)。具体的には、圧縮部104は、例外情報ビット=0であり、その他のビット列に圧縮したアフィン表現を含む圧縮暗号文データの要素を出力する。
【0075】
ステップS309で、判定結果が例外点1または例外点ψ(a)であると判断された場合は(ステップS309:YES)、圧縮部104は、例外点であることを表す情報と、いずれの例外点かを識別する識別情報を含む圧縮暗号文データの要素を出力する(ステップS312)。具体的には、圧縮部104は、判定結果が例外点1の場合は、例外情報ビット=1、識別情報ビット=0である圧縮暗号文データの要素を出力する。また、圧縮部104は、判定結果が例外点ψ(a)の場合は、例外情報ビット=1、識別情報ビット=1である圧縮暗号文データの要素を出力する。
【0076】
次に、圧縮部104は、暗号文データのすべての要素を処理したか否かを判断し(ステップS313)、処理していない場合は(ステップS313:NO)、次の未処理の要素を取得して処理を繰り返す(ステップS307)。すべての要素を処理した場合は(ステップS313:YES)、暗号化処理を終了する。
【0077】
次に、ステップS308の例外点判定処理の詳細について図4を用いて説明する。図4は、第1の実施の形態における例外点判定処理の全体の流れを示すフローチャートである。
【0078】
まず、判定部103は、暗号文データの要素が例外点1であるか否かを判断する(ステップS401)。具体的には、判定部103は、要素の拡大体表現(a,a,a,a,a,a)を用いて、a=1、かつ、a=a=a=a=a=0であるか否かを判断する。
【0079】
要素が例外点1である場合は(ステップS401:YES)、判定部103は、例外点1であることを表す判定結果を出力し(ステップS402)、例外点判定処理を終了する。要素が例外点1でない場合は(ステップS401:NO)、判定部103は、さらに、要素が例外点ψ(a)であるか否かを判断する(ステップS403)。具体的には、判定部103は、a=a=p−1、かつ、a=a=a=a=0であるか否かを判断する。
【0080】
要素が例外点ψ(a)である場合は(ステップS403:YES)、判定部103は、例外点ψ(a)であることを表す判定結果を出力し(ステップS404)、例外点判定処理を終了する。要素が例外点ψ(a)でない場合は(ステップS403:NO)、判定部103は、要素が通常点であることを表す判定結果を出力し(ステップS405)、例外点判定処理を終了する。
【0081】
なお、判定部103は拡大体表現を用いて例外点か否かを判定しているが、要素が射影表現で表されている場合であっても同様の判定が可能である。
【0082】
次に、第1の実施の形態にかかる復号装置200による復号処理について図5を用いて説明する。図5は、第1の実施の形態における復号処理の全体の流れを示すフローチャートである。
【0083】
なお、復号装置200には、暗号化装置100が圧縮に用いた公開鍵データに対応する秘密鍵データが事前に入力され、記憶部221等に記憶されているものとする。
【0084】
まず、入力部201は、復号の対象となる圧縮暗号文データを入力する(ステップS501)。例えば、入力部201は、暗号化装置100から送信され、記憶部221に記憶された圧縮暗号文データを、当該記憶部221から入力する。
【0085】
次に、復号処理部204は、入力された圧縮暗号文データの各要素が正しい群の元であるか否かを検査する(ステップS502)。具体的には、復号処理部204は、図2の(11−1)および(11−2)に示すように、各要素が群Gまたは群G〜に属することを検査する。
【0086】
圧縮暗号文データの各要素が正しい群の元でない場合は(ステップS502:NO)、復号処理を終了する。圧縮暗号文データの各要素が正しい群の元である場合(ステップS502:YES)、伸長部203は、圧縮暗号文データの要素のうち、未処理の要素を取得する(ステップS503)。
【0087】
次に、判定部202が、取得した要素に例外点であることを表す情報が含まれるか否かを判断する(ステップS504)。具体的には、判定部202は、取得した要素に含まれる例外情報ビットを参照し、例外情報ビットが1の場合に、例外点であることを表す情報が含まれると判断する。また、判定部202は、例外情報ビットが0の場合に、例外点であることを表す情報が含まれないと判断する。
【0088】
例外点であることを表す情報が含まれない場合は(ステップS504:NO)、伸長部203は、伸長写像により圧縮暗号文データの要素を伸長する(ステップS505)。例外点であることを表す情報が含まれる場合は(ステップS504:YES)、伸長部203は、取得した要素に含まれる識別情報ビットで識別される例外点に対応する元を、伸長処理の結果として出力する(ステップS505)。
【0089】
例えば、伸長部203は、取得した要素に含まれる識別情報ビットを参照し、識別情報ビットが0の場合に、例外点1に対応する拡大体表現の元(a,a,a,a,a,a)=(1,0,0,0,0,0)を出力する。また、伸長部203は、識別情報ビットが1の場合に、例外点ψ(a)に対応する拡大体表現の元(a,a,a,a,a,a)=(p−1,p−1,0,0,0,0)を出力する。
【0090】
ステップS505またはステップS506の後、伸長部203は、圧縮暗号文データのすべての要素を処理したか否かを判断する(ステップS507)。すべての要素を処理していない場合は(ステップS507:NO)、次の要素を取得して処理を繰り返す(ステップS503)。
【0091】
すべての要素を処理した場合は(ステップS507:YES)、以下に示すように、復号処理部204が伸長した暗号文データを平文データに復号する(ステップS508〜ステップS511)。なお、すべての要素を伸長することにより、暗号文データ(c,c,c,c)が得られている。
【0092】
まず、復号処理部204は、秘密鍵データと暗号文データの要素c,c,cとを用いてハッシュ関数によりハッシュ値vを算出する(ステップS508)。次に、復号処理部204は、ハッシュ値vと、暗号文データの要素c,cと、秘密鍵データとを用いて、べき乗計算と乗算とにより検査式に用いる値を計算する(ステップS509)。具体的には、復号処理部204は、図2の(11−6)の検査式の右辺の値を計算する。
【0093】
次に、復号処理部204は、検査式が成立するか否か、すなわち、計算した値と暗号文データの要素cとが一致するか否かを判断する(ステップS510)。検査式が成立しない場合は(ステップS510:NO)、復号処理を終了する。
【0094】
検査式が成立する場合は(ステップS510:YES)、図2の(11−3)、(11−4)に示すように、暗号文データの要素c,cと秘密鍵データz1、z2とを用いたべき乗計算、および、べき乗計算で得られた値と暗号文データの要素cとを用いた乗算を実行し、平文データmを復号する(ステップS511)。
【0095】
このように、第1の実施の形態にかかる暗号処理システムでは、暗号化装置が、アフィン表現に圧縮する対象となるトーラス上の元である対象元が例外点であるか否かを判定し、例外点の場合は圧縮せず、例外点であることを表す情報を含む暗号文を生成することができる。そして、復号装置は、例外点であることを表す情報を元に暗号文を復元することができる。これにより、代数的トーラスを用いてデータ長を圧縮する処理で、圧縮できない例外点が現れた場合であっても適切に処理を実行することが可能となる。
【0096】
また、例外点であることを表す情報は例えば1ビットで表すことができる。すなわち、圧縮したアフィン表現のデータ長と比較して十分に小さい。このため、例外点であることを表す情報を含めたとしても圧縮の効果に与える影響は小さい。
【0097】
(第2の実施の形態)
第2の実施の形態にかかる暗号処理システムは、暗号化装置が、圧縮する対象となる対象元が例外点であるか否かを判定し、例外点の場合は、対象元が通常点となるまで、新たに生成した乱数を元に対象元を再計算する。復号装置は、暗号文が例外点であるか否かを判定することなく暗号文を復号する。
【0098】
図6は、第2の実施の形態にかかる暗号処理システムの構成を示すブロック図である。図6に示すように、第2の実施の形態にかかる暗号処理システムは、暗号化装置600と、復号装置700とを含んでいる。
【0099】
同図に示すように、第2の実施の形態にかかる暗号化装置600は、入力部101と、暗号化処理部602と、判定部103と、圧縮部604と、記憶部121と、を備えている。
【0100】
第2の実施の形態では、暗号化処理部602および圧縮部604の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかる暗号化装置100の構成を表すブロック図である図1と同様であるので、同一符号を付し、ここでの説明は省略する。
【0101】
暗号化処理部602は、第1の実施の形態の暗号化処理部102と同様に、ElGamal暗号方式やCramer−Shoup暗号方式などの有限体上の離散対数問題に基づいた暗号方式により、平文データを暗号化して暗号文データを出力する。第2の実施の形態では、暗号化処理部602が、判定部103によって暗号文データの要素が例外点であると判定された場合に、暗号文データを算出するための乱数を新たに生成し、暗号文データのすべての要素が通常点となるまで新たな乱数を用いて暗号文データを再度計算する点が、第1の実施の形態と異なっている。これにより、暗号化処理部602は、すべての要素が通常点である暗号文データを出力することができる。
【0102】
圧縮部604は、暗号化処理部602から出力された暗号文データを、代数的トーラスを利用した暗号圧縮技術によって圧縮した圧縮暗号文データを出力する。暗号化処理部602が例外点を要素に含まない暗号文データを出力するため、第2の実施の形態の圧縮部604は、要素が例外点であるか否かを判定することなく暗号文データを圧縮できる。また、これにより、圧縮部604は、例外情報ビットのように例外点であることを表す情報や、識別情報ビットのように例外点の種類を表す情報を含まず、圧縮したアフィン表現のみを含む処理結果を出力することができる。
【0103】
次に、復号装置700の構成について説明する。第2の実施の形態にかかる復号装置700は、入力部201と、伸長部703と、復号処理部204と、記憶部221と、を備えている。
【0104】
第2の実施の形態では、判定部202を削除したこと、および、伸長部703の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかる復号装置200の構成を表すブロック図である図1と同様であるので、同一符号を付し、ここでの説明は省略する。
【0105】
伸長部703は、代数的トーラスを利用した暗号圧縮技術によって圧縮された暗号文データを伸長する。第2の実施の形態では、圧縮されたアフィン表現のみを含む圧縮暗号文データが入力されるため、圧縮暗号文データが例外点に対応する要素を含むか否かを例外情報ビット等によって判定する必要がない。同様に、伸長部703が判定結果にしたがって伸長処理を変更する必要がない。すなわち、伸長部703は、圧縮暗号文データのすべての要素に対して伸長写像による伸長処理を実行する。
【0106】
次に、このように構成された第2の実施の形態にかかる暗号化装置600による暗号化処理について図7を用いて説明する。図7は、第2の実施の形態における暗号化処理の全体の流れを示すフローチャートである。
【0107】
ステップS701からステップS709までの、乱数生成処理、暗号文算出処理、例外点判定処理、および結果判定処理は、第1の実施の形態にかかる暗号化装置100におけるステップS301からステップS309までと同様の処理なので、その説明を省略する。
【0108】
ステップS709で、判定結果が例外点1または例外点ψ(a)であると判断された場合は(ステップS709:YES)、暗号化処理部102は、暗号化に用いる乱数rを新たに生成し(ステップS701)、処理を繰り返す。
【0109】
判定結果が例外点1または例外点ψ(a)でないと判断された場合は(ステップS709:NO)、圧縮部604は、暗号文データのすべての要素を処理したか否かを判断する(ステップS710)。すべての要素を処理していない場合は(ステップS710:NO)、次の未処理の要素を取得して処理を繰り返す(ステップS707)。
【0110】
すべての要素を処理した場合は(ステップS710:YES)、圧縮部604は、双有理写像ρにより暗号文データの各要素を圧縮し、アフィン表現を生成する(ステップS711)。
【0111】
このように、第2の実施の形態では、圧縮の対象となる対象元がすべて通常点となるまで乱数を再生成して処理を繰り返すため、双有理写像ρによって圧縮されたアフィン表現のみを要素として含む圧縮暗号文データを生成することができる。
【0112】
次に、このように構成された第2の実施の形態にかかる復号装置700による復号処理について図8を用いて説明する。図8は、第2の実施の形態における復号処理の全体の流れを示すフローチャートである。
【0113】
ステップS801からステップS803までの、暗号文入力処理、元判定処理、および要素取得処理は、第1の実施の形態にかかる復号装置200におけるステップS501からステップS503までと同様の処理なので、その説明を省略する。
【0114】
ステップS803で、圧縮暗号文データの未処理の要素を取得した後、伸長部703は、取得した要素を伸長写像により伸長する(ステップS804)。
【0115】
このように、第2の実施の形態では、圧縮暗号文データの要素に例外点であることを表す情報が含まれるか否かを判定し、含まれる場合に例外点に対応する元を出力する処理(図5のステップS504〜ステップS505)が不要となる。
【0116】
ステップS805からステップS809までの、完了判定処理および平文算出処理は、第1の実施の形態にかかる復号装置200におけるステップS507からステップS511までと同様の処理なので、その説明を省略する。
【0117】
このように、第2の実施の形態にかかる暗号処理システムでは、暗号化装置が、圧縮する対象となる対象元が例外点であるか否かを判定し、例外点の場合は、対象元が通常点となるまで、新たに生成した乱数を元に対象元を再計算することができる。これにより、代数的トーラスを用いてデータ長を圧縮する処理で、圧縮できない例外点が現れた場合であっても適切に処理を実行することが可能となる。また、これにより、復号装置は暗号文が例外点であるか否かを判定することなく暗号文を復号することができる。
【0118】
次に、第1および第2の実施の形態にかかる暗号化装置および復号装置のハードウェア構成について説明する。第1および第2の実施の形態にかかる暗号化装置および復号装置は、CPU(Central Processing Unit)などの制御装置と、ROM(Read Only Memory)やRAM(Random Access Memory)などの記憶装置と、ネットワークに接続して通信を行う通信I/Fと、各部を接続するバスを備えている。
【0119】
第1および第2の実施の形態にかかる暗号化装置または復号装置で実行される情報処理プログラムは、ROM等に予め組み込まれて提供される。
【0120】
第1および第2の実施の形態にかかる暗号化装置または復号装置で実行される情報処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【0121】
さらに、第1および第2の実施の形態にかかる暗号化装置または復号装置で実行される情報処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1および第2の実施の形態にかかる暗号化装置または復号装置で実行される情報処理プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0122】
第1および第2の実施の形態にかかる暗号化装置または復号装置で実行される情報処理プログラムは、上述した各部(入力部、暗号化処理部、判定部、圧縮部、または、入力部、判定部、伸長部、復号処理部)を含むモジュール構成となっており、実際のハードウェアとしてはCPUがROMから情報処理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、各部が主記憶装置上に生成されるようになっている。
【産業上の利用可能性】
【0123】
以上のように、本発明にかかる装置およびプログラムは、Cramer−Shoup暗号方式のように、離散対数問題を安全性の根拠とする公開鍵暗号方式によりデータを暗号化または復号化する装置に適している。
【図面の簡単な説明】
【0124】
【図1】第1の実施の形態にかかる暗号処理システムのブロック図である。
【図2】Cramer−Shoup暗号方式の暗号化および復号化の処理手順を示す説明図である。
【図3】第1の実施の形態における暗号化処理の全体の流れを示すフローチャートである。
【図4】第1の実施の形態における例外点判定処理の全体の流れを示すフローチャートである。
【図5】第1の実施の形態における復号処理の全体の流れを示すフローチャートである。
【図6】第2の実施の形態にかかる暗号処理システムの構成を示すブロック図である。
【図7】第2の実施の形態における暗号化処理の全体の流れを示すフローチャートである。
【図8】第2の実施の形態における復号処理の全体の流れを示すフローチャートである。
【符号の説明】
【0125】
100、600 暗号化装置
101 入力部
102、602 暗号化処理部
103 判定部
104、604 圧縮部
121 記憶部
200、700 復号装置
201 入力部
202 判定部
203、703 伸長部
204 復号処理部
221 記憶部

【特許請求の範囲】
【請求項1】
代数的トーラス上の元を圧縮写像によってアフィン表現に圧縮可能な圧縮部と、
圧縮の対象となる前記代数的トーラス上の元を表す対象元が、前記圧縮写像によって圧縮できない前記代数的トーラス上の元を表す例外点であるか否かを判定する判定部と、を備え、
前記圧縮部は、前記対象元が前記例外点であると判定された場合に、前記対象元が前記例外点であることを表す例外情報を含む処理結果を生成し、前記対象元が前記例外点でないと判定された場合に、前記対象元を前記圧縮写像によって圧縮したアフィン表現を含む処理結果を生成すること、
を特徴とする情報処理装置。
【請求項2】
前記判定部は、さらに、前記対象元が、前記圧縮写像によって圧縮できない前記代数的トーラス上の元を表す複数の前記例外点のうちいずれの前記例外点であるかを判定し、
前記圧縮部は、前記対象元が前記例外点であると判定された場合に、前記例外情報と、前記対象元が複数の前記例外点のうちいずれの前記例外点であるかを識別する識別情報とを含む前記処理結果を生成すること、
を特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記圧縮部は、前記対象元が前記例外点であると判定された場合に前記識別情報を生成し、前記対象元が前記例外点でないと判定された場合に前記対象元を前記圧縮写像によって圧縮したアフィン表現を生成し、生成した前記識別情報または生成した前記アフィン表現と、前記例外情報と、を含む前記処理結果を生成すること、
を特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記対象元は、公開鍵暗号で用いる公開鍵と、前記公開鍵で暗号化された暗号文と、の少なくとも一方であること、
を特徴とする請求項1に記載の情報処理装置。
【請求項5】
コンピュータを、
代数的トーラス上の元を圧縮写像によってアフィン表現に圧縮可能な圧縮部と、
圧縮の対象となる前記代数的トーラス上の元を表す対象元が、前記圧縮写像によって圧縮できない前記代数的トーラス上の元を表す例外点であるか否かを判定する判定部と、として機能させる情報処理プログラムであって、
前記圧縮部は、前記対象元が前記例外点であると判定された場合に、前記対象元が前記例外点であることを表す例外情報を含む処理結果を生成し、前記対象元が前記例外点でないと判定された場合に、前記対象元を前記圧縮写像によって圧縮したアフィン表現を含む処理結果を生成すること、
を特徴とする情報処理プログラム。
【請求項6】
代数的トーラス上の元を圧縮写像によってアフィン表現に圧縮可能な圧縮部と、
乱数を生成し、生成した乱数を用いて予め定められた演算を実行し、圧縮の対象となる前記代数的トーラス上の元を表す対象元を生成する演算部と、
前記対象元が、前記圧縮写像によって圧縮できない前記代数的トーラス上の元を表す例外点であるか否かを判定する判定部と、を備え、
前記演算部は、前記対象元が前記例外点であると判定された場合に、前記対象元が前記例外点でないと判定されるまで、乱数を新たに生成し、新たに生成した乱数を用いて前記演算を実行して前記対象元を生成し、
前記圧縮部は、前記例外点でないと判定された前記対象元を前記圧縮写像によってアフィン表現に圧縮すること、
を特徴とする情報処理装置。
【請求項7】
代数的トーラス上の元をアフィン表現に圧縮する圧縮写像によって、圧縮の対象となる前記代数的トーラス上の元を表す対象元を圧縮した結果であって、前記対象元が前記圧縮写像によって圧縮できない前記代数的トーラス上の元を表す例外点であるか否かを表す例外情報を含む処理結果を入力する入力部と、
前記圧縮写像によって圧縮された前記代数的トーラス上の元を、前記圧縮写像に対応する伸長写像によって伸長可能な伸長部と、
前記処理結果に含まれる前記例外情報に基づいて、前記対象元が前記例外点であるか否かを判定する判定部と、を備え、
前記伸長部は、前記対象元が前記例外点であると判定された場合に、前記例外点に対して予め定められた前記代数的トーラス上の元を生成し、前記対象元が前記例外点でないと判定された場合に、前記処理結果を前記伸長写像によって伸長した前記代数的トーラス上の元を生成すること、
を特徴とする情報処理装置。
【請求項8】
前記入力部は、前記対象元が前記圧縮写像によって圧縮できない前記代数的トーラス上の元を表す複数の前記例外点のうちいずれの前記例外点であるかを識別する識別情報と、前記例外情報と、を含む前記処理結果を入力し、
前記伸長部は、前記対象元が前記例外点であると判定された場合に、複数の前記例外点に対して予め定められた複数の前記代数的トーラス上の元のうち、前記識別情報の前記例外点に対応する元を生成すること、
を特徴とする請求項7に記載の情報処理装置。
【請求項9】
前記入力部は、前記対象元が前記圧縮写像によって圧縮できない前記代数的トーラス上の元を表す複数の前記例外点のうちいずれの前記例外点であるかを識別する識別情報、および、前記圧縮写像によって圧縮されたアフィン表現のいずれかと、前記例外情報と、を含む前記処理結果を入力し、
前記伸長部は、前記対象元が前記例外点であると判定された場合に、複数の前記例外点に対して予め定められた複数の前記代数的トーラス上の元のうち、前記識別情報の前記例外点に対応する元を生成し、前記対象元が前記例外点でないと判定された場合に、前記処理結果を前記伸長写像によって伸長した前記代数的トーラス上の元を生成すること、
を特徴とする請求項7に記載の情報処理装置。
【請求項10】
前記対象元は、公開鍵暗号で用いる公開鍵と、前記公開鍵で暗号化された暗号文と、の少なくとも一方であること、
を特徴とする請求項7に記載の情報処理装置。
【請求項11】
コンピュータを、
代数的トーラス上の元をアフィン表現に圧縮する圧縮写像によって、圧縮の対象となる前記代数的トーラス上の元を表す対象元を圧縮した結果であって、前記対象元が前記圧縮写像によって圧縮できない前記代数的トーラス上の元を表す例外点であるか否かを表す例外情報を含む処理結果を入力する入力部と、
前記圧縮写像によって圧縮された前記代数的トーラス上の元を、前記圧縮写像に対応する伸長写像によって伸長可能な伸長部と、
前記処理結果に含まれる前記例外情報に基づいて、前記対象元が前記例外点であるか否かを判定する判定部と、として機能させる情報処理プログラムであって、
前記伸長部は、前記対象元が前記例外点であると判定された場合に、前記例外点に対して予め定められた前記代数的トーラス上の元を生成し、前記対象元が前記例外点でないと判定された場合に、前記処理結果を前記伸長写像によって伸長した前記代数的トーラス上の元を生成すること、
を特徴とする情報処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate