JP2007171411A - パラメータ生成装置、暗号鍵生成装置、それらの方法及びプログラム - Google Patents
パラメータ生成装置、暗号鍵生成装置、それらの方法及びプログラム Download PDFInfo
- Publication number
- JP2007171411A JP2007171411A JP2005367020A JP2005367020A JP2007171411A JP 2007171411 A JP2007171411 A JP 2007171411A JP 2005367020 A JP2005367020 A JP 2005367020A JP 2005367020 A JP2005367020 A JP 2005367020A JP 2007171411 A JP2007171411 A JP 2007171411A
- Authority
- JP
- Japan
- Prior art keywords
- integer
- prime
- unit
- generator
- memory
- 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
【解決手段】素数冪生成部111が、全てのv,w(1≦v<w≦s)に対してgcd(φ(qv),φ(qw))=2となる素数冪qj(j=1,...,s)を生成し、生成元生成部112が、全てのjについて、g mod qjが、素数冪qjと互いに素な0以上qj未満の整数集合〔Zqj ×(下付添え字のqjはqjを示す)〕の生成元となる当該整数gを生成する。そして、合成数生成部113が、素数冪生成部111で生成された全ての素数冪qjの積である合成数N〔N=Πj=1 sqj〕を算出する。
【選択図】図2
Description
OTU暗号は、長期的に安全性を保証できることを期待できる公開鍵暗号方式であるが、鍵生成の過程において、素体上の離散対数問題を複数計算する必要がある。素体上の離散対数問題とは、素数pとx,g∈Zp ×が与えられたときに、
x≡ga(mod p) …(1)
を満たす整数aを計算する問題である。なお、Zp ×は、pと互いに素な0以上p未満の整数の集合を意味する。OTU暗号の場合、上記の式(1)におけるgは固定となり、さらにxはpに比べて十分小さい整数になる。
T. Okamoto, K. Tanaka, S. Uchiyama "Quantum Public-Key Cryptosystem", LNCS 1880, pp 147-165, Springer-Verlag, 2000
OTU暗号の鍵生成方式では、g∈ZN ×を1つ固定して、gを生成元とする巡回群<g>に含まれる十分小さな整数xを用意する必要がある(なお、ZN ×は、0以上N未満であってNと互いに素な整数の集合を意味する。)。ところが、どのようなg∈ZN ×を選択しても、任意に選択した整数xがx∈<g>となる確率は低い。これは、ZN ×が巡回群でないことに起因する。例えば、N=Πj=1 sqj(qjは素数の冪乗である素数冪)とおいた場合、(ZN ×の位数)/(<g>の位数)≧2s−1であるため、任意に選択した整数xがx∈<g>となる確率は1/2s−1以下となる。そして、選択した整数xが巡回群<g>に含まれなかった場合、整数xを選択し直さなければならない。そのため、x∈<g>となる整数xを用意する場合、この整数xの選択し直しを平均2s−1回以上行わなければならない。
1.各j(j=1,...,s)に対して、
x≡gaj(mod qj) …(2)
なる整数ajを求める。ただし、式(2)の上付き添え字のajは、ajを示す。
2.すべてのv,w(1≦v<w≦sを満たす自然数)について
av≡aw(mod gcd(φ(qv),φ(qw))) …(3)
が成立しているか判定する。なお、gcd(α,β)は、αとβとの最大公約数を示す。また、φ(α)は、1からαまでの正整数でαと互いに素となるものの個数を示すオイラー関数である。αが素数rをf乗した素数冪α=rfである場合、φ(α)=α(1-1/r)となる。
以上のように、この判定手順を1回実行するためには、式(2)の離散対数の解を求めるための演算をs回行わなければならない。そのため、OTU暗号の鍵生成に必要なx∈<g>となる整数xを1つ得るためには、平均2s−1・s回以上の離散対数計算が必要となる。よって、任意に合成数N及び整数gを選択したのでは、x∈<g>となる整数xを特定するために長い時間を要してしまう。
本発明はこのような点に鑑みてなされたものであり、合成数Nを法とした離散対数x≡ga(mod N)においてx∈<g>となる整数xを効率的に特定することが可能な技術を提供することを目的とする。
このような手順で生成された整数gは、g mod qjがZqj ×の生成元となるという条件を満たしている。よって、上述したのと同様、任意に整数x∈ZN ×を選択した場合にx∈<g>となる確率を最大にすることができる。
また、第2の本発明では、上述の何れかのパラメータ生成装置の出力値を用いて暗号鍵を生成する。例えば、素数冪生成部が、素数の冪乗からなる素数冪qj(j=1,...,s)の集合であって、当該素数冪qjの組にそれぞれ対応するオイラー関数値の組の最大公約数が全て2となるものを生成し、生成元生成部が、全てのjについて、整数gの属する法qjの剰余類の代表元が、素数冪qjと互いに素な0以上qj未満の整数集合の生成元となる当該整数gを生成する。そして、真数生成部が、全てのjについて素数冪qjと互いに素な0以上qj未満の整数集合の元である整数xiの集合あって、その集合に属する全ての整数の組が互いに素となるものを生成し、補助対数生成部が、素数冪qjを法としてga(i,j)〔上付き添え字のa(i,j)はai,jを示す〕と整数xiとが合同となる整数ai,jの集合であって、その集合に属する全ての整数の組が2を法として合同となるものを生成し、当該整数ai,jを出力する。また、対数生成部が、全てのjについて素数冪qjのオイラー関数値を法として整数ai,jと合同な整数aiをi毎に生成し、当該整数aiを出力し、関数演算部が、整数aiを変数とした関数値biを生成し、当該関数値biを出力し、合成数生成部が、素数冪生成部で生成された全ての素数冪qjの積である合成数Nを算出し、当該合成数Nを出力する。そして、少なくともb1,...,bnを含む情報を公開鍵とし、少なくともN,x1,...,xn,gを含む情報を秘密鍵とする。
〔原理〕
まず、本発明を実施するための最良の形態の原理について説明する。
[与える条件]
本形態では、離散対数問題x≡ga(mod N)を構成する合成数N
全てのv,w(1≦v<w≦s)に対して、gcd(φ(qv),φ(qw))=2が成立する。なお、v,w,sは自然数である。
また、離散対数問題x≡ga(mod N)を構成するgに以下の条件を与える。
<条件2>
各j(j=1,....,s)において、g mod qjがZqj ×の生成元となっている。なお、Zqj ×の下付き添え字のqjはqjを示す。
また、離散対数問題x≡ga(mod N)を構成するxに以下の条件を与える。
<条件3>
(a)各j(j=1,....,s)に対して、x≡gaj(mod qj)となる整数ajが存在する。なお、gajの上付き添え字ajはajを示す。
(b)全てのv,w(1≦v<w≦s)に対して、av≡aw(mod gcd(φ(qv),φ(qw)))が成立する。なお、φ(qv)及びφ(qw)は、それぞれ、g(mod qv)及びg(mod qw)を生成元とする巡回群の元の個数を示すことになる。
なお、<条件1><条件2><条件3>の全てが満たされている場合に限らず、<条件1><条件2>及び<条件3>の一方を満たす構成であってもよい。
特に、<条件1>が満たされている場合、<条件3>は、以下のように換言できる。
(a)各j(j=1,....,s)に対してx≡gaj(mod qj)となる整数ajが存在する。なお、gajの上付き添え字ajはajを示す。また、x∈Zqj ×である。
(b)全てのv,w(1≦v<w≦s)に対して、av≡aw(mod 2)が成立する。
さらに、<条件2>が満たされている場合、<条件3’>の(a)が保証される。すなわち、各jにおいてg mod qjがZqj ×の生成元である場合、当然、x∈Zqj ×に対してx≡gaj(mod qj)となる整数ajが存在する。よって、この場合、<条件3’>は、以下のように換言できる。
<条件3’’>
全てのv,w(1≦v<w≦s)に対して、av≡aw(mod 2)が成立する。
次に、上記の条件を満たすことにより得られる効果について説明する。
<条件1により得られる効果>
一般に、合成数Nの素因数分解が上述の式(4)で表されるとき、g∈ZN ×を生成元とする巡回群<g>の位数は、lcm{φ(qj);1≦j≦s}以下であることが知られている(例えば、「岡本龍明、山本博資、”現代暗号”、P17、産業図書、1997年」参照)。なお、lcm{α,β,γ....}は、α,β,γ....の最小公倍数を表す。
φ(qj)=qj(1-1/r) …(5)
が成立する。ここで、qj=rfを式(5)に代入して変形すると
φ(qj)=rf(1-1/r)=rf-1(r-1) …(6)
となる。ここでrは素数であるからr≠2である場合には必ず奇数となり、r-1は必ず偶数となる。また、r=2の場合にはrf-1=2f-1となり、rf-1は必ず偶数となる。よって、式(5)は偶数となり、φ(qj)は必ず2の倍数となる。そして、φ(qj)は必ず2の倍数であるため、オイラー関数値φ(qj)は、
φ(qj)=2rj …(7)
と表すことができる。
lcm{φ(qj) ; 1≦j≦s}=2lcm{rj; 1≦j≦s} …(8)
以下となる。
ここで、上述の<条件1>が成立する場合、式(7)より、全てのv,w(1≦v<w≦s)に対して、gcd(rv, rw)=1が成立するといえる。よって、
一方、上述の<条件1>が成立しない場合、式(7)より、ある自然数h(h>1)が存在し、
gcd(φ(qv),φ(qw))=2h …(10)
が成立するといえる。このとき、gcd(rv, rw)=hとなり、
以上より、<条件1>が成立する場合、g∈ZN ×を生成元とする巡回群<g>の位数は最大値lcm{φ(qj);1≦j≦s}となり、ZN ×の巡回部分群の位数を最大値化できることが分かる。
<条件2>を満たすように整数gを選択した場合、g mod qjを生成元とする巡回群の位数はZqj ×の位数、すなわちφ(qj)となる。ここで、g mod Nを生成元としたZN ×における巡回部分群の位数は、g mod qjを生成元とする巡回群の位数φ(qj)の最小公倍数lcm{φ(qj);1≦j≦s}となる。これは、前述したg∈ZN ×を生成元とする巡回群<g>の位数の最大値lcm{φ(qj);1≦j≦s}と一致する。したがって、<条件2>を満たすように選択した整数gは、ZN ×内の最大巡回部分群を生成することになる。
すなわち<条件1>及び<条件2>を満たすように合成数N及び整数gを選択した場合、任意に選択した整数xに対し、x∈<g>となる確率を最大値化することができる。
<条件3>の(b)が成立する場合、x≡ga(mod N)となる整数aが存在することになる。これは、x∈<g>となることを意味する。すなわち、<条件3>や<条件3’>や<条件3’’>を満たすようにxを選択した場合、必ずx∈<g>となる。
〔第1の実施の形態〕
次に、本発明における第1の実施の形態について説明する。本形態は、上述の<条件1><条件2><条件3’’>を満たすように合成数N、整数g,aを生成していく形態である。
図1は、本形態におけるパラメータ生成装置100のードウェア構成を例示したブロック図である。
図1に例示するように、この例のパラメータ生成装置100は、CPU(Central Processing Unit)11、入力部12、出力部13、補助記憶装置14、ROM(Read Only Memory)15、RAM(Random Access Memory)16及びバス17を有している。
この例のCPU11は、制御部11a、演算部11b及びレジスタ11cを有し、レジスタ11cに読み込まれた各種プログラムに従って様々な演算処理を実行する。また、入力部12は、データが入力される入力インタフェース、キーボード、マウス等であり、出力部13は、データが出力される出力インタフェース、液晶ディスプレイ等である。補助記憶装置14は、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、パラメータ生成装置100としてコンピュータを機能させるためのプログラムが格納されるプログラム領域14a及び各種データが格納されるデータ領域14bを有している。また、RAM16は、SRAM (Static Random Access Memory)、DRAM (Dynamic Random Access Memory)等であり、上記のプログラムが格納されるプログラム領域16a及び各種データが格納されるデータ領域16bを有している。また、バス17は、CPU11、入力部12、出力部13、補助記憶装置14、ROM15及びRAM16を通信可能に接続する。なお、このようなハードウェアの具体例としては、パーソナルコンピュータ等を例示できる。
パラメータ生成装置100としてコンピュータを機能させるためのプログラムは、各処理を実現するための複数のプログラムから構成される。これらのプログラムは、単一のプログラム列として記載されていてもよく、また、少なくとも一部のプログラムが別個のモジュールとしてライブラリに格納されていてもよい。また、各プログラム単体でそれぞれの機能を実現できるものでもよいし、各プログラムがさらに他のライブラリを読み出して各機能を実現するものであってもよい。
CPU11(図1)は、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置14のプログラム領域14aに格納されている上述のプログラムをRAM16のプログラム領域16aに書き込む。同様にCPU11は、補助記憶装置14のデータ領域14bに格納されている各種データを、RAM16のデータ領域16bに書き込む。そして、このプログラムやデータが書き込まれたRAM16上のアドレスがCPU11のレジスタ11cに格納される。CPU11の制御部11aは、レジスタ11cに格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM16上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部11aに順次実行させ、その演算結果をレジスタ11cに格納していく。
図2に示すように、本形態のパラメータ生成装置100は、離散対数問題x≡ga(mod N)を構成する合成数N及び整数gを生成する巡回群生成部110、整数xを生成する真数生成部120、整数aを求める離散対数計算部130、メモリ140、制御部150、一時メモリ160及びカウント部170を有している。
ここで、巡回群生成部110は、素数冪生成部111、生成元生成部112及び合成数生成部113を有している。なお、素数冪生成部111は、擬似乱数生成部111a、素数判定部111b、冪乗部111c及び素数冪選択部111dを有している。また、生成元生成部112は、整数生成部112aaと判定部112abとを具備する部分群生成元生成部112a、及び群生成元生成部112bを有している。また、真数生成部120は、補助整数生成部121及び冪乗部122を有し、離散対数計算部130は、補助対数生成部131及び対数生成部132を有している。さらに、メモリ140は、各種情報を格納するための領域141から149を有している。
次に、第1の実施の形態の処理を説明する。
図3は、第1の実施の形態の処理の全体を説明するためのフローチャートである。また、図4は、図3のステップS1の詳細を説明するためのフローチャートである。また、図5は、図3のステップS2の詳細を説明するためのフローチャートである。また、図6は、図3のステップS4の詳細を説明するためのフローチャートである。以下、図2から図6を用い、本形態の処理を説明する。なお、以下に述べる各処理は、制御部150の制御のもと実行される。また、特に明示しない限り、各演算処理によって得られたデータは逐一一時メモリ160に格納され、格納された各データはその後の演算処理に利用される。
まず、前処理として、3つの整数s,blen1,blen2がメモリ140の領域141に格納される。なお、整数s,blen1,blen2は、例えば、図1に例示した入力部12から入力されたデータである。
<巡回群生成部110の処理>
上記のような前処理を前提とし巡回群生成部110による処理が実行される。
まず、素数冪生成部111が、メモリ140の領域141から整数s,blen1を読み込み、素数の冪乗からなるビット長blen1の素数冪qj(j=1,...,s)の集合であって、当該素数冪qjの組にそれぞれ対応するオイラー関数値φ(qj)の組の最大公約数が全て2となるものを生成し、生成した当該複数の素数冪qjを出力し、メモリ140の領域142に格納する(ステップS1)。以下、このステップS1の詳細について説明する。
まず、素数冪生成部111が、ビット長blen1の素数冪q1を生成する(図4/ステップS11)。
具体的には、例えばまず、擬似乱数生成部111aが、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズム等を用い、擬似乱数を発生させる。そして、擬似乱数生成部111aは、当該擬似乱数から、ビット長blen1の素数冪q1=rfを構成する整数r及びf(f≧2)を生成し、当該整数r及びfを一時メモリ160に格納する。次に、素数判定部111bが、一時メモリ160から当該整数rを読み込み、AKS素数判定法、フェルマーテスト、Miller-Rabinテスト等の公知の素数判定手順によって、当該整数rが素数である(又はその可能性が高い)か否かを判断する。そして、当該整数rが素数でないと判断された場合には、整数rが素数である(又はその可能性が高い)と判定されるまで、擬似乱数生成部111aによって整数r及びfを生成し直す。そして、整数rが素数である(又はその可能性が高い)と判定された場合、冪乗部111cが一時メモリから最新の整数r及びfを読み込み、素数冪q1=rfを生成し、これをメモリ140の領域142に格納する。
まず、カウント部170が変数jに1を代入し、これを一時メモリ160に格納する(図5/ステップS21)。次に、整数生成部112aaが、擬似乱数等により任意の整数gjを生成し、これを一時メモリ160に格納する(ステップS22)。次に、判定部112abが、メモリ140の領域142から素数冪qj(j=1,...,s)を読み込み、さらに、一時メモリ160から整数gjを読み込み、
<gj mod qj>=Zqj × …(12)
を満たすか否か(整数gjの属する法qjの剰余類の代表元が、素数冪qjと互いに素な0以上qj未満の整数集合の生成元となるか否か)を判断する(ステップS23)。この判定は、例えば、判定部112aが<gj mod qj>の位数を計算し、その値とZqj ×の位数であるφ(qj)とが一致するか否かによって行う。<gjmod qj>の位数を計算する方法としては、例えば、A. J. Menezes, P. C. van Oorschot, S. A. Vanstone "Handbook of Applied Cryptografhy"., CRC Press,1997の163ページに記載された方法等を用いる。ここで、式(12)を満たさないと判断された場合、制御部150は、処理をステップS22に戻す。
次に、真数生成部120の処理を説明する。
上記のような巡回群生成部110の処理の終了後、真数生成部120が、メモリ140の領域141からblen2を読み込み、領域142から素数冪qj(j=1,...,s)を読み込み、これらを用い、全てのjについて、素数冪qjと互いに素な0以上qj未満の整数集合の元である整数xを生成し、当該整数xを出力する(ステップS4)。なお、出力された整数xは、メモリ140の領域147に格納される。以下、このステップS4の詳細について説明する。
まず、補助整数生成部121が、メモリ140の領域141からblen2を読み込み、領域142から素数冪qj(j=1,...,s)を読み込む。そして、補助整数生成部121は、全ての素数冪qjと互いに素なビット長blen2/2e(eは自然数/例えばe=1)の整数yを生成し、当該整数yを出力する(図6/ステップS31)。出力された整数yは、メモリ140の領域146に格納される。次に、冪乗部122が、メモリ140の領域146から整数yを読み込み、当該整数yを偶数冪乗した整数x(x=y2e)を生成し、当該整数xを出力する(ステップS32)。出力された整数xは、メモリ140の領域147に格納される。
次に、離散対数計算部130の処理を説明する。
まず、補助対数生成部131が、メモリ140の領域142から素数冪qj(j=1,...,s)を読み込み、領域144から整数gを読み込み、領域147から整数xを読み込む。そして、補助対数生成部131は、各jについて
x≡gaj (mod qj) …(14)
を満たす整数ajを算出する(ステップS5)。なお、本形態では、上述のステップS31,S32のように整数xを選択しているため<条件3’’>を満たしており、算出された各整数ajの全ての組は、2を法として合同〔全てのv,w(1≦v<w≦s)に対して、av≡aw(mod 2)〕となっている。また、式(14)を満たす整数ajの算出は、例えば、数体ふるい法やPollardのρ法等(例えば、「岡本龍明,山本博資著,“現代暗号”,第2刷,ISBN4-7828-5353-X- C3355,p21」等参照)を用いる。これによって、少ない演算量で整数ajを求めることが可能となる。算出された整数aj(j=1,...,s)は、補助対数生成部131から出力され、メモリ140の領域148に格納される。
a≡aj(mod φ(qj)) …(15)
を満たす整数aを算出し、当該整数aを出力する(ステップS6)。そして、出力された整数aは、メモリ140の領域149に格納される。なお、この整数aの算出は、例えば、GaussやGarnarのアルゴリズムとして知られている手順によって行う(例えば、「A. J. Menezes, P. C. van Oorschot, S. A. Vanstone "Handbook of Applied Cryptography" pp 612-613., CRC Press,1997」等参照)。
以上により、素数冪qjの積である合成数Nを法とした離散対数問題x≡ga(mod N)を構成する整数x,g、合成数N及び解である整数aを生成することができた。そして、上述のように合成数Nは<条件1>を満たし、整数gは<条件2>を満たし、さらに解aは<条件3’’>を満たすものとなった。そして、x∈<g>であるか否かの判定を行うことなく、簡単な計算によってx∈<g>を満たすxを生成することが可能となった。そして、このように生成された整数x,g、合成数N及び解である整数aは、必要に応じてメモリ140から読み出され、例えば、OTU暗号の暗号鍵生成等に利用することができる。
次に、本発明の第2の実施の形態について説明する。本形態は、Zqj ×の生成元の偶数冪乗の整数g’を生成する形態である。なお、以下では、Zqj ×の生成元の2乗となる整数g’を生成する例について説明する。また、以下では、第1の実施の形態との相違点を中心に説明し、第1の実施の形態と共通する部分については説明を省略する。
<構成>
図7は、第2の実施の形態のパラメータ生成装置200の機能構成を例示したブロック図である。なお、本形態のパラメータ生成装置200も第1の実施の形態と同様、所定のプログラムがコンピュータに読み込まれることによって構成されるものである。また、図7において、第1の実施の形態と共通する部分については図2と同じ符号を付した。
次に、第2の実施の形態の処理について説明する。図8は、第2の実施の形態の処理を説明するためのフローチャートである。また、図9は、図8におけるステップS52の処理の詳細を説明するためのフローチャートである。以下、図7から図9を用いて本形態の処理を説明する。
<前処理>
第1の実施の形態と同様、3つの整数s,blen1,blen2をメモリ240の領域141に格納する。
上記のような前処理を前提とし巡回群生成部210による処理が実行される。
まず、素数冪生成部111が、メモリ240の領域141から整数s,blen1を読み込み、素数の冪乗からなるビット長blen1の素数冪qj(j=1,...,s)の集合であって、当該素数冪qjの組にそれぞれ対応するオイラー関数値φ(qj)の組の最大公約数が全て2となるものを生成し、生成した当該複数の素数冪qjを出力し、メモリ240の領域142に格納する(ステップS51)。この処理の内容は、第1の実施の形態のステップS1と同じである。
[ステップS52の詳細]
まず、カウント部170が変数jに1を代入し、これを一時メモリ160に格納する(図9/ステップS61)。次に、整数生成部112aaが、擬似乱数等により任意の整数gjを生成し、これを一時メモリ160に格納する(ステップS62)。次に、判定部112abが、メモリ240の領域142から素数冪qj(j=1,...,s)を読み込み、さらに、一時メモリ160から整数gjを読み込み、
<gj mod qj>=Zqj × …(16)
を満たすか否か(整数gjの属する法qjの剰余類の代表元が、素数冪qjと互いに素な0以上qj未満の整数集合の生成元となるか否か)を判断する(ステップS63)。この判定は、例えば、判定部112aが<gj mod qj>の位数を計算し、その値とZqj ×の位数であるφ(qj)とが一致するか否かによって行う。<gjmod qj>の位数を計算する方法としては、例えば、A. J. Menezes, P. C. van Oorschot, S. A. Vanstone "Handbook of Applied Cryptografhy"., CRC Press,1997の163ページに記載された方法等を用いる。ここで、式(16)を満たさないと判断された場合、制御部150は、処理をステップS62に戻す。
<真数生成部220の処理>
次に、真数生成部220の処理を説明する。上記のような巡回群生成部210の処理の終了後、真数生成部220が、メモリ240の領域142から素数冪qj(j=1,...,s)を読み込み、全てのjについて素数冪qjと互いに素な0以上qj未満の整数集合の元である整数x(x∈Zqj×)を生成し、当該整数xを出力する(ステップS54)。具体的には、真数生成部220は、例えば、擬似乱数等を用いて0以上qj未満の整数xを生成し、それが全ての素数冪qjと互いに素であるかを判定する処理を繰り返し、全ての素数冪qjと互いに素であると判定された整数xを出力する。なお、出力された整数xは、メモリ240の領域247に格納される。
<離散対数計算部230の処理>
次に、離散対数計算部230の処理を説明する。
x≡g'aj (mod qj) …(17)
を満たす整数aj(j=1,...,s)を算出し、これを出力する(ステップS55)。なお、式(17)を満たす整数ajの算出は、例えば、数体ふるい法やPollardのρ法等を用いる。算出された整数aj(j=1,...,s)は、補助対数生成部231から出力され、メモリ240の領域148に格納される。
a≡aj(mod φ(qj)) …(18)
を満たす整数aを算出し、当該整数aを出力する(ステップS56)。そして、出力された整数aは、メモリ240の領域149に格納される。なお、この整数aの算出は、例えば、GaussやGarnarのアルゴリズムとして知られている手順によって行う。
前述した<条件3>におけるオイラー関数値φ(qv),φ(qw)は、それぞれ、g(mod qv)及びg(mod qw)を生成元とした巡回群の位数を示す。しかし、g’=g2とした本形態のg’(mod qv)及びg’(mod qw) をそれぞれ生成元とした巡回群の位数は、それぞれφ(qv)/2,φ(qw)/2となる。よって、本形態の場合、x∈<g’>となるためには<条件3>の代わりに、以下の<条件3’’’>を満たす必要がある。なお、<条件3>の(b)は「(b)全てのv,w(1≦v<w≦s)に対して、av≡aw(mod 1)が成立する。」に置き換わるが、av,awは整数であるため、この条件は不要となる。
(a)各j(j=1,....,s)に対して、x≡g'aj(mod qj)となる整数ajが存在する。
ここで、x∈Zqj ×であるから、高い確率(この例では50%程度)でx≡g'aj(mod qj)となる整数ajが存在し、上記の(a)の条件を満たす。また、上記の(b)は当然に満たされる。そのため、この例においてjを固定した場合x∈<g’>となる確率は50%程度となる。また、この場合、全てのjでx∈<g’>となる確率は、1/2×1/2×…×1/2=1/2s程度となり、任意に選択した整数xに対し、x∈<g’>となる確率を最大値/2程度〔任意にg’を選択した場合(ZN ×の位数)/(<g’>の位数)≧2s−1であるため、x,g’を任意に選択した場合、x’∈<g’>となる確率は1/2s−1以下となる〕にすることができる。
なお、ステップS51の代わりに、全てのjについてgcd(φ(qu),φ(qj))=2e〔eは自然数,∀u(1≦u≦j-1)〕となる素数冪qjを生成し、ステップS52の代わりに、
全てのjについて、整数g’の属する法qjの剰余類の代表元が、素数冪qjと互いに素な0以上qj未満の整数集合の生成元gの2e(eは自然数)乗となる整数g ’=g2eを生成することとしてもよい。
次に、本発明の第3の実施の形態について説明する。本形態は、前述の<条件1><条件2>を満たすように合成数N、整数gを生成し、任意に選択された整数xがx∈<g>となる確率を最大値化する形態である。以下では、第1の実施の形態との相違点を中心に説明し、第1の実施の形態と共通する部分については説明を省略する。
<構成>
図10は、第3の実施の形態のパラメータ生成装置300の機能構成を例示したブロック図である。なお、本形態のパラメータ生成装置300も第1の実施の形態と同様、所定のプログラムがコンピュータに読み込まれることによって構成されるものである。また、図9において、第1の実施の形態と共通する部分については図2と同じ符号を付した。
ここで、巡回群生成部110の構成は第1の実施の形態と同じである。また、離散対数計算部330は、補助対数生成部131、対数生成部132及び判定部333を有している。さらに、メモリ140は、各種情報を格納するための領域141〜145,148,149,347を有している。また、図9における矢印はデータの流れを示しているが、制御部150、一時メモリ160及びカウント部170に入出力するデータの流れの記載は省略してある。
次に、第3の実施の形態の処理について説明する。図11は、第3の実施の形態の処理を説明するためのフローチャートである。以下、図10及び図11を用いて本形態の処理を説明する。
<前処理>
第1の実施の形態と同様、3つの整数s,blen1,blen2をメモリ340の領域141に格納する。
巡回群生成部110は、第1の実施の形態と同じ手順(図3/ステップS1〜S3)によってメモリ340の領域141に格納された整数s,blen1を用い、素数冪qj、整数gj(j=1,...,s)、整数g、合成数Nを生成し、これらをメモリ340の領域142,143,144,145に格納する(ステップS81〜S83)。
<真数生成部320の処理>
上記のような巡回群生成部110の処理の終了後、真数生成部320が、メモリ240の領域142から素数冪qj(j=1,...,s)を読み込み、全てのjについて素数冪qjと互いに素な0以上qj未満の整数集合の元である整数x(x∈Zqj×)を生成し、当該整数xを出力する(ステップS84)。なお、出力された整数xは、メモリ340の領域347に格納される。
上記のような真数生成部320の処理の終了後、離散対数計算部330の処理が開始される。
まず、補助対数生成部131が、メモリ340の領域142から素数冪qj(j=1,...,s)を読み込み、領域144から整数gを読み込み、領域347から整数xを読み込む。そして、補助対数生成部131は、各jについて
x≡gaj (mod qj) …(19)
を満たす整数aj(j=1,...,s)を算出し、これを出力する(ステップS85)。なお、式(19)を満たす整数ajの算出は、例えば、数体ふるい法やPollardのρ法等を用いる。また、出力された整数ajは、メモリ340の領域148に格納される。
av≡aw (mod gcd(φ(qv),φ(qw)) …(20)
が成立するか否かを判断する(ステップS86)。なお、ステップS81でgcd(φ(qv),φ(qw))=2であることが保証されているため、式(20)の代わりに
av≡aw (mod 2) …(20)'
が成立するか否かを判断することとしてもよい。この場合、gcd(φ(qv),φ(qw))を求めるために、メモリ340の領域142からの素数冪qjの読み込み、オイラー関数の演算、及び最大公約数の算出処理を省略することができる。その結果、以下に示すステップS84〜S86の繰り返し演算処理を効率化できる。
a≡aj(mod φ(qj)) …(21)
を満たす整数aを算出し、当該整数aを出力する(ステップS87)。そして、出力された整数aは、メモリ340の領域149に格納される。なお、この整数aの算出は、例えば、GaussやGarnarのアルゴリズムとして知られている手順によって行う。
本形態の構成の場合、前述の<条件1>及び<条件2>を満たす。そして、<条件1>及び<条件2>を満たすように合成数N及び整数gを選択した場合、任意に選択した整数xに対し、x∈<g>となる確率を最大値化することができる。よって、ステップS84〜S86の繰り返し回数を従来構成よりも少なくすることができる。
〔第4の実施の形態〕
次に、本発明の第4の実施の形態について説明する。本形態は、第1の実施の形態の応用例であり、第1の実施の形態の構成をOTU暗号の暗号鍵生成に適用した形態である。以下では、第1の実施の形態との相違点を中心に説明し、第1の実施の形態と共通する事項については説明を省略する。
OTU暗号の公開鍵PK=(b1,...,bn,k)、秘密鍵SK=(N,d,x1,...,xn,g)には次の条件がある。
(a)各i(i=1,...,n)に対して、gbi-d≡xi(mod N)を満たす。なお、上付き添え字にあるbiはbiを示す。
(b)集合{1,2,...,n}の部分集合であり、要素数がk個(kは整数)である任意の集合Sに対し、Πj∈S xj<N が成立している。
上記の条件(b)は、各xjのビット長はNビットに比べて非常に短い必要があることを意味している。少なくとも、|xj|≦|N|/k(ただし|*|は*のビット長を示す。)でなくてはならない。
本形態では、4つの整数s,blen1,k,nを入力とし、第1の実施の形態の構成を利用し、OTU暗号の公開鍵PK=(b1,...,bn,k)及び秘密鍵SK=(N,d,x1,...,xn,g)を生成する。ただし、各パラメータは次の性質を満たしている。
・dはランダムに選ばれた整数である。
・gは、全てのj(j=1,...,s)において、Zqj ×の生成元となる。
・各xjは、ある整数の偶数冪乗であり、xj∈<g>を満たす。また、各xjのビット長は
<構成>
図12は、第4の実施の形態の暗号鍵生成装置400の機能構成を例示したブロック図である。なお、図12において第1の実施の形態と共通する部分については図2と同じ符号を付した。また、本形態の暗号鍵生成装置400は、第1の実施の形態と同様、公知のコンピュータに所定のプログラムが読み込まれることによって構成されるものである。
次に、第4の実施の形態の暗号鍵生成処理を説明する。
図13は、第4の実施の形態の暗号鍵生成処理の全体を説明するためのフローチャートである。また、図14は、図13のステップS97の詳細を説明するためのフローチャートである。以下、図12から図14を用いて、本形態の暗号鍵生成処理を説明する。
<前処理>
まず、前処理として、4つの整数s,blen1,k,n(n≧1)がメモリ440の領域441に格納される。なお、整数s,blen1,k,nは、例えば、図1に例示した入力部12から入力されたデータである。
上記のような前処理を前提として、巡回群生成部110は、第1の実施の形態と同じ手順(図3/ステップS1〜S3)によってメモリ440の領域441に格納された整数s,blen1を用い、素数冪qj、整数gj(j=1,...,s)、整数g、合成数Nを生成し、これらをメモリ440の領域142,143,144,145に格納する(ステップS91〜S93)。
<乗算部411の処理>
次に、乗算部411が、メモリ440の領域441から整数s,blen1を読み込み、blen1・sを算出し、その演算結果blen1・sを出力する(ステップS94)。出力された演算結果s・blen1は、メモリ440の領域442に格納される。
次に、乱数生成部412が、メモリ440の領域442からblen1・sを読み込み、blen1・sビットの(擬似)乱数dを発生して出力し(ステップS95)、これをメモリ440の領域443に格納する。なお、乱数dの生成には、例えば、前述の擬似乱数生成アルゴリズム等を用いる。
<除算部413の処理>
次に、除算部413が、メモリ440の領域442からblen1・sを読み込み、領域441から整数kを読み込む。そして、除算部413は、
次に、真数生成部420が、メモリ440の領域141からblen2を読み込み、領域142から素数冪qj(j=1,...,s)を読み込み、これらを用い、全ての素数冪qjと互いに素でありビット長が(blen2)/2e(eは自然数)以下である整数yi(i=1,...,n)を2e冪乗した整数xi(xi=yi 2e)の集合であって、その集合に属する全ての整数の組が互いに素となるものを生成し、当該整数xiを出力する(ステップS97)。そして、出力された各整数xi(i=1,...,n)は、メモリ440の領域446に格納される。以下、このステップS97の詳細について説明する。
まず、補助整数生成部421が、メモリ440の領域441からblen2を読み込み、領域142から素数冪qj(j=1,...,s)を読み込む。そして、補助整数生成部421は、全ての素数冪qjと互いに素なビット長blen2/2e(eは自然数/例えばe=1)の整数y1を生成し、当該整数y1を出力する(図14/ステップS111)。出力された整数y1はメモリ440の領域445に格納される。
次に、冪乗部422が、メモリ440の領域445から整数y1を読み込み、整数y1を偶数冪乗した整数x1(x1=y1 2e)を生成し、当該整数x1を出力する(ステップS112)。出力された整数x1はメモリ440の領域446に格納される。
一方、ステップS118の判断で、i=nであると判断された場合、制御部150は、ステップS97の処理を終了する([ステップS97の詳細]の説明終わり)。
次に、補助対数生成部431が、メモリ440の領域142から素数冪qj(j=1,...,s)を読み込み、領域144から整数gを読み込み、領域147から整数xiを読み込む。そして、補助対数生成部431は、各i(i=1,...,n),j(j=1,...,s)について、
xi≡ga(i,j)(mod qj) …(23)
を満たす整数ai,jを算出する(ステップS98)。なお、式(23)の上付き添え字のa(i,j)は、ai,jを意味する。また、式(23)を満たす整数ai,jの算出は、例えば、数体ふるい法やPollardのρ法等を用いる。また、本形態では、上述のステップS97のように整数xiを選択しているため<条件3’’>を満たしており、算出された各整数ai,jの全ての組は、2を法として合同となっている。算出された各整数ai,j(i=1,...,n,j=1,...,s)は、補助対数生成部431から出力され、メモリ440の領域447に格納される。
ai≡ai,j(mod φ(qj)) …(24)
を満たす整数aiをi毎に算出し、当該整数ai(i=1,...,n)を出力する(ステップS99)。そして、出力された整数aiは、メモリ440の領域449に格納される。なお、これらの整数aiの算出は、例えば、GaussやGarnarのアルゴリズムとして知られている手順によって行う。
次に、加算部450(「関数演算部」に相当)が、メモリ440の領域443から乱数dを読み込み、領域448から整数ai(i=1,...,n)を読み込み、整数aiと乱数dとを加算した加算値(「関数値」に相当)bi=ai+dを生成し、当該加算値bi(i=1,...,n)を出力する(ステップS100)。出力された加算値bi(i=1,...,n)は、メモリ440の領域449に格納される。
<出力部460の処理>
その後、出力部460が、メモリ440の領域449から加算値b1,...,bnを読み込み、領域441から整数kを読み込み、PK=(b1,...,bn,k)を公開鍵として出力する。さらに、出力部460は、メモリ440の領域145から合成数Nを読み込み、領域443から乱数dを読み込み、領域446から整数x1,...,xnを読み込み、領域144から整数gを読み込み、SK=(N,d,x1,...,xn,g)を秘密鍵として出力する。
次に、本発明における第5の実施の形態について説明する。本形態は、第2の実施の形態の応用例であり、第2の実施の形態の構成をOTU暗号の暗号鍵生成に適用した形態である。以下では、第1,2,4の実施の形態との相違点を中心に説明し、第1,2,4の実施の形態と共通する事項については説明を省略する。
<構成>
図15は、第5の実施の形態の暗号鍵生成装置500の機能構成を例示したブロック図である。なお、図15において第1,4の実施の形態と共通する部分については図2,12と同じ符号を付した。また、本形態の暗号鍵生成装置500は、第1の実施の形態と同様、公知のコンピュータに所定のプログラムが読み込まれることによって構成されるものである。
次に、第5の実施の形態の暗号鍵生成処理を説明する。
図16は、第5の実施の形態の暗号鍵生成処理の全体を説明するためのフローチャートである。以下、図15及び図16を用いて、本形態の暗号鍵生成処理を説明する。
<前処理>
まず、前処理として、4つの整数s,blen1,k,n(n≧1)がメモリ440の領域441に格納される。
上記のような前処理を前提として、巡回群生成部210は、第2の実施の形態と同じ手順(図8/ステップS51〜S53)によってメモリ440の領域441に格納された整数s,blen1を用い、素数冪qj、整数gj’(j=1,...,s)、整数g’、合成数Nを生成し、これらをメモリ440の領域142,143,144,145に格納する(ステップS121〜S123)。
<乗算部411・乱数生成部412・除算部413の処理>
次に、乗算部411・乱数生成部412・除算部413が、第4の実施の形態と同じ手順(図13/ステップS94〜S96)により、blen1・s,d,blen2を生成し、これらをメモリ440の領域442,443,444にそれぞれ格納する(ステップS124〜S126)。
次に、真数生成部520が、メモリ440の領域141からblen2を読み込み、ビット長がblen2以下の整数xiの集合であって、その集合に属する全ての整数の組が互いに素となるものを生成し、当該整数xiを出力する(ステップS127)。
出力された各整数xi(i=1,...,n)は、メモリ440の領域446に格納される。具体的には、例えば、整数生成部521が、メモリ440の領域141からblen2を読み込み、blen2以下の整数xi(i=1,...,n)を生成し、判定部423がそれらが互いに素であるかを判定し、互いに素な整数xi(i=1,...,n)を生成するといった、前述のステップS97に類似した手順によって各整数xiを生成する。そして、xi∈<g’>であるか否かの判定処理を追加し、xi∈<g’>でない場合、各整数xiを生成し直す構成とする。
その後、離散対数計算部430・加算部450・出力部460によって、第4の実施の形態と同じ処理(図13/ステップS98からS101)を実行し、最終的に、出力部460が、公開鍵PK=(b1,...,bn,k)と秘密鍵SK=(N,d,x1,...,xn,g)を出力する。
〔第6の実施の形態〕
次に、本発明における第6の実施の形態について説明する。本形態は、第3の実施の形態の応用例であり、第3の実施の形態の構成をOTU暗号の暗号鍵生成に適用した形態である。以下では、第1,3,4の実施の形態との相違点を中心に説明し、第1,3,4の実施の形態と共通する事項については説明を省略する。
図17は、第6の実施の形態の暗号鍵生成装置600の機能構成を例示したブロック図である。なお、図17において第1,4の実施の形態と共通する部分については図2,図12と同じ符号を付した。また、本形態の暗号鍵生成装置600は、第1の実施の形態と同様、公知のコンピュータに所定のプログラムが読み込まれることによって構成されるものである。
図17に例示するように、本形態の暗号鍵生成装置600は、巡回群生成部110、制御部150、一時メモリ160、カウント部170、乗算部411、乱数生成部412、除算部413、真数生成部620、離散対数計算部630、メモリ440、加算部450及び出力部460を有している。なお、離散対数計算部630は、補助対数生成部431、対数生成部432及び判定部633を有している。また、図17における矢印はデータの流れを示しているが、制御部150、一時メモリ160及びカウント部170に入出力するデータの流れの記載は省略してある。
次に、第6の実施の形態の暗号鍵生成処理を説明する。
図18は、第6の実施の形態の暗号鍵生成処理の全体を説明するためのフローチャートである。以下、図17及び図18を用いて、本形態の暗号鍵生成処理を説明する。
<前処理>
まず、前処理として、4つの整数s,blen1,k,n(n≧1)がメモリ440の領域441に格納される。
上記のような前処理を前提として、第4の形態のステップS91〜S96(図13)と同じ処理を実行し、素数冪qj、整数gj(j=1,...,s)、整数g、合成数N、blen1・s,乱数d,blen2を生成し、これらをメモリ440の領域142,143,144,145,442,443,444に格納する(ステップS141〜S146)。
<真数生成部620の処理>
次に、真数生成部620が、メモリ440の領域141からblen2を読み込み、ビット長がblen2以下の整数xi〔i=(1,...,n)〕の集合であって、その集合に属する全ての整数の組が互いに素となるものを生成し、当該整数xiを出力する(ステップS147)。出力された各整数xi(i=1,...,n)は、メモリ440の領域446に格納される。
その後、離散対数計算部630の処理が開始される。
まず、補助対数生成部431が、メモリ440の領域142から素数冪qj(j=1,...,s)を読み込み、領域144から整数gを読み込み、領域447から整数xi(i=1,...,n)を読み込む。そして、補助対数生成部431は、各jについて
xi≡ga(i,j)(mod qj) …(25)
を満たす整数ai,j(i=1,...,n/j=1,...,s)を算出し、これを出力する(ステップS148)。なお、式(25)を満たす整数ai,jの算出は、例えば、数体ふるい法やPollardのρ法等を用いる。また、出力された整数ai,jは、メモリ440の領域447に格納される。
av≡aw (mod 2) …(26)
が成立するか否かを判断する(ステップS149)。
ここで、すべてのv,w(1≦v<w≦s)について式(26)が成立しないと判断された場合、制御部150は、処理をステップS147に戻す。一方、すべての
v,w(1≦v<w≦s)について式(26)が成立すると判断された場合、制御部150は、対数生成部432に指示を与え、これを受けた対数生成部432は、メモリ440の領域447から各整数ai,j(i=1,...,n/j=1,...,s)を読み込み、全てのjについて
ai≡ai,j(mod φ(qj)) …(27)
を満たす整数aiを算出し、当該整数aiを出力する(ステップS150)。そして、出力された整数aiは、メモリ440の領域448に格納される。なお、この整数aiの算出は、例えば、GaussやGarnarのアルゴリズムとして知られている手順によって行う。
なお、本発明は上述の実施の形態に限定されるものではない。例えば、上述では、加算部450が、bi=ai+dの演算を行ったが、bi=ai+d(mod N)やbi=ai+d(mod φ(N))等の演算を行うこととしてもよい。また、各実施の形態を適宜融合することも可能である。例えば、第1の実施の形態のように整数xを選択し、第2の実施の形態のようにg’を生成する構成であってもよい。さらに、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
400,500,600 暗号鍵生成装置
Claims (10)
- 離散対数問題のパラメータを生成するパラメータ生成装置であって、
素数の冪乗からなる素数冪qj(j=1,...,s)の集合であって、当該素数冪qjの組にそれぞれ対応するオイラー関数値の組の最大公約数が全て2となるものを生成し、生成した当該複数の素数冪qjを出力する素数冪生成部と、
全てのjについて、整数gの属する法qjの剰余類の代表元が、上記素数冪qjと互いに素な0以上qj未満の整数集合の生成元となる当該整数gを生成し、生成した当該整数gを出力する生成元生成部と、
上記素数冪生成部で生成された全ての上記素数冪qjの積である合成数Nを算出し、当該合成数Nを出力する合成数生成部と、
を有することを特徴とするパラメータ生成装置。 - 請求項1に記載のパラメータ生成装置であって、
全てのjについて上記素数冪qjと互いに素な0以上qj未満の整数集合の元である整数xを生成し、当該整数xを出力する真数生成部と、
上記素数冪qjを法としてgaj(ajはajを示す)と上記整数xとが合同となる整数ajの集合であって、その集合に属する全ての整数の組が2を法として合同となるものを生成し、当該整数ajを出力する補助対数生成部と、
全てのjについて上記素数冪qjのオイラー関数値を法として上記整数ajと合同な整数aを生成し、当該整数aを出力する対数生成部と、
を有することを特徴とするパラメータ生成装置。 - 請求項1に記載のパラメータ生成装置であって、
上記生成元生成部は、
各jについて、整数gjの属する法qjの剰余類の代表元が、上記素数冪qjと互いに素な0以上qj未満の整数集合の生成元となる当該整数gjを生成し、生成した当該整数gjを出力する部分群生成元生成部と、
全てのjについて上記素数冪qjを法として上記整数gjと合同な整数gを生成し、当該整数gを出力する群生成元生成部と、
を有することを特徴とするパラメータ生成装置。 - 請求項2に記載のパラメータ生成装置であって、
上記真数生成部は、
全ての上記素数冪qjと互いに素な整数yを生成し、当該整数yを出力する補助整数生成部と、
上記整数yを偶数冪乗した整数xを生成し、当該整数xを出力する冪乗部と、
を有することを特徴とするパラメータ生成装置。 - 請求項1から4の何れかのパラメータ生成装置の出力値を用いて暗号鍵を生成する暗号鍵生成装置。
- 離散対数問題のパラメータを生成するパラメータ生成方法であって、
素数冪生成部が、素数の冪乗からなる素数冪qj(j=1,...,s)の集合であって、当該素数冪qjの組にそれぞれ対応するオイラー関数値の組の最大公約数が全て2となるものを生成し、生成した当該複数の素数冪qjを出力するステップと、
生成元生成部が、全てのjについて、整数gの属する法qjの剰余類の代表元が、上記素数冪qjと互いに素な0以上qj未満の整数集合の生成元となる当該整数gを生成し、生成した当該整数gを出力するステップと、
合成数生成部が、上記素数冪生成部で生成された全ての上記素数冪qjの積である合成数Nを算出し、当該合成数Nを出力するステップと、
を有することを特徴とするパラメータ生成方法。 - 請求項6に記載のパラメータ生成方法において、
真数生成部が、全てのjについて上記素数冪qjと互いに素な0以上qj未満の整数集合の元である整数xを生成し、当該整数xを出力するステップと、
補助対数生成部が、上記素数冪qjを法としてgaj(ajはajを示す)と上記整数xとが合同となる整数ajの集合であって、その集合に属する全ての整数の組が2を法として合同となるものを生成し、当該整数ajを出力するステップと、
対数生成部が、全てのjについて上記素数冪qjのオイラー関数値を法として上記整数ajと合同な整数aを生成し、当該整数aを出力するステップと、
を有することを特徴とするパラメータ生成方法。 - 請求項1から4の何れかのパラメータ生成装置の出力値を用いて暗号鍵を生成する暗号鍵生成方法。
- 請求項1から4の何れかに記載のパラメータ生成装置としてコンピュータを機能させるためのプログラム。
- 請求項5に記載の暗号鍵生成装置としてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005367020A JP4676873B2 (ja) | 2005-12-20 | 2005-12-20 | パラメータ生成装置、暗号鍵生成装置、それらの方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005367020A JP4676873B2 (ja) | 2005-12-20 | 2005-12-20 | パラメータ生成装置、暗号鍵生成装置、それらの方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007171411A true JP2007171411A (ja) | 2007-07-05 |
JP4676873B2 JP4676873B2 (ja) | 2011-04-27 |
Family
ID=38298083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005367020A Active JP4676873B2 (ja) | 2005-12-20 | 2005-12-20 | パラメータ生成装置、暗号鍵生成装置、それらの方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4676873B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011095284A (ja) * | 2009-10-27 | 2011-05-12 | Nippon Telegr & Teleph Corp <Ntt> | パラメータ設定装置、離散対数計算装置、事前計算装置、パラメータ設定方法、離散対数計算方法、事前計算方法、プログラム |
JP2013228763A (ja) * | 2013-08-14 | 2013-11-07 | Nippon Telegr & Teleph Corp <Ntt> | 離散対数計算装置、事前計算装置、離散対数計算方法、事前計算方法、プログラム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08102734A (ja) * | 1994-09-30 | 1996-04-16 | Nippon Telegr & Teleph Corp <Ntt> | 公開鍵暗号方法及び公開鍵暗号システム |
-
2005
- 2005-12-20 JP JP2005367020A patent/JP4676873B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08102734A (ja) * | 1994-09-30 | 1996-04-16 | Nippon Telegr & Teleph Corp <Ntt> | 公開鍵暗号方法及び公開鍵暗号システム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011095284A (ja) * | 2009-10-27 | 2011-05-12 | Nippon Telegr & Teleph Corp <Ntt> | パラメータ設定装置、離散対数計算装置、事前計算装置、パラメータ設定方法、離散対数計算方法、事前計算方法、プログラム |
JP2013228763A (ja) * | 2013-08-14 | 2013-11-07 | Nippon Telegr & Teleph Corp <Ntt> | 離散対数計算装置、事前計算装置、離散対数計算方法、事前計算方法、プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP4676873B2 (ja) | 2011-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8280039B2 (en) | Signature generating device, signature generating method and signature generating program | |
US8458478B2 (en) | Signature generating apparatus, signature verifying apparatus, and methods and programs therefor | |
Thomé | Computation of discrete logarithms in | |
JP2010049215A (ja) | パラメータ生成装置、暗号処理システム、方法およびプログラム | |
US20220166614A1 (en) | System and method to optimize generation of coprime numbers in cryptographic applications | |
Adj et al. | Computing discrete logarithms in cryptographically-interesting characteristic-three finite fields | |
JP4690819B2 (ja) | 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置 | |
JP4676873B2 (ja) | パラメータ生成装置、暗号鍵生成装置、それらの方法及びプログラム | |
RU2403682C2 (ru) | Способ и устройство для выполнения криптографического вычисления | |
JP2008136193A (ja) | 署名生成装置、署名検証装置、それらの方法及びプログラム | |
JP2013217970A (ja) | 格子問題に基づく階層型内積暗号システム,格子問題に基づく階層型内積暗号方法,装置 | |
JP5038866B2 (ja) | 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム | |
JP4922139B2 (ja) | 鍵共有方法、第1装置、第2装置、及び、それらのプログラム | |
JP5038868B2 (ja) | 鍵共有方法、第1装置、第2装置、及びそれらのプログラム | |
JP4685621B2 (ja) | 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム | |
JP2017223822A (ja) | 暗号文処理システム、暗号文処理サーバ、及び暗号文処理方法 | |
Overmars | Survey of rsa vulnerabilities | |
JP2021081591A (ja) | 安全性評価装置、安全性評価方法及び安全性評価プログラム | |
JP4692022B2 (ja) | 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム | |
JP5871827B2 (ja) | 安全性強化システム、安全性強化装置、検証装置、およびプログラム | |
Mooney et al. | A New Rabin-type Cryptosystem with Modulus p 2 q | |
JP4802228B2 (ja) | 鍵生成装置及びプログラム | |
Téllez et al. | Supersingular Isogeny and Ring Learning With Errors-Based Diffie-Hellman Cryptosystems: A Performance and Security Comparison | |
JP2009128774A (ja) | 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム | |
Dhiman et al. | Comparative Analysis and Scrutiny of Key Authentication Techniques in Fully Homomorphic Schemes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080128 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101018 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101102 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101222 |
|
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: 20110118 |
|
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: 20110128 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140204 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4676873 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 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 |