説明

暗号化装置、復号装置、暗号通信システム、方法及びプログラム

【課題】冗長な処理を行うことなく、暗号化処理や復号処理への入力が、暗号が定義される群の元であるか否かを判定することが可能な暗号化技術を提供する。
【解決手段】暗号化装置301は、入力された平文msgが、6次拡大体上の代数的トーラス上の元であるか否かを検査する。検査結果が肯定的である場合、暗号化装置301は、公開鍵を用いて平文msgを暗号化する。圧縮装置302は、生成された暗号文を圧縮写像により圧縮して圧縮暗号文を出力する。送信装置300はこれを受信装置400に送信する。受信装置400の伸長装置402は、受信された圧縮暗号文の各要素が、6次拡大体上の代数的トーラス上の元であるか否かを検査する。当該検査結果が肯定的である場合、伸長装置402は、圧縮暗号文を伸長写像により伸長して暗号文を得る。復号装置401は、秘密鍵を用いて、暗号化された平文を復号する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、公開鍵暗号により平文を暗号化する暗号化装置、公開鍵暗号により暗号化された平文を復号する復号装置、暗号通信システム、方法及びプログラムに関する。
【背景技術】
【0002】
通信路を流れる情報を保護するために、暗号を用いる方法がある。暗号には、例えば、共通鍵暗号と公開鍵暗号とがある。共通鍵暗号を用いる場合、通信相手と事前に鍵を共有しておく必要があるため、インターネットのような不特定多数との通信の際には鍵の共有や管理に大きな手間がかかる。公開鍵暗号は、事前に鍵を共有することなしに安全な通信を実現できるため、ネットワーク・セキュリティの基盤技術として幅広く用いられている。
【0003】
現在、公開鍵暗号において典型的なセキュリティパラメータは1024ビット〜2048ビットである。セキュリティパラメータとは、公開鍵サイズや暗号文サイズを決定するパラメータであり、暗号方式の安全性に影響を与えるパラメータである。このセキュリティパラメータが大きくなれば、公開鍵サイズや暗号文サイズも大きくなる。解読が困難とされるセキュリティパラメータは年々大きくなっている。これは、計算機の進歩に伴い攻撃者の能力も向上するためである。公開鍵暗号では公開鍵サイズや暗号文サイズは、暗号方式により異なるが、セキュリティパラメータの数倍となる。このため、メモリ容量や通信帯域が十分でない装置ではセキュリティパラメータの増大が問題になる。
【0004】
そこで、公開鍵暗号における公開鍵サイズや暗号文サイズを圧縮する方法が提案されている(例えば、非特許文献1、8参照)。この方法は、公開鍵暗号で用いる数の集合のうち代数的トーラスと呼ばれる部分集合を用いると、集合の要素を小さいビット数で表現できるという事実に基づいている。代数的トーラスの属する拡大体の次数nが高々二つの素数p,qの冪の積l=(p^m)*(q^n)であるとき、圧縮率(=圧縮前のビット数/圧縮後のビット数)は、l/φ(l)となることが知られている。ただし、φ(・)はオイラー関数である。尚、‘^’はべき乗を表す。p^mは、pのm乗である。小さいビット数の表現への変換は、拡大体表現を射影表現に変換する写像ρと射影表現をアフィン表現に変換する写像τによって行われる。暗号文を圧縮する場合の具体例を示す。拡大体表現の暗号文cを入力として計算を行い、圧縮暗号文γを得る(式1参照)。
【0005】
τρ (c)=γ・・・(式1)
【0006】
元のビット数の表現に戻すには、それぞれρ、τの逆写像を計算すればよい。ρの逆写像をψと書き、τの逆写像をτ―1と書くことにする。圧縮暗号文としてγが与えられたときに計算を行い、cを得る(式2参照)。
【0007】
ψτ―1(γ)= c・・・(式2)
【0008】
また、非特許文献1、7では、前記圧縮写像1、2と前記伸長写像1,2の構成法と、それらを用いて次のような拡大体表現をアフィン表現に圧縮する写像ρ6、アフィン表現を拡大体表現に伸長する写像‘ρ6-1’の構成法が示されている。圧縮写像ρ6は、6次拡大体F_{(p^m)^6}上の拡大体表現のトーラスTの任意の元tを入力として計算し、アフィン表現F_{p^m}×F_{p^m}^* の要素との組を得る(式3参照)。
【0009】
ρ6(t)= (a,b) ∈ F_{p^m}× F_{p^m}^*・・・(式3)
【0010】
尚、ここでは‘×’を直積を表すものとする。また、Aが集合であるとき、A^mはm個のAの直積集合となる。例えば、‘A^4 = A × A × A × A’となる。具体的には例えば、‘{0,1,2}^2 = {(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)}’となる。ここで、F_{p^m}は、素体F_{p}のm次拡大体であり、 F_{p^m}の要素はベクトル表現を用いると、{0,…,p-1}^mの要素で表現できる。F_{p^m}^*は、F_{p^m}の乗法群であり、F_{p^m}^*の要素はベクトル表現を用いると、{0,…,p-1}^m \ {0}^m の要素で表される。‘\’は集合の引き算を表す。
【0011】
伸長写像‘ρ6-1’は、(a,b) ∈ F_{p^m}× F_{p^m}^*を入力として計算し、6次拡大体F_{(p^m)^6}上の拡大体表現のトーラスTの元tを得る(式4参照)。
【0012】
ρ-1(a,b)=t ∈ T・・・(式4)
【0013】
また、非特許文献7では、F_{p^m}の6次拡大体上のトーラスの要素の拡大体表現{0,…,p-1}^(6*m)と射影表現{0,…,p-1}^(6*m)とアフィン表現F_{p^m}×F_{p^m}^*に対して、上記のρ、ψ、τ、τ-1の構成法を示し、それを元に(式3)と(式4)との写像を構成している。このとき、拡大体表現と射影表現とに対する演算は、共にF_{p^(6*m)}の演算で、非特許文献1、7ではF_{p^(6*m)}の演算をF_{((p^m)^3)^2}の演算として実現している。アフィン表現の要素は、演算することができない。
【0014】
また、xがTの要素であるか否かの検査は、例えば、F_{p^(6*m)}上の演算で以下の2通りの方法で行うことができる。
方法1:(p^(6*m)-1)/ (p^(3m)-1)乗して‘1’となる且つ(p^(6*m)-1)/ (p^(2m)-1)乗して‘1’となることが成立するか否か調べる。
方法2:(p^(2m)-p^m+1)乗して‘1’となることが成立するか否か調べる。
【0015】
離散対数問題系を利用したElGamal暗号(例えば、非特許文献4参照)やCramer-Shoup暗号(例えば、非特許文献2参照)などは、暗号化可能な平文のサイズと比べて、鍵長と暗号文とのサイズが大きいという問題を抱えている。代数的トーラス上で構成されたElGamal暗号の公開鍵と暗号文とは代数的トーラス上の要素となることを利用し、公開鍵と暗号文とを圧縮することでサイズを抑える方法がある(例えば、非特許文献1、5 〜6参照)。
【0016】
【非特許文献1】K.Rubin and A.Silverberg, “Torus-Based Cryptography”, CRYPTO 2003, LNCS 2729, pp. 349-365, 2003.
【非特許文献2】R.Cramer and V.Shoup, “A practical key cryptosystem provably secure against adaptive chosen ciphertext attack”, CRYPTO 1998, LNCS 1462, pp. 13-25, 1998.
【非特許文献3】V.Shoup, “ACE Encrypt: The Advanced Cryptographic Engine’s Public Key Encryption Scheme”, “http://www.zurich.ibm.com/security/ace/ace_encrypt.pdf”,2000.
【非特許文献4】Taher El Gamal: A public key cryptosystem and a signature scheme based on discrete logarithms. IEEE Transactions on Information Theory 31(4): 469-472 (1985)
【非特許文献5】Marten van Dijk, David P. Woodruff: Asymptotically Optimal Communication for Torus-Based Cryptography. CRYPTO 2004: 157-178
【非特許文献6】Marten van Dijk, Robert Granger, Dan Page, Karl Rubin, Alice Silverberg, Martijn Stam, David P. Woodruff: Practical Cryptography in High Dimensional Tori. EUROCRYPT 2005: 234-250
【非特許文献7】Robert Granger, Dan Page, Martijn Stam: A Comparison of CEILIDH and XTR. ANTS 2004: 235-249
【発明の開示】
【発明が解決しようとする課題】
【0017】
公開鍵暗号において暗号化処理や復号処理を安全に実現するためには、処理の対象が、暗号が定義される群の要素であるか否かを検査する必要がある。また、代数的トーラスにおける圧縮処理や伸長処理においても、暗号が定義される群の要素でなければ、正しく写像することができない。しかし、非特許文献1,5〜7に示したような既存の代数的トーラスを用いた暗号系では、暗号化処理や復号処理への入力が、暗号が定義される群の要素であるか否かをどの時点でどのように検査するかについて検討する必要がある。例えば、代数的トーラスにおける圧縮処理及び伸長処理と公開鍵暗号の暗号化処理及び復号処理とを単純に組み合わせた場合、入力がそれぞれの処理で、暗号が定義される群上の元であるかを判定するための処理に、冗長な処理を含む恐れがある。このため、冗長な処理を行うことなく、暗号化処理や復号処理への入力が、暗号が定義される群の元であるか否かを判定することが望まれていた。
【0018】
本発明は、上記に鑑みてなされたものであって、冗長な処理を行うことなく、暗号化処理や復号処理への入力が、暗号が定義される群の元であるか否かを判定することが可能な暗号化装置、復号装置、暗号通信システム、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0019】
上述した課題を解決し、本発明は、復号の対象である平文を含んで暗号化され、アフィン表現F_{p^m}×F_{p^m}^*(p:素数、m:自然数、^:べき乗)で表現された暗号文を復号する復号装置であって、ベクトル形式により表現される暗号文と、公開鍵に対応する秘密鍵とを取得する取得手段と、前記暗号文に含まれるベクトル成分が、アフィン表現 F_{p^m}×F_{p^m}^*であるか否か判定する判定手段と、前記判定手段の判定結果に基づいて、前記ベクトル成分を、伸長写像により前記代数的トーラス上の各元に写像する伸長手段と、前記代数的トーラス上の各元に写像された前記暗号文に含まれる前記平文を、前記秘密鍵を用いて復号する復号手段とを備えることを特徴とする。
【0020】
また、本発明は、F_{p^m}の6次拡大体上の代数的トーラス上の元でありアフィン表現F_{p^m}× F_{p^m}^*(p:素数、m:自然数)で表現された平文msgを暗号化する暗号化装置であって、暗号化の対象であってベクトル形式により表現される平文msgと、公開鍵とを取得する取得手段と、前記平文msgに含まれるベクトル成分が、アフィン表現F_{p^m}×F_{p^m}^*であるか否か判定する判定手段と、前記判定手段の判定結果に基づいて、前記公開鍵を用いて前記平文msgを暗号化して、アフィン空間F_{p^m}×F_{p^m}^*上の要素の組で表現される暗号文cを求める暗号化手段を備えることを特徴とする。
【0021】
また、本発明は、F_{p^m}(^:べき乗)の6次拡大体上の代数的トーラス上の元であり拡大体表現{{0,・・・,p-1}^{6*m}}(p:素数、m:自然数)で表現された平文msgを暗号化する暗号化装置であって、暗号化の対象である平文msgと、公開鍵とを取得する取得手段と、前記平文msgが、{0,…,p-1}^(6*m)に含まれるか否かと、msg^(p^(2*m)-p^(m)+1)=1を満たすか否かとを判定することにより、前記代数的トーラス上の元であるか否か判定する判定手段と、 前記判定手段の判定結果に基づいて、前記公開鍵を用いて前記平文msgを暗号化して、前記代数的トーラス上の元の組で表現される暗号文cを求める暗号化手段と、前記暗号文cの各元を、圧縮写像によりアフィン表現F_{p^m} ×F_{p^m}^*に写像する圧縮手段とを備えることを特徴とする。
【0022】
また、本発明は、F_{p^m}の6次拡大体(p:素数、m:自然数)上の代数的トーラス上の元でありアフィン表現F_{p^m}×F_{p^m}^*、(^:べき乗)で表現された平文msgを暗号化する暗号化装置と、前記暗号化装置とネットワークを介して接続される復号装置であって復号の対象である平文を含んで暗号化され、アフィン表現F_{p^m}×F_{p^m}^*で表現された暗号文を復号する復号装置とを備える暗号通信システムであって、前記暗号化装置は、暗号化の対象である平文msgと、公開鍵とを取得する取得手段と、前記平文msgが、アフィン表現F_{p^m}×F_{p^m}^*であるか否か判定することにより、前記代数的トーラス上の元であるか否か判定する判定手段と、前記判定手段の判定結果に基づいて、前記公開鍵を用いて前記平文msgを暗号化して、前記代数的トーラス上の元の組で表現される暗号文cを求める暗号化手段と、前記暗号文cの各元を、圧縮写像によりアフィン表現 F_{p^m}×F_{p^m}^*に写像する圧縮手段とを備え、前記復号装置は、ベクトル形式により表現される暗号文と、公開鍵に対応する秘密鍵とを取得する取得手段と、前記暗号文に含まれるベクトル成分が、アフィン表現 F_{p^m}×F_{p^m}^*であるか否か判定する判定手段と、前記判定手段の判定結果に基づいて、前記ベクトル成分を、伸長写像により前記代数的トーラス上の各元に写像する伸長手段と、前記代数的トーラス上の各元に写像された前記暗号文に含まれる前記平文を、前記秘密鍵を用いて復号する復号手段とを備えることを特徴とする。
【0023】
また、本発明は、F_{p^m}の6次拡大体上の代数的トーラス上の元であり拡大体表現{0,…,p-1}^(6*m)(p:素数、m:自然数、^:べき乗)で表現された平文msgを暗号化する暗号化装置と、前記暗号化装置とネットワークを介して接続される復号装置であって復号の対象である平文を含んで暗号化され、アフィン表現F_{p^m}×F_{p^m}^*で表現された暗号文を復号する復号装置とを備える暗号通信システムであって、前記暗号化装置は、暗号化の対象である平文msgと、公開鍵とを取得する取得手段と、前記平文msgが、{0,…,p-1}^(6*m)に含まれるか否かと、msg^(p^(2*m)-p^(m)+1)=1を満たすか否かとを判定することにより、前記代数的トーラス上の元であるか否か判定する判定手段と、前記判定手段の判定結果に基づいて、前記公開鍵を用いて前記平文msgを暗号化して、前記代数的トーラス上の元の組で表現される暗号文cを求める暗号化手段と、前記暗号文cの各元を、圧縮写像によりアフィン表現 F_{p^m}×F_{p^m}^*に写像する圧縮手段とを備え、前記復号装置は、ベクトル形式により表現される暗号文と、公開鍵に対応する秘密鍵とを取得する取得手段と、前記暗号文に含まれるベクトル成分が、アフィン表現 F_{p^m}×F_{p^m}^*であるか否か判定する判定手段と、前記判定手段の判定結果に基づいて、前記ベクトル成分を、伸長写像により前記代数的トーラス上の各元に写像する伸長手段と、前記代数的トーラス上の各元に写像された前記暗号文に含まれる前記平文を、前記秘密鍵を用いて復号する復号手段とを備えることを特徴とする。
【0024】
また、本発明は、F_{p^m}(^:べき乗)の6次拡大体上の代数的トーラス上の元でありアフィン表現F_{p^m}×F_{p^m}^*(p:素数、m:自然数)で表現された平文msgを暗号化する暗号化装置で実行される暗号化方法であって、暗号化の対象であってベクトル形式により表現される平文msgと、公開鍵とを取得する取得ステップと、前記平文msgに含まれるベクトル成分が、アフィン表現 F_{p^m}×F_{p^m}^*であるか否か判定する判定ステップと、前記判定ステップの判定結果に基づいて、前記公開鍵を用いて前記平文msgを暗号化して、アフィン空間F_{p^m}×F_{p^m}^*上の要素の組で表現される暗号文cを求める暗号化ステップとを含むことを特徴とする。
【0025】
また、本発明は、F_{p^m}(^:べき乗)の6次拡大体上の代数的トーラス上の元であり拡大体表現{0,…,p-1}^(6*m)(p:素数、m:自然数)で表現された平文msgを暗号化する暗号化装置で実行される暗号化方法であって、暗号化の対象である平文msgと、公開鍵とを取得する取得ステップと、前記平文msgが、{0,…,p-1}^(6*m)に含まれるか否かと、msg^(p^(2*m)-p^(m)+1)=1を満たすか否かとを判定することにより、前記代数的トーラス上の元であるか否か判定する判定ステップと、前記判定ステップの判定結果に基づいて、前記公開鍵を用いて前記平文msgを暗号化して、前記代数的トーラス上の元の組で表現される暗号文cを求める暗号化ステップと、前記暗号文cの各元を、圧縮写像によりアフィン表現 F_{p^m}×F_{p^m}^*に写像する圧縮ステップとを含むことを特徴とする。
【0026】
また、本発明は、復号の対象である平文を含んで暗号化され、アフィン表現F_{p^m}×F_{p^m}^*(p:素数、m:自然数、^:べき乗)で表現された暗号文を復号する復号装置で実行される復号方法であって、ベクトル形式により表現される暗号文と、公開鍵に対応する秘密鍵とを取得する取得ステップと、前記暗号文に含まれるベクトル成分が、アフィン表現 F_{p^m}×F_{p^m}^*であるか否か判定する判定ステップと、前記判定手段の判定結果に基づいて、前記ベクトル成分を、伸長写像により前記代数的トーラス上の各元に写像する伸長ステップと、前記代数的トーラス上の各元に写像された前記暗号文に含まれる前記平文を、前記秘密鍵を用いて復号する復号ステップとを含むことを特徴とする。
【0027】
また、本発明は、プログラムであって、上記記載の方法をコンピュータに実行させることを特徴とする。
【発明の効果】
【0028】
本発明によれば、冗長な処理を行うことなく、暗号化処理や復号処理への入力が、暗号が定義される群の元であるか否かを判定することが可能になる。
【発明を実施するための最良の形態】
【0029】
以下に添付図面を参照して、この発明にかかる暗号化装置、復号装置、暗号通信システム、方法及びプログラムの最良な実施の形態を詳細に説明する。
【0030】
[第1の実施の形態]
(1)構成
<公開鍵暗号スキーム>
まず、本実施の形態にかかる公開鍵暗号スキームについて説明する。図1は、公開鍵暗号スキームの構成を例示する図である。公開鍵暗号スキームにおいては、パラメータ生成装置100が、公開鍵暗号に関する公開情報を生成する。公開情報としては、公開鍵に関する情報として、群の要素やハッシュ関数などの情報や、暗号系が定義される群に関する情報として、位数や生成元の情報がある。公開情報のうち群に関する情報は、後述するCramer-Shoup暗号の場合、(p, q, m, n)である。そして、鍵生成装置200が、公開情報を用いて公開鍵と、これに対応する秘密鍵とを生成する。暗号化装置301を有する送信装置300には、鍵生成装置200が生成した公開鍵と、暗号化の対象の平文が入力される。この平文は、送信装置300において予め記憶されたものであっても、送信装置300が生成したものであっても、他の通信装置から受信したものであっても、記憶媒体から読み出したものであっても良い。暗号化装置301は、公開鍵を用いて平文を暗号化して暗号文を生成しこれを受信装置400に送信する。復号装置401を有する受信装置400は、暗号文を受信すると、当該暗号文の暗号化に用いられた公開鍵に対応する秘密鍵を用いて暗号文を復号することにより、平文を得る。
【0031】
<トーラス圧縮:公開鍵暗号スキーム>
次に、トーラス圧縮による公開鍵暗号スキームについて図2を用いて説明する。トーラス圧縮による公開鍵暗号スキームにおいては、送信装置300は暗号化装置301に加え圧縮装置302を更に有する。受信装置400は、復号装置401に加え伸長装置402を更に有する。パラメータ生成装置100及び鍵生成装置200の構成は上述と同様であるため、その説明を省略する。暗号化装置301は、公開鍵を用いて平文を暗号化して暗号文を生成するが、この暗号化を圧縮しない表現で行う。生成された暗号文は、ベクトル形式により表現される。圧縮装置302は、暗号文に含まれるベクトル成分を圧縮して出力する。圧縮された暗号文(圧縮暗号文という)を送信装置300は受信装置400に送信する。伸長装置402は、圧縮暗号文に含まれるベクトル成分を伸長する。復号装置401は、伸長された暗号文の暗号化に用いられた公開鍵に対応する秘密鍵を用いて当該暗号文を復号することにより、平文を得る。ここでの復号は圧縮しない表現で行う。尚、同図では、鍵生成装置200が行う公開鍵及び秘密鍵の生成と、暗号化装置301が行う暗号化と、復号装置401が行う復号とは拡大体表現による演算で行う。
【0032】
尚、パラメータ生成装置100、鍵生成装置200、送信装置300及び受信装置400は各々、装置全体を制御するCPU(Central Processing Unit)等の制御装置と、各種データや各種プログラムを記憶するROM(Read Only Memory)やRAM(Random Access Memory)等の記憶装置と、各種データや各種プログラムを記憶するHDD(Hard Disk Drive)やCD(Compact Disk)ドライブ装置等の外部記憶装置と、外部装置の通信を制御する通信I/F(interface)と、これらを接続するバスとを備えており、通常のコンピュータを利用したハードウェア構成となっている。また、送信装置300及び受信装置400は、インターネット等のネットワーク(図示せず)を介して接続されて通信を行う。また、送信装置300の有する暗号化装置301及び圧縮装置302は、送信装置300の有するCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現されるものである。同様に、受信装置400の有する復号装400及び伸長装置402は、受信装置400の有するCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現されるものである。
【0033】
<Cramer-Shoup暗号>
次に、公開鍵暗号スキームで説明した送信装置300及び受信装置400の構成において、Cramer-Shoup暗号を適用する構成について説明する。図3は、Cramer-Shoup暗号における処理を概念的に示す図である。鍵生成装置200は、公開鍵(p,q,g,g~,e,f,h)を生成する。尚、p,qは素数でそれぞれ群G^の位数とその部分群Gの位数、gは暗号が定義される部分群G(位数はq)の生成元、g~,e,f,hも群Gの元とする。平文msgも部分群Gの元でなければならない。一方、当該公開鍵に対応する秘密鍵(x1, x2, y1, y2, z1, z2)は‘1’から‘q-1’までの整数又は‘0’から‘q-1’までの整数とする。送信装置300の有する暗号化装置301は、公開鍵を用いて平文msgに対応する暗号文(c1, c2, c3, c4)を計算する。具体的には、暗号化装置301は、qを用いて‘0≦r<q-1’なる乱数rを生成する。そして、暗号化装置301は、c1としてg^rを求め、c2としてg~^rを求め、bとしてh^rを求める。そして、暗号化装置301は、b*mをc3として求める。‘*’は乗算を表す。次いで、暗号化装置301は、(c1, c2, c3)についてハッシュ関数を用いた計算により、ハッシュ値H(c1, c2, c3)を求める。そして、暗号化装置301は、c4として、e^r*f^r*vを求める。この結果、暗号文(c1, c2, c3, c4)が得られる。この暗号文(c1, c2, c3, c4)を送信装置300は受信装置400に送信する。
【0034】
一方、受信装置400は、暗号文(c1, c2, c3, c4)を受信すると、復号装置401が、秘密鍵(x1, x2, y1, y2, z1, z2)と暗号文(c1, c2, c3, c4)とから正当な平文であるか否かの判定を行い、当該判定結果が肯定的である場合、平文msgを計算する。具体的には、復号装置401は、(c1, c2, c3, c4)の各要素が、群G^の元であるか否かを判定する。当該判定結果が肯定的である場合、復号装置401は、bとして、c1^z1*c2^z2を求める。次いで、復号装置401は、(c1, c2, c3)の各要素が、群G^の部分群Gの元であるか否かを判定する。また、復号装置401は、暗号文の要素c1,c2,c3を用いてハッシュ関数による計算を行い、要素c1,c2と秘密鍵x1, x2, y1, y2とを用いてべき乗計算と乗算とにより検査式に用いる値を求める。そして、復号装置401は、当該値と暗号文の要素とを用いた以下の検査式5が成立するか否かを判定する。また、復号装置401は、要素c1,c2と秘密鍵z1,z2とを用いてべき乗計算を行い、当該計算結果の逆元を導出した後、要素c3を用いて乗算を行うことにより、暗号化された平文msgを復号する。
【0035】
c4=c1^(x1+y1*v)*c2^(x2+y2*v)・・・(式5)
【0036】
<トーラス圧縮Cramer-Shoup暗号>
以上のような構成において、トーラス圧縮によるCramer-Shoup暗号(トーラス圧縮Cramer-Shoup暗号という)について説明する。ここでは、F_{p^(6*m)}上のトーラスの位数は合成数で、平文は拡大体表現で表し、暗号文の計算を拡大体表現で行い、その結果をアフィン表現で圧縮したり伸長したりする。ここでは、暗号が定義される群Gは、F_{p^m}の6次拡大体上の代数的トーラス上の位数qの部分群である素数位数部分群Gとなる。図4は、本構成における鍵生成装置200の構成を概念的に示す図である。鍵生成装置200は、公開情報である合成数位数トーラス上の素数位数部分群Gの生成元gとその位数qを入力として、乱数を得て、乱数を用いたべき乗計算と、乗算とにより公開鍵を計算する。Cramer-Shoup暗号の公開鍵の計算においては、べき乗計算も乗算も素体上で行うが、本実施の形態のトーラス圧縮Cramer-Shoup暗号の公開鍵の計算においては、べき乗計算と乗算とは拡大体上で行う。6次拡大体上の代数的トーラスを用いて構成する場合、圧縮写像や伸長写像や代数的トーラス上の演算は拡大体F_{p^(6*m)}上の演算を用いる。
【0037】
次に、トーラス圧縮Cramer-Shoup暗号において、送信装置300の有する暗号化装置301と圧縮装置302との構成について説明する。図5は、トーラス圧縮Cramer-Shoup暗号における暗号化装置301と圧縮装置302とが行う処理を概念的に示す図である。暗号化装置301には、鍵生成装置200が生成した公開鍵が入力され、暗号化の対象の平文msgが入力される。尚、暗号化装置301は、拡大体表現{{0,…,p-1}^ (6*m)}で表現されたmsg毎に平文を処理するものとする。暗号化装置301は、まず、入力された平文msgが正しい群の元であるか否かを検査する。この検査は、平文msgが、以下の条件(A1)〜(C1)の全てを満たすか否かを判定することにより行う。
【0038】
(A1){0,…,p-1}^(6*m)に含まれる
(B1_1)拡大体表現の演算で msg^{p^(2*m)-p^(m)} = 1を満たす
(B 1_2)拡大体表現の演算で msg^(q) = 1を満たす
【0039】
条件(A1)を満たす場合、平文msgは、6次拡大体上の元である。条件(B1_1)を満たす場合、平文msgは、合成数位数代数的トーラス上の元である。条件(B1_2)を満たす場合、平文msgは、合成数位数代数的トーラス上の位数qの部分群である素数位数部分群Gの元である。条件(B1_1)を判定するための計算は効率的に実行できるため、この計算を、条件(B1_2)を判定するための計算の前に行うことで効率的な検査が可能となる。これらの条件を用いた検査結果が肯定的である場合、入力された平文msgは、拡大体表現{{0,…,p-1}^(6*m)}で表現された、6次拡大体上の合成位数代数的トーラス上の素数位数部分群Gの元である。この場合、暗号化装置301は、公開鍵を用いて平文msgを暗号化する。具体的には、暗号化装置301は、Cramer-Shoup暗号において説明したように、乱数を生成し、公開鍵に含まれるg~,e,fを用いて、当該乱数を乗数に用いたべき乗計算を行い、暗号文の要素であるc1,c2を求める。そして、暗号化装置301は、乗算を行うことにより平文マスクを行い、暗号文の要素であるc3を求める。また、暗号化装置301は、公開鍵に含まれるe,fと、乱数とを用いてハッシュ計算を行ってハッシュ値を求め、当該ハッシュ値を乗数に用いたべき乗計算を行うことにより、暗号文の要素であるc4を求める。この暗号文は、復号の対象である平文msgを含んで暗号化されたものとなる。尚、ここでの各乗算は拡大体F_p^{(6*m)}上で行う。次いで、圧縮装置302は、各要素c1,c2,c3,c4を圧縮写像により圧縮して圧縮暗号文(c1, c2, c3, c4)を出力する。出力された圧縮暗号文はアフィン表現となっている。送信装置300は出力されたこの圧縮暗号文を受信装置400に送信する。
【0040】
次に、トーラス圧縮Cramer-Shoup暗号において、受信装置400の有する復号装置401と伸長装置402との構成について説明する。図6は、トーラス圧縮Cramer-Shoup暗号における復号装置401と伸長装置402とが行う処理を概念的に示す図である。伸長装置402には、送信装置300が送信した圧縮暗号文(c1, c2, c3, c4)が入力される。尚、伸長装置402は、アフィン表現F_{p^m}×F_{p^m}^*の組毎に処理を行うものとする。伸長装置402は、圧縮暗号文(c1, c2, c3, c4)の各要素が正しい群の元であるか否かを検査する。この検査は、圧縮暗号文の各要素ciが以下の条件(C1)〜(D1)を全て満たすか否かを判定することにより行う。
【0041】
(C1) F_{p^m}×F_{p^m}^* に含まれる
(D1)拡大体表現による演算で、ci^(q) = 1 が成立する
【0042】
これらの検査を伸長写像の前に行うことにより伸長写像における無駄な計算を省くことができる。尚、条件(C1)を満たす場合、ciは、アフィン表現により表現されている。条件(D1)を満たす場合、ciは、代数的トーラスの位数qの部分群である素数位数部分群Gの元である。従って、当該検査結果が肯定的である場合、受信された圧縮暗号文(c1, c2, c3, c4)は、アフィン表現F_{p^m}×F_{p^m}^*で表現される暗号文であって、F_{p^m}の6次拡大体上の合成位数代数的トーラス上の部分群Gの元である。この場合、伸長装置402は、(D1)において拡大体表現に写像された圧縮暗号文の各要素を伸長写像によりアフィン表現から伸長 した暗号文(c1, c2, c3, c4)を得る。復号装置401には、秘密鍵が入力される。そして、復号装置401は、Cramer-Shoup暗号において説明したように、暗号文の要素c1,c2,c3を用いてハッシュ関数による計算を行い、要素c1,c2と秘密鍵x1, x2, y1, y2とを用いてべき乗計算と乗算とにより検査式に用いる値を求める。そして、復号装置401は、当該値と暗号文の要素とを用いた検査式が成立するか否かを判定する。また、復号装置401は、要素c1,c2と秘密鍵z1,z2とを用いてべき乗計算を行い、当該計算結果の逆元を導出した後、要素c3を用いて乗算を行うことにより、暗号化された平文msgを復号する。この結果、平文msgが得られる。
【0043】
(2)動作
<暗号化処理及び圧縮処理>
次に、本実施の形態にかかる送信装置300が平文を暗号化して圧縮する処理の手順について図7を用いて説明する。送信装置300の暗号化装置301には、鍵生成装置200が生成した公開鍵が入力され、暗号化の対象の平文が入力される。暗号化装置301は、まず、入力された平文msgが正しい群の元であるか否かを検査する(ステップS1)。この検査は、平文msgが、上述の条件(A1),(B1_1),(B1_2)の全てを満たすか否かを判定することにより行う。ステップS1の検査結果が肯定的である場合、暗号化装置301は、Cramer-Shoup暗号において説明したように、乱数を生成して(ステップS2)、公開鍵に含まれるg~,e,fを用いて、当該乱数を乗数に用いたべき乗計算と乗算とを行い(ステップS3)、暗号文の要素であるc1,c2を求める。そして、暗号化装置301は、乗算を行うことにより平文マスクを行い、暗号文の要素であるc3を求める。また、暗号化装置301は、公開鍵に含まれるe,fと乱数とを用いてハッシュ計算を行ってハッシュ値を求め(ステップS4)、当該ハッシュ値を乗数に用いたべき乗計算を行うことにより(ステップS5)、暗号文の要素であるc4を求める。尚、ここでの各乗算は拡大体F_{p^(6*m)}上で行う。以上のようにして暗号化装置301が暗号化処理を行った後、圧縮装置302が以下の通りに圧縮処理を行う。圧縮装置302は、ステップS2〜S5により生成された暗号文を圧縮写像により圧縮して圧縮暗号文(c1, c2, c3, c4)を生成して(ステップS6)、これを出力する(ステップS7)。そして、ステップS6で出力された圧縮暗号文を送信装置300は受信装置400に送信する。尚、ステップS1の検査結果が否定的である場合、暗号化装置301は、エラーであるとして以降の処理を中断する。
【0044】
<伸長処理及び復号処理>
次に、本実施の形態にかかる受信装置400が、送信装置300から送信された圧縮暗号文を伸長して復号する処理の手順について図8を用いて説明する。受信装置400の伸長装置402は、送信装置300が送信した圧縮暗号文の各要素が正しい群の元であるか否かを検査する(ステップS20)。この検査は、圧縮暗号文の各要素ciが上述の条件(C1)〜(D1)を全て満たすか否かを判定することにより行う。そして、ステップS20の検査結果が肯定的である場合、伸長装置402は、圧縮暗号文を伸長写像により伸長して暗号文 (c1, c2, c3, c4)を求める(ステップS21)。以上のようにして伸長装置402が伸長処理を行った後、復号装置401が以下の通りに復号処理を行う。尚、復号装置401には、秘密鍵が入力される。復号装置401は、ステップS21で求められた暗号文の要素号文の要素c1,c2,c3を用いてハッシュ関数による計算を行い(ステップS22)、要素c1,c2と秘密鍵x1, x2, y1, y2とを用いてべき乗計算と乗算とにより検査式に用いる値を求め(ステップS23)、当該値と暗号文の要素とを用いた上述の検査式5が成立するか否かを判定する(ステップS24)。そして、当該判定結果が肯定的である場合、復号装置401は、要素c1,c2と秘密鍵z1,z2とを用いてべき乗計算を行い、当該計算結果の逆元を導出した後、要素c3を用いて乗算を行うことにより、暗号化された平文msgを復号する(ステップS25)。この結果、平文msgが得られる。尚、ステップS20の検査結果が否定的である場合、伸長装置402は、エラーであるとして以降の処理を中断する。
【0045】
以上のような構成によれば、送信装置300で平文を暗号化して暗号文を圧縮し、受信装置400で圧縮暗号文を伸長して復号する場合に、入力である平文や圧縮暗号文が正しい群の元であるか否かの各検査において、冗長な処理を省くことができる。
【0046】
例えば、F_{p^m}の6次拡大体上のトーラスを使う暗号系と圧縮処理とを単純に組み合わせた場合、図9に示されるように、暗号化処理の前の他、圧縮処理の前にも入力が正しい群の元であるか否かを検査する必要がある。しかし、上述した実施の形態においては、圧縮処理の前にこの検査を行う必要がなくなるため、冗長な処理を省くことが可能になる。同様に、F_{p^m}の6次拡大体上のトーラスを使う復号系と伸長処理とを単純に組み合わせた場合、図10に示されるように、伸長処理の前の他、復号処理の前にも入力が正しい群の元であるか否かを検査する必要がある。しかし、上述した実施の形態においては、復号処理の前にこの検査を行う必要がなくなるため、冗長な処理を省くことが可能になる。
【0047】
つまり、上述の実施の形態のように、合成数位数トーラス上の素数位数部分群を暗号系に用いる場合、入力された平文がF_{p^m}の6次拡大体上の合成数位数トーラス上の元であり素数位数部分群の元であれば、暗号化処理の結果得られる暗号文の各要素は、6次拡大体のトーラスの元となる。このため、圧縮処理の前にトーラスの元であるか否かの検査は不要となる。また、伸長後の暗号文の各要素が6次拡大体上の合成数位数トーラス上の元であり素数位数部分群の元であるか否かの検査を伸長処理の前に行うことで、不正な暗号文を早い段階で識別し、不正な暗号文が入力された際の処理を軽減できる。
【0048】
尚、上述の実施の形態においては、暗号化装置301は、入力された平文msgが正しい群の元であるか否かを検査する際に、上述の条件(B1_2)を判定するための計算の前に条件(B1_1)を判定するための計算を行うようにした。これは部分群の位数qをべき指数とするべき乗を行う前に代数的トーラスの要素であるか否かを検査するのは冗長な検査であるが、大量の不正な平文が入力されうる環境であっても効率的に検査できるという効果がある。なぜなら、F_{p^m}上の要素xについて、(x^(p^m))の計算はフロベニウス写像(参考文献参照)を用いて効率的に計算できることが知られている。F_{p^m}の6次拡大体上のトーラスの位数は‘p^(2*m)-p^(m)+1’であるため、p^m乗フロベニウス写像を利用することでx^{ p^(2*m)-p^(m)+1}を効率的に計算できるからである。
(参考文献)X: Henri Cohen, Gerhard Frey: Handbook of elliptic and hyperelliptic curve cryptography : Chapman & Hall/CRC
【0049】
[第2の実施の形態]
次に、暗号化装置、復号装置、暗号通信システム、方法及びプログラムの第2の実施の形態について説明する。なお、上述の第1の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【0050】
上述の第1の実施の形態においては、合成数位数トーラス上の素数位数部分群を暗号系に用いる場合について説明した。本実施の形態においては、素数位数トーラスを暗号系に用いる場合について説明する。即ち、ここでは、F_{p^(6*m)}上のトーラスの位数は素数で、平文は拡大体表現で表し、暗号文の計算を拡大体表現で行い、その結果をアフィン表現で圧縮したり伸長したりする。ここでは、暗号が定義される群は、6次拡大体上の素数位数トーラス自体となる。本実施の形態における鍵生成装置200は、公開情報である素数位数トーラス上の生成元gとその位数qを入力として、乱数を得て、当該乱数を用いたべき乗計算と乗算とを行うことにより公開鍵を計算する。本実施の形態の公開鍵の計算においては、上述の第1の実施の形態と同様に、べき乗計算と乗算とは拡大体表現で行う。また、F_{p^m}の6次拡大体上の代数的トーラスを用いて構成する場合、圧縮写像や伸長写像や代数的トーラス上の演算は拡大体F_{p^(6*m)}上の演算を用いる。
【0051】
次に、本実施の形態における送信装置300の有する暗号化装置301の構成が、上述の第1の実施の形態と異なる点について説明する。本実施の形態においては、暗号化装置301は、入力された平文msgが正しい群の元であるか否かの検査を行う際に、上述の条件(A1),(B1_1)のみを満たすか否かの判定を行う。
【0052】
当該検査結果が肯定的である場合、入力された平文msgは、拡大体表現{{0,…,p-1}^(6*m)}で表現された、F_{p^m}の6次拡大体上の素数位数代数的トーラス上の元である。この場合、暗号化装置301は、上述した第1の実施の形態と同様にして、公開鍵を用いて平文msgを暗号化する。以降は、上述した第1の実施の形態と同様である。
【0053】
伸長装置402が行う検査は上述の第2の実施の形態と同様で、入力が正しい群の元であるか否かの検査である。送信装置300が送信した圧縮暗号文の各要素が正しい群の元であるか否かを検査する際に、上述の条件(C1)のみを満たすか否かを判定し、上述の条件(D1)を満たすか否かの判定を行わない。
【0054】
当該検査結果が肯定的である場合、受信された圧縮暗号文(c1, c2, c3, c4)は、アフィン表現 F_{p^m}×F_{p^m}^*で表現される暗号文であって、F_{p^m}の6次拡大体上の素数位数代数的トーラス上の元である。この場合、伸長装置402は、上述の第1の実施の形態と同様にして、圧縮暗号文を伸長写像により伸長して暗号文を得る。以降は、上述した第1の実施の形態と同様である。
【0055】
以上のように、素数位数トーラスを暗号系に用いる場合、素数位数トーラス上の全ての要素を暗号系に用いることができる。そのため、暗号化の対象である平文の各ベクトル成分が、トーラス上の元であるか否かのみ検査すれば十分である。従って、本実施の形態においては、上述した条件(B1_2)や(D1)を満たすか否かを判定を必要とせず、合成数位数のトーラス上の素数位数部分群を用いた場合と比べ検査のための処理負担が軽減される。
【0056】
[第3の実施の形態]
次に、暗号化装置、復号装置、暗号通信システム、方法及びプログラムの第3の実施の形態について説明する。なお、上述の第1の実施の形態又は上述の第2の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【0057】
上述の各実施の形態においては、平文を拡大体表現で表し、暗号文の計算を拡大体表現で行う場合について説明した。本実施の形態においては、平文をアフィン表現で表し、暗号文の計算を射影表現により行う場合について説明する。特にここでは、F_{p^(6*m)}上のトーラスの位数が合成数である場合を取り扱う。即ち、ここでは、F_{p^(6*m)}上のトーラスの位数は合成数で、平文をアフィン表現で表し、暗号文の計算を射影表現で行い、その結果をアフィン表現で圧縮したり伸長したりする。暗号が定義される群は、F_{p^m}の6次拡大体上の代数的トーラス上の位数qの部分群である素数位数部分群Gとなる。本実施の形態における鍵生成装置200は、公開情報である合成数位数トーラス上の素数位数巡回部分群の生成元とその位数qを入力として、乱数を得て、乱数を用いたべき乗計算と、乗算とにより公開鍵を計算する。尚、本実施の形態の公開鍵の計算においては、べき乗計算と乗算とは射影表現で行う。また、6次拡大体上の代数的トーラスを用いて構成する場合、圧縮写像や伸長写像や代数的トーラス上の演算はアフィン表現 F_{p^m}×F_{p^m}^*の射影表現による演算を用いる。
【0058】
次に、本実施の形態における送信装置300の有する暗号化装置301の構成が、上述の第1の実施の形態と異なる点について説明する。ここでは、暗号化装置301はアフィン表現 F_{p^m}×F_{p^m}^*で表現されたmsg毎に平文を処理するものとする。暗号化装置301は、入力された平文msgが正しい群の元であるか否かの検査を、平文msgが、以下の条件(A3)〜(B3)の全てを満たすか否かを判定することにより行う。
【0059】
(A3) F_{p^m}×F_{p^m}^* に含まれる
(B3)射影表現による演算で msg^(q) = 1 が成立する
【0060】
条件(A3)を満たす場合、平文msgは、アフィン表現により表現されている。条件(B3)を満たす場合、平文msgは、F_{p^m}の6次拡大体上の合成位数代数的トーラス上の位数qの部分群である素数位数部分群Gの元である。従って、当該検査結果が肯定的である場合、入力された平文msgは、アフィン表現 F_{p^m}×F_{p^m}^*で表現された、6次拡大体上の合成位数代数的トーラス上の素数位数部分群Gの元である。この場合、暗号化装置301は、上述した第1の実施の形態と同様にして、公開鍵を用いて平文msgを暗号化する。但しここでは、暗号化装置301は、上述したように、代数的トーラス上の演算を、アフィン表現 F_{p^m}×F_{p^m}^*の射影表現による演算により行って、アフィン空間F_{p^m}×F_{p^m}^*上の要素ciの組で表現される暗号文を求める。また、圧縮装置302は、上述した第1の実施の形態と同様にして、この暗号文を圧縮写像により圧縮して圧縮暗号文(c1, c2, c3, c4)を生成するが、この圧縮写像を、アフィン表現 F_{p^m}×F_{p^m}^*の射影表現による演算により行う。
【0061】
次に、本実施の形態における受信装置400の有する伸長装置402の構成が、上述の第1の実施の形態と異なる点について説明する。ここでは、伸長装置402は、送信装置300が送信した圧縮暗号文の各要素が正しい群の元であるか否かを検査を、圧縮暗号文の各要素ciが以下の条件(C3)〜(D3)を全て満たすか否かを判定することにより行う。
【0062】
(C3) F_{p^m}×F_{p^m}^* に含まれる
(D3)射影表現による演算で、ci^(q) = 1が成立する
【0063】
条件(C3)を満たす場合、ciは、アフィン表現により表現されている。条件(D3)を満たす場合、ciは、位数qの部分群である素数位数部分群Gの元である。従って、当該検査結果が肯定的である場合、受信された圧縮暗号文(c1, c2, c3, c4)は、アフィン表現F_{p^m}×F_{p^m}^*で表現される暗号文であって、F_{p^m}の6次拡大体上の合成位数代数的トーラス上の素数位数部分群の元である。この場合、伸長装置402は、上述の第1の実施の形態と同様にして、圧縮暗号文を伸長写像により伸長して暗号文を得る。但しここでは、伸長装置402は、上述したように、伸長写像や代数的トーラス上の演算を、アフィン表現 F_{p^m}×F_{p^m}^*の射影表現による演算により行う。復号装置301が行う復号処理は上述の第1の実施の形態と同様である。
【0064】
以上のような構成によれば、平文をアフィン表現で表し、暗号文の計算を射影表現により行う場合であっても、入力が正しい群の元であるか否かの検査において、冗長な処理を省くことができる。また、全ての演算を射影表現で行うことによって、射影表現と拡大体表現との間の写像処理を省き、アフィン表現と射影表現との間の写像のみで判定装置を構成できる。
【0065】
[第4の実施の形態]
次に、暗号化装置、復号装置、暗号通信システム、方法及びプログラムの第4の実施の形態について説明する。なお、上述の第1の実施の形態乃至上述の第3の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【0066】
上述の第3の実施形態においては、平文をアフィン表現で表し、暗号文の計算を射影表現により行う場合であって、F_{p^(6*m)}上のトーラスの位数は合成数である場合について説明した。本実施の形態においては、F_{p^(6*m)}上のトーラスの位数は素数である場合について説明する。即ち、ここでは、F_{p^(6*m)}上のトーラスの位数は素数で、平文をアフィン表現で表し、暗号文の計算を射影表現で行い、その結果をアフィン表現で圧縮したり伸長したりする。暗号が定義される群は、F_{p^m}の6次拡大体上の素数位数トーラス自体となる。本実施の形態における鍵生成装置200は、公開情報である素数位数トーラス上の生成元gとその位数qを入力として、乱数を得て、乱数を用いたべき乗計算と、乗算とにより公開鍵を計算する。尚、本実施の形態における公開鍵の計算においては、上述の第3の実施の形態と同様に、べき乗計算と乗算とは射影表現上で行う。また、6次拡大体上の代数的トーラスを用いて構成する場合、圧縮写像や伸長写像や代数的トーラス上の演算はアフィン表現 F_{p^m}×F_{p^m}^*の射影表現による演算を用いる。
【0067】
次に、本実施の形態における送信装置300の有する暗号化装置301の構成が、上述の第3の実施の形態と異なる点について説明する。本実施の形態においては、暗号化装置301は、入力された平文msgが正しい群の元であるか否かを検査する際に、上述の(A3)のみを満たすか否かを判定を行い、上述した条件(B3)を満たすか否かの判定を行わない。当該検査結果が肯定的である場合、入力された平文msgは、アフィン表現 F_{p^m}×F_{p^m}^*で表現された、6次拡大体上の素数位数代数的トーラス上の元である。この場合、暗号化装置301は、上述した第1の実施の形態乃至第3の実施の形態と同様にして、公開鍵を用いて平文msgを暗号化する。以降は、上述した第1の実施の形態乃至第3の実施の形態と同様である。
【0068】
次に、本実施の形態における受信装置400の有する伸長装置402の構成が、上述の第3の実施の形態と異なる点について説明する。本実施の形態においては、伸長装置402は、送信装置300が送信した圧縮暗号文の各要素が正しい群の元であるか否かを検査する際に、上述の(C3)のみを満たすか否かを判定を行い、上述した条件(D3)を満たすか否かの判定を行わない。当該検査結果が肯定的である場合、受信された圧縮暗号文(c1, c2, c3, c4)は、アフィン表現 F_{p^m}×F_{p^m}^*で表現される暗号文であって、F_{p^m}の6次拡大体上の素数位数代数的トーラス上の元である。この場合、伸長装置402は、上述した第1の実施の形態乃至第3の実施の形態と同様にして、圧縮暗号文を伸長写像により伸長して暗号文を得る。以降は、上述した第1の実施の形態乃至第3の実施の形態と同様である。
【0069】
以上のような構成によれば、平文をアフィン表現で表し、暗号文の計算を射影表現により行う場合、F_{p^(6*m)}上のトーラスの位数が素数であれば、これが合成数である場合に比べて、処理負担を軽減することができる。入力が正しい群の元であるか否かの各検査において、上述した条件(B3) や条件(D3)を満たすか否かの判定を必要としないからである。
【0070】
[第5の実施の形態]
次に、暗号化装置、復号装置、暗号通信システム、方法及びプログラムの第5の実施の形態について説明する。なお、上述の第1の実施の形態乃至上述の第4の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【0071】
(1)構成
本実施の形態においては、F_{p^(6*m)}上のトーラスの位数は合成数で、トーラス上の素数位数群の位数はqで、平文をアフィン表現で表し、暗号文の計算を射影表現で行い、その結果をアフィン表現で圧縮したり伸長したりする。暗号が定義される群は、6次拡大体上の代数的トーラス上の位数qの部分群である素数位数部分群Gとなる。本実施の形態における鍵生成装置200は、公開情報である合成数位数トーラス上の素数位数部分群の生成元gとその位数qを入力として、乱数を得て、乱数を用いたべき乗計算により公開鍵を計算する。そして、鍵生成装置200は、公開鍵を圧縮写像により圧縮して、圧縮公開鍵を生成する。尚、本実施の形態の公開鍵の計算においても、上述の第3の実施の形態又は第4の実施の形態と同様に、べき乗計算と乗算とは射影表現上で行う。また、6次拡大体上の代数的トーラスを用いて構成する場合、圧縮写像や伸長写像や代数的トーラス上の演算はアフィン表現 F_{p^m}×F_{p^m}^*の射影表現による演算を用いる。
【0072】
次に、本実施の形態にかかる送信装置300´の構成について図11を用いて説明する。本実施の形態においては、送信装置300´は、暗号化装置303を有する。暗号化装置303には、鍵生成装置200が生成した圧縮公開鍵と、暗号化の対象である平文msgとが入力される。尚、暗号化装置303は、アフィン表現 F_{p^m}×F_{p^m}^*の組で表現されるmsg毎に処理するものとする。暗号化装置303は、平文msgが、アフィン表現 F_{p^m}×F_{p^m}^*であるか否かを検査する。この検査は、以下の条件(A5)〜(C5)を全て満たすか否かを判定することにより行う。
【0073】
(A5)平文msgのベクトル表現による各ベクトル成分について、1項目からm項目までの各項目が‘0’から‘p-1’までの範囲に入っている
(B5)平文msgのベクトル表現による各ベクトル成分について、‘m+1’項目から2m項目までの各項目が‘0’から‘p-1’までの範囲に入っている且つ全て項目が‘0’でない
(C5)平文msgを伸長して射影表現に変換し、射影表現による演算で以下の条件式6が成立する
msg^(q)=1・・・(式6)
【0074】
全ての項目について条件(A 5)及び(B5)を満たす場合、平文msgは、アフィン表現により表現されている。条件(C5)を満たす場合、平文msgは、6次拡大体上の合成位数代数的トーラス上の位数qの部分群である素数位数部分群Gの元である。従って、当該検査結果が肯定的である場合、入力された平文msgは、アフィン表現 F_{p^m}×F_{p^m}^*で表現された、6次拡大体上の合成位数代数的トーラス上の素数位数部分群Gの元である。この場合、暗号化装置303は、圧縮公開鍵と生成元とを伸長し、べき乗計算、圧縮写像及び伸長写像及びハッシュ計算などの各種処理を行って暗号文(c1,c2,c3,c4)を生成し、これを圧縮して圧縮暗号文(c1,c2,c3,c4)を生成して出力する。この圧縮暗号文を送信装置300´は受信装置400´に送信する。
【0075】
次に、本実施の形態にかかる受信装置400´の構成について図11を用いて説明する。本実施の形態においては、受信装置400´は、復号装置403を有する。復号装置403には、鍵生成装置200が生成した秘密鍵と、送信装置300´が送信した圧縮暗号平文とが入力される。復号装置403は、圧縮暗号文(c1,c2,c3,c4)の各要素がF_{p^m}×F_{p^m}^*の元であるか否かを検査する。この検査は、以下の条件(D5)〜(F5)を全て満たすか否かを判定することにより行う。
(D5)ci(i=1,2,3,4)のベクトル表現による各ベクトル成分について、1項目からm項目までの各項目が‘0’から‘p-1’までの範囲に入っている
(E5)ci(i=1,2,3,4)のベクトル表現による各ベクトル成分について、‘m+1’項目から2m項目までの各項目が‘0’から‘p-1’までの範囲に入っている且つ全て項目が‘0’でない
(F5)各ciを伸長して射影表現に変換し、射影表現による演算で以下の条件式7が成立する
ci^q=1・・・(式7)
【0076】
各ciの全ての項目について条件(D5)及び条件(E5)を満たす場合、ciは、アフィン表現により表現されている。各ciについて条件(F5)を満たす場合、ciは、6次拡大体上の合成位数代数的トーラス上の位数qの部分群である素数位数部分群Gの元である。従って、当該検査結果が肯定的である場合、受信された圧縮暗号文(c1, c2, c3, c4)は、アフィン表現 F_{p^m}×F_{p^m}^*で表現される暗号文であって、6次拡大体上の合成位数代数的トーラス上の位数qの部分群である素数位数部分群Gの元である。この場合、復号装置403は、暗号化された平文を、秘密鍵を用いて復号する。具体的には、復号装置403は、ハッシュ計算、圧縮写像、検査式による判定及び平文の計算等の各種処理を行うことにより、平文を得る。
【0077】
(2)動作
<鍵生成処理>
次に、本実施の形態にかかる鍵生成装置200が公開鍵及び秘密鍵を生成する処理の手順について図12を用いて説明する。鍵生成装置200は、パラメータ生成装置100が生成した公開情報に含まれる、6次拡大体上の合成位数代数的トーラスの位数として公開パラメータqを取得する(ステップS40)。次いで、鍵生成装置200は、取得した公開パラメータqを用いて、‘0<w<q’なる乱数wを生成する(ステップS41)。また、鍵生成装置200は、公開パラメータqを用いて、‘0≦x1,x2,y1,y2,z1,z2<q’なる乱数x1,x2,y1,y2,z1,z2を生成する(ステップS42)。鍵生成装置200は、公開情報に含まれる、素数位数トーラスの生成元gを取得する(ステップS43)。次いで、鍵生成装置200は、以下の式8〜11によりべき乗を計算する(ステップS44)。
【0078】
g~=g^w・・・(式8)
e=g^(x1+w*x2)・・・(式9)
f=g^(y1+w*y2)・・・(式10)
h=g^(z1+w*z2)・・・(式11)
【0079】
そして、鍵生成装置200は、g~,e,f,hを圧縮写像によりアフィン表現に圧縮する(ステップS45)。次いで、鍵生成装置200は、(g~,e,f,h)を圧縮公開鍵として出力する(ステップS46)。また、鍵生成装置200は、(x1,x2,y1,y2,z1,z2)を秘密鍵として出力する(ステップS47)。
【0080】
<暗号化処理>
次に、本実施の形態にかかる送信装置300´が行う暗号化処理の手順について図13を用いて説明する。尚、送信装置300´の暗号化装置303は、上述した鍵生成装置200が生成した圧縮公開鍵(g~,e,f,h)と、暗号化の対象である平文msgを予め取得しているものとする。暗号化装置303は、平文msgがF_{p^m}×F_{p^m}^*の元であるか否かを検査する。具体的には、暗号化装置303は、まず、平文msgのベクトル表現による各ベクトル成分について、1項目からm項目までと‘m+1’項目から2m項目までとに分割する(ステップS60)。次いで、暗号化装置303は、上述の条件(A5)〜(C5)を全て満たすか否かを判定する(ステップS61〜S63)。
【0081】
ステップS61〜S63の判定結果が1つでも否定的である場合、暗号化装置303は、エラーを出力し以降の処理を中断する(ステップS75)。ステップS61〜S63の判定結果が全て肯定的である場合、ステップS64に進み、暗号化装置303は、公開情報に含まれる公開パラメータqを用いて、‘0≦u<q’なる乱数uを生成する。そして、暗号化装置303は、圧縮公開鍵(g~,e,f,h)と生成元gとを伸長写像により射影表現で伸長する(ステップS65)。次いで、暗号化装置303は、以下の式12〜13により射影表現でべき乗を計算して、c1,c2を求める(ステップS66)。
【0082】
c1=g^u・・・(式12)
c2=(g~)^u・・・(式13)
【0083】
次いで、暗号化装置303は、c1,c2を圧縮写像によりアフィン表現に圧縮する(ステップS67)。その後、暗号化装置303は、平文msgを伸長写像により射影表現に伸長する(ステップS68)。そして、暗号化装置303は、以下の式14により射影表現による演算でべき乗を計算することにより、平文マスクを行い、c3を求める(ステップS69)。
【0084】
c3=msg*h^u・・・(式14)
【0085】
次いで、暗号化装置303は、c3を圧縮写像により圧縮する(ステップS70)。そして、暗号化装置303は、ハッシュ計算により(c1,c2,c3)からハッシュ値を求め、これをvとする(ステップS71)。次いで、暗号化装置303は、以下の式15によりべき乗を計算して、c4を求める(ステップS72)。
【0086】
c4= e^(u)*f^(u*v)・・・(式15)
【0087】
次いで、暗号化装置303は、c4を圧縮写像により圧縮する(ステップS73)。そして、暗号化装置303は、(c1,c2,c3,c4)を圧縮暗号文として出力する(ステップS74)。そして、この圧縮暗号文を送信装置300´は受信装置400´に送信する。
【0088】
<復号処理>
次に、本実施の形態にかかる受信装置400´が行う復号処理の手順について図14を用いて説明する。尚、受信装置400´の有する復号装置403は、上述した鍵生成装置200が生成した秘密鍵(x1,x2,y1,y2,z1,z2)を予め取得しているものとする。復号装置403は、圧縮暗号文(c1,c2,c3,c4)の各要素が、F_{p^m}×F_{p^m}^*の元であるか検査する。具体的には、復号装置403は、ci(i=1,2,3,4)のベクトル表現による各ベクトル成分について、1項目からm項目までと‘m+1’項目から2m項目までとに分割する(ステップS80)。次いで、復号装置403は、上述の条件(D5)〜(F5)を全て満たすか否かを判定する(ステップS81〜S83)。
【0089】
ステップS81〜S83の判定結果が全て肯定的である場合、ステップS84に進み、復号装置403は、次いで、ハッシュ計算により(c1,c2,c3)からハッシュ値を求め、これをvとする。そして、復号装置403は、(c1,c2,c3)を伸長写像により伸長する(ステップS85)。次いで、復号装置403は、式16により射影表現による演算でべき乗を計算することにより、検査式に用いるcを求める(ステップS86)。
【0090】
c=c1^(x1+y1*v)*c2^(x2+y2*v)・・・(式16)
【0091】
次いで、復号装置403は、cを圧縮写像によりアフィン表現に圧縮する(ステップS87)。その後、復号装置403は、検査式‘c=c4’ が成立するか否かを判定する(ステップS88)。この判定は、例えば、c及びc4のベクトル表現における各ベクトル成分の値が一致するか否かを判定することにより行うことができる。そして、当該判定結果が肯定的である場合、復号装置403は、式17により射影表現による演算でべき乗を計算して、bを求める(ステップS89)。
【0092】
b= c1^z1*c2^z2・・・(式17)
【0093】
次いで、復号装置403は、式18により平文msgを計算する(ステップS90)。
【0094】
msg=c3*b^(-1)・・・(式18)
【0095】
その後、復号装置403は、平文msgを圧縮写像によりアフィン表現に圧縮して(ステップS91)、これを出力する。尚、ステップS88の判定結果が否定的である場合、復号装置403は、rejectを出力し、以降の処理を中断する(ステップS92)。また、ステップS81〜S83の判定結果が否定的である場合、復号装置403は、invalidを出力し、以降の処理を中断する(ステップS93)。但し、いずれの場合であっても、復号装置403は、なにも出力せずに処理を終了するようにしても良い。
【0096】
以上のような構成によれば、F_{p^(6*m)}上のトーラスについて、その位数が合成数であって、平文をアフィン表現で表し、暗号文の計算を射影表現により行う場合であっても、入力が正しい群の元であるか否かの各検査において、冗長な処理を省くことができる。
【0097】
[第6の実施の形態]
次に、暗号化装置、復号装置、暗号通信システム、方法及びプログラムの第6の実施の形態について説明する。なお、上述の第1の実施の形態乃至上述の第6の実施の形態と共通する部分については、同一の符号を使用して説明したり、説明を省略したりする。
【0098】
(1)構成
本実施の形態においては、F_{p^(6*m)}上のトーラスの位数は素数qで、平文をアフィン表現で表し、暗号文の計算を射影表現で行い、その結果をアフィン表現で圧縮したり伸長したりする。ここでは、暗号が定義される群は、6次拡大体上の素数位数トーラス自体となる。本実施の形態における鍵生成装置200の構成は上述の第5の実施の形態と同様である。
【0099】
本実施の形態にかかる送信装置300´の有する暗号化装置303´の構成が、上述の第5の実施の形態にかかる暗号化装置303の構成と異なる点は以下の点である。上述の暗号化装置303は、平文が、F_{p^m}×F_{p^m}^*の元であるか否かを検査する際に、上述の条件(A5),(B5)のみを満たすか否かの判定を行い、条件(C5) 満たすか否かの判定を行わない。当該検査結果が肯定的である場合、入力された平文msgは、アフィン表現 F_{p^m}×F_{p^m}^*で表現された、6次拡大体上の素数位数代数的トーラス上の元である。この場合、暗号化装置303は、上述の第5の実施の形態と同様にして、圧縮暗号文(c1,c2,c3,c4)を生成する。以降は、上述の第5の実施の形態と同様である。
【0100】
また、本実施の形態にかかる受信装置400´の有する復号装置403´の構成が、上述の第5の実施の形態にかかる復号装置403の構成と異なる点は以下の点である。上述の復号装置403は、圧縮暗号文が、暗号が定義されている群上の元であるか否かを検査する際に、上述の条件(D5),(E5)のみ満たすか否かの判定を行い、条件(F5)を満たすか否かの判定を行わない。当該検査結果が肯定的である場合、受信された圧縮暗号文(c1, c2, c3, c4)は、アフィン表現 F_{p^m}×F_{p^m}^*で表現される暗号文であって、6次拡大体上の素数位数代数的トーラス上の元である。この場合、復号装置403は、上述の第5の実施の形態と同様にして、暗号化された平文を、秘密鍵を用いて復号する。
【0101】
(2)動作
<暗号化処理>
次に、本実施の形態にかかる送信装置300´が行う暗号化処理の手順について図15を用いて説明する。ステップS60〜S62は上述の第5の実施の形態と同様である。そして、ステップS62の判定結果肯定的である場合、暗号化装置303´は、ステップS63を行わずに、ステップS64以降の処理を行う。
【0102】
<復号処理>
次に、本実施の形態にかかる受信装置400´が行う復号処理の手順について図16を用いて説明する。ステップS80〜S82は上述の第5の実施の形態と同様である。そして、ステップS82の判定結果肯定的である場合、復号装置403´は、ステップS83を行わずに、ステップS84以降の処理を行う。
【0103】
以上のような構成によれば、F_{p^(6*m)}上のトーラスについて、平文をアフィン表現で表し、暗号文の計算を射影表現により行う場合、F_{p^(6*m)}上のトラースの位数が素数であれば、これが合成数である場合に比べて、処理負担を軽減することができる。入力が正しい群の元であるか否かの各検査において、上述した条件(C5)や条件(F5)を満たすか否かの判定を必要としないからである。
【0104】
[変形例]
なお、本発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。また、以下に例示するような種々の変形が可能である。
【0105】
<変形例1>
上述した各実施の形態において、送信装置300で実行される各種プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。当該各種プログラムを、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。受信装置400で実行される各種プログラムについても同様である。
【0106】
また、上述した第1の実施の形態乃至第3の実施の形態において、暗号化装置301及び圧縮装置302は、送信装置300の有するCPUが記憶装置や外部記憶装置に記憶された各種プログラムを実行することにより実現されるものとしたが、これに限らず、ハードウェアにより構成させるようにしても良い。復号装置401及び伸長装置402についても同様である。また、第5の実施の形態又は第6の実施の形態における暗号化装置303及び復号装置403についても同様である。
【0107】
<変形例2>
上述の第1の実施の形態においては、暗号化装置301が行う演算と復号装置401が行う復号とを拡大体表現による演算で行うようにしたが、これらを射影表現で行うようにしても良い。この場合、暗号化装置301は、入力された平文msgが正しい群の元であるか否かを検査として、平文msgが、以下の条件(A1)〜(B1´)の全てを満たすか否かを判定することにより行う。(A1)は上述の第1の実施の形態と同様である。
【0108】
(A1) {0,…,p-1}^(6*m)に含まれる
(B1´) 射影表現の演算でmsg^(q) = 1を満たす
【0109】
当該検査結果が肯定的である場合、暗号化装置301は、射影表現上で乗算を行って、各要素c1,c2,c3,c4を求める。また、圧縮装置302は、上述した第1の実施の形態と同様にして、この暗号文を圧縮写像により圧縮して圧縮暗号文(c1, c2, c3, c4)を生成するが、この圧縮写像を、アフィン表現 F_{p^m}×F_{p^m}^*の射影表現による演算により行う。
【0110】
また、伸長装置402は、圧縮暗号文(c1, c2, c3, c4)の各要素が正しい群の元であるか否かを検査として、圧縮暗号文の各要素ciが以下の条件(C1)〜(D1´)を全て満たすか否かを判定することにより行う。条件(C1)は上述の第1の実施の形態と同様である。
【0111】
(C1) F_{p^m}×F_{p^m}^* に含まれる
(D1´) 拡大体表現による演算で、ci^(q) = 1 が成立する
【0112】
当該検査結果が肯定的である場合、伸長装置402は、圧縮暗号文の各要素を伸長写像によりアフィン表現から拡大体表現に伸長 した暗号文(c1, c2, c3, c4)を得る。
【0113】
以上のように、平文を拡大体表現で表し、暗号文の計算を射影表現により行う場合であっても、入力である平文や圧縮暗号文が正しい群の元であるか否かの各検査において、冗長な処理を省くことができる。特に、条件(D1’)の検証は射影表現を拡大体表現へ写像する前に実行できるため、(D1)の検証よりも効率的に不正な暗号文を検出できる。
【0114】
<変形例3>
上述の第2の実施の形態においては、暗号化装置301が行う演算と復号装置401が行う復号とを拡大体表現で行うようにしたが、これを射影表現で行うようにしても良い。この場合、暗号化装置301は、入力された平文msgが正しい群の元であるか否かを検査として、平文msgが、以下の条件(B2´)を満たすか否かを判定することにより行う。
【0115】
(B2´)射影表現による演算で msg^{p^(2*m)-p^(m)+1}=1を満たす
【0116】
当該検査結果が肯定的である場合、暗号化装置301は、射影表現上で乗算を行って、各要素c1,c2,c3,c4を求める。また、圧縮装置302は、上述した第1の実施の形態と同様にして、この暗号文を圧縮写像により圧縮して圧縮暗号文(c1, c2, c3, c4)を生成するが、この圧縮写像を、アフィン表現 F_{p^m}×F_{p^m}^*の射影表現による演算により行う。また、伸長装置402が行う検査は上述の第2の実施の形態と同様である。
【0117】
以上のように、平文を拡大体表現現で表し、暗号文の計算を射影表現により行う場合であっても、入力である平文や圧縮暗号文が正しい群の元であるか否かの各検査において、冗長な処理を省くことができる。
【0118】
<変形例4>
上述の第3の実施の形態においては、暗号化装置301が行う演算と復号装置401が行う復号とを射影表現で行うようにしたが、これを拡大体表現で行うようにしても良い。この場合、暗号化装置301は、入力された平文msgが正しい群の元であるか否かを検査として、平文msgが、以下の条件(A3)〜(B3´)の全てを満たすか否かを判定することにより行う。条件(A3)は上述の第3の実施の形態と同様である。
【0119】
(A3) F_{p^m}×F_{p^m}^* に含まれる
(B3´) 拡大体表現による演算で msg^(q) = 1 が成立する
【0120】
当該検査結果が肯定的である場合、暗号化装置301は、拡大体表現上で乗算を行って、各要素c1,c2,c3,c4を求める。また、圧縮装置302は、各要素c1,c2,c3,c4を圧縮写像により圧縮して圧縮暗号文(c1, c2, c3, c4)を出力する。
【0121】
また、伸長装置402は、圧縮暗号文(c1, c2, c3, c4)の各要素が正しい群の元であるか否かを検査として、圧縮暗号文の各要素ciが以下の条件(C3)〜(D3´)を全て満たすか否かを判定することにより行う。条件(C3)は上述の第3の実施の形態と同様である。
【0122】
(C3) F_{p^m}×F_{p^m}^* に含まれる
(D 3´) 拡大体表現による演算で、 ci^{q} = 1 が成立する
【0123】
当該検査結果が肯定的である場合、伸長装置402は、圧縮暗号文の各要素を伸長写像によりアフィン表現から伸長 した暗号文(c1, c2, c3, c4)を得る。
【0124】
以上のように、平文をアフィン表現で表し、暗号文の計算を拡大対表現により行う場合であっても、入力である平文や圧縮暗号文が正しい群の元であるか否かの各検査において、冗長な処理を省くことができる。
【0125】
<変形例5>
上述の第4の実施の形態においては、暗号化装置301が行う演算と復号装置401が行う復号とを射影表現で行うようにしたが、これを拡大体表現で行うようにしても良い。この場合、暗号化装置301は、入力された平文msgが正しい群の元であるか否かを検査として、上述の条件(A3)を満たすか否かを判定すれば良い。一方、伸長装置402は、圧縮暗号文(c1, c2, c3, c4)の各要素が正しい群の元であるか否かを検査として、上述の条件(C3)を満たすか否かを判定すれば良い。
【0126】
以上のように、平文をアフィン表現で表し、暗号文の計算を拡大対表現により行う場合であっても、入力である平文や圧縮暗号文が正しい群の元であるか否かの各検査において、冗長な処理を省くことができる。
【0127】
<変形例6>
上述の第1の実施の形態あるいは上述の変形例4において、復号装置401の伸長装置402は圧縮暗号文の各要素を伸長写像によりアフィン表現から拡大体表現に伸長したが、条件(D1)あるいは条件(D3’)の検査の際に得る拡大体表現を用いても良い。
【0128】
<変形例7>
上述の第3の実施の形態あるいは上述の変形例2において、復号装置401の伸長装置402は圧縮暗号文の各要素を伸長写像によりアフィン表現から拡大体表現に伸長したが、条件(D1’)の検査の際に得る射影表現から拡大体表現に伸長しても良い。
【0129】
<変形例8>
上述の第3の実施の形態において、暗号化装置301は、アフィン表現 F_{p^m}×F_{p^m}^*で表現された平文msgより射影表現による演算によって射影表現の要素ciの組で表現される暗号文を求めるが、条件(B3)の検査の際に用いる射影表現の平文msgより射影表現による演算によって射影表現の要素ciの組で表現される暗号文を求めても良い。
【0130】
<変形例9>
上述の変形例2において、暗号化装置301は、拡大体表現で表現された平文msgより射影表現による演算によって射影表現の要素ciの組で表現される暗号文を求めるが、条件(B1’)の検査の際に用いる射影表現の平文msgより射影表現による演算によって射影表の現要素ciの組で表現される暗号文を求めても良い。
【0131】
<変形例10>
上述の変形例4において、暗号化装置301は、アフィン表現 F_{p^m}×F_{p^m}^*で表現された平文msgより拡大体表現による演算によって拡大体表現の要素ciの組で表現される暗号文を求めるが、条件(B3’)の検査の際に用いる拡大体表現の平文msgより拡大体表現による演算によって拡大体表現の要素ciの組で表現される暗号文を求めても良い。
【図面の簡単な説明】
【0132】
【図1】公開鍵暗号スキームの構成を例示する図である。
【図2】トーラス圧縮による公開鍵暗号スキームの構成を例示する図である。
【図3】Cramer-Shoup暗号における処理を概念的に示す図である。
【図4】第1の実施の形態にかかる鍵生成装置200の構成を概念的に示す図である。
【図5】同実施の形態にかかるトーラス圧縮Cramer-Shoup暗号における暗号化装置301と圧縮装置302とが行う処理を概念的に示す図である。
【図6】同実施の形態にかかるトーラス圧縮Cramer-Shoup暗号における復号装置401と伸長装置402とが行う処理を概念的に示す図である。
【図7】同実施の形態にかかる送信装置300が平文を暗号化して圧縮する処理の手順を示すフローチャートである。
【図8】同実施の形態にかかる受信装置400が、送信装置300から送信された圧縮暗号文を伸長して復号する処理の手順を示すフローチャートである。
【図9】暗号化処理及び圧縮処理を単純に組み合わせた場合に、入力が正しい群の元であるか否かを検査する処理を模式的に示す図である。
【図10】伸長処理及び復号処理を単純に組み合わせた場合に、入力が正しい群の元であるか否かを検査する処理を模式的に示す図である。
【図11】第5の実施の形態にかかる送信装置300´及び受信装置400´の構成を例示する図である。
【図12】同実施の形態にかかる鍵生成装置200が公開鍵及び秘密鍵を生成する処理の手順を示すフローチャートである。
【図13】同実施の形態にかかる送信装置300´が行う暗号化処理の手順を示すフローチャートである。
【図14】同実施の形態にかかる受信装置400´が行う復号処理の手順を示すフローチャートである。
【図15】第6の実施の形態にかかる送信装置300´が行う暗号化処理の手順を示すフローチャートである。
【図16】同実施の形態にかかる受信装置400´が行う復号処理の手順を示すフローチャートである。
【符号の説明】
【0133】
100 パラメータ生成装置
200 鍵生成装置
300 送信装置
301 暗号化装置
302 圧縮装置
303 暗号化装置
400 受信装置
401 復号装置
402 伸長装置
403 復号装置

