JP2007171412A - 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム - Google Patents
鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム Download PDFInfo
- Publication number
- JP2007171412A JP2007171412A JP2005367021A JP2005367021A JP2007171412A JP 2007171412 A JP2007171412 A JP 2007171412A JP 2005367021 A JP2005367021 A JP 2005367021A JP 2005367021 A JP2005367021 A JP 2005367021A JP 2007171412 A JP2007171412 A JP 2007171412A
- Authority
- JP
- Japan
- Prior art keywords
- integer
- calculating
- key
- encryption
- rational
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
【解決手段】素数冪の積である合成数Nを法とした既約剰余類群(Z/NZ)×の部分巡回群において乗法型ナップザック暗号を構成する。あるいは、代数体Kの整数環ZKにおける複数の素イデアルの積νを法とした既約剰余類群(ZK/ν)×の巡回部分群において乗法型ナップザック暗号を構成する。
【選択図】図10
Description
このように、素数冪の積である合成数Nを法とした、既約剰余類群(Z/NZ)×の部分巡回群において乗法型ナップザック暗号を構成する。
このように、代数体Kの整数環ZKにおける複数の素イデアルの積νを法とした、既約剰余類群(ZK/ν)×の巡回部分群において乗法型ナップザック暗号を構成する。
また、この点に関する文献として、参考文献1を挙げることができる。
(参考文献1) H. Cohen, "A Course in Computational Algebraic Number Theory", GTM 138, Springer-Verlag, 1993.
本発明の第1実施形態を、図面を参照して説明する。
ここでは、第1実施形態の各装置(鍵生成装置、暗号化装置、復号化装置)の構成および処理、各装置で構成する乗法型ナップザック暗号システム、そのシステムにおける処理を叙述的に説明する。
第1実施形態における乗法型ナップザック暗号システムは、必要に応じて「鍵生成装置」「暗号化装置」「復号化装置」の各装置で構成される。
なお、第1実施形態では、下記の処理に係わる集合が有理整数環であることに留意しなければならない(第1実施形態で、「整数」とは「有理整数」を意味する。)。
(ハードウェア構成並びにハードウェア資源とソフトウェアとの協働による情報処理の実現)
図1は、鍵生成装置(1)のハードウェア構成を例示した構成ブロック図である。図1に例示するように、鍵生成装置(1)は、キーボードやポインティングデバイスなどの入力手段が接続可能な入力部(11)、液晶ディスプレイなどの出力手段が接続可能な出力部(12)、鍵生成装置(1)外部に通信可能な通信装置(例えば通信ケーブルなど。)が接続可能な通信部(13)、CPU(Central Processing Unit)(14)〔キャッシュメモリなどを備えていてもよい。〕、メモリであるRAM(15)、ROM(16)やハードディスクである外部記憶装置(17)並びにこれらの入力部(11)、出力部(12)、通信部(13)、CPU(14)、RAM(15)、ROM(16)、外部記憶装置(17)間のデータのやり取りが可能なように接続するバス(18)を備えている。また必要に応じて、鍵生成装置(1)に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
また、これらのプログラムの処理において必要となるデータとして、正の整数nおよびk(但し、n>kとする。)、合成数Nを与える素数冪qj(1≦j≦s)が予め外部記憶装置(17)に保存記憶されているとする。なお、これらのデータは、予め鍵生成装置(1)の外部記憶装置(17)に保存記憶しておくのではなく、例えば、入力部(11)から入力されるとしてもよいし、あるいは、これらのデータを格納した記録媒体からドライブを駆動して読み込むようにしてもよく、適宜に変更可能である。
次に、図2および図3を参照して、鍵生成装置(1)における鍵生成処理の流れを叙述的に説明する。
なお、素数冪とは素数の冪乗を表し、冪数が1の場合も含むとする。
次に、合成数算出部(141)が、RAM(15)から素数冪qj(1≦j≦s)を読み込み、式(1)に従った演算を行って合成数Nを算出し、この算出した合成数NをRAM(15)の所定の格納領域に格納する。
次に、生成元算出部(142)が、RAM(15)から素数冪qj(1≦j≦s)を読み込み、全てのj(1≦j≦s)について既約剰余類群(Z/qjZ)×の生成元となる(合成数Nを法とする)整数gを算出して、この算出した整数gをRAM(15)の所定の格納領域に格納する。
この整数gの算出は、公知の方法によって可能であり、例えば次のような方法による。即ち、まず、既約剰余類群(Z/q1Z)×の生成元となる整数g1、既約剰余類群(Z/q2Z)×の生成元となる整数g2、…、既約剰余類群(Z/qsZ)×の生成元となる整数gsをそれぞれの既約剰余類群ごとに総当りで求め、次いで、これらの整数g1、g2、…、gsに対して中国人剰余定理を適用して整数gを求めればよい。
より具体的に説明すると、中国人剰余定理に拠れば、互いに素な各qj(1≦j≦s)について、g≡g1(mod q1)、g≡g2(mod q2)、・・・、g≡gs(mod qs)なる連立方程式を満たす整数gがN=Πj=1 sqj〔式(1)〕を法として一意に決まるので、全てのj(1≦j≦s)について既約剰余類群(Z/qjZ)×の生成元となる(合成数Nを法とする)整数gを算出できる〔この場合、整数gは法qjに関するgjの類に一致する。〕。
次に、秘密鍵集合算出部(143)が、RAM(15)から正の整数nおよびk、合成数Nを読み込み、以下の条件を満たす、互いに素である元の集合{p1,p2,・・・,pn}を生成して、この集合{p1,p2,・・・,pn}をRAM(15)の所定の格納領域に格納する。この集合{p1,p2,・・・,pn}が秘密鍵集合である。
・条件(a):各pi(1≦i≦n)は合成数Nと互いに素である。
・条件(b):集合{p1,p2,・・・,pn}の部分集合であり、要素数がkである任意の部分集合{ph1,ph2,…,phk}が、式(2)を満たす。
また、条件(b)は、後述の復号化処理において復号の一意性を保証するための条件である。但し、式(2)は、後述する暗号化処理において平文Mを数え上げ符号方式でビット列に変換する場合に対応したものであり、例えば平文Mをパワーライン符号方式で自然数列に変換する場合には当該方式に適応した条件式になることに留意しなければならない。
いずれの符号変換方式でも満たすべき条件(b)は、式(3)で表すことができる〔式(3)は、パワーライン符号方式における条件式でもある。〕。
次に、ナップザック生成因子算出部(144)が、RAM(15)から合成数N、整数g、秘密鍵集合{p1,p2,・・・,pn}を読み込み、式(4)を満たす整数ai(1≦i≦n)を算出し、この算出した整数ai(1≦i≦n)をRAM(15)の所定の格納領域に格納する。この整数ai(1≦i≦n)がナップザック生成因子である。
しかし、合成数Nの素因子qjが或る程度小さい場合(現在の技術水準では上限400ビット程度であるが、例えば64ビット〜256ビット程度でよい。)には、容易に整数aiを求めることが可能である。例えば、各i(1≦i≦n)について、以下の処理を行えばよい。
各j(1≦j≦s)について、式(5)を満たす整数ai,jを計算する。素因子qjが短いビット長の素数冪であれば、ai,jを求めるためには、数体ふるい法やPollardのρと呼ばれる方式(モンテカルロ法)を用いることによって、容易に計算することが可能である。
次に、乱数生成部(145)が、乱数dを生成して、この生成した乱数dをRAM(15)の所定の格納領域に格納する。
次に、ナップザック生成部(146)が、RAM(15)から乱数d、整数ai(1≦i≦n)を読み込み、各i(1≦i≦n)について、整数aiに乱数dを加算して整数bi〔1≦i≦n〕を算出し、この算出されたbiをRAM(15)の所定の格納領域に格納する。このbi(1≦i≦n)がナップザックである。
ここで、「整数aiに乱数dを加算して整数bi〔1≦i≦n〕を算出」する具体的な方法としては、例えば、bi=ai+dを演算して行う。なお、ナップザックであるbi(1≦i≦n)の算出方法は、bi=ai+dなる演算に限定されるものではない。要はナップザックとして利用可能なn個の元の集合を生成できればよく、例えば次のような方法でナップザックを生成してもよい。即ち、ナップザック生成部(146)が、RAM(15)から乱数d、整数ai(1≦i≦n)、合成数Nを読み込み、各i(1≦i≦n)について、bi=ai+d mod φ(N)を演算してbiを算出し、この算出されたbiをRAM(15)の所定の格納領域に格納する。
以上の処理を経てRAM(15)に格納されている合成数N、正の整数k、整数g、乱数dおよび秘密鍵集合{p1,p2,・・・,pn}が秘密鍵となり、ナップザックbi(1≦i≦n)、正の整数nおよびkが公開鍵となる。なお、公開鍵のうちnについてはナップザックbi(1≦i≦n)の個数から得られるから、nを公開鍵に含めることは必須ではない。本明細書では、説明の便宜上、このnを含めて公開鍵とする。
制御部(140)は、通信部(13)を制御して、公開鍵(n,k,b1,b2,・・・,bn)を暗号化装置に送信し、秘密鍵(N,k,g,d,p1,p2,・・・,pn)を復号化装置に送信する。なお、少なくとも秘密鍵を送信する通信路は安全性が保証されたものであることが望ましい。なお、鍵生成装置(1)が復号化装置を兼ねる場合には、秘密鍵を送信する必要がない。また、公開鍵を暗号化装置に送信するのではなく、例えば公開鍵登録サーバ装置などに送信して、公開鍵登録サーバ装置がこれにアクセスした暗号化装置に公開鍵を送信する構成としてもよい。結局のところ、秘密鍵が安全に復号化装置に供給されること、公開鍵が暗号化装置に供給されること、の2点を満たせば、その供給方法に限定はない。
(ハードウェア構成並びにハードウェア資源とソフトウェアとの協働による情報処理の実現)
図4は、暗号化装置(2)のハードウェア構成を例示した構成ブロック図である。図4に例示するように、暗号化装置(2)は、キーボードやポインティングデバイスなどの入力手段が接続可能な入力部(21)、液晶ディスプレイなどの出力手段が接続可能な出力部(22)、暗号化装置(2)外部に通信可能な通信装置(例えば通信ケーブルなど。)が接続可能な通信部(23)、CPU(Central Processing Unit)(24)〔キャッシュメモリなどを備えていてもよい。〕、メモリであるRAM(25)、ROM(26)やハードディスクである外部記憶装置(27)並びにこれらの入力部(21)、出力部(22)、通信部(23)、CPU(24)、RAM(25)、ROM(26)、外部記憶装置(27)間のデータのやり取りが可能なように接続するバス(28)を備えている。また必要に応じて、暗号化装置(2)に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
また、これらのプログラムの処理において必要となるデータとして、平文M、公開鍵(n,k,b1,b2,・・・,bn)が予め外部記憶装置(27)に保存記憶されているとする。なお、平文Mは、予め暗号化装置(2)の外部記憶装置(27)に保存記憶しておくのではなく、例えば、入力部(21)から入力されるとしてもよいし、あるいは、これらのデータを格納した記録媒体からドライブを駆動して読み込むようにしてもよく、適宜に変更可能である。また、公開鍵(n,k,b1,b2,・・・,bn)は、暗号化装置(2)の通信部(23)によって、鍵生成装置(1)から受信して外部記憶装置(27)に保存記憶されたものである。
次に、図5および図6を参照して、暗号化装置(2)における暗号化処理の流れを叙述的に説明する。
次に、符号変換部(241)が、RAM(25)から平文M、公開鍵nおよびkを読み込み、平文Mを、長さnビット、ハミング(Hamming)重みkの符号列m=(m1,m2,・・・,mn)に変換し、変換された平文をRAM(25)の所定の格納領域に格納する。
ここで、平文Mのビット長は、┗log2 nCk┛ビットとする(後述の数え上げ符号方式の場合に相当する。)。また、mi(1≦i≦n)∈{0,1}、Σi=1 nmi=kである。つまり、ビット列mの中では、値1のものがk個、値0のものがn−k個である。
なお、記号┗*┛は、*を超えない最大の整数を表し、nCkは、n個のものからk個のものを取り出す組み合わせの総数(いわゆる二項係数に相当する。)を表す。
(参考文献2) T. M. Cover, "Enumerable source encoding", IEEE Trans. Inform. Theory, vol.IT-19, pp.73-77, 1973.
(参考文献3) P. Camion, H. Chabanne, "On the Powerline system", AAECC, vo1 9, pp.405-432, Springer-Verlag, 1999.
次に、暗号化部(242)が、RAM(25)からビット列m、公開鍵b1,b2,・・・,bnを読み込み、c=Σi=1 nmibiなる演算を行って暗号文cを算出し、この算出した暗号文cをRAM(25)の所定の格納領域に格納する。
制御部(240)は、通信部(23)を制御して、RAM(25)に格納されている暗号文cを復号化装置に送信する。
(ハードウェア構成並びにハードウェア資源とソフトウェアとの協働による情報処理の実現)
図7は、復号化装置(3)のハードウェア構成を例示した構成ブロック図である。図7に例示するように、復号化装置(3)は、キーボードやポインティングデバイスなどの入力手段が接続可能な入力部(31)、液晶ディスプレイなどの出力手段が接続可能な出力部(32)、復号化装置(3)外部に通信可能な通信装置(例えば通信ケーブルなど。)が接続可能な通信部(33)、CPU(Central Processing Unit)(34)〔キャッシュメモリなどを備えていてもよい。〕、メモリであるRAM(35)、ROM(36)やハードディスクである外部記憶装置(37)並びにこれらの入力部(31)、出力部(32)、通信部(33)、CPU(34)、RAM(35)、ROM(36)、外部記憶装置(37)間のデータのやり取りが可能なように接続するバス(38)を備えている。また必要に応じて、復号化装置(3)に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
また、これらのプログラムの処理において必要となるデータとして、秘密鍵(N,k,g,d,p1,p2,・・・,pn)、暗号文cが予め外部記憶装置(37)に保存記憶されているとする。秘密鍵(N,k,g,d,p1,p2,・・・,pn)は、復号化装置(3)の通信部(33)によって、鍵生成装置(1)から受信して外部記憶装置(37)に保存記憶されたものである。また、暗号文cは、復号化装置(3)の通信部(33)によって、暗号化装置(2)から受信して外部記憶装置(37)に保存記憶されたものである。なお、これらのデータを格納した記録媒体からドライブを駆動して読み込むようにしてもよく、適宜に変更可能である。
次に、図8および図9を参照して、復号化装置(3)における復号化処理の流れを叙述的に説明する。
次に、指数算出部(341)が、RAM(35)から暗号文c、秘密鍵kおよびdを読み込み、r=c−kdなる演算を行って指数rを算出し、この算出した指数rをRAM(35)の所定の格納領域に格納する。
なお、ここで指数rの算出方法は、鍵生成装置(1)における鍵生成処理のステップS17に対応しており、ナップザックbi(1≦i≦n)をbi=ai+dなる演算をして算出した場合には、r=c−kdなる演算を行って指数rを算出するが、例えばナップザックbi(1≦i≦n)をbi=ai+d mod φ(N)を演算して算出した場合には、r=c−kd mod φ(N)なる演算を行って指数rを算出することに留意しなければならない。
次に、冪乗剰余演算部(342)が、RAM(35)から指数r、秘密鍵Nおよびgを読み込み、u=gr mod Nなる演算を行って冪乗剰余演算結果uを算出し、この算出した冪乗剰余演算結果uをRAM(35)の所定の格納領域に格納する。
次に、符号列再生部(343)が、RAM(35)から冪乗剰余演算結果u、秘密鍵p1,p2,・・・,pnを読み込み、各i(1≦i≦n)について、冪乗剰余演算結果uを秘密鍵piで除し、冪乗剰余演算結果uが秘密鍵piで割り切れる場合にはmi=1とし、冪乗剰余演算結果uが秘密鍵piで割り切れない場合にはmi=0として、符号列(ビット列)m=(m1,m2,・・・,mn)を求める。そして、符号列再生部(343)は、求めた符号列(ビット列)m=(m1,m2,・・・,mn)をRAM(35)の所定の格納領域に格納する。
鍵生成処理のステップS17において、ナップザックbi(1≦i≦n)をbi=ai+dなる演算をして算出した場合に対応して、ステップS32において、r=c−kdなる演算を行って指数rを算出した場合で説明すると、r=c−kdなる演算は、次のような演算であることを意味する。即ち、r=Σi=1 nmibi−kd=Σi=1 nmi(ai+d)−kd=Σi=1 nmiai+d×Σi=1 nmi−kd=Σi=1 nmiai+kd−kd=Σi=1 nmiaiである(∵Σi=1 nmi=k)。
従って冪乗剰余演算は、u=gr mod N=g^(Σi=1 nmiai) mod N=g^(m1a1)×g^(m2a2)×・・・×g^(mnan) mod Nとなる〔但し、記号^は冪乗を表す。〕。ここで式(4)および秘密鍵集合{p1,p2,・・・,pn}のどの2つの元も互いに素であることに留意すれば、冪乗剰余演算結果uが秘密鍵piで割り切れる場合とは、冪乗剰余演算結果uがg^aiを素因子として有していることに他ならず、さらに、mi(1≦i≦n)∈{0,1}であることに留意すれば、mi=1であることが判明する。一方、冪乗剰余演算結果uが秘密鍵piで割り切れない場合とは、冪乗剰余演算結果uがg^aiを素因子として有していないことに他ならず、さらに、mi(1≦i≦n)∈{0,1}であることに留意すれば、mi=0であることが判明する。
次に、復号化部(344)が、RAM(35)から符号列(ビット列)m=(m1,m2,・・・,mn)を読み込み、暗号化装置(2)における暗号化処理のステップS22と対応した逆変換を行い(参考文献2参照。)、平文Mを復元してこれをRAM(35)の所定の格納領域に格納する。
第1実施形態の乗法型ナップザック暗号システムは、種々のシステム構成が考えられ、ここでは代表的な2形態について説明する。
乗法型ナップザック暗号システム(1000)は、上記鍵生成装置(1)、暗号化装置(2)、復号化装置(3)、公開鍵登録サーバ装置(4)で構成される。図10は、乗法型ナップザック暗号システム(1000)の構成例を示す図である。
まず、鍵生成装置(1)が公開鍵および秘密鍵を生成する(ステップS100)。ステップS100の具体的な処理は、上記ステップS12〜S17を参照のこと。次に、鍵生成装置(1)の通信部(13)が、公開鍵登録サーバ装置(4)に公開鍵を送信する(ステップS101)。そして公開鍵登録サーバ装置(4)の通信部(図示しない。)が、鍵生成装置(1)から公開鍵を受信する(ステップS102)。また、鍵生成装置(1)の通信部(13)が、復号化装置(3)に秘密鍵を送信する(ステップS103)。そして復号化装置(3)の通信部(33)が、鍵生成装置(1)から秘密鍵を受信する(ステップS104)。暗号化装置(2)は、暗号化装置(2)の通信部(23)によって公開鍵登録サーバ装置(4)にアクセスし、公開鍵を取得する(ステップS105)。次いで、暗号化装置(2)は、平文Mおよび公開鍵を用いて暗号文cを生成する(ステップS106)。ステップS106の具体的な処理は、上記ステップS22、S23を参照のこと。そして、暗号化装置(2)の通信部(23)は、復号化装置(3)に暗号文cを送信する(ステップS107)。復号化装置(3)の通信部(33)は、暗号化装置(2)から暗号文cを受信する(ステップS108)。復号化装置(3)は、秘密鍵を用いて暗号文cから平文Mを得る(ステップS109)。ステップS109の具体的な処理は、上記ステップS32〜S35を参照のこと。
なお、乗法型ナップザック暗号システム(1000)が公開鍵登録サーバ装置(4)を備えない場合は、ステップS101、S102は不要となり、ステップS105の処理は、暗号化装置(2)が、暗号化装置(2)の通信部(23)によって鍵生成装置(1)にアクセスし、公開鍵を取得するものとなる。
乗法型ナップザック暗号システム(1001)は、上記暗号化装置(2)、鍵生成装置を兼ねる復号化装置(3’)で構成される。図12は、乗法型ナップザック暗号システム(1001)の構成例を示す図である。
まず、鍵生成装置兼復号化装置(3’)が公開鍵および秘密鍵を生成する(ステップS200)。ステップS200の具体的な処理は、上記ステップS12〜S17を参照のこと。次に、鍵生成装置兼復号化装置(3’)の通信部が、暗号化装置(2)に公開鍵を送信する(ステップS201)。暗号化装置(2)は、鍵生成装置兼復号化装置(3’)から公開鍵を受信する(ステップS202)。次いで、暗号化装置(2)は、平文Mおよび公開鍵を用いて暗号文cを生成する(ステップS203)。ステップS203の具体的な処理は、上記ステップS22、S23を参照のこと。そして、暗号化装置(2)の通信部(23)は、鍵生成装置兼復号化装置(3’)に暗号文cを送信する(ステップS204)。鍵生成装置兼復号化装置(3’)の通信部は、暗号化装置(2)から暗号文cを受信する(ステップS205)。鍵生成装置兼復号化装置(3’)は、秘密鍵を用いて暗号文cから平文Mを得る(ステップS206)。ステップS206の具体的な処理は、上記ステップS32〜S35を参照のこと。
本発明の第2実施形態を、図面を参照して説明する。なお、第1実施形態に対応するハードウェア構成要素などについては、同一参照符号を付けるなどして重複説明を省略する。
以下では、Kを代数体、ZKをその整数環とする。また、「整数」とはZKの要素を表し、「有理整数」は、有理整数集合Zの要素を表す。
(ハードウェア構成並びにハードウェア資源とソフトウェアとの協働による情報処理の実現)
第2実施形態に係わる鍵生成装置(1s)のハードウェア構成・資源は、第1実施形態の鍵生成装置(1)と同様である(図1参照。)。
また、これらのプログラムの処理において必要となるデータとして、正の有理整数n、kおよびf(但し、n>kとする。)が予め鍵生成装置(1s)の外部記憶装置(17)に保存記憶されているとする。なお、これらのデータは、予め鍵生成装置(1s)の外部記憶装置(17)に保存記憶しておくのではなく、例えば、鍵生成装置(1s)の入力部(11)から入力されるとしてもよいし、あるいは、これらのデータを格納した記録媒体からドライブを駆動して読み込むようにしてもよく、適宜に変更可能である。
次に、図14および図15を参照して、鍵生成装置(1s)における鍵生成処理の流れを叙述的に説明する。
次に、制御部(140s)が、RAM(15)から正の有理整数fを読み込み、f次代数体として代数体Kを、さらに、式(7)で表される代数体Kの整数環ZKのイデアルνを設定する。そして制御部(140s)は、代数体Kおよびイデアルνの設定に必要な情報(例えばf次有理係数多項式などである。)をRAM(15)の所定の格納領域に格納する。なお、式(7)のτj(1≦j≦s)はどの2つのノルムも互いに素な素イデアルである。また、制御部(140s)は、剰余環ZK/νの完全代表系を1つ固定し、その集合をR(ν)として設定して、R(ν)をRAM(15)の所定の格納領域に格納する。
f次代数体は、モニック(monic)な有理整数係数f次既約多項式F(x)=xf+cf−1xf−1+・・・+c1x+c0〔cは有理整数係数〕として設定される。f次代数体の元は、次数がf次未満の有理数係数多項式として表される。また、整数環やイデアルは、有理整数環上の基底ω1、ω2、・・・、ωf〔ωはf次未満の有理数係数多項式〕によって表される(整数環やイデアルは、Zω1+Zω2+・・・+Zωfと表すことができるため。但し、Zは有理整数集合。)。
次に、生成元算出部(142s)が、全てのj(1≦j≦s)について既約剰余類群(ZK/τj)×の生成元となる(イデアルνを法とする)整数gを算出して、この算出した整数gをRAM(15)の所定の格納領域に格納する。
この整数gの算出は、公知の方法によって可能であり、例えば次のような方法による。即ち、まず、既約剰余類群(ZK/τ1)×の生成元となる整数g1、既約剰余類群(ZK/τ2)×の生成元となる整数g2、…、既約剰余類群(ZK/τs)×の生成元となる整数gsをそれぞれの既約剰余類群ごとに総当りで求め、これらの整数g1、g2、…、gsに対して中国人剰余定理を適用して整数gを求めればよい。詳細は第1実施形態で述べたとおりであるが、第2実施形態では法がイデアルνであることに留意しなければならない。
ここで、代数体のイデアルνを法とする合同式a≡b(mod ν)は、(a−b)∈νを意味する。
次に、秘密鍵集合算出部(143s)が、RAM(15)から正の有理整数nおよびkを読み込み、以下の条件を満たす、各ノルムが互いに素である元の集合{p1,p2,・・・,pn}⊂ZKを生成して、この集合{p1,p2,・・・,pn}⊂ZKをRAM(15)の所定の格納領域に格納する。この集合{p1,p2,・・・,pn}⊂ZKが秘密鍵集合である。
・条件(c):各整数pi(1≦i≦n)のノルムはイデアルνのノルムと互いに素である。
・条件(d):集合{p1,p2,・・・,pn}の部分集合であり、要素数がkである任意の部分集合{ph1,ph2,…,phk}が、式(8)を満たす。
また、条件(d)は、復号化処理において復号の一意性を保証するための条件である。但し、式(8)は、暗号化処理において平文Mを数え上げ符号方式でビット列に変換する場合に対応したものであり、例えば平文Mをパワーライン符号方式で自然数列に変換する場合には当該方式に適応した条件式になることに留意しなければならない。
・条件(e):集合{p1,p2,・・・,pn}の部分集合であり、要素数がkである任意の部分集合{ph1,ph2,…,phk}が、式(9)を満たす。
次に、ナップザック生成因子算出部(144s)が、RAM(15)から整数g、秘密鍵集合{p1,p2,・・・,pn}を読み込み、式(10)を満たす有理整数ai(1≦i≦n)を算出し、この算出した有理整数ai(1≦i≦n)をRAM(15)の所定の格納領域に格納する。この有理整数ai(1≦i≦n)がナップザック生成因子である。
しかし、τjのノルムが或る程度小さい(現在の技術水準では上限400ビット程度であるが、例えば64ビット〜256ビット程度でよい。)素イデアルのノルムの冪となるようにイデアルνを選択することによって、容易に有理整数aiを求めることが可能である。例えば、各i(1≦i≦n)について、以下の処理を行えばよい。
各j(1≦j≦s)について、式(11)を満たす有理整数ai,jを計算する。素イデアルτjのノルムが短いビット長の素数冪であれば、ai,jを求めるためには、数体ふるい法やPollardのρと呼ばれる方式(モンテカルロ法)を用いることによって、容易に計算することが可能である。
次に、乱数生成部(145s)が、有理整数である乱数dを生成して、この生成した乱数dをRAM(15)の所定の格納領域に格納する。
次に、ナップザック生成部(146s)が、RAM(15)から乱数d、有理整数ai(1≦i≦n)を読み込み、各i(1≦i≦n)について、有理整数aiに乱数dを加算して有理整数bi〔1≦i≦n〕を算出し、この算出されたbiをRAM(15)の所定の格納領域に格納する。このbi(1≦i≦n)がナップザックである。
ここで、「有理整数aiに乱数dを加算して有理整数bi〔1≦i≦n〕を算出」する具体的な方法としては、例えば、bi=ai+dを演算して行う。なお、ナップザックであるbi(1≦i≦n)の算出方法は、bi=ai+dなる演算に限定されるものではない。要はナップザックとして利用可能なn個の元の集合を生成できればよく、例えば次のような方法でナップザックを生成してもよい。即ち、ナップザック生成部(146s)が、RAM(15)から乱数d、有理整数ai(1≦i≦n)を読み込み、各i(1≦i≦n)について、bi=ai+d mod Πj=1 s(N(τj)−1)を演算してbiを算出し、この算出されたbiをRAM(15)の所定の格納領域に格納する。
以上の処理を経てRAM(15)に格納されている正の有理整数k、整数g、乱数d、秘密鍵集合{p1,p2,・・・,pn}、代数体Kおよびイデアルνを設定するための情報が秘密鍵となり、ナップザックbi(1≦i≦n)、正の有理整数nおよびkが公開鍵となる。なお、公開鍵のうちnについてはナップザックbi(1≦i≦n)の個数から得られるから、nを公開鍵に含めることは必須ではない。本明細書では、説明の便宜上、このnを含めて公開鍵とする。また、秘密鍵のうち代数体Kを設定するための情報については、既述のとおり、代数体Kを設定するための情報を予め復号化装置に保存記憶しておく場合には、秘密鍵に含めることは必須ではない。本明細書では、説明の便宜上、代数体Kを設定するための情報を含めて秘密鍵とする。以下、代数体Kおよびイデアルνを設定するための情報を単に記号K、νで表す。
制御部(140s)は、通信部(13)を制御して、公開鍵(n,k,b1,b2,・・・,bn)を暗号化装置に送信し、秘密鍵(K,ν,g,k,d,p1,p2,・・・,pn)を復号化装置に送信する。なお、少なくとも秘密鍵を送信する通信路は安全性が保証されたものであることが望ましい。なお、鍵生成装置(1s)が復号化装置を兼ねる場合には、秘密鍵を送信する必要がない。また、公開鍵を暗号化装置に送信するのではなく、例えば公開鍵登録サーバ装置などに送信して、公開鍵登録サーバ装置がこれにアクセスした暗号化装置に公開鍵を送信する構成としてもよい。結局のところ、秘密鍵が安全に復号化装置に供給されること、公開鍵が暗号化装置に供給されること、の2点を満たせば、その供給方法に限定はない。
第2実施形態に係わる暗号化装置(2s)のハードウェア構成・資源は、第1実施形態の暗号化装置(2)と同様であり、また、暗号化装置(2s)における暗号化処理も第1実施形態の暗号化処理と同様であるから、第1実施形態における暗号化装置(2)および暗号化処理の説明を援用し、第2実施形態における暗号化装置(2s)および暗号化処理の説明を省略する(図4、5、6参照。)。なお、暗号化装置(2s)の暗号化処理に用いる公開鍵は、鍵生成装置(1s)によって生成された公開鍵(n,k,b1,b2,・・・,bn)であり、暗号化装置(2s)の通信部によって、鍵生成装置(1s)から受信して外部記憶装置(27)に保存記憶されたものである。また、第2実施形態においても、数え上げ符号方式によって平文Mを符号化してビット長n、ハミング重みkのビット列mを生成するとする。
(ハードウェア構成並びにハードウェア資源とソフトウェアとの協働による情報処理の実現)
第2実施形態に係わる復号化装置(3s)のハードウェア構成・資源や機能構成並びにプログラムは、第1実施形態の復号化装置(3)と同様である(図7参照。)。
次に、図16および図17を参照して、復号化装置(3s)における復号化処理の流れを叙述的に説明する。
なお、下記の復号化処理では、秘密鍵Kを明示的に用いていないが、これは秘密鍵として代数体Kが不要という趣旨ではない。一般的に、(代数)体Kは、既約多項式F(x)によって規定される。そして、(代数)体Kの元はxの多項式として表されるものの、xの多項式のみでは(代数)体Kの元を表現することができないので、(代数)体Kの情報が必要になる(上記PARI/GPでは、体Kの元は、xの多項式を既約多項式F(x)で除した余りとして表される。)。つまり、下記の復号化処理は、代数体Kにおける演算として行われる。
次に、指数算出部(341s)が、RAM(35)から暗号文c、秘密鍵kおよびdを読み込み、r=c−kdなる演算を行って指数rを算出し、この算出した指数rをRAM(35)の所定の格納領域に格納する。
なお、ここで指数rの算出方法は、鍵生成装置(1s)における鍵生成処理のステップS17sに対応しており、ナップザックbi(1≦i≦n)をbi=ai+dなる演算をして算出した場合には、r=c−kdなる演算を行って指数rを算出するが、例えばナップザックbi(1≦i≦n)をbi=ai+d mod Πj=1 s(N(τj)−1)を演算して算出した場合には、r=c−kd mod Πj=1 s(N(τj)−1)なる演算を行って指数rを算出することに留意しなければならない。
次に、冪乗剰余演算部(342s)が、RAM(35)から指数r、秘密鍵νおよびgを読み込み、u=gr mod νなる演算を行って冪乗剰余演算結果uを算出し、この算出した冪乗剰余演算結果uをRAM(35)の所定の格納領域に格納する。
次に、符号列再生部(343s)が、RAM(35)から冪乗剰余演算結果u、秘密鍵p1,p2,・・・,pnを読み込み、各i(1≦i≦n)について、冪乗剰余演算結果uを秘密鍵piで除し、冪乗剰余演算結果uが秘密鍵piで割り切れる場合にはmi=1とし、冪乗剰余演算結果uが秘密鍵piで割り切れない場合にはmi=0として、符号列(ビット列)m=(m1,m2,・・・,mn)を求める。そして、符号列再生部(343s)は、求めた符号列(ビット列)m=(m1,m2,・・・,mn)をRAM(35)の所定の格納領域に格納する。
鍵生成処理のステップS17sにおいて、ナップザックbi(1≦i≦n)をbi=ai+dなる演算をして算出した場合に対応して、ステップS32sにおいて、r=c−kdなる演算を行って指数rを算出した場合で説明すると、r=c−kdなる演算は、次のような演算であることを意味する。即ち、r=Σi=1 nmibi−kd=Σi=1 nmi(ai+d)−kd=Σi=1 nmiai+d×Σi=1 nmi−kd=Σi=1 nmiai+kd−kd=Σi=1 nmiaiである(∵Σi=1 nmi=k)。
従って冪乗剰余演算は、u=gr mod N=g^Σi=1 nmiai mod ν=g^(m1a1)×g^(m2a2)×・・・×g^(mnan) mod νとなる。ここで式(10)および秘密鍵集合{p1,p2,・・・,pn}のどの2つの元も互いに素であることに留意すれば、冪乗剰余演算結果uが秘密鍵piで割り切れる場合とは、冪乗剰余演算結果uがg^aiを素因子として有していることに他ならず、さらに、mi(1≦i≦n)∈{0,1}であることに留意すれば、mi=1であることが判明する。一方、冪乗剰余演算結果uが秘密鍵piで割り切れない場合とは、冪乗剰余演算結果uがg^aiを素因子として有していないことに他ならず、さらに、mi(1≦i≦n)∈{0,1}であることに留意すれば、mi=0であることが判明する。
次に、復号化部(344s)が、RAM(35)から符号列(ビット列)m=(m1,m2,・・・,mn)を読み込み、暗号化装置(2s)における暗号化処理と対応した逆変換を行い(参考文献2参照。)、平文Mを復元してこれをRAM(35)の所定の格納領域に格納する。
第2実施形態の乗法型ナップザック暗号システムは、システムを構成する物理的実体が鍵生成装置(1)→鍵生成装置(1s)、暗号化装置(2)→暗号化装置(2s)、復号化装置(3)→復号化装置(3s)に変更(これは上記システムその1に相当する場合であり、上記システムその2に相当する場合も同様である。)となる以外は、第1実施形態と同様のシステム構成であり、また当該システムでの処理も第1実施形態と同様であるから、第1実施形態における乗法型ナップザック暗号システムおよびその処理の説明を援用し、第2実施形態における乗法型ナップザック暗号システムおよびその処理の説明を省略する(図10〜図13参照。)。
○実装の容易性・演算速度について。
第1実施形態では、各処理に係わる集合が有理整数環であるため、各処理に係わる集合を代数体の整数環とする第2実施形態の場合に比して、既存の計算機を本発明の鍵生成装置などとして機能させることが比較的容易であり、また、比較的高速に演算処理が行える。
○安全性について。
第1実施形態の場合は、秘密鍵は(N,k,g,d,p1,p2,・・・,pn)であるところ、公開鍵であるb1,b2,・・・,bnからNおよびdのビット長の上限を得ることができる。ここで、Nおよびdのビット長から推測される秘密鍵の総数は有限である。従って、“理論的には”秘密鍵を推測できないわけではない(実際は、実時間で推測困難になるように合成数Nのビット長などを設定する。)。
第2実施形態の場合は、秘密鍵は(K,ν,g,d,p1,p2,・・・,pn)であるところ、公開鍵であるb1,b2,・・・,bnからイデアルνのノルムおよびdのビット長の上限を得ることができる。しかし、代数体Kは、(次数fを固定したとしても)無限に構成することができ、単なる整数であるb1,b2,・・・,bnから代数体Kの情報を得ることはできない。このことは、代数体Kを秘密鍵に含めない場合でも同様である。代数体Kが不明であると、イデアルνやp1,p2,・・・,pnの決定が極めて困難であり、秘密鍵(K,ν,g,d,p1,p2,・・・,pn)を推測できる可能性は無いと言っても過言ではない。従って、第2実施形態の場合は、第1実施形態に比して安全性が高いものとなっている。
本発明である上記各装置は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記各装置において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
1s 鍵生成装置
2 暗号化装置
3 復号化装置
3’ 鍵生成装置兼復号化装置
3s 復号化装置
4 公開鍵登録サーバ装置
5 ネットワーク
140 制御部
140s 制御部
141 合成数算出部
142 生成元算出部
142s 生成元算出部
143 秘密鍵集合算出部
143s 秘密鍵集合算出部
144 ナップザック生成因子算出部
144s ナップザック生成因子算出部
145 乱数生成部
145s 乱数生成部
146 ナップザック生成部
146s ナップザック生成部
241 符号変換部
242 暗号化部
341 指数算出部
341s 指数算出部
342 冪乗剰余演算部
342s 冪乗剰余演算部
343 符号再生部
343s 符号再生部
344 復号化部
344s 復号化部
1000 乗法型ナップザック暗号システム
1001 乗法型ナップザック暗号システム
Claims (13)
- s個の素数冪qj〔1≦j≦s〕、正の有理整数nおよびkを記憶する記憶手段と、
s個の素数冪qj〔1≦j≦s〕の積を演算して合成数Nを算出する合成数算出手段と、
各既約剰余類群(Z/qjZ)×〔1≦j≦s〕の生成元となる有理整数gを算出する生成元算出手段と、
どの2つも互いに素である有理整数pi〔1≦i≦n;但し、各有理整数piは合成数Nと互いに素である。〕を算出する秘密鍵集合算出手段と、
各i〔1≦i≦n〕に対してgai≡pi(mod N)を満たす有理整数aiを算出するナップザック生成因子算出手段と、
乱数dを生成して、これを出力する乱数生成手段と、
各有理整数ai〔1≦i≦n〕に乱数dを加算して有理整数bi〔1≦i≦n〕を生成するナップザック生成手段と
を備え、
公開鍵は少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕、
秘密鍵は合成数N、正の有理整数k、有理整数g、乱数d、有理整数pi〔1≦i≦n〕である
ことを特徴とする鍵生成装置。 - 請求項1に記載の鍵生成装置によって生成された公開鍵(少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕)および平文Mを記憶する記憶手段と、
平文を符号列に変換し(符号変換)、符号列を平文に変換する(逆符号変換)ことが可能な符号変換方式によって、平文Mを長さn、重みkの符号列m={mi}〔1≦i≦n;但し、Σi=1 nmi=kとする。〕に変換する符号変換手段と、
符号列miおよび公開鍵biから暗号文c=Σi=1 nmibiを生成する暗号化手段と
を備えたことを特徴とする暗号化装置。 - 請求項1に記載の鍵生成装置によって生成された秘密鍵(合成数N、有理整数g、乱数d、有理整数pi〔1≦i≦n〕)および暗号文cを記憶する記憶手段と、
暗号文cから秘密鍵kと秘密鍵dとの積を減算して指数rを算出する指数算出手段と、
指数r、秘密鍵gおよびNからu≡gr(mod N)を演算した冪乗剰余演算結果uを算出する冪乗剰余演算手段と、
冪乗剰余演算結果uを各秘密鍵pi〔1≦i≦n〕で除し、割り切れた場合と割り切れなかった場合とでそれぞれ異なる符号値wiを与え、符号列w={wi}〔1≦i≦n〕を算出する符号再生手段と、
請求項2に記載の暗号化装置における符号変換手段で用いた符号変換方式によって、符号列wを平文に変換してこの平文を出力する復号化手段と
を備えたことを特徴とする復号化装置。 - 鍵生成装置、暗号化装置および復号化装置がそれぞれデータ送信可能に接続され、
鍵生成装置は、
s個の素数冪qj〔1≦j≦s〕、正の有理整数nおよびkを記憶する記憶手段と、
s個の素数冪qj〔1≦j≦s〕の積を演算して合成数Nを算出する合成数算出手段と、
各既約剰余類群(Z/qjZ)×〔1≦j≦s〕の生成元となる有理整数gを算出する生成元算出手段と、
どの2つも互いに素である有理整数pi〔1≦i≦n;但し、各有理整数piは合成数Nと互いに素である。〕を算出する秘密鍵集合算出手段と、
各i〔1≦i≦n〕に対してgai≡pi(mod N)を満たす有理整数aiを算出するナップザック生成因子算出手段と、
乱数dを生成して、これを出力する乱数生成手段と、
各有理整数ai〔1≦i≦n〕に乱数dを加算して有理整数bi〔1≦i≦n〕を生成するナップザック生成手段と、
公開鍵は少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕、秘密鍵は合成数N、正の有理整数k、有理整数g、乱数d、有理整数pi〔1≦i≦n〕であるとして、
公開鍵を暗号化装置に送信可能な対暗号化装置送信手段と、
秘密鍵を復号化装置に送信可能な対復号化装置送信手段とを備え、
暗号化装置は、
鍵生成装置から公開鍵を受信可能な対鍵生成装置受信手段と、
暗号化装置の対鍵生成装置受信手段によって受信した公開鍵(少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕)および平文Mを記憶する記憶手段と、
平文を符号列に変換し(符号変換)、符号列を平文に変換する(逆符号変換)ことが可能な符号変換方式によって、平文Mを長さn、重みkの符号列m={mi}〔1≦i≦n;但し、Σi=1 nmi=kとする。〕に変換する符号変換手段と、
符号列miおよび公開鍵biから暗号文c=Σi=1 nmibiを生成する暗号化手段と、
暗号文cを復号化装置に送信可能な対復号化装置送信手段とを備え、
復号化装置は、
鍵生成装置から秘密鍵を受信可能な対鍵生成装置受信手段と、
暗号文cを暗号化装置から受信可能な対暗号化装置受信手段と、
復号化装置の対鍵生成装置受信手段によって受信した秘密鍵(合成数N、有理整数g、乱数d、有理整数pi〔1≦i≦n〕)および復号化装置の対暗号化装置受信手段によって受信した暗号文cを記憶する記憶手段と、
暗号文cから秘密鍵kと秘密鍵dとの積を減算して指数rを算出する指数算出手段と、
指数r、秘密鍵gおよびNからu≡gr(mod N)を演算した冪乗剰余演算結果uを算出する冪乗剰余演算手段と、
冪乗剰余演算結果uを各秘密鍵pi〔1≦i≦n〕で除し、割り切れた場合と割り切れなかった場合とでそれぞれ異なる符号値wiを与え、符号列w={wi}〔1≦i≦n〕を算出する符号再生手段と、
上記暗号化装置における符号変換手段で用いた符号変換方式によって、符号列wを平文に変換してこの平文を出力する復号化手段とを備えた
ことを特徴とする乗法型ナップザック暗号システム。 - 鍵生成装置、暗号化装置および復号化装置がそれぞれデータ送信可能に接続され、
鍵生成装置の記憶手段には、s個の素数冪qj〔1≦j≦s〕、正の有理整数nおよびkが記憶されており、
暗号化装置の記憶手段には、平文Mが記憶されており、
鍵生成装置の合成数算出手段が、s個の素数冪qj〔1≦j≦s〕の積を演算して合成数Nを算出する合成数算出ステップと、
鍵生成装置の生成元算出手段が、各既約剰余類群(Z/qjZ)×〔1≦j≦s〕の生成元となる有理整数gを算出する生成元算出ステップと、
鍵生成装置の秘密鍵集合算出手段が、どの2つも互いに素である有理整数pi〔1≦i≦n;但し、各有理整数piは合成数Nと互いに素である。〕を算出する秘密鍵集合算出ステップと、
鍵生成装置のナップザック生成因子算出手段が、各i〔1≦i≦n〕に対してgai≡pi(mod N)を満たす有理整数aiを算出するナップザック生成因子算出ステップと、
鍵生成装置の乱数生成手段が、乱数dを生成して、これを出力する乱数生成ステップと、
鍵生成装置のナップザック生成手段が、各有理整数ai〔1≦i≦n〕に乱数dを加算して有理整数bi〔1≦i≦n〕を生成するナップザック生成ステップと、
公開鍵は少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕、秘密鍵は合成数N、正の有理整数k、有理整数g、乱数d、有理整数pi〔1≦i≦n〕であるとして、
鍵生成装置の対暗号化装置送信手段が、公開鍵を暗号化装置に送信可能な対暗号化装置送信ステップと、
鍵生成装置の対復号化装置送信手段が、秘密鍵を復号化装置に送信可能な対復号化装置送信ステップと、
暗号化装置の対鍵生成装置受信手段が、鍵生成装置から公開鍵を受信する対鍵生成装置受信ステップと、
暗号化装置の符号変換手段が、平文を符号列に変換し(符号変換)、符号列を平文に変換する(逆符号変換)ことが可能な符号変換方式によって、平文Mを長さn、重みkの符号列m={mi}〔1≦i≦n;但し、Σi=1 nmi=kとする。〕に変換する符号変換ステップと、
暗号化装置の暗号化手段が、符号列miおよび公開鍵biから暗号文c=Σi=1 nmibiを生成する暗号化手段と、
暗号化装置の対復号化装置送信手段が、暗号文cを復号化装置に送信する対復号化装置送信ステップと、
復号化装置の対鍵生成装置受信手段が、鍵生成装置から秘密鍵を受信する対鍵生成装置受信ステップと、
復号化装置の対暗号化装置受信手段が、暗号文cを暗号化装置から受信する対暗号化装置受信ステップと、
復号化装置の指数算出手段が、暗号文cから秘密鍵kと秘密鍵dとの積を減算して指数rを算出する指数算出ステップと、
復号化装置の冪乗剰余演算手段が、指数r、秘密鍵gおよびNからu≡gr(mod N)を演算した冪乗剰余演算結果uを算出する冪乗剰余演算ステップと、
復号化装置の符号再生手段が、冪乗剰余演算結果uを各秘密鍵pi〔1≦i≦n〕で除し、割り切れた場合と割り切れなかった場合とでそれぞれ異なる符号値wiを与え、符号列w={wi}〔1≦i≦n〕を算出する符号再生ステップと、
復号化装置の復号化手段が、上記符号変換ステップで用いた符号変換方式によって、符号列wを平文に変換してこの平文を出力する復号化ステップとを有する
ことを特徴とする乗法型ナップザック暗号復号方法。 - 正の有理整数n、kを記憶する記憶手段と、
少なくとも代数体Kの整数環ZKのイデアルνを設定する基底設定手段と、
各既約剰余類群(ZK/τj)×〔1≦j≦s;τjはイデアルνを構成するどの2つのノルムも互いに素な素イデアルである。〕の生成元となる整数環ZKの整数gを算出する生成元算出手段と、
どの2つのノルムも互いに素である整数環ZKの整数pi〔1≦i≦n;但し、各有理整数piのノルムはイデアルνのノルムと互いに素である。〕を算出する秘密鍵集合算出手段と、
各i〔1≦i≦n〕に対してgai≡pi(mod ν)を満たす有理整数aiを算出するナップザック生成因子算出手段と、
乱数dを生成して、これを出力する乱数生成手段と、
各有理整数ai〔1≦i≦n〕に乱数dを加算して有理整数bi〔1≦i≦n〕を生成するナップザック生成手段と
を備え、
公開鍵は少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕、
秘密鍵は少なくともイデアルν、正の有理整数k、整数環ZKの整数g、乱数d、整数環ZKの整数pi〔1≦i≦n〕である
ことを特徴とする鍵生成装置。 - 請求項6に記載の鍵生成装置によって生成された公開鍵(少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕)および平文Mを記憶する記憶手段と、
平文を符号列に変換し(符号変換)、符号列を平文に変換する(逆符号変換)ことが可能な符号変換方式によって、平文Mを長さn、重みkの符号列m={mi}〔1≦i≦n;但し、Σi=1 nmi=kとする。〕に変換する符号変換手段と、
符号列miおよび公開鍵biから暗号文c=Σi=1 nmibiを生成する暗号化手段と
を備えたことを特徴とする暗号化装置。 - 請求項6に記載の鍵生成装置によって生成された秘密鍵(少なくともイデアルν、正の有理整数k、整数環ZKの整数g、乱数d、整数環ZKの整数pi〔1≦i≦n〕)および暗号文cを記憶する記憶手段と、
暗号文cから秘密鍵kと秘密鍵dとの積を減算して指数rを算出する指数算出手段と、
指数r、秘密鍵gおよびνからu≡gr(mod ν)を演算した冪乗剰余演算結果uを算出する冪乗剰余演算手段と、
冪乗剰余演算結果uを各秘密鍵pi〔1≦i≦n〕で除し、割り切れた場合と割り切れなかった場合とでそれぞれ異なる符号値wiを与え、符号列w={wi}〔1≦i≦n〕を算出する符号再生手段と、
請求項7に記載の暗号化装置における符号変換手段で用いた符号変換方式によって、符号列wを平文に変換してこの平文を出力する復号化手段と
を備えたことを特徴とする復号化装置。 - 鍵生成装置、暗号化装置および復号化装置がそれぞれデータ送信可能に接続され、
鍵生成装置は、
正の有理整数n、kを記憶する記憶手段と、
少なくとも代数体Kの整数環ZKのイデアルνを設定する基底設定手段と、
各既約剰余類群(ZK/τj)×〔1≦j≦s;τjはイデアルνを構成するどの2つのノルムも互いに素な素イデアルである。〕の生成元となる整数環ZKの整数gを算出する生成元算出手段と、
どの2つのノルムも互いに素である整数環ZKの整数pi〔1≦i≦n;但し、各整数piのノルムはイデアルνのノルムと互いに素である。〕を算出する秘密鍵集合算出手段と、
各i〔1≦i≦n〕に対してgai≡pi(mod ν)を満たす有理整数aiを算出するナップザック生成因子算出手段と、
乱数dを生成して、これを出力する乱数生成手段と、
各有理整数ai〔1≦i≦n〕に乱数dを加算して有理整数bi〔1≦i≦n〕を生成するナップザック生成手段と、
公開鍵は少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕、秘密鍵は少なくともイデアルν、正の有理整数k、整数環ZKの整数g、乱数d、整数環ZKの整数pi〔1≦i≦n〕であるとして、
公開鍵を暗号化装置に送信可能な対暗号化装置送信手段と、
秘密鍵を復号化装置に送信可能な対復号化装置送信手段とを備え、
暗号化装置は、
鍵生成装置から公開鍵を受信可能な対鍵生成装置受信手段と、
暗号化装置の対鍵生成装置受信手段によって受信した公開鍵(少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕)および平文Mを記憶する記憶手段と、
平文を符号列に変換し(符号変換)、符号列を平文に変換する(逆符号変換)ことが可能な符号変換方式によって、平文Mを長さn、重みkの符号列m={mi}〔1≦i≦n;但し、Σi=1 nmi=kとする。〕に変換する符号変換手段と、
符号列miおよび公開鍵biから暗号文c=Σi=1 nmibiを生成する暗号化手段と、
暗号文cを復号化装置に送信可能な対復号化装置送信手段とを備え、
復号化装置は、
鍵生成装置から秘密鍵を受信可能な対鍵生成装置受信手段と、
暗号文cを暗号化装置から受信可能な対暗号化装置受信手段と、
復号化装置の対鍵生成装置受信手段によって受信した秘密鍵(少なくともイデアルν、正の有理整数k、整数環ZKの整数g、乱数d、整数環ZKの整数pi〔1≦i≦n〕)および復号化装置の対暗号化装置受信手段によって受信した暗号文cを記憶する記憶手段と、
暗号文cから秘密鍵kと秘密鍵dとの積を減算して指数rを算出する指数算出手段と、
指数r、秘密鍵gおよびνからu≡gr(mod ν)を演算した冪乗剰余演算結果uを算出する冪乗剰余演算手段と、
冪乗剰余演算結果uを各秘密鍵pi〔1≦i≦n〕で除し、割り切れた場合と割り切れなかった場合とでそれぞれ異なる符号値wiを与え、符号列w={wi}〔1≦i≦n〕を算出する符号再生手段と、
上記暗号化装置における符号変換手段で用いた符号変換方式によって、符号列wを平文に変換してこの平文を出力する復号化手段とを備えた
ことを特徴とする乗法型ナップザック暗号システム。 - 鍵生成装置、暗号化装置および復号化装置がそれぞれデータ送信可能に接続され、
鍵生成装置の記憶手段には、正の有理整数n、kが記憶されており、
暗号化装置の記憶手段には、平文Mが記憶されており、
鍵生成装置の基底設定手段が、少なくとも代数体Kの整数環ZKのイデアルνを設定する基底設定ステップと、
鍵生成装置の生成元算出手段が、各既約剰余類群(ZK/τj)×〔1≦j≦s;τjはイデアルνを構成するどの2つのノルムも異なる素イデアルである。〕の生成元となる整数環ZKの整数gを算出する生成元算出ステップと、
鍵生成装置の秘密鍵集合算出手段が、どの2つのノルムも互いに素である整数環ZKの整数pi〔1≦i≦n;但し、各整数piのノルムはイデアルνのノルムと互いに素である。〕を算出する秘密鍵集合算出ステップと、
鍵生成装置のナップザック生成因子算出手段が、各i〔1≦i≦n〕に対してgai≡pi(mod ν)を満たす有理整数aiを算出するナップザック生成因子算出ステップと、
鍵生成装置の乱数生成手段が、乱数dを生成して、これを出力する乱数生成ステップと、
鍵生成装置のナップザック生成手段が、各有理整数ai〔1≦i≦n〕に乱数dを加算して有理整数bi〔1≦i≦n〕を生成するナップザック生成ステップと、
公開鍵は少なくとも正の有理整数k、有理整数bi〔1≦i≦n〕、秘密鍵は少なくともイデアルν、正の有理整数k、整数環ZKの整数g、乱数d、整数環ZKの整数pi〔1≦i≦n〕であるとして、
鍵生成装置の対暗号化装置送信手段が、公開鍵を暗号化装置に送信可能な対暗号化装置送信ステップと、
鍵生成装置の対復号化装置送信手段が、秘密鍵を復号化装置に送信可能な対復号化装置送信ステップと、
暗号化装置の対鍵生成装置受信手段が、鍵生成装置から公開鍵を受信する対鍵生成装置受信ステップと、
暗号化装置の符号変換手段が、平文を符号列に変換し(符号変換)、符号列を平文に変換する(逆符号変換)ことが可能な符号変換方式によって、平文Mを長さn、重みkの符号列m={mi}〔1≦i≦n;但し、Σi=1 nmi=kとする。〕に変換する符号変換ステップと、
暗号化装置の暗号化手段が、符号列miおよび公開鍵biから暗号文c=Σi=1 nmibiを生成する暗号化手段と、
暗号化装置の対復号化装置送信手段が、暗号文cを復号化装置に送信する対復号化装置送信ステップと、
復号化装置の対鍵生成装置受信手段が、鍵生成装置から秘密鍵を受信する対鍵生成装置受信ステップと、
復号化装置の対暗号化装置受信手段が、暗号文cを暗号化装置から受信する対暗号化装置受信ステップと、
復号化装置の指数算出手段が、暗号文cから秘密鍵kと秘密鍵dとの積を減算して指数rを算出する指数算出ステップと、
復号化装置の冪乗剰余演算手段が、指数r、秘密鍵gおよびνからu≡gr(mod ν)を演算した冪乗剰余演算結果uを算出する冪乗剰余演算ステップと、
復号化装置の符号再生手段が、冪乗剰余演算結果uを各秘密鍵pi〔1≦i≦n〕で除し、割り切れた場合と割り切れなかった場合とでそれぞれ異なる符号値wiを与え、符号列w={wi}〔1≦i≦n〕を算出する符号再生ステップと、
復号化装置の復号化手段が、上記符号変換ステップで用いた符号変換方式によって、符号列wを平文に変換してこの平文を出力する復号化ステップとを有する
ことを特徴とする乗法型ナップザック暗号復号方法。 - 請求項1または請求項6に記載された鍵生成装置としてコンピュータを機能させるための鍵生成プログラム。
- 請求項2または請求項7に記載された暗号化装置としてコンピュータを機能させるための暗号化プログラム。
- 請求項3または請求項8に記載された復号化装置としてコンピュータを機能させるための復号化プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005367021A JP4685621B2 (ja) | 2005-12-20 | 2005-12-20 | 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005367021A JP4685621B2 (ja) | 2005-12-20 | 2005-12-20 | 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007171412A true JP2007171412A (ja) | 2007-07-05 |
JP4685621B2 JP4685621B2 (ja) | 2011-05-18 |
Family
ID=38298084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005367021A Active JP4685621B2 (ja) | 2005-12-20 | 2005-12-20 | 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4685621B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013228763A (ja) * | 2013-08-14 | 2013-11-07 | Nippon Telegr & Teleph Corp <Ntt> | 離散対数計算装置、事前計算装置、離散対数計算方法、事前計算方法、プログラム |
CN114095151A (zh) * | 2020-07-31 | 2022-02-25 | 马上消费金融股份有限公司 | 一种加解密方法、认证方法、装置、设备和存储介质 |
CN114245917A (zh) * | 2019-08-14 | 2022-03-25 | 日本电信电话株式会社 | 秘密归一化指数函数计算***、秘密归一化指数函数计算装置、秘密归一化指数函数计算方法、秘密神经网络计算***、秘密神经网络学习***、程序 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002215024A (ja) * | 2001-01-18 | 2002-07-31 | Nippon Telegr & Teleph Corp <Ntt> | ナップサック型公開鍵暗号システム、その公開鍵生成方法、その装置、そのプログラム、及びその記録媒体 |
-
2005
- 2005-12-20 JP JP2005367021A patent/JP4685621B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002215024A (ja) * | 2001-01-18 | 2002-07-31 | Nippon Telegr & Teleph Corp <Ntt> | ナップサック型公開鍵暗号システム、その公開鍵生成方法、その装置、そのプログラム、及びその記録媒体 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013228763A (ja) * | 2013-08-14 | 2013-11-07 | Nippon Telegr & Teleph Corp <Ntt> | 離散対数計算装置、事前計算装置、離散対数計算方法、事前計算方法、プログラム |
CN114245917A (zh) * | 2019-08-14 | 2022-03-25 | 日本电信电话株式会社 | 秘密归一化指数函数计算***、秘密归一化指数函数计算装置、秘密归一化指数函数计算方法、秘密神经网络计算***、秘密神经网络学习***、程序 |
CN114245917B (zh) * | 2019-08-14 | 2023-12-05 | 日本电信电话株式会社 | 秘密归一化指数函数计算***、装置、方法以及记录介质 |
CN114095151A (zh) * | 2020-07-31 | 2022-02-25 | 马上消费金融股份有限公司 | 一种加解密方法、认证方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP4685621B2 (ja) | 2011-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7049374B2 (ja) | 同型暗号化を行う端末装置と、その暗号文を処理するサーバ装置及びその方法 | |
KR101965628B1 (ko) | 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들 | |
JP4879951B2 (ja) | セキュリティ強化のための転置データ変換 | |
KR102019159B1 (ko) | 정수 기반 준동형 암호 기법에 일반적으로 적용 가능한 압축 암복호화 장치 및 방법 | |
JP6363032B2 (ja) | 鍵付替え方向制御システムおよび鍵付替え方向制御方法 | |
KR20050087815A (ko) | 키공유 시스템, 공유키 생성장치 및 공유키 복원장치 | |
CN102187617B (zh) | 密码*** | |
JP2011164607A (ja) | シンボルシーケンスの編集距離のプライバシーを保護した計算の方法およびシステム | |
US20070121933A1 (en) | Information transfer system, encryption device, and decryption device | |
Gupta et al. | Session key based novel lightweight image encryption algorithm using a hybrid of Chebyshev chaotic map and crossover | |
JP2010049213A (ja) | 暗号化装置、復号装置、暗号通信システム、方法及びプログラム | |
JP2006311383A (ja) | データ管理方法、データ管理システムおよびデータ管理装置 | |
JP4685621B2 (ja) | 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム | |
JP2001255814A (ja) | 復号方法、復号装置、及び復号プログラムの記録媒体 | |
JP7125857B2 (ja) | 暗号化システム、暗号化装置、復号装置、暗号化方法、復号方法、及びプログラム | |
JP5469618B2 (ja) | 暗号化システム、復号方法、鍵更新方法、鍵生成装置、受信装置、代理計算装置、プログラム | |
JP2011040932A (ja) | 認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体 | |
JP5713947B2 (ja) | プロキシ暗号システム,プロキシ暗号方法,委託装置,プロキシ装置 | |
JP5038866B2 (ja) | 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム | |
JP5679344B2 (ja) | 署名鍵難読化システム、署名鍵難読化方法、難読化された署名鍵を用いた暗号化署名システム、難読化された署名鍵を用いた暗号化署名方法とプログラム | |
KR101133988B1 (ko) | 해쉬 트리 기반의 스트림 암호화 및 복호화 방법과 암호 파일 시스템 | |
Dhamodharan et al. | Multifarious mapping schemes on Elliptic curve cryptography for IoT security | |
WO2023242955A1 (ja) | 秘匿情報処理システム、秘匿情報処理方法、及び秘匿情報処理プログラム | |
JP6885325B2 (ja) | 暗号化装置、復号装置、暗号化方法、復号方法、プログラム | |
Singh et al. | Security of Data with 3DES & Watermarking Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080128 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110201 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110210 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140218 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4685621 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |