JP4555859B2 - 認証システム、認証方法、証明装置、検証装置、それらのプログラム及び記録媒体 - Google Patents

認証システム、認証方法、証明装置、検証装置、それらのプログラム及び記録媒体 Download PDF

Info

Publication number
JP4555859B2
JP4555859B2 JP2007507586A JP2007507586A JP4555859B2 JP 4555859 B2 JP4555859 B2 JP 4555859B2 JP 2007507586 A JP2007507586 A JP 2007507586A JP 2007507586 A JP2007507586 A JP 2007507586A JP 4555859 B2 JP4555859 B2 JP 4555859B2
Authority
JP
Japan
Prior art keywords
information
verification
authentication
authentication information
power
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007507586A
Other languages
English (en)
Other versions
JPWO2007007836A1 (ja
Inventor
剛 山本
英一郎 藤崎
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2007007836A1 publication Critical patent/JPWO2007007836A1/ja
Application granted granted Critical
Publication of JP4555859B2 publication Critical patent/JP4555859B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本発明は、メッセージ認証技術に関し、詳しくは、特定または不特定の装置が、所定の情報を内部に保持していることを証明・検証することを可能とする技術に関する。
特定または不特定の装置が、所定の情報を内部(例えばハードディスクなどの記憶部)に保持していることを認証する技術は、メッセージ認証技術と呼ばれる。この技術には、認証の過程で必要とされる通信量が、保持していることを証明したい情報の量(情報量)に依存しないという特徴がある。
従来におけるメッセージ認証技術の概要を説明する。証明装置と検証装置は予め秘密鍵kを共有しておく。次に証明装置はその保持する情報sに対して一定の長さを有するメッセージ認証子M(s,k)を計算し、検証装置に送付する。検証装置は情報sのコピーを保持していて、証明装置から送付されたメッセージ認証子M(s,k)の正当性を検証する。
メッセージ認証子は、おもに共通鍵暗号やハッシュ関数に関する技術を用いて設計されている。メッセージ認証子の構成方法についての一例を記述した文献を非特許文献1に示す。
Tetsu Iwata, Kaoru Kurosawa, "OMAC: One-Key CBC MAC", LNCS 2887(2003),pp129-153,Springer-Verlag.
メッセージ認証子を用いる方式においては、認証子の正当性を検証するために、検証装置は検証対象の情報sのコピーを保持しておく必要がある。このため、この方式においては検証装置の記憶容量の効率に課題があった。また、この方式では、メッセージ認証に先立って、証明装置と検証装置との間で、予め秘密鍵kを共有しておく必要がある。そして、秘密鍵kが外部に漏洩した場合、この方式の安全性は保てない。よって、このような秘密鍵kの証明装置と検証装置への配布や、証明装置と検証装置での管理には、秘密鍵kが第三者へ漏洩することを防止するための煩雑な手法や構成が必要となる。つまり、メッセージ認証子を用いる方式には、利便性と安全性にも課題があった。
本発明は、このような点に鑑みてなされたものであり、証明装置に所定の情報が保持されていることを検証装置が検証する技術において、検証装置の記憶容量を有効活用し、なおかつ、利便性と安全性を向上させることを目的とする。
本発明では、保持情報が格納された証明装置に通信可能に接続された検証装置が、当該保持情報と、任意の対比情報と、の同一性を検証する(なお、「対比情報」及び「保持情報」は、ビット情報である。)。
そのために、まず、検証装置は、対比情報の内容に依存する内容を有し、対比情報の情報量に依存しない情報量を有する検証情報と、任意の情報である第1任意情報と、を第1記憶部に記憶させる。また、検証装置は、証明装置に認証情報を生成させるための認証情報生成因子を、第1記憶部に記憶された第1任意情報を用いて生成し、生成した認証情報生成因子を証明装置に送信する。
証明装置は、上記の認証情報生成因子を受信し、当該認証情報生成因子と、第2記憶部に記憶された保持情報とを用い、認証情報生成因子と保持情報との内容に依存する内容を有し、保持情報の情報量に依存しない情報量を有する認証情報を生成する。次に、証明装置は、この認証情報を検証装置に送信する。
検証装置は、証明装置が送信した認証情報を受信し、検証装置の判定部が、その認証情報と、第1記憶部に記憶された検証情報及び第1任意情報との間に、所定の関係が成立するか否かを判定する。これにより、検証装置は、証明装置に格納された保持情報が、対比情報と同一であることを検証する。
ここで、本発明の検証装置が、検証処理を行うために自ら保持しておかなければならないのは、対比情報の情報量に依存しない情報量を有する検証情報であり、対比情報自体ではない。よって、検証対象となる証明装置に格納された保持情報の情報量が大きく、対比情報の情報量も大きくなる場合であっても、検証装置に必要な記録容量は、さほど増大しない。また、本発明では、証明装置と検証装置との間で秘密鍵を共有する必要がないため、利便性と安全性が高い。
また、本発明において好ましくは、検証情報は、可換な半群をなす演算が定義された有限集合の元を底とし、対比情報を冪数として、当該半群で定義された冪乗を行った演算結果であり、認証情報生成因子は、当該有限集合の元を底とし、第1任意情報を冪数として、半群で定義された冪乗を行った演算結果であり、認証情報は、認証情報生成因子を底とし、保持情報を冪数として、半群で定義された冪乗を行った演算結果である。そして、判定部は、検証情報を底とし、第1任意情報を冪数として、半群で定義された冪乗を行った演算結果と、認証情報と、が等しいか否かを判定する。
この構成での検証情報は、可換な半群をなす演算が定義された有限集合の元を底とし、対比情報を冪数として、当該半群で定義された冪乗を行った演算結果である。この検証情報は、必ず、当該半群上定義された有限集合の元となる。よって、検証情報の情報量は、対応する対比情報の情報量に拘らず、当該有限集合の何れか元の情報量と同一になる。そのため、検証情報を格納するために検証装置に要求される記憶容量も抑制できる。また、この構成では、証明装置と検証装置との間で秘密鍵を共有する必要がないため、利便性と安全性が高い。
なお、当該本発明の好ましい構成の場合でも、上記の半群を特定するための情報と有限集合の元とを、検証情報と証明装置とで共有する必要はある。しかし、これらの情報は、必ずしも秘密情報である必要はなく、これらの情報が攻撃者に漏洩しても、認証方式の安全性は確保できる。よって、これらの情報を証明装置と検証装置との間で共有することに起因する利便性や安全性の問題は発生しない。
また、より好ましくは、上記の半群として、当該半群で定義された有限集合の位数の算出が困難なものを用いる。攻撃者が上記の半群で定義された有限集合の位数を算出できた場合、この攻撃者は、算出した位数を、検証に合格する認証情報を不正に作成するための情報として利用することができるからである。すなわち、認証情報生成因子を底とし、保持情報を冪数として、半群で定義された冪乗を行った演算結果と、認証情報生成因子を底とし、当該保持情報+任意の整数×位数を冪数として、当該半群で定義された冪乗を行った演算結果とは等しい(衝突:collision)。これは、位数を知った攻撃者は、保持情報自体を見つけなくても、保持情報+任意の整数×位数の何れかを見つけることにより、検証装置での検証に合格する認証情報を生成できること、を知ることを意味する。この情報は、攻撃者が検証に合格する認証情報を効率的に探索するための情報となる。よって、上記位数が攻撃者に知られることにより、本発明の安全性は低下する。そのため、上記の半群は、位数の算出が困難なものであることが望ましい。
また、本発明において、好ましくは、検証情報は、定数Nを法とし、N未満の値g(好ましくは、2以上N未満の値g)を底とし、対比情報s’を冪数とした冪乗剰余演算結果C(s’)であり、認証情報生成因子は、Nを法とし、値gを底とし、第1任意情報rを冪数とした冪乗剰余演算結果Rであり、認証情報は、Nを法とし、認証情報生成因子Rを底とし、保持情報sを冪数とした冪乗剰余演算結果R(s)である。そして、判定部は、Nを法とし、検証情報C(s’)を底とし、第1任意情報rを冪数とした冪乗剰余演算結果と、認証情報R(s)と、が等しいか否かを判定する。
この構成での検証情報は、定数Nを法とし、N未満の値gを底とし、対比情報s’を冪数とした冪乗剰余演算結果C(s’)である。その場合、検証情報は、対比情報s’の情報量に拘らず、必ず、0以上N−1以下の整数となる。これは、検証情報を格納するために検証装置に要求される記憶容量を抑制できることを意味する。また、この構成でも、証明装置と検証装置との間で秘密鍵を共有する必要がないため、利便性と安全性は高い。なお、この構成の場合でも、定数Nと値gとの情報を、検証情報と証明装置とで共有する必要はある。しかし、これらの情報が攻撃者に漏洩しても認証方式の安全性は確保できる。よって、これらの情報を証明装置と検証装置との間で共有することに起因する利便性や安全性の問題は発生しない。
ここで、より好ましくは、定数Nは、素数であることが判定可能な数を除く自然数であって、素因数分解困難な数である。定数Nが素数である場合、定数Nを法とした剰余環(Z/NZ)*の乗法についての位数は、N−1の計算によって容易に求めることができる。よって、素数であることが判定可能な数を定数Nとしないことが望ましい。また、定数Nが合成数(但し、N=p・qであり、p,qは十分大きな素数)である場合、定数Nを法とした剰余環は、乗法に関して位数p・q-p-q+1の巡回群となる。よって、この定数Nの素因数分解が容易なのであれば、N=p・qを満たすp,qから、定数Nを法とした剰余環の乗法に関しての位数を求めることができる。逆に、当該位数が分かり、冪乗剰余演算結果を衝突させることができるのであれば、それらの情報を用いて当該定数Nの素因数分解ができることも知られている(例えば、G. Miller. Riemanann's hypothesis and tests for primality. Journal of Computer Systems Science, Vol. 13, pages 300-317,1976.など参照)。すなわち、定数Nが合成数である場合、上記位数を求めることは、当該定数Nの素因数分解を行う以上に困難である(Nが2つの素数の積からなる合成数である場合、これらの困難性は同等)。
よって、素数であることが判定可能な数を除く自然数であって、素因数分解困難な数をNとすることは望ましい。なお、「素数であることが判定可能な数」とは、本願出願時に公然知られた素数判定法を用いることによって「素数であること」が判定可能な数、及び、本願出願時に「素数であること」が公然知られた数を意味する。
また、本発明において定数Nが、3つ以上の素数の積からなる合成数であってもよい。この場合、たとえ攻撃者が定数Nを素因数分解できたとしても、この攻撃者は、当該定数Nを法とした剰余環の乗法に関しての位数を容易に算出できないからである。なお、演算効率の面からは、素数であることが判定可能な数を除く自然数であって、素因数分解困難な数をN(但し、Nが合成数の場合、N=p・qであり、p,qは十分大きな素数)とすることが望ましい。
また、本発明において好ましくは、上記の第1任意情報rは、νを所定の自然数とした場合における、0≦r≦N・2ν−1の範囲から任意に選択される値である。このような範囲から第1任意情報rが任意に選択される場合、Nを法とし、値gを底とし、第1任意情報rを冪数とした冪乗剰余演算結果が、Nを法とした剰余環の乗法についての巡回群の元から任意に選択した値〔∈(Z/NZ)*〕と識別不能な分布を持つことが証明できる。これは、Nを法とし、値gを底とし、第1任意情報rを冪数とした冪乗剰余演算結果から第1任意情報rを求める困難性と、Nを法とした剰余環の乗法についての巡回群の元から任意に選択した値の離散対数問題を解く困難性と、が同等であることを示している。すなわち、第1任意情報rが0≦r≦N・2ν−1の範囲から任意に選択される値である限り、上記冪乗剰余演算結果から第1任意情報rを特定することは十分困難である。そして、これよりも上限を広げた範囲から第1任意情報rを選択する構成としても、安全性は向上せず、冪乗演算の演算コストが上昇するだけである。
また、本発明において、好ましくは、検証情報は、対比情報を複数に分割した第1分割情報ごとに、それぞれの当該第1分割情報を用いて生成された情報であり、認証情報は、認証情報生成因子と、証明装置に記憶された保持情報を複数に分割した第2分割情報の全てと、を用いて生成された情報である。
この場合、認証情報は、証明装置に記憶された保持情報を複数に分割した第2分割情報を全て用いて生成される。よって、保持情報そのものを用いて認証情報を生成する場合に比べ、多様な演算方法を採ることが可能となる。そのため、採用する演算方法によっては、認証情報の生成を高速で行うことができる。
ここで好ましくは、検証情報は、可換な半群をなす演算が定義された有限集合の元を底とし、第1分割情報を冪数として、当該半群で定義された冪乗を行った演算結果であり、認証情報生成因子は、有限集合の元を底とし、第1任意情報を冪数として、半群で定義された冪乗を行った演算結果であり、認証情報は、認証情報生成因子を底とし、第2分割情報の全てを用いて算出した値であって保持情報よりも情報量が少ないものを冪数として、半群で定義された冪乗を行った演算結果である。そして、判定部は、検証情報の全てを用いて算出した値を底とし、第1任意情報を冪数として、半群で定義された冪乗を行った演算結果と、認証情報と、が等しいか否かを判定する。
この認証情報は、認証情報生成因子を底とし、第2分割情報の全てを用いて算出した値であって保持情報よりも情報量が少ないものを冪数として、半群で定義された冪乗を行った演算結果である。冪乗演算の演算コストは、冪数の値に大きくなるにつれて急激に大きくなるため、冪数の値を小さくすることは演算コストの低減に大きく貢献する。第2分割情報の全てを用いて算出した値であって保持情報よりも情報量が少ないものを冪数とすることにより、認証情報を算出するための冪乗演算のコストを大幅に低減できる。
また、本発明において好ましくは、認証情報は、各上記第2分割情報の保持情報内のビット位置に対応する事前準備困難な情報と、第2分割情報の全てとを用いて算出した値であって保持情報よりも情報量が少ないものを冪数とし、認証情報生成因子を底として、半群で定義された冪乗を行った演算結果である。
各上記第2分割情報の保持情報内のビット位置に対応する事前準備困難な情報と、第2分割情報の全てとを用いて算出した値を冪数として認証情報を生成することにより、保持情報を保持しておらず、各第2分割情報が保持情報内のどのビット位置の情報であるかを知らないが各分割情報のみを知っている攻撃者が、検証装置での検証に合格する認証情報を偽造する不正を防止できる。
また、本発明において、好ましくは、検証情報は、定数Nを法とし、N未満の値gを底とし、第1分割情報s’を冪数とした冪乗剰余演算結果C(s’)であり、認証情報生成因子は、Nを法とし、値gを底とし、第1任意情報rを冪数とした冪乗剰余演算結果Rであり、認証情報は、第2分割情報sに対応するi及び検証装置から送信される何らかの情報に値が依存する情報Hと、第2分割情報sと、の積を全てのiについて合計した値を冪数とし、認証情報生成因子Rを底とし、Nを法とした冪乗剰余演算結果R(s)である。そして、判定部は、全てのiに対応する各検証情報C(s’)をそれらにそれぞれ対応する情報Hによって冪乗した各値の積を底とし、第1任意情報rを冪数とし、Nを法とした冪乗剰余演算結果と、認証情報R(s)と、が等しいか否かを判定する。なお、iは、第1分割情報s’の対比情報内におけるビット位置、及び、第2分割情報sの保持情報内におけるビット位置を示すインデックスである。
この認証情報は、第2分割情報sに対応するi及び検証装置から送信される何らかの情報に値が依存する情報Hと、第2分割情報sと、の積を全てのiについて合計した値を冪数とし、認証情報生成因子Rを底とし、Nを法とした冪乗剰余演算結果R(s)である。この場合、保持情報を保持しておらず、各第2分割情報が保持情報内のどの位置の情報であるかを知らないが各分割情報のみを知っている攻撃者が、検証装置での検証に合格する認証情報を偽造する不正を防止できる。
ここで、より好ましくは、情報Hは、第2分割情報sに対応するiと検証装置から送信される何らかの情報とに値が依存する一方向性関数値である。
この場合、複数種類の「検証装置から送信される何らかの情報」及び「i」の組に対応する各情報Hが同一の値となってしまうこと(衝突:collision)を防止できる。その結果、誤った「検証装置から送信される何らかの情報」及び「i」の組から、検証装置での検証に合格する認証情報が生成されることを防止でき、検証の信頼性と安全性が向上する。
さらに、本発明では、認証情報生成因子が、検証装置に記憶された第1任意情報を用いて正当に生成されたことを、検証装置が証明装置に、対話証明によって証明してもよい。この場合、検証装置は、証明装置が受信した認証情報生成因子が検証装置に記憶された第1任意情報を用いて生成されたことを、証明装置との対話証明によって証明装置に証明し、証明装置は、認証情報生成因子が、検証装置に記憶された第1任意情報を用いて生成されたことを、検証装置との対話証明によって検証する。そして、証明装置は、認証情報生成因子が、検証装置に記憶された第1任意情報を用いて生成されたことを確認できた場合に、認証情報を検証装置に送信する。
このような構成により、攻撃者の装置が当該対話証明に介在しない限り、正規の証明装置と検証装置との間に介在した攻撃者の装置が、正規の検証装置に対して証明装置に成り済まし、正規の証明装置に対して検証装置に成り済まし、保持情報を保持していると検証装置を誤認させる不正を抑制できる。すなわち、このような構成を採らない場合、正規の証明装置と検証装置との間に介在した攻撃者の装置が、証明装置に成り済まして正規の検証装置から認証情報生成因子を受け取り、さらに、検証装置に成り済まして正規の証明装置に当該認証情報生成因子を送信し、正規の証明装置から送信された認証情報を受け取ることができる。そして、この攻撃者の装置は、認証情報を正規の検証装置に送信することにより、この攻撃者の装置が保持情報を保持した装置であると、検証装置を誤認させることができる。これに対し、証明装置が、認証情報生成因子が検証装置に記憶された第1任意情報を用いて生成されたことを確認できた場合にのみ、認証情報を検証装置に送信する構成を採った場合、攻撃者の装置が当該対話証明に介在しない限り、攻撃者の装置が、検証装置に成り済まして正規の認証装置から認証情報を受け取ることが困難となる。その結果、正規の証明装置と検証装置との間に介在した攻撃者の装置が、保持情報を保持していると検証装置を誤認させる不正を防止できる。
また、このような構成では、正規の検証装置が不正な第1任意情報を生成し、何らかの不正行為(例えば、偽りの検証処理のログを生成することなど)をも防止できる。
さらにまた、この構成では、対比情報ではなく、第1任意情報を対話証明の対象としているので、検証対象の保持情報のデータ量が大きく、対比情報のデータ量が大きな場合であっても、対話証明に必要な演算コストや通信データ量を低く抑えることができる。
また、この対話証明を含む処理は、好ましくは、以下のように行う。
まず、証明装置が、可換な半群をなす演算が定義された有限集合の元gを底とし、任意の情報である第2任意情報aを冪数として、半群で定義された冪乗を行った演算値Aを生成し、演算値Aを検証装置に送信する。検証装置は、この演算値Aを受信し、有限集合の元gを底とし、第1任意情報rを冪数として、半群で定義された冪乗を行って認証情報生成因子Rを生成する。さらに、検証装置は、演算値Aを底とし、第1任意情報rを冪数として、半群で定義された冪乗を行って演算値Bを生成し、認証情報生成因子Rと演算値Bとを証明装置に送信する。証明装置は、認証情報生成因子Rと演算値Bとを受信し、第2受信部が受信した認証情報生成因子Rを底とし、第2任意情報aを冪数として、半群で定義された冪乗を行った演算結果と、演算値Bと、が等しいか否かを判定し、これらが等しかった場合に、認証情報を、検証装置に送信する。
このような構成により、攻撃者の装置が当該対話証明に介在しない限り、正規の証明装置と検証装置との間に介在した攻撃者の装置が、保持情報を保持していると検証装置を誤認させる不正を抑制できる。また、この構成では、第1任意情報rを対話証明の対象としているので、対話証明に必要な演算コストや通信データ量を低く抑えることができる。
また、このような構成では、正規の検証装置が不正な第1任意情報を生成し、偽りの検証処理のログを生成することをも防止できる。
さらにまた、この構成では、対比情報ではなく、第1任意情報を対話証明の対象としているので、検証対象の保持情報のデータ量が大きく、対比情報のデータ量が大きな場合であっても、対話証明に必要な演算コストや通信データ量を低く抑えることができる。
このような構成において、さらに好ましくは、証明装置は、認証情報生成因子Rを底とし、第2任意情報aを冪数として半群で定義された冪乗を行った演算結果と、演算値Bと、が等しいことを確認できた場合に、さらに、第2任意情報aを、検証装置に送信する。検証装置は、この第2任意情報aを受信し、有限集合の元gを底とし、第2任意情報aを冪数として、半群で定義された冪乗を行った演算結果と、演算値Aと、が等しいか否かを判定する。
このような処理を追加することにより、保持情報sは知らないが、Aを決定でき、上記半群においてC(s)=gとなるL,mを知っている攻撃者による不正を防止できる。すなわち、このような処理が実行されない場合、保持情報sも対比情報s’も知らないが、Aを決定でき、C(s’)=g(上記半群で定義された演算)となるL,mを知っている攻撃者の装置は、検証装置から認証情報生成因子Rと演算値Bとを受け取り、R(上記半群で定義された演算)を計算し、これを認証情報であると偽って検証装置に送信することが可能である。ここで、R=grLrm=(g=C(s’)を満たすため、このような攻撃者の装置は、自らが保持情報sを保持していると検証装置を誤認させることができる。一方、このような攻撃者は、A=g(上記半群で定義された演算)となる第2任意情報aを知らない。もし、このような攻撃者が当該第2任意情報aを知っているならば、その攻撃者は、C(s)=g=gL+a・m=gs’を算出できることになり、その攻撃者が保持情報sも対比情報s’も知らないことと矛盾するからである。よって、上述のように、検証装置が受け取った第2任意情報aを用い、A=g(上記半群で定義された演算)を満たすか否かを判定する処理を追加することによって、このような攻撃者の不正を防止できる。
なお、このような処理の各冪乗演算は、有限集合の位数の算出が困難な半群で定義された剰余演算によって行われることが望ましい。攻撃者が上記の半群で定義された有限集合の位数を算出できた場合、この攻撃者は、算出した位数を、A=gaを満たす第2任意情報aを探知するための情報として、利用することができるからである。
また、本発明において好ましくは、上記演算値Aは、定数Nを法とし、N未満の値gを底とし、任意の情報である第2任意情報aを冪数とした冪乗剰余演算結果であり、認証情報生成因子Rは、Nを法とし、値gを底とし、第1任意情報rを冪数とした冪乗剰余演算結果であり、演算値Bは、Nを法とし、演算値Aを底とし、第1任意情報rを冪数とした冪乗剰余演算結果である。また、上述した、第2受信部が受信した認証情報生成因子Rを底とし、第2任意情報aを冪数として、半群で定義された冪乗を行った演算結果は、Nを法とし、認証情報生成因子Rを底とし、第2任意情報aを冪数とした冪乗剰余演算結果である。なお、定数Nは、素数であることが判定可能な数を除く自然数であって、素因数分解困難な数であることが望ましい。また、定数Nは、3つ以上の素数の積からなる合成数であってもよい。
また、さらに好ましくは、上述した、有限集合の元gを底とし、第2任意情報aを冪数として、半群で定義された冪乗を行った演算結果は、Nを法とし、有限集合の元gを底とし、第2任意情報aを冪数とした冪乗剰余演算結果である。
また、さらに好ましくは、第2任意情報aは、νを所定の自然数とした場合における、0≦a≦N・2ν−1の範囲から任意に選択される値である。このように第2任意情報aが選択される場合、Nを法とし、値gを底とし、第2任意情報aを冪数とした冪乗剰余演算結果が、Nを法とした剰余環の乗法についての巡回群から任意に選択した値〔∈(Z/NZ)*〕と識別不能な分布を持つことが証明できる。これは、Nを法とし、値gを底とし、第2任意情報aを冪数とした冪乗剰余演算結果から、第2任意情報aを求める困難性と、Nを法とした剰余環の乗法についての巡回群から任意に選択した値の離散対数問題を解く困難性と、が同等であることを示している。すなわち、第2任意情報aが0≦a≦N・2ν−1の範囲から任意に選択される値である限り、上記冪乗剰余演算結果から第2任意情報aを特定することは十分困難である。そして、これよりも上限を広げた範囲から第2任意情報aを選択する構成としても、安全性は向上せず、冪乗演算の演算コストが上昇するだけである。
本発明によれば、証明装置に所定の情報が保持されていることを検証装置が検証する技術において、検証装置の記憶容量を有効活用し、なおかつ、利便性と安全性を向上させることができる。
図1は、第1実施形態に係る証明装置(1)のハードウェア構成を例示した構成ブロック図である。 図2は、第1実施形態に係る検証装置(2)のハードウェア構成を例示した構成ブロック図である。 図3は、第1実施形態におけるネットワーク構成例である。 図4は、第1実施形態に係る検証装置(2)の機能ブロック図(その1)である。 図5は、第1実施形態に係る証明装置(1)の機能ブロック図である。 図6は、第1実施形態に係る検証装置(2)の機能ブロック図(その2)である。 図7は、第1実施形態における処理フローを示す図である。 図8は、第2実施形態に係る第三者装置(3)のハードウェア構成を例示した構成ブロック図である。 図9は、第2実施形態におけるネットワーク構成例である。 図10は、第2実施形態に係る第三者装置(3)の機能ブロック図である。 図11は、第2実施形態に係る検証装置(2)の機能ブロック図である。 図12は、第2実施形態に係る証明装置(1)の機能ブロック図である。 図13は、第2実施形態における処理フローを示す図(その1)である。 図14は、第2実施形態における処理フローを示す図(その2)である。 図15は、第3実施形態に係る第三者装置(3)の機能ブロック図である。 図16は、第3実施形態に係る検証装置(2)の機能ブロック図(その1)である。 図17は、第3実施形態に係る証明装置(1)の機能ブロック図である。 図18は、第3実施形態に係る検証装置(2)の機能ブロック図(その2)である。 図19は、第3実施形態における処理フローを示す図(その1)である。 図20は、第3実施形態における処理フローを示す図(その2)である。 図21は、第4実施形態に係る証明装置(1)の機能ブロック図(その1)である。 図22は、第4実施形態に係る検証装置(2)の機能ブロック図(その1)である。 図23は、第4実施形態に係る証明装置(1)の機能ブロック図(その2)である。 図24は、第4実施形態に係る検証装置(2)の機能ブロック図(その2)である。 図25は、第4実施形態に係る証明装置(1)の機能ブロック図(その3)である。 図26は、第4実施形態における処理フローを示す図(その1)である。 図27は、第4実施形態における処理フローを示す図(その2)である。 図28は、第4実施形態における処理フローを示す図(その3)である。 図29は、第4実施形態における処理フローを示す図(その4)である。 図30は、第5実施形態に係る検証装置(2)の機能ブロック図(その1)である。 図31は、第5実施形態に係る証明装置(1)の機能ブロック図(その1)である。 図32は、第5実施形態に係る検証装置(2)の機能ブロック図(その2)である。 図33は、第5実施形態に係る証明装置(1)の機能ブロック図(その2)である。 図34は、第5実施形態に係る検証装置(2)の機能ブロック図(その3)である。 図35は、第5実施形態における処理フローを示す図(その1)である。 図36は、第5実施形態における処理フローを示す図(その2)である。 図37は、第5実施形態における処理フローを示す図(その3)である。 図38は、第6実施形態に係る検証装置(2)の機能ブロック図(その1)である。 図39は、第6実施形態に係る証明装置(1)の機能ブロック図(その1)である。 図40は、第6実施形態に係る証明装置(1)の機能ブロック図(その2)である。 図41は、第6実施形態に係る検証装置(2)の機能ブロック図(その2)である。 図42は、第6実施形態における処理フローを示す図(その1)である。 図43は、第6実施形態における処理フローを示す図(その2)である。 図44は、第6実施形態における処理フローを示す図(その3)である。
符号の説明
1 証明装置
2 検証装置
3 第三者装置
141 認証情報生成部
142 c^生成部
143 乱数生成部
145 認証判定部
148 A生成部
160 第1判定部
241 検証情報生成部
242 乱数生成部
243 認証情報生成因子生成部
244 判定部
247 W生成部
248 z生成部
249 B生成部
250 対話判定部
260 第2判定部
340 N生成部
341 g生成部
342 検証情報生成部
<第1実施形態>
発明を実施するための最良の形態を、図面を参照しつつ説明する。
[証明装置]
第1実施形態における証明装置について説明する。
図1は、第1実施形態に係わる証明装置(1)のハードウェア構成を例示した構成ブロック図である。
図1に例示するように、証明装置(1)は、キーボードやマウスなどの入力装置が接続可能な入力部(11)、液晶ディスプレイなどの出力装置が接続可能な出力部(12)、証明装置(1)外部に通信可能な通信装置(例えば、通信ケーブル、LANカード、ハブ、ルータ、モデムなど)が接続可能な通信部(13)、CPU(Central Processing Unit)(14)〔キャッシュメモリなどを備えていてもよい。〕、メモリであるRAM(15)、ROM(16)、ハードディスクや光ディスクや半導体メモリなどである外部記憶装置(17)並びにこれらの入力部(11)、出力部(12)、通信部(13)、CPU(14)、RAM(15)、ROM(16)、外部記憶装置(17)間のデータのやり取りが可能なように接続するバス(18)を有している。また必要に応じて、証明装置(1)に、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)などの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。
証明装置(1)の外部記憶装置(17)には、証明対象である所定の情報s〔保持情報〕を保持していることを証明するのに必要となるプログラム〔証明装置用プログラム〕およびこのプログラムの処理において必要となるデータなどが保存されている。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに保存される。
より具体的には、証明装置(1)の外部記憶装置(17)〔あるいはROMなど〕には、認証情報を生成するためのプログラムおよびこれらのプログラムの処理において必要となるデータ(情報sなど)などが保存されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも外部記憶装置(17)等に保存しておく。
本明細書において証明対象となる情報sは、説明の便宜上、ビット列からなるものとする。特に、証明装置(1)、後述する検証装置・第三者装置をコンピュータによって実現する場合には、いかなる情報(例えば人間が意味理解可能なテキスト形式の情報などがある。)であっても、2進数表記されるビット列として外部記憶装置に保存されることはいうまでもない。
証明装置(1)では、外部記憶装置(17)〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータがRAM(15)に読み込まれる。CPU(14)は、これらの各プログラムを実行して、各データを処理する。その結果、CPU(14)が所定の機能(認証情報生成部、制御部)を実現する。
[検証装置]
第1実施形態における検証装置について説明する。
図2は、第1実施形態に係わる検証装置(2)のハードウェア構成を例示した構成ブロック図である。
図2に例示するように、検証装置(2)は、キーボードやマウスなどの入力装置が接続可能な入力部(21)、液晶ディスプレイなどの出力装置が接続可能な出力部(22)、検証装置(2)外部に通信可能な通信装置(例えば通信ケーブル、LANカード、ハブ、ルータ、モデムなど)が接続可能な通信部(23)、CPU(Central Processing Unit)(24)〔キャッシュメモリなどを備えていてもよい。〕、メモリであるRAM(25)、ROM(26)、ハードディスクや光ディスクや半導体メモリなどである外部記憶装置(27)並びにこれらの入力部(21)、出力部(22)、通信部(23)、CPU(24)、RAM(25)、ROM(26)、外部記憶装置(27)間のデータのやり取りが可能なように接続するバス(28)を有している。また必要に応じて、検証装置(2)に、CD−ROM、DVDなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。
検証装置(2)の外部記憶装置(27)には、証明装置(1)に情報s〔保持情報〕が保持されていることを検証するのに必要となるプログラム〔検証装置用プログラム〕およびこのプログラムの処理において必要となるデータなどが保存されている。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに保存される。
より具体的には、検証装置(2)の外部記憶装置(27)〔あるいはROMなど〕には、検証情報を生成するためのプログラム、認証情報生成因子を生成するためのプログラム、乱数を生成するためのプログラム、証明装置から受信した情報と検証装置に保持される情報との一致を判定するためのプログラム、およびこれらのプログラムの処理において必要となるデータなどが保存されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも外部記憶装置(27)等に保存しておく。
検証装置(2)では、外部記憶装置(27)〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが、必要に応じてRAM(25)に読み込まれる。CPU(24)は、これらの各プログラムを実行して、各データを処理する。その結果、CPU(24)が所定の機能(検証情報生成部、認証情報生成因子生成部、乱数生成部、判定部、制御部)を実現する。
[ネットワーク構成]
第1実施形態の認証システムのネットワーク構成について説明する。
図3は、第1実施形態の認証システムのネットワーク構成を示す図である。
図3に示すように、第1実施形態では、1つの証明装置(1)と、1つの検証装置(2)とが、ネットワーク(5)を介して相互に通信可能に接続されている。もちろん、ネットワーク(5)を介して相互に通信可能に接続される証明装置(1)および検証装置(2)はそれぞれ1つずつに限定されるものではない。複数の証明装置(1)と複数の検証装置(2)とが、ネットワーク(5)を介して相互に通信可能に接続されるとしてもよい。ただ、検証装置(2)は1つであるのが一般的である(つまり、検証装置(2)は1つで十分な場合が多い。)。なお、ネットワーク(5)の構成には特に制限はなく、インターネット、LAN(Local Area Network)、Peer-to-Peer ネットワーク等どのようなものであってもよい。
なお、第1実施形態に係わるネットワーク構成においては、証明装置(1)と検証装置(2)との間の通信は、通信傍受の可能性などが否定できないなど、必ずしも通信の秘密の安全性が保証されたものでなくてもよい(以下に記載の各実施形態においても同様である。)。
[認証]
本発明の認証システム・方法の第1実施形態は、基本的な実施形態を示しており、本発明の趣旨を逸脱するものでないならば、種々の実施の形態に拡張可能である。以下、図4〜図7を参照しながら説明する。なお、各装置の機能ブロック図を示す図では、同じ符号が与えられた機能部が示されているが、各別のものを示すものではなく、説明の便宜から各別に示しているに過ぎない。このことは各実施形態における図でも同様である。
証明装置(1)の外部記憶装置(17)には、保持していることの証明対象である情報s〔保持情報〕が保存されているとする。また、予め、検証装置(2)の外部記憶装置(27)にも、情報s〔対比情報s’〕が保存されているとする。なお、説明の便宜上、各実施形態では、対比情報s’を「s」と表現する。しかし、これは、対比情報と保持情報とが、必ず同一であることを意味するものではない。
さらに、第1実施形態における認証システムにおいて共通のパラメータとして、十分大きい数Nと、N未満の数g(好ましくは、2以上N未満の数g)が、予め、証明装置(1)の外部記憶装置(17)および検証装置(2)の外部記憶装置(27)に保存されているとする。なお、前述の通り、Nを法とした剰余環の乗法についての位数が第三者に知られた場合、当該認証システムの安全性は低下する。そして、前述のように、Nが素数であることが明らかである場合、Nを法とした剰余環の乗法についての位数を求めることは容易である。また、Nが合成数である場合、Nを法とした剰余環の乗法についての位数を求めることは、当該Nを素因数分解することよりも困難である(Nが2つの素数の積からなる合成数である場合、これらの困難性は同等)。よって、安全性の見地から、Nは、素数であることが判定可能な数を除く自然数であって、素因数分解が困難な数であることが望ましい。このようなNとしては、例えば、素因数分解困難な合成数であるRSAモジュラス〔N=p・q(p,qは素数)であって、(p-1)/2,(q-1)/2もまた素数となっているN〕や、素数であるか否かが判定できない自然数などを例示できる。また、2のべき乗に近い数、例えば2−1の形で表せる数(メルセンヌ数)をNとしてもよい。このようなNによる剰余計算は、例えば2を1に置換することで計算ができ、このような演算は通常のCPUにおいてシフト演算またはビットの並び替えで実現することができる。従って高速な剰余演算を実現することができる。そのようなNを確率的アルゴリズムによって効率的に生成することもできるし、素因数分解が困難な数の表は公知であるから、そのような表から2のべき乗に近いNを選択するようにしてもよい。
また、gは、Nと互いに素であることが望ましい。gがNと互いに素でなく、その旨の情報が攻撃者に知られた場合、この攻撃者は、gの情報を、Nを素因数分解するための情報として利用できる場合があるからである(例えば、gの約数がNの約数となるか否かを試していく処理等)。
また、予め定められた自然数ν(セキュリティパラメータ)が、検証装置(2)の外部記憶装置(27)に保存されているとする。
まず、検証装置(2)の制御部(290)は、外部記憶装置(27)からN、g、ν、情報sを読み込み、それぞれをRAM(25)の所定の格納領域に格納しておく〔図4参照〕。以後、「RAMから○○を読み込む」旨の説明をした場合は、「RAMにおいて○○が格納されている所定の格納領域から○○を読み込む」ことを意味するとする。
検証装置(2)の検証情報生成部(241)は、RAM(25)からg、N、情報sを読み込み、式(1)に従った演算を行い、この演算結果C(s)〔検証情報〕をRAM(25)の所定の格納領域に格納する(ステップS1)〔図4参照〕。ここでは、ビット列の情報sを自然数の2進数表記と同一視した。
Figure 0004555859
次に、検証装置(2)の制御部(290)は、外部記憶装置(27)に保存される情報sを消除する(ステップS2)〔図4参照〕。ここで消除とは、対象となる情報が格納される格納領域を開放することであり、例えば格納領域を上書き(つまり、新たな情報を格納する。)可能な状態にしたり、あるいはNull値で格納領域を上書きしたりすることである。
次に、検証装置(2)の乱数生成部(242)は、RAM(25)からνを読み込み、高々22ν程度の大きさの乱数r〔第1任意情報〕を生成し、乱数rをRAM(25)の所定の格納領域に格納する(ステップS3)〔図4参照〕。なお、乱数生成部(242)が、0≦r≦N・2ν−1の範囲から乱数rを生成してもよい。前述のように、このような範囲から乱数rが選択される構成が、安全性と演算コストの両立という観点から望ましいからである。また、必ずしもrは乱数である必要はなく、値が任意に選択されるものであればよい。また、第1実施形態では乱数生成部(242)が、第1任意情報である乱数rを生成するとしたが、予め所定の値を第1任意情報として外部記憶装置(27)に保存しておき、この値を外部記憶装置(27)から読み込むとしてもよい。この場合には、安全性の見地から、当該所定の値を、検証装置(2)の外部に対して秘匿しておかなければならない。
次に、検証装置(2)の認証情報生成因子生成部(243)は、RAM(25)からg、N、rを読み込み、式(2)に従った演算を行い、この演算結果R〔認証情報生成因子〕をRAM(25)の所定の格納領域に格納する(ステップS4)〔図4参照〕。
Figure 0004555859
次に、検証装置(2)の制御部(290)の制御に従い、通信部(23)が、RAM(25)から読み込んだステップS4で得られた認証情報生成因子Rを、証明装置(1)に対して送信する(ステップS5)〔図4参照〕。
なお、ステップS1、S3、S4で得られた検証情報C(s)、乱数r、認証情報生成因子Rは、検証装置(2)の制御部(290)の制御によって、外部記憶装置(27)に保存される。
次に、証明装置(1)の制御部(190)の制御に従い、通信部(13)が、ステップS5において送信された認証情報生成因子Rを受信し、制御部(190)が、この認証情報生成因子Rを外部記憶装置(17)に保存する(ステップS6)〔図5参照〕。
次に、証明装置(1)の制御部(190)は、外部記憶装置(17)からN、情報s、認証情報生成因子Rを読み込み、それぞれをRAM(15)の所定の格納領域に格納する〔図5参照〕。
次に、証明装置(1)の認証情報生成部(141)は、RAM(15)からN、情報s、認証情報生成因子Rを読み込み、式(3)に従った演算を行い、この演算結果R(s)〔認証情報〕をRAM(15)の所定の格納領域に格納する(ステップS7)〔図5参照〕。
Figure 0004555859
次に、証明装置(1)の制御部(190)の制御に従い、通信部(13)が、RAM(15)から読み込んだ(ステップS7で得られた)認証情報R(s)を検証装置(2)に対して送信する(ステップS8)〔図5参照〕。
次に、検証装置(2)の制御部(290)の制御に従い、通信部(23)が、ステップS8において送信された認証情報R(s)を受信し、制御部(290)が、この認証情報R(s)を外部記憶装置(27)に保存する(ステップS9)〔図6参照〕。
次に、検証装置(2)の制御部(290)は、外部記憶装置(27)からN、乱数r、認証情報R(s)、検証情報C(s)を読み込み、それぞれをRAM(25)の所定の格納領域に格納する〔図6参照〕。
次に、検証装置(2)の判定部(244)は、RAM(25)からN、乱数r、認証情報R(s)、検証情報C(s)を読み込み、式(4)に示す関係が成立するか否かの判定を行う(ステップS10)〔図6参照〕。この判定結果が関係成立の場合には、関係成立を示す予め定めた情報α(例えば値α=1)をRAM(25)の所定の格納領域に格納する(ステップS11)。また、この判定結果が関係不成立の場合には、関係不成立を示す予め定めた情報α(例えば値α=0)をRAM(25)の所定の格納領域に格納する(ステップS12)。
Figure 0004555859
ここで、式(4)に示す関係が成立する場合は、証明装置(1)が情報sを保持していることを表し、式(4)に示す関係が成立しない場合は、証明装置(1)が情報sを保持しているとは限らないことを表す。
以上のとおり、検証装置(2)は、情報sを保持していなくても、証明装置(1)が情報sを保持していることの認証を行うことができる。
<第2実施形態>
次に、本発明の第2実施形態について、図8から図14を参照しながら説明する。
第1実施形態では、素数であることが判定可能な数を除く自然数であって、素因数分解が困難な大きな数Nが、予め証明装置(1)の外部記憶装置(17)および検証装置(2)の外部記憶装置(27)に保存されているとした。
第2実施形態では、この明細書に記載する実施形態に示す認証システム・方法において頑強な安全性が保証されるNを生成する。なお、Nは一義的な方法で生成されるものではなく、種々の方法で生成可能である。第2実施形態では、第三者装置(3)によってNを生成するものとする。この第三者装置(3)は必ずしも物理的に独立している必要はなく、証明装置(1)や検証装置(2)の内部に存在するモジュールとして実現してもよい。
なお、第2実施形態では、第1実施形態と同一の機能・処理については同一の符号を与えるなどして説明を省略する。
[証明装置]
第2実施形態における証明装置(1)は、第1実施形態で説明した証明装置と同様であるから説明を略する。
[検証装置]
第2実施形態における検証装置(2)の外部記憶装置(27)〔あるいはROMなど〕には、第1実施形態と異なり、検証情報を生成するためのプログラムが不要である。
検証装置(2)では、外部記憶装置(27)〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが、必要に応じてRAM(25)に読み込まれる。CPU(24)は、これらの各プログラムを実行して、各データを処理する。その結果、CPU(24)が所定の機能(認証情報生成因子生成部、乱数生成部、判定部、制御部)を実現する。
[第三者装置]
第2実施形態における第三者装置について説明する。
図8は、第2実施形態の第三者装置(3)のハードウェア構成を例示した構成ブロック図である。
図8に例示するように、第三者装置(3)は、キーボードやマウスなどの入力装置が接続可能な入力部(31)、液晶ディスプレイなどの出力装置が接続可能な出力部(32)、第三者装置(3)外部に通信可能な通信装置(例えば通信ケーブル、LANカード、ハブ、ルータ、モデムなど)が接続可能な通信部(33)、CPU(Central Processing Unit)(34)〔キャッシュメモリなどを備えていてもよい。〕、メモリであるRAM(35)、ROM(36)、ハードディスクや光ディスクや半導体メモリなどである外部記憶装置(37)並びにこれらの入力部(31)、出力部(32)、通信部(33)、CPU(34)、RAM(35)、ROM(36)、外部記憶装置(37)間のデータのやり取りが可能なように接続するバス(38)を有している。また必要に応じて、第三者装置(3)に、CD−ROMやDVDなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。
第三者装置(3)の外部記憶装置(37)には、Nを生成するためのプログラム、gを生成するためのプログラム、検証情報を生成するためのプログラムおよびこのプログラムの処理において必要となるデータ(情報s)などが保存されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも外部記憶装置(37)等に保存しておく。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに保存される。
第三者装置(3)では、外部記憶装置(37)〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが、必要に応じてRAM(35)に読み込まれる。CPU(34)は、これらの各プログラムを実行して、各データを処理する。その結果、CPU(34)が所定の機能(N生成部、g生成部、検証情報生成部、制御部)を実現する。
[ネットワーク構成]
第2実施形態の認証システムのネットワーク構成について説明する。
図9は、第2実施形態の認証システムのネットワーク構成を示す図である。
図9に示すように、第2実施形態では、1つの証明装置(1)と、1つの検証装置(2)と、1つの第三者装置(3)とが、ネットワーク(5)を介して相互に通信可能に接続されている。第三者装置(3)は1つに限定されるものではない。しかし、複数の証明装置がある場合に、各証明装置が保持する情報(保持情報)と同一の情報(対比情報)を第三者装置に保存しておけば、各証明装置に対応する検証情報を生成可能であるから、一般的には、1つの第三者装置で十分である。
[認証]
第三者装置(3)の外部記憶装置(37)には、情報s〔対比情報〕が保存されているとする。また、予め定められた自然数νが、検証装置(2)の外部記憶装置(27)に保存されているとする。
まず、第三者装置(3)の制御部(390)は、外部記憶装置(37)から情報sを読み込み、これをRAM(35)の所定の格納領域に格納しておく〔図10参照〕。
第三者装置(3)のN生成部(340)は、素数であることが判定可能な数を除く自然数であって、素因数分解が困難な数Nを生成し、このNをRAM(35)の所定の格納領域に格納する(ステップS0t)〔図10参照〕。なお、前述のRSAモジュラスをNとする場合、Nは例えば以下のように生成される。即ち、素数の組p、qで、(p−1)/2,(q−1)/2もまた素数になるものを求め、N=p・qを演算する。このようなp、qは無限に存在して、Nは確率的アルゴリズムによって効率的に計算可能である。
第三者装置を用いてNを定めるのではなく、例えば、証明装置あるいは検証装置のプロセッサで実行されるプログラムモジュールによってNを定めることでもよい。このような方法の一例として、マルチパーティープロトコルがある(参考文献1参照)。この方法によれば、Nを定める計算に参加する装置のいずれもがNの素因数分解をできることはなく、上記の要件を充たす任意のNを生成することが可能である。
(参考文献1)
J.Algesheimer, J.Camenish and V.Shoup, "Efficient Computation Modulo a Shared Secret with Application to the Generation of Shared Safe-Prime Products", CRYPTO 2002, LNCS 2442, pp.417-432, 2002, Springer-Verlag.
また、素因数分解が困難なNとして、前述の2のべき乗に近い数、例えば2−1の形で表せるN(メルセンヌ数)を生成するようにしてもよい。そのようなNは確率的アルゴリズムによって効率的に生成することもできるし、素因数分解が困難な数の表は公知であるから、そのような表から2のべき乗に近いNを選択するようにしてもよい。
次に、第三者装置(3)のg生成部(341)は、RAM(35)からNを読み込み、N未満の正整数gを生成し、このgをRAM(35)の所定の格納領域に格納する(ステップS1t)〔図10参照〕。
次に、第三者装置(3)の検証情報生成部(342)は、RAM(35)からg、N、情報sを読み込み、上記の式(1)に従った演算を行い、この演算結果C(s)〔検証情報〕をRAM(35)の所定の格納領域に格納する(ステップS2t)〔図10参照〕。
次に、第三者装置(3)の制御部(390)の制御に従い、通信部(33)が、RAM(35)から読み込んだ(ステップS0t、S1t、S2tで得られた)N、g、検証情報C(s)を検証装置(2)に対して送信する(ステップS3t)〔図10参照〕。
次に、必要に応じて、第三者装置(3)の制御部(390)は、外部記憶装置(37)に保存される情報sを消除する(ステップS4t)。
検証装置(2)の制御部(290)の制御に従い、通信部(23)が、ステップS3tにおいて送信されたN、g、検証情報C(s)を受信し、これらN、g、検証情報C(s)を外部記憶装置(27)に保存する(ステップS3v)。
ステップS3vに続くステップS3およびS4は、第1実施形態における処理と同じであるから説明を略する。
第1実施形態におけるステップS5の処理では、検証装置(2)は、認証情報生成因子Rを証明装置(1)に送信したが、第2実施形態では、認証情報生成因子Rに加え、N、gも証明装置(1)に送信する(ステップS5’)〔図11参照〕。
第1実施形態におけるステップS6の処理では、証明装置(1)は、認証情報生成因子Rを検証装置(2)から受信したが、第2実施形態では、認証情報生成因子Rに加え、N、gも検証装置(2)から受信する(ステップS6’)〔図12参照〕。
ステップS6’に続くステップS7〜S12は、第1実施形態における処理と同じであるから説明を略する。
<第3実施形態>
次に、本発明の第3実施形態について、図15〜図20を参照しながら説明する。
第3実施形態では、第1実施形態ないし第2実施形態における計算効率の向上を図るための技術を説明する。この計算効率向上のための技術は、第1実施形態及び第2実施形態の何れにも適用可能である。しかし、第3実施形態では、説明の便宜から、一例として、第2実施形態にこの計算効率向上のための技術を適用する場合を説明する。
計算効率の向上のために、情報sを複数の情報に分割する。第3実施形態ではその一例を示すことにする。ビット列で表される情報sを、k個の分割情報s、s、…、sk−1に分割し、情報sは、k個の分割情報s、s、…、sk−1のビット列の結合として表されるとする。即ち、s=s‖s‖…‖sk−1とする。第3実施形態では、分割数kの値とi=0,1,2,…,k−1についてsのビット長は、予め、証明装置(1)、検証装置(2)、第三者装置(3)の外部記憶装置それぞれに保存されているものとする。勿論、例えば第三者装置(3)において任意にこれらを決定し、検証装置(2)、証明装置(1)へ送信するようにしてもよく、適宜に設計変更可能である。
また、効率のために、分割数kを予め定めた固定値としたり、sのビット長がsのビット長を均等割したものとする旨のプロトコルを定めておいたりしてもよい。
第3実施形態では、第2実施形態と同一の機能・処理については同一の符号を与えるなどして説明を省略する。また、以下では、単に情報sと云えば、k個の分割情報s、s、…、sk−1の総称を意味するものとする。
[証明装置]
第3実施形態における証明装置(1)は、第1実施形態で説明した証明装置と同様であるから説明を略する。
[検証装置]
第3実施形態における検証装置(2)は、第2実施形態で説明した検証装置と同様であるから説明を略する。
[第三者装置]
第3実施形態における第三者装置(3)は、第2実施形態で説明した第三者装置と同様であるから説明を略する。
[準備]
νを予め定められた自然数とする。νは、検証装置(2)の外部記憶装置(27)に保存されているとする。また、H(i,u,R)を予め定められた関数とする。例として、H(i,u,R)=uとおくこともできるし、H(i,u,R)=umod E(Eは、2νよりも大きな素数が好ましい)とおくこともできるし、その他にSHA−1などのハッシュ関数を用いることができる。また、u,Rの少なくとも一方を変数としたi毎に相違する関数をH(i,u,R)としてもよい(例えば、i=1のときにはH(i,u,R)=uとし、i=2のときにはH(i,u,R)=ui+Rとするなど)。その他、u,Rの少なくとも一方とiとに依存して関数値が定まる関数であれば、どのような関数をH(i,u,R)としてもよい。
ただし、安全性の観点からは、関数H(i,u,R)は、以下のような条件を満たす関数H(i,X)(Xは、u,Rの少なくとも一方)であることが望ましい。このような関数H(i,X)を用いる場合、k個の分割情報s、s、…、sk−1全てに対応するH(i,u,R)を正しく求められる者しか当プロトコルの検証に合格できないことが証明できるからである。
(1)j=0とする。
(2)ランダムにXを選んで、i=0,1,...,k−1について、ai+1,j+1=H(i,X)とする。
(3)j=j+1として、j>k−1でなければ(2)に戻る。
(4)j>k−1となったとき、行列(ai+1,j+1)(i=0,1,...,k−1、j=0,1,...,k−1)が、高い確率で非退化(nondegenerate)である。
ハッシュ関数や上述のH(i,u,R)=u mod Eは、この条件を満たす関数である(例えば、「H. Anton and C. Rorres. Elementary Linear Algebra with Applications. 9th ed., John Wiley & Sons, 2005」など参照)。よって、安全性の観点からは、ハッシュ関数や上述のH(i,u,R)=umod Eを用いることが望ましい。
また、前述のように、H(i,u,R)を一方向性関数とした場合には、関数値の衝突(collision)を防止できるため、検証の信頼性と安全性が向上する。
[認証]
第三者装置(3)の外部記憶装置(37)には、情報s〔対比情報〕が保存されているとする。
ステップS0tおよびS1tは、第2実施形態における処理と同じであるから説明を略する。
ステップS1tに続いて、第三者装置(3)の検証情報生成部(342)は、RAM(35)からg、N、k個の分割情報s、s、…、sk−1〔対比情報を複数に分割した第1分割情報〕を読み込み〔予め外部記憶装置(37)から読み込まれているとする。〕、分割情報s毎に、式(5)に従った演算を行い、これらの演算結果C(s)={C(s)}i=0,1,2,…,k−1〔検証情報〕をRAM(35)の所定の格納領域に格納する(ステップS2a)〔図15参照〕。ただし、ビット列sを自然数の2進数表記と同一視した。
Figure 0004555859
次に、第三者装置(3)の制御部(390)の制御に従い、通信部(33)が、RAM(35)から読み込んだ(ステップS0t、S1t、S2aで得られた)N、g、検証情報C(s)={C(s)}i=0,1,2,…,k−1を検証装置(2)に対して送信する(ステップS3a)〔図15参照〕。
ステップS4tは、第2実施形態における処理と同じであるから説明を略する。
検証装置(2)の制御部(290)の制御に従い、通信部(23)が、ステップS3aにおいて送信されたN、g、検証情報C(s)={C(s)}i=0,1,2,…,k−1を受信し、これらN、g、検証情報C(s)を外部記憶装置(27)に保存する(ステップS3va)〔図16参照〕。
ステップS3vaに続くステップS3およびS4は、第1実施形態における処理と同じであるから説明を略する。
ステップS4に続き、検証装置(2)の乱数生成部(242)は、RAM(25)からνを読み込み(予め外部記憶装置(27)から読み込まれているとする。)、高々νビット程度の大きさの乱数uを生成し、乱数uをRAM(25)の所定の格納領域に格納する(ステップS4a)〔図16参照〕。なお、所定の値を乱数uに相当する値として外部記憶装置(27)に保存しておき、この値を外部記憶装置(27)から読み込むとしてもよい。この場合には、安全性の見地から、乱数uに相当する所定の値を検証装置(2)の外部に対して秘匿しておかなければならない。
第2実施形態におけるステップS5’の処理では、認証情報生成因子R、N、gを証明装置(1)に送信したが、第3実施形態では、認証情報生成因子R、N、gに加え、乱数uも証明装置(1)に送信する(ステップS5a)〔図16参照〕。
第2実施形態におけるステップS6’の処理では、証明装置(1)は、認証情報生成因子R、N、gを検証装置(2)から受信したが、第3実施形態では、認証情報生成因子R、N、gに加え、乱数uも検証装置(2)から受信する(ステップS6a)〔図17参照〕。
第1実施形態(第2実施形態)におけるステップS7の処理では、式(3)に従って認証情報R(s)を生成したが、第3実施形態では、次の処理を行う。即ち、証明装置(1)の認証情報生成部(141)は、RAM(15)からN、k個の分割情報s、s、…、sk−1〔保持情報を複数に分割した第2分割情報〕、認証情報生成因子R、乱数uを読み込み(予め外部記憶装置(17)から読み込まれているとする。)、式(6)に従った演算を行い、この演算結果R(s)〔認証情報〕をRAM(15)の所定の格納領域に格納する(ステップS7a)〔図17参照〕。
Figure 0004555859
なお、式(6)によって算出されるR(s)は、「第2分割情報sに対応するi及び検証装置(2)から送信される何らかの情報に値が依存する情報Hと、第2分割情報sと、の積を全てのiについて合計した値を冪数とし、認証情報生成因子Rを底とし、Nを法とした冪乗剰余演算結果」の一例である。ここで、式(6)では、「検証装置(2)から送信される何らかの情報」としてu,Rの少なくとも一方を用い、「情報H」として、u,Rの少なくとも一方とiとに依存して定まる関数値H(i,u,R)を用いている。しかし、「検証装置(2)から送信される何らかの情報」として、検証装置(2)から送信されたu,R以外の情報を含んでもよい。また、「検証装置(2)から送信される何らかの情報」及びiと、「情報H」とを対応付けたテーブルを、証明装置(1)と検証装置(2)とで共有しておき、認証情報生成部(141)が、このテーブルを用いて「情報H」を決定してもよい。
ここで、式(6)の冪数のビット長は、保持情報s全体のビット長に比べて格段に短く、式(6)の演算コストは、第1実施形態の式(3)の演算コストに比べ、1/k程度である。さらに、kなどのパラメータを適切に選べば、システム全体の演算コストは、SHA−1等のハッシュ関数を用いた公知のメッセージ認証子による認証方法の演算コストよりも少なくなる。
ステップS7aに続くステップS8、S9は、第1実施形態(第2実施形態)における処理と同じであるから説明を略する。
第1実施形態(第2実施形態)におけるステップS10の処理では、式(4)に従って判定を行ったが、第3実施形態では、次の判定処理を行う。即ち、検証装置(2)の判定部(244)は、RAM(25)からN、乱数r、乱数u、認証情報生成子R、認証情報R(s)、検証情報C(s)を読み込み(予め外部記憶装置(27)から読み込まれているとする。)、式(7)に示す関係が成立するか否かの判定を行う(ステップS10a)〔図18参照〕。
Figure 0004555859
ステップS10aに続くステップS11およびS12の処理は、第1実施形態(第2実施形態)における処理と同じであるから説明を略する。
<第4実施形態>
次に、本発明の第4実施形態について、図21から図29を参照しながら説明する。
第4実施形態は、第1実施形態、第2実施形態、第3実施形態における安全性の向上を図るための技術を説明する。この安全性向上のための技術は、第1実施形態、第2実施形態及び第3実施形態の何れにも適用可能である。しかし、第4実施形態では、説明の便宜から、一例として、第3実施形態にこの安全性向上のための技術を適用する場合を説明する。
第1実施形態、第2実施形態、第3実施形態では、認証情報生成因子Rを送信した検証装置を、信頼のおける検証装置と看做していた。しかし、前述のように、検証装置が不正な方法で認証情報生成因子Rを生成する場合や、検証装置に成り済ました攻撃者の装置が本発明のシステムに介在する場合があることを否定できない。このような場合に対処するために、証明装置は、その直接の通信相手である検証装置が確かに所定の処理に基づいて認証情報生成因子Rを生成したものであることを、対話証明によって認証する。第4実施形態では、その一例として乱数rに関するゼロ知識対話証明を利用した検証装置の認証について説明する。なお、知識のゼロ知識証明の構成方法はさまざまなものが公知であり、第4実施形態に示す構成はその一例である。例えば、第4実施形態で説明するゼロ知識証明の構成に代え、楕円曲線上のスカラー倍演算を用いたものによって構成することも可能である。
なお、安全性の観点からは、ゼロ知識性の数学的証明がなされている対話証明を用いることが望ましい。これにより、乱数rの内容を傍受したいと考える攻撃者に対し、乱数rが知られないという安全性が保証できるからである。ここで「証明装置がrを保持していることを検証装置に証明する対話証明のゼロ知識性の数学的証明がなされている」とは、ある証明装置が、対話証明の規格通りに検証装置に受け答えし、これに対して検証装置が合格であると判定した場合に、その被検証装置を改造してrを出力する装置を構成できることが証明されていることである(例えば、「O. Goldreich Foundations of Cryptography, volume I. Cambridge University Press,2001」等参照)。このような証明がなされた対話証明の場合、rを知っているもののみが規格通りに受け答えできるといえる。このような対話証明の性質を知識健全性という。
このように、安全性の観点からは知識の証明はゼロ知職証明であることが望ましいが、効率のために、現時点ではゼロ知識性の数学的証明が完全になされていない手段、たとえば後述するc^を、ハッシュ関数を用いたビットコミットメントで代替することもできる。
第4実施形態では、第3実施形態と同一の機能・処理については同一の符号を与えるなどして説明を省略する。
[証明装置]
第4実施形態における証明装置(1)の外部記憶装置(17)〔あるいはROMなど〕には、認証情報を生成するためのプログラム、後述するc^を生成するためのプログラム、認証情報生成因子が検証装置において正当に生成されたことを対話証明によって認証するためのプログラムおよびこれらのプログラムの処理において必要となるデータ(情報sなど)などが保存されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも外部記憶装置(17)等に保存しておく。
第4実施形態における証明装置(1)では、外部記憶装置(17)〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが、必要に応じてRAM(15)に読み込まれる。CPU(14)は、これらの各プログラムを実行して、各データを処理する。その結果、CPU(14)が所定の機能(c^生成部、認証判定部、認証情報生成部、制御部)を実現する。
[検証装置]
第4実施形態における検証装置(2)の外部記憶装置(27)〔あるいはROMなど〕には、認証情報生成因子を生成するためのプログラム、乱数を生成するためのプログラム、後述するW、zを生成するためのプログラム、認証情報生成因子が検証装置において正当に生成されたことを対話証明によって証明するためのプログラム、証明装置から受信した情報と検証装置に保持される情報との一致を判定するためのプログラム、およびこれらのプログラムの処理において必要となるデータなどが保存されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも外部記憶装置(27)等に保存しておく。
検証装置(2)では、外部記憶装置(27)〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが、必要に応じてRAM(25)に読み込まれる。CPU(24)は、これらの各プログラムを実行して、各データを処理する。その結果、CPU(24)が所定の機能(認証情報生成因子生成部、乱数生成部、W生成部、z生成部、対話判定部、判定部、制御部)を実現する。
[第三者装置]
第4実施形態における第三者装置(3)は、第2実施形態で説明した第三者装置と同様であるから説明を略する。
[準備]
tを予め定められた自然数(但し、Nよりも小さいとする。)とする。tは、証明装置(1)の外部記憶装置(17)および検証装置(2)の外部記憶装置(27)に保存されているとする。また、第3実施形態と同様な関数H(i,u,R)を予め定めておく。例として、H(i,u,R)=uとおくこともできるし、その他にSHA−1などのハッシュ関数を用いることができる。
[認証]
第4実施形態における対話証明の処理は、第3実施形態で説明したステップS6aの処理とステップS7aの処理との間に行われる。
そこで、ステップS0t〜ステップS6a、ステップS7a〜ステップS12の説明を略し、この対話証明の処理について説明を加えることにする。
まず、ステップS6aの処理の後、証明装置(1)の制御部(190)は、外部記憶装置(17)からg、t、Nを読み込み、これをRAM(15)の所定の格納領域に格納しておく。
証明装置(1)の乱数生成部(143)は、RAM(15)からtを読み込み、0以上t未満の乱数cおよび0以上N未満のNと互いに素な乱数でξを生成し、この乱数cおよび乱数ξをRAM(15)の所定の格納領域に格納する(ステップS611)〔図21参照〕。なお、0以上2−1以下の乱数cを生成する構成であってもよい。
次に、証明装置(1)のc^生成部(142)は、RAM(15)からN、g、t、乱数c、乱数ξを読み込み、式(8)に従った演算を行い、この演算結果c^をRAM(15)の所定の格納領域に格納する(ステップS612)〔図21参照〕。
Figure 0004555859
次に、証明装置(1)の制御部(190)の制御に従い、通信部(13)が、RAM(15)から読み込んだ(ステップS612で得られた)c^を検証装置(2)に対して送信する(ステップS613)〔図21参照〕。
なお、ステップS611で得られた乱数c、乱数ξは、証明装置(1)の制御部(190)の制御によって、外部記憶装置(17)に保存される。
次に、検証装置(2)の制御部(290)の制御に従い、通信部(23)が、ステップS613において送信されたc^を受信し、このc^を外部記憶装置(27)に記憶する(ステップS614)〔図22参照〕。
次に、検証装置(2)の制御部(290)は、外部記憶装置(27)からN、gを読み込み、それぞれをRAM(25)の所定の格納領域に格納する〔図22参照〕。
次に、検証装置(2)の乱数生成部(242)は、RAM(25)からNを読み込み、0以上N未満の乱数wを生成し、この乱数wをRAM(25)の所定の格納領域に格納する(ステップS615)〔図22参照〕。なお、0以上N・23t−1以下の乱数wが生成される構成であってもよい。後述のように、検証装置(2)は、証明装置(1)にz=c・r+wを送信する(ステップS623)。0以上N・23t−1以下の乱数wが選択される場合、どのような方法でc,rが与えられても、z=c・r+wの分布と、このような範囲で生成される乱数w’の分布とが識別不能となることが証明できる。つまり、このような範囲でwが選択される場合、攻撃者がz=c・r+wからrを推測することが十分困難であることがいえ、プロトコルの安全性が確保できる。
次に、検証装置(2)のW生成部(247)は、RAM(25)からN、g、乱数wを読み込み、式(9)に従った演算を行い、この演算結果WをRAM(25)の所定の格納領域に格納する(ステップS616)〔図22参照〕。
Figure 0004555859
次に、検証装置(2)の制御部(290)の制御に従い、通信部(23)が、RAM(25)から読み込んだステップS616で得られたWを証明装置(1)に対して送信する(ステップS617)〔図22参照〕。
なお、ステップS615で得られた乱数wは、検証装置(2)の制御部(290)の制御によって、外部記憶装置(27)に保存される。
次に、証明装置(1)の制御部(190)の制御に従い、通信部(13)が、ステップS617において送信されたWを受信し、このWを外部記憶装置(17)に保存する(ステップS618)〔図23参照〕。
次に、証明装置(1)の制御部(190)は、外部記憶装置(17)から乱数cおよび乱数ξを読み込み、それぞれをRAM(15)の所定の格納領域に格納する。そして、証明装置(1)の制御部(190)の制御に従い、通信部(13)が、RAM(15)から読み込んだ乱数cおよび乱数ξを検証装置(2)に対して送信する(ステップS619)〔図23参照〕。
次に、検証装置(2)の制御部(290)の制御に従い、通信部(23)が、ステップS619において送信された乱数cおよび乱数ξを受信し、この乱数cおよび乱数ξを外部記憶装置(27)に保存する(ステップS620)〔図24参照〕。
次に、検証装置(2)の制御部(290)は、外部記憶装置(27)から乱数c、乱数ξ、g、t、N、乱数r、乱数w、c^を読み込み、それぞれをRAM(25)の所定の格納領域に格納する〔図24参照〕。
次に、検証装置(2)の対話判定部(250)は、RAM(25)からg、c、t、N、乱数ξ、c^を読み込み、式(8)に示す関係が成立するか否かの判定を行う(ステップS621)〔図24参照〕。この判定結果が関係不成立の場合には、検証装置(2)の制御部(290)の制御の下、以下の処理を実行せずに終了する(ステップS622)。この判定結果が関係成立の場合には、検証装置(2)の制御部(290)の制御の下、続くステップS623が実行される。
検証装置(2)のz生成部(248)は、RAM(25)から乱数c、乱数r、乱数wを読み込み、式(10)に従った演算を行い、この演算結果zをRAM(25)の所定の格納領域に格納する(ステップS623)〔図24参照〕。
Figure 0004555859
次に、検証装置(2)の制御部(290)の制御に従い、通信部(23)が、RAM(25)から読み込んだステップS623で得られたzを証明装置(1)に対して送信する(ステップS624)〔図24参照〕。
次に、証明装置(1)の制御部(190)の制御に従い、通信部(13)が、ステップS624において送信されたzを受信し、このzを外部記憶装置(17)に保存する(ステップS625)〔図25参照〕。
次に、証明装置(1)の制御部(190)は、外部記憶装置(17)から、g、N、認証情報生成因子R、z、乱数c、乱数u、情報s、Wを読み込み、それぞれをRAM(15)の所定の格納領域に格納する〔図25参照〕。
次に、証明装置(1)の認証判定部(145)は、RAM(15)からg、z、N、乱数c、W、認証情報生成因子Rを読み込み、式(11)に示す関係が成立するか否かの判定を行う(ステップS626)〔図25参照〕。この判定結果が関係不成立の場合には、証明装置(1)の制御部(190)の制御の下、以下の処理を実行せずに終了する(ステップS627)。この判定結果が関係成立の場合には、証明装置(1)の制御部(190)の制御の下、続くステップS7aが実行される。ステップS7a以降の処理は第2実施形態におけるのと同じ処理である。
Figure 0004555859
なお、ステップS611からS612,S618,S619,S625,S626の各処理を実行する部分が「対話証明部」に相当する。また、ステップS614からS617,S620からS624までの各処理を実行する部分が「対話検証部」に相当する。
<第5実施形態>
次に、本発明の第5実施形態について、図30〜図37を参照しながら説明する。
第5実施形態は、第1実施形態ないし第2実施形態の安全性向上のために、本発明独自の対話証明手法を適用したものである。ここでは説明の便宜から、第2実施形態に本発明独自の対話証明手法を適用した形態を説明する。
第5実施形態では、第2実施形態および第4実施形態と同一の機能・処理については同一の符号を与えるなどして説明を省略する。
[証明装置]
第5実施形態における証明装置(1)の外部記憶装置(17)〔あるいはROMなど〕には、認証情報を生成するためのプログラム、後述するAを生成するためのプログラム、乱数を生成するためのプログラム、検証装置が第1任意情報を正しく用いて認証情報生成因子を生成したかを判定するためのプログラムおよびこれらのプログラムの処理において必要となるデータ(情報sなど)などが保存されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも外部記憶装置(17)等に保存しておく。
証明装置(1)では、外部記憶装置(17)〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが、必要に応じてRAM(15)に読み込まれる。CPU(14)は、これらの各プログラムを実行して、各データを処理する。その結果、CPU(14)が所定の機能(A生成部、乱数生成部、第1判定部、認証情報生成部、制御部)を実現する。
[検証装置]
第5実施形態における検証装置(2)の外部記憶装置(27)〔あるいはROMなど〕には、認証情報生成因子を生成するためのプログラム、乱数を生成するためのプログラム、後述するBを生成するためのプログラム、証明装置が正しく前記のAを生成したかを判定するためのプログラム、証明装置から受信した情報と検証装置に保持される情報との一致を判定するためのプログラムおよびこれらのプログラムの処理において必要となるデータなどが保存されている。その他、これらのプログラムに基づく処理を制御するための制御プログラムも外部記憶装置(27)等に保存しておく。
検証装置(2)では、外部記憶装置(27)〔あるいはROMなど〕に記憶された各プログラムとこの各プログラムの処理に必要なデータが、必要に応じてRAM(25)に読み込まれる。CPU(24)は、これらの各プログラムを実行して、各データを処理する。その結果、CPU(24)が所定の機能(認証情報生成因子生成部、B生成部、乱数生成部、第2判定部、判定部、制御部)を実現する。
[第三者装置]
第5実施形態における第三者装置(3)は、第2実施形態で説明した第三者装置と同様であるから説明を略する。
[準備]
νを予め定められた自然数とする。νは、証明装置(1)の外部記憶装置(17)および検証装置(2)の外部記憶装置(27)に保存されているとする。
[認証]
ステップS0tからステップS3vまでの処理は、第2実施形態における処理と同じであるから説明を略する。
ステップS3vに続いて、次のような処理が順次行われる。
まず、検証装置(2)の制御部(290)は、外部記憶装置(27)からNおよびgを読み込み、それぞれをRAM(25)の所定の格納領域に格納する。そして、検証装置(2)の制御部(290)の制御に従い、通信部(23)が、RAM(25)から読み込んだNおよびgを証明装置(1)に対して送信する(ステップS700)〔図30参照〕。
次に、証明装置(1)の制御部(190)の制御に従い、通信部(13)が、ステップS700において送信されたNおよびgを受信し、このNおよびgを外部記憶装置(17)に保存する(ステップS701)〔図31参照〕。
次に、証明装置(1)の制御部(190)は、外部記憶装置(17)からN、g、νを読み込み、それぞれをRAM(15)の所定の格納領域に格納する〔図31参照〕。
次に、証明装置(1)の乱数生成部(143)は、RAM(15)からνを読み込み、高々22ν程度の大きさの乱数aを生成し、この乱数aをRAM(15)の所定の格納領域に格納する(ステップS702)〔図31参照〕。なお、乱数生成部(143)が、0≦a≦N・2ν−1の範囲から乱数aを生成してもよい。前述のように、このような範囲から乱数aが選択される構成が、安全性と演算コストの両立という観点から望ましいからである。また、必ずしもaは乱数である必要はなく、値が任意に選択されるものであればよい。
次に、証明装置(1)のA生成部(148)は、RAM(15)からN、g、乱数aを読み込み、式(12)に従った演算を行い、この演算結果AをRAM(15)の所定の格納領域に格納する(ステップS703)〔図31参照〕。
Figure 0004555859
次に、証明装置(1)の制御部(190)の制御に従い、通信部(13)が、RAM(15)から読み込んだステップS703で得られたAを検証装置(2)に対して送信する(ステップS704)〔図31参照〕。
なお、ステップS703、S704で得られた乱数a、Aは、証明装置(1)の制御部(190)の制御によって、外部記憶装置(17)に保存される。
次に、検証装置(2)の制御部(290)の制御に従い、通信部(23)が、ステップS704において送信されたAを受信し、このAを外部記憶装置(27)に保存する(ステップS705)〔図32参照〕。
次に、検証装置(2)の制御部(290)は、外部記憶装置(27)からN、g、ν、Aを読み込み、それぞれをRAM(25)の所定の格納領域に格納する〔図32参照〕。
次に、検証装置(2)の乱数生成部(242)は、RAM(25)からνを読み込み、高々22ν程度の大きさの乱数rを生成し、この乱数rをRAM(25)の所定の格納領域に格納する(ステップS706)〔図32参照〕。なお、乱数生成部(242)が、0≦r≦N・2ν−1の範囲から乱数rを生成してもよい。前述のように、このような範囲から乱数rが選択される構成が、安全性と演算コストの両立という観点から望ましいからである。また、必ずしもrは乱数である必要はなく、値が任意に選択されるものであればよい。
次に、検証装置(2)の認証情報生成因子生成部(243)は、RAM(25)からN、g、乱数rを読み込み、上記の式(2)に従った演算を行い、この演算結果R〔認証情報生成因子〕をRAM(25)の所定の格納領域に格納する(ステップS707)〔図32参照〕。
次に、検証装置(2)のB生成部(249)は、RAM(25)からN、乱数r、Aを読み込み、式(13)に従った演算を行い、この演算結果BをRAM(25)の所定の格納領域に格納する(ステップS708)〔図32参照〕。
Figure 0004555859
次に、検証装置(2)の制御部(290)の制御に従い、通信部(23)が、RAM(25)から読み込んだステップS707、S708で得られた、認証情報生成因子R、Bを証明装置(1)に対して送信する(ステップS709)〔図32参照〕。
なお、ステップS706、S707、S708で得られた乱数r、認証情報生成因子R、Bは、検証装置(2)の制御部(290)の制御によって、外部記憶装置(27)に保存される。
次に、証明装置(1)の制御部(190)の制御に従い、通信部(13)が、ステップS709において送信された認証情報生成因子R、Bを受信し、この認証情報生成因子R、Bを外部記憶装置(17)に保存する(ステップS710)〔図33参照〕。
次に、証明装置(1)の制御部(190)は、外部記憶装置(17)からB、認証情報生成因子R、乱数a、情報s、Nを読み込み、それぞれをRAM(15)の所定の格納領域に格納する。
次に、証明装置(1)の第1判定部(160)は、RAM(15)からB、認証情報生成因子R、乱数a、Nを読み込み、式(14)に示す関係が成立するか否かの判定を行う(ステップS711)〔図33参照〕。この判定結果が関係不成立の場合には、証明装置(1)の制御部(190)の制御の下、以下の処理を実行せずに終了する(ステップS712)。この判定結果が関係成立の場合には、証明装置(1)の制御部(190)の制御の下、続くステップS713が実行される。
Figure 0004555859
次に、証明装置(1)の認証情報生成部(141)は、RAM(15)からN、情報s、認証情報生成因子Rを読み込み、上記の式(3)に従った演算を行い、この演算結果R(s)〔認証情報〕をRAM(15)の所定の格納領域に格納する(ステップS713)〔図33参照〕。
次に、証明装置(1)の制御部(190)の制御に従い、通信部(13)が、RAM(15)から読み込んだステップS713で得られた認証情報R(s)およびステップS702で得られた乱数aを検証装置(2)に対して送信する(ステップS714)〔図33参照〕。
次に、検証装置(2)の制御部(290)の制御に従い、通信部(23)が、ステップS714において送信された認証情報R(s)および乱数aを受信し、この認証情報R(s)および乱数aを外部記憶装置(27)に保存する(ステップS715)〔図34参照〕。
次に、検証装置(2)の制御部(290)は、外部記憶装置(27)からN、乱数r、認証情報R(s)、検証情報C(s)、A、乱数a、gを読み込み、それぞれをRAM(25)の所定の格納領域に格納する〔図34参照〕。
次に、検証装置(2)の第2判定部(260)は、RAM(25)からA、g、乱数a、Nを読み込み、式(15)に示す関係が成立するか否かの判定を行う(ステップS716)〔図34参照〕。この判定結果が関係不成立の場合には、検証装置(2)の制御部(290)の制御の下、以下の処理を実行せずに終了する(ステップS717)。この判定結果が関係成立の場合には、検証装置(2)の制御部(290)の制御の下、続くステップS10以降の処理が実行される。ステップS10以降の処理は既に説明したので略する。なお、判定結果が関係不成立の場合に、検証装置(2)が、ステップS716とステップS10の何れの処理で関係不成立となったのかを、証明装置に送信しない構成が望ましい。この情報が送信されるプロトコルでは安全性が保てないからである。
Figure 0004555859
なお、本形態のステップS702からS704,S710,S711の各処理を実行する部分が「対話証明部」に相当する。また、本形態のステップS705からS709,S715,S716の各処理を実行する部分が「対話検証部」に相当する。
<第6実施形態>
次に、本発明の第6実施形態について、図38から図44を参照しながら説明する。
第6実施形態は、第5実施形態における計算効率の向上を図る形態である。計算効率の向上を図るための手法は、第3実施形態と同様である。ここでは説明の便宜から、第2実施形態に第5実施形態で説明した本発明独自の対話証明手法を適用し、さらに、第3実施形態で説明した計算効率の向上を図るための手法を適用する構成を説明する。
第6実施形態では、第3実施形態および第5実施形態と同一の機能・処理については同一の符号を与えるなどして説明を省略する。また、以下では、単に情報sと云えば、k個の分割情報s、s、…、sk−1の総称を意味するものとする。
[証明装置]
第6実施形態における証明装置(1)は、第5実施形態で説明した証明装置と同様であるから説明を略する。
[検証装置]
第6実施形態における検証装置(2)は、第5実施形態で説明した検証装置と同様であるから説明を略する。
[第三者装置]
第6実施形態における第三者装置(3)は、第2実施形態で説明した第三者装置と同様であるから説明を略する。
[準備]
νを予め定められた自然数とする。νは、証明装置(1)の外部記憶装置(17)および検証装置(2)の外部記憶装置(27)に保存されているとする。
[認証]
ステップS0tからステップS3vaまでの処理は、第3実施形態における処理と同じであるから説明を略する。
ステップS3vaに続いて、次のような処理が順次行われる。
まず、検証装置(2)の制御部(290)は、外部記憶装置(27)からν、N、gを読み込み、それぞれをRAM(25)の所定の格納領域に格納する〔図38参照〕。
次に、検証装置(2)の乱数生成部(242)は、RAM(25)からνを読み込み、高々νビット程度の大きさの乱数uを生成し、この乱数uをRAM(25)の所定の格納領域に格納する(ステップS800)〔図38参照〕。
次に、検証装置(2)の制御部(290)の制御に従い、通信部(23)が、RAM(25)から読み込んだ乱数u、N、gを証明装置(1)に対して送信する(ステップS801)〔図38参照〕。
なお、ステップS800で得られた乱数uは、検証装置(2)の制御部(290)の制御によって、外部記憶装置(27)に保存される。
次に、証明装置(1)の制御部(190)の制御に従い、通信部(13)が、ステップS801において送信された乱数u、N、gを受信し、この乱数u、N、gを外部記憶装置(17)に保存する(ステップS802)〔図39参照〕。
ステップS802に続いてステップS702からS712が処理されるが、第5実施形態において説明したとおりであるから、説明を略する。
ステップS711に続いて(つまり、ステップS712の終了処理をしない場合である。)、次のステップS803が処理される。即ち、証明装置(1)の認証情報生成部(141)は、RAM(15)からN、情報s、認証情報生成因子R、乱数u、A、Bを読み込み(予め外部記憶装置(17)から読み込まれているとする。)、式(16)に従った演算を行い、この演算結果R(s)〔認証情報〕をRAM(15)の所定の格納領域に格納する(ステップS803)〔図40参照〕。
Figure 0004555859
ステップS803に続き、ステップS8、S9、S716が順次処理されるが、第5実施形態において説明したとおりであるから、説明を略する。
ステップS716に続いて(つまり、ステップS717の終了処理をしない場合である。)、次のステップS804が処理される。即ち、検証装置(2)の判定部(244)は、RAM(25)からN、乱数r、乱数u、認証情報生成因子R、認証情報R(s)、検証情報C(s)、A、Bを読み込み(予め外部記憶装置(27)から読み込まれているとする。)、式(17)に示す関係が成立するか否かの判定を行う(ステップS804)〔図41参照〕。
Figure 0004555859
ステップS804に続くステップS11およびS12の処理は、第3実施形態における処理と同じであるから説明を略する。
本発明である認証システム・方法は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
例えば、各実施形態では、「可換な半群」として、定数Nを法とした剰余環の乗法についての巡回群を用いた。しかし、本発明で用いることが可能な「可換な半群」はこれに限定されない。例えば、多項式を法とした剰余環の乗法についての巡回群を「可換な半群」として用いてもよい。
また、各実施形態では、可換な半群で定義された冪乗演算の底(例えばg)を、自然数などの数値とした。しかし、この冪乗演算の底を多項式としてもよい。
また、各実施形態では、Nは、素数であることが判定可能な数を除く自然数であって、素因数分解が困難な数であることが望ましいと説明した。しかし、これ以外のNを用いてもよい。例えば、3つ以上の素数の積からなる合成数をNとしてもよい。また、例えば、攻撃者の存在を無視できる用途に本発明を適用するのであれば、安全性の観点からは、Nはどのような値であってもかまわない。すなわち、このような用途に本発明を適用するのであれば、「可換な半群」は、必ずしも、その半群で定義された有限集合の位数の算出が困難なものである必要はない。
また、第2実施形態、第3実施形態及び第6実施形態において関数H(i,u,R)を用いない構成としてもよい。この場合の各処理は、例えば、H(i,u,R)=1とおいたものとなる。
各実施形態で用いた乱数の代わりにその他の任意の数を用いてもよい。また、各実施形態で、外部記憶装置に格納されると説明したデータが、RAMに格納されてもよいし、RAMに格納されると説明したデータが、外部記憶装置に格納されてもよい。
その他、認証情報の生成方法や判定の方法は適宜に変更可能である。また、上記認証システム・方法において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
また、上記証明装置、検証装置、第三者装置における処理機能を、プロセッサを中心に構成されるコンピュータによって実現する場合、証明装置、検証装置、第三者装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記証明装置、検証装置、第三者装置における処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、プロセッサが、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、証明装置、検証装置、第三者装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
本発明は、特定ないし不特定の証明装置が所定の情報を保持していることの認証に有用である。本発明は、各分野に汎用性のある基盤的技術に関するものであるが、本発明の具体的な利用分野としては、例えば、ファイル流通又はネットワークストレージサービスでの監視や相手認証、高品質デジタルメディア配信やデータベースの整合性確認などを例示できる。

Claims (35)

  1. 認証システムであって、
    保持情報が格納された証明装置と、
    上記証明装置に通信可能に接続され、上記保持情報が対比情報と同一であることを検証する検証装置と、を含み、
    上記検証装置は、
    上記対比情報の内容に依存する内容を有し、上記対比情報の情報量に依存しない情報量を有する検証情報と、任意の情報である第1任意情報と、を記憶する第1記憶部と、
    上記証明装置に認証情報を生成させるための認証情報生成因子を、上記第1記憶部に記憶された上記第1任意情報を用いて生成する認証情報生成因子生成部と、
    上記認証情報生成因子生成部が生成した上記認証情報生成因子を上記証明装置に送信する第1送信部と、
    上記証明装置が送信した上記認証情報を受信する第1受信部と、
    上記第1受信部が受信した上記認証情報と、上記第1記憶部に記憶された上記検証情報及び上記第1任意情報との間に、所定の関係が成立するか否かを判定する判定部と、を含み、
    上記証明装置は、
    上記保持情報を記憶する第2記憶部と、
    上記第1送信部が送信した上記認証情報生成因子を受信する第2受信部と、
    上記第2受信部が受信した上記認証情報生成因子と、上記第2記憶部に記憶された上記保持情報とを用い、上記認証情報生成因子と上記保持情報との内容に依存する内容を有し、上記保持情報の情報量に依存しない情報量を有する上記認証情報を生成する認証情報生成部と、
    上記認証情報生成部によって生成された上記認証情報を上記検証装置に送信する第2送信部と、を含む。
  2. 請求項1に記載の認証システムであって、
    上記検証情報は、
    可換な半群をなす演算が定義された有限集合の元を底とし、上記対比情報を冪数として、当該半群で定義された冪乗を行った演算結果であり、
    上記認証情報生成因子は、
    上記有限集合の元を底とし、上記第1任意情報を冪数として、上記半群で定義された冪乗を行った演算結果であり、
    上記認証情報は、
    上記認証情報生成因子を底とし、上記保持情報を冪数として、上記半群で定義された冪乗を行った演算結果であり、
    上記判定部は、
    上記検証情報を底とし、上記第1任意情報を冪数として、上記半群で定義された冪乗を行った演算結果と、上記認証情報と、が等しいか否かを判定する。
  3. 請求項2に記載の認証システムであって、
    上記半群は、
    上記有限集合の位数の算出が困難なものである。
  4. 請求項2に記載の認証システムであって、
    上記検証情報は、
    定数Nを法とし、N未満の値gを底とし、上記対比情報s’を冪数とした冪乗剰余演算結果C(s’)であり、
    上記認証情報生成因子は、
    上記Nを法とし、上記値gを底とし、上記第1任意情報rを冪数とした冪乗剰余演算結果Rであり、
    上記認証情報は、
    上記Nを法とし、上記認証情報生成因子Rを底とし、上記保持情報sを冪数とした冪乗剰余演算結果R(s)であり、
    上記判定部は、
    上記Nを法とし、上記検証情報C(s’)を底とし、上記第1任意情報rを冪数とした冪乗剰余演算結果と、上記認証情報R(s)と、が等しいか否かを判定する。
  5. 請求項4に記載の認証システムであって、
    上記定数Nは、
    素数であることが判定可能な数を除く自然数であって、素因数分解困難な数である。
  6. 請求項4に記載の認証システムであって、
    上記定数Nは、
    3つ以上の素数の積からなる合成数である。
  7. 請求項5に記載の認証システムであって、
    上記第1任意情報rは、
    νを所定の自然数とした場合における、0≦r≦N・2ν−1の範囲から任意に選択される値である。
  8. 請求項1に記載の認証システムであって、
    上記検証情報は、
    上記対比情報を複数に分割した第1分割情報ごとに、それぞれの当該第1分割情報を用いて生成される情報であり、
    上記認証情報生成部は、
    上記第2受信部が受信した上記認証情報生成因子と、上記第2記憶部に記憶された上記保持情報を複数に分割した第2分割情報の全てと、を用いて、上記認証情報を生成する。
  9. 請求項8に記載の認証システムであって、
    上記検証情報は、
    可換な半群をなす演算が定義された有限集合の元を底とし、上記第1分割情報を冪数として、当該半群で定義された冪乗を行った演算結果であり、
    上記認証情報生成因子は、
    上記有限集合の元を底とし、上記第1任意情報を冪数として、上記半群で定義された冪乗を行った演算結果であり、
    上記認証情報は、
    上記認証情報生成因子を底とし、上記第2分割情報の全てを用いて算出した値であって上記保持情報よりも情報量が少ないものを冪数として、上記半群で定義された冪乗を行った演算結果であり、
    上記判定部は、
    上記検証情報の全てを用いて算出した値を底とし、上記第1任意情報を冪数として、上記半群で定義された冪乗を行った演算結果と、上記認証情報と、が等しいか否かを判定する。
  10. 請求項9に記載の認証システムであって、
    上記認証情報は、
    各上記第2分割情報の上記保持情報内のビット位置に対応する事前準備困難な情報と、上記第2分割情報の全てとを用いて算出した値であって上記保持情報よりも情報量が少ないものを冪数とし、上記認証情報生成因子を底として、上記半群で定義された冪乗を行った演算結果である。
  11. 請求項9に記載の認証システムであって、
    上記半群は、
    上記有限集合の位数の算出が困難な半群である。
  12. 請求項9に記載の認証システムであって、
    上記検証情報は、
    定数Nを法とし、N未満の値gを底とし、上記第1分割情報s’を冪数とした冪乗剰余演算結果C(s’)であり、
    上記認証情報生成因子は、
    上記Nを法とし、上記値gを底とし、上記第1任意情報rを冪数とした冪乗剰余演算結果Rであり、
    上記認証情報は、
    上記第2分割情報sに対応するi及び上記検証装置から送信される何らかの情報に値が依存する情報Hと、上記第2分割情報sと、の積を全てのiについて合計した値を冪数とし、上記認証情報生成因子Rを底とし、上記Nを法とした冪乗剰余演算結果R(s)であり、
    上記判定部は、
    全てのiに対応する各上記検証情報C(s’)をそれらにそれぞれ対応する上記情報Hによって冪乗した各値の積を底とし、上記第1任意情報rを冪数とし、上記Nを法とした冪乗剰余演算結果と、上記認証情報R(s)と、が等しいか否かを判定する。
  13. 請求項12に記載の認証システムであって、
    上記定数Nは、素数であることが判定可能な数を除く自然数であって、素因数分解困難な数である。
  14. 請求項12に記載の認証システムであって、
    上記情報Hは、
    上記第2分割情報sに対応するiと上記検証装置から送信される何らかの情報とに値が依存する一方向性関数値である。
  15. 請求項1に記載の認証システムであって、
    上記検証装置は、
    上記証明装置の上記第2受信部が受信した上記認証情報生成因子が、上記第1記憶部に記憶された上記第1任意情報を用いて生成されたことを、上記証明装置との対話証明によって、上記証明装置に証明する対話証明部を含み、
    上記証明装置は、
    上記第2受信部が受信した上記認証情報生成因子が、上記検証装置の上記第1記憶部に記憶された上記第1任意情報を用いて生成されたことを、上記検証装置との対話証明によって検証する対話検証部を含み、
    上記証明装置の第2送信部は、
    上記第2受信部が受信した上記認証情報生成因子が、上記検証装置の上記第1記憶部に記憶された上記第1任意情報を用いて生成されたことを、上記対話検証部が確認できた場合に、上記認証情報生成部によって生成された上記認証情報を、その検証装置に送信する。
  16. 請求項1に記載の認証システムであって、
    上記証明装置は、
    可換な半群をなす演算が定義された有限集合の元gを底とし、任意の情報である第2任意情報aを冪数として、上記半群で定義された冪乗を行った演算値Aを生成するA生成部を含み、
    上記証明装置の第2送信部は、
    上記演算値Aを上記検証装置に送信し、
    上記検証装置の第1受信部は、
    上記証明装置が送信した上記演算値Aを受信し、
    上記検証装置の上記認証情報生成因子生成部は、
    上記有限集合の元gを底とし、上記第1任意情報rを冪数として、上記半群で定義された冪乗を行って上記認証情報生成因子Rを生成し、
    上記検証装置は、
    上記演算値Aを底とし、上記第1任意情報rを冪数として、上記半群で定義された冪乗を行って演算値Bを生成するB生成部を含み、
    上記検証装置の第1送信部は、
    上記認証情報生成因子Rと上記演算値Bとを上記証明装置に送信し、
    上記証明装置の上記第2受信部は、
    上記検証装置から送信された上記認証情報生成因子Rと上記演算値Bとを受信し、
    上記証明装置は、
    上記第2受信部が受信した上記認証情報生成因子Rを底とし、上記第2任意情報aを冪数として、上記半群で定義された冪乗を行った演算結果と、上記演算値Bと、が等しいか否かを判定する第1判定部を含み、
    上記証明装置の第2送信部は、
    上記第2受信部が受信した上記認証情報生成因子Rを底とし、上記第2任意情報aを冪数として、上記半群で定義された冪乗を行った演算結果と、上記演算値Bと、が等しいことを、上記第1判定部が確認できた場合に、上記認証情報生成部によって生成された上記認証情報を、上記検証装置に送信する。
  17. 請求項16に記載の認証システムであって、
    上記証明装置の第2送信部は、
    上記第2受信部が受信した上記認証情報生成因子Rを底とし、上記第2任意情報aを冪数として、上記半群で定義された冪乗を行った演算結果と、上記演算値Bと、が等しいことを、上記第1判定部が確認できた場合に、さらに、上記第2任意情報aを、上記検証装置に送信し、
    上記検証装置の第1受信部は、
    上記証明装置から送信された上記第2任意情報aを受信し、
    上記検証装置は、
    上記有限集合の元gを底とし、上記第2任意情報aを冪数として、上記半群で定義された冪乗を行った演算結果と、上記演算値Aと、が等しいか否かを判定する第2判定部を含む。
  18. 請求項16に記載の認証システムであって、
    上記半群は、
    上記有限集合の位数の算出が困難な半群である。
  19. 請求項16に記載の認証システムであって、
    上記演算値Aは、
    定数Nを法とし、N未満の値gを底とし、任意の情報である第2任意情報aを冪数とした冪乗剰余演算結果であり、
    上記認証情報生成因子Rは、
    上記Nを法とし、上記値gを底とし、上記第1任意情報rを冪数とした冪乗剰余演算結果であり、
    上記演算値Bは、
    上記Nを法とし、上記演算値Aを底とし、上記第1任意情報rを冪数とした冪乗剰余演算結果であり、
    上記第2受信部が受信した上記認証情報生成因子Rを底とし、上記第2任意情報aを冪数として、上記半群で定義された冪乗を行った演算結果は、
    上記Nを法とし、上記認証情報生成因子Rを底とし、上記第2任意情報aを冪数とした冪乗剰余演算結果である。
  20. 請求項19に記載の認証システムであって、
    上記有限集合の元gを底とし、上記第2任意情報aを冪数として、上記半群で定義された冪乗を行った演算結果は、
    上記Nを法とし、上記有限集合の元gを底とし、上記第2任意情報aを冪数とした冪乗剰余演算結果である。
  21. 請求項19に記載の認証システムであって、
    上記定数Nは、
    素数であることが判定可能な数を除く自然数であって、素因数分解困難な数である。
  22. 請求項19に記載の認証システムであって、
    上記第2任意情報aは、
    νを所定の自然数とした場合における、0≦a≦N・2ν−1の範囲から任意に選択される値である。
  23. 格納している保持情報が対比情報と同一であることを検証装置に証明する証明装置であって、
    上記保持情報を記憶する記憶部と、
    上記検証装置が送信した認証情報生成因子を受信する受信部と、
    上記受信部が受信した上記認証情報生成因子と、上記記憶部に記憶された上記保持情報と、を用い、上記認証情報生成因子及び上記保持情報の内容に依存する内容を有し、上記保持情報の情報量に依存しない情報量を有する上記認証情報を生成する認証情報生成部と、
    上記認証情報生成部によって生成された上記認証情報を上記検証装置に送信する送信部と、を含む。
  24. 証明装置に格納された保持情報が対比情報と同一であることを検証する検証装置であって、
    上記対比情報の内容に依存する内容を有し、上記対比情報の情報量に依存しない情報量を有する検証情報と、任意の情報である任意情報と、を記憶する記憶部と、
    上記証明装置に認証情報を生成させるための認証情報生成因子を、上記記憶部に記憶された上記任意情報を用いて生成する認証情報生成因子生成部と、
    上記認証情報生成因子生成部が生成した上記認証情報生成因子を上記証明装置に送信する送信部と、
    上記証明装置が送信した上記認証情報を受信する受信部と、
    上記受信部が受信した上記認証情報と、上記記憶部に記憶された上記検証情報及び上記任意情報との間に、所定の関係が成立するか否かを判定する判定部と、を含む。
  25. 証明装置の記憶部に格納された保持情報が対比情報と同一であることを検証装置が検証する認証方法であって、
    上記対比情報の内容に依存する内容を有し、上記対比情報の情報量に依存しない情報量を有する検証情報を、上記検証装置の記憶部に記憶する過程と、
    任意の情報である任意情報を、上記検証装置の記憶部に記憶する過程と、
    上記検証装置の認証情報生成因子生成部が、上記証明装置に認証情報を生成させるための認証情報生成因子を、上記検証装置の記憶部に記憶された上記任意情報を用いて生成する過程と、
    上記検証装置の送信部が、上記認証情報生成因子を上記証明装置に送信する過程と、
    上記証明装置の受信部が、上記認証情報生成因子を受信する過程と、
    上記証明装置の認証情報生成部が、上記認証情報生成因子と、上記証明装置の記憶部に記憶された上記保持情報とを用い、上記認証情報生成因子と上記保持情報との内容に依存する内容を有し、上記保持情報の情報量に依存しない情報量を有する上記認証情報を生成する過程と、
    上記証明装置の送信部が、上記認証情報を上記検証装置に送信する過程と、
    上記検証装置の受信部が、上記認証情報を受信する過程と、
    上記検証装置の判定部が、上記認証情報と、上記検証装置の記憶部に記憶された上記検証情報及び上記任意情報との間に、所定の関係が成立するか否かを判定する過程と、を含む。
  26. 請求項25に記載の認証方法であって、
    上記検証情報は、
    上記対比情報を複数に分割した第1分割情報ごとに、それぞれの当該第1分割情報を用いて生成される情報であり、
    上記認証情報は、
    上記証明装置の受信部が受信した上記認証情報生成因子と、上記証明装置の記憶部に記憶された上記保持情報を複数に分割した第2分割情報の全てと、を用いて生成される。
  27. 請求項25に記載の認証方法であって、
    上記任意情報を上記検証装置の記憶部に記憶する過程から、上記認証情報を上記検証装置に送信する過程までの間に行われる、
    (a)上記証明装置の受信部が受信した上記認証情報生成因子が上記検証装置の記憶部に記憶された上記任意情報を用いて生成されたことを、上記検証装置の対話証明部が、上記証明装置との対話証明によって上記証明装置に証明する過程と、
    (b)上記証明装置の受信部が受信した上記認証情報生成因子が、上記検証装置の記憶部に記憶された上記任意情報を用いて生成されたことを、上記証明装置の対話検証部が、上記検証装置との対話証明によって検証する過程と、を含み、
    上記証明装置の受信部が受信した上記認証情報生成因子が、上記検証装置の記憶部に記憶された上記任意情報を用いて生成されたことを、上記証明装置の対話検証部が確認できた場合に行われる、
    (c)上記証明装置の送信部が、上記認証情報生成部によって生成された上記認証情報を、上記検証装置に送信する過程、を含む。
  28. 少なくとも、
    保持情報を記憶部に記憶させる過程と、
    検証装置の送信部から送信された認証情報生成因子を受信部に受信させる過程と、
    上記認証情報生成因子及び上記保持情報の内容に依存する内容を有し、上記保持情報の情報量に依存しない情報量を有する上記認証情報を生成する過程と、
    送信部によって、上記認証情報を上記検証装置に送信させる過程と、
    をプロセッサに実行させるための証明装置用プログラム。
  29. 請求項28記載の証明装置用プログラムであって、
    上記保持情報が複数に分割された分割情報の全てを上記記憶部に記憶させる過程を、さらに、プロセッサに実行させるためのものであり、
    上記認証情報を生成する過程は、
    上記受信部が受信した上記認証情報生成因子と、上記記憶部に記憶された上記分割情報の全てと、を用いて、上記認証情報を生成する過程である。
  30. 請求項28記載の証明装置用プログラムであって、
    上記受信部が受信した上記認証情報生成因子が、検証装置の記憶部に記憶された任意情報を用いて生成されたことを、上記検証装置との対話証明によって検証する過程と、
    上記受信部が受信した上記認証情報生成因子が上記検証装置の上記記憶部に記憶された上記任意情報を用いて生成されたことが確認された場合に、上記認証情報を、上記送信部によって、上記検証装置に送信させる過程とを、
    さらに、プロセッサに実行させるためのものである。
  31. 少なくとも、
    対比情報の内容に依存する内容を有し、当該対比情報の情報量に依存しない情報量を有する検証情報と、任意の情報である任意情報と、を記憶部に記憶させる過程と、
    証明装置に認証情報を生成させるための認証情報生成因子を、上記記憶部に記憶された上記任意情報を用いて生成する過程と、
    送信部によって、上記認証情報生成因子を上記証明装置に送信させる過程と、
    上記証明装置が送信した上記認証情報を受信部に受信させる過程と、
    上記受信部が受信した上記認証情報と、上記記憶部に記憶された上記検証情報及び上記任意情報との間に、所定の関係が成立するか否かを判定する過程と、
    をプロセッサに実行させるための検証装置用プログラム。
  32. 請求項31記載の検証装置用プログラムであって、
    上記検証情報は、
    上記対比情報を複数に分割した分割情報ごとに、それぞれの当該分割情報を用いて生成される情報である。
  33. 請求項31記載の検証装置用プログラムであって、
    上記証明装置の受信部が受信した上記認証情報生成因子が、上記記憶部に記憶された上記任意情報を用いて生成されたことを、上記証明装置との対話証明によって、上記証明装置に証明する過程を、
    さらに、プロセッサに実行させるためのものである。
  34. 請求項28記載の証明装置用プログラムを格納したコンピュータ読み取り可能な記録媒体。
  35. 請求項31記載の検証装置用プログラムを格納したコンピュータ読み取り可能な記録媒体。
JP2007507586A 2005-07-13 2006-07-13 認証システム、認証方法、証明装置、検証装置、それらのプログラム及び記録媒体 Active JP4555859B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005204954 2005-07-13
JP2005204954 2005-07-13
PCT/JP2006/313970 WO2007007836A1 (ja) 2005-07-13 2006-07-13 認証システム、認証方法、証明装置、検証装置、それらのプログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JPWO2007007836A1 JPWO2007007836A1 (ja) 2009-01-29
JP4555859B2 true JP4555859B2 (ja) 2010-10-06

Family

ID=37637216

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007507586A Active JP4555859B2 (ja) 2005-07-13 2006-07-13 認証システム、認証方法、証明装置、検証装置、それらのプログラム及び記録媒体

Country Status (6)

Country Link
US (1) US8001384B2 (ja)
EP (1) EP1903713B1 (ja)
JP (1) JP4555859B2 (ja)
CN (1) CN101080897B (ja)
DE (1) DE602006013138D1 (ja)
WO (1) WO2007007836A1 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9198084B2 (en) 2006-05-26 2015-11-24 Qualcomm Incorporated Wireless architecture for a traditional wire-based protocol
JP4901499B2 (ja) * 2007-01-22 2012-03-21 日本電信電話株式会社 データ検証システム、その方法、識別子生成装置、データ検証装置、それらプログラム及び記録媒体
US8667144B2 (en) 2007-07-25 2014-03-04 Qualcomm Incorporated Wireless architecture for traditional wire based protocol
US8811294B2 (en) 2008-04-04 2014-08-19 Qualcomm Incorporated Apparatus and methods for establishing client-host associations within a wireless network
US8281131B2 (en) 2008-08-28 2012-10-02 International Business Machines Corporation Attributes in cryptographic credentials
CN101739400B (zh) * 2008-11-11 2014-08-13 日电(中国)有限公司 生成索引的方法和装置以及检索方法和装置
US9398089B2 (en) 2008-12-11 2016-07-19 Qualcomm Incorporated Dynamic resource sharing among multiple wireless devices
EP2378706A4 (en) * 2008-12-11 2017-06-28 NEC Corporation Zero-knowledge proof system, zero-knowledge proof device, zero-knowledge verification device, zero-knowledge proof method and program therefor
US9264248B2 (en) 2009-07-02 2016-02-16 Qualcomm Incorporated System and method for avoiding and resolving conflicts in a wireless mobile display digital interface multicast environment
US9582238B2 (en) 2009-12-14 2017-02-28 Qualcomm Incorporated Decomposed multi-stream (DMS) techniques for video display systems
US9065876B2 (en) 2011-01-21 2015-06-23 Qualcomm Incorporated User input back channel from a wireless sink device to a wireless source device for multi-touch gesture wireless displays
US9413803B2 (en) 2011-01-21 2016-08-09 Qualcomm Incorporated User input back channel for wireless displays
US9787725B2 (en) 2011-01-21 2017-10-10 Qualcomm Incorporated User input back channel for wireless displays
US9582239B2 (en) 2011-01-21 2017-02-28 Qualcomm Incorporated User input back channel for wireless displays
US8964783B2 (en) 2011-01-21 2015-02-24 Qualcomm Incorporated User input back channel for wireless displays
US10135900B2 (en) 2011-01-21 2018-11-20 Qualcomm Incorporated User input back channel for wireless displays
US10108386B2 (en) 2011-02-04 2018-10-23 Qualcomm Incorporated Content provisioning for wireless back channel
US8674957B2 (en) 2011-02-04 2014-03-18 Qualcomm Incorporated User input device for wireless back channel
US9503771B2 (en) 2011-02-04 2016-11-22 Qualcomm Incorporated Low latency wireless display for graphics
US9525998B2 (en) 2012-01-06 2016-12-20 Qualcomm Incorporated Wireless display with multiscreen service
GB201309702D0 (en) * 2013-05-30 2013-07-17 Certivox Ltd Security
EP2860905A1 (en) * 2013-10-09 2015-04-15 Thomson Licensing Method for ciphering a message via a keyed homomorphic encryption function, corresponding electronic device and computer program product
US9946858B2 (en) 2014-05-05 2018-04-17 Analog Devices, Inc. Authentication system and device including physical unclonable function and threshold cryptography
US10432409B2 (en) 2014-05-05 2019-10-01 Analog Devices, Inc. Authentication system and device including physical unclonable function and threshold cryptography
US9672342B2 (en) 2014-05-05 2017-06-06 Analog Devices, Inc. System and device binding metadata with hardware intrinsic properties
US9715590B2 (en) 2014-05-05 2017-07-25 Analog Devices, Inc. System and device for verifying the integrity of a system from its subcomponents
US9292692B2 (en) * 2014-05-05 2016-03-22 Sypris Electronics, Llc System and device for verifying the integrity of a system from its subcomponents
JP6973385B2 (ja) * 2016-05-13 2021-11-24 日本電気株式会社 認証システム、認証方法およびプログラム
US10425235B2 (en) 2017-06-02 2019-09-24 Analog Devices, Inc. Device and system with global tamper resistance
US10958452B2 (en) 2017-06-06 2021-03-23 Analog Devices, Inc. System and device including reconfigurable physical unclonable functions and threshold cryptography
CN111090842B (zh) * 2019-12-23 2022-04-26 上海源庐加佳信息科技有限公司 一种基于零知识证明的供应链金融客户贷款信息保护方法
CN117640090B (zh) * 2024-01-25 2024-04-12 蓝象智联(杭州)科技有限公司 一种身份验证方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06188874A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd 署名および認証方式
JPH07281595A (ja) * 1994-04-06 1995-10-27 Hitachi Ltd 認証方式
JPH11252070A (ja) * 1998-03-02 1999-09-17 Kdd Corp 利用者認証方式

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5497423A (en) * 1993-06-18 1996-03-05 Matsushita Electric Industrial Co., Ltd. Method of implementing elliptic curve cryptosystems in digital signatures or verification and privacy communication
US6076163A (en) * 1997-10-20 2000-06-13 Rsa Security Inc. Secure user identification based on constrained polynomials
DE69840959D1 (de) * 1997-12-17 2009-08-20 Nippon Telegraph & Telephone Verschlüsselungs- und Entschlüsselungsvorrichtungen für Kryptosysteme mit öffentlichem Schlüssel und Aufzeichnungsmedium mit darauf gespeicherten zugehörigen Verarbeitungsprogrammen.
JP3812123B2 (ja) * 1998-02-12 2006-08-23 富士ゼロックス株式会社 認証方法および装置
JP3926532B2 (ja) * 2000-03-16 2007-06-06 株式会社日立製作所 情報処理装置、情報処理方法、及びカード部材
DE10111756A1 (de) * 2001-03-12 2002-11-14 Infineon Technologies Ag Verfahren zur Authentikation
JP4457651B2 (ja) * 2003-11-27 2010-04-28 日本電気株式会社 証明装置及び証明方法並びにプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06188874A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd 署名および認証方式
JPH07281595A (ja) * 1994-04-06 1995-10-27 Hitachi Ltd 認証方式
JPH11252070A (ja) * 1998-03-02 1999-09-17 Kdd Corp 利用者認証方式

Also Published As

Publication number Publication date
JPWO2007007836A1 (ja) 2009-01-29
US20080133912A1 (en) 2008-06-05
WO2007007836A1 (ja) 2007-01-18
EP1903713B1 (en) 2010-03-24
CN101080897B (zh) 2012-09-19
CN101080897A (zh) 2007-11-28
DE602006013138D1 (de) 2010-05-06
EP1903713A4 (en) 2009-06-17
EP1903713A1 (en) 2008-03-26
US8001384B2 (en) 2011-08-16

Similar Documents

Publication Publication Date Title
JP4555859B2 (ja) 認証システム、認証方法、証明装置、検証装置、それらのプログラム及び記録媒体
US11895231B2 (en) Adaptive attack resistant distributed symmetric encryption
KR101311057B1 (ko) 컴퓨터 구현 방법, 컴퓨터 판독가능 매체, 및 컴퓨팅 장치
CN100583755C (zh) 使用同源来设计密码系统
JP6058237B1 (ja) 暗号文変換装置、暗号文変換プログラム及び暗号文変換方法
Mughal et al. A lightweight digital signature based security scheme for human-centered Internet of Things
CA2792267C (en) Verifying implicit certificates and digital signatures
US20060251247A1 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program and method therefor
US8139765B2 (en) Elliptical polynomial-based message authentication code
JPWO2007074836A1 (ja) 署名生成装置、署名生成方法及び署名生成プログラム
TW201320700A (zh) 署名驗證裝置、署名驗證方法、程式及記錄媒體
US8250367B2 (en) Cryptographic applications of efficiently evaluating large degree isogenies
CN112865973A (zh) 基于格的加密密钥和数字签名的生成方法
JP5972181B2 (ja) 改ざん検知装置、改ざん検知方法、およびプログラム
Lizama-Pérez et al. Public hash signature for mobile network devices
KR102443255B1 (ko) 래티스를 기반으로 하는 암호키 생성 방법 및 전자서명 방법
US8594329B2 (en) Non-interactive verifiable, delegated computation
US9735963B2 (en) Decryption service providing device, processing device, safety evaluation device, program, and recording medium
Bellare et al. Defending against key exfiltration: efficiency improvements for big-key cryptography via large-alphabet subkey prediction
WO2013153628A1 (ja) 演算処理システムおよび演算結果認証方法
CN115883212A (zh) 信息处理方法、装置、电子设备和存储介质
KR20100003093A (ko) 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법
Youn et al. Design of additive homomorphic encryption with multiple message spaces for secure and practical storage services over encrypted data
Le et al. Flexible signatures: Making authentication suitable for real-time environments
CN114070564A (zh) 数字签名的方法和装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100706

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100716

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130723

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4555859

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350