JP4922139B2 - 鍵共有方法、第1装置、第2装置、及び、それらのプログラム - Google Patents
鍵共有方法、第1装置、第2装置、及び、それらのプログラム Download PDFInfo
- Publication number
- JP4922139B2 JP4922139B2 JP2007306738A JP2007306738A JP4922139B2 JP 4922139 B2 JP4922139 B2 JP 4922139B2 JP 2007306738 A JP2007306738 A JP 2007306738A JP 2007306738 A JP2007306738 A JP 2007306738A JP 4922139 B2 JP4922139 B2 JP 4922139B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- storage unit
- value
- key
- calculation
- 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.)
- Active
Links
Images
Description
Law, L., Menezes, A., Qu, M., Solinas, J. and Vanstone, "An Efficient Protocol for Authenticated Key Agreement," Designs, Codes and Cryptography 28, pp. 119-134 (2003) Krawczk, H., "HMQV: A High-Performance Secure Diffie-Hellman Protocol", [online],received 13 Jun 2005, last revised 5 Jul 2005, Advances in Cryptography, CRYPTO 2005, LNCS 3621 (2005), [2007年11月16日検索], インターネット<http://eprint.iacr.org/2005/176> LaMacchia, B., Lauter, K. and Mityagin, A., "Stronger Security of Authenticated Key Exchange", [online], received 23 Feb 2006, last revised 31 Mar 2006, Cryptology ePrint Archive, Report 2006/073, [2007年11月16日検索], インターネット<http://eprint.iacr.org/2006/073> Ustaoglu, B., "Obtaining a secure and efficient key agreement protocol from (H)MQV and NAXOS", [online], received 28 Mar 2007, last revised 16 May 2007, Cryptology ePrint Archive, Report 2007/123, [2007年11月16日検索], インターネット<http://eprint.iacr.org/2007/123>
本発明は、このような点に鑑みてなされたものであり、従来の最も実用的な方式と同等の効率を持ち、なおかつ標準モデルで安全性が保証される鍵共有技術を提供することを目的とする。
〔準備〕
まず、用語の説明を行う。
<有限群>
以下の各実施形態では、離散対数問題が難しい有限群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を有している。
なお、第2装置20のハードウェア構成は、第1装置10のそれと同様であるため説明を省略する。
図2は、第1実施形態の第1装置10の機能構成を例示したブロック図である。また、図3は、第2実施形態の第2装置20の機能構成を例示したブロック図である。なお、図2及び図3における矢印はデータの流れを示すが、制御部13a,23aに出入りするデータの流れに対応する矢印は省略してある。
図2に例示するように、本形態の第1装置10は、記憶部11と、送信部12aと、受信部12bと、制御部13aと、ランダム値選択部13bと、擬似ランダム関数演算部13cと、第1暗号化部13dと、第2暗号化部13eと、第1関数演算部13fと、第2関数演算部13gと、シード演算部13hと、鍵演算部13iとを有する。なお、記憶部11は、例えば、キャッシュメモリ、レジスタ、RAM、若しくは補助記憶装置、又はそれらを結合した記憶領域である。また、送信部12a及び受信部12bは、所定のプログラムが読み込まれたCPUの制御のもと駆動するLANカード、モデム等の通信装置である。さらに、制御部13a、ランダム値選択部13b、擬似ランダム関数演算部13c、第1暗号化部13d、第2暗号化部13e、第1関数演算部13f、第2関数演算部13g、シード演算部13h及び鍵演算部13iは、例えば、所定のプログラムがCPUに読み込まれ、実行されることによって構築される演算部である。
また、第1装置10,第2装置20は、それぞれ、制御部13a,23aの制御の下、各処理を実行する。
次に、本形態の鍵共有処理について説明する。
図4及び図5は、本形態の鍵共有処理を説明するためのシーケンス図である。以下、これらの図を用いて本形態の鍵共有処理を説明する。
前処理として、第1装置10と第2装置20との共通パラメータとして、有限群Gの元g1, g2∈Gと有限群Gの位数pとが、第1装置10の記憶部11と第2装置の記憶部12とに格納される。
また、第1装置10の公開鍵として有限群G上での演算結果A1=g1a1・g2a2∈G,A2=g1a3・g2a4∈Gが設定され、これらが第1装置10の記憶部11に格納される(第1公開鍵格納過程/ステップS2)。なお、本形態では、第1装置10の公開鍵A1, A2を含むid情報Aが記憶部11に格納される。
また、第2装置20の公開鍵として有限群G上での演算結果B1=g1b1・g2b2∈G,B2=g1b3・g2b4∈Gが設定され、これらが第2装置20の記憶部21に格納される(第2公開鍵格納過程/ステップS4)。なお、本形態では、第2装置20の公開鍵B1, B2を含むid情報Bが記憶部21に格納される。
次に、第1装置10のランダム値選択部13bが、kビット列のランダム値rxを選択し、当該ランダム値rxを第1装置10の記憶部11に格納する(第1装置シード選択過程/ステップS9)。
x={F1(rx)(a1, a2, a3, a4) + F2(a1, a2, a3, a4)(rx)} mod p …(3)
によって整数x∈{0,1,...,p-1}が算出・格納される。なお、「読み込んだ第1装置10の秘密鍵によって定まる値」としては、例えば、読み込んだ第1装置10の秘密鍵のビット結合値等を例示できる。
X1=g1x∈G …(4)
を行い、当該演算結果X1を第1装置10の記憶部11に格納する(第1装置第1暗号化過程/ステップS11)。また、第1装置10の第2暗号化部13eが、第1装置10の記憶部11から整数xと有限群Gの元g2とを読み込み、有限群G上での演算
X2=g2x∈G …(5)
を行い、当該演算結果X2を第1装置10の記憶部11に格納する(第1装置第2暗号化過程/ステップS12)。
次に、第2装置20のランダム値選択部23bが、kビット列のランダム値ryを選択し、当該ランダム値ryを第2装置20の記憶部21に格納する(第2装置シード選択過程/ステップS15)。
x={F1(ry)(b1, b2, b3, b4) + F2(b1, b2, b3, b4)(ry)} mod p …(6)
によって整数x∈{0,1,...,p-1}が算出・格納される。なお、「読み込んだ第2装置20の秘密鍵によって定まる値」としては、例えば、読み込んだ第2装置20の秘密鍵のビット結合値等を例示できる。
Y1=g1y∈G …(7)
を行い、当該演算結果Y1を第2装置20の記憶部21に格納する(第2装置第1暗号化過程/ステップS17)。
また、第2装置20の第2暗号化部23eが、第2装置20の記憶部21から整数yと有限群Gの元g2とを読み込み、有限群G上での演算
Y2=g2y∈G …(8)
を行い、当該演算結果Y2を第2装置20の記憶部21に格納する(第2装置第2暗号化過程/ステップS18)。
c=H1(A, Y1, Y2) …(9)
を第2装置20の記憶部21に格納する(第2装置第1関数演算過程/ステップS21)。また、「H1関数入力値によって定まる値」の例としては、例えば、有限群Gが有限体の乗法群の場合には、A, Y1, Y2のビット結合値やそれらの排他的論理和等を例示できる。また、例えば、有限群Gが楕円曲線上の有理点のなす群である場合には、楕円曲線上の点A, Y1, Y2の各座標値(x座標値とy座標値)のビット結合値や、各x座標値若しくはy座標値のビット結合値や、それらの排他的論理和等を、「H1関数入力値によって定まる値」として用いることができる。
d=H2(B, X1, X2) …(10)
を第2装置20の記憶部21に格納する(第2装置第2関数演算過程/ステップS22)。なお、「H2関数入力値によって定まる値」の具体例としては、例えば、「H1関数入力値によって定まる値」の具体例と同様なものを挙げることができる。また、目的衝突困難なハッシュ関数H1と目的衝突困難なハッシュ関数H2とは同一の関数であってもよいし、異なる関数であってもよい。
σ=X1(b1+d・b3+y)・X2(b2+d・b4+y)・A1y・A2c・y∈G …(11)
を行い、当該演算結果σを第2装置20の記憶部21に格納する(第2装置シード演算過程/ステップS23)。
K=Fσ(A, B, X1, X2, Y1, Y2) …(12)
として第2装置の記憶部に格納する(第2装置鍵演算過程/ステップS24)。なお、「id情報A, Bと演算結果X1, X2, Y1, Y2とによって定まる値」の例としては、例えば、有限群Gが有限体の乗法群の場合には、A, B, X1, X2, Y1, Y2のビット結合値やそれらの排他的論理和等を例示できる。また、例えば、有限群Gが楕円曲線上の有理点のなす群である場合には、楕円曲線上の点A, B, X1, X2, Y1, Y2の各座標値(x座標値とy座標値)のビット結合値や、各x座標値若しくはy座標値のビット結合値や、それらの排他的論理和等を、「id情報A, Bと演算結果X1, X2, Y1, Y2とによって定まる値」として用いることができる。また、演算結果σをシードとし、id情報A, Bと演算結果X1, X2, Y1, Y2とによって定まる値を入力とした擬似ランダム関数Fσの関数値とは、例えば、演算結果σと「id情報A, Bと演算結果X1, X2, Y1, Y2とによって定まる値」とを擬似ランダム関数Fσの入力とし、出力された関数値を意味し、より具体的には、例えば、演算結果σと「id情報A, Bと演算結果X1, X2, Y1, Y2とによって定まる値」とのビット結合値に対して擬似ランダム関数Fσを作用させた演算結果を意味する。
c=H1(A, Y1, Y2) …(13)
を第1装置10の記憶部11に格納する(第1装置第1関数演算過程/ステップS25)。
d=H2(B, X1, X2) …(14)
を第1装置10の記憶部11に格納する(第1装置第2関数演算過程/ステップS26)。
σ=Y1(a1+c・a3+x)・Y2(a2+c・a4+x)・B1x・B2d・x∈G …(15)
を行い、当該演算結果σを第1装置10の記憶部11に格納する(第1装置シード演算過程/ステップS27)。
K=Fσ(A, B, X1, X2, Y1, Y2) …(16)
として第1装置の記憶部に格納する(第1装置鍵演算過程/ステップS28)。
以上の処理により、第1装置10と第2装置20とで鍵Kが共有される。
上述の手順が正しく実行されれば以下を満たし、第1装置10で算出されるシードσ(式(11))と第2装置20で算出されるシードσ(式(15))とが等しくなり、擬似ランダム関数Fσの関数値である鍵K(式(12)(16))も等しくなる。
σ=Y1(a1+c・a3+x)・Y2(a2+c・a4+x)・B1x・B2d・x(式(15))
=g1y・(a1+c・a3+x)・g2y・(a2+c・a4+x)・(g1b1・g2b2)x・(g1b3・g2b4)d・x(式(7)(8), B1,B2の定義)
=(g1a1・g2a2)y・(g1a3・g2a4)c・y・(g1・g2)x・y・g1x(b1+d・b3)・g2x(b2+d・b4)
=A1y・A2 c・y・X1y・X2y・X1(b1+d・b3)・X2(b2+d・b4)(式(4)(5), A1,A2の定義)
= A1y・A2 c・y・X1(b1+d・b3+y)・X2(b2+d・b4+y)
=式(11)
本形態の鍵共有方式において、第1装置10及び第2装置20の計算量は、それぞれ、有限群G上での指数演算3回に相当する。また、第1装置10及び第2装置20の送信情報量(id情報以外)は、有限群Gの2要素のサイズに相当する。また、この方式の安全性は、標準モデルで安全であることが示される。
以上より、本形態の方式が、従来の方式とほぼ同等の効率でありながら、安全性ではそれらの方式よりも優れていることが分かる。
K*を目的のセッションで共有される鍵とし、R*←U {0,1}|K*|とし、b* ←U {0,1}とする。攻撃者Mによるテスト要求に対する応答として、b*=0であればK*が攻撃者Mに与えられ、そうでなければR*が攻撃者Mに与えられる。そして、最終的に攻撃者Mはb∈{0,1}を出力する。これについて以下を定義する。
AdvAKEM(k) ← |Pr(b=b*)‐1/2| …(17)
ここで、以下の条件が満たされる場合、その鍵共有プロトコルは安全(eCK安全)であるといえる。
(条件2)どのような確率的多項式時間攻撃者Mに対しても、AdvAKEM(k)がセキュリティパラメータkにおいて無視できる。
ここで、本形態の方式が上述の(条件1)を満たすことは明らかである。また、本形態の方式では、有限群GにおいてDDH仮定が保たれ、H1, H2が目的衝突困難ハッシュ関数であり、F, F1, F2が擬似ランダム関数であることから(条件2)を満たすことも証明できる。よって、本形態の方式は安全であるといえる。
なお、本発明は上述の実施の形態に限定されるものではない。
例えば、本形態では、ステップS10において{F1(rx)(a1, a2, a3, a4)+F2(a1, a2, a3, a4)(rx)} mod pを整数xとし、ステップS16において{F1(ry)(b1, b2, b3, b4)+F2(b1, b2, b3, b4)(ry)} mod pを整数yとした。しかし、ステップS10においてF1(rx)(a1, a2, a3, a4)+F2(a1, a2, a3, a4)(rx)を整数xとし、ステップS16においてF1(ry)(b1, b2, b3, b4)+F2(b1, b2, b3, b4)(ry)を整数yとしてもよい。さらに、ステップS10においてF1(rx)(a1, a2, a3, a4)とF2(a1, a2, a3, a4)(rx)との他の演算によって定まる値を整数xとし、ステップS16においてF1(ry)(b1, b2, b3, b4)とF2(b1, b2, b3, b4)(ry)との他の演算によって定まる値を整数yとしてもよい。また、ステップS10において秘密鍵a1, a2, a3, a4の一部とランダム値rxとを用いて整数xを生成し、ステップS16において秘密鍵b1, b2, b3, b4の一部とランダム値ryとを用いて整数yを生成してもよい。
また、本形態では、ステップS22,S26において、演算結果X1, X2とid情報AとをH2関数入力値としたが、演算結果X1, X2と第2装置20の公開鍵B1,B2とを含むその他の情報をH2関数入力値としてもよい。また、演算結果X1, X2の一方と公開鍵B1,B2とをH2関数入力値としてもよいし、演算結果X1, X2の一方と公開鍵B1,B2の一方とをH2関数入力値としてもよいし、演算結果X1, X2の一方とその他の情報とをH2関数入力値としてもよい。
その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
20 第2装置
Claims (9)
- 第1装置と第2装置とで鍵を共有するための鍵共有方法であって、
整数a1, a2, a3, a4を第1装置の秘密鍵として第1装置の記憶部に格納する第1装置秘密鍵格納過程と、
g1, g2を有限群Gの元g1, g2∈Gとした場合における、有限群G上での演算結果A1=g1a1・g2a2∈G,A2=g1a3・g2a4∈Gを第1装置の公開鍵として上記第1装置の記憶部に格納する第1公開鍵格納過程と、
整数b1, b2, b3, b4を第2装置の秘密鍵として第2装置の記憶部に格納する第2装置秘密鍵格納過程と、
有限群G上での演算結果B1=g1b1・g2b2∈G,B2=g1b3・g2b4∈Gを第2装置の公開鍵として上記第2装置の記憶部に格納する第2公開鍵格納過程と、
上記第1装置の公開鍵A1, A2を上記第2装置の記憶部に格納する第3公開鍵格納過程と、
上記第2装置の公開鍵B1, B2を上記第1装置の記憶部に格納する第4公開鍵格納過程と、
第1装置のランダム値選択部が、ランダム値rxを選択し、当該ランダム値rxを上記第1装置の記憶部に格納する第1装置シード選択過程と、
第1装置の擬似ランダム関数演算部が、上記第1装置の記憶部から第1装置の秘密鍵a1, a2, a3, a4の少なくとも一部とランダム値rxとを読み込み、読み込んだ第1装置の秘密鍵によって定まる値を入力とし、ランダム値rxをシードとした擬似ランダム関数F1(rx)(a1, a2, a3, a4)の関数値と、ランダム値rxを入力とし、読み込んだ第1装置の秘密鍵によって定まる値をシードとした擬似ランダム関数F2(a1, a2, a3, a4)(rx)の関数値と、によって定まる整数xを算出し、当該整数xを上記第1装置の記憶部に格納する第1装置擬似ランダム関数演算過程と、
第1装置の第1暗号化部が、上記第1装置の記憶部から整数xを読み込み、有限群G上での演算X1=g1x∈Gを行い、当該演算結果X1を上記第1装置の記憶部に格納する第1装置第1暗号化過程と、
第1装置の第2暗号化部が、上記第1装置の記憶部から整数xを読み込み、有限群G上での演算X2=g2x∈Gを行い、当該演算結果X2を上記第1装置の記憶部に格納する第1装置第2暗号化過程と、
第1装置の送信部が、少なくとも上記演算結果X1, X2を第2装置に送信する第1演算結果送信過程と、
少なくとも上記演算結果X1, X2を上記第2装置の記憶部に格納する第1演算結果格納過程と、
第2装置のランダム値選択部が、ランダム値ryを選択し、当該ランダム値ryを上記第2装置の記憶部に格納する第2装置シード選択過程と、
第2装置の擬似ランダム関数演算部が、上記第2装置の記憶部から第2装置の秘密鍵b1, b2, b3, b4の少なくとも一部とランダム値ryとを読み込み、読み込んだ第2装置の秘密鍵によって定まる値を入力とし、ランダム値ryをシードとした擬似ランダム関数F1(ry)(b1, b2, b3, b4)の関数値と、ランダム値ryを入力とし、読み込んだ第2装置の秘密鍵によって定まる値をシードとした擬似ランダム関数F2(b1, b2, b3, b4)(ry)の関数値と、によって定まる整数yを算出し、当該整数yを上記第2装置の記憶部に格納する第2装置擬似ランダム関数演算過程と、
第2装置の第1暗号化部が、上記第2装置の記憶部から整数yを読み込み、有限群G上での演算Y1=g1y∈Gを行い、当該演算結果Y1を上記第2装置の記憶部に格納する第2装置第1暗号化過程と、
第2装置の第2暗号化部が、上記第2装置の記憶部から整数yを読み込み、有限群G上での演算Y2=g2y∈Gを行い、当該演算結果Y2を上記第2装置の記憶部に格納する第2装置第2暗号化過程と、
第2装置の送信部が、少なくとも上記演算結果Y1, Y2を第1装置に送信する第2演算結果送信過程と、
第2装置の第1関数演算部が、上記第2装置の記憶部から少なくとも演算結果Y1, Y2の一方を含む情報をH1関数入力値として読み込み、当該H1関数入力値によって定まる値に対し、値域を整数とする目的衝突困難なハッシュ関数H1を作用させ、その演算結果cを上記第2装置の記憶部に格納する第2装置第1関数演算過程と、
第2装置の第2関数演算部が、上記第2装置の記憶部から少なくとも演算結果X1, X2の一方を含む情報をH2関数入力値として読み込み、当該H2関数入力値によって定まる値に対し、値域を整数とする目的衝突困難なハッシュ関数H2を作用させ、その演算結果dを上記第2装置の記憶部に格納する第2装置第2関数演算過程と、
第2装置のシード演算部が、上記第2装置の記憶部から演算結果X1, X2, c, dと公開鍵A1, A2と秘密鍵b1, b2, b3, b4と整数yとを読み込み、有限群G上での演算σ=X1(b1+d・b3+y)・X2(b2+d・b4+y)・A1y・A2c・y∈Gを行い、当該演算結果σを上記第2装置の記憶部に格納する第2装置シード演算過程と、
第2装置の鍵演算部が、上記第2装置の記憶部から少なくとも演算結果σを読み込み、当該演算結果σをシードとした擬似ランダム関数Fσの関数値を算出し、その関数値を鍵Kとして上記第2装置の記憶部に格納する第2装置鍵演算過程と、
第1装置の第1関数演算部が、上記第1装置の記憶部から少なくとも演算結果Y1, Y2の一方を含む情報をH1関数入力値として読み込み、当該H1関数入力値によって定まる値に対し、値域を整数とする目的衝突困難なハッシュ関数H1を作用させ、その演算結果cを上記第1装置の記憶部に格納する第1装置第1関数演算過程と、
第1装置の第2関数演算部が、上記第1装置の記憶部から少なくとも演算結果X1, X2の一方を含む情報をH2関数入力値として読み込み、当該H2関数入力値によって定まる値に対し、値域を整数とする目的衝突困難なハッシュ関数H2を作用させ、その演算結果dを上記第1装置の記憶部に格納する第1装置第2関数演算過程と、
第1装置のシード演算部が、上記第1装置の記憶部から演算結果Y1, Y2, c, dと公開鍵B1, B2と秘密鍵a1, a2, a3, a4と整数xとを読み込み、有限群G上での演算σ=Y1(a1+c・a3+x)・Y2(a2+c・a4+x)・B1x・B2d・x∈Gを行い、当該演算結果σを上記第1装置の記憶部に格納する第1装置シード演算過程と、
第1装置の鍵演算部が、上記第1装置の記憶部から少なくとも演算結果σを読み込み、当該演算結果σをシードとした擬似ランダム関数Fσの関数値を算出し、その関数値を鍵Kとして上記第1装置の記憶部に格納する第1装置鍵演算過程と、
を有することを特徴とする鍵共有方法。 - 請求項1に記載の鍵共有方法であって、
上記第1装置擬似ランダム関数演算過程は、
第1装置の擬似ランダム関数演算部が、上記第1装置の記憶部からすべての秘密鍵a1, a2, a3, a4を読み込み、擬似ランダム関数F1(rx)(a1, a2, a3, a4)の関数値と擬似ランダム関数F2(a1, a2, a3, a4)(rx)の関数値との和に対する有限群Gの位数pを法とした剰余演算を行い、その演算結果{F1(rx)(a1, a2, a3, a4)+F2(a1, a2, a3, a4)(rx)} mod pを上記整数xとして算出する過程であり、
上記第2装置擬似ランダム関数演算過程は、
第2装置の擬似ランダム関数演算部が、上記第2装置の記憶部からすべての秘密鍵b1, b2, b3, b4を読み込み、擬似ランダム関数F1(ry)(b1, b2, b3, b4)の関数値と擬似ランダム関数F2(b1, b2, b3, b4)(ry)の関数値との和に対する有限群Gの位数pを法とした剰余演算を行い、その演算結果{F1(ry)(b1, b2, b3, b4)+F2(b1, b2, b3, b4)(ry)} mod pを上記整数yとして算出する過程である、
ことを特徴とする鍵共有方法。 - 請求項1又は2に記載の鍵共有方法であって、
上記H1関数入力値は、
演算結果Y1, Y2と第1装置の公開鍵A1,A2とを含み、
上記H2関数入力値は、
演算結果X1, X2と第2装置の公開鍵B1,B2とを含む、
ことを特徴とする鍵共有方法。 - 請求項1から3のいずれかに記載の鍵共有方法であって、
上記第2装置鍵演算過程は、
上記第2装置の記憶部から少なくとも演算結果X1, X2, Y1, Y2の一部を擬似ランダム関数入力値として読み込み、当該擬似ランダム関数入力値によって定まる値を入力とし、上記演算結果σをシードとした擬似ランダム関数Fσの関数値を算出し、その関数値を鍵Kとする過程であり、
上記第1装置鍵演算過程は、
上記第1装置の記憶部から少なくとも演算結果X1, X2, Y1, Y2の一部を擬似ランダム関数入力値として読み込み、当該擬似ランダム関数入力値によって定まる値を入力とし、上記演算結果σをシードとした擬似ランダム関数Fσの関数値を算出し、その関数値を鍵Kとする過程である、
ことを特徴とする鍵共有方法。 - 請求項4に記載の鍵共有方法であって、
上記擬似ランダム関数入力値は、
演算結果X1, X2, Y1, Y2と第1装置の公開鍵A1,A2と第2装置の公開鍵B1,B2とを含む、
ことを特徴とする鍵共有方法。 - 第2装置と鍵を共有する第1装置であって、
整数a1, a2, a3, a4を第1装置の秘密鍵として格納し、有限群G上での演算結果A1=g1a1・g2a2∈G,A2=g1a3・g2a4∈Gを第1装置の公開鍵として格納し、有限群G上での演算結果B1=g1b1・g2b2∈G,B2=g1b3・g2b4∈G(整数b1, b2, b3, b4は第2装置の秘密鍵)を第2装置の公開鍵として格納する記憶部と、
ランダム値rxを選択し、当該ランダム値rxを上記記憶部に格納するランダム値選択部と、
上記記憶部から第1装置の秘密鍵a1, a2, a3, a4の少なくとも一部とランダム値rxとを読み込み、読み込んだ第1装置の秘密鍵によって定まる値を入力とし、ランダム値rxをシードとした擬似ランダム関数F1(rx)(a1, a2, a3, a4)の関数値と、ランダム値rxを入力とし、読み込んだ第1装置の秘密鍵によって定まる値をシードとした擬似ランダム関数F2(a1, a2, a3, a4)(rx)の関数値と、によって定まる整数xを算出し、当該整数xを上記記憶部に格納する擬似ランダム関数演算部と、
上記記憶部から整数xを読み込み、有限群G上での演算X1=g1x∈Gを行い、当該演算結果X1を上記記憶部に格納する第1暗号化部と、
上記記憶部から整数xを読み込み、有限群G上での演算X2=g2x∈Gを行い、当該演算結果X2を上記記憶部に格納する第2暗号化部と、
少なくとも上記演算結果X1, X2を第2装置に送信する送信部と、
第2装置から送信された演算結果Y1, Y2を受信して上記記憶部に格納する受信部と、
上記記憶部から少なくとも演算結果Y1, Y2の一方を含む情報をH1関数入力値として読み込み、当該H1関数入力値によって定まる値に対し、値域を整数とする目的衝突困難なハッシュ関数H1を作用させ、その演算結果cを上記記憶部に格納する第1関数演算部と、
上記記憶部から少なくとも演算結果X1, X2の一方を含む情報をH2関数入力値として読み込み、当該H2関数入力値によって定まる値に対し、値域を整数とする目的衝突困難なハッシュ関数H2を作用させ、その演算結果dを上記記憶部に格納する第2関数演算部と、
上記記憶部から演算結果Y1, Y2, c, dと公開鍵B1, B2と秘密鍵a1, a2, a3, a4と整数xとを読み込み、有限群G上での演算σ=Y1(a1+c・a3+x)・Y2(a2+c・a4+x)・B1x・B2d・x∈Gを行い、当該演算結果σを上記記憶部に格納するシード演算部と、
上記記憶部から少なくとも演算結果σを読み込み、当該演算結果σをシードとした擬似ランダム関数Fσの関数値を算出し、その関数値を鍵Kとして上記記憶部に格納する鍵演算部と、
を有することを特徴とする第1装置。 - 第1装置と鍵を共有する第2装置であって、
整数b1, b2, b3, b4を第2装置の秘密鍵として格納し、有限群G上での演算結果B1=g1b1・g2b2∈G,B2=g1b3・g2b4∈Gを第2装置の公開鍵として格納し、有限群G上での演算結果A1=g1a1・g2a2∈G,A2=g1a3・g2a4∈G(整数a1, a2, a3, a4は第1装置の秘密鍵)を第1装置の公開鍵として格納する記憶部と、
第1装置から送信された演算結果X1, X2を受信して上記記憶部に格納する受信部と、
ランダム値ryを選択し、当該ランダム値ryを上記記憶部に格納するランダム値選択部と、
上記記憶部から第2装置の秘密鍵b1, b2, b3, b4の少なくとも一部とランダム値ryとを読み込み、読み込んだ第2装置の秘密鍵によって定まる値を入力とし、ランダム値ryをシードとした擬似ランダム関数F1(ry)(b1, b2, b3, b4)の関数値と、ランダム値ryを入力とし、読み込んだ第2装置の秘密鍵によって定まる値をシードとした擬似ランダム関数F2(b1, b2, b3, b4)(ry)の関数値と、によって定まる整数yを算出し、当該整数yを上記記憶部に格納する擬似ランダム関数演算部と、
上記記憶部から整数yを読み込み、有限群G上での演算Y1=g1y∈Gを行い、当該演算結果Y1を上記記憶部に格納する第1暗号化部と、
上記記憶部から整数yを読み込み、有限群G上での演算Y2=g2y∈Gを行い、当該演算結果Y2を上記記憶部に格納する第2暗号化部と、
少なくとも上記演算結果Y1, Y2を第1装置に送信する送信部と、
上記記憶部から少なくとも演算結果Y1, Y2の一方を含む情報をH1関数入力値として読み込み、当該H1関数入力値によって定まる値に対し、値域を整数とする目的衝突困難なハッシュ関数H1を作用させ、その演算結果cを上記記憶部に格納する第1関数演算部と、
上記記憶部から少なくとも演算結果X1, X2の一方を含む情報をH2関数入力値として読み込み、当該H2関数入力値によって定まる値に対し、値域を整数とする目的衝突困難なハッシュ関数H2を作用させ、その演算結果dを上記記憶部に格納する第2関数演算部と、
上記記憶部から演算結果X1, X2, c, dと公開鍵A1, A2と秘密鍵b1, b2, b3, b4と整数yとを読み込み、有限群G上での演算σ=X1(b1+d・b3+y)・X2(b2+d・b4+y)・A1y・A2c・y∈Gを行い、当該演算結果σを上記記憶部に格納するシード演算部と、
記憶部から少なくとも演算結果σを読み込み、当該演算結果σをシードとした擬似ランダム関数Fσの関数値を算出し、その関数値を鍵Kとして記憶部に格納する鍵演算部と、
を有することを特徴とする第2装置。 - 請求項6に記載の第1装置としてコンピュータを機能させるためのプログラム。
- 請求項7に記載の第2装置としてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007306738A JP4922139B2 (ja) | 2007-11-28 | 2007-11-28 | 鍵共有方法、第1装置、第2装置、及び、それらのプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007306738A JP4922139B2 (ja) | 2007-11-28 | 2007-11-28 | 鍵共有方法、第1装置、第2装置、及び、それらのプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009130872A JP2009130872A (ja) | 2009-06-11 |
JP4922139B2 true JP4922139B2 (ja) | 2012-04-25 |
Family
ID=40821309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007306738A Active JP4922139B2 (ja) | 2007-11-28 | 2007-11-28 | 鍵共有方法、第1装置、第2装置、及び、それらのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4922139B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5295048B2 (ja) * | 2009-09-07 | 2013-09-18 | 日本電信電話株式会社 | 情報共有システム、方法及びプログラム |
JP5414558B2 (ja) * | 2010-01-29 | 2014-02-12 | Kddi株式会社 | 鍵交換システム、鍵交換方法及び鍵交換プログラム |
JP5449214B2 (ja) * | 2011-01-19 | 2014-03-19 | 日本電信電話株式会社 | 情報共有方法、情報共有システム、情報共有装置、及びプログラム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7747865B2 (en) * | 2005-02-10 | 2010-06-29 | International Business Machines Corporation | Method and structure for challenge-response signatures and high-performance secure Diffie-Hellman protocols |
JP5038868B2 (ja) * | 2007-11-28 | 2012-10-03 | 日本電信電話株式会社 | 鍵共有方法、第1装置、第2装置、及びそれらのプログラム |
-
2007
- 2007-11-28 JP JP2007306738A patent/JP4922139B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2009130872A (ja) | 2009-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6810122B1 (en) | Secret sharing system and storage medium | |
CN103023637B (zh) | 一种云存储中可撤销的关键字搜索公钥加密及搜索方法 | |
Liu et al. | An efficient privacy-preserving outsourced computation over public data | |
US6038581A (en) | Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed | |
JP4137385B2 (ja) | 公開鍵および秘密鍵による暗号化方法 | |
EP0936776B1 (en) | A network system using a threshold secret sharing method | |
US20220045840A1 (en) | Methods and systems for somewhat homomorphic encryption and key updates based on geometric algebra for distributed ledger/blockchain technology | |
Su et al. | How to securely outsource the inversion modulo a large composite number | |
JP4690819B2 (ja) | 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置 | |
JP4922139B2 (ja) | 鍵共有方法、第1装置、第2装置、及び、それらのプログラム | |
Ruan et al. | An efficient private set intersection protocol for the cloud computing environments | |
US7177422B2 (en) | Elliptic curve encryption processing method, elliptic curve encryption processing apparatus, and program | |
Zhao et al. | A privacy preserving homomorphic computing toolkit for predictive computation | |
JP5038868B2 (ja) | 鍵共有方法、第1装置、第2装置、及びそれらのプログラム | |
JP4528114B2 (ja) | 鍵生成装置、暗号化装置、検査装置、復号化装置並びに鍵生成プログラム、暗号化プログラム、検査プログラム、復号化プログラム | |
JP4773941B2 (ja) | 代理署名装置、署名者装置、署名検証装置及びそれらのプログラム | |
Alecci et al. | Pell hyperbolas in DLP–based cryptosystems | |
JP5227201B2 (ja) | ビットコミットメントシステム、ビットコミットメント方法、ビットコミットメント送信装置、ビットコミットメント受信装置、ビットコミットメント送信方法、ビットコミットメント受信方法、ビットコミットメントプログラム | |
JP4685621B2 (ja) | 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム | |
JP4598269B2 (ja) | 楕円曲線上の高速有限体演算 | |
JP2017223822A (ja) | 暗号文処理システム、暗号文処理サーバ、及び暗号文処理方法 | |
JP4676873B2 (ja) | パラメータ生成装置、暗号鍵生成装置、それらの方法及びプログラム | |
WO2023228408A1 (ja) | パラメータ生成システム、パラメータ生成方法、及びパラメータ生成プログラム | |
Goo et al. | Reconfigurable real number field elliptic curve cryptography to improve the security | |
Dooms et al. | Shaping Post-Quantum Cryptography: The Hidden Subgroup and Shift Problems |
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 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120116 |
|
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: 20120124 |
|
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: 20120203 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4922139 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150210 Year of fee payment: 3 |
|
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 |