CN103155480A - 认证装置、认证方法和程序 - Google Patents

认证装置、认证方法和程序 Download PDF

Info

Publication number
CN103155480A
CN103155480A CN2011800357795A CN201180035779A CN103155480A CN 103155480 A CN103155480 A CN 103155480A CN 2011800357795 A CN2011800357795 A CN 2011800357795A CN 201180035779 A CN201180035779 A CN 201180035779A CN 103155480 A CN103155480 A CN 103155480A
Authority
CN
China
Prior art keywords
examining
algorithm
key
cmt
proof
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011800357795A
Other languages
English (en)
Other versions
CN103155480B (zh
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Publication of CN103155480A publication Critical patent/CN103155480A/zh
Application granted granted Critical
Publication of CN103155480B publication Critical patent/CN103155480B/zh
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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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/3271Cryptographic 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 challenge-response
    • 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/3236Cryptographic 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 cryptographic hash functions
    • H04L9/3239Cryptographic 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 cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明涉及认证装置、认证方法和程序。提供了一种认证设备,包括:钥保持单元,用于保持L(L≥2)个密钥si(i=1到L)和针对一组多元n(n≥2)次多项式F满足yi=F(si)的L个公钥yi;和交互协议执行单元,用于与核实方执行用于证明知道满足yi=F(si)的(L-1)个密钥si的交互协议。所述交互协议执行单元包括:质询接收单元,用于从核实方接收L个质询Chi;质询选择单元,用于从由所述质询接收单元接收的L个质询Chi任意选择(L-1)个质询Chi;响应生成单元,用于利用所述密钥si分别针对由所述质询选择单元选择的(L-1)个质询Chi生成(L-1)个响应Rspi;以及响应发送单元,用于将由所述响应生成单元生成的(L-1)个响应Rspi发送到所述核实方。

Description

认证装置、认证方法和程序
技术领域
本公开涉及认证装置、认证方法和程序。
背景技术
随着信息处理技术和通信技术的快速发展,无论文档是工作文档还是私人文档,文档的数字化都在快速前进。因而,许多个人和企业在电子文档的安全管理方面表现出强烈的关心。随着这种关心的增强,在许多方面,越来越多地研究防范诸如电子文档的窃取和伪造之类篡改行为的安全对策。例如通过加密电子文档,能够确保电子文档免于窃取的安全性。另外,例如通过利用数字签名,能够确保电子文档免于伪造的安全性。不过,加密和数字签名必须具有足够的防篡改性。
数字签名用于识别电子文档的创作者。从而,应使数字签名只能由电子文档的创作者创建。如果恶意第三方能够创建相同的数字签名,那么所述第三方会伪装成电子文档的创作者。即,恶意第三方伪造电子文档。为了防止这种伪造,提出了关于数字签名的安全性的各种观点。在目前广泛使用的数字签名方案中,已知使用RSA签名方案和DSA签名方案的方案。
RSA签名方案的安全性基于“把较大的合数因数分解成质数的困难性(下面称为质数因数分解问题)”。另外,DSA签名方案的安全性基于“得出离散对数问题的解答的困难性”。这些基础可归因于不存在利用经典计算机,高效地求解质数因数分解问题和离散对数问题的算法。即,上述困难性意味经典计算机的计算困难性。不过,利用量子计算机,据说可以高效地计算质数因数分解问题和离散对数问题的解答。
类似于RSA签名方案和DSA签名方案,目前使用的许多数字签名方案和公钥认证方案的安全性也基于质数因数分解问题或离散对数问题的困难性。从而,当量子计算机变得可从市场上获得时,不再能够确保这种数字签名方案和公钥认证方案的安全性。从而,需要实现新的数字签名方案和公钥认证方案,其安全性基于与诸如易于用量子计算机求解的质数因数分解问题和离散对数问题的问题不同的问题。作为利用量子计算机难以求解的问题,存在求解多元多项式的困难性(以下称为多元多项式问题)。
被认为难以通过量子计算机求解的其他问题包括校验子(Syndrome)解码问题、约束线性方程问题、排列核问题、排列感知问题(Permuted Perception problem)、代数面上的部分寻找问题等。
在这些问题中,除代数面上的部分寻找问题以外的其他问题已知是NP困难的。作为它们的应用,例如,以下提及的非专利文献1和非专利文献2公开了基于校验子解码问题的公钥认证方案。此外,以下以及的非专利文献3公开了基于排列核问题的公钥认证方案。除此以外,还提出了基于约束线性方程问题的公钥认证方案、基于排列感知问题的公钥认证方案等。
引证列表
非专利文献
非专利文献1:Jacques Stern,A New Identification Scheme Basedon Syndrome Decoding,CRYPTO1993,p13-21
非专利文献2:Jacques Stern,A New Paradigm for Public KeyIdentification,IEEE Transactions on Information Theory,1996,p13-21
非专利文献3:Adi Shamir,An Efficient Identification SchemeBased on Permuted Kernels(Extended Abstract),CRYPTO1989,p606-609
发明内容
以下描述公钥认证方案的安全级别。存在与公钥认证方案的安全级别有关的两种安全级别。一种是对于被动攻击足够的安全级别。另一种是对于主动攻击足够的安全级别。对于被动攻击足够的安全级别是考虑只能窃听证明方与核实方之间的根据合法协议的交互的攻击者的安全级别。另一方面,对于主动攻击足够的安全级别是考虑攻击者自己能够与证明方直接执行交互协议的情况的安全级别。即,对于主动攻击足够的安全级别考虑攻击者能够与证明方自由执行交互协议的情况。
在以上提及的非专利文献1到3中描述的现有公钥认证方案确保对于被动攻击足够的安全级别。然而,对于这些现有的公钥认证方案,在并行重复配置的情况下,不知道是否绝对确保了对于主动攻击足够的安全级别。这是因为,在并行重复配置的情况下,广为人知的是没有保存零知识性。因此,为了绝对确保并行重复配置中对于主动攻击足够的安全级别,有必要确保进一步的其他性质(property)。
现有公钥认证方案是证明方利用一个钥(key)对(公钥y,私钥s)向核实方证明“知道对于y满足y=F(s)的s”的方案。因此,如果执行将通过核实接受的交互,那么不可能防止核实方知道信息“执行交互的证明方使用了s”。再者,在这种类型的公钥认证方案的并行重复配置中,如果对于F不能确保抗冲突性(collision resistance),那么不知道是否绝对确保对于主动攻击足够的安全级别。实际上,对于上述公钥认证方案中使用的函数F,不确保抗冲突性。
鉴于上述情况,期望提供一种新颖且改进的认证装置、认证方法以及程序,即使并行重复执行交互协议,其也能够确保对于主动攻击足够的安全级别。
根据本公开的一个方面,为了实现上述目的,提供了一种认证设备,包括:钥保持单元,用于保持L(L≥2)个密钥si(i=1到L)和针对一组多元n(n≥2)次多项式F满足yi=F(si)的L个公钥yi;和交互协议执行单元,用于与核实方执行用于证明知道满足yi=F(si)的(L-1)个密钥si的交互协议。交互协议执行单元在与核实方执行交互协议时防止核实方知道使用了哪个密钥si
此外,所述交互协议执行单元包括:质询接收单元,用于从核实方接收L个质询Chi;质询选择单元,用于从由所述质询接收单元接收的L个质询Chi任意选择(L-1)个质询Chi;响应生成单元,用于利用所述密钥si分别针对由所述质询选择单元选择的(L-1)个质询Chi生成(L-1)个响应Rspi;以及响应发送单元,用于将由所述响应生成单元生成的(L-1)个响应Rspi发送到所述核实方。
此外,所述交互协议执行单元还包括用于向所述核实方发送消息Cmti的消息发送单元,每个消息Cmti都对应于所述L个密钥si中的每个密钥。在此情况下,所述质询接收单元接收表示由所述核实方根据所述消息发送单元发送的每个消息Cmti从k(k≥2)种核实模式中选择的核实模式的质询Chi
此外,在消息Cmti=(ci,1,…,ci,N)的情况下,所述消息发送单元利用单向函数H计算新消息Cmt’=H(Cmt1,…,CmtL),并将该消息Cmt’发送到所述核实方,并且所述响应发送单元连同所述响应Rspi一起发送所述核实方即使使用该响应Rspi也不能恢复的消息Cmti的元素。
此外,所述钥保持单元不必保持所述L个密钥si中的一个密钥si0(1≤i0≤L)。在此情况下,所述交互协议执行单元基于伪造算法执行要在所述交互协议中执行的与所述密钥si0相关的处理。
此外,根据本公开的另一方面,为了实现上述目的,提供了一种认证设备,包括:钥保持单元,用于保持L个密钥si(i=1到L)和针对一组多元n(n≥2)次多项式F满足yi=F(si)的L个公钥yi;质询接收单元,用于从核实方接收Q组(Q≥2)L个质询Chi (j)(j=1到Q);质询选择单元,用于从由所述质询接收单元接收的Q组L个质询Chi (j)任意选择一组L个质询Chi (j);响应生成单元,用于利用所述密钥si分别针对由所述质询选择单元选择的L个质询Chi (j)生成L个响应Rspi;以及响应发送单元,用于将由所述响应生成单元生成的L个响应Rspi发送到所述核实方。
此外,所述交互协议执行单元还包括用于向所述核实方发送分别与所述L个密钥si相对应的消息Cmti的消息发送单元。在此情况下,所述质询接收单元接收表示由所述核实方根据所述消息发送单元发送的每个消息Cmti从k(k≥2)种核实模式中选择的核实模式的质询Chi (j)
此外,在消息Cmti=(ci,1,…,ci,N)的情况下,所述消息发送单元利用单向函数H计算新消息Cmt’=H(Cmt1,…,CmtL),并将该消息Cmt’发送到所述核实方,并且所述响应发送单元连同所述响应Rspi一起发送所述核实方即使使用该响应Rspi也不能恢复的消息Cmti的元素。
此外,根据本公开的另一方面,为了实现上述目的,提供了一种认证方法,包括:钥生成步骤,生成L(L≥2)个密钥si(i=1到L)和针对一组多元n(n≥2)次多项式F满足yi=F(si)的L个公钥yi;和交互协议执行步骤,与核实方执行用于证明知道满足yi=F(si)的(L-1)个密钥si的交互协议。所述交互协议执行步骤在与核实方执行交互协议时防止核实方知道使用了哪个密钥si
此外,根据本公开的另一方面,为了实现上述目的,提供了一种用于使计算机实现以下功能的程序:钥保持功能,用于保持L(L≥2)个密钥si(i=1到L)和针对一组多元n(n≥2)次多项式F满足yi=F(si)的L个公钥yi;和交互协议执行功能,用于与核实方执行用于证明知道满足yi=F(si)的(L-1)个密钥si的交互协议。所述交互协议执行功能在与核实方执行交互协议时防止核实方知道使用了哪个密钥si
此外,根据本公开的另一方面,为了实现上述目的,提供了一种认证方法,包括:钥生成步骤,生成L个密钥si(i=1到L)和针对一组多元n(n≥2)次多项式F满足yi=F(si)的L个公钥yi;质询接收步骤,接收核实方的Q组(Q≥2)L个质询Chi (j)(j=1到Q);质询选择步骤,从在质询接收步骤中已经接收的Q组L个质询Chi (j)任意选择一组L个质询Chi (j);响应生成步骤,利用所述密钥si分别针对在质询选择步骤中已经选择的L个质询Chi (j)生成L个响应Rspi;以及响应发送步骤,将在响应生成步骤中已经生成的L个响应Rspi发送到所述核实方。
此外,根据本公开的另一方面,为了实现上述目的,提供了一种用于使计算机实现以下功能的程序:钥保持功能,用于保持L个密钥si(i=1到L)和针对一组多元n(n≥2)次多项式F满足yi=F(si)的L个公钥yi;质询接收功能,用于从核实方接收Q组(Q≥2)L个质询Chi (j)(j=1到Q);质询选择功能,用于从由所述质询接收功能接收的Q组L个质询Chi (j)任意选择一组L个质询Chi (j);响应生成功能,用于利用所述密钥si分别针对由所述质询选择功能选择的L个质询Chi (j)生成L个响应Rspi;以及响应发送功能,用于将由所述响应生成功能生成的L个响应Rspi发送到所述核实方。根据本公开的另一实施例,提供了一种记录有所述程序的计算机可读记录介质。
根据上述本公开的实施例,即使并行重复执行交互协议也可以确保针对主动攻击足够的安全级别。
附图说明
图1是描述公钥认证方案的算法结构的说明图;
图2是描述n遍公钥认证方案的说明图;
图3是描述SSH10a公钥认证方案的交互协议的说明图;
图4是描述SSH10b公钥认证方案的交互协议的说明图;
图5是描述交互协议的串行重复配置的说明图;
图6是描述交互协议的并行重复配置的说明图;
图7是描述对SSH10a公钥认证方案的交互协议的伪造算法(falsification algorithm)的说明图;
图8是描述对SSH10b公钥认证方案的交互协议的伪造算法的说明图;
图9是描述将本方法#1应用于SSH10a公钥认证方案的交互协议的方法的说明图;
图10是描述将本方法#1应用于SSH10a公钥认证方案的交互协议的方法(修改例1)的说明图;
图11是描述将本方法#1应用于SSH10a公钥认证方案的交互协议的方法(修改例2)的说明图;
图12是描述将本方法#1应用于SSH10a公钥认证方案的交互协议的方法(修改例3)的说明图;
图13是描述将本方法#1应用于SSH10b公钥认证方案的交互协议的方法的说明图;
图14是描述将本方法#1应用于SSH10b公钥认证方案的交互协议的方法(修改例)的说明图;
图15是描述将本方法#2应用于SSH10a公钥认证方案的交互协议的方法的说明图;
图16是描述将本方法#2应用于SSH10a公钥认证方案的交互协议的方法(修改例)的说明图;
图17是描述将本方法#2应用于SSH10b公钥认证方案的交互协议的方法的说明图;
图18是描述将本方法#2应用于SSH10b公钥认证方案的交互协议的方法(修改例)的说明图;
图19是描述减小SSH10a公钥认证方案的交互协议中的通信量的方法的说明图;
图20是描述减小SSH10b公钥认证方案的交互协议中的通信量的方法的说明图;以及
图21是描述能够实现根据本实施例的交互协议的信息处理设备的示例硬件结构的说明图。
具体实施方式
下面参考附图,详细说明本公开的优选实施例。注意在说明书和附图中,功能和结构基本相同的构成元件用相同的附图标记表示,这些构成元件的重复说明被省略。
[说明的流程]
下面简要说明以下说明的本公开的实施例的说明流程。首先,参考图1,说明公钥认证方案的算法结构。随后,参考图2,说明n遍公钥认证方案。随后,参照图3描述SSH10a公钥认证方案的交互协议。然后,参照图4描述SSH10b公钥认证方案的交互协议。然后,参照图5和6描述交互协议的重复配置。在此,简要描述对于主动攻击足够的安全级别。
接着,参照图7描述针对SSH10a公钥认证方案的交互协议的伪造算法。然后,参照图8描述针对SSH10b公钥认证方案的交互协议的伪造算法。然后,参照图9描述将本公开的第一实施例(本方法#1)的方法应用于SSH10a公钥认证方案的交互协议的方法。然后,参照图13和14描述将本方法#1应用于SSH10b公钥认证方案的交互协议的方法。
接着,参照图15和16描述将本公开的第二实施例(本方法#2)的方法应用于SSH10a公钥认证方案的交互协议的方法。然后,参照图17和18描述将本方法#2应用于SSH10b公钥认证方案的交互协议的方法。然后,参照图19和20描述减小本实施例的交互协议中的通信量的方法。接着,参照图21描述能够实现根据本实施例的交互协议的信息处理设备的示例硬件结构。最后,将总结实施例的技术构思和简要描述通过这些技术构思获得的效果。
(描述项目)
1:介绍
1-1:公钥认证方案的算法结构
1-2:N遍公钥认证方案
1-3:SSH10a公钥认证方案的交互协议
1-4:SSH10b公钥认证方案的交互协议
1-5:交互协议的重复配置
1-6:对SSH10a公钥认证方案的伪造算法
1-7:对SSH10b公钥认证方案的伪造算法
2:第一实施例(本方法#1)
2-1:概要
2-2:应用于SSH10a公钥认证方案
2-3:应用于SSH10a公钥认证方案(修改例1)
2-4:应用于SSH10a公钥认证方案(修改例2)
2-5:应用于SSH10a公钥认证方案(修改例3)
2-6:应用于SSH10b公钥认证方案
2-7:应用于SSH10b公钥认证方案(修改例)
3:第二实施例(本方法#2)
3-1:概要
3-2:应用于SSH10a公钥认证方案
3-3:应用于SSH10a公钥认证方案(修改例)
3-4:应用于SSH10b公钥认证方案
3-5:应用于SSH10b公钥认证方案(修改例)
4:补充
4-1:方案的扩展
4-2:非交互公钥认证方案
4-3:减小通信量的方法
5:硬件结构
6:总结
<1:介绍>
在详细描述本公开的实施例之前,简要描述通用公钥认证方案和n遍公钥认证方案的算法结构。
[1-1:公钥认证方案的算法结构]
首先,参照图1描述公钥认证方案的算法结构。图1是描述公钥认证方案的算法结构的说明图。
(概述)
公钥认证方案是这样的认证方案:一个人(证明方)利用公钥pk和私钥sk,使另一人(核实方)相信它是证明方本人。例如,使证明方A的公钥pkA向核实方公开。另一方面,证明方秘密地管理证明方A的私钥skA。根据公钥认证方案,知道与公钥pkA对应的私钥skA的人被认为是证明方A本人。
在证明方A试图向核实方B证明它是证明方本人的情况下,证明方A可与核实方B执行交互协议,证明它知道与公钥pkA对应的私钥skA。然后,在核实方B通过交互协议证明了证明方A知道私钥skA的情况下,证明了证明方A的合法性(它是证明方本人)。
此外,为了确保公钥认证方案的安全性,要满足以下两个条件。
第一个条件是“当执行交互协议时,使认可没有私钥sk的伪造者的伪造的概率降至最小”。第一条件的成立被称为“健全性”。换句话说,在健全的交互协议中,没有密钥sk的伪造者将不会以不可忽略的概率使伪造成立。第二个条件是“即使执行交互协议,关于证明方A的密钥skA的信息也根本不会被泄漏给核实方B。第二条件的成立被称为“零知识性”。
利用具有如上所述的健全性和零知识性的交互协议,确保公钥认证方案的安全性。
(模型)
在公钥认证方案的模型中,如图1中所示,存在称为证明方和核实方的两个实体。证明方通过利用钥生成算法Gen,生成证明方特有的一对密钥sk和公钥pk。之后,证明方通过利用使用钥生成算法Gen生成的一对密钥sk和公钥pk,与核实方进行交互协议。此时,证明方利用证明方算法P,执行交互协议。如上所述,在交互协议中,证明方利用证明方算法P,向核实方证明证明方持有密钥sk。
另一方面,核实方利用核实方算法V,执行交互协议,并核实证明方是否持有与证明方公开的公钥对应的密钥。即,核实方是核实证明方是否持有与公钥对应的密钥的实体。如上所述,公钥认证方案的模型包括证明方和核实方两个实体,和钥生成算法Gen、证明方算法P和核实方算法V这3种算法。
此外,以下说明中使用“证明方”和“核实方”的表述,但是这些表述严格地意味实体。于是,执行钥生成算法Gen和证明方算法P的主体是与“证明方”实体对应的信息处理设备。类似地,执行核实方算法V的主体是信息处理设备。这些信息处理设备的硬件结构例如如图21中所示。即,钥生成算法Gen、证明方算法P和核实方算法V由CPU902,根据记录在ROM904、RAM906、存储单元920、可拆卸记录介质928等中的程序执行。
(钥生成算法Gen)
钥生成算法Gen由证明方使用。钥生成算法Gen是生成证明方特有的一对密钥sk和公钥pk的算法。利用钥生成算法Gen生成的公钥pk被公开。此外,公开的公钥pk被核实方使用。另一方面,利用钥生成算法Gen生成的密钥sk由证明方秘密地管理。秘密管理的密钥sk被用于向核实方证明持有与公钥pk对应的密钥sk。正式地说,钥生成算法Gen被用以下公式(1)表示成以安全性参数1λ(λ是等于或大于0的整数)作为输入,并输出密钥sk和公钥pk的算法。
[表达式1]
(sk,pk)←-Gen(1λ)
…(1)
(证明方算法P)
证明方算法P由证明方使用。证明方算法P是证明持有与公钥pk对应的密钥sk的算法。证明方算法P被定义为以证明方的密钥sk和公钥pk作为输入并与核实方执行交互协议的算法。
(核实方算法V)
核实方算法V由核实方使用。核实方算法V是核实在交互协议期间,证明方是否持有与公钥pk对应的密钥sk的算法。核实方算法V被定义为以证明方的公钥pk作为输入,并在与证明方执行交互协议之后输出0或1(1比特)的算法。此外,在输出0的情况下,认为证明方非法,而在输出1的情况下,认为证明方合法。
(补充)
如上所述,公钥认证方案必须满足两个条件,即,健全性和零知识性,以确保安全性。然而,为了使证明方证明它拥有密钥sk,证明方必须执行依赖于密钥sk的过程,将结果通知给核实方,并使得核实方基于所通知的内容执行核实。必须执行依赖于密钥sk的过程,以确保健全性。另一方面,即使所述过程的结果被通知给核实方,与密钥sk有关的信息也必须一点也不会泄漏给核实方。从而,要设计钥生成算法Gen、证明方算法P和核实方算法V以满足这些要求。
上面,描述了公钥认证方案的算法结构。
[1-2:N-遍公钥认证方案]
下面参考图2,说明n遍公钥认证方案。图2是说明n遍公钥认证方案的说明图。
如上所述,公钥认证方案是向核实方证实在交互协议期间,证明方持有与公钥pk对应的密钥sk的认证方案。此外,为了确保公钥认证方案的安全性,必须满足健全性和零知识性这两个条件。从而,如图2中所示,在交互协议中,在证明方和核实方执行处理的同时,在证明方和核实方之间执行n遍信息交换。
在n遍公钥认证方案的情况中,证明方利用证明方算法P进行处理(步骤#1),然后把信息T1传给核实方。之后,核实方利用核实方算法V进行处理(步骤#2),然后把信息T2传给证明方。按类似方式执行处理(步骤3)到(步骤n),并传送信息T3,…,Tn,并执行处理(步骤n+1)。这种基于传输/接收信息n遍的交互协议的公钥认证方案被称为“n遍”公钥认证方案。
上面,说明了n遍公钥认证方案。
[1-3:SSH10a公钥认证方案的交互协议]
接下来,参照图3描述SSH10a公钥认证方案的交互协议。图3是描述SSH10a公钥认证方案的交互协议的说明图。此外,SSH10a公钥认证方案是由本发明人(Sakumoto、Shirai以及Hiwatari)设计的基于求解多次多元联立方程的问题的多种公钥认证方案之一。此外,该SSH10a公钥认证方案是3遍公钥认证方案的一个示例。
此外,求解多次多元联立方程的问题是当给定环K上的n个变量的m个多次多项式f1(x1,…,xn),…,fm(x1,…,xn)和向量y∈Km时,获得满足(fi(s1,…,sn),…,fm(s1,…,sn))=y的向量(s1,…,sn)∈Kn的问题。求解二次或更高次的多元联立方程的问题被称为NP困难问题,它属于极其难以求解的一类问题。
现在,SSH10a公钥认证方案的交互协议由钥生成算法Gen、证明方算法P和核实方算法V构成。以下,描述每个算法的内容。
(钥生成算法Gen)
首先,描述钥生成算法Gen的结构。钥生成算法Gen生成在环K上定义的m个二次n元多项式fi(x1,…,xn),…,fm(x1,…,xn),和向量s=(s1,...,sn)∈Kn。随后,钥生成算法Gen计算y=(y1,...,ym)←(f1(s),...,fm(s))。然后,钥生成算法Gen把(f1,...,fm,y)设定为公钥pk,把s设定为私钥。此外,下面,n元向量(x1,...,xn)将被表示成x,m个n元二次多项式(f1(x),...,fm(x))将被表示成F(x)。
(证明方算法P,核实方算法V)
下面,参照图3描述证明方算法P和核实方算法V的结构。SSH10a公钥认证方案的交互协议使得核实方证明“证明方知道满足y=F(s)的s”,而根本不向核实方泄漏关于s的信息。此外,假设在证明方与核实方之间共享由钥生成算法Gen生成的公钥pk。此外,假设钥生成算法Gen生成的密钥sk由证明方秘密管理。
在此,将描述二次多项式的性质。
可以将一组m个n元二次多项式(fi(x),…,fm(x))表示为以下公式(2)。此外,x=(x1,…,xn)是表示n个变量的向量。此外,A1,…,Am是n×n矩阵。此外,b1,…,bm是n×1向量。此外,c是m×1向量。
[表达式2]
F ( x ) = f 1 ( x ) &CenterDot; &CenterDot; &CenterDot; f m ( x ) = x T A 1 x + b 1 T x &CenterDot; &CenterDot; &CenterDot; x T A m x + b m T x + c &CenterDot; &CenterDot; &CenterDot; ( 2 )
利用该表达式,可以将一组多项式F表示为以下公式(3)和(4)。可以根据以下公式(5)来容易地确认该表达式成立。
[表达式3]
F(x1+x1)=F(x1)+F(x2)+Fb(x1,x2)-c
…(3)
F b ( x 1 , x 2 ) = x 2 T ( A 1 T + A 1 ) x 1 &CenterDot; &CenterDot; &CenterDot; x 2 T ( A m T + A m ) x 1 &CenterDot; &CenterDot; &CenterDot; ( 4 )
f 1 ( x 1 + x 2 ) = ( x 1 + x 2 ) T A l ( x 1 + x 2 ) + b l T ( x 1 + x 2 ) + c l
= x 1 T A l x 1 + x 1 T A l x 2 + x 2 T A l x 1 + x 2 T A l x 2 + b l T x 1 + b l T x 2 + c l
= f l ( x 1 ) + f l ( x 2 ) - c l + x 1 T A l x 2 + x 2 T A l x 1
= f l ( x 1 ) + f l ( x 2 ) - c l + x 1 T ( A l T ) T x 2 + x 2 T A l x 1
= f l ( x 1 ) + f l ( x 2 ) - c l + ( A l T x 1 ) T x 2 + x 2 T A l x 1
= f l ( x 1 ) + f l ( x 2 ) - c l + x 2 T ( A l T x 1 ) + x 2 T A l x 1
= f l ( x 1 ) + x 2 T ( A l T + A l ) x 1 + f l ( x 2 ) - c l &CenterDot; &CenterDot; &CenterDot; ( 5 )
当将F(x1+x2)分成三部分时,即,依赖于x1的部分,依赖于x2的部分,以及依赖于x1和x2的部分,按此方式,依赖于x1和x2的部分Fb(x1,x2)将是关于x1和x2的双线性映射。此外,下述SSH10a公钥认证方案利用如上所述的二次多项式的性质。
返回来说明SSH10a公钥认证方案的交互协议的证明方算法P和核实方算法V(见图3)。
步骤1:
首先,证明方算法P任意选择数w。随后,证明方算法P通过把数w应用于伪随机数发生器G1,生成向量r∈Kn和数w’。即,证明方算法P计算(r,w’)←G1(w)。之后,证明方算法P通过把数w’应用于伪随机数发生器G2,生成两个向量t∈Kn和e∈Km。即,证明方算法P计算(t,e)←G2(w’)。之后,证明方算法P计算z←s-r。该计算对应于用向量r掩蔽密钥s的操作。此外,证明方算法P计算t’←r+t。然后,证明方算法P计算e’←F(r)-c+e。
接着,证明方算法P基于公式(3)和(4)所示的函数Fb的定义,计算Fb(z,t),并生成Fb(z,t)+e和z的散列值c1。即,证明方算法P计算c1←H1(Fb(z,t)+e,z)。再者,证明方算法P生成数w’的散列值c2。即,证明方算法P计算c2←H2(w’)。再者,证明方算法P生成两个向量t’和e’的散列值c3。即,证明方算法P计算c3←H3(t’,e’)。
接着,证明方算法P设定St←(F,y,s,r,t,e,z,t’,e’)和Cmt←(c1,c2,c3)。然后,将在步骤1中生成的Cmt发送给核实方(核实方算法V)。此外,H1(...),H2(...)以及H3(...)是散列函数。此外,将步骤1的操作表示为(Cmt;St)←Pa,1(F,y,s;r,t,e)。
步骤2:
接收到Cmt的核实方算法V从三个核实模式中选择要使用的核实模式。然后,核实方算法V向证明方(证明方算法P)发送表示所选择的核实模式的质询Ch∈R{0,1,2}。
步骤3:
接收到Ch的证明方算法P响应于从核实方算法V接收到的质询Ch而生成要发送回核实方算法V的响应Rsp。如果Ch=0,那么证明方算法P生成响应Rsp←(r,t,e)。此外,如果Ch=1,那么证明方算法P生成响应Rsp=(z,t,e)。再者,如果Ch=2,那么证明方算法P生成响应Rsp=(z,t’,e’)。此外,将步骤3的操作表示为Rsp←Pa,2(Ch;St)。此外,将步骤3中生成的Rsp发送给核实方(核实方算法V)。
步骤4:
接收到Rsp的核实方算法V对接收到的Rsp执行以下核实中的任何一个。
如果Ch=0,核实方算法V执行(r”,t”,e”)←Rsp。然后,核实方算法V核实c2=H2(t”,e”)和c3=H3(r”+t”,F(r”)-c+e”)是否成立。
如果Ch=1,核实方算法V执行(z”,t”,e”)←Rsp。然后,核实方算法V核实c1=H1(Fb(z”,t”)+e”,z”)和c2=H2(t”,e”)是否成立。
如果Ch=2,核实方算法V执行(z”,t″′,e″′)←Rsp。然后,核实方算法V核实c1=H1(F(z”)+Fb(z”,t″′)+e″′-y,z”)和c3=H3(t″′,e″′)是否成立。
此外,将步骤4的核实操作表示为0/1←Deca(F,y;Cmt,Ch,Rsp)。在此操作中,输出1表示核实成功,输出0表示核实失败。
以上,描述了SSH10a公钥认证方案中的证明方算法P和核实方算法V的处理内容。此外,在以上方案中,利用散列函数H1,H2以及H3计算c1,c2以及c3,但是也可以使用约定函数(commitment function)COM,而不是散列函数H1,H2以及H3。此外,在本说明书全文中,都可以利用约定函数COM替换散列函数。
约定函数COM是以字符串S和随机数p为参数的函数。约定函数的示例包括由Shai Halevi和Silvio Micali在International ConferenceCRYPTO1996等中提出的方案。在利用该约定函数的情况中,在计算c1,c2以及c3之前准备随机数ρ12以及ρ3,并通过应用约定函数COM(·,ρ1),COM(·,ρ2)以及COM(·,ρ3)而不是散列函数H1(·),H2(·)以及H3(·)来生成c1,c2以及c3。此外,从证明方算法P向核实方算法V发送包括在响应中的ρ1
[1-4:SSH10b公钥认证方案的交互协议]
接着,参照图4描述SSH10b公钥认证方案的交互协议。图4是描述SSH10b公钥认证方案的交互协议的说明图。此外,SSH10b公钥认证方案是本发明人(Sakumoto,Shirai以及Hiwatari)设计的基于求解多次多元联立方程的问题的公钥认证方案之一。再者,该SSH10b公钥认证方案是5遍公钥认证方案的示例。
类似于SSH10a公钥认证方案的交互协议,SSH10b公钥认证方案的交互协议由钥生成算法Gen、证明方算法P以及核实方算法V构成。以下,描述每个算法的内容。
(钥生成算法Gen)
首先,将描述钥生成算法Gen的结构。钥生成算法Gen生成在环K上定义的m个二次n元多项式f1(x1,…,xn),…,fm(x1,…,xn),和向量s=(s1,...,sn)∈Kn。随后,钥生成算法Gen计算y=(y1,...,ym)←(f1(s),...,fm(s))。然后,钥生成算法Gen把(f1,...,fm,y)设定为公钥pk,把s设定为密钥。此外,下面,n元向量(x1,...,xn)将被表示成x,m个n元二次多项式(f1(x),...,fm(x))将被表示成F(x)。
(证明方算法P,核实方算法V)
下面,参照图4描述证明方算法P和核实方算法V的结构。SSH10b公钥认证方案的交互协议使得核实方证明“证明方知道满足y=F(s)的s”,而根本不向核实方泄漏关于s的信息。此外,假设在证明方与核实方之间共享由钥生成算法Gen生成的公钥pk。此外,假设钥生成算法Gen生成的密钥sk由证明方秘密管理。
SSH10b公钥认证方案的交互协议由图4所示的处理步骤1到6构成。以下,描述每个步骤的处理。
步骤1:
首先,证明方算法P任意选择数w。随后,证明方算法P通过把数w应用于伪随机数发生器G,生成向量r∈Kn,t∈Kn和e∈Km。即,证明方算法P计算(r,t,e)←G(w)。之后,证明方算法P计算z←s-r。该计算对应于用向量r掩蔽密钥s的操作。
接着,证明方算法P生成Fb(z,t)+e和z的散列值c1。即,证明方算法P计算c1←H1(Fb(z,t)+e,z)。再者,证明方算法P生成向量r、t以及e的散列值c2。即,证明方算法P计算c2←H2(r,t,e)。此外,H1(...)和H2(...)是散列函数。
接着,证明方算法P设定StA←(F,y,s,r,t,e,z)和CmtA←(c1,c2)。然后,将在步骤1中生成的CmtA发送给核实方(核实方算法V)。此外,H1(...)和H2(...)是散列函数。此外,将步骤1的操作表示为(CmtA;StA)←Pb,1(F,y,s;r,t,e)。
步骤2:
接收到CmtA的核实方算法V从环K的q个类型的元素选择一个随机数α。然后,核实方算法V向证明方(证明方算法P)发送质询ChA=α。
步骤3:
接收到ChA的证明方算法P计算t’←αr+t。此外,证明方算法P计算e’←α(F(r)-c)+e。然后,证明方算法P设定StB←(StA,ChA,t’,e’)和CmtB←(t’,e’)。此外,证明方算法P将CmtB发送给核实方(核实方算法V)。此外,将步骤3的操作表示为(CmtB;StB)←Pb,2(ChA;StA)。
步骤4:
接收到CmtB的核实方算法V从两个核实模式中选择要使用的核实模式。然后,核实方算法V向证明方(证明方算法P)发送表示所选择的核实模式的质询ChBR{0,1}。
步骤5:
接收到ChB的证明方算法P响应于从核实方算法V接收到的质询ChB而按如下方式生成要发送回核实方(核实方算法V)的响应Rsp。如果ChB=0,那么证明方算法P设定Rsp←r。如果ChB=1,那么证明方算法P设定Rsp←z。然后,证明方算法P将响应Rsp发送给核实方(核实方算法V)。此外,将步骤5的操作表示为Rsp←Pb,3(ChB;StB)。
步骤6:
接收到响应Rsp的核实方算法V利用从证明方(证明方算法P)接收到的响应Rsp,执行以下核实处理。
如果ChB=0,核实方算法V执行r”←Rsp,并核实c2=H2(r”,t’-αr”,e’-α(F(r”)-c))是否成立。
如果ChB=1,核实方算法V执行z”←Rsp,并核实c1=H1(α(F(z”)-y)+Fb(z”,t’)+e’,z”)是否成立。
此外,将步骤6的核实操作表示为0/1←Decb(F,y;CmtA,ChA,CmtB,ChB,Rsp)。在此操作中,输出1表示核实成功,输出0表示核实失败。
以上,描述了SSH10b公钥认证方案中的证明方算法P和核实方算法V的处理内容。此外,在以上方案中,利用散列函数H1和H2计算c1和c2,但是也可以使用约定函数COM,而不是散列函数H1和H2
[1-5:交互协议的重复配置]
现在,如果应用上述SSH10a公钥认证方案的交互协议,那么伪造成功的概率可被抑制为2/3以下。此外,如果交互协议被执行两次,那么伪造成功的概率可被抑制为(2/3)2以下。以相同的方式,如果交互协议被执行N次,那么伪造成功的概率变成(2/3)N,如果N被设定成足够大的数(例如,N=140),那么可以使伪造成功的概率减小到可忽略的水平。
类似的,如果应用上述SSH10b公钥认证方案的交互协议,那么伪造成功的概率可被抑制为(1/2+1/2q)以下。因此,如果交互协议被执行两次,那么伪造成功的概率可被抑制为(1/2+1/2q)2以下。以相同的方式,如果交互协议被执行N次,那么伪造成功的概率变成(1/2+1/2q)N,如果N是足够大的数(例如,N=80),那么可以使伪造成功的概率减小到可忽略的水平。
此外,不仅对于SSH10a公钥认证方案和SSH10b公钥认证方案,而且对于在上述非专利文献1到3中公开的公钥认证方案,当执行交互协议一次并且伪造成功的概率不是足够小时,必须通过重复执行交互协议来减小伪造成功的概率。作为重复执行交互协议的方法,存在图5所示的串行重复配置和图6所示的并行重复配置。
串行重复配置是如图5所示顺序执行交互协议的方法,其中执行交互协议一次,当完成第一轮时,执行第二轮,当完成第二轮时,执行第三轮。另一方面,并行重复配置是如图6所示在每一遍中同时传送N轮的消息的方法,其中同时传送N轮的第一遍消息m1,1,…,mN,1,然后同时传送N轮的第二遍消息m1,2,…,mN,2,然后同时传送N轮的第三遍消息m1,3,…,mN,3
现在,上述非专利文献1到3中公开的公钥认证方案、SSH10a公钥认证方案和SSH10b公钥认证方案确保针对被动攻击的足够的安全级别。然而,利用这些公钥认证方案,不知道在采用并行重复配置的情况中是否绝对确保了对主动攻击足够的安全级别。这些公钥认证方案是证明方利用一对钥(公钥y,密钥s)向核实方证明“对于y证明方知道满足y=F(s)的s”的方案。
因此,如果执行将通过核实接受的交互,那么不可能防止核实方知道信息“执行交互的证明方使用了s”。再者,对于在这些方案中使用的F,不能确保抗冲突性(collision resistance)。结果,利用这些公钥认证方案,不知道在采用并行重复配置的情况中是否绝对确保了对主动攻击足够的安全级别。特别的,在利用上述并行重复配置执行这些公钥认证方案的情况中,不知道确保对于主动攻击足够的安全级别的方法。
因此,本发明人设计了在利用并行重复配置执行这些公钥认证方案时确保对主动攻击足够的安全级别的机制。稍后以SSH10a公钥认证方案和SSH10b公钥认证方案作为示例详细描述这些机制(本方法#1,本方法#2)。
[1-6:对SSH10a公钥认证方案的伪造算法]
在此,参照图7,考虑在SSH10a公钥认证方案中(一次交互协议)以概率2/3成功的伪造算法。图7是描述在SSH10a公钥认证方案中(一次交互协议)以概率2/3成功的伪造算法的说明图。该伪造算法是伪造方向核实方“假装它知道满足y=F(s)的s”的算法。然而,即使采用该伪造算法,伪造也会以1/3的概率失败。
步骤1:
首先,伪造方(伪造算法)生成向量s,n,t∈Kn和e∈Km。接着,伪造算法任意选择Ch*∈{0,1,2}。该Ch*对应于伪造算法不能给出响应的核实模式。此外,在此使用的s不是合法密钥。然而,利用除Ch*以外的核实模式,证明方(证明方算法P)可以在不使用合法密钥的情况下给出正确的响应。
接着,伪造算法计算z←s-r和t’←r+t。此外,如果Ch*=0,伪造算法计算e’←y-F(s)+F(r)-c+e。另一方面,如果Ch*=1或2,伪造算法计算e’←F(r)-c+e。然后,如果Ch*=0或2,伪造算法计算c1←H1(Fb(z,t)+e,z)。另一方面,如果Ch*=1,伪造算法计算c1←H1(F(z)+Fb(z,t’)+e’-y,z)。
接着,伪造算法计算c2←H2(t,e)和c3←H3(t’,e’)。然后,伪造算法设定St←(Ch*,F,y,s,r,t,e,z,t’,e’)和Cmt←(c1,c2,c3)。接着,伪造算法将Cmt发送给核实方(核实方算法V)。此外,将步骤1的操作表示为(Cmt;St)←Ma,1(F,y;Ch*,s,r,t,e)。
步骤2:
接收到Cmt的核实方算法V从三个核实模式选择将使用的核实模式。然后,核实方算法V向伪造方(伪造算法)发送表示所选择的核实模式的质询Ch∈R{0,1,2}。
步骤3:
接收到Ch的伪造算法响应于从核实方算法V接收到的质询Ch而生成要发送回核实方算法V的响应Rsp。此外,如果Ch=Ch*,那么伪造算法输出错误并结束交互协议。如果Ch≠Ch*并且Ch=0,那么伪造算法生成响应Rsp←(r,t,e)。此外,如果Ch=1,那么伪造算法生成响应Rsp=(z,t,e)。此外,如果Ch=2,那么伪造算法生成响应Rsp=(z,t’,e’)。
此外,将步骤3的操作表示为Rsp←Ma,2(Ch;St)。此外,将步骤3中生成的Rsp发送给核实方(核实方算法V)。
步骤4:
如果Ch≠Ch*,由于将响应Rsp发送给核实方算法V,因此由核实方算法V执行核实处理0/1←Deca(F,y;Cmt,Ch,Rsp)。
以上,描述了对SSH10a公钥认证方案的伪造算法。如上所述,即使s是任意选择的,也可以把会以概率2/3(Ch≠Ch*的概率)通过核实的Rsp发送回核实方。因此,在一次交互协议中伪造将以概率2/3成功。这样,将采用上述重复配置。
[1-7:对SSH10b公钥认证方案的伪造算法]
接着,参照图8,考虑在SSH10b公钥认证方案中(一次交互协议)以概率1/2成功的伪造算法。图8是描述在SSH10b公钥认证方案中(一次交互协议)以概率1/2成功的伪造算法的说明图。该伪造算法是伪造方向核实方“假装它知道满足y=F(s)的s”的算法。然而,即使采用该伪造算法,伪造也会以1/2的概率失败。
步骤1:
首先,伪造方(伪造算法)生成向量s,r,t∈Kn和e∈Km。接着,伪造算法任意选择Ch* B∈{0,1}。该Ch* B对应于伪造算法不能针对i0的组给出响应的核实模式。此外,在此使用的si0不是合法密钥,但是,针对除Ch* B以外的核实模式,伪造算法可以在不使用合法密钥的情况下给出正确的响应。
接着,伪造算法计算z←s-r。然后,伪造算法计算c1←H1(Fb(z,t)+e,z)和c2←H2(r,t,e)。然后,伪造算法设定StA←(F,y,Ch* B,s,r,t,e,z)和CmtA←(c1,c2)。接着,将步骤1中生成的CmtA发送给核实方(核实方算法V)。此外,H1(...)和H2(...)是散列函数。此外,将步骤1的操作表示为(CmtA;StA)←Mb,1(R,y;Ch* B,s,r,t,e)。
步骤2:
接收到CmtA的核实方算法V从环K的q个类型的元素选择一个随机数α。然后,核实方算法V向伪造方(伪造算法)发送质询ChA=α。
步骤3:
接收到ChA的伪造算法计算t’←αr+t。此外,如果Ch* B=1,那么伪造算法计算e’←α(F(r)-c)+e。另一方面,如果Ch* B=0,那么伪造算法计算e’←α(y-F(s)+F(r)-c)+e。然后,伪造算法设定StB←(StA,ChA,t’,e’)和CmtB←(t’,e’)。此外,伪造算法将CmtB发送给核实方(核实方算法V)。此外,将步骤3的操作表示为(CmtB;StB)←Mb,2(ChA;StA)。
步骤4:
接收到CmtB的核实方算法V从两个核实模式中选择要使用的核实模式。然后,核实方算法V向伪造方(伪造算法)发送表示所选择的核实模式的质询ChBR{0,1}。
步骤5:
如果ChB=Ch* B,那么接收到ChB的伪造算法输出错误并结束交互协议。如果ChB≠Ch* B,那么伪造算法响应于从核实方算法V接收到的质询ChB按如下方式生成将发送回核实方(核实方算法V)的响应Rsp。
如果ChB=0,那么伪造算法设定Rsp←r。如果ChB=1,那么伪造算法设定Rsp←z。然后,伪造算法将响应Rsp发送给核实方(核实方算法V)。此外,将步骤5的操作表示为Rsp←Mb,3(ChB;StB)。
步骤6:
如果ChB≠Ch* B,由于将响应Rsp发送给核实方算法V,因此核实方算法V执行核实处理0/1←Decb(F,y;CmtA,ChA,CmtB,ChB,Rsp)。
以上,描述了对SSH10b公钥认证方案的伪造算法。如上所述,即使s是任意选择的,也可以把会以概率1/2(ChB≠Ch* B的概率)通过核实的Rsp发送回核实方。因此,在一次交互协议中伪造将以概率1/2成功。这样,将采用上述重复配置。
(补充)
以上,描述了SSH10a公钥认证方案、SSH10b公钥认证方案、它们的伪造算法以及交互协议的重复配置。这些公钥认证方案是证明方利用一对钥(公钥y,密钥s)向核实方证明“对于y证明方知道满足y=F(s)的s”的方案。因此,如果执行将通过核实接受的交互,那么不可能防止核实方知道信息“执行核实的证明方使用了s”。再者,对于在这些方案中使用的F,不能确保抗冲突性(collision resistance)。结果,利用这些公钥认证方案,不知道在采用并行重复配置的情况中是否绝对确保了对主动攻击足够的安全级别。
因此,本发明人设计了在采用并行重复配置的同时执行这些公钥认证方案时确保对主动攻击足够的安全级别的机制。以下,参照具体示例详细描述该机制。
<2:第一实施例(本方法#1)>
首先,描述本公开的第一实施例(以下,本方法#1)。
[2-1:概述]
本方法#1对SSH10a公钥认证方案和SSH10b公钥认证方案应用在采用并行重复配置的情况下也确保对主动攻击的足够的安全级别的机制。如已经描述的,不知道是否确保对主动攻击足够的安全级别的原因是因为对于要使用的函数F未确保抗冲突性,并且还因为不可能防止核实方知道信息“执行核实的证明方使用了s”。因此,如果可以在交互协议中防止核实方知道信息“执行核实的证明方使用了s”,那么可以确保对主动攻击的足够安全级别。
因此,本发明人设计了使密钥s和公钥y成为复用钥(multiplexedkeys)的方法。该方法以L(L≥2)个s1,…,sL∈Kn为密钥,以对于m个多次n元多项式F(x)=(f1(x),…,fm(x))满足(y1,…,yL)=(F(s1),…,F(sL))的y1,…,yL∈Km为公钥。此外,该方法是在不使得在交互协议中使用了哪个si被知道的情况下证明“关于针对i=1,…,L中的L-1个i满足yi=F(si)的si的知识”的方法。当应用该方法时,不会泄漏与在交互协议中“使用了哪个si”有关的信息,并且将保证对主动攻击足够的安全级别。
根据本方法#1的方案,核实方向证明方发送针对i=1,…,L的质询Ch1,…,ChL(核实模式),并且接收到质询Ch1,…,ChL的证明方选择L-1个质询Chi并给出响应。当利用该方法,知道s1,…,sL的证明方能够对所有L个质询Chi进行响应,但是不知道s1,…,sL的伪造方的伪造将以某个概率失败。再者,由于证明方只需对L-1个质询Chi进行响应,因此可以在不使用某个质询Chi的si的情况下实现认证。即,核实方不知道在交互协议中是否使用了某个si
[2-2:应用于SSH10a公钥认证方案]
首先,描述将本方法#1的方案应用于SSH10a公钥认证方案的情况的交互协议。图9是描述将本方法#1应用于SSH10a公钥认证方案的方案的情况的交互协议的说明图。该交互协议由钥生成算法Gen、证明方算法P以及核实方算法V构成。以下,描述每个算法的内容。
(钥生成算法Gen)
首先,将描述钥生成算法Gen的结构。钥生成算法Gen生成在环K上定义的m个二次n元多项式f1(x1,…,xn),…,fm(x1,…,xn),和L个向量s1,…,sL∈Kn。因此,将具有n个变量的向量(x1,…,xn)表示为x,将m个n元二次多项式(f1(x),…,fm(x))表示为F(x)。随后,钥生成算法Gen计算y1=F(s1),…,yL=F(sL)。然后,钥生成算法Gen把(F,y1,…,yL)设定为公钥pk,把(s1,…,sL)设定为密钥。
(证明方算法P,核实方算法V)
下面,参照图9描述证明方算法P和核实方算法V的结构。本方案#1的交互协议使得核实方证明“证明方知道满足L-1个yi=F(si)的si”,而根本不向核实方泄漏关于“使用了或者未使用哪个si”的信息。此外,假设在证明方与核实方之间共享由钥生成算法Gen生成的公钥pk。此外,假设钥生成算法Gen生成的密钥sk由证明方秘密管理。
本方案#1的交互协议由图9所示的处理步骤1到4构成。以下,描述每个步骤的处理。
步骤1:
首先,证明方算法P生成向量ri,ti∈Kn和向量ei∈Km,其中i=1,…,L。接着,证明方算法P计算(Cmti;Sti)←Pa,1(F,yi,si;ri,ti,ei)。然后,证明方算法P将Cmt1,…,CmtL发送给核实方(核实方算法V)。
步骤2:
接收到Cmt1,…,CmtL的核实方算法V从三种核实模式中选择要使用的核实模式。然后,核实方算法V向证明方(证明方算法P)发送表示所选择的核实模式的质询Ch1,…,ChLR{0,1,2}。
步骤3:
接收到Ch1,…,ChL的证明方算法P从i=1,…,L随机选择不对其给予响应的质询Chi的一个下标i(以下表示为i*)。接着,证明方算法P针对i∈{1,…,L}\{i*}计算Rspi←Pa,2(Chi;Sti)。然后,证明方算法P将(Rsp1,…,Rspi*-1,Rspi*+1,…,RspL,i*)发送给核实方(核实方算法V)。
步骤4:
接收到(Rsp1,…,Rspi*-1,Rspi*+1,…,RspL,i*)的核实方算法V针对i∈{1,…,L}\{i*}执行0/1←Deca(F,yi;Cmti,Chi,Rspi)。然后,在对于所有i∈{1,…,L}\{i*}都接受(输出1)的情况下,核实方算法V认为核实成立。
以上,描述了将本方法#1的方案应用于SSH10a公钥认证方案的情况的交互协议。对于该交互协议,由于SSH10a公钥认证方案的安全性,确保了:对于每个i=1,…,L,没有si的伪造方能够仅以2/3或更低的概率对发自核实方的质询Chi正确地作出响应。此外,通过应用本方法#1,由于变得必须针对L-1或更多个i对发自核实方的质询Chi正确地作出响应,因此伪造的成功概率将是(2/3)L+L(1/3)(2/3)L-1=(2+L)2L-1/3L
此外,在上述交互协议中,使用了所有s1,…,sL,但是如果L≤3,当未使用i=1,…,L中的一个的si时,可以与证明方完全一样地操作,而不使核实方知道未使用哪个si。因此,将描述在不使用一个si的情况下能够实现与上述交互协议相同的认证的交互协议(修改示例1到3)
[2-3:应用于SSH10a公钥认证方案(修改例1)]
首先,将参照图10描述将本方法#1的方案应用于SSH10a公钥认证方案的情况的交互协议(修改示例1)。图10是描述将本方法#1的方案应用于SSH10a公钥认证方案的情况的交互协议(修改例1)的说明图。该交互协议包括钥生成算法Gen、证明方算法P以及核实方算法V。顺便指出,在核实方算法V中使用上述伪造算法的结构。此外,将对于L=3的情况给出说明。此外,令未使用的si的下标为i0。以下,将描述每个算法的内容。
(钥生成算法Gen)
首先,将描述钥生成算法Gen的结构。钥生成算法Gen生成在环K上定义的m个二次n元多项式f1(x1,…,xn),…,fm(x1,…,xn),和L个向量s1,…,sL∈Kn。顺便指出,使用适当选择的向量作为si0。此外,将n个变量(x1,…,xn)的向量表示为x,m个n元二次多项式(f1(x),...,fm(x))将被表示成F(x)。接着,钥生成算法Gen计算y1=F(s1),…,yL=F(sL)。此外,不必确保yi0=F(si0)。然后,钥生成算法Gen把(F,y1,…,yL)设定为公钥pk,把(s1,…,sL)设定为私钥。
(证明方算法P,核实方算法V)
下面,参照图10描述证明方算法P和核实方算法V的结构。此外,假设在证明方与核实方之间共享由钥生成算法Gen生成的公钥pk。此外,假设钥生成算法Gen生成的密钥sk由证明方秘密管理。
本方案#1的交互协议由图10所示的处理步骤1到4构成。以下,描述每个步骤的处理。
步骤1:
首先,证明方算法P生成向量ri,ti∈Kn和向量ei∈Km,其中i=1,2,3。接着,证明方算法P选择一个Ch*∈{0,1,2}。该Ch*对应于其中证明方不能针对i0的组给出响应的核实模式。接着,如果i≠i0,那么证明方算法P计算(Cmti;Sti)←Pa,1(F,yi,si;ri,ti,ei)。另一方面,如果i=i0,那么证明方算法P计算(Cmti;Sti)←Ma,1(F,yi;Ch*,si,ri,ti,ei)。然后,证明方算法P将Cmt1,Cmt2以及Cmt3发送给核实方(核实方算法V)。
步骤2:
接收到Cmt1,Cmt2以及Cmt3的核实方算法V从三种核实模式中选择要使用的核实模式。然后,核实方算法V向证明方(证明方算法P)发送表示所选择的核实模式的质询Ch1,Ch2,Ch3R{0,1,2}。
步骤3:
接收到Ch1,Ch2以及Ch3的证明方算法P按以下方式从i=1,…,L选择不对其给予响应的一个质询Chi的下标i(以下表示为i*)。如果Chi0=Ch*,那么证明方算法V设定i*←i0。另一方面,如果Chi0≠Ch*,那么证明方算法V从i*∈{1,2,3}\{i0}随机选择i*。如果使用设定i*的该方法,那么无论核实方请求哪种核实模式,i*都会以1/3的概率分别具有值1,2以及3中的任何一个。即,完全隐藏了表示i0具有的1,2以及3中的值的信息。
接着,按以下方式,证明方算法P针对i∈{1,2,3}\{i*}计算Rspi。如果i≠i0,证明方算法P计算Rspi←Pa,2(Chi;Sti)。如果i=i0,证明方算法P计算Rspi←Ma,2(Chi;Sti)。然后,证明方算法P将(Rsp1,…,Rspi*-1,Rspi*+1,…,RspL,i*)发送给核实方(核实方算法V)。
步骤4:
接收到(Rsp1,…,Rspi*-1,Rspi*+1,…,RspL,i*)的核实方算法V针对i∈{1,2,3}\{i*}执行0/1←Deca(F,yi;Cmti,Chi,Rspi)。然后,在对于所有i∈{1,2,3}\{i*}都接受(输出1)的情况下,核实方算法V认为核实成立。
以上,描述了将本方法#1的方案应用于SSH10a公钥认证方案的情况的交互协议(修改示例)。以L=3的情况给出了说明,但是对于L=2的情况同样如此。例如,按以下方式从i=1,2设定将不使用的一个i(i*)。如果Chi0=Ch*,那么将设定i*=i0。另一方面,如果Chi0≠Ch*,那么将以1/4的概率设定i*=i0,并且将3/4的概率设定i*≠i0。利用这种设定,无论核实方请求了哪种核实模式,i*都会以1/2的概率分别具有值1和2中的任何一个。即,完全隐藏了表示i0具有的1和2中的值的信息。
[2-4:应用于SSH10a公钥认证方案(修改例2)]
接着,将参照图11描述将本方法#1的方案应用于SSH10a公钥认证方案的情况的交互协议(修改示例2)。此外,修改示例2是图9所示的交互协议的修改示例。图11是描述将本方法#1的方案应用于SSH10a公钥认证方案的情况的交互协议(修改例2)的说明图。该交互协议包括钥生成算法Gen、证明方算法P以及核实方算法V。以下,将描述每个算法的内容。
(钥生成算法Gen)
首先,将描述钥生成算法Gen的结构。钥生成算法Gen生成在环K上定义的m个二次n元多项式f1(x1,…,xn),…,fm(x1,…,xn)和两个向量s1,s2∈Kn。此外,将n个变量(x1,…,xn)的向量表示为x,m个n元二次多项式(f1(x),...,fm(x))将被表示成F(x)。接着,钥生成算法Gen计算y1=F(s1)和y2=F(s2)。然后,钥生成算法Gen把(F,y1,y2)设定为公钥pk,把(s1,s2)设定为私钥。
(证明方算法P,核实方算法V)
下面,参照图11描述证明方算法P和核实方算法V的结构。本方案#1的交互协议使得核实方证明“证明方知道满足一个yi=F(si)的si”,而根本不向核实方泄漏关于“使用了或者没有使用哪个si”的信息。此外,假设在证明方与核实方之间共享由钥生成算法Gen生成的公钥pk。此外,假设钥生成算法Gen生成的密钥sk由证明方秘密管理。
本方案#1的交互协议由图11所示的处理步骤1到4构成。以下,描述每个步骤的处理。
步骤1:
首先,证明方算法P生成向量r1,t1∈Kn和向量e1∈Km。接着,证明方算法P计算(Cmt1;St1)←Pa,1(F,y1,s1;r1,t1,e1)和(Cmt2;St2)←Pa,1(F,y2,s2;r1,t1,e1)。此外,Cmt1是(c11,c12,c13)并且Cmt2是(c21,c12,c13)。然后,证明方算法P将c11,c12,c13以及c2x发送到核实方(核实方算法V)。
步骤2:
接收到c11,c12,c13以及c21的核实方算法V选择要使用的核实模式。然后,核实方算法V向证明方(证明方算法P)发送表示所选择的核实模式的质询组(Ch1,Ch2)∈{0,1,2}×{0,1,2}。
步骤3:
接收到Ch1和Ch2的证明方算法P随机选择对其给予响应的质询Chi的下标i。接着,证明方算法P对于所选择的i计算Rspi←Pa,2(Chi;Sti,r1,t1,e1)。然后,证明方算法P将(Rspi,i)发送给核实方(核实方算法V)。
步骤4:
接收到Rspi,i的核实方算法V执行0/1←Deca(F,yi;(ci1,c12,c13,),Chi,Rspi)。然后,在输出是1的情况下(在接受的情况下),核实方算法V认为核实成立。
以上,描述了将本方法#1的方案应用于SSH10a公钥认证方案的情况的交互协议(修改示例2)。本修改示例的特征在于,使得在生成Cmt1,St1,Cmt2以及St2时使用的随机数组(r1,t1,e1)和(r2,t2,e2)相同。通过使这些随机数相同,构成Cmt1=(c11,c12,c13)和Cmt2=(c21,c22,c23)的元素中的(c12,c13)和(c22,c23)将是相同的值。这样,在将Cmt1和Cmt2从证明方发送到核实方时只需发送四个值(c11,c12,c13,c21),因此可以减小通信量。此外,在本修改示例的情况下,在第三遍中将只会公开与一个组相关的信息,因此即使如上所述使得一部分随机数相同,也不会丧失零知识性。
[2-5:应用于SSH10a公钥认证方案(修改例3)]
接着,将参照图12描述将本方法#1的方案应用于SSH10a公钥认证方案的情况的交互协议(修改示例3)。此外,修改示例3是图11所示的交互协议(修改示例2)的修改示例。图12是描述将本方法#1的方案应用于SSH10a公钥认证方案的情况的交互协议(修改例3)的说明图。该交互协议包括钥生成算法Gen、证明方算法P以及核实方算法V。以下,将描述每个算法的内容。
(钥生成算法Gen)
首先,将描述钥生成算法Gen的结构。钥生成算法Gen生成在环K上定义的m个二次n元多项式f1(x1,…,xn),…,fm(x1,…,xn)和两个向量s1,s2∈Kn。此外,将n个变量(x1,…,xn)的向量表示为x,m个n元二次多项式(f1(x),...,fm(x))将被表示成F(x)。接着,钥生成算法Gen计算y1=F(s1)和y2=F(s2)。然后,钥生成算法Gen把(F,y1,y2)设定为公钥pk,把(s1,s2)设定为私钥。
(证明方算法P,核实方算法V)
下面,参照图12描述证明方算法P和核实方算法V的结构。本方案#1的交互协议使得核实方证明“证明方知道满足一个yi=F(si)的si”,而根本不向核实方泄漏关于“使用了或者没有使用哪个si”的信息。此外,假设在证明方与核实方之间共享由钥生成算法Gen生成的公钥pk。此外,假设钥生成算法Gen生成的密钥sk由证明方秘密管理。
本方案#1的交互协议由图12所示的处理步骤1到4构成。以下,描述每个步骤的处理。
步骤1:
首先,证明方算法P生成向量r1,t1∈Kn和向量e1∈Km。接着,证明方算法P计算(Cmt1;St1)←Pa,1(F,y1,s1;r1,t1,e1)和(Cmt2;St2)←Pa,1(F,y2,s2;r1,t1,e1)。此外,Cmt1是(c11,c12,c13)并且Cmt2是(c21,c12,c13)。接着,证明方算法P将c11,c12,c13以及c21发送到核实方(核实方算法V)。
步骤2:
接收到c11,c12,c13以及c21的核实方算法V选择要使用的核实模式。此时,核实方算法V从(Ch1,Ch2)∈{(0,0),(1,1),(1,2),(2,1),(2,2)}选择核实模式(一组质询(Ch1,Ch2))。然后,核实方算法V向证明方(证明方算法P)发送表示所选择的核实模式的质询组(Ch1,Ch2)。
步骤3:
接收到Ch1和Ch2的证明方算法P随机选择对其给予响应的质询Chi的下标i。接着,证明方算法P对于所选择的i计算Rspi←Pa,2(Chi;Sti,r1,t1,e1)。然后,证明方算法P将(Rspi,i)发送给核实方(核实方算法V)。
步骤4:
接收到(Rspi,i)的核实方算法V执行0/1←Deca(F,yi;(ci1,c12,c13),Chi,Rspi)。然后,在输出是1的情况下(在接受的情况下),核实方算法V认为核实成立。
以上,描述了将本方法#1的方案应用于SSH10a公钥认证方案的情况的交互协议(修改示例3)。本修改示例的特征在于,可用的核实模式被限制为5个模式(Ch1,Ch2)∈{(0,0),(1,1),(1,2),(2,1),(2,2)}。
在如上所述使Cmt1的元素(c12,c13)和Cmt2的元素(c22,c23)相同的情况下,对Ch1=0的响应(对c12和c13的响应)和对Ch2=0的响应(对c22和c23的响应)将是相同的。因此,“可以对(Ch1,Ch2)=(0,0)作出响应”意味着“可以对Ch1=0和Ch2=0两者作出响应”。因此,可以对(Ch1,Ch2)=(0,0)作出响应的证明方能够对(Ch1,Ch2)=(0,1),(0,2),(1,0),(2,0)中的任何一个作出响应。因此,核实方执行5个模式(Ch1,Ch2)=(0,0),(1,1),(1,2),(2,1),(2,2)的核实是足够的。
由于上述原因,确保了:只要不知道密钥sk,就不可能对上述所有5种模式作出响应。即,不知道密钥sk的人最多只能对四个模式作出响应,因而伪造概率最大是4/5。在图9所示的交互协议的情况下,在L=2的情况下的伪造概率是8/9。因此,应用修改示例3的结构将减小伪造概率。
[2-6:应用于SSH10b公钥认证方案]
接着,将参照图13描述将本方法#1的方案应用于SSH10b公钥认证方案的情况的交互协议。图13是描述将本方法#1的方案应用于SSH10b公钥认证方案的情况的交互协议的说明图。该交互协议包括钥生成算法Gen、证明方算法P以及核实方算法V。以下,将描述每个算法的内容。
(钥生成算法Gen)
首先,将描述钥生成算法Gen的结构。钥生成算法Gen生成m个二次n元多项式f1(x1,…,xn),…,fm(x1,…,xn)和L个向量s1,…,sL∈Kn。此外,将n个变量(x1,…,xn)的向量表示为x,m个n元二次多项式(f1(x),...,fm(x))将被表示成F(x)。接着,钥生成算法Gen计算y1=F(s1),…,yL=F(sL)。然后,钥生成算法Gen把(F,y1,…,yL)设定为公钥pk,把(s1,…,sL)设定为私钥。
(证明方算法P,核实方算法V)
下面,参照图13描述证明方算法P和核实方算法V的结构。本方案#1的交互协议使得核实方证明“证明方知道满足L-1个yi=F(si)的si”,而根本不向核实方泄漏关于“使用了或者没有使用哪个si”的信息。此外,假设在证明方与核实方之间共享由钥生成算法Gen生成的公钥pk。此外,假设钥生成算法Gen生成的密钥sk由证明方秘密管理。
本方案#1的交互协议由图13所示的处理步骤1到6构成。以下,描述每个步骤的处理。
步骤1:
首先,证明方算法P生成向量ri,ti∈Kn和向量ei∈Km,其中i=1,…,L。接着,证明方算法P计算(CmtA,i;StA,i)←Pa,1(F,yi,si;ri,ti,ei)。接着,证明方算法P将(CmtA,1,…,CmtA,L)发送到核实方(核实方算法V)。
步骤2:
接收到(CmtA,1,…,CmtA,L)的核实方算法V从环K的q个类型的元素选择一组L个随机数(α1,…,αL)。然后,核实方算法V将质询(ChA,1,…,ChA,L)=(α1,…,αL)发送到证明方(证明方算法P)。
步骤3:
接收到(ChA,1,…,ChA,L)的证明方算法P针对i=1,…,L计算(CmtB,i;StB,i)←Pb,2(ChA,i;StA,i)。然后,证明方算法P将(CmtB,1,…,CmtB,L)发送到核实方(核实方算法V)。
步骤4:
接收到(CmtB,1,…,CmtB,L)的核实方算法V对于每个i=1,…,L从两个核实模式选择要使用的核实模式。然后,核实方算法V将表示所选择的核实模式的质询ChB,1,…,ChB,LR{0,1}发送到证明方(证明方算法P)。
步骤5:
接收到ChB,1,…,ChB,L的证明方算法P从i=1,…,L随机选择不对其给予响应的一个i(以下,i*)。接着,证明方算法P计算Rspi←Pb,3(ChB,i;StB,i)。然后,证明方算法P将(Rsp1,…,Rspi*-1,Rspi*+1,…,RspL,i*)发送给核实方(核实方算法V)。
步骤6:
接收到(Rsp1,…,Rspi*-1,Rspi*+1,…,RspL,i*)的核实方算法V针对i∈{1,…,L}\{i*}执行0/1←Decb(F,yi;CmtA,i,ChA,i,CmtB,i,ChB,i,Rspi)。然后,在对于所有i∈{1,…,L}\{i}都接受(输出1)的情况下,核实方算法V认为核实成立。
以上,描述了将本方法#1的方案应用于SSH10b公钥认证方案的情况的交互协议。对于该交互协议,由于SSH10b公钥认证方案的安全性,确保了:对于每个i=1,…,L,没有si的伪造方能够仅以1/2+1/2q或更低的概率对发自核实方的质询Chi正确地作出响应。此外,通过应用本方法#1,由于变得必须针对L-1或更多个i对发自核实方的质询Chi正确地作出响应,因此伪造的成功概率将是(1/2+1/2q)L+L(1/2-1/2q)(1/2+1/2q)L-1
此外,在上述交互协议中,使用了所有s1,…,sL,但是如果L=2,即使未使用i=1,…,L中的一个的si,也可以与证明方完全一样地操作,而不使核实方知道未使用哪个si。因此,将描述在不使用一个si的情况下能够实现与上述交互协议相同的认证的交互协议(修改示例)。
[2-7:应用于SSH10b公钥认证方案(修改例)]
以下,将参照图14描述将本方法#1的方案应用于SSH10b公钥认证方案的情况的交互协议(修改示例)。图14是描述将本方法#1的方案应用于SSH10b公钥认证方案的情况的交互协议(修改例)的说明图。该交互协议包括钥生成算法Gen、证明方算法P以及核实方算法V。顺便指出,在核实方算法V中使用上述伪造算法的结构。此外,将对于L=2的情况给出说明。此外,令未使用的si的下标为i0。以下,将描述每个算法的内容。
(钥生成算法Gen)
首先,将描述钥生成算法Gen的结构。钥生成算法Gen生成在环K上定义的m个二次n元多项式f1(x1,…,xn),…,fm(x1,…,xn),和L个向量s1,…,sL∈Kn。顺便指出,使用适当选择的向量作为si0。此外,将n个变量(x1,…,xn)的向量表示为x,m个n元二次多项式(f1(x),...,fm(x))将被表示成F(x)。接着,钥生成算法Gen计算y1=F(s1),…,yL=F(sL)。此外,不必确保yi0=F(si0)。然后,钥生成算法Gen把(F,y1,…,yL)设定为公钥pk,把(s1,…,sL)设定为私钥。
(证明方算法P,核实方算法V)
下面,参照图14描述证明方算法P和核实方算法V的结构。此外,假设在证明方与核实方之间共享由钥生成算法Gen生成的公钥pk。此外,假设钥生成算法Gen生成的密钥sk由证明方秘密管理。
本方案#1的交互协议由图14所示的处理步骤1到6构成。以下,描述每个步骤的处理。
步骤1:
首先,证明方算法P生成向量ri,ti∈Kn和向量ei∈Km,其中i=1,2。接着,证明方算法P选择一个ChB *∈{0,1}。该ChB *对应于其中证明方不能针对i0的组给出响应的核实模式。接着,如果i≠i0,那么证明方算法P计算(CmtA,i;StA,i)←Pb,1(F,yi,si;ri,ti,ei)。此外,如果i=i0,那么证明方算法P计算(CmtA,i;StA,i)←Mb,1(F,yi;ChB *,si,ri,ti,ei)。然后,证明方算法P将(CmtA,1,CmtA,2)发送给核实方(核实方算法V)。
步骤2:
接收到(CmtA,1,CmtA,2)的核实方算法V从环K的q个类型的元素选择一组两个随机数(α12)。然后,核实方算法V将质询(ChA,1,ChA,2)=(α12)发送到证明方(证明方算法P)。
步骤3:
接收到(ChA,1,ChA,2)的证明方算法P按以下方式针对i=1,2计算CmtB,i。如果i≠i0,那么证明方算法P计算(CmtB,i;StB,i)←Pb,2(ChA,i;StA,i)。如果i=i0,那么证明方算法P计算(CmtB,i;StB,i)←Mb,2(ChA,i;StA,i)。然后,证明方算法P将(CmtB,1,CmtB,2)发送到核实方(核实方算法V)。
步骤4:
接收到(CmtB,1,CmtB,2)的核实方算法V从两个核实模式选择要使用的核实模式。然后,核实方算法V将表示所选择的核实模式的质询(ChB,1,ChB,2)∈R{0,1}发送到证明方(证明方算法P)。
步骤5:
接收到(ChB,1,ChB,2)的证明方算法P按以下方式从i=1,2选择不对其给予响应的一个下标i(以下,i*)。如果Chi0=Ch*,那么证明方算法P设定Chi0≠Ch*。另一方面,如果i≠i0,那么证明方算法P随机进行设定,使得i*≠i0。如果利用这种设定i*的方法,那么无论核实方请求了哪种核实模式,i*都会以1/2的概率分别具有值1和2中的任何一个。即,完全隐藏了表示i0具有的1和2中的值的信息。
接着,按以下方式,证明方算法P针对i∈{1,2}\{i*}计算Rspi。如果i≠i0,证明方算法P计算Rspi←Pb,3(Chi;Sti)。如果i=i0,证明方算法P计算Rspi←Mb,3(Chi;Sti)。然后,证明方算法P将(Rsp1,Rsp2,i*)发送给核实方(核实方算法V)。
步骤6:
接收到(Rsp1,Rsp2,i*)的核实方算法V针对i∈{1,2}\{i*}执行0/1←Decb(F,yi;CmtA,i,ChA,i,CmtB,i,ChB,i,Rspi)。然后,在对于所有i∈{1,2}\{i}都接受(输出1)的情况下,核实方算法V认为核实成立。
以上,描述了将本方法#1的方案应用于SSH10b公钥认证方案的情况的交互协议(修改示例)。以L=2的情况给出了说明,但是对于L≥3的情况也可以实现同样的机制。
以上,描述了本公开的第一实施例。以SSH10a公钥认证方案和SSH10b公钥认证方案作为示例给出了以上说明,但是本方案#1的应用范围并不限于这些。也可以应用于SSH10a公钥认证方案和SSH10b公钥认证方案的修改示例以及其他公钥认证方案。例如,在上述示例中,将(F,y)设定为公钥,但是由于F是不依赖于密钥的参数,因此也可以使F成为整个系统共用的参数,而不是对每个证明方设置的参数。在此情况下,要单独公开的公钥将只有y,可以减小公钥的大小。此外,在上述交互协议中,对于i=1,…,L分别选择随机数α1,…,αL,但是可以使这些随机数成为一个共用的随机数。在此情况下,可以减小在发送质询ChA,i时的通信成本。
<3:第二实施例(本方法#2)>
接下来,将描述本公开的第二实施例(本方法#2)。
[3-1:概述]
本方法#2对SSH10a公钥认证方案和SSH10b公钥认证方案应用确保对主动攻击的足够的安全级别的机制。如已经描述的,不知道是否确保对主动攻击足够的安全级别的原因是因为对于要使用的函数F未确保抗冲突性,并且还因为不可能防止核实方知道信息“执行核实的证明方使用了s”。因此,如果可以在交互协议中防止核实方知道信息“执行核实的证明方使用了s”,那么可以确保对主动攻击的足够安全级别。
因此,本发明人设计了使密钥s和公钥y成为复用钥(multiplexedkeys)的方法。该方法以L(L≥2)个s1,…,sL∈Kn为密钥,以对于m个多次n元多项式F(x)=(f1(x),…,fm(x))满足(y1,…,yL)=(F(s1),…,F(sL))的y1,…,yL∈Km为公钥。此外,该方法是在不使得在交互协议中使用了哪个si被泄漏的情况下执行认证的方法。当应用该方法时,不会泄漏与在交互协议中“使用了哪个si”有关的信息,并且将保证对主动攻击足够的安全级别。
根据本方法#2的方案,核实方向证明方发送针对i=1,…,L的一组质询(Ch1 (0),…,ChL (0))和(Ch1 (1),…,ChL (1)),并且证明方选择这组质询中的一个并给出响应。通常,根据该方案,将Q组(Q≥2)质询发送到证明方,并且证明方选择一组质询并给出响应。在此,将描述Q=2的情况。知道s1,…,sL的证明方能够对两组质询给出响应,但是不知道s1,…,sL的伪造方对任一质询给出响应都会以某个概率失败,从而伪造失败。因此,对于一个i,证明方可以在不使用si的情况下对多组质询中的一个给出响应,因而即使执行了接受核实的交互协议,也不会使核实方知道在交互协议中使用了哪个si
[3-2:应用于SSH10a公钥认证方案]
首先,将参照图15描述将本方法#2的方案应用于SSH10a公钥认证方案的情况的交互协议。图15是描述将本方法#2的方案应用于SSH10a公钥认证方案的情况的交互协议的说明图。该交互协议包括钥生成算法Gen、证明方算法P以及核实方算法V。以下,将描述每个算法的内容。
(钥生成算法Gen)
首先,将描述钥生成算法Gen的结构。钥生成算法Gen生成在环K上定义的m个二次n元多项式f1(x1,…,xn),…,fm(x1,…,xn),和L个向量s1,…,sL∈Kn。此外,将n个变量(x1,…,xn)的向量表示为x,m个n元二次多项式(f1(x),...,fm(x))将被表示成F(x)。接着,钥生成算法Gen计算y1=F(s1),…,yL=F(sL)。然后,钥生成算法Gen把(F,y1,…,yL)设定为公钥pk,把(s1,…,sL)设定为私钥。
下面,参照图15描述证明方算法P和核实方算法V的结构。本方案#1的交互协议使得核实方证明“证明方知道满足L-1个yi=F(si)的si”,而根本不向核实方泄漏关于“使用了或者没有使用哪个si”的信息。此外,假设在证明方与核实方之间共享由钥生成算法Gen生成的公钥pk。此外,假设钥生成算法Gen生成的密钥sk由证明方秘密管理。
本方案#2的交互协议由图15所示的处理步骤1到4构成。以下,描述每个步骤的处理。
步骤1:
首先,证明方算法P生成向量ri,ti∈Kn和向量ei∈Km,其中i=1,…,L。接着,证明方算法P计算(Cmti;Sti)←Pa,1(F,yi,si;ri,ti,ei)。接着,证明方算法P将Cmt1,…,CmtL发送到核实方(核实方算法V)。
步骤2:
接收到Cmt1,…,CmtL的核实方算法V从三种核实模式中选择要使用的核实模式。此时,核实方算法V选择两种核实模式的组合。然后,核实方算法V向证明方(证明方算法P)发送表示所选择的核实模式的质询组(Ch1 (0),…,ChL (0)),(Ch1 (1),…,ChL (1))∈R{0,1,2}。
步骤3:
接收到(Ch1 (0),…,ChL (0))和(Ch1 (1),…,ChL (1))的证明方算法P随机选择对其给予响应的一组质询。此外,将该选择结果表示为d∈R{0,1}。接着,证明方算法P针对i∈{1,…,L}计算Rspi←Pa,2(Ch(d) i;Sti)。然后,证明方算法P将(Rsp1,…,RspL,d)发送给核实方(核实方算法V)。
步骤4:
接收到(Rsp1,…,RspL,d)的核实方算法V针对i∈{1,…,L}执行0/1←Deca(F,yi;Cmti,Ch(d) i,Rspi)。然后,在对于所有i∈{1,…,L}都接受(输出1)的情况下,核实方算法V认为核实成立。
以上,描述了将本方法#2的方案应用于SSH10a公钥认证方案的情况的交互协议。对于该交互协议,由于SSH10a公钥认证方案的安全性,确保了:对于每个i=1,…,L,没有si的伪造方能够仅以2/3或更低的概率对发自核实方的质询Chi正确地作出响应。此外,通过应用本方法#2,由于变得必须对于两组质询中的一组针对L个i对发自核实方的质询Chi正确地作出响应,因此伪造的成功概率将是(2/3)L+(2/3)L-(1/3)L=(2L+1-1)/3L
此外,在上述交互协议中,使用了所有s1,…,sL,但是如果L≤3,,当未使用i=1,…,L中的一个的si时,也可以与证明方完全一样地操作,而不使核实方知道未使用哪个si。因此,将描述在不使用一个si的情况下能够实现与上述交互协议相同的认证的交互协议(修改示例)。
[3-3:应用于SSH10a公钥认证方案(修改例)]
以下,将参照图16描述将本方法#2的方案应用于SSH10a公钥认证方案的情况的交互协议(修改示例)。图16是描述将本方法#2的方案应用于SSH10a公钥认证方案的情况的交互协议(修改例)的说明图。该交互协议包括钥生成算法Gen、证明方算法P以及核实方算法V。顺便指出,在核实方算法V中使用上述伪造算法的结构。此外,令未使用的si的下标为i0。以下,将描述每个算法的内容。
(钥生成算法Gen)
首先,将描述钥生成算法Gen的结构。钥生成算法Gen生成在环K上定义的m个二次n元多项式f1(x1,…,xn),…,fm(x1,…,xn),和L个向量s1,…,sL∈Kn。顺便指出,使用适当选择的向量作为si0。此外,将n个变量(x1,…,xn)的向量表示为x,m个n元二次多项式(f1(x),...,fm(x))将被表示成F(x)。接着,钥生成算法Gen计算y1=F(s1),…,yL=F(sL)。此外,不必确保yi0=F(si0)。然后,钥生成算法Gen把(F,y1,…,yL)设定为公钥pk,把(s1,…,sL)设定为私钥。
(证明方算法P,核实方算法V)
下面,参照图16描述证明方算法P和核实方算法V的结构。此外,假设在证明方与核实方之间共享由钥生成算法Gen生成的公钥pk。此外,假设钥生成算法Gen生成的密钥sk由证明方秘密管理。
本方案#2的交互协议由图16所示的处理步骤1到4构成。以下,描述每个步骤的处理。
步骤1:
首先,证明方算法P生成向量ri,ti∈Kn和向量ei∈Km,其中1,…,L。接着,证明方算法P选择一个Ch*∈{0,1,2}。该Ch*对应于其中证明方不能针对i0的组给出响应的核实模式。接着,如果i≠i0,那么证明方算法P计算(Cmti;Sti)←Pa,1(F,yi,si;ri,ti,ei)。另一方面,如果i=i0,那么证明方算法P计算(Cmti;Sti)←Ma,1(F,yi;Ch*,si,ri,ti,ei)。然后,证明方算法P将Cmt1,…,CmtL发送给核实方(核实方算法V)。
步骤2:
接收到Cmt1,…,CmtL的核实方算法V从三种核实模式中选择要使用的核实模式。此时,核实方算法V选择两种核实模式的组合。然后,核实方算法V向证明方(证明方算法P)发送表示所选择的核实模式的质询组(Ch1 (0),…,ChL (0)),(Ch1 (1),…,ChL (1))∈R{0,1,2}。此外,Chi (0)不等于Chi (1)
步骤3:
接收到(Ch1 (0),…,ChL (0))和(Ch1 (1),…,ChL (1))的证明方算法P按以下方式选择对其给予响应的一组质询。此外,将该选择结果表示为d∈R{0,1}。如果Chi0 (0)=Ch*(条件1),那么证明方算法P设定d←1。另一方面,如果Chi0 (1)=Ch*(条件2),那么证明方算法P设定d←0。在除了条件1和2以外的其他情况下,证明方算法P随机设定d∈{0,1}。根据该设定方法,无论核实方请求了哪种核实模式,d都会以1/2的概率分别具有值0和1中的任何一个,从而完全隐藏了表示i0具有的1,…,L中的值的信息。
在设定了d之后,证明方算法P按以下方式针对i∈{1,…,L}计算Rspi。如果i≠i0,证明方算法P计算Rspi←Pa,2(Ch(d) i;Sti)。另一方面,如果i=i0,证明方算法P计算Rspi←Ma,2(Ch(d) i;Sti)。然后,证明方算法P将(Rsp1,…,RspL,d)发送给核实方(核实方算法V)。
步骤4:
接收到(Rsp1,…,RspL,d)的核实方算法V针对i∈{1,…,L}执行0/1←Deca(F,yi;Cmti,Ch(d) i,Rspi)。然后,在对于所有i∈{1,…,L}都接受(输出1)的情况下,核实方算法V认为核实成立。
以上,描述了将本方法#2的方案应用于SSH10a公钥认证方案的情况的交互协议(修改例)。此外,在上述说明中,从核实方向证明方发送两组质询,但是也可以将第二个质询预先确定为例如Chi (1)=Chi (0)+1mod3。在此情况下,不必发送其中一组质询,从而可以减小通信量。
[3-4:应用于SSH10b公钥认证方案]
以下,将参照图17描述将本方法#2的方案应用于SSH10b公钥认证方案的情况的交互协议。图17是描述将本方法#2的方案应用于SSH10b公钥认证方案的情况的交互协议的说明图。该交互协议包括钥生成算法Gen、证明方算法P以及核实方算法V。以下,将描述每个算法的内容。
(钥生成算法Gen)
首先,将描述钥生成算法Gen的结构。钥生成算法Gen生成在环K上定义的m个二次n元多项式f1(x1,…,xn),…,fm(x1,…,xn),和L个向量s1,…,sL∈Kn。此外,将n个变量(x1,…,xn)的向量表示为x,m个n元二次多项式(f1(x),...,fm(x))将被表示成F(x)。接着,钥生成算法Gen计算y1=F(s1),…,yL=F(sL)。然后,钥生成算法Gen把(F,y1,…,yL)设定为公钥pk,把(s1,…,sL)设定为私钥。
(证明方算法P,核实方算法V)
下面,参照图17描述证明方算法P和核实方算法V的结构。本方案#2的交互协议使得核实方证明“证明方知道满足L-1个yi=F(si)的si”,而根本不向核实方泄漏关于“使用了或者没有使用哪个si”的信息。此外,假设在证明方与核实方之间共享由钥生成算法Gen生成的公钥pk。此外,假设钥生成算法Gen生成的密钥sk由证明方秘密管理。
本方案#2的交互协议由图17所示的处理步骤1到6构成。以下,描述每个步骤的处理。
步骤1:
首先,证明方算法P生成向量ri,ti∈Kn和向量ei∈Km,其中i=1,…,L。接着,证明方算法P计算(CmtA,i;StA,i)←Pa,1(F,yi,si;ri,ti,ei)。接着,证明方算法P将(CmtA,1,…,CmtA,L)发送到核实方(核实方算法V)。
步骤2:
接收到(CmtA,1,…,CmtA,L)的核实方算法V从环K的q个类型的元素选择一组L个随机数(α1,…,αL)。然后,核实方算法V将质询(ChA,1,…,ChA,L)=(α1,…,αL)发送到证明方(证明方算法P)。
步骤3:
接收到(ChA,1,…,ChA,L)的证明方算法P针对i=1,…,L计算(CmtB,i;StB,i)←Pb,2(ChA,i;StA,i)。然后,证明方算法P将(CmtB,1,…,CmtB,L)发送到核实方(核实方算法V)。
步骤4:
接收到(CmtB,1,…,CmtB,L)的核实方算法V从三个核实模式选择要使用的核实模式。此时,核实方算法V选择两种核实模式的组合。然后,核实方算法V将表示所选择的核实模式的质询组(ChB,1 (0),…,ChB,L (0)),(ChB,1 (1),…,ChB,L (1))∈R{0,1}L发送到证明方(证明方算法P)。此外,ChB,i (0)不等于ChB,i (1)
步骤5:
接收到(ChB,1 (0),…,ChB,L (0))和(ChB,1 (1),…,ChB,L (1))的证明方算法P随机选择对其给予响应的一组质询。此外,将该选择结果表示为d∈R{0,1}。接着,证明方算法P针对i∈{1,…,L}计算Rspi←Pb,2(ChB,i (d);StB,i)。然后,证明方算法P将(Rsp1,…,RspL,d)发送给核实方(核实方算法V)。
步骤6:
接收到(Rsp1,…,RspL,d)的核实方算法V针对i∈{1,…,L}执行0/1←Decb(F,yi;CmtA,i,ChA,i,CmtB,i,ChB,i (d),Rspi)。然后,在对于所有i∈{1,…,L}都接受(输出1)的情况下,核实方算法V认为核实成立。
以上,描述了将本方法#2的方案应用于SSH10b公钥认证方案的情况的交互协议。对于该交互协议,由于SSH10b公钥认证方案的安全性,确保了:对于每个i=1,…,L,没有si的伪造方能够仅以1/2+1/2q或更低的概率对发自核实方的质询正确地作出响应。此外,通过应用本方法#2,由于变得必须对于两组质询中的一组针对L个i对发自核实方的质询正确地作出响应,因此伪造的成功概率将是(1/2+1/2q)L+(1/2+1/2q)L=2(1/2+1/2q)L
此外,在上述交互协议中,使用了所有s1,…,sL,但是即使未使用i=1,…,L中的一个的si,也可以与证明方完全一样地操作,而不使核实方知道未使用哪个si。因此,将描述在不使用一个si的情况下能够实现与上述交互协议相同的认证的交互协议(修改示例)。
[3-5:应用于SSH10b公钥认证方案(修改例)]
首先,将参照图18描述将本方法#2的方案应用于SSH10b公钥认证方案的情况的交互协议(修改示例)。图18是描述将本方法#2的方案应用于SSH10b公钥认证方案的情况的交互协议(修改例)的说明图。该交互协议包括钥生成算法Gen、证明方算法P以及核实方算法V。顺便指出,在核实方算法V中使用上述伪造算法的结构。此外,令未使用的si的下标为i0。以下,将描述每个算法的内容。
(钥生成算法Gen)
首先,将描述钥生成算法Gen的结构。钥生成算法Gen生成在环K上定义的m个二次n元多项式f1(x1,…,xn),…,fm(x1,…,xn),和L个向量s1,…,sL∈Kn。顺便指出,使用适当选择的向量作为si0。此外,将n个变量(x1,…,xn)的向量表示为x,m个n元二次多项式(f1(x),...,fm(x))将被表示成F(x)。接着,钥生成算法Gen计算y1=F(s1),…,yL=F(sL)。此外,不必确保yi0=F(si0)。然后,钥生成算法Gen把(F,y1,…,yL)设定为公钥pk,把(s1,…,sL)设定为私钥。
(证明方算法P,核实方算法V)
下面,参照图18描述证明方算法P和核实方算法V的结构。此外,假设在证明方与核实方之间共享由钥生成算法Gen生成的公钥pk。此外,假设钥生成算法Gen生成的密钥sk由证明方秘密管理。
本方案#2的交互协议由图18所示的处理步骤1到6构成。以下,
描述每个步骤的处理。
步骤1:
首先,证明方算法P生成向量ri,ti∈Kn和向量ei∈Km,其中1,…,L。接着,证明方算法P选择一个ChB *∈{0,1}。该ChB *对应于其中证明方不能针对i0的组给出响应的核实模式。接着,对于i≠i0的情况,证明方算法P计算(CmtA,i;StA,i)←Pb,1(F,yi,si;ri,ti,ei)。此外,对于i=i0的情况,证明方算法P计算(CmtA,i;StA,i)←Mb,1(F,yi;ChB *,si,ri,ti,ei)。然后,证明方算法P将(CmtA,1,…,CmtA,L)发送给核实方(核实方算法V)。
步骤2:
接收到(CmtA,1,…,CmtA,L)的核实方算法V从环K的q个类型的元素选择一组L个随机数(α1,…,αL)。然后,核实方算法V将质询(ChA,1,…,ChA,L)=(α1,…,αL)发送到证明方(证明方算法P)。
步骤3:
接收到(ChA,1,…,ChA,L)的证明方算法P按以下方式针对i=1,…,L计算CmtB,i。首先,如果i≠i0,那么证明方算法P计算(CmtB,i;StB,i)←Pb,2(ChA,i;StA,i)。另一方面,如果i=i0,那么证明方算法P计算(CmtB,i;StB,i)←Mb,2(ChA,i;StA,i)。然后,证明方算法P将(CmtB,1,…,CmtB,L)发送到核实方(核实方算法V)。
步骤4:
接收到(CmtB,1,…,CmtB,L)的核实方算法V从三种核实模式中选择要使用的核实模式。此时,核实方算法V选择两种核实模式的组合。然后,核实方算法V向证明方(证明方算法P)发送表示所选择的核实模式的质询组(ChB,1 (0),…,ChB,L (0)),(ChB,1 (1),…,ChB,L (1))∈R{0,1}L。此外,ChB,i (0)不等于ChB,i (1)
步骤5:
接收到(ChB,1 (0),…,ChB,L (0))和(ChB,1 (1),…,ChB,L (1))的证明方算法P按以下方式选择对其给予响应的一组质询。此外,将该选择结果表示为d∈R{0,1}。如果ChB,i0 (0)=ChB *,那么证明方算法P设定d←1。另一方面,如果ChB,i0 (1)=ChB *,那么证明方算法P设定d←0。当使用该设定方法时,无论核实方请求了哪种核实模式,d都会以1/2的概率分别具有值0和1中的任何一个。即,完全隐藏了表示d具有的0和1中的值的信息。
接着,证明方算法P针对i=1,…,L计算Rspi。对于i≠i0的情况,证明方算法P计算Rspi←Pb,3(ChB,i (d);StB,i)。此外,对于i=i0的情况,证明方算法P计算Rspi←Mb,3(ChB,i (d);StB,i)。然后,证明方算法P将(Rsp1,…,RspL,d)发送给核实方(核实方算法V)。
步骤6:
接收到(Rsp1,…,RspL,d)的核实方算法V针对i=1,…,L执行0/1←Decb(F,yi;CmtA,i,ChA,i,CmtB,i,ChB,i (d),Rspi)。然后,在对于所有i=1,…,L都接受(输出1)的情况下,核实方算法V认为核实成立。
以上,描述了将本方法#2的方案应用于SSH10b公钥认证方案的情况的交互协议(修改例)。此外,在上述说明中,从核实方向证明方发送两组质询,但是也可以将第二个质询预先确定为例如Chi (1)=Chi (0)+1mod2。在此情况下,不必发送其中一组质询,从而可以减小通信量。
以上,描述了本公开的第二实施例。以SSH10a公钥认证方案和SSH10b公钥认证方案作为示例给出了以上说明,但是本方案#2的应用范围并不限于这些。也可以应用于SSH10a公钥认证方案和SSH10b公钥认证方案的修改示例以及其他公钥认证方案。例如,在上述示例中,将(F,y)设定为公钥,但是由于F是不依赖于密钥的参数,因此也可以使F成为整个系统共用的参数,而不是对每个证明方设置的参数。在此情况下,要单独公开的公钥将只有y,可以减小公钥的大小。此外,在上述交互协议中,对于i=1,…,L分别选择随机数α1,…,αL,但是可以使这些随机数成为一个共用的随机数。在此情况下,可以减小在发送质询ChA,i时的通信成本。
<4:补充>
在此补充说明本方法#1和#2。
[4-1:方案的扩展]
以上,描述了基于多次多元联立方程的问题的公钥认证方案。然而,本方法#1和#2的构思可以类似地应用于其他公钥认证方案。因此,作为示例,将介绍应用于基于校验子(Syndrome)解码问题的公钥认证方案的方法、应用于基于约束线性方程问题的公钥认证方案的方法、应用于基于排列核问题的公钥认证方案的方法、应用于基于代数面上的部分寻找问题的公钥认证方案的方法、应用于基于排列感知问题的公钥认证方案的方法。
(应用于校验子解码问题)
在例如Jacques Stern,“A New Identification Scheme Based onSyndrome Decoding,CRYPTO1993,p13-21”和Jacques Stern,“A NewParadigm for Public Key Identification,IEEE Transactions onInformation Theory,1996,p13-21”中公开了基于校验子解码问题的公钥认证方案。根据这些,该公钥认证方案包括3遍方案和5遍方案。
如SSH10a公钥认证方案那样,存在用于3遍方案的3种核实模式,并且存在能够应对这三种模式中的两种模式的伪造算法。此外,如SSH10b公钥认证方案那样,存在用于5遍方案的2种核实模式,并且存在能够应对这2种模式中的一种模式的伪造算法。因此,可以将与SSH10a公钥认证方案相关地在以上描述的方法应用于3遍方案,并且可以将与SSH10b公钥认证方案相关地在以上描述的方法应用于5遍方案。
(应用于约束线性方程问题)
在例如Jacques Stern,“Designing Identification Schemes with Keysof Short Size,CRYPTO1994,p164-173”中公开了基于约束线性方程问题的公钥认证方案。根据这些,该公钥认证方案也包括3遍方案和5遍方案。
如SSH10a公钥认证方案那样,存在用于3遍方案的3种核实模式,并且存在能够应对这三种模式中的两种模式的伪造模式。此外,如SSH10b公钥认证方案那样,存在用于5遍方案的2种核实模式,并且存在能够应对这2种模式中的一种模式的伪造算法。因此,可以将与SSH10a公钥认证方案相关地在以上描述的方法应用于3遍方案,并且可以将与SSH10b公钥认证方案相关地在以上描述的方法应用于5遍方案。
(应用于排列核问题)
在例如AdiShamir,“An Efficient Identification Scheme Based onPermuted Kernels(Extended Abstract),CRYPTO1989,p606-609”中公开了基于排列核问题的公钥认证方案。根据这些,存在针对该公钥认证方案的两种核实模式,并且存在能够应对这2种模式中的1种模式的伪造算法。因此,可以将以上与SSH10b公钥认证方案相关联地描述的方法应用于该公钥认证方案。
(应用于代数面上的部分寻找问题)
基于代数面上的部分寻找问题的公钥认证方案包括3遍方案和5遍方案(例如,见JP2010-125026A)。如SSH10a公钥认证方案那样,存在用于3遍方案的3种核实模式,并且存在能够应对这三种模式中的两种模式的伪造算法。此外,如SSH10b公钥认证方案那样,存在用于5遍方案的2种核实模式,并且存在能够应对这2种模式中的一种模式的伪造算法。因此,可以将与SSH10a公钥认证方案相关地在以上描述的方法应用于3遍方案,并且可以将与SSH10b公钥认证方案相关地在以上描述的方法应用于5遍方案。
(应用于排列感知问题)
在例如David Pointcheval,“A New Identification Scheme Based onthe Perceptrons Problem,EUROCRYPT1995,p319-328”和DavidPointcheval和Guillaume Poupard,“A New NP-Complete Problem andPublic-Key Identification,Des.Codes Cryptography,2003,p5-31”中公开了基于排列感知问题的公钥认证方案。根据这些,该公钥认证方案包括3遍方案和5遍方案。
存在用于3遍方案的4种核实模式,并且存在能够应对这4种模式中的3种模式的伪造算法。另一方面,存在用于5遍方案的3种核实模式,并且存在能够应对这3种模式中的2种模式的伪造算法。因此,如SSH10a公钥认证方案和SSH10b公钥认证方案那样,可以将本方法#1和#2的技术应用于该公钥认证方案。但是,当将本方法#1应用于该公钥认证方案时,要作出如下改变。
当将本方法#1应用于具有k个核实模式的方案,同时使密钥是包括L=k个钥的复用钥时,必须按以下方式从i=1,…,L选择不对其给出响应的一个i(以下,i*)。具体来说,选择i*的方法是在Chi0=Ch*的情况下选择i*←i0,并且在Chi0≠Ch*的情况下从i*∈{1,…,L}\{i0}随机选择i*的方法。
再者,当将本方法#1应用于具有k个核实模式的方案,同时使密钥是包括L(L<k)个钥的复用钥时,必须按以下方式从i=1,…,L选择不对其给出响应的一个i(以下,i*)。具体来说,选择i*的方法是在Chi0=Ch*的情况下选择i*←i0,并且在Chi0≠Ch*的情况下以(1-1/k)-1(1/L-1/k)的概率选择i*←i0并且以1-(1-1/k)-1(1/L-1/k)的概率从i*∈{1,…,L}\{i0}随机选择i*的方法。
根据上述方法,无论核实方请求了哪种核实模式,i*都会以1/L的概率具有1,…,L中的一个值,并且完全隐藏了表示i0具有的1,…,L中的值的信息。
如上所述,本方法#1和#2不仅可以应用于SSH10a公钥认证方案和SSH10b公钥认证方案,而且也可以应用于各种公钥认证方案。
[4-2:非交互公钥认证方案]
上述采用本方法#1和#2的公钥认证方案是核实方仅发送一个随机数的方案,因此可以修改成1遍(非交互)公钥认证方案。例如,可以使用通过将散列函数应用于在N次并行重复的配置中与核实方交换的内容而获得的东西,而不使用要从核实方发送的随机数。也可以将证明方选择的随机数添加到散列函数的参数。通过按这种方式由证明方自己使用散列函数而不是由核实方选择随机数,实现了与在核实方选择随机数的情况相同的操作。此外,期望使用理想的散列函数。再者,理想的是使重复次数N足够大,从而不能实现伪造。这种细化使得能够修改成非交互公钥认证方案。
[4-3:减小通信量的方法]
参照图19和20简单补充说明减小交互协议中的通信量的方法。
如已经描述的,在SSH10a公钥认证方案中的第一遍中将一组消息(c1,c2,c3)从证明方发送到核实方。此外,在以上说明中,使用了表示Cmt。在N次并行重复的配置的情况下,如图19所示,该组消息将是(c1,1,c1,2,c1,3,…,cN,1,cN,2,cN,3),并且通信量将极其大。因此,本发明人设计了一种用于将这些消息一起作为一个散列值发送的配置。
如图19所示,当采用该配置时,在第一遍中要发送的消息将只是一个散列值,可以极大地减小通信量。此外,从证明方将该散列值和未从发自证明方的对质询的响应恢复的散列值连同响应一起发送。根据该配置,在N次并行重复的配置的情况下,可以将要发送的信息的条数减小2N-1。同样的配置可以应用于SSH10b公钥认证方案,如图20所示。在此情况下,可以将要发送的信息的条数减小N-1。
以上,描述了本方法#1和#2的补充说明。
<5:硬件结构>
上述每种算法可以利用例如图21中所示的信息处理设备的硬件结构来执行。即,通过利用计算机程序,控制图21中所示的硬件,可实现每种算法的处理。另外,这种硬件的模式是任意的,可以是个人计算机、诸如移动电话机、PSH或PDA之类的移动信息终端、游戏机、接触或非接触式IC芯片、接触或非接触式IC卡、或者各种信息电器。此外,PHS是个人手提移动电话系统的缩写。另外,PDA是个人数字助手的缩写。
如图21中所示,所述硬件主要包括CPU902、ROM904、RAM906、主总线908和桥接器910。此外,所述硬件包括外部总线912、接口914、输入单元916、输出单元918、存储单元920、驱动器922、连接端口924和通信单元926。此外,CPU是中央处理器的缩写。另外,ROM是只读存储器的缩写。此外,RAM是随机存取存储器的缩写。
CPU902起算术处理单元或控制单元的作用,根据记录在ROM904、RAM906、存储单元920或可拆卸记录介质928上的各种程序,控制每个构成元件的整个操作或者部分操作。ROM904是保存加载到CPU902的程序,或者在算术运算中使用的数据等的装置。RAM906临时或永久保存加载到CPU902的程序,或者在程序的执行中被任意改变的各种参数等。
这些构成元件通过能够进行高速数据传输的主总线908相互连接。对其来说,主总线908通过桥接器910连接到其数据传输速度较低的外部总线912。此外,输入单元916例如是鼠标、键盘、触摸面板、按钮、开关或者控制杆。另外,输入单元916可以是通过利用红外线或者其他无线电波,能够传送控制信号的遥控器。
输出单元918例如是能够视觉或者听觉地把获得的信息通知用户的诸如CRT、LCD、PDP或ELD之类的显示设备,诸如扬声器或头戴式耳机之类的音频输出设备,打印机、移动电话机或者传真机。此外,CRT是阴极射线管的缩写。LCD是液晶显示器的缩写。PDP是等离子体显示面板的缩写。另外,ELD是电致发光显示器的缩写。
存储单元920是用于保存各种数据的设备。例如,存储单元920是诸如硬盘驱动器(HDD)之类的磁存储设备,半导体存储设备,光存储设备,或者磁光存储设备。HDD是硬盘驱动器的缩写。
驱动器922是读取记录在可拆卸记录介质928,比如磁盘、光盘、磁光盘或半导体存储器上的信息,或者把信息写入可拆卸记录介质928中的设备。例如,可拆卸记录介质928是DVD介质、蓝光介质、HD-DVD介质、各种半导体存储介质等等。当然,可拆卸记录介质928可以是例如电子设备或者上面安装非接触式IC芯片的IC卡。IC是集成电路的缩写。
连接端口924是诸如USB端口、IEEE1394端口、SCSI、RS-232C端口、或者连接诸如音频光端机之类的外部连接设备930的端口。例如,外部连接设备930是打印机、移动音乐播放器、数字照相机、数字摄像机或者IC记录器。此外,USB是通用串行总线的缩写。另外,SCSI是小型计算机系统接口的缩写。
通信单元926是待连接到网络932的通信设备,例如是用于有线或无线LAN、蓝牙(注册商标)或WUSB的通信卡、光通信路由器、ADSL路由器、或者用于接触或非接触式通信的设备。连接到通信单元926的网络932由有线连接或者无线连接的网络构成,例如是因特网、家用LAN、红外通信、可见光通信、广播或者卫星通信。此外,LAN是局域网的缩写。另外,WUSB是无线USB的缩写。此外,ADSL是非对称数字用户线路的缩写。
<6:总结>
最后,简要说明按照本公开的实施例的技术内容。这里陈述的技术内容可应用于各种信息处理设备,比如个人计算机、移动电话机、便携式游戏机、便携式信息终端、信息电器、车载导航系统等。
可如下所示,表述上述信息处理设备的功能结构。信息处理设备包括如下所述的钥保持单元和交互协议执行单元。钥保持单元用于保持L(L≥2)密钥si(i=1到L)和针对一组多元n(n≥2)次多项式F满足yi=F(si)的L个公钥yi。此外,交互协议执行单元用于与核实方执行用于证明知道满足yi=F(si)的(L-1)个密钥si的交互协议。此外,交互协议执行单元在与核实方执行交互协议时防止核实方知道使用了哪个密钥si
通过使密钥si成为复用钥并在执行交互协议时使用一部分密钥,并且还通过防止在交互协议中知道使用了哪个密钥si,在并行重复配置的情况下也可以确保对主动攻击的足够安全级别。即,即使伪造方试图假装核实方并且试图获得在认证中使用的密钥si的有关信息,即使对于核实方也不知道在交互协议中使用了哪个密钥si。即,即使在可以执行交互协议任意次数的情况下,证明方也不会泄漏密钥si的有关信息,并且可以确保对主动攻击的足够安全级别。
(备注)
上述信息处理设备是证明方或核实方的认证设备的示例。此外,ROM904、RAM906、存储单元920以及可拆卸记录介质928是钥保持单元的示例。此外,由钥生成算法Gen生成保持在钥保持单元中的密钥si和公钥yi。此外,证明方算法P和核实方算法V是交互协议执行单元的示例。此外,实际上,通过由CPU902的功能执行的证明方算法P或核实方算法V实现交互协议执行单元的功能。此外,由通过证明方算法P实现的功能来实现质询接收单元、质询选择单元、响应生成单元、响应发送单元以及消息发送单元的功能。此外,使用通信单元926的功能来交换信息。
以上参照附图描述了本发明的优选实施例,同时本发明当然并不限于以上示例。本领域的技术人员可以找到在所附权利要求的范围内的各种更改和修改,应当明白,它们自然落在本发明的技术范围内。
标符列表
Gen密钥生成算法
P证明方算法
V核实方算法

Claims (11)

1.一种认证设备,包括:
钥保持单元,用于保持L(L≥2)个密钥si(i=1到L)和针对一组多元n(n≥2)次多项式F满足yi=F(si)的L个公钥yi;和
交互协议执行单元,用于与核实方执行用于证明知道满足yi=F(si)的(L-1)个密钥si的交互协议,
其中所述交互协议执行单元包括:
质询接收单元,用于从核实方接收L个质询Chi
质询选择单元,用于从由所述质询接收单元接收的L个质询Chi任意选择(L-1)个质询Chi
响应生成单元,用于利用所述密钥si分别针对由所述质询选择单元选择的(L-1)个质询Chi生成(L-1)个响应Rspi,以及
响应发送单元,用于将由所述响应生成单元生成的(L-1)个响应Rspi发送到所述核实方。
2.根据权利要求1所述的认证设备,
其中所述交互协议执行单元还包括用于向所述核实方发送消息Cmti的消息发送单元,每个消息Cmti都对应于所述L个密钥si中的每个密钥,并且
其中所述质询接收单元接收表示由所述核实方根据所述消息发送单元发送的每个消息Cmti从k(k≥2)种核实模式中选择的核实模式的质询Chi
3.根据权利要求2所述的认证设备,
其中,在消息Cmti=(ci,1,…,ci,N)的情况下,
所述消息发送单元利用单向函数H计算新消息Cmt’=H(Cmt1,…,CmtL),并将该消息Cmt’发送到所述核实方,并且
所述响应发送单元连同所述响应Rspi一起发送所述核实方即使使用该响应Rspi也不能恢复的消息Cmti的元素。
4.根据权利要求2所述的认证设备,
其中所述钥保持单元不保持所述L个密钥si中的一个密钥si0(1≤i0≤L),并且
其中所述交互协议执行单元基于伪造算法执行要在所述交互协议中执行的与所述密钥si0相关的处理。
5.一种认证设备,包括:
钥保持单元,用于保持L个密钥si(i=1到L)和针对一组多元n(n≥2)次多项式F满足yi=F(si)的L个公钥yi
质询接收单元,用于从核实方接收Q组(Q≥2)L个质询Chi (j)(j=1到Q);
质询选择单元,用于从由所述质询接收单元接收的Q组L个质询Chi (j)中任意选择一组L个质询Chi (j)
响应生成单元,用于利用所述密钥si分别针对由所述质询选择单元选择的L个质询Chi (j)生成L个响应Rspi;以及
响应发送单元,用于将由所述响应生成单元生成的L个响应Rspi发送到所述核实方。
6.根据权利要求5所述的认证设备,
其中所述交互协议执行单元还包括用于向所述核实方发送分别与所述L个密钥si相对应的消息Cmti的消息发送单元,并且
其中所述质询接收单元接收表示由所述核实方根据所述消息发送单元发送的每个消息Cmti从k(k≥2)种核实模式中选择的核实模式的质询Chi (j)
7.根据权利要求6所述的认证设备,
其中,在消息Cmti=(ci,1,…,ci,N)的情况下,
所述消息发送单元利用单向函数H计算新消息Cmt’=H(Cmt1,…,CmtL),并将该消息Cmt’发送到所述核实方,并且
所述响应发送单元连同所述响应Rspi一起发送所述核实方即使使用该响应Rspi也不能恢复的消息Cmti的元素。
8.一种认证方法,包括:
生成L(L≥2)个密钥si(i=1到L)和针对一组多元n(n≥2)次多项式F满足yi=F(si)的L个公钥yi;和
与核实方执行用于证明知道满足yi=F(si)的(L-1)个密钥si的交互协议;
其中所述执行包括:
从核实方接收L个质询Chi
从已经接收的L个质询Chi任意选择(L-1)个质询Chi
利用所述密钥si分别针对已经选择的(L-1)个质询Chi生成(L-1)个响应Rspi;以及
将已经生成的(L-1)个响应Rspi发送到所述核实方。
9.一种用于使计算机实现以下功能的程序:
钥保持功能,用于保持L(L≥2)个密钥si(i=1到L)和针对一组多元n(n≥2)次多项式F满足yi=F(si)的L个公钥yi;和
交互协议执行功能,用于与核实方执行用于证明知道满足yi=F(si)的(L-1)个密钥si的交互协议,
其中所述交互协议执行功能包括:
质询接收功能,用于从核实方接收L个质询Chi
质询选择功能,用于从由所述质询接收功能接收的L个质询Chi任意选择(L-1)个质询Chi
响应生成功能,用于利用所述密钥si分别针对由所述质询选择功能选择的(L-1)个质询Chi生成(L-1)个响应Rspi,以及
响应发送功能,用于将由所述响应生成功能生成的(L-1)个响应Rspi发送到所述核实方。
10.一种认证方法,包括:
生成L个密钥si(i=1到L)和针对一组多元n(n≥2)次多项式F满足yi=F(si)的L个公钥yi
从核实方接收Q组(Q≥2)L个质询Chi (j)(j=1到Q);
从已经接收的Q组L个质询Chi (j)中任意选择一组L个质询Chi(j)
利用所述密钥si分别针对已经选择的L个质询Chi (j)生成L个响应Rspi;以及
将已经生成的L个响应Rspi发送到所述核实方。
11.一种用于使计算机实现以下功能的程序:
钥保持功能,用于保持L个密钥si(i=1到L)和针对一组多元n(n≥2)次多项式F满足yi=F(si)的L个公钥yi
质询接收功能,用于从核实方接收Q组(Q≥2)L个质询Chi (j)(j=1到Q);
质询选择功能,用于从由所述质询接收功能接收的Q组L个质询Chi (j)任意选择一组L个质询Chi (j)
响应生成功能,用于利用所述密钥si分别针对由所述质询选择功能选择的L个质询Chi (j)生成L个响应Rspi;以及
响应发送功能,用于将由所述响应生成功能生成的L个响应Rspi发送到所述核实方。
CN201180035779.5A 2010-07-30 2011-07-12 认证装置和认证方法 Active CN103155480B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2010-171940 2010-07-30
JP2010171940 2010-07-30
JP2010224752A JP5594034B2 (ja) 2010-07-30 2010-10-04 認証装置、認証方法、及びプログラム
JP2010-224752 2010-10-04
PCT/JP2011/065872 WO2012014669A1 (ja) 2010-07-30 2011-07-12 認証装置、認証方法、及びプログラム

Publications (2)

Publication Number Publication Date
CN103155480A true CN103155480A (zh) 2013-06-12
CN103155480B CN103155480B (zh) 2015-11-25

Family

ID=45529885

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180035779.5A Active CN103155480B (zh) 2010-07-30 2011-07-12 认证装置和认证方法

Country Status (13)

Country Link
US (2) US9076000B2 (zh)
EP (1) EP2600563A4 (zh)
JP (1) JP5594034B2 (zh)
KR (1) KR101808363B1 (zh)
CN (1) CN103155480B (zh)
AU (1) AU2011283888B2 (zh)
BR (1) BR112013001733A2 (zh)
CA (2) CA2804394C (zh)
MY (1) MY181936A (zh)
RU (1) RU2573772C2 (zh)
SG (1) SG187039A1 (zh)
TW (1) TWI455555B (zh)
WO (1) WO2012014669A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5790287B2 (ja) 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び記録媒体
JP5790289B2 (ja) * 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び記録媒体
TW201351195A (zh) 2012-03-02 2013-12-16 Sony Corp 演算裝置、控制方法、及程式
US9516007B2 (en) * 2012-12-05 2016-12-06 Sony Corporation Verifier and prover have an authentication protocol with challenge-response with the challenge from prover having identification of the verifier
US10447475B1 (en) * 2018-11-08 2019-10-15 Bar Ilan University System and method for managing backup of cryptographic keys
CN110650160B (zh) * 2019-10-29 2022-01-04 北京天威诚信电子商务服务有限公司 一种身份认证方法及系统
JP7273742B2 (ja) * 2020-02-07 2023-05-15 株式会社東芝 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1433609A (zh) * 1999-10-01 2003-07-30 法国电信公司 验证实体真实性或消息完整性的方法、系统、设备
CN1467670A (zh) * 2002-06-26 2004-01-14 带质询的垃圾邮件检测器
CN1910851A (zh) * 2004-01-23 2007-02-07 法国电信公司 零知识检验加密方法与设备
CN101410847A (zh) * 2006-06-30 2009-04-15 国际商业机器公司 在移动设备处的消息处理

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5375170A (en) * 1992-11-13 1994-12-20 Yeda Research & Development Co., Ltd. Efficient signature scheme based on birational permutations
FR2737370B1 (fr) 1995-07-27 1997-08-22 Bull Cp8 Procede de communication cryptographique
US5710814A (en) * 1996-07-23 1998-01-20 Cheyenne Property Trust Cryptographic unit touch point logic
JPH1165439A (ja) * 1996-08-09 1999-03-05 Nippon Telegr & Teleph Corp <Ntt> N進表現暗号による通信および認証方法、ならびにそれらの装置、およびn進表現暗号による通信および認証プログラムを格納した記憶媒体
US6307936B1 (en) * 1997-09-16 2001-10-23 Safenet, Inc. Cryptographic key management scheme
US6076163A (en) * 1997-10-20 2000-06-13 Rsa Security Inc. Secure user identification based on constrained polynomials
US6411715B1 (en) * 1997-11-10 2002-06-25 Rsa Security, Inc. Methods and apparatus for verifying the cryptographic security of a selected private and public key pair without knowing the private key
US6959085B1 (en) * 1999-05-03 2005-10-25 Ntru Cryptosystems, Inc. Secure user identification based on ring homomorphisms
US7243236B1 (en) * 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
US20020136401A1 (en) * 2000-07-25 2002-09-26 Jeffrey Hoffstein Digital signature and authentication method and apparatus
US7181017B1 (en) * 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7114178B2 (en) * 2001-05-22 2006-09-26 Ericsson Inc. Security system
US7308097B2 (en) * 2001-12-07 2007-12-11 Ntru Cryptosystems, Inc. Digital signature and authentication method and apparatus
KR20040093128A (ko) * 2002-03-13 2004-11-04 코닌클리케 필립스 일렉트로닉스 엔.브이. 다항식을 기반으로 한 다수-사용자 키 생성 및 인증 방법및 시스템
JP4457651B2 (ja) * 2003-11-27 2010-04-28 日本電気株式会社 証明装置及び証明方法並びにプログラム
JP4282546B2 (ja) * 2004-05-19 2009-06-24 株式会社東芝 暗号装置、復号装置、鍵生成装置、プログラム及び方法
US20060083370A1 (en) * 2004-07-02 2006-04-20 Jing-Jang Hwang RSA with personalized secret
US8645694B2 (en) 2004-09-30 2014-02-04 Koninklijke Philips N.V. Method of authentication based on polyomials
US20060245587A1 (en) * 2005-04-28 2006-11-02 Binyamin Pinkas System and method for private information matching
US7958362B2 (en) * 2005-10-11 2011-06-07 Chang Gung University User authentication based on asymmetric cryptography utilizing RSA with personalized secret
US20080013721A1 (en) * 2005-11-30 2008-01-17 Jing-Jang Hwang Asymmetric cryptography with discretionary private key
JP4197710B2 (ja) * 2006-07-19 2008-12-17 株式会社東芝 暗号装置、復号装置、プログラム及び方法
US8006300B2 (en) * 2006-10-24 2011-08-23 Authernative, Inc. Two-channel challenge-response authentication method in random partial shared secret recognition system
WO2009083109A1 (en) * 2008-01-02 2009-07-09 National University Of Ireland, Galway A method and apparatus for authenticating a user
US8713655B2 (en) * 2008-04-21 2014-04-29 Indian Institute Of Technology Method and system for using personal devices for authentication and service access at service outlets
JP2010049215A (ja) * 2008-08-25 2010-03-04 Toshiba Corp パラメータ生成装置、暗号処理システム、方法およびプログラム
JP4756067B2 (ja) 2008-11-27 2011-08-24 株式会社サンセイアールアンドディ 遊技機

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1433609A (zh) * 1999-10-01 2003-07-30 法国电信公司 验证实体真实性或消息完整性的方法、系统、设备
CN1467670A (zh) * 2002-06-26 2004-01-14 带质询的垃圾邮件检测器
CN1910851A (zh) * 2004-01-23 2007-02-07 法国电信公司 零知识检验加密方法与设备
CN101410847A (zh) * 2006-06-30 2009-04-15 国际商业机器公司 在移动设备处的消息处理
JP2009543414A (ja) * 2006-06-30 2009-12-03 インターナショナル・ビジネス・マシーンズ・コーポレーション モバイル・デバイスにおけるメッセージ処理

Also Published As

Publication number Publication date
TW201215069A (en) 2012-04-01
SG187039A1 (en) 2013-02-28
CA2804394C (en) 2018-05-22
MY181936A (en) 2021-01-14
TWI455555B (zh) 2014-10-01
EP2600563A1 (en) 2013-06-05
EP2600563A4 (en) 2016-10-19
JP2012050053A (ja) 2012-03-08
CN103155480B (zh) 2015-11-25
US9602285B2 (en) 2017-03-21
BR112013001733A2 (pt) 2016-05-31
CA2804394A1 (en) 2012-02-02
AU2011283888B2 (en) 2015-10-29
CA3000137A1 (en) 2012-02-02
AU2011283888A1 (en) 2012-12-13
KR101808363B1 (ko) 2017-12-12
JP5594034B2 (ja) 2014-09-24
WO2012014669A1 (ja) 2012-02-02
RU2013103035A (ru) 2014-07-27
KR20130100959A (ko) 2013-09-12
US9076000B2 (en) 2015-07-07
RU2573772C2 (ru) 2016-01-27
US20150256342A1 (en) 2015-09-10
US20130089201A1 (en) 2013-04-11

Similar Documents

Publication Publication Date Title
US8688973B2 (en) Securing communications sent by a first user to a second user
CN102263638B (zh) 认证设备、认证方法和签名生成设备
JP5790319B2 (ja) 署名検証装置、署名検証方法、プログラム、及び記録媒体
CN104011781B (zh) 信息处理设备、信息处理方法
CN103155480A (zh) 认证装置、认证方法和程序
GB2490483A (en) Digital signature method generating strong cryptographic parameter form weak security parameter.
CN102957538A (zh) 信息处理设备和信息处理方法
CN102263639A (zh) 认证装置、认证方法、程序和签名生成装置
Yu et al. Identity‐Based Proxy Signcryption Protocol with Universal Composability
Ye et al. Certificateless‐Based Anonymous Authentication and Aggregate Signature Scheme for Vehicular Ad Hoc Networks
Xia et al. Cryptanalysis and improvement of a group authentication scheme with multiple trials and multiple authentications
CN103718502B (zh) 信息处理设备和信息处理方法
Tang et al. Identity‐Based Linkable Ring Signature on NTRU Lattice
CN103748830B (zh) 信息处理设备、签名提供方法和设备、签名验证方法和设备
Mir et al. Decentralized, Privacy‐Preserving, Single Sign‐On
Khan et al. RAKS: robust authentication and key agreement scheme for satellite infrastructure
Nait-Hamoud et al. Certificateless Public Key Systems Aggregation: An enabling technique for 5G multi-domain security management and delegation
Xie et al. A New Lattice‐Based Blind Ring Signature for Completely Anonymous Blockchain Transaction Systems
Rastegari et al. Multi‐designated verifiers signature schemes with threshold verifiability: generic pattern and a concrete scheme in the standard model
CN106487495B (zh) 基于整数混沌的轻量级rfid认证方法
Liu et al. Strong Identity‐Based Proxy Signature Schemes, Revisited
Yang et al. Efficient certificateless encryption withstanding attacks from malicious KGC without using random oracles
Kardaş et al. k‐strong privacy for radio frequency identification authentication protocols based on physically unclonable functions
De Caro et al. Receiver‐and sender‐deniable functional encryption
Zhang et al. Provable secure and efficient digital rights management authentication scheme using smart card based on elliptic curve cryptography

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant