JP2005072650A - Device to be verified, verifying device, method of being verified, and verifying method - Google Patents

Device to be verified, verifying device, method of being verified, and verifying method Download PDF

Info

Publication number
JP2005072650A
JP2005072650A JP2003208486A JP2003208486A JP2005072650A JP 2005072650 A JP2005072650 A JP 2005072650A JP 2003208486 A JP2003208486 A JP 2003208486A JP 2003208486 A JP2003208486 A JP 2003208486A JP 2005072650 A JP2005072650 A JP 2005072650A
Authority
JP
Japan
Prior art keywords
message
random number
verified
redundant information
verification
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
JP2003208486A
Other languages
Japanese (ja)
Inventor
Takayasu Yamaguchi
高康 山口
Takashi Yoshikawa
貴 吉川
Akira Konno
晃 金野
Yasukiyo Matsuoka
保静 松岡
Hiroaki Hagino
浩明 萩野
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2003208486A priority Critical patent/JP2005072650A/en
Publication of JP2005072650A publication Critical patent/JP2005072650A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To realize a message authentication method to which all problems of PSPACE class and NP class are applied. <P>SOLUTION: A device to be verified delivers Z, n constituting Z=T<SP>2</SP>mod n by a safe method from secret information T (S1). The device to be verified generates random numbers Ri using a forward error correction code from a message to be transmitted, calculates Xi=Ri<SP>2</SP>mod n, and transmits the Xi (S2). A verifying device randomly selects 0 or 1, and transmits a selected bi (S3). The device to be verified transmits Yi(=Ri) where bi=0, and transmits Yi(=TRi mod n) where bi=1 (S4). Then, the verifying device checks whether or not Xi=Yi<SP>2</SP>mod n is satisfied where bi=0 or whether or not ZXi=Yi<SP>2</SP>mod n is satisfied where bi=1 (S5). The verifying device applies the forward error correction code to answer information Yi(=Ri) for bi=0 to restore a received message. Since this transmission/reception is followed by verification of the correctness of the device to be verified, the function of message authentication is executed. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、一方向性関数を用いた対話証明を行う被検証装置及び検証装置、これらの各々にて行われる被検証方法及び検証方法に関する。
【0002】
【従来の技術】
2者間の通信でメッセージを改竄されることなく届ける(改竄された場合はそれを検知できる)方式として、ハッシュ関数を使う方法と電子署名がある。通信する2者(通信端末Aと通信端末Bとする)が、あらかじめ秘密の共有鍵を共有していれば、鍵付きハッシュ関数(HMAC−SHA1、HMAC−MD5)等でメッセージダイジェストを生成して添付することにより、改竄を検知できる。この方法は、通信端末Aと通信端末Bがあらかじめ秘密を共有していなければできない。
【0003】
通信端末Aと通信端末Bが秘密を共有していない場合は、公開鍵、秘密鍵を用いて電子署名する。通信端末Aが通信端末Bに電子署名してメッセージを送信する場合、まず通信端末Aは自分の公開鍵を公開する。通信端末Bは通信端末Aの公開鍵を取得する。次に通信端末Aは通信端末Bに送信するメッセージを自分の秘密鍵を用いて電子署名を作成し、これを添付して通信端末Bに送信する。通信端末Bは通信端末Aから送られてきたメッセージと電子署名を通信端末Aの公開鍵を用いて検証でき、メッセージが改竄されていないかを確認できる。
【0004】
この公開鍵、秘密鍵を用いて電子署名するアルゴリズムの多くは、現状では数論の素因数分解問題及び離散対数問題に基づいている(下記の特許文献1、2参照)。前者は大きな整数の素因数分解は計算量的に困難であるという特性に基づいており、RSA署名等がある。後者は、mod p による剰余体(pは素数)での離散対数の計算が計算量的に困難であるという特性に基づいており、Elgamal署名やDSA署名等がある。
【特許文献1】
特開2002−207426号公報
【特許文献2】
特開2002−135242号公報
【0005】
【発明が解決しようとする課題】
現状では、素因数分解問題や離散対数問題は高速に解くための解法が研究されており、秘密鍵が解読されないためには、1024ビットの公開鍵が必要と言われている。また、楕円曲線上の離散対数問題では、160ビットで安全と言われている。
【0006】
しかしながら、これらの問題が今後も安全という保証は無く、鍵長を長くしてもすぐに解けてしまう解法が見つかるかもしれない。即ち、素因数分解問題及び離散対数問題以外の問題も含む広い範囲の問題に適用可能で、電子署名と同等の効果を持つメッセージ送受信方式が待望されていた。
【0007】
本発明は、上記課題を解決するために成されたものであり、送信側と受信側の間に介在する第三者による情報の改竄を防止することを目的とする。
【0008】
【課題を解決するための手段】
本願発明者は、素因数分解問題及び離散対数問題以外の問題でも実現でき、電子署名と同等の効果を持つメッセージ送受信に関する発明をした。本発明は、一方向性関数を利用した対話証明方式を応用し、通信する2者間でメッセージを改竄されることなく送受信できる方式である。一方向性関数を利用した対話証明方式は、一方向性関数が存在するすべてのPSPACE問題をベースにして実現できることが証明されている(文献「Shamir, A., *IP=PSPACE* Proc. of FOCS, pp.11−15, 1990」参照)。本発明は、この対話証明方式のフローの中でメッセージを送受信できる方式であり、素因数分解問題及び離散対数問題以外のPSPACE問題及びNP問題をベースにして電子署名と同等のメッセージ送受信を実現できることになる。
【0009】
以下、まず、一方向性関数を利用した対話証明の原理について説明し、その後、本発明の詳細を述べる。
【0010】
[一方向性関数を利用した対話証明の原理]
一方向性関数を利用した対話証明方式を用いることにより、ある秘密情報を持っている装置は、その秘密情報を漏らさずに「秘密情報を持っていること」を相手に認識させることができる。その原理としては、まず秘密情報を持っていることを証明する装置(被検証装置)は、ある演算を乱数に施して得た演算結果を検証装置に送る。次に検証装置は、0か1かを任意に選び(例えば、コイン投げをして表か裏かでもよい)、選んだ値を被検証装置に送る。被検証装置は、その値が0であれば乱数そのものを検証装置に送り、その値が1であれば乱数と秘密情報とを演算して得た演算結果を送る。そして、検証装置は、被検証装置から送信されたこれらの情報が公知の関係を満たしているかどうかを検証する。
【0011】
仮に、被検証装置が秘密情報を持っていないとすると、被検証装置はこの検証に50%の確率でしか合格できない。したがって、このような検証を多くの回数繰り返すことによって、被検証装置が秘密情報を持っているか否かを、限りなく100%に近い確率で検証することができる。ここでは、一例として、図1を用いて、平方剰余問題を用いた対話証明方式を説明する。
【0012】
ステップS1として、被検証装置は、秘密情報Tから Z=T mod n なるZ及びnを検証装置に安全な方法で届ける。ここで、n = pq(pとqは大きい素数)であるため、nを素因数分解するのは非常に難しい。
【0013】
ステップS2として、被検証装置は、乱数Rを選び、X=R mod n を計算し、得られたXを検証装置に送る。
【0014】
ステップS3として、検証装置は、bとして0又は1のうち何れかを二者択一的にランダムに選び、選んだbを被検証装置に送る。
【0015】
ステップS4として、被検証装置は、次のYを検証装置に送る。b = 0のとき、Y = Rであり、b = 1のとき、Y = TR mod n である。
【0016】
そして、ステップS5として、検証装置は、次式が成立するか否かを検査する。即ち、b = 0 のときは、X = Y mod n が成立するか。b = 1 のときは、ZX = Ymod n が成立するか。
【0017】
以上のような対話証明方式では、被検証装置が本当に秘密情報Tを知っていたら、ステップS5での検証にはいつも合格する。上記のステップS2〜S5をk回繰り返せば、偽の被検証装置がだまし続けられる確率は、(1/2)となる。
【0018】
なお、ステップS2〜S5をk回繰り返すのを省略して、代わりに、ステップS2で乱数をk個(R, R,…R)生成し、X= R mod nで計算した結果(X, X,…X)を送る。次のステップS3で検証装置は、二者択一的にランダムに選んだk個の{0,1}の列(b, b,…b)を被検証装置に送り、同様にステップS4で、被検証装置は回答の列(Y, Y,…Y)を検証装置に送る。そして、検証装置は、回答の列(Y, Y,…Y)を1つ1つ検査し、それら全てが正解であったときのみ、被検証装置が秘密情報を持っていることを認定する。以上のようにして、一方向性関数を利用して対話証明を適正に行うことができる。
【0019】
[本発明に関する請求の範囲]
以下、本発明に関する請求の範囲を述べる。
【0020】
前述した目的を達成するため、本発明に係る被検証装置は、請求項1に記載したように、送信メッセージの入力を受け付け、前記送信メッセージから冗長情報を、当該冗長情報から前記送信メッセージを生成できるよう設計された計算式に基づいて生成し、生成された冗長情報及び生成に利用された計算式を出力する冗長情報生成手段と、前記冗長情報生成手段により出力された冗長情報と計算式とを連結させる計算式連結手段と、前記計算式連結手段による連結で得られた計算式連結済み冗長情報を乱数として用いて、検証装置との間で一方向性関数を用いた対話証明を行う対話証明手段とを備え、前記対話証明手段は、対話証明において、乱数に対し一方向性関数の演算を行った演算結果を第1のメッセージとして送信し、検証装置から確率的な質問を受信し、受信された質問に応じて、乱数そのもの、又は、乱数と秘密情報から得られる値に対し一方向性関数の演算を行った演算結果を、第2のメッセージとして送信することを特徴とする。
【0021】
ここで、冗長情報生成手段は、請求項2に記載したように、前方誤り訂正符号を用いて冗長情報を生成する構成とすることが望ましく、前方誤り訂正符号を用いて生成された冗長情報が付加されたメッセージの受信側での誤り訂正を可能とし、メッセージ再送を不要とすることができる。
【0022】
また、冗長情報生成手段は、請求項3に記載したように、送信メッセージに乱数ビットを付加し、付加後のメッセージから、前方誤り訂正符号を用いて前記冗長情報を生成する構成とすることが望ましく、送信メッセージに乱数ビットを付加することで悪意の第三者によるリプレイアタックを防止することができる。
【0023】
更に、上記の被検証装置では、請求項4に記載したように、前方誤り訂正符号としてリードソロモン符号が用いられ、冗長データと当該冗長データの生成に利用された累乗数とを連結したものが乱数として対話証明に用いられる構成とすることが望ましく、処理時間を短縮化し、大量の前方誤り訂正符号を高速に送受信することができる。
【0024】
前述した目的を達成するため、本発明に係る検証装置は、請求項5に記載したように、冗長情報と当該冗長情報から送信メッセージを生成できるよう設計された計算式とが連結された計算式連結済み冗長情報を、乱数として用いる被検証装置、との間で一方向性関数を用いた対話証明を行う対話証明手段と、送信メッセージを生成するメッセージ生成手段とを備え、前記対話証明手段は、対話証明において、乱数に対し一方向性関数の演算を行った演算結果を第1のメッセージとして受信し、被検証装置へ確率的な質問を送信して、当該質問に応じた回答として、乱数そのもの、又は、乱数と秘密情報から得られる値に対し一方向性関数の演算を行った演算結果を、第2のメッセージとして受信し、送信した質問、第1のメッセージ及び第2のメッセージに基づいて被検証装置の証明を行い、被検証装置の正当性が証明された場合、質問に応じた回答のうち乱数そのものを出力し、前記メッセージ生成手段は、出力された乱数に含まれている冗長情報及び計算式に基づいて送信メッセージを生成することを特徴とする。
【0025】
ここで、メッセージ生成手段は、請求項6に記載したように、前方誤り訂正符号を用いて検証済みのメッセージから受信メッセージを生成する構成とすることが望ましく、前方誤り訂正符号により誤り訂正を可能とし、メッセージ再送を不要とすることができる。
【0026】
また、上記の検証装置では、請求項7に記載したように、前方誤り訂正符号としてリードソロモン符号が用いられる構成とすることが望ましく、処理時間を短縮化し、大量の前方誤り訂正符号を高速に送受信することができる。
【0027】
ところで、上記の被検証装置に関する請求項は、以下のように被検証方法に関する請求項として、記述することができる。即ち、本発明に係る被検証方法は、請求項8に記載したように、検証装置との間で一方向性関数を用いた対話証明を行う被検証装置における被検証方法であって、送信メッセージの入力を受け付け、前記送信メッセージから冗長情報を、当該冗長情報から前記送信メッセージを生成できるよう設計された計算式に基づいて生成し、生成された冗長情報及び生成に利用された計算式とを連結させ、連結で得られた計算式連結済み冗長情報を乱数として用い、当該乱数に対し一方向性関数の演算を行った演算結果を第1のメッセージとして送信し、検証装置から確率的な質問を受信し、受信された質問に応じて、乱数そのもの、又は、乱数と秘密情報から得られる値に対し一方向性関数の演算を行った演算結果を、第2のメッセージとして送信することを特徴とする。
【0028】
また、上記の検証装置に関する請求項は、以下のように検証方法に関する請求項として、記述することができる。即ち、本発明に係る検証方法は、請求項9に記載したように、冗長情報と当該冗長情報から送信メッセージを生成できるよう設計された計算式とが連結された計算式連結済み冗長情報を、乱数として用いる被検証装置、との間で一方向性関数を用いた対話証明を行う検証装置における検証方法であって、乱数に対し一方向性関数の演算を行った演算結果を第1のメッセージとして被検証装置から受信し、被検証装置へ確率的な質問を送信し、当該質問に応じた回答として、乱数そのもの、又は、乱数と秘密情報から得られる値に対し一方向性関数の演算を行った演算結果を、第2のメッセージとして受信し、送信した質問、第1のメッセージ及び第2のメッセージに基づいて被検証装置の証明を行い、被検証装置の正当性が証明された場合、質問に応じた回答のうち乱数そのものを出力し、出力された乱数に含まれている冗長情報及び計算式に基づいて送信メッセージを生成することを特徴とする。
【0029】
[本発明によるメッセージ送受信の説明]
本発明は、一方向性関数を用いた対話証明方式の乱数(R, R,…R)の選び方を工夫することにより、任意のビット列を通信相手に改竄されることなく届けられる方式である。改竄された場合には改竄されたことを検知できる。以降、通信端末Aと通信端末Bが通信をする場合として話を進める。
【0030】
本発明は、まず、通信端末Aが2つの素数pとqを選び、n = pqとなる nを生成する。次に秘密情報Tから、Z=T mod n になるZを算出し、Zとnを公開する。通信端末Bは通信端末AのZとnを取得する。
【0031】
次に、秘密情報Tを持っている通信端末Aは、通信端末Bに送信したいメッセージMをm個の同じサイズのデータに等分割し、m個の分割データから前方誤り訂正符号を用いてk個の冗長データを生成する(k > m)。このk個の冗長情報を(r, r,… r)とし、rを計算するために用いた計算式をそれぞれ(f, f,… f)とする。そしてそれぞれの(r, f)のペアを乱数(R, R,…R)とし、X= Rmod nで計算した結果(X, X,…X)を通信端末Bに送信する。
【0032】
メッセージMを等分割できない場合は、等分割できるようにメッセージMを乱数でパディングする。このパディングの中にはメッセージMのサイズを特定できる値も入れておく。
【0033】
次に、通信端末Bは、二者択一的にランダムに選んだk個の{0,1}の列(b, b,…b)を通信端末Aに送る。通信端末Aは、通信端末Bからの{0,1}の列(b, b,…b)に従って、以下の回答(Y, Y,…Y)を通信端末Bに送る。
【0034】
= 0 のとき Y = R
= 1 のとき Y = TR mod n
【0035】
通信端末Bは、通信端末Aから送られてきた(Y, Y,…Y)が次式を満たすかどうかを検査する。
【0036】
= 0 のとき X = Y mod n
= 1 のとき ZX = Y mod n
【0037】
通信端末Bは、i が1〜k において、すべて上式を満たしたときのみ、通信端末Aと確実に通信していると決定する。
【0038】
通信端末Bは、通信端末Aと確実に通信していると決定した後、b = 0 のときに送られてきたR を用いて、通信端末Aが上記説明でm個に分割したメッセージMを、前方誤り訂正符号を用いて復号する。
【0039】
以上の手順により、通信端末Aは、任意のメッセージを、改竄されることなく通信端末Bに届けることができる。もし、上記の手順での何れかの通信におけるメッセージが改竄された場合、直ちに通信端末Bの検査結果より異常が検知される。また、通信端末B及び通信経路で通信内容を全て盗聴した通信端末であっても、通信端末Aの秘密情報Tを計算することはできない。
【0040】
【発明の実施の形態】
以下、本発明に関する実施形態について説明する。ここでは、平方剰余問題に基づいた一方向性関数による対話証明方式を用い、前方誤り訂正符号としてリードソロモン(Reed−Solomon)符号を用い、被検証装置(通信端末A)が検証装置(通信端末B)に8192ビットのメッセージを送信する場合を説明する。
【0041】
[装置構成]
まず、被検証装置及び検証装置の構成について説明する。
【0042】
図4には、被検証装置401の機能ブロック構成を示す。この図4に示すように、被検証装置401は、送信したいメッセージである送信メッセージ405を入力とし、当該送信メッセージから冗長情報406を計算式(当該冗長情報406から送信メッセージを復元できるよう設計された計算式)407に基づいて生成し、冗長情報406と計算式407を出力する冗長情報生成手段402と、冗長情報406と上記生成に利用した計算式407とを連結させる計算式連結手段403と、連結で得られた計算式連結済み冗長情報408を入力とし、入力された計算式連結済み冗長情報408を乱数として用いて、図5の検証装置501と対話証明を行う対話証明手段404とで構成される。このうち対話証明手段404は、乱数からX (X=R mod n)を生成し第1のメッセージ409としてを出力する。また、対話証明手段404は、検証装置501からの確率的な質問(0か1か)である第2のメッセージ410が入力されると、その質問に対する回答を生成し、生成された回答を第3のメッセージ411として出力する。
【0043】
図5には、検証装置501の機能ブロック構成を示す。この図5に示すように、検証装置501は、図4の被検証装置401と対話証明を行う際に検証済みの第3のメッセージ507を出力する対話証明手段502と、検証済みの第3のメッセージ507が入力されると、当該第3のメッセージ507に含まれている冗長情報と計算式とに基づいてメッセージを生成し(即ち、図4の送信メッセージ405を復元し)、生成されたメッセージを受信メッセージ508として出力するメッセージ生成手段503とで構成される。
【0044】
[処理内容]
以下、本実施形態の処理として、平方剰余問題に基づいた一方向性関数による対話証明方式を用い、前方誤り訂正符号としてリードソロモン(Reed−Solomon)符号を用いて、被検証装置(通信端末A)が検証装置(通信端末B)に8192ビットのメッセージを送信する処理を図6、図7、図2、図3に基づいて説明する。なお、図6は被検証装置(通信端末A)における処理を、図7は検証装置(通信端末B)における処理をそれぞれ示し、図2は乱数の生成処理を示し、図3はメッセージ送受信手順を示している。
【0045】
まず、通信端末Aは2つの素数p、qを選択するとともに、1024ビットの秘密情報Tをランダムに生成する(図6のS601)。そして、通信端末Aは、n = pqとなる1024ビットのnを生成し、秘密情報Tから、Z=Tmod n なる1024ビットのZを算出し、Zとnを公開する(図6のS602)。なお、S601及びS602の処理の動作主体については通信端末Aに限定されるものではなく、通信端末A、B以外の管理センターがS601及びS602の処理を行い、素数p、q及び秘密情報Tを通信端末Aへ安全な方法で通知してもよい。
【0046】
一方の通信端末Bは、通信端末Aが公開したZとnを取得する(図7のS701)。なお、S701〜S711の処理は対話証明手段502により実行される。
【0047】
次に、通信端末Aは、冗長情報生成手段402及び計算式連結手段403によって、以下のようにして、通信端末Bに送信したい8192ビットのメッセージMから計算式連結済み冗長情報を生成する(図6のS603)。即ち、通信端末Aは、図3に示すように、通信端末Bに送信したい8192ビットのメッセージMを512ビットのデータ16個に分割し(図3のS301)、分割された16個のデータからGF(216)で計算するリードソロモン符号(前方誤り訂正符号)を用いて32個の冗長データ(r, r,… r32)を生成する(S302)。なお、32個の冗長データ(r, r,… r32)を計算するためのGF(216)の累乗数はそれぞれ、0〜216−1の間でランダムに選択される。ここでは、GF(216)で計算するリードソロモン符号は16ビットごとに計算するため、512ビットのrを計算するために、32のブロックに分けて計算する。それぞれのブロックを計算する累乗数は16ビットで表現できるため、32のブロックの累乗数の組は512ビットで表現でき、これをそれぞれの(r, r,… r32)に対して(f, f,… f32)とする。そして、通信端末Aは、(r, f)のペアをそれぞれ(R, R,… R32)とする(S303)。このとき、Rは512ビット のr と512ビットのf のペアなので1024ビットになる。このようにして計算式連結済み冗長情報が生成される。
【0048】
なお、図2には、Nビットのメッセージを送信する場合の乱数(R, R,… R)の生成処理を示す。ここで、図2の乱数生成処理を概説する。
【0049】
Nビットの送信メッセージが入力されると(図2のS201)、メッセージが(512ビットの整数倍+448ビット)になるように乱数ビットがパディングされる(S202)。そして、Nを表す64ビットがパディングの後ろに付加される(S203)。これにより、メッセージは512ビットの整数倍になる(ここでは、512ビットのm倍とする)。
【0050】
次に、メッセージは、m個の512ビットデータに分割される(S204)。なお、分割された512ビットデータを、D(1),D(2),…D(m)とする。そして、それぞれの512ビットデータは32個の16ビットブロックに分割される(S205)。なお、512ビットデータD(1)を分割して得られた16ビットブロックをB(1,1),B(1,2),…B(1,32)とし、512ビットデータD(m)を分割して得られた16ビットブロックをB(m,1),B(m,2),…B(m,32)とする。
【0051】
次に、カウンタiが0にリセットされ(S206)、以後、カウンタiが2mに等しくなるまで、後述のS208〜S215の処理が繰り返される。
【0052】
S208では、512ビットの空データが生成され(S208)、0〜65535の中での乱数が32個生成される(S209)。なお、生成された乱数をf(i,1),f(i,2),… f(i,32)とする。そして、カウンタjが1にリセットされ(S210)、以後、カウンタjが32を超えるまで、B(1,j),B(2,j),…B(m,j)と累乗数f(i,j)を用いてリードソロモン符号化を行い冗長データr(i,j)を生成する処理(S212)とカウンタjを1つカウントアップする処理(S213)とが繰り返される。
【0053】
カウンタjが32を超えると、S211〜S213のループを抜け、S214にて、冗長データr(i,1),r(i,2),… r(i,32)と乱数f(i,1),f(i,2),… f(i,32)とが連結され、1024ビットのデータRとして出力される。その後、カウンタiが1つカウントアップされてS207へ戻る。
【0054】
その後、カウンタiが2mに等しくなるまで、後述のS208〜S215の処理が繰り返される。その結果、冗長データr(i,1),r(i,2),… r(i,32)と乱数f(i,1),f(i,2),… f(i,32)とが連結された1024ビットのデータRが(R,R,…R32)の32個出力されることとなる。
【0055】
以上のようにして乱数(R,R,…R32)が生成され、出力される。
【0056】
図6、図7へ戻って、次に、通信端末Aは、(R,R,…R32)から、X= R mod nで計算した結果(X,X,…X32)を第1のメッセージとして通信端末Bに送信する(S604)。なお、S604以降の処理は対話証明手段404により実行される。
【0057】
通信端末Bは、上記第1のメッセージを受信し(S702)、確率的な質問として32個の{0,1}のうち0が16個以上になるようにランダムに選んだ32個の{0,1}の列(b,b,…b32)を通信端末Aに送信する(S703)。通信端末Aは、通信端末Bからの32個の{0,1}の列(b,b,…b32)を受信する(S605)。
【0058】
次に、通信端末Aは、通信端末Bからの{0,1}の列(b,b,…b32)に従って、以下の回答(Y,Y,…Y32)を通信端末Bに送る(図3のS304)。
【0059】
= 0 のとき Y = R
= 1 のとき Y = TR mod n
【0060】
ここで、通信端末Aが回答Yを送信する手順を、図6のS606〜S611に沿って説明する。S606ではカウンタiが1にリセットされ、以後、カウンタiが最大数k(ここでは「32」)に等しくなるまで、後述のS608〜S611の処理が繰り返される。S608では、bが0であるか否かを判断し、bが0であればS609にてY= RとなるYを通信端末Bに送信する。
【0061】
一方、bが0でなければ(1であれば)、S610にてY= TR mod nとなるYを通信端末Bに送信する。その後、S611でカウンタiが1つカウントアップされてS607へ戻る。
【0062】
その後、カウンタiが最大数kを超えるまで、S608〜S611の処理が繰り返される。その結果、通信端末Aは、通信端末Bからの{0,1}の列(b,b,…b32)に応じた回答(Y,Y,…Y32)を通信端末Bに送信することとなる。
【0063】
図7に戻り、通信端末Bは、通信端末Aから送られてきた回答(Y,Y,…Y32)を受信し、受信した回答が次式を満たすかどうかを、図7のS705〜S710に沿って検査する。
【0064】
= 0 のとき X = Y mod n
= 1 のとき ZX = Y mod n
【0065】
ここで、通信端末Bが回答Yを検査する手順を説明する。図7のS705ではカウンタiが1にリセットされ、以後、カウンタiが最大数k(ここでは「32」)に等しくなるまで、後述のS707〜S710の処理が繰り返される。S707では、bが0であるか否かを判断し、bが0であればS708にてX= Y mod nが成立するか否かを判断する。もし、不成立ならば、検証結果が異常であるとして処理を終了する。X= Y mod nが成立するならば、S710へ進む。
【0066】
一方、S707にてbが0でなければ(1であれば)、S709にてZX = Y mod nが成立するか否かを判断する。もし、不成立ならば、検証結果が異常であるとして処理を終了する。ZX = Y mod nが成立するならば、S710へ進む。
【0067】
S710ではカウンタiが1つカウントアップされてS706へ戻る。その後、カウンタiが最大数kを超えるまで、S707〜S710の処理が繰り返される。その結果、通信端末Bは、通信端末Aから送られてきた回答(Y,Y,…Y32)が上記の式を満たすかどうかを1つずつ検査することとなる。但し、通信端末Bは、i が1〜32 において、すべて上式を満たしたときのみ、通信端末Aとの通信を継続し、ひとつでも上式を満たさないと判断されたら、その時点で通信を中止する(予め通信を中止する正解率の閾値を定めておき、設定以上の正解率が得られる場合には通信を継続するようにしても良い)。
【0068】
全ての検証結果が正常である場合、通信端末Bは、図7のS711にて、bが0の場合の回答Yを出力する。
【0069】
そして、通信端末Bは、メッセージ生成手段503により、以下のようにして前方誤り訂正符号を用いてメッセージMを生成(復元)する(S712、図3のS305)。即ち、通信端末Bは、b = 0のときのY(R)の16個をそれぞれrとf とに分割し、リードソロモン符号でr を f の累乗数で復号処理をして、8192ビットのメッセージを復元する。
【0070】
リードソロモン符号は、32個の冗長情報のうちどの16個を利用しても元々のメッセージを復元できるが、累乗数をランダムに選んでいるため偶然他の冗長データと同じ累乗数を選んでしまった冗長データは復元処理には使えなくなる。この場合は、17個目のb= 0のY(R)が必要になる。
【0071】
以上説明した一連の処理により、対話証明の検証に合格した際に復元された8192ビットのメッセージは、改竄されていないメッセージであり、平方剰余問題においても電子署名と同等のメッセージ送受信が実現したことになる。
【0072】
【発明の効果】
以上説明したように、本発明によれば、一方向性関数を利用した対話証明方式を応用してメッセージを改竄されることなく通信相手に届けることができる。この方式は、一方向性関数が存在する全てのPSPACE問題及びNP問題をベースにして実現でき、素因数分解問題や離散対数問題の高速な解法が発見されたとしても、他のPSPACE問題及びNP問題で電子署名と同等のことができる。また、楕円曲線上の離散対数問題よりも短い鍵長で同等の難しさのPSPACE問題及びNP問題があれば、公開鍵長の短い電子署名を実現できる。
【図面の簡単な説明】
【図1】一方向性関数を利用した対話証明方式のシーケンス図である。
【図2】乱数の生成処理を示す流れ図である。
【図3】メッセージ送受信手順を説明するための図である。
【図4】被検証装置の機能ブロック図である。
【図5】検証装置の機能ブロック図である。
【図6】被検証装置における処理を示す流れ図である。
【図7】検証装置における処理を示す流れ図である。
【符号の説明】
401…被検証装置、402…冗長情報生成手段、403…計算式連結手段、404…対話証明手段、501…検証装置、502…対話証明手段、503…メッセージ生成手段。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a verified device and a verification device that perform dialogue proof using a one-way function, and a verified method and a verification method performed in each of them.
[0002]
[Prior art]
As a method of delivering a message without falsification by communication between the two parties (when it is falsified, it can be detected), there are a method using a hash function and a digital signature. If two communicating parties (referred to as communication terminal A and communication terminal B) share a secret shared key in advance, generate a message digest with a keyed hash function (HMAC-SHA1, HMAC-MD5), etc. By attaching, tampering can be detected. This method cannot be performed unless the communication terminal A and the communication terminal B share a secret in advance.
[0003]
When the communication terminal A and the communication terminal B do not share the secret, the digital signature is made using the public key and the secret key. When the communication terminal A sends a message by digitally signing the communication terminal B, the communication terminal A first discloses its public key. The communication terminal B acquires the public key of the communication terminal A. Next, the communication terminal A creates an electronic signature for the message to be transmitted to the communication terminal B by using its own secret key, and transmits it to the communication terminal B with the attached electronic signature. The communication terminal B can verify the message and electronic signature sent from the communication terminal A using the public key of the communication terminal A, and can confirm whether the message has been tampered with.
[0004]
Many of the algorithms for electronic signature using the public key and the secret key are currently based on the prime factorization problem of the number theory and the discrete logarithm problem (see Patent Documents 1 and 2 below). The former is based on the characteristic that large integer prime factorization is difficult in terms of computational complexity, such as an RSA signature. The latter is based on the property that calculation of discrete logarithm in a remainder field (p is a prime number) by mod p is difficult in terms of computational complexity, such as Elgamal signature and DSA signature.
[Patent Document 1]
JP 2002-207426 A
[Patent Document 2]
JP 2002-135242 A
[0005]
[Problems to be solved by the invention]
At present, solutions for solving the prime factorization problem and the discrete logarithm problem at high speed are being studied, and it is said that a 1024-bit public key is necessary so that the secret key cannot be decrypted. Also, in the discrete logarithm problem on an elliptic curve, it is said that 160 bits is safe.
[0006]
However, there is no guarantee that these problems will remain safe, and a solution may be found that can be solved immediately even if the key length is increased. That is, a message transmission / reception method that can be applied to a wide range of problems including problems other than the prime factorization problem and the discrete logarithm problem and that has the same effect as an electronic signature has been desired.
[0007]
The present invention has been made to solve the above-described problems, and an object of the present invention is to prevent falsification of information by a third party interposed between a transmission side and a reception side.
[0008]
[Means for Solving the Problems]
The inventor of the present application has invented a message transmission / reception that can be realized by problems other than the prime factorization problem and the discrete logarithm problem, and has the same effect as an electronic signature. The present invention is a method in which a message can be transmitted and received between two communicating parties without falsification by applying a dialogue proof method using a one-way function. It has been proved that the dialogue proof method using the one-way function can be realized based on all PSPACE problems in which the one-way function exists (refer to the document “Shamir, A., * IP = PSPACE * Proc. Of. FOCS, pp. 11-15, 1990 ”). The present invention is a method capable of transmitting and receiving messages in the flow of the dialog proof method, and can realize message transmission and reception equivalent to an electronic signature based on the PSPACE problem and NP problem other than the prime factorization problem and the discrete logarithm problem. Become.
[0009]
Hereinafter, first, the principle of dialogue proof using a one-way function will be described, and then the details of the present invention will be described.
[0010]
[Principle of dialogue proof using one-way function]
By using the dialogue proof method using the one-way function, a device having certain secret information can make the other party recognize that “the secret information is held” without leaking the secret information. The principle is that a device (provided device) that proves possession of secret information first sends a calculation result obtained by applying a certain calculation to a random number to the verification device. Next, the verification device arbitrarily selects 0 or 1 (for example, the coin may be thrown to be front or back), and the selected value is sent to the verification target device. If the value is 0, the device to be verified sends the random number itself to the verification device, and if the value is 1, sends the operation result obtained by calculating the random number and the secret information. Then, the verification device verifies whether these pieces of information transmitted from the verification target device satisfy a known relationship.
[0011]
If the device to be verified does not have secret information, the device to be verified can pass this verification only with a probability of 50%. Therefore, by repeating such verification many times, it is possible to verify whether or not the device to be verified has confidential information with a probability close to 100%. Here, as an example, a dialogue proof method using the quadratic residue problem will be described with reference to FIG.
[0012]
In step S1, the device to be verified determines from the secret information T Z = T2  Send mod n Z and n to the verification device in a secure manner. Here, since n = pq (p and q are large prime numbers), it is very difficult to factorize n.
[0013]
In step S2, the device to be verified selects a random number R, and X = R2  Calculate mod n and send the resulting X to the verifier.
[0014]
In step S3, the verification apparatus randomly selects either 0 or 1 as b, and sends the selected b to the apparatus to be verified.
[0015]
In step S4, the device to be verified sends the next Y to the verification device. When b = 0, Y = R, and when b = 1, Y = TR mod n.
[0016]
In step S5, the verification apparatus checks whether or not the following expression is satisfied. That is, when b = 0, X = Y2  Does mod n hold? When b = 1, ZX = Y2Does mod n hold?
[0017]
In the dialog proof system as described above, if the device to be verified really knows the secret information T, the verification in step S5 always passes. If the above steps S2 to S5 are repeated k times, the probability that the false device to be verified continues to be cheated is (1/2)kIt becomes.
[0018]
Note that steps S2 to S5 are not repeated k times, and instead, k random numbers (R1, R2, ... Rk) And X = R2  The result calculated by mod n (X1, X2, ... Xk) In the next step S3, the verification apparatus selects a sequence of k {0, 1} (b1, B2, ... bk) To the device to be verified. Similarly, in step S4, the device to be verified sends a reply string (Y1, Y2, ... Yk) To the verification device. The verification device then sends a reply string (Y1, Y2, ... Yk) Are verified one by one, and only when all of them are correct, it is recognized that the device to be verified has confidential information. As described above, the dialog proof can be appropriately performed using the one-way function.
[0019]
[Claims concerning the present invention]
Hereinafter, the claims concerning the present invention will be described.
[0020]
In order to achieve the above-described object, a device to be verified according to the present invention receives input of a transmission message and generates redundant information from the transmission message and generates the transmission message from the redundant information as described in claim 1. A redundant information generating unit that generates the redundant information generated based on the calculation formula designed so as to be output and outputs the calculation formula used for generation; and the redundant information and the calculation formula output by the redundant information generating unit; And a dialogue for performing dialogue proof using a one-way function between the verification device and the verification device using the calculation-linked redundant information obtained by the linkage by the calculation-linkage unit as a random number. The dialogue proof means transmits a calculation result obtained by calculating a one-way function on a random number as a first message in the dialog proof, and from the verification device. Receives an efficient question and sends the result of computing a one-way function on the random number itself or a value obtained from the random number and secret information as a second message according to the received question It is characterized by doing.
[0021]
Here, as described in claim 2, the redundant information generation unit preferably generates redundant information using a forward error correction code, and the redundant information generated using the forward error correction code is It is possible to correct the error on the receiving side of the added message, and to eliminate the need for message retransmission.
[0022]
Further, as described in claim 3, the redundant information generating means adds a random number bit to the transmission message and generates the redundant information from the added message using a forward error correction code. Preferably, a replay attack by a malicious third party can be prevented by adding a random number bit to the transmission message.
[0023]
Furthermore, in the above-described device to be verified, as described in claim 4, a Reed-Solomon code is used as a forward error correction code, and redundant data and a power used for generating the redundant data are concatenated. It is desirable to use a configuration that is used for dialogue proof as a random number, which can shorten the processing time and transmit and receive a large amount of forward error correction codes at high speed.
[0024]
In order to achieve the above-described object, the verification apparatus according to the present invention includes, as described in claim 5, a calculation formula in which redundant information and a calculation formula designed to generate a transmission message from the redundant information are connected. Dialog verification means for performing dialog proof using a one-way function with a device to be verified using the connected redundant information as a random number, and message generation means for generating a transmission message, In the dialogue proof, a calculation result obtained by calculating a one-way function on a random number is received as a first message, a probabilistic question is transmitted to the verified device, and a random number is returned as an answer to the question. Or a result obtained by performing a one-way function operation on a value obtained from the random number and the secret information as a second message, transmitted, the first message, and the second message If the verified device is proved based on the message, and the validity of the verified device is proved, the random number itself is output among the answers according to the question, and the message generating means is included in the output random number. The transmission message is generated based on the redundant information and the calculation formula.
[0025]
Here, as described in claim 6, it is desirable that the message generation means is configured to generate a received message from a verified message using a forward error correction code, and error correction is possible using the forward error correction code. Thus, it is possible to eliminate the need for message retransmission.
[0026]
In the verification apparatus, as described in claim 7, it is desirable that a Reed-Solomon code is used as the forward error correction code, which shortens the processing time and allows a large amount of forward error correction code to be processed at high speed. You can send and receive.
[0027]
By the way, the claim relating to the device to be verified can be described as a claim relating to the method to be verified as follows. In other words, the method to be verified according to the present invention is a method to be verified in a verification target device that performs dialogue proof using a one-way function with a verification device, And generating redundant information from the transmission message based on a calculation formula designed to generate the transmission message from the redundant information, and generating the redundant information and the calculation formula used for generation Concatenate, use the concatenated redundant information calculated by the concatenation as a random number, send the result of the computation of the one-way function to the random number as the first message, and the probabilistic question from the verification device In response to the received question, a random number itself or a calculation result obtained by calculating a one-way function on a value obtained from the random number and secret information is transmitted as a second message. It is characterized in.
[0028]
Moreover, the claim regarding said verification apparatus can be described as a claim regarding the verification method as follows. That is, in the verification method according to the present invention, as described in claim 9, the redundant information and the redundant information that has been combined with the calculation formula designed to generate a transmission message from the redundant information, A verification method in a verification device that performs dialogue proof using a one-way function with a device to be verified used as a random number, and a calculation result obtained by calculating a one-way function on a random number is a first message. As a response to the question, the random number itself or a value obtained from the random number and the secret information is calculated as a one-way function. When the result of the operation performed is received as the second message and the verified device is proved based on the transmitted question, the first message, and the second message, and the validity of the verified device is proved, Outputting a random number itself of respondents in response to questions, and generates a transmission message based on the redundancy information and formulas are included in the output random number.
[0029]
[Description of Message Transmission / Reception According to the Present Invention]
In the present invention, a random number (R) of a dialog proof system using a one-way function is used.1, R2, ... Rk) Is a method for delivering an arbitrary bit string to a communication partner without falsification. If it has been tampered with, it can be detected that it has been tampered with. Hereinafter, the discussion proceeds as a case where communication terminal A and communication terminal B communicate.
[0030]
In the present invention, first, the communication terminal A selects two prime numbers p and q, and generates n where n = pq. Next, from the secret information T, Z = T2  Z which becomes mod n is calculated, and Z and n are disclosed. The communication terminal B acquires Z and n of the communication terminal A.
[0031]
Next, the communication terminal A having the secret information T equally divides the message M to be transmitted to the communication terminal B into m pieces of the same size data, and uses the forward error correction code from the m pieces of divided data. Redundant data are generated (k> m). The k pieces of redundant information are expressed as (r1, R2, ... rk) And riThe calculation formula used to calculate1, F2, ... fk). And each (ri, Fi) Is a random number (R1, R2, ... Rk) And X = R2The result calculated by mod n (X1, X2, ... Xk) To the communication terminal B.
[0032]
If the message M cannot be divided equally, the message M is padded with a random number so that the message M can be divided equally. A value that can specify the size of the message M is also included in the padding.
[0033]
Next, the communication terminal B selects a sequence of k {0, 1} (b1, B2, ... bk) To the communication terminal A. Communication terminal A receives {0, 1} string (b1, B2, ... bk) And answer (Y1, Y2, ... Yk) To the communication terminal B.
[0034]
bi= 0 when Yi  = Ri
bi  = 1 Yi  = TRi  mod n
[0035]
Communication terminal B has been sent from communication terminal A (Y1, Y2, ... Yk) Satisfies the following formula.
[0036]
bi= 0 when Xi  = Yi 2  mod n
bi  = 1 when ZXi  = Yi 2  mod n
[0037]
The communication terminal B determines that the communication terminal A is surely communicating with the communication terminal A only when i is 1 to k and all satisfy the above equation.
[0038]
After determining that the communication terminal B is reliably communicating with the communication terminal A, bi  R sent when = 0i  The message M divided by the communication terminal A into m in the above description is decoded using a forward error correction code.
[0039]
Through the above procedure, the communication terminal A can deliver an arbitrary message to the communication terminal B without being tampered with. If a message in any communication in the above procedure is falsified, an abnormality is immediately detected from the inspection result of the communication terminal B. Further, even if the communication terminal B and the communication terminal that wiretapped all communication contents through the communication path, the secret information T of the communication terminal A cannot be calculated.
[0040]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments relating to the present invention will be described below. Here, a dialogue proof method using a one-way function based on the quadratic residue problem is used, a Reed-Solomon code is used as a forward error correction code, and the device to be verified (communication terminal A) is a verification device (communication terminal). A case where an 8192-bit message is transmitted to B) will be described.
[0041]
[Device configuration]
First, the configuration of the device to be verified and the verification device will be described.
[0042]
FIG. 4 shows a functional block configuration of the verification target device 401. As shown in FIG. 4, the device under verification 401 is designed to receive a transmission message 405 that is a message to be transmitted as an input, and to calculate the redundancy information 406 from the transmission message (the transmission message can be restored from the redundancy information 406). A redundant information generation unit 402 that generates the redundant information 406 and the calculation formula 407, and a calculation formula connection unit 403 that links the redundant information 406 and the calculation formula 407 used for the generation. 5 and the dialogue certifying means 404 for performing dialogue proof with the verification device 501 in FIG. 5 using the calculation formula linked redundant information 408 obtained by concatenation as an input, and using the inputted calculation formula linked redundant information 408 as a random number. Composed. Among these, the dialogue proof means 404 determines X (X = R from the random number.2  mod n) and output as the first message 409. Further, when the second message 410 that is a probabilistic question (0 or 1) is input from the verification device 501, the dialog proving means 404 generates an answer to the question, and the generated answer is the first answer. 3 message 411 is output.
[0043]
FIG. 5 shows a functional block configuration of the verification apparatus 501. As shown in FIG. 5, the verification apparatus 501 includes a dialog proof unit 502 that outputs a verified third message 507 when performing dialog proof with the verified apparatus 401 in FIG. 4, and a verified third When the message 507 is input, a message is generated based on the redundant information and the calculation formula included in the third message 507 (that is, the transmission message 405 in FIG. 4 is restored), and the generated message is generated. Message generation means 503 that outputs the message as a received message 508.
[0044]
[Processing content]
Hereinafter, as the processing of the present embodiment, a dialogue proof method using a one-way function based on the quadratic residue problem is used, and a Reed-Solomon code is used as a forward error correction code, and a device to be verified (communication terminal A) ) Will be described with reference to FIGS. 6, 7, 2, and 3, in which the 8192-bit message is transmitted to the verification device (communication terminal B). 6 shows the processing in the verification target device (communication terminal A), FIG. 7 shows the processing in the verification device (communication terminal B), FIG. 2 shows the random number generation processing, and FIG. Show.
[0045]
First, the communication terminal A selects two prime numbers p and q and randomly generates 1024-bit secret information T (S601 in FIG. 6). Then, the communication terminal A generates n of 1024 bits where n = pq, and from the secret information T, Z = T2A 1024-bit Z that is mod n is calculated, and Z and n are disclosed (S602 in FIG. 6). Note that the operation subject of the processing of S601 and S602 is not limited to the communication terminal A, and the management center other than the communication terminals A and B performs the processing of S601 and S602, and the prime numbers p and q and the secret information T are obtained. You may notify to the communication terminal A by a safe method.
[0046]
One communication terminal B acquires Z and n disclosed by the communication terminal A (S701 in FIG. 7). Note that the processing of S701 to S711 is executed by the dialogue proving means 502.
[0047]
Next, the communication terminal A uses the redundant information generation unit 402 and the calculation formula connection unit 403 to generate calculation formula linked redundant information from the 8192-bit message M to be transmitted to the communication terminal B as follows (see FIG. 6 S603). That is, as shown in FIG. 3, the communication terminal A divides the 8192-bit message M to be transmitted to the communication terminal B into 16 pieces of 512-bit data (S301 in FIG. 3), and from the divided 16 pieces of data, GF (216), 32 pieces of redundant data (r1, R2, ... r32) Is generated (S302). Note that 32 redundant data (r1, R2, ... r32) For calculating GF (216) Is a power of 0 to 2, respectively.16-1 is randomly selected. Here, GF (216), The Reed-Solomon code calculated in 16 bits is calculated every 16 bits.iIs calculated by dividing it into 32 blocks. Since the power of calculating each block can be expressed by 16 bits, the set of powers of 32 blocks can be expressed by 512 bits, and this can be expressed by each (r1, R2, ... r32) For (f1, F2, ... f32). Communication terminal A then (ri, Fi) For each pair (R1, R2, ... R32(S303). At this time, RiIs 512 bits of ri  And 512-bit fi  Because it is a pair of 1024 bits. In this way, redundant information that has been linked with the calculation formula is generated.
[0048]
FIG. 2 shows a random number (R when transmitting an N-bit message.1, R2, ... Rk) Generation processing. Here, the random number generation processing of FIG. 2 will be outlined.
[0049]
When an N-bit transmission message is input (S201 in FIG. 2), random bits are padded so that the message becomes (integer multiple of 512 bits + 448 bits) (S202). Then, 64 bits representing N are added after the padding (S203). As a result, the message becomes an integer multiple of 512 bits (here, m times 512 bits).
[0050]
Next, the message is divided into m pieces of 512-bit data (S204). Note that the divided 512-bit data is D (1), D (2),... D (m). Each 512-bit data is divided into 32 16-bit blocks (S205). A 16-bit block obtained by dividing 512-bit data D (1) is defined as B (1,1), B (1,2),... B (1,32), and 512-bit data D (m) Let B (m, 1), B (m, 2),... B (m, 32) be 16-bit blocks obtained by dividing.
[0051]
Next, the counter i is reset to 0 (S206), and thereafter, the processes of S208 to S215 to be described later are repeated until the counter i becomes equal to 2 m.
[0052]
In S208, 512-bit empty data is generated (S208), and 32 random numbers from 0 to 65535 are generated (S209). It is assumed that the generated random numbers are f (i, 1), f (i, 2),... F (i, 32). Then, the counter j is reset to 1 (S210), and thereafter, B (1, j), B (2, j),... B (m, j) and the power multiplier f (i) until the counter j exceeds 32. , J), Reed-Solomon encoding is performed to generate redundant data r (i, j) (S212), and counter j is incremented by one (S213).
[0053]
When the counter j exceeds 32, the loop of S211 to S213 is exited, and redundant data r (i, 1), r (i, 2),... R (i, 32) and a random number f (i, 1) are obtained in S214. ), F (i, 2),... F (i, 32) are concatenated and 1024-bit data RiIs output as Thereafter, the counter i is incremented by 1, and the process returns to S207.
[0054]
Thereafter, the processes of S208 to S215 described later are repeated until the counter i becomes equal to 2 m. As a result, redundant data r (i, 1), r (i, 2),... R (i, 32) and random numbers f (i, 1), f (i, 2),. 1024-bit data R concatenated withi(R1, R2, ... R32) Will be output.
[0055]
Random number (R1, R2, ... R32) Is generated and output.
[0056]
Returning to FIG. 6 and FIG. 7, the communication terminal A then (R1, R2, ... R32) From X = R mod n (X1, X2, ... X32) As a first message to the communication terminal B (S604). Note that the processing after S604 is executed by the dialogue proof means 404.
[0057]
The communication terminal B receives the first message (S702), and as a probabilistic question, 32 {0, randomly selected so that 0 becomes 16 or more out of 32 {0, 1}. , 1} (b1, B2, ... b32) Is transmitted to the communication terminal A (S703). Communication terminal A receives 32 {0, 1} strings from communication terminal B (b1, B2, ... b32) Is received (S605).
[0058]
Next, the communication terminal A receives the {0, 1} string (b1, B2, ... b32) And answer (Y1, Y2, ... Y32) To the communication terminal B (S304 in FIG. 3).
[0059]
bi= 0 when Yi  = Ri
bi  = 1 Yi  = TRi  mod n
[0060]
Here, the procedure in which the communication terminal A transmits the answer Y will be described along S606 to S611 in FIG. In S606, the counter i is reset to 1, and thereafter, the processes of S608 to S611 described later are repeated until the counter i becomes equal to the maximum number k (here, “32”). In S608, biDetermine whether is 0 and biIf Y is 0, Y in S609i= RiYiIs transmitted to the communication terminal B.
[0061]
Meanwhile, biIf is not 0 (if 1), Y in S610i= TRi  mod n becomes YiIs transmitted to the communication terminal B. Thereafter, the counter i is incremented by 1 in S611, and the process returns to S607.
[0062]
Thereafter, the processes of S608 to S611 are repeated until the counter i exceeds the maximum number k. As a result, the communication terminal A receives the {0, 1} sequence from the communication terminal B (b1, B2, ... b32) (Y)1, Y2, ... Y32) To the communication terminal B.
[0063]
Returning to FIG. 7, the communication terminal B responds to the response (Y1, Y2, ... Y32) And whether the received answer satisfies the following equation is checked in accordance with S705 to S710 in FIG.
[0064]
bi= 0 when Xi  = Yi 2  mod n
bi  = 1 when ZXi  = Yi 2  mod n
[0065]
Here, a procedure for the communication terminal B to check the answer Y will be described. In S705 of FIG. 7, the counter i is reset to 1, and thereafter, the processes of S707 to S710 described later are repeated until the counter i becomes equal to the maximum number k (here, “32”). In S707, biDetermine whether is 0 and biIf X is 0, X in S708i= Yi 2  It is determined whether mod n is satisfied. If it is not established, the processing is terminated because the verification result is abnormal. Xi= Yi 2  If mod n is satisfied, the process proceeds to S710.
[0066]
On the other hand, b in S707iIf is not 0 (if 1), ZX in S709i  = Yi 2It is determined whether mod n is satisfied. If it is not established, the processing is terminated because the verification result is abnormal. ZXi  = Yi 2If mod n is satisfied, the process proceeds to S710.
[0067]
In S710, the counter i is incremented by 1, and the process returns to S706. Thereafter, the processes of S707 to S710 are repeated until the counter i exceeds the maximum number k. As a result, the communication terminal B responds to the response (Y1, Y2, ... Y32) Will check one by one whether the above formula is satisfied. However, the communication terminal B continues communication with the communication terminal A only when i is 1 to 32 and all of the above expressions are satisfied. Cancel (It is also possible to set a threshold for the correct answer rate for canceling communication in advance and continue communication if a correct answer rate equal to or higher than the set value is obtained).
[0068]
If all the verification results are normal, the communication terminal B determines that b in FIG.iAnswer Y when is 0iIs output.
[0069]
Then, the communication terminal B uses the message generation unit 503 to generate (restore) the message M using the forward error correction code as follows (S712, S305 in FIG. 3). That is, the communication terminal B is bi  = Y when 0i(Ri16)iAnd fi  And r with Reed-Solomon codei  Fi  The 8192-bit message is restored by decoding with a power of.
[0070]
The Reed-Solomon code can restore the original message by using any 16 of the 32 pieces of redundant information. However, since the power is randomly selected, the same power as the other redundant data is accidentally selected. Redundant data cannot be used for restoration processing. In this case, the 17th bi= 0 Yi(Ri) Is required.
[0071]
By the series of processes described above, the 8192-bit message restored when the verification of the dialogue proof is passed is a message that has not been tampered with, and the message transmission / reception equivalent to the electronic signature is realized even in the quadratic residue problem. become.
[0072]
【The invention's effect】
As described above, according to the present invention, a message can be delivered to a communication partner without being falsified by applying a dialog proof system using a one-way function. This method can be realized based on all PSPACE problems and NP problems in which one-way functions exist, and even if a fast solution of a prime factorization problem or a discrete logarithm problem is discovered, other PSPACE problems and NP problems Can be equivalent to an electronic signature. In addition, if there is a PSPACE problem and an NP problem with the same difficulty with a shorter key length than the discrete logarithm problem on an elliptic curve, an electronic signature with a short public key length can be realized.
[Brief description of the drawings]
FIG. 1 is a sequence diagram of a dialog proof system using a one-way function.
FIG. 2 is a flowchart showing random number generation processing;
FIG. 3 is a diagram for explaining a message transmission / reception procedure;
FIG. 4 is a functional block diagram of a device to be verified.
FIG. 5 is a functional block diagram of the verification apparatus.
FIG. 6 is a flowchart showing processing in the verification target device.
FIG. 7 is a flowchart showing processing in the verification apparatus.
[Explanation of symbols]
401 ... Verified device, 402 ... Redundant information generation means, 403 ... Calculation formula connection means, 404 ... Dialogue certification means, 501 ... Verification apparatus, 502 ... Dialogue certification means, 503 ... Message generation means.

