説明

伸長装置および圧縮装置

【課題】有限体上の要素を効率的に伸長する。
【解決手段】伸長装置は、入力部、算出部、第1選択部、伸長部を備える。入力部は、有限体の乗法群の部分群の要素をトレース表現で表したトレース表現データに変換するときに得られる付加データと、トレース表現データとを入力する。算出部は、トレース表現データによって決定される連立方程式の複数の解を算出する。第1選択部は、付加データに基づいて、複数の解から求められるデータであって、部分群の要素をアフィン表現で表した複数のアフィン表現データのうちいずれかを選択する。伸長部は、選択されたアフィン表現データを要素に伸長する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、有限体上の要素の伸長装置および圧縮装置に関する。
【背景技術】
【0002】
一部の公開鍵暗号は、有限体(その集合の要素のみで四則演算ができる数の集合)の部分集合を利用して構成する。部分集合の要素数をAとし、有限体の要素数をBとすると、A≦Bである。例えば、公開鍵暗号では、A=2^160、B=2^1024が使われる。一般に、X個の要素を表現するのに必要なビット数は、log_2Xビットである。しかし、既存の公開鍵暗号では、部分集合のA個の要素しか使っていないにも関わらず、その要素を表現するのに必要なビット数がlog_2Bビットとなる方式が存在する。
【0003】
代数的トーラスという有限体の部分集合の要素は、少ないビット数で表現できる。代数的トーラスの属する拡大体の次数が高々2つの素数p、qの冪の積n=(p^m)×(q^w)であるとき、圧縮率(=圧縮後のビット数/圧縮前のビット数)はφ(n)/nとなることが知られている。ただし、φはオイラー関数である。
【0004】
圧縮率1/4と圧縮率1/6とを実現する方法も知られている。この方法では、代数的トーラスの部分集合の要素を圧縮したデータD1を求め、データD1の一部を削除したデータD2と付加ビットを求めることで、さらなる圧縮を行う。そして、代数的トーラスの部分集合の条件式とデータD1とデータD2の関係から得られる多変数連立方程式を解くことで、データD2に対応するデータD1の候補を得て、付加ビットを利用して圧縮されたデータD1を特定する。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】K.Rubin and A.Silverberg, “Torus−Based Cryptography”,CRYPTO 2003, LNCS 2729, 349−365, 2003.
【非特許文献2】K.Karabina,“Torus−based Compression by Factor 4 and 6”,Cryptology ePrint Archive,Report 2010/525.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来技術では、圧縮装置および伸長装置を効率的に実現するために、代数的トーラスの基礎体の法多項式に制約が置かれていた。そのため、制約条件を満たさない法多項式を利用した場合、効率的に伸長できるとは限らなかった。
【課題を解決するための手段】
【0007】
実施形態の伸長装置は、入力部、算出部、第1選択部、伸長部を備える。入力部は、有限体の乗法群の部分群の要素をトレース表現で表したトレース表現データに変換するときに得られる付加データと、トレース表現データとを入力する。算出部は、トレース表現データによって決定される連立方程式の複数の解を算出する。第1選択部は、付加データに基づいて、複数の解から求められるデータであって、部分群の要素をアフィン表現で表した複数のアフィン表現データのうちいずれかを選択する。伸長部は、選択されたアフィン表現データを要素に伸長する。
【図面の簡単な説明】
【0008】
【図1】第1の実施形態の圧縮装置のブロック図。
【図2】第1の実施形態の圧縮処理のフローチャート。
【図3】第1の実施形態の伸長装置のブロック図。
【図4】第1の実施形態の伸長処理のフローチャート。
【図5】第2の実施形態の圧縮装置のブロック図。
【図6】第2の実施形態の伸長装置のブロック図。
【図7】第3の実施形態の圧縮装置のブロック図。
【図8】第3の実施形態の伸長装置のブロック図。
【図9】第4の実施形態の伸長装置のブロック図。
【図10】各実施形態の伸長装置および圧縮装置のハードウェア構成図。
【発明を実施するための形態】
【0009】
以下に添付図面を参照して、この発明にかかる伸長装置の好適な実施形態を詳細に説明する。
【0010】
(第1の実施形態)
第1の実施形態にかかる圧縮装置および伸長装置は、従来技術とは異なる制約を法多項式に置くことで、効率的に圧縮装置および伸長装置を構成する。本実施形態では、代数的トーラスの有限体表現の元(要素)をトレース表現と付加ビットで表すことで表現を圧縮し、そのトレース表現より決定できる多変数連立方程式の解と付加ビットとから代数的トーラスの有限体表現の要素に伸長する。多変数連立方程式を解くと、伸長候補となる複数の代数的トーラスの有限体表現の要素が得られるため、付加ビットを用いて圧縮前の要素を決定する。
【0011】
(1)代数的トーラスの構成
最初に、以下の各実施形態で用いる用語および表記等について説明する。Fpmは、要素数p^mの有限体を表し、Fpのm次拡大体と呼ぶ。例えば、F3mは、要素数が3つの有限体F3のm次拡大体を表す。また、a0、a1、・・・、an∈Fqであるとき、多項式F(x)=a0+a1×x+・・・+an×x^nは、Fq上の多項式と呼ぶ。Fq上の多項式であることを表すために、F(x)=a0+a1×x+・・・+an×x^n over Fqのように表記することもある。なお、「a^b」は、aのb乗を表す。以下では、aのb乗をaと表す場合もある。
【0012】
nをn≡5 (mod 12)なる奇数とし、q=3^nとし、有限体Fqを考える。このとき、q≡5 (mod 7)となる。また、法多項式として、Φ7=x^6+x^5+x^4+x^3+x^2+x+1を用いて、有限体Fqの6次拡大体Fq6を考える。なお、法多項式はこれに限られるものではなく、例えばΦ9=x^6+x^3+1などの別の法多項式を用いても良い。
【0013】
このとき、Fq6上では、x^q=x^5、x^{q^2}=x^4、x^{q^3}=x^6、x^{q^4}=x^2、x^{q^5}=x^3が成立する。このとき、6次拡大体Fq6上の代数的トーラスT6(Fq)は、位数q−√(3q)+1の部分群を持つ。qは、3の奇数乗であるため、√(3q)は整数になる。ここで、√(3q)=tとおく。
【0014】
トレース写像Tr:Fq6→Fqを以下の(1)式のように定義する。Tr(g)をgのトレース表現と呼ぶ。
Tr(g)=g+g^q+g^{q^2}+g^{q^3}+g^{q^4}+g^{q^5}・・・(1)
【0015】
また、アフィン変換写像Af:Fq6→Fq3とアフィン変換逆写像Af^{−1}:Fq3→Fq6を以下の(2)式のように定義する。
Af(g)=(G1+1)/G2、
Af^{−1}(Af(g))=(Af(g)+z)/(Af(g)+z^q)・・・(2)
【0016】
ここで、z:=x+x^{q^2}+x^{q^4}=x+x^2+x^4、g:=a0+a1×x+a2×x^2+a3×x^3+a4×x^4+a5×x^5=(a0+a3×x^3+a5×x^5)+(a1×x+a2×x^2+a4×x^4)=G1+G2×z(ただし、G1、G2∈Fq3)とする。Af(g)をgのアフィン表現と呼ぶ。
【0017】
(2)圧縮装置の構成
次に、第1の実施形態の圧縮装置および伸長装置の構成例について説明する。図1は、第1の実施形態にかかる圧縮装置100の構成の一例を示すブロック図である。図1に示すように、圧縮装置100は、入力部101と、第1変換部102と、第2変換部103と、付加ビット決定部104と、出力部105と、記憶部121と、を備えている。
【0018】
入力部101は、圧縮する代数的トーラスの部分群の要素を入力する。第1変換部102は、入力された要素をトレース表現で表したトレース表現データに変換する。以下では、トレース表現データを単にトレース表現ともいう。第1変換部102は、上述のトレース写像Trより、入力された要素をトレース表現に変換する。
【0019】
第2変換部103は、入力された要素をアフィン表現で表したアフィン表現データに変換する。以下では、アフィン表現データを単にアフィン表現ともいう。第2変換部103は、上述のアフィン変換写像Afにより、入力された要素をアフィン表現に変換する。
【0020】
付加ビット決定部104は、有限体の乗法群(有限体表現の代数的トーラス)の部分群の要素をトレース表現で表したトレース表現データと有限体の乗法群の部分群の要素をアフィン表現で表したアフィン表現データとに基づいて付加ビットを決定する。付加ビット決定部104は、トレース表現およびアフィン表現から、所定の連立方程式の解からアフィン表現を求めるための付加データ(以下、付加ビットという)を決定する。つまり、有限体の乗法群(有限体表現の代数的トーラス)の部分群の要素をトレース表現で表したトレース表現データを伸長して得られるアフィン表現の候補(複数)と、有限体の乗法群(有限体表現の代数的トーラス)の部分群の要素のアフィン表現で表したアフィン表現データとに基づいて付加ビットを決定する。
出力部105は、トレース表現と付加ビットとを出力する。記憶部121は、付加ビットの決定に用いる予め導出された式を求めるための情報を記憶する。
【0021】
次に、このように構成された第1の実施形態にかかる圧縮装置100による圧縮処理について図2を用いて説明する。図2は、第1の実施形態における圧縮処理の全体の流れを示すフローチャートである。
【0022】
入力部101は、代数的トーラスの部分群の要素gを入力する(ステップS101)。第1変換部102は、トレース写像にgを入力し、トレース表現Tr(g)を計算する(ステップS102)。第2変換部103は、アフィン写像にgを入力し、アフィン表現(α+1、β+1、γ+1)∈Fq3を計算する(ステップS103)。付加ビット決定部104は、トレース表現と代数的トーラスの条件と有限体の条件とにより決定される多変数連立方程式を決定する(ステップS104)。付加ビット決定部104は、多変数連立方程式を解くことにより付加ビットを決定する(ステップS105)。具体的には、付加ビット決定部104は、多変数連立方程式を解いて6つの解{(ai、bi、ci)}_{i=1、・・・、6}を得て、6つの解を大きい順に並べ、gのアフィン表現と一致するi番目の要素を決定して、iを付加ビットとして決定する。出力部105は、トレース表現と付加ビットと(Tr(g)、i)を出力する(ステップS106)。なお、付加ビットの決め方は、6つの解を大きい順に並べて決定するだけでなく、例えば小さい順に並べて決定するなどのように、6つの解を区別できれば何でもよい。
【0023】
本実施形態では、トレース写像Tr:Fq6→Fqにより、圧縮率1/6の圧縮が実現できる。なお、1≦i≦6なので、iは3ビットで表現できる。すなわち、付加ビットiは圧縮率1/6にほとんど影響しない。
【0024】
多変数連立方程式の決定方法(ステップS104)、および、多変数連立方程式の解法(ステップS105)は、伸長装置200と同じ構成で実現できる。これらの各処理の詳細は、伸長装置200の構成の説明時に詳述する。
【0025】
(3)伸長装置の構成
図3は、第1の実施形態にかかる伸長装置200の構成の一例を示すブロック図である。図3に示すように、伸長装置200は、入力部201と、算出部210と、第1選択部202と、伸長部203と、出力部204と、記憶部221と、を備えている。
【0026】
入力部201は、圧縮装置100から出力されるトレース表現と付加ビットとを入力する。算出部210は、入力されたトレース表現から上述の多変数連立方程式を決定し、多変数連立方程式の解を算出する。算出部210は、第1式決定部211と、第1求解部212と、第2式決定部213と、第2求解部214と、第3式決定部215と、第3求解部216と、を備えている。
【0027】
第1式決定部211は、有限体Fq上の予め求められたk次式(kは予め定められる1以上の整数)の予め定められた係数に、入力されたトレース表現データを入力して得られる第1式を決定する。以下では、2次式(k=2)である第1式を決定する例を説明する。第1求解部212は、第1式の解を求める。
【0028】
第2式決定部213は、有限体Fq上の予め求められたk次式(kは予め定められる1以上の整数)の予め定められた係数に、第1求解部212により求められた解の少なくとも1つを入力して得られる第2式を決定する。以下では、3次式(k=3)である第2式を決定する例を説明する。第2求解部214は、第2式の解を求める。
【0029】
第3式決定部215は、有限体Fq上の予め求められたk次式(kは予め定められる1以上の整数)の予め定められた係数に、第1求解部212により求められた解および第2求解部214により求められた解のうち少なくとも1つを入力して得られる第3式を決定する。以下では、1次式(k=1)である第3式を決定する例を説明する。第3求解部216は、第3式の解を求める。
【0030】
第1選択部202は、算出部210により算出された複数の解から複数のアフィン表現を求め、求めたアフィン表現のうち、付加データに対応するいずれかのアフィン表現を選択する。伸長部203は、選択されたアフィン表現を、圧縮前の代数的トーラスの部分群の要素に伸長する。伸長部203は、上述のアフィン変換逆写像Af^{−1}により、アフィン表現を圧縮前の要素に変換する。出力部204は、伸長された代数的トーラス部分群の要素を出力する。
【0031】
記憶部221は、圧縮装置100の記憶部121と同様に、付加ビットの決定に用いた予め導出された式を求めるための情報を記憶する。なお、記憶部121および記憶部221は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0032】
次に、このように構成された第1の実施形態にかかる伸長装置200による伸長処理について図4を用いて説明する。図4は、第1の実施形態における伸長処理の全体の流れを示すフローチャートである。
【0033】
入力部201は、トレース表現T∈Fqと付加ビットj∈F2^3とを入力する(ステップS201)。算出部210は、入力されたトレース表現から多変数連立方程式を決定し、多変数連立方程式の解を算出する(ステップS202)。算出部210による算出処理の詳細は後述する。
【0034】
第1選択部202は、算出された解と、入力された付加ビットとから、アフィン表現を選択(決定)する(ステップS203)。伸長部203は、アフィン表現を代数的トーラスの部分群の要素gに伸長する(ステップS204)。出力部204は、伸長により得られた代数的トーラスの部分群の要素gを出力する(ステップS205)。
【0035】
次に、ステップS202の算出部210による算出処理の詳細について説明する。
【0036】
まず、第1式決定部211は、以下の(3)式で表される2次式A(x)を決定する(ステップS202)。
A(x):x^2+(T^{t−2}+1)^{−1}=0 over Fq・・・(3)
【0037】
第1式決定部211は、例えば、上記A(x)を求めるための情報を記憶部221から読み出す。この情報は、例えば係数と変数の関係、トレース表現を入力する係数として予め定められた係数を特定する情報を含む。第1式決定部211は、このような情報を参照して、所定の係数に入力されたトレース表現を入力してA(x)を決定する。第1式決定部211は、決定したA(x)を第1求解部212に送る。
【0038】
なお、所望のアフィン表現を(α+1、β+1、γ+1)とすると、この2次式A(x)は、α+β+γを根に持つ。このような2次式A(x)を導出する手順については後述する。
【0039】
第1求解部212は、A(x)が入力されると、Berlekampアルゴリズムなどを用いてFq上でA(x)を因数分解し、A(x)=0の解a1、a2を求める。第1求解部212は、求めた解a1、a2を第2式決定部213と第3式決定部215とに送る。
【0040】
第2式決定部213は、解a1、a2が入力されると、以下の(4)式および(5)式で表される3次式B(x)およびC(x)を決定する。
B(x):x^3−a1×x^2−(a1^2−1)x−Z(a1)=0 over Fq・・・(4)
C(x):x^3−a2×x^2−(a2^2−1)x−Z(a2)=0 over Fq・・・(5)
【0041】
ただし、Z(x)=x^3−Y(x)+(x×Y(x)−Y(x)^2−1)/x^3 over Fq、Y(x)=(−1−x^2)/x^t−x over Fqである。第2式決定部213は、B(x)およびC(x)を第2求解部214に送る。
【0042】
所望のアフィン表現を(α+1、β+1、γ+1)とすると、これらの3次式の一方は、βを根に持つ。このような3次式B(x)およびC(x)を導出する手順については後述する。
【0043】
第2求解部214は、B(x)およびC(x)が入力されると、Berlekampアルゴリズムなどを用いて、Fq上でB(x)およびC(x)を因数分解し、B(x)=0の解b1、b2、b3と、C(x)=0の解c1、c2、c3を求める。第2求解部214は、解(b1、b2、b3)と(c1、c2、c3)を第3式決定部215に送る。
【0044】
第3式決定部215は、(a1、a2)と(b1、b2、b3)と(c1、c2、c3)とを入力されると、以下の(6)式〜(11)式で表される1次式D(x)、E(x)、F(x)、G(x)、H(x)およびI(x)を決定する。
D(x):(−b1^{2}+(a1+(1/a1))×b1)×x+Z(a1)+(−a1+(1/a1))×b1^2−(Y(a1)/a1)×b1=0 over Fq・・・(6)
E(x):(−b2^{2}+(a1+(1/a1))×b2)×x+Z(a1)+(−a1+(1/a1))×b2^2−(Y(a1)/a1)×b2=0 over Fq・・・(7)
F(x):(−b3^{2}+(a1+(1/a1))×b3)×x+Z(a1)+(−a1+(1/a1))×b3^2−(Y(a1)/a1)×b3=0 over Fq・・・(8)
G(x):(−c1^{2}+(a2+(1/a2))×c1)×x+Z(a2)+(−a2+(1/a2))×c1^2−(Y(a2)/a2)×c1=0 over Fq・・・(9)
H(x):(−c2^{2}+(a2+(1/a2))×c2)×x+Z(a2)+(−a2+(1/a2))×c2^2−(Y(a2)/a2)×c2=0 over Fq・・・(10)
I(x):(−c3^{2}+(a2+(1/a2))×c3)×x+Z(a2)+(−a2+(1/a2))×c3^2−(Y(a2)/a2)×c3=0 over Fq・・・(11)
【0045】
第3式決定部215は、D(x)、E(x)、F(x)、G(x)、H(x)およびI(x)を第3求解部216へ送る。
【0046】
なお、所望のアフィン表現を(α+1、β+1、γ+1)とすると、これらの1次式の1つは、γを根に持つ。このような1次式D(x)、E(x)、F(x)、G(x)、H(x)およびI(x)を導出する手順については後述する。
【0047】
第3求解部216は、D(x)=0、E(x)=0、F(x)=0、G(x)=0、H(x)=0、およびI(x)=0が入力されると、それらの解d、e、f、g、h、iを求める。また、第3求解部216は、これらの解および上記3次式B(x)およびC(x)の解であるb1、b2、b3、c1、c2、c3から、6個の解の組(a1−b1−d、b1、d)、(a1−b2−e、b2、e)、(a1−b3−f、b3、f)、(a2−c1−g、c1、g)、(a2−c2−h、c2、h)、(a2−c3−i、c3、i)を第1選択部202に送る。
【0048】
第1選択部202は、6個の解の組と付加ビットj(1≦j≦6)とを受け取ったら、6個の解それぞれの各要素に1を加えた(a1−b1−d+1、b1+1、d+1)、(a1−b2−e+1、b2+1、e+1)、(a1−b3−f+1、b3+1、f+1)、(a2−c1−g+1、c1+1、g+1)、(a2−c2−h+1、c2+1、h+1)、(a2−c3−i+1、c3+1、i+1)を算出する。そして、第1選択部202は、算出した6個の解を所定の基準に従い整列する。以下では大きい順に整列するものとするが、基準はこれに限られるものではない。
【0049】
第1選択部202は、整列した6個の解のうちj番目に大きい値を選択する。この値が、所望のアフィン表現に相当する。第1選択部202は、選択した値(アフィン表現)を伸長部203に送る。
【0050】
伸長部203は、受け取ったアフィン表現をアフィン変換逆写像Af^{−1}により代数的トーラス部分群の有限体表現に変換し出力する。
【0051】
このように、第1の実施形態にかかる圧縮装置および伸長装置では、従来の方法では効率的に伸長写像が構成できない法多項式に対して、効率的に圧縮装置および伸長装置を実現することができる。また、本実施形態の圧縮装置および伸長装置では、代数的トーラスの部分群上のある要素gとフロベニウス写像を計算した要素g’について、それらのトレース表現Tr(g)とTr(g’)は等しいという性質を利用し、トレース表現Tr(g)を伸長することなく、付加ビットを操作することでTr(g’)を計算することができる。
【0052】
(第2の実施形態)
第2の実施形態にかかる伸長装置は、付加ビットの一部を用いて、解かなければならない式を絞り込む。これにより、より効率的に圧縮および伸長を実行可能となる。なお、代数的トーラスの構成は第1の実施形態と同様であるため説明を省略する。
【0053】
(1)圧縮装置の構成
図5は、第2の実施形態にかかる圧縮装置100−2の構成の一例を示すブロック図である。図5に示すように、圧縮装置100−2は、入力部101と、第1変換部102と、第2変換部103と、付加ビット決定部104−2と、出力部105と、記憶部121と、を備えている。
【0054】
第2の実施形態では、付加ビット決定部104−2の機能が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる圧縮装置100のブロック図である図1と同様であるので、同一符号を付し、ここでの説明は省略する。
【0055】
以下、第2の実施形態の付加ビット決定部104−2による付加ビットの決定処理について説明する。
【0056】
第1変換部102および第2変換部103によりトレース表現Tr(g)およびアフィン表現(α+1、β+1、γ+1)が計算されると(図2のステップS102、ステップS103)、付加ビット決定部104−2は、トレース表現と代数的トーラスの条件と有限体の条件とにより決定される2次式を解いて解a1、a2を求める。付加ビット決定部104−2は、求めた解a1、a2を大きい順に並べ替え、gのアフィン表現の各要素の和α+β+γ+3 over Fqと一致するi1(i1=1または2)を付加ビット1として決定する。
【0057】
つぎに、付加ビット決定部104−2は、トレース表現とアフィン表現の各要素の和とトーラスの条件と有限体の条件とから3次式を決定する。付加ビット決定部104−2は、3次式の解から1次式を決定し、3つのアフィン表現の候補を求める。付加ビット決定部104−2は、求めた候補を大きい順に整列して、gのアフィン表現と比較し、i2(1≦i2≦3)番目の要素と一致するとき、i2を付加ビット2として決定する。なお、出力部105は、付加ビットi1およびi2をトレース表現とともに出力する。
【0058】
なお、2次式と3次式と1次式の決定法と、求解法は、以下に述べる伸長装置200−2と同じ構成で実現できる。
【0059】
(2)伸長装置の構成
図6は、第2の実施形態にかかる伸長装置200−2の構成の一例を示すブロック図である。図6に示すように、伸長装置200−2は、入力部201と、算出部210−2と、第1選択部202−2と、伸長部203と、出力部204と、記憶部221と、を備えている。
【0060】
第2の実施形態では、算出部210−2および第1選択部202−2の機能が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる伸長装置200のブロック図である図3と同様であるので、同一符号を付し、ここでの説明は省略する。
【0061】
算出部210−2は、第2選択部217をさらに備えている。なお、第1式決定部211および第1求解部212の機能は第1の実施形態と同様であるため同一の符号を付し説明を省略する。
【0062】
第2選択部217は、入力された付加ビットのうち付加ビット1(i1)を用いて、第1求解部212により得られた解を大きい順に並べたときのi1番目の解を選択する。
【0063】
第2式決定部213−2は、第2選択部217により選択された解を用いて第2式を決定する。第2求解部214−2は、第2式の解を求める。第3式決定部215−2は、第2選択部217により選択された解および第2求解部214−2により求められた解のうち少なくとも1つを入力して得られる第3式を決定する。第3求解部216−2は、第3式の解を求める。
【0064】
第1選択部202−2は、付加データのうち付加データi2を用いて解を選択する点が、第1の実施形態の第1選択部202と異なる。
【0065】
次に、第2の実施形態の算出部210−2による算出処理の詳細について説明する。
【0066】
入力部201は、トレース表現T∈Fqと付加ビット(i1、i2)∈F2×F2^2とを入力すると、トレース表現Tを第1式決定部211に送る。第1式決定部211は、上述の処理により2次式A(x)を決定して第1求解部212に送る。第1求解部212は、Fq上でA(x)を因数分解し、A(x)=0の解a1、a2を求め、解a1、a2を第2選択部217に送る。
【0067】
第2選択部217は、解a1、a2と付加ビット1(i1)とが入力されると、解a1、a2を大きい順に整列して、i1番目の要素を選択してaとし、第2式決定部213−2と第3式決定部215−2に送る。
【0068】
第2式決定部213−2は、解aが入力されると以下の(12)式で表される3次式B(x)を決定する。なお、Z(x)およびY(x)は上述のとおりである。
B(x):x^3−a×x^2−(a^2−1)x−Z(a)=0 over Fq・・・(12)
【0069】
第2式決定部213−2は、B(x)を第2求解部214−2に送る。第2求解部214−2は、B(x)が入力されると、Berlekampアルゴリズムなどを用いて、Fq上でB(x)を因数分解し、B(x)=0の解b1、b2、b3を求める。第2求解部214−2は、解(b1、b2、b3)を第3式決定部215−2に送る。
【0070】
第3式決定部215−2は、(a)と(b1、b2、b3)とを入力されると、以下の(13)式〜(15)式で表される1次式D(x)、E(x)、およびF(x)を決定する。
D(x):(−b1^{2}+(a+(1/a))×b1)×x+Z(a)+(−a+(1/a))×b1^2−(Y(a)/a)×b1=0 over Fq・・・(13)
E(x):(−b2^{2}+(a+(1/a))×b2)×x+Z(a)+(−a+(1/a))×b2^2−(Y(a)/a)×b2=0 over Fq・・・(14)
F(x):(−b3^{2}+(a+(1/a))×b3)×x+Z(a)+(−a+(1/a))×b3^2−(Y(a)/a)×b3=0 over Fq・・・(15)
【0071】
第3式決定部215−2は、1次式D(x)、E(x)、およびF(x)を第3求解部216−2へ送る。
【0072】
第3求解部216−2は、D(x)=0、E(x)=0、およびF(x)=0が入力されると、それらの解d、e、fを求める。第3求解部216−2は、3個の解の組(a−b1−d、b1、d)、(a−b2−e、b2、e)、(a−b3−f、b3、f)を第1選択部202−2に送る。
【0073】
第1選択部202−2は、3個の解と付加ビットi2(1≦i2≦3)とを受け取ると、3個の解それぞれの各要素に1を加えた(a−b1−d+1、b1+1、d+1)、(a−b2−e+1、b2+1、e+1)、(a−b3−f+1、b3+1、f+1)を算出する。そして、第1選択部202−2は、算出した3個の解を大きい順に整列する。第1選択部202−2は、整列した3個の解のうちi2番目に大きい値を選択する。この値が、所望のアフィン表現に相当する。第1選択部202−2は、選択した値(アフィン表現)を伸長部203に送る。伸長部203は、受け取ったアフィン表現を代数的トーラス部分群の有限体表現に変換し出力する。
【0074】
このように、第2の実施形態にかかる圧縮装置および伸長装置では、付加ビットをi1およびi2に分けて算出し、付加ビットi1を用いて早い段階で解かなければならない式を絞り込むことができる。これにより、より効率的に圧縮および伸長を実行可能となる。
【0075】
(第3の実施形態)
第3の実施形態では、第1の実施形態と同様の方法を、圧縮率1/4の圧縮に適用する例について説明する。
【0076】
(1)代数的トーラスの構成
q≡2 (mod 5)かつq=2^nかつp|(√(2q))なる有限体Fqを考える。また、法多項式としてΦ5=x^4+x^3+x^2+x+1を用いて、有限体Fqの4次拡大体Fq4を考える。このとき、Fq4上では、x^q=x^2、x^{q^2}=x^4、x^{q^3}=x^3、x^{q^4}=xが成立する。
【0077】
このとき、4次拡大体Fq4上の代数的トーラスT4(Fq)は、位数q−√(2q)+1の部分群を持つ。なお、q≡2 (mod 5)より、nは奇数であるから、√(2q)は整数になる。ここで、√(2q)=tとおく。
【0078】
トレース写像Tr:Fq4→Fqを以下の(16)式のように定義する。
Tr(g)=g+g^q+g^{q^2}+g^{q^3}・・・(16)
【0079】
また、アフィン変換写像Af:Fq4→Fq2とアフィン変換逆写像Af^{−1}:Fq2→Fq4を以下の(17)式のように定義する。
Af(g)=(G1+1)/G2∈Fq2、
Af^{−1}(Af(g))=(Af(g)+z)/(Af(g)+z^q)∈Fq4・・・(17)
【0080】
ここで、z:=x+x^q=x+x^2、g:=a0+a1×x+a2×x^2+a3×x^3=(a0+a3×x^3)+(a1×x+a2×x^2)=G1+G2×z(ただし、G1、G2∈Fq2)とする。
【0081】
(2)圧縮装置の構成
図7は、第3の実施形態にかかる圧縮装置100−3の構成の一例を示すブロック図である。図7に示すように、圧縮装置100−3は、入力部101と、第1変換部102−3と、第2変換部103−3と、付加ビット決定部104−3と、出力部105と、記憶部121と、を備えている。第1の実施形態と同様の機能を備える構成部は図1と同一の符号を付し、説明を省略する。
【0082】
第1変換部102−3は、(16)式のトレース写像Trより、入力された要素gをトレース表現Tr(g)に変換する。第2変換部103−3は、(17)式のアフィン変換写像Afにより、入力された要素gをアフィン表現(α、β)∈Fq×Fqに変換する。付加ビット決定部104−3は、αの最下位ビットを付加ビット1として決定し、βの最下位ビットを付加ビット2として決定する。
【0083】
(3)伸長装置の構成
図8は、第3の実施形態にかかる伸長装置200−3の構成の一例を示すブロック図である。図8に示すように、伸長装置200−3は、入力部201と、算出部210−3と、第1選択部202−3と、伸長部203−3と、出力部204と、記憶部221と、を備えている。第1の実施形態と同様の機能を備える構成部は図3と同一の符号を付し、説明を省略する。
【0084】
算出部210−3は、第1式決定部211−3と、第1求解部212−3と、第2式決定部213−3と、第2求解部214−3と、を備えている。
【0085】
第1式決定部211−3は、第1の実施形態と異なる2次式である第1式を決定する。第1求解部212−3は、第1式の解を求める。第2式決定部213−3は、第1の実施形態と異なり、2次式である第2式を決定する。第2求解部214−3は、第2式の解を求める。第1選択部202−3は、算出部210−3により算出された複数の解から、付加データに対応するいずれかの解を選択する。
【0086】
次に、第3の実施形態の算出部210−3による算出処理の詳細について説明する。
【0087】
トレース表現T∈Fqと付加ビット(i1、i2)∈F2×F2とが入力されると、第1式決定部211−3は、以下の(18)式で表される2次式A(x)を決定して第1求解部212−3に送る。
A(x):x^2+x+1−T^{q−t}=0 over Fq・・・(18)
【0088】
第1求解部212−3は、A(x)が入力されると、Berlekampアルゴリズムなどを用いて、Fq上でA(x)を因数分解し、A(x)=0の解a1、a2を得て、解a1、a2を第2式決定部213−3に送る。なお、第1求解部212−3は、フロベニウス写像を用いて、x^2の項を1次の項に変換し、変換した1次式を解いても良い。
【0089】
第2式決定部213−3は、解a1、a2が入力されると、以下の(19)式および(20)式で表される2次式B(x)およびC(x)を決定し、第2求解部214−3に送る。
B(x):x^2+x+a1^2+a1^t×T^{q−t}=0 over Fq・・・(19)
C(x):x^2+x+a2^2+a2^t×T^{q−t}=0 over Fq・・・(20)
【0090】
第2求解部214−3は、B(x)、C(x)が入力されると、Berlekampアルゴリズムなどを用いて、Fq上でB(x)およびC(x)をそれぞれ因数分解し、B(x)=0の解b1、b2とC(x)=0の解c1、c2とを求める。第2求解部214−3は、解b1、b2、c1、c2を第1選択部202−3に送る。
【0091】
第1選択部202−3は、解b1、b2、c1、c2と付加ビット1と付加ビット2とを受け取ると、4個の解の組(a1−b1、b1)、(a1−b2、b2)、(a2−c1、c1)、(a2−c2、c2)を求める。第1選択部202−3は、各組の1成分目(a1−b1、a1−b2、a2−c1、a2−c2)の最下位ビットと付加ビット1とを比較し、各組の2成分目(b1、b2、c1、c2)の最下位ビットと付加ビット2とを比較し、両方が一致した組を選択する。この組の値が、所望のアフィン表現に相当する。第1選択部202−3は、選択した値(アフィン表現)を伸長部203−3に送る。伸長部203−3は、受け取ったアフィン表現を代数的トーラス部分群の有限体表現に変換し出力する。
【0092】
このように、第3の実施形態では、第1の実施形態と同様の手法で圧縮率1/4の圧縮および伸長を実現できる。
【0093】
(第4の実施形態)
第4の実施形態では、第2の実施形態と同様の方法を、圧縮率1/4の圧縮に適用する例について説明する。なお、代数的トーラスの構成は第3の実施形態と同様であるため説明を省略する。また、第4の実施形態の圧縮装置は第3の実施形態の圧縮装置100−3と同様である。
【0094】
(1)伸長装置の構成
図9は、第4の実施形態にかかる伸長装置200−4の構成の一例を示すブロック図である。図9に示すように、伸長装置200−4は、入力部201と、算出部210−4と、第1選択部202−4と、伸長部203−3と、出力部204と、記憶部221と、を備えている。第3の実施形態と同様の機能を備える構成部は図8と同一の符号を付し、説明を省略する。
【0095】
算出部210−4は、第1式決定部211−3と、第1求解部212−3と、第2選択部217−4と、第2式決定部213−4と、第2求解部214−4と、を備えている。
【0096】
第2選択部217−4は、入力された付加ビットのうち付加ビット1(i1)と付加ビット2(i2)を用いて、第1求解部212−3により得られた解の最下位ビットと付加ビット1(i1)と付加ビット2(i2)のF2上の和を比較し、一致する解を選択する。第2式決定部213−4は、第2選択部217−4により選択された解を用いて第2式を決定する。第2求解部214−4は、第2式の解を求める。
【0097】
次に、第4の実施形態の算出部210−4による算出処理の詳細について説明する。
【0098】
トレース表現T∈Fqと付加ビット(i1、i2)∈F2×F2とが入力されると、第1式決定部211−3は、上記(18)式で表される2次式A(x)を決定して第1求解部212−3に送る。
【0099】
第1求解部212−3は、A(x)が入力されると、Berlekampアルゴリズムなどを用いて、Fq上でA(x)を因数分解し、A(x)=0の解a1、a2を求める。第1求解部212−3は、解a1、a2を第2選択部217−4に送る。なお、フロベニウス写像を用いて、x^2の項を1次の項に変換し、変換した1次式を解いても良い。
【0100】
第2選択部217−4は、解a1、a2と付加ビット1(i1)と付加ビット2(i2)とが入力されると、付加ビット1(i1)と付加ビット2(i2)のF2での和と、解a1、a2の最下位ビットとを比較し、一致した解を選択して解aとする。第2選択部217−4は、選択した解aを第2式決定部213−4に送る。
【0101】
第2式決定部213−4は、解aが入力されると、以下の(21)式で表される2次式B(x)を決定して、第2求解部214−4に送る。
B(x):x^2+x+a^2+a^t×T^{q−t}=0 over Fq・・・(21)
【0102】
第2求解部214−4は、B(x)が入力されると、Berlekampアルゴリズムなどを用いて、Fq上でB(x)を因数分解し、B(x)=0の解b1、b2を求める。第2求解部214−4は、解b1、b2を第1選択部202−4に送る。
【0103】
第1選択部202−4は、解b1、b2と付加ビット2(i2)とを受け取ったら、付加ビット2(i2)と解b1、b2の最下位ビットとを比較し、一致した解を選択して解bとする。また、第1選択部202−4は、解a、bから得られる(a−b、b)∈Fq×Fqを伸長部203−3に送る。(a−b、b)が、所望のアフィン表現に相当する。
【0104】
なお、第1選択部202−4が、2つの解の組(a−b1、b1)と(a−b2、b2)とを求め、2成分目が付加ビット2(i2)と一致する解の組(=所望のアフィン表現)を選択するように構成してもよい。
【0105】
伸長部203−3は、受け取ったアフィン表現を代数的トーラス部分群の有限体表現に変換し出力する。
【0106】
このように、第4の実施形態では、第2の実施形態と同様の手法で圧縮率1/4の圧縮および伸長を実現できる。
【0107】
なお、上記各実施形態の圧縮装置および伸長装置は、例えば公開鍵暗号などの暗号化および復号を行う装置内に備えるように構成できる。例えば、公開鍵暗号による暗号化データを送信する情報処理装置(暗号化装置)内に圧縮装置を備え、暗号化データを受信して復号する情報処理装置(復号装置)内に伸長装置を備えるように構成できる。また、上記各実施形態の圧縮装置および伸長装置を共に備える圧縮伸長装置として構成してもよい。
【0108】
次に、上記各実施形態で用いた1次式〜3次式を導出する手順について説明する。最初に、圧縮率1/6の場合(第1および第2の実施形態)で用いる式の導出手順について説明する。
【0109】
(1)1/6圧縮
トーラスとしてT6(Fq)を考え、そのトーラスの部分群でトレース表現を取ることで、表現の圧縮を行う。T6(Fq)の位数は、円分多項式Φ6=q−q+1である。円分多項式Φ6は、Φ6=q−q+1=(q+√(3q)+1)(q−√(3q)+1)と因数分解できるので、(q+√(3q)+1)と(q−√(3q)+1)が整数であれば、T6(Fq)を位数(q+√(3q)+1)の部分群と位数(q−√(3q)+1)の部分群とに分割できる。すなわち、qを3の奇数乗に取ると、矛盾なく上記の因数分解により部分群が構成できる。
【0110】
ここで位数が(q+√(3q)+1)となる部分群をG、(q−√(3q)+1)となる部分群をGとする。T6(Fq)の部分群の元からトレース表現の元への写像は全単射ではないので、トレース表現の、ある元の逆像には複数のT6(Fq)の元が存在する。1つのトレース表現に対応するT6(Fq)の元は6つ存在するので、これらを識別するには少なくとも3ビットの付加ビットが必要となる。この3ビットの付加ビットを含めると、表現として必要なビット長はG+,ともにlog_2(q)+3ビットとなるため、qよりも小さな群であるGを必ずしも取る必要はないが、ここではGを部分群として取ることとする。
【0111】
以下に、トレース表現とアフィン表現との関係を明らかにし、トレース表現からアフィン表現への伸張を可能とする手法を説明する。以降の演算は、特に断りが無い限り、F(3^n)^6上の演算である。
【0112】
(2)準備
(2.1)拡大体に関する条件
有限体Fqを法多項式Φ7で6次拡大した拡大体Fq6を考え、T6(Fq)の部分群Gの元に対する圧縮・伸長写像を構成する。代数的トーラスと法多項式Φ7とqに対する条件は、以下の(22)式で表される。
【数1】

