JP2009130871A - 鍵共有方法、第1装置、第2装置、及びそれらのプログラム - Google Patents
鍵共有方法、第1装置、第2装置、及びそれらのプログラム Download PDFInfo
- Publication number
- JP2009130871A JP2009130871A JP2007306737A JP2007306737A JP2009130871A JP 2009130871 A JP2009130871 A JP 2009130871A JP 2007306737 A JP2007306737 A JP 2007306737A JP 2007306737 A JP2007306737 A JP 2007306737A JP 2009130871 A JP2009130871 A JP 2009130871A
- Authority
- JP
- Japan
- Prior art keywords
- storage unit
- calculation
- function
- key
- unit
- 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
【解決手段】第2装置がランダムな整数rを選択し、C1=g1r,C2=g2r,d=H(z, w, C1, C2),σ=zr・wr・dの演算を行って鍵K=Fσ(g1, g2, z, w, C1, C2)を算出する。C1, C2は、第1装置に送信され、第1装置は、d=H(z, w, C1, C2),σ=C1(x1+d・y1)・C2(x2+d・y2 )の演算を行って鍵K=Fσ(g1, g2, z, w, C1, C2)を算出する。
【選択図】図3
Description
"ISO 18033-2: A Standard for Public-Key Encryption"、[online]、 [平成19年11月15日検索]、インターネット<http://www.shoup.net/> Kaoru Kurosawa and Yvo Desmed, "A New Paradigm of Hybrid Encryption Scheme," Advances in Cryptology, CRYPTO 2004, volume 3152 of Lecture Notes in Computer Science, pages 426-442, 2004, Springer-Verlag
また、第2の本発明でも、第1装置と第2装置とで鍵を共有するために、整数x1, x2, y1, y2を第1装置の秘密鍵とし、有限群Gの元g1, g2∈Gと当該有限群G上での演算結果z=g1x1・g2x2∈G,w=g1y1・g2y2∈Gとを第1装置の公開鍵とする。
〔準備〕
まず、用語の説明を行う。
<有限群>
以下の各実施形態では、離散対数問題が難しい有限群Gを用い、その位数をpとする。なお、離散対数問題が難しいとは、離散対数問題を多項式時間で解くことが困難であることを意味する。また、このような有限群Gの実現例としては、例えば、楕円曲線暗号に用いられる楕円曲線上の有理点のなす群や、エルガマル暗号等に用いられる有限体の乗法群などを用いることができる(例えば、『岡本龍明,山本博資著、「現代暗号」、産業図書出版、ISBN4-7828-5353-X(参考文献1)』等参照)。なお、有限群Gとして楕円曲線上の有理点のなす群を用いる場合、その元は楕円曲線上の点であり、有限体の乗法群を用いる場合、その元は整数である。また、楕円曲線上の有理点のなす群をコンピュータ上で実現するための具体的方法には様々なものが存在し、実際、楕円曲線上の有理点のなす群で構成され、コンピュータ上で実装可能な様々な楕円曲線暗号方式が存在する(例えば、参考文献1や『イアン・F・ブラケ、ガディエル・セロッシ、ナイジェル・P・スマート=著、鈴木治郎=訳、「楕円曲線暗号」、出版=ピアソン・エデュケーション、ISBN4-89471-431-0(参考文献2)』等参照)。
目的衝突困難(TCR: Target Collision Resistant)なハッシュ関数とは、異なる入力値に対する出力値が互いに同一となる確率が無視できるほど小さいハッシュ関数を意味する。本形態の目的衝突困難なハッシュ関数は、以下のように定義される。
まず、集合Domkと集合Rngk(kは自然数のセキュリティパラメータ)との間を対応付けるハッシュ関数Hを想定する。また、このようなハッシュ関数Hの各セキュリティパラメータkに対する鍵空間が、KHkで示されるビット列による確率空間であるとする。さらに、入力1k(kビットデータ)に対する出力値の分布がKHkと等しくなる確率的多項式時間アルゴリズムが存在するものとする。また、セキュリティパラメータkと、KHkからその分布に従って任意に選択したh(h ←R KHk)と、集合Domkからその分布に従って任意に選択した集合D(D ←RDomk)と、集合Rngkからその分布に従って任意に選択した集合Rと(R ←R Rngk)のインデックスが付されたこのようなハッシュ関数Hh k,D,Rが、集合Dの要素を集合Rの要素にマッピングする関数であるものとする。なお、「α ←R β」は、集合βからその分布に従って任意に選択した集合αを意味する。さらに、1k,h及び集合Dの要素ρの入力に対して関数値Hh k,D,R(ρ)を出力する決定論多項式アルゴリズムが存在するものとする。
AdvTCRH,A(k)←Pr[ρ∈D∧ρ≠ρ*∧Hh k,D,R(ρ)=Hh k,D,R(ρ*)|ρ ←R A(1k,ρ*,h,D,R)] …(1)
ここで、どのような確率的多項式時間マシーンAに対しても優位性AdvTCRH,A(k)がセキュリティパラメータkにおいて無視できる程度に小さい場合、ハッシュ関数Hを目的衝突困難なハッシュ関数と呼ぶ。なお、このような目的衝突困難なハッシュ関数は、SHA-1などの実用的なハッシュ関数を用いて容易に構成できる。
擬似ランダム関数(Pseudo-Random Function)とは、入力値に対する出力値が真のランダム値と識別困難である関数を意味する。本形態の擬似ランダム関数は、以下のように定義される。
まず、シードSeedkと集合Domkと集合Rngkとの間を関連付ける関数Fを想定する。ここで、シードSeedkはランダムな値である。さらに、セキュリティパラメータkと、Seedkからその分布に従って任意に選択した集合Σ(Σ ←R Seedk)と、集合Σから一様に選択したσ(σ ←U Σ)と、集合Domkからその分布に従って任意に選択した集合D(D ←R Domk)と、集合Rngkからその分布に従って任意に選択した集合Rと(R ←RRngk)のインデックスが付されたこのような関数Fσ k,Σ,D,Rが、集合Dの要素を集合Rにマッピングする関数であるものとする。
AdvPRFF,A(k)←|Pr[AF(1k,D,R)→1] - Pr[ARF(1k,D,R)→1]| …(2)
ここで、どのような確率的多項式時間マシーンAに対しても優位性AdvPRFF,A(k)がセキュリティパラメータkにおいて無視できる程度に小さい場合、関数Fを擬似ランダム関数と呼ぶ。なお、このような目擬似ランダム関数は、SHA-1などの実用的なハッシュ関数を用いて容易に構成できる。
次に、本発明の第1実施形態について説明する。
<全体構成>
図1(a)は、第1実施形態の鍵共有システム1の構成を例示した図である。
図1(a)に例示するように、本形態の鍵共有システム1は、鍵を共有する第1装置10と第2装置とを有し、それらはインターネット等の安全ではないネットワーク30を通じて通信可能に接続されている。なお、第1装置10と第2装置20との間の通信はネットワーク30を通じて行われるが、以下ではその旨を省略して説明する。
図1(b)は、第1装置10のハードウェア構成を例示したブロック図である。
図1(b)に例示するように、この例の第1装置10は、CPU(Central Processing Unit)10a、入力部10b、出力部10c、補助記憶装置10d、RAM(Random Access Memory)10f、ROM(Read Only Memory)10e及びバス10gを有している。
CPU10aは、読み込まれた各種プログラムに従って様々な演算処理を実行する。また、入力部10bは、データが入力される入力ポート、キーボード、マウス等であり、出力部10cは、データを出力する出力ポート、ディスプレイ等である。補助記憶装置10dは、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、RAM10fは、SRAM (Static Random Access Memory)、DRAM (Dynamic Random Access Memory)等である。また、バス10gは、CPU10a、入力部10b、出力部10c、補助記憶装置10d、RAM10f及びROM10eを通信可能に接続している。
なお、第2装置20のハードウェア構成は、第1装置10のそれと同様であるため説明を省略する。
図2は、第1実施形態の第1装置10及び第2装置20の機能構成を例示したブロック図である。なお、図2における矢印はデータの流れを示すが、制御部13a,23aに出入りするデータの流れに対応する矢印は省略してある。
第1実施形態の第1装置10及び第2装置20は、それぞれ、上述のようなハードウェアに所定のプログラムが読み込まれ、CPUが実行することによって構築される。
次に、本形態の鍵共有処理について説明する。
図3は、第1実施形態の鍵共有処理を説明するためのフローチャートである。以下、この図を用いて本形態の鍵共有処理を説明する。
まず、第1装置の秘密鍵として(x1, x2, y1, y2)∈{0,1,...,p-1}4が設定され、これらが第1装置10の記憶部11に格納される(秘密鍵格納過程/ステップS1)。なお、演算の効率面からは、秘密鍵を(x1, x2, y1, y2)∈{0,1,...,p-1}4のように設定するのが好ましいが、任意の4つの整数(x1, x2, y1, y2)を第1装置10の秘密鍵としてもよい。また、有限群Gの元g1, g2∈Gと当該有限群G上での演算結果z=g1x1・g2x2∈G,w=g1y1・g2y2∈Gとを公開鍵として第1装置10の記憶部11に格納する(第1公開鍵格納過程/ステップS2)。次に、公開鍵g1, g2, z,wが送信部12aに送られ、送信部12aはこれらを第2装置20に送信する(ステップS3)。送信された公開鍵g1, g2, z,wは、第2装置20の受信部22bで受信され、第2装置20の記憶部21に格納される(第2公開鍵格納過程/ステップS4)。
次に、第2装置20の第1暗号化部23cが、第2装置20の記憶部21から公開鍵g1と整数rとを読み込み、有限群G上での演算
C1=g1r∈G …(3)
を行い、当該演算結果C1を第2装置20の記憶部21に格納する(第1暗号化過程/ステップS6)。さらに、第2装置20の第2暗号化部23dが、第2装置20の記憶部21から公開鍵g2と整数rとを読み込み、有限群G上での演算
C2=g2r∈G …(4)
を行い、当該演算結果C2を第2装置20の記憶部21に格納する(第2暗号化過程/ステップS7)。次に、第2装置20の関数演算部23eが、第2装置20の記憶部21から演算結果C1, C2と公開鍵z, wとをH関数入力値として読み込み、当該H関数入力値によって定まる値に対し、値域を整数とする目的衝突困難なハッシュ関数Hを作用させ、その演算結果
d=H(z, w, C1, C2) …(5)
を第2装置20の記憶部21に格納する(第2装置関数演算過程/ステップS8)。なお、演算効率の面からは、値域を{0,1,...,p-1}とする目的衝突困難なハッシュ関数(H(X)∈{0,1,...,p-1})を用いることが望ましい(以下、同様)。また、「H関数入力値によって定まる値」の例としては、例えば、有限群Gが有限体の乗法群の場合には、z, w, C1, C2のビット結合値やそれらの排他的論理和等を例示できる。また、例えば、有限群Gが楕円曲線上の有理点のなす群である場合には、楕円曲線上の点z, w, C1, C2の各座標値(x座標値とy座標値)のビット結合値や、各x座標値若しくはy座標値のビット結合値や、それらの排他的論理和等を、「H関数入力値によって定まる値」として用いることができる。
σ=zr・wr・d∈G …(6)
を行い、当該演算結果σを第2装置20の記憶部21に格納する(第2装置シード演算過程/ステップS9)。そして、第2装置20の鍵演算部23gが、第2装置20の記憶部21から演算結果σと、公開鍵(g1, g2, z, w)と、演算結果C1, C2とを読み込み、当該演算結果σをシードとし、公開鍵(g1, g2, z, w)と演算結果C1, C2とによって定まる値を入力とした擬似ランダム関数Fσの関数値を算出し、その関数値を鍵
K=Fσ(g1, g2, z, w, C1, C2) …(7)
として第2装置20の記憶部21に格納する(第2装置鍵演算過程/ステップS10)。なお、「公開鍵(g1, g2, z, w)と演算結果C1, C2とによって定まる値」の例としては、例えば、有限群Gが有限体の乗法群の場合には、g1, g2, z, w, C1, C2のビット結合値やそれらの排他的論理和等を例示できる。また、例えば、有限群Gが楕円曲線上の有理点のなす群である場合には、楕円曲線上の点g1, g2, z, w, C1, C2の各座標値(x座標値とy座標値)のビット結合値や、各x座標値若しくはy座標値のビット結合値や、それらの排他的論理和等を、「公開鍵(g1, g2, z, w)と演算結果C1, C2とによって定まる値」として用いることができる。また、演算結果σをシードとし、公開鍵(g1, g2, z, w)と演算結果C1, C2とによって定まる値を入力とした擬似ランダム関数Fσの関数値とは、例えば、演算結果σと「公開鍵(g1, g2, z, w)と演算結果C1, C2とによって定まる値」とを擬似ランダム関数Fσの入力とし、出力された関数値を意味し、より具体的には、例えば、演算結果σと「公開鍵(g1, g2, z, w)と演算結果C1, C2とによって定まる値」とのビット結合値に対して擬似ランダム関数Fσを作用させた演算結果を意味する。
d=H(z, w, C1, C2) …(8)
を第1装置10の記憶部11に格納する(第1装置関数演算過程/ステップS13)。次に、第1装置10のシード演算部13cが、第1装置10の記憶部11から演算結果C1, C2, dと秘密鍵x1, x2, y1, y2とを読み込み、有限群G上での演算
σ=C1(x1+d・y1)・C2(x2+d・y2) …(9)
を行い、当該演算結果σを第1装置10の記憶部11に格納する(第1装置シード演算過程/ステップS14)。その後、第1装置10の鍵演算部13dが、第1装置10の記憶部11から演算結果σと公開鍵(g1, g2, z, w)とを読み込み、ステップS10と同様に、当該演算結果σをシードとし、公開鍵(g1, g2, z, w)と演算結果C1, C2とによって定まる値を入力とした擬似ランダム関数Fσの関数値を算出し、その関数値を鍵
K=Fσ(g1, g2, z, w, C1, C2) …(10)
として第1装置10の記憶部11に格納する(第1装置鍵演算過程/ステップS15)。
以上の処理により、第1装置10と第2装置20とで鍵Kが共有される。
C1, C2が正しく作られていれば以下を満たし、第1装置10で算出されるシードσ(式(9))と第2装置20で算出されるシードσ(式(6))とが等しくなり、擬似ランダム関数Fσの関数値である鍵K(式(7)(10))も等しくなる。
σ=C1(x1+d・y1)・C2(x2+d・y2) (式(9)より)
={g1(x1+d・y1)・g2(x2+d・y2)}r(式(3)(4)より)
=(g1x1・g2x2)r・(g1y1・g2y2)d・r
= z r・wd・r(公開鍵z=g1x1・g2x2∈G,w=g1y1・g2y2∈Gより)
=式(6)
次に、本発明の第2実施形態について説明する。なお、以下では、第1実施形態との相違点を中心に説明し、第1実施形態と共通する事項については説明を省略する。
<全体構成>
本形態の鍵共有システムは、第1実施形態の第1装置10を第1装置110に置換し、第2装置20を第2装置120に置換したものである。
<ハードウェア構成>
第1装置110及び第2装置120のハードウェア構成は、第1実施形態で説明した第1装置10及び第2装置20のハードウェア構成と同様であるため、説明を省略する。
図4は、第2実施形態の第1装置110及び第2装置120の機能構成を例示したブロック図である。なお、図4における矢印はデータの流れを示すが、制御部13a,23aに出入りするデータの流れに対応する矢印は省略してある。また、図4において第1実施形態と共通する部分については、図2と同じ符号を付して説明を簡略化する。
図4に例示するように、本形態の第1装置110は、記憶部11と、送信部12aと、受信部12bと、制御部13aと、関数演算部13bと、第1シード演算部113cと、第2シード演算部113eと、鍵演算部113dとを有する。なお、第1シード演算部113c、第2シード演算部113e及び鍵演算部113dは、例えば、所定のプログラムがCPUに読み込まれ、実行されることによって構築される演算部である。
次に、本形態の鍵共有処理について説明する。
図5は、第2実施形態の鍵共有処理を説明するためのフローチャートである。以下、この図を用いて本形態の鍵共有処理を説明する。なお、図5において第1実施形態と共通する処理については図3と同じステップ番号を付し、説明を省略する。
まず、第1装置110と第2装置120とが第1実施形態で説明したステップS1〜S8の処理を実行した後、第2装置120の第1シード演算部123fが、第2装置120の記憶部21から公開鍵z, wと整数rと演算結果dとを読み込み、有限群G上での演算
σ1=zr・wr・d∈G …(11)
を行い、当該演算結果σを第2装置120の記憶部21に格納する(第2装置第1シード演算過程/ステップS109)。
σ2=zr・d・wr∈G …(12)
を行い、当該演算結果σ2を第2装置120の記憶部21に格納する(第2装置第2シード演算過程/ステップS110)。
K= Fσ1(g1, g2, z, w, C1, C2) (+) Fσ2(g1, g2, z, w, C1, C2) …(13)
として第2装置120の記憶部21に格納する(第2装置鍵演算過程/ステップS111)。なお、「α(+)β」は、αとβとの排他的論理和を意味する。
σ1=C1(x1+d・y1)・C2(x2+d・y2)∈G …(14)
を行い、当該演算結果σ1を第1装置110の記憶部11に格納する(第1装置第1シード演算過程/ステップS114)。また、第1装置110の第2シード演算部113eが、第1装置110の記憶部11から演算結果C1, C2, dと秘密鍵x1, x2, y1, y2とを読み込み、有限群G上での演算
σ2=C1(d・x1+y1)・C2(d・x2+y2)∈G …(15)
を行い、当該演算結果σ2を第1装置110の記憶部11に格納する(第1装置第2シード演算過程/ステップS115)。
K= Fσ1(g1, g2, z, w, C1, C2) (+) Fσ2(g1, g2, z, w, C1, C2) …(16)
として第1装置110の記憶部11に格納する(第1装置鍵演算過程/ステップS116)。
以上の処理により、第1装置110と第2装置120とで鍵Kが共有される。
C1, C2が正しく作られていれば以下を満たし、第1装置110で算出されるシードσ1,σ2(式(14)(15))と第2装置210で算出されるシードσ1,σ2(式(11)(12))とがそれぞれ等しくなり、擬似ランダム関数Fσの関数値である鍵K(式(13)(16))も等しくなる。
σ1=C1(x1+d・y1)・C2(x2+d・y2) (式(14)より)
={g1(x1+d・y1)・g2(x2+d・y2)}r(式(3)(4)より)
=(g1x1・g2x2)r・(g1y1・g2y2)d・r
= z r・wd・r(公開鍵z=g1x1・g2x2∈G,w=g1y1・g2y2∈Gより)
=式(11)
σ2=C1(d・x1+y1)・C2(d・x2+y2)(式(15)より)
={g1(d・x1+y1)・g2(d・x2+y2)}r(式(3)(4)より)
=(g1x1・g2x2)d・r・(g1y1・g2y2)r
= zd・r・wr(公開鍵z=g1x1・g2x2∈G,w=g1y1・g2y2∈Gより)
=式(12)
第1実施形態の鍵共有方式における暗号化処理時(ステップS6〜S10)の計算量は、有限群G上での指数演算3回分に相当する。また、復号処理時(ステップS13〜S15)の計算量は、有限群G上での指数演算1回分に相当する。また、ステップS11で送信される暗号文C1, C2のサイズは、有限群Gの2要素のサイズに相当する。また、この方式の安全性は、有限群GでDDH仮定が保たれ、Hが目的衝突困難なハッシュ関数であり、Fが擬似ランダム関数であることにより、標準モデルでCCA-安全であることが示される。
PSEC-KEMにおいては、暗号化処理時の計算量は、有限群G上での指数演算2回分に相当する。また、復号処理時の計算量は、有限群G上での指数演算2回分に相当する。また、暗号文のサイズは有限群Gの2要素のサイズに相当する。この方式の安全性は、ランダムオラクルモデルでCCA-安全であることが示されるが、標準モデルでは示されない。
以上より、上述の各実施形態の方式が、従来の方式のうちで最も効率のよいKurosawa-Desmedt方式及びPSEC-KEMとほぼ同等の効率であって、かつ安全性ではそれらの方式よりも優れていることが分かる。
なお、本発明は上述の実施の形態に限定されるものではない。例えば、上述の各実施形態のステップS8,S13では、演算結果C1, C2と公開鍵z, wとをH関数入力値とした。しかし、演算結果C1, C2と公開鍵z, wとを含むその他の情報をH関数入力値としてもよい。また、演算結果C1, C2の一方と公開鍵z, wとをH関数入力値としてもよいし、演算結果C1, C2の一方と公開鍵z, wの一方とをH関数入力値としてもよいし、演算結果C1, C2の一方とその他の情報とをH関数入力値としてもよい。
その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、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)等を用いることができる。
20,120 第2装置
Claims (12)
- 第1装置と第2装置とで鍵を共有するための鍵共有方法であって、
整数x1, x2, y1, y2を第1装置の秘密鍵として第1装置の記憶部に格納する秘密鍵格納過程と、
有限群Gの元g1, g2∈Gと当該有限群G上での演算結果z=g1x1・g2x2∈G,w=g1y1・g2y2∈Gとを公開鍵として上記第1装置の記憶部に格納する第1公開鍵格納過程と、
上記公開鍵g1, g2, z,wを上記第2装置の記憶部に格納する第2公開鍵格納過程と、
第2装置の整数選択部が、ランダムな整数rを選択し、当該整数rを上記第2装置の記憶部に格納する整数選択過程と、
第2装置の第1暗号化部が、上記第2装置の記憶部から公開鍵g1と整数rとを読み込み、有限群G上での演算C1=g1r∈Gを行い、当該演算結果C1を上記第2装置の記憶部に格納する第1暗号化過程と、
第2装置の第2暗号化部が、上記第2装置の記憶部から公開鍵g2と整数rとを読み込み、有限群G上での演算C2=g2r∈Gを行い、当該演算結果C2を上記第2装置の記憶部に格納する第2暗号化過程と、
第2装置の関数演算部が、上記第2装置の記憶部から少なくとも演算結果C1, C2の一方を含む情報をH関数入力値として読み込み、当該H関数入力値によって定まる値に対し、値域を整数とする目的衝突困難なハッシュ関数Hを作用させ、その演算結果dを上記第2装置の記憶部に格納する第2装置関数演算過程と、
第2装置のシード演算部が、上記第2装置の記憶部から公開鍵z, wと整数rと演算結果dとを読み込み、有限群G上での演算σ=zr・wr・d∈Gを行い、当該演算結果σを上記第2装置の記憶部に格納する第2装置シード演算過程と、
第2装置の鍵演算部が、上記第2装置の記憶部から少なくとも演算結果σを読み込み、当該演算結果σをシードとした擬似ランダム関数Fσの関数値を算出し、その関数値を鍵Kとして上記第2装置の記憶部に格納する第2装置鍵演算過程と、
第2装置の送信部が、演算結果C1, C2を第1装置に送信する演算結果送信過程と、
演算結果C1, C2を上記第1装置の記憶部に格納する演算結果格納過程と、
第1装置の関数演算部が、上記第1装置の記憶部から少なくとも演算結果C1, C2の一方を含む情報をH関数入力値として読み込み、当該H関数入力値によって定まる値に対し、上記ハッシュ関数Hを作用させ、その演算結果dを上記第1装置の記憶部に格納する第1装置関数演算過程と、
第1装置のシード演算部が、上記第1装置の記憶部から演算結果C1, C2, dと秘密鍵x1, x2, y1, y2とを読み込み、有限群G上での演算σ=C1(x1+d・y1)・C2(x2+d・y2)∈Gを行い、当該演算結果σを上記第1装置の記憶部に格納する第1装置シード演算過程と、
第1装置の鍵演算部が、上記第1装置の記憶部から少なくとも演算結果σを読み込み、当該演算結果σをシードとした擬似ランダム関数Fσの関数値を算出し、その関数値を鍵Kとして上記第1装置の記憶部に格納する第1装置鍵演算過程と、
を有することを特徴とする鍵共有方法。 - 請求項1に記載の鍵共有方法であって、
上記第2装置鍵演算過程は、上記第2装置の記憶部から少なくとも演算結果C1, C2の一方を含む情報を擬似ランダム関数入力値として読み込み、当該擬似ランダム関数入力値によって定まる値を入力とし、上記演算結果σをシードとした擬似ランダム関数Fσの関数値を算出し、その関数値を鍵Kとする過程であり、
上記第1装置鍵演算過程は、上記第1装置の記憶部から少なくとも演算結果C1, C2の一方を含む情報を擬似ランダム関数入力値として読み込み、当該擬似ランダム関数入力値によって定まる値を入力とし、上記演算結果σをシードとした擬似ランダム関数Fσの関数値を算出し、その関数値を鍵Kとする過程である、
ことを特徴とする鍵共有方法。 - 第1装置と第2装置とで鍵を共有するための鍵共有方法であって、
整数x1, x2, y1, y2を第1装置の秘密鍵として第1装置の記憶部に格納する秘密鍵格納過程と、
有限群Gの元g1, g2∈Gと当該有限群G上での演算結果z=g1x1・g2x2∈G,w=g1y1・g2y2∈Gとを公開鍵として上記第1装置の記憶部に格納する第1公開鍵格納過程と、
上記公開鍵g1, g2, z,wを第2装置の記憶部に格納する第2公開鍵格納過程と、
第2装置の整数選択部が、ランダムな整数rを選択し、当該整数rを上記第2装置の記憶部に格納する整数選択過程と、
第2装置の第1暗号化部が、上記第2装置の記憶部から公開鍵g1と整数rとを読み込み、有限群G上での演算C1=g1r∈Gを行い、当該演算結果C1を上記第2装置の記憶部に格納する第1暗号化過程と、
第2装置の第2暗号化部が、上記第2装置の記憶部から公開鍵g2と整数rとを読み込み、有限群G上での演算C2=g2r∈Gを行い、当該演算結果C2を上記第2装置の記憶部に格納する第2暗号化過程と、
第2装置の関数演算部が、上記第2装置の記憶部から少なくとも演算結果C1, C2の一方を含む情報をH関数入力値として読み込み、当該H関数入力値によって定まる値に対し、値域を整数とする目的衝突困難なハッシュ関数Hを作用させ、その演算結果dを上記第2装置の記憶部に格納する第2装置関数演算過程と、
第2装置の第1シード演算部が、上記第2装置の記憶部から公開鍵z, wと整数rと演算結果dとを読み込み、有限群G上での演算σ1=zr・wr・d∈Gを行い、当該演算結果σ1を上記第2装置の記憶部に格納する第2装置第1シード演算過程と、
第2装置の第2シード演算部が、上記第2装置の記憶部から公開鍵z, wと整数rと演算結果dとを読み込み、有限群G上での演算σ2=zr・d・wr∈Gを行い、当該演算結果σ2を上記第2装置の記憶部に格納する第2装置第2シード演算過程と、
第2装置の鍵演算部が、上記第2装置の記憶部から少なくとも演算結果σ1, σ2を読み込み、当該演算結果σ1をシードとした擬似ランダム関数Fσ1の関数値と、当該演算結果σ2をシードとした擬似ランダム関数Fσ2の関数値との排他的論理和演算を行い、その演算結果を鍵Kとして上記第2装置の記憶部に格納する第2装置鍵演算過程と、
第2装置の送信部が、演算結果C1, C2を第1装置に送信する演算結果送信過程と、
演算結果C1, C2を上記第1装置の記憶部に格納する演算結果格納過程と、
第1装置の関数演算部が、上記第1装置の記憶部から少なくとも演算結果C1, C2の一方を含む情報をH関数入力値として読み込み、当該H関数入力値によって定まる値に対し、上記ハッシュ関数Hを作用させ、その演算結果dを上記第1装置の記憶部に格納する第1装置関数演算過程と、
第1装置の第1シード演算部が、上記第1装置の記憶部から演算結果C1, C2, dと秘密鍵x1, x2, y1, y2とを読み込み、有限群G上での演算σ1=C1(x1+d・y1)・C2(x2+d・y2)∈Gを行い、当該演算結果σ1を上記第1装置の記憶部に格納する第1装置第1シード演算過程と、
第1装置の第2シード演算部が、上記第1装置の記憶部から演算結果C1, C2, dと秘密鍵x1, x2, y1, y2とを読み込み、有限群G上での演算σ2=C1(d・x1+y1)・C2(d・x2+y2)∈Gを行い、当該演算結果σ2を上記第1装置の記憶部に格納する第1装置第2シード演算過程と、
第1装置の鍵演算部が、上記第1装置の記憶部から少なくとも演算結果σ1, σ2を読み込み、当該演算結果σ1をシードとした擬似ランダム関数Fσ1の関数値と、当該演算結果σ2をシードとした擬似ランダム関数Fσ2の関数値との排他的論理和演算を行い、その演算結果を鍵Kとして上記第1装置の記憶部に格納する第1装置鍵演算過程と、
を有することを特徴とする鍵共有方法。 - 請求項3に記載の鍵共有方法であって、
上記第2装置鍵演算過程は、第2装置の鍵演算部が、少なくとも演算結果C1, C2の一方を含む情報を擬似ランダム関数入力値として読み込み、当該擬似ランダム関数入力値によって定まる値を入力とし、上記演算結果σ1をシードとした擬似ランダム関数Fσ1の関数値と、当該擬似ランダム関数入力値によって定まる値を入力とし、上記演算結果σ2をシードとした擬似ランダム関数Fσ2の関数値と、の排他的論理和演算を行い、その演算結果を鍵Kとする過程であり、
上記第1装置鍵演算過程は、第1装置の鍵演算部が、少なくとも演算結果C1, C2の一方を含む情報を擬似ランダム関数入力値として読み込み、当該擬似ランダム関数入力値によって定まる値を入力とし、上記演算結果σ1をシードとした擬似ランダム関数Fσ1の関数値と、当該擬似ランダム関数入力値によって定まる値を入力とし、上記演算結果σ2をシードとした擬似ランダム関数Fσ2の関数値と、の排他的論理和演算を行い、その演算結果を鍵Kとする過程である、
ことを特徴とする鍵共有方法。 - 請求項2又は4に記載の鍵共有方法であって、
上記擬似ランダム関数入力値は、
公開鍵g1, g2, z,wと演算結果C1, C2とを含む、
ことを特徴とする鍵共有方法。 - 請求項1から5の何れかに記載の鍵共有方法であって、
上記H関数入力値は、
公開鍵z,wと演算結果C1, C2とを含む、
ことを特徴とする鍵共有方法。 - 第2装置と鍵を共有する第1装置であって、
整数x1, x2, y1, y2を第1装置の秘密鍵として格納し、有限群Gの元g1, g2∈Gと当該有限群G上での演算結果z=g1x1・g2x2∈G,w=g1y1・g2y2∈Gとを公開鍵として格納し、第2装置から送信された演算結果C1, C2を格納する記憶部と、
上記記憶部から少なくとも演算結果C1, C2の一方を含む情報をH関数入力値として読み込み、当該H関数入力値によって定まる値に対し、上記ハッシュ関数Hを作用させ、その演算結果dを上記記憶部に格納する関数演算部と、
上記記憶部から演算結果C1, C2, dと秘密鍵x1, x2, y1, y2とを読み込み、有限群G上での演算σ=C1(x1+d・y1)・C2(x2+d・y2)∈Gを行い、当該演算結果σを上記記憶部に格納するシード演算部と、
上記記憶部から少なくとも演算結果σを読み込み、当該演算結果σをシードとした擬似ランダム関数Fσの関数値を算出し、その関数値を鍵Kとして上記記憶部に格納する鍵演算部と、
を有することを特徴とする第1装置。 - 第1装置と鍵を共有する第2装置であって、
整数x1, x2, y1, y2を第1装置の秘密鍵とした場合における、有限群Gの元g1, g2∈Gと当該有限群G上での演算結果z=g1x1・g2x2∈G,w=g1y1・g2y2∈Gとを第1装置の公開鍵として格納する記憶部と、
ランダムな整数rを選択し、当該整数rを上記記憶部に格納する整数選択部と、
上記記憶部から公開鍵g1と整数rとを読み込み、有限群G上での演算C1=g1r∈Gを行い、当該演算結果C1を上記記憶部に格納する第1暗号化部と、
上記記憶部から公開鍵g2と整数rとを読み込み、有限群G上での演算C2=g2r∈Gを行い、当該演算結果C2を上記記憶部に格納する第2暗号化部と、
上記記憶部から少なくとも演算結果C1, C2の一方を含む情報をH関数入力値として読み込み、当該H関数入力値によって定まる値に対し、値域を整数とする目的衝突困難なハッシュ関数Hを作用させ、その演算結果dを上記記憶部に格納する関数演算部と、
上記記憶部から少なくとも公開鍵z, wと整数rと演算結果dとを読み込み、有限群G上での演算σ=zr・wr・d∈Gを行い、当該演算結果σを上記記憶部に格納するシード演算部と、
上記記憶部から少なくとも演算結果σを読み込み、当該演算結果σをシードとした擬似ランダム関数Fσの関数値を算出し、その関数値を鍵Kとして上記記憶部に格納する鍵演算部と、
演算結果C1, C2を第1装置に送信する送信部と、
を有することを特徴とする第2装置。 - 第2装置と鍵を共有する第1装置であって、
整数x1, x2, y1, y2を第1装置の秘密鍵として格納し、有限群Gの元g1, g2∈Gと当該有限群G上での演算結果z=g1x1・g2x2∈G,w=g1y1・g2y2∈Gとを公開鍵として格納し、第2装置から送信された演算結果C1, C2を格納する記憶部と、
上記記憶部から少なくとも演算結果C1, C2の一方を含む情報をH関数入力値として読み込み、当該H関数入力値によって定まる値に対し、上記ハッシュ関数Hを作用させ、その演算結果dを上記記憶部に格納する関数演算部と、
上記記憶部から少なくとも演算結果C1, C2, dと秘密鍵x1, x2, y1, y2とを読み込み、有限群G上での演算σ1=C1(x1+d・y1)・C2(x2+d・y2)∈Gを行い、当該演算結果σ1を上記記憶部に格納する第1シード演算部と、
上記記憶部から少なくとも演算結果C1, C2, dと秘密鍵x1, x2, y1, y2とを読み込み、有限群G上での演算σ2=C1(d・x1+y1)・C2(d・x2+y2)∈Gを行い、当該演算結果σ2を上記記憶部に格納する第2シード演算部と、
上記記憶部から少なくとも演算結果σ1, σ2を読み込み、当該演算結果σ1をシードとした擬似ランダム関数Fσ1の関数値と、当該演算結果σ2をシードとした擬似ランダム関数Fσ2の関数値との排他的論理和演算を行い、その演算結果を鍵Kとして上記記憶部に格納する鍵演算部と、
を有することを特徴とする第1装置。 - 第1装置と鍵を共有する第2装置であって、
整数x1, x2, y1, y2を第1装置の秘密鍵とした場合における、有限群Gの元g1, g2∈Gと当該有限群G上での演算結果z=g1x1・g2x2∈G,w=g1y1・g2y2∈Gとを第1装置の公開鍵として格納する記憶部と、
ランダムな整数rを選択し、当該整数rを上記記憶部に格納する整数選択部と、
上記記憶部から公開鍵g1と整数rとを読み込み、有限群G上での演算C1=g1r∈Gを行い、当該演算結果C1を上記記憶部に格納する第1暗号化部と、
上記記憶部から公開鍵g2と整数rとを読み込み、有限群G上での演算C2=g2r∈Gを行い、当該演算結果C2を上記記憶部に格納する第2暗号化部と、
上記記憶部から少なくとも演算結果C1, C2の一方を含む情報をH関数入力値として読み込み、当該H関数入力値によって定まる値に対し、上記ハッシュ関数Hを作用させ、その演算結果dを上記記憶部に格納する関数演算部と、
上記記憶部から少なくとも公開鍵z, wと整数rと演算結果dとを読み込み、有限群G上での演算σ1=zr・wr・d∈Gを行い、当該演算結果σ1を上記記憶部に格納する第1シード演算部と、
上記記憶部から少なくとも公開鍵z, wと整数rと演算結果dとを読み込み、有限群G上での演算σ2=zr・d・wr∈Gを行い、当該演算結果σ2を上記記憶部に格納する第2シード演算部と、
上記記憶部から少なくとも演算結果σ1, σ2を読み込み、当該演算結果σ1をシードとした擬似ランダム関数Fσ1の関数値と、当該演算結果σ2をシードとした擬似ランダム関数Fσ2の関数値との排他的論理和演算を行い、その演算結果を鍵Kとして上記記憶部に格納する鍵演算部と、
演算結果C1, C2を第1装置に送信する送信部と、
を有することを特徴とする第2装置。 - 請求項7又は9の第1装置としてコンピュータを機能させるためのプログラム。
- 請求項8又は10の第2装置としてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007306737A JP5038868B2 (ja) | 2007-11-28 | 2007-11-28 | 鍵共有方法、第1装置、第2装置、及びそれらのプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007306737A JP5038868B2 (ja) | 2007-11-28 | 2007-11-28 | 鍵共有方法、第1装置、第2装置、及びそれらのプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009130871A true JP2009130871A (ja) | 2009-06-11 |
JP5038868B2 JP5038868B2 (ja) | 2012-10-03 |
Family
ID=40821308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007306737A Active JP5038868B2 (ja) | 2007-11-28 | 2007-11-28 | 鍵共有方法、第1装置、第2装置、及びそれらのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5038868B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009130872A (ja) * | 2007-11-28 | 2009-06-11 | Nippon Telegr & Teleph Corp <Ntt> | 鍵共有方法、第1装置、第2装置、及び、それらのプログラム |
JP2011160136A (ja) * | 2010-01-29 | 2011-08-18 | Kddi Corp | 鍵交換システム、鍵交換方法及び鍵交換プログラム |
-
2007
- 2007-11-28 JP JP2007306737A patent/JP5038868B2/ja active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009130872A (ja) * | 2007-11-28 | 2009-06-11 | Nippon Telegr & Teleph Corp <Ntt> | 鍵共有方法、第1装置、第2装置、及び、それらのプログラム |
JP2011160136A (ja) * | 2010-01-29 | 2011-08-18 | Kddi Corp | 鍵交換システム、鍵交換方法及び鍵交換プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP5038868B2 (ja) | 2012-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2376651C2 (ru) | Использование изогений для разработки криптосистем | |
EP1993086B1 (en) | Elliptical curve encryption parameter generation device, elliptical curve encryption calculation device, elliptical curve encryption parameter generation program, and elliptical curve encryption calculation program | |
Das et al. | Cryptanalysis and improvement of an access control in user hierarchy based on elliptic curve cryptosystem | |
JP4137385B2 (ja) | 公開鍵および秘密鍵による暗号化方法 | |
US20050002532A1 (en) | System and method of hiding cryptographic private keys | |
US6038581A (en) | Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed | |
US7912216B2 (en) | Elliptic curve cryptosystem optimization using two phase key generation | |
JP2010277085A (ja) | Rsaアルゴリズムにおける素数生成の保護 | |
TWI686722B (zh) | 用於加密操作之指數分拆技術 | |
JP4351987B2 (ja) | モンゴメリ変換装置、演算装置、icカード、暗号装置、復号装置及びプログラム | |
JP4690819B2 (ja) | 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置 | |
Liu et al. | Optimization of AES and RSA algorithm and its mixed encryption system | |
JP4922139B2 (ja) | 鍵共有方法、第1装置、第2装置、及び、それらのプログラム | |
JP5038868B2 (ja) | 鍵共有方法、第1装置、第2装置、及びそれらのプログラム | |
JP5730805B2 (ja) | 格子問題に基づく階層型内積暗号システム,格子問題に基づく階層型内積暗号方法,装置 | |
JP2010160235A (ja) | 検索システム、端末装置、データベース装置、検索方法及びプログラム | |
Das et al. | Improved efficiency of a linearly homomorphic cryptosystem | |
Mono et al. | Implementing and Optimizing Matrix Triples with Homomorphic Encryption | |
JP4836208B2 (ja) | 暗号化/復号化プログラム、暗号化/復号化装置及び拡大体の乗算装置 | |
JP4773941B2 (ja) | 代理署名装置、署名者装置、署名検証装置及びそれらのプログラム | |
JP4676873B2 (ja) | パラメータ生成装置、暗号鍵生成装置、それらの方法及びプログラム | |
Chuengsatiansup et al. | Pairing-friendly twisted hessian curves | |
JP2017223822A (ja) | 暗号文処理システム、暗号文処理サーバ、及び暗号文処理方法 | |
JP4692022B2 (ja) | 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム | |
JP2009128773A (ja) | 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100114 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20110812 |
|
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: 20120626 |
|
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: 20120706 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150713 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5038868 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 |