JP2004282575A - Interaction key generation method - Google Patents

Interaction key generation method Download PDF

Info

Publication number
JP2004282575A
JP2004282575A JP2003073581A JP2003073581A JP2004282575A JP 2004282575 A JP2004282575 A JP 2004282575A JP 2003073581 A JP2003073581 A JP 2003073581A JP 2003073581 A JP2003073581 A JP 2003073581A JP 2004282575 A JP2004282575 A JP 2004282575A
Authority
JP
Japan
Prior art keywords
key
user
enc
asymmetric
alice
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.)
Pending
Application number
JP2003073581A
Other languages
Japanese (ja)
Inventor
Jun Anzai
潤 安齋
Tsutomu Matsumoto
勉 松本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003073581A priority Critical patent/JP2004282575A/en
Publication of JP2004282575A publication Critical patent/JP2004282575A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To make it clear when and who shares asymmetrical private key corresponding to an interaction key by verifying the relation between information and a public key (interaction key) which are transmitted and received in a key shared protocol. <P>SOLUTION: A plurality of user terminals (Alice and Bob) are provided and the asymmetrical shared key CK is secretly shared by using the key shared protocol Z. A center (Charley), which is an observer, calculates, by using an algorithm α, a group public key (interaction key IK) corresponding to the secretly shared asymmetrical shared key CK from intercepted communication (interaction sentence IM) between the terminals. At the point in time when the asymmetrical shared key CK is secretly shared, the interaction key IK is also already becomes calculable and a real time nature is guaranteed. The relation between the information to be transmitted and received by using the key shared protocol Z and the public key (interaction key) is verified by the center and it is made clear when and who secretly shares the asymmetrical shared key CK corresponding to the interaction key IK. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、対話鍵とその生成法に関し、特に、鍵共有プロトコルにおいて、いつ誰が秘密鍵を共有したかが分かるようにした、秘密鍵に対応する公開鍵である対話鍵とその生成法に関する。
【0002】
【従来の技術】
従来の鍵共有方式における共通鍵の共有方法を説明する。AliceとBob間で共通鍵を共有する方法として、Diffie−Hellman法と、その数多くのバリエーションや、これらを3つ以上のエンティティ間に拡張した方式(例えば[BD94])が知られている。共有された共通鍵は、多くの場合、共通鍵暗号やMAC(メッセージ認証子)に使用される。また、Server−Client間のセキュアセッションを提供するSSL3.0[SSL]/TLS1.0[TLS](鍵共有方式がRSAの場合)のように、共通鍵の元となる値をRSAで暗号化配送する方法も知られており、ここでも共有された共通鍵は、共通鍵暗号とMACに使用される。
【0003】
これらの方式において、共有した共通鍵を公開鍵暗号の秘密鍵として使用するためには、共通鍵を保持するAliceとBobが、事前に取り決めた共通鍵から公開鍵を生成する手順により計算して公開し、検証者が全ての公開鍵が等しいことを検証すればよい。以降、この方式をSimple Methodと呼ぶ。
【0004】
公開鍵と秘密鍵の共有方法について説明する。RSAの公開鍵と秘密鍵をAliceとBob間で共有する方式[PS98,G99]、または3つ以上のエンティティ間で共有する方式[BF97]が知られている。これらの方式では、プロトコルに参加する全エンティティが公開鍵を計算できるが、秘密鍵については、各エンティティはその分散値のみを計算できるという特徴を持つ。
【0005】
しかしながら、[PS98,G99]では、プロトコルに参加するエンティティのみが自身の秘密鍵を用いて公開鍵を計算できる。また、[BF97]では、プロトコルに参加するエンティティとして、Helperと呼ばれる秘密鍵の分散値を得られないエンティティを仮定しており、Helperのみが公開鍵を計算できる。結局、これらの方式においては、プロトコルに参加するエンティティしか公開鍵を計算できない。したがって、検証者が公開鍵を得るためには、Simple Methodと同様に、プロトコルに参加するエンティティが公開鍵を計算後に公開する必要がある。
【0006】
Simple Methodについて説明する。簡単化のためユーザ数を2として、複数ユーザ間で共通鍵を共有し、各ユーザが共通鍵から計算した公開鍵を検証者に公開する例を示す。AliceとBobは、それぞれ公開鍵YAliceとYBob、秘密鍵XAliceとXBobを保持しており、検証者はYAliceとYBobを知っているものとする。また、AliceとBobは共通鍵から公開鍵を計算する手順を事前に共有している。
【0007】
AliceとBobの処理は以下の通りである。
Step1:既存の鍵共有方式(例えばDiffie−Hellman)を用いて、共通鍵CKを共有する。
Step2:Aliceは、共通鍵CKを公開鍵暗号の秘密鍵とする公開鍵PKAlice(BobはPKBob)を計算する。
Step3:Aliceは、PKAlice(BobはPKBob)に対して、XAlice(BobはXBob)を用いて、ディジタル署名SIGAlice(BobはSIGBob)を計算する。
Step4:Aliceは、PKAlice(BobはPKBob)とSIGAlice(BobはSIGBob)を、検証者に公開する。
【0008】
検証者の処理は、以下の通りである。
Step5:署名SIGAliceとSIGBobを検証する。成功ならStep6へ,失敗なら終了する。
Step6:PKAlice=PKBobなら受理し、不成立なら終了する。
【0009】
通話内容証明について説明する。通話内容証明とは、ある複数のエンティティ間で行われた通話の内容を、通話後に第三者に証明するサービスである。従来の通話内容証明に利用可能なサービスとして、電子公証やタイムスタンプがある。タイムスタンプは、ある時点にコンテンツが存在していたことを証明する技術である。これらのサービスを通話内容証明に利用するためには、主にそれぞれのAuthorityに通話内容を送信して、各Authorityのディジタル署名を発行してもらい、サービスの利用者は、そのディジタル署名を検証者に公開することで通話内容を証明する。図7に、従来の通話内容証明方法の一例の手順を示す。
【0010】
【非特許文献1】
[BF97]D. Boneh, M. Franklin, ”Efficient Generation of Shared RSA Keys,” Advanced in Cryptology−CRYPTO ’97, pp. 425−439, Springer−Verlag, 1997.
【非特許文献2】
[BD94]M. Burmester, Y. Desmedt, ”A Secure and Efficient Conference Key Distribution System”, Advances in Cryptology−EUROCRYPT’94, pp.275− 285, Springer−Verlag, 1994.
【非特許文献3】
[DF89]Y. Desmedt, Y. Frankel, ”Threshold cryptosystems”, Advances in Cryptology−Crypto’89, LNCS435, pp.307−315, Springer−Verlag, 1989.
【非特許文献4】
[TLS]T. Dierks, C. Allen, ”The TLS Protocol Version 1.0,” Request for Comments: 2246, 1999.
【非特許文献5】
[SSL]A. Freier, P. Karlton, and P. Kocher, ”The SSL Protocol Version 3.0,” Transport Layer Security Working Group, INTERNET−DRAFT, 1996.
【非特許文献6】
[G99]N. Gilboa, ”Two Party RSA Key Generation,” Advanced in Cryptology−CRYPTO’99, pp. 116−129, Springer−Verlag, 1999.
【非特許文献7】
[P91]T. Pederson, ”A Threshold Cryptosystem without a Trusted Party,” Advanced in Cryptology−EURO ・・・・・’・・, pp. 522−526, Springer−Verlag, 1991.
【非特許文献8】
[PS98]G. Poupard, J. Stern, ”Generation of Shared RSA Keys by Two Parties,” Advanced in Cryptology− ・・・・・・・・・’・・, pp.11−24, Springer−Verlag, 1998.
【非特許文献9】
[S79]A.Shamir, ”How to share a secret”, Comm. Assoc. Comput.Mach., vol.22, no.11, pp.612−3, 1979.
【0011】
【発明が解決しようとする課題】
しかし、従来のSimple Methodでは、検証者は、公開鍵の署名と等しいことの検証しか行えないため、以下のような問題がある。
(1)検証者は、公開された公開鍵がいつ誰により共有された共通鍵に対応するか分からない。
(2)検証者は、公開鍵を公開しないユーザがいる場合に、公開鍵を受理できない。
【0012】
また、従来の通話内容証明の方法には、大きく2つの問題がある。1つは、通話時刻と署名発行時刻が等しくないため、リアルタイム性に欠けるという問題である。2つ目は、Authorityが受信した通話内容が、そもそも通話内容であることが保証されないという問題である。仮に、通話内容M(例えば契約書)に対して、AliceとBobの署名が発行されていても、AliceとBobが通話者であるとは限らない。なぜならば、先に署名したエンティティ(Alice)は、後に署名するエンティティが誰であるか分からないため、通話者の署名であるとは保証できない。
【0013】
例えば、Authorityが受け取った通話内容として、
Aliceが想定する通話内容:SIG(SECRETAlice,M)‖SIG(SECRETBob,M)‖M
Aliceが想定外の通話内容:SIG(SECRETAlice,M)‖SIG(SECRETCharley,M)‖M
のどちらもありうる。
【0014】
これを解決するために、通話内容にAliceとBobの名を記載することもできるが、事前に通話内容やその署名を用意できない、検証者やAuthorityがいちいちそれを確認する手間がかかる、通話内容が暗号化されていればそれもできない、といった問題がある。
【0015】
これらを解決する次の方法が存在する。
▲1▼電話機等に、電話の通信ログを取るハードウエアを内蔵させて、通話データにタイムスタンプを付与するシステムがある。電話による商取引などの際、協定世界時(UTC)に同期したタイムスタンプを通話データに付与できる音声記録公証システムである。時刻認証サービスを時刻認証局とし、タイムスタンプ局とボイス・ロギング・システムを組み合わせる。第三者機関による時刻認証を利用することで、通話内容の信頼性を確保できる。しかし、リアルタイム性が無いし、記録が通話内容であることの保証が、ログを取るハードウエアの信頼性に依存するという問題がある。
▲2▼AliceとBobしか持たない秘密鍵SECRETAliceBobにより作成した、通話内容に対する署名を発行し、検証者は、その秘密鍵に対応した公開鍵により通話内容を検証する。しかし、SIG(SECRETAliceBob,M)‖SIG(SECRETAlice,M)‖SIG(SECRET ob,M)‖Mからは、AliceとBob以外にも同じ秘密鍵を持つエンティティがいることが否定できないし、リアルタイム性も保証されない。
【0016】
また、ユーザ数が2人の場合のみを想定しているDH型対話鍵生成法を単純に3人以上に拡張した場合、各ユーザの演算量と通信量がそれぞれ人数に依存して増加し、効率が大きく低下するという問題がある。
【0017】
本発明は、上記従来の問題を解決して、鍵共有プロトコルにおいて送受信される情報と公開鍵(対話鍵)の関係を検証できるようにして、対話鍵に対応する秘密鍵をいつ誰が共有したかが分かるようにすることを目的とする。また、DH型対話鍵生成法を、効率を低下させることなくユーザ数を3人以上に拡張することを目的とする。すなわち、検証者は、鍵共有プロトコルにおいてユーザ間で送受信される情報から、当該鍵共有プロトコルにより共有される秘密鍵に対応する公開鍵(対話鍵)を計算できるようにし、秘密鍵を共有可能な時点では公開鍵(対話鍵)も既に計算可能となっているようにして、リアルタイム性も保証されるようにする。なお、タイムスタンプは、ある時点にコンテンツが存在していたことを証明する技術であるのに対して、対話鍵は、ある時点以前に対話鍵に対応する共通鍵が存在しないことを証明する技術である。
【0018】
【課題を解決するための手段】
上記の課題を解決するために、本発明では、非対称共通鍵を計算可能な鍵交換手段を持つ複数の端末と、センタとからなる鍵交換システムのセンタに、端末間の通信を傍受可能な傍受手段と、傍受した通信から非対称共通鍵を非対称秘密鍵とするグループ公開鍵である対話鍵を計算する手段とを備えた構成とした。
【0019】
このように構成したことにより、鍵共有プロトコルにおいて送受信される情報と公開鍵(対話鍵)の関係が検証でき、対話鍵に対応する非対称秘密鍵をいつ誰が共有したかが分かる。また、ユーザが3人以上の場合には、リング型の通信経路を採用して、各ユーザの通信先を限定することにより、演算量と通信量を削減することができる。
【0020】
【発明の実施の形態】
以下、本発明の実施の形態について、図1〜図6を参照しながら詳細に説明する。
【0021】
(第1の実施の形態)
本発明の第1の実施の形態は、複数のユーザ端末の間で、秘密分散法を利用した鍵共有プロトコルにより非対称共通鍵を秘密に共有し、センタは、傍受した端末間の通信から、秘密に共有された非対称共通鍵に対応するグループ公開鍵(対話鍵)を計算する、Threshold Cryptosystem(TC)型の対話鍵共有システムである。
【0022】
図1は、本発明の第1の実施の形態における対話鍵共有システムの概念図である。図1において、ユーザ1(Alice)とユーザ2(Bob)は、証明を必要とする通話を行なう当事者である。オブザーバ3(Charley)は、通信を傍受して、通話内容に関して証明を行なうセンタである。対話文4は、ユーザの間で通信される鍵共有のためのデータである。共通鍵5は、ユーザにより秘密に共有される暗号鍵である。対話鍵6は、共通鍵5に対応する公開鍵であり、対話文4と公開情報からだれでも生成できる。
【0023】
図2は、本発明の第1の実施の形態における対話鍵共有システムの構成図である。図2において、鍵交換手段7は、非対称共通鍵を、対話文から計算する手段である。傍受手段8は、端末間の通信を傍受する手段である。対話鍵計算手段9は、対話文から対話鍵を計算する手段である。図3は、対話鍵共有システムの動作手順を示す流れ図である。
【0024】
本発明の第1の実施の形態における対話鍵共有システムの動作原理と動作手順を説明する。最初に、図1を参照しながら、“対話鍵”の概念を説明する。通信を行なう複数エンティティ、例えばAlice(ユーザ1)とBob(ユーザ2)がある。この例では2つであるが、3つ以上でもよい。AliceとBobの間で、ある鍵共有プロトコルZを実行し、共通鍵CKを共有する。この共通鍵CKは、公開鍵方式(非対称鍵方式)のグループ秘密鍵である。AliceとBobの間の通信を観察(傍受)することにより、鍵共有を行わないで対話鍵IKを生成するエンティティ(オブザーバ3(Charley))がある。“対話鍵”とは、この共通鍵CKを非対称秘密鍵とするグループ公開鍵である。対話鍵は、鍵共有プロトコルZにおいてAliceとBob間で送受信される公開の対話文IMから、アルゴリズムαにより計算できなければならない。
【0025】
“対話鍵”の最大の特徴は、いつ誰によって共有された非対称共通鍵に対応する公開鍵であるのかを、Charley自身が判断できる点にある。例えば、AliceとBobを、携帯電話やPCを持つユーザとし、Charleyを、通信キャリアのGWやISPとする。このとき、対話鍵のアプリケーションとして、通話内容証明と公開鍵証明書の発行が考えられる。前者(通話内容証明)は、AliceとBobが非対称共通鍵を使用して、暗号化・署名した通話(例えば契約に関する通話)を行い、Charleyはその通話を記録しておき、検証者の要求に応じて、対話鍵を用いて通話内容を証明するサービスである。後者(公開鍵証明書の発行)は、Charleyが対話鍵に対する公開鍵証明書を発行するサービスである。いずれも、通話内容や証明書の検証者が、いつ誰が共有した対話鍵か判断できることが利点となる。
【0026】
用語を以下のように定義する。
(1)ユーザ:非対称共通鍵の共有を行うユーザである。ユーザ同士の結託によるオブザーバへの攻撃は想定しない。ユーザ数が2の場合はAliceとBobと呼ぶ。
(2)オブザーバ:ユーザ間の対話を観察できる第三者であり、対話文IMから対話鍵IKを計算する多項式時間アルゴリズムαと、対話文IMと対話鍵IKの関係を検証する多項式アルゴリズムβを持つ。オブザーバ数が1の場合はCharleyと呼ぶ。
(3)非対称共通鍵(CK):ある時点において、複数のユーザが鍵共有プロトコルにより秘密に共有した非対称共通鍵である。公開鍵方式(非対称鍵方式)でない秘密鍵方式(対称鍵方式)の共通鍵(対称秘密鍵)と区別するために、非対称共通鍵とよぶことにする。公開鍵方式の個別の秘密鍵を、非対称秘密鍵とよぶ。
(4)対話:非対称共通鍵CKの共有のため行われるユーザ間の平文の交換である。この平文を対話文(IM)と呼ぶ。
(5)対話鍵(IK):全ユーザをメンバとするグループの公開鍵であり、入力を対話文IM、出力を対話鍵IKとする多項式時間アルゴリズムαにより計算される。ここで、対話鍵IKは、対話文IMにより共有された非対称共通鍵CKを非対称秘密鍵とする公開鍵である。
(6)検証者:通話者(ユーザ)とオブザーバ以外の第三者であり、通話内容の検証を求める者である。
【0027】
以下に、本発明が満たすべき条件を示す。一般の鍵共有方式で要求される条件は省略するが、本発明においても満たす必要がある。
(1)生成可能性:対話文IMから対話鍵IKを計算する多項式時間アルゴリズムαが存在する。
(2)検証可能性:対話文IMと対話鍵IKの関係を検証する多項式時間アルゴリズムβが存在する。
(3)耐性:全ユーザが非対称共通鍵CKを計算できる時点では、必ずオブザーバも対話鍵IKを計算できる。
(4)守秘性:オブザーバが対話文IMから非対称共通鍵CKを得られない。
【0028】
以下に、本発明に用いる記号を定義し、簡単に説明する。
(1)p:大きな素数である。大きな素数とは、例えば、1024bit程度の素数であり、離散対数問題が事実上解けない大きさの素数である。
(2)q:(p−1)を割り切る大きな素数である。例えば、160bit程度の素数である。
(3)g:Z での位数がqとなる元である。すなわち、Z 上の乗法群で、g=1 modpであり、0<r<qであるrでは、g≠1 modpである。Z は、0以上p未満かつpと互いに素な整数の集合である。Zは、0以上q未満の整数の集合である。pが素数の場合は、Z はZ−{0}である。p,q,gは固定のパラメータであり、全エンティティが予め共有しているものとする。この例では、簡単化のために、離散対数問題型の暗号方式を用いるが、楕円曲線暗号を用いてもよい。
(4)H:ハッシュ関数である。
(5)X:ユーザiの非対称秘密鍵である。
(6)Y:ユーザiの非対称秘密鍵Xに対する公開鍵である。ここでは、簡単化のために、同じ鍵ペアを公開鍵暗号およびディジタル署名に使用するが、実際には別々の鍵ペアを使用することが望ましい。
(7)i:Xを秘密に保持するユーザのIDであり、(1≦i≦n)の整数である。整数iをIDとするユーザを、ユーザiまたはUser iとよぶ。
(8)P_ENC(y,m):公開鍵yにより平文mを公開鍵方式で暗号化する関数である。公開鍵yに対応する非対称秘密鍵で復号できる。
(9)C_ENC(K,m):対称秘密鍵Kにより平文mを対称秘密鍵方式で暗号化する関数である。対称秘密鍵Kにより復号できる。
(10)MAC(K,m):対称秘密鍵Kにより平文mに対するMAC(メッセージ認証子)を生成する関数である。対称秘密鍵Kによりmに対する改ざんの有無を検証できる。
(11)SIG(x,m):非対称秘密鍵xにより平文mに署名する関数である。非対称秘密鍵xに対応する公開鍵により署名の検証ができる。ここでは、例として添付型の署名方式を想定している。
(12)L(Ψ,w):ラグランジェ補間係数(Ψ:集合,w:整数)であり、
L(Ψ,w)=Π ∈Ψ\ {w} t/(t−w) modq
で定義される。Ψ\{w}は、集合Ψから集合{w}を除いた集合である。
【0029】
次に、Threshold Cryptosystem(TC)型の対話鍵生成方法の概要を説明する。ユーザの総数をn(2≦n≦q−1)とする。秘密分散法における分散値から秘密値を復元できる閾値を(n+1)とする。すなわち、(n+1)個以上の分散値があれば、秘密値を復元できる。分散値の総数を2n(分散値の番号の集合をΔとする)とする。このようなthreshold cryptosystemを用いることにより、対話鍵を生成可能な鍵共有法を構成できる。秘密分散法の詳細は、[DF89]や[P91]を参照。
【0030】
各ユーザiは、以下の処理を実施する。
Step1:秘密分散法により、閾値を(n+1)とする非対称共通鍵CK(∈Z)の分散値CK2i−1,CK2i(∈Z)を生成する。
Step2:IK(=g^(CK2i−1) modp)、CK2i、検証値F(分散値の生成に用いた多項式の係数を指数とし、gを底とし、pを法としたベキ乗剰余値)を計算する。
Step3:IK,CK2i,Fを公開する。
Step4:合計(n+1)個の分散値(公開されたn個と自身の1個)から非対称共通鍵CKを復元する。
【0031】
Charleyは、以下の処理を実施する。
Step5:全IK,CK2iをFで検証し、成功ならばStep6へ、失敗ならばErrorを公開する。
Step6:IK=Πi=1 (IK L( Δ , 2i−1)*g^(CK2i*L(Δ,2i))) modpを計算する。この結果は、IK=gCK modpとなる。
【0032】
Charleyは、IKとg^(CK2i)を合わせて、(n+1)以上の分散値を集められるために、IKを計算できる。しかし、CK2iをn以下しか集められないために、CKを復元できない。
【0033】
Threshold Cryptosystem(TC)型の対話鍵生成方法を詳しく説明する。
(1)ユーザiの処理
(Step1)
a)乱数R(∈Z)を生成する。
b)Z上の任意のn次多項式f(w)を生成する。
c)fi,0=Rとして、
(w)=fi,0*w+fi,1*w+・+fi,n*w
を計算する。
d)F={Fi,k=g^(fi,k)|k=0,1・・,n}を計算する。
e)CKi,j=f(j) (j=1・・・・・・2n)を計算する。ユーザiは、2つの分散値を保持する。このとき、iに対応するjは、(2i−1)と(2i)となる。
f)自身以外の全てのユーザv(v≠i)に対して、
ENCi,v=P_ENC(Y,i‖CKi,2v−1‖CKi,2v
を計算する。
g)ENCi,vに対する署名SIG(X,i‖ENCi,v)を計算し、ENCi,vと共にユーザvに送信する。
h)Fに対する署名SIG(X,i‖F)を計算し、Fと共に全ユーザに送信する。ここで、‖は連接を意味する。
【0034】
(Step2)
a)全ユーザv(v≠i)のENCv,i,SIG(X,v‖ENCv,i),F,SIG(X,v‖F)を受信する。
b)YでSIG(X,v‖ENCv,i)を検証し、成功すれば、ENCv,iをXで復号し、CKv,2i−1‖CKv,2iを得る。正しくなければ、Errorを全ユーザに送信する。
c)CK2i−1=Σv=1 CKv,2i−1 modqを計算する。
d)CK2i=Σv=1 CKv,2i modqを計算する。
e)IK=g^(CK2i−1) modpを計算する。
f)IK,CK2iに対する署名SIG(X,i‖IK‖CK2i)を計算し、IK,CK2iと共に全ユーザに送信する。
【0035】
(Step3)
a)自身の分散値と受信した分散値の番号の集合をφとしたとき、
CK=Σ ∈φ (CK*L(φ,h)) modq
を計算する。この結果、CK=Σi=1 modqとなる。
【0036】
(2)Charleyの処理
(Step1)
a)i=1,・,nに対し、YでSIG(X,i‖F)とSIG(X,i‖IK‖CK2i)を検証し、検証成功ならb)へ進む。検証失敗なら、Errorを全ユーザに送信して終了する。
b)i=1,・,nに対し、IKとCK2iを式(1)により検証し、検証成功ならc)へ進む。
g^(CK)=Πi=1 (Πk=0 i,k^(j)) modp ・・・・・ (1)
Πk=0 i,k^(j) modp=Πk=0 (g^(fi,k))^(j) modp
=Πk=0 g^(fi,k*j) modp
=g^(Σk=0 i,k*j) modp
=g^(f(j)) modp
=g^(CKi,j) modp
Πi=1 (g^(CKi,j)) modp
=g^(Σi=1 CKi,j) modp
=g^(CK) modp
検証失敗ならErrorを全ユーザに送信して終了する。
c)対話鍵
IK=Πi=1 (IK L( Δ ,2i−1)*g^(CK2i*L(Δ,2i)) modq
を計算する。式(1)による検証およびIKの生成は各ユーザも可能だが、この例では、Charleyが一括して行う。
【0037】
次に、図2を参照しながら、対話鍵共有システムの構成と機能の概略を説明する。通信端末などであるユーザ1(Alice)とユーザ2(Bob)は、鍵交換手段7を備えている。鍵交換手段7は、公開鍵方式のグループ秘密鍵である非対称共通鍵を、対話文4から計算できる。センタであるオブザーバ3(Charley)は、端末間の通信を傍受できる傍受手段8と、傍受した通信の対話文4から、非対称共通鍵を非対称秘密鍵とするグループ公開鍵である対話鍵を計算する対話鍵計算手段9とを備えている。
【0038】
鍵交換手段7は、送受信手段と、乱数発生手段と、演算手段と、記憶手段などを備えている。鍵交換手段7の基本的な機能は、従来の暗号通信システムにおける鍵交換手段と同様であり、詳しい説明は省略する。傍受手段8は、通常の受信手段と同様であり、従来のものと変わりはない。対話鍵計算手段9は、本発明特有のアルゴリズムにより、対話文4から対話鍵を計算する手段である。対話鍵の計算方法は前述のとおりである。
【0039】
次に、図3を参照しながら、n=2(閾値3、分散値数4)の場合の対話鍵共有方法の具体例を説明する。ユーザ1をAliceとし、ユーザ2をBobとする。ここでは、分かり易くするために、ユーザIDの1をAliceと書き、XをXAliceと表記する。その他も同様である。
【0040】
Alice(i=1)は、Step1で、
a)乱数RAlice(∈Z)を生成する。
b)定数項fAlice,0を乱数RAliceとするZ上の任意の2次多項式fAlice(w)を生成する。
Alice(w)=RAlice+fAlice,1*w+fAlice,2*w
c)検証値の集合FAliceを生成する。
Alice={FAlice,k=g^(fAlice,k) modp|k=0,1,2}
これは集合であるが、実際には、各要素を連接した数として表すので、以下、表記上は数として扱う。
d)分散値の元データを生成する。
CKAlice,j=fAlice(j) (j=1,…,4)
すなわち、
CKAlice,1=fAlice(1)=RAlice+fAlice,1*1+fAlice,2*1
CKAlice,2=fAlice(2)=RAlice+fAlice,1*2+fAlice,2*2
CKAlice,3=fAlice(3)=RAlice+fAlice,1*3+fAlice,2*3
CKAlice,4=fAlice(4)=RAlice+fAlice,1*4+fAlice,2*4
e)分散値の元データを暗号化する。
ENCAlice,Bob=P_ENC(YBob,CKAlice,3‖CKAlice,4
f)署名SIG(XAlice,Alice‖FAlice‖ENCAlice,Bob)を計算する。
g)各データを連接して、
Alice‖FAlice‖ENCAlice,Bob‖SIG(XAlice,Alice‖FAlice‖ENCAlice,Bob
として、Bobに送信する。
【0041】
Step2で、
a)Bobからデータを受信し、YBobでSIG(XBob,Bob‖FBob‖ENCBob)を検証し、成功ならENCBob,AliceをXAliceで復号し、CKBob,1とCKBob,2を得る。
b)分散値を計算する。
【0042】
CK=CKAlice,j+CKBob,j modq (j=1,2)
すなわち、
CK=CKAlice,1+CKBob,1 modq
CK=CKAlice,2+CKBob,2 modq
c)対話鍵の元データを計算する。
IKAlice=g^(CK) modp
d)署名SIG(XAlice,Alice‖IKAlice‖CK)を生成する。
e)各データを連接して、
Alice‖IKAlice‖CK‖SIG(XAlice,Alice‖IKAlice‖CK
として、Bobに送信する。
【0043】
Step3で、
a)Bobからデータを受信し、YBobでSIG(XBob,Bob‖IKBob‖CK)を検証し、成功なら非対称共通鍵を計算する。
CK=CK*L(Δ\{3},1)
+CK*L(Δ\{3},2)
+CK*L(Δ\{3},4) modq
=(CKAlice,1+CKBob,1 modq)*(2/(2−1))(4/(4−1))
+(CKAlice,2+CKBob,2 modq)*(1/(1−2))(4/(4−2))
+(CKAlice,4+CKBob,4 modq)*(1/(1−4))(2/(2−4)) modq
={(RAlice+fAlice,1*1+fAlice,2*1
+(RBob+fBob,1*1+fBob,2*1)}*(8/3)
+{(RAlice+fAlice,1*2+fAlice,2*2
+(RBob+fBob,1*2+fBob,2*2)}*(−2)
+{(RAlice+fAlice,1*4+fAlice,2*4
+(RBob+fBob,1*4+fBob,2*4)}*(1/3)
=(RAlice+RBob)*((8/3)−2+(1/3))
+(fAlice,1+fBob,1)*((8/3)−4+(4/3))
+(fAlice,2+fBob,2)*((8/3)−8+(16/3))
=RAlice+RBob modq
この計算は、GF(q)上の演算である。
【0044】
Bobの手順を説明する。ここでは、分かり易くするために、ユーザIDの2をBobと書き、XをXBobと表記する。その他も同様である。Bob(i=2)は、Step1で、
a)160bit程度の乱数RBob(∈Z)を生成する。
b)定数項を乱数RBobとするZ上の任意の2次多項式fBob(w)を生成する。
Bob(w)=fBob,0+fBob,1*w+fBob,2*w
c)検証値の集合FBobを生成する。
Bob={FBob,k=g^(fBob,k)|k=0,1,2}
実際には、各要素を連接した数として表す。
d)分散値の元データを生成する。
CKBob,j=fBob(j) for j=1,…,4
e)分散値の元データを暗号化する。
ENCBob,Alice=P_ENC(YAlice,CKBob,1‖CKBob,2
f)署名SIG(XBob,Bob‖FBob‖ENCBob,Alice)を計算する。
g)各データを連接して、
Bob‖FBob‖ENCBob,Alice‖SIG(XBob,Bob‖FBob‖ENCBob,Alice
として、Bobに送信する。
【0045】
Step2で、
a)Aliceからデータを受信し、YAliceでSIG(XAlice,Alice‖FAlice‖ENCAlice,Bob)を検証し、成功ならENCAlice,BobをXBobで復号し、CKAlice,3とCKAlice,4を得る。
b)分散値を計算する。
CK=CKAlice,j+CKBob,j modq (j=3,4)
c)対話鍵の元データを計算する。
IKBob=g^(CK) modp
d)署名SIG(XBob,Bob‖IKBob‖CK)を生成する。
e)各データを連接して、
Bob‖IKBob‖CK‖SIG(XBob,Bob‖IKBob‖CK
として、Bobに送信する。
【0046】
Step3で、
a)Aliceからデータを受信し、YAliceでSIG(XAlice,Alice‖IKAlice‖CK)を検証し、成功なら非対称共通鍵を計算する。
CK=CK*L(Δ\{1},2)
+CK*L(Δ\{1},3)
+CK*L(Δ\{1},4) modq
=(CKAlice,2+CKBob,2 modq)*(3/(3−2))(4/(4−2))
+(CKAlice,3+CKBob,3 modq)*(2/(2−3))(4/(4−3))
+(CKAlice,4+CKBob,4 modq)*(2/(2−4))(3/(3−4)) modq
={(RAlice+fAlice,1*2+fAlice,2*2
+(RBob+fBob,1*2+fBob,2*2)}*6
+{(RAlice+fAlice,1*3+fAlice,2*3
+(RBob+fBob,1*3+fBob,2*3)}*(−8)
+{(RAlice+fAlice,1*4+fAlice,2*4
+(RBob+fBob,1*4+fBob,2*4)}*3
=(RAlice+RBob)*(6−8+3)
+(fAlice,1+fBob,1)*(12−24+12)
+(fAlice,2+fBob,2)*(24−72+48)
=RAlice+RBob modq
この計算は、GF(q)上の演算である。
【0047】
Charleyは、Step3で、
a)YAliceを用いて、
SIG(XAlice,Alice‖FAlice‖ENCAlice)と
SIG(XAlice,Alice‖IKAlice‖CK)を検証し、
Bobを用いて、
SIG(XBob,Bob‖FBob‖ENCBob)と
SIG(XBob,Bob‖IKBob‖CK)を検証し、
成功ならb)の処理を行う。
b)FAliceとFBobを用いて、IK,CKとIK,CKを検証し、成功ならc)の処理を行う。
【0048】
c)対話鍵を計算する。
IK=IKAlice^(L(Δ,1))*g^(CK*L(Δ,2))
*IKBob^(L(Δ,3))*g^(CK*L(Δ,4)) modp
=g^(CK*(2/(2−1))(3/(3−1))(4/(4−1)))
*g^(CK*(1/(1−2))(3/(3−2))(4/(4−2)))
*g^(CK*(1/(1−3))(2/(2−3))(4/(4−3)))
*g^(CK*(1/(1−4))(2/(2−4))(3/(3−4))) modp
=g^(CK*4+CK*(−6)+CK*4+CK*(−1)) modp
=gCK modp
(CK*4+CK*(−6)+CK*4+CK*(−1))
=(CKAlice,1+CKBob,1)*4+(CKAlice,2+CKBob,2)*(−6)
+(CKAlice,3+CKBob,3)*4+(CKAlice,4+CKBob,4)*(−1)
={(RAlice+fAlice,1*1+fAlice,2*1
+(RBob+fBob,1*1+fBob,2*1)}*4
+{(RAlice+fAlice,1*2+fAlice,2*2
+(RBob+fBob,1*2+fBob,2*2)}*(−6)
+{(RAlice+fAlice,1*3+fAlice,2*3
+(RBob+fBob,1*3+fBob,2*3)}*4
+{(RAlice+fAlice,1*4+fAlice,2*4
+(RBob+fBob,1*4+fBob,2*4)}*(−1)
=(RAlice+RBob)*(4−6+4−1)
+(fAlice,1+fBob,1)*(4−12+12−4)
+(fAlice,2+fBob,2)*(4−24+36−16)
=(RAlice+RBob
=CK
【0049】
安全性について説明する。TC型方式の対話文は、非対称共通鍵CKの分散値と、それを指数とするベキ乗剰余値から成る。非対称共通鍵CKの分散値は、(閾値n+1、分散値数2n)のShamir secret sharing scheme[S79]になっており、公開される分散値の数がn個であるため、情報量的にCharleyが非対称共通鍵CKを復元することはできない。また、ベキ乗剰余値の指数を求めることは、離散対数問題に帰着するため、IKから分散値を求めること、およびFから分散値の生成に用いる係数を求めることは、計算量的に困難である。
【0050】
上記のように、本発明の第1の実施の形態では、対話鍵共有システムを、複数のユーザ端末の間で、秘密分散法を利用した鍵共有プロトコルにより非対称共通鍵を秘密に共有し、センタは、傍受した端末間の通信から、秘密に共有された非対称共通鍵に対応するグループ公開鍵(対話鍵)を計算する、Threshold Cryptosystem(TC)型としたので、閾値暗号ベースで、対話鍵共有システムを実現できる。
【0051】
(第2の実施の形態)
本発明の第2の実施の形態は、2つのユーザ端末の間で、DH法を利用した鍵共有プロトコルにより非対称共通鍵を秘密に共有し、センタは、傍受した端末間の通信から、秘密に共有された非対称共通鍵に対応するグループ公開鍵(対話鍵)を計算する、Diffie−Hellman(DH)型の対話鍵共有システムである。
【0052】
図4は、本発明の第2の実施の形態における対話鍵共有システムの動作手順を示す流れ図である。第2の実施の形態における対話鍵共有システムの基本的な構成は、図2に示した第1の実施の形態と同様である。
【0053】
本発明の第2の実施の形態における対話鍵共有システムの動作原理と動作手順を説明する。最初に、鍵共有法および対話鍵生成法の概略を説明する。DH型の対話鍵共有方式は、公開鍵暗号を用いた簡素なAliceとBob間の鍵共有法およびCharleyの対話鍵生成法と、DH問題を利用した対話文IMと対話鍵IKの検証法から成る。
【0054】
Aliceの秘密の乱数をRAlice(∈Z)として、対話鍵元データIKAlice(=g^(RAlice) modp)を公開すると共に、乱数RAliceをBobの公開鍵YBobで暗号化してBobに送信する。BobもAliceと同様に、対話鍵元データIKBobを公開し、乱数RBobをAliceの公開鍵で暗号化して送信する。
【0055】
AliceとBobは、非対称共通鍵CK(=RAlice+RBob modq)を計算する。Charleyは、対話鍵
IK=IKAlice*IKBob modp
=g^(RAlice+RBob) modp
を計算することで、非対称共通鍵CKに対応する対話鍵IKを得る。
【0056】
対話文IMと対話鍵元データIKAliceの検証法を説明する。対話文IMと対話鍵元データIKAlice,IKBobの検証法の目的は、対話鍵元データIKAlice,IKBobに対応する乱数RAlice,RBobを、それぞれAliceとBobが保持することを、乱数RAlice,RBobを知ることなく検証することである。Bobは、チャレンジとして、乱数DBob(∈Z)を指数とするベキ乗剰余値CHABob,Alice(=g^(DBob) modp)をAliceに送信する。Aliceは、レスポンスとして、チャレンジCHABob,Aliceに乱数RAliceをベキ乗した剰余RESAlice,bob(=(g^(DBob))^(RAlice) modp)をBobに送信する。Bobは、レスポンスRESAlice,Bobを受信後に、乱数DBobを公開する。
【0057】
Charleyは、RESAlice,Bob,DBobの順に公開された場合のみ、
RESAlice,Bob≡IKAlice^(DBob) (modp)
を検証する。成功なら、Aliceが対話鍵元データIKAliceに対応する乱数RAliceを持つと承認する。乱数DBobの公開前に、乱数RAliceを知らずに、対話鍵元データIKAlice(=g^(RAlice) modp)とチャレンジCHABob,Alice(=g^(DBob) modp)からレスポンスRESAlice,bob(=(g^(DBob))^(RAlice) modp)を計算することは、DH問題に帰着できる。したがって、Charleyは乱数RAliceを知ることなく、Aliceが乱数RAliceを保持していることを検証できる。
【0058】
次に、図4を参照しながら、Diffie−Hellman(DH)型対話鍵共有システムの動作手順を、対話鍵生成法と対話文と対話鍵検証法を組み合わせた形で、詳しく説明する。なお、式(2)と(3)の検証と対話鍵の生成は、各ユーザも可能であるが、この例では、Charleyが一括して行う。
【0059】
Aliceは、Step1で、
a)乱数RAlice,DAlice(∈Z)を生成する。
b)対話鍵の元データ
IKAlice=g^(RAlice) modp
を計算する。
c)チャレンジ
CHAAlice,Bob=g^(DAlice) modp
を計算する。
d)署名SIG(XAlice,Alice‖IKAlice‖CHAAlice,Bob)を計算し、IKAlice,CHAAlice,Bobと共にBobに送信する。
【0060】
Bobは、Step2で、
a)Aliceの公開鍵YAliceで、署名SIG(XAlice,Alice‖IKAlice‖CHAAlice, Bob)を検証し、失敗なら終了し、成功なら、乱数RBob,DBob(∈Z)を生成する。
b)対話鍵の元データ
IKBob=g^(RBob) modp
を計算する。
c)チャレンジ
CHABob,Alice=g^(DBob) modp
を計算する。
d)レスポンス
RESBob,Alice=CHAAlice,Bob^(RBob) modp
を計算する。
e)署名SIG(XBob,Bob‖IKBob‖CHABob,Alice‖RESBob,Alice)を計算し、IKBob,CHABob,Alice,RESBob,Aliceと共にAliceに送信する。
【0061】
Aliceは、Step3で、
a)Bobの公開鍵YBobを使って、署名SIG(XBob,Bob‖RESBob,Alice‖CHABob,Alice‖IKBob)を検証し、失敗なら終了し、成功なら、レスポンス
RESAlice,Bob=CHABob,Alice^(RAlice) modp
を計算する。
b)暗号文
ENCAlice,Bob=P_ENC(YBob,Alice‖RAlice
を計算する。
c)署名SIG(XAlice,Alice‖ENCAlice,Bob‖DAlice‖RESAlice,Bob)を計算し、ENCAlice,Bob,DAlice,RESAlice,Bobと共にBobに送信する。
【0062】
Bobは、Step4で、
a)Aliceの公開鍵YAliceを使って、署名SIG(XAlice,Alice‖ENCAlice,Bob‖DAlice‖RESAlice,Bob)を検証し、成功なら、XBobでENCAlice,Bobを復号し、RAliceを得る。
b)暗号文
ENCBob,Alice=C_ENC(H(RAlice),RBob
を計算する。
c)署名SIG(XBob,Bob‖ENCBob,Alice‖DBob)を計算し、ENCBob,Alice,DBobと共にAliceに送信する。
d)非対称共通鍵
CK=RBob+RAlice modq
を計算する。
【0063】
Aliceは、Step5で、
a)YBobを使って、SIG(XBob,Bob‖ENCBob,Alice‖DBob)を検証し、成功なら、H(RAlice)でENCBob,Aliceを復号し、RBobを得る。
b)非対称共通鍵
CK=RAlice+RBob modq
を計算する。
【0064】
Charleyは、Step5で、
a)YAliceを使って、
SIG(XAlice,Alice‖IKAlice‖CHAAlice,Bob)と
SIG(XAlice,Alice‖ENCAlice,Bob‖DAlice‖RESAlice,Bob)を検証し、
Bobを使って、
SIG(XBob,Bob‖IKBob‖CHABob,Alice‖RESBob,Alice)と
SIG(XBob,Bob‖ENCBob,Alice‖DBob)を検証し、
検証成功ならb)を実行し、検証失敗ならErrorをAliceとBobに送信する。
b)式
RESAlice,Bob≡IKAlice^(DBob) (modp) ・・・・・ (2)
RESBob,Alice≡IKBob^(DAlice) (modp) ・・・・・ (3)
を検証し、成立ならc)を実行し、非成立ならErrorをAliceとBobに送信する。すなわち、成立なら、
RESAlice,Bob=CHABob,Alice^(RAlice) modp
=(g^(DBob))^(RAlice) modp
=g^(DBob*RAlice) modp
IKAlice^(DBob) modp
=(g^(RAlice))^(DBob) modp
=g^(DBob*RAlice) modp
となり、同様に、
RESBob,Alice=CHAAlice,Bob^(RBob) modp
=(g^(DAlice))^(RBob) modp
=g^(DAlice*RBob) modp
IKBob^(DAlice) modp
=(g^(RBob))^(DAlice) modp
=g^(DAlice*RBob) modp
となる。
c)対話鍵を計算する。
IK=IKAlice*IKBob modp
=g^(RAlice)*g^(RBob) modp
=g^(RAlice+RBob) modp
【0065】
安全性について説明する。使用する暗号方式が安全であり、かつ離散対数問題が計算量的に困難であれば、公開される暗号文ENCおよびベキ乗剰余値IKからCharleyがRを入手することは明らかに困難である。
【0066】
上記のように、本発明の第2の実施の形態では、対話鍵共有システムを、2つのユーザ端末の間で、DH法を利用した鍵共有プロトコルにより秘密に非対称共通鍵を共有し、センタは、傍受した端末間の通信から、秘密に共有された非対称共通鍵に対応するグループ公開鍵(対話鍵)を計算する、Diffie−Hellman(DH)型としたので、Diffie−Hellman鍵共有法をベースにして、対話鍵共有システムを実現できる。
【0067】
(第3の実施の形態)
本発明の第3の実施の形態は、2つのユーザ端末の間で、RSA法を利用した鍵共有プロトコルにより秘密に非対称共通鍵を共有し、センタは、傍受した端末間の通信から、秘密に共有された非対称共通鍵に対応するグループ公開鍵(対話鍵)を計算する、RSA型の対話鍵共有システムである。
【0068】
本発明の第3の実施の形態における対話鍵共有システムの動作原理と動作手順を説明する。第3の実施の形態における対話鍵共有システムの基本的な構成は、図2に示した第1の実施の形態と同様である。RSA暗号の原理を基本とする点が異なる。
【0069】
Uを、1024bit程度の素数とする。eを、RSAの公開鍵であり、16ビット程度の数とする。例えば、e=(216+1)(フェルマーの素数)とする。Uとeは、全エンティティ(ユーザAとユーザBとセンタ)が共有している。説明を分かりやすくするために、ユーザAをAliceとし、ユーザBをBobとし、センタをCharleyとする。
【0070】
Aliceは、Step1で、
a)1024bit程度の乱数RAlice(1≦RAlice<U)を生成する。
b)暗号文
ENCAlice,Bob=P_ENC(YBob,RAlice
を計算し、Bobに送信する。
【0071】
Bobは、Step2で、
a)非対称秘密鍵XBobを使って、暗号文ENCAlice,Bobを復号する。
b)1024bit程度の乱数RBob(1≦RBob<U)を生成する。RAlice*RBob>Uとなるようにする。
c)512bit程度の素数QBobを生成する。eが素数でない場合は、(QBob−1)がeと互いに素になるようにする。さらに、QBob*RBob>Uとなるようにする。
d)対話鍵の元データ
IKBob=QBob*RBob modU
を計算する。
e)乱数の積
Alice,Bob=RAlice*RBob modU
を計算し、IKBobと共にAliceに送信する。
【0072】
Aliceは、Step3で、
a)512bit程度の素数PAliceを生成する。eが素数でない場合は、(PAlice−1)がeと互いに素になるようにする。RAlice*PAlice>Uとなるようにする。
b)対話鍵の元データ
IKAlice=RAlice*PAlice modU
を計算し、Bobに送信する。
c)QBob=(RAlice*IKBob)/RAlice,Bob modUを計算する。
d)次式を満たす非対称秘密鍵dを計算する。
d*e≡1 (mod LCM(PAlice−1,QBob−1))
【0073】
Bobは、Step4で、
a)PAlice=IKAlice/RAlice modUを計算する。
b)次式を満たす非対称秘密鍵dを計算する。
d*e≡1 (mod LCM(PAlice−1,QBob−1))
これで非対称秘密鍵dが共有された。
【0074】
Charleyは、Step4で、
a)対話鍵の法
IK=(IKAlice*IKBob)/RAliceBob modU
=(RAlice*PAlice*QBob*RBob)/(RAlice*RBob) modU
=(PAlice*QBob) modU
を計算する。
【0075】
非対称秘密鍵dに対応する公開鍵(対話鍵)は、ベキ指数eであり、法はIKである。ベキ指数eを16ビット程度の素数とすれば、秘密の素数PAlice,QBobが何であっても、LCM(PAlice−1,QBob−1)より小さく、かつそれと互いに素になるので、RSA公開鍵の条件を満たす。ベキ指数eが素数でない場合は、秘密の素数PAlice,QBobを、(PAlice−1),(QBob−1)がベキ指数eと互いに素になるように決めればよい。
【0076】
上記のように、本発明の第3の実施の形態では、対話鍵共有システムを、2つのユーザ端末の間で、RSA法を利用した鍵共有プロトコルにより秘密に非対称共通鍵を共有し、センタは、傍受した端末間の通信から、秘密に共有された非対称共通鍵に対応するグループ公開鍵(対話鍵)を計算するRSA型としたので、RSA暗号をベースにして対話鍵共有システムを実現できる。
【0077】
(第4の実施の形態)
本発明の第4の実施の形態は、複数のユーザ端末の間で、鍵共有プロトコルにより秘密に非対称共通鍵を共有し、センタは、傍受した端末間の通信から、秘密に共有された非対称共通鍵に対応するグループ公開鍵(対話鍵)を計算し、非対称共通鍵による署名を対話鍵で検証する通話内容証明システムである。
【0078】
図5は、本発明の第4の実施の形態における通話内容証明システムの構成図である。図5において、検証者10は、ユーザに、通話内容の検証を求める者である。対話文保存手段11は、ユーザ間の対話文を保存する手段である。署名検証手段12は、対話鍵でユーザの署名を検証する手段である。その他の基本的な構成は、図2に示した第1の実施の形態と同様である。
【0079】
上記のように構成された本発明の第4の実施の形態における通話内容証明システムの動作手順を説明する。最初に、対話鍵のアプリケーションについて説明する。対話鍵が有効なアプリケーションとして、通話内容(契約等)証明を考える。通話内容証明とは、ここでは複数ユーザ間の通話内容に対して署名を付加することにより、第三者による通話内容の確認を可能とするアプリケーションのことである。
【0080】
一般に、従来の通話内容証明では、Trusted Authorityまたは各通話者の署名を付加する。したがって、通話内容に複数の署名が付加される可能性があり、最初の署名者は、後から誰が署名するか分からない。そのため、この通話内容証明は、契約等に必ずしも適しているとは言えない。これを解決するために、通話者全員が共有した非対称秘密鍵により署名を付加することが、一応考えられる。しかし、従来のSimple Methodで署名検証者が得られる公開鍵は、対話鍵と異なり、いつ誰が共有した鍵か分からないため、この様な用途には使えない。
【0081】
本発明では、対話鍵を使い、さらに、「Charleyは対話文と通話内容を安全に記録し、かつ要求に応じて公開する」という条件を追加する。{Alice and Bob,Charley}の組は、{携帯電話,通信キャリアのGW}、{PC,ISPのServer or Proxy}を想定する。対話鍵によるAlice−Bob間の通話内容証明例を示す。
【0082】
図5(a)を参照しながら、例1の通話内容の登録手順を説明する。
1.AliceとBobは、Charleyに観察を依頼する。
2.AliceとBobは、対話文IMAliceとIMBobを交換し、非対称共通鍵CKを共有する。
3.Aliceは、以下のように生成した暗号文CTAlice、署名SMAliceI,SMAliceII、指紋FPAliceをBobに送信する。
3−1.通話文PTAliceから指紋FPAlice(=H(PTAlice))を生成する。
3−2.通話文PTAliceを、非対称共通鍵CKか対話鍵IKで暗号化して、暗号文CTAliceを生成する。
3−3.非対称秘密鍵XAliceと非対称共通鍵CKを用いて、それぞれFPAlice‖H(CTAlice)に対する署名SMAliceI,SMAliceIIを生成する。
4.Bobは、Aliceと同様に生成した暗号文CTBob、署名SMBobI,SMBobII、指紋FPBobを、Aliceに送信する。
5.受信者(Alice)は、暗号文CTBobから通話文PTBobを得て、H(PTBob)=FPを確認してから、署名SMBobI,SMBobIIを検証する。受信者(Bob)は、暗号文CTAliceから通話文PTAliceを得て、H(PTAlice)=FPAliceを確認してから、署名SMAliceI,SMAliceIIを検証する。
6.Charleyは、IMAlice,IMBob,CTAlice,CTBob,FPAlice,FPBob,SMAliceI,SMAliceII,SMBobI,SMAliceIIを保存する。
【0083】
図5(a)を参照しながら、例1の通話内容検証の手順を説明する。
1.検証者は、Alice又はBobに通話内容証明を要求する。
2.Alice又はBobは、Charleyに通話内容証明を依頼する。
3.Alice又はBobは、通話文PTAlice,PTBobを公開する。
4.Charleyは、IMAlice,IMBob,CTAlice,CTBob,FPAlice,FPBob,SMAliceI,SMAliceII,SMBobI,SMAliceIIを公開する。
5.検証者は、対話文IMAlice,IMBobから対話鍵IKを生成し、通話文PTAlice,PTBobから指紋FPAlice,FPBobを生成する。
6.検証者は、FPAlice,FPBob,CTAlice,CTBob,IK,YAlice,YBobを用いて、署名SMAliceI,SMAliceII,SMBobI,SMBobIIを検証し、検証成功ならば、通話文PTAlice,PTBobを受理する。
【0084】
図5(b)を参照しながら、例2の通話内容の登録手順を説明する。例1とは、暗号文CTと、H(PT)に対する署名を送信する点が異なる。
1.AliceとBobは、Charleyに観察を依頼する。
2.AliceとBobは、対話文IMAliceとIMBobを交換し、非対称共通鍵CKを共有する。
3.Aliceは、以下のように生成した暗号文CTAliceと署名SMAliceI,SMAliceIIを、Bobに送信する。
3−1.通話文PTAliceから、H(PTAlice)を生成する。
3−2.通話文PTAliceを対話鍵IKで暗号化して暗号文CTAliceを生成する。
3−3.秘密鍵XAliceと非対称共通鍵CKを用いて、それぞれH(PTAlice)に対する署名SMAliceI,SMAliceIIを生成する。
4.Bobは、Aliceと同様に生成した暗号文CTBobと署名SMBobI,SMBobIIを、Aliceに送信する。
6.Charleyは、IMAlice,IMBob,CTAlice,CTBob,SMAliceI,SMAliceII,SMBobI,SMBobIIを保存する。
【0085】
図5(b)を参照しながら、例2の通話内容検証の手順を説明する。例1とは、Charleyが、公開された通話文PTから暗号文CTを計算し、暗号文CTからH(CT)を計算して、署名を検証する点が異なる。
1.検証者は、Alice又はBobに通話内容証明を要求する。
2.Alice又はBobは、Charleyに通話内容証明を依頼する。
3.Alice又はBobは、通話文PTAlice,PTBobを公開する。
4.Charleyは、IMAlice,IMBob,CTAlice,CTBob,SMAliceI,SMAliceII,SMBobI,SMBobIIを公開する。
5.Charleyは、通話文IMAlice,IMBobから対話鍵IKを生成する。
6.Charleyは、公開された通話文PTAlice,PTBobから暗号文CTAlice,CTBobを計算し、暗号文CTAlice,CTBobからH(CTAlice),H(CTBob)を計算して、対話鍵IKと公開鍵YAlice,YBobを用いて、署名SMAliceI,SMAliceII,SMBobI,SMBobIIを検証する。
7.検証成功ならば、検証者は、通話文PTAlice,PTBobを受理する。
【0086】
図5(b)を参照しながら、例3の通話内容の登録手順を説明する。例1とは、通話文PTとH(PT)に対する署名を送信する点が異なる。
1.AliceとBobは、Charleyに観察を依頼する。
2.AliceとBobは、対話文IMAliceとIMBobを交換し、非対称共通鍵CKを共有する。
3.Aliceは、以下のように生成した暗号文CTAliceと署名SMAliceI,SMAliceIIを、Bobに送信する。
3−2.通話文PTAliceを非対称共通鍵CKか対話鍵IKで暗号化して暗号文CTAliceを生成する。
3−3.非対称秘密鍵XAliceと非対称共通鍵CKを用いて、それぞれH(PTAlice)に対する署名SMAliceI,SMAliceIIを生成する。
4.Bobは、Aliceと同様に生成した暗号文CTBobと署名SMBobI,SMBobIIを、Aliceに送信する。
5.受信者(AliceまたはBob)は、暗号文CTから通話文PTを得て、H(PT)を生成してから、署名を検証する。
6.Charleyは、IMAlice,IMBob,CTAlice,CTBob,FPAlice,FPBob,SMAliceI,SMAliceII,SMBobI,SMAliceIIを保存する。
【0087】
図5(b)を参照しながら、例3の通話内容検証の手順を説明する。例1とは、Charleyが、通話文PTからH(PT)を計算して署名を検証する点が異なる。
1.検証者は、Alice又はBobに通話内容証明を要求する。
2.Alice又はBobは、Charleyに通話内容証明を依頼する。
3.Alice又はBobは、通話文PTAlice,PTBobを公開する。
4.Charleyは、IMAlice,IMBob,CTAlice,CTBob,SMAliceI,SMAliceII,SMBo bI,SMAliceIIを公開する。
5.Charleyは、対話文IMAlice,IMBobから対話鍵IKを生成する。
6.Charleyは、通話文PTAlice,PTBobからH(PTAlice),H(PTBob)を計算し、対話鍵IKと公開鍵YAlice,YBobを用いて、署名SMAliceI,SMAliceII,SMBobI,SMBobIIを検証する。
7.検証成功ならば、検証者は、通話文PTAlice,PTBobを受理する。
【0088】
例4は、受信者の署名を付加する方法である。例1から例3において、AliceまたはBobの送信した情報(例えばFP,CT,PT)に対して、自身の非対称秘密鍵Xを用いた署名を作成して送信者に送り返す。
【0089】
センタ(オブザーバCharley)がCertificate Authorityの場合は、対話鍵に対する公開鍵証明書を発行するアプリケーションにも利用できる。センタ(オブザーバCharley)が証明者としてだけではなく、検証者であってもよいので、センタと検証者を一体としてもよい。
【0090】
上記のように、本発明の第4の実施の形態では、通話内容証明システムを、複数のユーザ端末の間で、鍵共有プロトコルにより秘密に非対称共通鍵を共有し、センタは、傍受した端末間の通信から、秘密に共有された非対称共通鍵に対応するグループ公開鍵(対話鍵)を計算し、非対称共通鍵による署名を対話鍵で検証する構成としたので、いつ誰が署名した通話内容であるか証明することができる。
【0091】
(第5の実施の形態)
本発明の第5の実施の形態は、リング型通信路で結ばれた3人以上のユーザでDH型対話鍵生成法を用いる通話内容証明システムである。
【0092】
図6は、本発明の第5の実施の形態における対話鍵共有システムの動作手順を示す流れ図である。ユーザ数が5の場合の例を示してある。第5の実施の形態における対話鍵共有システムの基本的な構成は、図2に示した第1の実施の形態と同様であるが、3人以上のユーザがリング型通信路で結ばれている点が異なる。図6では、細部を省略してあるので、一部説明と異なる部分がある。
【0093】
上記のように構成された本発明の第5の実施の形態における通話内容証明システムの動作手順を説明する。リング型通信路を想定するため、n(n≧3)人のユーザを次の三種類に分類する。
Starter:通信を開始するユーザであり、ユーザIDを1とする。
Relay:通信を中継するユーザであり、ユーザIDを2,…,n−1とする。
Terminator:通信を終了するユーザであり、ユーザIDをnとする。
【0094】
λを全ユーザIDの集合とする。すなわち、
λ={1,2,・・・,n}
εをユーザ2,…,iのIDの集合とする。すなわち、
ε={2,・・・,i}
δをユーザ1,i+2,…,nのユーザIDの集合とする。すなわち、
δ=λ−εi+1={1,i+2,・・・,n}
【0095】
図6を参照しながら、n=5の例を説明する。
StepS1でユーザ1は、乱数RとD(∈Z)を生成し、対話鍵の元データ
IK=g^(R) modp
と、チャレンジ
CHA=g^(D) modp
を計算してユーザ2に送信する。
【0096】
StepR11でユーザ2は、乱数R(∈Z)を生成し、対話鍵の元データ
IK=g^(R) modp
を計算し、レスポンス
RES=CHA^(R) modp
を計算して、IKとRESとCHAを、ユーザ3に送信する。
StepR21でユーザ3は、乱数R(∈Z)を生成し、対話鍵の元データ
IK=g^(R) modp
を計算し、レスポンス
RES=CHA^(R) modp
を計算して、IKとRESとCHAを、ユーザ4に送信する。
StepR31でユーザ4は、乱数R(∈Z)を生成し、対話鍵の元データ
IK=g^(R) modp
を計算し、レスポンス
RES=CHA^(R) modp
を計算して、IKとRESとCHAを、ユーザ5に送信する。
【0097】
StepT1でユーザ5は、乱数RとD(∈Z)を生成し、対話鍵の元データ
IK=g^(R) modp
を計算し、チャレンジ
CHA=g^(D) modp
を計算し、レスポンス
RES=CHA^(R) modp
を計算して、IKとCHAとRESを、ユーザ1に送信する。
【0098】
StepS2でユーザ1は、レスポンス
RES=CHA^(R) modp
を計算して、RESとDを、ユーザ2に送信する。
【0099】
StepR12でユーザ2は、暗号文
ENC2,3=P_ENC(Y,2‖R
を計算して、ユーザ3に送信する。
StepR22でユーザ3は、暗号文
ENC2,3=P_ENC(Y,2‖R
を、非対称秘密鍵Xを使って復号してRを得るので、ユーザ3は(R,R)を保持することになる。暗号文
ENC3,4=P_ENC(Y,3‖R+R modq)
を計算して、ユーザ4に送信する。
StepR32でユーザ4は、暗号文
ENC3,4=P_ENC(Y,3‖R+R modq)
を、非対称秘密鍵Xを使って復号してR+Rを得るので、ユーザ4は(R+R,R)を保持することになる。暗号文
ENC4,5=P_ENC(Y,4‖R+R+R modq)
を計算して、ユーザ5に送信する。
【0100】
StepT2でユーザ5は、暗号文
ENC4,5=P_ENC(Y,4‖R+R+R modq)
を、非対称秘密鍵Xを使って復号してR+R+Rを得るので、ユーザ5は(R+R+R,R)を保持することになる。暗号文
ENC5,1=P_ENC(Y,5‖R+R+R+R modq)
を計算して、乱数Dとともに、ユーザ1に送信する。
【0101】
StepS3でユーザ1は、暗号文
ENC5,1=P_ENC(Y,5‖R+R+R+R modq)
を、非対称秘密鍵Xを使って復号してR+R+R+Rを得るので、ユーザ1は(R,R+R+R+R)を保持することになる。非対称共通鍵
CK=R+R+R+R+R modq
を計算する。暗号文
ENC1,2=P_ENC(Y,1‖R+R+R+R modq)
を計算して、ユーザ2に送信する。
【0102】
StepR13でユーザ2は、暗号文
ENC1,2=P_ENC(Y,1‖R+R+R+R modq)
を、非対称秘密鍵Xを使って復号してR+R+R+Rを得るので、ユーザ2は(R+R+R+R,R)を保持することになる。非対称共通鍵
CK=R+R+R+R+R modq
を計算する。暗号文
ENC2,3=C_ENC(H(R),R+R+R modq)
を計算してユーザ3に送信する。
StepR23でユーザ3は、暗号文
ENC2,3=C_ENC(H(R),R+R+R modq)
を、ハッシュ値H(Ri−1)を使って復号してR+R+Rを得るので、ユーザ3は(R+R+R,R,R)を保持することになる。非対称共通鍵
CK=R+R+R+R+R modq
を計算する。暗号文
ENC3,4=C_ENC(H(R+R),R+R modq)
を計算してユーザ4に送信する。
StepR33でユーザ4は、暗号文
ENC3,4=C_ENC(H(R+R modq),R+R modq)
を、ハッシュ値H(R+R modq)を使って復号してR+Rを得るので、ユーザ4は(R+R,R+R,R)を保持することになる。非対称共通鍵
CK=R+R+R+R+R modq
を計算する。暗号文
ENC4,5=C_ENC(H(R+R+R modq),R modq)
を計算してユーザ5に送信する。
【0103】
StepT3でユーザ5は、暗号文
ENC4,5=C_ENC(H(R+R+R modq),R modq)
を、ハッシュ値H(R+R+R modq)を使って復号してRを得るので、ユーザ5は(R,R+R+R,R)を保持することになる。非対称共通鍵
CK=R+R+R+R+R modq
を計算する。
【0104】
StepO1でセンタは、RES,・・・,RESが公開されてから、D,RESが公開され、その後Dが公開されたことを確認する。StepO2でセンタは、
RES*RES*RES*RES≡(IK*IK*IK*IK)^(D)(modp)
RES≡IK^(D)(modp)
を確認する。StepO3でセンタは、すべての確認ができたら、対話鍵
IK=IK*IK*IK*IK*IK modp
=g^(R+R+R+R+R) modp
を計算する。
【0105】
ユーザがn人で、検証なしの場合を説明する。pを素数とし、qを(p−1)の素因数とし、gを位数がqであるGF(q)の元とする。p,q,gを固定のパラメータとして、ユーザ1〜ユーザn(n≧3)とセンタに予め共有させておく。Xをユーザiの非対称秘密鍵とする。YをユーザiのXに対する公開鍵とする。P_ENC(y,m)を、公開鍵yにより、公開鍵yに対応する非対称秘密鍵で復号できる暗号文に平文mを公開鍵方式で暗号化する関数とする。C_ENC(K,m)を、対称秘密鍵Kにより復号できる暗号文に平文mを対称秘密鍵Kにより対称秘密鍵方式で暗号化する関数とする。Hを、ハッシュ関数とする。非対称共通鍵の交換が可能なn台の端末間の通信をセンタで傍受して前記非対称共通鍵を非対称秘密鍵とするグループ公開鍵である対話鍵を計算する対話鍵共有方法である。
【0106】
StepS1でユーザ1は、乱数R(∈Z)を生成し、対話鍵の元データ
IK=g^(R) modp
を計算してユーザ2に送信する。
【0107】
StepR1でユーザ2は、乱数R(∈Z)を生成し、対話鍵の元データ
IK=g^(R) modp
を計算し、暗号文
ENC2,3=P_ENC(Y,2‖R
を計算して、IKとENC2,3を、ユーザ3に送信する。
n≧4のとき、ユーザi(3≦i≦n−1)は、乱数R(∈Z)を生成し、対話鍵の元データ
IK=g^(R) modp
を計算し、暗号文
ENCi−1,i=P_ENC(Y,i−1‖Σ ∈ε i−1
を、非対称秘密鍵Xを使って復号してΣ ∈ε i−1を得て、暗号文
ENCi,i+1=P_ENC(Yi+1,i‖Σ ∈ε
を計算して、IKとENCi,i+1を、ユーザi+1に送信する。以下、ユーザi+1〜ユーザn−1まで、順次同様な処理を行う。
【0108】
StepT1でユーザnは、乱数R(∈Z)を生成し、対話鍵の元データ
IK=g^(R) modp
を計算し、暗号文
ENCn−1,n=P_ENC(Y,n−1‖Σ ∈ε n−1
を、非対称秘密鍵Xを使って復号してΣ ∈ε n−1を得て、暗号文
ENCn,1=P_ENC(Y,n‖Σ ∈ε
を計算して、IKとENCn,1を、ユーザ1に送信する。
【0109】
StepS2でユーザ1は、暗号文
ENCn,1=P_ENC(Y,n‖Σ ∈ε
を、非対称秘密鍵Xを使って復号してΣ ∈ε を得て、非対称共通鍵
CK=R+R+・・・+R modq
を計算する。暗号文
ENC1,2=P_ENC(Y,1‖Σ ∈δ
を計算してユーザ2に送信する。
【0110】
StepR2でユーザ2は、暗号文
ENC1,2=P_ENC(Y,1‖Σ ∈δ
を、非対称秘密鍵Xを使って復号してΣ ∈δ を得て、非対称共通鍵
CK=R+R+・・・+R modq
を計算する。暗号文
ENC2,3=C_ENC(H(R),Σ ∈δ
を計算してユーザ3に送信する。
n≧4のとき、ユーザi(3≦i≦n−1)は、暗号文
ENCi−1,i=C_ENC(H(Σ ∈ε i−1),Σ ∈δ i−1
を、ハッシュ値H(Σ ∈ε i−1)を使って復号してΣ ∈δ i−1を得て、非対称共通鍵
CK=R+R+・・・+R modq
を計算する。暗号文
ENCi,i+1=C_ENC(H(Σ ∈ε ),Σ ∈δ
を計算してユーザi+1に送信する。以下、ユーザi+1〜ユーザn−1まで、順次同様な処理を行う。
【0111】
StepT2でユーザnは、暗号文
ENCn−1,n=C_ENC(H(Σ ∈ε n−1),Σ ∈δ n−1
を、ハッシュ値H(Σ ∈ε n−1)を使って復号してΣ ∈δ n−1を得る。非対称共通鍵
CK=R+R+・・・+R modq
を計算する。
【0112】
StepC1でセンタは、対話鍵
IK=IK*IK*・・・*IK modp
=g^(R+R+・・・+R) modp
を計算する。
【0113】
ユーザがn人で、検証ありの場合を説明する。以下の各Stepは、S1→R1(n−2ステップ)→T1→S2→R2(n−2ステップ)→T2→S3→R3(n−2ステップ)の順に進むものとする。
【0114】
Starter(ユーザ1)は、
Step S1で、乱数R,D∈Zを生成する。対話鍵の元データ
IK=g^(R) mod p
と、チャレンジ
CHA=g^(D) mod p
を計算し、ユーザ2に、IKとCHAを送信する。IKとCHAは事前計算が可能である。
【0115】
Step S2で、レスポンス
RES=CHA^(R) modp
を計算し、ユーザ2に、DとRESを送信する。
【0116】
Step S3で、暗号文
ENCn,1=P_ENC(Y,n‖Σ ∈ε modq)
を、非対称秘密鍵Xを使って復号してΣ ∈ε を得る。暗号文
ENC1,2=P_ENC(Y,1‖Σ ∈δ modq)
を計算し、ユーザ2に送信する。
【0117】
Relay(ユーザi、2≦i≦n−1)は、
StepR1で、乱数R∈Zを生成し、対話鍵の元データ
IK=g^(R) modp
と、レスポンス
RES=CHA^(R) modp
を計算し、ユーザi+1に、IKとRESとCHAを送信する。IKは事前計算が可能である。ユーザ2〜ユーザn−1まで、順次この処理を行う。
【0118】
StepR2で、n≧4のとき、ユーザi(3〜n−1)は、暗号文
ENCi−1,i=P_ENC(Y,i−1‖Σ ∈ε i−1 modq)
を、非対称秘密鍵Xを使って復号してΣ ∈ε i−1を得る。
ユーザi(2〜n−1)は、暗号文
ENCi,i+1=P_ENC(Yi+1,i‖Σ ∈ε modq)
を計算し、ユーザi+1に送信する。ユーザ2〜ユーザn−1まで、順次この処理を行う。
【0119】
StepR3で、ユーザ2は、暗号文
ENC1,2=P_ENC(Y,1‖Σ ∈δ modq)
を、非対称秘密鍵Xを使って復号してΣ ∈δ を得る。
n≧4のとき、ユーザi(3〜n−1)は、暗号文
ENCi−1,i=C_ENC(H(Σ ∈ε i−1 modq),Σ ∈δ i−1 modq)
を、ハッシュ値H(Σ ∈ε i−1 modq)を使って復号してΣ ∈δ i−1 を得る。
ユーザi(2〜n−1)は、暗号文
ENCi,i+1=C_ENC(H(Σ ∈ε modq),Σ ∈δ modq)
を計算し、ユーザi+1に送信する。ユーザ2〜ユーザn−1まで、順次この処理を行う。
【0120】
Tarminator(ユーザn)は、
StepT1で、乱数R,D∈Zを生成する。対話鍵の元データ
IK=g^(R) modp
と、チャレンジ
CHA=g^(D) modp
と、レスポンス
RES=CHA^(R) modp
を計算する。IKとCHAは事前計算が可能である。ユーザ1に、IKとRESとCHAを送信する。
【0121】
StepT2で、暗号文
ENCn−1,n=C_ENC(H(Σ ∈ε n−1 modq),Σ ∈δ n−1 modq)
を、ハッシュ値H(Σ ∈ε n−1 modq)を使って復号してΣ ∈δ n−1 を得る。暗号文
ENCn,1=P_ENC(Y,n‖Σ ∈ε modq)
を計算し、Dと共にユーザ1に送信する。
【0122】
Observer(センタ)は、Step O1で、(RES,…,RES)→(D,RES)→Dの順に公開されていることを確認する。Step O2で、
Π ∈ε RES≡(Π ∈ε IK)^(D) (modp)
RES≡IK^(D) (modp)
を確認する。
Step O3で、Step O1とStep O2での確認がOKならば、
IK=Π ∈λ IK modp
を計算する。
【0123】
各端末は、非対称共通鍵CKを計算した後に、検証式
Πi=1 IK≡g^(CK) (modp)
を検証し、不成立ならセンタに通知する。これは、実際に共有された非対称共通鍵CKと、センタが受け入れた対話鍵IKの対応が正しいことを確認するために必要となる。
【0124】
全ての送信メッセージに対して送信者のディジタル署名を付加し、受信者は署名の検証に成功した場合のみメッセージを受信するようにできる。センタが対話鍵を計算後に、対話鍵に対する公開鍵証明書を発行することができる。対話鍵に対する公開鍵証明書を対話鍵で暗号化して、対話鍵を共有したユーザに送信することができる。ユーザもセンタと同じ検証を実施することができる。
【0125】
公開鍵方式の暗号関数P_ENC(・)としてEl Gamal暗号の暗号関数を使用する場合において、IK(1≦i≦n)をEl Gamal暗号における乱数のベキ乗剰余値の代わりに用いることができる。対称秘密鍵方式の暗号関数C_ENC(・)の代わりに公開鍵方式の暗号関数P_ENC(・)を用いることができる。有限体上の演算を楕円曲線上の演算に対応させて計算することができる。
【0126】
ユーザを、携帯電話システムにおける携帯電話とし、センタを、携帯電話システムの通信キャリアのゲートウェイまたは基地局とすることができる。ユーザを、PC/PDA等のインターネット接続機能を有する端末とし、センタを、ウェブサーバまたはプロキシサーバまたはルータとすることができる。ユーザを、PC/PDA等のローカル通信機能を有する端末とし、センタを、特定の端末またはLANサーバとすることができる。センタが複数ある場合は、ユーザは、複数のセンタを経由して通信することができる。
【0127】
上記のように、本発明の第5の実施の形態では、通話内容証明システムを、リング型通信路で結ばれた3人以上のユーザでDH型対話鍵生成法を用いる構成としたので、効率を低下させることなくユーザ数を3人以上に拡張することができる。
【0128】
【発明の効果】
以上の説明から明らかなように、本発明では、非対称共通鍵を計算可能な鍵交換手段を持つ複数の端末と、センタとからなる鍵交換システムのセンタに、端末間の通信を傍受可能な傍受手段と、傍受した通信から非対称共通鍵を非対称秘密鍵とするグループ公開鍵である対話鍵を計算する手段とを備えた構成としたので、鍵共有プロトコルにおいて送受信される情報と公開鍵(対話鍵)の関係が検証でき、対話鍵に対応する非対称共通鍵をいつ誰が秘密に共有したかが分かるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態における対話鍵共有システムの概念図、
【図2】本発明の第1の実施の形態における対話鍵共有システムの構成図、
【図3】本発明の第1の実施の形態における対話鍵共有システムの動作手順を示す流れ図、
【図4】本発明の第2の実施の形態における対話鍵共有システムの動作手順を示す流れ図、
【図5】本発明の第4の実施の形態における対話鍵共有システムの構成図、
【図6】本発明の第5の実施の形態における対話鍵共有システムの動作手順を示す流れ図、
【図7】従来の通話内容証明の手順を示す流れ図である。
【符号の説明】
1 ユーザ(Alice)
2 ユーザ(Bob)
3 オブザーバ(Charley)
4 対話文
5 非対称共通鍵
6 対話鍵
7 鍵交換手段
8 傍受手段
9 対話鍵計算手段
10 検証者
11 対話文保存手段
12 署名検証手段
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a conversation key and a method for generating the conversation key, and more particularly, to a conversation key that is a public key corresponding to a secret key and enables a key sharing protocol to know who shared the secret key and when.
[0002]
[Prior art]
A method of sharing a common key in a conventional key sharing scheme will be described. As a method of sharing a common key between Alice and Bob, a Diffie-Hellman method, many variations thereof, and a method in which these are extended between three or more entities (for example, [BD94]) are known. The shared common key is often used for common key encryption and MAC (message authenticator). In addition, a value that is a source of a common key is encrypted by RSA, such as SSL 3.0 [SSL] / TLS 1.0 [TLS] that provides a secure session between Server and Client (when the key sharing scheme is RSA). A delivery method is also known, and the shared common key is used for the common key encryption and the MAC.
[0003]
In these methods, in order to use a shared common key as a secret key of public key encryption, Alice and Bob holding the common key calculate by using a procedure for generating a public key from a common key determined in advance. It may be made public and the verifier verifies that all public keys are equal. Hereinafter, this method will be referred to as Simple Method.
[0004]
A method for sharing a public key and a secret key will be described. A method of sharing the RSA public key and secret key between Alice and Bob [PS98, G99] or a method of sharing between three or more entities [BF97] is known. These schemes have the characteristic that all entities participating in the protocol can calculate the public key, but for the private key, each entity can calculate only its share.
[0005]
However, in [PS98, G99], only the entity that participates in the protocol can calculate the public key using its own private key. In [BF97], an entity called a helper, which cannot obtain a shared value of a secret key, is assumed to participate in the protocol, and only the helper can calculate a public key. After all, in these schemes, only the entity participating in the protocol can calculate the public key. Therefore, in order for the verifier to obtain the public key, similarly to the Simple Method, an entity participating in the protocol needs to publish the public key after calculating it.
[0006]
The Simple Method will be described. An example is shown in which the number of users is set to 2 for simplicity, a common key is shared among a plurality of users, and each user discloses a public key calculated from the common key to a verifier. Alice and Bob each have a public key YAliceAnd YBob, Secret key XAliceAnd XBobAnd the verifier is YAliceAnd YBobYou know. Alice and Bob share a procedure for calculating a public key from a common key in advance.
[0007]
The processing of Alice and Bob is as follows.
Step 1: The common key CK is shared using an existing key sharing scheme (for example, Diffie-Hellman).
Step 2: Alice is a public key PK using the common key CK as a secret key of public key cryptography.Alice(Bob is PKBob) Is calculated.
Step3: Alice is PKAlice(Bob is PKBob) For XAlice(Bob is XBob) Using digital signature SIGAlice(Bob is SIGBob) Is calculated.
Step4: Alice is PKAlice(Bob is PKBob) And SIGAlice(Bob is SIGBob) To the verifier.
[0008]
The process of the verifier is as follows.
Step5: Signature SIGAliceAnd SIGBobVerify If successful, go to Step 6; otherwise, end.
Step6: PKAlice= PKBobIf it is, it is accepted, and if not, it ends.
[0009]
The call content proof will be described. Call content certification is a service that certifies the content of a call made between a plurality of entities to a third party after the call. There are electronic notarization and time stamps as services that can be used for conventional call content certification. The time stamp is a technique for proving that the content existed at a certain point in time. In order to use these services for certifying the contents of a call, the contents of the call are mainly transmitted to the respective Authorities and a digital signature of each Authority is issued, and the user of the service verifies the digital signature with the verifier. Prove the content of the call by making it public. FIG. 7 shows a procedure of an example of a conventional call contents certifying method.
[0010]
[Non-patent document 1]
[BF97] D. Boneh, M .; Franklin, "Efficient Generation of Shared RSA Keys," Advanced in Cryptology-CRYPTO '97, pp. 425-439, Springer-Verlag, 1997.
[Non-patent document 2]
[BD94] M. Burmester, Y .; Desmedt, "A Security and Efficient Conference Key Distribution System", Advances in Cryptology-EUROCRYPT'94, pp. 139-157. 275-285, Springer-Verlag, 1994.
[Non-Patent Document 3]
[DF89] Y. Desmedt, Y .; Frankel, "Threshold cryptosystems", Advances in Cryptology-Crypto '89, LNCS 435, pp. 307-315, Springer-Verlag, 1989.
[Non-patent document 4]
[TLS] T.I. Dierks, C.I. Allen, "The TLS Protocol Version 1.0," Request for Comments: 2246, 1999.
[Non-Patent Document 5]
[SSL] A. Freier, P .; Karlton, and P.M. Kocher, "The SSL Protocol Version 3.0," Transport Layer Security Working Group, INTERNET-DRAFT, 1996.
[Non-Patent Document 6]
[G99] N.P. Gilboa, "Two Party RSA Key Generation," Advanced in Cryptology-CRYPTO'99, pp. 116-129, Springer-Verlag, 1999.
[Non-Patent Document 7]
[P91] T.I. Pederson, "A Threshold Cryptosystem with a Trusted Party," Advanced in Cryptology-EURO. 522-526, Springer-Verlag, 1991.
[Non-Patent Document 8]
[PS98] G.I. Poupard, J .; Stern, "Generation of Shared RSA Keys by Two Partners," "Advanced in Cryptology -...", pp. 11-24, Springer-Verlag, 1998.
[Non-Patent Document 9]
[S79] A. Shamir, "How to share a secret", Comm. Assoc. Comput. Mach. , Vol. 22, no. 11, pp. 612-3, 1979.
[0011]
[Problems to be solved by the invention]
However, in the conventional Simple Method, the verifier can only verify that the signature is equal to the signature of the public key, and thus has the following problem.
(1) The verifier does not know when the released public key corresponds to the shared key shared by whom.
(2) The verifier cannot accept the public key when there is a user who does not disclose the public key.
[0012]
Further, the conventional method of certifying the contents of a call has two major problems. One problem is that the call time and the signature issuance time are not the same, so that real-time performance is lacking. The second problem is that the content of the call received by the Authority is not guaranteed to be the content of the call in the first place. Even if Alice and Bob's signatures are issued for the call contents M (for example, a contract), Alice and Bob are not necessarily the callers. This is because the entity (Alice) that signed earlier does not know who is the entity that signs later, and cannot guarantee that it is the signature of the caller.
[0013]
For example, as the content of the call received by Authority,
Alice assumed call content: SIG (SECRETAlice, M) @SIG (SECRETBob, M) ‖M
Alice unexpected call content: SIG (SECRETAlice, M) @SIG (SECRETCharley, M) ‖M
Both are possible.
[0014]
In order to solve this, the name of Alice and Bob can be described in the call content, but the call content and its signature cannot be prepared in advance, it takes time for the verifier and Authority to confirm each time, the call content There is a problem that it cannot be performed if the data is encrypted.
[0015]
The following methods exist to solve these.
(1) There is a system in which hardware for taking a communication log of a telephone is built in a telephone or the like, and a time stamp is added to call data. This is a voice recording and notarization system that can add a time stamp synchronized with Coordinated Universal Time (UTC) to call data during a telephone transaction or the like. The time certification service is a time certification authority, and the time stamp authority and the voice logging system are combined. The use of time authentication by a third party can ensure the reliability of the call contents. However, there is a problem that there is no real-time property, and that the guarantee that the record is the content of the call depends on the reliability of the hardware that logs.
(2) Secret key SECRET that has only Alice and BobAlice BobThe verifier verifies the call contents with the public key corresponding to the secret key. However, SIG (SECRETAlice Bob, M) @SIG (SECRETAlice, M) @SIG (SECRETB ob, M) @M, it cannot be denied that there is an entity having the same secret key other than Alice and Bob, and real-time performance is not guaranteed.
[0016]
Further, if the DH-type interactive key generation method, which assumes only two users, is simply extended to three or more, the amount of computation and the amount of communication of each user increase depending on the number of users, There is a problem that the efficiency is greatly reduced.
[0017]
SUMMARY OF THE INVENTION The present invention solves the above-mentioned conventional problems, enables verification of the relationship between information transmitted / received in a key sharing protocol and a public key (conversation key), and determines when and who shared a secret key corresponding to the conversation key. The purpose is to be able to understand. It is another object of the present invention to extend the number of users to three or more DH-type interactive key generation methods without lowering the efficiency. That is, the verifier can calculate a public key (interactive key) corresponding to a secret key shared by the key sharing protocol from information transmitted and received between users in the key sharing protocol, and can share the secret key. At this point, the public key (conversation key) is also made computable, so that real-time performance is guaranteed. The time stamp is a technology for proving that the content existed at a certain point in time, whereas the conversation key is a technology for proving that there is no common key corresponding to the conversation key before a certain point in time. It is.
[0018]
[Means for Solving the Problems]
In order to solve the above-mentioned problem, the present invention provides a key exchange system comprising a plurality of terminals having key exchange means capable of calculating an asymmetric common key and a center. And a means for calculating a conversation key which is a group public key using an asymmetric common key as an asymmetric secret key from intercepted communication.
[0019]
With this configuration, the relationship between the information transmitted and received in the key sharing protocol and the public key (conversation key) can be verified, and it is possible to know when and who shared the asymmetric secret key corresponding to the conversation key. When there are three or more users, the amount of calculation and the amount of communication can be reduced by adopting a ring-type communication path and limiting the communication destination of each user.
[0020]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to FIGS.
[0021]
(First Embodiment)
In the first embodiment of the present invention, an asymmetric common key is secretly shared among a plurality of user terminals by a key sharing protocol using a secret sharing scheme. This is a threshold cryptosystem (TC) type conversation key sharing system that calculates a group public key (conversation key) corresponding to an asymmetric common key shared by.
[0022]
FIG. 1 is a conceptual diagram of a conversation key sharing system according to the first embodiment of the present invention. In FIG. 1, a user 1 (Alice) and a user 2 (Bob) are parties who make a call requiring certification. The observer 3 (Charley) is a center that intercepts communication and certifies the contents of a call. The dialogue 4 is data for key sharing communicated between users. The common key 5 is an encryption key secretly shared by the user. The conversation key 6 is a public key corresponding to the common key 5, and can be generated by anyone from the conversation text 4 and the public information.
[0023]
FIG. 2 is a configuration diagram of the conversation key sharing system according to the first embodiment of the present invention. In FIG. 2, a key exchange means 7 is a means for calculating an asymmetric common key from a dialogue sentence. The interception unit 8 is a unit that intercepts communication between terminals. The conversation key calculation means 9 is a means for calculating a conversation key from a conversation sentence. FIG. 3 is a flowchart showing the operation procedure of the conversation key sharing system.
[0024]
The operation principle and operation procedure of the interactive key sharing system according to the first embodiment of the present invention will be described. First, the concept of the "dialogue key" will be described with reference to FIG. There are multiple entities that communicate, for example, Alice (user 1) and Bob (user 2). In this example, the number is two, but may be three or more. Alice and Bob execute a key sharing protocol Z and share a common key CK. This common key CK is a group secret key of a public key system (asymmetric key system). There is an entity (observer 3 (Charley)) that generates a conversation key IK without performing key sharing by observing (intercepting) communication between Alice and Bob. The “conversation key” is a group public key using the common key CK as an asymmetric secret key. The conversation key must be able to be calculated by the algorithm α from the public conversation IM transmitted and received between Alice and Bob in the key sharing protocol Z.
[0025]
The greatest feature of the "interactive key" is that Charley itself can determine when and by whom the public key corresponds to the asymmetric common key shared. For example, Alice and Bob are assumed to be users having a mobile phone or a PC, and Charley is assumed to be a GW or ISP of a communication carrier. At this time, as the application of the conversation key, it is possible to issue a call content proof and a public key certificate. In the former case (call contents proof), Alice and Bob make an encrypted / signed call (for example, a contract-related call) using an asymmetric common key, and Charley records the call and requests the verifier to make a request. This is a service that uses the conversation key to certify the contents of a call. The latter (public key certificate issuance) is a service by which Charley issues a public key certificate for the conversation key. In any case, it is advantageous that the verifier of the contents of the call or the certificate can determine who and when the conversation key is shared.
[0026]
Terms are defined as follows:
(1) User: A user who shares an asymmetric common key. No attack on the observer due to collusion between users is assumed. When the number of users is 2, they are called Alice and Bob.
(2) Observer: a third party capable of observing a dialogue between users, and a polynomial time algorithm α for calculating a dialogue key IK from a dialogue text IM, and a polynomial algorithm β for verifying a relationship between the dialogue text IM and the dialogue key IK. Have. If the number of observers is 1, it is called Charley.
(3) Asymmetric common key (CK): An asymmetric common key secretly shared by a plurality of users by a key sharing protocol at a certain point in time. In order to distinguish it from the common key (symmetric secret key) of the secret key system (symmetric key system) which is not the public key system (asymmetric key system), it is called an asymmetric common key. An individual secret key of the public key method is called an asymmetric secret key.
(4) Dialogue: Plaintext exchange between users performed for sharing the asymmetric common key CK. This plain text is called an interactive text (IM).
(5) Dialogue key (IK): a public key of a group including all users as members, and is calculated by a polynomial time algorithm α using an input as a dialogue text IM and an output as a dialogue key IK. Here, the conversation key IK is a public key using the asymmetric common key CK shared by the conversation text IM as an asymmetric secret key.
(6) Verifier: A third party other than the caller (user) and the observer, who requests verification of the call contents.
[0027]
Hereinafter, conditions to be satisfied by the present invention will be described. Although the conditions required in the general key sharing scheme are omitted, they must be satisfied in the present invention.
(1) Possibility of generation: There is a polynomial time algorithm α that calculates a conversation key IK from a conversation sentence IM.
(2) Verifiability: There is a polynomial time algorithm β that verifies the relationship between the conversation sentence IM and the conversation key IK.
(3) Tolerance: When all users can calculate the asymmetric symmetric key CK, the observer can also calculate the conversation key IK without fail.
(4) Confidentiality: The observer cannot obtain the asymmetric common key CK from the conversation IM.
[0028]
Hereinafter, the symbols used in the present invention are defined and briefly described.
(1) p: a large prime number. The large prime number is, for example, a prime number of about 1024 bits, and is a large number that cannot effectively solve the discrete logarithm problem.
(2) q: a large prime number that divides (p-1). For example, it is a prime number of about 160 bits.
(3) g: Z* pIs an element whose order is q. That is, Z* pIn the above multiplicative group, gq= 1 modp, and for r where 0 <r <q, gr≠ 1 modp. Z* pIs a set of integers from 0 to less than p and relatively prime to p. ZqIs a set of integers from 0 to less than q. If p is a prime number, Z* pIs Zp− {0}. p, q, and g are fixed parameters, and are assumed to be shared by all entities in advance. In this example, for the sake of simplicity, a discrete logarithm problem type cryptosystem is used, but elliptic curve cryptography may be used.
(4) H: Hash function.
(5) Xi: The asymmetric secret key of the user i.
(6) Yi: Asymmetric secret key X of user iiIs the public key for. Here, for the sake of simplicity, the same key pair is used for public key encryption and digital signature, but in practice it is desirable to use different key pairs.
(7) i: XiIs a user ID that keeps a secret, and is an integer of (1 ≦ i ≦ n). A user whose ID is an integer i is called user i or User i.
(8) P_ENC (y, m): a function for encrypting the plaintext m by the public key y using the public key y. It can be decrypted with the asymmetric secret key corresponding to the public key y.
(9) C_ENC (K, m): a function for encrypting the plaintext m with the symmetric secret key K by the symmetric secret key method. It can be decrypted using the symmetric secret key K.
(10) MAC (K, m): a function for generating a MAC (message authenticator) for the plaintext m using the symmetric secret key K. With the symmetric secret key K, it is possible to verify whether or not t has been tampered with.
(11) SIG (x, m): a function for signing plaintext m with asymmetric secret key x. The signature can be verified using the public key corresponding to the asymmetric secret key x. Here, an attached signature scheme is assumed as an example.
(12) L (Ψ, w): Lagrange interpolation coefficient (Ψ: set, w: integer),
L (Ψ, w) = Πt ∈Ψ\ {W}  t / (tw) modq
Is defined by {W} is a set obtained by removing the set {w} from the set Ψ.
[0029]
Next, an outline of a threshold cryptosystem (TC) type conversation key generation method will be described. Let the total number of users be n (2 ≦ n ≦ q−1). A threshold value at which a secret value can be restored from a shared value in the secret sharing method is (n + 1). That is, if there are (n + 1) or more shared values, the secret value can be restored. The total number of variance values is 2n (a set of variance value numbers is Δ). By using such a threshold cryptosystem, a key sharing method capable of generating a conversation key can be configured. See [DF89] and [P91] for details of the secret sharing scheme.
[0030]
Each user i performs the following processing.
Step 1: An asymmetric common key CK (∈Zq) Variance value2i-1, CK2i(∈Zq).
Step2: IKi(= G ^ (CK2i-1) Modp), CK2i, Verification value Fi(The power of the polynomial used for generating the variance value is defined as an index, g is the base, and p is a modulus.)
Step3: IKi, CK2i, FiPublish.
Step 4: The asymmetric symmetric key CK is restored from a total of (n + 1) distributed values (publicized n and one of the own).
[0031]
Charley performs the following processing.
Step5: All IKi, CK2iTo FiAnd if it succeeds, it will go to Step 6, and if it fails, it will show Error.
Step6: IK = Πi = 1 n  (IKi L ( Δ , 2i-1)* G ^ (CK2i* L (Δ, 2i))) Calculate the modp. The result is IK = gCK  modp.
[0032]
Charley, IKiAnd g ^ (CK2i) To collect the variance of (n + 1) or more, so that IK can be calculated. However, CK2iCannot be recovered because only n or less can be collected.
[0033]
The Threshold cryptosystem (TC) type interactive key generation method will be described in detail.
(1) Process of user i
(Step 1)
a) Random number Ri(∈Zq).
b) ZqArbitrary n-order polynomial fi(W) is generated.
c) fi, 0= RiAs
fi(W) = fi, 0* W0+ Fi, 1* W1+ ・ + Fi, n* Wn
Is calculated.
d) Fi= {Fi, k= G ^ (fi, k) | K = 0, 1,..., N} is calculated.
e) CKi, j= Fi(J) (j = 1... 2n) is calculated. User i holds two variance values. At this time, j corresponding to i is (2i-1) and (2i).
f) For all users v (v ≠ i) other than themselves,
ENCi, v= P_ENC (Yv, I‖CKi, 2v-1‖CKi, 2v)
Is calculated.
g) ENCi, vSIG (Xi, I @ ENCi, v) And ENCi, vTo the user v.
h) FiSIG (Xi, I‖Fi) And calculate FiAnd to all users. Here, ‖ means connection.
[0034]
(Step 2)
a) ENC of all users v (v @ i)v, i, SIG (Xv, V @ ENCv, i), Fv, SIG (Xv, V‖Fv) To receive.
b) YvAnd SIG (Xv, V @ ENCv, i) And if successful, ENCv, iTo XiDecrypt with CKv, 2i-1‖CKv, 2iGet. If not, send Error to all users.
c) CK2i-1= Σv = 1 n  CKv, 2i-1  Calculate modq.
d) CK2i= Σv = 1 n  CKv, 2i  Calculate modq.
e) IKi= G ^ (CK2i-1) Calculate the modp.
f) IKi, CK2iSIG (Xi, I‖IKi‖CK2i) And IKi, CK2iAnd to all users.
[0035]
(Step 3)
a) When the set of the own variance value and the number of the received variance value is φ,
CK = Σh ∈φ  (CKh* L (φ, h)) modq
Is calculated. As a result, CK = Σi = 1 n  Ri  modq.
[0036]
(2) Charley processing
(Step 1)
a) For i = 1,..., n, YiAnd SIG (Xi, I‖Fi) And SIG (Xi, I‖IKi‖CK2i) Is verified, and if the verification is successful, proceed to b). If the verification fails, an error is transmitted to all users, and the process ends.
b) For i = 1,... n, IKiAnd CK2iIs verified by the equation (1).
g ^ (CKj) = Πi = 1 n  (Πk = 0 n  Fi, k^ (jk)) Modp ... (1)
Πk = 0 n  Fi, k^ (jkModp = Πk = 0 n  (G ^ (fi, k)) ^ (jk) Modp
= Πk = 0 n  g ^ (fi, k* Jk) Modp
= G ^ (Σk = 0 n  fi, k* Jk) Modp
= G ^ (fi(J)) modp
= G ^ (CKi, j) Modp
Πi = 1 n  (G ^ (CKi, j)) Modp
= G ^ (Σi = 1 n  CKi, j) Modp
= G ^ (CKj) Modp
If the verification fails, an error is transmitted to all users, and the process ends.
c) Dialogue key
IK = Πi = 1 n  (IKi L ( Δ , 2i-1)* G ^ (CK2i* L (Δ, 2i)) modq
Is calculated. Although verification by equation (1) and generation of IK can be performed by each user, in this example, Charley performs the verification collectively.
[0037]
Next, an outline of the configuration and functions of the interactive key sharing system will be described with reference to FIG. A user 1 (Alice) and a user 2 (Bob), which are communication terminals or the like, have a key exchange unit 7. The key exchange means 7 can calculate an asymmetric common key, which is a group secret key of the public key system, from the dialogue 4. The observer 3 (Charley), which is a center, calculates a conversation key, which is a group public key using an asymmetric symmetric key as an asymmetric secret key, from an interception means 8 capable of intercepting communication between terminals and a conversation 4 of the intercepted communication. And a conversation key calculation means 9.
[0038]
The key exchange unit 7 includes a transmission / reception unit, a random number generation unit, a calculation unit, a storage unit, and the like. The basic function of the key exchange means 7 is the same as the key exchange means in the conventional cryptographic communication system, and the detailed description is omitted. The intercepting means 8 is the same as a normal receiving means, and is not different from the conventional one. The conversation key calculation means 9 is a means for calculating a conversation key from the conversation sentence 4 using an algorithm unique to the present invention. The method for calculating the conversation key is as described above.
[0039]
Next, a specific example of the conversation key sharing method when n = 2 (threshold value 3, number of shares 4) will be described with reference to FIG. Let User 1 be Alice and User 2 be Bob. Here, for simplicity, the user ID 1 is written as Alice, and X1To XAliceNotation. Others are also the same.
[0040]
Alice (i = 1) is Step1,
a) Random number RAlice(∈Zq).
b) constant term fAlice, 0Is a random number RAliceAnd ZqAny arbitrary second-order polynomial fAlice(W) is generated.
fAlice(W) = RAlice+ FAlice, 1* W1+ FAlice, 2* W2
c) Set F of verification valuesAliceGenerate
FAlice= {FAlice, k= G ^ (fAlice, kModp | k = 0,1,2}
Although this is a set, it is actually represented as a number in which each element is concatenated.
d) Generate original data of the variance value.
CKAlice, j= FAlice(J) (j = 1,..., 4)
That is,
CKAlice, 1= FAlice(1) = RAlice+ FAlice, 1* 1 + fAlice, 2* 12
CKAlice, 2= FAlice(2) = RAlice+ FAlice, 1* 2 + fAlice, 2* 22
CKAlice, 3= FAlice(3) = RAlice+ FAlice, 1* 3 + fAlice, 2* 32
CKAlice, 4= FAlice(4) = RAlice+ FAlice, 1* 4 + fAlice, 2* 42
e) Encrypt the original data of the variance value.
ENCAlice, Bob= P_ENC (YBob, CKAlice, 3‖CKAlice, 4)
f) Signature SIG (XAlice, Alice @ FAlice‖ENCAlice, Bob) Is calculated.
g) concatenate each data,
Alice @ FAlice‖ENCAlice, Bob‖SIG (XAlice, Alice @ FAlice‖ENCAlice, Bob)
And sends it to Bob.
[0041]
In Step 2,
a) Receiving data from Bob, YBobAnd SIG (XBob, Bob @ FBob‖ENCBob) And ENC if successfulBob, AliceTo XAliceDecrypt with CKBob, 1And CKBob, 2Get.
b) Calculate the variance value.
[0042]
CKj= CKAlice, j+ CKBob, j  modq (j = 1, 2)
That is,
CK1= CKAlice, 1+ CKBob, 1  modq
CK2= CKAlice, 2+ CKBob, 2  modq
c) Calculate the original data of the conversation key.
IKAlice= G ^ (CK1) Modp
d) Signature SIG (XAlice, Alice @ IKAlice‖CK2).
e) concatenate each data,
Alice @ IKAlice‖CK2‖SIG (XAlice, Alice @ IKAlice‖CK2)
And sends it to Bob.
[0043]
In Step 3,
a) Receiving data from Bob, YBobAnd SIG (XBob, Bob @ IKBob‖CK4), And if successful, compute the asymmetric secret key.
CK = CK1* L (Δ\ {3}, 1)
+ CK2* L (Δ\ {3}, 2)
+ CK4* L (Δ\ {3}, 4) modq
= (CKAlice, 1+ CKBob, 1  modq) * (2 / (2-1)) (4 / (4-1))
+ (CKAlice, 2+ CKBob, 2  modq) * (1 / (1-2)) (4 / (4-2))
+ (CKAlice, 4+ CKBob, 4  modq) * (1 / (1-4)) (2 / (2-4)) modq
= {(RAlice+ FAlice, 1* 1 + fAlice, 2* 12)
+ (RBob+ FBob, 1* 1 + fBob, 2* 12)} * (8/3)
+ {(RAlice+ FAlice, 1* 2 + fAlice, 2* 22)
+ (RBob+ FBob, 1* 2 + fBob, 2* 22)} * (-2)
+ {(RAlice+ FAlice, 1* 4 + fAlice, 2* 42)
+ (RBob+ FBob, 1* 4 + fBob, 2* 42)} * (1/3)
= (RAlice+ RBob) * ((8/3) -2+ (1/3))
+ (FAlice, 1+ FBob, 1) * ((8/3) -4+ (4/3))
+ (FAlice, 2+ FBob, 2) * ((8/3) -8+ (16/3))
= RAlice+ RBob  modq
This calculation is an operation on GF (q).
[0044]
The procedure of Bob will be described. Here, for the sake of simplicity, the user ID 2 is written as Bob, and X2To XBobNotation. Others are also the same. Bob (i = 2) is Step1,
a) A random number R of about 160 bitsBob(∈Zq).
b) The constant term is a random number RBobAnd ZqAny arbitrary second-order polynomial fBob(W) is generated.
fBob(W) = fBob, 0+ FBob, 1* W1+ FBob, 2* W2
c) Set F of verification valuesBobGenerate
FBob= {FBob, k= G ^ (fBob, k) | K = 0,1,2}
Actually, each element is represented as a connected number.
d) Generate original data of the variance value.
CKBob, j= FBob(J) for j = 1, ..., 4
e) Encrypt the original data of the variance value.
ENCBob, Alice= P_ENC (YAlice, CKBob, 1‖CKBob, 2)
f) Signature SIG (XBob, Bob @ FBob‖ENCBob, Alice) Is calculated.
g) concatenate each data,
Bob @ FBob‖ENCBob, Alice‖SIG (XBob, Bob @ FBob‖ENCBob, Alice)
And sends it to Bob.
[0045]
In Step 2,
a) Receiving data from Alice, YAliceAnd SIG (XAlice, Alice @ FAlice‖ENCAlice, Bob) And ENC if successfulAlice, BobTo XBobDecrypt with CKAlice, 3And CKAlice, 4Get.
b) Calculate the variance value.
CKj= CKAlice, j+ CKBob, j  modq (j = 3, 4)
c) Calculate the original data of the conversation key.
IKBob= G ^ (CK3) Modp
d) Signature SIG (XBob, Bob @ IKBob‖CK4).
e) concatenate each data,
Bob @ IKBob‖CK4‖SIG (XBob, Bob @ IKBob‖CK4)
And sends it to Bob.
[0046]
In Step 3,
a) Receiving data from Alice, YAliceAnd SIG (XAlice, Alice @ IKAlice‖CK2), And if successful, compute the asymmetric secret key.
CK = CK2* L (Δ\ {1}, 2)
+ CK3* L (Δ\ {1}, 3)
+ CK4* L (Δ\ {1}, 4) modq
= (CKAlice, 2+ CKBob, 2  modq) * (3 / (3-2)) (4 / (4-2))
+ (CKAlice, 3+ CKBob, 3  modq) * (2 / (2-3)) (4 / (4-3))
+ (CKAlice, 4+ CKBob, 4  modq) * (2 / (2-4)) (3 / (3-4)) modq
= {(RAlice+ FAlice, 1* 2 + fAlice, 2* 22)
+ (RBob+ FBob, 1* 2 + fBob, 2* 22)} * 6
+ {(RAlice+ FAlice, 1* 3 + fAlice, 2* 32)
+ (RBob+ FBob, 1* 3 + fBob, 2* 32)} * (-8)
+ {(RAlice+ FAlice, 1* 4 + fAlice, 2* 42)
+ (RBob+ FBob, 1* 4 + fBob, 2* 42)} * 3
= (RAlice+ RBob) * (6-8 + 3)
+ (FAlice, 1+ FBob, 1) * (12-24 + 12)
+ (FAlice, 2+ FBob, 2) * (24-72 + 48)
= RAlice+ RBob  modq
This calculation is an operation on GF (q).
[0047]
Charley in Step3,
a) YAliceUsing,
SIG (XAlice, Alice @ FAlice‖ENCAlice)When
SIG (XAlice, Alice @ IKAlice‖CK2),
YBobUsing,
SIG (XBob, Bob @ FBob‖ENCBob)When
SIG (XBob, Bob @ IKBob‖CK4),
If successful, the processing of b) is performed.
b) FAliceAnd FBobUsing IKA, CK2And IKB, CK4Is verified, and if successful, the processing of c) is performed.
[0048]
c) Calculate the conversation key.
IK = IKAlice{(L (Δ, 1)) * g} (CK2* L (Δ, 2))
* IKBob{(L (Δ, 3)) * g} (CK4* L (Δ, 4)) modp
= G ^ (CK1* (2 / (2-1)) (3 / (3-1)) (4 / (4-1)))
* G ^ (CK2* (1 / (1-2)) (3 / (3-2)) (4 / (4-2)))
* G ^ (CK3* (1 / (1-3)) (2 / (2-3)) (4 / (4-3)))
* G ^ (CK4* (1 / (1-4)) (2 / (2-4)) (3 / (3-4))) modp
= G ^ (CK1* 4 + CK2* (-6) + CK3* 4 + CK4* (-1)) modp
= GCK  modp
(CK1* 4 + CK2* (-6) + CK3* 4 + CK4* (-1))
= (CKAlice, 1+ CKBob, 1) * 4 + (CKAlice, 2+ CKBob, 2) * (-6)
+ (CKAlice, 3+ CKBob, 3) * 4 + (CKAlice, 4+ CKBob, 4) * (-1)
= {(RAlice+ FAlice, 1* 1 + fAlice, 2* 12)
+ (RBob+ FBob, 1* 1 + fBob, 2* 12)} * 4
+ {(RAlice+ FAlice, 1* 2 + fAlice, 2* 22)
+ (RBob+ FBob, 1* 2 + fBob, 2* 22)} * (-6)
+ {(RAlice+ FAlice, 1* 3 + fAlice, 2* 32)
+ (RBob+ FBob, 1* 3 + fBob, 2* 32)} * 4
+ {(RAlice+ FAlice, 1* 4 + fAlice, 2* 42)
+ (RBob+ FBob, 1* 4 + fBob, 2* 42)} * (-1)
= (RAlice+ RBob) * (4-6 + 4-1)
+ (FAlice, 1+ FBob, 1) * (4-12 + 12-4)
+ (FAlice, 2+ FBob, 2) * (4-24 + 36-16)
= (RAlice+ RBob)
= CK
[0049]
The safety will be described. A TC-type dialogue sentence is composed of a variance value of the asymmetric common key CK and a power-residue value using the variance value as an exponent. The share value of the asymmetric symmetric key CK is a Shamir secret sharing scheme [S79] of (threshold value n + 1, share value number 2n). Since the number of share values disclosed is n, the amount of information is Charley. Cannot recover the asymmetric symmetric key CK. Further, since finding the exponent of the power-residue value results in a discrete logarithm problem, IKiAnd the variance value fromiIt is difficult to find a coefficient used for generating a variance value from the calculation amount.
[0050]
As described above, in the first embodiment of the present invention, the interactive key sharing system uses the key sharing protocol using the secret sharing method to secretly share the asymmetric common key among a plurality of user terminals, Is a Threshold cryptosystem (TC) type that calculates a group public key (dialogue key) corresponding to a secretly shared asymmetric common key from communication between intercepted terminals. A system can be realized.
[0051]
(Second embodiment)
According to the second embodiment of the present invention, an asymmetric common key is secretly shared between two user terminals by a key sharing protocol using the DH method, and the center secretly performs communication from the intercepted terminals. This is a Diffie-Hellman (DH) type interactive key sharing system that calculates a group public key (interactive key) corresponding to a shared asymmetric common key.
[0052]
FIG. 4 is a flowchart showing an operation procedure of the interactive key sharing system according to the second embodiment of the present invention. The basic configuration of the conversation key sharing system according to the second embodiment is the same as that of the first embodiment shown in FIG.
[0053]
The operation principle and operation procedure of the interactive key sharing system according to the second embodiment of the present invention will be described. First, an outline of the key sharing method and the conversation key generation method will be described. The DH-type interactive key sharing scheme is based on a simple key-sharing method between Alice and Bob using public key cryptography and Charley's interactive key generation method, and a verification method of an interactive sentence IM and an interactive key IK using the DH problem. Become.
[0054]
Alice's secret random number is RAlice(∈Zq), The conversation key source data IKAlice(= G ^ (RAlice) Modp) and a random number RAliceTo Bob's public key YBobAnd sends it to Bob. Bob also has the conversation key source data IK, like Alice.BobAnd the random number RBobIs encrypted with the public key of Alice and transmitted.
[0055]
Alice and Bob use the asymmetric symmetric key CK (= RAlice+ RBob  modq). Charley is the conversation key
IK = IKAlice* IKBob  modp
= G ^ (RAlice+ RBob) Modp
Is calculated to obtain a conversation key IK corresponding to the asymmetric common key CK.
[0056]
Conversation sentence IM and conversation key source data IKAliceA verification method will be described. Conversation sentence IM and conversation key source data IKAlice, IKBobThe purpose of the verification method is toAlice, IKBobA random number R corresponding toAlice, RBobThat Alice and Bob hold, respectively, a random number RAlice, RBobIt is to verify without knowing. Bob uses a random number D as a challenge.Bob(∈Zq) Is an exponentiation residue value CHABob, Alice(= G ^ (DBob) Send modp) to Alice. Alice responds with a challenge CHABob, AliceTo a random number RAliceRES to the power ofAlice, bob(= (G ^ (DBob)) ^ (RAlice) Send modp) to Bob. Bob is the response RESAlice, BobAfter receiving the random number DBobPublish.
[0057]
Charley RESAlice, Bob, DBobOnly when published in the order
RESAlice, Bob≡IKAlice^ (DBob) (Modp)
Verify If successful, Alice is the conversation key source data IKAliceA random number R corresponding toAliceApprove to have. Random number DBobBefore the release ofAliceWithout knowing the conversation key source data IKAlice(= G ^ (RAlice) Modp) and Challenge CHABob, Alice(= G ^ (DBob) Response RES from modp)Alice, bob(= (G ^ (DBob)) ^ (RAliceComputing modp) can be reduced to a DH problem. Thus, Charley is a random number RAliceWithout knowing Alice, random number RAliceCan be verified.
[0058]
Next, with reference to FIG. 4, the operation procedure of the Diffie-Hellman (DH) type interactive key sharing system will be described in detail by combining the interactive key generation method, the interactive sentence, and the interactive key verification method. Note that each user can verify the expressions (2) and (3) and generate the conversation key, but in this example, Charley collectively performs the verification.
[0059]
Alice is Step1,
a) Random number RAlice, DAlice(∈Zq).
b) Original data of conversation key
IKAlice= G ^ (RAlice) Modp
Is calculated.
c) Challenge
CHAAlice, Bob= G ^ (DAlice) Modp
Is calculated.
d) Signature SIG (XAlice, Alice @ IKAlice‖ CHAAlice, Bob) And IKAlice, CHAAlice, BobAnd sends it to Bob.
[0060]
Bob is in Step2,
a) Alice's public key YAliceAnd the signature SIG (XAlice, Alice @ IKAlice‖ CHAAlice, Bob) Is verified, and if it fails, it ends.Bob, DBob(∈Zq).
b) Original data of conversation key
IKBob= G ^ (RBob) Modp
Is calculated.
c) Challenge
CHABob, Alice= G ^ (DBob) Modp
Is calculated.
d) Response
RESBob, Alice= CHAAlice, Bob^ (RBob) Modp
Is calculated.
e) Signature SIG (XBob, Bob @ IKBob‖ CHABob, Alice‖RESBob, Alice) And IKBob, CHABob, Alice, RESBob, AliceWith Alice.
[0061]
Alice is Step3,
a) Bob's public key YBobUsing the signature SIG (XBob, Bob @ RESBob, Alice‖ CHABob, Alice‖IKBob), Exit if unsuccessful, response if successful
RESAlice, Bob= CHABob, Alice^ (RAlice) Modp
Is calculated.
b) Ciphertext
ENCAlice, Bob= P_ENC (YBob, Alice @ RAlice)
Is calculated.
c) Signature SIG (XAlice, Alice @ ENCAlice, Bob‖DAlice‖RESAlice, Bob) And ENCAlice, Bob, DAlice, RESAlice, BobAnd sends it to Bob.
[0062]
Bob is in Step4,
a) Alice's public key YAliceUsing the signature SIG (XAlice, Alice @ ENCAlice, Bob‖DAlice‖RESAlice, Bob) And if successful, XBobIn ENCAlice, Bob, And RAliceGet.
b) Ciphertext
ENCBob, Alice= C_ENC (H (RAlice), RBob)
Is calculated.
c) Signature SIG (XBob, Bob @ ENCBob, Alice‖DBob) And ENCBob, Alice, DBobWith Alice.
d) Asymmetric common key
CK = RBob+ RAlice  modq
Is calculated.
[0063]
Alice in Step5,
a) YBobUsing SIG (XBob, Bob @ ENCBob, Alice‖DBob), And if successful, H (RAlice) In ENCBob, Alice, And RBobGet.
b) Asymmetric common key
CK = RAlice+ RBob  modq
Is calculated.
[0064]
Charley in Step5,
a) YAliceUsing
SIG (XAlice, Alice @ IKAlice‖ CHAAlice, Bob)When
SIG (XAlice, Alice @ ENCAlice, Bob‖DAlice‖RESAlice, Bob),
YBobUsing
SIG (XBob, Bob @ IKBob‖ CHABob, Alice‖RESBob, Alice)When
SIG (XBob, Bob @ ENCBob, Alice‖DBob),
If the verification is successful, b) is executed, and if the verification is not successful, Error is transmitted to Alice and Bob.
b) Formula
RESAlice, Bob≡IKAlice^ (DBob) (Modp) (2)
RESBob, Alice≡IKBob^ (DAlice) (Modp) (3)
Is verified, and if it is established, c) is executed. If it is not established, Error is transmitted to Alice and Bob. That is, if established,
RESAlice, Bob= CHABob, Alice^ (RAlice) Modp
= (G ^ (DBob)) ^ (RAlice) Modp
= G ^ (DBob* RAlice) Modp
IKAlice^ (DBob) Modp
= (G ^ (RAlice)) ^ (DBob) Modp
= G ^ (DBob* RAlice) Modp
And similarly,
RESBob, Alice= CHAAlice, Bob^ (RBob) Modp
= (G ^ (DAlice)) ^ (RBob) Modp
= G ^ (DAlice* RBob) Modp
IKBob^ (DAlice) Modp
= (G ^ (RBob)) ^ (DAlice) Modp
= G ^ (DAlice* RBob) Modp
Becomes
c) Calculate the conversation key.
IK = IKAlice* IKBob  modp
= G ^ (RAlice) * G ^ (RBob) Modp
= G ^ (RAlice+ RBob) Modp
[0065]
The safety will be described. If the encryption method used is secure and the discrete logarithm problem is computationally difficult, the ciphertext ENCiAnd the power residue value IKiFrom Charley to RiObtaining is obviously difficult.
[0066]
As described above, in the second embodiment of the present invention, the interactive key sharing system secretly shares an asymmetric common key between two user terminals by a key sharing protocol using the DH method, A Diffie-Hellman (DH) type, which calculates a group public key (dialogue key) corresponding to a secretly shared asymmetric common key from communication between intercepted terminals, is based on the Diffie-Hellman key sharing method. Thus, a conversation key sharing system can be realized.
[0067]
(Third embodiment)
According to the third embodiment of the present invention, an asymmetric common key is secretly shared between two user terminals by a key sharing protocol using the RSA method. This is an RSA-type interactive key sharing system that calculates a group public key (dialogue key) corresponding to a shared asymmetric common key.
[0068]
The operation principle and operation procedure of the interactive key sharing system according to the third embodiment of the present invention will be described. The basic configuration of the conversation key sharing system according to the third embodiment is the same as that of the first embodiment shown in FIG. The difference is that it is based on the principle of RSA encryption.
[0069]
U is a prime number of about 1024 bits. e is the public key of the RSA and is a number of about 16 bits. For example, e = (216+1) (Fermer prime number). U and e are shared by all entities (user A, user B, and center). For ease of explanation, assume that user A is Alice, user B is Bob, and the center is Charley.
[0070]
Alice is Step1,
a) Random number R of about 1024 bitsAlice(1 ≦ RAlice<U) is generated.
b) Ciphertext
ENCAlice, Bob= P_ENC (YBob, RAlice)
Is calculated and transmitted to Bob.
[0071]
Bob is in Step2,
a) Asymmetric secret key XBobUsing the ciphertext ENCAlice, BobIs decrypted.
b) A random number R of about 1024 bitsBob(1 ≦ RBob<U) is generated. RAlice* RBob> U.
c) Prime number Q of about 512 bitsBobGenerate If e is not a prime number, (QBob-1) is relatively prime to e. Furthermore, QBob* RBob> U.
d) Original data of conversation key
IKBob= QBob* RBob  modU
Is calculated.
e) Product of random numbers
RAlice, Bob= RAlice* RBob  modU
And IKBobWith Alice.
[0072]
Alice is Step3,
a) Prime number P of about 512 bitsAliceGenerate If e is not a prime number, (PAlice-1) is relatively prime to e. RAlice* PAlice> U.
b) Original data of conversation key
IKAlice= RAlice* PAlice  modU
Is calculated and transmitted to Bob.
c) QBob= (RAlice* IKBob) / RAlice, Bob  Calculate modU.
d) Calculate an asymmetric secret key d satisfying the following equation.
d * e @ 1 (mod LCM (PAlice-1, QBob-1))
[0073]
Bob is in Step4,
a) PAlice= IKAlice/ RAlice  Calculate modU.
b) Calculate an asymmetric secret key d satisfying the following equation.
d * e @ 1 (mod LCM (PAlice-1, QBob-1))
Thus, the asymmetric secret key d is shared.
[0074]
Charley in Step4,
a) Conversation key law
IK = (IKAlice* IKBob) / RAlice Bob  modU
= (RAlice* PAlice* QBob* RBob) / (RAlice* RBobModU
= (PAlice* QBobModU
Is calculated.
[0075]
The public key (conversation key) corresponding to the asymmetric secret key d is the exponent e, and the modulus is IK. If the exponent e is a prime number of about 16 bits, the secret prime PAlice, QBobIs LCM (PAlice-1, QBob-1) Since it is smaller and relatively prime to it, it satisfies the RSA public key condition. If the exponent e is not a prime, the secret prime PAlice, QBobTo (PAlice-1), (QBob-1) may be determined so as to be relatively prime to the power index e.
[0076]
As described above, in the third embodiment of the present invention, the interactive key sharing system secretly shares an asymmetric common key between two user terminals by a key sharing protocol using the RSA method, Since an RSA type is used to calculate a group public key (dialogue key) corresponding to a secretly shared asymmetric common key from communication between intercepted terminals, an interactive key sharing system based on RSA encryption can be realized.
[0077]
(Fourth embodiment)
In the fourth embodiment of the present invention, an asymmetric common key is secretly shared between a plurality of user terminals by a key sharing protocol. This is a call content certification system that calculates a group public key (conversation key) corresponding to a key and verifies a signature using an asymmetric common key with the conversation key.
[0078]
FIG. 5 is a configuration diagram of a call content certification system according to the fourth embodiment of the present invention. In FIG. 5, a verifier 10 is a person who requests a user to verify the contents of a call. The dialogue storage unit 11 is a unit that stores a dialogue between users. The signature verification unit 12 is a unit that verifies the user's signature with the conversation key. Other basic configurations are the same as those of the first embodiment shown in FIG.
[0079]
The operation procedure of the call contents certification system according to the fourth embodiment of the present invention configured as described above will be described. First, the application of the conversation key will be described. As an application in which a conversation key is effective, proof of call contents (contract etc.) is considered. Here, the call content proof is an application that enables a third party to confirm the call content by adding a signature to the call content between a plurality of users.
[0080]
Generally, in the conventional call content certification, a Trusted Authority or a signature of each caller is added. Therefore, there is a possibility that a plurality of signatures are added to the content of the call, and the first signer does not know who will sign later. Therefore, this call content proof is not necessarily suitable for contracts and the like. In order to solve this, it is conceivable to add a signature using an asymmetric secret key shared by all the callers. However, unlike a conversation key, a public key obtained by a signature verifier in the conventional Simple Method cannot be used for such a purpose because it is not known when and who shared the key.
[0081]
In the present invention, a conversation key is used, and a condition is added that "Charley securely records the conversation text and the contents of the conversation and publishes them on demand." The set of {Alice and Bob, Charley} assumes {GW of mobile phone and communication carrier}, and {Server or Proxy of PC and ISP}. An example of a call content proof between Alice and Bob using a conversation key is shown.
[0082]
With reference to FIG. 5A, a procedure for registering the contents of a call in Example 1 will be described.
1. Alice and Bob ask Charley for observation.
2. Alice and Bob talk IMAliceAnd IMBobAre exchanged, and the asymmetric common key CK is shared.
3. Alice uses the ciphertext CT generated as follows.Alice, Signature SMAliceI, SMAlice II, Fingerprint FPAliceTo Bob.
3-1. Call text PTAliceFrom fingerprint FPAlice(= H (PTAlice)).
3-2. Call text PTAliceIs encrypted with the asymmetric common key CK or the conversation key IK, and the ciphertext CTAliceGenerate
3-3. Asymmetric secret key XAliceAnd the asymmetric common key CK,Alice‖H (CTAlice) Signature SMAliceI, SMAlice IIGenerate
4. Bob uses the ciphertext CT generated similarly to Alice.Bob, Signature SMBobI, SMBob II, Fingerprint FPBobTo Alice.
5. The recipient (Alice) uses the ciphertext CTBobFrom call text PTBobTo obtain H (PTBob) = Check FP, then sign SMBobI, SMBob IIVerify Recipient (Bob) uses ciphertext CTAliceFrom call text PTAliceTo obtain H (PTAlice) = FPAliceAfter confirming the signature SMAliceI, SMAlice IIVerify
6. Charley is IMAlice, IMBob, CTAlice, CTBob, FPAlice, FPBob, SMAliceI, SMAlice II, SMBobI, SMAlice IISave.
[0083]
With reference to FIG. 5A, the procedure of the call content verification of Example 1 will be described.
1. The verifier requests Alice or Bob for a call proof.
2. Alice or Bob asks Charley to certify the call contents.
3. Alice or Bob is a call PTAlice, PTBobPublish.
4. Charley is IMAlice, IMBob, CTAlice, CTBob, FPAlice, FPBob, SMAliceI, SMAlice II, SMBobI, SMAlice IIPublish.
5. The verifier uses the interactive text IMAlice, IMBobGenerates a conversation key IK from theAlice, PTBobFrom fingerprint FPAlice, FPBobGenerate
6. Verifier is FPAlice, FPBob, CTAlice, CTBob, IK, YAlice, YBobUsing the signature SMAliceI, SMAlice II, SMBobI, SMBob IIAnd if the verification is successful, the call sentence PTAlice, PTBobAccept.
[0084]
With reference to FIG. 5B, a procedure for registering the contents of a call in Example 2 will be described. The difference from Example 1 is that a cipher text CT and a signature for H (PT) are transmitted.
1. Alice and Bob ask Charley for observation.
2. Alice and Bob talk IMAliceAnd IMBobAre exchanged, and the asymmetric common key CK is shared.
3. Alice uses the ciphertext CT generated as follows.AliceAnd signature SMAliceI, SMAlice IITo Bob.
3-1. Call text PTAliceFrom, H (PTAlice).
3-2. Call text PTAliceIs encrypted with the conversation key IK and the ciphertext CTAliceGenerate
3-3. Secret key XAliceAnd H (PTAlice) Signature SMAliceI, SMAlice IIGenerate
4. Bob uses the ciphertext CT generated similarly to Alice.BobAnd signature SMBobI, SMBob IITo Alice.
6. Charley is IMAlice, IMBob, CTAlice, CTBob, SMAliceI, SMAlice II, SMBobI, SMBob IISave.
[0085]
With reference to FIG. 5B, a description will be given of the procedure of the call content verification of the second example. The difference from Example 1 is that Charley calculates the ciphertext CT from the published call text PT, calculates H (CT) from the ciphertext CT, and verifies the signature.
1. The verifier requests Alice or Bob for a call proof.
2. Alice or Bob asks Charley to certify the call contents.
3. Alice or Bob is a call PTAlice, PTBobPublish.
4. Charley is IMAlice, IMBob, CTAlice, CTBob, SMAliceI, SMAlice II, SMBobI, SMBob IIPublish.
5. Charley is a call IMAlice, IMBobGenerates the conversation key IK from
6. Charley is a publicized PTAlice, PTBobTo ciphertext CTAlice, CTBobIs calculated, and the ciphertext CTAlice, CTBobTo H (CTAlice), H (CTBob) To calculate the conversation key IK and the public key Y.Alice, YBobUsing the signature SMAliceI, SMAlice II, SMBobI, SMBob IIVerify
7. If the verification is successful, the verifier can call PTAlice, PTBobAccept.
[0086]
With reference to FIG. 5B, a procedure for registering the contents of a call in Example 3 will be described. The difference from Example 1 is that signatures for the call texts PT and H (PT) are transmitted.
1. Alice and Bob ask Charley for observation.
2. Alice and Bob talk IMAliceAnd IMBobAre exchanged, and the asymmetric common key CK is shared.
3. Alice uses the ciphertext CT generated as follows.AliceAnd signature SMAliceI, SMAlice IITo Bob.
3-2. Call text PTAliceIs encrypted with the asymmetric common key CK or the conversation key IK and the ciphertext CTAliceGenerate
3-3. Asymmetric secret key XAliceAnd H (PTAlice) Signature SMAliceI, SMAlice IIGenerate
4. Bob uses the ciphertext CT generated similarly to Alice.BobAnd signature SMBobI, SMBob IITo Alice.
5. The recipient (Alice or Bob) obtains the call text PT from the ciphertext CT, generates H (PT), and then verifies the signature.
6. Charley is IMAlice, IMBob, CTAlice, CTBob, FPAlice, FPBob, SMAliceI, SMAlice II, SMBobI, SMAlice IISave.
[0087]
With reference to FIG. 5B, the procedure of the call content verification of Example 3 will be described. The difference from Example 1 is that Charley calculates H (PT) from the call text PT and verifies the signature.
1. The verifier requests Alice or Bob for a call proof.
2. Alice or Bob asks Charley to certify the call contents.
3. Alice or Bob is a call PTAlice, PTBobPublish.
4. Charley is IMAlice, IMBob, CTAlice, CTBob, SMAliceI, SMAlice II, SMBo bI, SMAlice IIPublish.
5. Charley is a dialogue IMAlice, IMBobGenerates the conversation key IK from
6. Charley is a PTAlice, PTBobTo H (PTAlice), H (PTBob), The conversation key IK and the public key YAlice, YBobUsing the signature SMAliceI, SMAlice II, SMBobI, SMBob IIVerify
7. If the verification is successful, the verifier can call PTAlice, PTBobAccept.
[0088]
Example 4 is a method of adding a signature of a recipient. In Examples 1 to 3, a signature using its own asymmetric secret key X is created for information (for example, FP, CT, PT) transmitted by Alice or Bob, and sent back to the sender.
[0089]
When the center (observer Charley) is Certificate Authority, it can also be used for an application that issues a public key certificate for a conversation key. Since the center (observer Charley) may be not only a prover but also a verifier, the center and the verifier may be integrated.
[0090]
As described above, in the fourth embodiment of the present invention, the call content certification system uses a key sharing protocol to secretly share an asymmetric common key among a plurality of user terminals, and the center establishes a communication between the intercepted terminals. , A group public key (conversation key) corresponding to the secret shared asymmetric common key is calculated, and the signature using the asymmetric common key is verified with the conversation key. Can be proved.
[0091]
(Fifth embodiment)
The fifth embodiment of the present invention is a call content certification system using a DH-type interactive key generation method for three or more users connected by a ring-type communication channel.
[0092]
FIG. 6 is a flowchart showing an operation procedure of the interactive key sharing system according to the fifth embodiment of the present invention. An example when the number of users is 5 is shown. The basic configuration of the conversation key sharing system according to the fifth embodiment is the same as that of the first embodiment shown in FIG. 2, but three or more users are connected by a ring communication channel. The points are different. In FIG. 6, since details are omitted, there is a part different from the description.
[0093]
The operation procedure of the call contents certification system according to the fifth embodiment of the present invention configured as described above will be described. In order to assume a ring communication channel, n (n ≧ 3) users are classified into the following three types.
Starter: a user who starts communication, and has a user ID of 1.
Relay: a user who relays communication, and user IDs are 2,..., N-1.
Terminator: a user who ends communication, and the user ID is n.
[0094]
Let λ be a set of all user IDs. That is,
λ = {1, 2,..., n}
εiIs a set of IDs of the users 2,..., I. That is,
εi= {2, ..., i}
δiIs a set of user IDs of users 1, i + 2,..., N. That is,
δi= Λ-εi + 1= {1, i + 2, ..., n}
[0095]
An example in which n = 5 will be described with reference to FIG.
In Step S1, the user 1 sets a random number R1And D1(∈Zq) To generate the conversation key
IK1= G ^ (R1) Modp
And the challenge
CHA1= G ^ (D1) Modp
Is calculated and transmitted to the user 2.
[0096]
In Step R11, the user 2 enters a random number R2(∈Zq) To generate the conversation key
IK2= G ^ (R2) Modp
And calculate the response
RES2= CHA1^ (R2) Modp
To calculate IK2And RES2And CHA1Is transmitted to the user 3.
In Step R21, the user 3 enters the random number R3(∈Zq) To generate the conversation key
IK3= G ^ (R3) Modp
And calculate the response
RES3= CHA1^ (R3) Modp
To calculate IK3And RES3And CHA1Is transmitted to the user 4.
In Step R31, the user 4 enters the random number R4(∈Zq) To generate the conversation key
IK4= G ^ (R4) Modp
And calculate the response
RES4= CHA1^ (R4) Modp
To calculate IK4And RES4And CHA1Is transmitted to the user 5.
[0097]
In Step T1, the user 5 enters a random number R5And D5(∈Zq) To generate the conversation key
IK5= G ^ (R5) Modp
Calculate and challenge
CHA5= G ^ (D5) Modp
And calculate the response
RES5= CHA1^ (R5) Modp
To calculate IK5And CHA5And RES5Is transmitted to the user 1.
[0098]
In Step S2, the user 1 responds
RES1= CHA5^ (R1) Modp
And calculate RES1And D1Is transmitted to the user 2.
[0099]
In Step R12, the user 2
ENC2,3= P_ENC (Y3, 2 @ R2)
Is calculated and transmitted to the user 3.
In StepR22, the user 3 uses the ciphertext
ENC2,3= P_ENC (Y3, 2 @ R2)
With the asymmetric secret key X3Decrypt using R2Therefore, user 3 obtains (R2, R3). Cryptogram
ENC3,4= P_ENC (Y4, 3‖R2+ R3  modq)
Is calculated and transmitted to the user 4.
In Step R32, the user 4
ENC3,4= P_ENC (Y4, 3‖R2+ R3  modq)
With the asymmetric secret key X4Decrypt using R2+ R3User 4, (R2+ R3, R4). Cryptogram
ENC4,5= P_ENC (Y5, 4 @ R2+ R3+ R4  modq)
Is calculated and transmitted to the user 5.
[0100]
At Step T2, the user 5
ENC4,5= P_ENC (Y5, 4 @ R2+ R3+ R4  modq)
With the asymmetric secret key X5Decrypt using R2+ R3+ R4Therefore, the user 5 obtains (R2+ R3+ R4, R5). Cryptogram
ENC5,1= P_ENC (Y1, 5‖R2+ R3+ R4+ R5  modq)
And calculate the random number D5At the same time, it transmits to user 1.
[0101]
In Step S3, the user 1
ENC5,1= P_ENC (Y1, 5‖R2+ R3+ R4+ R5  modq)
With the asymmetric secret key X1Decrypt using R2+ R3+ R4+ R5Therefore, user 1 obtains (R1, R2+ R3+ R4+ R5). Asymmetric secret key
CK = R1+ R2+ R3+ R4+ R5  modq
Is calculated. Cryptogram
ENC1,2= P_ENC (Y2, 1 @ R1+ R3+ R4+ R5  modq)
Is calculated and transmitted to the user 2.
[0102]
In StepR13, the user 2
ENC1,2= P_ENC (Y2, 1 @ R1+ R3+ R4+ R5  modq)
With the asymmetric secret key X2Decrypt using R1+ R3+ R4+ R5Therefore, user 2 obtains (R1+ R3+ R4+ R5, R2). Asymmetric secret key
CK = R1+ R2+ R3+ R4+ R5  modq
Is calculated. Cryptogram
ENC2,3= C_ENC (H (R2), R1+ R4+ R5  modq)
Is calculated and transmitted to the user 3.
In Step R23, the user 3
ENC2,3= C_ENC (H (R2), R1+ R4+ R5  modq)
With the hash value H (Ri-1) And decrypt using R1+ R4+ R5Therefore, user 3 obtains (R1+ R4+ R5, R2, R3). Asymmetric secret key
CK = R1+ R2+ R3+ R4+ R5  modq
Is calculated. Cryptogram
ENC3,4= C_ENC (H (R2+ R3), R1+ R5  modq)
Is calculated and transmitted to the user 4.
At Step R33, the user 4
ENC3,4= C_ENC (H (R2+ R3  modq), R1+ R5  modq)
With the hash value H (R2+ R3  modq) to decrypt and1+ R5User 4, (R1+ R5, R2+ R3, R4). Asymmetric secret key
CK = R1+ R2+ R3+ R4+ R5  modq
Is calculated. Cryptogram
ENC4,5= C_ENC (H (R2+ R3+ R4  modq), R1  modq)
Is calculated and transmitted to the user 5.
[0103]
In Step T3, the user 5
ENC4,5= C_ENC (H (R2+ R3+ R4  modq), R1  modq)
With the hash value H (R2+ R3+ R4  modq) to decrypt and1Therefore, the user 5 obtains (R1, R2+ R3+ R4, R5). Asymmetric secret key
CK = R1+ R2+ R3+ R4+ R5  modq
Is calculated.
[0104]
In Step O1, the center is RES2,…, RES5Has been released since D1, RES1Is released, and then D5Confirm that has been released. In Step O2, the center
RES2* RES3* RES4* RES5≡ (IK2* IK3* IK4* IK5) ^ (D1) (Modp)
RES1≡IK1^ (D5) (Modp)
Check. In StepO3, the center confirms all confirmations,
IK = IK1* IK2* IK3* IK4* IK5  modp
= G ^ (R1+ R2+ R3+ R4+ R5) Modp
Is calculated.
[0105]
A case where there are n users and no verification is described. Let p be a prime number, q be a prime factor of (p-1), and g be an element of GF (q) whose order is q. The center is previously shared with users 1 to n (n ≧ 3) with p, q, and g as fixed parameters. XiIs the asymmetric secret key of the user i. YiTo X of user iiThe public key for. Let P_ENC (y, m) be a function that uses the public key y to encrypt the plaintext m into a ciphertext that can be decrypted with the asymmetric secret key corresponding to the public key y using the public key method. Let C_ENC (K, m) be a function that encrypts plaintext m with a symmetric secret key K into a ciphertext that can be decrypted with the symmetric secret key K. Let H be a hash function. This is a conversation key sharing method in which communication between n terminals capable of exchanging an asymmetric common key is intercepted at a center and a conversation key which is a group public key using the asymmetric common key as an asymmetric secret key is calculated.
[0106]
In Step S1, the user 1 sets a random number R1(∈Zq) To generate the conversation key
IK1= G ^ (R1) Modp
Is calculated and transmitted to the user 2.
[0107]
In Step R1, the user 2 enters a random number R2(∈Zq) To generate the conversation key
IK2= G ^ (R2) Modp
Calculate the ciphertext
ENC2,3= P_ENC (Y3, 2 @ R2)
To calculate IK2And ENC2,3Is transmitted to the user 3.
When n ≧ 4, the user i (3 ≦ i ≦ n−1) receives a random number Ri(∈Zq) To generate the conversation key
IKi= G ^ (Ri) Modp
Calculate the ciphertext
ENCi-1, i= P_ENC (Yi, I-1}j ∈ε i-1Rj)
With the asymmetric secret key XiDecrypt using Σj ∈ε i-1RjGet the ciphertext
ENCi, i + 1= P_ENC (Yi + 1, I‖Σj ∈ε iRj)
To calculate IKiAnd ENCi, i + 1To the user i + 1. Hereinafter, similar processing is sequentially performed for the users i + 1 to n-1.
[0108]
In Step T1, the user n sets a random number Rn(∈Zq) To generate the conversation key
IKn= G ^ (Rn) Modp
Calculate the ciphertext
ENCn-1, n= P_ENC (Yn, N-1}j ∈ε n-1Rj)
With the asymmetric secret key XnDecrypt using Σj ∈ε n-1RjGet the ciphertext
ENCn, 1= P_ENC (Y1, N}j ∈ε nRj)
To calculate IKnAnd ENCn, 1Is transmitted to the user 1.
[0109]
At Step S2, the user 1
ENCn, 1= P_ENC (Y1, N}j ∈ε nRj)
With the asymmetric secret key X1Decrypt using Σj ∈ε nRjTo obtain an asymmetric secret key
CK = R1+ R2+ ... + Rn  modq
Is calculated. Cryptogram
ENC1,2= P_ENC (Y2, 1‖Σj ∈δ 1Rj)
Is calculated and transmitted to the user 2.
[0110]
In Step R2, the user 2
ENC1,2= P_ENC (Y2, 1‖Σj ∈δ 1Rj)
With the asymmetric secret key X2Decrypt using Σj ∈δ 1RjTo obtain an asymmetric secret key
CK = R1+ R2+ ... + Rn  modq
Is calculated. Cryptogram
ENC2,3= C_ENC (H (R2) 、 Σj ∈δ 2Rj)
Is calculated and transmitted to the user 3.
When n≥4, the user i (3≤i≤n-1)
ENCi-1, i= C_ENC (H (Σj ∈ε i-1Rj) 、 Σj ∈δ i-1Rj)
With the hash value H (Σj ∈ε i-1Rj) To decrypt using Σj ∈δ i-1RjTo obtain an asymmetric secret key
CK = R1+ R2+ ... + Rn  modq
Is calculated. Cryptogram
ENCi, i + 1= C_ENC (H (Σj ∈ε iRj) 、 Σj ∈δ iRj)
Is calculated and transmitted to the user i + 1. Hereinafter, similar processing is sequentially performed for the users i + 1 to n-1.
[0111]
In Step T2, the user n is ciphertext
ENCn-1, n= C_ENC (H (Σj ∈ε n-1Rj) 、 Σj ∈δ n-1Rj)
With the hash value H (Σj ∈ε n-1Rj) To decrypt using Σj ∈δ n-1RjGet. Asymmetric secret key
CK = R1+ R2+ ... + Rn  modq
Is calculated.
[0112]
In Step C1, the center sets the conversation key
IK = IK1* IK2* ・ ・ ・ * IKn  modp
= G ^ (R1+ R2+ ... + Rn) Modp
Is calculated.
[0113]
A case in which there are n users and verification is performed will be described. The following Steps are assumed to proceed in the order of S1 → R1 (n−2 steps) → T1 → S2 → R2 (n−2 steps) → T2 → S3 → R3 (n−2 steps).
[0114]
Starter (user 1)
In Step S1, a random number R1, D1∈ZqGenerate Original data of conversation key
IK1= G ^ (R1) Mod p
And the challenge
CHA1= G ^ (D1) Mod p
Is calculated, and user 2 is given an IK1And CHA1Send IK1And CHA1Can be pre-calculated.
[0115]
Response at Step S2
RES1= CHAn^ (R1) Modp
Is calculated, and user 2 is given D1And RES1Send
[0116]
In Step S3, the ciphertext
ENCn, 1= P_ENC (Y1, N}i ∈ε nRi  modq)
With the asymmetric secret key X1Decrypt using Σi ∈ε nRiGet. Cryptogram
ENC1,2= P_ENC (Y2, 1‖Σi ∈δ 1Ri  modq)
Is calculated and transmitted to the user 2.
[0117]
Relay (user i, 2 ≦ i ≦ n−1)
In Step R1, a random number Ri∈ZqGenerate the conversation key source data
IKi= G ^ (R1) Modp
And the response
RESi= CHA1^ (Ri) Modp
Is calculated and IK is given to user i + 1.iAnd RESiAnd CHA1Send IKiCan be pre-calculated. This process is sequentially performed for the users 2 to n-1.
[0118]
In Step R2, when n ≧ 4, the user i (3 to n−1)
ENCi-1, i= P_ENC (Yi, I-1}j ∈ε i-1Rj  modq)
With the asymmetric secret key XiDecrypt using Σj ∈ε i-1RjGet.
The user i (2-n-1) is
ENCi, i + 1= P_ENC (Yi + 1, I‖Σj ∈ε iRj  modq)
Is calculated and transmitted to the user i + 1. This process is sequentially performed for the users 2 to n-1.
[0119]
In Step R3, the user 2
ENC1,2= P_ENC (Y2, 1‖Σi ∈δ 1Ri  modq)
With the asymmetric secret key X2Decrypt using Σi ∈δ 1RiGet.
When n ≧ 4, the user i (3 to n−1) is
ENCi-1, i= C_ENC (H (Σj ∈ε i-1Rj  modq), Σj ∈δ i-1Rj  modq)
With the hash value H (Σj ∈ε i-1Rj  modq) and decrypt it.j ∈δ i-1RjGet.
The user i (2-n-1) is
ENCi, i + 1= C_ENC (H (Σj ∈ε iRj  modq), Σj ∈δ iRj  modq)
Is calculated and transmitted to the user i + 1. This process is sequentially performed for the users 2 to n-1.
[0120]
Terminator (user n)
In Step T1, a random number Rn, Dn∈ZqGenerate Original data of conversation key
IKn= G ^ (Rn) Modp
And the challenge
CHAn= G ^ (Dn) Modp
And the response
RESn= CHA1^ (Rn) Modp
Is calculated. IKnAnd CHAnCan be pre-calculated. IKnAnd RESnAnd CHAnSend
[0121]
In Step T2, cipher text
ENCn-1, n= C_ENC (H (Σj ∈ε n-1Rj  modq), Σj ∈δ n-1Rj  modq)
With the hash value H (Σj ∈ε n-1Rj  modq) and decrypt it.j ∈δ n-1RjGet. Cryptogram
ENCn, 1= P_ENC (Y1, N}i ∈ε nRi  modq)
, And DnTo the user 1.
[0122]
Observer (center) is (RES) in Step O1.2, ..., RESn) → (D1, RES1) → DnConfirm that they are published in the order of. In Step O2,
Πi ∈ε nRESi≡ (Πi ∈ε nIKi) ^ (D1) (Modp)
RES1≡IK1^ (Dn) (Modp)
Check.
In Step O3, if the confirmation in Step O1 and Step O2 is OK,
IK = Πi ∈λ  IKi  modp
Is calculated.
[0123]
After calculating the asymmetric symmetric key CK, each terminal performs a verification equation.
Πi = 1 nIKi{G} (CK) (modp)
Is verified, and if not satisfied, the center is notified. This is necessary to confirm that the correspondence between the actually shared asymmetric common key CK and the conversation key IK accepted by the center is correct.
[0124]
A digital signature of the sender can be added to all outgoing messages, and the receiver can receive the message only if the signature is successfully verified. After the center calculates the conversation key, a public key certificate for the conversation key can be issued. The public key certificate for the conversation key can be encrypted with the conversation key and sent to the user who shared the conversation key. The user can perform the same verification as the center.
[0125]
When using the El Gamal encryption function as the public key encryption function P_ENC (•), the IKi(1 ≦ i ≦ n) can be used in place of the modular exponentiation value of the random number in El Gamal encryption. A public key cryptographic function P_ENC (•) can be used instead of the symmetric secret key cryptographic function C_ENC (•). An operation on a finite field can be calculated in correspondence with an operation on an elliptic curve.
[0126]
The user may be a mobile phone in a mobile phone system, and the center may be a gateway or a base station of a communication carrier of the mobile phone system. The user may be a terminal having an Internet connection function such as a PC / PDA, and the center may be a web server or a proxy server or a router. The user can be a terminal having a local communication function such as a PC / PDA, and the center can be a specific terminal or a LAN server. When there are a plurality of centers, the user can communicate via the plurality of centers.
[0127]
As described above, in the fifth embodiment of the present invention, the call content certification system is configured to use the DH-type interactive key generation method for three or more users connected by a ring-type communication path, so that the efficiency is improved. The number of users can be expanded to three or more without lowering the number of users.
[0128]
【The invention's effect】
As is apparent from the above description, according to the present invention, a center of a key exchange system including a plurality of terminals having key exchange means capable of calculating an asymmetric common key and a center intercepts communication between terminals. Means and a means for calculating a conversation key which is a group public key using an asymmetric common key as an asymmetric secret key from intercepted communication. Can be verified, and it is possible to know when and who secretly shared the asymmetric common key corresponding to the conversation key.
[Brief description of the drawings]
FIG. 1 is a conceptual diagram of a conversation key sharing system according to a first embodiment of the present invention;
FIG. 2 is a configuration diagram of a conversation key sharing system according to the first embodiment of the present invention;
FIG. 3 is a flowchart showing an operation procedure of the conversation key sharing system according to the first embodiment of the present invention;
FIG. 4 is a flowchart showing an operation procedure of the interactive key sharing system according to the second embodiment of the present invention;
FIG. 5 is a configuration diagram of a conversation key sharing system according to a fourth embodiment of the present invention;
FIG. 6 is a flowchart showing an operation procedure of an interactive key sharing system according to a fifth embodiment of the present invention;
FIG. 7 is a flow chart showing a procedure of a conventional call content certification.
[Explanation of symbols]
1 user (Alice)
2 User (Bob)
3 Observer (Charley)
4 Dialogue sentences
5 Asymmetric secret key
6 conversation key
7 Key exchange means
8 Interception means
9 Conversation key calculation means
10 Verifier
11 Dialogue storage means
12 Signature verification means

Claims (30)

非対称共通鍵(公開鍵方式のグループ秘密鍵)を計算可能な鍵交換手段を持つ複数の端末と、センタとからなる鍵交換システムにおいて、前記センタは、前記端末間の通信を傍受可能な傍受手段と、傍受した前記通信から前記非対称共通鍵を非対称秘密鍵とするグループ公開鍵である対話鍵を計算する手段とを備えたことを特徴とする鍵交換システム。In a key exchange system comprising a plurality of terminals having a key exchange unit capable of calculating an asymmetric common key (a group secret key of a public key system) and a center, the center is an interception unit capable of intercepting communication between the terminals. And a means for calculating a conversation key which is a group public key using the asymmetric common key as an asymmetric secret key from the intercepted communication. pを素数とし、qを(p−1)の素因数とし、gを位数がqであるGF(q)の元とし、前記p,q,gを固定のパラメータとして全エンティティに予め共有させておき、i(1≦i≦n;nは2以上の整数)をユーザiのIDとし、Xをユーザiの非対称秘密鍵とし、YをユーザiのXに対する公開鍵とし、P_ENC(y,m)を、公開鍵yにより、公開鍵yに対応する非対称秘密鍵で復号できる暗号文に平文mを公開鍵方式で暗号化する関数とし、C_ENC(K,m)を、対称秘密鍵Kにより復号できる暗号文に平文mを対称秘密鍵Kにより対称秘密鍵方式で暗号化する関数とし、L(Ψ,w)を、集合Ψと整数wに関して
L(Ψ,w)=Π ∈Ψ\ {w} t/(t−w) modq
と定義されるラグランジェ補間係数とし、非対称共通鍵の交換が可能なn台の端末間の通信をセンタで傍受して前記非対称共通鍵を非対称秘密鍵とするグループ公開鍵である対話鍵を計算する対話鍵共有方法において、
Step1で、各ユーザi(i=1・・・n)は、
a)乱数R(∈Z)を生成し、
b)Z上の任意のn次多項式f(w)
(w)=fi,0*w+fi,1*w+・+fi,n*w
を生成し、fi,0=Rとし、
c)非対称共通鍵の元データ
CKi,j=f(j) (j=1・・・・・・2n)
を計算し、2つの分散値CKi,2i−1とCKi,2iを保持し、
d)ユーザi自身以外の全てのユーザv(v≠i)に対して、暗号文
ENCi,v=P_ENC(Y,i‖CKi,2v−1‖CKi,2v
を計算し、ユーザvに送信し、
Step2で、各ユーザi(i=1・・・n)は、
a)ユーザi自身以外の全てのユーザv(v≠i)のENCv,iを受信し、
b)暗号文ENCv,iを非対称秘密鍵Xで復号し、CKv,2i−1‖CKv,2iを得て、
c)非対称共通鍵の元データ
CK2i−1=Σv=1 CKv,2i−1 modq
CK2i=Σv=1 CKv,2i modq
を計算し、
d)対話鍵の元データ
IK=g^(CK2i−1) modp
を計算し、
e)IK,CK2iをユーザi自身以外の全てのユーザv(v≠i)に送信し、
Step3で、各ユーザi(i=1・・・n)は、
a)ユーザi自身の保持する分散値の番号と受信した分散値の番号の集合を
φ={2i−1,2,4,・・・,2n}
として、非対称共通鍵
CK=Σ ∈φ (CK*L(φ,h)) modq
=Σi=1 modq
を計算し、
前記センターは、
a)各ユーザのIK,CK2iを受信し、
b)分散値の番号の集合Δを
Δ={1,2,3,・・・,2n}
として、対話鍵
IK=Πi=1 {IK^(L(Δ,2i−1))*g^(CK2i*L(Δ,2i))} modp
=g^(CK) modp
を計算することを特徴とする対話鍵共有方法。
Let p be a prime number, q be a prime factor of (p-1), g be an element of GF (q) whose order is q, and let p, q, g be fixed parameters and be shared in advance by all entities. And i (1 ≦ i ≦ n; n is an integer of 2 or more) is the ID of the user i, X i is the asymmetric secret key of the user i, Y i is the public key of the user i for X i , and P_ENC ( y, m) is a function of encrypting the plaintext m by the public key method into a ciphertext that can be decrypted by the public key y using the asymmetric secret key corresponding to the public key y, and C_ENC (K, m) is defined as a function for encrypting a symmetric secret key method by symmetric secret key K plaintext m to ciphertext that can be decrypted by K, L ([psi, w) and, with respect to the set [psi and integer w L (Ψ, w) = Π t ∈ Ψ\ {w} t / (tw) modq
Calculates a conversation key that is a group public key using the Lagrange interpolation coefficient defined as In the conversation key sharing method
In Step 1, each user i (i = 1... N)
a) Generate a random number R i (∈Z q )
b) Any n-order polynomial f i (w) on Z q
f i (w) = f i , 0 * w 0 + f i, 1 * w 1 + · + f i, n * w n
And f i, 0 = R i ,
c) Original data CK i, j = f i (j) of the asymmetric common key (j = 1... 2n)
And hold two variance values CK i, 2i-1 and CK i, 2i ,
d) For all the users v (v ≠ i) other than the user i itself, the ciphertext ENC i, v = P_ENC (Y v , i‖CK i, 2v-1 ‖CK i, 2v )
And sends it to user v,
In Step 2, each user i (i = 1... N)
a) receiving ENC v, i of all users v (v ≠ i) other than user i,
b) ciphertext ENC v, the i decrypted by the asymmetric secret key X i, to give CK v, 2i-1 ‖CK v , the 2i,
c) original data of the asymmetric common key CK 2i-1 = Σ v = 1 n CK v, 2i-1 modq
CK 2i = Σ v = 1 n CK v, 2i modq
And calculate
d) Original data of conversation key IK i = g ^ (CK 2i−1 ) modp
And calculate
e) sending IK i , CK 2i to all users v (v ≠ i) other than user i,
In Step 3, each user i (i = 1... N)
a) A set of the variance value number held by the user i and the received variance number is φ = {2i-1, 2, 4,..., 2n}.
As the asymmetric common key CK = Σ h ∈φ (CK h * L (φ, h)) modq
= Σ i = 1 n R i modq
And calculate
The center is
a) Receiving IK i and CK 2i of each user,
b) A set Δ of variance numbers is represented by Δ = {1, 2, 3,..., 2n}.
As a conversation key IK = Π i = 1 n { IK i ^ (L (Δ, 2i-1)) * g ^ (CK 2i * L (Δ, 2i))} modp
= G ^ (CK) modp
A conversation key sharing method characterized by calculating
pを素数とし、qを(p−1)の素因数とし、gを位数がqであるGF(q)の元とし、前記p,q,gを固定のパラメータとして全エンティティに予め共有させておき、i(1≦i≦n;nは2以上の整数)をユーザiのIDとし、Xをユーザiの非対称秘密鍵とし、YをユーザiのXに対する公開鍵とし、P_ENC(y,m)を、公開鍵yにより、公開鍵yに対応する非対称秘密鍵で復号できる暗号文に平文mを公開鍵方式で暗号化する関数とし、C_ENC(K,m)を、対称秘密鍵Kにより復号できる暗号文に平文mを対称秘密鍵Kにより対称秘密鍵方式で暗号化する関数とし、L(Ψ,w)を、集合Ψと整数wに関して
L(Ψ,w)=Π ∈Ψ\ {w} t/(t−w) modq
と定義されるラグランジェ補間係数とし、非対称共通鍵の交換が可能なn台の端末間の通信をセンタで傍受して前記非対称共通鍵を非対称秘密鍵とするグループ公開鍵である対話鍵を計算する対話鍵共有方法において、
Step1で、各ユーザi(i=1・・・n)は、
a)乱数R(∈Z)を生成し、
b)Z上の任意のn次多項式f(w)
(w)=fi,0*w+fi,1*w+・+fi,n*w
を生成し、fi,0=Rとし、
c)検証値
={Fi,k=g^(fi,k)|k=0,1・・,n}
を計算して全ユーザに送信し、
d)非対称共通鍵の元データ
CKi,j=f(j) (j=1・・・・・・2n)
を計算し、2つの分散値CKi,2i−1とCKi,2iを保持し、
e)ユーザi自身以外の全てのユーザv(v≠i)に対して、暗号文
ENCi,v=P_ENC(Y,i‖CKi,2v−1‖CKi,2v
を計算し、ユーザvに送信し、
Step2で、各ユーザi(i=1・・・n)は、
a)ユーザi自身以外の全てのユーザv(v≠i)のENCv,i,Fを受信し、
b)暗号文ENCv,iを非対称秘密鍵Xで復号し、CKv,2i−1‖CKv,2iを得て、
c)非対称共通鍵の元データ
CK2i−1=Σv=1 CKv,2i−1 modq
CK2i=Σv=1 CKv,2i modq
を計算し、
d)対話鍵の元データ
IK=g^(CK2i−1) modp
を計算し、
e)IK,CK2iをユーザi自身以外の全てのユーザv(v≠i)に送信し、
Step3で、各ユーザi(i=1・・・n)は、
a)ユーザi自身の保持する分散値の番号と受信した分散値の番号の集合を
φ={2i−1,2,4,・・・,2n}
として、非対称共通鍵
CK=Σ ∈φ (CK*L(φ,h)) modq
=Σi=1 modq
を計算し、
前記センターは、
a)各ユーザのF,IK,CK2iを受信し、i=1,・,nに対し、IKとCK2i
g^(CK)=Πi=1 (Πk=0 i,k^(j)) modp
により検証し、検証失敗ならエラーであることを全ユーザに送信して終了し、検証成功なら、
b)対話鍵
IK=Πi=1 {IK^(L(Δ,2i−1))*g^(CK2i*L(Δ,2i))} modp
=g^(CK) modp
を計算することを特徴とする対話鍵共有方法。
Let p be a prime number, q be a prime factor of (p-1), g be an element of GF (q) whose order is q, and let p, q, g be fixed parameters and be shared in advance by all entities. And i (1 ≦ i ≦ n; n is an integer of 2 or more) is the ID of the user i, X i is the asymmetric secret key of the user i, Y i is the public key of the user i for X i , and P_ENC ( y, m) is a function of encrypting the plaintext m by the public key method into a ciphertext that can be decrypted by the public key y using the asymmetric secret key corresponding to the public key y, and C_ENC (K, m) is defined as a function for encrypting a symmetric secret key method by symmetric secret key K plaintext m to ciphertext that can be decrypted by K, L ([psi, w) and, with respect to the set [psi and integer w L (Ψ, w) = Π t ∈ Ψ\ {w} t / (tw) modq
Calculates a conversation key that is a group public key using the Lagrange interpolation coefficient defined as In the conversation key sharing method
In Step 1, each user i (i = 1... N)
a) Generate a random number R i (∈Z q )
b) Any n-order polynomial f i (w) on Z q
f i (w) = f i , 0 * w 0 + f i, 1 * w 1 + · + f i, n * w n
And f i, 0 = R i ,
c) Verification value F i = {F i, k = g} (f i, k ) | k = 0,1,..., n}
Is calculated and sent to all users,
d) Original data CK i, j = f i (j) of the asymmetric common key (j = 1... 2n)
And hold two variance values CK i, 2i-1 and CK i, 2i ,
e) Ciphertext ENC i, v = P_ENC (Y v , iεCK i, 2v−1 ‖CK i, 2v ) for all users v (v ≠ i) other than user i itself
And sends it to user v,
In Step 2, each user i (i = 1... N)
a) receiving the ENC v, i, F v of all other than the user i own user v (v ≠ i),
b) ciphertext ENC v, the i decrypted by the asymmetric secret key X i, to give CK v, 2i-1 ‖CK v , the 2i,
c) original data of the asymmetric common key CK 2i-1 = Σ v = 1 n CK v, 2i-1 modq
CK 2i = Σ v = 1 n CK v, 2i modq
And calculate
d) Original data of conversation key IK i = g ^ (CK 2i−1 ) modp
And calculate
e) sending IK i , CK 2i to all users v (v ≠ i) other than user i,
In Step 3, each user i (i = 1... N)
a) A set of the variance value number held by the user i and the received variance number is φ = {2i-1, 2, 4,..., 2n}.
As the asymmetric common key CK = Σ h ∈φ (CK h * L (φ, h)) modq
= Σ i = 1 n R i modq
And calculate
The center is
a) Each user of F i, IK i, receives the CK 2i, i = 1, · , n contrast, the g ^ IK i and CK 2i (CK j) = Π i = 1 n (Π k = 0 n F i, k ^ (j k )) modp
If verification is not successful, send an error message to all users and exit. If verification is successful,
b) conversation key IK = Π i = 1 n { IK i ^ (L (Δ, 2i-1)) * g ^ (CK 2i * L (Δ, 2i))} modp
= G ^ (CK) modp
A conversation key sharing method characterized by calculating
pを素数とし、qを(p−1)の素因数とし、gを位数がqであるGF(q)の元とし、前記p,q,gを固定のパラメータとしてユーザAとユーザBとセンタに予め共有させておき、XをユーザAの非対称秘密鍵とし、XをユーザBの非対称秘密鍵とし、YをユーザAのXに対する公開鍵とし、YをユーザBのXに対する公開鍵とし、P_ENC(y,m)を、公開鍵yにより、公開鍵yに対応する非対称秘密鍵で復号できる暗号文に平文mを公開鍵方式で暗号化する関数とし、C_ENC(K,m)を、対称秘密鍵Kにより復号できる暗号文に平文mを対称秘密鍵Kにより対称秘密鍵方式で暗号化する関数とし、Hを、ハッシュ関数とし、非対称共通鍵の交換が可能な2台の端末間の通信をセンタで傍受して前記非対称共通鍵を非対称秘密鍵とするグループ公開鍵である対話鍵を計算する対話鍵共有方法において、
Step1でユーザAは、
a)乱数R(∈Z)を生成し、
b)対話鍵の元データ
IK=g^(R) modp
を計算してユーザBに送信し、
Step2でユーザBは、
a)乱数R(∈Z)を生成し、
b)対話鍵の元データ
IK=g^(R) modp
を計算してユーザAに送信し、
Step3でユーザAは、
a)暗号文
ENCA,B=P_ENC(Y,A‖R
を計算してユーザBに送信し、
Step4でユーザBは、
a)非対称秘密鍵Xを使ってENCA,Bを復号し、乱数Rを得て、
b)暗号文
ENCB,A=C_ENC(H(R),R
を計算してユーザAに送信し、
c)非対称共通鍵
CK=R+R modq
を計算し、
Step5でユーザAは、
a)ハッシュ値H(R)を使ってENCB,Aを復号し、乱数Rを得て、
b)非対称共通鍵
CK=R+R modq
を計算し、
Step5でセンタは、
a)対話鍵
IK=IK*IK modp
=g^(R+R) modp
を計算することを特徴とする対話鍵共有方法。
Let p be a prime number, q be a prime factor of (p-1), g be an element of GF (q) whose order is q, and use the above-mentioned p, q, g as fixed parameters for user A, user B, and center. is previously shared by the X a and asymmetric private key of the user a, and the X B and asymmetric private key of the user B, the public key Y a for X a of the user a, X B of the user B to Y B And P_ENC (y, m) as a function of encrypting plaintext m with a public key y into a ciphertext that can be decrypted with an asymmetric secret key corresponding to public key y using a public key method, and C_ENC (K, m) is a function that encrypts the plaintext m into a ciphertext that can be decrypted with the symmetric secret key K using the symmetric secret key K using the symmetric secret key system, H is a hash function, and two units capable of exchanging the asymmetric common key are used. The communication between the terminals at the center In the interactive key sharing method for calculating the conversation key is a group public key and asymmetric private key Tsukagi,
In Step 1, the user A
a) Generate a random number R A (∈Z q )
b) dialogue key of the original data IK A = g ^ (R A ) modp
And sends it to User B,
In step 2, user B
a) Generate a random number R B (∈Z q )
b) dialogue key of the original data IK B = g ^ (R B ) modp
And sends it to user A,
In step 3, user A
a) Ciphertext ENC A, B = P_ENC (Y B , A‖R A )
And sends it to User B,
In step 4, user B
decoding the ENC A, B with the a) asymmetric secret key X B, to obtain a random number R A,
b) ciphertext ENC B, A = C_ENC (H (R A), R B)
And sends it to user A,
c) an asymmetric common key CK = R B + R A modq
And calculate
In Step 5, the user A
decoding the ENC B, A using a) the hash value H (R A), to obtain a random number R B,
b) Asymmetric symmetric key CK = R A + R B modq
And calculate
In Step 5, the center
a) dialogue key IK = IK A * IK B modp
= G ^ (R A + R B ) modp
A conversation key sharing method characterized by calculating
pを素数とし、qを(p−1)の素因数とし、gを位数がqであるGF(q)の元とし、前記p,q,gを固定のパラメータとしてユーザAとユーザBとセンタに予め共有させておき、XをユーザAの非対称秘密鍵とし、XをユーザBの非対称秘密鍵とし、YをユーザAのXに対する公開鍵とし、YをユーザBのXに対する公開鍵とし、P_ENC(y,m)を、公開鍵yにより、公開鍵yに対応する非対称秘密鍵で復号できる暗号文に平文mを公開鍵方式で暗号化する関数とし、C_ENC(K,m)を、対称秘密鍵Kにより復号できる暗号文に平文mを対称秘密鍵Kにより対称秘密鍵方式で暗号化する関数とし、Hを、ハッシュ関数とし、非対称共通鍵の交換が可能な2台の端末間の通信をセンタで傍受して前記非対称共通鍵を非対称秘密鍵とするグループ公開鍵である対話鍵を計算する対話鍵共有方法において、
Step1でユーザAは、
a)乱数R,D (∈Z)を生成し、
b)対話鍵の元データ
IK=g^(R) modp
を計算し、
c)チャレンジ
CHAA,B=g^(D) modp
を計算し、
d)IK,CHAA,BをユーザBに送信し、
Step2でユーザBは、
a)乱数R,D(∈Z)を生成し、
b)対話鍵の元データ
IK=g^(R) modp
を計算し、
c)チャレンジ
CHAB,A=g^(D) modp
を計算し、
d)レスポンス
RESB,A=CHAA,B^(R) modp
を計算し、
e)IK,RESB,A,CHAB,AをユーザAに送信し、
Step3でユーザAは、
a)レスポンス
RESA,B=CHAB,A^(R) modp
を計算し、
b)暗号文
ENCA,B=P_ENC(Y,A‖R
を計算し、
c)ENCA,B,D,RESA,BをユーザBに送信し、
Step4でユーザBは、
a)非対称秘密鍵XでENCA,Bを復号し、乱数Rを得て、
b)暗号文
ENCB,A=C_ENC(H(R),R
を計算し、
c)ENCB,A,DをユーザAに送信し、
d)非対称共通鍵
CK=R+R modq
を計算し、
Step5でユーザAは、
a)ハッシュ値H(R)を使ってENCB,Aを復号し、乱数Rを得て、
b)非対称共通鍵
CK=R+R modq
を計算し、
Step5でセンタは、チャレンジの後に乱数(D,D)が公開された場合にのみ、
a)通信を傍受して得たデータに基づいて、
RESA, B≡IK^(D) (modp)
RESB, A≡IK^(D) (modp)
が成立するか否かを検証し、成立しない場合はエラーであることをユーザAとユーザBに送信し、成立する場合は、
b)対話鍵
IK=IK*IK modp
=g^(R+R) modp
を計算することを特徴とする対話鍵共有方法。
Let p be a prime number, q be a prime factor of (p-1), g be an element of GF (q) whose order is q, and use the above-mentioned p, q, g as fixed parameters for user A, user B, and center. is previously shared by the X a and asymmetric private key of the user a, and the X B and asymmetric private key of the user B, the public key Y a for X a of the user a, X B of the user B to Y B And P_ENC (y, m) as a function of encrypting plaintext m with a public key y into a ciphertext that can be decrypted with an asymmetric secret key corresponding to public key y using a public key method, and C_ENC (K, m) is a function that encrypts the plaintext m into a ciphertext that can be decrypted with the symmetric secret key K using the symmetric secret key K using the symmetric secret key system, H is a hash function, and two units capable of exchanging the asymmetric common key are used. The communication between the terminals at the center In the interactive key sharing method for calculating the conversation key is a group public key and asymmetric private key Tsukagi,
In Step 1, the user A
a) Generate random numbers R A and D A (∈Z q )
b) dialogue key of the original data IK A = g ^ (R A ) modp
And calculate
c) challenge CHA A, B = g ^ ( D A) modp
And calculate
Send d) IK A, CHA A, B to user B,
In step 2, user B
a) Generate random numbers R B , D B (∈Z q )
b) dialogue key of the original data IK B = g ^ (R B ) modp
And calculate
c) Challenge CHA B, A = g ^ (D B ) modp
And calculate
d) response RES B, A = CHA A, B ^ (R B) modp
And calculate
Send e) IK B, RES B, A, CHA B, A to user A,
In step 3, user A
a) Response RES A, B = CHA B, A ^ (R A ) modp
And calculate
b) Ciphertext ENC A, B = P_ENC (Y B , A‖R A )
And calculate
Send c) ENC A, B, D A, RES A, B to user B,
In step 4, user B
a) Decrypt ENC A, B with asymmetric secret key X B to obtain random number RA ,
b) ciphertext ENC B, A = C_ENC (H (R A), R B)
And calculate
Send c) ENC B, A, and D B to the user A,
d) asymmetric common key CK = R B + R A modq
And calculate
In Step 5, the user A
decoding the ENC B, A using a) the hash value H (R A), to obtain a random number R B,
b) Asymmetric symmetric key CK = R A + R B modq
And calculate
In Step5 center, a random number after the challenge (D A, D B) only when is published,
a) Based on the data obtained by intercepting the communication,
RES A, B ≡IK A ^ ( D B) (modp)
RES B, A ≡IK B ^ ( D A) (modp)
It is verified whether or not is established. If it is not established, an error is transmitted to the user A and the user B, and if it is established,
b) interactive key IK = IK A * IK B modp
= G ^ (R A + R B ) modp
A conversation key sharing method characterized by calculating
Uを素数とし、eをRSAの公開鍵とし、前記U,eをユーザAとユーザBとセンタに予め共有させておき、XをユーザAの非対称秘密鍵とし、XをユーザBの非対称秘密鍵とし、YをユーザAのXに対する公開鍵とし、YをユーザBのXに対する公開鍵とし、P_ENC(y,m)を、公開鍵yにより、公開鍵yに対応する非対称秘密鍵で復号できる暗号文に平文mを公開鍵方式で暗号化する関数とし、非対称共通鍵の交換が可能な2台の端末間の通信をセンタで傍受して前記非対称共通鍵を非対称秘密鍵とするグループ公開鍵である対話鍵を計算する対話鍵共有方法において、
Step1でユーザAは、
a)乱数R (1≦R<U)を生成し、
b)暗号文
ENCA,B=P_ENC(Y,R
を計算してユーザBに送信し、
Step2でユーザBは、
a)非対称秘密鍵Xを使ってENCA,Bを復号し、
b)R*R>Uとなるように、乱数R (1≦RBob<U)を生成し、
c)(QBob−1)と公開鍵eが互いに素になり、QBob*RBob>Uとなるように、素数QBobを生成し、
d)対話鍵の元データ
IKBob=QBob*RBob modU
を計算し、
e)乱数の積
A,B=R*R modU
を計算して、IKBobと共にユーザAに送信し、
Step3でユーザAは、
a)(P−1)と公開鍵eが互いに素になり、R*P>Uとなるように、素数Pを生成し、
b)対話鍵の元データ
IK=R*P modU
を計算してユーザBに送信し、
c)ユーザBの乱数
=(R*IK)/RA,B modU
を計算して得て、
d)方程式
d*e≡1 (mod LCM(P−1,Q−1))
を満たす非対称秘密鍵dを求め、
Step4でユーザBは、
a)ユーザAの素数
=IK/R modU
を計算して得て、
b)方程式
d*e≡1 (mod LCM(P−1,Q−1))
を満たす非対称秘密鍵dを求め、
Step4でセンタは、
a)対話鍵
IK=(IK*IK)/RA,B modU
を計算することを特徴とする対話鍵共有方法。
And prime the U, the e and RSA public key, said U, allowed to share in advance e to users A and B and the center, the X A and asymmetric private key of the user A, the X B of the user B asymmetric asymmetry and private key, and public key Y a for X a of the user a, and the public key of Y B for X B of the user B, P_ENC the (y, m), the public key y, corresponding to the public key y A function for encrypting a plaintext m by a public key method into a ciphertext that can be decrypted with a secret key, intercepting a communication between two terminals capable of exchanging an asymmetric common key at a center and converting the asymmetric common key to an asymmetric secret In a conversation key sharing method for calculating a conversation key, which is a group public key,
In Step 1, the user A
a) Generate a random number R A (1 ≦ R A <U),
b) Ciphertext ENC A, B = P_ENC (Y B , RA )
And sends it to User B,
In step 2, user B
decodes the ENC A, B using a) asymmetric secret key X B,
b) Generate a random number R B (1 ≦ R Bob <U) so that R A * R B >U;
c) Generate a prime Q Bob such that (Q Bob -1) and the public key e are prime to each other and Q Bob * R Bob > U,
d) Original data of conversation key IK Bob = Q Bob * R Bob modU
And calculate
e) a random number of the product R A, B = R A * R B modU
And sends it to User A with IK Bob ,
In step 3, user A
a) Generate a prime number P A such that (P A -1) and the public key e are relatively prime and R A * P A > U,
b) dialogue key of the original data IK A = R A * P A modU
And sends it to User B,
c) a random number of the user B Q B = (R A * IK B) / R A, B modU
Calculate and get
d) equation d * e≡1 (mod LCM (P A -1, Q B -1))
Asymmetric secret key d that satisfies
In step 4, user B
a) prime numbers of user A P A = IK A / R A modU
Calculate and get
b) equation d * e≡1 (mod LCM (P A -1, Q B -1))
Asymmetric secret key d that satisfies
In Step 4, the center
a) dialogue key IK = (IK A * IK B ) / R A, B modU
A conversation key sharing method characterized by calculating
公開鍵暗号P_ENC(・)としてEl Gamal暗号を使用する場合において、Fi,0をEl Gamal暗号における乱数のベキ乗剰余値の代わりに用いることを特徴とする請求項3に記載の対話鍵共有方法。4. The interactive key sharing according to claim 3, wherein when El Gamal encryption is used as the public key encryption P_ENC (•), Fi , 0 is used in place of the modular exponentiation value of the random number in El Gamal encryption. Method. 非対称共通鍵を計算可能な鍵交換手段を持つ複数の端末と、前記端末間の通信を傍受可能な傍受手段および傍受した前記通信から前記非対称共通鍵を非対称秘密鍵とするグループ公開鍵である対話鍵を計算する手段とを有するセンタとからなる鍵交換システムでの通話内容証明方法において、前記センタは、対話文と通話内容を安全に記録し、かつ要求に応じて公開し、通話内容登録に参加する全ユーザがセンタに観察を依頼し、各ユーザiは、対話文IMを他の全ユーザに送信して非対称共通鍵CKを共有し、各ユーザiは、通話文PTから指紋FP(=H(PT))を生成し、通話文PTを非対称共通鍵CKか対話鍵IKで暗号化して暗号文CTを生成し、非対称秘密鍵Xと非対称共通鍵CKを用いて、それぞれFP‖H(CT)に対する署名SMiI,SMiIIを生成し、生成した暗号文CT,署名SMiI,SMiII,指紋FPを他の全ユーザに送信し、各ユーザは、暗号文CTから通話文PTを得て、H(PT)=FPを確認してから署名を検証し、センタは、全ユーザのIM,CT,FP,SMiI,SMiIIを保存し、検証者は、ユーザiに通話内容証明を要求し、ユーザiは、センタに通話内容証明を依頼し、全ユーザは、PTを公開し、センタは、全ユーザのIM,CT,FP,SMiI,SMiIIを公開し、検証者は、全ユーザの対話文IMから対話鍵IKを生成し、通話文PTから指紋FPを生成し、暗号文CTからH(CT)を計算して、対話鍵IKと全ユーザの公開鍵Yを用いて、署名SMiI,SMiIIを検証し、検証成功ならば通話文PTを受理することを特徴とする対話鍵による通話内容証明方法。A plurality of terminals having key exchange means capable of calculating an asymmetric common key, an interception means capable of intercepting communication between the terminals, and a dialog being a group public key using the asymmetric common key as an asymmetric secret key from the intercepted communication; A key exchange system comprising: a center having a means for calculating a key, wherein the center securely records a dialogue sentence and a call content, and publishes it on demand, and makes the call content registration possible. ask the observation to all users center to join, each user i sends a dialogue IM i to all other users to share an asymmetric common key CK, each user i, fingerprint FP from the call statement PT i i (= H (PT i )), and encrypts the call text PT i with the asymmetric common key CK or the conversation key IK to generate the cipher text CT i and uses the asymmetric secret key X i and the asymmetric common key CK. And each F i ‖H (CT i) for signing SM iI, generates SM iii, generated ciphertext CT i, signatures SM iI, SM iii, transmits a fingerprint FP i to all other users, each user ciphertext to obtain a call statement PT i from CT i, to verify the signature after confirming the H (PT i) = FP i , center, of all users IM i, CT i, FP i , SM iI, the SM iII The verifier requests the user i for the call contents proof, the user i requests the center for the call contents proof, all the users publish PT i , and the center checks the IM i and CT of all the users. i , FP i , SM iI , SM iII , and the verifier generates a conversation key IK from the conversation text IM i of all users, generates a fingerprint FP i from the call text PT i , and generates a fingerprint FP i from the cipher text CT i. H (CT i ) and calculate the conversation key I A method for verifying signatures SM iI , SM iII using K and public keys Y i of all users, and accepting a call text PT i if the verification is successful, the method for certifying a call content using a conversation key. 非対称共通鍵を計算可能な鍵交換手段を持つ複数の端末と、前記端末間の通信を傍受可能な傍受手段および傍受した前記通信から前記非対称共通鍵を非対称秘密鍵とするグループ公開鍵である対話鍵を計算する手段とを有するセンタとからなる鍵交換システムでの通話内容証明方法において、前記センタは、対話文と通話内容を安全に記録し、かつ要求に応じて公開し、通話内容登録に参加する全ユーザがセンタに観察を依頼し、各ユーザiは、対話文IMを他の全ユーザに送信して非対称共通鍵CKを共有し、各ユーザiは、通話文PTを対話鍵IKで暗号化してCTを生成し、非対称秘密鍵Xと非対称共通鍵CKを用いて、それぞれH(CT)に対する署名SMiI,SMiIIを生成し、生成した暗号文CT,署名SMiI,SMiIIを他の全ユーザに送信し、センタは、全ユーザのIM,CT,SMiI,SMiIIを保存し、検証者は、ユーザiに通話内容証明を要求し、ユーザiは、センタに通話内容証明を依頼し、全ユーザは、通話文PTを公開し、センタは、全ユーザのIM,CT,SMiI,SMiIIを公開し、全ユーザの対話文IMから対話鍵IKを生成し、対話鍵IKを用いて通話文PTから暗号文CTを計算し、暗号文CTからH(CT)を計算して、対話鍵IKと全ユーザのYを用いて、署名SMiI,SMiIIを検証し、検証者は、検証成功ならば通話文PTを受理することを特徴とする対話鍵による通話内容証明方法。A plurality of terminals having key exchange means capable of calculating an asymmetric common key, an interception means capable of intercepting communication between the terminals, and a dialog being a group public key using the asymmetric common key as an asymmetric secret key from the intercepted communication; In a method for certifying a call in a key exchange system comprising: a center having a means for calculating a key, the center securely records a dialogue sentence and a call, and publishes the conversation as requested, and registers the call in a call registration. ask the observation to all users center to join, each user i sends a dialogue IM i to all other users to share an asymmetric common key CK, each user i, interactive call statement PT i key to generate a CT i encrypted with IK, using an asymmetric private key X i and asymmetric common key CK, signature SM iI for H (CT i) respectively to generate SM iii, generated ciphertext CT i, signed Send SM iI, the SM iII to all other users, the center, all users of IM i, CT i, SM iI , to save the SM iII, verifier, to request the call content proving to user i, the user i is, ask the call content proving to the center, all users, to publish a call statement PT i, center, all users of IM i, CT i, SM iI , publish the SM iII, interactive statement of all users to generate a dialogue key IK from IM i, using the conversation key IK to compute the cipher text CT i from the call statement PT i, from the ciphertext CT i to calculate the H (CT i), interactive key IK and all users A method for verifying signatures SM iI and SM iII using Y i of ( 1) , and a verifier accepting the call text (PT i) if the verification is successful. 非対称共通鍵を計算可能な鍵交換手段を持つ複数の端末と、前記端末間の通信を傍受可能な傍受手段および傍受した前記通信から前記非対称共通鍵を非対称秘密鍵とするグループ公開鍵である対話鍵を計算する手段とを有するセンタとからなる鍵交換システムでの通話内容証明方法において、前記センタは、対話文と通話内容を安全に記録し、かつ要求に応じて公開し、通話内容登録に参加する全ユーザがセンタに観察を依頼し、各ユーザiは、対話文IMを他の全ユーザに送信して非対称共通鍵CKを共有し、各ユーザiは、非対称秘密鍵Xと非対称共通鍵CKを用いて、それぞれH(PT)に対する署名SMiI,SMiIIを生成し、通話文PT,署名SMiI,SMiIIを他の全ユーザに送信し、センタは、全ユーザのIM,PT,SMiI,SMiIIを保存し、検証者は、ユーザiに通話内容証明を要求し、ユーザiは、センタに通話内容証明を依頼し、全ユーザは、通話文PTを公開し、センタは、全ユーザのIM,PT,SMiI,SMiIIを公開し、通話文PTからH(PT)を計算して、全ユーザの対話文IMから対話鍵IKを生成し、対話鍵IKと全ユーザの公開鍵Yを用いて、署名SMiI,SMiIIを検証し、検証者は、検証成功ならば通話文PTを受理することを特徴とする対話鍵による通話内容証明方法。A plurality of terminals having key exchange means capable of calculating an asymmetric common key, an interception means capable of intercepting communication between the terminals, and a dialog being a group public key using the asymmetric common key as an asymmetric secret key from the intercepted communication; In a method for certifying a call in a key exchange system comprising: a center having a means for calculating a key, the center securely records a dialogue sentence and a call, and publishes the conversation as requested, and registers the call in a call registration. all users to participate are asked to observe the center, each user i sends a dialogue IM i to all other users to share an asymmetric common key CK, each user i, asymmetric secret key X i and asymmetric using the common key CK, signature SM iI for H (PT i), respectively, to generate a SM iii, send the call statement PT i, signatures SM iI, the SM iii to all other users, center, complete healing The of IM i, PT i, SM iI , to save the SM iII, verifier, to request the call content proving to user i, user i, ask the call content proving to the center, all users, call statement The center publishes PT i , the center publishes IM i , PT i , SM iI , SM iII of all users, calculates H (PT i ) from the call text PT i , and obtains H (PT i ) from the conversation text IM i of all users. It generates a conversation key IK, verifies the signatures SM iI and SM iII using the conversation key IK and the public keys Y i of all users, and if the verification is successful, the verifier accepts the call text PT i. A call content proof method using a conversation key. 前記センタと検証者が一体であることを特徴とする請求項8〜10のいずれかに記載の対話鍵による通話内容証明方法。11. The method according to claim 8, wherein the center and the verifier are integrated. ユーザjは、受信した情報の署名が正しく、かつPTの内容を受理したら、ユーザ≡の送信した情報(例えばFP,CT,PT)に対して自身の非対称秘密鍵Xを用いた署名SMjIIIを作成して送信者に送り返し、センタは、署名SMjIIIを保管し、要求時に他のメッセージと一緒に公開することを特徴とする請求項8〜10のいずれかに記載の対話鍵による通話内容証明方法。When the signature of the received information is correct and the content of the PT is accepted, the user j applies the signature SM jIII using its own asymmetric secret key Xj to the information (eg, FP, CT, PT) transmitted by the user #. 11. The contents of the conversation according to claim 8, wherein the center stores the signature SM jIII and publishes it together with another message when requested. Proof method. pを素数とし、qを(p−1)の素因数とし、gを位数がqであるGF(q)の元とし、p,q,gを固定のパラメータとして、ユーザ1〜ユーザn(n≧3)とセンタに予め共有させておき、Xをユーザiの非対称秘密鍵とし、YをユーザiのXに対する公開鍵とし、P_ENC(y,m)を、公開鍵yにより、公開鍵yに対応する非対称秘密鍵で復号できる暗号文に平文mを公開鍵方式で暗号化する関数とし、C_ENC(K,m)を、対称秘密鍵Kにより復号できる暗号文に平文mを対称秘密鍵Kにより対称秘密鍵方式で暗号化する関数とし、Hをハッシュ関数とし、λを全ユーザIDの集合{1,2,・・・,n}とし、εをユーザIDの集合{2,・・・,i}とし、δをユーザIDの集合{1,i+2,・・・,n}(=λ−εi+1)とし、非対称共通鍵の交換が可能なn台の端末間の通信をセンタで傍受して前記非対称共通鍵を非対称秘密鍵とするグループ公開鍵である対話鍵を計算する対話鍵共有方法において、
StepS1:ユーザ1は、乱数R(∈Z)を生成し、対話鍵の元データ
IK=g^(R) modp
を計算してユーザ2に送信し、
StepR1:ユーザ2は、乱数R(∈Z)を生成し、対話鍵の元データ
IK=g^(R) modp
を計算し、暗号文
ENC2,3=P_ENC(Y,2‖R
を計算してユーザ3に送信し、
ユーザi(3≦i≦n−1)は、乱数R(∈Z)を生成し、対話鍵の元データ
IK=g^(R) modp
を計算し、暗号文
ENCi−1,i=P_ENC(Y,i−1‖Σ ∈ε i−1
を、非対称秘密鍵Xを使って復号してΣ ∈ε i−1を得て、暗号文
ENCi,i+1=P_ENC(Yi+1,i‖Σ ∈ε
を計算してユーザi+1に送信し、
StepT1:ユーザnは、乱数R(∈Z)を生成し、対話鍵の元データ
IK=g^(R) modp
を計算し、暗号文
ENCn−1,n=P_ENC(Y,n−1‖Σ ∈ε n−1
を、非対称秘密鍵Xを使って復号してΣ ∈ε n−1を得て、暗号文
ENCn,1=P_ENC(Y,n‖Σ ∈ε
を計算してユーザ1に送信し、
StepS2:ユーザ1は、暗号文
ENCn,1=P_ENC(Y,n‖Σ ∈ε
を、非対称秘密鍵Xを使って復号してΣ ∈ε を得て、非対称共通鍵
CK=R+R+・・・+R modq
を計算し、暗号文
ENC1,2=P_ENC(Y,1‖Σ ∈δ
を計算してユーザ2に送信し、
StepR2:ユーザ2は、暗号文
ENC1,2=P_ENC(Y,1‖Σ ∈δ
を、非対称秘密鍵Xを使って復号してΣ ∈δ を得て、非対称共通鍵
CK=R+R+・・・+R modq
を計算し、暗号文
ENC2,3=C_ENC(H(R),Σ ∈δ
を計算してユーザ3に送信し、n≧4のとき、
ユーザi(3≦i≦n−1)は、暗号文
ENCi−1,i=C_ENC(H(Σ ∈ε i−1),Σ ∈δ i−1
を、ハッシュ値H(Σ ∈ε i−1)を使って復号してΣ ∈δ i−1を得て、非対称共通鍵
CK=R+R+・・・+R modq
を計算し、暗号文
ENCi,i+1=C_ENC(H(Σ ∈ε ),Σ ∈δ
を計算してユーザi+1に送信し、
StepT2:ユーザnは、暗号文
ENCn−1,n=C_ENC(H(Σ ∈ε n−1),Σ ∈δ n−1
を、ハッシュ値H(Σ ∈ε n−1)を使って復号してΣ ∈δ n−1を得て、非対称共通鍵
CK=R+R+・・・+R modq
を計算し、
StepC1:センタは、対話鍵
IK=IK*IK*・・・*IK modp
=g^(R+R+・・・+R) modp
を計算することを特徴とする対話鍵共有方法。
Let p be a prime number, q be a prime factor of (p-1), g be an element of GF (q) whose order is q, and p, q, g be fixed parameters, and user 1 to user n (n ≧ 3) and is previously shared center, the X i and asymmetric private key of the user i, and a public key of Y i for X i of user i, P_ENC the (y, m), the public key y, published A function for encrypting the plaintext m into a ciphertext that can be decrypted with the asymmetric secret key corresponding to the key y by a public key method, and C_ENC (K, m) is converted into a ciphertext that can be decrypted with the symmetric secret key K and the plaintext m is symmetrically secreted. Let H be a hash function, λ be a set of all user IDs {1, 2,..., N} and ε i be a set of user IDs {2, ..., and i}, a set of user ID and δ i {1, i + 2 , ···, n (= Λ-ε i + 1 ) and then, calculates the conversation key is a group public key to an asymmetric private key the asymmetric common key communication intercepts at the center between the asymmetric common key exchange is n number possible of the terminal In the conversation key sharing method,
Step S1: The user 1 generates a random number R 1 (∈Z q ), and generates conversation key original data IK 1 = g ^ (R 1 ) modp
Is calculated and sent to user 2,
Step R1: User 2 generates a random number R 2 (∈Z q ), and generates conversation key original data IK 2 = g ^ (R 2 ) modp
, And the ciphertext ENC 2,3 = P_ENC (Y 3 , 2‖R 2 )
Is calculated and sent to user 3,
The user i (3 ≦ i ≦ n−1) generates a random number R i (∈Z q ), and generates conversation key original data IK i = g ^ (R i ) modp.
The calculated ciphertext ENC i-1, i = P_ENC (Y i, i-1‖Σ j ∈ε i-1 R j)
Is decrypted using the asymmetric secret key X i to obtain Σ j ε i-1 R j , and the ciphertext ENC i, i + 1 = P_ENC (Y i + 1 , i‖Σ j ∈ε i R j )
And sends it to user i + 1,
Step T1: The user n generates a random number R n (∈Z q ) and generates the conversation key original data IK n = g ^ (R n ) modp
The calculated ciphertext ENC n-1, n = P_ENC (Y n, n-1‖Σ j ∈ε n-1 R j)
Is decrypted using the asymmetric secret key X n to obtain Σ j ∈ε n-1 R j , and the ciphertext ENC n, 1 = P_ENC (Y 1 , n‖Σ j ∈ε n R j )
Is calculated and sent to user 1,
StepS2: user 1 ciphertext ENC n, 1 = P_ENC (Y 1, n‖Σ j ∈ε n R j)
Is decrypted using the asymmetric secret key X 1 to obtain Σ j ∈ε n R j , and the asymmetric common key CK = R 1 + R 2 +... + R n modq
Is calculated, and the ciphertext ENC 1,2 = P_ENC (Y 2 , 1‖Σ j ∈δ 1 R j )
Is calculated and sent to user 2,
StepR2: User 2 ciphertext ENC 1,2 = P_ENC (Y 2, 1‖Σ j ∈δ 1 R j)
Is decrypted using the asymmetric secret key X 2 to obtain Σ j ∈δ 1 R j , and the asymmetric common key CK = R 1 + R 2 +... + R n modq
, And the ciphertext ENC 2,3 = C_ENC (H (R 2 ), Σ j ∈δ 2 R j )
Is calculated and transmitted to the user 3, and when n ≧ 4,
The user i (3 ≦ i ≦ n−1) receives the ciphertext ENC i−1, i = C_ENC (H (Σ j ∈ε i−1 R j ), Σ j ∈δ i−1 R j )
Is decrypted using a hash value H (Σ j ∈ε i-1 R j ) to obtain Σ j ∈δ i-1 R j , and the asymmetric symmetric key CK = R 1 + R 2 +... + R n modq
, And the ciphertext ENC i, i + 1 = C_ENC (H (Σ j ∈ε i R j ), Σ j ∈δ i R j )
And sends it to user i + 1,
Step T2: The user n has ciphertext ENC n−1, n = C_ENC (H (Σ j ∈ε n−1 R j ), Σ j ∈δ n−1 R j )
Is decrypted using a hash value H (Σ j ∈ε n-1 R j ) to obtain Σ j ∈δ n-1 R j , and the asymmetric common key CK = R 1 + R 2 +... + R n modq
And calculate
Step C1: The center sets the conversation key IK = IK 1 * IK 2 *... * IK n modp
= G ^ (R 1 + R 2 +... + R n ) modp
A conversation key sharing method characterized by calculating
pを素数とし、qを(p−1)の素因数とし、gを位数がqであるGF(q)の元とし、p,q,gを固定のパラメータとして、ユーザ1〜ユーザn(n≧3)とセンタに予め共有させておき、Xをユーザiの非対称秘密鍵とし、YをユーザiのXに対する公開鍵とし、P_ENC(y,m)を、公開鍵yにより、公開鍵yに対応する非対称秘密鍵で復号できる暗号文に平文mを公開鍵方式で暗号化する関数とし、C_ENC(K,m)を、対称秘密鍵Kにより復号できる暗号文に平文mを対称秘密鍵Kにより対称秘密鍵方式で暗号化する関数とし、Hを、ハッシュ関数とし、λを全ユーザIDの集合{1,2,・・・,n}とし、εをユーザIDの集合{2,・・・,i}とし、δをユーザIDの集合{1,i+2,・・・,n}(=λ−εi+1)とし、非対称共通鍵の交換が可能なn台の端末間の通信をセンタで傍受して前記非対称共通鍵を非対称秘密鍵とするグループ公開鍵である対話鍵を計算する対話鍵共有方法において、
StepS1:ユーザ1は、乱数R,D(∈Z)を生成し、対話鍵の元データ
IK=g^(R) modp
を計算し、チャレンジ
CHA=g^(D) modp
を計算して、IKとCHAをユーザ2に送信し、
StepR1:ユーザi(3≦i≦n−1)は、乱数R(∈Z)を生成し、対話鍵の元データ
IK=g^(R) modp
を計算し、レスポンス
RES=CHA^(R) modp
を計算し、IKとRESとCHAをユーザi+1に送信し、
StepT1:ユーザnは、乱数R,D(∈Z)を生成し、対話鍵の元データ
IK=g^(R) modp
を計算し、チャレンジ
CHA=g^(D) modp
を計算し、レスポンス
RES=CHA^(R) modp
を計算して、IKとRESとCHAをユーザ1に送信し、
StepS2:ユーザ1は、レスポンス
RES=CHA^(R) modp
を計算して、RESとDをユーザ2に送信し、
StepR2:ユーザ2は、暗号文
ENC2,3=P_ENC(Y,2‖R
を計算してユーザ3に送信し、n≧4のとき、
ユーザi(3≦i≦n−1)は、暗号文
ENCi−1,i=P_ENC(Y,i−1‖Σ ∈ε i−1
を、非対称秘密鍵Xを使って復号してΣ ∈ε i−1を得て、暗号文
ENCi,i+1=P_ENC(Yi+1,i‖Σ ∈ε
を計算してユーザi+1に送信し、
StepT2:ユーザnは、暗号文
ENCn−1,n=P_ENC(Y,n−1‖Σ ∈ε n−1
を、非対称秘密鍵Xを使って復号してΣ ∈ε n−1を得て、暗号文
ENCn,1=P_ENC(Y,n‖Σ ∈ε
を計算して、ENCn,1とDをユーザ1に送信し、
StepS3:ユーザ1は、暗号文
ENCn,1=P_ENC(Y,n‖Σ ∈ε
を、非対称秘密鍵Xを使って復号してΣ ∈ε を得て、非対称共通鍵
CK=R+R+・・・+R modq
を計算し、暗号文
ENC1,2=P_ENC(Y,1‖Σ ∈δ
を計算してユーザ2に送信し、
StepR3:ユーザ2は、暗号文
ENC1,2=P_ENC(Y,1‖Σ ∈δ
を、非対称秘密鍵Xを使って復号してΣ ∈δ を得て、非対称共通鍵
CK=R+R+・・・+R modq
を計算し、暗号文
ENC2,3=C_ENC(H(R),Σ ∈δ
を計算してユーザ3に送信し、
ユーザi(3≦i≦n−1)は、暗号文
ENCi−1,i=C_ENC(H(Σ ∈ε i−1),Σ ∈δ i−1
を、ハッシュ値H(Σ ∈ε i−1)を使って復号してΣ ∈δ i−1を得て、非対称共通鍵
CK=R+R+・・・+R modq
を計算し、暗号文
ENCi,i+1=C_ENC(H(Σ ∈ε ),Σ ∈δ
を計算してユーザi+1に送信し、
StepT3:ユーザnは、暗号文
ENCn−1,n=C_ENC(H(Σ ∈ε n−1),Σ ∈δ n−1
を、ハッシュ値H(Σ ∈ε n−1)を使って復号してΣ ∈δ n−1を得て、非対称共通鍵
CK=R+R+・・・+R modq
を計算し、
StepC1:前記センターは、各ユーザのRESとDとDを受信し、RES,…,RES,D,RES,Dの順に公開されていることを検証し、検証失敗ならエラーであることを全ユーザに送信して終了し、検証成功なら、
StepC2:前記センターは、
Π ∈ε RES≡(Π ∈ε IK)^(D) (modp)
RES≡IK^(D) (modp)
を検証し、検証失敗ならエラーであることを全ユーザに送信して終了し、検証成功なら、
StepC3:前記センターは、対話鍵
IK=Π ∈λ IK modp
を計算することを特徴とする対話鍵共有方法。
Let p be a prime number, q be a prime factor of (p-1), g be an element of GF (q) having order q, and p, q, g be fixed parameters, and user 1 to user n (n ≧ 3) and is previously shared center, the X i and asymmetric private key of the user i, and a public key of Y i for X i of user i, P_ENC the (y, m), the public key y, published A function for encrypting the plaintext m into a ciphertext that can be decrypted with the asymmetric secret key corresponding to the key y by a public key method, and C_ENC (K, m) is converted into a ciphertext that can be decrypted with the symmetric secret key K and the plaintext m is symmetrically secreted. Let H be a hash function, λ be a set of all user IDs {1, 2,..., N} and ε i be a set of user IDs {2 , ..., a i}, a set of the [delta] i user ID {1, i + 2, ···, } (= Λ-ε i + 1) and then, calculates the conversation key is a group public key of the asymmetric common key communication intercepts at the center between the asymmetric common key exchange is n stand capable terminal and an asymmetric private key In the conversation key sharing method
Step S1: User 1 generates random numbers R 1 , D 1 ({Z q ), and generates the conversation key original data IK 1 = g ^ (R 1 ) modp
And the challenge CHA 1 = g ^ (D 1 ) modp
And sends IK 1 and CHA 1 to user 2,
Step R1: The user i (3 ≦ i ≦ n−1) generates a random number R i (∈Z q ), and generates the conversation key original data IK i = g ^ (R i ) modp
RES i = CHA 1 ^ (R i ) modp
And sends IK i , RES i, and CHA 1 to user i + 1,
Step T1: User n generates random numbers R n , D n (∈Z q ), and generates conversation key original data IK n = g ^ (R n ) modp
And the challenge CHA n = g ^ (D n ) modp
RES n = CHA 1 ^ (R n ) modp
And sends IK n , RES n, and CHA n to user 1,
Step S2: The user 1 makes a response RES 1 = CHA n ^ (R 1 ) modp
And sends RES 1 and D 1 to user 2,
Step R2: The user 2 has the ciphertext ENC 2,3 = P_ENC (Y 3 , 2‖R 2 )
Is calculated and transmitted to the user 3, and when n ≧ 4,
The user i (3 ≦ i ≦ n−1) has the ciphertext ENC i−1, i = P_ENC (Y i , i−1‖Σ j εε i−1 R j )
Is decrypted using the asymmetric secret key X i to obtain Σ j ε i-1 R j , and the ciphertext ENC i, i + 1 = P_ENC (Y i + 1 , i‖Σ j ∈ε i R j )
And sends it to user i + 1,
StepT2: user n is ciphertext ENC n-1, n = P_ENC (Y n, n-1‖Σ j ∈ε n-1 R j)
Is decrypted using the asymmetric secret key X n to obtain Σ j ∈ε n-1 R j , and the ciphertext ENC n, 1 = P_ENC (Y 1 , n‖Σ j ∈ε n R j )
And sends ENC n, 1 and D n to user 1,
StepS3: user 1 ciphertext ENC n, 1 = P_ENC (Y 1, n‖Σ j ∈ε n R j)
Is decrypted using the asymmetric secret key X 1 to obtain Σ j ∈ε n R j , and the asymmetric common key CK = R 1 + R 2 +... + R n modq
Is calculated, and the ciphertext ENC 1,2 = P_ENC (Y 2 , 1‖Σ j ∈δ 1 R j )
Is calculated and sent to user 2,
StepR3: The user 2 has the ciphertext ENC 1,2 = P_ENC (Y 2 , 1‖Σ j ∈δ 1 R j )
Is decrypted using the asymmetric secret key X 2 to obtain Σ j ∈δ 1 R j , and the asymmetric common key CK = R 1 + R 2 +... + R n modq
, And the ciphertext ENC 2,3 = C_ENC (H (R 2 ), Σ j ∈δ 2 R j )
Is calculated and sent to user 3,
The user i (3 ≦ i ≦ n−1) receives the ciphertext ENC i−1, i = C_ENC (H (Σ j ∈ε i−1 R j ), Σ j ∈δ i−1 R j )
Is decrypted using a hash value H (Σ j ∈ε i-1 R j ) to obtain Σ j ∈δ i-1 R j , and the asymmetric symmetric key CK = R 1 + R 2 +... + R n modq
, And the ciphertext ENC i, i + 1 = C_ENC (H (Σ j ∈ε i R j ), Σ j ∈δ i R j )
And sends it to user i + 1,
Step T3: The user n uses the ciphertext ENC n−1, n = C_ENC (H (Σ j ∈ε n−1 R j ), j j ∈δ n−1 R j )
Is decrypted using a hash value H (Σ j ∈ε n-1 R j ) to obtain Σ j ∈δ n-1 R j , and the asymmetric common key CK = R 1 + R 2 +... + R n modq
And calculate
Step C1: The center receives the RES i , D 1 and D n of each user, verifies that the RES 2 ,..., RES n , D 1 , RES 1 , and D n are released in that order, and the verification fails. If so, send an error message to all users and exit, if verification is successful,
StepC2: The center is
i ∈ε 1 RES i ≡ (Π i ∈ε 1 IK i ) ^ (D 1 ) (modp)
RES 1 ≡IK 1 ^ (D n ) (modp)
If the verification fails, send an error message to all users and exit. If the verification is successful,
Step C3: The center establishes a conversation key IK = Π i ∈λ IK i modp
A conversation key sharing method characterized by calculating
対話鍵の元データIK〜IKを事前に計算しておくことを特徴とする請求項13記載の対話鍵共有方法。Conversation key sharing method according to claim 13, wherein the previously calculated original data IK 1 ~IK n conversation key in advance. 対話鍵の元データIK〜IKとチャレンジCHAとCHAを事前に計算しておくことを特徴とする請求項14記載の対話鍵共有方法。Conversation key sharing method according to claim 14, wherein the previously calculated original data IK 1 ~IK n and Challenge CHA 1 and CHA n dialogue key in advance. StepC2におけるレスポンスの計算を、
RES≡IK^(D) (modp)
RES≡IK^(D) (modp),・・・,
RES≡IK^(D) (modp)
と個別に行うことを特徴とする請求項14記載の対話鍵共有方法。
The response calculation in Step C2 is
RES 1 ≡IK 1 ^ (D n ) (modp)
RES 2 ≡IK 2 ^ (D 1 ) (modp), ···,
RES n ≡IK n ^ (D 1 ) (modp)
The method according to claim 14, wherein the method is performed individually.
Step1で、各ユーザi(i=1・・・n)は、
a)乱数R(∈Z)を生成し、
b)Z上の任意のn次多項式f(w)
(w)=fi,0*w+fi,1*w+・+fi,n*w
を生成し、fi,0=Rとし、
c)検証値
={Fi,k=g^(fi,k)|k=0,1・・,n}
を事前に計算しておくことを特徴とする請求項3記載の対話鍵共有方法。
In Step 1, each user i (i = 1... N)
a) Generate a random number R i (∈Z q )
b) Any n-order polynomial f i (w) on Z q
f i (w) = f i , 0 * w 0 + f i, 1 * w 1 + · + f i, n * w n
And f i, 0 = R i ,
c) Verification value F i = {F i, k = g} (f i, k ) | k = 0,1,..., n}
4. The method according to claim 3, wherein is calculated in advance.
前記各端末は、非対称共通鍵CKを計算した後に、検証式
Πi=1 IK≡g^(CK) (modp)
を検証し、不成立なら前記センタに通知することを特徴とする請求項14記載の対話鍵共有方法。
After calculating the asymmetric symmetric key CK, each terminal calculates a verification formula { i = 1 n IK i {g} (CK) (modp)
15. The interactive key sharing method according to claim 14, wherein the verification is performed, and if the verification is not satisfied, the center is notified.
全ての送信メッセージに対して送信者のディジタル署名を付加し、受信者は前記署名の検証に成功した場合のみメッセージを受信することを特徴とする請求項2〜6、14のいずれかに記載の対話鍵共有方法。15. The method according to claim 2, wherein a digital signature of the sender is added to all transmitted messages, and the receiver receives the message only when the signature is successfully verified. Conversation key sharing method. 公開鍵方式の暗号関数P_ENC(・)としてEl Gamal暗号の暗号関数を使用する場合において、IK,IKまたはIK(1≦i≦n)をEl Gamal暗号における乱数のベキ乗剰余値の代わりに用いることを特徴とする請求項4、5、14のいずれかに記載の対話鍵共有方法。In the case of using the encryption function of the public key system encryption function P_ENC (·) as El Gamal encryption, IK A, IK B or IK i (1 ≦ i ≦ n ) the random number of modular exponentiation value of El Gamal encryption 15. The conversation key sharing method according to claim 4, wherein the conversation key sharing method is used instead. 対称秘密鍵方式の暗号関数C_ENC(・)の代わりに公開鍵方式の暗号関数P_ENC(・)を用いることを特徴とする請求項4、5、14のいずれかにに記載の対話鍵共有方法。15. The interactive key sharing method according to claim 4, wherein a public key cryptographic function P_ENC (•) is used instead of the symmetric secret key cryptographic function C_ENC (•). センタが対話鍵を計算後に、対話鍵に対する公開鍵証明書を発行することを特徴とする請求項2〜5、14のいずれかに記載の対話鍵共有方法。The interactive key sharing method according to any one of claims 2 to 5, wherein the center issues a public key certificate for the interactive key after calculating the interactive key. 前記対話鍵に対する公開鍵証明書を対話鍵で暗号化して、対話鍵を共有したユーザに送信することを特徴とする請求項23に記載の対話鍵共有方法。24. The interactive key sharing method according to claim 23, wherein the public key certificate for the interactive key is encrypted with the interactive key and transmitted to the user who shared the interactive key. 前記ユーザを、携帯電話システムにおける携帯電話とし、前記センタを、携帯電話システムの通信キャリアのゲートウェイまたは基地局とすることを特徴とする請求項2〜24のいずれかに記載の対話鍵共有方法。25. The conversation key sharing method according to claim 2, wherein the user is a mobile phone in a mobile phone system, and the center is a gateway or a base station of a communication carrier of the mobile phone system. 前記ユーザを、PC/PDA等のインターネット接続機能を有する端末とし、前記センタを、ウェブサーバまたはプロキシサーバまたはルータとすることを特徴とする請求項2〜24のいずれかに記載の対話鍵共有方法。25. The interactive key sharing method according to claim 2, wherein the user is a terminal having an Internet connection function such as a PC / PDA, and the center is a web server, a proxy server, or a router. . 前記ユーザを、PC/PDA等のローカル通信機能を有する端末とし、前記センタを、特定の端末またはLANサーバとすることを特徴とする請求項2〜24のいずれかに記載の対話鍵共有方法。25. The interactive key sharing method according to claim 2, wherein the user is a terminal having a local communication function such as a PC / PDA, and the center is a specific terminal or a LAN server. 前記センタは複数あり、前記ユーザは、複数のセンタを経由して通信することを特徴とする請求項2〜24のいずれかに記載の対話鍵共有方法。25. The conversation key sharing method according to claim 2, wherein there are a plurality of the centers, and the user communicates via the plurality of centers. 有限体上の演算を楕円曲線上の演算に対応させて計算することを特徴とする請求項2〜8、13、14のいずれかに記載の対話鍵共有方法。The method according to any one of claims 2 to 8, wherein the calculation on the finite field is calculated in correspondence with the calculation on the elliptic curve. ユーザもセンタと同じ検証を実施することを特徴とする請求項3、5、14のいずれかに記載の対話鍵共有方法。15. The conversation key sharing method according to claim 3, wherein the user performs the same verification as the center.
JP2003073581A 2003-01-23 2003-03-18 Interaction key generation method Pending JP2004282575A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003073581A JP2004282575A (en) 2003-01-23 2003-03-18 Interaction key generation method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003014746 2003-01-23
JP2003073581A JP2004282575A (en) 2003-01-23 2003-03-18 Interaction key generation method

Publications (1)

Publication Number Publication Date
JP2004282575A true JP2004282575A (en) 2004-10-07

Family

ID=33301534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003073581A Pending JP2004282575A (en) 2003-01-23 2003-03-18 Interaction key generation method

Country Status (1)

Country Link
JP (1) JP2004282575A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009072647A1 (en) * 2007-12-07 2009-06-11 Nec Corporation Key exchanging device and key exchanging method
JP2019121999A (en) * 2018-01-11 2019-07-22 日本電信電話株式会社 Data sharing method, data sharing system, communication terminal, data sharing server, and program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009072647A1 (en) * 2007-12-07 2009-06-11 Nec Corporation Key exchanging device and key exchanging method
JP5278330B2 (en) * 2007-12-07 2013-09-04 日本電気株式会社 Key exchange apparatus and key exchange method
JP2019121999A (en) * 2018-01-11 2019-07-22 日本電信電話株式会社 Data sharing method, data sharing system, communication terminal, data sharing server, and program

Similar Documents

Publication Publication Date Title
Horn et al. Authentication protocols for mobile network environment value-added services
Blake-Wilson et al. Authenticated Diffe-Hellman key agreement protocols
Harn et al. Generalized digital certificate for user authentication and key establishment for secure communications
CN108667625B (en) Digital signature method of cooperative SM2
CN108667626A (en) The two sides cooperation SM2 endorsement methods of safety
CN101821987B (en) Efficient certified email protocol
JP2010093860A (en) Key validation scheme
US9088419B2 (en) Keyed PV signatures
Zheng Shortened digital signature, signcryption and compact and unforgeable key agreement schemes
Mao et al. On the plausible deniability feature of Internet protocols
Catalano et al. Fully non-interactive onion routing with forward-secrecy
Harn et al. Fully deniable message authentication protocols preserving confidentiality
Bindel et al. The need for being explicit: Failed attempts to construct implicit certificates from lattices
JP4146252B2 (en) Anonymous communication method capable of identifying unauthorized persons, user device used in the method, and relay server device
Wang et al. An efficient contract signing protocol using the aggregate signature scheme to protect signers' privacy and promote reliability
JP2004282575A (en) Interaction key generation method
Lee et al. ID-based multi-party authenticated key agreement protocols from multilinear forms
Dugardin et al. A New Fair Identity Based Encryption Scheme
Witzke et al. Key management for large scale end-to-end encryption
Wang et al. Novel design of fair exchange protocol for semi-trusted server and its application in cloud environment
Rösler et al. Interoperability between messaging services secure–implementation of encryption
Nabil et al. New authenticated key agreement protocols
Barker et al. Sp 800-56b. recommendation for pair-wise key establishment schemes using integer factorization cryptography
JP3862397B2 (en) Information communication system
Kbar et al. Modified RSA Using Triple Keys Based Encryption/Decryption