Claims (9)

送信メッセージの入力を受け付け、前記送信メッセージから冗長情報を、当該冗長情報から前記送信メッセージを生成できるよう設計された計算式に基づいて生成し、生成された冗長情報及び生成に利用された計算式を出力する冗長情報生成手段と、
前記冗長情報生成手段により出力された冗長情報と計算式とを連結させる計算式連結手段と、
前記計算式連結手段による連結で得られた計算式連結済み冗長情報を乱数として用いて、検証装置との間で一方向性関数を用いた対話証明を行う対話証明手段と、を備え、前記対話証明手段は、対話証明において、
乱数に対し一方向性関数の演算を行った演算結果を第1のメッセージとして送信し、
検証装置から確率的な質問を受信し、受信された質問に応じて、乱数そのもの、又は、乱数と秘密情報から得られる値に対し一方向性関数の演算を行った演算結果を、第2のメッセージとして送信する、ことを特徴とする被検証装置。
Receives input of a transmission message, generates redundant information from the transmission message based on a calculation formula designed to generate the transmission message from the redundancy information, and generates the redundant information and the calculation formula used for generation Redundant information generating means for outputting
Calculation formula connecting means for connecting the redundant information and the calculation formula output by the redundant information generating means;
Dialogue proof means for performing dialogue proof using a one-way function with a verification device using the calculation formula linked redundant information obtained by linking by the formula linking means as a random number, The proof means is the dialog proof,
Sending the result of computing the one-way function on the random number as the first message,
A probabilistic question is received from the verification device, and a calculation result obtained by calculating a one-way function on the random number itself or a value obtained from the random number and the secret information according to the received question is a second result. A device to be verified, which is transmitted as a message.
前記冗長情報生成手段は、前方誤り訂正符号を用いて前記冗長情報を生成することを特徴とする請求項1に記載の被検証装置。The apparatus to be verified according to claim 1, wherein the redundant information generation unit generates the redundant information using a forward error correction code. 前記冗長情報生成手段は、前記送信メッセージに乱数ビットを付加し、付加後のメッセージから、前方誤り訂正符号を用いて前記冗長情報を生成することを特徴とする請求項1に記載の被検証装置。The apparatus to be verified according to claim 1, wherein the redundant information generating unit adds a random number bit to the transmission message, and generates the redundant information from the added message using a forward error correction code. . 前方誤り訂正符号としてリードソロモン符号が用いられ、
冗長データと当該冗長データの生成に利用された累乗数とを連結したものが乱数として対話証明に用いられることを特徴とする請求項2又は3に記載の被検証装置。
Reed-Solomon code is used as the forward error correction code,
4. The device to be verified according to claim 2, wherein a concatenation of redundant data and a power used to generate the redundant data is used as a random number for dialogue proof.
冗長情報と当該冗長情報から送信メッセージを生成できるよう設計された計算式とが連結された計算式連結済み冗長情報を、乱数として用いる被検証装置、との間で一方向性関数を用いた対話証明を行う対話証明手段と、
送信メッセージを生成するメッセージ生成手段と、を備え、
前記対話証明手段は、対話証明において、
乱数に対し一方向性関数の演算を行った演算結果を第1のメッセージとして受信し、
被検証装置へ確率的な質問を送信して、当該質問に応じた回答として、乱数そのもの、又は、乱数と秘密情報から得られる値に対し一方向性関数の演算を行った演算結果を、第2のメッセージとして受信し、
送信した質問、第1のメッセージ及び第2のメッセージに基づいて被検証装置の証明を行い、
被検証装置の正当性が証明された場合、質問に応じた回答のうち乱数そのものを出力し、
前記メッセージ生成手段は、
出力された乱数に含まれている冗長情報及び計算式に基づいて送信メッセージを生成する、ことを特徴とする検証装置。
Dialogue using a one-way function between a redundant device and a device to be verified that uses redundant information combined with a calculation equation designed to generate a transmission message from the redundant information as a random number A dialog proof means for proof, and
Message generating means for generating a transmission message,
In the dialog proof, the dialog proof means
Received as a first message the result of computing a one-way function on a random number,
Sending a probabilistic question to the device to be verified, and as a response to the question, the result of computing the one-way function on the random number itself or the value obtained from the random number and secret information is 2 as a message,
Proving the verified device based on the transmitted question, the first message, and the second message,
When the validity of the device to be verified is proved, the random number itself is output among the answers according to the question,
The message generation means includes:
A verification apparatus that generates a transmission message based on redundant information and a calculation formula included in an output random number.
前記メッセージ生成手段は、前方誤り訂正符号を用いて前記検証済みのメッセージから受信メッセージを生成することを特徴とする請求項5に記載の検証装置。6. The verification apparatus according to claim 5, wherein the message generation unit generates a received message from the verified message using a forward error correction code. 前方誤り訂正符号としてリードソロモン符号が用いられることを特徴とする請求項6に記載の検証装置。The verification apparatus according to claim 6, wherein a Reed-Solomon code is used as the forward error correction code. 検証装置との間で一方向性関数を用いた対話証明を行う被検証装置における被検証方法であって、
送信メッセージの入力を受け付け、
前記送信メッセージから冗長情報を、当該冗長情報から前記送信メッセージを生成できるよう設計された計算式に基づいて生成し、
生成された冗長情報及び生成に利用された計算式とを連結させ、
連結で得られた計算式連結済み冗長情報を乱数として用い、当該乱数に対し一方向性関数の演算を行った演算結果を第1のメッセージとして送信し、
検証装置から確率的な質問を受信し、
受信された質問に応じて、乱数そのもの、又は、乱数と秘密情報から得られる値に対し一方向性関数の演算を行った演算結果を、第2のメッセージとして送信する、ことを特徴とする被検証方法。
A verified method in a verified device that performs dialogue proof using a one-way function with a verification device,
Accept input of outgoing messages,
Generate redundant information from the transmission message, based on a calculation formula designed to be able to generate the transmission message from the redundant information,
Link the generated redundant information and the calculation formula used for generation,
The calculation formula connected redundant information obtained by concatenation is used as a random number, and a calculation result obtained by performing a one-way function operation on the random number is transmitted as a first message,
Receive a probabilistic question from the verifier,
According to the received question, a random number itself or a calculation result obtained by calculating a one-way function on a value obtained from the random number and secret information is transmitted as a second message. Method of verification.
冗長情報と当該冗長情報から送信メッセージを生成できるよう設計された計算式とが連結された計算式連結済み冗長情報を、乱数として用いる被検証装置、との間で一方向性関数を用いた対話証明を行う検証装置における検証方法であって、
乱数に対し一方向性関数の演算を行った演算結果を第1のメッセージとして被検証装置から受信し、
被検証装置へ確率的な質問を送信し、
当該質問に応じた回答として、乱数そのもの、又は、乱数と秘密情報から得られる値に対し一方向性関数の演算を行った演算結果を、第2のメッセージとして受信し、
送信した質問、第1のメッセージ及び第2のメッセージに基づいて被検証装置の証明を行い、
被検証装置の正当性が証明された場合、質問に応じた回答のうち乱数そのものを出力し、
出力された乱数に含まれている冗長情報及び計算式に基づいて送信メッセージを生成する、ことを特徴とする検証方法。
Dialogue using a one-way function between a redundant device and a device to be verified that uses redundant information combined with a calculation equation designed to generate a transmission message from the redundant information as a random number A verification method in a verification device that performs proof,
A calculation result obtained by calculating a one-way function on a random number is received as a first message from the device to be verified,
Send a probabilistic question to the device under verification,
As a response to the question, a random number itself, or a calculation result obtained by calculating a one-way function on a value obtained from a random number and secret information is received as a second message,
Proving the verified device based on the transmitted question, the first message, and the second message,
When the validity of the device to be verified is proved, the random number itself is output among the answers according to the question,
A verification method characterized by generating a transmission message based on redundant information and a calculation formula included in an output random number.
JP2003208486A 2003-08-22 2003-08-22 Device to be verified, verifying device, method of being verified, and verifying method Pending JP2005072650A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003208486A JP2005072650A (en) 2003-08-22 2003-08-22 Device to be verified, verifying device, method of being verified, and verifying method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003208486A JP2005072650A (en) 2003-08-22 2003-08-22 Device to be verified, verifying device, method of being verified, and verifying method

Publications (1)

Publication Number Publication Date
JP2005072650A true JP2005072650A (en) 2005-03-17

Family

ID=34401755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003208486A Pending JP2005072650A (en) 2003-08-22 2003-08-22 Device to be verified, verifying device, method of being verified, and verifying method

Country Status (1)

Country Link
JP (1) JP2005072650A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008099243A (en) * 2006-09-12 2008-04-24 Tamagawa Gakuen Error correction encoding device, error correction encoding method, and program
US10412069B2 (en) 2015-01-19 2019-09-10 Mitsubishi Electric Corporation Packet transmitting apparatus, packet receiving apparatus, and computer readable medium
CN115439959A (en) * 2014-12-23 2022-12-06 法雷奥舒适驾驶助手公司 Method for controlling access to at least one function of a motor vehicle

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008099243A (en) * 2006-09-12 2008-04-24 Tamagawa Gakuen Error correction encoding device, error correction encoding method, and program
US8176393B2 (en) 2006-09-12 2012-05-08 Tamagawa K-12 & University Encoding device for error correction, encoding method for error correction and encoding program for error correction
US8365052B2 (en) 2006-09-12 2013-01-29 Tamagawa K-12 & University Encoding device for error correction, encoding method for error correction and encoding program for error correction
CN115439959A (en) * 2014-12-23 2022-12-06 法雷奥舒适驾驶助手公司 Method for controlling access to at least one function of a motor vehicle
US10412069B2 (en) 2015-01-19 2019-09-10 Mitsubishi Electric Corporation Packet transmitting apparatus, packet receiving apparatus, and computer readable medium

Similar Documents

Publication Publication Date Title
US8116451B2 (en) Key validation scheme
US8312283B2 (en) Accelerated signature verification on an elliptic curve
EP0639907B1 (en) Digital signature method and key agreement method
US8661240B2 (en) Joint encryption of data
CA2305896C (en) Key validation scheme
US9088419B2 (en) Keyed PV signatures
US9544144B2 (en) Data encryption
US20150006900A1 (en) Signature protocol
JP2005072650A (en) Device to be verified, verifying device, method of being verified, and verifying method
US20140136843A1 (en) Information processing apparatus and information processing method
US9490978B2 (en) Information processing apparatus and information processing method
Xu et al. On the security of digital signature schemes based on error-correcting codes
JP3927419B2 (en) Information registration method, terminal device, information registration server, information registration system
CN117176329A (en) Session key generation method and device, processor and electronic equipment
Poszet et al. An Efficient Identification Protocol for Electronic Payment Systems
Park Efficient primitives for ensuring security in e-commerce transactions
Aboud et al. Efficient multiple‐collision trapdoor hash family
JP2003234735A (en) Verifiable cipher method, transmitter terminal, receiver terminal, verifiable cipher system and data transmitting/ receiving method
JPH1078754A (en) Signed document certification method, signed document simultaneous exchange method, signed document certification system and signed document simultaneous exchange system