説明

復号装置、復号方法、復号プログラム、暗号化装置、暗号化方法および暗号化プログラム

【課題】暗号圧縮技術を用いた暗号方式による演算処理のコストを低減することができる復号装置を提供すること。
【解決手段】乗法群の部分群上の離散対数問題に基づく暗号方式により平文データを暗号化した暗号文データを復号する復号装置400であって、部分群上の元であってアフィン表現で表された暗号文データを入力する入力部401と、入力された暗号文データを射影表現で表された射影表現データに変換する変換部411と、射影表現データに対して上記暗号方式で予め定められた復号処理を実行することにより、射影表現で表された平文データを算出する平文算出部412と、を備えた。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、離散対数問題を安全性の根拠とする公開鍵暗号方式によりデータを暗号化または復号する装置、方法およびプログラムに関する。
【背景技術】
【0002】
事前に鍵を共有することを必要とせずに安全な通信を実現する公開鍵暗号は、ネットワーク・セキュリティの基盤技術として幅広く利用されている。また、情報端末の多様化が進み、小型機器においても方式や実装を工夫して公開鍵を用いた各種スキーム/プロトコルが用いられるようになっている。
【0003】
公開鍵暗号において現在の典型的な暗号系サイズは1024ビットである。なお、暗号系サイズとは、公開鍵暗号で用いる表現形式で表した場合のデータのサイズを表す。例えば公開鍵暗号方式の1つであるCramer−Shoup暗号等では、1024ビットの拡大体表現と呼ばれる表現形式で各種データが表現される。計算機の進歩とともに攻撃者の能力も上がっているため、解読が困難とされる暗号系サイズは年々大きくなっている。公開鍵暗号では公開鍵サイズや暗号文サイズは暗号系サイズの数倍(方式により異なる)となる。例えば、公開鍵サイズは、暗号系サイズと鍵の個数との積になる。また、暗号文サイズは、暗号系サイズと、1つのメッセージを暗号化するのに必要な暗号文の数との積になる。したがって、メモリ容量や通信帯域が十分でない機器にとっては暗号系サイズの増大が問題となる。
【0004】
そこで、公開鍵暗号における公開鍵サイズや暗号文サイズを圧縮する暗号圧縮技術が提案されている(例えば、非特許文献1)。この暗号圧縮技術は、公開鍵暗号で用いる数の集合のうち代数的トーラスと呼ばれる部分集合を用いると、集合の要素を小さいビット数で表現できるという事実に基づいている。また、圧縮率、すなわち圧縮前のビット数の圧縮後のビット数に対する割合を増大するための改良技術として、集合の要素を小さいビット数の表現に変換する際に付加的な入力を用いる技術が知られている(例えば、非特許文献2)。
【0005】
ここで、小さいビット数の表現へ変換する写像をρ、θと書き、ρ、θをそれぞれRS(Rubin Silverberg)圧縮写像、DW(Dijk Woodruff)圧縮写像と呼ぶことにする。以下に、各圧縮者像で暗号文を圧縮する場合の具体例を示す。
【0006】
RS圧縮写像では、暗号文cを入力として(1)式により計算を行い、圧縮暗号文γを得る。
ρ(c)=γ・・・(1)
【0007】
DW圧縮写像では、暗号文cが入力として与えられたときに適当な補助入力a1を用いて(2)式により計算を行い、γと補助出力a2を得る。
θ(c,a1)=(γ,a2)・・・(2)
【0008】
元のビット数の表現に戻すには、それぞれρ、θの逆写像を計算すればよい。ρ、θの逆写像をρ−1、θ−1と書き、ρ−1、θ−1をそれぞれRS伸長写像、DW伸長写像と呼ぶことにする。
【0009】
RS伸長写像では、圧縮暗号文としてγが与えられたときに(3)式により計算を行い、cを得る。
ρ−1(γ)=c
【0010】
DW伸長写像では、圧縮暗号文としてγとa2の組が与えられたときに(4)式により計算を行い、cとa1を得る。
θ−1(γ,a2)=(c,a1)
【0011】
代数的トーラスを用いた圧縮伸長は、公開鍵暗号における公開鍵や暗号文だけでなく、デジタル署名における署名や鍵交換スキームにおける交換メッセージにも適用することができる。
【0012】
公開鍵暗号の例として、非特許文献3では、Cramer−Shoup暗号が提案されている。Cramer−Shoup暗号は、標準モデルでの安全性が証明されている方式である。また、Cramer−Shoup暗号は、公開鍵や暗号文の要素(成分)の数が多いという特徴を有する。なお、特許文献1では、Cramer−Shoup暗号のバリエーションとして、秘密鍵の個数を削減できる方式が提案されている。
【0013】
Cramer−Shoup暗号の暗号文は、4つの成分(c1,c2,c3,c4)からなる。同様に、Cramer−Shoup暗号では、公開鍵も4つの成分からなる。そして、Cramer−Shoup暗号では、各成分が、実際に暗号に用いられる群よりも大きいデータサイズの表現で表されるという問題がある。すなわち、Cramer−Shoup暗号は、有限群G〜の素数位数部分群G上で定義されているが、公開鍵や暗号文の成分はG〜の表現で表されている。具体的には、Cramer−Shoup暗号は、素体の乗法群の素数位数部分群で定義されているが、公開鍵や暗号文の成分は素体の表現で表されている。
【0014】
なお、体とは、四則演算が定義される数の集合であって、数の集合が有限の場合は有限体と呼ばれる。有限体に含まれる数の個数は素数であるか素数のべき乗であることが知られている。このような体は、それぞれ素体と拡大体と呼ばれる。素体や拡大体の要素の個数を決めている素数を標数と呼び、べき乗を拡大次数と呼ぶ。乗法群とは、乗算と除算が定義される数の集合であって、有限体の要素から0を除くと乗法群となることが知られている。群の要素の個数を位数と呼ぶ。
【0015】
Tを拡大体上の代数的トーラスとすると、Tの部分群となる、より小さなトーラスが存在する。G〜を拡大体Fの乗法群とすると、より小さなトーラスのうち拡大体Fの真部分体に包含されないトーラスTが決まり、その次数は拡大体の次数となる。tはTの部分群であるので、Tの素数位数部分群上で暗号系を定義すると、公開鍵や暗号文はTのサイズで表現される。圧縮伸長写像が構成できるTの次数を定め、Tが定義される拡大体の次数と標数を安全性の要件から求める。
【0016】
仮に、Gが拡大体の真部分体F’に包含されるとき、Gの安全性を決めるのはF’のサイズである。すなわち、そのサイズの差だけ安全性が下がる。F=F’のとき、すなわち、GがTの部分群のとき、元のFの安全性を下げることなくTの素数位数部分群G上で暗号系が定義される。一方、F>F’であっても、F’を十分大きなサイズとすれば、代数的トーラスTの最大の圧縮率(=Fのサイズ/Tのサイズ)よりは小さいが、十分大きな圧縮率(=F’のサイズ/Tのサイズ)で圧縮される。
【0017】
【非特許文献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.
【非特許文献3】R. Cramer and V. Shoup."A practical public key cryptosystem provably secure against adaptive chosen ciphertext attack",CRYPTO 1998,LNCS 1462,13−25,1998.
【特許文献1】米国特許第7,221,758号明細書
【発明の開示】
【発明が解決しようとする課題】
【0018】
しかしながら、非特許文献1および非特許文献2などのような暗号圧縮技術を用いる場合、暗号化処理/復号処理の他に、圧縮処理および伸長処理が必要となるため、暗号圧縮技術を用いない場合と比較して一般に計算コストが増加するという問題があった。
【0019】
本発明は、上記に鑑みてなされたものであって、暗号圧縮技術を用いた暗号方式による演算処理のコストを低減することができる装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0020】
上述した課題を解決し、目的を達成するために、本発明は、乗法群の部分群上の離散対数問題に基づく暗号方式により平文データを暗号化する暗号化装置であって、前記平文データと、少なくとも一部の成分が前記部分群上の元であってアフィン表現で表された暗号鍵データと、を入力する入力部と、入力された前記暗号鍵データの少なくとも一部を射影表現に変換する第1変換部と、射影表現に変換された前記暗号鍵データを用いて、前記平文データに対して前記暗号方式で予め定められた暗号化処理を実行することにより、射影表現で表された暗号文データを算出する暗号文算出部と、射影表現で表された前記暗号文データの少なくとも一部をアフィン表現に変換する第2変換部と、を備えたことを特徴とする。
【0021】
また、本発明は、上記暗号化装置を実行することができる方法およびプログラムである。
【0022】
また、本発明は、乗法群の部分群上の離散対数問題に基づく暗号方式により暗号化された暗号文データを復号する復号装置であって、前記部分群上の元であってアフィン表現で表された成分を少なくとも含む前記暗号文データを入力する入力部と、前記暗号文データを射影表現で表された射影表現データに変換する変換部と、前記射影表現データに対して前記暗号方式で予め定められた復号処理を実行することにより、射影表現で表された復号済み平文データを算出する平文算出部と、を備えたことを特徴とする。
【0023】
また、本発明は、上記復号装置を実行することができる方法およびプログラムである。
【発明の効果】
【0024】
本発明によれば、暗号圧縮技術を用いた暗号方式による演算処理のコストを低減することができるという効果を奏する。
【発明を実施するための最良の形態】
【0025】
以下に添付図面を参照して、この発明にかかる装置、方法およびプログラムの最良な実施の形態を詳細に説明する。
【0026】
(第1の実施の形態)
非特許文献1などのように代数的トーラスを用いた暗号圧縮技術では、アフィン表現に圧縮された暗号文を、射影表現を介して拡大体表現に伸長(変換)している。すなわち、アフィン表現と拡大体表現との間で表現形式を変換する場合、射影表現を経る必要がある。なお、アフィン表現と射影表現との間の変換処理のコストと比較して、拡大体表現と射影表現との間の変換処理のコストが大きい。このため、コストが大きい拡大体表現と射影表現との間の変換処理をできるだけ少なくすれば、暗号化・復号に関する演算処理のコストを低減することが可能となる。
【0027】
そこで、第1の実施の形態にかかる暗号処理システムは、代数的トーラスを用いた暗号圧縮技術によって拡大体表現からアフィン表現に圧縮された暗号文データを、拡大体表現ではなく射影表現に変換して、べき乗計算や乗算を実行する。
【0028】
具体的には、第1の実施の形態では、以下のような概念を利用して、暗号化・復号に関する演算処理のコスト低減を実現する。
(1)暗号文の圧縮を伴わない場合、公開鍵暗号方式の暗号化処理および復号処理では拡大体表現で演算を行う。
(2)射影表現でも暗号化処理および復号処理での演算を実行できる。しかし、計算コストがかかるため、拡大体表現を射影表現へ変換してから演算することは通常行われない。
(3)代数的トーラスを用いた圧縮を行う場合、拡大体表現からアフィン表現への変換を行う。
(4)アフィン表現から射影表現への変換は低コストで行うことができる。
(5)拡大体表現および射影表現での演算コストはほぼ同じである。
【0029】
すなわち、主に上記(4)の概念に基づき、アフィン表現のデータを、拡大体表現ではなく射影表現に変換して演算を実行することで、高コストの変換処理を削減し、全体の演算処理のコストを低減する。
【0030】
図1は、第1の実施の形態にかかる暗号処理システムのブロック図である。図1に示すように、第1の実施の形態にかかる暗号処理システムは、パラメータ生成装置10と、鍵生成装置20と、送信装置30と、受信装置40とを含んでいる。
【0031】
パラメータ生成装置10は、公開鍵暗号に関する公開情報を生成する。公開情報としては、群の要素やハッシュ関数などの情報や、暗号系が定義される群に関する情報として、位数や生成元の情報が含まれる。
【0032】
鍵生成装置20は、パラメータ生成装置10によって生成された公開情報を用いて、公開鍵と、公開鍵に対応する秘密鍵とを生成する。
【0033】
暗号化装置300を有する送信装置30には、鍵生成装置20が生成した公開鍵と、暗号化の対象の平文データとが入力される。この平文データは、送信装置30に予め記憶されたものであっても、送信装置30が生成したものであっても、他の通信装置から受信したものであっても、記憶媒体から読み出したものであってもよい。
【0034】
暗号化装置300は、公開鍵を用いて平文データを暗号化して暗号文を生成し、生成した暗号文を受信装置40に送信する。暗号化装置300の構成の詳細については後述する。
【0035】
復号装置400を有する受信装置40は、暗号文を受信すると、当該暗号文の暗号化に用いられた公開鍵に対応する秘密鍵を用いて暗号文を復号することにより、平文データを得る。
【0036】
なお、送信装置30および受信装置40は、例えば、図示しないインターネットなどのネットワークを介して相互に接続されたPC(Personal Computer)等によって構成することができる。また、送信装置30は、鍵生成装置20からの公開鍵の受信、受信装置40に対する暗号文の送信等を実行する送受信部(図示せず)などを備えている。同様に、受信装置40は、鍵生成装置20からの秘密鍵を受信、送信装置30からの暗号文の受信等を実行する送受信部(図示せず)などを備えている。
【0037】
なお、暗号化装置300および復号装置400は、暗号方式として、Cramer−Shoup暗号を用いる。適用可能な暗号方式はこれに限られず、ElGamal暗号などの有限体上の離散対数問題に基づく暗号方式であればあらゆる方式を適用できる。
【0038】
また、本実施の形態では、暗号化装置300および復号装置400が、それぞれ送信装置30および受信装置40に含まれる構成を例に説明するが、装置構成はこれに限られるものではない。例えば、送信装置30および受信装置40以外の装置に暗号化装置300および復号装置400が含まれるように構成してもよい。また、暗号化装置300および復号装置400を同一の装置上に含むように構成してもよい。
【0039】
ここで、Cramer−Shoup暗号方式について説明する。図2は、Cramer−Shoup暗号方式の暗号化および復号の処理手順を示す説明図である。図2で、qは素数、gは暗号が定義される群G(位数はq)の生成元、g〜,e,f,hは群Gの元である。平文データmもGの元である。rはランダムに生成される乱数である。
【0040】
暗号化処理601では、(10−1)〜(10−4)式により平文データmに対応する暗号文データ(c1,c2,c3,c4)を計算する。ここで、(10−3)式におけるHはハッシュ関数を示しており、ハッシュ関数Hに暗号文データを入力してハッシュ値v
を求めている。秘密鍵は1からqまでの整数(または0からq−1までの整数)とする。
【0041】
復号処理602では、(11−1)〜(11−6)式により秘密鍵(x1,x2,y1,y2,z1,z2)と暗号文データ(c1,c2,c3,c4)から正当な平文データであるか否かのチェックを行い、平文データmを計算する。ここで、秘密鍵(x1,x2,y1,y2,z1,z2)は1からqまでの整数とする。また、c∈?G(またはG〜)は、cが群G(または群G〜)に属するか否かを判断することを示している。
【0042】
次に、暗号化装置300の構成の詳細について説明する。図3は、第1の実施の形態にかかる暗号化装置300のブロック図である。図3に示すように、暗号化装置300は、入力部301と、記憶部321と、暗号化処理部310と、を備えている。
【0043】
入力部301は、平文データや、暗号化に用いる公開鍵暗号方式の暗号鍵データ(以下、公開鍵データという)などを入力する。記憶部321は、入力された平文データや公開鍵データなどを保存する。
【0044】
暗号化処理部310は、平文データの暗号化処理を実行するものであり、変換部311と、暗号文算出部312とを含んでいる。
【0045】
変換部311は、暗号化処理で扱う各種データの表現形式を相互に変換する。例えば、変換部311は、平文データを暗号化して得られる、拡大体表現で表された暗号文データをアフィン表現に変換する。
【0046】
暗号文算出部312は、平文データに対して公開鍵データを用いて、有限体上の離散対数問題に基づいた暗号化処理を施して暗号文データを算出する。具体的には、暗号文算出部312は、Cramer−Shoup暗号方式により、複数回のべき乗または乗算、あるいは暗号文データを入力値として用いるハッシュ関数Hを用いて平文データに暗号化処理を施して暗号文データを出力する。なお、上述のように、暗号文算出部312がElGamal暗号などの他の暗号方式を利用するように構成してもよい。
【0047】
次に、復号装置400の構成の詳細について説明する。図4は、第1の実施の形態にかかる復号装置400のブロック図である。図4に示すように、復号装置400は、入力部401と、記憶部421と、復号処理部410と、を備えている。
【0048】
入力部401は、暗号化装置300によりアフィン表現に圧縮された暗号文データや、復号に用いる公開鍵暗号方式の秘密鍵データなどを入力する。記憶部421は、入力された暗号文データや秘密鍵データなどを保存する。
【0049】
復号処理部410は、暗号文データの復号処理を実行するものであり、変換部411と、平文算出部412と、判定部413と、を含んでいる。
【0050】
変換部411は、復号処理で扱う各種データの表現形式を相互に変換する。例えば、変換部411は、アフィン表現に圧縮された暗号文データを射影表現に変換する。また、変換部411は、射影表現で復号された平文データを拡大体表現に変換する。なお、以下では、射影表現で表された暗号文データを射影表現データという場合がある。
【0051】
平文算出部412は、暗号文データに対して秘密鍵データを用いて、有限体上の離散対数問題に基づいた復号処理を施して平文データを算出する。具体的には、平文算出部412は、Cramer−Shoup暗号方式により、複数回のべき乗または乗算、あるいは暗号文データを入力値として用いるハッシュ関数Hを用いて暗号文データに復号処理を施して平文データを出力する。なお、上述のように、平文算出部412がElGamal暗号などの他の暗号方式を利用するように構成してもよい。
【0052】
判定部413は、暗号文データの正当性を判定する。例えば、判定部413は、暗号文データの各要素が正しい群の元であるか否かを判定する。また、判定部413は、入力された暗号文データのハッシュ値を算出し、算出したハッシュ値を用いて算出した値と、入力された暗号文データの所定の成分とを比較し、両者が一致しているか否かによって、暗号文データが正当であることを判定する。
【0053】
なお、記憶部321および記憶部421は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0054】
次に、第1の実施の形態にかかる鍵生成装置20による鍵生成処理について図5を用いて説明する。図5は、第1の実施の形態における鍵生成処理の概要を示す図である。
【0055】
まず、鍵生成装置20は、公開鍵データの成分となる、拡大体表現で表された、トーラスの元となるようなgを選択する。次に、鍵生成装置20は、0以外の乱数w、および、x1、x2、y1、y2、z1、z2を生成する。
【0056】
次に、鍵生成装置20は、公開鍵データの成分であるg〜=g、e=gx1g〜x2、f=gy1g〜y2、h=gz1g〜z2を生成する。そして、鍵生成装置20は、秘密鍵データとしてx1、x2、y1、y2、z1、z2を出力し、公開鍵データとしてg、g〜、e、f、hを出力する。
【0057】
次に、第1の実施の形態にかかる暗号化装置300による暗号化処理について図6を用いて説明する。図6は、第1の実施の形態における暗号化処理の全体の流れを示すフローチャートである。
【0058】
まず、入力部301は、公開鍵データg、g〜、e、f、hと、平文データmとを入力する(ステップS601)。例えば、図1のように送信装置30内の暗号化装置300の場合であれば、入力部301は、送信装置30の送受信部により鍵生成装置20から受信され、記憶部321に保存された公開鍵データを記憶部321から入力する。次に、暗号化処理部310は、乱数uを生成する(ステップS602)。
【0059】
次に、暗号文算出部312は、公開鍵データのうちg、g〜、hと、乱数uとを用いて、べき乗計算c1=g、c2=g〜、b=hを実行する(ステップS603)。また、暗号文算出部312は、平文データmと、算出したbとを乗算し、c3=mbを算出する(ステップS604)。
【0060】
次に、変換部311は、拡大体表現で表されたc1、c2、c3を、それぞれアフィン表現c1*、c2*、c3*に圧縮(変換)する(ステップS605)。
【0061】
このように、以下では、記号「*」が付与された変数はアフィン表現で表されたデータを意味するものとする。同様に、記号「’」が付与された変数は射影表現で表されたデータを意味するものとする。また、記号「*」および記号「’」が不要されていない変数は、拡大体表現で表されたデータを意味するものとする。例えば、c1を拡大体表現の変数とすると、c1*およびc1’は、c1をそれぞれアフィン表現および射影表現で表した変数を意味する。
【0062】
次に、暗号化処理部310は、ハッシュ関数Hへの入力としてc1*、c2*、c3*を用いてハッシュ値v=H(c1*、c2*、c3*)を算出する(ステップS606)。そして、暗号文算出部312は、公開鍵データのうちe、fと、乱数uと、算出されたハッシュ値vとを用いて、べき乗計算c4=euvを実行する(ステップS607)。
【0063】
次に、変換部311は、拡大体表現で表されたc4をアフィン表現c4*に圧縮(変換)する(ステップS608)。最後に、暗号化処理部310は、算出された(c1*、c2*、c3*、c4*)を暗号文データ(圧縮暗号文)を出力し(ステップS609)、暗号化処理を終了する。なお、図1のような送信装置30内で暗号文データが生成された場合は、送信装置30の送受信部が暗号文データを受信装置40などに送信する。
【0064】
このように、本実施の形態の暗号化装置300は、非特許文献3に記載されたCramer−Shoup暗号方式に、非特許文献1および2のような代数的トーラスを用いた暗号圧縮技術を適用して平文データに対する暗号文データを生成する。
【0065】
次に、第1の実施の形態にかかる復号装置400による復号処理について図7を用いて説明する。図7は、第1の実施の形態における復号処理の全体の流れを示すフローチャートである。
【0066】
まず、入力部401は、復号の対象となる暗号文データ(圧縮暗号文)を入力する(ステップS701)。例えば、図1のように受信装置40内の復号装置400の場合であれば、入力部401は、受信装置40の送受信部により送信装置30から受信され、記憶部421に保存された暗号文データを記憶部421から入力する。
【0067】
次に、判定部413は、暗号文データの成分(要素)であるc1*、c2*、c3*、c4*のそれぞれが正しい群の元であるか否か、すなわち、c1*、c2*、c3*、c4*それぞれがGの元となっているか否かを判断する(ステップS702)。
【0068】
なお、通常のCramer−Shoup暗号では、c1、c2、c3がトーラスの元となっているか、および、c4が拡大体の元となっているかの確認が必要となる。本実施の形態では、c1、c2、c3、c4がそれぞれアフィン表現で表されているため、c4についてもトーラスの元となっているか否か、すなわち、正しいアフィン表現となっているかを確認すれば十分である。
【0069】
暗号文データの成分が正しい群の元でないと判断された場合は(ステップS702:NO)、復号処理を終了する。
【0070】
暗号文データの成分が正しい群の元であると判断された場合(ステップS702:YES)、復号処理部410は、ハッシュ関数Hへの入力としてc1*、c2*、c3*を用いてハッシュ値v=H(c1*、c2*、c3*)を算出する(ステップS703)。
【0071】
次に、変換部411は、アフィン表現で表されたc1*、c2*を、射影表現データの成分c1’、c2’に変換する(ステップS704)。また、平文算出部412は、ハッシュ値vと、c1’、c2’と、秘密鍵データのうちx1、x2、y1、y2とを用いて、べき乗計算k’=c1’(x1+y1v)c2’(x2+y2v)を実行する(ステップS705)。変換部411は、射影表現で表されたk’をアフィン表現k*に変換する(ステップS706)。
【0072】
次に、判定部413は、k*と入力された暗号文データの成分のうちc4*とが一致するか否かを判断する(ステップS707)。なお、本ステップでは、k*とc4*とが等価であることを確認できればよい。したがって、射影表現k’をアフィン表現k*に変換する代わりに、拡大体表現kに変換し、kとc4とが一致することを確認するように構成してもよい。
【0073】
一致しない場合は(ステップS707:NO)、復号処理を終了する。一致する場合は(ステップS707:YES)、変換部411は、アフィン表現で表されたc3*を、射影表現データの成分c3’に変換する(ステップS708)。次に、平文算出部412は、c1’、c2’と、秘密鍵データのうちz1、z2とを用いて、べき乗計算b’=c1’z1c2’z2を実行する(ステップS709)。
【0074】
次に、平文算出部412は、変換により得られたc3’と、算出されたb’とを用いて、射影表現で表された平文データm’=c3’b’−1を算出する(ステップS710)。最後に、変換部411が、平文データm’を拡大体表現で表された平文データmに変換し(ステップS711)、復号処理を終了する。
【0075】
なお、ハッシュ関数Hの出力vが同じ値となるのであれば、暗号化装置300と復号装置400とで、ハッシュ関数Hへの入力データの表現形式が異なっていてもよい。上記説明では、共にアフィン表現で表された入力データを用いたが、出力が同じとなるのであれば射影表現を入力としてもよいし、拡大体表現を入力としてもよい。
【0076】
このように、第1の実施の形態にかかる復号装置では、アフィン表現に圧縮された暗号文データを、拡大体表現ではなく射影表現に変換して、べき乗計算や乗算を実行することができる。これにより、計算コストの大きい拡大体表現への暗号文データの変換(伸長)が不要となり、代数的トーラスを用いた圧縮を伴う公開鍵暗号方式の演算処理コストを削減することができる。特に、Cramer−Shoup暗号では、暗号文データが4つの成分からなるため、4つの成分をそれぞれ伸長してから復号する場合と比較して、特に計算コスト削減の効果が大きい。
【0077】
(第2の実施の形態)
第1の実施の形態では、拡大体表現で表された公開鍵データを使用していた。第2の実施の形態にかかる暗号処理システムは、アフィン表現に圧縮された公開鍵データを使用する。
【0078】
図8は、第2の実施の形態にかかる暗号処理システムのブロック図である。図8に示すように、第2の実施の形態にかかる暗号処理システムは、パラメータ生成装置10と、鍵生成装置820と、送信装置830と、受信装置840とを含んでいる。
【0079】
第2の実施の形態では、鍵生成装置820、送信装置830、および受信装置840の機能が第1の実施の形態と異なっている。パラメータ生成装置10の構成および機能は、第1の実施の形態にかかる暗号処理システムのブロック図である図1と同様であるので、同一符号を付し、ここでの説明は省略する。
【0080】
鍵生成装置820は、パラメータ生成装置10で生成された公開情報を用いて、アフィン表現で表された公開鍵を生成する点が、第1の実施の形態の鍵生成装置20と異なっている。
【0081】
ここで、第2の実施の形態にかかる鍵生成装置820による鍵生成処理について図9を用いて説明する。図9は、第2の実施の形態における鍵生成処理の概要を示す図である。
【0082】
まず、鍵生成装置820は、射影表現で表されたg’を選択する。次に、鍵生成装置820は、0以外の乱数w、および、x1、x2、y1、y2、z1、z2を生成する。
【0083】
次に、鍵生成装置820は、公開鍵データの成分であり、射影表現で表されるg〜’=g’、e’=g’x1g〜x2、f’=g’y1g〜’y2、h’=g’z1g〜’z2を生成する。そして、鍵生成装置820は、射影表現で表された公開鍵データg’、g〜’、e’、f’、h’をそれぞれアフィン表現で表された公開鍵データg*、g〜*、e*、f*、h*に変換する。最後に、鍵生成装置820は、秘密鍵データx1、x2、y1、y2、z1、z2と、アフィン表現で表された公開鍵データg*、g〜*、e*、f*、h*を出力する。
【0084】
このように、本実施の形態では、鍵成分g’を射影表現から選択すること、および、以後の演算を射影表現により行い、射影表現で表された公開鍵データをアフィン表現に変換する点が、第1の実施の形態と異なっている。これにより、配布する公開鍵データのサイズも圧縮することが可能となる。
【0085】
送信装置830および受信装置840は、それぞれ以下に述べる暗号化装置900および復号装置1000を備えている。
【0086】
図10は、第2の実施の形態にかかる暗号化装置900の構成を示すブロック図である。図10に示すように、暗号化装置900は、入力部301と、記憶部321と、暗号化処理部910と、を備えている。
【0087】
第2の実施の形態では、暗号化処理部910内の変換部911および暗号文算出部912の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかる暗号化装置300の構成を表すブロック図である図3と同様であるので、同一符号を付し、ここでの説明は省略する。
【0088】
変換部911は、暗号化処理で扱う各種データの表現形式を相互に変換する。第2の実施の形態の変換部911は、アフィン表現で表された公開鍵データを射影表現に変換する機能が追加されている。
【0089】
暗号文算出部912は、アフィン表現から射影表現に変換された公開鍵データを用いて平文データに対して有限体上の離散対数問題に基づいた暗号化処理を施し、射影表現で表された暗号文データを算出する。
【0090】
図11は、第2の実施の形態にかかる復号装置1000の構成を示すブロック図である。図11に示すように、復号装置1000は、入力部401と、記憶部421と、復号処理部1010と、を備えている。
【0091】
第2の実施の形態では、復号処理部1010内の変換部1011の機能が第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかる復号装置400の構成を表すブロック図である図4と同様であるので、同一符号を付し、ここでの説明は省略する。
【0092】
変換部1011は、復号処理で扱う各種データの表現形式を相互に変換する。第2の実施の形態の変換部1011は、射影表現で表された平文データを拡大体表現ではなく、アフィン表現に変換する点が第1の実施の形態の変換部411と異なる。
【0093】
次に、このように構成された第2の実施の形態にかかる暗号化装置900による暗号化処理について図12を用いて説明する。図12は、第2の実施の形態における暗号化処理の全体の流れを示すフローチャートである。
【0094】
まず、入力部301は、アフィン表現で表された公開鍵データg*、g〜*、e*、f*、h*と、アフィン表現で表された平文データm*とを入力する(ステップS1201)。このように、本実施の形態では、平文データもアフィン表現で表されているものとする。次に、暗号化処理部910は、乱数uを生成する(ステップS1202)。
【0095】
次に、変換部911は、アフィン表現で表された公開鍵データg*、g〜*、h*を射影表現g’、g〜’、h’に変換する(ステップS1203)。次に、暗号文算出部912は、射影表現に変換した公開鍵データg’、g〜’、h’と、乱数uとを用いて、べき乗計算c1’=g’、c2’=g〜’、b’=h’を実行する(ステップS1204)。
【0096】
また、変換部911は、アフィン表現で表された平文データm*を射影表現m’に変換する(ステップS1205)。次に、暗号文算出部912は、射影表現に変換した平文データm’と、算出したb’とを乗算し、c3’=m’b’を算出する(ステップS1206)。
【0097】
次に、変換部911は、射影表現で表されたc1’、c2’、c3’を、それぞれアフィン表現c1*、c2*、c3*に圧縮(変換)する(ステップS1207)。
【0098】
次に、暗号化処理部910は、ハッシュ関数Hへの入力としてc1*、c2*、c3*を用いてハッシュ値v=H(c1*、c2*、c3*)を算出する(ステップS1208)。次に、変換部911は、アフィン表現で表された公開鍵データe*、f*を射影表現e’、f’に変換する(ステップS1209)。そして、暗号文算出部912は、射影表現に変換された公開鍵データe’、f’と、乱数uと、算出されたハッシュ値vとを用いて、べき乗計算c4’=e’f’uvを実行する(ステップS1210)。
【0099】
次に、変換部911は、射影表現で表されたc4’をアフィン表現c4*に圧縮(変換)する(ステップS1211)。最後に、暗号化処理部910は、算出された(c1*、c2*、c3*、c4*)を暗号文データ(圧縮暗号文)を出力し(ステップS1212)、暗号化処理を終了する。
【0100】
このように、暗号化処理全体としては、アフィン表現の平文データm*を射影表現m’に変換する処理(ステップS1205)の負担が増加するが、拡大体表現から射影表現への変換4回分の処理量が省略できることになる。すなわち、暗号文データ(c1、c2、c3、c4)に関しては、第1の実施の形態では拡大体表現からアフィン表現への変換が必要であったのに対し、本実施の形態では、射影表現からアフィン表現への変換だけで済むようになる。したがって、高コストの変換処理が削減され、処理量が軽減される。さらに、公開鍵データもアフィン表現で入力されるため、配布される公開鍵データのサイズも小さくて済む。
【0101】
なお、アフィン表現に圧縮した公開鍵データg*、g〜*、e*、f*、h*を暗号化処理内で生成するように構成してもよい。また、上記説明では、アフィン表現で表された平文データを入力したが、第1の実施の形態と同様に、拡大体表現で表された平文データを入力するように構成してもよい。
【0102】
次に、第2の実施の形態にかかる復号装置1000による復号処理について図13を用いて説明する。図13は、第2の実施の形態における復号処理の全体の流れを示すフローチャートである。
【0103】
本実施の形態では、ステップS1311で、変換部1011が、射影表現で表された平文データをアフィン表現に変換する点が、第1の実施の形態と異なっている。その他の処理は、第1の実施の形態にかかる復号装置400における復号処理を表す図4と同様の処理なので、その説明を省略する。
【0104】
このように、第2の実施の形態にかかる暗号処理システムでは、アフィン表現に圧縮された公開鍵データを用いることにより、拡大体表現と射影表現との間の変換を実行することなく、暗号文データを生成することができる。これにより、暗号化装置の演算処理のコストも削減することができる。また、公開鍵データをアフィン表現で表すため、配布される公開鍵データのサイズを低減することができる。
【0105】
(第3の実施の形態)
第3の実施の形態にかかる暗号処理システムは、秘密鍵データの成分z1、z2の代わりにzを用いることによって秘密鍵データの成分数を削減した暗号方式に対して、第2の実施の形態と同様の方法を適用する。
【0106】
図14は、第3の実施の形態にかかる暗号処理システムのブロック図である。図14に示すように、第3の実施の形態にかかる暗号処理システムは、パラメータ生成装置10と、鍵生成装置1420と、送信装置830と、受信装置1440とを含んでいる。
【0107】
第3の実施の形態では、鍵生成装置1420、および受信装置1440の機能が第2の実施の形態と異なっている。その他の構成および機能は、第2の実施の形態にかかる暗号処理システムのブロック図である図8と同様であるので、同一符号を付し、ここでの説明は省略する。
【0108】
鍵生成装置1420は、秘密鍵データの成分としてz1、z2の代わりにzのみを用いて公開鍵データを生成する点が、第2の実施の形態と異なっている。
【0109】
ここで、第3の実施の形態にかかる鍵生成装置1420による鍵生成処理について図15を用いて説明する。図15は、第3の実施の形態における鍵生成処理の概要を示す図である。
【0110】
まず、鍵生成装置1420は、射影表現で表されたg’を選択する。次に、鍵生成装置1420は、0以外の乱数w、および、x1、x2、y1、y2、zを生成する。次に、鍵生成装置1420は、公開鍵データの成分であり、射影表現で表されるg〜’=g’、e’=g’x1g〜x2、f’=g’y1g〜’y2、h’=g’を生成する。
【0111】
そして、鍵生成装置1420は、射影表現で表された公開鍵データg’、g〜’、e’、f’、h’をそれぞれアフィン表現で表された公開鍵データg*、g〜*、e*、f*、h*に変換する。最後に、鍵生成装置1420は、秘密鍵データx1、x2、y1、y2、zと、アフィン表現で表された公開鍵データg*、g〜*、e*、f*、h*を出力する。
【0112】
このように、本実施の形態では、秘密鍵データの成分としてz1、z2の代わりに乱数zを生成する。また、この乱数zのみを用いて公開鍵データの成分であるh’を生成する。
【0113】
受信装置1440は、以下に述べる復号装置1600を備えている。
【0114】
図16は、第3の実施の形態にかかる復号装置1600の構成を示すブロック図である。図16に示すように、復号装置1600は、入力部401と、記憶部421と、復号処理部1610と、を備えている。
【0115】
第3の実施の形態では、復号処理部1610内の平文算出部1612の機能が第2の実施の形態と異なっている。その他の構成および機能は、第2の実施の形態にかかる復号装置1000の構成を表すブロック図である図11と同様であるので、同一符号を付し、ここでの説明は省略する。
【0116】
平文算出部1612は、特許文献1に記載の暗号方式と同様に、秘密鍵データの成分z1、z2の代わりにzを用いることによって秘密鍵データの成分数を削減した暗号方式を用いて、暗号文データに復号処理を施して平文データを出力する。具体的には、平文算出部1612は、c1と秘密鍵データzとを用いて、べき乗計算によりb’を算出する点が、第2(および第1)の実施の形態の平文算出部412と異なっている。
【0117】
次に、このように構成された第3の実施の形態にかかる復号装置1600による復号処理について図17を用いて説明する。図17は、第3の実施の形態における復号処理の全体の流れを示すフローチャートである。
【0118】
本実施の形態では、ステップS1709のべき乗計算処理が、第2の実施の形態のステップS1309と異なっている。具体的には、ステップS1709で、平文算出部1612は、c1’と秘密鍵データのうちzとを用いてべき乗計算b’=c1’を実行する(ステップS1709)。その他の処理は、第2の実施の形態にかかる復号装置1000における復号処理を表す図13と同様の処理なので、その説明を省略する。
【0119】
このように、第3の実施の形態にかかる暗号処理システムでは、秘密鍵データの成分をx1、x2、y1、y2、zの5つに削減した暗号方式に対しても、第2の実施の形態と同様の方法を適用することができる。
【0120】
(第4の実施の形態)
第4の実施の形態にかかる暗号処理システムは、秘密鍵データの成分x1、x2の代わりにxを用い、y1、y2の代わりにyを用い、z1、z2の代わりにzを用い、wを秘密鍵データの成分として扱う暗号方式に対して、第2の実施の形態と同様の方法を適用する。
【0121】
図18は、第4の実施の形態にかかる暗号処理システムのブロック図である。図18に示すように、第4の実施の形態にかかる暗号処理システムは、パラメータ生成装置10と、鍵生成装置1820と、送信装置830と、受信装置1840とを含んでいる。
【0122】
第4の実施の形態では、鍵生成装置1820、および受信装置1840の機能が第2の実施の形態と異なっている。その他の構成および機能は、第2の実施の形態にかかる暗号処理システムのブロック図である図8と同様であるので、同一符号を付し、ここでの説明は省略する。
【0123】
鍵生成装置1820は、上述のように、秘密鍵データの成分としてx、y、zのみを用いて公開鍵データを生成し、wを秘密鍵データの成分とする点が、第2の実施の形態と異なっている。
【0124】
ここで、第4の実施の形態にかかる鍵生成装置1820による鍵生成処理について図19を用いて説明する。図19は、第4の実施の形態における鍵生成処理の概要を示す図である。
【0125】
まず、鍵生成装置1820は、射影表現で表されたg’を選択する。次に、鍵生成装置1820は、0以外の乱数w、および、x、y、zを生成する。次に、鍵生成装置1820は、公開鍵データの成分であり、射影表現で表されるg〜’=g’、e’=g’、f’=g’、h’=g’を生成する。
【0126】
そして、鍵生成装置1820は、射影表現で表された公開鍵データg’、g〜’、e’、f’、h’をそれぞれアフィン表現で表された公開鍵データg*、g〜*、e*、f*、h*に変換する。最後に、鍵生成装置1820は、秘密鍵データx、y、z、wと、アフィン表現で表された公開鍵データg*、g〜*、e*、f*、h*を出力する。
【0127】
受信装置1840は、以下に述べる復号装置2000を備えている。
【0128】
図20は、第4の実施の形態にかかる復号装置2000の構成を示すブロック図である。図20に示すように、復号装置2000は、入力部401と、記憶部421と、復号処理部2010と、を備えている。
【0129】
第4の実施の形態では、復号処理部2010内の平文算出部2012および判定部2013の機能が第2の実施の形態と異なっている。その他の構成および機能は、第2の実施の形態にかかる復号装置1000の構成を表すブロック図である図11と同様であるので、同一符号を付し、ここでの説明は省略する。
【0130】
平文算出部2012は、x、y、z、wを秘密鍵データの成分とする暗号方式を用いて、暗号文データに復号処理を施して平文データを出力する。例えば、平文算出部2012は、ハッシュ値vと、暗号文データc1’およびc2’と、秘密鍵データw、x、yとを用いて、k’=c1’c2’yvの他に、さらにl’=c1’を算出する。
【0131】
判定部2013は、k’をアフィン表現に変換したk*だけでなく、l’をアフィン表現に変換したl*を用いて、暗号文データの正当性を判定する点が、第2の実施の形態の判定部413と異なっている。
【0132】
次に、このように構成された第4の実施の形態にかかる復号装置2000による復号処理について図21を用いて説明する。図21は、第4の実施の形態における復号処理の全体の流れを示すフローチャートである。
【0133】
ステップS2101からステップS2104までの、暗号文入力処理、元判定処理、ハッシュ値算出処理、および変換処理は、第2の実施の形態にかかる復号装置1000におけるステップS1301からステップS1304までと同様の処理なので、その説明を省略する。
【0134】
ステップS2104の後、平文算出部2012は、ハッシュ値vと、c1’、c2’と、秘密鍵データのうちw、x、yとを用いて、べき乗計算k’=c1’c2’yv、および、べき乗計算l’=c1’を実行する(ステップS2105)。次に、変換部411は、射影表現で表されたk’およびl’を、それぞれアフィン表現k*およびl*に変換する(ステップS2106)。
【0135】
次に、判定部2013は、k*とc4*とが一致し、かつ、l*とc2*とが一致するか否かを判断する(ステップS2107)。一致しない場合は(ステップS2107:NO)、復号処理を終了する。一致する場合は(ステップS2107:YES)、第2の実施の形態と同様に、変換部411がアフィン表現で表されたc3*を射影表現c3’に変換する(ステップS2108)。
【0136】
次に、平文算出部2012は、c1’と、秘密鍵データのうちzとを用いて、べき乗計算b’=c1’を実行する(ステップS2109)。
【0137】
ステップS2110からステップS2111までの、平文算出処理および平文変換処理は、第2の実施の形態にかかる復号装置1000におけるステップS1310からステップS1311までと同様の処理なので、その説明を省略する。
【0138】
このように、第4の実施の形態にかかる暗号処理システムでは、秘密鍵データの成分をw、x、y、zの4つに削減した暗号方式に対しても、第2の実施の形態と同様の方法を適用することができる。
【0139】
次に、第1〜第4の実施の形態にかかる暗号化装置および復号装置のハードウェア構成について説明する。第1〜第4の実施の形態にかかる暗号化装置および復号装置は、CPU(Central Processing Unit)などの制御装置と、ROM(Read Only Memory)やRAM(Random Access Memory)などの記憶装置と、ネットワークに接続して通信を行う通信I/Fと、各部を接続するバスを備えている。
【0140】
第1〜第4の実施の形態にかかる復号装置で実行される復号プログラムは、ROM等に予め組み込まれて提供される。
【0141】
第1〜第4の実施の形態にかかる復号装置で実行される復号プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【0142】
さらに、第1〜第4の実施の形態にかかる復号装置で実行される復号プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1〜第4の実施の形態にかかる復号装置で実行される復号プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0143】
第1〜第4の実施の形態にかかる復号装置で実行される復号プログラムは、上述した各部(入力部、復号処理部)を含むモジュール構成となっており、実際のハードウェアとしてはCPUがROMから復号プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、各部が主記憶装置上に生成されるようになっている。
【産業上の利用可能性】
【0144】
以上のように、本発明にかかる装置、方法およびプログラムは、Cramer−Shoup暗号方式のように、離散対数問題を安全性の根拠とする公開鍵暗号方式によりデータを暗号化または復号する装置に適している。
【図面の簡単な説明】
【0145】
【図1】第1の実施の形態にかかる暗号処理システムのブロック図である。
【図2】Cramer−Shoup暗号方式の暗号化および復号の処理手順を示す説明図である。
【図3】第1の実施の形態にかかる暗号化装置のブロック図である。
【図4】第1の実施の形態にかかる復号装置のブロック図である。
【図5】第1の実施の形態における鍵生成処理の概要を示す図である。
【図6】第1の実施の形態における暗号化処理の全体の流れを示すフローチャートである。
【図7】第1の実施の形態における復号処理の全体の流れを示すフローチャートである。
【図8】第2の実施の形態にかかる暗号処理システムのブロック図である。
【図9】第2の実施の形態における鍵生成処理の概要を示す図である。
【図10】第2の実施の形態にかかる暗号化装置の構成を示すブロック図である。
【図11】第2の実施の形態にかかる復号装置の構成を示すブロック図である。
【図12】第2の実施の形態における暗号化処理の全体の流れを示すフローチャートである。
【図13】第2の実施の形態における復号処理の全体の流れを示すフローチャートである。
【図14】第3の実施の形態にかかる暗号処理システムのブロック図である。
【図15】第3の実施の形態における鍵生成処理の概要を示す図である。
【図16】第3の実施の形態にかかる復号装置の構成を示すブロック図である。
【図17】第3の実施の形態における復号処理の全体の流れを示すフローチャートである。
【図18】第4の実施の形態にかかる暗号処理システムのブロック図である。
【図19】第4の実施の形態における鍵生成処理の概要を示す図である。
【図20】第4の実施の形態にかかる復号装置の構成を示すブロック図である。
【図21】第4の実施の形態における復号処理の全体の流れを示すフローチャートである。
【符号の説明】
【0146】
10 パラメータ生成装置
20、820、1420、1820 鍵生成装置
30、830 送信装置
40、840、1440、1840 受信装置
300、900 暗号化装置
301 入力部
310、910 暗号化処理部
311、911 変換部
312、912 暗号文算出部
321 記憶部
400、1000、1600、2000 復号装置
401 入力部
410、1010、1610、2010 復号処理部
411、1011 変換部
412、1612、2012 平文算出部
413、2013 判定部
421 記憶部

【特許請求の範囲】
【請求項1】
乗法群の部分群上の離散対数問題に基づく暗号方式により平文データを暗号化する暗号化装置であって、
前記平文データと、少なくとも一部の成分が前記部分群上の元であってアフィン表現で表された暗号鍵データと、を入力する入力部と、
入力された前記暗号鍵データの少なくとも一部を射影表現に変換する第1変換部と、
射影表現に変換された前記暗号鍵データを用いて、前記平文データに対して前記暗号方式で予め定められた暗号化処理を実行することにより、射影表現で表された暗号文データを算出する暗号文算出部と、
射影表現で表された前記暗号文データの少なくとも一部をアフィン表現に変換する第2変換部と、
を備えたことを特徴とする暗号化装置。
【請求項2】
前記入力部は、アフィン表現で表現された前記平文データと、少なくとも一部がアフィン表現で表された前記暗号鍵データとを入力し、
前記第1変換部は、さらに、アフィン表現で表現された前記平文データを射影表現に変換し、
前記暗号文算出部は、射影表現に変換された暗号鍵データを用いて、射影表現に変換された前記平文データに対して前記暗号化処理を実行することにより、射影表現で表された前記暗号文データを算出すること、
を特徴とする請求項1に記載の暗号化装置。
【請求項3】
前記入力部は、拡大体表現で表現された前記平文データと、少なくとも一部がアフィン表現で表された前記暗号鍵データとを入力し、
前記第1変換部は、さらに、拡大体表現で表現された前記平文データを射影表現に変換し、
前記暗号文算出部は、射影表現に変換された暗号鍵データを用いて、射影表現に変換された前記平文データに対して前記暗号化処理を実行することにより、射影表現で表された前記暗号文データを算出すること、
を特徴とする請求項1に記載の暗号化装置。
【請求項4】
前記暗号化装置には入力されたデータのハッシュ値を計算するハッシュ値計算部を含み、
前記ハッシュ値計算部への入力の少なくとも一部にはアフィン表現で表現された暗号文成分を含むこと
を特徴とする請求項1もしくは2もしくは3に記載の暗号化装置。
【請求項5】
前記暗号方式は、Cramer−Shoup暗号方式であること、
を特徴とする請求項1に記載の暗号化装置。
【請求項6】
前記暗号方式は、代数的トーラスである前記部分群上の離散対数問題に基づく暗号方式であること、
を特徴とする請求項1に記載の暗号化装置。
【請求項7】
乗法群の部分群上の離散対数問題に基づく暗号方式により暗号化された暗号文データを復号する復号装置であって、
前記部分群上の元であってアフィン表現で表された成分を少なくとも含む前記暗号文データを入力する入力部と、
前記暗号文データを射影表現で表された射影表現データに変換する変換部と、
前記射影表現データに対して前記暗号方式で予め定められた復号処理を実行することにより、射影表現で表された復号済み平文データを算出する平文算出部と、
を備えたことを特徴とする復号装置。
【請求項8】
前記入力部は、少なくとも一部の要素がアフィン表現で表された複数の要素を含む前記暗号文データを入力し、
前記変換部は、前記暗号文データに含まれる前記要素それぞれを射影表現に変換し、
前記平文算出部は、射影表現に変換された複数の前記要素を用いて前記復号処理を実行することにより、射影表現で表された前記復号済み平文データを算出すること、
を特徴とする請求項7に記載の復号装置。
【請求項9】
入力された前記暗号文データのハッシュ値を算出し、算出したハッシュ値に基づいて入力された前記暗号文データの正当性を判定する判定部をさらに備え、
前記平文算出部は、入力された前記暗号文データが正当であると判定された場合に、前記射影表現文データに対して前記復号処理を実行することにより、射影表現で表された前記復号済み平文データを算出すること、
を特徴とする請求項7に記載の復号装置。
【請求項10】
前記変換部は、さらに、算出された前記復号済み平文データを拡大体表現に変換すること、
を特徴とする請求項7に記載の復号装置。
【請求項11】
前記変換部は、さらに、算出された前記復号済み平文データをアフィン表現に変換すること、
を特徴とする請求項7に記載の復号装置。
【請求項12】
前記暗号方式は、Cramer−Shoup暗号方式であること、
を特徴とする請求項7に記載の復号装置。
【請求項13】
前記暗号方式は、代数的トーラスである前記部分群上の離散対数問題に基づく暗号方式であること、
を特徴とする請求項7に記載の復号装置。
【請求項14】
乗法群の部分群上の離散対数問題に基づく暗号方式により平文データを暗号化する暗号化方法であって、
前記平文データと、少なくとも一部の成分が前記部分群上の元であってアフィン表現で表された暗号鍵データを入力する入力ステップと、
入力された前記暗号鍵データの少なくとも一部を射影表現に変換する第1変換ステップと、
射影表現に変換された前記暗号鍵データを用いて、前記平文データに対して前記暗号方式で予め定められた暗号化処理を実行することにより、射影表現で表された暗号文データを算出する暗号文算出ステップと、
射影表現で表された前記暗号文データの少なくとも一部をアフィン表現に変換する第2変換ステップと、
を備えたことを特徴とする暗号化方法。
【請求項15】
乗法群の部分群上の離散対数問題に基づく暗号方式により暗号化された暗号文データを復号する復号方法であって、
入力部が、前記部分群上の元であってアフィン表現で表された前記暗号文データを入力する入力ステップと、
変換部が、前記暗号文データを射影表現で表された射影表現データに変換する変換ステップと、
平文算出部が、前記射影表現データに対して前記暗号方式で予め定められた復号処理を実行することにより、射影表現で表された平文データを算出する平文算出ステップと、
を備えたことを特徴とする復号方法。
【請求項16】
乗法群の部分群上の離散対数問題に基づく暗号方式により平文データを暗号化する暗号化装置で実行されるプログラムであって、
前記暗号化装置を、
前記平文データと、少なくとも一部の成分が前記部分群上の元であってアフィン表現で表された暗号鍵データと、を入力する入力部と、
入力された前記暗号鍵データの少なくとも一部を射影表現に変換する第1変換部と、
射影表現に変換された前記暗号鍵データを用いて、前記平文データに対して前記暗号方式で予め定められた暗号化処理を実行することにより、射影表現で表された暗号文データを算出する暗号文算出部と、
射影表現で表された前記暗号文データの少なくとも一部をアフィン表現に変換する第2変換部と、
として機能させるための暗号化プログラム。
【請求項17】
乗法群の部分群上の離散対数問題に基づく暗号方式により暗号化された暗号文データを復号する復号装置で実行される復号プログラムであって、
前記復号装置を、
前記部分群上の元であってアフィン表現で表された前記暗号文データを入力する入力部と、
前記暗号文データを射影表現で表された射影表現データに変換する変換部と、
前記射影表現データに対して前記暗号方式で予め定められた復号処理を実行することにより、射影表現で表された平文データを算出する平文算出部と、
として機能させるための復号プログラム。

【図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

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate