(57)【要約】【課題】圧縮できない例外点が現れた場合であっても適切に処理を実行できる情報処理装置を提供すること。【解決手段】予め定められた演算を実行し、代数的トーラス上の元である演算結果を出力する暗号化処理部１０２と、演算結果が、代数的トーラス上の元をアフィン表現に圧縮する圧縮写像によって圧縮できない代数的トーラス上の元を表す例外点でない場合に、演算結果を圧縮写像によって圧縮した圧縮結果を出力し、演算結果が例外点である場合に、例外点でない演算結果を圧縮した圧縮結果が属する集合と重複しない予め定められた特定集合に属する元を、演算結果の圧縮結果として出力する圧縮部１０４と、を備えた。【選択図】        図１
2010049216.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた演算を実行し、代数的トーラス上の元である演算結果を出力する演算処理部と、
前記演算結果が、前記代数的トーラス上の元をアフィン表現に圧縮する圧縮写像によって圧縮できない前記代数的トーラス上の元を表す例外点である場合に、前記例外点でない前記演算結果を前記圧縮写像によって圧縮した圧縮結果が属する集合と重複しない予め定められた特定集合に属する元を、前記演算結果の圧縮結果として出力する圧縮部と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記圧縮部は、前記演算結果が前記例外点でない場合に、前記演算結果を前記圧縮写像によって圧縮した圧縮結果を出力すること、
を特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記演算結果が前記例外点か否かを判定する判定部をさらに備え、
前記圧縮部は、前記判定部によって前記演算結果が前記例外点であると判定された場合に、前記特定集合に属する元を前記圧縮結果として出力すること、
を特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記代数的トーラス上の元は、予め定められた有限体上の元によって表現され、
前記圧縮写像は、前記代数的トーラス上の元を表現する前記有限体上の元の逆元を算出し、算出した逆元を用いてアフィン表現に圧縮する写像であり、
前記圧縮部は、前記演算結果が、逆元を算出できない元である前記有限体上の零元によって表現された前記例外点である場合に、零元の逆元として零元を用いて前記圧縮写像により前記演算結果をアフィン表現に圧縮することにより、前記特定集合に属する元である前記圧縮結果を出力すること、
を特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記特定集合は、予め定められた有限体上の２次元アフィン空間から、前記代数的トーラス上の単位元以外の元を前記圧縮写像で圧縮して得られる元を除いた元からなる集合であること、
を特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記特定集合は、前記圧縮写像に対応する伸長写像によって前記例外点に変換される元を含むこと、
を特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記演算処理部は、前記代数的トーラス上の離散対数問題に基づく暗号方式により平文データを暗号化した暗号文データである前記演算結果を出力すること、
を特徴とする請求項１に記載の情報処理装置。
【請求項８】
コンピュータを、
予め定められた演算を実行し、代数的トーラス上の元である演算結果を出力する演算処理部と、
前記演算結果が、前記代数的トーラス上の元をアフィン表現に圧縮する圧縮写像によって圧縮できない前記代数的トーラス上の元を表す例外点である場合に、前記例外点でない前記演算結果を前記圧縮写像によって圧縮した圧縮結果が属する集合と重複しない予め定められた特定集合に属する元を、前記演算結果の圧縮結果として出力する圧縮部と、
として機能させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、有限体の乗法群の部分群の上で定義された離散対数問題の困難性を安全性の根拠とする公開鍵暗号方式などのように代数的トーラスを用いてデータ長を圧縮する処理を実行する装置およびプログラムに関する。
【背景技術】
【０００２】
離散対数問題は、巡回群Ｇ＝＜ｇ＞においてｙ∈Ｇが与えられたときに、ｙ＝ｇｘを満たすｘを求める問題である。巡回群Ｇとしては、有限体の乗法群や楕円曲線の有理点のなす加法群（ヤコビ群）が用いられる。これらの問題は、公開鍵暗号を構成するために利用される。これらの問題を解くアルゴリズムには、シャンクのアルゴリズムやポラードのρ法のようにいずれの巡回群上で定義された離散対数問題に対しても適用可能なものと、位数計算法にように有限体の乗法群上で定義された離散対数問題のみに適用可能なものが存在する。
【０００３】
位数計算法は効率的であるため、有限体の乗法群上の離散対数問題を用いた公開鍵暗号は解読されやすい。したがって、同じ安全性を確保するために、有限体の乗法群上の離散対数問題を用いた公開鍵暗号は、楕円曲線上の離散対数問題を用いた公開鍵暗号よりも鍵長や暗号文長を大きくする必要がある。
【０００４】
そこで、代数的トーラスを利用することにより、公開鍵暗号における公開鍵サイズや暗号文サイズを圧縮する暗号圧縮技術が提案されている（例えば、非特許文献１）。代数的トーラスは、有限体の乗法群の部分群として定義される。代数的トーラスは、元の表現を圧縮することができる。これにより、有限体の乗法群上の離散対数問題を用いた公開鍵暗号における鍵長や暗号文長が大きいという問題を解消することが可能である。
【０００５】
例えば、（１）式で表される有限体の元は、（２）式で表される有限体の６つの成分を用いて（ａ１，ａ２，ａ３，ａ４，ａ５，ａ６）と表現される。ここでａｉ（ｉ＝１〜６）は、（２）式の有限体の元である。これに対して、（３）式で表される６次のトーラスは、（１）式の有限体に含まれる巡回群であって、その元は、（２）式の有限体の２つの成分を用いて表現される。この表現をａｆｆｉｎｅ表現（アフィン表現）と呼ぶ。このように、公開鍵暗号の鍵や暗号文がこのトーラスの元の場合には、長さを１／３に圧縮することができる。
【数１】
2010049216.tif 000003
【０００６】
なお、以下では、（１）式のような有限体をＦｑ＾６と表記する場合がある。
【０００７】
【非特許文献１】Ｋ．Ｒｕｂｉｎ  ａｎｄ  Ａ．Ｓｉｌｖｅｒｂｅｒｇ．“Ｔｏｒｕｓ−Ｂａｓｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ”、ＣＲＹＰＴＯ  ２００３、Ｓｐｒｉｎｇｅｒ  ＬＮＣＳ  ２７２９、３４９−３６５、２００３．
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、Ｔ６（Ｆｑ）には、アフィン表現に圧縮できない元を表す例外点が存在し、例外点はそれ以外の点と同じように表現できないという問題がある。非特許文献１では、例外点が現れた場合、暗号化が失敗するが、例外点が現れる確率は小さいため無視することが記載されている。しかし、公開鍵暗号における乗算、平方、べき乗、逆元、Ｆｒｏｂｅｎｉｕｓ写像などの演算では、確率は小さくても通常点を例外点に写像する場合があるので、暗号文や公開鍵として例外点を用いないようにすることはできない。
【０００９】
なお、トーラスの元をｅｘｔｅｎｓｉｏｎ  ｆｉｅｌｄ表現（拡大体表現）またはｐｒｏｊｅｃｔｉｖｅ表現（射影表現、詳細は後述）で表現すれば、例外点も表現できるため上記の問題は生じない。しかし、アフィン表現ではないため圧縮の効果が得られない。
【００１０】
本発明は、上記に鑑みてなされたものであって、非特許文献１の暗号圧縮技術のように代数的トーラスを用いてデータ長を圧縮する処理で、圧縮できない例外点が現れた場合であっても、適切に処理を実行できる装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明は、予め定められた演算を実行し、代数的トーラス上の元である演算結果を出力する演算処理部と、前記演算結果が、前記代数的トーラス上の元をアフィン表現に圧縮する圧縮写像によって圧縮できない前記代数的トーラス上の元を表す例外点である場合に、前記例外点でない前記演算結果を前記圧縮写像によって圧縮した圧縮結果が属する集合と重複しない予め定められた特定集合に属する元を、前記演算結果の圧縮結果として出力する圧縮部と、を備えたことを特徴とする。
【００１２】
また、本発明は、コンピュータを、予め定められた演算を実行し、代数的トーラス上の元である演算結果を出力する演算処理部と、前記演算結果が、前記代数的トーラス上の元をアフィン表現に圧縮する圧縮写像によって圧縮できない前記代数的トーラス上の元を表す例外点である場合に、前記例外点でない前記演算結果を前記圧縮写像によって圧縮した圧縮結果が属する集合と重複しない予め定められた特定集合に属する元を、前記演算結果の圧縮結果として出力する圧縮部と、として機能させるための情報処理プログラムである。
【発明の効果】
【００１３】
本発明によれば、代数的トーラスを用いてデータ長を圧縮する処理で、圧縮できない例外点が現れた場合であっても、適切に処理を実行することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１４】
以下に添付図面を参照して、この発明にかかる装置およびプログラムの最良な実施の形態を詳細に説明する。
【００１５】
（第１の実施の形態）
第１の実施の形態では、代数的トーラスを用いた公開鍵暗号方式による暗号処理システムを構成する暗号化装置または復号装置として本発明の情報処理装置を実現した例について説明する。適用可能な装置はこれに限られず、代数的トーラスを用いてデータ長を圧縮する処理を実行する装置であればあらゆる装置に適用できる。
【００１６】
第１の実施の形態にかかる暗号処理システムでは、暗号化装置が、アフィン表現に圧縮するトーラス上の元が例外点である場合に、特定の集合に属する元を、当該例外点に対応するアフィン表現として出力する。
【００１７】
ここで、本実施の形態で用いる用語の定義等について説明する。
（定義１：体）環ｋは、零元０（加法に関する単位元）を除く、以下の（４）式で表される集合ｋ＊に関して環となるとき、体（field）であるという。有限個の元からなる体を有限体（finite field）といい、上述のようにＦｑと表す。ここで、ｑは元の個数であり、その有限体の位数（order）と呼ばれる。ｑは素数のべき乗（素べき）となる。すなわち、ｑは素数ｐと正整数ｎによりｑ＝ｐｎと表される。
【数２】
2010049216.tif 000004
【００１８】
（定義２：乗法群）群Ｇの演算が乗法のとき、Ｇを乗法群（multiplicative group）という。
【００１９】
（定義３：体の乗法群）体ｋの元のうち、０以外の元の集合は、乗法に関して群をなす。これを体ｋの乗法群（multiplicative group of field k）という。有限体Ｆｑの乗法群は、０以外の元から構成され、以下の（５）式で表される。
【数３】
2010049216.tif 000005
【００２０】
（定義４：アフィン空間）ｋを体とする。集合｛（ａ１，ａ２， ・ ・ ・ ， ａｎ） ｜ ａ１∈ｋ， ａ２∈ｋ， ・ ・ ・ ， ａｎ∈ｋ｝を、体ｋ上のｎ次元アフィン空間（affine space）といい、以下の（６）式で表す。
【数４】
2010049216.tif 000006
【００２１】
（定義５：代数的トーラス）代数的トーラス（algebraic torus）Ｔｎを、以下の（７）式のように定義する。
【数５】
2010049216.tif 000007
ＲｅｓＫ／ｋは、体Ｋから体ｋへのスカラーのＷｅｉｌ  ｒｅｓｔｒｉｃｔｉｏｎと呼ばれ、以下の（８）式で表される同形が成り立つ。
【数６】
2010049216.tif 000008
【００２２】
（定理１）以下の（９）式および（１０）式の定理が成り立つ。
【数７】
2010049216.tif 000009
【００２３】
（定義６：有理トーラス）ＴをＦｑ上の次元ｄの代数的トーラスとする。双有理写像（ｂｉｒａｔｉｏｎａｌ  ｍａｐ）ρ：Ｔ→Ａｄが存在するとき、Ｔは有理（ｒａｔｉｏｎａｌ）であるという。すなわち、Ｔが有理であるとき、Ｚａｒｉｓｋｉ開部分集合Ｗ⊂Ｔ、Ｕ⊂Ａｄ（Ｆｑ）、有理関数ρ１， ・ ・ ・ ， ρｄ∈Ｆｑ（ｘ１， ・ ・ ・ ， ｘｔ）と、ψ１， ・ ・ ・ ，ψｔ∈Ｆｑ（ｙ１， ・ ・ ・ ， ｙｄ）が存在し、ρ＝（ρ１， ・ ・ ・ ， ρｄ）:Ｗ→Ｕかつψ＝（ψ１， ・ ・ ・ ， ψｔ）:Ｕ→Ｗである。
【００２４】
（例１：Ｔ６の有理パラメトライゼーション）ｆ２（ｘ）＝ｘ２＋１をＦｑ＾３上の２次既約多項式とし、ｘをｆ２（ｘ）＝０の根とする。ｆ３（ｙ）＝ｙ３＋ｗをＦｑ上の３次既約多項式とし、ｙをｆ３（ｙ）＝０の根とする。Ｆｑ＾３＝Ｆｑ（ｙ）、Ｆｑ＾６＝Ｆｑ＾３（ｘ）である。Ｆｑ＾３のＦｑ−基底を｛α０＝１，α１＝ｙ，α２＝ｙ２｝ととる。｛１，ｙ，ｙ２，ｘ，ｘｙ，ｘｙ２｝はＦｑ＾６のＦｑ−基底となる。σ∈Ｇａｌ（Ｆｑ＾６／Ｆｑ）を位数２の元とする。具体的には、以下の（１１）式とする。また、以下の（１２）式で表されるψ０を、以下の（１３）式で定義する。
【数８】
2010049216.tif 000010
ここで、ｕ＝（ｕ０，ｕ１，ｕ２）とし、γを以下の（１４）式で表す。また、以下の（１５）式より、以下の（１６）式が成り立つ。
【数９】
2010049216.tif 000011
【００２５】
１．以下の（１７）式および（１８）式を用いると、すべてのｕ＝（ｕ０，ｕ１，ｕ２）に対して、以下の（１９）式が成り立つ。
【数１０】
2010049216.tif 000012
【００２６】
２．Ｕを以下の（２０）式で定義すると、以下の（２１）式が成り立つ。また、Ｈｉｌｂｅｒｔの定理９０より、Ｔ６（Ｆｑ）−｛１｝の元はすべてψ０の像に含まれる。よって、以下の（２２）式が成り立つ。
【数１１】
2010049216.tif 000013
【００２７】
Ｕを定義する方程式は、以下の（２３）式である。したがって、この式を解くと、以下の（２４）式が得られる。
【数１２】
2010049216.tif 000014
【００２８】
γ＝ｕ０＋ｕ１ｙ＋ｕ２ｙ２を（２４）式に代入すると、以下の（２５）式が得られる。
【数１３】
2010049216.tif 000015
【００２９】
ｕ１≠０のとき、以下の（２６）式が成り立つため、Ｕ｜ｕ１≠０は以下の（２７）式を満たすｕ０，ｕ１によりパラメトライズされる。一方、ｕ１＝０のとき、ｕ０２＝１／３であるが、ここで、ｑを選ぶ際に、３はＦｑにおいて平方非剰余となるように選ぶものとする。
【数１４】
2010049216.tif 000016
【００３０】
このとき、ｕ０２＝１／３は解を持たないので、Ｕ｜ｕ１＝０は空集合である。よって、このとき、Ｕ＝Ｕ｜ｕ１≠０は、上記（２７）式を満たすｕ０，ｕ１によりパラメトライズされる。
【００３１】
そこで、以下の（２８）式で表される写像ｇを、以下の（２９）式により定義する。
【数１５】
2010049216.tif 000017
【００３２】
（定義７：射影表現）以下の（３０）式を、Ｔ６（Ｆｑ）の射影表現という。なお、αとβとが（３０）式の条件を満たすとき、射影表現を（α，β）のように簡略化して表現する。
【数１６】
2010049216.tif 000018
【００３３】
（定義８：アフィン表現）以下の（３１）式を、Ｔ６（Ｆｑ）のアフィン表現という。なお、ｕ０とｕ１とが（３１）式の条件を満たすとき、アフィン表現を（ｕ０，ｕ１）のように簡略化して表現する。
【数１７】
2010049216.tif 000019
【００３４】
（定義９：例外点と通常点）以下の（３２）式で示すような、アフィン空間Ａ２（Ｆｑ）から代数的トーラスＴ６（Ｆｑ）への有理写像ψと、その逆写像ρが定義されている。
【数１８】
2010049216.tif 000020
【００３５】
このとき、１∈Ｔ６（Ｆｑ）を例外点と呼ぶ。このような例外点１は、写像ρによっては圧縮できない。また、例外点以外のＴ６（Ｆｑ）の元を通常点と呼ぶ。通常点は、写像ρによって、Ａ２（Ｆｑ）の元として表現できる。すなわち、通常点は１／３の長さに圧縮できる。
【００３６】
次に、第１の実施の形態にかかる暗号処理システムの構成について説明する。図１は、第１の実施の形態にかかる暗号処理システムのブロック図である。図１に示すように、第１の実施の形態にかかる暗号処理システムは、暗号化装置１００と、復号装置２００とを含んでいる。
【００３７】
最初に、暗号化装置１００の構成について説明する。暗号化装置１００は、代数的トーラスを用いた公開鍵暗号方式で平文を暗号化する装置であり、入力部１０１と、暗号化処理部１０２と、判定部１０３と、圧縮部１０４と、記憶部１２１と、を備えている。
【００３８】
入力部１０１は、平文データや、暗号化に用いる公開鍵暗号方式の暗号鍵データ（以下、公開鍵データという）などを入力する。記憶部１２１は、入力された平文データや公開鍵データなどを保存する。
【００３９】
暗号化処理部１０２は、予め定められた演算を実行することにより、代数的トーラス上の元である演算結果を出力する演算処理部として機能する。具体的には、暗号化処理部１０２は、平文データに対して公開鍵データを用いて、有限体上の離散対数問題に基づいた暗号化処理を施して複数の要素を含む暗号文データを出力する。より具体的には、暗号化処理部１０２は、有限体上の離散対数問題に基づく暗号化方式として、ＥｌＧａｍａｌ暗号方式やＣｒａｍｅｒ−Ｓｈｏｕｐ暗号方式により、複数回のべき乗または乗算、あるいは暗号文データを入力値として用いるハッシュ関数Ｈを用いて平文データに暗号化処理を施して暗号文データを出力する。以下では、暗号化処理部１０２が、Ｃｒａｍｅｒ−Ｓｈｏｕｐ暗号方式で平文データを暗号化するものとして説明する。
【００４０】
ここで、Ｃｒａｍｅｒ−Ｓｈｏｕｐ暗号方式について説明する。図２は、Ｃｒａｍｅｒ−Ｓｈｏｕｐ暗号方式の暗号化および復号化の処理手順を示す説明図である。図２で、ｑは素数、ｇは暗号が定義される群Ｇ（位数はｑ）の生成元、ｇ〜，ｅ，ｆ，ｈは群Ｇの元である。平文データｍもＧの元である。ｒはランダムに生成される乱数である。
【００４１】
暗号化処理６０１では、（１０−１）〜（１０−４）式により平文データｍに対応する暗号文データ（ｃ１，ｃ２，ｃ３，ｃ４）を計算する。ここで、（１０−３）式におけるＨはハッシュ関数を示しており、ハッシュ関数Ｈに暗号文データを入力してハッシュ値ｖを求めている。秘密鍵は１からｑまでの整数（または０からｑ−１までの整数）とする。
【００４２】
復号処理６０２では、（１１−１）〜（１１−６）式により秘密鍵（ｘ１，ｘ２，ｙ１，ｙ２，ｚ１，ｚ２）と暗号文データ（ｃ１，ｃ２，ｃ３，ｃ４）から正当な平文データであるか否かをチェックし、平文データｍを計算する。ここで、秘密鍵（ｘ１，ｘ２，ｙ１，ｙ２，ｚ１，ｚ２）は１からｑまでの整数とする。また、ｃ∈?Ｇ（またはＧ〜）は、ｃが群Ｇ（または群Ｇ〜）に属するか否かを判断することを示している。
【００４３】
このように、暗号化処理部１０２は、Ｃｒａｍｅｒ−Ｓｈｏｕｐ暗号方式によって４つの要素からなる暗号文データｃ１，ｃ２，ｃ３，ｃ４を出力する。ｃ１，ｃ２，ｃ３，ｃ４は、それぞれ代数的トーラスの元であり、拡大体表現の場合は、各要素がそれぞれａ１＋ａ２ｘ＋ａ３ｙ＋ａ４ｘｙ＋ａ５（ｙ２−２）＋ａ６ｘ（ｙ２−２）のように表される。ここで、各ａｉはＦｑの元である。上述のように、この拡大体表現はａｉのみを用いて（ａ１，ａ２，ａ３，ａ４，ａ５，ａ６）と表してもよい。
【００４４】
なお、本実施の形態では、暗号化処理部１０２は、射影表現で表された暗号文データを出力する場合を例に説明する。これにより、処理コストが大きい拡大体表現と射影表現との間の変換処理をできるだけ少なくし、暗号化に関する演算処理のコストを低減することが可能となる。なお、拡大体表現で表された暗号文データを出力する場合にも、本実施の形態と同様の手法を適用できる。また、暗号化処理部１０２は演算処理部の一例であり、代数的トーラス上の元を演算結果として出力するものであれば、暗号化処理以外の演算処理を実行するように構成してもよい。  
【００４５】
暗号文データの各要素が、後述する圧縮部１０４による圧縮の対象となる代数的トーラス上の元（対象元）となる。
【００４６】
判定部１０３は、暗号化処理部１０２が出力した暗号文データに含まれる各要素が、上述した代数的トーラス上の例外点（例外点１）であるか否かを判定する。
【００４７】
圧縮部１０４は、非特許文献１のような代数的トーラスを利用した暗号圧縮技術によって暗号文データを圧縮した圧縮暗号文データを出力する。具体的には、圧縮部１０４は、判定部１０３が例外点でないと判定した暗号文データの要素を、上述の双有理写像ρによって射影表現からアフィン表現に圧縮し、圧縮したアフィン表現を含む圧縮結果（処理結果）を生成する。
【００４８】
判定部１０３が例外点であると判定した要素に対しては、圧縮部１０４は、例外点に対応するアフィン表現として、予め定められた特定集合に属する元を出力する。具体的には、圧縮部１０４は、以下の（３３）式で表される特定集合に属する元を、例外点に対応する圧縮結果を表すアフィン表現として出力する。なお、ｍは正整数であり、ｑ＝ｐｍが成り立つ。
【数１９】
2010049216.tif 000021
【００４９】
ここで、特定集合と、上述の双有理写像ρの逆写像ψとの関係について図３を用いて説明する。上記（例１：Ｔ６の有理パラメトライゼーション）で述べたように、例外点１を除く代数的トーラス上の元（Ｔ６（Ｆｑ）−｛１｝の元）は、（２７）式を満たすｕ０，ｕ１によりパラメトライズされる。図３では、２次元アフィン空間Ａ２（Ｆｑ）に含まれる集合３０２が、写像ｇおよびψによって、集合３０１に対応することが示されている。
【００５０】
本実施の形態では、例外点１を表す元３０３を、２次元アフィン空間Ａ２（Ｆｑ）から集合３０２を除いた集合３０４に属する元に対応させる。すなわち、圧縮部１０４が、集合３０４に属する元を、例外点１に対応するアフィン表現として出力する。これにより、例外点１を、通常点のアフィン表現と重複しないアフィン表現で表すことが可能となる。
【００５１】
圧縮部１０４は、以下の（３４）式に示す射影表現を入力とし、（３５）式に示すアフィン表現を出力することにより、例外点１を含む射影表現をアフィン表現に変換する。具体的には、圧縮部１０４は、以下の（３６）式に示す手順に従って射影表現をアフィン表現に変換する。上記（３０）式に示すように、β＝０のときは、α＋βｘ／（α＋βσ（ｘ））＝α／α＝１であり、例外点１に対応する。したがって、（３６）式の手順１でβ＝０と判定したとき、すなわち、射影表現が例外点１であると判定したとき、圧縮部１０４は、上記（３１）式のｕ０，ｕ１の値を、Ｆｐ＾ｍ（Ｆｑ）の零元に設定する。これは、圧縮部１０４が、例外点１を図３の集合３０４の元、すなわち、零元で表したアフィン表現に変換することを意味する。
【数２０】
2010049216.tif 000022
【００５２】
なお、例外点１に対する（ｕ０，ｕ１）の算出方法はこれに限られず、集合３０４に属する元を求める方法であればあらゆる方法が適用できる。
【００５３】
圧縮部１０４は、このようにして暗号文データの各要素に対して生成した処理結果を圧縮暗号文データとして出力する。また、出力された圧縮暗号文データは、外部装置との間でデータを送受信する送受信部（図示せず）などによって、復号装置２００に送信される。
【００５４】
次に、復号装置２００の構成について説明する。復号装置２００は、代数的トーラスを用いた公開鍵暗号方式で暗号化された暗号文データを復元する装置であり、入力部２０１と、伸長部２０２と、復号処理部２０３と、記憶部２２１と、を備えている。
【００５５】
入力部２０１は、暗号化装置１００から送信された圧縮暗号文データや、復号化に用いる公開鍵暗号方式の秘密鍵データなどを入力する。記憶部２２１は、入力された圧縮暗号文データや秘密鍵データなどを保存する。
【００５６】
伸長部２０２は、代数的トーラスを利用した暗号圧縮技術によって圧縮された暗号文データを伸長する。具体的には、伸長部２０２は、暗号文データの要素を、上述の双有理写像ρの逆写像ψによってアフィン表現から射影表現に伸長する。なお、以下では逆写像ψを伸長写像という。
【００５７】
ここで、伸長部２０２が、アフィン表現を射影表現に変換する伸長写像の詳細について説明する。伸長写像は、以下の（３７）式に示すアフィン表現を入力とし、（３８）式に示す射影表現を出力する写像である。具体的には、伸長写像は、以下の（３９）式に示す手順に従い、アフィン表現の分数式である上述の（３１）式を、射影表現の分数式である上述の（３０）式に読み換えることにより、アフィン表現を射影表現に変換する。なお、（３９）式の手順５、６は、ｂ１、ｂ２の値をＦｐ＾ｍの零元とすることを表している。
【数２１】
2010049216.tif 000023
【００５８】
このような伸長写像により、伸長部２０２は、図３の集合３０４に属する元（零元）で表されたアフィン表現を、例外点１に変換することができる。
【００５９】
復号処理部２０３は、伸長部２０２で伸長された暗号文データの要素それぞれに対して、記憶部２２１に記憶された秘密鍵データを用いて、有限体上の離散対数問題に基づいた復号化処理を施して平文データを出力する。具体的には、復号処理部２０３は、ＥｌＧａｍａｌ暗号方式やＣｒａｍｅｒ−Ｓｈｏｕｐ暗号方式により、複数回のべき乗または乗算または暗号文データを入力値として用いるハッシュ関数を用いて、暗号文データに復号化処理を施して平文データを得る。
【００６０】
なお、暗号化装置１００の記憶部１２１および復号装置２００の記憶部２２１は、ＨＤＤ（Hard Disk Drive）、光ディスク、メモリカード、ＲＡＭ（Random Access Memory）などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００６１】
次に、このように構成された第１の実施の形態にかかる暗号化装置１００による暗号化処理について図４を用いて説明する。図４は、第１の実施の形態における暗号化処理の全体の流れを示すフローチャートである。
【００６２】
なお、暗号化装置１００は、事前に公開鍵データおよび平文データを入力し、記憶部１２１等に記憶しているものとする。
【００６３】
まず、暗号化処理部１０２は、図２で示したように乱数ｒを生成する（ステップＳ４０１）。次に、暗号化処理部１０２は、公開鍵データに含まれるｇ〜、ｅ、ｆを用いて、生成した乱数ｒを乗数に用いたべき乗計算と乗算とを実行し、暗号文データの要素であるｃ１，ｃ２を求める（ステップＳ４０２）。次に、暗号化処理部１０２は、乗算により平文を加工し、暗号文データの要素であるｃ３を求める（ステップＳ４０３）。
【００６４】
次に、暗号化処理部１０２は、公開鍵データに含まれるｅ、ｆと乱数とを用いてハッシュ計算を行ってハッシュ値ｖを求める（ステップＳ４０４）。次に、暗号化処理部１０２は、求めたハッシュ値ｖを乗数に用いたべき乗計算を行うことにより暗号文データの要素であるｃ４を求める（ステップＳ４０５）。そして、暗号化処理部１０２は、算出した暗号文データ（ｃ１，ｃ２，ｃ３，ｃ４）を出力する（ステップＳ４０６）。
【００６５】
次に、判定部１０３は、受け取った暗号文データの要素のうち、未処理の要素を取得する（ステップＳ４０７）。そして、判定部１０３は、取得した暗号文データの要素が例外点１であるか否かを判定する（ステップＳ４０８）。
【００６６】
暗号文データの要素が例外点１でない場合、すなわち、通常点である場合は（ステップＳ４０８：ＮＯ）、圧縮部１０４は、双有理写像ρにより暗号文データの要素を圧縮し、アフィン表現を生成する（ステップＳ４０９）。そして、圧縮部１０４は、アフィン表現に圧縮した圧縮暗号文データの要素を出力する（ステップＳ４１０）。
【００６７】
ステップＳ４０８で、例外点１であると判断された場合は（ステップＳ４０８：ＹＥＳ）、圧縮部１０４は、特定集合の元で表されたアフィン表現に圧縮した圧縮暗号文データの要素を出力する（ステップＳ４１１）。具体的には、圧縮部１０４は、図３の集合３０４に含まれるアフィン表現（ｕ０，ｕ１）＝（０，０）を、圧縮暗号文データの要素として出力する。
【００６８】
次に、圧縮部１０４は、暗号文データのすべての要素を処理したか否かを判断し（ステップＳ４１２）、処理していない場合は（ステップＳ４１２：ＮＯ）、次の未処理の要素を取得して処理を繰り返す（ステップＳ４０７）。すべての要素を処理した場合は（ステップＳ４１２：ＹＥＳ）、暗号化処理を終了する。
【００６９】
次に、第１の実施の形態にかかる復号装置２００による復号処理について図５を用いて説明する。図５は、第１の実施の形態における復号処理の全体の流れを示すフローチャートである。
【００７０】
なお、復号装置２００には、暗号化装置１００が圧縮に用いた公開鍵データに対応する秘密鍵データが事前に入力され、記憶部２２１等に記憶されているものとする。
【００７１】
まず、入力部２０１は、復号の対象となる圧縮暗号文データを入力する（ステップＳ５０１）。例えば、入力部２０１は、暗号化装置１００から送信され、記憶部２２１に記憶された圧縮暗号文データを、当該記憶部２２１から入力する。
【００７２】
次に、復号処理部２０３は、入力された圧縮暗号文データの各要素が正しい群の元であるか否かを検査する（ステップＳ５０２）。具体的には、復号処理部２０３は、図２の（１１−１）および（１１−２）に示すように、各要素が群Ｇまたは群Ｇ〜に属することを検査する。
【００７３】
圧縮暗号文データの各要素が正しい群の元でない場合は（ステップＳ５０２：ＮＯ）、復号処理を終了する。圧縮暗号文データの各要素が正しい群の元である場合（ステップＳ５０２：ＹＥＳ）、伸長部２０２は、圧縮暗号文データの要素のうち、未処理の要素を取得する（ステップＳ５０３）。
【００７４】
次に、伸長部２０２は、伸長写像により圧縮暗号文データの要素を伸長する（ステップＳ５０４）。具体的には、伸長部２０２は、上述の（３７）式から（３９）式で示した伸長写像により、圧縮暗号文データの各要素を射影表現に伸長する。
【００７５】
次に、伸長部２０２は、圧縮暗号文データのすべての要素を処理したか否かを判断する（ステップＳ５０５）。すべての要素を処理していない場合は（ステップＳ５０５：ＮＯ）、次の要素を取得して処理を繰り返す（ステップＳ５０３）。
【００７６】
すべての要素を処理した場合は（ステップＳ５０５：ＹＥＳ）、以下に示すように、復号処理部２０３が伸長した暗号文データを平文データに復号する（ステップＳ５０６〜ステップＳ５０９）。なお、すべての要素を伸長することにより、暗号文データ（ｃ１，ｃ２，ｃ３，ｃ４）が得られている。
【００７７】
まず、復号処理部２０３は、秘密鍵データと暗号文データの要素ｃ１，ｃ２，ｃ３とを用いてハッシュ関数によりハッシュ値ｖを算出する（ステップＳ５０６）。次に、復号処理部２０３は、ハッシュ値ｖと、暗号文データの要素ｃ１，ｃ２と、秘密鍵データとを用いて、べき乗計算と乗算とにより検査式に用いる値を計算する（ステップＳ５０７）。具体的には、復号処理部２０３は、図２の（１１−６）の検査式の右辺の値を計算する。
【００７８】
次に、復号処理部２０３は、検査式が成立するか否か、すなわち、計算した値と暗号文データの要素ｃ４とが一致するか否かを判断する（ステップＳ５０８）。検査式が成立しない場合は（ステップＳ５０８：ＮＯ）、復号処理を終了する。
【００７９】
検査式が成立する場合は（ステップＳ５０８：ＹＥＳ）、図２の（１１−３）、（１１−４）に示すように、暗号文データの要素ｃ１，ｃ２と秘密鍵データｚ１、ｚ２とを用いたべき乗計算、および、べき乗計算で得られた値と暗号文データの要素ｃ３とを用いた乗算を実行し、平文データｍを復号する（ステップＳ５０９）。
【００８０】
なお、復号処理部２０３は、アフィン表現で表された暗号文データの各要素を射影表現に変換した後、ハッシュ値の算出、および、検査式の検査等の処理を実行している。これに対し、ハッシュ値や検査式の検査等の処理をアフィン表現で実行するように構成してもよい。例えば、復号処理部２０３が、アフィン表現で算出された検査値とアフィン表現で表された暗号文データの要素ｃ４とが一致するか否かを判定してもよい。このような場合、復号処理部２０３は、比較する値が共に図３の集合３０４に属するなら、両者が一致すると判定する必要がある。集合３０４に属するアフィン表現は、いずれも射影表現または拡大体表現で例外点１に相当するためである。
【００８１】
このように、第１の実施の形態にかかる暗号処理システムでは、暗号化装置が、アフィン表現に圧縮するトーラス上の元が例外点である場合に、特定の集合に属する元を、当該例外点に対応するアフィン表現として出力する。復号装置は、このアフィン表現を、例外点以外の元である通常点を変換したアフィン表現と同様の伸長写像で伸長することができる。したがって、代数的トーラスを用いてデータ長を圧縮する処理で、圧縮できない例外点が現れた場合であっても適切に処理を実行することが可能となる。
【００８２】
また、従来の方法では、例外点が現れた場合、演算結果を廃棄し、改めて計算しなおすことで対応する場合があったが、このような処理の無駄を排除することができる。また、計算しなおす方法では、処理完了までの時間を保証できなかったが、本実施の形態の方法によれば、演算処理の完了までの時間を保証することができる。
【００８３】
（第２の実施の形態）
第２の実施の形態にかかる暗号処理システムは、暗号化装置が、代数的トーラス上の元を表現する所定の有限体の零元の逆元を零元として、射影表現からアフィン表現への変換処理を実行する。これにより、変換処理内で、射影表現で表されたトーラス上の元が例外点であるか否かを判定する処理が不要となる。
【００８４】
図６は、第２の実施の形態にかかる暗号処理システムの構成を示すブロック図である。図６に示すように、第２の実施の形態にかかる暗号処理システムは、暗号化装置６００と、復号装置２００とを含んでいる。
【００８５】
同図に示すように、第２の実施の形態にかかる暗号化装置６００は、入力部１０１と、暗号化処理部１０２と、圧縮部６０４と、記憶部１２１と、を備えている。
【００８６】
第２の実施の形態では、判定部１０３を削除したことおよび圧縮部６０４の機能が第１の実施の形態と異なっている。その他の構成および機能は、第１の実施の形態にかかる暗号化装置１００の構成を表すブロック図である図１と同様であるので、同一符号を付し、ここでの説明は省略する。
【００８７】
圧縮部６０４は、暗号化処理部１０２から出力された暗号文データを、代数的トーラスを利用した暗号圧縮技術によって圧縮した圧縮暗号文データを出力する。
【００８８】
第１の実施の形態の圧縮部１０４は、上述したように、（３６）式に示す手順に従って射影表現をアフィン表現に変換する。（３６）式の手順２．１では、有限体Ｆｑ＾３の元であるβの逆元β−１を算出している。βが零元である場合、逆元が算出できないため、（３６）式の手順１に示すような判定処理によって対応するアフィン表現を求めている。
【００８９】
第２の実施の形態の圧縮部６０４は、有限体Ｆｑ＾３の零元の逆元の値として、有限体Ｆｑ＾３の零元を用いる。これにより、（３６）式の手順１の判定処理を省略し、手順２のみによって射影表現をアフィン表現に変換することができる。すなわち、β＝０の逆元β−１を０とすれば、手順２．１のγが０となり、手順２．２から、γ＝ｕ０＋ｕ１ｙ＋ｕ２ｙ２＝０を満たす（ｕ１，ｕ２）として（０，０）が求められる。これは、第１の実施の形態で手順１を実行した結果と一致する。
【００９０】
次に、このように構成された第２の実施の形態にかかる暗号化装置６００による暗号化処理について図７を用いて説明する。図７は、第２の実施の形態における暗号化処理の全体の流れを示すフローチャートである。
【００９１】
ステップＳ７０１からステップＳ７０７までの、乱数生成処理、および暗号文算出処理は、第１の実施の形態にかかる暗号化装置１００におけるステップＳ４０１からステップＳ４０７までと同様の処理なので、その説明を省略する。
【００９２】
第２の実施の形態では、判定部１０３によって、暗号文データの要素が例外点か否かを判定する処理である図４のステップＳ４０８および判定結果に応じたアフィン表現を出力するステップＳ４１１が削除されている。
【００９３】
代わりに、圧縮部６０４は、有限体Ｆｑ＾３の零元の逆元として有限体Ｆｑ＾３の零元を用いて、双有理写像ρにより暗号文の要素を圧縮する処理を実行する（ステップＳ７０８）。
【００９４】
ステップＳ７０９の圧縮暗号文出力処理およびステップＳ７１０の終了判定処理は、第１の実施の形態にかかる暗号化装置１００におけるステップＳ４１０およびステップＳ４１２と同様の処理なので、その説明を省略する。
【００９５】
このように、第２の実施の形態では、圧縮の対象となる対象元がすべて通常点となるまで乱数を再生成して処理を繰り返すため、双有理写像ρによって圧縮されたアフィン表現のみを要素として含む圧縮暗号文データを生成することができる。
【００９６】
このように、第２の実施の形態にかかる暗号処理システムでは、暗号化装置が、代数的トーラス上の元を表現する所定の有限体の零元の逆元を零元として、射影表現からアフィン表現への変換処理を実行する。これにより、変換処理内で、射影表現で表されたトーラス上の元が例外点であるか否かを判定する処理が不要となる。
【００９７】
次に、第１および第２の実施の形態にかかる暗号化装置および復号装置のハードウェア構成について説明する。第１および第２の実施の形態にかかる暗号化装置および復号装置は、ＣＰＵ（Central Processing Unit）などの制御装置と、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆと、各部を接続するバスを備えている。
【００９８】
第１および第２の実施の形態にかかる暗号化装置または復号装置で実行される情報処理プログラムは、ＲＯＭ等に予め組み込まれて提供される。
【００９９】
第１および第２の実施の形態にかかる暗号化装置または復号装置で実行される情報処理プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact Disk Recordable）、ＤＶＤ（Digital Versatile Disk）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【０１００】
さらに、第１および第２の実施の形態にかかる暗号化装置または復号装置で実行される情報処理プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第１および第２の実施の形態にかかる暗号化装置または復号装置で実行される情報処理プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１０１】
第１および第２の実施の形態にかかる暗号化装置または復号装置で実行される情報処理プログラムは、上述した各部（入力部、暗号化処理部、判定部、圧縮部、または、入力部、伸長部、復号処理部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵがＲＯＭから情報処理プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、各部が主記憶装置上に生成されるようになっている。
【産業上の利用可能性】
【０１０２】
以上のように、本発明にかかる装置およびプログラムは、Ｃｒａｍｅｒ−Ｓｈｏｕｐ暗号方式のように、離散対数問題を安全性の根拠とする公開鍵暗号方式によりデータを暗号化または復号化する装置に適している。
【図面の簡単な説明】
【０１０３】
【図１】第１の実施の形態にかかる暗号処理システムのブロック図である。
【図２】Ｃｒａｍｅｒ−Ｓｈｏｕｐ暗号方式の暗号化および復号化の処理手順を示す説明図である。
【図３】特定集合と写像との関係を表す図である。
【図４】第１の実施の形態における暗号化処理の全体の流れを示すフローチャートである。
【図５】第１の実施の形態における復号処理の全体の流れを示すフローチャートである。
【図６】第２の実施の形態にかかる暗号処理システムの構成を示すブロック図である。
【図７】第２の実施の形態における暗号化処理の全体の流れを示すフローチャートである。
【符号の説明】
【０１０４】
１００、６００  暗号化装置
１０１  入力部
１０２  暗号化処理部
１０３  判定部
１０４、６０４  圧縮部
１２１  記憶部
２００  復号装置
２０１  入力部
２０２  伸長部
２０３  復号処理部
２２１  記憶部
３０１、３０２、３０４  集合
３０３  元
【図１】
2010049216.tif 000024
【図２】
2010049216.tif 000025
【図３】
2010049216.tif 000026
【図４】
2010049216.tif 000027
【図５】
2010049216.tif 000028
【図６】
2010049216.tif 000029
【図７】
2010049216.tif 000030