【特許請求の範囲】
【請求項1】
復号の対象である平文を含んで暗号化され、アフィン表現F_{p^m}×F_{p^m}^*(p:素数、m:自然数、^:べき乗)で表現された暗号文を復号する復号装置であって、
ベクトル形式により表現される暗号文と、公開鍵に対応する秘密鍵とを取得する取得手段と、
前記暗号文に含まれるベクトル成分が、アフィン表現 F_{p^m}×F_{p^m}^*であるか否か判定する判定手段と、
前記判定手段の判定結果に基づいて、前記ベクトル成分を、伸長写像により前記代数的トーラス上の各元に写像する伸長手段と、
前記代数的トーラス上の各元に写像された前記暗号文に含まれる前記平文を、前記秘密鍵を用いて復号する復号手段とを備える
ことを特徴とする復号装置。
【請求項2】
前記代数的トーラスの位数は、素数であり、
前記伸長手段は、前記判定手段の判定結果が肯定的である場合、アフィン空間F_{p^m}×F_{p^m}^*上の要素である前記ベクトル成分を、伸長写像により前記代数的トーラス上の各元に写像する
ことを特徴とする請求項1に記載の復号装置。
【請求項3】
前記代数的トーラスの位数は、合成数であり、
前記判定手段は、
前記ベクトル成分が、アフィン表現 F_{p^m}×F_{p^m}^*であるか否か判定するアフィン表現判定手段と、
前記アフィン表現判定手段の判定結果が肯定的である場合、前記ベクトル成分を射影表現に写像し、射影表現による演算で
c^(q) =1
を満たすか否かを判定することにより、位数qの部分群である素数位数部分群Gの元であるか否かを判定する部分群上元判定手段とを有し、
前記伸長手段は、前記部分群上元判定手段の判定結果が肯定的である場合、前記ベクトル成分を、伸長写像により前記代数的トーラス上の元に写像する
ことを特徴とする請求項1に記載の復号装置。
【請求項4】
前記代数的トーラスの位数は、合成数であり、
前記判定手段は、
前記ベクトル成分が、アフィン表現 F_{p^m}×F_{p^m}^*であるか否か判定するアフィン表現判定手段と、
前記アフィン表現判定手段の判定結果が肯定的である場合、前記ベクトル成分を拡大体表現に写像し、拡大体表現による演算で
c^(q) =1
を満たすか否かを判定することにより、位数qの部分群である素数位数部分群Gの元であるか否かを判定する部分群上元判定手段とを有し、
前記伸長手段は、前記部分群上元判定手段の判定結果が肯定的である場合、前記ベクトル成分を、伸長写像により前記代数的トーラス上の元に写像する
ことを特徴とする請求項1に記載の復号装置。
【請求項5】
前記伸長手段は、前記部分群上元判定手段の判定結果が肯定的である場合、前記部分群上元判定手段が前記ベクトル成分から写像して得た射影表現を用いて、前記ベクトル成分を前記代数的トーラス上の元に写像する
ことを特徴とする請求項3に記載の復号装置。
【請求項6】
前記伸長手段は、前記部分群上元判定手段の判定結果が肯定的である場合、前記部分群上元判定手段が前記ベクトル成分から写像する際に得た表現を用いて、前記ベクトル成分を前記代数的トーラス上の元に写像する
ことを特徴とする請求項4に記載の復号装置。
【請求項7】
前記復号手段は、アフィン表現で表現された前記平文を、前記秘密鍵を用いて復号する
ことを特徴とする請求項1に記載の復号装置。
【請求項8】
(拡大体上 復号)
前記復号手段は、拡大体表現で表現された前記平文を、前記秘密鍵を用いて復号する
ことを特徴とする請求項1に記載の復号装置。
【請求項9】
F_{p^m}の6次拡大体上の代数的トーラス上の元でありアフィン表現F_{p^m}×F_{p^m}^*(p:素数、m:自然数)で表現された平文msgを暗号化する暗号化装置であって、
暗号化の対象であってベクトル形式により表現される平文msgと、公開鍵とを取得する取得手段と、
前記平文msgに含まれるベクトル成分が、アフィン表現F_{p^m}×F_{p^m}^*であるか否か判定する判定手段と、
前記判定手段の判定結果に基づいて、前記公開鍵を用いて前記平文msgを暗号化して、アフィン空間F_{p^m}× F_{p^m}^*上の要素の組で表現される暗号文cを求める暗号化手段を備える
ことを特徴とする暗号化装置。
【請求項10】
前記代数的トーラスの位数は、素数であり、
前記暗号化手段は、前記判定手段の判定結果が肯定的である場合、前記公開鍵を用いて前記平文msgを暗号化して、アフィン空間F_{p^m}×F_{p^m}^*上の要素の組で表現される暗号文cを求める
ことを特徴とする請求項9に記載の暗号化装置。
【請求項11】
前記代数的トーラスの位数は、合成数であり、
前記判定手段は、
前記ベクトル成分が、アフィン表現F_{p^m}×F_{p^m}^*であるか否か判定するアフィン表現判定手段と、
前記アフィン表現判定手段の判定結果が肯定的である場合、アフィン表現を射影表現に写像し、前記ベクトル成分を射影表現に写像し、射影表現による演算で
msg^(q) = 1
を満たすか否か判定することにより、位数qの部分群である素数位数部分群Gの元であるか否か判定する部分群上元判定手段とを有し、
前記暗号化手段は、前記部分群上元判定手段の判定結果が肯定的である場合、前記公開鍵を用いて前記平文msgを暗号化して、アフィン空間F_{p^m}×F_{p^m}^*上の要素の組で表現される暗号文cを求める
ことを特徴とする請求項9に記載の暗号化装置。
【請求項12】
前記代数的トーラスの位数は、合成数であり、
前記判定手段は、
前記ベクトル成分が、アフィン表現F_{p^m}×F_{p^m}^*であるか否か判定するアフィン表現判定手段と、
前記アフィン表現判定手段の判定結果が肯定的である場合、アフィン表現を拡大体表現に写像し、前記ベクトル成分を拡大体表現に写像し、拡大体表現による演算で
msg^(q) = 1
を満たすか否か判定することにより、位数qの部分群である素数位数部分群Gの元であるか否か判定する部分群上元判定手段とを有し、
前記暗号化手段は、前記部分群上元判定手段の判定結果が肯定的である場合、前記公開鍵を用いて前記平文msgを暗号化して、アフィン空間F_{p^m}×F_{p^m}^*上の要素の組で表現される暗号文cを求める
ことを特徴とする請求項9に記載の暗号化装置。
【請求項13】
前記暗号化手段は、前記部分群上元判定手段の判定結果が肯定的である場合、前記部分群上元判定手段が前記ベクトル成分から射影表現に写像する際に得た表現を用いて、前記平文msgを暗号化して、アフィン空間F_{p^m}×F_{p^m}^*上の要素の組で表現される暗号文cを求める
ことを特徴とする請求項11に記載の暗号化装置。
【請求項14】
前記暗号化手段は、前記部分群上元判定手段の判定結果が肯定的である場合、前記部分群上元判定手段が前記ベクトル成分から拡大体表現に写像する際に得た表現を用いて、前記平文msgを暗号化して、アフィン空間F_{p^m}×F_{p^m}^*上の要素の組で表現される暗号文cを求める
ことを特徴とする請求項12に記載の暗号化装置。
【請求項15】
前記取得手段は、前記平文msgと、前記代数的トーラス上で暗号が定義される群Gの位数qと、前記群Gの生成元gと、前記群Gの少なくとも1つの元とを含む公開鍵と取得し、
前記暗号化手段は、前記判定手段の判定結果が肯定的である場合、乱数と、前記平文msgと、前記生成元g及び前記少なくとも1つの元とを用いた計算を行うことにより、前記平文msgを暗号化して、アフィン空間F_{p^m}×F_{p^m}^*上の要素の組で表現される暗号文cを求める
ことを特徴とする請求項9乃至14のいずれか一項に記載の暗号化装置。
【請求項16】
F_{p^m}(^:べき乗)の6次拡大体上の代数的トーラス上の元であり拡大体表現{{0,・・・,p-1}^(6*m)}(p:素数、m:自然数)で表現された平文msgを暗号化する暗号化装置であって、
暗号化の対象である平文msgと、公開鍵とを取得する取得手段と、
前記平文msgが、
{0,…,p-1}^(6*m)に含まれるか否かと、msg^(p^(2*m)-p^(m)+1)=1
を満たすか否かとを判定することにより、前記代数的トーラス上の元であるか否か判定する判定手段と、
前記判定手段の判定結果に基づいて、前記公開鍵を用いて前記平文msgを暗号化して、前記代数的トーラス上の元の組で表現される暗号文cを求める暗号化手段と、
前記暗号文cの各元を、圧縮写像によりアフィン表現F_{p^m} ×F_{p^m}^*に写像する圧縮手段とを備える
ことを特徴とする暗号化装置。
【請求項17】
前記代数的トーラスの位数は、素数であり、
前記暗号化手段は、前記判定手段の判定結果が肯定的である場合、前記公開鍵を用いて前記平文msgを暗号化して、前記代数的トーラス上の元の組で表現される暗号文cを求める
ことを特徴とする請求項16に記載の暗号化装置。
【請求項18】
前記代数的トーラスの位数は、合成数であり、
前記判定手段は、
前記平文msgが、
{0,…,p-1}^(6*m)に含まれるか否かを判定することにより、前記6次拡大体上の元であるか否かを判定する拡大体上元判定手段と、
前記拡大体上元判定手段の判定結果が肯定的である場合、‘p^(2*m)-p^(m)+1’を割り切るようなqに対して、F_{p^m}の6次拡大体上の演算で
msg^(q) = 1
を満たすか否かを判定することにより、前記平文msgが、代数的トーラス上の位数qの部分群である素数位数部分群Gの元であるか否か判定する部分群上元判定手段とを有し、
前記暗号化手段は、前記部分群上元判定手段の判定結果が肯定的である場合、前記公開鍵を用いて前記平文msgを暗号化して、前記代数的トーラス上の元の組で表現される暗号文cを求める
ことを特徴とする請求項16に記載の暗号化装置。
【請求項19】
前記代数的トーラスの位数は、合成数であり、
前記判定手段は、
前記平文msgが、
{0,…,p-1}^(6*m)に含まれるか否かを判定することにより、前記6次拡大体上の元であるか否かを判定する拡大体上元判定手段と、
前記拡大体上元判定手段の判定結果が肯定的である場合、‘p^(2*m)-p^(m)+1’を割り切るような素数qに対して、射影表現による演算で
msg^(q) = 1
を満たすか否かを判定することにより、前記平文msgが、代数的トーラス上の位数qの部分群である素数位数部分群Gの元であるか否か判定する部分群上元判定手段とを有し、
前記暗号化手段は、前記部分群上元判定手段の判定結果が肯定的である場合、前記公開鍵を用いて前記平文msgを暗号化して、前記代数的トーラス上の元の組で表現される暗号文cを求める
ことを特徴とする請求項16に記載の暗号化装置。
【請求項20】
前記暗号化手段は、前記部分群上元判定手段の判定結果が肯定的である場合、前記部分群上元判定手段が前記ベクトル成分から射影表現に写像する際に得た表現を用いて、前記平文msgを暗号化して、前記代数的トーラス上の元の組で表現される暗号文cを求める
ことを特徴とする請求項19に記載の暗号化装置。
【請求項21】
前記取得手段は、前記平文msgと、前記代数的トーラス上で暗号が定義される群Gの位数qと、前記群Gの生成元gと、前記群Gの少なくとも1つの元とを含む公開鍵と取得し、
前記暗号化手段は、前記判定手段の判定結果が肯定的である場合、乱数と、前記平文msgと、前記生成元g及び前記少なくとも1つの元とを用いた計算を行うことにより、前記平文msgを暗号化して、前記代数的トーラス上の元の組で表現される暗号文cを求める
ことを特徴とする請求項16乃至20のいずれか一項に記載の暗号化装置。
【請求項22】
F_{p^m}の6次拡大体(p:素数、m:自然数)上の代数的トーラス上の元でありアフィン表現F_{p^m}×F_{p^m}^*、(^:べき乗)で表現された平文msgを暗号化する暗号化装置と、前記暗号化装置とネットワークを介して接続される復号装置であって復号の対象である平文を含んで暗号化され、アフィン表現F_{p^m}×F_{p^m}^*で表現された暗号文を復号する復号装置とを備える暗号通信システムであって、
前記暗号化装置は、
暗号化の対象である平文msgと、公開鍵とを取得する取得手段と、
前記平文msgが、
アフィン表現F_{p^m}×F_{p^m}^*であるか否か判定することにより、前記代数的トーラス上の元であるか否か判定する判定手段と、
前記判定手段の判定結果に基づいて、前記公開鍵を用いて前記平文msgを暗号化して、前記代数的トーラス上の元の組で表現される暗号文cを求める暗号化手段と、
前記暗号文cの各元を、圧縮写像によりアフィン表現 F_{p^m}×F_{p^m}^*に写像する圧縮手段とを備え、
前記復号装置は、
ベクトル形式により表現される暗号文と、公開鍵に対応する秘密鍵とを取得する取得手段と、
前記暗号文に含まれるベクトル成分が、アフィン表現 F_{p^m}×F_{p^m}^*であるか否か判定する判定手段と、
前記判定手段の判定結果に基づいて、前記ベクトル成分を、伸長写像により前記代数的トーラス上の各元に写像する伸長手段と、
前記代数的トーラス上の各元に写像された前記暗号文に含まれる前記平文を、前記秘密鍵を用いて復号する復号手段とを備える
ことを特徴とする暗号通信システム。
【請求項23】
F_{p^m}の6次拡大体上の代数的トーラス上の元であり拡大体表現{0,…,p-1}^(6*m)(p:素数、m:自然数、^:べき乗)で表現された平文msgを暗号化する暗号化装置と、前記暗号化装置とネットワークを介して接続される復号装置であって復号の対象である平文を含んで暗号化され、アフィン表現F_{p^m}×F_{p^m}^*で表現された暗号文を復号する復号装置とを備える暗号通信システムであって、
前記暗号化装置は、
暗号化の対象である平文msgと、公開鍵とを取得する取得手段と、
前記平文msgが、
{0,…,p-1}^(6*m)に含まれるか否かと、msg^(p^(2*m)-p^(m)+1)=1
を満たすか否かとを判定することにより、前記代数的トーラス上の元であるか否か判定する判定手段と、
前記判定手段の判定結果に基づいて、前記公開鍵を用いて前記平文msgを暗号化して、前記代数的トーラス上の元の組で表現される暗号文cを求める暗号化手段と、
前記暗号文cの各元を、圧縮写像によりアフィン表現 F_{p^m}×F_{p^m}^*に写像する圧縮手段とを備え、
前記復号装置は、
ベクトル形式により表現される暗号文と、公開鍵に対応する秘密鍵とを取得する取得手段と、
前記暗号文に含まれるベクトル成分が、アフィン表現 F_{p^m}×F_{p^m}^*であるか否か判定する判定手段と、
前記判定手段の判定結果に基づいて、前記ベクトル成分を、伸長写像により前記代数的トーラス上の各元に写像する伸長手段と、
前記代数的トーラス上の各元に写像された前記暗号文に含まれる前記平文を、前記秘密鍵を用いて復号する復号手段とを備える
ことを特徴とする暗号通信システム。
【請求項24】
F_{p^m}(^:べき乗)の6次拡大体上の代数的トーラス上の元でありアフィン表現F_{p^m}×F_{p^m}^*(p:素数、m:自然数)で表現された平文msgを暗号化する暗号化装置で実行される暗号化方法であって、
暗号化の対象であってベクトル形式により表現される平文msgと、公開鍵とを取得する取得ステップと、
前記平文msgに含まれるベクトル成分が、アフィン表現 F_{p^m}×F_{p^m}^*であるか否か判定する判定ステップと、
前記判定ステップの判定結果に基づいて、前記公開鍵を用いて前記平文msgを暗号化して、アフィン空間F_{p^m}×F_{p^m}^*上の要素の組で表現される暗号文cを求める暗号化ステップとを含む
ことを特徴とする暗号化方法。
【請求項25】
F_{p^m}(^:べき乗)の6次拡大体上の代数的トーラス上の元であり拡大体表現{0,…,p-1}^(6*m)(p:素数、m:自然数)で表現された平文msgを暗号化する暗号化装置で実行される暗号化方法であって、
暗号化の対象である平文msgと、公開鍵とを取得する取得ステップと、
前記平文msgが、
{0,…,p-1}^(6*m)に含まれるか否かと、msg^(p^(2*m)-p^(m)+1)=1
を満たすか否かとを判定することにより、前記代数的トーラス上の元であるか否か判定する判定ステップと、
前記判定ステップの判定結果に基づいて、前記公開鍵を用いて前記平文msgを暗号化して、前記代数的トーラス上の元の組で表現される暗号文cを求める暗号化ステップと、
前記暗号文cの各元を、圧縮写像によりアフィン表現 F_{p^m}×F_{p^m}^*に写像する圧縮ステップとを含む
ことを特徴とする暗号化方法。
【請求項26】
復号の対象である平文を含んで暗号化され、アフィン表現F_{p^m}×F_{p^m}^*(p:素数、m:自然数、^:べき乗)で表現された暗号文を復号する復号装置で実行される復号方法であって、
ベクトル形式により表現される暗号文と、公開鍵に対応する秘密鍵とを取得する取得ステップと、
前記暗号文に含まれるベクトル成分が、アフィン表現 F_{p^m}×F_{p^m}^*であるか否か判定する判定ステップと、
前記判定手段の判定結果に基づいて、前記ベクトル成分を、伸長写像により前記代数的トーラス上の各元に写像する伸長ステップと、
前記代数的トーラス上の各元に写像された前記暗号文に含まれる前記平文を、前記秘密鍵を用いて復号する復号ステップとを含む
ことを特徴とする復号方法。
【請求項27】
請求項24乃至26のいずれか一項に記載の方法をコンピュータに実行させることを特徴とするプログラム。

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


【公開番号】特開2010−49213(P2010−49213A)
【公開日】平成22年3月4日(2010.3.4)
【国際特許分類】
【出願番号】特願2008−216015(P2008−216015)
【出願日】平成20年8月25日(2008.8.25)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】