【0113】
このとき、q=5 mod 7であるから、法多項式Φ7は、以下の(23)式で表される。
【数2】

【0114】
次に、法多項式Φ7から構成されるFq6に対して、その基礎体Fq2,Fq3を考え、Fq2の基底yとFq3の基底zを、以下の(24)式のように決める。
【数3】

【0115】
また、このとき法多項式Φ7とqの条件から、yとzに対して、以下の(25)式および(26)式の関係式が得られる。
【数4】

【0116】
なお、nは奇数でなければならないが、n=5 mod 12という条件は必ずしも必要ではないと考えられる。ここでは計算の簡略化のため、y=y,z=zという形を作るためにこのような条件を置いた。
【0117】
f∈Fq3は、Fq2の基底yとδ,δ,δ∈Fqを用いて、以下の(27)式のように表現できる。また、fは以下の(28)式のように表される。
【数5】

【0118】
(2.2)トレース写像とアフィン写像
Fq6のトレース写像Tr:Fq6→Fqは、以下の(29)式のように定義できる。
【数6】

【0119】
また、g=σ+σz∈T6(Fq)に対して、アフィン写像ψ:T6(Fq)\{1}→Fq3を、以下の(30)式のように定義する。ここで、1はFq6の乗法の単位元である。
【数7】

【0120】
さらに、アフィン逆写像ψ−1:Fq3→T6(Fq)\{1}を、以下の(31)式のように定義する。
【数8】

【0121】
このとき、以下の(32)式が成り立つことが知られている。
【数9】

【0122】
(29)式は、上述の(1)式のトレース写像Trに対応する。(30)式および(31)式は、上述の(2)式のアフィン変換写像Afおよびアフィン変換逆写像Af^{−1}に対応する。
【0123】
(3)T6(Fq)トレースの計算
gのトレース表現Tr(g)とgのアフィン表現((27)式のf)の間の関係式を導くために、アフィン表現の要素を用いて、トレース表現の要素を表現する。以下の(33)式に示す。
【数10】

【0124】
ここでh=f−f−1、Ay+A+A(q^3)=h−1とおくと、以下の(34)式となる。
【数11】

【0125】
したがって、Tr(g)はh−1の各要素の和で表されることが分かる。ここで、hは以下の(35)式のように表される。
【数12】

【0126】
したがって、h−1を計算し、各要素の和をとるとTr(g)が求まる。これらを式展開すると、Tr(g)の分母部分は以下の(36)式のようになる。分子部分は後述するためここでの説明は省略する。
【数13】

【0127】
(4)T6(Fq)におけるGの条件式
f^{q+1}は、以下の(37)式で表される。
【数14】

【0128】
の位数は、q−t+1であるから、Gの元はq−t+1乗すると1になる。すなわち、以下の(38)式となる。
【数15】

【0129】
したがって、gq+1=gである。gq+1=gを整理していくと、以下の(39)式のようになる。
【数16】

【0130】
よって、Gの条件式は以下の(40)式となる。(40)式に示すように、いずれからも同じ式が導出される。
【数17】

【0131】
ここから、上記(27)式のfを用いてさらに式展開すると、以下の(41)式〜(43)式が得られる。
【数18】

【0132】
(4.1)T2(Fq)の条件式
T2(Fq3)∈T6(Fq)∈Gなので、T2(Fq3)の条件式も整理する。T2(Fq3)の位数はq−q+1なので、g^(q−q+1)=1が成立する。この式からδ,δ,δに関する条件式を整理する。以下の(44)式に示す。
【数19】

【0133】
よって、以下の(45)式が得られる。
【数20】

【0134】
ここから上記(27)式を用いて変換を継続すると、以下の(46)式の関係が得られる。この式も以降の式変形に利用する。
【数21】

【0135】
(5)トレース値が同値なアフィン表現
ある元のトレース値とその元をq乗したトレース値とは同一となる。この性質から、同一のトレース値をとるアフィン表現は少なくとも6通り存在する。ここではこれらのアフィン表現の関係を見ていくことにする。f∈Fq3とすると、関係式は以下の(47)式のようになる。
【数22】

【0136】
アフィン表現におけるq乗は要素の入れ替えとなるので、ある元をq乗した場合のアフィン表現の違いを見る。以下の(48)式が成り立つため、ある元をq乗するとアフィン表現上では各要素を2倍して1減じた値になる。
【数23】

【0137】
上記(27)式および上記(25)式の第1式(y+y+y^(q)=−1)であることに注意してトレース値が同一となる要素の組み合わせを導出すると、以下の6個の組み合わせが得られる。
・(δ,δ,δ
・(2δ−1,2δ−1,2δ−1)
・(δ,δ,δ1)
・(2δ−1,2δ−1,2δ−1)
・(δ,δ,δ
・(2δ−1,2δ−1,2δ−1)
【0138】
乗すると、各要素の入れ替えとなることがわかる。またα=δ−1、β=δ−1、γ=δ−1と置くと、以下の(49)式のようになる。
【数24】

【0139】
このq乗は、以下の(50)式で表される。
【数25】

【0140】
このようにα、β、γを置いておくと、q乗は2倍と要素の入れ替えと考えることができる。また2×2=1 (mod 3)となることにも注意する。これ以降ではδ1,δ2,δをα+1β+1γ+1と置き換えて式変形を行っていくことを考える。
【0141】
(5.1)T6(Fq)トレースの計算(その2)
αβγを用いてトレースの式を変形することを考える。上述の(36)式を変形すると、以下の(51)式となる。また、分子部分は以下の(52)式となる。
【数26】

【0142】
(5.2)T2(Fq)の条件式(その2)
上述の(46)式をαβγを用いて変形すると、以下の(53)式となる。
α+β+γ=1・・・(53)
【0143】
(5.3)T6(Fq)におけるGの条件式(その2)
上述の(41)式〜(43)式をαβγを用いて式変形すると、それぞれ以下の3つの式が得られる。
α(γ−β)+γ(α+β+γ)−αγ+αβ+α+β=1
β(α−γ)+α(α+β+γ)−βα+βγ+β+γ=1
γ(β−α)+β(α+β+γ)−γβ+γα+γ+α=1
【0144】
この式の中に現れるt乗項は、以下の(54)式のようになる。
【数27】

【0145】
ここで(53)式を用いると、以下の(55)式が得られる。
【数28】

【0146】
またこの式から、以下の(56)式に示す関係も得られる。
【数29】

【0147】
(5.4)T6(Fq)トレースの計算(その3)
(53)式を用いて、(51)式および(52)式を変形する。このときに最終的には対称式である(α+β+γ),αβγの2種類と、非対称式である(αβ+βγ+γα)を極力使用することとする。また、ここでは、A=α+β+γ,B=αβ+βγ+γα,C=αβγを用いて式の簡略化も図る。
【0148】
まず、以下の(57)式に示す関係がある。
【数30】

【0149】
また、以下の(58)式に示す関係がある。
【数31】

【0150】
(57)式および(58)式より以下の(59)式が得られる。
【数32】

【0151】
よって、以下の(60)式が得られる。
【数33】

【0152】
また、Cについて考えると、以下の(61)式および(62)式が得られる。
【数34】

【0153】
Tr(g)を変形すると(51)式および(52)式より、以下の(63)式および(64)式が得られる。
【数35】

【0154】
ここで分母分子に共通の因子が存在するため、これを約分すると、以下の(65)式および(66)式が得られる。
【数36】

【0155】
これに(56)式を用いて式変形を続けると、以下の(67)式が得られる。
【数37】

【0156】
(6)トレースからトーラスへの変換
これまでにTr(g)はA=α+β+γとC=αβγで書き表されることがわかった。CはAとB=αβ+βγ+γαの式で書き表せ、BはAで書き表せることを利用して、Tr(g)の式をAで書き表す。(65)式より、以下の(68)式が得られる。
【数38】

【0157】
この両辺をt−2乗すると、以下の(69)式が得られる。また、(69)式から(70)式が得られる。これにより、Tr(g)からA=α+β+γを求めることができる。
【数39】

【0158】
(7)3次式の導出法
A=α+β+γとその他の関係式より、βを得る方法を示す。現在までに得られている関係式は、次のとおりである((71)式〜(74)式)。
A=α+β+γ ・・・(71)
B=αβ+βγ+γα・・・(72)
C=αβγ ・・・(73)
α+β+γ=1 ・・・(74)
【0159】
(71)式を変形すると、以下の(75)式が得られる。
α=A−β−γ ・・・(75)
【0160】
(75)式を(72)式、(73)式、(74)式に代入して整理すると、以下の(76)式〜(78)式が得られる。
−β+γ+Aβ+Aβγ+Aγ+Aγ−B=0 ・・・(76)
−βγ−βγ+Aβγ−C=0 ・・・(77)
−β−βγ−γ+Aβ+Aγ+A−1=0 ・・・(78)
【0161】
(78)式にβをかけると、以下の(79)式が得られる。
−β−βγ−βγ+Aβ+Aβγ+(A−1)β=0・・・(79)
【0162】
(79)式から(77)式を引いた式に−1をかけると、以下の(80)式が得られる。
β−Aβ−(A−1)β−C=0・・・(80)
【0163】
ここで、(56)式よりB=((−1−A)/At)−Aとなり、(61)式よりC=A−B+(AB−B−1)/Aであるから、CはAで書き表すことができる。よって、βを根に持つ3次式である以下の3次式が得られた。この式を解くことで、βを得られる。
−Ax−(A−1)x−C=0
【0164】
(8)1次式の導出法
A=α+β+γとβとその他の関係式より、γを得る方法を示す。(78)式にγをかけると、以下の(81)式が得られる。
−βγ−βγ−γ+Aβγ+Aγ+(A−1)γ=0・・・(81)
【0165】
(81)式から(77)式を引くと、以下の(82)式が得られる。
−γ+Aγ+(A−1)γ+C=0・・・(82)
【0166】
さらに、(76)式から(80)式を引き、(82)式を足すと、以下の(83)式が得られる。
Aβγ−Aγ+(−A+1)β+(−A−1)γ−B=0・・・(83)
【0167】
(83)式にβをかけた式と、(77)式にAを書けた式は、それぞれ以下の(84)式および(85)式となる。
Aβγ−Aβγ+(−A+1)β+(−A−1)βγ−Bβ=0・・・(84)
−Aβγ−Aβγ+Aβγ−AC=0・・・(85)
【0168】
(84)式)から(85)式を引くと、以下の(86)式が得られる。
−Aβγ+(−A+1)β+(A−1)βγ−Bβ+AC=0・・・(86)
【0169】
(86)式をAで割って、γについて整理すると、以下の(87)式が得られる。
(−β+(A−(1/A))β)γ+(−A+(1/A))β−Bβ/A+C=0・・・(87)
【0170】
前に求めた2次式と3次式の解より、A,B,Cとβは定数値であるため、γを根にもつ1次式である以下の(88)式が得られた。
(−β+(A−(1/A))β)x+(−A+(1/A))β−Bβ/A+C=0・・・(88)
【0171】
βとγが求まれば、(71)式よりαが求まる。
【0172】
(9)まとめ
以下の(89)式を解くことで、代数的トーラスの部分群の元のトレース表現Tr(g)より、アフィン表現(α+1,β+1,γ+1)を得る方法を与えた。
【数40】

【0173】
具体的な手順は、次の通りである。
・α+β+γを根にもつ2次式である、x=−[{Tr(g)}t−2+1]−1を解いて、2つの解を得る。
・2つの解をそれぞれAに代入して求めた、βを根にもつ3次式である、x−Ax−(A−1)x−C=0を解いて、それぞれ3つの解を得る。
・2次式の解の1つをAに、Aに対応する3次式の解の1つをβに代入して求めた、γを根にもつ1次式である、(−β+(A−(1/A))β)x+(−A+(1/A))β−Bβ/A+C=0を解いて、それぞれ1つの解を求め、対応するαを計算する。
【0174】
以上より、計6個の(α,β,γ)が得られるため、付加ビットを用いて正しい(α,β,γ)を特定する。
【0175】
次に、圧縮率1/4の場合(第3および第4の実施形態)で用いる式の導出手順について説明する。
【0176】
(1)1/4圧縮
トーラスとしてT4(Fq)を考え、その部分群であるトレース(トレース表現)を取ることを考える。円分多項式Φ4を因数分解すると、Φ4=q+1=(q+√(2q)+1)(q−√(2q)+1)とすることができるので、これらの項が整数になればトーラスを部分群に分割することができる。具体的にはqを2の奇数乗に取ると、矛盾なく上記の因数分解により部分群が構成できる。
【0177】
ここで位数が(q+√(2q)+1)となる部分群をG、(q−√(2q)+1)となる部分群をGとする。トーラスの中で部分群を取る元からトレースの元への写像は全単射ではないので、あるトレースの元から写像されるトーラスの元は複数存在する。1つのトレースの元に対応するトレースの元は4つ存在するので(詳細はトレース表現を参照のこと)これらを識別可能とするには2ビットの付加ビットが必要となる。これ以後の小節でトレースとアフィン表現の関係を明らかにし、トレースからアフィン表現への伸張を可能とする手法を説明していく。以降の演算は、特に断りが無い限り、F(2^n)^4上の演算である。
【0178】
(2)準備
(2.1)条件の整理
t=√(2q)と置く。
検討するトーラスやトレースに矛盾がでないよう、また式変形を容易に行えるように以下の(90)式に示す定義とq≡t≡2( mod 5)という条件をおく。
【数41】

【0179】
なお、上記定義と条件の下では計算上x=x,x=x,x^q=x,x^q=xという置き換えが可能である。このような定義と仮定を置くと、以下の(91)式に示す条件式が得られる。
【数42】

【0180】
(2.2)よく使う関係式
以下の(92)式に、この後の式変形で用いるfの関係式について、先にまとめて記載しておく。
【数43】

【0181】
(3)トーラスの構成要素で表すトレース
トレースの値をアフィン表現で用いた係数を用いて表すとどのようになるかを計算していく。なお、T4のトレース表現Tr(g)の定義式はTr(g)=g+g+g^q+g^qである(上述の(16)式に対応)。以下の(93)式がこの計算過程を示す式である。
【数44】

【0182】
(4)Gの条件
ここではGとなる条件であるgq+1=gとなる条件を導出する。以下の(94)式に示すような式変形ができる。
【数45】

【0183】
これ以後はt≡q (mod 5)≡2 (mod 5)と仮定する。このときのtはt=24k+1(k∈Z(整数の集合))という条件になり、前述の仮定と矛盾しない。なお、これ以外のパラメータでも構成は可能である。(94)式からさらに以下の(95)式に示すような式変形ができる。
【数46】

【0184】
ここからf=δy+δを代入し、整理する。まずは、以下の(96)式に示すように、式変形に用いる関係式をまとめて計算しておく。
【数47】

【0185】
上記を使ってGの条件式を再度整理すると、以下の(97)式のように書ける。
【数48】

【0186】
以上より、f∈Gの条件は、以下の(98)式となる。
【数49】

【0187】
これらの条件式を加えて整理すると、以下の(99)式となる。
【数50】

【0188】
の元となるためには少なくともこの(99)式を満たさなければならない。
【0189】
(5)q乗による変化
T4のトレース表現Tr(g)の定義式はTr(g)=g+g+g^q+g^qであるので、Tr(g)=g+g^q+g^q+g、Tr(g^q)=g^q+g^q+g+g、Tr(g^q)=g^q+g+g+g^qという関係式が成り立つ。すなわち、あるトーラスの元gをq乗した元のトレースは、もとのトレースと同じ値となる関係がある。Gに属していたトーラスの元をq乗しても、やはりGの元になることは明らかであるから、ある条件式をq乗しても性質は保たれるはずである。そこで、トーラスの元をq乗した場合に係数に起こる変化を眺め、その変化を以降の式変形に当てはめて用いることを考える。
【数51】

以上の(100)式に示すように式変形可能なので、f=δy+δであることを考えると、(δ)→(δ+1,δ)というように係数が変化していることが分かる。このように変化してもGの条件式もトーラスからトレースへの変換式も変化がない。実際、この変化を前述のGの条件式に当てはめてみるともとの式に戻り、この変化によりGの条件式が変化することはない。ここ以降ではq乗したように係数を変化させて得られる式の関係性をq乗対称の関係と呼ぶことにする。
【0190】
(6)トレースからトーラスへの伸張
トーラスからトレースへの変換式とGの条件式を用いてトレースからトーラスへの変換式の導出を試みる。
(6.1)準備
以下では、トレースからトーラスへ変換する前に、必要となる関係式を導出しておく。δ+δとδ+δの関係式をGの条件式である(99)式から作成することを試みる。Gの条件式を整理すると(δ+δt+1=δ+δ+1である。これをt=2であることに注意してt−1乗すると、以下の(101)式となる。
【数52】

【0191】
(101)式はq乗対称になっていない。q乗対称性を満たすためには(δ)→(δ+1,δ)と係数を変化させても関係が保たれることが必要であるから、(101)式をq乗対称にした以下の(102)式も同時に満たされるはずである。
【数53】

【0192】
一方、(101)式にδ+δを加えた上で、(δ+δ+1)をかけると、以下の(103)式が得られる。
【数54】

【0193】
左辺に(102)式を代入すると以下の(104)式が得られる。
【数55】

【0194】
この式もq乗対称の関係を考え、(δ)→(δ+1,δ)と係数を変化させると、以下の(105)式が得られる。
【数56】

【0195】
これらの2式((104)式、(105)式)を加えると、以下の(106)式となり、以下の(107)式が得られる。
【数57】

【0196】
この式でもq乗対称の関係を考え、(δ)→(δ+1,δ)と係数変化させると、以下の(108)式が得られ、δ+δとδ+δの関係式が得られた。
【数58】

【0197】
(6.2)トレースの式変形
トレースの式をδで表すと、以下の(109)式のようになる。
【数59】

【0198】
この式を少し整理し、以下の(110)式とする。
【数60】

【0199】
ここでδδ+δ=δ(δ+δ),δ+δδ=δ(δ+δ)を用いて式変形すると、以下の(111)式となる。
【数61】

【0200】
ここで上述の(107)式および(108)式を代入すると、以下の(112)式となり、2元2次方程式が得られる。
【数62】

【0201】
δ+δ=Xとおくと、上記(112)式は、以下の(113)式のような1元2次方程式に置き換わる。
【数63】

【0202】
標数2の2次方程式の解の公式はないが、具体的に体を構成すると解が求まる。具体的にXが求まれば、前述の(107)式の左辺がδ+δ=(X−δ+δ=δ+δ+Xと置き換えられることを利用し、以下の(114)式をδについて解くことでδ,δが求まる。
【数64】

【0203】
なお、これらの(113)式および(114)式は、解が2つずつ出てくるため、2×2で4つの解が求まるはずである。これらの4解は同じトレース値から得られるもので、これら4つの解のうち、いずれの解がもとのトーラスの元を表しているかを特定するために付加ビットを利用することにする。
【0204】
これら4解は、それぞれq乗対称の関係にある。すなわち(δ,δ)→(δ+1,δ)→(δ+1,δ+1)→(δ+1,δ)(→(δ,δ))という関係である。q乗するごとに矢印を右に進み、q乗するともとに戻ってくるというものである。この関係から、例えば、ある解のδ,δの最下位1ビットに注目すると、それらが(0,0)であった場合のq乗対称の関係を見ていくと、(0,0)→(0,1)→(1,1)→(1,0)(→(0,0))という関係になり、それぞれが1乗、q乗、q乗,q乗となっているはずである。このため、例えばδ1、δの最下位1ビットずつを付加ビットとして採用しておけば、トレースの元から、もとの正しいトーラスの元を特定することが可能である。
【0205】
(6.3)具体的構成例
以下に、トーラスのアフィン表現からトレースに変換する手法とトレースからトーラスのアフィン表現に変換する手法の一例を簡単に記す。
【0206】
(トーラスからトレース)
・入力:(δ,δ
・出力:Tr(g),(b,b)(b,bは付加ビット)
1.上記(109)式によりTr(g)を求める。
2.δの最下位ビットをb0、δの最下位ビットをbとし、Tr(g),(b,b)を出力する。
【0207】
(トレースからトーラス)
・入力:Tr(g),(b,b
・ 出力:(δ,δ
1.X+X+1={Tr(g)}q−tを解き、X,Xを求める。
2.δ+δ+X+X{Tr(g)}q−t=0を解き、δ2a,δ2bを求める。
3.X=δ1a+δ2aよりδ1aを求める。
4.(δ1a,δ2a)の最下位ビットと(b,b)とを比べ、一致していなかったら5へ遷移し、一致していたら6へ遷移する。
5.(δ1a,δ2a)=(δ2a+1,δ1a)と設定しなおし、4へ戻る。
6.(δ,δ)=(δ1a,δ2a)とし、(δ,δ)を出力する。
【0208】
(7)まとめ
以上で、トレースの元に付加ビットを加えたものからT4トーラスの元に復元する具体的手法を与えた。これにより従来のトーラスではもとの有限体の大きさと比べて1/3までしか表現の圧縮ができていなかったのに対し、漸近的に1/4まで圧縮が可能となった。
【0209】
以上説明したとおり、第1から第4の実施形態によれば、従来の方法では効率的に伸長写像が構成できない法多項式に対して、効率的に圧縮装置および伸長装置を実現することができる。
【0210】
次に、第1から第4の実施形態にかかる伸長装置および圧縮装置のハードウェア構成について図10を用いて説明する。図10は、第1から第4の実施形態にかかる伸長装置および圧縮装置のハードウェア構成を示す説明図である。
【0211】
第1から第4の実施形態にかかる伸長装置および圧縮装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM(Random Access Memory)53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
【0212】
第1から第4の実施形態にかかる伸長装置および圧縮装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
【0213】
第1から第4の実施形態にかかる伸長装置および圧縮装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【0214】
さらに、第1から第4の実施形態にかかる伸長装置および圧縮装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1から第4の実施形態にかかる伸長装置および圧縮装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0215】
第1から第4の実施形態にかかる伸長装置および圧縮装置で実行されるプログラムは、コンピュータを上述した伸長装置および圧縮装置の各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【0216】
なお、本実施形態は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【符号の説明】
【0217】
100 圧縮装置
101 入力部
102 第1変換部
103 第2変換部
104 付加ビット決定部
105 出力部
121 記憶部
200 伸長装置
201 入力部
202 第1選択部
203 伸長部
204 出力部
210 算出部
211 第1式決定部
212 第1求解部
213 第2式決定部
214 第2求解部
215 第3式決定部
216 第3求解部
217 第2選択部
221 記憶部

【特許請求の範囲】
【請求項1】
有限体の乗法群の部分群の要素をトレース表現で表したトレース表現データと前記トレース表現データをアフィン表現で表したアフィン表現データに基づいて得られる付加データと、前記トレース表現データとを入力する入力部と、
前記トレース表現データによって決定される連立方程式の複数の解を算出する算出部と、
前記付加データに基づいて、複数の前記解から求められるデータであって、前記要素をアフィン表現で表した複数のアフィン表現データのうちいずれかを選択する第1選択部と、
選択された前記アフィン表現データを前記要素に伸長する伸長部と、
を備えることを特徴とする伸長装置。
【請求項2】
前記算出部は、
前記有限体上の予め求められたk次式(kは予め定められる1以上の整数)の予め定められた係数に前記トレース表現データを入力して得られる第1式の解を求める第1求解部と、
前記有限体上の予め求められたk次式(kは予め定められる1以上の整数)の予め定められた係数に前記第1式の解の少なくとも1つを入力して得られる第2式の解を求める第2求解部と、を備え、
前記第2式の解に基づいて前記連立方程式の複数の解を算出すること、
を特徴とする請求項1に記載の伸長装置。
【請求項3】
前記第1求解部は、前記有限体上の予め求められた2次式の予め定められた係数に前記トレース表現データを入力して得られる前記第1式の2個の解を求め、
前記第2求解部は、前記有限体上の予め求められた3次式の予め定められた係数に前記2個の解の少なくとも1つを入力して得られる前記第2式の3個の解を求め、
前記算出部はさらに、
前記有限体上の予め求められた1次式の予め定められた係数に、前記第1式の2個の解および前記第2式の3個の解のうち少なくとも1つを入力して得られる第3式の解を求める第3求解部を備え、
前記第2式の解および前記第3式の解に基づいて前記連立方程式の複数の解を算出すること、
を特徴とする請求項2に記載の伸長装置。
【請求項4】
前記算出部は、
前記付加データに基づいて、前記第1式の解のうちいずれかの解を選択する第2選択部をさらに備え、
前記第2求解部は、前記k次式の予め定められた係数に、前記第2選択部により選択された解を入力して得られる前記第2式の解を求めること、
を特徴とする請求項2に記載の伸長装置。
【請求項5】
有限体の乗法群の部分群の要素を、前記要素をトレース表現で表したトレース表現データに変換する第1変換部と、
前記要素を、前記要素をアフィン表現で表したアフィン表現データに変換する第2変換部と、
前記アフィン表現データに基づいて、前記アフィン表現データを求めるための付加データを決定する決定部と、
前記トレース表現データと前記付加データとを出力する出力部と、
を備えることを特徴とする圧縮装置。
【請求項6】
前記決定部は、前記アフィン表現データの一部を前記付加データとして決定すること、
を特徴とする請求項5に記載の圧縮装置。
【請求項7】
前記決定部は、前記トレース表現データによって決定される連立方程式の複数の解を予め定められた基準で並べたときの前記アフィン表現データと一致する解の先頭からの順序を前記付加データとして決定すること、
を特徴とする請求項5に記載の圧縮装置。
【請求項8】
前記有限体上の予め求められたk次式(kは予め定められる1以上の整数)の予め定められた係数に前記トレース表現データを入力して得られる第1式の解を求め、前記有限体上の予め求められたk次式(kは予め定められる1以上の整数)の予め定められた係数に前記第1式の解の少なくとも1つを入力して得られる第2式の解を求め、前記第2式の解に基づいて前記連立方程式の複数の解を算出する算出部をさらに備え、
前記決定部は、前記第1式の解を予め定められた基準で並べたときの前記アフィン表現データの要素の和と一致する解の先頭からの順序、および、前記連立方程式の複数の解を前記基準で並べたときの前記アフィン表現データと一致する解の先頭からの順序を、前記付加データとして決定すること、
を特徴とする請求項5に記載の圧縮装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate