CN103380591A - 类似度计算系统、类似度计算装置、计算机程序以及类似度计算方法 - Google Patents
类似度计算系统、类似度计算装置、计算机程序以及类似度计算方法 Download PDFInfo
- Publication number
- CN103380591A CN103380591A CN2011800682221A CN201180068222A CN103380591A CN 103380591 A CN103380591 A CN 103380591A CN 2011800682221 A CN2011800682221 A CN 2011800682221A CN 201180068222 A CN201180068222 A CN 201180068222A CN 103380591 A CN103380591 A CN 103380591A
- Authority
- CN
- China
- Prior art keywords
- similar degree
- ciphertext
- calculation element
- key
- degree calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3226—Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
- H04L9/3231—Biological data, e.g. fingerprint, voice or retina
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Biomedical Technology (AREA)
- Biodiversity & Conservation Biology (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
加密随机类似度计算部314(类似度途中密文计算部)根据使用解密装置的公开密钥pk进行加密而得到的加密特征矢量C(比较密文)、使用解密装置的公开密钥pk进行加密而得到的加密特征矢量C'(对象密文)、以及随机数生成部303(暂时密钥生成部)生成的随机数(暂时密钥),在2个加密特征矢量C、C'被加密了的状态下,进行类似度计算的第一阶段的计算,计算第二挑战C^。解密装置用解密装置的秘密密钥sk对第二挑战C^进行解密,在解密了的结果通过暂时密钥被加密了的状态下,进行类似度计算的第二阶段的计算,计算第二响应Z。明文类似度抽出部315(类似度计算部)通过用暂时密钥对第二响应Z进行解密,计算类似度d。
Description
技术领域
本发明涉及计算加密了的数据之间的类似度的类似度计算系统。
背景技术
有如下技术:以加密了的状态存储生物体信息等需要保密的数据,在加密了的状态下,计算表示与其他数据类似到何种程度的类似度。例如,如果利用具有加法上的同态性的密码方式,则能够在数据被加密了的状态下进行运算。作为具有加法上的同态性的密码方式,已知冈本-高岛(Okamoto-Takashima)密码方式(专利文献3、非专利文献1)、BGN密码方式(非专利文献2)、Gentry密码方式(非专利文献3)、Paillier密码方式等。另外,关于BGN密码方式、Gentry密码方式,不仅是具有加法上的同态性,而且还具有乘法上的同态性,所以被称为双重同态密码。另外,关于Gentry密码方式,由于在乘法的次数上无限制,所以被称为完全同态密码或者环同态密码。另外,还有RSA(注册商标)密码方式等仅具有乘法上的同态性的密码方式。
专利文献1:日本特表2008-521025号公报
专利文献2:日本特开2009-129210号公报
专利文献3:日本特开2010-54875号公报
专利文献4:日本特开2006-262333号公报
专利文献5:日本特开2001-7802号公报
非专利文献1:服部充洋、柴田陽一、伊藤隆、松田規、高島克幸、米田健“2-DNF準同型暗号を用いた秘匿生体認証”IEICETechnical Report109(272)、113~120页、2009年
非专利文献2:D.Boneh、E.-J.Goh、K.Nissim“Evaluating2-DNFFormulas on Ciphertexts”Theory of Cryptography Conference、Lecture Notes in Computer Science、Vol.3378、325~341页、2005年
非专利文献3:C.Gentry“Fully Homomorphic Encryption UsingIdeal Lattices”ACM Symposium on Theory of Computing、169-178页、2009年
非专利文献4:M.Upmanyu、A.M.Namboodiri、K.Srinathan、C.V.Jawahar“Blind Authentication:A Secure Crypto-BiometricVerification Protocol”IEEE Transactions on Information Forensicsand Security、Vol.5、No.2、2010年。
发明内容
在使用如具有加法上的同态性的密码方式那样能够在对数据进行了加密的状态下执行运算的密码方式的情况下,通过在系统内的装置之间交换的信息、各个装置所存储的信息中应用同态性,存在受到意外攻击的可能性。
特别是在对用户进行认证的认证系统等中,仅守住原来的数据的秘密并不够,而还需要防止从在系统内的装置之间交换的信息、各个装置所存储的信息泄漏能够冒充用户的信息。
本发明是为了解决例如上述那样的课题而完成的,其目的在于防止关于原来的数据的信息、被用于冒充的信息等泄露,同时在数据被加密了的状态下,计算数据之间的类似度。
本发明的类似度计算装置,计算比较数据与对象数据的类似度,其特征在于,
具有存储数据的存储装置、处理数据的处理装置、比较密文存储部、对象密文取得部、暂时密钥生成部、类似度途中密文计算部、类似度途中密文通知部、类似度途中解密文取得部、以及类似度计算部,
所述比较密文存储部使用所述存储装置,存储通过使用了与解密装置存储的秘密密钥对应的公开密钥的加密变换对所述比较数据进行变换而得到的比较密文,
所述对象密文取得部使用所述处理装置,取得通过使用了所述公开密钥的所述加密变换对所述对象数据进行变换而得到的对象密文,
所述暂时密钥生成部使用所述处理装置,生成暂时密钥,
所述类似度途中密文计算部使用所述处理装置,根据所述比较密文存储部存储的比较密文、所述对象密文取得部取得的对象密文、以及所述暂时密钥生成部生成的暂时密钥,在所述比较密文以及所述对象密文被加密了的状态下,进行类似度计算的第一阶段的计算,计算针对所计算的结果使用所述暂时密钥进行加密而得到的类似度途中密文,
所述类似度途中密文通知部使用所述处理装置,将所述类似度途中密文计算部计算出的类似度途中密文通知到所述解密装置,
所述类似度途中解密文取得部使用所述处理装置,取得根据所述类似度途中密文通知部通知的类似度途中密文由所述解密装置计算并通知的类似度途中解密文,
所述类似度计算部使用所述处理装置,根据所述暂时密钥生成部生成的暂时密钥、和所述类似度途中解密文取得部取得的类似度途中解密文,使用所述暂时密钥对所述类似度途中解密文进行解密,从而计算所述比较数据与所述对象数据的类似度。
根据本发明的类似度计算系统,能够在数据被加密了的状态下,计算数据之间的类似度,并且能够在该过程中,防止关于原来的数据的信息、被用于冒充的信息等泄露。
附图说明
图1是示出实施方式1中的生物体认证系统100的整体结构的一个例子的系统结构图。
图2是示出实施方式1中的证明装置101、认证装置102、解密装置103、登记装置104的硬件结构的一个例子的图。
图3是示出实施方式1中的登记装置104的功能块的结构的一个例子的框结构图。
图4是示出实施方式1中的证明装置101的功能块的结构的一个例子的框结构图。
图5是示出实施方式1中的认证装置102的功能块的结构的一个例子的框结构图。
图6是示出实施方式1中的解密装置103的功能块的结构的一个例子的框结构图。
图7是示出实施方式1中的生物体认证系统100的整体的动作的一个例子的流程图。
图8是示出实施方式1中的配置处理S500的流程的一个例子的流程图。
图9是示出实施方式1中的登记处理S600的流程的一个例子的流程图。
图10是示出实施方式1中的认证处理S700的流程的一个例子的流程图。
图11是示出使用正则矩阵X来求解矢量分解问题的矢量分解处理S540的流程的一个例子的流程图。
图12是示出实施方式1中的密钥生成部401的结构的一个例子的详细框图。
图13是示出实施方式1中的密钥生成工序S501的处理流程的一个例子的流程图。
图14是示出实施方式1中的特征矢量加密工序S603的处理流程的一个例子的流程图。
图15是示出实施方式1中的第一挑战生成工序S701的处理流程的一个例子的流程图。
图16是示出实施方式1中的加密数据嵌入部217的结构的一个例子的详细框图。
图17是示出实施方式1中的第一响应生成工序S707的处理流程的一个例子的流程图。
图18是示出实施方式1中的加密数据抽出部305的结构的一个例子的详细框图。
图19是示出实施方式1中的加密生物体信息抽出工序S710的处理流程的一个例子的流程图。
图20是示出实施方式1中的加密随机类似度计算部314的结构的一个例子的详细框图。
图21是示出实施方式1中的第二挑战生成工序S712的处理流程的一个例子的流程图。
图22是示出实施方式1中的解密部404的结构的一个例子的详细框图。
图23是示出实施方式1中的第二响应生成工序S716的处理流程的一个例子的流程图。
图24是示出实施方式1中的明文类似度抽出部315的结构的一个例子的详细框图。
图25是示出实施方式1中的明文类似度计算工序S719的处理流程的一个例子的流程图。
图26是示出实施方式1的生物体认证系统100中的类似度计算的计算步骤的流程图。
图27是示出实施方式2中的生物体认证系统100的整体结构的一个例子的系统结构图。
图28是示出实施方式3中的第二挑战生成工序S712的处理流程的一个例子的流程图。
图29是示出实施方式3中的第二响应生成工序S716的处理流程的一个例子的流程图。
图30是示出实施方式3的生物体认证系统100中的类似度计算的计算步骤的流程图。
图31是示出实施方式4中的密钥生成部401的结构的一个例子的详细框图。
图32是示出实施方式4中的密钥生成工序S501的处理流程的一个例子的流程图。
图33是示出实施方式4中的特征矢量加密工序S603的处理流程的一个例子的流程图。
图34是示出实施方式4中的第一挑战生成工序S701的处理流程的一个例子的流程图。
图35是示出实施方式4中的加密数据嵌入部217的结构的一个例子的详细框图。
图36是示出实施方式4中的第一响应生成工序S707的处理流程的一个例子的流程图。
图37是示出实施方式4中的加密数据抽出部305的结构的一个例子的详细框图。
图38是示出实施方式4中的加密生物体信息抽出工序S710的处理流程的一个例子的流程图。
图39是示出实施方式4中的加密随机类似度计算部314的结构的一个例子的详细框图。
图40是示出实施方式4中的第二挑战生成工序S712的处理流程的一个例子的流程图。
图41是示出实施方式4中的加密随机类似度计算部314的结构的其他例子的详细框图。
图42是示出实施方式4中的第二挑战生成工序S712的处理流程的其他例子的流程图。
图43是示出实施方式4中的第二响应生成工序S716的处理流程的一个例子的流程图。
图44是示出实施方式4中的第二响应生成工序S716的处理流程的一个例子的流程图。
图45是示出实施方式4的生物体认证系统100中的类似度计算的计算步骤的流程图。
图46是示出实施方式5中的加密随机类似度计算部314的结构的一个例子的详细框图。
图47是示出实施方式5中的第二挑战生成工序S712的处理流程的一个例子的流程图。
图48是示出实施方式5的生物体认证系统100中的类似度计算的计算步骤的流程图。
图49是示出实施方式6中的密钥生成部401的结构的一个例子的详细框图。
图50是示出实施方式6中的密钥生成工序S501的处理流程的一个例子的流程图。
图51是示出实施方式6中的特征矢量加密工序S603的处理流程的一个例子的流程图。
图52是示出实施方式6中的第一挑战生成工序S701的处理流程的一个例子的流程图。
图53是示出实施方式6中的加密数据嵌入部217的结构的一个例子的详细框图。
图54是示出实施方式6中的第一响应生成工序S707的处理流程的一个例子的流程图。
图55是示出实施方式6中的加密生物体信息抽出工序S710的处理流程的一个例子的流程图。
图56是示出实施方式6中的加密随机类似度计算部314的结构的一个例子的详细框图。
图57是示出实施方式6中的第二挑战生成工序S712的处理流程的一个例子的流程图。
图58是示出实施方式6中的解密部404的结构的一个例子的详细框图。
图59是示出实施方式6中的第二响应生成工序S716的处理流程的一个例子的流程图。
图60是示出实施方式6中的明文类似度计算工序S719的处理流程的一个例子的流程图。
图61是示出实施方式6的生物体认证系统100中的类似度计算的计算步骤的流程图。
图62是示出实施方式7中的加密随机数生成部304的结构的一个例子的详细框图。
图63是示出实施方式7中的第一挑战生成工序S701的处理流程的一个例子的流程图。
图64是示出实施方式7中的加密随机类似度计算部314的结构的一个例子的详细框图。
图65是示出实施方式7中的第二挑战生成工序S712的处理流程的一个例子的流程图。
图66是示出实施方式7中的解密部404的结构的一个例子的详细框图。
图67是示出实施方式7中的第二响应生成工序S716的处理流程的一个例子的流程图。
图68是示出实施方式7的生物体认证系统100中的类似度计算的计算步骤的流程图。
图69是示出实施方式8中的加密随机类似度计算部314的结构的一个例子的详细框图。
图70是示出实施方式8中的第二挑战生成工序S712的处理流程的一个例子的流程图。
图71是示出实施方式8中的第二响应生成工序S716的处理流程的一个例子的流程图。
图72是示出实施方式8的生物体认证系统100中的类似度计算的计算步骤的流程图。
图73是示出实施方式9中的加密随机类似度计算部314的结构的一个例子的详细框图。
图74是示出实施方式9中的第二挑战生成工序S712的处理流程的一个例子的流程图。
图75是示出实施方式9中的解密部404的结构的一个例子的详细框图。
图76是示出实施方式9中的第二响应生成工序S716的处理流程的一个例子的流程图。
图77是示出实施方式9的生物体认证系统100中的类似度计算的计算步骤的流程图。
图78是示出实施方式10中的图像检索系统110的整体结构的一个例子的系统结构图。
图79是示出实施方式10中的登记装置104的功能块的结构的一个例子的框结构图。
图80是示出实施方式10中的终端装置111的功能块的结构的一个例子的框结构图。
图81是示出实施方式10中的检索装置112的功能块的结构的一个例子的框结构图。
(附图标记说明)
100:生物体认证系统;101:证明装置;102:认证装置;103:解密装置;104:登记装置;110:图像检索系统;111:终端装置;112:检索装置;201、222:加密数据发送部;202、212、302、403:公开密钥存储部;203、213:生物体信息抽出部;204、214:特征矢量形成部;205、215、303:随机数生成部;206、216:加密数据生成部;208、218、308:公开密钥接收部;209、219:图像输入部;211:第一挑战接收部;217:加密数据嵌入部;221:第一响应发送部;223:结果接收部;224:结果输出部;226:图像加密部;228:加密图像发送部;231、352、364:标量倍计算部;232、332:零生成部;233、363:矢量结合部;234、353、384、334:乘幂计算部;235、370、372、475:元结合部;236、336、386、485:整数结合部;301、325:加密数据接收部;304:加密随机数生成部;305:加密数据抽出部;306:判定部;311:第一挑战发送部;312:加密数据存储部;314:加密随机类似度计算部;315:明文类似度抽出部;321:第二挑战发送部;322:随机数存储部;323:结果发送部;331:第一响应接收部;341:第二响应接收部;351:倒数计算部;361:差分计算部;362:干扰矢量生成部;365:平方和计算部;366:加密密钥生成部;367:矢量累计部;368、381、382、473:平方计算部;371、474:群变换部;373:离散对数计算部;383:积计算部;385:重新排列部;401:密钥生成部;402:第二挑战接收部;404:解密部;408:公开密钥发送部;412:第二响应发送部;413:秘密密钥存储部;421、431:群决定部;422:标准基底设定部;423:随机数生成部;424:行列式计算部;425:正则矩阵设定部;426:随机基底计算部;432:生成元选择部;433:生成元乘幂部;434:底计算部;441:素数决定部;442:积计算部;443:公倍数计算部;471:逆矩阵计算部;472:矢量分解部;481:倒数计算部;482:解密整数计算部;911:处理装置;912:输入装置;913:输出装置;914:存储装置;A:标准基底;B:随机基底;b、b’:特征矢量;C、C’:加密特征矢量;C^:第二挑战;ΔC:加密差分矢量;ΔC’:加密平方矢量;d:类似度;d0:阈值;Fq:有限域;G、GT:有限群;g:生成元;O、O’:加密零矢量;pk:公开密钥;R:第一挑战;R’:第一响应;Я:矢量;Я’:乘幂矢量;S500:配置处理;S501:密钥生成工序;S502:公开密钥通知工序;S503、S504、S505:公开密钥取得工序;S511、S521:群决定工序;S512:标准基底设定工序;S513:矩阵生成工序;S514:正则判定工序;S515:随机基底计算工序;S522:生成元选择工序;S523:生成元乘幂工序;S524:底计算工序;S531:素数决定工序;S532、S754:积计算工序;S533:公倍数计算工序;S540:矢量分解处理;S541、S561:逆矩阵计算工序;S542:第一初始化工序;S543:第一反复工序;S544:第二初始化工序;S545:第二反复工序;S546:第三初始化工序;S547:第三反复工序;S548:系数累计工序;S549:映射计算工序;S550:标量倍工序;S551、S747、S751:矢量累计工序;S560、S610、S660、S729、S730、S740:初始化工序;S561a、S690、S732:倒数计算工序;S562、S611、S661、S721、S731、S741:反复工序;S563、S566:矢量分解工序;S563a、S566a:解密整数计算工序;S564、S753:平方计算工序;S565、S665a、S692:元结合工序;S565a、S665b、S692a、S726、S760:整数结合工序;S567、S691:群变换工序;S571、S662a、S724、S733a、S752a、S755:乘幂计算工序;S600:登记处理;S601、S705:生物体信息抽出工序;S602、S706:特征矢量生成工序;S603:特征矢量加密工序;S604:加密生物体信息通知工序;S605:加密生物体信息取得工序;S612、S663、S722、S743、S749、S757、S758:随机数生成工序;S613、S723:矢量计算工序;S613a、S723a:元计算工序;S613b、S723b:整数计算工序;S662、S733、S746:标量倍计算工序;S664、S725:零生成工序;S665、S745:矢量结合工序;S693:离散对数计算工序;S700:认证处理;S701:第一挑战生成工序;S702、S713:随机数存储工序;S703:第一挑战通知工序;S704:第一挑战取得工序;S707:第一响应生成工序;S708:第一响应通知工序;S709:第一响应取得工序;S710:加密生物体信息抽出工序;S711:加密生物体信息读出工序;S712:第二挑战生成工序;S714:第二挑战通知工序;S715:第二挑战取得工序;S716:第二响应生成工序;S717:第二响应通知工序;S718:第二响应取得工序;S719:明文类似度计算工序;S720:认证判定工序;S742、S742a、S742b:差分计算工序;S744:干扰矢量生成工序;S748:平方累计工序;S748a:元累计工序;S750:加密密钥生成工序;S752:加密密钥生成工序;S759:第二挑战设定工序;sk:秘密密钥;т:干扰矢量;Ц:解密密钥;ц:加密密钥;ц1、ц2:乘幂元;V:矢量空间;ш:逆元;X:正则矩阵;X-1:逆矩阵;Z:第二响应;Z’:解密类似度元;Ж:第一加密平方矢量;Ж’:第二加密平方矢量。
具体实施方式
实施方式1.
使用图1~图26,说明实施方式1。
图1是示出该实施方式中的生物体认证系统100的整体结构的一个例子的系统结构图。
生物体认证系统100是通过输入用户的指纹等生物体信息,核对所输入的生物体信息、和预先登记的生物体信息,来认证利用者的系统。
生物体认证系统100(类似度计算系统)具有例如证明装置101、认证装置102、解密装置103、以及登记装置104。
登记装置104从用户抽出生物体信息,对所抽出的生物体信息进行加密,而登记到认证装置102。
证明装置101(加密装置)从用户抽出生物体信息,对所抽出的生物体信息进行加密。另外,证明装置101与认证装置102进行对话,实施认证。
认证装置102(类似度计算装置)储存由登记装置104登记的用户的加密生物体信息。另外,认证装置102与证明装置101、解密装置103进行对话,实施认证。
解密装置103与认证装置102进行对话,对从认证装置送来的加密了的与类似度关联的数据进行解密。
另外,证明装置101、登记装置104也可以是多个。另外,证明装置101和登记装置104也可以在物理上是一个装置。另外,证明装置101和解密装置103也可以在物理上是一个装置。另外,认证装置102和登记装置104也可以在物理上是一个装置。
图2是示出该实施方式中的证明装置101、认证装置102、解密装置103、登记装置104的硬件结构的一个例子的图。
证明装置101、认证装置102、解密装置103、登记装置104是例如计算机,具有处理装置911、输入装置912、输出装置913、以及存储装置914。
存储装置914存储处理装置911执行的程序、处理装置911处理的数据等。存储装置914是例如易失性存储器、非易失性存储器、硬盘装置等。
处理装置911通过执行存储装置914存储的程序,处理数据,控制装置整体。
输入装置912将来自外部的信息变换为处理装置911可处理的数据。关于输入装置912变换了的数据,既可以是处理装置911直接处理,也可以是存储装置914存储。输入装置912是例如键盘、鼠标等输入使用者的操作的操作输入装置、抽出并输入用户的指纹、虹膜等生物体信息的生物体信息输入装置、接收其他装置发送了的信号的接收装置(通信装置)、从记录介质读出数据的读出装置等。
输出装置913是对处理装置911处理了的数据、存储装置914存储的数据等进行变换并输出到外部的装置。输出装置913是例如显示图像的显示装置、对其他装置发送信号的发送装置(通信装置)、对记录介质写入数据的写入装置等。
图3是示出该实施方式中的登记装置104的功能块的结构的一个例子的框结构图。
登记装置104具有例如公开密钥接收部208、公开密钥存储部202、生物体信息抽出部203、特征矢量形成部204、随机数生成部205、加密数据生成部206、以及加密数据发送部201。
公开密钥接收部208(公开密钥取得部)使用通信装置等输入装置912,接收由解密装置103生成的公开密钥。通信装置(通信部)在与认证装置102、解密装置103等其他装置之间进行数据的交换。
加密数据发送部201(比较密文通知部)使用通信装置等输出装置913,对认证装置102发送加密生物体信息(比较密文)。
公开密钥存储部202使用存储装置914,存储公开密钥接收部208接收到的公开密钥。存储装置914(存储部)储存从解密装置103送来的公开密钥等各种数据。
生物体信息抽出部203使用光学照相机、红外线照相机、其他各种传感器等输入装置912,从用户抽出为了进行个人识别而所需的生物体信息。
特征矢量形成部204(比较数据取得部)使用处理装置911,根据生物体信息抽出部203抽出的生物体信息,形成表示个人的特征的特征矢量(比较数据)。
随机数生成部205使用处理装置911,根据公开密钥存储部202储存的公开密钥的一部分等,生成随机数。关于随机数生成部205生成的随机数,由加密数据生成部206等使用。
加密数据生成部206(加密部、比较密文生成部)使用处理装置911,根据随机数生成部205生成的随机数,对特征矢量形成部204形成的特征矢量进行加密,生成加密生物体信息(加密特征矢量)。
图4是示出该实施方式中的证明装置101的功能块的结构的一个例子的框结构图。
证明装置101具有例如公开密钥接收部218、公开密钥存储部212、生物体信息抽出部213、特征矢量形成部214、随机数生成部215、第一挑战接收部211、加密数据嵌入部217、以及第一响应发送部221。
公开密钥接收部218(公开密钥取得部)使用通信装置等输入装置912,接收由解密装置103生成的公开密钥。通信装置(通信部)在与认证装置102、解密装置103等其他装置之间进行数据的交换。
第一挑战接收部211(暂时公开密钥取得部)使用通信装置等输入装置912,接收来自认证装置102的第一挑战(暂时公开密钥)。
第一响应发送部221(对象双重密文通知部)使用通信装置等输入装置912,对认证装置102回送与第一挑战对应的第一响应(对象双重密文)。
公开密钥存储部212使用存储装置914,存储公开密钥接收部218接收到的公开密钥。存储装置914(存储部)储存从解密装置103送来的公开密钥等各种数据。
生物体信息抽出部213使用光学照相机、红外线照相机、其他各种传感器等输入装置912,从用户抽出为了进行个人识别而所需的生物体信息。
特征矢量形成部214(对象数据取得部)使用处理装置911,根据生物体信息抽出部213抽出的生物体信息,形成表示个人的特征的特征矢量(对象数据)。
随机数生成部215使用处理装置911,根据公开密钥存储部212储存的公开密钥的一部分等,生成随机数。关于随机数生成部215生成的随机数,由加密数据嵌入部217等使用。
加密数据嵌入部217(响应生成部、对象双重密文计算部)使用处理装置911,针对从认证装置102送来的第一挑战,根据特征矢量形成部214形成的特征矢量的值进行处理。即,加密数据嵌入部217在第一挑战中嵌入加密生物体信息。加密数据嵌入部217计算对认证装置102返回的第一响应。
图5是示出该实施方式中的认证装置102的功能块的结构的一个例子的框结构图。
认证装置102具有例如公开密钥接收部308、公开密钥存储部302、加密数据接收部301、加密数据存储部312、随机数生成部303、随机数存储部322、加密随机数生成部304、第一挑战发送部311、第一响应接收部331、加密数据抽出部305、加密随机类似度计算部314、第二挑战发送部321、第二响应接收部341、明文类似度抽出部315、以及判定部306。
公开密钥接收部308(公开密钥取得部)使用通信装置(通信部)等输入装置912,接收由解密装置103生成的公开密钥。
加密数据接收部301(比较密文取得部)使用通信装置等输入装置912,从证明装置101接收加密特征矢量(比较密文)。
第一挑战发送部311(暂时公开密钥通知部)使用通信装置等输出装置913,向证明装置101发送第一挑战(暂时公开密钥)。
第一响应接收部331(对象双重密文取得部)使用通信装置等输入装置912,从证明装置101接收与第一挑战对应的第一响应(对象双重密文)。
第二挑战发送部321(类似度途中密文通知部)使用通信装置等输出装置913,向解密装置103发送第二挑战(类似度途中密文)。
第二响应接收部341(类似度途中解密文取得部)使用通信装置等输入装置912,从解密装置103接收第二响应(类似度途中解密文)。
公开密钥存储部302使用存储装置914(存储部),储存从解密装置103送出的公开密钥。
加密数据存储部312(比较密文存储部)使用存储装置914,储存从证明装置101送来的加密特征矢量。加密数据存储部312将多个加密特征矢量例如与用户的标识符对应起来存储。
随机数存储部322(暂时秘密密钥存储部、暂时密钥存储部)使用存储装置914,储存随机数生成部303生成的随机数中的一部分的随机数(暂时秘密密钥、暂时密钥)。
随机数生成部303(暂时秘密密钥生成部、暂时密钥生成部)使用处理装置911,根据公开密钥存储部302储存的公开密钥的一部分等,生成随机数。在加密随机数生成部304、加密数据抽出部305、加密随机类似度计算部314、明文类似度抽出部315等中使用随机数生成部303生成的随机数。
加密随机数生成部304(挑战生成部、暂时公开密钥计算部)为了与证明装置101进行对话,使用处理装置911,生成第一挑战(加密随机数)。
加密数据抽出部305(随机数去除部、对象密文取得部)使用处理装置911,针对从证明装置101送来的第一响应,使用在与该第一响应对应的第一挑战中使用的(随机数存储部322储存的)随机数,去除第一响应中包含的随机数。加密数据抽出部305从第一响应去除在第一挑战中使用的随机数的一部分,抽出加密特征矢量。
加密随机类似度计算部314(挑战生成部、类似度途中密文计算部)为了与解密装置103进行对话,使用处理装置911,生成第二挑战(加密随机类似度)。加密随机类似度计算部314根据加密数据抽出部305抽出的加密特征矢量、和加密数据存储部312存储的加密特征矢量,生成第二挑战。加密随机类似度计算部314从加密数据存储部312存储的加密特征矢量中,取得用户的标识符与第一响应接收部331接收到的第一响应一致的加密特征矢量,生成第二挑战。
明文类似度抽出部315(随机数去除部、类似度计算部)从送到解密装置103的第二响应,使用在与该第二响应对应的第二挑战中使用的(随机数存储部322储存的)随机数,去除第二响应中包含的随机数。明文类似度抽出部315从第二响应去除随机数,计算明文的类似度。
判定部306(类似判定部)使用处理装置911,使用明文类似度抽出部315生成的明文的类似度来进行个人识别,判定是否为本人。即,判定部306对明文的类似度进行解析,判定认证用的特征矢量的发生源是否合法。
图6是示出该实施方式中的解密装置103的功能块的结构的一个例子的框结构图。
解密装置103例如具有密钥生成部401、秘密密钥存储部413、公开密钥存储部403、公开密钥发送部408、第二挑战接收部402、解密部404、以及第二响应发送部412。
密钥生成部401(参数生成部、秘密密钥生成部、公开密钥计算部)使用处理装置911,生成公开密钥、秘密密钥等加密和解密所需的参数。
公开密钥发送部408(公开密钥通知部)使用通信装置(通信部)等输出装置913,对证明装置101、认证装置102等,发送密钥生成部401生成的公开密钥。
第二挑战接收部402(类似途中密文取得部)使用通信装置等输入装置912,从认证装置102接收第二挑战(类似途中密文)。
第二响应发送部412(类似途中解密文通知部)使用通信装置等输出装置913,对认证装置102发送与第二挑战对应的第二响应(类似途中解密文)。
公开密钥存储部403使用存储装置914(存储部),储存密钥生成部401生成的公开密钥等各种数据。
秘密密钥存储部413使用存储装置914,储存密钥生成部401生成的秘密密钥。
解密部404(响应生成部、类似途中解密文计算部)使用处理装置911,生成与从认证装置102发送的第二挑战对应的第二响应。解密部404对第二挑战(加密随机类似度)进行解密,计算第二响应。
图7是示出该实施方式中的生物体认证系统100的整体的动作的一个例子的流程图。
生物体认证系统100的动作包括例如配置处理S500、登记处理S600、以及认证处理S700这3个。
在配置处理S500(设定处理)中,解密装置103生成加密和解密所需的参数、公开密钥·秘密密钥等。
在登记处理S600中,登记装置104对用户的生物体信息(比较数据)进行加密而送出到认证装置102。认证装置102储存加密生物体信息(比较密文)。
在认证处理S700中,最初,认证装置102与证明装置101进行对话,从该对话的数据(第一挑战以及第一响应)抽出加密生物体信息(对象密文)。
接下来,认证装置102根据所抽出的加密生物体信息、和在登记处理S600中预先登记的加密生物体信息,与解密装置103进行对话,从该对话的数据(第二挑战以及第二响应)抽出随机类似度。
最后,认证装置102从随机类似度抽出明文的类似度,与阈值进行比较来进行是否为本人的判定。另外,关于此处的阈值,既可以是预定的在系统中通用的值,也可以是针对每个用户不同的值。
图8是示出该实施方式中的配置处理S500的流程的一个例子的流程图。
配置处理S500具有例如密钥生成工序S501、公开密钥通知工序S502、以及公开密钥取得工序S503~S505。
最初,在密钥生成工序S501中,解密装置103的密钥生成部401使用处理装置911,根据同态密码方式的密钥生成算法,生成秘密密钥sk和公开密钥pk。在同态密码方式中,例如有冈本-高岛密码方式、BGN密码方式、Paillier密码方式等。
接下来,在公开密钥通知工序S502中,解密装置103的公开密钥存储部403使用存储装置914,储存公开密钥pk。解密装置103的秘密密钥存储部413使用存储装置914,储存秘密密钥sk。解密装置103的公开密钥发送部408使用输出装置913,将公开密钥pk发送到登记装置104、证明装置101、认证装置102等。
在公开密钥取得工序S503中,登记装置104的公开密钥接收部208使用输入装置912,接收解密装置103发送了的公开密钥pk。登记装置104的公开密钥存储部202使用存储装置914,储存公开密钥接收部208接收到的公开密钥pk。
在公开密钥取得工序S504中,证明装置101的公开密钥接收部218使用输入装置912,接收解密装置103发送了的公开密钥pk。证明装置101的公开密钥存储部212使用存储装置914,存储公开密钥接收部218接收到的公开密钥pk。
在公开密钥取得工序S505中,认证装置102的公开密钥接收部308使用输入装置912,接收解密装置103发送了的公开密钥pk。认证装置102的公开密钥存储部302使用存储装置914,存储公开密钥接收部308接收到的公开密钥pk。
另外,也可以并非经由网络等对公开密钥pk进行发送接收,而是通过其他方式对证明装置101等分发公开密钥pk的结构。例如,也可以是解密装置103将公开密钥pk储存到记录介质(例如,硬盘驱动器、光盘等),证明装置101等经由网络等访问该记录介质、或者使记录介质自身在物理上移动而从记录介质读出公开密钥pk并储存的结构。
图9是示出该实施方式中的登记处理S600的流程的一个例子的流程图。
登记处理S600具有例如生物体信息抽出工序S601、特征矢量生成工序S602、特征矢量加密工序S603、加密生物体信息通知工序S604、以及加密生物体信息取得工序S605。
最初,在生物体信息抽出工序S601中,登记装置104的生物体信息抽出部203使用输入装置912,抽出用户的生物体信息。
在特征矢量生成工序S602中,登记装置104的特征矢量形成部204使用处理装置911,生成在生物体信息抽出工序S601中生物体信息抽出部203抽出的生物体信息的特征矢量b。
在特征矢量加密工序S603中,登记装置104的随机数生成部205使用处理装置911,根据公开密钥pk的一部分等,生成随机数。登记装置104的加密数据生成部206使用处理装置911,读出公开密钥存储部202存储的公开密钥pk。登记装置104的加密数据生成部206使用处理装置911,根据所读出的公开密钥pk、和随机数生成部205生成的随机数,生成加密特征矢量C。加密特征矢量C是对特征矢量b进行加密而得到的。
在加密生物体信息通知工序S604中,登记装置104的加密数据发送部201使用输出装置913,将在特征矢量加密工序S603中由加密数据生成部206生成的加密特征矢量C发送到认证装置102。
在加密生物体信息取得工序S605中,认证装置102的加密数据接收部301使用输入装置912,接收在加密生物体信息通知工序S604中由登记装置104发送了的加密特征矢量C。认证装置102的加密数据存储部312使用存储装置914,存储加密数据接收部301接收到的加密特征矢量C。
另外,关于用户的生物体信息、特征矢量b,在加密特征矢量C的生成之后变得不需要,所以期望成为删除的结构。由此,能够防止非法者从登记装置104的存储装置914窃取用户的生物体信息、特征矢量b。
另外,加密特征矢量C通过解密装置的公开密钥被加密,所以即使非法者监听登记装置104与认证装置102之间的通信、或者从认证装置102的存储装置914窃取而获得了加密特征矢量C,只要未使用解密装置的秘密密钥,就无法得知用户的生物体信息、特征矢量。
进而,如后所述,关于包括认证时的特征矢量的信息的第一响应,仅能够根据特征矢量生成,无法根据加密特征矢量生成。即使非法者获得了加密特征矢量C,也无法生成第一响应,所以无法冒充正规的用户。
图10是示出该实施方式中的认证处理S700的流程的一个例子的流程图。
认证处理S700具有例如第一挑战生成工序S701、随机数存储工序S702、第一挑战通知工序S703、第一挑战取得工序S704、生物体信息抽出工序S705、特征矢量生成工序S706、第一响应生成工序S707、第一响应通知工序S708、第一响应取得工序S709、加密生物体信息抽出工序S710、加密生物体信息读出工序S711、第二挑战生成工序S712、随机数存储工序S713、第二挑战通知工序S714、第二挑战取得工序S715、第二响应生成工序S716、第二响应通知工序S717、第二响应取得工序S718、明文类似度计算工序S719、以及认证判定工序S720。
最初,在第一挑战生成工序S701中,认证装置102的随机数生成部303使用处理装置911,从公开密钥存储部302读出公开密钥pk,生成随机数。认证装置102的加密随机数生成部304使用处理装置911,从公开密钥存储部302读出公开密钥pk,对随机数生成部303生成的随机数进行加密,生成第一挑战(加密随机数)。
在随机数存储工序S702中,认证装置102的随机数存储部322使用存储装置914,储存在第一挑战生成工序S701中由随机数生成部303生成的随机数。
在第一挑战通知工序S703中,认证装置102的第一挑战发送部311使用输出装置913,将在第一挑战生成工序S701中由加密随机数生成部304生成的第一挑战发送到证明装置101。
在第一挑战取得工序S704中,证明装置101的第一挑战接收部211使用输入装置912,接收在第一挑战通知工序S703中由认证装置102发送了的第一挑战。
在生物体信息抽出工序S705中,证明装置101的生物体信息抽出部213使用输入装置912,抽出用户的生物体信息。
在特征矢量生成工序S706中,证明装置101的特征矢量形成部214使用处理装置911,形成在生物体信息抽出工序S705中由生物体信息抽出部213抽出的生物体信息的特征矢量b’。
在第一响应生成工序S707中,证明装置101的随机数生成部215使用处理装置911,读出公开密钥存储部212储存的公开密钥pk,生成随机数。证明装置101的加密数据嵌入部217从公开密钥存储部212读出公开密钥pk,根据随机数生成部215生成的随机数,根据在特征矢量生成工序S706中由特征矢量形成部214形成的特征矢量b’的值处理第一挑战,生成第一响应。第一响应是在第一挑战中嵌入了加密特征矢量C’而得到的。
在第一响应通知工序S708中,证明装置101的第一响应发送部221使用输出装置913,将在第一响应生成工序S707中由加密数据嵌入部217生成的第一响应发送到认证装置102。
在第一响应取得工序S709中,认证装置102的第一响应接收部331使用输入装置912,接收在第一响应通知工序S708中由证明装置101发送了的第一响应。
在加密生物体信息抽出工序S710中,认证装置102的加密数据抽出部305使用处理装置911,从随机数存储部322取出在第一挑战生成工序S701中由随机数生成部303生成的随机数,从第一响应去除随机数,抽出加密特征矢量C’。
在加密生物体信息读出工序S711中,认证装置102的加密随机类似度计算部314使用处理装置911,从加密数据存储部312取出加密特征矢量C。
在第二挑战生成工序S712中,认证装置102的随机数生成部303使用处理装置911,读出公开密钥存储部302储存的公开密钥pk,生成随机数。认证装置102的加密随机数生成部304使用处理装置911,从公开密钥存储部302读出公开密钥pk,根据在加密生物体信息抽出工序S710中由加密数据抽出部305从第一响应抽出的加密特征矢量C’、和在加密生物体信息读出工序S711中取出的加密特征矢量C、所读出的公开密钥pk、以及随机数生成部303生成的随机数,生成第二挑战(加密随机类似度)。
在随机数存储工序S713中,认证装置102的随机数存储部322使用存储装置914,储存在第二挑战生成工序S712中由随机数生成部303生成的随机数。
在第二挑战通知工序S714中,认证装置102的第二挑战发送部321使用输出装置913,将在第二挑战生成工序S712中由加密随机类似度计算部314生成的第二挑战发送到解密装置103。
在第二挑战取得工序S715中,解密装置103的第二挑战接收部402使用输入装置912,接收在第二挑战通知工序S714中由认证装置102发送了的第二挑战。
在第二响应生成工序S716中,解密装置103的解密部404使用处理装置911,从秘密密钥存储部413读出秘密密钥sk,对在第二挑战取得工序S715中由第二挑战接收部402接收到的第二挑战(加密随机类似度)进行使用了秘密密钥sk的解密处理,生成第二响应(导出随机类似度)。
在第二响应通知工序S717中,解密装置103的第二响应发送部412使用输出装置913,将在第二响应生成工序S716中由解密部404生成的第二响应发送到认证装置102。
在第二响应取得工序S718中,认证装置102的第二响应接收部341使用输入装置912,接收在第二响应通知工序S717中由解密装置103发送了的第二响应。
在明文类似度计算工序S719中,认证装置102的明文类似度抽出部315使用处理装置911,从随机数存储部322取出在第二挑战生成工序S712中由随机数生成部303生成的随机数,从在第二响应取得工序S718中由第二响应接收部341接收到的第二响应(随机类似度)去除随机数,抽出明文的类似度。
在认证判定工序S720中,认证装置102的判定部306使用处理装置911,根据在明文类似度计算工序S719中抽出的明文的类似度、和规定的阈值,进行本人认证。
另外,认证处理S700是通过例如来自证明装置101的认证要求开始的。但是,为了降低通信成本等,也可以是在认证要求到来之前进行协议的事先准备的结构。例如,也可以是预先执行第一挑战生成工序S701至第一挑战取得工序S704的结构。即,在从证明装置101到来认证要求之前,认证装置102生成第一挑战(加密随机数),将所生成的第一挑战发送到证明装置101,证明装置101的加密数据嵌入部217使用存储装置914,储存所接收的第一挑战。关于第一挑战的生成时使用的随机数,认证装置102的随机数存储部322使用存储装置914储存。另外,不得将随机数存储部322储存的随机数对其他装置公开。
在第一挑战生成工序S701中由认证装置102的随机数生成部303生成、并由加密随机数生成部304为了制作第一挑战而使用的随机数中,有作为明文的随机数、和用于对该明文进行加密的随机数这2种。关于在随机数存储工序S702中认证装置102的随机数存储部322储存的随机数,只是其中的作为明文的随机数即可。
在第一响应生成工序S707中,证明装置101利用密码的加法上的同态性,根据第一挑战、和特征矢量的值,生成第一响应。第一挑战是对作为明文的随机数进行加密而得到的。另一方面,特征矢量的值是被加密之前的明文。在第一响应中,嵌入加密特征矢量的值。
通过密码的加法上的同态性,如果在以密文为元(element)的有限群中的群运算中结合密文E(m1)、E(m2),则成为对在以明文为元的有限群中的群运算中结合原来的明文m1、m2而得到的明文m1+m2进行加密而得到的密文E(m1+m2)。此处,m1以及m2表示明文。E表示加密变换。“+”表示以明文或者密文为元的有限群中的群运算。
如果将在有限群中的群运算中结合n个(n是整数)有限群的元a而得到的元记述为“n·a”,则成为n·E(m)=E(n·m)。此处,m表示明文。将该运算称为“标量倍”。另外,此处,将有限群的群运算记述为加法,但在将有限群的群运算记述为乘法的情况下,将相同的运算称为“乘幂”,如“na”那样记述。
如果明文是以规定的数为模的整数,则以明文为元的有限群成为环(或者域(field))。在环的运算中,有加法和乘法。以明文为元的有限环中的加法与以密文为元的有限群中的群运算相对应。将以规定的数为模的整数作为元的有限环中的乘法与标量倍一致。即,以明文为元的有限环中的乘法与以密文为元的有限群中的元的标量倍相对应。
将以明文为元的有限环的乘法中的元a的逆元记述为“a-1”。在存在明文m的逆元m-1的情况下,如果在以密文为元的有限群的群运算中将E(n·m)结合m-1个,则成为对明文n进行加密而得到的密文E(n)。
生物体认证系统100利用该现象。
设为特征矢量是以0以上且小于q的整数为成分的T维矢量(y1,y2,…,yT)(T是1以上的整数)。其中,q是有限环的位数,是2以上的整数。另外,实际的特征矢量的成分也可以是仅能够取例如0或1等限定的值。
在第一挑战生成工序S701中,随机数生成部303将从0以上且小于q的整数中随机地选择的整数设为作为明文的随机数。随机数生成部303生成作为T个明文的随机数x1、x2、…、xT。将其视为与特征矢量相同的T维的矢量(x1,x2,…,xT)。
加密随机数生成部304生成对T维矢量(x1,x2,…,xT)的各成分进行加密变换而得到的T维矢量(E(x1),E(x2),…,E(xT))。这是第一挑战。
在第一响应生成工序S707中,加密数据嵌入部217针对第一挑战(E(x1),E(x2),…,E(xT))的各成分,通过特征矢量(y1,y2,…,yT)的对应的成分进行标量倍,计算T维矢量(y1·E(x1),y2·E(x2),…,yT·E(xT))。根据密码的加法上的同态性,所计算的T维矢量的各成分yi·E(xi)(i是1以上且T以下的整数)成为对特征矢量的成分yi与随机数xi之积yi·xi进行加密变换而得到的密文E(yi·xi)。
原理上,也可以将其原样地作为第一响应,但这样会存在能够根据第一挑战与第一响应之间的关系计算特征矢量的值的可能性。
为了防止该现象,加密数据嵌入部217使用随机数生成部215生成的随机数来进行随机化处理。随机数生成部215生成的随机数是用于对明文进行加密的随机数。加密数据嵌入部217使用随机数生成部215生成的随机数,生成T个对明文“0”进行加密而得到的密文E(0)。在生物体认证系统100利用的密码方式中,与1个明文对应的密文有多个,通过从其中随机地选择密文,防止与明文有关的信息从密文泄漏。因此,与明文“0”对应的密文E(0)也有多个,加密数据嵌入部217生成的T个密文E(0)通常相互不同。因此,将其记述为E01、E02、…、E0T。加密数据嵌入部217通过以密文为元的有限群中的群运算,将所计算的T维矢量(y1·E(x1),y2·E(x2),…,yT·E(xT))的各成分、和所计算的密文E01、E02、…、E0T分别结合,计算T维矢量(y1·E(x1)+E01,y2·E(x2)+E02,…,yT·E(xT)+E0T)。通过密码的加法上的同态性,所计算的T维矢量的各成分yi·E(xi)+E0i(i是1以上且T以下的整数)成为对特征矢量的成分yi与随机数xi之积yi·xi进行加密变换而得到的密文E(yi·xi),但相比于与密文E0i结合之前的密文,变化为不同的密文。
该T维矢量(y1·E(x1)+E01,y2·E(x2)+E02,…,yT·E(xT)+E0T)=(E(y1·x1),E(y2·x2),…,E(yT,xT))是第一响应。
在加密生物体信息抽出工序S710中,加密数据抽出部305针对随机数存储部322存储的T个随机数x1、x2、…、xT,分别计算以q为模的整数的乘法中的逆元(倒数)x1 -1、x2 -1、…、xT -1。在q是素数的情况下,将以q为模的整数作为元的有限环成为域,所以一定存在逆元。另外,在q并非素数的情况下,有不存在乘法中的逆元的可能性,但如果q充分大则其可能性极其低,而也可以忽略。
加密数据抽出部305针对第一响应(E(y1·x1),E(y2·x2),…,E(yT,xT))的各成分通过所计算的逆元进行标量倍,计算T维矢量(x1 -1·E(y1,x1),x2 -1·E(y2,x2),…xT -1·E(yT·xT))。根据密码的加法上的同态性,所计算的T维矢量的各成分xi -1·E(yi·xi)(i是1以上且T以下的整数)成为对特征矢量的成分yi进行加密变换而得到的密文E(yi)。
这样,认证装置102计算加密特征矢量C’。
以q为模的整数的乘法中的逆元能够容易地计算。因此,如果知道xi,就能够容易地计算xi -1,因此,根据第一响应计算加密特征矢量C’也是容易的。但是,如果不知道xi,则根据第一响应计算加密特征矢量C’事实上是不可能的。即,在第一挑战生成工序S701中随机数生成部303生成的作为明文的随机数是仅认证装置102知道的秘密密钥(暂时秘密密钥),对作为明文的随机数进行加密而得到的第一挑战是用于根据特征矢量生成第一响应的公开密钥(暂时公开密钥)。
此处,第一响应是针对特征矢量通过认证装置102的公开密钥进行加密而得到的,同时还是通过解密装置103的公开密钥pk进行加密而得到的,可以说是对特征矢量双重地进行了加密而得到的。认证装置102能够通过秘密密钥对第一响应进行解密,但作为其结果得到的是针对特征矢量通过解密装置103的公开密钥pk进行加密而得到的加密特征矢量。为了对加密特征矢量进一步进行解密来得到特征矢量,需要解密装置103的秘密密钥sk。认证装置102不知道与公开密钥pk对应起来的秘密密钥sk,所以无法对加密特征矢量C、加密特征矢量C’进行解密。
另外,即使冒充认证装置102的装置并非通过使用了解密装置103的公开密钥pk的加密变换生成第一挑战,而是生成秘密密钥sk’和公开密钥pk’的组并通过使用了所生成的公开密钥pk’的加密变换来生成第一挑战,仍无法根据第一响应对加密特征矢量C’进行解密。在第一响应的各成分中,结合通过使用了解密装置103的公开密钥pk的加密变换生成的E0i,所以在该时间点,第一响应成为通过任意的秘密密钥都无法解密的无意义的数据。即,为了使第一响应成为有意义的数据,证明装置101所存储的公开密钥和认证装置102所存储的公开密钥相同这一点成为条件。
另外,在第二挑战生成工序S712中,在认证装置102的随机数生成部303生成的随机数中,也有作为明文的随机数、和用于加密的随机数这2种。关于在随机数存储工序S713中认证装置102的随机数存储部322储存的随机数,只是其中的作为明文的随机数即可。
与在第一挑战生成工序S701中随机数生成部303生成的作为明文的随机数是用于对第一响应进行解密的密钥(暂时秘密密钥)的情况同样地,在第二挑战生成工序S712中随机数生成部303生成的作为明文的随机数是用于对第二响应进行解密的密钥(暂时密钥)。
但是,第二挑战与第二响应的关系和第一挑战与第一响应的关系不同。第一挑战是认证装置102的一次性的公开密钥。证明装置101通过使用认证装置102的公开密钥、和解密装置103的公开密钥对特征矢量双重地进行加密,生成第一响应。相对于此,第二挑战是其自身被加密了的数据。第二挑战是使用认证装置102的密钥,对通过解密装置103的公开密钥加密了的数据进一步进行加密而得到的数据。即,第二挑战是被双重地加密了的数据。解密装置103使用解密装置103的秘密密钥,对第二挑战进行解密来生成第二响应。解密装置103对双重地加密了的第二挑战进行解密,生成仅通过认证装置102的密钥加密了的数据。认证装置102通过使用认证装置102的密钥对第二响应进行解密,得到明文的类似度。
用于计算明文的类似度的计算被分成几个阶段,例如,在第二挑战生成工序S712、第二响应生成工序S716等中执行各个阶段。在第二挑战生成工序S712中,认证装置102在特征矢量被加密了的状态下,执行用于计算类似度的计算的一部分。因此,在该阶段中,认证装置102无法得知特征矢量。第二挑战是对已经结束一部分的计算的状态的数据双重地进行加密而得到的。由于已经结束一部分的计算,所以在第二挑战中,并非包括原来的特征矢量的所有信息,而仅包括类似度的计算所需的信息。在第二响应生成工序S716中,解密装置103对第二挑战进行解密,得到通过认证装置102的密钥对类似度的计算所需的信息进行了加密的数据。解密装置103执行在通过认证装置102的密钥被加密了的状态下用于计算类似度的计算的一部分。因此,在该阶段中,解密装置103无法得知特征矢量、明文的类似度。第二响应是对已经结束大部分的计算的状态的数据进行加密而得到的。由于已经结束大部分的计算,所以在第二响应中,不包括原来的特征矢量的信息。在明文类似度计算工序S719中,认证装置102对第二响应进行解密,计算类似度。明文的类似度自身在明文类似度计算工序S719之前不出现。
另外,明文的类似度是仅表示登记用的特征矢量b和认证用的特征矢量b’类似到何种程度的信息。因此,难以根据明文的类似度计算特征矢量、生物体信息。
接下来,关于各阶段中的处理的详细内容,说明使用了具体的密码方式的例子。在该实施方式中,说明使用了冈本-高岛密码方式的例子。
首先,说明冈本-高岛密码方式的概要。
q是2以上的素数。G以及GT是位数q的有限群。另外,有限群G以及有限群GT中的群运算被记述为乘法。Fq是以0以上且小于q的整数为元的有限域(finite field)。e是使有限群G的2个元的组与有限群GT的元对应起来的配对(pairing)G×G→GT。配对e满足双线性和非退化性。双线性是指,针对有限群G的任意的2个元u、v、和有限域Fq的任意的2个元a、b,成为e(ua,vb)=e(u,v)ab。另外,非退化性是指,在有限群G的元中,至少存在一个成为e(g,g)≠1的元g。另外,配对e也可以是非对称配对。
V是n个有限群G的直积集合G×G×…×G。
关于V中的加法“+”,针对V的任意的2个元x=(gx1,gx2,…,gxn)、y=(gy1,gy2,…,gyn),将V的元(gx1+y1,gx2+y2,…,gxn+yn)定义为基于2个元x、y的加法“+”的结合x+y。
关于V中的标量倍,针对V的任意的元x=(gx1,gx2,…,gxn)、和有限域Fq的任意的元α,将V的元(gαx1,gαx2,…,gαxn)定义为针对元x利用元α进行标量倍而得到的元αx。
此时,V成为矢量空间。将矢量空间V的元称为“矢量”。
另外,关于矢量空间V彼此的配对e:V×V→GT,针对矢量空间V中的任意的2个矢量u=(u1,u2,…,un)、v=(v1,v2,…,vn),将有限群GT的元Πi[e(ui,vi)](其中,i∈{1,2,…,n})定义为2个矢量u、v的配对e(u,v)。
另外,定义为A是矢量空间V中的n个矢量的顺序列(a1,a2,…,an),矢量ai=(ai1,ai2,…,ain)在i=j时成为aij=g、在i≠j时成为aij=1(1是有限群G的单位元)。
此时,A成为矢量空间V的基底。将基底A称为标准基底。
关于矢量空间V中的失真映射φi,j:V→V,针对矢量空间V中的任意的矢量x=x1a1+x2a2+…+xnan、和1以上且n以下的任意的2个整数i、j,将矢量xjai定义为矢量x的失真映射φi,j(x)。另外,关于失真映射φi,j,设为能够使用计算机高效地计算。
关于矢量空间V,有标准基底,定义了矢量空间彼此的配对,定义了可计算的失真映射。将这样的矢量空间称为对偶配对(bilinearpairing)矢量空间。
将X设为将从有限域Fq均匀随机地选择的n2个值χi,j(i,j是1以上n以下的整数)作为i行j列的成分的n次的方阵。如果q充分大,则方阵X以极其高的概率成为正则矩阵。
B是矢量空间V中的n个矢量的顺序列(ь1,ь2,…,ьn),定义为ьi=Σj[χi,jaj](其中,i、j是1以上n以下的整数)。如果方阵X是正则矩阵,则B与A同样地成为矢量空间V的基底。将基底B称为随机基底。
此时,以下的性质成立。
在提供了n个有限域Fq的直积Fq n的要素(x1,x2,…,xn)时,能够容易地计算矢量空间V中的矢量x=x1ь1+x2ь2+…+xnьn。另外,在提供了矢量空间V中的矢量x=x1ь1+x2ь2+…+xLьL(L是2以上n以下的整数)时,如果使用正则矩阵X,则能够计算矢量空间V中的矢量y=x1ь1+x2ь2+xlьl(l是1以上且小于L的整数)。但是,如果不使用正则矩阵X,则计算矢量y这一点与一般化了的Diffie-Hellman计算问题相同程度地困难。
图11是示出使用正则矩阵X来求解矢量分解问题的矢量分解处理S540的流程的一个例子的流程图。
矢量分解处理S540输入矢量空间V中的矢量x、希望从矢量x取出的矢量成分<ь1,ь2,…,ьl>、n次的正则矩阵X、以及随机基底B,输出矢量空间V中的矢量y=ΣiΣjΣk[ti,jχj,kφk,i(x)](i是1以上L以下的整数。j是1以上l以下的整数。k是1以上L以下的整数。ti,j是正则矩阵X的逆矩阵T=X-1的i行j列成分)。矢量分解处理S540具有例如逆矩阵计算工序S541、第一初始化工序S542、第一反复工序S543、第二初始化工序S544、第二反复工序S545、第三初始化工序S546、第三反复工序S547、系数累计工序S548、映射计算工序S549、标量倍工序S550、以及矢量累计工序S551。
最初,在逆矩阵计算工序S541中,计算正则矩阵X的逆矩阵X-1。
在第一初始化工序S542中,将矢量空间V的元y初始化为0。将整数i初始化为0。
在第一反复工序S543中,对整数i加上1。在整数i大于整数L的情况下,输出元y,结束矢量分解处理S540。在整数i是整数L以下的情况下,进入第二初始化工序S544。
在第二初始化工序S544中,将整数k初始化为0。
在第二反复工序S545中,对整数k加上1。在整数k大于整数L的情况下,返回第一反复工序S543。在整数k是整数L以下的情况下,进入第三初始化工序S546。
在第三初始化工序S546中,将整数j初始化为0,将系数κ初始化为0。
在第三反复工序S547中,对整数j加上1。在整数j大于整数l的情况下,进入映射计算工序S549。在整数j是整数l以下的情况下,进入系数累计工序S548。
在系数累计工序S548中,计算在逆矩阵计算工序S541中计算的逆矩阵X-1的i行j列的成分ti,j、与正则矩阵X的j行k列的成分χj, k之积。将计算出的积加到系数κ,返回第三反复工序S547。
在映射计算工序S549中,计算矢量空间V中的矢量x的失真映射φk,i(x),作为矢量φ。
在标量倍工序S550中,计算对在映射计算工序S549中计算的矢量φ=φk,i(x)进行κ倍而得到的矢量φ’=κφ。
在矢量累计工序S551中,将在标量倍工序S550中计算的矢量φ’=κφk,i(x)加到矢量y,返回第二反复工序S545。
在冈本-高岛密码方式中,通过将正则矩阵X作为秘密密钥,实现陷门函数(trap door function)。
例如,将有限域Fq的元m作为明文,将矢量空间V中的矢量mь1+r2ь2+…+rnьn作为对明文m进行加密而得到的密文E(m)。其中,ri(i是2以上n以下的整数)是从有限域Fq均匀随机地选择的元。在解密时,使用作为秘密密钥的正则矩阵X,执行矢量分解处理S540,根据密文E(m),计算矢量空间V中的矢量mь1,从而删除作为随机化要素的ri。
图12是示出该实施方式中的密钥生成部401的结构的一个例子的详细框图。
解密装置103的密钥生成部401具有例如群决定部421、标准基底设定部422、随机数生成部423、行列式计算部424、正则矩阵设定部425、以及随机基底计算部426。
群决定部421使用处理装置911,根据依据保密等级决定的大小(比特数),生成素数q。素数q越大,安全性越高,但密文变大,在密码处理、解密处理中花费时间。素数q的大小是例如200比特、1024比特等。群决定部421根据所生成的素数q,决定有限群G和有限群GT。关于群决定部421决定的有限群G和有限群GT,位数都是q,具有配对e:G×G→GT。群决定部421计算有限群G的生成元g。另外,设定的顺序也可以不同,例如,也可以是在最初决定了有限群G之后,计算有限群G的位数,并判定有限群G的位数是否为满足保密等级的大小的素数的结构。
标准基底设定部422使用处理装置911,根据依据保密等级决定的维度n,设定n维的矢量空间V,设定矢量空间V的标准基底A。维度n越大,安全性越高,但密文变大,在密码处理、解密处理中花费时间。维度n是例如3等。
随机数生成部423使用处理装置911,根据群决定部421决定的有限群G的位数q,生成n2个随机数χi,j(i、j是1以上n以下的整数)。随机数生成部423生成的随机数χi,j是从0以上且小于q的整数中均匀随机地选择的整数。
行列式计算部424使用处理装置911,根据随机数生成部423生成的n2个随机数χi,j,生成n次的方阵X。行列式计算部424生成的方阵X是将各个随机数χi,j作为i行j列的成分的矩阵。行列式计算部424使用处理装置911,计算所生成的方阵X的行列式|X|。
正则矩阵设定部425使用处理装置911,在行列式计算部424计算出的行列式|X|为非0的情况下,将行列式计算部424生成的方阵X设定为正则矩阵X。
随机基底计算部426使用处理装置911,根据标准基底设定部422设定的标准基底A、和正则矩阵设定部425设定的正则矩阵X,计算随机基底B。随机基底计算部426计算的随机基底B的各矢量ьi(i是1以上n以下的整数)是ьi=Σj[χi,jaj](j是1以上n以下的整数)。随机基底计算部426例如如以下那样,计算随机基底B的第i个矢量ьi。随机基底计算部426针对1以上n以下的所有整数j,根据正则矩阵X的i行j列的成分χi,j、和标准基底A的第j个矢量aj,通过矢量空间V中的标量倍,计算对矢量aj进行χi,j倍而得到的矢量χi,jaj。随机基底计算部426通过矢量空间V中的加法,计算结合所计算的n个矢量χi,jaj而得到的矢量Σj[χi,jaj]。
解密装置103的公开密钥存储部403使用存储装置914,作为公开密钥pk,储存群决定部421设定的位数q、配对e及有限群GT、标准基底设定部422设定的矢量空间V和标准基底A、以及随机基底计算部426设定的随机基底B的组(q,V,e,GT,A,B)。
解密装置103的秘密密钥存储部413使用存储装置914,作为秘密密钥sk,储存正则矩阵设定部425设定的正则矩阵X。
图13是示出该实施方式中的密钥生成工序S501的处理流程的一个例子的流程图。
在密钥生成工序S501中,解密装置103生成公开密钥pk和秘密密钥sk的组。另外,也可以是针对每个用户生成不同的公开密钥pk和秘密密钥sk的组的结构,也可以是作为系统整体生成1个公开密钥pk和秘密密钥sk的组的结构。
密钥生成工序S501具有例如群决定工序S511、标准基底设定工序S512、矩阵生成工序S513、正则判定工序S514、以及随机基底计算工序S515。
最初,在群决定工序S511中,群决定部421使用处理装置911,决定位数q、位数q的有限群G及有限群GT、以及有限群G的生成元g。公开密钥存储部403使用存储装置914,作为公开密钥pk的一部分,存储群决定部421决定的位数q和有限群GT。
在标准基底设定工序S512中,标准基底设定部422使用处理装置911,根据在群决定工序S511中群决定部421决定的有限群G,设定矢量空间V、和矢量空间V的标准基底A。公开密钥存储部403使用存储装置914,作为公开密钥pk的一部分,存储标准基底设定部422设定的矢量空间V和标准基底A。
在矩阵生成工序S513中,随机数生成部423使用处理装置911,生成n2个随机数χi,j。行列式计算部424使用处理装置911,根据随机数生成部423生成的n2个随机数χi,j,生成n次的方阵X。
在正则判定工序S514中,行列式计算部424使用处理装置911,计算在矩阵生成工序S513中生成的方阵X的行列式|X|。
在行列式计算部424计算出的行列式|X|是0的情况下,行列式计算部424使处理返回到矩阵生成工序S513,随机数生成部423重新生成随机数。
在行列式计算部424计算出的行列式|X|为非0的情况下,正则矩阵设定部425使用处理装置911,将方阵X设定为正则矩阵X。秘密密钥存储部413使用存储装置914,作为秘密密钥sk,存储正则矩阵设定部425设定的正则矩阵X。
在随机基底计算工序S515中,随机基底计算部426使用处理装置911,根据在标准基底设定工序S512中标准基底设定部422设定的标准基底A、和在正则判定工序S514中正则矩阵设定部425设定的正则矩阵X,计算随机基底B。公开密钥存储部403使用存储装置914,作为公开密钥pk的一部分,存储随机基底计算部426计算出的随机基底B。
关于这样由公开密钥存储部403存储的公开密钥pk=(q,V,e,GT,A,B),公开密钥发送部408发送到认证装置102等,认证装置102等接收并储存。
图14是示出该实施方式中的特征矢量加密工序S603的处理流程的一个例子的流程图。
在特征矢量加密工序S603中,登记装置104对特征矢量b进行加密而生成加密特征矢量C。特征矢量加密工序S603具有例如初始化工序S610、反复工序S611、随机数生成工序S612、以及矢量计算工序S613。
由登记装置104的特征矢量形成部204生成、并由加密数据生成部206加密的特征矢量b是例如以整数为成分的T维的矢量(b1,b2,…,bT)(T是1以上的整数)。特征矢量b的各成分bi(i是1以上且T以下的整数)是例如0和1这2个值中的某一个,表示生物体信息是否具有与其成分对应的特征。例如,特征矢量形成部204将生物体信息抽出部203对指纹照射光并对纹理(pattern)进行摄影而得到的图像(生物体信息)分割为T个区域,判定特征点(例如纹理的端点、分支点等)是否存在于所分割的各个区域中。特征矢量形成部204在有特征点的情况下,将1设定为与其区域对应的特征矢量的成分,在无特征点的情况下,将0设定为对与其区域对应的特征矢量的成分。
加密数据生成部206生成的加密特征矢量C是以矢量空间V中的矢量为成分的T维的矢量(c1,c2,…,cT)。
最初,在初始化工序S610中,加密数据生成部206使用处理装置911,将整数i初始化为0。
在反复工序S611中,加密数据生成部206使用处理装置911,对整数i加上1。在整数i大于T的情况下,加密数据生成部206结束特征矢量加密工序S603。在整数i是T以下的情况下,加密数据生成部206使处理进入随机数生成工序S612,生成加密特征矢量C的第i个成分ci。
在随机数生成工序S612中,随机数生成部205使用处理装置911,根据作为公开密钥存储部202存储的公开密钥pk的一部分的位数q,生成(n-1)个随机数rj,i(j是2以上n以下的整数)。随机数生成部205生成的随机数rj,i是从0以上且小于q的整数中均匀随机地选择的整数。
在矢量计算工序S613中,加密数据生成部206使用处理装置911,根据作为公开密钥存储部202存储的公开密钥pk的一部分的随机基底B、特征矢量形成部204生成的特征矢量b的第i个成分bi、以及在随机数生成工序S612中随机数生成部205生成的(n-1)个随机数rj,i,计算加密特征矢量C的第i个成分ci。加密数据生成部206计算的加密特征矢量C的第i个成分ci是将通过矢量空间V中的标量倍针对随机基底B的最初的矢量ь1用整数bi进行标量倍而得到的矢量biь1、和通过矢量空间V中的标量倍针对随机基底B的第2个以后的矢量ьj(j是2以上n以下的整数)分别用随机数rj,i进行标量倍而得到的(n-1)个矢量rj,iьj,通过矢量空间V中的加法进行结合而得到的矢量biь1+Σj[rj,iьj](j是2以上n以下的整数)。例如,加密数据生成部206根据随机基底B的最初的矢量ь1、和特征矢量b的第i个成分bi,计算通过矢量空间V中的标量倍针对矢量ь1用整数bi进行标量倍而得到的矢量biь1。另外,加密数据生成部206针对2以上n以下的所有整数j,根据随机基底B的第j个矢量ьj、和随机数生成部205生成的(n-1)个随机数中的第(j-1)个随机数rj,i,计算通过矢量空间V中的标量倍针对矢量ьj用随机数rj,i进行标量倍而得到的矢量rj,iьj。加密数据生成部206通过矢量空间V中的加法,计算将所计算的矢量biь1、和所计算的(n-1)个矢量rj,iьj全部结合而得到的矢量biь1+Σj[rj,iьj](j是2以上n以下的整数)。
加密数据生成部206使处理返回到反复工序S611,生成加密特征矢量C的接下来的成分。
关于这样由加密数据生成部206生成的加密特征矢量C,加密数据发送部201发送到认证装置102,认证装置102接收并储存。
图15是示出该实施方式中的第一挑战生成工序S701的处理流程的一个例子的流程图。
在第一挑战生成工序S701中,认证装置102生成第一挑战R。第一挑战生成工序S701具有例如初始化工序S729、反复工序S721、随机数生成工序S722、以及矢量计算工序S723。
认证装置102的加密随机数生成部304生成的第一挑战R是以矢量空间V中的矢量为成分的T维的矢量(R1,R2,…,RT)。
最初,在初始化工序S729中,加密随机数生成部304使用处理装置911,将整数i初始化为0。
在反复工序S721中,加密随机数生成部304使用处理装置911,对整数i加上1。在整数i大于T的情况下,加密随机数生成部304结束第一挑战生成工序S701。在整数i是T以下的情况下,加密随机数生成部304使处理进入随机数生成工序S722,生成第一挑战R的第i个成分Ri。
在随机数生成工序S722中,随机数生成部303使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的位数q,生成n个随机数Rj,i(j是1以上n以下的整数)。随机数生成部303生成的随机数Rj,i是从0以上且小于q的整数中均匀随机地选择的整数。随机数存储部322使用存储装置914,存储随机数生成部303生成的n个随机数Rj,i中的最初的随机数R1,i。
在矢量计算工序S723中,加密随机数生成部304使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的随机基底B、和在随机数生成工序S722中随机数生成部303生成的n个随机数Rj,i,计算第一挑战R的第i个成分Ri。加密随机数生成部304计算的第一挑战R的第i个成分Ri是将通过矢量空间V中的标量倍针对随机基底B的各矢量ьj(j是1以上n以下的整数)分别用随机数Rj,i进行标量倍而得到的n个矢量Rj,iьj,通过矢量空间V中的加法进行结合而得到的矢量Σj[Rj,iьj](j是1以上n以下的整数)。例如,加密随机数生成部304针对1以上n以下的所有整数j,根据随机基底B的第j个矢量ьj、和随机数生成部205生成的n个随机数中的第j个随机数rj,i,计算通过矢量空间V中的标量倍针对矢量ьj用随机数Rj,i进行标量倍而得到的矢量Rj,iьj。加密随机数生成部304通过矢量空间V中的加法,计算将所计算的n个矢量Rj,iьj结合而得到的矢量Σj[Rj,iьj](j是1以上n以下的整数)。
加密随机数生成部304使处理返回到反复工序S721,生成第一挑战R的接下来的成分。
关于这样由加密随机数生成部304生成的第一挑战R,第一挑战发送部311发送到证明装置101,证明装置101接收并处理。
在第一挑战生成工序S701中随机数生成部303生成的随机数Rj, i(i是1以上且T以下的整数。j是1以上n以下的整数)全部是nT个。其中,随机数存储部322存储T个随机数R1,i(i是1以上且T以下的整数)。随机数存储部322存储的T个随机数R1,i是作为明文的随机数,剩余的(n-1)T个随机数Rj,i(i是1以上且T以下的整数。j是2以上n以下的整数)是用于加密的随机数。第一挑战R的各成分Ri是对作为明文的随机数R1,i进行加密而得到的。
图16是示出该实施方式中的加密数据嵌入部217的结构的一个例子的详细框图。
证明装置101的加密数据嵌入部217具有例如标量倍计算部231、零生成部232、以及矢量结合部233。
由特征矢量形成部214生成并由加密数据嵌入部217加密的特征矢量b’是与登记装置104的特征矢量形成部204生成的特征矢量b同样地,以整数为成分的T维的矢量(b’1,b’2,…,b’T)。
随机数生成部215使用处理装置911,根据作为公开密钥存储部212存储的公开密钥pk的一部分的位数q,生成(n-1)T个随机数R’j, i(i是1以上且T以下的整数。j是2以上n以下的整数)。随机数生成部215生成的随机数R’j,i是从0以上且小于q的整数中均匀随机地选择的整数。
标量倍计算部231使用处理装置911,根据第一挑战接收部211接收到的第一挑战R、和特征矢量形成部214生成的特征矢量b’,计算标量倍矢量Я。标量倍矢量Я是与第一挑战R同样地,以矢量空间V中的矢量为成分的T维的矢量(я1,я2,…,яT)。标量倍计算部231计算的标量倍矢量Я的第i个成分яi(i是1以上且T以下的整数)是通过矢量空间V中的标量倍,针对第一挑战R的第i个成分Ri用特征矢量b’的第i个成分b’i进行标量倍而得到的矢量b’iRi。标量倍矢量Я的各成分是对特征矢量b’的成分b’i、与认证装置102生成的作为明文的随机数R1,i之积进行加密而得到的。
零生成部232使用处理装置911,根据作为公开密钥存储部202存储的公开密钥pk的一部分的随机基底B、和随机数生成部215生成的(n-1)T个随机数R’j,i,生成加密零矢量O。加密零矢量O是以矢量空间V中的矢量为成分的T维的矢量(o1,o2,…,oT)。加密零矢量O的第i个成分oi(i是1以上且T以下的整数)是将通过矢量空间V中的标量倍针对随机基底B的第2个至第n个的矢量ьj(j是2以上n以下的整数)分别用随机数R’j,i进行标量倍而得到的(n-1)个矢量R’j,iьj,通过矢量空间V中的加法进行结合而得到的矢量Σj[R’j, iьj](j是2以上n以下的整数)。加密零矢量O的各成分是对0进行加密而得到的。
矢量结合部233使用处理装置911,根据标量倍计算部231计算出的标量倍矢量Я、和零生成部232生成的加密零矢量O,计算第一响应R’。第一响应R’是以矢量空间V中的矢量为成分的T维的矢量(R’1,R’2,…,R’T)。第一响应R’的第i个成分R’i(i是1以上且T以下的整数)是通过矢量空间V中的加法将标量倍矢量Я的第i个成分яi、和加密零矢量O的第i个成分oi结合而得到的矢量яi+oi。第一响应R’的各成分R’i是对在第一挑战R的成分Ri中被加密了的作为明文的随机数R1,i、与特征矢量b’的成分b’i之积进行加密而得到的。
图17是示出该实施方式中的第一响应生成工序S707的处理流程的一个例子的流程图。
在第一响应生成工序S707中,证明装置101根据特征矢量b’、和第一挑战R,生成第一响应R’。第一响应生成工序S707具有例如初始化工序S660、反复工序S661、标量倍计算工序S662、随机数生成工序S663、零生成工序S664、以及矢量结合工序S665。
最初,在初始化工序S660中,矢量结合部233使用处理装置911,将整数i初始化为0。
在反复工序S661中,矢量结合部233使用处理装置911,对整数i加上1。在整数i大于T的情况下,矢量结合部233结束第一响应生成工序S707。在整数i是T以下的情况下,矢量结合部233使处理进入标量倍计算工序S662,生成第一响应R’的第i个成分R’i。
在标量倍计算工序S662中,标量倍计算部231使用处理装置911,根据特征矢量形成部214生成的特征矢量b’的第i个成分b’i、和第一挑战接收部211接收到的第一挑战R的第i个矢量Ri,计算标量倍矢量Я的第i个成分яi=b’iRi。
在随机数生成工序S663中,随机数生成部215使用处理装置911,生成(n-1)个随机数R’j,i(j是2以上n以下的整数)。
在零生成工序S664中,零生成部232使用处理装置911,根据在随机数生成工序S663中随机数生成部215生成的(n-1)个随机数R’j,i,计算加密零矢量O的第i个成分oi=Σj[R’j,iьj](j是2以上n以下的整数)。例如,零生成部232针对2以上n以下的所有整数j,根据随机基底B的第j个矢量ьj、和随机数生成部215生成的(n-1)个随机数中的第(j-1)个随机数R’j,i,通过矢量空间V中的标量倍,计算针对矢量ьj用R’j,i进行标量倍而得到的矢量R’j,iьj。零生成部232通过矢量空间V中的加法,计算将所计算的(n-1)个矢量R’j,iьj结合而得到的矢量Σj[R’j,iьj]。
在矢量结合工序S665中,矢量结合部233使用处理装置911,根据在标量倍计算工序S662中标量倍计算部231计算出的标量倍矢量Я的第i个成分яi=b’iRi、和在零生成工序S664中零生成部232计算出的加密零矢量O的第i个成分oi=Σj[R’j,iьj](j是2以上n以下的整数),计算第一响应R’的第i个成分R’i=яi+oi=b’iRi+Σj[R’j,iьj]。
矢量结合部233使处理返回到反复工序S661,生成第一响应R’的接下来的成分。
关于这样由加密数据嵌入部217生成的第一响应R’,第一响应发送部221发送到认证装置102,认证装置102接收并处理。
另外,在特征矢量b’的成分b’i只能取0或者1这2个值的情况下,第一响应生成工序S707的处理能够例如如以下那样简化。
首先,由于无需进行标量倍,所以不设置标量倍计算部231,不执行标量倍计算工序S662。
在矢量结合工序S665中,矢量结合部233使用处理装置911,判定特征矢量b’的第i个成分b’i是0还是1。在特征矢量b’的第i个成分b’i是0的情况下,矢量结合部233使用处理装置911,将在零生成工序S664中零生成部232计算出的加密零矢量O的第i个成分oi=Σj[R’j,iьj]作为第一响应R’的第i个成分R’i。在特征矢量b’的第i个成分b’i是1的情况下,矢量结合部233使用处理装置911,通过矢量空间V中的加法,计算将在零生成工序S664中零生成部232计算出的加密零矢量O的第i个成分oi=Σj[R’j,iьj]、和第一挑战接收部211接收到的第一挑战R的第i个成分Ri结合而得到的矢量oi+Ri=Ri+Σj[R’j,iьj],作为第一响应R’的第i个成分R’i。
第一挑战R的第i个成分Ri是Σj[Rj,iьj](j是1以上n以下的整数),所以第一响应R’的第i个成分R’i是R’i=b’iΣk[Rk,iьj]+Σj[R’j,iьj](j是2以上n以下的整数。k是1以上n以下的整数)=b’iR1, iь1+Σj[(b’iRj,i+R’j,i)ьj](j是2以上n以下的整数)。即,第一响应R’的第i个成分R’i是对特征矢量b’的第i个成分b’i、与随机数R1, i之积进行加密而得到的。
图18是示出该实施方式中的加密数据抽出部305的结构的一个例子的详细框图。
认证装置102的加密数据抽出部305具有例如倒数计算部351、和标量倍计算部352。
认证装置102的加密数据抽出部305生成的加密特征矢量C’是与登记装置104的加密数据生成部206生成的加密特征矢量C同样地,以矢量空间V中的矢量为成分的T维的矢量(c’1,c’2,…,c’T)。
倒数计算部351使用处理装置911,根据随机数存储部322存储的T个随机数R1,i(i是1以上且T以下的整数),计算基于有限域Fq中的乘法的随机数R1,i各自的逆元κi=R1,i -1。逆元κi是将随机数R1,i与逆元κi之积除以q而得到的余数成为1的整数。加密数据抽出部305通过计算例如将随机数R1,i的(q-2)次方除以q而得到的余数,计算逆元κi。
标量倍计算部352使用处理装置911,根据第一响应接收部331接收到的第一响应R’、和倒数计算部351计算出的T个逆元κi,计算加密特征矢量C’。标量倍计算部352计算的加密特征矢量C’的第i个成分c’i(i是1以上且T以下的整数)是通过矢量空间V中的标量倍针对第一响应R’的第i个成分R’i用第i个逆元κi进行标量倍而得到的矢量κiR’i。加密特征矢量C’的各成分c’i是对特征矢量b’的成分b’i进行加密而得到的。
图19是示出该实施方式中的加密生物体信息抽出工序S710的处理流程的一个例子的流程图。
在加密生物体信息抽出工序S710中,认证装置102根据第一响应R’,生成加密特征矢量C’。加密生物体信息抽出工序S710具有例如初始化工序S730、反复工序S731、倒数计算工序S732、以及标量倍计算工序S733。
最初,在初始化工序S730中,标量倍计算部352使用处理装置911,将整数i初始化为0。
在反复工序S731中,标量倍计算部352使用处理装置911,对整数i加上1。在整数i大于T的情况下,标量倍计算部352结束加密生物体信息抽出工序S710。在整数i是T以下的情况下,标量倍计算部352使处理进入倒数计算工序S732,生成加密特征矢量C’的第i个成分c’i。
在倒数计算工序S732中,倒数计算部351使用处理装置911,根据在第一挑战生成工序S701中随机数存储部322存储的T个随机数中的第i个随机数R1,i,计算有限域Fq的乘法中的随机数R1,i的逆元κi=R1,i -1。
在标量倍计算工序S733中,标量倍计算部352使用处理装置911,根据第一响应接收部331接收到的第一响应R’的第i个成分R’i、和在倒数计算工序S732中计算的逆元κi,计算加密特征矢量C’的第i个成分c’i=κiR’i。
标量倍计算部352使处理返回到反复工序S731,生成加密特征矢量C’的接下来的成分。
这样,加密数据抽出部305生成的加密特征矢量C’在第二挑战生成工序S712中被使用。
第一响应R’的第i个成分R’i是R’i=b’iR1,iь1+Σ[(b’iRj,i+R’j,i)ьj](j是2以上n以下的整数),所以加密特征矢量C’的第i个成分c’i是c’i=R1,i -1b’iR1,iь1+R1,i -1Σ[(b’iRj,i+R’j,i)ьj](j是2以上n以下的整数)。由于是R1,iR1,i -1≡1(mod q),所以是c’i=b’iь1+R1,i -1Σ[(b’iRj, i+R’j,i)ьj](j是2以上n以下的整数)。即,加密特征矢量C’的第i个成分c’i是对特征矢量b’的第i个成分b’i进行加密而得到的。
图20是示出该实施方式中的加密随机类似度计算部314的结构的一个例子的详细框图。
认证装置102的加密随机类似度计算部314具有例如差分计算部361、干扰矢量生成部362、矢量结合部363、标量倍计算部364、平方和计算部365、加密密钥生成部366、以及矢量累计部367。
随机数生成部303使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的位数q,生成n(T+1)个随机数tj,i,uj(i是1以上且T以下的整数。j是1以上n以下的整数)。随机数生成部303生成的随机数tj,i,uj是从0以上且小于q的整数中均匀随机地选择的整数。
随机数存储部322使用存储装置914,存储随机数生成部303生成的随机数中的1个随机数u1。
差分计算部361使用处理装置911,根据加密数据存储部312存储的加密特征矢量C、和加密数据抽出部305抽出的加密特征矢量C’,计算加密差分矢量ΔC。加密差分矢量ΔC是以矢量空间V中的矢量为成分的T维的矢量(Δc1,Δc2,…,ΔcT)。加密差分矢量ΔC的第i个成分Δci(i是1以上且T以下的整数)是通过矢量空间V中的加法将加密特征矢量C的第i个成分ci、和加密特征矢量C’的第i个成分c’i的逆矢量-c’i结合而得到的矢量ci-c’i。加密差分矢量ΔC的各成分Δci是对特征矢量b的成分bi与特征矢量b’的成分b’i的差bi-b’i进行加密而得到的。
另外,加密差分矢量ΔC的第i个成分Δci也可以是通过矢量空间V中的加法将加密特征矢量C的第i个成分ci的逆矢量-ci、和加密特征矢量C’的第i个成分c’i结合而得到的矢量c’i-ci。另外,加密差分矢量ΔC的成分Δci也可以是从矢量ci-c’i、和矢量c’i-ci中随机地选择的某一个矢量。
干扰矢量生成部362使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的随机基底B、和随机数生成部303生成的随机数中的nT个随机数tj,i,生成干扰矢量т。干扰矢量т是以矢量空间V中的矢量为成分的T维的矢量(t1,t2,…,tT)。干扰矢量т的各成分ti(i是1以上且T以下的整数)是将通过矢量空间V中的标量倍针对随机基底B的各矢量ьj(j是1以上n以下的整数)分别用随机数tj,i进行标量倍而得到的n个矢量tj,iьj,通过矢量空间V中的加法进行结合而得到的矢量Σj[tj,iьj](j是1以上n以下的整数)。干扰矢量т的各成分ti是对作为明文的随机数t1,i进行加密而得到的。
矢量结合部363使用处理装置911,根据差分计算部361计算出的加密差分矢量ΔC、和干扰矢量生成部362计算出的干扰矢量т,计算作为第二挑战C^的一部分的T个矢量c^i(i是1以上且T以下的整数)。矢量c^i是矢量空间V中的矢量。第i个矢量c^i是通过矢量空间V中的加法将加密差分矢量ΔC的第i个成分Δci、和干扰矢量т的第i个成分ti结合而得到的矢量Δci+ti。矢量c^i是对特征矢量b的成分bi与特征矢量b’的成分b’i的差、和作为明文的随机数t1,i的和(bi-b’i)+t1,i进行加密而得到的。
标量倍计算部364使用处理装置911,根据差分计算部361计算出的加密差分矢量ΔC、和随机数生成部303生成的随机数中的T个作为明文的随机数t1,i,计算标量倍矢量¢。标量倍矢量¢是以矢量空间V中的矢量为成分的T维的矢量(¢1,¢2,…,¢T)。标量倍计算部364计算的标量倍矢量¢的第i个成分¢i(i是1以上且T以下的整数)是通过矢量空间V中的标量倍针对加密差分矢量ΔC的第i个成分Δci用T个作为明文的随机数中的第i个随机数t1,i的2倍进行标量倍而得到的矢量2t1,iΔci。标量倍计算部364计算的标量倍矢量¢的各成分¢i是对特征矢量b的成分bi与特征矢量b’的成分b’i的差、和2t1,i之积2t1,i(b-b’)进行加密而得到的。
平方和计算部365使用处理装置911,根据随机数生成部303生成的随机数中的T个作为明文的随机数t1,i,计算平方和Σ。平方和Σ是对T个随机数t1,i的平方进行合计而得到的值Σi[t1,i 2](i是1以上且T以下的整数)。
加密密钥生成部366使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的随机基底B、随机数生成部303生成的随机数中的n个随机数uj、以及平方和计算部365计算出的平方和Σ,计算加密密钥ц。加密密钥ц是矢量空间V中的矢量。加密密钥ц是将通过矢量空间V中的标量倍针对随机基底B的最初的矢量ь1用n个随机数中的最初的随机数u1与平方和Σ的和进行标量倍而得到的矢量(u1+Σ)ь1、和通过矢量空间V中的标量倍针对随机基底B的第2个以后的矢量ьj(j是2以上n以下的整数)用n个随机数中的第2个以后的随机数uj分别进行标量倍而得到的(n-1)个矢量ujьj,通过矢量空间V中的加法进行结合而得到的矢量(u1+Σ)ь1+Σj[ujьj](j是1以上n以下的整数)。例如,加密密钥生成部366计算随机数生成部303生成的随机数u1、与平方和计算部365计算出的平方和Σ之和u1+Σ。加密密钥生成部366计算通过矢量空间V中的标量倍将随机基底B的最初的矢量ь1用所计算的和u1+Σ进行标量倍而得到的矢量(u1+Σ)ь1。加密密钥生成部366针对2以上n以下的所有整数j,计算通过矢量空间V中的标量倍针对随机基底B的第j个矢量ьj用随机数生成部303生成的随机数uj进行标量倍而得到的矢量ujьj。加密密钥生成部366计算通过矢量空间V中的加法将所计算的矢量(u1+Σ)ь1、和所计算的(n-1)个矢量ujьj结合而得到的矢量(u1+Σ)ь1+Σj[ujьj](j是1以上n以下的整数)。
矢量累计部367使用处理装置911,根据标量倍计算部364计算出的标量倍矢量¢、和加密密钥生成部366计算出的加密密钥ц,计算作为第二挑战C^的一部分的1个矢量c^。矢量c^是矢量空间V中的矢量。矢量c^是通过矢量空间V中的加法将标量倍计算部364计算出的作为标量倍矢量的成分的T个矢量¢i=2t1,iΔci(i是1以上且T以下的整数)、和加密密钥ц=(u1+Σ)ь1+Σj[ujьj](j是1以上n以下的整数)结合而得到的矢量Σi[2t1,iΔci]+(u1+Σ)ь1+Σj[ujьj](i是1以上且T以下的整数。j是1以上n以下的整数)。矢量c^是对特征矢量b的成分bi与特征矢量b’的成分b’i的差和2t1,i之积的总和、t1, i的平方的总和、以及随机数u1的总计u1+Σi[2t1,i(bi-b’i)+t1,i 2]进行加密而得到的。其中,随机数u1是作为用于对类似度进行加密·解密的暂时密钥的随机数。作为其以外的部分的Σi[2t1,i(bi-b’i)+t1,i 2]是用于解密装置103能够去除基于作为明文的随机数t1,i的干扰而计算加密了的类似度的信息。
加密随机类似度计算部314生成的第二挑战C^由将矢量结合部363计算出的T个矢量c^i(i是1以上且T以下的整数)、和矢量累计部367计算出的1个矢量c^合起来的(T+1)个矢量构成。
另外,第二挑战C^的最初的T个矢量c^i的顺序也可以与特征矢量b、b’的成分的顺序不同。
图21是示出该实施方式中的第二挑战生成工序S712的处理流程的一个例子的流程图。
在第二挑战生成工序S712中,认证装置102根据2个加密特征矢量C、C’,生成第二挑战C^。第二挑战生成工序S712具有例如初始化工序S740、反复工序S741、差分计算工序S742、随机数生成工序S743、干扰矢量生成工序S744、矢量结合工序S745、标量倍计算工序S746、矢量累计工序S747、平方累计工序S748、随机数生成工序S749、加密密钥生成工序S750、以及矢量累计工序S751。
最初,在初始化工序S740中,矢量结合部363使用处理装置911,将整数i初始化为0,将矢量c^初始化为0(矢量空间V中的零矢量)。平方和计算部365使用处理装置911,将平方和Σ初始化为0。
在反复工序S741中,矢量结合部363使用处理装置911,对整数i加上1。在整数i大于T的情况下,矢量结合部363使处理进入随机数生成工序S749。在整数i是T以下的情况下,矢量结合部363使处理进入差分计算工序S742,生成第二挑战C^的第i个矢量c^i。
在差分计算工序S742中,差分计算部361使用处理装置911,根据加密数据存储部312存储的加密特征矢量C的第i个成分ci、和加密数据抽出部305抽出的加密特征矢量C’的第i个成分c’i,计算加密差分矢量ΔC的第i个成分Δci。
在随机数生成工序S743中,随机数生成部303使用处理装置911,生成n个随机数tj,i(j是1以上n以下的整数)。
在干扰矢量生成工序S744中,干扰矢量生成部362使用处理装置911,根据在随机数生成工序S743中随机数生成部303生成的n个随机数tj,i,生成干扰矢量т的第i个成分ti=Σj[tj,iьj](j是1以上n以下的整数)。
在矢量结合工序S745中,矢量结合部363使用处理装置911,根据在差分计算工序S742中差分计算部361计算出的加密差分矢量ΔC的第i个成分Δci、和在干扰矢量生成工序S744中干扰矢量生成部362计算出的干扰矢量т的第i个成分ti,计算第二挑战C^的第i个矢量c^i=Δci+ti。
另外,在构成为第二挑战C^的最初的T个矢量c^i的顺序、和特征矢量b、b’的成分的顺序不同的情况下,矢量结合部363例如如以下那样处理。矢量结合部363在初始化工序S740中,生成随机地重新排列了1以上且T以下的整数的数列。在矢量结合工序S745中,矢量结合部363取得该数列的第i个整数作为整数j,将所计算的矢量Δci+ti设为第二挑战C^的第j个矢量c^j。
在标量倍计算工序S746中,标量倍计算部364使用处理装置911,根据在差分计算工序S742中差分计算部361计算出的加密差分矢量ΔC的第i个成分Δci、和在随机数生成工序S743中随机数生成部303生成的n个随机数tj,i中的最初的随机数t1,i,计算标量倍矢量¢的第i个成分¢i=t1,iΔci。
在矢量累计工序S747中,矢量累计部367使用处理装置911,根据在标量倍计算工序S746中标量倍计算部364计算出的标量倍矢量¢的第i个成分¢i=t1,iΔci,通过矢量空间V中的加法,使矢量¢i与矢量c^结合。
在平方累计工序S748中,平方和计算部365使用处理装置911,根据在随机数生成工序S743中随机数生成部303生成的n个随机数tj,i中的最初的随机数t1,i,通过有限域Fq中的乘法,计算随机数t1,i的平方t1,i 2,通过有限域Fq中的加法,使所计算的平方t1,i 2与平方和Σ结合。
矢量结合部363使处理返回到反复工序S741,生成第二挑战C^的接下来的矢量。
在随机数生成工序S749中,随机数生成部303使用处理装置911,生成n个随机数uj(j是1以上n以下的整数)。随机数存储部322使用存储装置914,存储随机数生成部303生成的n个随机数中的、作为暂时密钥的随机数即随机数u1。
在加密密钥生成工序S750中,加密密钥生成部366使用处理装置911,根据在平方累计工序S748中平方和计算部365累计了的平方和Σ、和在随机数生成工序S749中随机数生成部303生成的n个随机数uj,生成加密密钥ц。
在矢量累计工序S751中,矢量累计部367使用处理装置911,根据在加密密钥生成工序S750中加密密钥生成部366生成的加密密钥ц,通过矢量空间V中的加法,使加密密钥ц与矢量c^结合。由此,第二挑战C^的第(T+1)个矢量c^完成,第二挑战C^也完成。
关于这样由加密随机类似度计算部314计算出的第二挑战C^,第二挑战发送部321发送到解密装置103,解密装置103接收并处理。
图22是示出该实施方式中的解密部404的结构的一个例子的详细框图。
解密装置103的解密部404具有例如逆矩阵计算部471、矢量分解部472、平方计算部473、群变换部474、以及元结合部475。
逆矩阵计算部471使用处理装置911,根据作为公开密钥存储部403存储的公开密钥pk的一部分的位数q、和作为秘密密钥存储部413存储的秘密密钥sk的正则矩阵X,计算有限域Fq中的正则矩阵X的逆矩阵X-1。
矢量分解部472使用处理装置911,根据作为秘密密钥存储部413存储的秘密密钥sk的正则矩阵X、第二挑战接收部402接收到的第二挑战C^、以及逆矩阵计算部471计算出的逆矩阵X-1,计算(T+1)个解密矢量yi,y(i是1以上且T以下的整数)。解密矢量yi、y是矢量空间中的矢量。第i个解密矢量yi(i是1以上且T以下的整数)是将第二挑战C^的第i个矢量c^i分解为随机基底B的一次结合,去除与第2个以后的矢量ьj(j是2以上n以下的整数)有关的成分,并进行随机基底B的最初的矢量ь1的标量倍而得到的矢量。解密矢量y是将第二挑战C^的第(T+1)个矢量c^分解为随机基底B的一次结合,去除与第2个以后的矢量ьj(j是2以上n以下的整数)有关的成分,并进行随机基底B的最初的矢量ь1的标量倍而得到的矢量。矢量分解部472通过例如图11所示的矢量分解处理S540的步骤,计算解密矢量yi、y。第二挑战C^的第i个矢量c^i(i是1以上且T以下的整数)是Δci+ti,所以第i个解密矢量yi成为(bi-b’i+t1,i)ь1。另外,第二挑战C^的第(T+1)个矢量c^是Σi[2t1,iΔci]+(Σi[t1,i 2])ь1+Σj[ujьj](i是1以上且T以下的整数。j是1以上n以下的整数),所以解密矢量y成为(u1+Σi[2t1,i(bi-b’i)+t1,i 2])ь1。
平方计算部473使用处理装置911,根据作为公开密钥存储部403存储的公开密钥pk的一部分的配对e、和矢量分解部472计算出的T个解密矢量yi,计算T个平方元y’i(i是1以上且T以下的整数)。平方元y’i是有限群GT的元。第i个平方元y’i(i是1以上且T以下的整数)是通过配对e对第i个解密矢量yi彼此的组进行变换而得到的元e(yi,yi)。第i个解密矢量yi是(bi-b’i+t1,i)ь1,所以根据配对e的双线性,第i个平方元y’i成为如下的元:针对通过配对e对随机基底B的最初的矢量ь1彼此的组进行变换而得到的有限群GT的元e(ь1,ь1)通过有限群GT中的乘幂利用(bi-b’i+t1,i)的平方进行乘幂而得到的元。
群变换部474使用处理装置911,根据作为公开密钥存储部403存储的公开密钥pk的一部分的配对e以及随机基底B、和矢量分解部472计算出的解密矢量y,计算变换元y’。变换元y’是有限群GT的元。变换元y’是通过配对e对解密矢量y、和随机基底B的最初的矢量ь1的组进行变换而得到的元e(y,ь1)。解密矢量y是(u1+Σi[2t1,i(bi-b’i)+t1,i 2])ь1,所以根据配对e的双线性,变换元y’成为通过有限群GT中的乘幂针对有限群GT的元e(ь1,ь1)用(u1+Σi[2t1,i(bi-b’i)+t1, i 2])(i是1以上且T以下的整数)进行乘幂而得到的元。
元结合部475使用处理装置911,根据作为公开密钥存储部403存储的公开密钥pk的一部分的有限群GT、平方计算部473计算出的T个平方元y’i、以及群变换部474计算出的变换元y’,计算第二响应Z。第二响应Z是有限群GT的元。元结合部475计算的第二响应Z是通过有限群GT中的乘法将T个平方元y’i、和变换元y’的逆元y’-1结合而得到的元。第二响应Z成为通过有限群GT中的乘幂针对有限群GT的元e(ь1,ь1)用(Σi[(bi-b’i)2]-u1)(i是1以上且T以下的整数)进行乘幂而得到的元。即,第二响应Z是针对特征矢量b与特征矢量b’之间的欧几里德距离的平方Σi[(bi-b’i)2]通过作为暂时密钥的随机数u1进行加密而得到的。
图23是示出该实施方式中的第二响应生成工序S716的处理流程的一个例子的流程图。
在第二响应生成工序S716中,解密装置103根据第二挑战C^,生成第二响应Z。第二响应生成工序S716具有例如逆矩阵计算工序S561、矢量分解工序S566、群变换工序S567、初始化工序S560、反复工序S562、矢量分解工序S563、平方计算工序S564、以及元结合工序S565。
最初,在逆矩阵计算工序S561中,逆矩阵计算部471使用处理装置911,计算作为秘密密钥存储部413存储的秘密密钥sk的正则矩阵X的逆矩阵X-1。另外,也可以是逆矩阵计算部471使用处理装置911预先(例如在配置处理S500中)计算逆矩阵X-1,并使用存储装置914存储所计算的逆矩阵X-1的结构。
在矢量分解工序S566中,矢量分解部472使用处理装置911,根据在逆矩阵计算工序S561中逆矩阵计算部471计算出的逆矩阵X-1等,对第二挑战接收部402接收到的第二挑战C^的最后的矢量c^进行矢量分解,计算解密矢量y。
在群变换工序S567中,群变换部474使用处理装置911,根据在矢量分解工序S566中矢量分解部472计算出的解密矢量y,计算变换元y’。
在初始化工序S560中,元结合部475使用处理装置911,将整数i初始化为0,将第二响应Z初始化为有限群GT的乘法中的变换元y’的逆元y’-1。
在反复工序S562中,元结合部475使用处理装置911,对整数i加上1。在整数i大于T的情况下,第二响应Z已完成,所以元结合部475结束第二响应生成工序S716。在整数i是T以下的情况下,元结合部475使处理进入矢量分解工序S563。
在矢量分解工序S563中,矢量分解部472使用处理装置911,根据在逆矩阵计算工序S561中逆矩阵计算部471计算出的逆矩阵X-1等,对第二挑战接收部402接收到的第二挑战C^的第i个矢量c^i进行矢量分解,计算第i个解密矢量yi。
在平方计算工序S564中,平方计算部473使用处理装置911,根据在矢量分解工序S563中矢量分解部472计算出的第i个解密矢量yi,计算第i个平方元y’i=e(yi,yi)。
在元结合工序S565中,元结合部475使用处理装置911,根据在平方计算工序S564中平方计算部473计算出的第i个平方元y’i,通过有限群GT中的乘法,使第i个平方元y’i与第二响应Z结合。
元结合部475使处理返回到反复工序S562,处理第二挑战C^的接下来的矢量。
关于这样由解密部404生成的第二响应Z,第二响应发送部412发送到认证装置102,认证装置102接收并处理。
图24是示出该实施方式中的明文类似度抽出部315的结构的一个例子的详细框图。
认证装置102的明文类似度抽出部315具有例如群变换部371、元结合部372、以及离散对数计算部373。
群变换部371使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的配对e以及随机基底B、和随机数存储部322存储的作为暂时密钥的随机数u1,计算解密密钥Ц。解密密钥Ц是有限群GT的元。群变换部371计算的解密密钥Ц是如下的元:针对通过配对e对随机基底B的最初的矢量ь1彼此的组进行变换而得到的元e(ь1,ь1),通过有限群GT中的乘幂,用随机数u1进行乘幂而得到的元e(ь1,ь1)u1。
元结合部372使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的有限群GT、第二响应接收部341接收到的第二响应Z、以及群变换部371计算出的解密密钥Ц,计算解密类似度元Z’。解密类似度元Z’是有限群GT的元。解密类似度元Z’是通过有限群GT中的乘法将第二响应Z、和解密密钥Ц结合而得到的元。第二响应Z是通过有限群GT中的乘幂针对有限群GT的元e(ь1,ь1)用(Σi[(bi-b’i)2]-u1)(i是1以上且T以下的整数)进行乘幂而得到的元,所以解密类似度元Z’成为通过有限群GT中的乘幂针对有限群GT的元e(ь1,ь1)用Σi[(bi-b’i)2](i是1以上且T以下的整数)进行乘幂而得到的元。
离散对数计算部373使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的配对e以及随机基底B、和元结合部372计算出的解密类似度元Z’,计算类似度d。类似度d是有限域Fq的元。离散对数计算部373计算的类似度d是求出基于有限群GT中的乘幂的有限群GT的元e(ь1,ь1)的几次方与解密类似度元Z’一致而得到的。
关于离散对数计算部373根据解密类似度元Z’计算类似度d,是求解所谓离散对数问题,所以一般比较困难。但是,如果类似度d的范围预先被限定,则能够计算类似度d。例如,针对该范围内的所有整数d,预先计算针对e(ь1,ь1)用整数d进行乘幂而得到的元e(ь1,ь1)d,判定解密类似度元Z’与哪个一致即可。
类似度d是2个特征矢量b、b’之间的欧几里德距离的平方,所以类似度d越小,表示2个特征矢量b、b’越类似。判定部306将例如类似度d与规定的阈值d0进行比较,在类似度d更小的情况下,判定为2个特征矢量b、b’类似。因此,无需知道类似度d具体是几,而仅知道类似度d大于还是小于阈值d0即可。
阈值d0是远小于位数q的整数,是例如几百~几万左右。在特征矢量b、b’的成分是0和1中的某一个值的情况下,2个特征矢量b、b’之间的欧几里德距离的平方成为0以上T以下的整数。在该情况下,如果阈值d0并非是小于特征矢量的次数T的整数,则在全部情况下判定为2个特征矢量b、b’类似,而没有意义。
因此,针对0以上d0以下的所有整数d,预先计算e(ь1,ь1)d是容易的。由此,在类似度d是d0以下的情况下,离散对数计算部373能够计算类似度d。在类似度d大于d0的情况下,离散对数计算部373虽然无法计算类似度d,但能够判定类似度d大于d0。
图25是示出该实施方式中的明文类似度计算工序S719的处理流程的一个例子的流程图。
在明文类似度计算工序S719中,认证装置102根据第二响应Z,计算类似度d。明文类似度计算工序S719具有例如群变换工序S691、元结合工序S692、以及离散对数计算工序S693。
最初,在群变换工序S691中,群变换部371使用处理装置911,根据随机数存储部322存储的作为暂时密钥的随机数u1,计算解密密钥Ц=e(ь1,ь1)u1。
在元结合工序S692中,元结合部372使用处理装置911,根据第二响应接收部341接收到的第二响应Z、和在群变换工序S691中群变换部371计算出的解密密钥Ц,计算解密类似度元Z’=ZЦ。
在离散对数计算工序S693中,离散对数计算部373使用处理装置911,根据在元结合部372中元结合部372计算出的解密类似度元Z’,计算类似度d。
根据明文类似度抽出部315计算出的类似度d,判定部306判定2个特征矢量b、b’是否类似,由此判定具有用特征矢量b表示的生物体信息的人物、和具有用特征矢量b’表示的生物体信息的人物是否为同一人物。如上所述,判定部306在类似度d小于阈值d0的情况下,判定为2个特征矢量b、b’类似。
如以上说明,在生物体认证系统100中,作为2个特征矢量b、b’的类似度,计算2个特征矢量b、b’之间的欧几里德距离的平方。将类似度计算的计算步骤分成几个阶段,认证装置102和解密装置103进行各阶段的计算,从而防止认证装置102得到关于特征矢量b、b’的信息,防止解密装置103得到关于特征矢量b、b’、类似度d的信息。
图26是示出该实施方式的生物体认证系统100中的类似度计算的计算步骤的流程图。
在该图中,从认证处理S700抽出了与类似度计算步骤有关的部分。另外,δi以及δ*表示在第二挑战C^中加密了的信息,ζ表示通过第二响应Z表示的信息。
作为第一阶段,在第二挑战生成工序S712中,认证装置102根据2个加密特征矢量C、C’计算第二挑战C^,从而计算T个δi=(bi-b’i)+t1,i(i是1以上且T以下的整数)、和1个δ*=Σi[2t1,i(bi-b’i)+t1, i 2]+u1(i是1以上且T以下的整数)。该计算是在通过解密装置103的密钥加密了的状态下进行的,所以认证装置102无法得到关于特征矢量b、b’的信息。
作为第二阶段,在第二响应生成工序S716中,解密装置103根据第二挑战C^计算第二响应Z,从而计算ζ=Σi[δi 2]-δ*(i是1以上且T以下的整数)。虽然该计算是在通过解密装置103的秘密密钥sk解密了的状态下进行的,但解密装置103不知道暂时密钥u1,所以无法得到关于特征矢量b、b’、类似度d的信息。即,该计算是在通过暂时密钥u1加密了的状态下进行的。
作为第三阶段,在明文类似度计算工序S719中,认证装置102根据第二响应Z,计算类似度d=ζ+u1。由此,认证装置102能够得到类似度d,但无法得到关于特征矢量b、b’的信息。
在该实施方式中的生物体认证系统100(数据核对装置)中,根据加法上的同态方式的密钥生成算法,密钥生成部(401)生成公开密钥和秘密密钥。
数据抽出装置(认证装置102)具有:公开密钥存储部(302),保有从所述密钥生成部分发的所述公开密钥;加密数据存储部(312),存储使用保有从所述密钥生成部分发的所述公开密钥的数据处理装置(登记装置104)所保有的所述公开密钥进行加密而得到的第一数据(特征矢量b)作为加密第一数据(加密特征矢量C);随机数生成部(303),使用所述公开密钥的至少一部分来生成第一随机数和第二随机数;随机数存储部(322),存储所述第一随机数和所述第二随机数;加密随机数生成部(304),对所述第一随机数进行加密而生成第一挑战;加密数据抽出部(305),根据由数据处理装置(证明装置101)将第二数据(特征矢量b’)与所述第一挑战进行运算而生成的第一响应,使用所述随机数存储部中存储的所述第一随机数进行处理来计算作为第二数据的加密的加密第二数据(加密特征矢量C’);加密随机类似度计算部(314),使用所述加密第二数据和所述第二随机数来生成第二挑战;以及明文类似度抽出部(315),针对所述解密装置或者所述数据处理装置使用所述秘密密钥存储部(413)中存储的所述秘密密钥处理所述第二挑战而得到的第二响应,使用所述随机数存储部中存储的所述第二随机数进行处理来计算明文的类似度。
数据处理装置(证明装置101)具有将所述第二数据与所述第一挑战进行运算来生成所述第一响应的加密数据嵌入部(217)。
解密装置(103)或者数据处理装置具有:根据所述加法上的同态方式的密钥生成算法来生成所述公开密钥和所述秘密密钥的所述密钥生成部(401);存储所述秘密密钥的所述秘密密钥存储部(413);以及解密部(404),使用所述秘密密钥存储部中存储的所述秘密密钥处理所述第二挑战来生成所述第二响应。
由此,攻击者即使具有在证明装置101、认证装置102、解密装置103、以及登记装置104之间的网络上交换的信息(例如,第一挑战R和第一响应R’的组、第二挑战C^和第二响应Z的组),也难以冒充为正规的用户。即,从在装置之间交换的信息,完全不会泄漏对冒充至关重要的信息。
作为其第一理由,关于由认证装置102生成的第一挑战R以及第二挑战C^、第一响应R’以及第二响应Z中使用的作为明文的随机数R1,i,u1,每当进行认证时每次值都变化,所以无法进行原样地再利用了这些数据的再次(replay)攻击。
作为第二理由,在该实施方式中说明的冈本-高岛密码方式、BGN密码、Paillier密码等具有密文的不可识别性这样的安全性。因此,即使攻击者利用同态性,也不会从第一挑战R以及第二挑战C^和与其对应的第一响应R’以及第二响应Z泄漏明文的特征矢量b、b’、作为明文的随机数R1,i,u1、以及秘密密钥sk。
作为第三理由,认证装置102和证明装置101分别使用对方装置不知道的信息来生成第一挑战R和第一响应R’。即,认证装置102具有在第一挑战R中使用的随机数R1,i,并且证明装置101具有用户的明文的特征矢量b’。在不知道这些秘密信息的情况下,攻击者无法从第一挑战R、第一响应R’得到关于明文的特征矢量b’、随机数R1, i的信息。进而,认证装置102即使知道随机数R1,i也无法得到明文的特征矢量b,并且证明装置101即使知道特征矢量b也无法得到随机数R1,i的信息。
另外,第二挑战C^与第二响应Z的关系也是同样的,认证装置102和解密装置103分别使用对方装置不知道的信息来生成第二挑战C^和第二响应Z。即,认证装置102具有在第二挑战C^中使用的随机数u1,并且解密装置103具有秘密密钥sk。在不知道这些秘密信息的情况下,攻击者无法从第二挑战C^、第二响应Z得到关于随机数u1、秘密密钥sk的信息。进而,认证装置102即使知道随机数u1也无法得到秘密密钥sk,并且解密装置103即使知道秘密密钥sk也无法得到随机数u1的信息。
在该实施方式的生物体信息的登记处理S600中,用户(登记装置104)对认证装置102发送加密特征矢量C自身,认证装置102仅保存该送来的加密特征矢量C。由于无需交换特征矢量b,所以无需高可靠性的登记处理装置。
该实施方式中的随机数是从随机数空间均匀地生成的。因此,在随机数彼此间无相关,不存在从随机数彼此的相关泄漏某种信息的可能性。
在认证装置102中不是原样地保管特征矢量b,而是以加密了的状态保管。因此,能够降低作为用户的隐秘信息的特征矢量b被认证装置102的管理者偷看这样的风险。
对于认证装置102来说,即使假设加密特征矢量C泄漏,由于原来的特征矢量b自身未泄漏,所以相比于保管特征矢量b自身,能够削减数据管理的劳力和时间。
另外,根据该实施方式的步骤,解密装置103能够解密的仅为随机类似度这样的指标值,而无法对特征矢量b、b’进行解密。因此,在认证的过程中特征矢量b、b’不会出现,所以能够实现使生物体信息隐匿了的状态下的生物体认证。
另外,根据该实施方式,在认证时为了从证明装置101向认证装置102送出第一响应R’而抽出生物体信息,但如果第一响应R’的生成结束,则之后不会有使用了明文的生物体信息的处理。因此,能够立刻删除在证明装置101上取得的生物体信息。因此,能够降低在证明装置101中生物体信息被窃取的机会。
另外,密码方式不限于冈本-高岛密码方式,而也可以是使用BGN密码方式、Gentry密码方式、Paillier密码方式等具有加法上的同态性的其他密码方式的结构。
证明装置101向认证装置102发送的第一响应R’是对加密特征矢量C’进行加密而得到的,通过证明装置101对第一响应R’进行解密,取得加密特征矢量C’。生物体认证系统100也可以是在其加密·解密中使用的密码方式中使用不同的密码方式的结构。该情况的密码方式也可以构成为不是具有加法上的同态性的密码方式,而是使用普通的公开密钥密码方式。
例如,认证装置102生成第二密码方式中的公开密钥和秘密密钥的组,将公开密钥作为第一挑战R,发送到证明装置101。证明装置101使用解密装置103的公开密钥,通过具有加法上的同态性的第一密码方式,对特征矢量b’进行加密,生成加密特征矢量C’。接下来,在证明装置101中,作为第一挑战R使用从认证装置102接收的公开密钥,通过第二密码方式,对所生成的加密特征矢量C’进行加密,作为第一响应R’,发送到认证装置102。认证装置102使用自身生成的秘密密钥,通过第二密码方式,对所接收的第一响应R’进行解密,而得到加密特征矢量C’。
但是,在第一挑战R是第二密码方式中的公开密钥、且将使用该公开密钥对加密特征矢量C’进行加密而得到的结果作为第一响应R’的情况下,能够根据第一挑战R和加密特征矢量C’生成第一响应R’。相对于此,在该实施方式中说明的方式中,根据第一挑战R和原始的特征矢量b’生成第一响应R’,根据第一挑战R和加密特征矢量C’无法生成第一响应R’。因此,即使第三方窃取在登记处理S600中从登记装置104向认证装置102发送的加密特征矢量C等而获取了加密特征矢量C,也无法冒充证明装置101来接受认证。
实施方式2.
使用图27,说明实施方式2。
另外,对于与实施方式1通用的部分,附加同一符号,省略说明。
图27是示出该实施方式中的生物体认证系统100的整体结构的一个例子的系统结构图。
生物体认证系统100具有证明装置101、和认证装置102。证明装置101兼具在实施方式1中说明的作为证明装置101的功能、作为解密装置103的功能、以及作为登记装置104的功能。
证明装置101生成公开密钥pk和秘密密钥sk的组,公开公开密钥pk,秘密地保持秘密密钥sk。认证装置102使用证明装置101公开的公开密钥pk进行密码处理。
生物体认证系统100有时具有多个证明装置101。例如,生物体认证系统100应认证的各用户分别具有自己的证明装置101。用户将自己的证明装置101连接到网络等,证明装置101经由网络等在与认证装置102之间进行通信。
认证装置102存储了各个证明装置101的公开密钥pk。认证装置102根据要求认证的证明装置101、用户的ID等,从所存储的公开密钥pk中,选择该证明装置101的公开密钥pk,使用所选择的公开密钥pk进行密码处理。
关于各个证明装置101的公开密钥pk,例如,在登记处理S600中,与加密特征矢量C一起,证明装置101发送到认证装置102,认证装置102将所接收的公开密钥pk与加密特征矢量C对应起来存储。
在认证处理S700中,认证装置102根据证明装置101的公开密钥pk,生成第一挑战R,发送到证明装置101。证明装置101根据自身的公开密钥pk、所接收的第一挑战R、以及特征矢量b’,生成第一响应R’,发送到认证装置102。认证装置102根据证明装置101的公开密钥pk、和所接收的第一响应R’,生成加密特征矢量C’。认证装置102根据证明装置101的公开密钥pk、所生成的加密特征矢量C’、以及在登记处理S600中存储的加密特征矢量C,生成第二挑战C^,发送到证明装置101。证明装置101根据自身的秘密密钥sk、和所接收的第二挑战C^,生成第二响应Z,发送到认证装置102。认证装置102根据所接收的第二响应,计算类似度d。
在第三方冒充了证明装置101的情况下,第三方想要生成意味着特征矢量b和特征矢量b’类似的第二响应Z。但是,第三方不知道证明装置101生成的暂时密钥u1,所以不知道什么样的第二响应Z是特征矢量b和特征矢量b’类似这样的意思。即使假设第三方窃取证明装置101的秘密密钥而对第二挑战C^进行了解密,也无法得知暂时密钥u1,所以无法生成意味着特征矢量b和特征矢量b’类似的第二响应Z。
实施方式3.
使用图28~图30,说明实施方式3。
另外,关于与实施方式1~实施方式2通用的部分,附加同一符号,省略说明。
在该实施方式中,说明作为2个特征矢量b、b’之间的类似度d,并非计算欧几里德距离的平方Σi[(bi-b’i)2],而计算内积Σi[bib’i]的情况。
另外,设为特征矢量的各成分是1和0这2个值中的某一个。
该实施方式中的生物体认证系统100的整体结构、证明装置101、认证装置102、解密装置103、登记装置104等的内部结构与实施方式1中的说明相同,所以仅说明不同的部分。
在认证装置102中,加密随机类似度计算部314的矢量累计部367使用处理装置911,根据加密数据存储部312存储的加密特征矢量C、加密数据抽出部305抽出的加密特征矢量C’、标量倍计算部364计算出的标量倍矢量、以及加密密钥生成部366计算出的加密密钥ц,计算矢量c^。矢量c^是:通过矢量空间V中的加法,将加密特征矢量C的T个成分ci、加密特征矢量C’的T个成分c’i、标量倍计算部364计算出的标量倍矢量的T个成分2t1,iΔci、以及加密密钥ц=(Σi[t1,i 2])ь1+Σj[ujьj](i是1以上且T以下的整数。j是1以上n以下的整数)结合而得到的矢量Σi[ci]+Σi[c’i]+Σi[2t1,iΔci]+(Σi[t1,i 2])ь1+Σj[ujьj](i是1以上且T以下的整数。j是1以上n以下的整数)。根据密码的加法上的同态性,矢量c^是对Σi[bi+b’i+2t1,i(bi-b’i)+2t1,i 2]+u1进行加密而得到的。
图28是示出该实施方式中的第二挑战生成工序S712的处理流程的一个例子的流程图。
第二挑战生成工序S712的处理流程与实施方式1大致相同,但仅矢量累计工序S747不同。
在矢量累计工序S747中,矢量累计部367使用处理装置911,根据加密数据存储部312存储的加密特征矢量C的第i个成分ci、加密数据抽出部305抽出的加密特征矢量C’的第i个成分c’i、以及在标量倍计算工序S746中标量倍计算部364计算出的标量倍矢量¢的第i个成分¢i=2t1,iΔci,通过矢量空间V中的加法,使矢量ci、矢量c’i、以及矢量¢i与矢量c^结合。
解密装置103的解密部404是与实施方式1相同的结构,但矢量c^的意思不同,所以解密部404生成的第二响应Z的意思也与实施方式1不同。
即,第二响应Z成为如下的元:通过有限群GT中的乘幂,将有限群GT的元e(ь1,ь1)用(Σi[(bi-b’i)2-(bi+b’i)]-u1)(i是1以上且T以下的整数)进行乘幂而得到的元。此处,bi以及b’i只能取0和1中的某一个值,所以始终成为bi=bi 2并且b’i=b’i 2。因此,第二响应Z成为通过有限群GT中的乘幂针对有限群GT的元e(ь1,ь1)用(-2Σi[bib’i]-u1)(i是1以上且T以下的整数)进行乘幂而得到的元。即,第二响应Z是针对特征矢量b与特征矢量b’的内积Σi[bib’i]用作为暂时密钥的随机数u1进行加密而得到的。
在认证装置102中,明文类似度抽出部315的元结合部372使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的位数q,计算基于有限域Fq中的乘法的(-2)的逆元ш=(-2)-1。认证装置102使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的有限群GT、第二响应接收部341接收到的第二响应Z、群变换部371计算出的解密密钥Ц=e(ь1,ь1)u1、以及所计算的逆元ш,计算解密类似度元Z’。解密类似度元Z’是,针对通过有限群GT中的乘法将第二响应Z、和解密密钥Ц结合而得到的元ZЦ,通过有限群GT中的乘幂,用逆元ш进行乘幂而得到的元(ZЦ)ш。第二响应Z是通过有限群GT中的乘幂针对有限群GT的元e(ь1,ь1)用(-2Σi[bib’i]-u1)(i是1以上且T以下的整数)进行乘幂而得到的元,所以解密类似度元Z’成为通过有限群GT中的乘幂针对有限群GT的元e(ь1,ь1)用Σi[bib’i](i是1以上且T以下的整数)进行乘幂而得到的元。
图29是示出该实施方式中的明文类似度计算工序S719的处理流程的一个例子的流程图。
明文类似度计算工序S719除了在实施方式1中说明的工序以外,还具有倒数计算工序S690。
在倒数计算工序S690中,元结合部372使用处理装置911,计算基于有限域Fq中的乘法的(-2)的逆元ш。另外,逆元ш不依赖于第二响应Z而恒定,所以也可以是预先计算的结构。
在元结合工序S692中,元结合部372使用处理装置911,根据第二响应接收部341接收到的第二响应Z、在倒数计算工序S690中计算的逆元ш、以及在群变换工序S691中群变换部371计算出的解密密钥Ц,计算解密类似度元Z’=(ZЦ)ш。
另外,也可以是在元结合部372中,作为解密类似度元Z’,计算通过有限群GT中的乘法将第二响应Z和解密密钥Ц结合而得到的元ZЦ,在离散对数计算部373中,作为类似度d,计算解密类似度元Z’是e(ь1,ь1)-2的几次方的结构。
关于2个特征矢量b、b’的内积Σi[bib’i],与欧几里德距离的平方Σi[(bi-b’i)2]相反地,其越大,表示2个特征矢量b、b’越类似。因此,判定部306在离散对数计算部373计算出的类似度d大于规定的阈值d0的情况下,判定为2个特征矢量b、b’类似。
特征矢量的各成分只能取0和1这2个值中的某一个,所以2个特征矢量b、b’的内积Σi[bib’i]成为0以上T以下的整数。离散对数计算部373针对例如d0以上T以下的所有整数d,预先计算针对e(ь1,ь1)用整数d进行乘幂而得到的元e(ь1,ь1)d,从而在类似度d是d0以上并且T以下的情况下,计算类似度d,在类似度d小于d0的情况下,判定为类似度d小于d0。另外,离散对数计算部373也可以是与实施方式1同样地,在类似度d是d0以下的情况下,计算类似度d,在类似度d大于d0的情况下,判定类似度d大于d0的结构。
由此,能够将特征点的一致数作为指标,判定2个特征矢量b、b’是否类似。
图30是示出该实施方式的生物体认证系统100中的类似度计算的计算步骤的流程图。
作为第一阶段,在第二挑战生成工序S712中,认证装置102根据2个加密特征矢量C、C’计算第二挑战C^,从而计算T个δi=(bi-b’i)+t1,i(i是1以上且T以下的整数)、和1个δ*=Σi[2t1,i(bi-b’i)+t1, i 2+bi+b’i]+u1(i是1以上且T以下的整数)。该计算是在通过解密装置103的密钥加密了的状态下进行的,所以认证装置102无法得到关于特征矢量b、b’的信息。
作为第二阶段,在第二响应生成工序S716中,解密装置103根据第二挑战C^计算第二响应Z,从而计算ζ=Σi[δi 2]-δ*(i是1以上且T以下的整数)。虽然该计算在通过解密装置103的秘密密钥解密了的状态下进行,但解密装置103由于不知道暂时密钥u1,所以无法得到关于特征矢量b、b’、类似度的信息。即,该计算是在通过暂时密钥u1加密了的状态下进行的。
作为第三阶段,在明文类似度计算工序S719中,认证装置102根据第二响应Z,计算类似度d=ζ+u1。由此,认证装置102虽然能够得到类似度d,但无法得到关于特征矢量b、b’的信息。
另外,密码方式不限于冈本-高岛密码方式,也可以是使用BGN密码方式、Gentry密码方式、Paillier密码方式等具有加法上的同态性的其他密码方式的结构。另外,也可以是在证明装置101与认证装置102之间的通信中,使用普通的公开密钥密码方式等第二密码方式的结构。
另外,生物体认证系统100也可以是与实施方式2同样地,证明装置101兼具作为解密装置103、登记装置104的功能的结构。
另外,相比于实施方式1,证明装置101、解密装置103、登记装置104的结构不变,仅认证装置102的结构不同。因此,通过使认证装置102成为能够切换在实施方式1中说明的结构、和在该实施方式中说明的结构的结构,无需对生物体认证系统100的其他装置附加变更,而能够计算欧几里德距离和内积这2种类似度。
实施方式4.
使用图31~图45,说明实施方式4。
另外,对于与实施方式1~实施方式3通用的部分,附加同一符号而省略说明。
在该实施方式中,说明作为密码方式使用BGN密码方式的情况。另外,关于类似度d,与实施方式1同样地,使用欧几里德距离的平方。
首先,说明BGN密码方式的概要。
N是相互不同的2个素数p、q之积。G以及GT是位数N的有限群。另外,有限群G以及有限群GT中的群运算被记述为乘法。e是将有限群G的2个元的组与有限群GT的元对应起来的配对G×G→GT。配对e满足双线性和非退化性。
g以及u是从有限群G的生成元中均匀随机地选择的元。h是有限群G的元,是通过有限群G中的乘幂针对元u用素数q进行乘幂而得到的元uq。
有限群G以及有限群GT是位数p的循环群、与位数q的循环群的直积。因此,元h的位数是p。
x以及r是0以上且小于N的整数。在提供了通过有限群G中的乘幂针对元g用整数x进行乘幂而得到的元gx、与通过有限群G中的乘幂针对元h用整数r进行乘幂而得到的元hr之积gxhr时,关于通过有限群G中的乘幂针对积gxhr用素数p进行乘幂而得到的元[gxhr]p,由于元h的位数是p,所以等于[gx]p。
例如,将有限群G、有限群GT、位数N、配对e、元g、以及元h的组作为公开密钥pk,将素数p作为秘密密钥sk。针对比素数q充分小的整数L,将0以上L以下的整数x设为明文,将有限群G的元gxhr设为对明文x进行加密而得到的密文E(x)。其中,r是从0以上且小于N的整数中均匀随机地选择的整数。
在解密中,使用作为秘密密钥sk的素数p。通过有限群G中的乘幂,计算针对密文E(x)用素数p进行乘幂而得到的元E(x)p=[gx]p=[gp]x。只要知道其是gp的几次方,就能够对x进行解密。
如果将整数x1的密文E(x1)=gx1hr1、和整数x2的密文E(x2)=gx2hr2通过有限群G中的乘法结合,则成为E(x1)E(x2)=gx1+x2hr1+r2,所以成为整数x1与整数x2的和x1+x2的密文E(x1+x2)。
另外,关于密文E(x),还能够在加密了的状态下,使用配对e向有限群GT转化(translate)之后解密。例如,整数x1的密文E(x1)=gx1hr1、与整数x2的密文E(x2)=gx2hr2的配对e(gx1hr1,gx2hr2)根据配对的双线性成为e(g,g)x1x2e(g,h)x1r2e(h,g)x2r1e(h,h)r1r2。有限群G的元h的位数是p,所以作为有限群GT的元的配对e(g,h),e(h,g),e(h,h)的位数都是p。因此,如果通过有限群GT中的乘幂,针对密文E(x1)和密文E(x2)的配对e(E(x1),E(x2))用素数p进行乘幂,则成为[e(g,g)p]x1x2。即,密文E(x1)和密文E(x2)的配对e(E(x1),E(x2))成为整数x1与整数x2之积x1x2的密文。
图31是示出该实施方式中的密钥生成部401的结构的一个例子的详细框图。
解密装置103的密钥生成部401具有例如群决定部431、生成元选择部432、以及生成元乘幂部433。
群决定部431使用处理装置911,根据依据保密等级决定的大小(例如512比特、1024比特等),生成相互不同的2个素数p、q。群决定部431使用处理装置911,计算所生成的2个素数p、q之积N=pq。群决定部431使用处理装置911,根据所计算的积N,决定有限群G和有限群GT。关于有限群G和有限群GT,位数都是N,具有配对e:G×G→GT。
生成元选择部432使用处理装置911,根据群决定部431决定的有限群G,选择有限群G的2个生成元g,u。
生成元乘幂部433使用处理装置911,根据群决定部431生成的素数q、和生成元选择部432选择的生成元u,计算元h。元h是通过有限群G中的乘幂针对生成元u用素数q进行乘幂而得到的元uq。
底计算部434使用处理装置911,根据群决定部431生成的素数p、配对e、以及生成元选择部432选择的生成元g,计算元π。元π是有限群GT的元。元π是,针对通过配对e对生成元g彼此的组进行变换而得到的元e(g,g),通过有限群GT中的乘幂,用素数p进行乘幂而得到的元e(g,g)p。
公开密钥存储部403使用存储装置914,作为公开密钥pk,存储有限群G、有限群GT、积N、配对e、生成元g、元h、以及元π的组(G,GT,N,e,g,h,π)。
秘密密钥存储部413使用存储装置914,作为秘密密钥sk,存储群决定部431生成的素数p。
图32是示出该实施方式中的密钥生成工序S501的处理流程的一个例子的流程图。
在密钥生成工序S501中,解密装置103生成公开密钥pk和秘密密钥sk的组。另外,也可以是针对每个用户生成不同的公开密钥pk和秘密密钥sk的组的结构,也可以是作为系统整体生成1个公开密钥pk和秘密密钥sk的组的结构。
密钥生成工序S501具有例如群决定工序S521、生成元选择工序S522、生成元乘幂工序S523、以及底计算工序S524。
最初,在群决定工序S521中,群决定部431使用处理装置911,决定2个素数p、q、积N、和位数N的有限群G以及GT。公开密钥存储部403使用存储装置914,作为公开密钥pk的一部分,存储积N、有限群G、以及有限群GT。秘密密钥存储部413使用存储装置914,作为秘密密钥sk,存储素数p。
在生成元选择工序S522中,生成元选择部432使用处理装置911,根据在群决定工序S521中群决定部431决定的有限群G,选择有限群G的2个生成元g,u。公开密钥存储部403使用存储装置914,作为公开密钥pk的一部分,存储生成元g。
在生成元乘幂工序S523中,生成元乘幂部433使用处理装置911,根据在群决定工序S521中群决定部431决定的素数q、和在生成元选择工序S522中生成元选择部432选择的生成元u,计算有限群G的元h=uq。公开密钥存储部403使用处理装置911,作为公开密钥pk的一部分,存储元h。
在底计算工序S524中,底计算部434使用处理装置911,根据在群决定工序S521中群决定部431决定的素数p以及配对e、和在生成元选择工序S522中生成元选择部432选择的生成元g,计算有限群GT的元π=e(g,g)p。公开密钥存储部403使用处理装置911,作为公开密钥pk的一部分,存储元π。
关于这样由公开密钥存储部403存储的公开密钥pk=(G,GT,N,e,g,h,π),公开密钥发送部408发送到认证装置102等,认证装置102等接收并储存。
图33是示出该实施方式中的特征矢量加密工序S603的处理流程的一个例子的流程图。
在特征矢量加密工序S603中,登记装置104对特征矢量b进行加密来生成加密特征矢量C。特征矢量加密工序S603具有例如初始化工序S610、反复工序S611、随机数生成工序S612、以及元计算工序S613a。
登记装置104的特征矢量形成部204生成的特征矢量b是例如以整数为成分的T维的矢量(b1,b2,…,bT)(T是1以上的整数)。加密数据生成部206生成的加密特征矢量C是以有限群G的元为成分的T维的矢量(c1,c2,…,cT)。
最初,在初始化工序S610中,加密数据生成部206使用处理装置911,将整数i初始化为0。
在反复工序S611中,加密数据生成部206使用处理装置911,对整数i加上1。在整数i大于T的情况下,加密数据生成部206结束特征矢量加密工序S603。在整数i是T以下的情况下,加密数据生成部206使处理进入随机数生成工序S612,生成加密特征矢量C的第i个成分ci。
在随机数生成工序S612中,随机数生成部205使用处理装置911,根据作为公开密钥存储部202存储的公开密钥pk的一部分的位数N,生成随机数ri。随机数生成部205生成的随机数ri是从0以上且小于N的整数中均匀随机地选择的整数。
在元计算工序S613a中,加密数据生成部206使用处理装置911,根据作为公开密钥存储部202存储的公开密钥pk的一部分的生成元g和元h、特征矢量形成部204生成的特征矢量b的第i个成分bi、以及在随机数生成工序S612中特征矢量形成部204生成的随机数ri,计算加密特征矢量C的第i个成分ci。加密数据生成部206计算的加密特征矢量C的第i个成分ci是将通过有限群G中的乘幂针对生成元g用整数bi进行乘幂而得到的元gbi、和通过有限群G中的乘幂针对元h用随机数ri进行乘幂而得到的元hri通过有限群G中的乘法结合而得到的元gbihri。
加密数据生成部206使处理返回到反复工序S611,生成加密特征矢量C的接下来的成分。
关于这样由加密数据生成部206生成的加密特征矢量C,加密数据发送部201发送到认证装置102,认证装置102接收并储存。
图34是示出该实施方式中的第一挑战生成工序S701的处理流程的一个例子的流程图。
在第一挑战生成工序S701中,认证装置102生成第一挑战R。第一挑战生成工序S701具有例如初始化工序S729、反复工序S721、随机数生成工序S722、以及元计算工序S723a。
认证装置102的加密随机数生成部304生成的第一挑战R是以有限群G的元为成分的T维的矢量(R1,R2,…,RT)。
最初,在初始化工序S729中,加密随机数生成部304使用处理装置911,将整数i初始化为0。
在反复工序S721中,加密随机数生成部304使用处理装置911,对整数i加上1。在整数i大于T的情况下,加密随机数生成部304结束第一挑战生成工序S701。在整数i是T以下的情况下,加密随机数生成部304使处理进入随机数生成工序S722,生成第一挑战R的第i个成分Ri。
在随机数生成工序S722中,随机数生成部303使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的位数N,生成2个随机数R1,i,R2,i。随机数生成部303生成的随机数R1,i,R2,i是从0以上且小于N的整数中均匀随机地选择的整数。随机数存储部322使用存储装置914,存储随机数生成部303生成的随机数R1, i。
在元计算工序S723a中,加密随机数生成部304使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的生成元g以及元h、和在随机数生成工序S722中随机数生成部303生成的2个随机数R1,i,R2,i,计算第一挑战R的第i个成分Ri。加密随机数生成部304计算的第一挑战R的第i个成分Ri是将通过有限群G中的乘幂针对生成元g用随机数R1,i进行乘幂而得到的元、和通过有限群G中的乘幂针对元h用随机数R2,i进行乘幂而得到的元通过有限群G中的乘法结合而得到的元。
加密随机数生成部304使处理返回到反复工序S721,生成第一挑战R的接下来的成分。
关于这样由加密随机数生成部304生成的第一挑战R,第一挑战发送部311发送到证明装置101,证明装置101接收并处理。
在第一挑战生成工序S701中随机数生成部303生成的随机数R1, i,R2,i(i是1以上且T以下的整数)全部是2T个。其中,随机数存储部322存储T个随机数R1,i(i是1以上且T以下的整数)。随机数存储部322存储的T个随机数R1,i是作为明文的随机数,剩余的T个随机数R2,i(i是1以上且T以下的整数)是用于加密的随机数。第一挑战R的各成分Ri是对作为明文的随机数R1,i进行加密而得到的。
图35是示出该实施方式中的加密数据嵌入部217的结构的一个例子的详细框图。
证明装置101的加密数据嵌入部217具有例如乘幂计算部234、零生成部232、以及元结合部235。
证明装置101的特征矢量形成部214生成的特征矢量b’与登记装置104的特征矢量形成部204生成的特征矢量b同样地,是以整数为成分的T维的矢量(b’1,b’2,…,b’T)。
随机数生成部215使用处理装置911,根据作为公开密钥存储部212存储的公开密钥pk的一部分的位数N,生成T个随机数r’i(i是1以上且T以下的整数)。随机数生成部215生成的随机数r’i是从0以上且小于N的整数中均匀随机地选择的整数。
乘幂计算部234使用处理装置911,根据第一挑战接收部211接收到的第一挑战R、和特征矢量形成部214生成的特征矢量b’,计算乘幂矢量Я。乘幂计算部234计算的乘幂矢量Я与第一挑战R同样地,是以有限群G的元为成分的T维的矢量(я1,я2,…,яT)。乘幂计算部234计算的乘幂矢量Я的第i个成分яi(i是1以上且T以下的整数)是通过有限群G中的乘幂针对第一挑战R的第i个成分Ri用特征矢量b’的第i个成分b’i进行乘幂而得到的元Ri b’i。乘幂计算部234计算的乘幂矢量Я的各成分яi是对特征矢量b’的成分b’i、与认证装置102生成的作为明文的随机数R1,i之积进行加密而得到的。
零生成部232使用处理装置911,根据作为公开密钥存储部202存储的公开密钥pk的一部分的元h、和随机数生成部215生成的T个随机数r’i,生成加密零矢量O。加密零矢量O是以有限群G的元为成分的T维的矢量(o1,o2,…,oT)。加密零矢量O的第i个成分oi(i是1以上且T以下的整数)是通过有限群G中的乘幂针对元h用第i个随机数r’i进行乘幂而得到的元hr’i。加密零矢量O的各成分oi是对0进行加密而得到的。
元结合部235使用处理装置911,根据乘幂计算部234计算出的乘幂矢量Я、和零生成部232生成的加密零矢量O,计算第一响应R’。第一响应R’是以有限群G的元为成分的T维的矢量(R’1,R’2,…,R’T)。第一响应R’的第i个成分R’i(i是1以上且T以下的整数)是通过有限群G中的乘法将乘幂矢量的第i个成分яi=Ri b’i、和加密零矢量O的第i个成分oi=hr’i结合而得到的元Ri b’ihr’i。第一响应R’的各成分R’i是对在第一挑战R的成分Ri中被加密了的作为明文的随机数R1,i、与特征矢量b’的成分b’i之积进行加密而得到的。
图36是示出该实施方式中的第一响应生成工序S707的处理流程的一个例子的流程图。
在第一响应生成工序S707中,证明装置101根据特征矢量b’、和第一挑战R,生成第一响应R’。第一响应生成工序S707具有例如初始化工序S660、反复工序S661、乘幂计算工序S662a、随机数生成工序S663、零生成工序S664、以及元结合工序S665a。
最初,在初始化工序S660中,元结合部235使用处理装置911,将整数i初始化为0。
在反复工序S661中,元结合部235使用处理装置911,对整数i加上1。在整数i大于T的情况下,元结合部235结束第一响应生成工序S707。在整数i是T以下的情况下,元结合部235使处理进入乘幂计算工序S662a,生成第一响应R’的第i个成分R’i。
在乘幂计算工序S662a中,乘幂计算部234使用处理装置911,根据特征矢量形成部214生成的特征矢量b’的第i个成分b’i、和第一挑战接收部211接收到的第一挑战R的第i个矢量Ri,计算乘幂矢量Я的第i个成分яi=Ri b’i。
在随机数生成工序S663中,随机数生成部215使用处理装置911,生成随机数r’i。
在零生成工序S664中,零生成部232使用处理装置911,根据在随机数生成工序S663中随机数生成部215生成的随机数r’i,计算加密零矢量O的第i个成分oi=hr’i。
在元结合工序S665a中,元结合部235使用处理装置911,根据在乘幂计算工序S662a中乘幂计算部234计算出的乘幂矢量Я的第i个成分яi、和在零生成工序S664中零生成部232计算出的加密零矢量O的第i个成分oi,计算第一响应R’的第i个成分R’i=яioi。
元结合部235使处理返回到反复工序S661,生成第一响应R’的接下来的成分。
关于这样由加密数据嵌入部217生成的第一响应R’,第一响应发送部221发送到认证装置102,认证装置102接收并处理。
另外,在特征矢量b’的成分b’i只能取0或者1这2个值的情况下,第一响应生成工序S707的处理能够例如如以下那样简化。
首先,无需乘幂,所以不设置乘幂计算部234,不执行乘幂计算工序S662a。
在元结合工序S665a中,元结合部235使用处理装置911,判定特征矢量b’的第i个成分b’i是0还是1。在特征矢量b’的第i个成分b’i是0的情况下,元结合部235使用处理装置911,将在零生成工序S664中零生成部232计算出的加密零矢量O的第i个成分oi=hr’i作为第一响应R’的第i个成分R’i。在特征矢量b’的第i个成分b’i是1的情况下,元结合部235使用处理装置911,计算通过有限群G中的乘法将在零生成工序S664中零生成部232计算出的加密零矢量O的第i个成分oi=hr’i、和第一挑战接收部211接收到的第一挑战R的第i个成分Ri结合而得到的元Rihr’i,作为第一响应R’的第i个成分R’i。
第一挑战R的第i个成分Ri是生成元g的R1,i次方、与元h的R2,i次方之积,所以第一响应R’的第i个成分R’i是生成元g的b’iR1, i次方、与元h的(b’iR2,i+r’i)次方之积。即,第一响应R’的第i个成分R’i是对特征矢量b’的第i个成分b’i、与随机数R1,i之积进行加密而得到的。
图37是示出该实施方式中的加密数据抽出部305的结构的一个例子的详细框图。
认证装置102的加密数据抽出部305具有例如倒数计算部351、和标量倍计算部352。
认证装置102的加密数据抽出部305生成的加密特征矢量C’与登记装置104的加密数据生成部206生成的加密特征矢量C同样地,是以有限群G的元为成分的T维的矢量(c’1,c’2,…,c’T)。
倒数计算部351使用处理装置911,根据随机数存储部322存储的T个随机数R1,i(i是1以上且T以下的整数),计算以N为模的整数的乘法中的随机数R1,i各自的倒数κi=R1,i -1。倒数κi是将随机数R1,i与倒数κi之积除以N而得到的余数成为1的整数。另外,N并非素数,所以不一定在随机数R1,i中存在倒数κi。但是,如果作为N的素因数的2个素数p、q充分大,则随机数R1,i是零因子的概率非常小,可忽略。
乘幂计算部353使用处理装置911,根据第一响应接收部331接收到的第一响应R’、和倒数计算部351计算出的T个倒数κi,计算加密特征矢量C’。乘幂计算部353计算的加密特征矢量C’的第i个成分c’i(i是1以上且T以下的整数)是通过有限群G中的乘幂针对第一响应R’的第i个成分R’i用第i个倒数κi进行乘幂而得到的元。加密特征矢量C’的各成分c’i是对特征矢量b’的成分b’i进行加密而得到的。
图38是示出该实施方式中的加密生物体信息抽出工序S710的处理流程的一个例子的流程图。
在加密生物体信息抽出工序S710中,认证装置102根据第一响应R’,生成加密特征矢量C’。加密生物体信息抽出工序S710具有例如初始化工序S730、反复工序S731、倒数计算工序S732、以及乘幂计算工序S733a。
最初,在初始化工序S730中,乘幂计算部353使用处理装置911,将整数i初始化为0。
在反复工序S731中,乘幂计算部353使用处理装置911,对整数i加上1。在整数i大于T的情况下,乘幂计算部353结束加密生物体信息抽出工序S710。在整数i是T以下的情况下,乘幂计算部353使处理进入倒数计算工序S732,生成加密特征矢量C’的第i个成分c’i。
在倒数计算工序S732中,倒数计算部351使用处理装置911,根据在第一挑战生成工序S701中随机数存储部322存储的T个随机数中的第i个随机数R1,i,计算倒数κi=R1,i -1。
在乘幂计算工序S733a中,乘幂计算部353使用处理装置911,根据第一响应接收部331接收到的第一响应R’的第i个成分R’i、和在倒数计算工序S732中计算的倒数κi,计算加密特征矢量C’的第i个成分c’i=R’i κi。
乘幂计算部353使处理返回到反复工序S731,生成加密特征矢量C’的接下来的成分。
这样由加密数据抽出部305生成的加密特征矢量C’在第二挑战生成工序S712中被使用。
第一响应R’的第i个成分R’i是生成元g的b’iR1,i次方、与元h的(b’iR2,i+r’i)次方之积,所以加密特征矢量C’的第i个成分c’i是生成元g的R1,i -1b’iR1,i次方、与元h的R1,i -1(b’iR2,i+r’i)次方之积。由于是R1,iR1,i -1≡1(mod N),所以c’i是生成元g的b’i次方、与元h的R1,i -1(b’iR2,i+r’i)次方之积。即,加密特征矢量C’的第i个成分c’i是对特征矢量b’的第i个成分b’i进行加密而得到的。
图39是示出该实施方式中的加密随机类似度计算部314的结构的一个例子的详细框图。
认证装置102的加密随机类似度计算部314具有例如差分计算部361、平方计算部368、加密密钥生成部366、以及元结合部370。
随机数生成部303使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的位数N,生成2个随机数s1,s2。随机数生成部303生成的随机数s1,s2是从0以上且小于N的整数中均匀随机地选择的整数。
随机数存储部322使用存储装置914,存储随机数生成部303生成的随机数中的1个随机数s1。
差分计算部361使用处理装置911,根据加密数据存储部312存储的加密特征矢量C、和加密数据抽出部305抽出的加密特征矢量C’,计算加密差分矢量ΔC。加密差分矢量ΔC是以有限群G的元为成分的T维的矢量(Δc1,Δc2,…,ΔcT)。加密差分矢量ΔC的第i个成分Δci(i是1以上且T以下的整数)是通过有限群G中的乘法将加密特征矢量C的第i个成分ci、和加密特征矢量C’的第i个成分c’i的逆元c’i -1结合而得到的元cic’i -1。加密差分矢量ΔC的各成分Δci是对特征矢量b的成分bi与特征矢量b’的成分b’i的差bi-b’i进行加密而得到的。
另外,加密差分矢量ΔC的第i个成分Δci也可以是通过有限群G中的乘法将加密特征矢量C的第i个成分ci的逆元ci -1、和加密特征矢量C’的第i个成分c’i结合而得到的元ci -1c’i。另外,加密差分矢量ΔC的成分Δci也可以是从元cic’i -1、和元ci -1c’i中随机地选择的某一个元。
平方计算部368使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的配对e、和差分计算部361计算出的加密差分矢量ΔC,计算加密平方矢量ΔC’。加密平方矢量ΔC’是以有限群GT的元为成分的T维的矢量(Δc’1,Δc’2,…,Δc’T)。加密平方矢量ΔC’的第i个成分Δc’i(i是1以上且T以下的整数)是通过配对e对加密差分矢量ΔC的第i个成分Δci彼此的组进行变换而得到的配对e(Δci,Δci)。加密平方矢量ΔC’的各成分Δc’i是对特征矢量b的成分bi与特征矢量b’的成分b’i之差的平方(bi-b’i)2进行加密而得到的。
加密密钥生成部366使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的配对e、生成元g以及元h、和随机数生成部303生成的2个随机数s1,s2,计算加密密钥ц。加密密钥ц是有限群GT的元。加密密钥ц是把将通过有限群G中的乘幂针对生成元g用随机数s1进行乘幂而得到的元gs1、和通过有限群G中的乘幂针对元h用随机数s2进行乘幂而得到的元hs2通过有限群G中的乘法结合而得到的元gs1hs2、与生成元g的组通过配对e进行变换而得到的元e(gs1hs2,g)。例如,加密密钥生成部366根据生成元g和随机数s1,计算通过有限群G中的乘幂针对生成元g用随机数s1进行乘幂而得到的元gs1。加密密钥生成部366根据元h和随机数s2,计算通过有限群G中的乘幂针对元h用随机数s2进行乘幂而得到的元hs2。加密密钥生成部366计算通过有限群G中的乘法将所计算的2个元gs1,hs2结合而得到的元gs1hs2。加密密钥生成部366计算通过配对e对所计算的元gs1hs2、和生成元g的组进行变换而得到的元e(gs1hs2,g)。加密密钥ц是对随机数生成部303计算出的随机数s1进行加密而得到的。
元结合部370使用处理装置911,根据平方计算部368计算出的加密平方矢量ΔC’、和加密密钥生成部366计算出的加密密钥ц,计算第二挑战C^。第二挑战C^是有限群GT的元。元结合部370计算的第二挑战C^是通过有限群GT中的乘法将加密平方矢量ΔC’的T个成分Δc’i、和加密密钥ц结合而得到的元Πi[Δc’i]ц。第二挑战C^是对特征矢量b的成分bi与特征矢量b’的成分b’i的差bi-b’i的平方(bi-b’i)2、和随机数s1的总和Σi[(bi-b’i)2]+s1进行加密而得到的。
图40是示出该实施方式中的第二挑战生成工序S712的处理流程的一个例子的流程图。
在第二挑战生成工序S712中,认证装置102根据2个加密特征矢量C、C’,生成第二挑战C^。第二挑战生成工序S712具有例如随机数生成工序S749、加密密钥生成工序S752、初始化工序S740、反复工序S741、差分计算工序S742、平方计算工序S753、以及元累计工序S748a。
最初,在随机数生成工序S749中,随机数生成部303使用处理装置911,生成2个随机数s1,s2。
在加密密钥生成工序S752中,加密密钥生成部366使用处理装置911,根据在随机数生成工序S749中随机数生成部303生成的2个随机数s1,s2,计算加密密钥ц=gs1hs2。元结合部370使用处理装置911,将第二挑战C^初始化为加密密钥生成部366计算出的加密密钥ц。
在初始化工序S740中,元结合部370使用处理装置911,将整数i初始化为0。
在反复工序S741中,元结合部370使用处理装置911,对整数i加上1。在整数i大于T的情况下,第二挑战C^已完成,所以元结合部370结束第二挑战生成工序S712。在整数i是T以下的情况下,元结合部370使处理进入差分计算工序S742。
在差分计算工序S742中,差分计算部361使用处理装置911,根据加密数据存储部312存储的加密特征矢量C的第i个成分ci、和加密数据抽出部305抽出的加密特征矢量C’的第i个成分c’i,计算加密差分矢量ΔC的第i个成分Δci。
在平方计算工序S753中,平方计算部368使用处理装置911,根据在差分计算工序S742中差分计算部361计算出的元Δci,计算加密平方矢量ΔC’的第i个成分Δc’i=e(Δci,Δci)。
在元累计工序S748a中,元结合部370使用处理装置911,通过有限群GT的乘法将在平方计算工序S753中平方计算部368计算出的加密平方矢量ΔC’的第i个成分Δc’i与第二挑战C^结合。
元结合部370使处理返回到反复工序S741。
关于这样由加密随机类似度计算部314计算出的第二挑战C^,第二挑战发送部321发送到解密装置103,解密装置103接收并处理。
另外,计算第二挑战C^的步骤也可以与上述步骤不同。例如,在相比于有限群G,有限群GT的乘法等计算更快的情况下,在增加有限群GT中的运算并减少有限群G中的运算时,能够缩短第二挑战生成工序S712的计算所需的时间。
图41是示出该实施方式中的加密随机类似度计算部314的结构的其他例子的详细框图。
认证装置102的加密随机类似度计算部314具有例如2个平方计算部381、382、积计算部383、乘幂计算部384、以及元结合部370。
平方计算部381使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的配对e、和加密数据存储部312存储的加密特征矢量C,计算第一加密平方矢量Ж。第一加密平方矢量Ж是以有限群GT的元为成分的T维的矢量(ж1,ж2,…,жT)。第一加密平方矢量Ж的第i个成分жi(i是1以上且T以下的整数)是通过配对e对加密特征矢量C的第i个成分ci彼此的组进行变换而得到的元e(ci,ci)。
平方计算部382使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的配对e、和加密数据抽出部305抽出的加密特征矢量C’,计算第二加密平方矢量Ж’。第二加密平方矢量Ж’是以有限群GT的元为成分的T维的矢量(ж’1,ж’2,…,ж’T)。第二加密平方矢量Ж’的第i个成分ж’i(i是1以上且T以下的整数)是通过配对e对加密特征矢量C’的第i个成分c’i彼此的组进行变换而得到的元e(c’i,c’i)。
积计算部383使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的配对e、加密数据存储部312存储的加密特征矢量C、以及加密数据抽出部305抽出的加密特征矢量C’,计算加密积矢量¢。加密积矢量¢是以有限群GT的元为成分的T维的矢量(¢1,¢2,…,¢T)。加密积矢量¢的第i个成分¢i(i是1以上且T以下的整数)是通过配对e对加密特征矢量C的第i个成分ci、和加密特征矢量C’的第i个成分c’i的组进行变换而得到的元e(ci,c’i)。
乘幂计算部384使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的配对e、生成元g以及元h、和随机数生成部303生成的2个随机数s1,s2,计算2个乘幂元ц1,ц2。第一乘幂元ц1是,针对通过配对e对生成元g彼此的组进行变换而得到的元e(g,g),通过有限群GT中的乘幂,用随机数s1进行乘幂而得到的元e(g,g)s1。第二乘幂元ц2是,针对通过配对e对生成元g和元h的组进行变换而得到的元e(g,h),通过有限群GT中的乘幂,用随机数s2进行乘幂而得到的元e(g,h)s2。
元结合部370使用处理装置911,根据平方计算部381计算出的第一加密平方矢量Ж、平方计算部382计算出的第二加密平方矢量Ж’、积计算部383计算出的加密积矢量¢、以及乘幂计算部384计算出的2个乘幂元ц1,ц2,计算第二挑战C^。第二挑战C^是有限群GT的元。元结合部370计算的第二挑战C^是通过有限群GT的乘法将第一加密平方矢量Ж的T个成分жi、第二加密平方矢量Ж’的T个成分ж’i、加密积矢量¢的T个成分¢i的(-2)次方、以及2个乘幂元ц1,ц2全部结合而得到的元Πi[жiж’i¢i-2]ц1ц2。在该情况下,第二挑战C^是对Σi[bi 2+b’i 2-2bib’i]+s1=Σi[(bi-b’i)2]+s1进行加密而得到的。
图42是示出该实施方式中的第二挑战生成工序S712的处理流程的其他例子的流程图。
第二挑战生成工序S712具有例如随机数生成工序S749、乘幂计算工序S752a、初始化工序S740、反复工序S741、平方计算工序S753、积计算工序S754、以及元累计工序S748a。
在随机数生成工序S749中,随机数生成部303使用处理装置911,生成2个随机数s1,s2。
在乘幂计算工序S752a中,乘幂计算部384使用处理装置911,根据在随机数生成工序S749中随机数生成部303生成的2个随机数s1,s2,计算2个乘幂元ц1=e(g,g)s1,ц2=e(g,h)s2。
在初始化工序S740中,元结合部370使用处理装置911,将整数i初始化为0。另外,元结合部370使用处理装置911,计算通过有限群GT中的乘法将在乘幂计算工序S752a中乘幂计算部384计算出的2个乘幂元ц1,ц2结合而得到的元ц1ц2。元结合部370使用处理装置911,将第二挑战C^初始化为所计算的元ц1ц2。
在反复工序S741中,元结合部370使用处理装置911,对整数i加上1。在整数i大于T的情况下,第二挑战C^已完成,所以元结合部370结束第二挑战生成工序S712。在整数i是T以下的情况下,元结合部370使处理进入平方计算工序S753。
在平方计算工序S753中,平方计算部381使用处理装置911,根据加密数据存储部312存储的加密特征矢量C的第i个成分ci,计算第一加密平方矢量Ж的第i个成分жi=e(ci,ci)。另外,平方计算部382使用处理装置911,根据加密数据抽出部305抽出的加密特征矢量C’的第i个成分c’i,计算第二加密平方矢量Ж’的第i个成分ж’i=e(c’i,c’i)。
在积计算工序S754中,积计算部383使用处理装置911,根据加密数据存储部312存储的加密特征矢量C的第i个成分ci、和加密数据抽出部305抽出的加密特征矢量C’的第i个成分c’i,计算加密积矢量¢的第i个成分¢i=e(ci,c’i)。
在元累计工序S748a中,元结合部370使用处理装置911,通过有限群GT的乘法,将在平方计算工序S753中平方计算部381计算出的第一加密平方矢量Ж的第i个成分жi、在平方计算工序S753中平方计算部382计算出的第二加密平方矢量Ж’的第i个成分ж’i、以及在积计算工序S754中积计算部383计算出的加密积矢量¢的第i个成分¢i的(-2)次方与第二挑战C^结合。
元结合部370使处理返回到反复工序S741。
通过设为这样的处理步骤,没有有限群G中的运算,仅通过配对e的计算、和有限群GT中的乘法的计算,能够生成第二挑战C^。
另外,配对e(g,g)以及e(g,h)、第一加密平方矢量Ж的成分e(ci,ci)与加密特征矢量C’没有关系,所以能够预先计算。通过将它们预先计算,能够缩短生成第二挑战C^所需的时间。
图43是示出该实施方式中的第二响应生成工序S716的处理流程的一个例子的流程图。
在第二响应生成工序S716中,解密装置103根据第二挑战C^,生成第二响应Z。第二响应生成工序S716具有例如乘幂计算工序S571。
在乘幂计算工序S571中,解密装置103的解密部404使用处理装置911,根据作为秘密密钥存储部413存储的秘密密钥sk的素数p、和第二挑战接收部402接收到的第二挑战C^,计算第二响应Z。第二响应Z是有限群GT的元。解密部404计算的第二响应Z是通过有限群GT中的乘幂针对第二挑战C^用素数p进行乘幂而得到的元。
第二挑战C^是对Σi[(bi-b’i)2]+s1进行加密而得到的,所以第二响应Z成为如下的元:关于针对通过配对e对生成元g彼此的组进行变换而得到的元e(g,g)通过有限群GT中的乘幂利用素数p进行乘幂而得到的元e(g,g)p,通过有限群GT中的乘幂,用Σi[(bi-b’i)2]+s1进行乘幂而得到的元。另外,元e(g,g)p是作为公开密钥pk的一部分公开的元π,所以第二响应Z是通过有限群GT中的乘幂针对元π用Σi[(bi-b’i)2]+s1进行乘幂而得到的元。
明文类似度抽出部315的结构与在实施方式1中说明的结构相同,所以参照图24说明。
群变换部371使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的元π、和随机数存储部322存储的随机数s1,计算解密密钥Ц。解密密钥Ц是有限群GT的元。解密密钥Ц是通过有限群GT的乘幂针对元π用随机数s1的反数(additive inverse)-s1进行乘幂而得到的元π-s1。
元结合部372使用处理装置911,根据第二响应接收部341接收到的第二响应Z、和群变换部371计算出的解密密钥Ц,计算解密类似度元Z’。解密类似度元Z’是有限群GT的元。解密类似度元Z’是通过有限群GT中的乘法将第二响应Z、和解密密钥Ц结合而得到的元ZЦ。第二响应Z是通过有限群GT中的乘幂针对元π用Σi[(bi-b’i)2]+s1进行乘幂而得到的元,所以解密类似度元Z’成为通过有限群GT中的乘幂针对元π用Σi[(bi-b’i)2]进行乘幂而得到的元。
离散对数计算部373使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的元π、和元结合部372计算出的解密类似度元Z’,计算解密类似度元Z’是元π的几次方,来作为类似度d。另外,与实施方式1同样地,离散对数计算部373也可以是在类似度d是阈值d0以下的情况下,计算类似度d,在类似度d大于阈值d0的情况下,判定为类似度d大于阈值d0的结构。
由此,在认证装置102中,作为类似度d,计算2个特征矢量b、b’之间的欧几里德距离的平方Σi[(bi-b’i)2]。
图44是示出该实施方式中的明文类似度计算工序S719的处理流程的一个例子的流程图。
在明文类似度计算工序S719中,认证装置102根据第二响应Z,计算类似度d。明文类似度计算工序S719具有例如群变换工序S691、元结合工序S692、以及离散对数计算工序S693。
最初,在群变换工序S691中,群变换部371使用处理装置911,根据随机数存储部322存储的作为暂时密钥的随机数s1,计算解密密钥Ц=π-s1。
在元结合工序S692中,元结合部372使用处理装置911,根据第二响应接收部341接收到的第二响应Z、和在群变换工序S691中群变换部371计算出的解密密钥Ц,计算解密类似度元Z’=ZЦ。
在离散对数计算工序S693中,离散对数计算部373使用处理装置911,根据在元结合部372中元结合部372计算出的解密类似度元Z’,计算类似度d。
根据明文类似度抽出部315计算出的类似度d,判定部306判定2个特征矢量b、b’是否类似,由此判定具有用特征矢量b表示的生物体信息的人物、和具有用特征矢量b’表示的生物体信息的人物是否为同一人物。判定部306在类似度d小于阈值d0的情况下,判定为2个特征矢量b、b’类似。
图45是示出该实施方式的生物体认证系统100中的类似度计算的计算步骤的流程图。
作为第一阶段,在第二挑战生成工序S712中,认证装置102根据2个加密特征矢量C、C’计算第二挑战C^,从而计算δ=Σi[(bi-b’i)2]+s1(i是1以上且T以下的整数)。该计算是在通过解密装置103的密钥加密了的状态下进行的,所以认证装置102无法得到关于特征矢量b、b’的信息。
作为第二阶段,在第二响应生成工序S716中,解密装置103根据第二挑战C^计算第二响应Z,从而计算ζ。解密装置103仅简单地进行解密处理,所以ζ等于δ。解密装置103不知道暂时密钥s1,所以无法得到关于特征矢量b、b’、类似度的信息。即,该计算是在通过暂时密钥s1加密了的状态下进行的。
作为第三阶段,在明文类似度计算工序S719中,认证装置102根据第二响应Z,计算类似度d=ζ-s1。由此,认证装置102虽然能够得到类似度d,但无法得到关于特征矢量b、b’的信息。
这样,通过使用在加密了的状态下,不仅执行与明文的加法相当的运算,而且还至少执行一次与明文的乘法相当的运算的密码方式,能够在第一阶段中结束类似度计算的计算步骤的大部分。由此,解密装置103单纯地仅进行解密处理即可。
根据该实施方式,能够降低公开密钥pk、秘密密钥sk、所生成的随机数、所存储的随机数的数量。
另外,从认证装置102向解密装置103送出的第二挑战的数据量降低,所以能够降低认证所需的通信量。
另外,密码方式不限于BGN密码方式,也可以是使用Gentry密码方式等具有环同态性的其他密码方式的结构。另外,也可以是在证明装置101与认证装置102之间的通信中,使用普通的公开密钥密码方式等第二密码方式的结构。
另外,生物体认证系统100也可以是与实施方式2同样地,证明装置101兼具作为解密装置103、登记装置104的功能的结构。
实施方式5.
使用图46~图48,说明实施方式5。
另外,关于与实施方式1~实施方式4通用的部分,附加同一符号而省略说明。
在该实施方式中,说明使用在实施方式4中说明的BGN密码方式,与实施方式3同样地,作为类似度d,计算内积Σi[bib’i]的情况。
该实施方式中的生物体认证系统100的整体结构、证明装置101、认证装置102、解密装置103、登记装置104等的内部结构与实施方式4的说明相同,所以仅说明不同的方面。
图46是示出该实施方式中的加密随机类似度计算部314的结构的一个例子的详细框图。
认证装置102的加密随机类似度计算部314具有例如积计算部383、乘幂计算部384、以及元结合部370。
积计算部383使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的配对e、加密数据存储部312存储的加密特征矢量C、以及加密数据抽出部305抽出的加密特征矢量C’,计算加密积矢量¢。加密积矢量¢是以有限群GT的元为成分的T维的矢量(¢1,¢2,…,¢T)。加密积矢量¢的第i个成分¢i是通过配对e对加密特征矢量C的第i个成分ci、和加密特征矢量C’的第i个成分c’i的组进行变换而得到的元e(ci,c’i)。
乘幂计算部384使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的一部分的配对e、生成元g以及元h、和随机数生成部303生成的2个随机数s1,s2,计算2个乘幂元ц1,ц2。第一乘幂元ц1是,针对通过配对e对生成元g彼此的组进行变换而得到的元e(g,g),通过有限群GT中的乘幂,用随机数s1进行乘幂而得到的元e(g,g)s1。第二乘幂元ц2是,针对通过配对e对生成元g和元h的组进行变换而得到的元e(g,h),通过有限群GT中的乘幂,用随机数s2进行乘幂而得到的元e(g,h)s2。
元结合部370使用处理装置911,根据积计算部383计算出的加密积矢量¢、和乘幂计算部384计算出的2个乘幂元ц1,ц2,计算第二挑战C^。第二挑战C^是有限群GT的元。元结合部370计算的第二挑战C^是通过有限群GT的乘法将加密积矢量¢的T个成分¢i、和2个乘幂元ц1,ц2全部结合而得到的元Πi[¢i]ц1ц2。第二挑战C^是对Σi[bib’i]+s1进行加密而得到的。
图47是示出该实施方式中的第二挑战生成工序S712的处理流程的一个例子的流程图。
第二挑战生成工序S712具有例如随机数生成工序S749、乘幂计算工序S752a、初始化工序S740、反复工序S741、积计算工序S754、以及元累计工序S748a。
在随机数生成工序S749中,随机数生成部303使用处理装置911,生成2个随机数s1,s2。
在乘幂计算工序S752a中,乘幂计算部384使用处理装置911,根据在随机数生成工序S749中随机数生成部303生成的2个随机数s1,s2,计算2个乘幂元ц1=e(g,g)s1,ц2=e(g,h)s2。
在初始化工序S740中,元结合部370使用处理装置911,将整数i初始化为0。另外,元结合部370使用处理装置911,计算通过有限群GT中的乘法将乘幂计算部384计算出的2个乘幂元ц1,ц2结合而得到的元ц1ц2。元结合部370使用处理装置911,将第二挑战C^初始化为所计算的元ц1ц2。
在反复工序S741中,元结合部370使用处理装置911,对整数i加上1。在整数i大于T的情况下,第二挑战C^已完成,所以元结合部370结束第二挑战生成工序S712。在整数i是T以下的情况下,元结合部370使处理进入积计算工序S754。
在积计算工序S754中,积计算部383使用处理装置911,根据加密数据存储部312存储的加密特征矢量C的第i个成分ci、和加密数据抽出部305抽出的加密特征矢量C’的第i个成分c’i,计算加密积矢量¢的第i个成分¢i=e(ci,c’i)。
在元累计工序S748a中,元结合部370使用处理装置911,通过有限群GT的乘法,将在积计算工序S754中积计算部383计算出的加密积矢量¢的第i个成分¢i与第二挑战C^结合。
元结合部370使处理返回到反复工序S741。
关于这样由加密随机类似度计算部314计算出的第二挑战C^,第二挑战发送部321发送到解密装置103,解密装置103接收并处理。
解密装置103的解密部404是与实施方式4相同的结构,但第二挑战C^的意思不同,所以解密部404生成的第二响应Z的意思也与实施方式1不同。
即,第二响应Z成为通过有限群GT中的乘幂针对有限群GT的元π用(Σi[bib’i]+s1)(i是1以上且T以下的整数)进行乘幂而得到的元。即,第二响应Z是对特征矢量b与特征矢量b’的内积Σi[bib’i]用作为暂时密钥的随机数s1进行加密而得到的。
认证装置102的明文类似度抽出部315也是与实施方式4相同的结构。
元结合部370计算的解密类似度元Z’是通过有限群GT中的乘幂针对元π用特征矢量b与特征矢量b’的内积Σi[bib’i]进行乘幂而得到的元。因此,在明文类似度抽出部315中,作为类似度d,计算特征矢量b与特征矢量b’的内积Σi[bib’i]。
判定部306在离散对数计算部373计算出的类似度d大于规定的阈值d0的情况下,判定为2个特征矢量b、b’类似。
由此,能够将特征点的一致数作为指标,判定2个特征矢量b、b’是否类似。
图48是示出该实施方式的生物体认证系统100中的类似度计算的计算步骤的流程图。
作为第一阶段,在第二挑战生成工序S712中,认证装置102根据2个加密特征矢量C、C’计算第二挑战C^,从而计算δ=Σi[bib’i]+s1(i是1以上且T以下的整数)。该计算是在通过解密装置103的密钥加密了的状态下进行的,所以认证装置102无法得到关于特征矢量b、b’的信息。
作为第二阶段,在第二响应生成工序S716中,解密装置103根据第二挑战C^计算第二响应Z,从而计算ζ。解密装置103仅简单地进行解密处理,所以ζ等于δ。解密装置103不知道暂时密钥s1,所以无法得到关于特征矢量b、b’、类似度的信息。即,该计算是在通过暂时密钥s1加密了的状态下进行的。
作为第三阶段,在明文类似度计算工序S719中,认证装置102根据第二响应Z,计算类似度d=ζ-s1。由此,认证装置102虽然能够得到类似度d,但无法得到关于特征矢量b、b’的信息。
另外,密码方式不限于BGN密码方式,也可以是使用Gentry密码方式等具有环同态性的其他密码方式的结构。另外,也可以是在证明装置101与认证装置102之间的通信中,使用普通的公开密钥密码方式等第二密码方式的结构。
另外,生物体认证系统100也可以是与实施方式2同样地,证明装置101兼具作为解密装置103、登记装置104的功能的结构。
另外,在与实施方式4比较时,证明装置101、解密装置103、登记装置104的结构未变化,仅认证装置102的结构不同。因此,通过使认证装置102成为能够切换在实施方式4中说明的结构、和在该实施方式中说明的结构的结构,无需对生物体认证系统100的其他装置附加变更,而能够计算欧几里德距离和内积这2种类似度。
实施方式6.
使用图49~图61,说明实施方式6。
另外,关于与实施方式1~实施方式5通用的部分,附加同一符号而省略说明。
在该实施方式中,说明作为密码方式使用Paillier密码方式的情况。另外,关于类似度d,与实施方式1同样地,使用欧几里德距离的平方。
首先,说明Paillier密码方式的概要。
N是相互不同的2个素数p、q之积。λ是p-1和q-1的公倍数。如果将r设为与N互为素数的整数,则rλN≡1(mod N2)。另外,如果将x、y设为整数,则(1+xN)y≡1+xyN(mod N2)。因此,[rN(1+xN)]λ≡1+xλN(mod N2)。
例如,将N作为公开密钥pk,将p-1与q-1的最小公倍数λ作为秘密密钥sk。将0以上且小于N的整数x作为明文,将rN(1+xN)作为对明文x进行加密而得到的密文E(x)。其中,r是从0以上且小于N的整数中均匀随机地选择的整数。如果素数p、q充分大,则r与N不是互为素数的概率非常小,可忽略。
在解密中,使用作为秘密密钥sk的λ。如果利用E(x)λ≡1+xλN(mod N2),则能够删除随机数r。E(x)λ-1成为N的倍数,所以[E(x)λ-1]/N是整数。如果将以N为模的整数的乘法中的λ的逆元设为λ-1,则在求出将[E(x)λ-1]/N与λ-1之积除以N而得到的余数时,能够对明文x进行解密。
将整数x1的密文E(x1)与整数x2的密文E(x2)之积除以N2而得到的余数是r1 N(1+x1N)r2 N(1+x2N)≡(r1r2)N[1+(x1+x2)N](mod N2),所以成为整数x1与整数x2之和x1+x2的密文E(x1+x2)。
图49是示出该实施方式中的密钥生成部401的结构的一个例子的详细框图。
解密装置103的密钥生成部401具有例如素数决定部441、积计算部442、以及公倍数计算部443。
素数决定部441使用处理装置911,根据依据保密等级决定的大小(例如512比特、1024比特等),生成相互不同的2个素数p、q。
积计算部442使用处理装置911,根据素数决定部441生成的2个素数p、q,计算整数N。整数N是2个素数p、q之积。
公倍数计算部443使用处理装置911,根据素数决定部441生成的2个素数p、q,计算p-1与q-1的最小公倍数λ=LCM(p-1,q-1)。
公开密钥存储部403使用存储装置914,作为公开密钥pk,存储积N。
秘密密钥存储部413使用存储装置914,作为秘密密钥sk,存储最小公倍数λ。
另外,在解密中,需要以N为模的整数的乘法中的λ的倒数λ-1,所以例如,也可以是公倍数计算部443计算倒数λ-1,秘密密钥存储部413存储为秘密密钥sk的一部分的结构。
图50是示出该实施方式中的密钥生成工序S501的处理流程的一个例子的流程图。
在密钥生成工序S501中,解密装置103生成公开密钥pk与秘密密钥sk的组。另外,也可以是针对每个用户生成不同的公开密钥pk与秘密密钥sk的组的结构,也可以是作为系统整体生成1个公开密钥pk与秘密密钥sk的组的结构。
密钥生成工序S501具有例如素数决定工序S531、积计算工序S532、以及公倍数计算工序S533。
最初,在素数决定工序S531中,素数决定部441使用处理装置911,决定2个素数p、q。
在积计算工序S532中,积计算部442使用处理装置911,根据在素数决定工序S531中素数决定部441决定的2个素数p、q,计算整数N=pq。公开密钥存储部403使用存储装置914,作为公开密钥pk,存储积计算部442计算出的整数N。
在公倍数计算工序S533中,公倍数计算部443使用处理装置911,根据在素数决定工序S531中素数决定部441决定的2个素数p、q,计算最小公倍数λ=LCM(p-1,q-1)。秘密密钥存储部413使用存储装置914,作为秘密密钥sk,存储公倍数计算部443计算出的最小公倍数λ。
关于这样由公开密钥存储部403存储的公开密钥pk=(N),公开密钥发送部408发送到认证装置102等,认证装置102等接收并储存。
图51是示出该实施方式中的特征矢量加密工序S603的处理流程的一个例子的流程图。
在特征矢量加密工序S603中,登记装置104对特征矢量b进行加密而生成加密特征矢量C。特征矢量加密工序S603具有例如初始化工序S610、反复工序S611、随机数生成工序S612、以及整数计算工序S613b。
登记装置104的特征矢量形成部204生成的特征矢量b是例如以0以上且小于N的整数为成分的T维的矢量(b1,b2,…,bT)(T是1以上的整数)。加密数据生成部206生成的加密特征矢量C是以0以上且小于N2的整数为成分的T维的矢量(c1,c2,…,cT)。
最初,在初始化工序S610中,加密数据生成部206使用处理装置911,将整数i初始化为0。
在反复工序S611中,加密数据生成部206使用处理装置911,对整数i加上1。在整数i大于T的情况下,加密数据生成部206结束特征矢量加密工序S603。在整数i是T以下的情况下,加密数据生成部206使处理进入随机数生成工序S612,生成加密特征矢量C的第i个成分ci。
在随机数生成工序S612中,随机数生成部205使用处理装置911,根据作为公开密钥存储部202存储的公开密钥pk的整数N,生成随机数ri。随机数生成部205生成的随机数ri是从0以上且小于N的整数中均匀随机地选择的整数。
在整数计算工序S613b中,加密数据生成部206使用处理装置911,根据作为公开密钥存储部202存储的公开密钥pk的整数N、特征矢量形成部204生成的特征矢量b的第i个成分bi、以及在随机数生成工序S612中特征矢量形成部204生成的随机数ri,计算加密特征矢量C的第i个成分ci。加密数据生成部206计算的加密特征矢量C的第i个成分ci是将对特征矢量b的第i个成分bi与整数N之积biN加上1而得到的和(1+biN)、和针对随机数ri用整数N进行乘幂而得到的整数ri N之积ri N(1+biN)除以整数N的平方而得到的余数。
加密数据生成部206使处理返回到反复工序S611,生成加密特征矢量C的接下来的成分。
关于这样由加密数据生成部206生成的加密特征矢量C,加密数据发送部201发送到认证装置102,认证装置102接收并储存。
图52是示出该实施方式中的第一挑战生成工序S701的处理流程的一个例子的流程图。
在第一挑战生成工序S701中,认证装置102生成第一挑战R。第一挑战生成工序S701具有例如初始化工序S729、反复工序S721、随机数生成工序S722、以及整数计算工序S723b。
认证装置102的加密随机数生成部304生成的第一挑战R是以0以上且小于N2的整数为成分的T维的矢量(R1,R2,…,RT)。
最初,在初始化工序S729中,加密随机数生成部304使用处理装置911,将整数i初始化为0。
在反复工序S721中,加密随机数生成部304使用处理装置911,对整数i加上1。在整数i大于T的情况下,加密随机数生成部304结束第一挑战生成工序S701。在整数i是T以下的情况下,加密随机数生成部304使处理进入随机数生成工序S722,生成第一挑战R的第i个成分Ri。
在随机数生成工序S722中,随机数生成部303使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的整数N,生成2个随机数R1,i,R2,i。随机数生成部303生成的随机数R1,i,R2,i是从0以上且小于N的整数中均匀随机地选择的整数。随机数存储部322使用存储装置914,存储随机数生成部303生成的随机数R1,i。
在元计算工序S723a中,加密随机数生成部304使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的整数N、和在随机数生成工序S722中随机数生成部303生成的2个随机数R1,i,R2,i,计算第一挑战R的第i个成分Ri。加密随机数生成部304计算的第一挑战R的第i个成分Ri是将对随机数R1,i与整数N之积R1,iN加上1而得到的和(1+R1,iN)、和针对随机数R2,i用整数N进行乘幂而得到的整数R2,i N之积除以整数N的平方而得到的余数。
加密随机数生成部304使处理返回到反复工序S721,生成第一挑战R的接下来的成分。
关于这样由加密随机数生成部304生成的第一挑战R,第一挑战发送部311发送到证明装置101,证明装置101接收并处理。
在第一挑战生成工序S701中随机数生成部303生成的随机数R1, i,R2,i(i是1以上且T以下的整数)全部是2T个。其中,随机数存储部322存储T个随机数R1,i(i是1以上且T以下的整数)。随机数存储部322存储的T个随机数R1,i是作为明文的随机数,剩余的T个随机数R2,i(i是1以上且T以下的整数)是用于加密的随机数。第一挑战R的各成分Ri是对作为明文的随机数R1,i进行加密而得到的。
图53是示出该实施方式中的加密数据嵌入部217的结构的一个例子的详细框图。
证明装置101的加密数据嵌入部217具有例如乘幂计算部234、零生成部232、以及整数结合部236。
证明装置101的特征矢量形成部214生成的特征矢量b’与登记装置104的特征矢量形成部204生成的特征矢量b同样地,是以0以上且小于N的整数为成分的T维的矢量(b’1,b’2,…,b’T)。
随机数生成部215使用处理装置911,根据作为公开密钥存储部212存储的公开密钥pk的整数N,生成T个随机数r’i(i是1以上且T以下的整数)。随机数生成部215生成的随机数r’i是从0以上且小于N的整数中均匀随机地选择的整数。
乘幂计算部234使用处理装置911,根据第一挑战接收部211接收到的第一挑战R、和特征矢量形成部214生成的特征矢量b’,计算乘幂矢量Я。乘幂计算部234计算的乘幂矢量Я与第一挑战R同样地,是以0以上且小于N2的整数为成分的T维的矢量(я1,я2,…,яT)。乘幂计算部234计算的乘幂矢量Я的第i个成分яi(i是1以上且T以下的整数)是将针对第一挑战R的第i个成分Ri用特征矢量b’的第i个成分b’i进行乘幂而得到的整数Ri b’i除以整数N的平方而得到的余数。乘幂计算部234计算的乘幂矢量Я的各成分яi是对特征矢量b’的成分b’i、与认证装置102生成的作为明文的随机数R1,i之积进行加密而得到的。
零生成部232使用处理装置911,根据作为公开密钥存储部212存储的公开密钥pk的整数N、和随机数生成部215生成的T个随机数r’i,生成加密零矢量O。加密零矢量O是以0以上且小于N2的整数为成分的T维的矢量(o1,o2,…,oT)。加密零矢量O的第i个成分oi(i是1以上且T以下的整数)是将针对第i个随机数r’i用整数N进行乘幂而得到的整数r’i N除以整数N的平方而得到的余数。加密零矢量O的各成分oi是对0进行加密而得到的。
整数结合部236使用处理装置911,根据乘幂计算部234计算出的乘幂矢量Я、和零生成部232生成的加密零矢量O,计算第一响应R’。第一响应R’是以0以上且小于N2的整数为成分的T维的矢量(R’1,R’2,…,R’T)。第一响应R’的第i个成分R’i(i是1以上且T以下的整数)是将乘幂矢量Я的第i个成分яi、与加密零矢量O的第i个成分oi之积除以整数N的平方而得到的余数。第一响应R’的各成分R’i是对在第一挑战R的成分Ri中加密了的作为明文的随机数R1,i、与特征矢量b’的成分b’i之积进行加密而得到的。
图54是示出该实施方式中的第一响应生成工序S707的处理流程的一个例子的流程图。
在第一响应生成工序S707中,证明装置101根据特征矢量b’、和第一挑战R,生成第一响应R’。第一响应生成工序S707具有例如初始化工序S660、反复工序S661、乘幂计算工序S662a、随机数生成工序S663、零生成工序S664、以及整数结合工序S665b。
最初,在初始化工序S660中,整数结合部236使用处理装置911,将整数i初始化为0。
在反复工序S661中,整数结合部236使用处理装置911,对整数i加上1。在整数i大于T的情况下,整数结合部236结束第一响应生成工序S707。在整数i是T以下的情况下,整数结合部236使处理进入乘幂计算工序S662a,生成第一响应R’的第i个成分R’i。
在乘幂计算工序S662a中,乘幂计算部234使用处理装置911,根据特征矢量形成部214生成的特征矢量b’的第i个成分b’i、和第一挑战接收部211接收到的第一挑战R的第i个矢量Ri,计算乘幂矢量Я的第i个成分яi=Ri b’i mod N2。
在随机数生成工序S663中,随机数生成部215使用处理装置911,生成随机数r’i。
在零生成工序S664中,零生成部232使用处理装置911,根据在随机数生成工序S663中随机数生成部215生成的随机数r’i,计算加密零矢量O的第i个成分oi=r’iN mod N2。
在整数结合工序S665b中,整数结合部236使用处理装置911,根据在乘幂计算工序S662a中乘幂计算部234计算出的乘幂矢量Я的第i个成分яi、和在零生成工序S664中零生成部232计算出的加密零矢量O的第i个成分oi,计算第一响应R’的第i个成分R’i。
整数结合部236使处理返回到反复工序S661,生成第一响应R’的接下来的成分。
关于这样由加密数据嵌入部217生成的第一响应R’,第一响应发送部221发送到认证装置102,认证装置102接收并处理。
另外,在特征矢量b’的成分b’i只能取0或者1这2个值的情况下,第一响应生成工序S707的处理能够例如如以下那样简化。
首先,无需进行乘幂,所以不设置乘幂计算部234,不执行乘幂计算工序S662a。
在整数结合工序S665b中,整数结合部236使用处理装置911,判定特征矢量b’的第i个成分b’i是0还是1。在特征矢量b’的第i个成分b’i是0的情况下,整数结合部236使用处理装置911,将在零生成工序S664中零生成部232计算出的加密零矢量O的第i个成分oi=r’iN mod N2作为第一响应R’的第i个成分R’i。在特征矢量b’的第i个成分b’i是1的情况下,元结合部235使用处理装置911,计算通过有限群G中的乘法将在零生成工序S664中零生成部232计算出的加密零矢量O的第i个成分oi、与第一挑战接收部211接收到的第一挑战R的第i个成分Ri之积除以整数N的平方而得到的余数,作为第一响应R’的第i个成分R’i。
第一挑战R的第i个成分Ri是将对随机数R1,i与整数N之积加上1而得到的整数(1+R1,iN)、和对随机数R2,i进行N次方而得到的整数之积除以N2而得到的余数,所以第一响应R’的第i个成分R’i是将对特征矢量b’的第i个成分b’i、随机数R1,i、以及整数N之积加上1而得到的整数(1+b’iR1,iN)、和对随机数R2,i的b’i次方与随机数r’i之积进行N次方而得到的整数之积除以N2而得到的余数。即,第一响应R’的第i个成分R’i是对特征矢量b’的第i个成分b’i、与随机数R1,i之积进行加密而得到的。
加密数据抽出部305的结构与在实施方式4中说明的结构相同,所以参照图37说明。
认证装置102的加密数据抽出部305具有例如倒数计算部351、和乘幂计算部353。
认证装置102的加密数据抽出部305生成的加密特征矢量C’与登记装置104的加密数据生成部206生成的加密特征矢量C同样地,是以0以上且小于N2的整数为成分的T维的矢量(c’1,c’2,…,c’T)。
倒数计算部351使用处理装置911,根据随机数存储部322存储的T个随机数R1,i(i是1以上且T以下的整数),计算以N为模的整数的乘法中的随机数R1,i各自的倒数κi=R1,i -1。倒数κi是将随机数R1,i与倒数κi之积除以N而得到的余数成为1的整数。另外,N并非素数,所以不一定对随机数R1,i存在倒数κi。但是,只要作为N的素因数的2个素数p、q充分大,则随机数R1,i是零因子的概率非常小,而可忽略。
乘幂计算部353使用处理装置911,根据第一响应接收部331接收到的第一响应R’、和倒数计算部351计算出的T个倒数κi,计算加密特征矢量C’。乘幂计算部353计算的加密特征矢量C’的第i个成分c’i(i是1以上且T以下的整数)是将针对第一响应R’的第i个成分R’i用第i个倒数κi进行乘幂而得到的整数除以整数N的平方而得到的余数。加密特征矢量C’的各成分c’i是对特征矢量b’的成分b’i进行加密而得到的。
图55是示出该实施方式中的加密生物体信息抽出工序S710的处理流程的一个例子的流程图。
在加密生物体信息抽出工序S710中,认证装置102根据第一响应R’,生成加密特征矢量C’。加密生物体信息抽出工序S710具有例如初始化工序S730、反复工序S731、倒数计算工序S732、以及乘幂计算工序S733a。
最初,在初始化工序S730中,乘幂计算部353使用处理装置911,将整数i初始化为0。
在反复工序S731中,乘幂计算部353使用处理装置911,对整数i加上1。在整数i大于T的情况下,乘幂计算部353结束加密生物体信息抽出工序S710。在整数i是T以下的情况下,乘幂计算部353使处理进入倒数计算工序S732,生成加密特征矢量C’的第i个成分c’i。
在倒数计算工序S732中,倒数计算部351使用处理装置911,根据在第一挑战生成工序S701中随机数存储部322存储的T个随机数中的第i个随机数R1,i,计算倒数κi=R1,i -1。
在乘幂计算工序S733a中,乘幂计算部353使用处理装置911,根据第一响应接收部331接收到的第一响应R’的第i个成分R’i、和在倒数计算工序S732中计算的倒数κi,计算加密特征矢量C’的第i个成分c’i=R’i κi。
乘幂计算部353使处理返回到反复工序S731,生成加密特征矢量C’的接下来的成分。
这样由加密数据抽出部305生成的加密特征矢量C’在第二挑战生成工序S712中被使用。
第一响应R’的第i个成分R’i是将对整数b’iR1,i与整数N之积加上1而得到的整数(1+b’iR1,iN)、和R2,i b’ir’i的N次方之积除以N2而得到的余数,所以加密特征矢量C’的第i个成分c’i是对整数κib’iR1, i与整数N之积加上1而得到的整数(1+κib’iR1,iN)、和(R2,i b’ir’i)κi的N次方之积。由于R1,iκi≡1(mod N),所以c’i是对整数b’i与整数N之积加上1而得到的整数(1+b’iN)、和(R2,i b’ir’i)κi的N次方之积。即,加密特征矢量C’的第i个成分c’i是对特征矢量b’的第i个成分b’i进行加密而得到的。
图56是示出该实施方式中的加密随机类似度计算部314的结构的一个例子的详细框图。
认证装置102的加密随机类似度计算部314生成的第二挑战C^由0以上且小于N2的(T+1)个整数c^1,c^2,…,c^T,c^构成。加密随机类似度计算部314具有例如差分计算部361、重新排列部385、以及加密密钥生成部366。
随机数生成部303使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的整数N,生成2个随机数s1,s2。随机数生成部303生成的随机数s1,s2是从0以上且小于N的整数中均匀随机地选择的整数。
随机数存储部322使用存储装置914,存储随机数生成部303生成的随机数中的1个随机数s1。
差分计算部361使用处理装置911,根据加密数据存储部312存储的加密特征矢量C、和加密数据抽出部305抽出的加密特征矢量C’,计算加密差分矢量ΔC。加密差分矢量ΔC是以0以上且小于N2的整数为成分的T维的矢量(Δc1,Δc2,…,ΔcT)。加密差分矢量ΔC的第i个成分Δci(i是1以上且T以下的整数)是从接下来的2个整数中随机地选择的某一个整数。成为Δci的第一候补的整数是将以N2为模的整数的乘法中的加密特征矢量C的第i个成分ci的倒数ci -1、与加密特征矢量C’的第i个成分c’i之积除以N2而得到的余数。成为Δci的第二候补的整数是将以N2为模的整数的乘法中的加密特征矢量C’的第i个成分c’i的倒数c’i -1、与加密特征矢量C的第i个成分ci之积除以N2而得到的余数。即,第一候补和第二候补处于以N2为模的整数的乘法中的倒数的关系。加密差分矢量ΔC的各成分Δci是对随机地变更特征矢量b的成分bi与特征矢量b’的成分b’i的差bi-b’i的正负而得到的结果进行加密而得到的。
重新排列部385使用处理装置911,根据差分计算部361计算出的加密差分矢量ΔC,生成作为第二挑战C^的一部分的T个整数c^i(i是1以上且T以下的整数)。整数c^i是0以上且小于N2的整数。T个整数c^i是随机地重新排列加密差分矢量ΔC的T个成分Δci的顺序而得到的。
加密密钥生成部366使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的整数N、和随机数生成部303生成的2个随机数s1,s2,生成作为第二挑战C^的一部分的1个整数c^。整数c^是0以上且小于N2的整数。整数c^是将对随机数s1与整数N之积加上1而得到的整数(1+s1N)、和针对随机数s2用整数N进行乘幂而得到的整数s2 N之积除以整数N的平方而得到的余数。整数c^是对随机数生成部303计算出的随机数s1进行加密而得到的。
图57是示出该实施方式中的第二挑战生成工序S712的处理流程的一个例子的流程图。
在第二挑战生成工序S712中,认证装置102根据2个加密特征矢量C、C’,生成第二挑战C^。第二挑战生成工序S712具有例如初始化工序S740、反复工序S741、随机数生成工序S757、2个差分计算工序S742a、S742b、随机数生成工序S758、第二挑战设定工序S759、随机数生成工序S749、以及加密密钥生成工序S752。
最初,在初始化工序S740中,重新排列部385使用处理装置911,将整数i初始化为0。另外,重新排列部385使用处理装置911,将集合S初始化为以1以上T以下的T个整数为元的集合。
在反复工序S741中,重新排列部385使用处理装置911,对整数i加上1。在整数i大于T的情况下,重新排列部385结束第二挑战生成工序S712。在整数i是T以下的情况下,重新排列部385使处理进入随机数生成工序S757。
在随机数生成工序S757中,随机数生成部303使用处理装置911,生成随机数ti。随机数ti是从0或者1均匀随机地选择的整数。
在随机数ti是0的情况下,差分计算部361使处理进入差分计算工序S742a。
在随机数ti是1的情况下,差分计算部361使处理进入差分计算工序S742b。
在差分计算工序S742a中,差分计算部361使用处理装置911,根据加密特征矢量C的第i个成分ci,计算以N2为模的整数的乘法中的整数ci的倒数ci -1。差分计算部361使用处理装置911,根据所计算的倒数ci -1、和加密特征矢量C’的第i个成分c’i,计算将整数c’i与倒数ci -1之积除以整数N的平方而得到的余数,作为加密差分矢量ΔC的第i个成分Δci。差分计算部361使处理进入随机数生成工序S758。
在差分计算工序S742b中,差分计算部361使用处理装置911,根据加密特征矢量C’的第i个成分c’i,计算以N2为模的整数的乘法中的整数c’i的倒数c’i -1。差分计算部361使用处理装置911,根据所计算的倒数c’i -1、和加密特征矢量C的第i个成分ci,计算将整数ci与倒数c’i -1之积除以整数N的平方而得到的余数,作为加密差分矢量ΔC的第i个成分Δci。差分计算部361使处理进入随机数生成工序S758。
在随机数生成工序S758中,随机数生成部303使用处理装置911,生成随机数ji。随机数ji是从集合S的元中均匀随机地选择的整数。重新排列部385使用处理装置911,从集合S的元,去除随机数ji。
在第二挑战设定工序S759中,重新排列部385使用处理装置911,将加密差分矢量ΔC的第i个成分Δci设为第二挑战C^的第ji个整数c^ji。
重新排列部385使处理返回到反复工序S741。
在随机数生成工序S749中,随机数生成部303使用处理装置911,生成2个随机数s1,s2。
在加密密钥生成工序S752中,加密密钥生成部366使用处理装置911,根据在随机数生成工序S749中随机数生成部303生成的随机数s1,s2,计算第二挑战C^的第(T+1)个整数c^=s2 N(1+s1N)modN2。
关于这样由加密随机类似度计算部314计算出的第二挑战C^,第二挑战发送部321发送到解密装置103,解密装置103接收并处理。
图58是示出该实施方式中的解密部404的结构的一个例子的详细框图。
解密装置103的解密部404具有例如倒数计算部481、解密整数计算部482、平方计算部473、以及整数结合部485。
倒数计算部481使用处理装置911,根据作为公开密钥存储部403存储的公开密钥pk的整数N、和作为秘密密钥存储部413存储的秘密密钥sk的整数λ,计算以N为模的整数的乘法中的整数λ的倒数λ-1。
解密整数计算部482使用处理装置911,根据作为秘密密钥存储部413存储的秘密密钥sk的整数λ、第二挑战接收部402接收到的第二挑战C^、以及倒数计算部481计算出的倒数λ-1,计算(T+1)个整数zi,z’(i是1以上且T以下的整数)。整数zi,z’是0以上且小于N的整数。第i个整数zi(i是1以上且T+1以下的整数)是对第二挑战C^的第i个整数c^i进行解密而得到的整数。整数z’是对第二挑战C^的第(T+1)个整数c^进行解密而得到的整数。因此,整数zi表示特征矢量b的成分与特征矢量b’的对应的成分之差。另外,整数z’等于认证装置102的随机数生成部303生成的随机数s1。
第二挑战C^的第1个至第T个的整数c^i是随机地重新排列加密差分矢量ΔC的成分的顺序而得到的,所以解密装置103无法得知整数zi是特征矢量的哪个成分的差。另外,关于加密差分矢量ΔC的成分Δci,随机地变更正负,所以解密装置103也无法得知2个特征矢量b、b’中的该成分大的矢量是哪一个。
平方计算部473使用处理装置911,根据作为公开密钥存储部403存储的公开密钥pk的整数N、和解密整数计算部482计算出的T个整数zi,计算平方值z’i(i是1以上且T以下的整数)。平方值z’i是0以上且小于N的整数。第i个平方值z’i(i是1以上且T以下的整数)是将第i个整数zi的平方除以整数N而得到的余数。
整数结合部485使用处理装置911,根据作为公开密钥存储部403存储的公开密钥pk的整数N、解密整数计算部482计算出的整数z’、以及平方计算部473计算出的T个整数z’i,计算第二响应Z。第二响应Z是0以上且小于N的整数。整数结合部485计算的第二响应Z是将对T个整数z’i和整数z’进行合计而得到的总和除以整数N而得到的余数。第二响应Z等于特征矢量b与特征矢量b’之间的欧几里德距离的平方Σi[(bi-b’i)2]、和随机数s1之和。即,第二响应Z是,针对特征矢量b与特征矢量b’之间的欧几里德距离的平方,用作为暂时密钥的随机数u1进行加密而得到的。
图59是示出该实施方式中的第二响应生成工序S716的处理流程的一个例子的流程图。
在第二响应生成工序S716中,解密装置103根据第二挑战C^,生成第二响应Z。第二响应生成工序S716具有例如倒数计算工序S561a、解密整数计算工序S566a、初始化工序S560、反复工序S562、解密整数计算工序S563a、平方计算工序S564、以及整数结合工序S565a。
最初,在倒数计算工序S561a中,倒数计算部481使用处理装置911,计算作为秘密密钥存储部413存储的秘密密钥sk的整数λ的倒数λ-1。另外,倒数计算部481也可以是使用处理装置911,预先(例如在配置处理S500中)计算倒数λ-1,使用存储装置914,存储所计算的倒数λ-1的结构。
在解密整数计算工序S566a中,解密整数计算部482使用处理装置911,根据在倒数计算工序S561a中倒数计算部481计算出的倒数λ-1等,对第二挑战接收部402接收到的第二挑战C^的最后的整数c^进行解密,计算整数z’。例如,解密整数计算部482计算:把将从针对整数c^用整数λ进行乘幂而得到的整数减去1而得到的整数(c^λ-1)除以整数N的平方而得到的余数除以N而得到的商y。解密整数计算部482计算将所计算的商y与倒数λ-1之积yλ-1除以N而得到的余数,作为整数z’。
在初始化工序S560中,整数结合部485使用处理装置911,将整数i初始化为0,将第二响应Z初始化为在解密整数计算工序S566a中解密整数计算部482计算出的整数z’。
在反复工序S562中,整数结合部485使用处理装置911,对整数i加上1。在整数i大于T的情况下,第二响应Z已完成,所以整数结合部485结束第二响应生成工序S716。在整数i是T以下的情况下,整数结合部485使处理进入解密整数计算工序S563a。
在解密整数计算工序S563a中,解密整数计算部482使用处理装置911,根据在倒数计算工序S561a中倒数计算部481计算出的倒数λ-1等,对第二挑战接收部402接收到的第二挑战C^的第i个整数c^i进行解密,计算第i个整数zi。例如,解密整数计算部482计算将从针对整数c^i用整数λ进行乘幂而得到的整数减去1而得到的整数(c^i λ-1)除以整数N的平方而得到的商yi。解密整数计算部482计算将所计算的整数yi与倒数λ-1之积yiλ-1除以N而得到的余数,作为整数zi。
在平方计算工序S564中,平方计算部473使用处理装置911,根据在解密整数计算工序S563a中解密整数计算部482计算出的第i个整数zi,计算第i个平方值z’i。
在整数结合工序S565a中,整数结合部485使用处理装置911,通过以整数N为模的整数的加法,将在平方计算工序S564中平方计算部473计算出的第i个平方值z’i与第二响应Z结合。
整数结合部485使处理返回到反复工序S562,处理第二挑战C^的接下来的整数。
关于这样由解密部404生成的第二响应Z,第二响应发送部412发送到认证装置102,认证装置102接收并处理。
图60是示出该实施方式中的明文类似度计算工序S719的处理流程的一个例子的流程图。
在明文类似度计算工序S719中,认证装置102根据第二响应Z,计算类似度d。明文类似度计算工序S719具有例如整数结合工序S692a。
在整数结合工序S692a中,认证装置102的明文类似度抽出部315使用处理装置911,根据随机数存储部322存储的随机数s1、和第二响应接收部341接收到的第二响应Z,计算类似度d。类似度d是0以上且小于N的整数。明文类似度抽出部315计算的类似度d是将从第二响应Z减去随机数s1而得到的差除以N而得到的余数。
根据明文类似度抽出部315计算出的类似度d,判定部306判定2个特征矢量b、b’是否类似,从而判定具有用特征矢量b表示的生物体信息的人物、和具有用特征矢量b’表示的生物体信息的人物是否为同一人物。判定部306在类似度d小于阈值d0的情况下,判定为2个特征矢量b、b’类似。
图61是示出该实施方式的生物体认证系统100中的类似度计算的计算步骤的流程图。
作为第一阶段,在第二挑战生成工序S712中,认证装置102根据2个加密特征矢量C、C’计算第二挑战C^,从而计算T个δj=±(bi-b’i)(i以及j是1以上且T以下的整数)、和1个δ*=s1。该计算是在通过解密装置103的密钥加密了的状态下进行的,所以认证装置102无法得到关于特征矢量b、b’的信息。另外,以不对解密装置103交付关于特征矢量b、b’的信息的方式,关于δj随机地变更正负,进而,顺序也随机地重新排列。
作为第二阶段,在第二响应生成工序S716中,解密装置103根据第二挑战C^计算第二响应Z,从而计算ζ=Σi[δi 2]+δ*(i是1以上且T以下的整数)。第一项Σi[δi 2]是类似度d,第二项δ*意味着加密。即,解密装置103计算类似度d,使用δ*=s1进行加密。虽然该计算在通过解密装置103的秘密密钥解密了的状态下进行,但通过第一阶段中的随机化,解密装置103无法得到关于特征矢量b、b’的信息。
作为第三阶段,在明文类似度计算工序S719中,认证装置102根据第二响应Z,计算类似度d=ζ-s1。由此,认证装置102虽然能够得到类似度d,但无法得到关于特征矢量b、b’的信息。
另外,密码方式不限于Paillier密码方式,也可以是使用冈本-高岛密码方式、BGN密码方式、Gentry密码方式等具有加法上的同态性的其他密码方式的结构。另外,也可以是在证明装置101与认证装置102之间的通信中,使用普通的公开密钥密码方式等第二密码方式的结构。
另外,生物体认证系统100也可以是与实施方式2同样地,证明装置101兼具作为解密装置103、登记装置104的功能的结构。
实施方式7.
使用图62~图68,说明实施方式7。
另外,关于与实施方式1~实施方式6通用的部分,附加同一符号而省略说明。
在该实施方式中,说明在第一挑战R中嵌入关于来源于加密特征矢量C的比较数据b的信息,使证明装置101进行类似度计算的最初的阶段的计算的结构。
另外,在该实施方式中,说明使用在实施方式6中说明的Paillier密码方式,与实施方式3同样地,作为类似度d,计算内积Σi[bib’i]的情况。
图62是示出该实施方式中的加密随机数生成部304的结构的一个例子的详细框图。
认证装置102的加密随机数生成部304具有例如乘幂计算部334、零生成部332、以及整数结合部336。
随机数生成部303使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的整数N,生成2T个随机数R1,i,R2,i(i是1以上且T以下的整数)。随机数生成部303生成的随机数R1,i,R2, i是从0以上且小于N的整数中均匀随机地选择的整数。随机数存储部322使用存储装置914,存储随机数生成部303生成的随机数中的T个随机数R1,i(i是1以上且T以下的整数)。
乘幂计算部334使用处理装置911,根据加密数据存储部312存储的加密特征矢量C、和随机数生成部303生成的T个随机数R1,i,计算乘幂矢量Я’。乘幂计算部334计算的乘幂矢量Я’是以0以上且小于N2的整数为成分的T维的矢量(я’1,я’2,…,я’T)。乘幂计算部334计算的乘幂矢量Я’的第i个成分я’i(i是1以上且T以下的整数)是将针对加密特征矢量C的第i个成分ci用第i个随机数R1,i进行乘幂而得到的整数除以整数N的平方而得到的余数。乘幂计算部334计算的乘幂矢量Я’的各成分я’i是对特征矢量b的成分bi、与作为明文的随机数R1,i之积进行加密而得到的。
零生成部332使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的整数N、和随机数生成部303生成的T个随机数R2,i,生成加密零矢量O’。加密零矢量O’是以0以上且小于N2的整数为成分的T维的矢量(o’1,o’2,…,o’T)。加密零矢量O’的第i个成分o’i(i是1以上且T以下的整数)是将针对第i个随机数R2, i用整数N进行乘幂而得到的整数R2,i N除以整数N的平方而得到的余数。加密零矢量O’的各成分o’i是对0进行加密而得到的。
整数结合部336使用处理装置911,根据乘幂计算部334计算出的乘幂矢量Я’、和零生成部332生成的加密零矢量O’,计算第一挑战R。第一挑战R是以0以上且小于N2的整数为成分的T维的矢量(R1,R2,…,RT)。第一挑战R的第i个成分Ri(i是1以上且T以下的整数)是将乘幂矢量Я’的第i个成分я’i、与加密零矢量O’的第i个成分o’i之积除以整数N的平方而得到的余数。第一挑战R的各成分Ri是对特征矢量b的成分bi、与作为明文的随机数R1,i之积进行加密而得到的。
图63是示出该实施方式中的第一挑战生成工序S701的处理流程的一个例子的流程图。
在第一挑战生成工序S701中,认证装置102根据加密特征矢量C,生成第一挑战R。第一挑战生成工序S701具有例如初始化工序S729、反复工序S721、随机数生成工序S722、乘幂计算工序S724、零生成工序S725、以及整数结合工序S726。
最初,在初始化工序S729中,整数结合部336使用处理装置911,将整数i初始化为0。
在反复工序S721中,整数结合部336使用处理装置911,对整数i加上1。在整数i大于T的情况下,整数结合部336结束第一挑战生成工序S701。在整数i是T以下的情况下,整数结合部336使处理进入随机数生成工序S722,生成第一挑战R的第i个成分Ri。
在随机数生成工序S722中,随机数生成部303使用处理装置911,生成2个随机数R1,i,R2,i。随机数存储部322使用存储装置914,存储随机数生成部303生成的随机数R1,i。
在乘幂计算工序S724中,乘幂计算部334使用处理装置911,根据加密数据存储部312存储的加密特征矢量C的第i个成分ci、和在随机数生成工序S722中随机数生成部303生成的随机数R1,i,计算乘幂矢量Я’的第i个成分я’i。
在零生成工序S725中,零生成部332使用处理装置911,根据在随机数生成工序S722中随机数生成部303生成的随机数R2,i,计算加密零矢量O’的第i个成分o’i。
在整数结合工序S726中,整数结合部336使用处理装置911,根据在乘幂计算工序S724a中乘幂计算部334计算出的乘幂矢量Я’的第i个成分я’i、和在零生成工序S725中零生成部332计算出的加密零矢量O’的第i个成分o’i,计算第一挑战R的第i个成分Ri。
整数结合部336使处理返回到反复工序S721,生成第一挑战R的接下来的成分。
关于这样由加密随机数生成部304生成的第一挑战R,第一挑战发送部311发送到证明装置101,证明装置101接收并处理。
证明装置101的加密数据嵌入部217是与实施方式6相同的结构,但第一挑战R的意思不同,所以加密数据嵌入部217生成的第一响应R’的意思也与实施方式6不同。
即,第一响应R’的第i个成分R’i(i是1以上且T以下的整数)是对特征矢量b的第i个成分bi、特征矢量b’的第i个成分b’i、以及随机数R1,i之积进行加密而得到的。
认证装置102的加密数据抽出部305也是与实施方式6相同的结构。
加密数据抽出部305生成的加密特征矢量C’的第i个成分c’i(i是1以上且T以下的整数)并不是特征矢量b’的第i个成分b’i的加密,而是对2个特征矢量b、b’的第i个成分bi,b’i之积bib’i进行加密而得到的。
图64是示出该实施方式中的加密随机类似度计算部314的结构的一个例子的详细框图。
认证装置102的加密随机类似度计算部314生成的第二挑战C^由0以上且小于N2的(T+1)个整数c^1,c^2,…,c^T,c^构成。加密随机类似度计算部314具有例如重新排列部385、和加密密钥生成部366。
随机数生成部303使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的整数N,生成2个随机数s1,s2。随机数生成部303生成的随机数s1,s2是从0以上且小于N的整数中均匀随机地选择的整数。
随机数存储部322使用存储装置914,存储随机数生成部303生成的随机数中的1个随机数s1。
重新排列部385使用处理装置911,根据加密数据抽出部305生成的加密特征矢量C’,生成作为第二挑战C^的一部分的T个整数c^i(i是1以上且T以下的整数)。整数c^i是0以上且小于N2的整数。T个整数c^i是随机地重新排列加密特征矢量C’的T个成分Δci的顺序而得到的。
加密密钥生成部366使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的整数N、和随机数生成部303生成的2个随机数s1,s2,生成作为第二挑战C^的一部分的1个整数c^。整数c^是0以上且小于N2的整数。整数c^是将对随机数s1与整数N之积加上1而得到的整数(1+s1N)、和针对随机数s2用整数N进行乘幂而得到的整数s2 N之积除以整数N的平方而得到的余数。整数c^是对随机数生成部303计算出的随机数s1进行加密而得到的。
图65是示出该实施方式中的第二挑战生成工序S712的处理流程的一个例子的流程图。
第二挑战生成工序S712的处理流程与实施方式6几乎相同,但仅2个方面不同。
第一方面在于,没有随机数生成工序S757、和2个差分计算工序S742a、S742b,在反复工序S741中整数i是T以下的情况下,使处理进入随机数生成工序S758。
第二方面在于,第二挑战设定工序S759的处理。在第二挑战设定工序S759中,重新排列部385使用处理装置911,使加密特征矢量C’的第i个成分Δci成为第二挑战C^的第ji个整数c^ji。
图66是示出该实施方式中的解密部404的结构的一个例子的详细框图。
解密装置103的解密部404具有例如倒数计算部481、解密整数计算部482、以及整数结合部485。
倒数计算部481使用处理装置911,根据作为公开密钥存储部403存储的公开密钥pk的整数N、和作为秘密密钥存储部413存储的秘密密钥sk的整数λ,计算以N为模的整数的乘法中的整数λ的倒数λ-1。
解密整数计算部482使用处理装置911,根据作为秘密密钥存储部413存储的秘密密钥sk的整数λ、第二挑战接收部402接收到的第二挑战C^、以及倒数计算部481计算出的倒数λ-1,计算(T+1)个整数zi,z’(i是1以上且T以下的整数)。整数zi,z’是0以上且小于N的整数。第i个整数zi(i是1以上且T+1以下的整数)是对第二挑战C^的第i个整数c^i进行解密而得到的整数。整数z’是对第二挑战C^的第(T+1)个整数c^进行解密而得到的整数。因此,整数zi表示特征矢量b的成分与特征矢量b’的对应的成分之积。另外,整数z’等于认证装置102的随机数生成部303生成的随机数s1。
整数结合部485使用处理装置911,根据作为公开密钥存储部403存储的公开密钥pk的整数N、和解密整数计算部482计算出的(T+1)个整数zi,z’,计算第二响应Z。第二响应Z是0以上且小于N的整数。整数结合部485计算的第二响应Z是将对T个整数zi、和整数z’进行合计而得到的总和除以整数N而得到的余数。第二响应Z等于特征矢量b与特征矢量b’之间的内积Σi[bib’i]、和随机数s1的和。即,第二响应Z是,针对特征矢量b与特征矢量b’之间的内积,用作为暂时密钥的随机数s1进行加密而得到的。
图67是示出该实施方式中的第二响应生成工序S716的处理流程的一个例子的流程图。
第二响应生成工序S716的处理流程与实施方式6几乎相同,但仅2个方面不同。
第一方面在于,没有平方计算工序S564,接着解密整数计算工序S563a,使处理进入整数结合工序S565a。
第二方面在于,整数结合工序S565a的处理。在整数结合工序S565a中,整数结合部485使用处理装置911,通过以整数N为模的加法,将在解密整数计算工序S563a中解密整数计算部482计算出的第i个整数zi与第二响应Z结合。
关于这样由解密部404生成的第二响应Z,第二响应发送部412对认证装置102发送,认证装置102接收并处理。
认证装置102的明文类似度抽出部315是与实施方式6相同的结构。
在明文类似度抽出部315中,作为类似度d,计算2个特征矢量b、b’的内积Σi[bib’i]。
判定部306在离散对数计算部373计算出的类似度d大于规定的阈值d0的情况下,判定为2个特征矢量b、b’类似。
由此,能够将特征点的一致数作为指标,判定2个特征矢量b、b’是否类似。
图68是示出该实施方式的生物体认证系统100中的类似度计算的计算步骤的流程图。
另外,ρi表示在第一响应R’中加密了的信息。
第一阶段并非第二挑战生成工序S712,而是第一响应生成工序S707。在第一响应生成工序S707中,证明装置101根据第一挑战R计算第一响应R’,从而计算T个ρi=bib’i。该计算是在通过解密装置103的密钥加密了的状态下进行的,所以证明装置101无法得到关于特征矢量b的信息。
作为第二阶段,在第二挑战生成工序S712中,认证装置102根据加密特征矢量C’计算第二挑战C^,从而计算T个δj(j是1以上且T以下的整数)、和1个δ*=s1。关于δj,调换了ρi的顺序,以免对解密装置103交付关于特征矢量b、b’的信息,所以认证装置102无法得到关于特征矢量b、b’的信息。
作为第三阶段,在第二响应生成工序S716中,解密装置103根据第二挑战C^计算第二响应Z,从而计算ζ=Σi[δi]+δ*(i是1以上且T以下的整数)。第一项Σi[δi]是类似度d,第二项δ*意味着加密。即,解密装置103计算类似度d,使用δ*=s1来进行加密。虽然该计算在通过解密装置103的秘密密钥解密了的状态下进行,但通过第二阶段中的随机化,解密装置103无法得到关于特征矢量b、b’的信息。
作为第四阶段,在明文类似度计算工序S719中,认证装置102根据第二响应Z,计算类似度d=ζ-s1。由此,认证装置102虽然能够得到类似度d,但无法得到关于特征矢量b、b’的信息。
另外,密码方式不限于Paillier密码方式,也可以是使用冈本-高岛密码方式、BGN密码方式、Gentry密码方式等具有加法上的同态性的其他密码方式的结构。另外,也可以是在证明装置101与认证装置102之间的通信中,使用普通的公开密钥密码方式等第二密码方式的结构。
另外,生物体认证系统100也可以是与实施方式2同样地,证明装置101兼具作为解密装置103、登记装置104的功能的结构。
另外,在特征矢量b、b’的各成分的值是0和1中的某一个的情况下,2个特征矢量b、b’的成分的积bib’i成为0和1中的某一个值,所以解密装置103的结构也可以与在实施方式6中说明的结构相同。由此,证明装置101、解密装置103、登记装置104的结构与实施方式6相同,仅认证装置102的结构不同。因此,通过使认证装置102成为能够切换在实施方式6中说明的结构、和在该实施方式中说明的结构的结构,无需对生物体认证系统100的其他装置附加变更,而能够计算欧几里德距离和内积这2种类似度。
实施方式8.
使用图69~图72,说明实施方式8。
另外,关于与实施方式1~实施方式7通用的部分,附加同一符号而省略说明。
在该实施方式中,说明在实施方式7中说明的结构的变形例。
加密特征矢量C’是以0以上且小于N2的整数为成分的T维的矢量(c’1,c’2,…,c’T)。加密特征矢量C’的第i个成分ci(i是1以上且T以下的整数)是对特征矢量b的第i个成分bi与特征矢量b’的第i个成分b’i之积bib’i进行加密而得到的。
图69是示出该实施方式中的加密随机类似度计算部314的结构的一个例子的详细框图。
认证装置102的加密随机类似度计算部314具有例如干扰矢量生成部362和整数结合部386。
随机数生成部303使用处理装置911,生成2T个随机数t1,i、t2,i(i是1以上且T以下的整数)。随机数t1,i、t2,i是从0以上且小于N的整数中均匀随机地选择的整数。随机数存储部322使用存储装置914,存储随机数生成部303生成的T个随机数t1,i的合计值s1=Σi[t1,i]。另外,随机数存储部322也可以是原样地存储随机数生成部303生成的T个随机数t1,i的结构,但在之后需要的只是合计值,所以在存储合计值的结构时存储量少也可以。
干扰矢量生成部362使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的整数N、和随机数生成部303生成的2T个随机数t1,i、t2,i,计算干扰矢量т。干扰矢量т是以0以上且小于N2的整数为成分的T维矢量(t1,t2,…,tT)。干扰矢量т的第i个成分ti(i是1以上且T以下的整数)是将对随机数t1,i与整数N之积加上1而得到的和(1+t1,iN)、和将随机数t2,i用整数N进行乘幂而得到的整数t2,i N之积除以整数N的平方而得到的余数。干扰矢量т的各成分ti是对随机数t1,i进行加密而得到的。
整数结合部386使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的整数N、加密数据抽出部305生成的加密特征矢量C’、以及干扰矢量生成部362计算出的干扰矢量т,生成第二挑战C^。第二挑战C^由T个整数c^1、c^2、…、c^T构成。T个整数c^i是0以上且小于N2的整数。第二挑战C^的第i个整数c^i(i是1以上且T以下的整数)是将加密特征矢量C’的第i个成分c’i、与干扰矢量т的第i个成分ti之积除以整数N的平方而得到的余数。第二挑战C^的各整数c^i是对利用加密特征矢量C’的成分加密了的bib’i、与随机数t1,i之和bib’i+t1,i进行加密而得到的。
另外,第二挑战C^的T个整数c^i的顺序也可以与特征矢量b、b’的成分的顺序不同。
图70是示出该实施方式中的第二挑战生成工序S712的处理流程的一个例子的流程图。
在第二挑战生成工序S712中,认证装置102根据加密特征矢量C’,生成第二挑战C^。第二挑战生成工序S712具有例如初始化工序S740、反复工序S741、随机数生成工序S743、干扰矢量生成工序S744、以及整数结合工序S760。
最初,在初始化工序S740中,整数结合部386使用处理装置911,将整数i初始化为0。随机数存储部322使用处理装置911,将整数s1初始化为0,使用存储装置914存储初始化了的整数s1。
在反复工序S741中,整数结合部386使用处理装置911,对整数i加上1。在整数i大于T的情况下,整数结合部386结束第二挑战生成工序S712。在整数i是T以下的情况下,整数结合部386使处理进入随机数生成工序S743,生成第二挑战C^的第i个整数c^i。
在随机数生成工序S743中,随机数生成部303使用处理装置911,生成2个随机数t1,i、t2,i。随机数存储部322使用处理装置911,将随机数生成部303生成的随机数t1,i加到整数s1,使用存储装置914来存储所计算出的整数s1。
在干扰矢量生成工序S744中,干扰矢量生成部362使用处理装置911,根据在随机数生成工序S743中随机数生成部303生成的2个随机数t1,i、t2,i,计算干扰矢量т的第i个成分ti。
在整数结合工序S760中,整数结合部386使用处理装置911,根据加密数据抽出部305生成的加密特征矢量C’的第i个成分c’i、和在干扰矢量生成工序S744中干扰矢量生成部362计算出的干扰矢量т的第i个成分ti,计算第二挑战C^的第i个整数c^i。
整数结合部386使处理返回到反复工序S741,生成第二挑战C^的接下来的整数。
关于这样由加密随机类似度计算部314计算出的第二挑战C^,第二挑战发送部321对解密装置103发送,解密装置103接收并处理。
解密装置103的解密部404的结构与在实施方式7中说明的结构相同,所以参照图66说明。
解密装置103的解密部404具有例如倒数计算部481、解密整数计算部482、以及整数结合部485。
倒数计算部481使用处理装置911,根据作为公开密钥存储部403存储的公开密钥pk的整数N、和作为秘密密钥存储部413存储的秘密密钥sk的整数λ,计算以N为模的整数的乘法中的整数λ的倒数λ-1。
解密整数计算部482使用处理装置911,根据作为秘密密钥存储部413存储的秘密密钥sk的整数λ、第二挑战接收部402接收到的第二挑战C^、以及倒数计算部481计算出的倒数λ-1,计算T个整数zi(i是1以上且T以下的整数)。整数zi是0以上且小于N的整数。第i个整数zi(i是1以上且T+1以下的整数)是对第二挑战C^的第i个整数c^i进行解密而得到的整数。整数zi等于2个特征矢量b的对应的成分bi、b’i之积、和随机数t1,i的和bib’i+t1,i。
整数结合部485使用处理装置911,根据作为公开密钥存储部403存储的公开密钥pk的整数N、和解密整数计算部482计算出的T个整数zi,计算第二响应Z。第二响应Z是0以上且小于N的整数。整数结合部485计算的第二响应Z是将对T个整数zi进行合计得到的总和除以整数N而得到的余数。第二响应Z等于特征矢量b与特征矢量b’之间的内积Σi[bib’i]、和随机数t1,i的合计值s1=Σi[t1,i]的和。即,第二响应Z是针对特征矢量b与特征矢量b’之间的内积利用作为暂时密钥的随机数s1进行加密而得到的。
图71是示出该实施方式中的第二响应生成工序S716的处理流程的一个例子的流程图。
第二响应生成工序S716的处理流程与实施方式7几乎相同,但有2个不同点。
作为第一点,没有解密整数计算工序S566a、整数结合工序S568a,接着倒数计算工序S561a而执行初始化工序S560。
作为第二点,在初始化工序S560中,整数结合部485使用处理装置911,将第二响应Z初始化为0。
关于这样由解密部404生成的第二响应Z,第二响应发送部412对认证装置102发送,认证装置102接收并处理。
认证装置102的明文类似度抽出部315是与实施方式6相同的结构。
在明文类似度抽出部315中,作为类似度d,计算2个特征矢量b、b’的内积Σi[bib’i]。
判定部306在离散对数计算部373计算出的类似度d大于规定的阈值d0的情况下,判定为2个特征矢量b、b’类似。
由此,能够将特征点的一致数作为指标,判定2个特征矢量b、b’是否类似。
图72是示出该实施方式的生物体认证系统100中的类似度计算的计算步骤的流程图。
作为第一阶段,在第一响应生成工序S707中,证明装置101根据第一挑战R计算第一响应R’,从而计算T个ρi=bib’i。该计算是在利用解密装置103的密钥进行了加密的状态下进行的,所以证明装置101无法得到关于特征矢量b的信息。
作为第二阶段,在第二挑战生成工序S712中,认证装置102根据加密特征矢量C’计算第二挑战C^,从而计算T个δi=ρi+t1,i(i是1以上且T以下的整数)。该计算是在通过解密装置103的密钥进行了加密的状态下进行的,所以认证装置102无法得到关于特征矢量b、b’、类似度的信息。
作为第三阶段,在第二响应生成工序S716中,解密装置103根据第二挑战C^计算第二响应Z,从而计算ζ=Σi[δi](i是1以上且T以下的整数)。虽然该计算是在通过解密装置103的秘密密钥进行了解密的状态下进行的,但解密装置103不知道暂时密钥s1=Σi[t1,i],所以无法得到关于特征矢量b、b’、类似度的信息。即,该计算是在通过暂时密钥s1进行了加密的状态下进行的。
作为第四阶段,在明文类似度计算工序S719中,认证装置102根据第二响应Z,计算类似度d=ζ-s1。由此,认证装置102虽然能够得到类似度d,但无法得到关于特征矢量b、b’的信息。
另外,密码方式不限于Paillier密码方式,也可以是使用冈本-高岛密码方式、BGN密码方式、Gentry密码方式等具有加法上的同态性的其他密码方式的结构。另外,也可以是在证明装置101与认证装置102之间的通信中使用普通的公开密钥密码方式等第二密码方式的结构。
另外,生物体认证系统100也可以是与实施方式2同样地证明装置101兼具作为解密装置103、登记装置104的功能的结构。
实施方式9.
使用图73~图77,说明实施方式9。
另外,关于与实施方式1~实施方式8通用的部分,附加同一符号而省略说明。
在该实施方式中,说明在实施方式7中说明的结构的其他变形例。
加密特征矢量C’是以0以上且小于N2的整数为成分的T维的矢量(c’1,c’2,…,c’T)。加密特征矢量C’的第i个成分ci(i是1以上且T以下的整数)是对特征矢量b的第i个成分bi、与特征矢量b’的第i个成分b’i之积bib’i进行加密而得到的。
图73是示出该实施方式中的加密随机类似度计算部314的结构的一个例子的详细框图。
认证装置102的加密随机类似度计算部314具有例如加密密钥生成部366和整数结合部386。
随机数生成部303使用处理装置911,生成2个随机数s1、s2。随机数s1、s2是从0以上且小于N的整数中均匀随机地选择的整数。随机数存储部322使用存储装置914,存储随机数生成部303生成的随机数s1。
加密密钥生成部366使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的整数N、和随机数生成部303生成的随机数s1、s2,计算加密密钥ц。加密密钥ц是0以上且小于N2的整数。加密密钥ц是将对随机数s1与整数N之积加上1得到的和(1+s1N)、和对随机数s2用整数N进行乘幂得到的整数s2 N之积,除以整数N的平方而得到的余数。加密密钥ц是对作为明文的随机数s1进行加密而得到的。
整数结合部386使用处理装置911,根据作为公开密钥存储部302存储的公开密钥pk的整数N、加密数据抽出部305生成的加密特征矢量C’、以及加密密钥生成部366计算出的加密密钥ц,生成第二挑战C^。第二挑战C^是0以上且小于N2的整数。第二挑战C^是将加密特征矢量C’的T个成分c’i、与加密密钥ц的总积Πi[c’i]ц除以整数N的平方而得到的余数。第二挑战C^是对利用加密特征矢量C’的成分加密了的bib’i的总和(即,2个特征矢量b、b’的内积)、和作为明文的随机数s1的和Σi[bib’i]+s1进行加密而得到的。
图74是示出该实施方式中的第二挑战生成工序S712的处理流程的一个例子的流程图。
在第二挑战生成工序S712中,认证装置102根据加密特征矢量C’,生成第二挑战C^。第二挑战生成工序S712具有例如随机数生成工序S749、加密密钥生成工序S752、初始化工序S740、反复工序S741、以及整数结合工序S760。
最初,在随机数生成工序S749中,随机数生成部303使用处理装置911,生成2个随机数s1、s2。随机数存储部322使用存储装置914,存储整数s1。
在加密密钥生成工序S752中,加密密钥生成部366使用处理装置911,根据在随机数生成工序S749中随机数生成部303生成的2个随机数s1、s2,计算加密密钥ц。
在初始化工序S740中,整数结合部386使用处理装置911,将整数i初始化为0,将第二挑战C^初始化为在加密密钥生成工序S752中加密密钥生成部366计算出的加密密钥ц。
在反复工序S741中,整数结合部386使用处理装置911,对整数i加上1。在整数i大于T的情况下,第二挑战C^已完成,所以整数结合部386结束第二挑战生成工序S712。在整数i是T以下的情况下,整数结合部386使处理进入整数结合工序S760。
在整数结合工序S760中,整数结合部386使用处理装置911,通过以整数N的平方为模的整数的乘法,将加密数据抽出部305生成的加密特征矢量C’的第i个成分c’i与第二挑战C^结合。
整数结合部386使处理返回到反复工序S741。
关于这样由加密随机类似度计算部314计算出的第二挑战C^,第二挑战发送部321对解密装置103发送,解密装置103接收并处理。
图75是示出该实施方式中的解密部404的结构的一个例子的详细框图。
解密装置103的解密部404具有例如倒数计算部481和解密整数计算部482。
倒数计算部481使用处理装置911,根据作为公开密钥存储部403存储的公开密钥pk的整数N、和作为秘密密钥存储部413存储的秘密密钥sk的整数λ,计算以N为模的整数的乘法中的整数λ的倒数λ-1。
解密整数计算部482使用处理装置911,根据作为秘密密钥存储部413存储的秘密密钥sk的整数λ、第二挑战接收部402接收到的第二挑战C^、以及倒数计算部481计算出的倒数λ-1,计算第二响应Z。第二响应Z是0以上且小于N的整数。第二响应Z是对第二挑战C^进行解密而得到的整数。第二响应Z等于特征矢量b与特征矢量b’之间的内积Σi[bib’i]、和随机数s1之和。即,第二响应Z是针对特征矢量b与特征矢量b’之间的内积利用作为暂时密钥的随机数s1进行加密而得到的。
图76是示出该实施方式中的第二响应生成工序S716的处理流程的一个例子的流程图。
在第二响应生成工序S716中,解密装置103根据第二挑战C^,生成第二响应Z。第二响应生成工序S716具有例如倒数计算工序S561a和解密整数计算工序S563a。
最初,在倒数计算工序S561a中,倒数计算部481使用处理装置911,计算作为秘密密钥存储部413存储的秘密密钥sk的整数λ的倒数λ-1。
在解密整数计算工序S563a中,解密整数计算部482使用处理装置911,根据在倒数计算工序S561a中倒数计算部481计算出的逆矩阵λ-1等,对第二挑战接收部402接收到的第二挑战C^进行解密,计算第二响应Z。例如,解密整数计算部482计算出将从针对第二挑战C^利用整数λ进行了乘幂的整数减去1得到的整数(C^λ-1)除以整数N的平方而得到的商y。解密整数计算部482计算将所计算的商y与倒数λ-1之积yλ-1除以整数N而得到的余数,作为第二响应Z。
关于这样由解密部404生成的第二响应Z,第二响应发送部412对认证装置102发送,认证装置102接收并处理。
认证装置102的明文类似度抽出部315是与实施方式6相同的结构。
明文类似度抽出部315计算2个特征矢量b、b’的内积Σi[bib’i]作为类似度d。
判定部306在离散对数计算部373计算出的类似度d大于规定的阈值d0的情况下,判定为2个特征矢量b、b’类似。
由此,能够将特征点的一致数作为指标,判定2个特征矢量b、b’是否类似。
图77是示出该实施方式的生物体认证系统100中的类似度计算的计算步骤的流程图。
作为第一阶段,在第一响应生成工序S707中,证明装置101根据第一挑战R计算第一响应R’,从而计算T个ρi=bib’i。该计算是在通过解密装置103的密钥加密了的状态下进行的,所以证明装置101无法得到关于特征矢量b的信息。
作为第二阶段,在第二挑战生成工序S712中,认证装置102根据加密特征矢量C’计算第二挑战C^,从而计算δ=Σi[bib’i]+s1(i是1以上且T以下的整数)。该计算是在通过解密装置103的密钥加密了的状态下进行的,所以认证装置102无法得到关于特征矢量b、b’的信息。
作为第三阶段,在第二响应生成工序S716中,解密装置103根据第二挑战C^计算第二响应Z,从而计算ζ。解密装置103只是简单地进行解密处理,所以ζ等于δ。解密装置103由于不知道暂时密钥s1,所以无法得到关于特征矢量b、b’、类似度的信息。即,该计算是在通过暂时密钥s1加密了的状态下进行的。
作为第四阶段,在明文类似度计算工序S719中,认证装置102根据第二响应Z,计算类似度d=ζ-s1。由此,认证装置102虽然能够得到类似度d,但无法得到关于特征矢量b、b’的信息。
另外,密码方式不限于Paillier密码方式,也可以是使用冈本-高岛密码方式、BGN密码方式、Gentry密码方式等具有加法上的同态性的其他密码方式的结构。另外,也可以是在证明装置101与认证装置102之间的通信中使用普通的公开密钥密码方式等第二密码方式的结构。
另外,生物体认证系统100也可以是与实施方式2同样地证明装置101兼具作为解密装置103、登记装置104的功能的结构。
实施方式10.
使用图78~图81,说明实施方式10。
另外,关于与实施方式1~实施方式9通用的部分,附加同一符号而省略说明。
图78是示出该实施方式中的图像检索系统110的整体结构的一个例子的系统结构图。
图像检索系统110是在被加密了的状态下从所登记的图像中检索与指定的图像类似的图像的系统。
图像检索系统110(类似度计算系统)具有例如终端装置111、检索装置112、解密装置103、以及登记装置104。
登记装置104输入图像数据,从所输入的图像数据抽出该图像数据表示的图像的特征,生成特征矢量b。登记装置104对所生成的特征矢量b进行加密而生成加密特征矢量C。登记装置104对所输入的图像数据进行加密而生成加密图像数据。登记装置104将加密特征矢量C和加密图像数据登记到检索装置112。另外,也可以是如下结构:将加密图像数据保管到独立于检索装置112的场所,将加密特征矢量C和表示加密图像数据的所在的数据登记到检索装置112。
终端装置111输入图像数据,从所输入的图像数据抽出该图像数据表示的图像的特征,生成特征矢量b’。终端装置111对所生成的特征矢量b’进行加密而生成加密特征矢量C’,对检索装置112要求检索。
检索装置112存储了多个由登记装置104登记的加密特征矢量C。检索装置112根据来自终端装置111的检索要求,基于所存储的各个加密特征矢量C和从终端装置111送来的加密特征矢量C’来计算类似度d。检索装置112根据所计算的类似度d,从所登记的图像中,判定与指定的图像类似的图像,将所判定的图像的加密图像数据、或者表示加密图像数据的所在的数据送回终端装置111。
终端装置111、检索装置112、解密装置103、登记装置104的硬件结构与在实施方式1中说明的结构相同。
图79是示出该实施方式中的登记装置104的功能块的结构的一个例子的框结构图。
登记装置104具有例如公开密钥接收部208、公开密钥存储部202、图像输入部209、特征矢量形成部204、随机数生成部205、加密数据生成部206、加密数据发送部201、图像加密部226、以及加密图像发送部228。
公开密钥接收部208(公开密钥取得部)使用通信装置等输入装置912,接收解密装置103的公开密钥pk。解密装置103的公开密钥pk是与解密装置103秘密地存储的秘密密钥sk对应的公开密钥,关于通过解密装置103的公开密钥pk加密了的数据,如果不是解密装置103存储的秘密密钥sk则无法解密。
公开密钥存储部202使用存储装置914,存储公开密钥接收部208接收到的公开密钥pk。
图像输入部209使用输入装置912,输入应登记的图像数据。
特征矢量形成部204(比较数据取得部)使用处理装置911,根据图像输入部209输入的图像数据生成特征矢量b(比较数据)。特征矢量b是例如以整数为成分的T维矢量。
随机数生成部205使用处理装置911,生成在对特征矢量b、图像数据进行加密时使用的随机数。
加密数据生成部206(比较密文生成部)使用处理装置911,根据公开密钥存储部202存储的公开密钥、特征矢量形成部204生成的特征矢量b、以及随机数生成部205生成的随机数,生成加密特征矢量C(比较密文)。加密特征矢量C是以密文为成分的T维的矢量。加密特征矢量C的各成分是对特征矢量b的各成分进行加密而得到的。
加密数据发送部201(比较密文通知部)为了将加密数据生成部206生成的加密特征矢量C登记到检索装置112,使用通信装置等输出装置913,将加密特征矢量C发送到检索装置112。
图像加密部226使用处理装置911,根据公开密钥存储部202存储的公开密钥、图像输入部209输入的图像数据、以及随机数生成部205生成的随机数,生成加密图像数据。加密图像数据是对图像数据进行加密而得到的。另外,图像加密部226对图像数据进行加密时使用的密码方式既可以是与加密数据生成部206对特征矢量b进行加密时使用的密码方式相同的密码方式,也可以是不同的密码方式。
加密图像发送部228为了登记图像加密部226生成的加密图像数据,使用通信装置等输出装置913,将加密图像数据与由加密数据发送部201发送的加密特征矢量C一起发送到检索装置112。另外,也可以构成为并非将加密图像数据登记到检索装置112,而是登记到其他装置。另外,也可以是登记装置104自身保管加密图像数据的结构。在该情况下,加密图像发送部228将加密图像数据的URI(统一资源标识符)等表示加密图像数据的所在的数据与加密特征矢量一起发送到检索装置112。
图80是示出该实施方式中的终端装置111的功能块的结构的一个例子的框结构图。
终端装置111具有例如公开密钥接收部218、公开密钥存储部212、图像输入部219、特征矢量形成部214、随机数生成部215、加密数据生成部216、加密数据发送部222、结果接收部223、以及结果输出部224。
公开密钥接收部218(公开密钥取得部)使用通信装置等输入装置912,接收解密装置103的公开密钥pk。
公开密钥存储部202使用存储装置914,存储公开密钥接收部218接收到的公开密钥pk。
图像输入部219使用输入装置912,输入应搜索类似的图像的图像数据。
特征矢量形成部214(对象数据取得部)使用处理装置911,根据图像输入部219输入的图像数据而生成特征矢量b’(对象数据)。特征矢量b’是例如以整数为成分的T维矢量。
随机数生成部215使用处理装置911,生成在对特征矢量b’进行加密时使用的随机数。
加密数据生成部216(对象密文生成部)使用处理装置911,根据公开密钥存储部212存储的公开密钥、特征矢量形成部214生成的特征矢量b’、以及随机数生成部215生成的随机数,生成加密特征矢量C’(对象密文)。加密特征矢量C’是以密文为成分的T维的矢量。加密特征矢量C’的各成分是对特征矢量b’的各成分进行加密而得到的。
加密数据发送部222(对象密文通知部)为了检索与图像输入部219输入的图像数据类似的图像,使用通信装置等输出装置913,将加密数据生成部216生成的加密特征矢量C’发送到检索装置112。
结果接收部223使用通信装置等输入装置912,接收检索装置112发送了的检索结果。检索结果是例如与图像输入部219输入的图像数据类似的图像的加密图像数据自身、表示其所在的数据。
结果输出部224使用显示装置等输出装置913,输出结果接收部223接收到的检索结果。结果输出部224显示例如与图像输入部219输入的图像数据表示的图像类似的图像的数量。或者,也可以是结果输出部224对加密图像数据进行解密而显示图像的结构。
与在实施方式1~实施方式9中说明的证明装置101不同,终端装置111原样地发送加密特征矢量C’。在认证系统中,需要防止利用重发攻击进行的冒充,相对于此,在该实施方式中的图像检索系统110中,终端装置111只是能够取得加密了的加密图像数据作为检索结果,如果没有对加密图像数据进行解密的权限,则无法显示所检索的图像,所以无需防止重发攻击。
但是,与在实施方式1~实施方式9中说明的证明装置101同样地,也可以构成为如下:终端装置111从检索装置112接收第一挑战R,根据所接收到的第一挑战R、和特征矢量b’,生成第一响应R’,将所生成的第一响应R’发送到检索装置112。
图81是示出该实施方式中的检索装置112的功能块的结构的一个例子的框结构图。
检索装置112具有例如公开密钥接收部308、公开密钥存储部302、2个加密数据接收部301,325、加密数据存储部312、随机数生成部303、随机数存储部322、加密随机类似度计算部314、第二挑战发送部321、第二响应接收部341、明文类似度抽出部315、判定部306、以及结果发送部323。
公开密钥接收部308(公开密钥取得部)使用通信装置等输入装置912,接收解密装置103的公开密钥pk。
公开密钥存储部302使用存储装置914,存储公开密钥接收部308接收到的公开密钥pk。
加密数据接收部301(比较密文取得部)使用通信装置等输入装置912,接收登记装置104发送了的加密特征矢量C。
加密数据存储部312(比较密文存储部)使用存储装置914,存储加密数据接收部301接收到的加密特征矢量C。加密数据存储部312将多个加密特征矢量C与表示加密图像数据的所在的数据对应起来进行存储。
加密数据接收部325(对象密文取得部)使用通信装置等输入装置912,接收终端装置111发送了的加密特征矢量C’。
随机数生成部303使用处理装置911,生成第二挑战C^的生成中使用的随机数。
随机数存储部322使用存储装置914,存储随机数生成部303生成的随机数中的作为明文的随机数。
加密随机类似度计算部314使用处理装置911,针对加密数据存储部312存储的加密特征矢量C的各个,根据加密数据接收部325接收到的加密特征矢量C’、随机数生成部303生成的随机数等,生成第二挑战C^。
第二挑战发送部321使用通信装置等输出装置913,将加密随机类似度计算部314生成的第二挑战C^发送到解密装置103。
第二响应接收部341使用通信装置等输入装置912,作为针对第二挑战发送部321发送了的第二挑战C^的应答,接收解密装置103发送了的第二响应Z。
明文类似度抽出部315使用处理装置911,根据随机数存储部322存储的随机数、第二响应接收部341接收到的第二响应Z,计算类似度d。
判定部306使用处理装置911,根据明文类似度抽出部315计算出的类似度d,判定与终端装置111输入的图像数据表示的图像类似的图像。例如,在类似度d是欧几里德距离的平方等表示越小越类似的值的情况下,判定部306在类似度d小于规定的阈值d0的情况下,判定为该图像与终端装置111输入的图像数据表示的图像类似。另外,也可以构成为如下:判定部306在类似度d小于阈值d0的图像的数量比规定的数量多的情况下,按照类似度d从小到大的顺序,仅将规定的数量的图像判定为与终端装置111输入的图像数据类似。
结果发送部323使用通信装置等输出装置913,将明文类似度抽出部315判定了的结果发送到终端装置111。
另外,加密随机类似度计算部314、明文类似度抽出部315等的详细的结构与在实施方式1~实施方式9中说明的认证装置102的加密随机类似度计算部314、明文类似度抽出部315等相同。
另外,解密装置103的结构也与在实施方式1~实施方式9中说明的解密装置103的结构相同。
通过根据以在实施方式1~实施方式9中说明的方式计算出的类似度d来搜索与终端装置111输入的图像数据类似的图像,从而无需对加密了的图像数据、特征矢量进行解密,而能够检索图像。
另外,成为检索的对象的数据不限于图像数据,也可以是文档数据等其他数据。在检索对象是文档数据的情况下,例如,考虑将规定的单词的出现次数作为特征矢量的各成分的值的结构等。
在以上各实施方式中说明的结构是一个例子,也可以是其他结构。例如,既可以是组合了在不同的实施方式中说明的结构而得到的结构,也可以是用其他结构置换了不重要的部分的结构而得到的结构。
例如,说明了作为类似度d计算2个特征矢量b、b’的欧几里德距离的平方的结构、和计算2个特征矢量b、b’的内积的结构,但也可以是2个特征矢量b、b’的汉明距离、特征点的一致数等通过不同的计算式计算类似度d的结构。
另外,在实施方式1~实施方式9中说明的生物体认证系统100中,说明了使用用户的标识符而从认证装置102的加密数据存储部312存储的加密特征矢量C中确定与第一响应接收部331接收到的第一响应R’对应的加密特征矢量C,并生成第二挑战C^的结构,但也可以与在实施方式10中说明的图像检索系统110同样地,是在与加密数据存储部312存储的各个加密特征矢量C之间计算类似度d的结构。在该情况下,例如也可以构成为如下:判定部306判定为对证明装置101输入了生物体信息的用户是判定为最类似的加密特征矢量C的用户。
另外,在实施方式1~实施方式9中,说明了根据生物体信息进行认证的生物体认证系统100,但也可以是根据其他信息进行认证的认证系统。
而且,以上说明的类似度计算方式不限于认证系统、检索系统,而能够应用于其他各种系统。
以上说明的类似度计算装置(认证装置102;检索装置112)计算比较数据(特征矢量b)与对象数据(特征矢量b’)的类似度(d)。
类似度计算装置具有存储数据的存储装置(914)、处理数据的处理装置(911)、比较密文存储部(加密数据存储部312)、对象密文取得部(加密数据抽出部305;加密数据接收部325)、暂时密钥生成部(随机数生成部303)、类似度途中密文计算部(加密随机类似度计算部314)、类似度途中密文通知部(第二挑战发送部321)、类似度途中解密文取得部(第二响应接收部341)、以及类似度计算部(明文类似度抽出部315)。
上述比较密文存储部使用上述存储装置,存储通过使用了与解密装置(103)存储的秘密密钥(sk)对应的公开密钥(pk)的加密变换对上述比较数据进行变换而得到的比较密文(加密特征矢量C)。
上述对象密文取得部使用上述处理装置,取得通过使用了上述公开密钥的上述加密变换对上述对象数据进行变换而得到的对象密文(加密特征矢量C’)。
上述暂时密钥生成部使用上述处理装置,生成暂时密钥(随机数u1;随机数s1)。
上述类似度途中密文计算部使用上述处理装置,根据上述比较密文存储部存储的比较密文、上述对象密文取得部取得的对象密文、以及上述暂时密钥生成部生成的暂时密钥,在上述比较密文以及上述对象密文被加密了的状态下,进行类似度计算的第一阶段的计算,计算使用上述暂时密钥对所计算的结果进行加密而得到的类似度途中密文(第二挑战C^)。
上述类似度途中密文通知部使用上述处理装置,将上述类似度途中密文计算部计算出的类似度途中密文通知到上述解密装置。
上述类似度途中解密文取得部使用上述处理装置,取得根据上述类似度途中密文通知部通知的类似度途中密文而由上述解密装置计算并通知的类似度途中解密文(第二响应Z)。
上述类似度计算部使用上述处理装置,根据上述暂时密钥生成部生成的暂时密钥、和上述类似度途中解密文取得部取得的类似度途中解密文,使用上述暂时密钥对上述类似度途中解密文进行解密,从而计算上述比较数据与上述对象数据的类似度。
以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)具有上述类似度计算装置(认证装置102;检索装置112)、和解密装置(103)。
上述解密装置具有存储数据的存储装置(914)、处理数据的处理装置(911)、秘密密钥存储部(413)、类似度途中密文取得部(第二挑战接收部402)、类似度途中解密文计算部(解密部404)、以及类似度途中解密文通知部(第二响应发送部412)。
上述解密装置的秘密密钥存储部使用上述解密装置的存储装置,存储秘密密钥(sk)。
上述解密装置的类似度途中密文取得部使用上述解密装置的处理装置,取得从上述类似度计算装置通知的类似度途中密文。
上述解密装置的类似度途中解密文计算部使用上述解密装置的处理装置,根据上述解密装置的秘密密钥存储部存储的秘密密钥、和上述解密装置的类似度途中密文取得部取得的类似度途中密文,使用上述秘密密钥对上述类似度途中密文进行解密,在利用上述暂时密钥对解密了的结果进行了加密的状态下,进行类似度计算的第二阶段的计算,计算上述类似度途中解密文。
上述解密装置的类似度途中解密文通知部使用上述解密装置的处理装置,将上述解密装置的类似度途中解密文计算部计算出的类似度途中解密文通知到上述类似度计算装置。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述比较数据(特征矢量b)以及上述对象数据(特征矢量b’)是以整数为成分的T维矢量(T是1以上的整数)。
上述类似度计算装置(认证装置102;检索装置112)的类似度途中密文计算部(加密随机类似度计算部314)使用上述类似度计算装置的处理装置(911),在上述比较密文(加密特征矢量C)以及上述对象密文(加密特征矢量C’)被加密了的状态下,计算上述比较数据与上述对象数据之间的对应的成分的差或者积。
上述解密装置(103)的类似度途中密文计算部(解密部404)使用上述解密装置的处理装置(911),使用上述秘密密钥(sk)对上述类似度途中密文进行解密,在解密了的结果通过上述暂时密钥被加密了的状态下,计算上述类似度(d)。
上述类似度计算装置的类似度计算部(明文类似度抽出部315)使用上述类似度计算装置的处理装置,对上述类似度途中解密文进行解密,从而取得上述类似度。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述加密变换是将整数(0以上且小于q的整数;0以上且小于N的整数)变换为密文(矢量空间V中的矢量;有限群G的元;0以上且小于N2的整数)的变换。上述密文能够计算将多个密文结合而变换为其他密文的运算(矢量空间V中的加法;有限群G中的乘法;以N2为模的整数的乘法),将对任意的第一整数(x1)进行变换得到的密文(E(x1))、和对任意的第二整数(x2)进行变换得到的密文(E(x2))通过上述密文的运算进行结合而得到的密文成为对上述第一整数与上述第二整数之和(x1+x2)进行变换得到的密文(E(x1+x2))。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述比较数据(特征矢量b)以及上述对象数据(特征矢量b’)是以整数为成分(bi,b’i)的T维矢量(T是1以上的整数)。
上述比较密文(加密特征矢量C)是以通过使用了上述公开密钥(pk)的上述加密变换对上述比较数据的各成分进行变换得到的密文(ci)为成分的T维矢量。
上述对象密文(加密特征矢量C’)是以通过使用了上述公开密钥的上述加密变换对上述对象数据的各成分进行变换得到的密文(c’i)为成分的T维矢量。
上述类似度计算装置(认证装置102;检索装置112)还具有公开密钥存储部(302)。
上述类似度计算装置的公开密钥存储部使用上述类似度计算装置的存储装置(914),存储与上述解密装置(103)存储的秘密密钥(sk)对应的公开密钥(pk)。
上述类似度计算装置的暂时密钥生成部(随机数生成部303)使用上述类似度计算装置的处理装置(911),随机地生成整数(u1)而作为上述暂时密钥。
上述类似度计算装置的类似度途中密文计算部(加密随机类似度计算部314)具有随机数明文生成部(干扰矢量生成部362)、第一密文计算部(矢量结合部363)、以及第二密文计算部(矢量累计部367)。
上述类似度计算装置的随机数明文生成部使用上述类似度计算装置的处理装置,随机地生成以整数(t1,i)为成分的T维矢量而作为随机数明文(干扰矢量т)。
上述类似度计算装置的第一密文计算部使用上述类似度计算装置的处理装置,根据上述类似度计算装置的比较密文存储部(加密数据存储部312)存储的比较密文、上述类似度计算装置的对象密文取得部(加密数据抽出部305;加密数据接收部325)取得的对象密文、以及上述类似度计算装置的随机数明文生成部生成的随机数明文,使用上述密文的运算,计算第一类似度途中密文。上述第一类似度途中密文是以将上述比较数据的各成分与上述对象数据的对应的成分之差、和上述随机数明文的对应的成分之和(bi-b’i+t1,i)通过使用了上述公开密钥的上述加密变换进行变换而得到的密文(c^i)为成分的T维矢量。
上述类似度计算装置的第二密文计算部使用上述类似度计算装置的处理装置,根据上述类似度计算装置的比较密文存储部存储的比较密文、上述类似度计算装置的对象密文取得部取得的对象密文、上述类似度计算装置的暂时密钥生成部生成的暂时密钥、以及上述类似度计算装置的随机数明文生成部生成的随机数明文,使用上述密文的运算,计算第二类似度途中密文(c^)。上述第二类似度途中密文是将校正值与上述暂时密钥(u1)之和通过使用了上述公开密钥的上述加密变换进行变换而得到的密文。上述校正值是将上述比较数据的各成分与上述对象数据的对应的成分之差、和上述随机数明文的对应的成分之积的2倍、以及上述随机数明文的各成分的平方针对所有成分进行合计而得到的整数(Σi[2t1,i(bi-b’i)+t1,i 2])。
上述类似度计算装置的类似度途中密文通知部(第二挑战发送部321)使用上述类似度计算装置的处理装置,将上述类似度计算装置的第一密文计算部计算出的第一类似度途中密文、和上述类似度计算装置的第二密文计算部计算出的第二类似度途中密文通知到上述解密装置。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述比较数据(特征矢量b)以及上述对象数据(特征矢量b’)是以0或者1为成分(bi,b’i)的T维矢量(T是1以上的整数)。
上述比较密文(加密特征矢量C)是以通过使用了上述公开密钥(pk)的上述加密变换对上述比较数据的各成分进行变换得到的密文为成分的T维矢量。
上述对象密文是以通过使用了上述公开密钥的上述加密变换对上述对象数据的各成分(b’i)进行变换得到的密文为成分的T维矢量。
上述类似度计算装置(认证装置102;检索装置112)还具有公开密钥存储部(302)。
上述类似度计算装置的公开密钥存储部使用上述类似度计算装置的存储装置(914),存储与上述解密装置(103)存储的秘密密钥(sk)对应的公开密钥(pk)。
上述类似度计算装置的暂时密钥生成部(随机数生成部303)使用上述类似度计算装置的处理装置(911),随机地生成整数(u1)作为上述暂时密钥。
上述类似度计算装置的类似度途中密文计算部(加密随机类似度计算部314)具有随机数明文生成部(干扰矢量生成部362)、第一密文计算部(矢量结合部363)、以及第二密文计算部(矢量累计部367)。
上述类似度计算装置的随机数明文生成部使用上述类似度计算装置的处理装置,随机地生成以整数为成分(t1,i)的T维矢量,作为随机数明文(干扰矢量т)。
上述类似度计算装置的第一密文计算部使用上述类似度计算装置的处理装置,根据上述类似度计算装置的比较密文存储部(加密数据存储部312)存储的比较密文、上述类似度计算装置的对象密文取得部(加密数据抽出部305;加密数据接收部325)取得的对象密文、以及上述类似度计算装置的随机数明文生成部生成的随机数明文,使用上述密文的运算,计算第一类似度途中密文。上述第一类似度途中密文是以将上述比较数据的各成分与上述对象数据的对应的成分之差、和上述随机数明文的对应的成分之和(bi-b’i+t1,i)通过使用了上述公开密钥的上述加密变换进行变换得到的密文(c^i)为成分的T维矢量。
上述类似度计算装置的第二密文计算部使用上述类似度计算装置的处理装置,根据上述类似度计算装置的比较密文存储部存储的比较密文、上述类似度计算装置的对象密文取得部取得的对象密文、上述类似度计算装置的暂时密钥生成部生成的暂时密钥、以及上述类似度计算装置的随机数明文生成部生成的随机数明文,使用上述密文的运算,计算第二类似度途中密文(c^)。上述第二类似度途中密文是将校正值与上述暂时密钥之和通过使用了上述公开密钥的上述加密变换进行变换而得到的密文。上述校正值是将上述比较数据的各成分与上述对象数据的对应的成分之差和上述随机数明文的对应的成分之积的2倍、上述随机数明文的各成分的平方、上述比较数据的各成分、以及上述对象数据的各成分针对所有成分进行合计而得到的整数(Σi[2t1,i(bi-b’i)+t1,i 2+bi+b’i])。
上述类似度计算装置的类似度途中密文通知部(第二挑战发送部321)使用上述类似度计算装置的处理装置,将上述类似度计算装置的第一密文计算部计算出的第一类似度途中密文、和上述类似度计算装置的第二密文计算部计算出的第二类似度途中密文通知到上述解密装置。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述比较数据(特征矢量b)以及上述对象数据(特征矢量b’)是以整数为成分(bi,b’i)的T维矢量(T是1以上的整数)。
上述比较密文(加密特征矢量C)是以通过使用了上述公开密钥(pk)的上述加密变换对上述比较数据的各成分进行变换得到的密文(ci)为成分的T维矢量。
上述对象密文(加密特征矢量C’)是以通过使用了上述公开密钥的上述加密变换对上述对象数据的各成分进行变换得到的密文(c’i)为成分的T维矢量。
上述类似度计算装置(认证装置102;检索装置112)还具有公开密钥存储部(302)。
上述类似度计算装置的公开密钥存储部使用上述类似度计算装置的存储装置(914),存储与上述解密装置(103)存储的秘密密钥(sk)对应的公开密钥(ps)。
上述类似度计算装置的暂时密钥生成部(随机数生成部303)使用上述类似度计算装置的处理装置,随机地生成整数(s1),作为上述暂时密钥。
上述类似度计算装置的类似度途中密文计算部具有第一密文计算部(差分计算部361,重新排列部385)、和第二密文计算部(加密密钥生成部366)。
上述类似度计算装置的第一密文计算部使用上述类似度计算装置的处理装置,根据上述类似度计算装置的比较密文存储部(加密数据存储部312)存储的比较密文、和上述类似度计算装置的对象密文取得部(加密数据抽出部305;加密数据接收部325)取得的对象密文,使用上述密文的运算,计算第一类似度途中密文。上述第一类似度途中密文是以将上述比较数据的各成分与上述对象数据的对应的成分之差(bi-b’i)通过使用了上述公开密钥的上述加密变换进行变换得到的密文(c^i)为成分的T维矢量。
上述类似度计算装置的第二密文计算部使用上述类似度计算装置的处理装置,根据上述类似度计算装置的公开密钥存储部存储的公开密钥、和上述类似度计算装置的暂时密钥生成部生成的暂时密钥,将通过使用了上述公开密钥的上述加密变换对上述暂时密钥进行变换得到的密文(c^)作为第二类似度途中密文。
上述类似度计算装置的类似度途中密文通知部(第二挑战发送部321)使用上述类似度计算装置的处理装置,将上述类似度计算装置的第一密文计算部计算出的第一类似度途中密文、和上述类似度计算装置的第二密文计算部计算出的第二类似度途中密文通知到上述解密装置。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述类似度计算装置(认证装置102;检索装置112)的第一密文计算部(差分计算部361,重新排列部385)使用上述类似度计算装置的处理装置(911),从针对从上述比较数据(特征矢量b)的成分减去上述对象数据(特征矢量b’)的对应的成分得到的差通过使用了上述公开密钥(pk)的上述加密变换进行变换而得到的密文、以及针对从上述对象数据的成分减去上述比较数据的对应的成分得到的差通过使用了上述公开密钥的上述加密变换进行变换而得到的密文中,将针对各成分的每一个随机地选择的密文作为成分,将随机地调换了成分的顺序而得到的T维矢量作为上述第一类似度途中密文。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,
上述解密装置(103)的类似度途中解密文计算部(解密部404)使用上述解密装置的处理装置(911),根据上述解密装置的类似度途中密文取得部(第二挑战接收部402)取得的2个类似度途中密文(第二挑战C^),计算对上述第一类似度途中密文的T个成分分别进行解密得到的整数的平方的合计与对上述第二类似度途中密文进行解密得到的整数的差或者和、或者将规定的有限群的规定的元通过上述规定的有限群的群运算而结合z个(z是对上述第一类似度途中密文的T个成分分别进行解密得到的整数的平方的合计与对上述第二类似度途中密文进行解密得到的整数的差或者和)得到的元,作为上述类似度途中解密文(第二响应Z)。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述比较数据(特征矢量b)以及上述对象数据(特征矢量b’)是以整数为成分(bi,b’i)的T维矢量(T是1以上的整数)。
上述比较密文(加密特征矢量C)是以通过使用了上述公开密钥(pk)的上述加密变换对上述比较数据的各成分进行变换得到的密文(ci)为成分的T维矢量。
上述对象密文(加密特征矢量C’)是以通过使用了上述公开密钥的上述加密变换对上述对象数据的各成分进行变换得到的密文(c’i)为成分的T维矢量。
上述类似度计算装置(认证装置102;检索装置112)还具有公开密钥存储部(302)。
上述类似度计算装置的公开密钥存储部使用上述类似度计算装置的存储装置(914),存储与上述解密装置(103)存储的秘密密钥(sk)对应的公开密钥(pk)。
上述类似度计算装置的暂时密钥生成部(随机数生成部303)使用上述类似度计算装置的处理装置(911),随机地生成整数(s1)作为上述暂时密钥。
上述类似度计算装置的类似度途中密文计算部(加密随机类似度计算部314)使用上述类似度计算装置的处理装置,根据上述类似度计算装置的比较密文存储部(加密数据存储部312)存储的比较密文、上述类似度计算装置的对象密文取得部(加密数据抽出部305;加密数据接收部325)取得的对象密文、以及上述类似度计算装置的暂时密钥生成部生成的暂时密钥,使用上述密文的运算,计算上述类似度途中密文(第二挑战C^)。上述类似度途中密文是将合计值与上述暂时密钥的和或者差通过使用了上述公开密钥的加密变换进行变换而得到的密文。上述合计值是将上述比较数据的各成分与上述对象数据的对应的成分之差的平方、或者上述比较数据的各成分与上述对象数据的对应的成分之积,针对所有成分进行合计而得到的整数(Σi[(bi-b’i)2];Σi[bib’i])。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述加密变换是将0以上且小于q(q是素数)的整数变换为作为矢量空间(V)中的n维矢量(n是2以上的整数)的密文的变换。
上述矢量空间是位数q的循环群n个的直积。
上述密文的运算是上述矢量空间中的矢量的加法。
上述公开密钥(pk)包括作为上述矢量空间的基底的随机基底(B)。
上述加密变换是将0以上且小于q的整数x变换为把上述随机基底的第一矢量(ь1)的x倍与上述随机基底的其他矢量(ьj)的随机数倍进行合计而得到的矢量的变换。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述加密变换是将0以上且小于N(N是相互不同的2个素数p、q之积)的整数变换为作为位数N的有限群(G)的元的密文的变换。
上述密文的运算是上述有限群中的群运算。
上述公开密钥(pk)包括上述有限群的生成元(g)、以及作为上述有限群的元且位数是上述素数p的干扰元(h)。
上述加密变换是将0以上且小于N的整数x变换为通过上述有限群中的群运算来结合x个上述生成元和随机的数量的上述干扰元而得到的元的变换。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,
上述加密变换是将0以上且小于N(N是相互不同的2个素数p、q之积)的整数变换为作为0以上且小于N2的整数的密文的变换。
上述密文的运算是以N2为模的整数的乘法。
上述加密变换是将0以上且小于N的整数x变换为把对整数x与整数N之积加上1得到的和与随机的数量的N次方之积除以N2而得到的余数的变换。
以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)还具有加密装置(证明装置101;终端装置111)。
上述加密装置具有存储数据的存储装置(914)、处理数据的处理装置(911)、公开密钥存储部(212)、对象数据取得部(特征矢量形成部214)、暂时公开密钥取得部(第一挑战接收部211)、对象双重密文计算部(加密数据嵌入部217)、以及对象双重密文通知部(第一响应发送部221)。
上述加密装置的公开密钥存储部使用上述加密装置的存储装置,存储与上述解密装置(103)存储的秘密密钥(sk)对应的公开密钥(pk)。
上述加密装置的对象数据取得部使用上述加密装置的处理装置,取得对象数据(特征矢量b’)。
上述加密装置的暂时公开密钥取得部使用上述加密装置的处理装置,取得从上述类似度计算装置(认证装置102;检索装置112)通知的暂时公开密钥(第一挑战R)。
上述加密装置的对象双重密文计算部使用上述加密装置的处理装置,根据上述加密装置的公开密钥存储部存储的公开密钥、上述加密装置的对象数据取得部取得的对象数据、以及上述加密装置的暂时公开密钥取得部取得的暂时公开密钥,通过使用了上述公开密钥和上述暂时公开密钥的第二加密变换对上述对象数据进行变换,从而计算对象双重密文(第一响应R’)。
上述加密装置的对象双重密文通知部使用上述加密装置的处理装置,将上述加密装置的对象双重密文计算部计算出的对象双重密文通知到上述类似度计算装置。
上述类似度计算装置还具有暂时秘密密钥生成部(随机数生成部303、加密随机数生成部304)、暂时公开密钥通知部(第一挑战发送部311)、以及对象双重密文取得部(第一响应接收部331)。
上述类似度计算装置的暂时秘密密钥生成部使用上述类似度计算装置的处理装置(911),生成暂时秘密密钥(R1,i)、和与上述暂时秘密密钥对应的暂时公开密钥(第一挑战R)。
上述类似度计算装置的暂时公开密钥通知部使用上述类似度计算装置的处理装置,将上述类似度计算装置的暂时秘密密钥生成部生成的暂时公开密钥通知到上述加密装置。
上述类似度计算装置的对象双重密文取得部使用上述类似度计算装置的处理装置,取得从上述加密装置通知的对象双重密文。
上述类似度计算装置的对象密文取得部使用上述类似度计算装置的处理装置,根据上述类似度计算装置的暂时秘密密钥生成部生成的暂时秘密密钥、和上述类似度计算装置的对象双重密文取得部取得的对象双重密文,通过使用了上述暂时秘密密钥的第二解密变换对上述对象双重密文进行变换,从而计算通过使用了上述公开密钥的上述加密变换对上述对象数据进行变换得到的对象密文(加密特征矢量C’)。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述比较数据(特征矢量b)以及上述对象数据(特征矢量b’)是以整数为成分(bi,b’i)的T维矢量(T是1以上的整数)。
上述类似度计算装置(认证装置102;检索装置112)的暂时秘密密钥生成部(随机数生成部303、加密随机数生成部304)使用上述类似度计算装置的处理装置(911),根据上述类似度计算装置的比较密文存储部(加密数据存储部312)存储的比较密文(加密特征矢量C),生成包括关于上述比较数据的加密了的信息的暂时公开密钥(第一挑战R)。
上述加密装置(证明装置101;终端装置111)的对象双重密文计算部(加密数据嵌入部217)使用上述加密装置的处理装置(911),通过使用了上述暂时公开密钥的上述第二加密变换,计算包括关于上述对象数据的成分与上述比较数据的对应的成分之积(bib’i)的被加密了的信息的对象双重密文(第一响应R’)。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述加密变换是将整数(0以上且小于q的整数;0以上且小于N的整数)变换为密文(矢量空间V中的矢量;有限群G的元;0以上且小于N2的整数)的变换。上述密文能够计算将多个密文结合而变换为其他密文的运算(矢量空间V中的加法;有限群G中的乘法;以N2为模的整数的乘法),将对任意的第一整数(x1)进行变换得到的密文(E(x1))和对任意的第二整数(x2)进行变换得到的密文(E(x2))通过上述密文的运算进行结合而得到的密文成为对上述第一整数与上述第二整数之和(x1+x2)进行变换得到的密文(E(x1+x2))。
上述对象数据(特征矢量b’)是以整数为成分的T维矢量(T是1以上的整数)。
上述类似度计算装置(认证装置102;检索装置112)还具有公开密钥存储部(302)。
上述类似度计算装置的公开密钥存储部使用上述类似度计算装置的存储装置(914),存储与上述解密装置(103)存储的秘密密钥(sk)对应的公开密钥(pk)。
上述类似度计算装置的暂时公开密钥生成部(随机数生成部303;加密随机数生成部304)使用上述类似度计算装置的处理装置(911),随机地生成以整数(R1,i)为成分的T维矢量作为上述暂时秘密密钥,根据上述类似度计算装置的公开密钥存储部存储的公开密钥、和所生成的暂时秘密密钥,通过使用了上述公开密钥的上述加密变换,计算以对上述暂时秘密密钥的各成分进行变换得到的密文(Ri)为成分的T维矢量,作为上述暂时公开密钥(第一挑战R)。
上述加密装置(证明装置101;终端装置111)的对象双重密文计算部(加密数据嵌入部217)使用上述加密装置的处理装置(911),根据上述加密装置的公开密钥存储部(212)存储的公开密钥,随机地生成以通过使用了上述公开密钥的加密变换对0进行变换得到的密文(oi)为成分的T维矢量作为零密文(加密零矢量O),根据上述加密装置的对象数据取得部(特征矢量形成部214)取得的对象数据、上述加密装置的暂时公开密钥取得部(第一挑战接收部211)取得的暂时公开密钥、以及所生成的零密文,计算以通过上述密文的运算将上述暂时公开密钥的各成分b’i个(b’i是作为上述对象数据的对应的成分的整数)、和上述零密文的对应的成分进行结合而得到的密文为成分的T维矢量,作为上述对象双重密文(第一响应R’)。
上述类似度计算装置的对象密文取得部(加密数据抽出部305)具有暂时解密密钥计算部(倒数计算部351)、和对象密文计算部(标量倍计算部352)。
上述类似度计算装置的暂时解密密钥计算部使用上述类似度计算装置的处理装置,根据上述类似度计算装置的暂时秘密密钥生成部生成的暂时秘密密钥,计算以上述暂时秘密密钥的各成分的倒数(κi)为成分的T维矢量,作为暂时解密密钥。
上述类似度计算装置的对象密文计算部使用上述类似度计算装置的处理装置,根据上述类似度计算装置的对象双重密文取得部(第一响应接收部331)取得的对象双重密文、和上述类似度计算装置的暂时解密密钥计算部计算出的暂时解密密钥,计算以通过上述密文的运算将上述对象双重密文的各成分(R’i)结合Ri -1个(Ri -1是作为上述暂时解密密钥的对应的成分的倒数)得到的密文为成分的T维矢量,作为上述对象密文(加密特征矢量C’)。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述加密变换是将整数(0以上且小于q的整数;0以上且小于N的整数)变换为密文(矢量空间V中的矢量;有限群G的元;0以上且小于N2的整数)的变换。上述密文能够计算将多个密文进行结合而变换为其他密文的运算(矢量空间V中的加法;有限群G中的乘法;以N2为模的整数的乘法)。将对任意的第一整数(x1)进行变换得到的密文(E(x1))、和对任意的第二整数(x2)进行变换得到的密文(E(x2))通过上述密文的运算进行结合而得到的密文成为对上述第一整数与上述第二整数之和(x1+x2)进行变换而得到的密文(E(x1+x2))。
上述比较数据(特征矢量b)以及上述对象数据(特征矢量b’)是以整数为成分(bi,b’i)的T维矢量(T是1以上的整数)。
上述比较密文(加密特征矢量C)是以通过使用了上述公开密钥(pk)的上述加密变换对上述比较数据的各成分进行变换得到的密文(ci)为成分的T维矢量。
上述类似度计算装置(认证装置102;检索装置112)还具有公开密钥存储部(302)。
上述类似度计算装置的公开密钥存储部使用上述类似度计算装置的存储装置(914),存储与上述解密装置(103)存储的秘密密钥(sk)对应的公开密钥(pk)。
上述类似度计算装置的暂时公开密钥生成部(随机数生成部303;加密随机数生成部304)使用上述类似度计算装置的处理装置(911),随机地生成以整数(R1,i)为成分的T维矢量作为上述暂时秘密密钥,根据上述类似度计算装置的公开密钥存储部存储的公开密钥,随机地生成以通过使用了上述公开密钥的加密变换对0进行变换得到的密文(o’i)为成分的T维矢量作为零密文(加密零矢量O’),根据上述类似度计算装置的比较密文存储部(加密数据存储部312)存储的比较密文、所生成的暂时秘密密钥、以及所生成的零密文,计算以通过上述密文的运算将上述比较密文的各成分Ri个(Ri是作为上述暂时秘密密钥的对应的成分的整数)、和上述零密文的对应的成分进行结合而得到的密文为成分的T维矢量,作为上述暂时公开密钥(第一挑战R)。
上述加密装置(证明装置101;终端装置111)的对象双重密文计算部(加密数据嵌入部217)使用上述加密装置的处理装置(911),根据上述加密装置的公开密钥存储部(212)存储的公开密钥,随机地生成以通过使用了上述公开密钥的加密变换对0进行变换得到的密文(oi)为成分的T维矢量而作为零密文(加密零矢量O),根据上述加密装置的对象数据取得部(特征矢量形成部214)取得的对象数据、上述加密装置的暂时公开密钥取得部(第一挑战接收部211)取得的暂时公开密钥、以及所生成的零密文,计算以通过上述密文的运算将上述暂时公开密钥的各成分b’i个(b’i是作为上述对象数据的对应的成分的整数)、和上述零密文的对应的成分进行结合得到的密文为成分的T维矢量,作为上述对象双重密文(第一响应R’)。
上述类似度计算装置的对象密文取得部(加密数据抽出部305)具有暂时解密密钥计算部(倒数计算部351)和对象密文计算部(乘幂计算部353)。
上述类似度计算装置的暂时解密密钥计算部使用上述类似度计算装置的处理装置,根据上述类似度计算装置的暂时秘密密钥生成部生成的暂时秘密密钥,计算以上述暂时秘密密钥的各成分的倒数(κi)为成分的T维矢量作为暂时解密密钥。
上述类似度计算装置的对象密文计算部使用上述类似度计算装置的处理装置,根据上述类似度计算装置的对象双重密文取得部(第一挑战发送部311)取得的对象双重密文、和上述类似度计算装置的暂时解密密钥计算部计算出的暂时解密密钥,计算以通过上述密文的运算将上述对象双重密文的各成分结合Ri -1个(Ri -1是作为上述暂时解密密钥的对应的成分的倒数)而得到的密文为成分的T维矢量,作为上述对象密文(加密特征矢量C’)。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述类似度计算装置(认证装置102;检索装置112)的类似度途中密文计算部(加密随机类似度计算部314)具有随机数明文生成部(加密密钥生成部366)和密文计算部(整数结合部386)。
上述类似度计算装置的随机数明文生成部使用上述类似度计算装置的处理装置(911),随机地生成以整数(t1,i)为成分的T维矢量,作为随机数明文(干扰矢量т)。
上述类似度计算装置的暂时密钥生成部(随机数存储部322)使用上述类似度计算装置的处理装置,计算上述类似度计算装置的随机数明文生成部生成的随机数明文的成分的总和(Σi[t1,i]),将所计算的总和作为上述暂时密钥。
上述类似度计算装置的密文计算部使用上述类似度计算装置的处理装置,根据上述类似度计算装置的对象密文取得部(加密数据抽出部305)取得的对象密文(加密特征矢量C’)、和上述类似度计算装置的随机数明文生成部生成的随机数明文,计算以通过上述密文的运算将上述对象密文的各成分、和上述随机数明文的对应的成分进行结合得到的密文为成分的T维矢量,作为类似度途中密文(第二挑战C^)。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述类似度计算装置(认证装置102;检索装置112)的暂时密钥生成部(随机数生成部303)使用上述类似度计算装置的处理装置(911),随机地生成整数(s1)作为上述暂时密钥。
上述类似度计算装置的类似度途中密文计算部(加密随机类似度计算部314)具有第一密文计算部(重新排列部385)和第二密文计算部(加密密钥生成部366)。
上述类似度计算装置的第一密文计算部使用上述类似度计算装置的处理装置,根据上述类似度计算装置的对象密文取得部(加密数据抽出部305)取得的对象密文(加密特征矢量C’),计算随机地调换上述对象密文的成分的顺序得到的T维矢量,作为第一类似度途中密文。
上述类似度计算装置的第二密文计算部使用上述类似度计算装置的处理装置,根据上述类似度计算装置的公开密钥存储部(302)存储的公开密钥(pk)、和上述类似度计算装置的暂时密钥生成部生成的暂时密钥,计算通过使用了上述公开密钥的上述加密变换对上述暂时密钥进行变换得到的密文,作为第二类似度途中密文。
上述类似度计算装置的类似度途中密文通知部(第二挑战发送部321)使用上述类似度计算装置的处理装置,将上述类似度计算装置的第一密文计算部计算出的第一类似度途中密文、和上述类似度计算装置的第二密文计算部计算出的第二类似度途中密文通知到上述解密装置(103)。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述解密装置(103)的类似度途中解密文计算部(解密部404)使用上述解密装置的处理装置(911),根据上述解密装置的类似度途中密文取得部(第二挑战接收部402)取得的2个类似度途中密文,计算对上述第一类似度途中密文的T个成分分别进行解密得到的整数的合计与对上述第二类似度途中密文进行解密得到的整数的差或者和、或者将规定的有限群的规定的元通过上述规定的有限群的群运算而结合z个(z是对上述第一类似度途中密文的T个成分分别进行解密得到的整数的合计、与对上述第二类似度途中密文进行解密得到的整数的差或者和)得到的元,作为上述类似度途中解密文(第二响应Z)。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述类似度计算装置(认证装置102;检索装置112)的暂时密钥生成部(随机数生成部303)使用上述类似度计算装置的处理装置(911),随机地生成整数(s1),作为上述暂时密钥。
上述类似度计算装置的类似度途中密文计算部(加密随机类似度计算部314)使用上述类似度计算装置的处理装置,根据上述加密装置的公开密钥存储部(302)存储的公开密钥(pk)、上述类似度计算装置的对象密文取得部(加密数据抽出部305)取得的对象密文(加密特征矢量C’)、以及上述类似度计算装置的暂时密钥生成部生成的暂时密钥,计算将通过使用了上述公开密钥的上述加密变换对上述暂时密钥进行变换得到的密文、和上述对象密文的T个成分通过上述密文的运算进行结合而得到的密文,作为上述类似度途中密文(第二挑战C^)。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述解密装置(103)的类似度途中解密文计算部(解密部404)使用上述解密装置的处理装置(911),根据上述解密装置的类似度途中密文取得部(第二挑战接收部402)取得的类似度途中密文(第二挑战C^),计算对上述类似度途中密文进行解密得到的整数、或者将规定的有限群的规定的元通过上述规定的有限群的群运算结合z个(z是对上述类似度途中密文进行解密得到的整数)得到的元,作为上述类似度途中解密文(第二响应Z)。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述类似度途中解密文(第二响应Z)是整数。
上述类似度计算装置(认证装置102;检索装置112)的暂时密钥生成部(随机数生成部303)使用上述类似度计算装置的处理装置(911),随机地生成整数(u1;s1),作为上述暂时密钥。
上述类似度计算装置的类似度计算部(明文类似度抽出部315)使用上述类似度计算装置的处理装置,根据上述类似度计算装置的暂时密钥生成部生成的暂时密钥、和上述类似度计算装置的类似度途中解密文取得部(第二响应接收部341)取得的类似度途中解密文,计算计算上述暂时密钥与上述类似度途中解密文的和或者差,作为上述类似度(d)。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述类似度途中解密文(第二响应Z)是规定的有限群(GT)的元。
上述类似度计算装置的暂时密钥生成部(随机数生成部303)使用上述类似度计算装置的处理装置(911),随机地生成整数(u1;s1),作为上述暂时密钥。
上述类似度计算装置的类似度计算部(明文类似度抽出部315)具有类似度解密文计算部(元结合部372)和离散对数计算部(373)。
上述类似度计算装置的类似度解密文计算部使用上述类似度计算装置的处理装置,根据上述类似度计算装置的暂时密钥生成部生成的暂时密钥、和上述类似度计算装置的类似度途中解密文取得部(第二响应接收部341)取得的类似度途中解密文,计算通过上述规定的有限群的群运算将上述规定的有限群的规定的元(e(ь1,ь1);π)u个(u是作为上述暂时密钥的整数)和上述类似度途中解密文进行结合得到的元,作为类似度解密文(解密类似度元Z’)。
上述类似度计算装置的离散对数计算部使用上述类似度计算装置的处理装置,根据上述类似度计算装置的类似度解密文所计算出的类似度解密文,计算通过上述规定的有限群的群运算来结合几个上述规定的元才与上述类似度解密文一致,作为上述类似度(d)。
在以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)中,上述类似度计算装置(认证装置102;检索装置112)的离散对数计算部(373)使用上述类似度计算装置的处理装置(911),在上述类似度(d)是规定的范围内的整数的情况下,计算上述类似度,在上述类似度是上述规定的范围外的情况下,判定上述类似度是上述规定的范围外。
以上说明的类似度计算系统(生物体认证系统100;图像检索系统110)还具有登记装置(104)。
上述登记装置具有存储数据的存储装置(914)、处理数据的处理装置(911)、公开密钥存储部(202)、比较数据取得部(特征矢量形成部204)、比较密文计算部(加密数据生成部206)、以及比较密文通知部(加密数据发送部201)。
上述登记装置的公开密钥存储部使用上述登记装置的存储装置,存储与上述解密装置(103)存储的秘密密钥(sk)对应的公开密钥(pk)。
上述登记装置的比较数据取得部使用上述登记装置的处理装置,取得比较数据(特征矢量b)。
上述登记装置的比较密文计算部使用上述登记装置的处理装置,根据上述登记装置的公开密钥存储部存储的公开密钥、和上述登记装置的比较数据取得部取得的比较数据,通过使用了上述公开密钥的加密变换对上述比较数据进行变换,从而计算比较密文(加密特征矢量C)。
上述登记装置的比较密文通知部使用上述登记装置的处理装置,将上述登记装置的比较密文计算部计算出的比较密文通知到上述类似度计算装置(认证装置102;检索装置112)。
上述类似度计算装置还具有比较密文取得部(加密数据接收部301)。
上述类似度计算装置的比较密文取得部使用上述类似度计算装置的处理装置(911),取得从上述登记装置通知的比较密文。
上述类似度计算装置的比较密文存储部(加密数据存储部312)使用上述类似度计算装置的存储装置(914),存储上述类似度计算装置的比较密文取得部取得的比较密文。
根据以上说明的类似度计算装置、类似度计算系统、计算机程序以及类似度计算方法,在数据被加密了的状态下,能够计算数据之间的类似度,并且能够在该过程中,防止关于原来的数据的信息、被用于冒充的信息等泄漏。
Claims (29)
1.一种类似度计算装置,计算比较数据与对象数据的类似度,其特征在于,
所述类似度计算装置具有存储数据的存储装置、处理数据的处理装置、比较密文存储部、对象密文取得部、暂时密钥生成部、类似度途中密文计算部、类似度途中密文通知部、类似度途中解密文取得部、以及类似度计算部,
所述比较密文存储部使用所述存储装置,存储通过使用了与解密装置存储的秘密密钥对应的公开密钥的加密变换对所述比较数据进行变换而得到的比较密文,
所述对象密文取得部使用所述处理装置,取得通过使用了所述公开密钥的所述加密变换对所述对象数据进行变换而得到的对象密文,
所述暂时密钥生成部使用所述处理装置,生成暂时密钥,
所述类似度途中密文计算部使用所述处理装置,根据所述比较密文存储部存储的比较密文、所述对象密文取得部取得的对象密文、以及所述暂时密钥生成部生成的暂时密钥,在所述比较密文以及所述对象密文被加密了的状态下,进行类似度计算的第一阶段的计算,计算针对所计算出的结果使用所述暂时密钥进行加密而得到的类似度途中密文,
所述类似度途中密文通知部使用所述处理装置,将所述类似度途中密文计算部计算出的类似度途中密文通知给所述解密装置,
所述类似度途中解密文取得部使用所述处理装置,取得所述解密装置根据所述类似度途中密文通知部通知的类似度途中密文计算并通知的类似度途中解密文,
所述类似度计算部使用所述处理装置,根据所述暂时密钥生成部生成的暂时密钥、和所述类似度途中解密文取得部取得的类似度途中解密文,使用所述暂时密钥对所述类似度途中解密文进行解密,从而计算所述比较数据与所述对象数据的类似度。
2.根据权利要求1所述的类似度计算装置,其特征在于,
所述类似度计算装置还具有暂时秘密密钥生成部和对象双重密文取得部,
所述暂时秘密密钥生成部使用所述处理装置,生成暂时秘密密钥和与所述暂时秘密密钥对应的暂时公开密钥,
所述对象双重密文取得部使用所述处理装置,取得使用所述暂时秘密密钥生成部生成的暂时公开密钥进行加密而得到的对象双重密文,
所述对象密文取得部使用所述处理装置,根据所述暂时秘密密钥存储部存储的暂时秘密密钥、和所述对象双重密文取得部取得的对象双重密文,使用所述暂时秘密密钥对所述对象双重密文进行解密,从而取得通过使用了所述公开密钥的所述加密变换对所述对象数据进行变换而得到的对象密文。
3.一种类似度计算系统,其特征在于,
具有权利要求1所述的类似度计算装置、和解密装置,
所述解密装置具有存储数据的存储装置、处理数据的处理装置、秘密密钥存储部、类似度途中密文取得部、类似度途中解密文计算部、以及类似度途中解密文通知部,
所述解密装置的秘密密钥存储部使用所述解密装置的存储装置,存储秘密密钥,
所述解密装置的类似度途中密文取得部使用所述解密装置的处理装置,取得从所述类似度计算装置通知到的类似度途中密文,
所述解密装置的类似度途中解密文计算部使用所述解密装置的处理装置,根据所述解密装置的秘密密钥存储部存储的秘密密钥、和所述解密装置的类似度途中密文取得部取得的类似度途中密文,使用所述秘密密钥对所述类似度途中密文进行解密,在解密出的结果通过所述暂时密钥被加密了的状态下,进行类似度计算的第二阶段的计算,计算所述类似度途中解密文,
所述解密装置的类似度途中解密文通知部使用所述解密装置的处理装置,将所述解密装置的类似度途中解密文计算部计算出的类似度途中解密文通知给所述类似度计算装置。
4.根据权利要求3所述的类似度计算系统,其特征在于,
所述比较数据以及所述对象数据是以整数为成分的T维矢量,其中,T是1以上的整数,
所述类似度计算装置的类似度途中密文计算部使用所述类似度计算装置的处理装置,在所述比较密文以及所述对象密文被加密了的状态下,计算所述比较数据与所述对象数据之间的对应的成分的差或者积,
所述解密装置的类似度途中密文计算部使用所述解密装置的处理装置,使用所述秘密密钥对所述类似度途中密文进行解密,在解密出的结果通过所述暂时密钥被加密了的状态下,计算所述类似度,
所述类似度计算装置的类似度计算部使用所述类似度计算装置的处理装置,对所述类似度途中解密文进行解密,从而取得所述类似度。
5.根据权利要求3所述的类似度计算系统,其特征在于,
所述加密变换是将整数变换为密文的变换,所述密文能够计算将多个密文结合而变换为其他密文的运算,通过所述密文的运算将对任意的第一整数进行变换而得到的密文和对任意的第二整数进行变换而得到的密文进行结合而得到的密文成为对所述第一整数与所述第二整数之和进行变换而得到的密文。
6.根据权利要求5所述的类似度计算系统,其特征在于,
所述比较数据以及所述对象数据是以整数为成分的T维矢量,其中,T是1以上的整数,
所述比较密文是以通过使用了所述公开密钥的所述加密变换对所述比较数据的各成分进行变换而得到的密文为成分的T维矢量,
所述对象密文是以通过使用了所述公开密钥的所述加密变换对所述对象数据的各成分进行变换而得到的密文为成分的T维矢量,
所述类似度计算装置还具有公开密钥存储部,
所述类似度计算装置的公开密钥存储部使用所述类似度计算装置的存储装置,存储与所述解密装置存储的秘密密钥对应的公开密钥,
所述类似度计算装置的暂时密钥生成部使用所述类似度计算装置的处理装置,随机地生成整数,作为所述暂时密钥,
所述类似度计算装置的类似度途中密文计算部具有随机数明文生成部、第一密文计算部、以及第二密文计算部,
所述类似度计算装置的随机数明文生成部使用所述类似度计算装置的处理装置,随机地生成以整数为成分的T维矢量,作为随机数明文,
所述类似度计算装置的第一密文计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的比较密文存储部存储的比较密文、所述类似度计算装置的对象密文取得部取得的对象密文、以及所述类似度计算装置的随机数明文生成部生成的随机数明文,使用所述密文的运算,计算第一类似度途中密文,所述第一类似度途中密文是以通过使用了所述公开密钥的所述加密变换将所述比较数据的各成分与所述对象数据的对应的成分之差、与所述随机数明文的对应的成分之和进行变换而得到的密文为成分的T维矢量,
所述类似度计算装置的第二密文计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的比较密文存储部存储的比较密文、所述类似度计算装置的对象密文取得部取得的对象密文、所述类似度计算装置的暂时密钥生成部生成的暂时密钥、以及所述类似度计算装置的随机数明文生成部生成的随机数明文,使用所述密文的运算,计算第二类似度途中密文,所述第二类似度途中密文是通过使用了所述公开密钥的所述加密变换将校正值与所述暂时密钥之和进行变换而得到的密文,所述校正值是将所述比较数据的各成分与所述对象数据的对应的成分之差、与所述随机数明文的对应的成分之积的2倍、以及所述随机数明文的各成分的平方针对所有成分进行合计而得到的整数,
所述类似度计算装置的类似度途中密文通知部使用所述类似度计算装置的处理装置,将所述类似度计算装置的第一密文计算部计算出的第一类似度途中密文、和所述类似度计算装置的第二密文计算部计算出的第二类似度途中密文通知给所述解密装置。
7.根据权利要求5所述的类似度计算系统,其特征在于,
所述比较数据以及所述对象数据是以0或者1为成分的T维矢量,其中,T是1以上的整数,
所述比较密文是以通过使用了所述公开密钥的所述加密变换对所述比较数据的各成分进行变换而得到的密文为成分的T维矢量,
所述对象密文是以通过使用了所述公开密钥的所述加密变换对所述对象数据的各成分进行变换而得到的密文为成分的T维矢量,
所述类似度计算装置还具有公开密钥存储部,
所述类似度计算装置的公开密钥存储部使用所述类似度计算装置的存储装置,存储与所述解密装置存储的秘密密钥对应的公开密钥,
所述类似度计算装置的暂时密钥生成部使用所述类似度计算装置的处理装置,随机地生成整数,作为所述暂时密钥,
所述类似度计算装置的类似度途中密文计算部具有随机数明文生成部、第一密文计算部、以及第二密文计算部,
所述类似度计算装置的随机数明文生成部使用所述类似度计算装置的处理装置,随机地生成以整数为成分的T维矢量,作为随机数明文,
所述类似度计算装置的第一密文计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的比较密文存储部存储的比较密文、所述类似度计算装置的对象密文取得部取得的对象密文、以及所述类似度计算装置的随机数明文生成部生成的随机数明文,使用所述密文的运算,计算第一类似度途中密文,所述第一类似度途中密文是以通过使用了所述公开密钥的所述加密变换将所述比较数据的各成分与所述对象数据的对应的成分之差、与所述随机数明文的对应的成分之和进行变换而得到的密文为成分的T维矢量,
所述类似度计算装置的第二密文计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的比较密文存储部存储的比较密文、所述类似度计算装置的对象密文取得部取得的对象密文、所述类似度计算装置的暂时密钥生成部生成的暂时密钥、以及所述类似度计算装置的随机数明文生成部生成的随机数明文,使用所述密文的运算,计算第二类似度途中密文,所述第二类似度途中密文是通过使用了所述公开密钥的所述加密变换将校正值与所述暂时密钥之和进行变换而得到的密文,所述校正是将所述比较数据的各成分与所述对象数据的对应的成分之差、与所述随机数明文的对应的成分之积的2倍、所述随机数明文的各成分的平方、所述比较数据的各成分、以及所述对象数据的各成分针对所有成分合计而得到的整数,
所述类似度计算装置的类似度途中密文通知部使用所述类似度计算装置的处理装置,将所述类似度计算装置的第一密文计算部计算出的第一类似度途中密文、和所述类似度计算装置的第二密文计算部计算出的第二类似度途中密文通知给所述解密装置。
8.根据权利要求5所述的类似度计算系统,其特征在于,
所述比较数据以及所述对象数据是以整数为成分的T维矢量,其中,T是1以上的整数,
所述比较密文是以通过使用了所述公开密钥的所述加密变换对所述比较数据的各成分进行变换而得到的密文为成分的T维矢量,
所述对象密文是以通过使用了所述公开密钥的所述加密变换对所述对象数据的各成分进行变换而得到的密文为成分的T维矢量,
所述类似度计算装置还具有公开密钥存储部,
所述类似度计算装置的公开密钥存储部使用所述类似度计算装置的存储装置,存储与所述解密装置存储的秘密密钥对应的公开密钥,
所述类似度计算装置的暂时密钥生成部使用所述类似度计算装置的处理装置,随机地生成整数,作为所述暂时密钥,
所述类似度计算装置的类似度途中密文计算部具有第一密文计算部和第二密文计算部,
所述类似度计算装置的第一密文计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的比较密文存储部存储的比较密文、和所述类似度计算装置的对象密文取得部取得的对象密文,使用所述密文的运算,计算第一类似度途中密文,所述第一类似度途中密文是以通过使用了所述公开密钥的所述加密变换将所述比较数据的各成分与所述对象数据的对应的成分之差进行变换而得到的密文为成分的T维矢量,
所述类似度计算装置的第二密文计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的公开密钥存储部存储的公开密钥、和所述类似度计算装置的暂时密钥生成部生成的暂时密钥,将通过使用了所述公开密钥的所述加密变换对所述暂时密钥进行变换而得到的密文作为第二类似度途中密文,
所述类似度计算装置的类似度途中密文通知部使用所述类似度计算装置的处理装置,将所述类似度计算装置的第一密文计算部计算出的第一类似度途中密文、和所述类似度计算装置的第二密文计算部计算出的第二类似度途中密文通知给所述解密装置。
9.根据权利要求8所述的类似度计算系统,其特征在于,
所述类似度计算装置的第一密文计算部使用所述类似度计算装置的处理装置,将从通过使用了所述公开密钥的所述加密变换对从所述比较数据的成分减去所述对象数据的对应的成分而得到的差进行变换而得到的密文、以及通过使用了所述公开密钥的所述加密变换对从所述对象数据的成分减去所述比较数据的对应的成分而得到的差进行变换而得到的密文之中针对各成分的每一个随机地选择的密文作为成分,将随机地调换了成分的顺序而得到的T维矢量作为所述第一类似度途中密文。
10.根据权利要求6至9中的任一项所述的类似度计算系统,其特征在于,
所述解密装置的类似度途中解密文计算部使用所述解密装置的处理装置,根据所述解密装置的类似度途中密文取得部取得的2个类似度途中密文,计算对所述第一类似度途中密文的T个成分分别进行解密而得到的整数的平方的合计与对所述第二类似度途中密文进行解密而得到的整数之差或者之和、或者将规定的有限群的规定的元通过所述规定的有限群的群运算而结合z个而得到的元,作为所述类似度途中解密文,其中,z是对所述第一类似度途中密文的T个成分分别进行解密而得到的整数的平方的合计与对所述第二类似度途中密文进行解密而得到的整数之差或者之和。
11.根据权利要求5所述的类似度计算系统,其特征在于,
所述比较数据以及所述对象数据是以整数为成分的T维矢量,其中,T是1以上的整数,
所述比较密文是以通过使用了所述公开密钥的所述加密变换对所述比较数据的各成分进行变换而得到的密文为成分的T维矢量,
所述对象密文是以通过使用了所述公开密钥的所述加密变换对所述对象数据的各成分进行变换而得到的密文为成分的T维矢量,
所述类似度计算装置还具有公开密钥存储部,
所述类似度计算装置的公开密钥存储部使用所述类似度计算装置的存储装置,存储与所述解密装置存储的秘密密钥对应的公开密钥,
所述类似度计算装置的暂时密钥生成部使用所述类似度计算装置的处理装置,随机地生成整数,作为所述暂时密钥,
所述类似度计算装置的类似度途中密文计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的比较密文存储部存储的比较密文、所述类似度计算装置的对象密文取得部取得的对象密文、以及所述类似度计算装置的暂时密钥生成部生成的暂时密钥,使用所述密文的运算,计算所述类似度途中密文,所述类似度途中密文是将合计值与所述暂时密钥之和或者之差通过使用了所述公开密钥的加密变换进行变换而得到的密文,所述合计值是将所述比较数据的各成分与所述对象数据的对应的成分之差的平方、或者所述比较数据的各成分与所述对象数据的对应的成分之积针对所有成分进行合计而得到的整数。
12.根据权利要求5所述的类似度计算系统,其特征在于,
所述加密变换是将0以上且小于q的整数变换为作为矢量空间中的n维矢量的密文的变换,其中,q是素数,n是2以上的整数,
所述矢量空间是位数q的循环群n个的直积,
所述密文的运算是所述矢量空间中的矢量的加法,
所述公开密钥包括作为所述矢量空间的基底的随机基底,
所述加密变换是将0以上且小于q的整数x变换为对所述随机基底的第一矢量的x倍和所述随机基底的其他矢量的随机数倍进行合计而得到的矢量的变换。
13.根据权利要求5所述的类似度计算系统,其特征在于,
所述加密变换是将0以上且小于N的整数变换为作为位数N的有限群的元的密文的变换,其中,N是相互不同的2个素数p、q之积,
所述密文的运算是所述有限群中的群运算,
所述公开密钥包括所述有限群的生成元、和作为所述有限群的元并且位数是所述素数p的干扰元,
所述加密变换是将0以上且小于N的整数x变换为通过所述有限群中的群运算结合x个所述生成元和随机的数量的所述干扰元而得到的元的变换。
14.根据权利要求5所述的类似度计算系统,其特征在于,
所述加密变换是将0以上且小于N的整数变换为作为0以上且小于N2的整数的密文的变换,其中,N是相互不同的2个素数p、q之积,
所述密文的运算是以N2为模的整数的乘法,
所述加密变换是将0以上且小于N的整数x变换为将对整数x与整数N之积加上1而得到的和与随机的数量的N次方之积除以N2而得到的余数的变换。
15.根据权利要求3所述的类似度计算系统,其特征在于,
所述类似度计算系统还具有加密装置,
所述加密装置具有存储数据的存储装置、处理数据的处理装置、公开密钥存储部、对象数据取得部、暂时公开密钥取得部、对象双重密文计算部、以及对象双重密文通知部,
所述加密装置的公开密钥存储部使用所述加密装置的存储装置,存储与所述解密装置存储的秘密密钥对应的公开密钥,
所述加密装置的对象数据取得部使用所述加密装置的处理装置,取得对象数据,
所述加密装置的暂时公开密钥取得部使用所述加密装置的处理装置,取得从所述类似度计算装置通知到的暂时公开密钥,
所述加密装置的对象双重密文计算部使用所述加密装置的处理装置,根据所述加密装置的公开密钥存储部存储的公开密钥、所述加密装置的对象数据取得部取得的对象数据、以及所述加密装置的暂时公开密钥取得部取得的暂时公开密钥,通过使用了所述公开密钥和所述暂时公开密钥的第二加密变换对所述对象数据进行变换,从而计算对象双重密文,
所述加密装置的对象双重密文通知部使用所述加密装置的处理装置,将所述加密装置的对象双重密文计算部计算出的对象双重密文通知给所述类似度计算装置,
所述类似度计算装置还具有暂时秘密密钥生成部、暂时公开密钥通知部、以及对象双重密文取得部,
所述类似度计算装置的暂时秘密密钥生成部使用所述类似度计算装置的处理装置,生成暂时秘密密钥和与所述暂时秘密密钥对应的暂时公开密钥,
所述类似度计算装置的暂时公开密钥通知部使用所述类似度计算装置的处理装置,将所述类似度计算装置的暂时秘密密钥生成部生成的暂时公开密钥通知给所述加密装置,
所述类似度计算装置的对象双重密文取得部使用所述类似度计算装置的处理装置,取得从所述加密装置通知到的对象双重密文,
所述类似度计算装置的对象密文取得部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的暂时秘密密钥生成部生成的暂时秘密密钥、和所述类似度计算装置的对象双重密文取得部取得的对象双重密文,通过使用了所述暂时秘密密钥的第二解密变换对所述对象双重密文进行变换,从而计算通过使用了所述公开密钥的所述加密变换对所述对象数据进行变换而得到的对象密文。
16.根据权利要求15所述的类似度计算系统,其特征在于,
所述比较数据以及所述对象数据是以整数为成分的T维矢量,其中,T是1以上的整数,
所述类似度计算装置的暂时秘密密钥生成部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的比较密文存储部存储的比较密文,生成包括关于所述比较数据的被加密了的信息的暂时公开密钥,
所述加密装置的对象双重密文计算部使用所述加密装置的处理装置,通过使用了所述暂时公开密钥的所述第二加密变换,计算包括关于所述对象数据的成分与所述比较数据的对应的成分之积的被加密了的信息的对象双重密文。
17.根据权利要求15所述的类似度计算系统,其特征在于,
所述加密变换是将整数变换为密文的变换,所述密文能够计算将多个密文结合而变换为其他密文的运算,通过所述密文的运算将对任意的第一整数进行变换而得到的密文和对任意的第二整数进行变换而得到的密文进行结合而得到的密文成为对所述第一整数与所述第二整数之和进行变换而得到的密文,
所述对象数据是以整数为成分的T维矢量,其中,T是1以上的整数,
所述类似度计算装置还具有公开密钥存储部,
所述类似度计算装置的公开密钥存储部使用所述类似度计算装置的存储装置,存储与所述解密装置存储的秘密密钥对应的公开密钥,
所述类似度计算装置的暂时公开密钥生成部使用所述类似度计算装置的处理装置,随机地生成以整数为成分的T维矢量,作为所述暂时秘密密钥,根据所述类似度计算装置的公开密钥存储部存储的公开密钥、和所生成的暂时秘密密钥,通过使用了所述公开密钥的所述加密变换,计算以对所述暂时秘密密钥的各成分进行变换而得到的密文为成分的T维矢量,作为所述暂时公开密钥,
所述加密装置的对象双重密文计算部使用所述加密装置的处理装置,根据所述加密装置的公开密钥存储部存储的公开密钥,随机地生成以通过使用了所述公开密钥的加密变换对0进行变换而得到的密文为成分的T维矢量,并作为零密文,根据所述加密装置的对象数据取得部取得的对象数据、所述加密装置的暂时公开密钥取得部取得的暂时公开密钥、以及所生成的零密文,计算以通过所述密文的运算将所述暂时公开密钥的各成分b’i个、和所述零密文的对应的成分进行结合而得到的密文为成分的T维矢量,并作为所述对象双重密文,其中,b’i是作为所述对象数据的对应的成分的整数,
所述类似度计算装置的对象密文取得部具有暂时解密密钥计算部和对象密文计算部,
所述类似度计算装置的暂时解密密钥计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的暂时秘密密钥生成部生成的暂时秘密密钥,计算以所述暂时秘密密钥的各成分的倒数为成分的T维矢量,作为暂时解密密钥,
所述类似度计算装置的对象密文计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的对象双重密文取得部取得的对象双重密文、和所述类似度计算装置的暂时解密密钥计算部计算出的暂时解密密钥,计算以通过所述密文的运算将所述对象双重密文的各成分结合Ri -1个而得到的密文为成分的T维矢量,并作为所述对象密文,其中,Ri -1是作为所述暂时解密密钥的对应的成分的倒数。
18.根据权利要求15所述的类似度计算系统,其特征在于,
所述加密变换是将整数变换为密文的变换,所述密文能够计算将多个密文结合而变换为其他密文的运算,通过所述密文的运算将对任意的第一整数进行变换而得到的密文和对任意的第二整数进行变换而得到的密文进行结合而得到的密文成为对所述第一整数与所述第二整数之和进行变换而得到的密文,
所述比较数据以及所述对象数据是以整数为成分的T维矢量,其中,T是1以上的整数,
所述比较密文是以通过使用了所述公开密钥的所述加密变换对所述比较数据的各成分进行变换而得到的密文为成分的T维矢量,
所述类似度计算装置还具有公开密钥存储部,
所述类似度计算装置的公开密钥存储部使用所述类似度计算装置的存储装置,存储与所述解密装置存储的秘密密钥对应的公开密钥,
所述类似度计算装置的暂时公开密钥生成部使用所述类似度计算装置的处理装置,随机地生成以整数为成分的T维矢量,并作为所述暂时秘密密钥,根据所述类似度计算装置的公开密钥存储部存储的公开密钥,随机地生成以通过使用了所述公开密钥的加密变换对0进行变换而得到的密文为成分的T维矢量,并作为零密文,根据所述类似度计算装置的比较密文存储部存储的比较密文、所生成的暂时秘密密钥、以及所生成的零密文,计算以通过所述密文的运算将所述比较密文的各成分Ri个、和所述零密文的对应的成分进行结合而得到的密文为成分的T维矢量,并作为所述暂时公开密钥,其中,Ri是作为所述暂时秘密密钥的对应的成分的整数,
所述加密装置的对象双重密文计算部使用所述加密装置的处理装置,根据所述加密装置的公开密钥存储部存储的公开密钥,随机地生成以通过使用了所述公开密钥的加密变换对0进行变换而得到的密文为成分的T维矢量,并作为零密文,根据所述加密装置的对象数据取得部取得的对象数据、所述加密装置的暂时公开密钥取得部取得的暂时公开密钥、以及所生成的零密文,计算以通过所述密文的运算将所述暂时公开密钥的各成分b’i个、和所述零密文的对应的成分进行结合而得到的密文为成分的T维矢量,并作为所述对象双重密文,其中,b’i是作为所述对象数据的对应的成分的整数,
所述类似度计算装置的对象密文取得部具有暂时解密密钥计算部和对象密文计算部,
所述类似度计算装置的暂时解密密钥计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的暂时秘密密钥生成部生成的暂时秘密密钥,计算以所述暂时秘密密钥的各成分的倒数为成分的T维矢量,作为暂时解密密钥,
所述类似度计算装置的对象密文计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的对象双重密文取得部取得的对象双重密文、和所述类似度计算装置的暂时解密密钥计算部计算出的暂时解密密钥,计算以通过所述密文的运算将所述对象双重密文的各成分结合Ri -1个而得到的密文为成分的T维矢量,并作为所述对象密文,其中,Ri -1是作为所述暂时解密密钥的对应的成分的倒数。
19.根据权利要求18所述的类似度计算系统,其特征在于,
所述类似度计算装置的类似度途中密文计算部具有随机数明文生成部和密文计算部,
所述类似度计算装置的随机数明文生成部使用所述类似度计算装置的处理装置,随机地生成以整数为成分的T维矢量,作为随机数明文,
所述类似度计算装置的暂时密钥生成部使用所述类似度计算装置的处理装置,计算所述类似度计算装置的随机数明文生成部生成的随机数明文的成分的总和,将所计算出的总和作为所述暂时密钥,
所述类似度计算装置的密文计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的对象密文取得部取得的对象密文、和所述类似度计算装置的随机数明文生成部生成的随机数明文,计算以通过所述密文的运算将所述对象密文的各成分、和所述随机数明文的对应的成分进行结合而得到的密文为成分的T维矢量,作为所述类似度途中密文。
20.根据权利要求18所述的类似度计算系统,其特征在于,
所述类似度计算装置的暂时密钥生成部使用所述类似度计算装置的处理装置,随机地生成整数,作为所述暂时密钥,
所述类似度计算装置的类似度途中密文计算部具有第一密文计算部和第二密文计算部,
所述类似度计算装置的第一密文计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的对象密文取得部取得的对象密文,计算随机地调换了所述对象密文的成分的顺序而得到的T维矢量,作为第一类似度途中密文,
所述类似度计算装置的第二密文计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的公开密钥存储部存储的公开密钥、和所述类似度计算装置的暂时密钥生成部生成的暂时密钥,计算通过使用了所述公开密钥的所述加密变换对所述暂时密钥进行变换而得到的密文,作为第二类似度途中密文,
所述类似度计算装置的类似度途中密文通知部使用所述类似度计算装置的处理装置,将所述类似度计算装置的第一密文计算部计算出的第一类似度途中密文、和所述类似度计算装置的第二密文计算部计算出的第二类似度途中密文通知给所述解密装置。
21.根据权利要求20所述的类似度计算系统,其特征在于,
所述解密装置的类似度途中解密文计算部使用所述解密装置的处理装置,根据所述解密装置的类似度途中密文取得部取得的2个类似度途中密文,计算对所述第一类似度途中密文的T个成分分别进行解密而得到的整数的合计与对所述第二类似度途中密文进行解密而得到的整数之差或者之和、或者、将规定的有限群的规定的元通过所述规定的有限群的群运算而结合z个而得到的元,作为所述类似度途中解密文,其中,z是对所述第一类似度途中密文的T个成分分别进行解密而得到的整数的合计与对所述第二类似度途中密文进行解密而得到的整数之差或者之和。
22.根据权利要求18所述的类似度计算系统,其特征在于,
所述类似度计算装置的暂时密钥生成部使用所述类似度计算装置的处理装置,随机地生成整数,作为所述暂时密钥,
所述类似度计算装置的类似度途中密文计算部使用所述类似度计算装置的处理装置,根据所述加密装置的公开密钥存储部存储的公开密钥、所述类似度计算装置的对象密文取得部取得的对象密文、以及所述类似度计算装置的暂时密钥生成部生成的暂时密钥,计算通过所述密文的运算将通过使用了所述公开密钥的所述加密变换对所述暂时密钥进行变换而得到的密文、和所述对象密文的T个成分进行结合而得到的密文,作为所述类似度途中密文。
23.根据权利要求11或者22所述的类似度计算系统,其特征在于,
所述解密装置的类似度途中解密文计算部使用所述解密装置的处理装置,根据所述解密装置的类似度途中密文取得部取得的类似度途中密文,计算对所述类似度途中密文进行解密而得到的整数、或者将规定的有限群的规定的元通过所述规定的有限群的群运算而结合z个而得到的元,作为所述类似度途中解密文,其中,z是对所述类似度途中密文进行解密而得到的整数。
24.根据权利要求3至9以及11至22中的任一项所述的类似度计算系统,其特征在于,
所述类似度途中解密文是整数,
所述类似度计算装置的暂时密钥生成部使用所述类似度计算装置的处理装置,随机地生成整数,作为所述暂时密钥,
所述类似度计算装置的类似度计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的暂时密钥生成部生成的暂时密钥、和所述类似度计算装置的类似度途中解密文取得部取得的类似度途中解密文,计算所述暂时密钥与所述类似度途中解密文之和或者之差,作为所述类似度。
25.根据权利要求3至9以及11至22中的任一项所述的类似度计算系统,其特征在于,
所述类似度途中解密文是规定的有限群的元,
所述类似度计算装置的暂时密钥生成部使用所述类似度计算装置的处理装置,随机地生成整数,作为所述暂时密钥,
所述类似度计算装置的类似度计算部具有类似度解密文计算部和离散对数计算部,
所述类似度计算装置的类似度解密文计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的暂时密钥生成部生成的暂时密钥、和所述类似度计算装置的类似度途中解密文取得部取得的类似度途中解密文,计算通过所述规定的有限群的群运算将所述规定的有限群的规定的元u个、和所述类似度途中解密文进行结合而得到的元,作为类似度解密文,其中,u是作为所述暂时密钥的整数,
所述类似度计算装置的离散对数计算部使用所述类似度计算装置的处理装置,根据所述类似度计算装置的类似度解密文计算出的类似度解密文,计算通过所述规定的有限群的群运算而结合几个所述规定的元才与所述类似度解密文一致,作为所述类似度。
26.根据权利要求25所述的类似度计算系统,其特征在于,
所述类似度计算装置的离散对数计算部使用所述类似度计算装置的处理装置,在所述类似度是规定的范围内的整数的情况下,计算所述类似度,在所述类似度是所述规定的范围外的情况下,判定所述类似度是所述规定的范围外。
27.根据权利要求3至9以及11至22中的任一项所述的类似度计算系统,其特征在于,
所述类似度计算系统还具有登记装置,
所述登记装置具有存储数据的存储装置、处理数据的处理装置、公开密钥存储部、比较数据取得部、比较密文计算部、以及比较密文通知部,
所述登记装置的公开密钥存储部使用所述登记装置的存储装置,存储与所述解密装置存储的秘密密钥对应的公开密钥,
所述登记装置的比较数据取得部使用所述登记装置的处理装置,取得比较数据,
所述登记装置的比较密文计算部使用所述登记装置的处理装置,根据所述登记装置的公开密钥存储部存储的公开密钥、和所述登记装置的比较数据取得部取得的比较数据,通过使用了所述公开密钥的加密变换对所述比较数据进行变换,从而计算比较密文,
所述登记装置的比较密文通知部使用所述登记装置的处理装置,将所述登记装置的比较密文计算部计算出的比较密文通知给所述类似度计算装置,
所述类似度计算装置还具有比较密文取得部,
所述类似度计算装置的比较密文取得部使用所述类似度计算装置的处理装置,取得从所述登记装置通知到的比较密文,
所述类似度计算装置的比较密文存储部使用所述类似度计算装置的存储装置,存储所述类似度计算装置的比较密文取得部取得的比较密文。
28.一种计算机程序,其特征在于,
通过具有存储数据的存储装置和处理数据的处理装置的计算机执行,使所述计算机作为权利要求1或者权利要求2所述的类似度计算装置发挥功能。
29.一种类似度计算方法,是具有类似度计算装置和解密装置的类似度计算系统计算比较数据与对象数据的类似度的类似度计算方法,其特征在于,
所述类似度计算装置以及所述解密装置具有存储数据的存储装置和处理数据的处理装置,
所述解密装置的存储装置存储秘密密钥,
所述类似度计算装置的存储装置存储通过使用了与所述解密装置存储的秘密密钥对应的公开密钥的加密变换对所述比较数据进行变换而得到的比较密文,
所述类似度计算装置的处理装置取得通过使用了所述公开密钥的所述加密变换对所述对象数据进行变换而得到的对象密文,
所述类似度计算装置的处理装置生成暂时密钥,
所述类似度计算装置的处理装置根据所述类似度计算装置的存储装置存储的比较密文、所述类似度计算装置的处理装置取得的对象密文、以及所述类似度计算装置的处理装置生成的暂时密钥,在所述比较密文以及所述对象密文被加密了的状态下,进行类似度计算的第一阶段的计算,计算针对所计算出的结果用所述暂时密钥进行加密而得到的类似度途中密文,
所述类似度计算装置的处理装置将所述类似度计算装置的处理装置计算出的类似度途中密文通知给所述解密装置,
所述解密装置的处理装置取得从所述类似度计算装置通知到的类似度途中密文,
所述解密装置的处理装置根据所述解密装置的存储装置存储的秘密密钥、和所述解密装置的处理装置取得的类似度途中密文,使用所述秘密密钥对所述类似度途中密文进行解密,在解密出的结果通过所述暂时密钥被加密了的状态下,进行类似度计算的第二阶段的计算,从而计算所述类似度途中解密文,
所述解密装置的处理装置将所述解密装置的处理装置计算出的类似度途中解密文通知给所述类似度计算装置,
所述类似度计算装置的处理装置取得从所述解密装置通知到的类似度途中解密文,
所述类似度计算装置的处理装置根据所述类似度计算装置的处理装置生成的暂时密钥、和所述类似度计算装置的处理装置取得的类似度途中解密文,使用所述暂时密钥对所述类似度途中解密文进行解密,从而计算所述比较数据与所述对象数据的类似度。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/053797 WO2012114452A1 (ja) | 2011-02-22 | 2011-02-22 | 類似度算出システム及び類似度算出装置及びコンピュータプログラム及び類似度算出方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103380591A true CN103380591A (zh) | 2013-10-30 |
CN103380591B CN103380591B (zh) | 2016-03-30 |
Family
ID=46720272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180068222.1A Expired - Fee Related CN103380591B (zh) | 2011-02-22 | 2011-02-22 | 类似度计算系统、类似度计算装置以及类似度计算方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20130318351A1 (zh) |
EP (1) | EP2680488B1 (zh) |
JP (1) | JP5496410B2 (zh) |
CN (1) | CN103380591B (zh) |
WO (1) | WO2012114452A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104967516A (zh) * | 2015-07-24 | 2015-10-07 | 四川理工学院 | 多用户加密数据可比较加密方法及加密数据比较方法 |
CN108140334A (zh) * | 2015-10-09 | 2018-06-08 | 三菱电机株式会社 | 隐匿检索系统、管理装置、隐匿检索方法和隐匿检索程序 |
CN114641966A (zh) * | 2019-09-12 | 2022-06-17 | 索尼集团公司 | 认证装置、认证方法、程序和信息处理装置 |
Families Citing this family (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9172529B2 (en) * | 2011-09-16 | 2015-10-27 | Certicom Corp. | Hybrid encryption schemes |
US9935765B2 (en) * | 2011-11-03 | 2018-04-03 | Genformatic, Llc | Device, system and method for securing and comparing genomic data |
CN103793265B (zh) * | 2012-10-30 | 2016-05-11 | 腾讯科技(深圳)有限公司 | 优化进程的处理方法及装置 |
KR102017746B1 (ko) * | 2012-11-14 | 2019-09-04 | 한국전자통신연구원 | 유사도 산출 방법 및 그 장치 |
JP6083234B2 (ja) * | 2012-12-27 | 2017-02-22 | 富士通株式会社 | 暗号処理装置 |
JP5963936B2 (ja) | 2013-02-25 | 2016-08-03 | 三菱電機株式会社 | サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム |
US8966277B2 (en) * | 2013-03-15 | 2015-02-24 | Mitsubishi Electric Research Laboratories, Inc. | Method for authenticating an encryption of biometric data |
JP6299756B2 (ja) * | 2013-05-17 | 2018-03-28 | 日本電気株式会社 | 基板と基板装置及び基板接続方法 |
JP6142704B2 (ja) | 2013-07-11 | 2017-06-07 | 富士通株式会社 | 秘匿データ照合装置、秘匿データ照合プログラムおよび秘匿データ照合方法 |
JP6144992B2 (ja) * | 2013-08-08 | 2017-06-07 | 株式会社日立製作所 | 検索可能暗号処理システム及び方法 |
US9813246B2 (en) * | 2013-10-29 | 2017-11-07 | Jory Schwach | Encryption using biometric image-based key |
RU2681696C2 (ru) * | 2013-11-07 | 2019-03-12 | Скантраст Са | Двухмерный штрихкод и способ аутентификации штрихкода |
JP6281425B2 (ja) * | 2014-06-27 | 2018-02-21 | 富士通株式会社 | 秘匿データ照合装置、秘匿データ更新プログラムおよび秘匿データ更新方法 |
PL2993607T3 (pl) | 2014-09-02 | 2017-07-31 | Eckehard Kraska | Analiza zdarzenia zgodnie z polityką prywatności |
CN105447374B (zh) * | 2014-09-11 | 2018-08-21 | 塔塔咨询服务有限公司 | 用于产生和找回授权码的计算机实施系统及方法 |
US9438412B2 (en) * | 2014-12-23 | 2016-09-06 | Palo Alto Research Center Incorporated | Computer-implemented system and method for multi-party data function computing using discriminative dimensionality-reducing mappings |
JP6272546B2 (ja) * | 2015-02-20 | 2018-01-31 | 三菱電機株式会社 | データ保管装置及びデータ処理方法及びデータ処理プログラム |
JP2016224400A (ja) * | 2015-05-29 | 2016-12-28 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 類似情報検索方法、端末装置及び類似情報検索システム |
US9875375B2 (en) * | 2015-05-29 | 2018-01-23 | Panasonic Intellectual Property Corporation Of America | Method for performing similar-information search while keeping content confidential by encryption |
WO2016203762A1 (ja) * | 2015-06-18 | 2016-12-22 | 日本電気株式会社 | 暗号情報作成装置、暗号情報作成方法、記録媒体、及び、照合システム |
JP6504013B2 (ja) * | 2015-10-13 | 2019-04-24 | 富士通株式会社 | 暗号処理方法、暗号処理装置、および暗号処理プログラム |
US10769255B2 (en) * | 2015-11-11 | 2020-09-08 | Samsung Electronics Co., Ltd. | Methods and apparatuses for adaptively updating enrollment database for user authentication |
JP6524899B2 (ja) | 2015-12-02 | 2019-06-05 | 富士通株式会社 | 秘匿データ照合装置、秘匿データ照合プログラムおよび秘匿データ照合方法 |
EP3182640B1 (en) * | 2015-12-14 | 2018-04-25 | Panasonic Intellectual Property Corporation of America | Search method, search device, search system, and program |
US10402750B2 (en) * | 2015-12-30 | 2019-09-03 | Facebook, Inc. | Identifying entities using a deep-learning model |
KR101834504B1 (ko) * | 2016-01-15 | 2018-03-06 | 단국대학교 산학협력단 | 암복호화 장치 및 방법 |
JP6507115B2 (ja) * | 2016-03-22 | 2019-04-24 | 株式会社日立製作所 | 1:n生体認証・暗号・署名システム |
KR101834522B1 (ko) | 2016-04-22 | 2018-03-06 | 단국대학교 산학협력단 | 데이터 확인 장치 및 이를 이용하여 데이터를 확인하는 방법 |
US11101975B2 (en) | 2016-12-02 | 2021-08-24 | Nec Corporation | Ciphertext matching system and ciphertext matching method |
US11895240B2 (en) * | 2016-12-15 | 2024-02-06 | Nec Corporation | System, apparatus, method and program for preventing illegal distribution of an access token |
WO2018110608A1 (ja) * | 2016-12-15 | 2018-06-21 | 日本電気株式会社 | 照合システム、方法、装置及びプログラム |
US10438022B2 (en) * | 2016-12-16 | 2019-10-08 | Arm Limited | Logic encryption using on-chip memory cells |
US11777729B2 (en) * | 2017-01-20 | 2023-10-03 | Enveil, Inc. | Secure analytics using term generation and homomorphic encryption |
US11196541B2 (en) | 2017-01-20 | 2021-12-07 | Enveil, Inc. | Secure machine learning analytics using homomorphic encryption |
KR102476756B1 (ko) * | 2017-06-20 | 2022-12-09 | 삼성전자주식회사 | 사용자 인증을 위한 등록 데이터베이스의 적응적 갱신 방법 및 장치 |
US11082234B2 (en) * | 2017-07-06 | 2021-08-03 | Robert Bosch Gmbh | Method and system for privacy-preserving social media advertising |
WO2019014425A1 (en) * | 2017-07-13 | 2019-01-17 | Pindrop Security, Inc. | SAFE PARTY WITH SEVERAL PARTIES KNOWING NO VOICE IMPRESSIONS |
US10957355B2 (en) * | 2018-02-28 | 2021-03-23 | International Business Machines Corporation | Authenticating digital recordings |
US10721070B2 (en) | 2018-03-07 | 2020-07-21 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11394552B2 (en) | 2018-03-07 | 2022-07-19 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11265168B2 (en) | 2018-03-07 | 2022-03-01 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11789699B2 (en) | 2018-03-07 | 2023-10-17 | Private Identity Llc | Systems and methods for private authentication with helper networks |
US11170084B2 (en) | 2018-06-28 | 2021-11-09 | Private Identity Llc | Biometric authentication |
US11502841B2 (en) | 2018-03-07 | 2022-11-15 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11489866B2 (en) | 2018-03-07 | 2022-11-01 | Private Identity Llc | Systems and methods for private authentication with helper networks |
US10938852B1 (en) | 2020-08-14 | 2021-03-02 | Private Identity Llc | Systems and methods for private authentication with helper networks |
US11210375B2 (en) | 2018-03-07 | 2021-12-28 | Private Identity Llc | Systems and methods for biometric processing with liveness |
US11392802B2 (en) | 2018-03-07 | 2022-07-19 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11138333B2 (en) * | 2018-03-07 | 2021-10-05 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US10665244B1 (en) | 2018-03-22 | 2020-05-26 | Pindrop Security, Inc. | Leveraging multiple audio channels for authentication |
US20190318118A1 (en) * | 2018-04-16 | 2019-10-17 | International Business Machines Corporation | Secure encrypted document retrieval |
JP2019207281A (ja) * | 2018-05-28 | 2019-12-05 | 株式会社日立製作所 | 大小判定サーバ、大小判定暗号化システム、及び大小判定方法 |
US11063936B2 (en) * | 2018-08-07 | 2021-07-13 | Microsoft Technology Licensing, Llc | Encryption parameter selection |
JP2020072348A (ja) * | 2018-10-30 | 2020-05-07 | キヤノン株式会社 | 認証方法、認証装置、被認証装置及び画像形成装置 |
US11368308B2 (en) | 2019-01-11 | 2022-06-21 | Visa International Service Association | Privacy preserving biometric authentication |
US11943350B2 (en) * | 2019-10-16 | 2024-03-26 | Coinbase, Inc. | Systems and methods for re-using cold storage keys |
US11250116B2 (en) * | 2019-10-25 | 2022-02-15 | Visa International Service Association | Optimized private biometric matching |
US11621837B2 (en) | 2020-09-03 | 2023-04-04 | Theon Technology Llc | Secure encryption of data using partial-key cryptography |
US11310042B2 (en) | 2020-09-11 | 2022-04-19 | Crown Sterling Limited, LLC | Methods of storing and distributing large keys |
KR20220040309A (ko) * | 2020-09-23 | 2022-03-30 | 삼성전자주식회사 | 동형 암호화 장치 및 그 동작 방법 |
US11546164B2 (en) * | 2020-10-23 | 2023-01-03 | Visa International Service Association | Verification of biometric templates for privacy preserving authentication |
US11528136B2 (en) | 2020-11-24 | 2022-12-13 | Crown Sterling Limited, LLC | Decryption of encrypted data missing a private key |
CN115211074A (zh) * | 2021-02-10 | 2022-10-18 | 支付宝实验室(新加坡)有限公司 | 用于处理参考人脸的方法和系统 |
US11755772B2 (en) | 2021-09-20 | 2023-09-12 | Crown Sterling Limited, LLC | Securing data in a blockchain with a one-time pad |
US11943336B2 (en) | 2021-11-22 | 2024-03-26 | Theon Technology Llc | Use of gradient decent function in cryptography |
US11902420B2 (en) | 2021-11-23 | 2024-02-13 | Theon Technology Llc | Partial cryptographic key transport using one-time pad encryption |
CN114419719B (zh) * | 2022-03-29 | 2022-08-12 | 北京爱笔科技有限公司 | 一种生物特征的处理方法及装置 |
US11868305B2 (en) * | 2022-04-25 | 2024-01-09 | Simuli, Inc. | Nonlinear, decentralized processing unit and related systems or methodologies |
US11569842B1 (en) * | 2022-04-25 | 2023-01-31 | Simuli, Inc. | Nonlinear, decentralized processing unit and related systems or methodologies |
CN115834088A (zh) * | 2023-02-21 | 2023-03-21 | 杭州天谷信息科技有限公司 | 一种生物特征认证方法和系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040250073A1 (en) * | 2003-06-03 | 2004-12-09 | Cukier Johnas I. | Protocol for hybrid authenticated key establishment |
CN101075868A (zh) * | 2006-05-19 | 2007-11-21 | 华为技术有限公司 | 一种远程身份认证的系统、终端、服务器和方法 |
CN101098232A (zh) * | 2007-07-12 | 2008-01-02 | 兰州大学 | 一种动态口令与多生物特征结合的身份认证方法 |
US20080072063A1 (en) * | 2006-09-06 | 2008-03-20 | Kenta Takahashi | Method for generating an encryption key using biometrics authentication and restoring the encryption key and personal authentication system |
CN101221612A (zh) * | 2007-01-11 | 2008-07-16 | 上海银晨智能识别科技有限公司 | 利用人脸识别进行加密解密电子文档的方法 |
CN101277367A (zh) * | 2007-03-28 | 2008-10-01 | 夏普株式会社 | 图像形成装置、图像处理装置、系统及方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4519963B2 (ja) | 1999-06-21 | 2010-08-04 | 富士通株式会社 | 生体情報の暗号化・復号化方法および装置並びに、生体情報を利用した本人認証システム |
WO2005015462A1 (en) * | 2003-08-08 | 2005-02-17 | Koninklijke Philips Electronics N.V. | System for processing data and method thereof |
EP1815637B1 (en) * | 2004-11-16 | 2016-04-20 | Koninklijke Philips N.V. | Securely computing a similarity measure |
JP2006262333A (ja) | 2005-03-18 | 2006-09-28 | Ic Brains Co Ltd | 生体認証システム |
US8204213B2 (en) * | 2006-03-29 | 2012-06-19 | International Business Machines Corporation | System and method for performing a similarity measure of anonymized data |
WO2009011661A1 (en) * | 2007-07-18 | 2009-01-22 | Agency For Science, Technology And Research | Method and device for determining a similarity value between minutiae templates |
JP2009129210A (ja) | 2007-11-25 | 2009-06-11 | Tokyo Institute Of Technology | チャレンジ・レスポンス生体認証方法 |
JP4929136B2 (ja) * | 2007-11-27 | 2012-05-09 | 株式会社日立製作所 | 生体認証方法、装置およびシステム |
WO2009096475A1 (ja) * | 2008-01-29 | 2009-08-06 | Kabushiki Kaisha Dds | ハイブリッド生体認証装置、ハイブリッド生体認証方法、ハイブリッド生体認証用コンピュータプログラムを記憶したコンピュータ読み取り可能な記憶媒体 |
JP2010054875A (ja) | 2008-08-29 | 2010-03-11 | Mitsubishi Electric Corp | 演算装置、復号装置、暗号化装置、情報共有システム、2dnf演算システム、署名生成装置、署名検証装置、署名処理システム、署名検証システム、演算方法及び演算プログラム |
US8249250B2 (en) * | 2009-03-30 | 2012-08-21 | Mitsubishi Electric Research Laboratories, Inc. | Secure similarity verification between homomorphically encrypted signals |
JP2010286937A (ja) * | 2009-06-10 | 2010-12-24 | Hitachi Ltd | 生体認証方法、及び、生体認証に用いるクライアント端末、認証サーバ |
US20100329448A1 (en) * | 2009-06-30 | 2010-12-30 | Rane Shantanu D | Method for Secure Evaluation of a Function Applied to Encrypted Signals |
EP2495908A4 (en) * | 2009-10-29 | 2017-07-19 | Mitsubishi Electric Corporation | Data processing device |
JP5573293B2 (ja) * | 2010-03-30 | 2014-08-20 | 富士通株式会社 | 認証装置、暗号化装置、トークンデバイス、認証方法、および認証プログラム |
-
2011
- 2011-02-22 CN CN201180068222.1A patent/CN103380591B/zh not_active Expired - Fee Related
- 2011-02-22 US US13/982,546 patent/US20130318351A1/en not_active Abandoned
- 2011-02-22 JP JP2013500748A patent/JP5496410B2/ja not_active Expired - Fee Related
- 2011-02-22 WO PCT/JP2011/053797 patent/WO2012114452A1/ja active Application Filing
- 2011-02-22 EP EP11859252.6A patent/EP2680488B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040250073A1 (en) * | 2003-06-03 | 2004-12-09 | Cukier Johnas I. | Protocol for hybrid authenticated key establishment |
CN101075868A (zh) * | 2006-05-19 | 2007-11-21 | 华为技术有限公司 | 一种远程身份认证的系统、终端、服务器和方法 |
US20080072063A1 (en) * | 2006-09-06 | 2008-03-20 | Kenta Takahashi | Method for generating an encryption key using biometrics authentication and restoring the encryption key and personal authentication system |
CN101221612A (zh) * | 2007-01-11 | 2008-07-16 | 上海银晨智能识别科技有限公司 | 利用人脸识别进行加密解密电子文档的方法 |
CN101277367A (zh) * | 2007-03-28 | 2008-10-01 | 夏普株式会社 | 图像形成装置、图像处理装置、系统及方法 |
CN101098232A (zh) * | 2007-07-12 | 2008-01-02 | 兰州大学 | 一种动态口令与多生物特征结合的身份认证方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104967516A (zh) * | 2015-07-24 | 2015-10-07 | 四川理工学院 | 多用户加密数据可比较加密方法及加密数据比较方法 |
CN104967516B (zh) * | 2015-07-24 | 2018-04-24 | 四川理工学院 | 多用户加密数据可比较加密方法及加密数据比较方法 |
CN108140334A (zh) * | 2015-10-09 | 2018-06-08 | 三菱电机株式会社 | 隐匿检索系统、管理装置、隐匿检索方法和隐匿检索程序 |
CN108140334B (zh) * | 2015-10-09 | 2021-03-23 | 三菱电机株式会社 | 隐匿检索系统、管理装置、隐匿检索方法和记录介质 |
CN114641966A (zh) * | 2019-09-12 | 2022-06-17 | 索尼集团公司 | 认证装置、认证方法、程序和信息处理装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2012114452A1 (ja) | 2012-08-30 |
JPWO2012114452A1 (ja) | 2014-07-07 |
CN103380591B (zh) | 2016-03-30 |
EP2680488B1 (en) | 2019-08-21 |
US20130318351A1 (en) | 2013-11-28 |
EP2680488A1 (en) | 2014-01-01 |
JP5496410B2 (ja) | 2014-05-21 |
EP2680488A4 (en) | 2017-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103380591B (zh) | 类似度计算系统、类似度计算装置以及类似度计算方法 | |
CN102598576B (zh) | 数据处理装置 | |
US9749128B2 (en) | Compact fuzzy private matching using a fully-homomorphic encryption scheme | |
EP2750323B1 (en) | Encryption processing apparatus and method | |
Zhou et al. | Efficient homomorphic encryption on integer vectors and its applications | |
CN103975553B (zh) | 数据处理装置以及数据处理方法 | |
JP6421576B2 (ja) | 暗号処理装置、暗号処理方法、及び暗号処理プログラム | |
CN111541679B (zh) | 一种云环境下基于秘密共享的图像安全检索方法 | |
CN110635909B (zh) | 一种基于属性的抗合谋攻击的代理重加密方法 | |
CN1778065B (zh) | 基于生物特性身份的加密方法和设备 | |
CN106788963A (zh) | 一种改进的格上基于身份的全同态加密方法 | |
CN114065169B (zh) | 一种隐私保护生物认证方法和装置、电子设备 | |
Tamiya et al. | Improved post-quantum-secure face template protection system based on packed homomorphic encryption | |
Jin et al. | Privacy preserving face identification in the cloud through sparse representation | |
Atee et al. | Cryptography and image steganography using dynamic encryption on LSB and color image based data hiding | |
JP5651609B2 (ja) | 検索可能暗号システム、検索装置、計算装置、及びプログラム | |
CN114900301A (zh) | 一种满足mci安全且指定服务器的公钥可搜索加密方法 | |
Alarcon-Aquino et al. | Biometric Cryptosystem based on Keystroke Dynamics and K-medoids | |
Rane et al. | An attribute-based framework for privacy preserving image querying | |
Chabanne et al. | One Picture is Worth a Thousand Words: A New Wallet Recovery Process | |
WO2021070838A1 (ja) | 秘匿認証方法および秘匿認証システム |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160330 Termination date: 20200222 |
|
CF01 | Termination of patent right due to non-payment of annual fee |