首页> 中国专利> 密文生成装置、密码通信系统以及群参数生成装置

密文生成装置、密码通信系统以及群参数生成装置

摘要

随机数生成部(222)随机地生成整数(s)。第一密文生成部(241)根据整数(s)对明文(M)进行加密而生成第一密文(C1)。第二密文生成部(242)根据整数(s)与接收者ID生成第二密文(C2)。第三密文生成部(243)根据整数(s)生成第三密文(C3)。哈希值计算部(244)结合第一密文(C1)、第二密文(C2)和第三密文(C3)而计算出哈希值(H

著录项

  • 公开/公告号CN101617351A

    专利类型发明专利

  • 公开/公告日2009-12-30

    原文格式PDF

  • 申请/专利权人 三菱电机株式会社;

    申请/专利号CN200780051866.3

  • 发明设计人 高岛克幸;

    申请日2007-01-19

  • 分类号

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人许海兰

  • 地址 日本东京

  • 入库时间 2023-12-17 23:18:41

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-01-03

    未缴年费专利权终止 IPC(主分类):H04L9/30 授权公告日:20110622 终止日期:20190119 申请日:20070119

    专利权的终止

  • 2011-06-22

    授权

    授权

  • 2010-02-24

    实质审查的生效

    实质审查的生效

  • 2009-12-30

    公开

    公开

说明书

技术领域

本发明涉及使用了基于ID的密码通信方式的密码通信系统。

背景技术

在公开密钥密码方式中,发送利用发送对方的公开密钥进行了加密的数据,发送对方利用与公开密钥成对(pair)的秘密密钥进行解密,从而实现只有发送对方可以解密的密码通信。

以往,为了保证公开密钥是发送对方的公开密钥,对公开密钥认证机构发行的公开密钥证书进行验证。

另外,提出了如下基于ID的密码通信方式:即使没有像公开密钥认证机构那样的基础设施,为了保证公开密钥与其所有者的对应,将发送对方的姓名、名称、机器序号这样的识别名(ID)用作公开密钥。

为了保证公开密钥密码方式的安全性,将公开密钥密码方式的安全性归结于求解数学上的问题的困难性来进行证明。

即,当存在假设有可以随机地解读其密码的攻击者、并通过利用该攻击者而可以求解其数学上的问题的算法的情况下,其密码方式归结于其数学上的问题。

在该证明中重要的是所归结的数学上的问题的优劣、归结效率的优劣、模型的优劣。

归结的数学上的问题的优劣是指,求解其问题的困难度。可以归结为难以求解的问题的公开密钥密码方式可以说其安全性相应地高。

归结效率的优劣是指,攻击者为了解读密码而利用的资源(时间、存储器等)、与为了利用攻击者求解数学上的问题而利用的资源之间的关系。如果在密码解读中所需的资源、与为了求解数学上的问题而所需的资源之间没有多少差,则说明归结效率优良。在该情况下,如果能够解读密码,则可以求解数学上的问题,所以如果取对偶,则只要难以求解数学上的问题,就相同程度地也难以解读密码。相对于此,在归结效率差的情况下,即,在与密码解读所需的资源比较时用于求解数学上的问题所需的资源非常大的情况下,即使难以求解数学上的问题,但未必相同程度地难以解读密码。

模型的优劣是指,成为证明前提的模型是否切合现实。例如,不使用随机预言(random oracle)的模型是比假设随机预言的模型更优良的模型。

非专利文献1:国际公开2005-050908号

非专利文献1:境隆一、大岸聖史、笠原正雄「楕円曲線上のペアリングを用いた暗号方式」暗号と情報セキユリテイシンポジウム(SCIS 2001)、2001年

非专利文献2:Dan Boneh、Matt Franklin“Identity-Based Encryption from the Weil Pairing”Crypto 2001、LNCS 2139、213~229页、2001年

非专利文献3:Xavier Boyen“The BB1 Identity-Based Cryptosystem:A Standard for Encryption and Key Encapsulation”Submissions for IEEE P1363.3、2006年(http://grouper.ieee.org/groups/1363/IBC/submissions/index.html)

非专利文献4:Craig Gentry“PracticalIdentity-Based Encryption Without Random Oracles”Eurocrypt 2006、LNCS 4004、445~464页、2006年

非专利文献5:Jung Hee Cheon“Security Analysis of the Strong Diffie-Hellman Problem”Eurocrypt 2006、1~13页、2006年

非专利文献6:Mihir Bellare、Alexandra Boldyreva、Silvio Micali“Public-key Encryption in a Multi-User Setting:Secutrity Proofs andImprovements”Eurocrypt 2000、LNCS 1807、2000年(http://www-cse.ucsd.edu/users/mihir/crypto-research-papers.html)

非专利文献7:Mihir Bellare、Alexandra Boldyreva、Jesica Staddon“Multi-Recipient Encryption Schemes:Security Notions and Randomness Re-Use”PKC 2003、LNCS 2567、2003年(http://www-cse.uscd.edu/users.mihir/crypto-research-papers.html)

非专利文献8:Ronald Cramer、Victor Shoup“Design and Analysis of Practical Public-Key Encryption Schemes Secure against Adaptive Chosen Ciphertext Attack”SIAM J.Comput、vol.33、2003年

非专利文献9:Dan Boneh、Xavier Boyen“Efficient Selective-ID SecureIdentity Based Encryption Without Random Oracles”Eurocrypt 2004、LNCS 3027、223~238页、2004年(http://crypto.sta.nford.edu/~dabo/)

非专利文献10:Brent Waters“EfficientIdentity-Based Encryption Without Random Oracles”Eurocrypt 2005(http://www.csl.sricom/users/bwaters/publications/publications.html)

非专利文献11:David Naccache“Secureand Practical Identity-Based Encryption”(http://eprint.iacr.org/2005/369)

非专利文献12:Sanjit Chatterjee、Palash Sarkar“Trading Time for Space:Towards an Efficient IBE Scheme with Short(er)Public Parameters in the Standard Model”ICISC 2005、LNCS  3935、424~440页、2006年

非专利文献13:N.P.Smart“Efficient Key Encapsulation to Multiple Parties”SCN 2004、LNCS 3352、208~219页、2005年

非专利文献14:M.Barbosa、P.Farshim“Efficient Identity-Based Key Encapsulationto Multiple Parties”Cryptography and Coding、10th IMAInt.Cof.2005、LNCS 3796、SpringerVerlog、428~441页、2005年

非专利文献15:Joonsang Baek、ReihanehSafavi-Naini、Willy Susilo“Efficient Multi-receiver Identity-Based Encryption and Its Application to Broadcast Encryption”PKC2005、LNCS  3386、380~397页、2005年

非专利文献16:Sanjit Chatterjee、Palash Sarkar“Generalization of theSelective-ID Security Model forHIBE Protocols”PKC 2006、2006年

非专利文献17:Sanjit Chatterjee、Palash Sarkar“Multi-receiver Identity-Based Key Encapsulation withShortened Ciphertext”Indocryp t2006、LNCS 4329、394~408页、2006年

非专利文献18:Xavier Boyen、Qixiang Mei、Brent Waters“Direct Chosen Ciphertext Security from Identity-Based Techniques”ACM-CCS 2005、320~329页、2005年

发明要解决的课题

作为密码的利用方法,有将对同一明文(plaintext)进行加密而得到的密文(ciphertext)发送给多个不同的接收者这样的使用方法。

在公开密钥密码方式中,由于密码处理花费时间,所以通常将对话密钥进行加密而发送给接收者,通过密码处理快的共用密钥密码方式,使用所发送的对话密钥,对想要发送的数据进行加密。

在公开密钥密码方式中,使用各个接收者的公开密钥对明文(对话密钥)进行加密而生成多个密文,并将生成的多个密文集中为一个,通过邮件通信、数据广播等进行发送。

在以往的公开密钥密码方式中,讨论了有关使用了这种对多个接收者进行发送的使用方法时的安全性,但在基于ID的密码方式中,关于这种多个接收者时的安全性的讨论还不充分。

另外,在接收者较多的情况下,即使是将对话密钥进行加密的处理也需要较多的时间,所以需要使处理高效化。

发明内容

本发明是例如为了解决如上所述的课题而完成的,其目的在于提供一种基于ID的密码方式,在将同一明文进行加密并发送给多个接收者的多个接收者环境中,密码处理所需的资源少也可以,可以高速处理。

用于解决课题的方案

本发明的密文生成装置,生成将明文M通知给n个接收者(n是1以上的整数)的密文C,其特征在于,具有:

存储信息的存储装置;处理信息的处理装置;密码参数存储部;接收者识别输入部;明文输入部;密文主文生成部;哈希值计算部;密文验证文生成部;以及密文结合部,

上述密码参数存储部使用上述存储装置,存储公开密码参数,

上述接收者识别输入部使用上述处理装置,输入分别识别n个接收者的n个接收者识别信息IDi(i是1以上n以下的整数),

上述明文输入部使用上述处理装置,输入明文M,

上述密文主文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数、上述接收者识别输入部输入的n个接收者识别信息IDi、以及上述明文输入部输入的明文M,生成与n个接收者对应的n个密文主文CBi(i是1以上n以下的整数),

上述哈希值计算部使用上述处理装置,结合上述密文主文生成部生成的n个密文主文CBi,生成结合密文,并使用上述处理装置,根据生成的结合密文,计算出哈希值H,

上述密文验证文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数、以及上述哈希值计算部计算出的哈希值H,生成密文验证文CC,

上述密文结合部使用上述处理装置,结合上述密文主文生成部生成的n个密文主文CBi、和上述密文验证文生成部生成的密文验证文CC,而设为一个密文C。

本发明的密文生成装置的特征在于,还具有随机数生成部,

上述随机数生成部使用上述处理装置,随机地生成与n个接收者对应的n个整数si(i是1以上n以下的整数),

上述密文主文生成部具有第一密文生成部、第二密文生成部、以及第三密文生成部,

上述第一密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数、上述明文输入部输入的明文M、以及上述随机数生成部生成的n个整数si,生成与n个接收者对应的n个第一密文C1i(i是1以上n以下的整数),

上述第二密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数、上述接收者识别输入部输入的n个接收者识别信息IDi、以及上述随机数生成部生成的n个整数si,生成与n个接收者对应的n个第二密文C2i(i是1以上n以下的整数),

上述第三密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数、以及上述随机数生成部生成的n个整数si,生成与n个接收者对应的n个第三密文C3i(i是1以上n以下的整数),

将上述第一密文生成部生成的n个第一密文C1i、上述第二密文生成部生成的n个第二密文C2i、以及上述第三密文生成部生成的n个第三密文C3i,设为与n个接收者对应的n个密文主文CBi

上述哈希值计算部使用上述处理装置,结合上述第一密文生成部生成的n个第一密文C1i、上述第二密文生成部生成的n个第二密文C2i、以及上述第三密文生成部生成的n个第三密文C3i,设为一个结合密文,并使用上述处理装置,根据结合的一个结合密文,计算出一个哈希值H,

上述密文验证文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数、上述随机数生成部生成的n个整数si、以及上述哈希值计算部计算出的一个哈希值H,生成与n个接收者对应的n个密文验证文CCi(i是1以上n以下的整数),

上述密文结合部使用上述处理装置,结合上述第一密文生成部生成的n个第一密文C1i、上述第二密文生成部生成的n个第二密文C2i、上述第三密文生成部生成的n个第三密文C3i、以及上述密文验证文生成部生成的n个密文验证文CCi,设为一个密文C。

本发明的密文生成装置还将以下点作为特征。

上述密码参数存储部的特征是,使用上述存储装置,作为公开密码参数而存储表示自然数r、阶数(order)是上述自然数r的乘法群G1、阶数是上述自然数r的乘法群G2、阶数是上述自然数r的乘法群GT、根据乘法群G1的要素与乘法群G2的要素计算出乘法群GT的要素的配对e、根据乘法群GT的要素计算出规定长度的位串的密钥生成函数KDF、根据任意长度的位串计算出小于上述自然数r的自然数的哈希函数HF、乘法群G1的要素g、乘法群G1的要素g1、乘法群G2的要素g2、乘法群G2的要素h1、乘法群G2的要素h2、以及乘法群G2的要素h3的信息,

上述接收者识别输入部使用上述处理装置,输入n个整数IDi而作为n个接收者识别信息,

上述随机数生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的自然数r,随机地生成与n个接收者对应的n个1以上且小于自然数r的整数si(i是1以上n以下的整数),

上述第一密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的乘法群G1的要素g、乘法群G2的要素h1和配对e、密钥生成函数KDF、以及上述随机数生成部生成的n个整数si,计算出与n个接收者对应的n个密钥位串ki=KDF(e(g,h1)^si)(i是1以上n以下的整数),并使用上述处理装置,利用所计算出的n个密钥位串ki,对上述明文输入部输入的明文M分别进行加密,而设为与n个接收者对应的n个第一密文C1i(i是1以上n以下的整数),

上述第二密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的乘法群G1的要素g、乘法群G1的要素g1、上述接收者识别输入部输入的n个整数IDi、以及上述随机数生成部生成的n个整数si,计算出与n个接收者对应的乘法群G1的n个要素ui=(g1·g^-IDi)^si(i是1以上n以下的整数),将分别表示所计算出的乘法群G1的n个要素ui的位串,设为与n个接收者对应的n个第二密文C2i(i是1以上n以下的整数),

上述第三密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的乘法群G1的要素g、乘法群G2的要素g2和配对e、以及上述随机数生成部生成的n个整数si,计算出与n个接收者对应的乘法群GT的n个要素vi=e(g,g2)^si(i是1以上n以下的整数),并将分别表示所计算出的乘法群GT的要素vi的位串,设为与n个接收者对应的n个第三密文C3i(i是1以上n以下的整数),

上述哈希值计算部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的哈希函数HF,计算出一个自然数β0而设为哈希值H,

上述密文验证文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的乘法群G1的要素g、乘法群G2的要素h2、乘法群G2的要素h3和配对e、上述随机数生成部生成的n个整数si、以及上述哈希值计算部计算出的一个自然数β0,计算出与n个接收者对应的乘法群GT的n个要素yi=e(g,h2)^si·e(g,h3)^(si·β0)(i是1以上n以下的整数),将分别表示计算出的乘法群GT的n个要素yi的位串设为与n个接收者对应的n个密文验证文CCi(i是1以上n以下的整数)。

本发明的密文生成装置还将以下点作为特征。

上述密码参数存储部的特征是,使用上述存储装置,作为公开密码参数而存储表示自然数r、阶数是上述自然数r的乘法群G1、阶数是上述自然数r的乘法群G2、阶数是上述自然数r的乘法群GT、根据乘法群G1的要素与乘法群G2的要素计算出乘法群GT的要素的配对e、根据乘法群GT的要素计算出规定长度的位串的密钥生成函数KDF、根据规定长度的位串计算出乘法群GT的要素的两个函数V1和V2、根据任意长度的位串计算出规定长度的位串的哈希函数HF、乘法群G1的要素g、乘法群G1的要素g1、乘法群G2的要素g2的信息,

上述接收者识别输入部使用上述处理装置,输入n个规定长度的位串IDi而作为n个接收者识别信息,

上述随机数生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的自然数r,随机地生成与n个接收者对应的n个1以上且小于自然数r的整数si(i是1以上n以下的整数),

上述第一密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的乘法群G1的要素g1、乘法群G2的要素g2、配对e和密钥生成函数KDF、以及上述随机数生成部生成的n个整数si,计算出与n个接收者对应的n个密钥位串ki=KDF(e(g1,g2)^si)(i是1以上n以下的整数),并使用上述处理装置,利用所计算出的n个密钥位串ki,对上述明文输入部输入的明文M分别进行加密,而设为与n个接收者对应的n个第一密文C1i(i是1以上n以下的整数),

上述第二密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的函数V1、上述随机数生成部生成的n个整数si、以及上述接收者识别输入部输入的n个规定长度的位串IDi,计算出与n个接收者对应的乘法群G2的n个要素ui=V1(IDi)^si(i是1以上n以下的整数),并将分别表示所计算出的乘法群G2的n个要素ui的位串设为与n个接收者对应的n个第二密文C2i(i是1以上n以下的整数),

上述第三密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的乘法群G1的要素g、以及上述随机数生成部生成的n个整数si,计算出与n个接收者对应的乘法群G1的n个要素vi=g^si(i是1以上n以下的整数),并将分别表示所计算出的乘法群G1的n个要素vi的位串,设为与n个接收者对应的n个第三密文C3i(i是1以上n以下的整数),

上述哈希值计算部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的哈希函数HF,计算出一个规定长度的位串w0而设为哈希值H,

上述密文验证文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的函数V2、上述随机数生成部生成的n个整数si、以及上述哈希值计算部计算出的一个规定长度的位串w0,计算出与n个接收者对应的乘法群G2的n个要素yi=V2(w0)^si(i是1以上n以下的整数),并将分别表示计算出的乘法群G2的n个要素yi的位串,设为与n个接收者对应的n个密文验证文CCi(i是1以上n以下的整数)。

本发明的密文生成装置还将以下点作为特征。

上述密码参数存储部使用上述存储装置,作为表示两个函数V1和V2的信息而存储表示乘法群G2的m1个要素hξ(ξ是1以上m1以下的整数)以及乘法群G2的两个要素h1’和h2’的信息,

上述第二密文生成部使用上述处理装置,将上述接收者识别输入部输入的n个规定长度的位串IDi分别分割为m1个规定长度的位串v(ξ是1以上m1以下的整数),并将分割的m1个规定长度的位串v作为m1个整数而进行处理,并使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的乘法群G2的m1个要素hξ(ξ是1以上m1以下的整数)和乘法群G2的要素h1’、以及分割的m1个整数v,计算出函数V1的值即乘法群G2的要素V1(IDi)=h1’·∏(hξ^v)(ξ是1以上m1以下的整数),

上述密文验证文生成部使用上述处理装置,将上述哈希值计算部计算出的规定长度的位串w分割为m1个规定长度的位串vξ(ξ是1以上m1以下的整数),并将分割的m1个规定长度的位串vξ作为m1个整数而进行处理,并使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的乘法群G2的m1个要素hξ(ξ是1以上m1以下的整数)和乘法群G2的要素h2’、以及分割的m1个整数vξ,计算出函数V2的值即乘法群G2的要素V 2(w)=h 2’·∏(hξ^vξ)(ξ是1以上m1以下的整数)。

本发明的密文生成装置还将以下点作为特征。

上述密文主文生成部的特征是,使用上述处理装置,生成包括上述接收者识别输入部输入的n个接收者识别信息IDi的n个密文主文CBi

本发明的密文生成装置的特征在于,还具有密文通知部,

上述密文通知部使用上述处理装置,对利用上述接收者识别输入部输入的n个接收者识别信息IDi识别的n个接收者,通知上述密文结合部结合的一个密文C。

本发明的密文生成装置的特征在于,还具有对话密钥生成部,

上述对话密钥生成部使用上述处理装置,随机地生成规定长度的位串而设为对话密钥K,

上述明文输入部使用上述处理装置,作为明文M而输入上述对话密钥生成部生成的对话密钥K。

本发明的密文生成装置的特征在于,还具有数据输入部、数据加密部、以及密文通知部,

上述数据输入部使用上述处理装置,输入应发送给n个接收者的一个明文数据,

上述数据加密部使用上述处理装置,利用上述对话密钥生成部生成的对话密钥K,对上述数据输入部输入的一个明文数据进行加密,设为一个加密数据,

上述密文通知部使用上述处理装置,对利用由上述接收者识别输入部输入的n个接收者识别信息IDi识别的n个接收者,通知上述密文结合部结合的一个密文C、以及上述数据加密部加密的一个加密数据。

本发明的密码通信系统,对各自具有对应的密文接收装置的n个接收者(n是1以上的整数),利用一个密文C通知明文M,其特征在于,

具有密码参数生成装置、密文生成装置、以及多个密文接收装置,

上述密码参数生成装置具有:

存储信息的存储装置;处理信息的处理装置;秘密信息生成部;秘密信息存储部;公开参数生成部;公开参数公开部;识别信息输入部;秘密密钥生成部;以及秘密密钥通知部,

上述秘密信息生成部使用上述处理装置,随机地生成秘密信息,

上述秘密信息存储部使用上述存储装置,存储上述秘密信息生成部生成的秘密信息,

上述公开参数生成部使用上述处理装置,根据上述秘密信息生成部生成的秘密信息,生成公开密码参数,

上述公开参数公开部使用上述处理装置,公开上述公开参数生成部生成的公开密码参数,

上述识别信息输入部使用上述处理装置,输入对与上述多个密文接收装置中的一个密文接收装置对应的一个接收者进行识别的接收者识别信息ID,

上述秘密密钥生成部使用上述处理装置,根据上述秘密信息存储部存储的秘密信息、上述公开参数生成部生成的公开密码参数、以及上述识别信息输入部输入的接收者识别信息ID,生成与上述一个接收者对应的秘密密钥dID

上述秘密密钥通知部使用上述处理装置,对与上述一个接收者对应的一个密文接收装置,秘密地通知上述秘密密钥生成部生成的秘密密钥dID

上述密文生成装置具有:

存储信息的存储装置;处理信息的处理装置;密码参数存储部;接收者识别输入部;明文输入部;密文主文生成部;哈希值计算部;密文验证文生成部;密文结合部;以及密文通知部,

上述密码参数存储部使用上述存储装置,存储上述密码参数生成装置公开的公开密码参数,

上述接收者识别输入部使用上述处理装置,输入分别识别n个接收者的n个接收者识别信息IDi(i是1以上n以下的整数),

上述明文输入部使用上述处理装置,输入明文M,

上述密文主文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数、上述接收者识别输入部输入的n个接收者识别信息IDi、以及上述明文输入部输入的明文M,生成与n个接收者对应的n个密文主文CBi(i是1以上n以下的整数),

上述哈希值计算部使用上述处理装置,结合上述密文主文生成部生成的n个密文主文CBi,生成结合密文,并使用上述处理装置,根据生成的结合密文,计算出哈希值H,

上述密文验证文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数、以及上述哈希值计算部计算出的哈希值H,生成密文验证文CC,

上述密文结合部使用上述处理装置,结合上述密文主文生成部生成的n个密文主文CBi、和上述密文验证文生成部生成的密文验证文CC,设为一个密文C,

上述密文通知部使用上述处理装置,对与上述n个接收者对应的n个密文接收装置,通知上述密文结合部结合的一个密文C,

上述多个密文接收装置分别具有:

存储信息的存储装置;处理信息的处理装置;公开参数存储部;秘密密钥存储部;密文接收部;密文分解部;验证哈希值计算部;密文验证部;以及密文解密部,

上述公开参数存储部使用上述存储装置,存储上述密码参数生成装置公开的公开密码参数,

上述秘密密钥存储部使用上述存储装置,存储上述密码参数生成装置通知的秘密密钥dID

上述密文接收部使用上述处理装置,接收上述密文生成装置通知的一个密文C,

上述密文分解部使用上述处理装置,根据上述密文接收部接收到的一个密文C,取得n个密文主文CBi、以及密文验证文CC,

上述验证哈希值计算部使用上述处理装置,根据将上述密文分解部取得的n个密文主文CBi结合而得到的验证结合密文,计算出验证哈希值H’,

上述密文验证部使用上述处理装置,根据上述公开参数存储部存储的公开密码参数、上述密文分解部取得的n个密文主文CBi中的对应于密文接收装置所对应的接收者的一个对应密文主文CBID、密文验证文CC、以及上述验证哈希值计算部计算出的验证哈希值H’,判定上述密文接收部接收到的一个密文C中是否有匹配性,

上述密文解密部在上述密文验证部判定为上述密文接收部接收到的一个密文C中有匹配性的情况下,使用上述处理装置,根据上述公开参数存储部存储的公开密码参数、上述秘密密钥存储部存储的秘密密钥dID、以及上述密文分解部取得的n个密文主文CBi中的对应于密文接收装置所对应的接收者的一个对应密文主文CBID,还原明文M。

本发明的密码通信系统还将以下点作为特征。

上述密文生成装置的特征是,还具有随机数生成部,

上述随机数生成部使用上述处理装置,随机地生成与n个接收者对应的n个整数si(i是1以上n以下的整数),

上述密文主文生成部具有第一密文生成部、第二密文生成部、以及第三密文生成部,

上述第一密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数、上述明文输入部输入的明文M、以及上述随机数生成部生成的n个整数si,生成与n个接收者对应的n个第一密文C1i(i是1以上n以下的整数),

上述第二密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数、上述接收者识别输入部输入的n个接收者识别信息IDi、以及上述随机数生成部生成的n个整数si,生成与n个接收者对应的n个第二密文C2i(i是1以上n以下的整数),

上述第三密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数、以及上述随机数生成部生成的n个整数si,生成与n个接收者对应的n个第三密文C3i(i是1以上n以下的整数),

将上述第一密文生成部生成的n个第一密文C1i、上述第二密文生成部生成的n个第二密文C2i、以及上述第三密文生成部生成的n个第三密文C3i,设为与n个接收者对应的n个密文主文CBi

上述哈希值计算部使用上述处理装置,结合上述第一密文生成部生成的n个第一密文C1i、上述第二密文生成部生成的n个第二密文C2i、和上述第三密文生成部生成的n个第三密文C3i,设为一个结合密文,并使用上述处理装置,根据结合的一个结合密文,计算出一个哈希值H,

上述密文验证文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数、上述随机数生成部生成的n个整数si、以及上述哈希值计算部计算出的一个哈希值H,生成与n个接收者对应的n个密文验证文CCi(i是1以上n以下的整数),

上述密文结合部使用上述处理装置,结合上述第一密文生成部生成的n个第一密文C1i、上述第二密文生成部生成的n个第二密文C2i、上述第三密文生成部生成的n个第三密文C3i、和上述密文验证文生成部生成的n个密文验证文CCi,设为一个密文C,

上述密文分解部使用上述处理装置,根据上述密文接收部接收到的一个密文C,取得n个第一密文C1i、n个第二密文C2i、n个第三密文C3i、以及n个密文验证文CCi,并使用上述处理装置,在取得的n个第一密文C1i、n个第二密文C2i、n个第三密文C3i、以及n个密文验证文CCi中,取得对应于密文接收装置所对应的接收者的一个对应第一密文C1ID、一个对应第二密文C2ID、一个对应第三密文C3ID、以及一个对应密文验证文CCID

上述验证哈希值计算部使用上述处理装置,根据将上述密文分解部取得的n个第一密文C1i、n个第二密文C2i、n个第三密文C3i结合而得到的验证结合密文,计算出验证哈希值H’,

上述密文验证部使用上述处理装置,根据上述公开参数存储部存储的公开密码参数、上述密文分解部取得的一个对应第二密文C2ID与一个对应第三密文C3ID中的至少某一个和一个对应密文验证文CCID、以及上述验证哈希值计算部计算出的验证哈希值H’,判定上述密文接收部接收到的一个密文C中是否有匹配性,

上述密文解密部在上述密文验证部判定为上述密文接收部接收到的一个密文C中有匹配性的情况下,使用上述处理装置,根据上述公开参数存储部存储的公开密码参数、上述秘密密钥存储部存储的秘密密钥dID、以及上述密文分解部取得的一个对应第一密文C1ID、一个对应第二密文C2ID和一个对应第三密文C3ID,还原明文M。

本发明的密码通信系统还将以下点作为特征。

上述密码参数生成装置的特征是,还具有群参数存储部,

上述群参数存储部使用上述存储装置,作为群参数而存储表示自然数r、阶数是上述自然数r的乘法群G1、阶数是上述自然数r的乘法群G2、阶数是上述自然数r的乘法群GT、以及根据乘法群G1的要素与乘法群G2的要素计算出乘法群GT的要素的配对e的信息,

上述秘密信息生成部使用上述处理装置,根据上述群参数存储部存储的群参数所表示的自然数r,随机地生成1以上且小于自然数r的整数α,

上述秘密信息存储部使用上述存储装置,存储表示上述秘密信息生成部所生成的整数α的信息而作为秘密信息,

上述公开参数生成部使用上述处理装置,决定根据乘法群GT的要素计算出规定长度的位串的密钥生成函数KDF、以及根据任意长度的位串计算出小于上述自然数r的自然数的哈希函数HF,使用上述处理装置,根据上述群参数存储部存储的群参数所表示的乘法群G1与乘法群G2,随机地选择乘法群G1的要素g、乘法群G2的要素g2、乘法群G2的要素h1、乘法群G2的要素h2、以及乘法群G2的要素h3,并使用上述处理装置,根据上述秘密信息生成部生成的秘密信息所表示的整数α、以及选择的乘法群G1的要素g,计算出乘法群G1的要素g1=g^α,并将表示上述群参数存储部存储的群参数、决定的密钥生成函数KDF和哈希函数HF、选择的乘法群G1的要素g、乘法群G2的要素g2、乘法群G2的要素h1、乘法群G2的要素h2和乘法群G2的要素h3、以及计算出的乘法群G1的要素g1的信息,设为公开密码参数,

上述识别信息输入部使用上述处理装置,输入整数ID而作为接收者识别信息,

上述秘密密钥生成部使用上述处理装置,根据上述公开参数生成部生成的公开密码参数所表示的自然数r,随机地生成1以上且小于自然数r的整数rID,1、1以上且小于自然数r的整数rID,2、以及1以上且小于自然数r的整数rID,3,并使用上述处理装置,根据上述公开参数生成部生成的公开密码参数所表示的乘法群G2的要素g2、乘法群G2的要素h1、乘法群G2的要素h2和乘法群G2的要素h3、上述秘密信息存储部存储的整数α、上述识别信息输入部输入的整数ID、以及生成的整数rID,1、整数rID,2和整数rID,3,计算出乘法群G2的要素hID,1=(h1·g2^(-rID,1))^(1/(α-ID))、乘法群G2的要素hID,2=(h2·g2^(-rID,2))^(1/(α-ID))、以及乘法群G2的要素hID,3=(h3·g2^(-rID,3))^(1/(α-ID)),将表示所生成的整数rID,1、整数rID,2和整数rID,3、以及计算出的乘法群G2的要素hID,1、乘法群G2的要素hID,2和乘法群G2的要素hID,3的信息设为秘密密钥dID

上述接收者识别输入部使用上述处理装置,输入n个整数IDi而作为n个接收者识别信息,

上述随机数生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的自然数r,随机地生成与n个接收者对应的n个1以上且小于自然数r的整数si(i是1以上n以下的整数),

上述第一密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的乘法群G1的要素g、乘法群G2的要素h1和配对e、密钥生成函数KDF、以及上述随机数生成部生成的n个整数si,计算出与n个接收者对应的n个密钥位串ki=KDF(e(g,h1)^si)(i是1以上n以下的整数),使用上述处理装置,利用所计算出的n个密钥位串ki,对上述明文输入部输入的明文M分别进行加密,而设为与n个接收者对应的n个第一密文C1i(i是1以上n以下的整数),

上述第二密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的乘法群G1的要素g、乘法群G1的要素g1、上述接收者识别输入部输入的n个整数IDi、以及上述随机数生成部生成的n个整数si,计算出与n个接收者对应的乘法群G1的n个要素ui=(g1·g^(-IDi))^si(i是1以上n以下的整数),并将分别表示所计算出的乘法群G1的n个要素ui的位串,设为与n个接收者对应的n个第二密文C2i(i是1以上n以下的整数),

上述第三密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的乘法群G1的要素g、乘法群G2的要素g2和配对e、以及上述随机数生成部生成的n个整数si,计算出与n个接收者对应的乘法群GT的n个要素vi=e(g,g2)^si(i是1以上n以下的整数),并将分别表示所计算出的乘法群GT的要素vi的位串,设为与n个接收者对应的n个第三密文C3i

上述哈希值计算部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的哈希函数HF,计算出一个自然数β0而设为哈希值H,

上述密文验证文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的乘法群G1的要素g、乘法群G2的要素h2、乘法群G2的要素h3和配对e、上述随机数生成部生成的n个整数si、以及上述哈希值计算部计算出的一个自然数β0,计算出与n个接收者对应的乘法群GT的n个要素yi=e(g,h2)^si·e(g,h3)^(si·β0)(i是1以上n以下的整数),并将分别表示计算出的乘法群GT的要素yi的位串,设为与n个接收者对应的n个密文验证文CCi(i是1以上n以下的整数),

上述验证哈希值计算部使用上述处理装置,根据上述公开参数存储部存储的公开密码参数所表示的哈希函数HF,计算出自然数β’而设为验证哈希值H’,

上述密文验证部使用上述处理装置,根据上述公开参数存储部存储的公开密码参数所表示的配对e、上述秘密密钥存储部存储的秘密密钥dID所表示的整数rID,2、整数rID,3、乘法群G2的要素hID,2和乘法群G2的要素hID,3、上述密文分解部取得的一个对应第二密文C2ID所表示的乘法群G1的要素uID和一个对应第三密文C3ID所表示的乘法群GT的要素vID、以及上述验证哈希值计算部计算出的自然数β’,计算出乘法群GT的要素y’=e(uID,hID,2·hID,3^β’)·vID^(rID,2+rID,3·β’),并使用上述处理装置,对计算出的乘法群GT的要素y’、和上述密文分解部取得的对应密文验证文CCID所表示的乘法群GT的要素yID进行比较,在乘法群GT的要素y’与乘法群GT的要素yID一致的情况下,判定为上述密文接收部接收到的一个密文C中有匹配性,

上述密文解密部在上述密文验证部判定为上述密文接收部接收到的一个密文C中有匹配性的情况下,使用上述处理装置,根据上述公开参数存储部存储的公开密码参数所表示的配对e和密钥生成函数KDF、上述秘密密钥存储部存储的秘密密钥dID所表示的整数rID,1和乘法群G2的要素hID,1、上述密文分解部取得的一个对应第二密文C2ID所表示的乘法群G1的要素uID、以及对应第三密文C3ID所表示的乘法群G2的要素vID,计算出密钥位串k’=KDF(e(uID,hID,1)·vID^rID,1),并使用上述处理装置,利用所计算出的密钥位串k’,对上述密文分解部取得的对应第一密文C1ID进行解密,还原明文M。

本申请的密码通信系统的特征在于,还具有群参数生成装置,

上述群参数生成装置具有:

处理信息的处理装置、群阶数候补生成部、群阶数安全性判定部、以及参数生成部,

上述群阶数候补生成部使用上述处理装置,生成素数r作为群阶数的候补,

上述群阶数安全性判定部使用上述处理装置,根据上述群阶数候补生成部生成的素数r,计算出素数r与1之差(r-1)的因数、以及素数r与1之和(r+1)的因数,并使用上述处理装置,根据计算出的(r-1)的因数与(r+1)的因数,判定上述群阶数候补生成部生成的素数r是否为安全的群阶数,

上述参数生成部在群阶数安全性判定部判定为上述群阶数候补生成部生成的素数r是安全的群阶数的情况下,使用上述处理装置,根据上述群阶数候补生成部生成的素数r,计算出将素数r设为群阶数的乘法群,并使用上述处理装置,生成包括表示所计算出的乘法群的信息的群参数,

上述群参数存储部使用上述存储装置,存储上述群参数生成装置生成的群参数。

本发明的密码通信系统还将以下点作为特征。

上述群阶数候补生成部的特征是,使用上述处理装置,生成对规定的整数k的倍数加上1而得到的素数r而作为群阶数的候补,

上述群阶数安全性判定部具有剩余计算部、判定值计算部、以及素因数判定部,

上述剩余计算部使用上述处理装置,根据上述群阶数候补生成部生成的素数r,计算出将素数r除以4而得到的余数,

上述判定值计算部在上述剩余计算部计算出的余数是1的情况下,使用上述处理装置,根据上述规定的整数k、以及上述群阶数候补生成部生成的素数r,计算出将素数r与1之差(r-1)除以整数k与4的最小公倍数LCM(k,4)而得到的商即整数r1=(r-1)/LCM(k,4),并使用上述处理装置,根据上述群阶数候补生成部生成的素数r,计算出将素数r与1之和(r+1)除以2而得到的商即整数r2=(r+1)/2,在上述剩余计算部计算出的余数是3的情况下,使用上述处理装置,根据上述规定的整数k、以及上述群阶数候补生成部生成的素数r,计算出将素数r与1之差(r-1)除以整数k与2的最小公倍数LCM(k,2)而得到的商即整数r1=(r-1)/LCM(k,2),并使用上述处理装置,根据上述群阶数候补生成部生成的素数r,计算出将素数r与1之和(r+1)除以4而得到的商即整数r2=(r+1)/4,

上述素因数判定部使用上述处理装置,根据上述判定值计算部计算出的整数r1,判定整数r1是否具有比规定的整数B1小的素因数,并使用上述处理装置,根据上述判定值计算部计算出的整数r2,判定整数r2是否具有比规定的整数B2小的素因数,在判定为整数r1具有比规定的整数B1小的素因数的情况、以及判定为整数r2具有比规定的整数B2小的素因数的情况下,判定为上述群阶数候补生成部生成的素数r不是安全的群阶数。

本发明的密码通信系统还将以下点作为特征。

上述群阶数候补生成部的特征是,使用上述处理装置,生成对规定的整数k的倍数加上1而得到的素数r而作为群阶数的候补,

上述群阶数安全性判定部具有剩余计算部、判定值计算部、以及素因数判定部,

上述剩余计算部使用上述处理装置,根据上述群阶数候补生成部生成的素数r,计算出将素数r除以4而得到的余数,

上述判定值计算部在判定为上述剩余计算部计算出的余数是1的情况下,使用上述处理装置,根据上述规定的整数k、以及上述群阶数候补生成部生成的素数r,计算出将素数r与1之差(r-1)除以整数k与4的最小公倍数LCM(k,4)而得到的商即整数r1=(r-1)/LCM(k,4),并使用上述处理装置,根据上述群阶数候补生成部生成的素数r,计算出将素数r与1之和(r+1)除以2而得到的商即整数r2=(r+1)/2,在上述剩余计算部计算出的余数是3的情况下,使用上述处理装置,根据上述规定的整数k、以及上述群阶数候补生成部生成的素数r,计算出将素数r与1之差(r-1)除以整数k与2的最小公倍数LCM(k,2)而得到的商即整数r1=(r-1)/LCM(k,2),并使用上述处理装置,根据上述群阶数候补生成部生成的素数r,计算出将素数r与1之和(r+1)除以4而得到的商即整数r2=(r+1)/4,

上述素因数判定部使用上述处理装置,根据上述判定值计算部计算出的整数r1,判定整数r1是否为素数,并使用上述处理装置,根据上述判定值计算部计算出的整数r2,判定整数r2是否为素数,在判定为整数r1不是素数的情况、以及判定为整数r2不是素数的情况下,判定为上述群阶数候补生成部生成的素数r不是安全的群阶数。

本发明的密码通信系统的特征在于,还将以下点作为特征。

上述密码参数生成装置的特征是,还具有群参数存储部,

上述群参数存储部使用上述存储装置,作为群参数而存储表示自然数r、阶数是上述自然数r的乘法群G1、阶数是上述自然数r的乘法群G2、阶数是上述自然数r的乘法群GT、以及根据乘法群G1的要素与乘法群G2的要素计算出乘法群GT的要素的配对e的信息,

上述秘密信息生成部使用上述处理装置,根据上述群参数存储部存储的群参数所表示的自然数r,随机地生成1以上且小于自然数r的整数α,

上述公开参数生成部使用上述处理装置,决定根据乘法群GT的要素计算出规定长度的位串的密钥生成函数KDF、根据规定长度的位串计算出乘法群GT的要素的两个函数V1和V2、以及根据任意长度的位串计算出规定长度的位串的哈希函数HF,并使用上述处理装置,根据上述群参数存储部存储的群参数所表示的乘法群G1与乘法群G2,随机地选择乘法群G1的要素g和乘法群G2的要素g2,根据上述秘密信息生成部生成的整数α、以及选择的乘法群G1的要素g,计算出乘法群G1的要素g1=g^α,使用上述处理装置,将表示上述群参数存储部存储的群参数、所决定的密钥生成函数KDF、两个函数V1及V2和哈希函数HF、所选择的乘法群G1的要素g和乘法群G2的要素g2、以及计算出的乘法群G1的要素g1的信息,设为公开密码参数,

上述秘密信息生成部还使用上述处理装置,根据生成的整数α、以及上述公开参数生成部选择的乘法群G2的要素g2,计算出乘法群G2的要素msk=g2^α,

上述秘密信息存储部使用上述存储装置,将表示上述秘密信息生成部计算出的乘法群G2的要素msk的信息,作为秘密信息而进行存储,

上述识别信息输入部使用上述处理装置,输入规定长度的位串ID而作为接收者识别信息,

上述秘密密钥生成部使用上述处理装置,根据上述公开参数生成部生成的公开密码参数所表示的自然数r,随机地生成1以上且小于自然数r的整数rID,并使用上述处理装置,根据上述公开参数生成部生成的公开密码参数所表示的乘法群G1的要素g和函数V1、上述秘密信息存储部存储的秘密信息所表示的乘法群G2的要素msk、以及生成的整数rID,计算出乘法群G2的要素d0ID=msk·V1(ID)^rID、以及乘法群G1的要素d1ID=g^rID,将表示所计算出的乘法群G2的要素d0ID与乘法群G1的要素d1ID的信息,设为秘密密钥dID

上述接收者识别输入部使用上述处理装置,输入n个规定长度的位串IDi而作为n个接收者识别信息,

上述随机数生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的自然数r,随机地生成与n个接收者对应的n个1以上且小于自然数r的整数si(i是1以上n以下的整数),

上述第一密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的乘法群G1的要素g1、乘法群G2的要素g2、配对e和密钥生成函数KDF、以及上述随机数生成部生成的n个整数si,计算出与n个接收者对应的n个密钥位串ki=KDF(e(g1,g2)^si)(i是1以上n以下的整数),并使用上述处理装置,利用所计算出的n个密钥位串ki,对上述明文输入部输入的明文M分别进行加密,而设为与n个接收者对应的n个第一密文C1i(i是1以上n以下的整数),

上述第二密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的函数V1、上述接收者识别输入部输入的n个规定长度的位串IDi、以及上述随机数生成部生成的n个整数si(i是1以上n以下的整数),计算出与n个接收者对应的乘法群G2的n个要素ui=V1(IDi)^si(i是1以上n以下的整数),将分别表示所计算出的乘法群G2的n个要素ui的位串,设为与n个接收者对应的n个第二密文C2i(i是1以上n以下的整数),

上述第三密文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的乘法群G1的要素g、以及上述随机数生成部生成的n个整数si,计算出与n个接收者对应的乘法群G1的n个要素vi=g^si(i是1以上n以下的整数),并将分别表示所计算出的乘法群G1的n个要素vi的位串设为与n个接收者对应的n个第三密文C3i(i是1以上n以下的整数),

上述哈希值计算部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的哈希函数HF,计算出一个规定长度的位串w0,而设为哈希值H,

上述密文验证文生成部使用上述处理装置,根据上述密码参数存储部存储的公开密码参数所表示的函数V2、上述随机数生成部生成的n个整数si、以及上述哈希值计算部计算出的一个规定长度的位串w0,计算出与n个接收者对应的乘法群G2的n个要素yi=V2(w0)^si(i是1以上n以下的整数),并将分别表示计算出的乘法群G2的n个要素yi的位串,设为与n个接收者对应的n个密文验证文CCi

上述验证哈希值计算部使用上述处理装置,根据上述公开参数存储部存储的公开密码参数所表示的哈希函数HF,计算出规定长度的位串w’,而设为验证哈希值H’,

上述密文验证部使用上述处理装置,根据上述公开参数存储部存储的公开密码参数所表示的配对e和函数V2、上述密文分解部取得的对应第三密文C3ID所表示的乘法群G1的要素vID以及上述验证哈希值计算部计算出的规定长度的位串w’,计算出乘法群GT的要素e(vID,V2(w’)),并使用上述处理装置,根据上述公开参数存储部存储的公开密码参数所表示的乘法群G1的要素g和配对e、以及上述密文分解部取得的对应密文验证文CCID所表示的乘法群G2的要素yID,计算出乘法群GT的要素e(g,yID),并使用上述处理装置,对计算出的乘法群GT的要素e(vID,V2(w’))、与计算出的乘法群GT的要素e(g,yID)进行比较,在乘法群GT的要素e(vID,V2(w’))与乘法群GT的要素e(g,yID)一致的情况下,判定为上述密文接收部接收到的一个密文C中有匹配性,

上述密文解密部在上述密文验证部判定为上述密文接收部接收到的一个密文C中有匹配性的情况下,使用上述处理装置,根据上述公开参数存储部存储的公开密码参数所表示的配对e和密钥生成函数KDF、上述秘密密钥存储部存储的秘密密钥dID所表示的乘法群G2的要素d0ID和乘法群G1的要素d1ID、以及上述密文分解部取得的一个对应第二密文C2ID所表示的乘法群G2的要素uID和对应第三密文C3ID所表示的乘法群G1的要素vID,计算出密钥位串k’=KDF(e(vID,d0ID)/e(d1ID,uID)),并使用上述处理装置,利用所计算出的密钥位串k’,对上述密文分解部取得的对应第一密文C1ID进行解密,从而还原明文M。

本发明的密码通信系统还将以下点作为特征。

上述密文主文生成部的特征是,使用上述处理装置,生成包括上述接收者识别输入部输入的n个接收者识别信息IDi的n个密文主文CBi

本发明的密码通信系统还将以下点作为特征。

上述密文生成装置的特征是,还具有对话密钥生成部、数据输入部、数据加密部、以及密文通知部,

上述对话密钥生成部使用上述处理装置,随机地生成规定长度的位串而设为对话密钥K,

上述明文输入部使用上述处理装置,作为明文M而输入上述对话密钥生成部生成的对话密钥K,

上述数据输入部使用上述处理装置,输入应发送给n个接收者的一个明文数据,

上述数据加密部使用上述处理装置,利用上述对话密钥生成部生成的对话密钥K,对上述数据输入部输入的一个明文数据进行加密而设为一个加密数据,

上述密文通知部使用上述处理装置,对利用由上述接收者识别输入部输入的n个接收者识别信息识别的n个接收者,通知上述密文结合部结合的一个密文C、以及上述数据加密部加密的一个加密数据,

上述多个密文接收装置还分别具有数据解密部,

上述密文接收部使用上述处理装置,接收上述密文生成装置通知的一个密文C与一个加密数据,

上述数据解密部将上述密文解密部还原的明文M设为对话密钥K’,使用上述处理装置,利用上述对话密钥K’,对上述密文接收部接收到的一个加密数据进行解密。

本发明的群参数生成装置,生成对各自具有所对应的密文接收装置的n个接收者(n是1以上的整数)利用一个密文C通知明文M的密码通信系统中的密码处理中所使用的乘法群的参数,其特征在于,

具有处理信息的处理装置、群阶数候补生成部、群阶数安全性判定部、以及参数生成部,

上述群阶数候补生成部使用上述处理装置,生成素数r作为群阶数的候补,

上述群阶数安全性判定部使用上述处理装置,根据上述群阶数候补生成部生成的素数r,计算出素数r与1之差(r-1)的因数、以及素数r与1之和(r+1)的因数,并使用上述处理装置,根据计算出的(r-1)的因数与(r+1)的因数,判定上述群阶数候补生成部生成的素数r是否是安全的群阶数,

上述参数生成部在群阶数安全性判定部判定为上述群阶数候补生成部生成的素数r是安全的群阶数的情况下,使用上述处理装置,根据上述群阶数候补生成部生成的素数r,计算出将素数r设为群阶数的乘法群,并使用上述处理装置,生成包括表示所计算出的乘法群的信息的群参数,

上述群参数存储部使用上述存储装置,存储上述群参数生成装置生成的群参数。

本发明的群参数生成装置还将以下点作为特征。

上述群阶数候补生成部使用上述处理装置,生成对规定的整数k的倍数加上1而得到的素数r而作为群阶数的候补,

上述群阶数安全性判定部具有剩余计算部、判定值计算部、以及素因数判定部,

上述剩余计算部使用上述处理装置,根据上述群阶数候补生成部生成的素数r,计算出将素数r除以4而得到的余数,

上述判定值计算部在上述剩余计算部计算出的余数是1的情况下,使用上述处理装置,根据上述规定的整数k、以及上述群阶数候补生成部生成的素数r,计算出将素数r与1之差(r-1)除以整数k与4的最小公倍数LCM(k,4)而得到的商即整数r1=(r-1)/LCM(k,4),并使用上述处理装置,根据上述群阶数候补生成部生成的素数r,计算出将素数r与1之和(r+1)除以2而得到的商即整数r2=(r+1)/2,在上述剩余计算部计算出的余数是3的情况下,使用上述处理装置,根据上述规定的整数k、以及上述群阶数候补生成部生成的素数r,计算出将素数r与1之差(r-1)除以整数k与2的最小公倍数LCM(k,2)而得到的商即整数r1=(r-1)/LCM(k,2),并使用上述处理装置,根据上述群阶数候补生成部生成的素数r,计算出将素数r与1之和(r+1)除以4而得到的商即整数r2=(r+1)/4,

上述素因数判定部使用上述处理装置,根据上述判定值计算部计算出的整数r1,判定整数r1是否具有比规定的整数B1小的素因数,并使用上述处理装置,根据上述判定值计算部计算出的整数r2,判定整数r2是否具有比规定的整数B2小的素因数,在判定为整数r1具有比规定的整数B1小的素因数的情况、以及判定为整数r2具有比规定的整数B2小的素因数的情况下,判定为上述群阶数候补生成部生成的素数r不是安全的群阶数。

本发明的群参数生成装置还将以下点作为特征。

上述群阶数候补生成部的特征是,使用上述处理装置,生成对规定的整数k的倍数加上1而得到的素数r而作为群阶数的候补,

上述群阶数安全性判定部具有剩余计算部、判定值计算部、以及素因数判定部,

上述剩余计算部使用上述处理装置,根据上述群阶数候补生成部生成的素数r,计算出将素数r除以4而得到的余数,

上述判定值计算部在上述剩余计算部计算出的余数是1的情况下,使用上述处理装置,根据上述规定的整数k、以及上述群阶数候补生成部生成的素数r,计算出将素数r与1之差(r-1)除以整数k与4的最小公倍数LCM(k,4)而得到的商即整数r1=(r-1)/LCM(k,4),并使用上述处理装置,根据上述群阶数候补生成部生成的素数r,计算出将素数r与1之和(r+1)除以2而得到的商即整数r2=(r+1)/2,在上述剩余计算部计算出的余数是3的情况下,使用上述处理装置,根据上述规定的整数k、以及上述群阶数候补生成部生成的素数r,计算出将素数r与1之差(r-1)除以整数k与2的最小公倍数LCM(k,2)而得到的商即整数r1=(r-1)/LCM(k,2),并使用上述处理装置,根据上述群阶数候补生成部生成的素数r,计算出将素数r与1之和(r+1)除以4而得到的商即整数r2=(r+1)/4,

上述素因数判定部使用上述处理装置,根据上述判定值计算部计算出的整数r1,判定整数r1是否是素数,并使用上述处理装置,根据上述判定值计算部计算出的整数r2,判定整数r2是否是素数,在判定为整数r1不是素数的情况、以及判定为整数r2不是素数的情况下,判定为上述群阶数候补生成部生成的素数r不是安全的群阶数。

发明的效果

根据本实施方式中的密文生成装置,在基于ID的密码通信方式中,将生成把同一明文M通知给多个接收者的一个密文C的处理的一部分即计算哈希值的处理、以及基于计算出的哈希值的处理分别执行一次即可,所以起到如下效果:处理高效化,可以进行高速的密码处理。

附图说明

图1是示出实施方式1中的基于ID的密码通信系统800的整体结构的一个例子的系统结构图。

图2是示出实施方式1中的密码参数生成装置100以及密文生成装置200以及密文接收装置301~303的外观的一个例子的图。

图3是示出实施方式1中的密码参数生成装置100、密文生成装置200以及密文接收装置301~303的硬件资源的一个例子的图。

图4是示出实施方式1中的密码参数生成装置100的功能块的结构的一个例子的块结构图。

图5是示出实施方式1中的密文生成装置200的功能块的结构的一个例子的块结构图。

图6是示出实施方式1中的密文接收装置301的功能块的结构的一个例子的块结构图。

图7是示出实施方式1中的密码参数生成装置100设定公开密码参数的参数设定处理的流程的一个例子的流程图。

图8是示出实施方式1中的密码参数生成装置100设定秘密密钥的秘密密钥设定处理的流程的一个例子的流程图。

图9是示出实施方式1中的密文生成装置200生成密文的密文生成处理的流程的一个例子的流程图。

图10是示出实施方式1中的密文接收装置301~303接收密文的密文接收处理的流程的一个例子的流程图。

图11是示出实施方式2中的对比例子即在密文生成装置200中交换的信息的流程的一个例子的图。

图12是示出实施方式2中的对比例子即密码参数生成装置100设定公开密码参数的参数设定处理的流程的一个例子的流程图。

图13是示出实施方式2中的对比例子即密码参数生成装置100设定秘密密钥的秘密密钥设定处理的流程的一个例子的流程图。

图14是示出实施方式2中的对比例子即密文生成装置200生成密文的密文生成处理的流程的一个例子的流程图。

图15是示出实施方式2中的对比例子即密文接收装置301~303接收密文的密文接收处理的流程的一个例子的流程图。

图16是示出实施方式2中的在密文生成装置200中交换的信息的流程的一个例子的图。

图17是示出实施方式2中的密文生成装置200生成密文的密文生成处理的流程的一个例子的流程图。

图18是示出实施方式2中的密文接收装置301~303接收密文的密文接收处理的流程的一个例子的流程图。

图19是示出实施方式3中的对比例子即密码参数生成装置100设定公开密码参数的参数设定处理的流程的一个例子的流程图。

图20是示出实施方式3中的对比例子即密码参数生成装置100设定秘密密钥的秘密密钥设定处理的流程的一个例子的流程图。

图21是示出实施方式3中的对比例子即密文生成装置200生成密文的密文生成处理的流程的一个例子的流程图。

图22是示出实施方式3中的对比例子即密文接收装置301~303接收密文的密文接收处理的流程的一个例子的流程图。

图23是示出实施方式3中的密文生成装置200生成密文的密文生成处理的流程的一个例子的流程图。

图24是示出实施方式3中的密文接收装置301~303接收密文的密文接收处理的流程的一个例子的流程图。

图25是示出实施方式4中的基于ID的密码通信系统800的整体结构的一个例子的系统结构图。

图26是示出实施方式4中的群参数生成装置400的功能块的结构的一个例子的块结构图。

图27是示出实施方式4中的群参数生成装置400生成群参数的群参数生成处理的流程的一个例子的流程图。

图28是示出实施方式5中的群参数生成装置400生成群参数的群参数生成处理的流程的一个例子的流程图。

图29是示出实施方式5中的群参数生成装置400生成群参数的群参数生成处理的流程的一个例子的流程图。

附图标记说明

100:密码参数生成装置;110:参数设定部;111:群参数存储部;112:秘密信息生成部;113:公开参数生成部;114:公开参数公开部;121:秘密信息存储部;122:参数存储部;130:秘密密钥设定部;131:识别信息输入部;132:秘密密钥生成部;133:秘密密钥通知部;200:密文生成装置;210:密码参数存储部;221:对话密钥生成部;222:随机数生成部;231:明文输入部;232:接收者识别输入部;240:密文主文生成部;241:第一密文生成部;242:第二密文生成部;243:第三密文生成部;244:哈希值计算部;245:密文验证文生成部;246:密文结合部;251:数据输入部;252:数据加密部;261:密文通知部;290:密钥加密部;301~303:密文接收装置;310:公开参数存储部;323:秘密密钥存储部;341:密文解密部;344:验证哈希值计算部;345:密文验证部;346:密文分解部;351:密文接收部;352:数据解密部;390:密钥解密部;400:群参数生成装置;410:参数生成条件存储部;420:群阶数候补生成部;430:群阶数安全性判定部;431:剩余计算部;432:判定值计算部;433:素因数判定部;440:参数生成部;500:公开的信息;510:公开密码参数;531~533:接收者识别信息;600:秘密地通知的信息;601~603:秘密密钥;710:明文数据;720:通知数据;721:密钥密文C;722:加密数据;800:基于ID的密码通信系统;901:显示装置;902:键盘;903:鼠标;904:FDD;905:CDD;906:打印机装置;907:扫描器装置;910:系统单元;911:CPU;912:总线;913:ROM;914:RAM;915:通信装置;920:磁盘装置;921:OS;922:视窗系统;923:程序群;924:文件群;931:电话机;932:传真机;940:因特网;941:网关;942:LAN。

具体实施方式

实施方式1

使用图1~图10对实施方式1进行说明。

图1是示出本实施方式中的基于ID的密码通信系统800的整体结构的一个例子的系统结构图。

基于ID的密码通信系统800具有密码参数生成装置100、密文生成装置200、多个密文接收装置301~303。

密文接收装置301~303分别对应于接收者,并与识别所对应的接收者的接收者识别信息531~533相对应。

接收者识别信息531~533例如是接收者的住址/姓名、邮件地址等可以唯一地识别接收者的信息。接收者识别信息531~533是在基于ID的密码通信系统800中公开的信息500的一部分,是可以容易地验证对应关系是否正确的信息。

密码参数生成装置100生成基于ID的密码通信系统800中的密码处理所需的公开密码参数510。密码参数生成装置100公开所生成的公开密码参数510,公开密码参数510成为在基于ID的密码通信系统800中公开的信息500的一部分。

另外,密码参数生成装置100输入密文接收装置301~303的接收者识别信息531~533,根据输入的接收者识别信息531~533,生成密文接收装置301~303的秘密密钥601~603。密码参数生成装置100将生成的秘密密钥601~603以没有被第三者得知的可能性的安全方法,秘密地通知给各自的密文接收装置301~303。例如,密码参数生成装置100将生成的秘密密钥601~603分别记录在软盘等存储介质中,并将记录有秘密密钥601的软盘直接亲手交给与密文接收装置301对应的接收者本人,接收者本人在密文接收装置301中安装秘密密钥601,从而向密文接收装置301通知秘密密钥601。秘密密钥602、603也以同样的方式通知给密文接收装置302、303。

密文生成装置200对作为密文接收装置301~303的全部或一部分的多个密文接收装置,输入希望通知的数据(明文数据710)。此处,以如下情况为例进行说明:希望将明文数据710通知给密文接收装置301与密文接收装置303,但不希望通知给密文接收装置302。

密文生成装置200对密文接收装置301以及密文接收装置303通知通知数据720。

通知数据720例如经由邮件通信、数据广播等,被通知给密文接收装置301以及密文接收装置303。因此,通知数据720是对于所有的接收者相同的数据。

通知数据720虽然不是打算公开的数据,但密文生成装置200通知通知数据720的路径例如是因特网、数据广播等第三者可以容易地截取通知数据720的环境。为此,通知数据720包括将明文数据710进行加密而得到的加密数据722。

另外,明文数据710例如有时是运动图像数据等巨大的数据,所以与通知对方无关而使用共用的对话密钥K来加密。这是因为,在针对每个通知对方改变对话密钥K时,需要生成与通知对方的数量相同数量的加密数据722,所以密文生成装置200的加密处理的负荷增加,导致增大通知路径的通信量。

通知数据720还包括对对话密钥K进行加密而得到的密钥密文C721,其中该对话密钥K是对明文数据710进行加密而得到的。

密文接收装置301通过对密钥密文C721进行解密,取得对话密钥K,并利用所取得的对话密钥K对加密数据722进行解密,从而取得明文数据710。

密文生成装置200被输入密码参数生成装置100公开的公开密码参数510、密文接收装置310以及密文接收装置303公开的接收者识别信息531以及接收者识别信息533。

密文生成装置200根据输入的信息,进行基于ID的密码方式的密码处理,生成对话密钥K与密钥密文C721。

密文生成装置200利用所生成的对话密钥K,对明文数据710进行加密而生成加密数据722。

密文生成装置200将包括所生成的密钥密文C721与加密数据722的通知数据720通知给密文接收装置301以及密文接收装置303。

密钥密文C721包括与各个通知对方对应的部分。密钥密文C721也可以与通知对方无关地还包括共用的部分。

密文接收装置301从密钥密文C721中取得与密文接收装置301对应的部分(以及共用的部分),使用秘密密钥601,进行基于ID的密码方式的解密处理,取得对话密钥K。

密文接收装置303也同样地使用秘密密钥601,取得对话密钥K。

另一方面,密钥密文C721由于未包括与密文接收装置302对应的部分,所以密文接收装置302即使截取到通知数据720,也无法使用秘密密钥602来解密,无法取得对话密钥K。因此,密文接收装置302无法取得明文数据710。

图2是示出本实施方式中的密码参数生成装置100、密文生成装置200以及密文接收装置301~303的外观的一个例子的图。

密码参数生成装置100、密文生成装置200以及密文接收装置301~303具备:系统单元910、具有CRT(Cathode Ray Tube:阴极射线管)、LCD(液晶)的显示画面的显示装置901、键盘902(KeyBoard:K/B)、鼠标903、FDD 904(Flexible Disk Drive:软盘驱动器)、高密度盘装置905(CDD)、打印机装置906、扫描器装置907等的硬件资源,它们通过线缆、信号线相连接。

系统单元910是计算机,通过线缆与传真机932、电话机931连接,另外,经由局域网942(LAN)、网关941与因特网940连接。

图3是示出本实施方式中的密码参数生成装置100、密文生成装置200以及密文接收装置301~303的硬件资源的一个例子的图。

密码参数生成装置100、密文生成装置200以及密文接收装置301~303具备执行程序的CPU 911(Central Processing Unit,还称为中央处理装置、处理装置、运算装置、微处理器、微型计算机、处理器)。CPU 911经由总线912而与ROM 913、RAM 914、通信装置915、显示装置901、键盘902、鼠标903、FDD 904、CDD 905、打印机装置906、扫描器装置907、磁盘装置920连接,并对这些硬件设备进行控制。也可以代替磁盘装置920,而是光盘装置、存储卡读写装置等存储装置。

RAM 914是易失性存储器的一个例子。ROM 913、FDD 904、CDD 905、磁盘装置920的存储介质是非易失性存储器的一个例子。它们是存储装置或存储部的一个例子。

通信装置915、键盘902、扫描器装置907、FDD 904等是输入部、输入装置的一个例子。

另外,通信装置915、显示装置901、打印机装置906等是输出部、输出装置的一个例子。

通信装置915与传真机932、电话机931、LAN 942等连接。通信装置915不限于LAN 942,也可以连接到因特网940、ISDN等的WAN(广域网)等。在与因特网940或ISDN等的WAN连接的情况下,网关941变得无用。

在磁盘装置920中,存储有操作系统921(OS)、视窗系统922、程序群923、文件群924。程序群923的程序是通过CPU 911、操作系统921、视窗系统922执行的。

在上述程序群923中,存储有执行在以下叙述的实施方式的说明中说明为“~部”的功能的程序。程序是由CPU 911读出并执行的。

在文件群924中,作为“~文件”、“~数据库”的各项目,存储有在以下叙述的实施方式的说明中作为“~的判定结果”、“~的计算结果”、“~的处理结果”而说明的信息、数据、信号值、变量值、参数。“~文件”、“~数据库”被存储到盘、存储器等记录介质中。由CPU 911经由读写电路将存储在盘、存储器等存储介质中的信息、数据、信号值、变量值、参数读出到主存储器、高速缓存存储器中,用于抽出/检索/参照/比较/运算/计算/处理/输出/印刷/显示等CPU的动作中。在抽出/检索/参照/比较/运算/计算/处理/输出/印刷/显示的CPU的动作期间,信息、数据、信号值、变量值、参数被临时存储到主存储器、高速缓存存储器、缓冲存储器中。

另外,在以下叙述的实施方式的说明中说明的流程图的箭头的部分主要表示数据、信号的输入输出,数据、信号值被记录到RAM 914的存储器、FDD 904的软盘、CDD 905的高密度盘、磁盘装置920的磁盘、其它光盘、迷你盘、DVD(Digital Versatile Disc:数字多功能盘)等记录介质中。另外,数据、信号通过总线912、信号线、线缆、或其它传送介质而被联机传送。

另外,在以下叙述的实施方式的说明中说明为“~部”的部分既可以是“~电路”、“~装置”、“~机器”,另外也可以是“~步骤”、“~过程”、“~处理”。即,说明为“~部”的部分也可以通过存储在ROM913中的固件来实现。或者,也可以仅通过软件、或者仅通过元件/设备/基板/布线等硬件、或者通过软件与硬件的组合、通过进一步与固件的组合来实施。固件与软件作为程序存储在磁盘、软盘、光盘、高密度盘、迷你盘、DVD等记录介质中。程序是由CPU 911读出,并由CPU 911执行的。即,程序作为以下叙述的“~部”使计算机发挥功能。或者,使计算机执行以下叙述的“~部”的过程、方法。

图4是示出本实施方式中的密码参数生成装置100的功能块的结构的一个例子的块结构图。

密码参数生成装置100具有参数设定部110与秘密密钥设定部130。

另外,密码参数生成装置100也可以分为具有参数设定部110的参数设定装置与具有秘密密钥设定部130的秘密密钥设定装置。在该情况下,也可以相对一个参数设定装置,具有多个秘密密钥设定装置。

参数设定部110生成基于ID的密码通信系统800中的成为基于ID的密码方式的密码处理/解密处理的基础的公开密码参数,并公开。

参数设定部110具有群参数存储部111、秘密信息生成部112、公开参数生成部113、公开参数公开部114、秘密信息存储部121、以及参数存储部122。

群参数存储部111使用磁盘装置920等存储装置,存储群参数。

群参数是指,表示对进行基于ID的密码方式中的群运算的群进行定义的参数的信息。

例如,在作为进行基于ID的密码方式中的群运算的群而使用椭圆曲线上的点所形成的群的情况下,群参数存储部111存储对椭圆曲线Y2=X3+aX+b进行定义的系数a、系数b等,作为群参数。

另外,作为椭圆曲线上的点所形成的群中的运算,通常,定义椭圆曲线上的点的加法。群参数存储部111存储的群参数所表示的群不限于椭圆曲线上的点所成的群,而也可以是其它群。此处,将群参数存储部111存储的群参数所表示的群设为乘法群。即,作为群参数存储部111存储的群参数所表示的群的要素之间的运算而定义有乘法,关于乘法构成了群。因此,在以下说明中,在作为“乘法群”而提及的群中,包括椭圆曲线上的点所形成的群,在作为“乘法/乘算”而提及的运算中,通常,包括被称为椭圆曲线上的点的加法的运算。另外,在式中记述“乘法/乘算”的情况下,使用“·”。

另外,群参数存储部111存储的群参数所表示的乘法群中的乘算是可以在实用的时间内通过规定的算法进行计算的运算。因此,可以使用CPU 911等处理装置,计算出乘算结果。

秘密信息生成部112使用CPU 911等处理装置,输入群参数存储部111存储的群参数。

秘密信息生成部112使用CPU 911等处理装置,随机地生成秘密信息。

秘密信息生成部112使用CPU 911等处理装置,输出所生成的秘密信息。

秘密信息是指,成为用于生成在基于ID的密码方式中公开的公开密码参数的基础的信息。另外,秘密信息还成为用于生成秘密密钥的基础,绝对不能被第三者知道。

秘密信息表示的内容根据作为基于ID的密码方式采用何种密码方式而不同。秘密信息例如是表示比群参数表示的乘法群的阶数r小、且1以上的整数的信息。

公开参数生成部113使用CPU 911等处理装置,输入群参数存储部111存储的群参数、以及秘密信息生成部112输出的秘密信息。

公开参数生成部113使用CPU 911等处理装置,根据输入的群参数与秘密信息,生成公开密码参数。

公开参数生成部113使用CPU 911等处理装置,输出所生成的公开密码参数。

公开密码参数所表示的内容根据作为基于ID的密码方式使用何种密码方式而不同。公开密码参数例如是表示群参数所表示的乘法群的要素的信息。

在公开密码参数中巧妙地编入有秘密信息,密文生成装置200、密文接收装置301~303通过利用公开密码参数,可以间接地利用秘密信息,但无法从公开密码参数逆运算秘密信息。

例如,秘密信息表示整数α,公开密码参数包括表示群参数所表示的乘法群G的要素g与乘法群G的要素g^α的信息。另外,“^”表示幂乘运算,“g^α”表示g的α乘方、即表示将α个g相互乘算。如果乘法群G是难以求解DH问题(Diffie-Hellmanm Problem,双线性问题)的群,则无法根据g与g^α求出α。

因此,即使公开了公开密码参数,也能守住秘密信息的秘密。

公开参数公开部114使用CPU 911等处理装置,输入公开参数生成部113所输出的公开密码参数。

公开参数公开部114使用CPU 911等处理装置,公开所输入的公开参数。此处,“公开”是指,虽然包含有向密文生成装置200、密文接收装置301~303通知的情形,但在密文生成装置200、密文接收装置301~303无法取得正确的公开密码参数,而万一取得了被窜改的公开密码参数的情况下,可以容易地判别其是否被窜改。例如,公开参数公开部114通过将公开密码参数刊登在主页上从而进行公开。虽然主页有可能由于第三者的攻击而被窜改,但公开密码参数生成装置100通过检查主页,可以发现窜改。另外。也可以通过使用多个服务器装置公开同一公开密码参数,并判断两者是否一致,从而发现窜改。

秘密信息存储部121使用CPU 911等处理装置,输入秘密信息生成部112所输出的秘密信息。

秘密信息存储部121使用磁盘装置920等存储装置,存储所输入的秘密信息。

参数存储部122使用CPU 911等处理装置,输入公开参数生成部113所输出的公开密码参数。

参数存储部122使用磁盘装置920等存储装置,存储所输入的公开密码参数。

秘密密钥设定部130生成基于ID的密码通信系统800中的基于ID的密码方式的解密处理中所需的秘密密钥,并秘密地通知给各个密文接收装置301~303。

秘密密钥设定部130具有识别信息输入部131、秘密密钥生成部132、以及秘密密钥通知部133。

识别信息输入部131使用CPU 911等处理装置,输入接收者识别信息。识别信息输入部131输入的接收者识别信息是识别与密文接收装置301~303中的某一个对应的接收者的信息,是公开的信息500的一部分。例如,识别信息输入部131从公开的信息500中输入识别与密文接收装置301对应的接收者的接收者识别信息531。

识别信息输入部131使用CPU 911等处理装置,根据公开的信息500,验证所输入的接收者识别信息是否正确地识别了与密文接收装置对应的接收者。

验证的结果,如果没有问题,识别信息输入部131使用CPU 911等处理装置,输出所输入的接收者识别信息。

秘密密钥生成部132使用CPU 911等处理装置,输入识别信息输入部131输出的接收者识别信息、秘密信息存储部121存储的秘密信息、以及参数存储部122存储的公开密码参数。

秘密密钥生成部132使用CPU 911等处理装置,根据输入的接收者识别信息、秘密信息与公开密码参数,生成秘密密钥。

秘密密钥生成部132使用CPU 911等处理装置,输出所生成的秘密密钥。

秘密密钥通知部133使用CPU 911等处理装置,输入秘密密钥生成部132输出的秘密密钥。

秘密密钥通知部133使用CPU 911等处理装置,将输入的秘密密钥秘密地通知给对应的接收者的密文接收装置。例如,秘密密钥通知部133将秘密密钥生成部132根据接收者识别信息531生成的秘密密钥601通知给与利用接收者识别信息531识别的接收者对应的密文接收装置301。

这样,参数设定部110生成的公开密码参数被公开,秘密密钥设定部130生成的秘密密钥601~603被通知给各个密文接收装置301~303,从而完成基于ID的密码方式的密码通信的准备。

图5是示出本实施方式中的密文生成装置200的功能块的结构的一个例子的块结构图。

密文生成装置200具有密钥加密部290、数据输入部251、数据加密部252、以及密文通知部261。

密钥加密部290使用CPU 911等处理装置,生成对话密钥K,并且生成密钥密文C。

密钥密文C是对密钥加密部290生成的对话密钥K进行加密而得到的。密钥密文C是密文C的一个例子。

密钥加密部290具有密码参数存储部210、对话密钥生成部221、随机数生成部222、明文输入部231、接收者识别输入部232、密文主文生成部240、哈希值计算部244、密文验证文生成部245、以及密文结合部246。

密码参数存储部210使用磁盘装置920等存储装置,存储密码参数生成装置100公开的公开密码参数。

对话密钥生成部221使用CPU 911等处理装置,随机地生成对话密钥K。对话密钥K是用于对明文数据710进行加密的密钥,例如是规定长度的位串。对明文数据710进行加密的密码方式例如是AES(AdvancedEncryption Standard:高级加密标准)、MISTY(注册上标)等共用密钥密码方式。

对话密钥生成部221使用CPU 911等处理装置,输出所生成的对话密钥K。

明文输入部231使用CPU 911等处理装置,将对话密钥生成部221输出的对话密钥K作为明文M输入。

明文输入部231使用CPU 911等处理装置,输出所输入的明文M。

接收者识别输入部232使用CPU 911等处理装置,输入与应发送明文数据710的密文接收装置对应的接收者的接收者识别信息。例如,在希望对密文接收装置301与密文接收装置303发送明文数据710的情况下,接收者识别输入部232输入与密文接收装置301对应的接收者的接收者识别信息531、以及与密文接收装置303对应的接收者的接收者识别信息533。

以下,将希望发送明文数据710的对方的数量记载为n。另外,为了区分多个接收者识别信息而使用下标,以接收者识别信息ID1、接收者识别信息ID2、…、接收者识别信息IDn的方式进行记述。有时也将n个接收者识别信息ID1、ID2、…、IDn总括而以“接收者识别信息IDi(i是1以上n以下的整数)”的方式进行记述。在以下说明中,下标“i”原则上表示对应于n个接收者中的各个接收者。

接收者识别输入部232输入与n个接收者分别对应的n个接收者识别信息IDi(i是1以上n以下的整数)。

接收者识别输入部232使用CPU 911等处理装置,输出所输入的n个接收者识别信息IDi

另外,接收者的数量n不是预先(例如在公开密码参数生成时)决定的,而是在实际发送数据时决定的。

基于ID的密码通信系统800是可以对任意数量的接收者发送数据的密码通信系统。根据当时的需要,也许会是n=1,也许会是n=100。

密文生成装置200例如在接收者识别输入部232输入了接收者识别信息时得知接收者的数量n。密文生成装置200即使在n为1以上的任意数的情况下,也生成一个密钥密文C(和加密数据)。

另外,接收者识别输入部232输入的多个接收者识别信息全部相互不同。或者,接收者识别输入部232也可以判别在输入的多个接收者识别信息中是否存在重复的信息,将重复的接收者识别信息集中为一个而排除重复。

随机数生成部222使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数。

随机数生成部222使用CPU 911等处理装置,随机地生成n个随机数。随机数生成部222生成的随机数例如是比输入的公开密码参数所表示的乘法群的阶数r小且1以上的整数s。

另外,随机数生成部222生成的n个随机数分别对应于n个接收者。即,随机数生成部222生成与n个接收者分别对应的n个随机数。

随机数生成部222输出表示所生成的n个随机数的信息。

密文主文生成部240使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数、明文输入部231输出的明文M、接收者识别输入部232输出的n个接收者识别信息、表示随机数生成部222输出的n个随机数的信息。

密文主文生成部240使用CPU 911等处理装置,根据输入的信息,生成与n个接收者分别对应的n个密文主文CBi(i是1以上n以下的整数)。

密文主文生成部240使用CPU 911等处理装置,输出所生成的n个密文主文CBi

密文主文是指,通过基于ID的密码方式,使用各接收者的接收者识别信息IDi,将明文M(对话密钥K)面向各接收者进行加密而得到的主文。n个密文主文CBi各自对应于一个接收者。

另外,密文主文也能够分节为若干个部分。在将密文主文分节而得到的部分中,也可以有对所有接收者共用的部分。关于将密文主文分节而得到的部分中的对所有接收者共用的部分,也可以通过集中为一个,从而缩短n个密文主文CBi的全体。

密文主文生成部240具有第一密文生成部241、第二密文生成部242、以及第三密文生成部243。

密文主文生成部240输出的密文主文CBi由第一密文生成部241输出的第一密文C1i、第二密文生成部242输出的第二密文C2i、以及第三密文生成部243输出的第三密文C3i构成。

密文主文CBi既可以是将第一密文C1i、第二密文C2i、以及第三密文C3i结合而得到的密文主文,也可以是将第一密文C1i、第二密文C2i、以及第三密文C3i设为组而得到的密文主文。

另外,在该例子中,密文主文CBi由三个密文构成,但这是一个例子,也可以是其它结构。

例如,密文主文CBi除了三个密文以外,也可以包括接收者识别信息IDi

此处,“包括”是指,例如密文主文CBi是将接收者识别信息IDi、第一密文C1i、第二密文C2i、以及第三密文C3i结合而得到的密文主文的情况等,以该密文主文CBi可以容易地判别所对应的接收者的接收者识别信息IDi、且如果需要还可以进行验证的形式来包括。

第一密文生成部241使用CPU 911等处理装置,输入明文输入部231输出的明文M、密码参数存储部210存储的公开密码参数、以及表示随机数生成部222输出的n个随机数的信息。

第一密文生成部241使用CPU 911等处理装置,根据输入的信息,生成与n个接收者分别对应的n个第一密文C1i(i是1以上n以下的整数)。

第一密文生成部241使用CPU 911等处理装置,输出所生成的n个第一密文C1i

第二密文生成部242使用CPU 911等处理装置,输入接收者识别输入部232输出的n个接收者识别信息IDi、密码参数存储部210存储的公开密码参数、以及表示随机数生成部222输出的n个随机数的信息。

第二密文生成部242使用CPU 911等处理装置,根据输入的信息,生成与n个接收者分别对应的n个第二密文C2i(i是1以上n以下的整数)。

第二密文生成部242使用CPU 911等处理装置,输出所生成的n个第二密文C2i

第三密文生成部243使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数、以及表示随机数生成部222输出的n个随机数的信息。

第三密文生成部243使用CPU 911等处理装置,根据输入的信息,生成与n个接收者分别对应的n个第三密文C3i(i是1以上n以下的整数)。

第三密文生成部243使用CPU 911等处理装置,输出所生成的n个第三密文C3i

哈希值计算部244使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数、以及密文主文生成部240生成的n个密文主文CBi(即,第一密文生成部241生成的n个第一密文C1i、第二密文生成部242生成的n个第二密文C2i、以及第三密文生成部243生成的n个第三密文C3i)。

哈希值计算部244使用CPU 911等处理装置,根据输入的n个密文主文CBi,计算出一个哈希值H。

哈希值计算部244使用CPU 911等处理装置,输出所计算出的一个哈希值H。

哈希值计算部244计算出的哈希值H根据所使用的基于ID的密码方式而不同。例如,哈希值H是利用公开密码参数确定的规定长度的位串。或者,哈希值H是表示小于公开密码参数所表示的乘法群的阶数r且1以上的整数的信息。

另外,也可以在公开密码参数中,定义用于计算哈希值H的哈希函数HF。在该情况下,哈希值计算部244通过公开密码参数表示的哈希函数HF,计算出哈希值H。

哈希值计算部244根据所有n个密文主文CBi来计算出一个哈希值H。例如,哈希值计算部244将n个密文主文CBi全部结合而生成一个结合密文,计算出所生成的一个结合密文的哈希值H。

密文验证文生成部245使用CPU 911等处理装置,输入哈希值计算部244输出的哈希值H、密码参数存储部210存储的公开密码参数、以及表示随机数生成部222输出的n个随机数的信息。

密文验证文生成部245使用CPU 911等处理装置,根据输入的信息,生成与n个接收者分别对应的n个密文验证文CCi(i是1以上n以下的整数)。

密文验证文生成部245使用CPU 911等处理装置,输出所生成的密文验证文CCi

另外,在该例子中,将密文验证文生成部245生成的密文验证文的数量设为n个,但也可以构成为与接收者无关地生成共用的一个密文验证文。

密文结合部246使用CPU 911等处理装置,输入密文主文生成部240输出的n个密文主文CBi(即,第一密文生成部241输出的n个第一密文C1i、第二密文生成部242输出的n个第二密文C2i、以及第三密文生成部243输出的n个第三密文C3i)、以及密文验证文生成部245输出的密文验证文CC。

密文结合部246使用CPU 911等处理装置,根据输入的n个第一密文C1i、n个第二密文C2i、n个第三密文C3i、以及密文验证文CC,生成一个密钥密文C。例如,密文结合部246使用CPU 911等处理装置,结合所输入的n个第一密文C1i、n个第二密文C2i、n个第三密文C3i、密文验证文CC,而设为一个密钥密文C。

对于与n个接收者对应的所有密文接收装置,相等地发送密文结合部246结合的一个密钥密文C。

另外,在结合的一个密钥密文C中,根据预定的结合的顺序等示出哪个部分是与哪个接收者对应的部分,密文接收装置301~303可以从密钥密文C中容易地抽出与自己对应的部分。

密文结合部246使用CPU 911等处理装置,输出所生成的一个密钥密文C。

数据输入部251使用CPU 911等处理装置,输入明文数据710。

数据输入部251使用CPU 911等处理装置,输出所输入的明文数据710。

数据加密部252使用CPU 911等处理装置,输入数据输入部251输出的明文数据710、以及对话密钥生成部221输出的对话密钥K。

数据加密部252使用CPU 911等处理装置,利用所输入的对话密钥K,对输入的明文数据710进行加密,设为加密数据。

数据加密部252使用CPU 911等处理装置,输出所生成的加密数据。

密文通知部261使用CPU 911等处理装置,输入密文结合部246输出的一个密钥密文C、以及数据加密部252输出的加密数据。

密文通知部261使用CPU 911等处理装置,生成包括所输入的密钥密文C和加密数据722的通知数据720。

密文通知部261使用CPU 911等处理装置,将生成的通知数据720通知给作为通知对方的多个密文接收装置。

例如在邮件通信中,通过指定多个接收者而发送通知数据720,从而通知给多个密文接收装置。通知数据720并非针对每个接收者不同,而对于所有接收者是共用的。

图6是示出本实施方式中的密文接收装置301的功能块的结构的一个例子的块结构图。

密文接收装置301具有密文接收部351、密钥解密部390、以及数据解密部352。

另外,密文接收装置302、密文接收装置303的块结构也与密文接收装置301相同。

密文接收部351使用CPU 911等处理装置,接收密文生成装置200通知的通知数据720。

密文接收部351使用CPU 911等处理装置,取得所接收到的通知数据720中包含的一个密钥密文C、以及加密数据。

密文接收部351使用CPU 911等处理装置,输出所取得的一个密钥密文C、以及加密数据。

密钥解密部390对密文接收部351输出的密钥密文C进行解密,取得用于对加密数据进行解密的对话密钥。

密钥解密部390具有公开参数存储部310、秘密密钥存储部323、密文接收部351、密文分解部346、验证哈希值计算部344、密文验证部345、密文解密部341、以及数据解密部352。

公开参数存储部310使用磁盘装置920等存储装置,存储密码参数生成装置100公开的公开密码参数。

秘密密钥存储部323使用磁盘装置920等存储装置,存储密码参数生成装置100通知的秘密密钥。

密文分解部346使用CPU 911等处理装置,输入密文接收部351输出的一个密钥密文C。

密文分解部346使用CPU 911等处理装置,分解所输入的一个密钥密文C,取得n个密文主文CBi(即,n个第一密文C1i、n个第二密文C2i、以及n个第三密文C3i)、以及密文验证文CC。

以下,将与n个接收者对应的n个密文主文CBi中的、与密文接收装置301所对应的接收者对应的第二密文称为对应密文主文CBID。对于第一密文、第二密文、第三密文、密文验证文也相同。

密文分解部346使用CPU 911等处理装置,从n个密文主文CBi中,取得对应密文主文CBID(即,对应第一密文C1ID、对应第二密文C2ID、以及对应第三密文C3ID)。

同样地,密文分解部346使用CPU 911等处理装置,取得对应密文验证文CCID

另外,在密文验证文与接收者无关而是共用的一个密文验证文的情况下,密文分解部346取得的对应密文验证文CCID是密文验证文本身。

密文分解部346使用CPU 911等处理装置,输出所取得的n个密文主文CBi、对应密文主文CBID、以及对应密文验证文CCID

另外,在n个密文主文CBi中,包含有表示哪个密文主文是与哪个ID对应的对应密文主文CBID的信息的情况下,密文分解部346也可以不取得对应密文主文CBID

验证哈希值计算部344使用CPU 911等处理装置,输入密文分解部346输出的n个密文主文CBi、以及公开参数存储部310存储的公开密码参数。

验证哈希值计算部344使用CPU 911等处理装置,通过与密文生成装置200的哈希值计算部244计算哈希值H的方式同样的方式,计算出验证哈希值H’。

验证哈希值计算部344使用CPU 911等处理装置,输出所计算出的验证哈希值H’。

验证哈希值计算部344根据输入的n个密文主文CBi,通过与哈希值计算部244同样的方式,计算出一个验证哈希值H’。

例如,验证哈希值计算部344根据将输入的n个密文主文CBi全部结合而得到的验证结合密文,计算出验证哈希值H’。

密文验证部345使用CPU 911等处理装置,输入密文分解部346输出的对应密文主文CBID、对应密文验证文CCID、验证哈希值计算部344输出的验证哈希值H’、公开参数存储部310存储的公开密码参数、以及秘密密钥存储部323存储的秘密密钥。

密文验证部345使用CPU 911等处理装置,根据输入的信息,生成验证信息。

密文验证部345使用CPU 911等处理装置,根据生成的验证信息与输入的对应密文验证文CCID,判定密文接收部351接收到的一个密钥密文C中是否有匹配性。

例如,密文分解部346在生成的验证信息与输入的对应密文验证文CCID一致的情况下,判定为密文接收部351接收到的一个密钥密文C中有匹配性。

或者,密文验证部345也可以根据输入的对应密文验证文CCID(以及公开密码参数、秘密密钥),生成另一个验证信息,在生成的两个验证信息一致的情况下,判定为密文接收部351接收到的一个密钥密文C中有匹配性。

密文验证部345使用CPU 911等处理装置,输出表示所判定的判定结果的信息。

密文解密部341使用CPU 911等处理装置,输入表示密文分解部346输出的判定结果的信息、密文分解部346输出的对应密文主文CBID、公开参数存储部310存储的公开密码参数、以及秘密密钥存储部323存储的秘密密钥。

密文解密部341使用CPU 911等处理装置,根据输入的信息,当密文验证部345判定为密文接收部351接收到的一个密钥密文C中有匹配性的情况下,还原明文M。

密文解密部341使用CPU 911等处理装置,输出所还原的明文M。

数据解密部352使用CPU 911等处理装置,输入密文解密部341输出的明文M与密文接收部351输出的加密数据,并将输入的明文M设为对话密钥K’。

数据解密部352使用CPU 911等处理装置,利用输入的对话密钥K’对输入的加密数据进行解密,并设为解密数据。

数据解密部352使用CPU 911等处理装置,输出所解密的解密数据。

接下来,对动作进行说明。

图7是示出本实施方式中的密码参数生成装置100设定公开密码参数的参数设定处理的流程的一个例子的流程图。

在秘密信息生成工序S11中,秘密信息生成部112使用CPU 911等处理装置,输入群参数存储部111存储的群参数。

秘密信息生成部112使用CPU 911等处理装置,根据输入的群参数,随机地生成秘密信息。

秘密信息生成部112使用CPU 911等处理装置,输出所生成的秘密信息。

秘密信息存储部121使用CPU 911等处理装置,输入秘密信息生成部112输出的秘密信息。

秘密信息存储部121使用磁盘装置920等存储装置,存储所输入的秘密信息。

在密码参数生成工序S12中,公开参数生成部113使用CPU 911等处理装置,输入群参数存储部111存储的群参数。

公开参数生成部113使用CPU 911等处理装置,输入在秘密信息生成工序S11中由秘密信息生成部112输出的秘密信息。

公开参数生成部113使用CPU 911等处理装置,根据输入的群参数和输入的秘密信息,生成公开密码参数。

公开参数生成部113使用CPU 911等处理装置,输出所生成的公开密码参数。

参数存储部122使用CPU 911等处理装置,输入公开参数生成部113输出的公开密码参数。

参数存储部122使用磁盘装置920等存储装置,存储所输入的公开密码参数。

在密码参数公开工序S13中,公开参数公开部114使用CPU 911等处理装置,输入在密码参数生成工序S12中由公开参数生成部113输出的公开密码参数。

公开参数公开部114使用CPU 911等处理装置,公开所输入的公开密码参数。

关于公开参数公开部114公开的公开密码参数,由密文生成装置200以及密文接收装置301~303取得,并由密码参数存储部210以及公开参数存储部310使用磁盘装置920等存储装置进行存储。

参数设定处理是在基于ID的密码通信系统800的运用开始之前仅执行一次即可的处理。但是,为了确保密码通信的安全,也可以定期地执行参数设定处理而改变公开密码参数,为了提高密码强度,也可以变更所使用的乘法群来执行参数设定处理。

图8是示出本实施方式中的密码参数生成装置100设定秘密密钥的秘密密钥设定处理的流程的一个例子的流程图。

在识别输入工序S21中,识别信息输入部131使用CPU 911等处理装置,输入接收者识别信息ID。

识别信息输入部131使用CPU 911等处理装置,输出所输入的接收者识别信息ID。

在秘密密钥生成工序S22中,秘密密钥生成部132使用CPU 911等处理装置,输入在S21中由识别信息输入部131输出的接收者识别信息ID。

秘密密钥生成部132使用CPU 911等处理装置,输入秘密信息存储部121存储的秘密信息。

秘密密钥生成部132使用CPU 911等处理装置,输入参数存储部122存储的公开密码参数。

秘密密钥生成部132使用CPU 911等处理装置,根据输入的秘密信息、输入的公开密码参数、以及输入的接收者识别信息ID,生成秘密密钥dID

秘密密钥生成部132使用CPU 911等处理装置,输出所生成的秘密密钥dID

在秘密密钥通知工序S23中,秘密密钥通知部133使用CPU 911等处理装置,输入在S21中由识别信息输入部131输出的接收者识别信息ID。

秘密密钥通知部133使用CPU 911等处理装置,输入在S22中秘密密钥生成部132输出的秘密密钥dID

秘密密钥通知部133使用CPU 911等处理装置,对于与利用输入的接收者识别信息ID识别的接收者对应的密文接收装置,秘密地通知所输入的秘密密钥dID

关于秘密密钥通知部133通知的秘密密钥dID,由被通知的密文接收装置取得,并由秘密密钥存储部323使用磁盘装置920等存储装置进行存储。

秘密密钥设定处理是设定与基于ID的密码通信系统800内的密文接收装置分别对应的秘密密钥的处理。密码参数生成装置100也可以预先生成秘密密钥,并对基于ID的密码通信系统800内的所有密文接收装置301~303通知秘密密钥,也可以根据来自密文接收装置301~303的要求来执行。也可以在密文生成装置200通知了通知数据720之后,执行秘密密钥设定处理。

图9是示出本实施方式中的密文生成装置200生成密文的密文生成处理的流程的一个例子的流程图。

在明文数据输入工序S31中,数据输入部251使用CPU 911等处理装置,输入应通知给n个密文接收装置的明文数据。

数据输入部251使用CPU 911等处理装置,输出所输入的明文数据。

在接收者识别输入工序S32中,接收者识别输入部232使用CPU

911等处理装置,输入分别对与应通知在明文数据输入工序S31中由数据输入部251输入的明文数据的n个密文接收装置对应的n个接收者进行识别的n个接收者识别信息IDi(i为以上n以下的整数)。

接收者识别输入部232使用CPU 911等处理装置,输出所输入的n个接收者识别信息IDi

在对话密钥生成工序S33中,对话密钥生成部221使用CPU 911等处理装置,随机地生成对话密钥K。

对话密钥生成部221使用CPU 911等处理装置,输出所生成的对话密钥K。

明文输入部231使用CPU 911等处理装置,输入对话密钥生成部221输出的对话密钥K。

明文输入部231使用CPU 911等处理装置,将输入的对话密钥K作为明文M而输出。

在随机数生成工序S34中,随机数生成部222使用CPU 911等处理装置,随机地生成与n个接收者分别对应的n个随机数。

随机数生成部222使用CPU 911等处理装置,输出表示所生成的n个随机数的信息。

在第一密文生成工序S35中,第一密文生成部241使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数。

第一密文生成部241使用CPU 911等处理装置,输入在对话密钥生成工序S33中由明文输入部231输出的明文M。

第一密文生成部241使用CPU 911等处理装置,输入表示在随机数生成工序S34中由随机数生成部222输出的n个随机数的信息。

第一密文生成部241使用CPU 911等处理装置,根据输入的信息,生成与n个接收者对应的n个第一密文C1i(i是1以上n以下的整数)。

第一密文生成部241使用CPU 911等处理装置,输出所生成的n个第一密文C1i

在第二密文生成工序S36中,第二密文生成部242使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数。

第二密文生成部242使用CPU 911等处理装置,输入在接收者识别输入工序S32中由接收者识别输入部232输出的n个接收者识别信息IDi

第二密文生成部242使用CPU 911等处理装置,输入表示在随机数生成工序S34中由随机数生成部222输出的n个随机数的信息。

第二密文生成部242使用CPU 911等处理装置,根据输入的信息,生成与n个接收者分别对应的n个第二密文C2i(i是1以上n以下的整数)。

第二密文生成部242使用CPU 911等处理装置,输出所生成的n个第二密文C2i

在第三密文生成工序S37中,第三密文生成部243使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数。

第三密文生成部243使用CPU 911等处理装置,输入表示在随机数生成工序S34中由随机数生成部222输出的n个随机数的信息。

第三密文生成部243使用CPU 911等处理装置,根据输入的信息,生成与n个接收者分别对应的n个第三密文C3i(i是1以上n以下的整数)。

第三密文生成部243使用CPU 911等处理装置,输出所生成的n个第三密文C3i

在哈希值计算工序S38中,哈希值计算部244使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数。

哈希值计算部244使用CPU 911等处理装置,输入在第一密文生成工序S35中第一密文生成部241输出的n个第一密文C1i

哈希值计算部244使用CPU 911等处理装置,输入在第二密文生成工序S36中第二密文生成部242输出的n个第二密文C2i

哈希值计算部244使用CPU 911等处理装置,输入在第三密文生成工序S37中第三密文生成部243输出的n个第三密文C3i

哈希值计算部244使用CPU 911等处理装置,根据输入的信息,计算出哈希值H。

哈希值计算部244使用CPU 911等处理装置,输出所计算出的哈希值H。

在密文验证文生成工序S39中,密文验证文生成部245使用CPU911等处理装置,输入密码参数存储部210存储的公开密码参数。

密文验证文生成部245使用CPU 911等处理装置,输入表示在随机数生成工序S34中随机数生成部222输出的n个随机数的信息。

密文验证文生成部245使用CPU 911等处理装置,输入在哈希值计算工序S38中哈希值计算部244输出的哈希值H。

密文验证文生成部245使用CPU 911等处理装置,根据输入的信息,生成与n个接收者对应的n个密文验证文CCi(i是1以上n以下的整数)。

密文验证文生成部245使用CPU 911等处理装置,输出所生成的n个密文验证文CCi

在密文结合工序S40中,密文结合部246使用CPU 911等处理装置,输入在第一密文生成工序S35中第一密文生成部241输出的n个第一密文C1i

密文结合部246使用CPU 911等处理装置,输入在第二密文生成工序S36中第二密文生成部242输出的n个第二密文C2i

密文结合部246使用CPU 911等处理装置,输入在第三密文生成工序S37中第三密文生成部243输出的n个第三密文C3i

密文结合部246使用CPU 911等处理装置,输入在密文验证文生成工序S39中密文验证文生成部245输出的n个密文验证文CCi

密文结合部246使用CPU 911等处理装置,结合输入的n个第一密文C1i、输入的n个第二密文C2i、输入的n个第三密文C3i、以及输入的n个密文验证文CCi,而设为一个密钥密文C。

密文结合部246使用CPU 911等处理装置,输出结合了的一个密钥密文C。

在数据加密工序S41中,数据加密部252使用CPU 911等处理装置,输入在明文数据输入工序S31中数据输入部251输出的明文数据。

数据加密部252使用CPU 911等处理装置,输入在对话密钥生成工序S33中对话密钥生成部221输出的对话密钥K。

数据加密部252使用CPU 911等处理装置,利用所输入的对话密钥K,对输入的明文数据进行加密,而设为加密数据。

数据加密部252使用CPU 911等处理装置,输出加密后的加密数据。

在密文通知工序S42中,密文通知部261使用CPU 911等处理装置,输入在接收者识别输入工序S32中接收者识别输入部232输出的n个接收者识别信息IDi

密文通知部261使用CPU 911等处理装置,输入在密文结合工序S40中密文结合部246输出的一个密钥密文C。

密文通知部261使用CPU 911等处理装置,输入在数据加密工序S41中数据加密部252输出的加密数据。

密文通知部261使用CPU 911等处理装置,生成包括所输入的一个密钥密文C和所输入的加密数据的数据,而设为通知数据。

密文通知部261使用CPU 911等处理装置,对与利用所输入的n个接收者识别信息IDi识别的接收者对应的密文接收装置,通知所生成的通知数据。

图10是示出本实施方式中的密文接收装置301~303接收密文的密文接收处理的流程的一个例子的流程图。

在通知数据接收工序S51中,密文接收部351使用CPU 911等处理装置,接收密文生成装置200通知的通知数据。

密文接收部351使用CPU 911等处理装置,取得所接收到的通知数据中包含的一个密钥密文C、以及加密数据。

密文接收部351使用CPU 911等处理装置,输出所取得的一个密钥密文C、以及加密数据。

在密文分解工序S52中,密文分解部346使用CPU 911等处理装置,输入在通知数据接收工序S51中密文接收部351输出的一个密钥密文C。

密文分解部346使用CPU 911等处理装置,根据输入的一个密钥密文C,取得n个第一密文C1i、n个第二密文C2i、n个第三密文C3i、以及n个密文验证文CCi

密文分解部346使用CPU 911等处理装置,输出所取得的n个第一密文C1i、n个第二密文C2i、n个第三密文C3i、以及n个密文验证文CCi

另外,密文分解部346使用CPU 911等处理装置,取得对应第一密文C1ID、对应第二密文C2ID、对应第三密文C3ID、以及对应密文验证文CCID

密文分解部346使用CPU 911等处理装置,输出所取得的对应第一密文C1ID、对应第二密文C2ID、对应第三密文C3ID、以及对应密文验证文CCID

在验证哈希值计算工序S53中,验证哈希值计算部344使用CPU911等处理装置,输入公开参数存储部310存储的公开密码参数。

验证哈希值计算部344使用CPU 911等处理装置,输入在密文分解工序S52中密文分解部346输出的n个第一密文C1i、n个第二密文C2i、以及n个第三密文C3i

验证哈希值计算部344使用CPU 911等处理装置,根据输入的信息,计算出验证哈希值H’。

验证哈希值计算部344使用CPU 911等处理装置,输出所计算出的验证哈希值H’。

在密文验证工序S54中,密文验证部345使用CPU 911等处理装置,输入公开参数存储部310存储的公开密码参数。

密文验证部345使用CPU 911等处理装置,输入秘密密钥存储部323存储的秘密密钥。

密文验证部345使用CPU 911等处理装置,输入在密文分解工序S52中密文分解部346输出的对应第二密文C2ID、对应第三密文C3ID、以及对应密文验证文CCID

密文验证部345使用CPU 911等处理装置,输入在验证哈希值计算工序S53中验证哈希值计算部344输出的验证哈希值H’。

密文验证部345使用CPU 911等处理装置,根据输入的信息,生成验证信息。

密文验证部345使用CPU 911等处理装置,根据生成的验证信息和输入的对应密文验证文CCID,判定密文接收部351接收到的一个密钥密文C中是否有匹配性。

在判定为有匹配性的情况下,进入密文解密工序S55。

在判定为无匹配性的情况下,结束密文接收处理。

在密文解密工序S55中,密文解密部341使用CPU 911等处理装置,输入公开参数存储部310存储的公开密码参数。

密文解密部341使用CPU 911等处理装置,输入秘密密钥存储部323存储的秘密密钥。

密文解密部341使用CPU 911等处理装置,输入在密文分解工序S52中密文分解部346输出的对应第一密文C1ID、对应第二密文C2ID、以及对应第三密文C3ID

密文解密部341使用CPU 911等处理装置,根据输入的信息,还原明文M。

密文解密部341使用CPU 911等处理装置,输出所还原的明文M。

在数据解密工序S56中,数据解密部352使用CPU 911等处理装置,输入在通知数据接收工序S51中密文接收部351输出的加密数据。

数据解密部352使用CPU 911等处理装置,作为对话密钥K’而输入在密文解密工序S55中密文解密部341输出的明文M。

数据解密部352使用CPU 911等处理装置,利用输入的对话密钥K’,对输入的加密数据进行解密,而设为解密数据。

数据解密部352使用CPU 911等处理装置,输出所解密的解密数据。

如上所述,只有想要通知明文数据的接收者能够还原对话密钥K,所以可以对加密数据进行解密。

以下,对本实施方式中的基于ID的密码通信系统800的安全性进行讨论。

首先,作为基于ID的密码方式的多个用户中的安全性,如下所述定义MU-IND-ID-CCA2安全性。

此处,“MU-IND-ID-CCA2安全性”是指,在多个用户(Multi-User)中,针对能够适当地选择目标ID的攻击者的安全性。

密码系统∏是具有PKG(Private Key Generator:私钥产生器)用密钥生成功能S、秘密密钥导出功能X、加密功能C、以及解密功能D的基于ID的密码通信系统。

PKG用密钥生成功能S将初始信息Γ作为输入,生成PKG用主密钥msk和共用参数params。

PKG用密钥生成功能S相当于基于ID的密码通信系统800中的公开密码参数生成装置100的参数设定部110的功能。初始信息Γ相当于群参数。PKG用主密钥msk相当于秘密信息。共用参数params相当于公开密码参数。

秘密密钥导出功能X将用户的识别信息ID和PKG用主密钥msk作为输入,输出秘密密钥dID

秘密密钥导出功能X相当于基于ID的密码通信系统800中的密码参数生成装置100的秘密密钥设定部130的功能。用户的识别信息ID相当于接收者识别信息。

加密功能E根据用户的识别信息ID、共用参数params、以及消息M,生成密文C。密文C相当于密钥密文C。

加密功能E相当于基于ID的密码通信系统800中的密文生成装置200的功能。消息M相当于明文M(=对话密钥K)。

解密功能D将秘密密钥dID、共用参数params、以及密文C作为输入,对消息进行解密。解密功能D返回所解密的消息。另外,在解密失败的情况下,返回“拒绝”而并非消息。

解密功能D相当于基于ID的密码通信系统800中的密文接收装置301~303的功能。

将针对如上所述构成的密码系统∏的攻击者设为A。

另外,将n=n(k)设为k的多项式。

攻击者A可以利用加密oracle OE

加密oracle OE预先随机地选择0和1中的某一个而作为b。

加密oracle OE输入用户的识别信息ID*、两个消息M0*以及M1*

加密oracle OE根据预先选择的b,从消息M0*以及消息M1*中选择一个,通过加密功能E,根据输入的用户的识别信息ID*、共用参数params、以及选择的消息,生成密文C*并进行回答。

攻击者A可以针对不同的用户的识别信息ID*,调用加密oracleOE。但是,在攻击者A调用加密oracle OE时,可以输入到加密oracleOE中的用户的识别信息ID*的个数设为n以下。

另外,攻击者A还可以针对相同用户的识别信息ID*,输入不同的消息M0*以及M1*而调用加密oracle OE

这样,攻击者A多次调用加密oracle OE。加密oracle OE在输入的两个消息中,总是选择相同的一方(如果是前者则总是选择前者,如果是后者则总是选择后者)。

另外,攻击者A可以利用密钥导出oracle Ox

密钥导出oracle Ox输入用户的识别信息ID。

密钥导出oracle Ox通过密钥导出功能X,根据攻击者A不知道的PKG用主密钥msk、和输入的用户的识别信息ID,生成秘密密钥dID并进行回答。

另外,攻击者A可以利用解密oracle OD

解密oracle OD输入用户的识别信息ID、和密文C。

解密oracle OD通过密钥导出功能X,根据攻击者A不知道的PKG用主密钥msk、和输入的用户的识别信息ID,生成秘密密钥dID

解密oracle OD通过解密功能E,根据生成的秘密密钥dID、共用参数params、以及输入的密文C,对消息进行解密。

解密oracle OD回答所解密的消息(或“拒绝”)。

攻击者A利用这些oracle,对猜中b是0还是1的游戏进行挑战。

攻击者A无法将曾经输入到密钥导出oracle OX的用户的识别信息ID输入到加密oracle OE。如果攻击者A知道秘密密钥dID,则可以对加密oracle输出的密文C*进行解密,所以容易猜中对哪个消息进行了加密,丝毫不能说解读了密码。

相反地,攻击者A也无法将曾经输入到加密oracle OE的用户的识别信息ID*输入到密钥导出oracle OX

另外,攻击者A也无法将曾经输入到加密oracle OE的用户的识别信息ID*、与针对其而由加密oracle OE输出的密文C的组合,输入到解密oracle OD。因为在利用解密oracle OD对加密oracle输出的密文C*进行了解密的情况下,也容易猜中对哪个消息进行了加密,丝毫不能说解读了密码。

除了上述限制,攻击者A自由地调用oracle,推测b是0还是1。攻击者A输出推测结果b’。

此处,将攻击者A针对每个用户的识别信息ID调用加密oracleOE的次数设为qe。即,加密oracle OE有最大被调用n·qe次的可能性。

另外,将攻击者A调用解密oracle OD的次数设为qd,将调用密钥导出oracle Ox的次数设为qx

在攻击者A完全无法解读密码的情况下,成为b=b’的概率是1/2。在攻击者A总是可以解读密码的情况下,成为b=b’的概率是1。在攻击者A有时可以解读密码的情况下,成为b=b’的概率是1/2与1之间。另外,虽然还有成为b=b’的概率小于1/2的可能性,但在该情况下,在相反的意思上可以说攻击者A解读了密码。

因此,将攻击者A的优势(advantage)A d v定义为Advmun,∏,Γ(A)=|Pr[Gamemun,∏,Γ(A,0)=0]-Pr[Gamemun,∏,Γ(A,1)=0]|。

此处,Pr[…]表示发生该事件的概率。

Gamemun,∏,Γ(A,0)表示在b=0的情况下攻击者A推测的推测结果b’的值。因此,Gamemun,∏,Γ(A,0)=0表示在b=0的情况下攻击者A的推测命中的事件。

另外,Gamemun,∏,Γ(A,1)表示在b=1的情况下攻击者A推测的推测结果b’的值。因此,Gamemun,∏,Γ(A,1)=0表示在b=1的情况下攻击者A的推测没命中的事件。

即,Advmun,∏,Γ(A)表示在攻击者A输出了推测结果b’=0的情况下该推测命中的概率与没命中的概率之差的绝对值。

在攻击者A完全无法解读密码的情况下,Advmun,∏,Γ(A)成为0。在攻击者A总是可以解读密码的情况下,Advmun,∏,Γ(A)成为1。在攻击者A有时可以解读密码的情况下,Advmun,∏,Γ(A)成为0与1之间的值。

将密码系统∏的n个用户安全性定义为Advmun,∏,Γ(t,qe,qd,qx)=max{Advmun,∏,Γ(A)}。这表示,针对每个ID调用qe次加密oracle OE、调用qd次解密oracle OD、调用qx次密钥导出oracle OX而在时间t的期间给出回答的攻击者A中的、具有最高优势的攻击者的优势。

在Advmun,∏,Γ(t,qe,qd,qx)对于所有k的多项式n(k)可以忽视(negligible)时,可以说密码系统∏是(t,qe,qd,qx)-MU安全。

以往,作为基于ID的密码方式的安全性而定义的是此处定义的安全性的特殊的情况,是qe=1且n=1时的MU安全性。

接下来,作为基于ID的密码方式的多个接收者中的安全性,如下所述定义SMMR-IND-ID-CCA2安全性。

此处,“SMMR-IND-ID-CCA2安全性”表示在对多个接收者(Multi-Recipient)发送单一的消息(Single Message)的情况下针对可以适当地选择目标ID的攻击者的安全性。

密码系统∏’是对单一的消息进行多点传送的基于多个接收者ID的密码通信系统。密码系统∏’具有PKG用密钥生成功能S’、秘密密钥导出功能X’、加密功能E’、密文分节功能T’、以及解密功能D’。

PKG用密钥生成功能S’以及秘密密钥导出功能X’由于与MU-IND-ID-CCA2安全的定义中的PKG用密钥生成功能S以及秘密密钥导出功能X’相同,所以省略说明。

加密功能E’输入多个用户的识别信息ID=(ID1,ID2,…,IDn)、共用参数params、以及消息M,生成密文C。

密文分节功能T’输入密文C,面向各ID分节,生成密文CID

密文分节功能T’相当于基于ID的密码通信系统800的密文接收装置的密文分解部346的功能。

解密功能D’输入秘密密钥dID、共用参数params、以及针对其ID(被分节)的密文CID,返回所解密的消息(或“拒绝”)。

将针对如上所述构成的密码系统∏’的攻击者设为A。

攻击者A可以利用加密oracle OE’

加密oracle OE′输入n个用户各自的识别信息ID*=(ID1*,ID2*,…,IDn*)、以及两个消息M0*以及M1*

加密oracle OE′随机地选择0和1中的某一个而设为b。

加密oracle OE’根据所选择的b,从所输入的两个消息M0*以及消息M1*中选择某一方,通过加密功能E,根据输入的n个用户各自的识别信息ID*、共用参数params、以及选择的消息,生成密文C*并进行回答。

另外,攻击者A可以利用密钥导出oracle Ox’

密钥导出oracle Ox’输入(一个)用户的识别信息ID。

密钥导出oracle Ox’通过密钥导出功能X’,根据攻击者A不知道的PKG用主密钥msk、以及输入的用户的识别信息ID,生成秘密密钥dID并进行回答。

另外,攻击者A可以利用解密oracle OD’

解密oracle OD’输入用户的识别信息ID、以及针对该ID(被分节)的密文CID

解密oracle OD’通过密钥导出功能X’,根据攻击者A不知道的PKG用主密钥msk、以及输入的用户的识别信息ID,生成秘密密钥dID

解密oracle OD’通过解密功能D’,根据所生成的秘密密钥dID、共用参数params、以及所输入的密文CID,对消息进行解密。

解密oracle OD’回答所解密的消息(或“拒绝”)。

攻击者A调用一次加密oracle OE′,对猜中b是0还是1的游戏进行挑战。

攻击者A在调用加密oracle OE′之前以及调用加密oracle OE′之后,都可以多次调用密钥导出oracle Ox’以及解密oracle OD’

但是,无法将向加密oracle OE′输入了的(进行输入的)n个用户各自的识别信息ID*中包含的用户的识别信息输入到密钥导出oracle Ox’

另外,攻击者A也无法将向加密oracle OE’输入了的n个用户各自的识别信息ID*中包含的用户的识别信息ID*、与针对其由加密oracle OE’输出的密文C中的针对该识别信息的密文CID的组合,输入到解密oracle OD’

除了上述限制,攻击者A自由地调用密钥导出oracle Ox’以及解密oracle OD’,推测b是0还是1。攻击者A输出推测结果b’。

根据上述游戏,与MU-IND-ID-CCA2安全性的情况同样地,将攻击者A的优势Adv定义为Advsmmrn,∏’,Γ(A)=|Pr[Gamesmmrn,∏’,Γ(A,0)=0]-Pr[Gamesmmrn,∏’,Γ(A,1)=0]|。

另外,密码系统∏’的n个接收者安全性也同样地,定义为Advsmmrn,∏’,Γ(t,qd,qx)=max{Advsmmrn,∏’,Γ(A)}。这表示调用qd次解密oracle OD’、调用qx次密钥导出oracle Ox’而在时间t的期间给出回答的攻击者A中的、具有最高优势的攻击者的优势。

并且,在Advsmmrn,∏’,Γ(t,qd,qx)对于所有k的多项式n(k)可以忽视时,可以说密码系统∏’是(t,qd,qx)-SMMR安全。

基于以上定义,对本实施方式中的基于ID的密码通信系统800的SMMR-IND-ID-CCA2安全性进行说明。

在本实施方式中的基于ID的密码通信系统800中,哈希值计算部244根据与n个接收者对应的n个密文主文CBi,计算出一个哈希值H。将该方式称为“哈希值共用化方式”。

与此相对,还有如下方式:哈希值计算部244分别根据与n个接收者对应的n个密文主文CBi计算出哈希值,计算出与n个接收者对应的n个哈希值。以下将这样的方式称为“连接方式”。

此处,首先对连接方式的安全性进行说明。

SMMR-IND-ID-CCA2安全性的定义中的加密oracle OE′输入n个用户各自的识别信息ID*=(ID1*,ID2*,…,IDn*),进行加密处理。

与此相对,MU-IND-ID-CCA2安全性的定义中的加密oracleOE输入(一个)用户的识别信息ID*,进行加密处理。

因此,如果调用n次MU-IND-ID-CCA2安全性的定义中的加密oracle OE而进行关于各个用户的识别信息的加密处理,则与SMMR-IND-ID-CCA2安全性的定义中的加密oracle OE′同等。

另外,MU-IND-ID-CCA2安全性的定义中的密钥导出oracleOx以及解密oracle OD,与SMMR-IND-ID-CCA2安全性的定义中的密钥导出oracle Ox’以及解密oracle OD’同等。

通过以上,基于连接方式的密码系统∏’的n个接收者SMMR安全性与在原来的密码系统∏中qe=1时的n个用户MU安全性同等。即,是Advsmmrn,∏’,Γ(t,qd,qx)=Advmun,∏,Γ(t,1,qd,qx)。

另外,针对一般的公开密钥密码方式∏的MU安全性可以证明Advmun,∏,Γ(t,qe,qd,qx)≤qe·n·Advmu1,∏,Γ(t’,1,qd,qx)。这在基于ID的密码方式的情况下也相同。

此处,Advmu1,∏,Γ(t’,1,qd,qx)是n个用户MU安全性的n=1且qe=1时的安全性,所以以往被定义为基于ID的密码方式的安全性。

因此,通过连接方式将在以往的意义中证明了安全性的基于ID的密码方式进行扩展而得到的基于多个接收者ID的密码方式的SMMR安全性成为Advsmmrn,∏’,Γ(t,qd,qx)≤n·Advmu1,∏,Γ(t’,1,qd,qx),可以证明安全性。

这样,连接方式的SMMR安全性可以从原来的基于(单独接收者)ID的密码方式的MU安全性直接导出,但哈希值共用化方式的SMMR安全性分别需要进行具体的证明。

在哈希值共用化方式中,哈希值计算部244计算出一个哈希值H即可,所以与计算出对应于n个接收者的n个哈希值的连接方式相比,可以削减哈希值计算部244计算哈希值的处理的处理量。

另外,关于密文验证文生成部245生成密文验证文CC的处理,在连接方式中需要将大部分的运算重复进行n次,与此相对,在哈希值共用化方式中,共用化直到途中为止的运算而进行一次即可,所以还可以削减密文验证文生成部245生成密文验证文CC的处理的处理量。

由此,密文生成装置200中的密文生成处理的处理速度变快,即使密文生成装置200的CPU 911等处理装置的处理能力较低,也可以在实用的时间内进行密文生成处理。

本实施方式中的密文生成装置200生成将明文M通知给n个接收者(n是1以上的整数)的密文C(密钥密文C),密文生成装置200的特征在于具有:存储信息的磁盘装置920等存储装置;处理信息的CPU911等处理装置;密码参数存储部210;接收者识别输入部232;明文输入部231;密文主文生成部240;哈希值计算部244;密文验证文生成部245;以及密文结合部246。

密码参数存储部210的特征是,使用磁盘装置920等存储装置,存储公开密码参数。

接收者识别输入部232的特征是,使用CPU 911等处理装置,输入分别识别n个接收者的n个接收者识别信息IDi(i是1以上n以下的整数)。

明文输入部231的特征是,使用CPU 911等处理装置,输入明文M。

密文主文生成部240的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数、接收者识别输入部232输入的n个接收者识别信息IDi、以及明文输入部231输入的明文M,生成与n个接收者对应的n个密文主文CBi(i是1以上n以下的整数)。

哈希值计算部244的特征是,使用CPU 911等处理装置,结合由密文主文生成部240生成的n个密文主文CBi,生成结合密文,并使用CPU911等处理装置,根据生成的结合密文,计算出哈希值H。

密文验证文生成部245的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数、以及哈希值计算部244计算出的哈希值H,生成密文验证文CC。

密文结合部246的特征是,使用CPU 911等处理装置,结合由密文主文生成部240生成的n个密文主文CBi、以及密文验证文生成部245生成的密文验证文CC,设为一个密文C。

根据本实施方式中的密文生成装置200,在基于ID的密码通信方式中,将生成把同一明文M通知给多个接收者的一个密文C的处理的一部分即计算哈希值的处理、以及基于计算出的哈希值的处理分别执行一次即可,所以具有使处理高效化、可以实现高速的密码处理这样的效果。

本实施方式中的密文生成装置200的特征在于,还具有随机数生成部222。

随机数生成部222的特征是,使用CPU 911等处理装置,随机地生成与n个接收者对应的n个整数si(i是1以上n以下的整数)。

密文主文生成部240的特征是,具有第一密文生成部241、第二密文生成部242、以及第三密文生成部243。

第一密文生成部241的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数、明文输入部231输入的明文M、以及随机数生成部222生成的n个整数si,生成与n个接收者对应的n个第一密文C1i(i是1以上n以下的整数)。

第二密文生成部242的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数、接收者识别输入部232输入的n个接收者识别信息IDi、以及随机数生成部222生成的n个整数si,生成与n个接收者对应的n个第二密文C2i(i是1以上n以下的整数)。

第三密文生成部243的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数、以及随机数生成部222生成的n个整数si,生成与n个接收者对应的n个第三密文C3i(i是1以上n以下的整数)。

哈希值计算部244的特征是,使用CPU 911等处理装置,将第一密文生成部241生成的n个第一密文C1i、第二密文生成部242生成的n个第二密文C2i、以及第三密文生成部243生成的n个第三密文C3i进行结合,设为一个结合密文,并使用CPU 911等处理装置,根据结合的一个结合密文,计算出一个哈希值H0

密文验证文生成部245的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数、随机数生成部222生成的n个整数si、以及哈希值计算部244计算出的一个哈希值H0,生成与n个接收者对应的n个密文验证文CCi(i是1以上n以下的整数)。

密文结合部246的特征是,使用CPU 911等处理装置,结合第一密文生成部241生成的n个第一密文C1i、第二密文生成部242生成的n个第二密文C2i、第三密文生成部243生成的n个第三密文C3i、以及密文验证文生成部245生成的n个密文验证文CCi,设为一个密文C(密钥密文C)。

根据本实施方式中的密文生成装置200,哈希值计算部244与接收者无关地计算出共用的一个哈希值H0,所以起到可以削减密文生成装置200中的密文生成处理的处理量这样的效果。

另外,在将对于单独接收者的情况证明了安全性的基于ID的密码通信方式扩展为多个接收者的基于ID的密码通信方式中,起到可以证明与单独接收者的情况同样的安全性这样的效果。

本实施方式中的密文生成装置200还将以下的点作为特征。

密文主文生成部240的特征是,使用CPU 911等处理装置,生成包含有由接收者识别输入部232输入的n个接收者识别信息IDi的n个密文主文CBi

根据本实施方式中的密文生成装置200,成为哈希值计算部244计算出的哈希值的基础的n个密文主文CBi包含有n个接收者识别信息,所以起到基于ID的密码通信方式的安全性变高这样的效果。

本实施方式中的密文生成装置200的特征在于,还具有密文通知部261。

密文通知部261的特征是,使用CPU 911等处理装置,对利用由接收者识别输入部232输入的n个接收者识别信息IDi识别的n个接收者,通知上述密文结合部246结合的一个密文C(密钥密文C)。

根据本实施方式中的密文生成装置200,密文通知部261对n个接收者通知同一密文C,所以起到通知密文的通信路径的通信量所需的负荷小这样的效果。

本实施方式中的密文生成装置200的特征在于,还具有对话密钥生成部221。

对话密钥生成部221的特征是,使用CPU 911等处理装置,随机地生成规定长度的位串,设为对话密钥K。

明文输入部213的特征是,使用CPU 911等处理装置,作为明文M,输入上述对话密钥生成部生成的对话密钥K。

在本实施方式中的密文生成装置200中,对话密钥生成部221生成对话密钥K,生成将所生成的对话密钥通知给通知对方的密文C,所以与从外部输入对话密钥K的情况相比,具有安全性高这样的效果。

本实施方式中的密文生成装置200的特征在于,还具有数据输入部251、数据加密部252、以及密文通知部261。

数据输入部251的特征是,使用CPU 911等处理装置,输入应发送给n个接收者的一个明文数据。

数据加密部252的特征是,使用CPU 911等处理装置,利用对话密钥生成部221生成的对话密钥K,对由数据输入部251输入的一个明文数据进行加密,设为一个加密数据。

密文通知部261的特征是,使用CPU 911等处理装置,对利用由接收者识别输入部232输入的n个接收者识别信息IDi识别的n个接收者,通知密文结合部246结合的一个密文C(密钥密文C)、以及数据加密部252加密的一个加密数据。

根据本实施方式中的密文生成装置200,数据加密部252与接收者无关地利用共用的一个对话密钥K对明文数据进行加密,密文通知部261与接收者无关地将共用的一个密文C以及一个加密数据通知给接收者,所以具有通信路径的通信量所需的负荷小这样的效果。

本实施方式中的基于ID的密码通信系统800(密码通信系统)对具有各自对应的密文接收装置的n个接收者(n是1以上的整数),利用一个密文C(密钥密文C)通知明文M(对话密钥K),密码通信系统800的特征在于,具有密码参数生成装置100、密文生成装置200、以及多个密文接收装置301~303。

密码参数生成装置100的特征是,具有:存储信息的磁盘装置920等存储装置;处理信息的CPU 911等处理装置;秘密信息生成部112;秘密信息存储部121;公开参数生成部113;公开参数公开部114;识别信息输入部131;秘密密钥生成部132;秘密密钥通知部133。

秘密信息生成部112的特征是,使用CPU 911等处理装置,随机地生成秘密信息。

秘密信息存储部121的特征是,使用磁盘装置920等存储装置,存储秘密信息生成部112生成的秘密信息。

公开参数生成部113的特征是,使用CPU 911等处理装置,根据秘密信息生成部112生成的秘密信息,生成公开密码参数。

公开参数公开部114的特征是,使用CPU 911等处理装置,公开由公开参数生成部113生成的公开密码参数。

识别信息输入部131的特征是,使用CPU 911等处理装置,输入对与多个密文接收装置301~303中的一个密文接收装置对应的一个接收者进行识别的接收者识别信息ID。

秘密密钥生成部132的特征是,使用CPU 911等处理装置,根据秘密信息存储部121存储的秘密信息、公开参数生成部113生成的公开密码参数、以及识别信息输入部131输入的接收者识别信息ID,生成与上述一个接收者对应的秘密密钥dID

秘密密钥通知部133的特征是,使用CPU 911等处理装置,对与上述一个接收者对应的一个密文接收装置,秘密地通知秘密密钥生成部132生成的秘密密钥dID

密文生成装置200的特征是,具有:存储信息的磁盘装置920等存储装置;处理信息的CPU 911等处理装置;密码参数存储部210;接收者识别输入部232;明文输入部231;随机数生成部222;密文主文生成部240;哈希值计算部244;密文验证文生成部245;密文结合部246;以及密文通知部261。

密码参数存储部210的特征是,使用磁盘装置920等存储装置,存储密码参数生成装置100公开的公开密码参数。

接收者识别输入部232的特征是,使用CPU 911等处理装置,输入分别识别n个接收者的n个接收者识别信息IDi(i是1以上n以下的整数)。

明文输入部231的特征是,使用CPU 911等处理装置,输入明文M。

第二密文生成部242的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数、接收者识别输入部232输入的n个接收者识别信息IDi、以及明文输入部231输入的明文M,生成与n个接收者对应的n个密文主文CBi(i是1以上n以下的整数)。

哈希值计算部244的特征是,使用CPU 911等处理装置,结合由密文主文生成部240生成的n个密文主文CBi,生成结合密文,使用CPU

911等处理装置,根据生成的结合密文,计算出哈希值H。

密文验证文生成部245的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数、以及哈希值计算部244计算出的哈希值H,生成密文验证文CC。

密文结合部246的特征是,使用CPU 911等处理装置,结合由密文主文生成部244生成的n个密文主文CBi、以及密文验证文生成部245生成的密文验证文CC,设为一个密文C(密钥密文C)。

密文通知部261的特征是,使用CPU 911等处理装置,对与上述n个接收者对应的n个密文接收装置,通知密文结合部246结合的一个密文C。

多个密文接收装置301~303的特征是,分别具有:存储信息的磁盘装置920等存储装置;处理信息的CPU 911等处理装置;公开参数存储部310;秘密密钥存储部323;密文接收部351;密文分解部346;验证哈希值计算部344;密文验证部345;以及密文解密部341。

公开参数存储部310的特征是,使用磁盘装置920等存储装置,存储密码参数生成装置100公开的公开密码参数。

秘密密钥存储部323的特征是,使用磁盘装置920等存储装置,存储密码参数生成装置100通知的秘密密钥dID

密文接收部351的特征是,使用CPU 911等处理装置,接收密文生成装置200通知的一个密文C(密钥密文C)。

密文分解部346的特征是,使用CPU 911等处理装置,根据密文接收部351接收到的一个密文C,取得n个密文主文C2i、以及密文验证文CC,使用CPU 911等处理装置,在取得的n个密文主文CBi中,取得对应于密文接收装置所对应的接收者的一个对应密文主文CBID

验证哈希值计算部344的特征是,使用CPU 911等处理装置,根据将密文分解部346取得的n个密文主文CBi结合而得到的验证结合密文,计算出验证哈希值H’。

密文验证部345的特征是,使用CPU 911等处理装置,根据公开参数存储部310存储的公开密码参数、密文分解部346取得的一个对应密文主文CBID和密文验证文CC、以及验证哈希值计算部344计算出的验证哈希值H’,判定密文接收部351接收到的一个密文C中是否有匹配性。

密文解密部341的特征是,在密文验证部345判定为密文接收部351接收到的一个密文C中有匹配性的情况下,使用CPU 911等处理装置,根据公开参数存储部310存储的公开密码参数、秘密密钥存储部323存储的秘密密钥dID、以及密文分解部346取得的一个对应密文主文CBID,还原明文M。

根据本实施方式中的基于ID的密码通信系统800,具有如下效果:在基于ID的密码通信方式下,利用一个密文C将同一明文M通知给多个接收者,其它接收者无法解读密文C。

本实施方式中的基于ID的密码通信系统800(密码通信系统)还将以下的点作为特征。

密文生成装置200的特征是,还具有随机数生成部222。

随机数生成部222的特征是,使用CPU 911等处理装置,随机地生成与n个接收者对应的n个整数si(i是1以上n以下的整数)。

密文主文生成部240的特征是,具有第一密文生成部241、第二密文生成部242、以及第三密文生成部243。

第一密文生成部241的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数、明文输入部231输入的明文M、以及随机数生成部222生成的n个整数si,生成与n个接收者对应的n个第一密文C1i(i是1以上n以下的整数)。

第二密文生成部242的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数、接收者识别输入部232输入的n个接收者识别信息IDi、以及随机数生成部222生成的n个整数si,生成与n个接收者对应的n个第二密文C2i(i是1以上n以下的整数)。

第三密文生成部243的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数、以及随机数生成部222生成的n个整数si,生成与n个接收者对应的n个第三密文C3i(i是1以上n以下的整数)。

哈希值计算部244的特征是,使用CPU 911等处理装置,结合由第一密文生成部241生成的n个第一密文C1i、第二密文生成部242生成的n个第二密文C2i、以及第三密文生成部243生成的n个第三密文C3i,设为一个结合密文,并使用CPU 911等处理装置,根据所结合的一个结合密文,计算出一个哈希值H0

密文验证文生成部245的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数、随机数生成部222生成的n个整数si、以及哈希值计算部244计算出的一个哈希值H0,生成与n个接收者对应的n个密文验证文CCi(i是1以上n以下的整数)。

密文结合部246的特征是,使用CPU 911等处理装置,结合第一密文生成部241生成的n个第一密文C1i、第二密文生成部242生成的n个第二密文C2i、第三密文生成部243生成的n个第三密文C3i、以及密文验证文生成部245生成的n个密文验证文CCi,设为一个密文C(密钥密文C)。

密文分解部346的特征是,使用CPU 911等处理装置,根据由密文接收部351接收到的一个密文C,取得n个第一密文C1i、n个第二密文C2i、n个第三密文C3i、以及n个密文验证文CCi,并使用CPU 911等处理装置,在取得的n个第一密文C1i、n个第二密文C2i、n个第三密文C3i、以及n个密文验证文CCi中,取得对应于密文接收装置所对应的接收者的一个对应第一密文C1ID、一个对应第二密文C2ID、一个对应第三密文C3ID、以及一个对应密文验证文CCID

验证哈希值计算部344的特征是,使用CPU 911等处理装置,根据将密文分解部346取得的n个第一密文C1i、n个第二密文C2i、以及n个第三密文C3i结合而得到的验证结合密文,计算出验证哈希值H’。

密文验证部345的特征是,使用CPU 911等处理装置,根据公开参数存储部310存储的公开密码参数、密文分解部346取得的一个对应第二密文C2ID和一个对应第三密文C3ID中的至少某一个与一个对应密文验证文、以及验证哈希值计算部344计算出的验证哈希值H’,判定密文接收部351接收到的一个密文C中是否有匹配性。

密文解密部341的特征是,在密文验证部345判定为密文接收部351接收到的一个密文C中有匹配性的情况下,使用CPU 911等处理装置,根据公开参数存储部310存储的公开密码参数、秘密密钥存储部323存储的秘密密钥dID、以及密文分解部346取得的一个对应第一密文C1ID、一个对应第二密文C2ID和一个对应第三密文C3ID,还原明文M。

根据本实施方式中的基于ID的密码通信系统800,哈希值计算部244与接收者无关地计算出共用的一个哈希值H0,所以起到可以削减密文生成装置200中的密文生成处理的处理量这样的效果。

另外,在将对于单独接收者的情况证明了安全性的基于ID的密码通信方式扩展为多个接收者的基于ID的密码通信方式中,起到可以证明与单独接收者的情况同样的安全性这样的效果。

根据本实施方式中的基于ID的密码通信系统800(密码通信系统)还将以下点作为特征。

密文主文生成部240的特征是,使用CPU 911等处理装置,生成包含有由接收者识别输入部232输入的n个接收者识别信息IDi的n个密文主文CBi

根据本实施方式中的基于ID的密码通信系统800,成为哈希值计算部244计算出的哈希值的基础的n个密文主文CBi包括n个接收者识别信息,所以起到基于ID的密码通信方式的安全性变高这样的效果。

本实施方式中的基于ID的密码通信系统800(密码通信系统)还将以下点作为特征。

密文生成装置200的特征是,还具有对话密钥生成部221、数据输入部251、数据加密部252、以及密文通知部261。

对话密钥生成部221的特征是,使用CPU 911等处理装置,随机地生成规定长度的位串,设为对话密钥K。

明文输入部231的特征是,使用CPU 911等处理装置,作为明文M,输入对话密钥生成部221生成的对话密钥K。

数据输入部251的特征是,使用CPU 911等处理装置,输入应发送给n个接收者的一个明文数据。

数据加密部252的特征是,使用CPU 911等处理装置,利用对话密钥生成部221生成的对话密钥K,对数据输入部251输入的一个明文数据进行加密,设为一个加密数据。

密文通知部261的特征是,使用CPU 911等处理装置,对利用由接收者识别输入部232输入的n个接收者识别信息识别的n个接收者,通知密文结合部246结合的一个密文C(密钥密文C)、以及数据加密部252加密的一个加密数据。

多个密文接收装置301~303的特征是,分别还具有数据解密部352。

密文接收部351的特征是,使用CPU 911等处理装置,接收密文生成装置200通知的一个密文C与一个加密数据。

数据解密部352的特征是,将密文解密部341还原的明文M设为对话密钥K’,使用CPU 911等处理装置,利用上述对话密钥K’,对密文接收部351接收到的一个加密数据进行解密。

根据本实施方式中的基于ID的密码通信系统800,数据加密部252与接收者无关地利用共用的一个对话密钥K对明文数据进行加密,密文通知部261与接收者无关地将共用的一个密文C以及一个加密数据通知给接收者,所以起到通信路径的通信量所需的负荷小这样的效果。

另外,在本实施方式中,说明了接收者的数量n不是预先(例如在公开密码参数生成时)决定而是在实际发送数据时决定的情况,但也可以预先固定接收者的数量n。

例如,在接收者确定为一人的情况下,也可以固定为n=1。或者也可以固定为n=10。

另外,在预先确定接收者的数量n的范围而发送数据时,也可以在该范围内指定n。例如,也可以在1≤n<100的范围内改变n。

即,基于ID的密码通信系统800既可以是接收者的数量为预先固定的密码通信系统,也可以是在发送数据时可以改变接收者的数量的密码通信系统。

实施方式2

使用图11~图18,对实施方式2进行说明。

在说明本实施方式中的基于ID的密码通信系统800之前,首先,对作为对比例子的基于ID的密码通信系统进行说明。

本实施方式中的对比例子即基于ID的密码通信系统的整体结构由于与实施方式1中说明的部分相同,所以此处省略说明。

最初,对密码参数生成装置100进行说明。

密码参数生成装置100的块结构由于与实施方式1中说明的部分相同,所以使用图4,对与实施方式1不同的部分进行说明。

群参数存储部111使用磁盘装置920等存储装置,存储表示自然数r、乘法群G1、乘法群G2、乘法群GT以及配对(pairing)e的信息而作为群参数。

自然数r是难以求解DH问题的大素数。

乘法群G1、乘法群G2以及乘法群GT是阶数为自然数r的乘法群。

另外,乘法群G1与乘法群G2既可以是相同的乘法群,也可以是不同的乘法群。在乘法群G1与乘法群G2是相同的乘法群的情况下,群参数存储部111也可以不存储表示乘法群G2的信息。

配对e是根据乘法群G1的要素与乘法群G2的要素来计算出乘法群GT的要素的映射。以下,将根据乘法群G1的要素p与乘法群G2的要素q计算出的乘法群GT的要素记述为配对值e(p,q)。

另外,配对e是双线性配对(Bilinear Pairing)。即,配对e具有如下性质:乘法群G1的要素p的a乘方(a为0以上且小于自然数r的整数)与乘法群G2的要素q的b乘方(b为0以上且小于自然数r的整数)的配对值e(p^a,q^b)等于乘法群G1的要素p与乘法群G2的要素q的配对值e(p,q)的c乘方(c为将整数a与整数b的积除以自然数r而得到的余数)(如果用公式来表现,则“e(p^a,q^b)=e(p,q)^(a·b)”)。

另外,作为使用计算机的CPU 911等处理装置在实用的时间内可以计算的双线性配对,已知Tate配对(Tate Pairing)、Weil配对(Weil Pairing)等。

配对e不限于特定的配对,只要是双线性配对,则可以是任意的配对,但设为使用计算机的CPU 911等处理装置在实用的时间内可以计算的配对。

秘密信息生成部112使用CPU 911等处理装置,输入群参数存储部111存储的群参数。

秘密信息生成部112使用CPU 911等处理装置,根据输入的群参数所表示的自然数r,随机地生成1以上且小于自然数r的整数α。

秘密信息生成部112使用CPU 911等处理装置,输出表示所生成的整数α的信息(秘密信息)。

公开参数生成部113使用CPU 911等处理装置,输入群参数存储部111存储的群参数、以及表示秘密信息生成部112输出的整数α的信息。

公开参数生成部113使用CPU 911等处理装置,根据输入的群参数所表示的乘法群GT,决定密钥生成函数KDF。

密钥生成函数KDF是根据乘法群GT的要素而计算出规定长度的位串的函数。

公开参数生成部113使用CPU 911等处理装置,根据输入的群参数所表示的自然数r,决定哈希函数HF。

哈希函数HF是根据任意长度的位串而计算出小于自然数r的自然数的函数。另外,设哈希函数HF根据不同的位串计算出相同的自然数的概率极低。

公开参数生成部113使用CPU 911等处理装置,根据输入的群参数所表示的乘法群G1,随机地选择乘法群G1的要素g。

公开参数生成部113使用CPU 911等处理装置,根据输入的群参数所表示的乘法群G2,随机地选择乘法群G2的四个要素g2、h1、h2、h3。

其中,乘法群G2的要素g2、h1、h2、h3选择相互不同的要素。

另外,以使乘法群G1的要素g与乘法群G2的要素g2的配对值即乘法群GT的要素e(g,g2)不会成为乘法群GT的单位元素的方式,选择乘法群G1的要素g与乘法群G2的要素g2。

另外,在乘法群G1与乘法群G2是相同的乘法群的情况下,乘法群G1的要素g与乘法群G2的要素g2也可以是同一要素。

公开参数生成部113使用CPU 911等处理装置,根据输入的群参数所表示的乘法群G1、选择的乘法群G1的要素、以及输入的信息所表示的整数α,计算出乘法群G1的要素g1=g^α。

公开参数生成部113使用CPU 911等处理装置,输出表示所输入的群参数、决定的密钥生成函数KDF、决定的哈希函数HF、选择的乘法群G1的要素g、计算出的乘法群G1的要素g1、以及选择的乘法群G2的四个要素g2、h1、h2、h3的信息,作为公开密码参数。

识别信息输入部131使用CPU 911等处理装置,输入接收者识别信息ID。

在以下的说明中,密码参数生成装置100将接收者识别信息ID作为整数进行处理。

例如,密码参数生成装置100通过将邮件地址等任意长度的位串作为表示整数值的位串进行处理,从而将接收者识别信息作为整数进行处理。

或者,密码参数生成装置100也可以将邮件地址等任意长度的位串作为哈希函数(既可以是与公开参数生成部113决定的哈希函数HF相同的哈希函数,也可以是不同的哈希函数)的输入,取得利用哈希函数计算出的整数,作为接收者识别信息。

即,识别信息输入部131使用CPU 911等处理装置,输入整数ID而作为接收者识别信息。

识别信息输入部131使用CPU 911等处理装置,输出所输入的整数ID。

秘密密钥生成部132使用CPU 911等处理装置,输入表示秘密信息存储部121存储的整数α的信息、参数存储部122存储的公开密码参数、以及识别信息输入部131输出的整数ID。

秘密密钥生成部132使用CPU 911等处理装置,根据输入的公开密码参数所表示的自然数r,随机地生成三个整数rID,1、rID,2、rID,3。三个整数rID,1、rID,2、rID,3都是1以上且小于自然数r的整数,生成相互不同的整数。

秘密密钥生成部132使用CPU 911等处理装置,根据输入的信息所表示的整数α、以及输入的整数ID,计算出α与ID的差(α-ID)的倒数1/(α-ID)。另外,这里所说的倒数是指有限域Z/rZ上的倒数。即,把将(α-ID)与倒数(假设为x)的积(α-ID)·x除以自然数r而得到的余数成为1的、1以上且小于r的整数x称为(α-ID)的倒数,记述为1/(α-ID)。

另外,自然数r由于是素数,所以α-ID只要不是0(或者自然数r的倍数),就存在一个(α-ID)的倒数,可以使用计算机的CPU 911等处理装置在实用的时间内计算出。

此处,自然数r由于是非常大的自然数,所以α-ID成为0(或者自然数r的倍数)的概率极低,也可以忽视。

秘密密钥生成部132使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G2、乘法群G2的要素g2、以及生成的整数rID,1,计算出乘法群G2的要素g2的(-rID,1)乘方即乘法群G2的要素g2^(-rID,1)。

秘密密钥生成部132使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G2、乘法群G2的要素h1、以及计算出的乘法群G2的要素g2^(-rID,1),计算出乘法群G2的要素h1与乘法群G2的要素g2^(-rID,1)的积即乘法群G2的要素h1·g2^(-rID,1)。

秘密密钥生成部132使用CPU 911等处理装置,根据计算出的乘法群G2的要素h1·g2^(-rID,1)、以及计算出的整数1/(α-ID),计算出乘法群G2的要素h1·g2^(-rID,1)的1/(α-ID)乘方即乘法群G2的要素hID,1=(h1·g2^(-rID,1))^(1/(α-ID))。

秘密密钥生成部132使用CPU 911等处理装置,同样地计算出乘法群G2的要素hID,2=(h2·g2^(-rID,2))^(1/(α-ID))、以及乘法群G2的要素hID,3=(h3·g2^(-rID,3))^(1/(α-ID))。

秘密密钥生成部132使用CPU 911等处理装置,输出表示计算出的三个整数rID,1、rID,2、rID,3和计算出的乘法群G2的三个要素hID,1、hID,2、hID,3的信息,而作为秘密密钥dID

接下来,对密文生成装置200进行说明。

密文生成装置200的功能块的结构也与实施方式1中说明的部分相同,所以使用图5,对与实施方式1不同的部分进行说明。

密文生成装置200与密码参数生成装置100同样地,将接收者识别信息ID作为整数进行处理。

接收者识别输入部232使用CPU 911等处理装置,输入n个整数IDi(i是1以上n以下的整数)作为分别识别n个接收者(n是1以上的整数)的n个接收者识别信息。

接收者识别输入部232使用CPU 911等处理装置,输出所输入的n个整数IDi

随机数生成部222使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数。

随机数生成部222使用CPU 911等处理装置,根据输入的公开密码参数所表示的自然数r,随机地生成与n个接收者分别对应的n个1以上且小于自然数r的整数si(i是1以上n以下的整数)。

随机数生成部222使用CPU 911等处理装置,输出表示所生成的n个整数si的信息。

第一密文生成部241使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数、表示随机数生成部222输出的n个整数si的信息、以及明文输入部231输出的明文M。

第一密文生成部241使用CPU 911等处理装置,根据输入的公开密码参数所表示的配对e、乘法群G1的要素g、以及乘法群G2的要素h1,计算出乘法群G1的要素g与乘法群G2的要素h1的配对值即乘法群GT的要素e(g,h1)。

另外,乘法群GT的要素e(g,h1)由于与整数si、明文M无关而是一定的,所以也可以事先计算并使用磁盘装置920等存储装置进行存储。

第一密文生成部241使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群GT、计算出的乘法群GT的要素e(g,h1)、以及输入的信息所表示的n个整数si,计算出乘法群GT的要素e(g,h1)的si乘方即乘法群GT的n个要素e(g,h1)^si(i是1以上n以下的整数)。

第一密文生成部241使用CPU 911等处理装置,根据输入的公开密码参数所表示的密钥生成函数KDF、以及计算出的乘法群GT的n个要素e(g,h1)^si,计算出利用密钥生成函数KDF将乘法群GT的要素e(g,h1)^si进行变换后的规定长度的位串即n个密钥位串ki=KDF(e(g,h1)^si)(i是1以上n以下的整数)。

第一密文生成部241使用CPU 911等处理装置,根据输入的明文M、以及计算出的n个密钥位串ki,生成利用n个密钥位串ki对明文M分别进行了加密的n个位串,设为n个第一密文C1i(i是1以上n以下的整数)。

在明文M的位长与密钥位串ki的位长度相等的情况下,例如,第一密文生成部241对明文M与密钥位串ki之间的每个位计算“异”,设为第一密文C1i

另外,对明文M进行加密的方式不限于使用“异”运算的方式,只要是如果存在与密钥位串ki相同的位串则可以从第一密文C1i还原明文M的密码方式,也可以是其它密码方式。

第一密文生成部241使用CPU 911等处理装置,输出所生成的n个第一密文C1i

第二密文生成部242使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数、表示随机数生成部222输出的n个整数si的信息、以及接收者识别输入部232输出的n个整数IDi

第二密文生成部242使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G1、乘法群G1的要素g、以及输入的n个整数IDi,计算出乘法群G1的要素g的(-IDi)乘方即乘法群G1的n个要素g^(-IDi)(i是1以上n以下的整数)。

第二密文生成部242使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G1、乘法群G1的要素g1、以及计算出的乘法群G1的n个要素g^(-IDi),计算出乘法群G1的要素g1与乘法群G1的要素g^(-IDi)的积即乘法群G1的要素g1·g^(-IDi)(i是1以上n以下的整数)。

第二密文生成部242使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G1、输入的信息所表示的n个整数si、以及计算出的乘法群G1的n个要素g1·g^(-IDi),计算出乘法群G1的要素g1·g^(-IDi)的si乘方即乘法群G1的n个要素ui=(g1·g^(-IDi))^si(i是1以上n以下的整数)。

第二密文生成部242使用CPU 911等处理装置,输出分别表示所计算出的乘法群G1的n个要素ui的位串,而作为n个第二密文C2i(i是1以上n以下的整数)。

第三密文生成部243使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数、以及表示随机数生成部222输出的n个整数si的信息。

第三密文生成部243使用CPU 911等处理装置,根据输入的公开密码参数所表示的配对e、乘法群G1的要素g、以及乘法群G2的要素g2,计算出乘法群G1的要素g与乘法群G2的要素g2的配对值即乘法群GT的要素e(g,g2)。

另外,乘法群GT的要素e(g,g2)由于与整数si无关而是一定的,所以也可以事先计算出并使用磁盘装置920等存储装置来进行存储。

第三密文生成部243使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群GT、输入的信息所表示的n个整数si、以及计算出的乘法群GT的要素e(g,g2),计算出乘法群GT的要素e(g,g2)的si乘方即乘法群GT的n个要素e(g,g2)^si(i是1以上n以下的整数)。

第三密文生成部243使用CPU 911等处理装置,输出分别表示所计算出的乘法群GT的n个要素e(g,g2)^si的位串,而作为n个第三密文C3i(i是1以上n以下的整数)。

哈希值计算部244使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数、第一密文生成部241输出的n个第一密文C1i、第二密文生成部242输出的n个第二密文C2i、以及第三密文生成部243输出的n个第三密文C3i

哈希值计算部244使用CPU 911等处理装置,分别结合所输入的n个第一密文C1i、n个第二密文C2i、以及n个第三密文C3i,生成n个结合密文。

哈希值计算部244使用CPU 911等处理装置,根据输入的公开密码参数所表示的哈希函数HF、以及生成的n个结合密文,计算出将n个结合密文通过哈希函数HF分别进行了变换的n个自然数βi,设为n个哈希值Hi

哈希值计算部244使用CPU 911等处理装置,输出表示所计算出的n个自然数βi的信息、以及生成的n个结合密文。

密文验证文生成部245使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数、表示随机数生成部222输出的n个整数si的信息、以及表示哈希值计算部244输出的n个自然数βi的信息。

密文验证文生成部245使用CPU 911等处理装置,根据输入的公开密码参数所表示的配对e、乘法群G1的要素g、以及乘法群G2的要素h2,计算出乘法群G1的要素g与乘法群G2的要素h2的配对值即乘法群GT的要素e(g,h2)。

密文验证文生成部245使用CPU 911等处理装置,根据输入的公开密码参数所表示的配对e、乘法群G1的要素g、以及乘法群G2的要素h3,计算出乘法群G1的要素g与乘法群G2的要素h3的配对值即乘法群GT的要素e(g,h3)。

另外,乘法群GT的要素e(g,h2)以及乘法群GT的要素e(g,h3)由于与整数si无关而是一定的,所以也可以事先计算出并使用磁盘装置920等存储装置来进行存储。

密文验证文生成部245使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群GT、输入的信息所表示的n个整数si、以及计算出的乘法群GT的要素e(g,h2),计算出乘法群GT的要素e(g,h2)的si乘方即乘法群GT的n个要素e(g,h2)^si(i是1以上n以下的整数)。

密文验证文生成部245使用CPU 911等处理装置,根据输入的信息所表示的n个整数si、以及输入的信息所表示的n个自然数βi,分别计算出整数si与自然数βi的积即n个整数(si·βi)(i是1以上n以下的整数)。

密文验证文生成部245使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群GT、计算出的乘法群GT的要素e(g,h3)、以及计算出的n个整数(si·βi),计算出乘法群GT的要素e(g,h3)的(si·βi)乘方即乘法群GT的n个要素e(g,h3)^(si·βi)(i是1以上n以下的整数)。

密文验证文生成部245使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群GT、计算出的乘法群GT的n个要素e(g,h2)^si、以及计算出的乘法群GT的n个要素e(g,h3)^(si·βi),计算出乘法群GT的要素e(g,h2)^si与乘法群GT的要素e(g,h3)^(si·βi)的积即乘法群GT的n个要素yi=e(g,h2)^si·e(g,h3)^(si·βi)(i是1以上n以下的整数)。

密文验证文生成部245使用CPU 911等处理装置,输出分别表示所计算出的乘法群GT的n个要素yi的位串,而作为n个密文验证文CCi(i是1以上n以下的整数)。

密文结合部246使用CPU 911等处理装置,输入哈希值计算部244输出的n个结合密文、以及密文验证文生成部245输出的n个密文验证文CCi

密文结合部246使用CPU 911等处理装置,将输入的n个结合密文和输入的n个密文验证文全部结合,而生成一个密钥密文C。

密文结合部246使用CPU 911等处理装置,输出所生成的一个密钥密文C。

另外,在该例子中,密文结合部246输入哈希值计算部244输出的n个结合密文,但结合密文由于是结合第一密文C1i、第二密文C2i、以及第三密文C3i而得到的密文,所以密文结合部246输入n个第一密文C1i、n个第二密文C2i、以及n个第三密文C3i

图11是示出本实施方式中的对比例子即密文生成装置200中交换的信息的流程的一个例子的图。

接收者识别输入部232输入n个接收者识别信息ID1、ID2、…、IDn

随机数生成部222生成与接收者识别输入部232输入的接收者识别信息ID1、ID2、…、IDn的数量相同数量的n个整数s1、s2、…、sn

第一密文生成部241根据明文M与整数s1生成第一密文C11,根据明文M与整数s2生成第一密文C12,…,根据明文M与整数sn生成第一密文C1n

第二密文生成部242根据接收者识别信息ID1与整数s1生成第二密文C21,根据接收者识别信息ID2与整数s2生成第二密文C22,…,根据接收者识别信息IDn与整数sn生成第二密文C2n

第三密文生成部243根据整数s1生成第三密文C31,根据整数s3生成第三密文C32,…,根据整数sn生成第三密文C3n

哈希值计算部244结合第一密文C11、第二密文C21、以及第三密文C31而生成结合密文(C11|C21|C31),结合第一密文C12、第二密文C22、以及第三密文C32而生成结合密文(C12|C22|C32),…,结合第一密文C1n、第二密文C2n、以及第三密文C3n而生成结合密文(C1n|C2n|C3n)。此处“|”表示结合。例如,(C11|C21|C31)表示在位串C11之后结合位串C21、而且在其后结合位串C31而得到的位串。另外,结合的顺序也可以是与它不同的顺序。

哈希值计算部244根据生成的结合密文(C11|C21|C31)计算出哈希值H1,根据生成的结合密文(C12|C22|C32)计算出哈希值H2,…,根据生成的结合密文(C1n|C2n|C3n)计算出哈希值Hn

密文验证文生成部245根据整数s1与哈希值H1生成密文验证文CC1,根据整数s2与哈希值H2生成密文验证文CC2,…,根据整数sn与哈希值Hn生成密文验证文CCn

密文结合部246将n个结合密文(C11|C21|C31)、(C12|C22|C32)、…、(C1n|C2n|C3n)、与n个密文验证文CC1、CC2、…、CCn全部结合,而生成一个密钥密文C=(C11|C21|C31|CC1|C12|C22|C32|CC2|…|C1n |C2n |C3n|CCn)。

另外,在该例子中,按照将与一个接收者对应的第一密文~密文验证文汇总到一处的顺序来结合密文而生成密钥密文C,但结合的顺序也可以是与它不同的顺序。例如,也可以如(C11|C12|…|C1n|C21|C22|…|C2n|C31|C32|…|C3n|CC1|CC2|…|CCn)那样,按照关于第一密文将第一密文彼此汇总到一处、关于第二密文将第二密文彼此汇总到一处的顺序来进行结合。

如该例子那样,由于按照将与一个接收者对应的第一密文~密文验证文汇总到一处的顺序进行结合的方法,能够将哈希值计算部244结合的结合密文原样地进行结合而生成密钥密文C,所以是优选的。另外,还具有能够容易地发现对应于密文接收装置所对应的接收者的密文的优点。

接下来,对密文接收装置301~303进行说明。

密文接收装置301~303的功能块的结构也与实施方式1中说明的部分相同,所以使用图6,对与实施方式1不同的部分进行说明。

密文分解部346使用CPU 911等处理装置,输入密文接收部351输出的一个密钥密文C。

密文分解部346使用CPU 911等处理装置,从输入的一个密钥密文C,取得对应于自身所对应的接收者的对应第一密文C1ID、对应第二密文C2ID、对应第三密文C3ID、以及对应密文验证文CCID

密文分解部346使用CPU 911等处理装置,输出所取得的对应第一密文C1ID、对应第二密文C2ID、对应第三密文C3ID、以及对应密文验证文CCID

例如,一个密钥密文C如图11所示,是按照(C11|C21|C31|CC1|C12|C22|C32|CC2|…|C1n|C2n|C3n|CCn)这样的顺序结合密文而得到的密文。

密文分解部346例如将一个密钥密文C按照每个第一密文~密文验证文的位长度之和进行分割,而设为(C11|C21|C31|CC1)、(C12|C22|C32|CC2)、…、(C1n|C2n|C3n|CCn),从其中取得与自己对应的对应密文(C1ID|C2ID|C3ID|CCID)。

密文分解部346例如根据密文接收部351接收到的通知数据720的其它部分,判断与自己对应的对应密文是第几个,并根据判断结果,取得对应密文。

接下来,密文分解部346分割所取得的对应密文(C1ID|C2ID|C3ID|CCID),取得验证结合密文(C1ID|C2ID|C3ID)、以及对应密文验证文CCID

而且,密文分解部346分割所取得的验证结合密文(C1ID|C2ID|C3ID),取得对应第一密文C1ID、对应第二密文C2ID、以及对应第三密文C3ID

密文分解部346输出所取得的对应第一密文C1ID、对应第二密文C2ID、对应第三密文C3ID、以及对应密文验证文CCID

另外,在该例子中,为了省去验证哈希值计算部344生成验证结合密文(C1ID|C2ID|C3ID)的工作,密文分解部346使用CPU 911等处理装置,还一并输出所取得的验证结合密文(C1ID|C2ID|C3ID)。

验证哈希值计算部344使用CPU 911等处理装置,输入密文分解部346输出的对应第一密文C1ID、对应第二密文C2ID、以及对应第三密文C3ID

验证哈希值计算部344使用CPU 911等处理装置,结合所输入的对应第一密文C1ID、对应第二密文C2ID、以及对应第三密文C3ID,生成验证结合密文(C1ID|C2ID|C3ID)。另外,结合的顺序只要与密文生成装置200的哈希值计算部244生成结合密文时的顺序相同,则也可以是与它不同的顺序。

另外,在如上述例子那样,在密文分解部346输出验证结合密文(C1ID|C2ID|C3ID)的情况下,验证哈希值计算部344也可以代替生成验证结合密文(C1ID|C2ID|C3ID),而输入密文分解部346所输出的验证结合密文(C1ID|C2ID|C3ID)。

验证哈希值计算部344使用CPU 911等处理装置,输入公开参数存储部310存储的公开密码参数。

验证哈希值计算部344使用CPU 911等处理装置,根据输入的公开密码参数所表示的哈希函数HF、以及生成或输入的验证结合密文(C1ID|C2ID|C3ID),计算出将验证结合密文(C1ID|C2ID|C3ID)通过哈希函数HF进行变换后的自然数β’,并设为哈希值H’。

验证哈希值计算部344使用CPU 911等处理装置,输出表示所计算出的自然数β’的信息。

密文验证部345使用CPU 911等处理装置,输入公开参数存储部310存储的公开密码参数、秘密密钥存储部323存储的秘密密钥dID、密文分解部346输出的对应第二密文C2ID、对应第三密文C3ID和对应密文验证文CCID、以及表示验证哈希值计算部344输出的自然数β’的信息。

密文验证部345使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G2、输入的秘密密钥dID所表示的乘法群G2的要素hID,3、以及输入的信息所表示的自然数β’,计算出乘法群G2的要素hID,3的β’乘方即乘法群G2的要素hID,3^β’。

密文验证部345使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G2、输入的秘密密钥dID所表示的乘法群G2的要素hID,2、以及计算出的乘法群G2的要素hID,3^β’,计算出乘法群G2的要素hID,2与乘法群G2的要素hID,3^β’之积即乘法群G2的要素hID,2·hID,3^β’。

密文验证部345使用CPU 911等处理装置,根据输入的公开密码参数所表示的配对e、输入的对应第二密文C 2ID所表示的乘法群G1的要素uID、以及计算出的乘法群G2的要素hID,2·hID,3^β’,计算出乘法群G1的要素uID与乘法群G2的要素hID,2·hID,3^β’的配对值即乘法群GT的要素e(uID,hID,2·hID,3^β’)。

密文验证部345使用CPU 911等处理装置,根据输入的秘密密钥dID所表示的整数rID,2与整数rID,3、以及输入的信息所表示的自然数β’,计算出整数rID,3和自然数β’的积、与整数rID,2之和即整数rID,2+rID,3·β’。

密文验证部345使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群GT、输入的对应第三密文C3ID所表示的乘法群GT的要素vID、以及计算出的整数rID,2+rID,3·β’,计算出乘法群GT的要素vID的rID,2+rID,3·β’乘方即乘法群GT的要素vID^(rID,2+rID,3·β’)。

密文验证部345使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群GT、计算出的乘法群GT的要素e(uID,hID,2·hID,3^β’)、以及计算出的乘法群GT的要素vID^(rID,2+rID,3·β’),计算出乘法群GT的要素e(uID,hID,2·hID,3^β’)与乘法群GT的要素vID^(rID,2+rID,3·β’)之积即乘法群GT的要素y’=e(uID,hID,2·hID,3^β’)·vID^(rID,2+rID,3·β’)。

密文验证部345使用CPU 911等处理装置,将输入的对应密文验证文CCID所表示的乘法群GT的要素yID、与计算出的乘法群GT的要素y’进行比较,在乘法群GT的要素yID与计算出的乘法群GT的要素y’一致的情况下,判定为密文接收部351输入的一个密钥密文C中有匹配性,在不一致的情况下,判定为密文接收部351输入的一个密钥密文C中无匹配性。

此处,密文生成装置200的密文验证文生成部245计算出的乘法群GT的要素yi是yi=e(g,h2)^si·e(g,h3)^(si·βi)。

另外,密文生成装置200的第二密文生成部242计算出的乘法群G1的要素ui是ui=(g1·g^(-IDi))^si,关于密码参数生成装置100的公开参数生成部113计算出的乘法群G1的要素g1,由于g1=g^α,所以ui=g^(si·(α-IDi))。

另外,密文生成装置200的第三密文生成部243计算出的乘法群GT的要素vi是vi=e(g,g 2)^si

另一方面,密文验证文生成部245计算出的乘法群GT的要素y’是y’=e(uID,hID,2·hID,3^β’)·vID^(rID,2+rID,3·β’)。由配对e的双线性,是y’=e(uID,hID,2)·e(uID,hID,3)^β’·vID^(rID,2+rID,3·β’)。

另外,关于密码参数生成装置100的秘密密钥生成部132计算出的乘法群G2的要素hID,2、hID,3,由于hID,2=(h2·g2^(-rID,2))^(1/(α-ID))、hID,3=(h3·g2^(-rID,3))^(1/(α-ID)),所以e(uID,hID,2)=e(g,h2·g2^(-rID,2))^sID、e(uID,hID,3)=e(g,h3·g2^(-rID,3))^sID

因此,y’=e(g,h2)^sID·e(g,h3)^(sID·β’)。如果一个密钥密文C中有匹配性,则β’=βID,所以成为y’=yID

在密文验证部345判定为密文接收部351输入的一个密钥密文C中有匹配性的情况下,密文解密部341为了还原明文M,进行以下处理。

密文解密部341使用CPU 911等处理装置,输入公开参数存储部310存储的公开密码参数、秘密密钥存储部323存储的秘密密钥dID、以及密文分解部346输出的对应第一密文C1ID、对应第二密文C2ID和对应第三密文C3ID

密文解密部341使用CPU 911等处理装置,根据输入的公开密码参数所表示的配对e、输入的秘密密钥dID所表示的乘法群G2的要素hID,1、以及输入的对应第二密文C2ID所表示的乘法群G1的要素uID,计算出乘法群G1的要素uID与乘法群G2的要素hID,1的配对值即乘法群GT的要素e(uID,hID,1)。

密文解密部341使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群GT、输入的秘密密钥dID所表示的整数rID,1、以及输入的对应第三密文C3ID所表示的乘法群GT的要素vID,计算出乘法群GT的要素vID的rID,1乘方即乘法群GT的要素vID^rID,1

密文解密部341使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群GT、计算出的乘法群GT的要素e(uID,hID,1)、以及计算出的乘法群GT的要素vID^rID,1,计算出乘法群GT的要素e(uID,hID,1)与乘法群GT的要素vID^rID,1之积即乘法群GT的要素e(uID,hID,1)·vID^rID,1

密文解密部341使用CPU 911等处理装置,根据输入的公开密码参数所表示的密钥生成函数KDF、以及计算出的乘法群GT的要素e(uID,hID,1)·vID^rID,1,计算出将乘法群GT的要素e(uID,hID,1)·vID^rID,1通过密钥生成函数KDF进行变换后的规定长度的位串即密钥位串k’=KDF(e(uID,hID,1)·vID^rID,1)。

密文解密部341使用CPU 911等处理装置,根据输入的对应第一密文C1ID、以及计算出的密钥位串k’,生成将对应第一密文C1ID利用密钥位串k’解密而得到的位串。

此处,密文生成装置200的第一密文生成部241计算出的密钥位串ki是ki=KDF(e(g,h1)^si)。

另一方面,密文解密部341计算出的密钥位串k’是k’=KDF(e(uID,hID,1)·vID^rID,1)。

另外,密码参数生成装置100的秘密密钥生成部132计算出的乘法群G2的要素hID,1是hID,1=(h1·g2^(-rID,1))^(1/(α-ID))。

因此,k’=KDF(e(g,h1)^sID),所以成为k’=kID

密文解密部341利用与密文生成装置200的第一密文生成部241对明文M进行加密而得到的密钥位串相同的密钥位串k’,对对应第一密文C1ID进行解密,所以可以还原明文M。

接下来,对动作进行说明。

图12是示出本实施方式中的对比例子即密码参数生成装置100设定公开密码参数的参数设定处理的流程的一个例子的流程图。

另外,对于与实施方式1中说明的参数设定处理的工序共同的工序,附加同一标号。

在秘密信息生成工序S11中,秘密信息生成部112使用CPU 911等处理装置,根据群参数存储部111存储的群参数所表示的自然数r,随机地生成1以上且小于自然数r的整数α。

秘密信息存储部121使用磁盘装置920等存储装置,存储表示秘密信息生成部112生成的整数α的信息。

在密码参数生成工序S12中,公开参数生成部113使用CPU 911等处理装置,根据群参数存储部111存储的群参数所表示的乘法群GT与自然数r,决定密钥生成函数KDF与哈希函数HF。

公开参数生成部113使用CPU 911等处理装置,根据群参数存储部111存储的群参数所表示的乘法群G1与乘法群G2,随机地选择乘法群G1的要素g和乘法群G2的四个要素g2、h1、h2、h3。

公开参数生成部113使用CPU 911等处理装置,根据群参数存储部111存储的群参数所表示的乘法群G1、在秘密信息生成工序S11中秘密信息生成部112生成的整数α、以及选择的乘法群G1的要素g,计算出乘法群G1的要素g1=g^α。

参数存储部122使用磁盘装置920等存储装置,将表示群参数存储部111存储的群参数、决定的密钥生成函数KDF、决定的哈希函数HF、选择的乘法群G1的要素g、计算出的乘法群G1的要素g1、以及选择的乘法群G2的四个要素g2、h1、h2、h3的信息,存储为公开密码参数。

在密码参数公开工序S13中,公开参数公开部114使用CPU 911等处理装置,将表示群参数存储部111存储的群参数、公开参数生成部113决定的密钥生成函数KDF和哈希函数HF、公开参数生成部113选择的乘法群G1的要素g和乘法群G2的四个要素g2、h1、h2、h3、以及公开参数生成部113计算出的乘法群G1的要素g1的信息,作为公开密码参数进行公开。

关于公开参数公开部114公开的公开密码参数,由密文生成装置200以及密文接收装置301~303取得,并由密码参数存储部210以及公开参数存储部310使用磁盘装置920等存储装置进行存储。

图13是示出本实施方式中的对比例子即密码参数生成装置100设定秘密密钥的秘密密钥设定处理的流程的一个例子的流程图。

另外,对于与实施方式1中说明的秘密密钥设定处理的工序共同的工序,附加同一标号。

在识别输入工序S21中,识别信息输入部131使用CPU 911等处理装置,输入整数ID而作为接收者识别信息。

在秘密密钥生成工序S22中,秘密密钥生成部132使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的自然数r,随机地生成1以上且小于自然数r的三个整数rID,1、rID,2、rID,3

秘密密钥生成部132使用CPU 911等处理装置,根据参数存储部122存储的公开密码参数所表示的乘法群G2、乘法群G2的三个要素h1、h2、h3、以及生成的三个整数rID,1、rID,2、rID,3,计算出乘法群G2的三个要素hID,1=(h1·g2^(-rID,1))^(1/(α-ID))、hID,2=(h2·g2^(-rID,2))^(1/(α-ID))、hID,3=(h3·g2^(-rID,3))^(1/(α-ID))。

在秘密密钥通知工序S23中,秘密密钥通知部133使用CPU 911等处理装置,将表示在秘密密钥生成工序S22中秘密密钥生成部132生成的三个整数rID,1、rID,2、rID,3、以及在秘密密钥生成工序S22中秘密密钥生成部132计算出的乘法群G2的三个要素hID,1、hID,2、hID,3的信息作为秘密密钥dID,秘密地通知给所对应的密文接收装置。

关于秘密密钥通知部133通知的秘密密钥dID,由对应的密文接收装置取得,并由秘密密钥存储部323使用磁盘装置920等存储装置进行存储。

图14是示出本实施方式中的对比例子即密文生成装置200生成密文的密文生成处理的流程的一个例子的流程图。

另外,对于与实施方式1中说明的密文生成处理的工序共同的工序,附加同一标号。

在接收者识别输入工序S32中,接收者识别输入部232使用CPU911等处理装置,作为分别识别n个接收者的n个接收者识别信息,而输入与n个接收者分别对应的n个整数IDi

在随机数生成工序S34中,随机数生成部222使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的自然数r,随机地生成与n个接收者分别对应的n个1以上且小于自然数r的整数si

在第一密文生成工序S35中,第一密文生成部241使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群GT、配对e、乘法群G1的要素g、乘法群G2的要素h1和密钥生成函数KDF、以及在随机数生成工序S34中随机数生成部222生成的与n个接收者分别对应的n个整数si,计算出与n个接收者分别对应的n个密钥位串ki=KDF(e(g,h1)^si)。

第一密文生成部241使用CPU 911等处理装置,根据在对话密钥生成工序S33中对话密钥生成部221生成的对话密钥K(=明文M)、以及计算出的与n个接收者分别对应的n个密钥位串ki,利用与n个接收者分别对应的n个密钥位串ki对一个对话密钥K分别进行加密,而生成与n个接收者分别对应的n个第一密文C1i

在第二密文生成工序S36中,第二密文生成部242使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G1、乘法群G1的要素g和乘法群G1的要素g1、在接收者识别输入工序S32中接收者识别输入部232输入的与n个接收者分别对应的n个整数IDi、以及在随机数生成工序S34中随机数生成部222生成的与n个接收者分别对应的n个整数si,计算出与n个接收者分别对应的、乘法群G1的n个要素ui=(g1·g^(-IDi))^si

第二密文生成部242使用CPU 911等处理装置,将分别表示计算出的与n个接收者分别对应的、乘法群G1的n个要素ui的位串,设为与n个接收者分别对应的n个第二密文C2i

在第三密文生成工序S37中,第三密文生成部243使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群GT、配对e、乘法群G1的要素g和乘法群G2的要素g2、以及在随机数生成工序S34中随机数生成部222生成的与n个接收者分别对应的n个整数si,计算出与n个接收者分别对应的、乘法群GT的n个要素vi=e(g,g2)^si

第三密文生成部243使用CPU 911等处理装置,将分别表示计算出的与n个接收者分别对应的、乘法群GT的n个要素vi的位串,设为与n个接收者分别对应的n个第三密文C3i

在哈希值计算工序S38中,哈希值计算部244使用CPU 911等处理装置,根据在第一密文生成工序S35中第一密文生成部241生成的与n个接收者分别对应的n个第一密文C1i、在第二密文生成工序S36中第二密文生成部242生成的与n个接收者分别对应的n个第二密文C2i、以及在第三密文生成工序S37中第三密文生成部243生成的与n个接收者分别对应的n个第三密文C3i,生成将与n个接收者分别对应的n个第一密文C1i、与n个接收者分别对应的n个第二密文C2i、以及与n个接收者分别对应的n个第三密文C3i分别结合而得到的与n个接收者分别对应的n个结合密文(C1i|C2i|C3i)。

哈希值计算部244使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的哈希函数HF、以及生成的与n个接收者分别对应的n个结合密文(C1i|C2i|C3i),计算出将与n个接收者分别对应的n个结合密文(C1i|C2i|C3i)分别通过哈希函数HF进行变换后的与n个接收者分别对应的n个整数βi=HF(C1i|C2i|C3i)。

在密文验证文生成工序S39中,密文验证文生成部245使用CPU911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群GT、配对e、乘法群G1的要素g和乘法群G2的两个要素h2、h3、在随机数生成工序S34中随机数生成部222生成的与n个接收者分别对应的n个整数si、以及在哈希值计算工序S38中哈希值计算部244计算出的与n个接收者分别对应的n个整数βi,计算出与n个接收者分别对应的乘法群GT的n个要素yi=e(g,h2)^si·e(g,h3)^(si·βi)。

密文验证文生成部245使用CPU 911等处理装置,将分别表示计算出的与n个接收者分别对应的乘法群GT的n个要素yi的位串,设为与n个接收者分别对应的n个密文验证文CCi

图15是示出本实施方式中的对比例子即密文接收装置301~303接收密文的密文接收处理的流程的一个例子的流程图。

另外,对于与实施方式1中说明的密文接收处理的工序共同的工序,附加同一标号。

在密文分解工序S52中,密文分解部346使用CPU 911等处理装置,根据在通知数据接收工序中密文接收部351输出的一个密钥密文C,取得对应于密文接收装置所对应的接收者的一个对应第一密文C1ID、一个对应第二密文C2ID、一个对应第三密文C3ID、以及一个对应密文验证文CCID

在验证哈希值计算工序S53中,验证哈希值计算部344使用CPU911等处理装置,根据公开参数存储部310存储的公开密码参数所表示的哈希函数HF、以及将在密文分解工序S52中密文分解部346取得的一个对应第一密文C1ID、一个对应第二密文C2ID以及一个对应第三密文C3ID结合而得到的一个对应结合密文(C1ID|C2ID|C3ID),计算出将一个对应结合密文(C1ID|C2ID|C3ID)通过哈希函数HF进行变换后的一个整数β’,而作为验证哈希值H’。

在密文验证工序S54中,密文验证部345使用CPU 911等处理装置,根据公开参数存储部310存储的公开密码参数所表示的乘法群GT和配对e、秘密密钥存储部323存储的秘密密钥dID所表示的两个整数rID,2、rID,3和乘法群G2的两个要素hID,2、hID,3、在密文分解工序S52中密文分解部346取得的一个验证第二密文C2ID所表示的乘法群G1的一个要素uID和一个验证第三密文C3ID所表示的乘法群GT的一个要素vID、以及在验证哈希值计算工序S53中验证哈希值计算部344计算出的一个整数β’,计算出乘法群GT的一个要素y’=e(uID,hID,2·hID,3^β’)·vID^(rID,2+rID,3·β’)。

密文验证部345使用CPU 911等处理装置,对在密文分解工序S52中密文分解部346取得的一个对应密文验证文CCID所表示的乘法群GT的一个要素yID、与计算出的乘法群GT的一个要素y’进行比较。

在乘法群GT的要素yID与乘法群GT的要素y’相等的情况下,密文验证部345判定为密文接收部351接收到的一个密钥密文C中有匹配性,并进入密文解密工序S55。

在乘法群GT的要素yID与乘法群GT的要素y’不相等的情况下,密文验证部345判定为密文接收部351接收到的一个密钥密文C中无匹配性,并结束密文接收处理。

在密文解密工序S55中,密文解密部341使用CPU 911等处理装置,根据公开参数存储部310存储的乘法群GT、配对e和密钥生成函数KDF、秘密密钥存储部323存储的秘密密钥dID所表示的整数rID,1和乘法群G2的要素hID,1、以及在密文分解工序S52中密文分解部346取得的一个对应第二密文C2ID所表示的乘法群G1的一个要素uID和一个对应第三密文C3ID所表示的乘法群GT的一个要素vID,计算出一个密钥位串k’=KDF(e(uID,hID,1)·vID^rID,1)。

密文解密部341使用CPU 911等处理装置,根据在密文分解工序S52中密文分解部346取得的一个对应第一密文C1ID、以及计算出的一个密钥位串k’,利用密钥位串k’对对应第一密文C1ID进行解密,生成规定长度的位串,并设为对话密钥K’(=明文M)。

如上所述,密文解密部341生成的对话密钥K’成为与密文生成装置200的对话密钥生成部221生成的对话密钥K相同的位串。

接下来,对本实施方式中的对比例子即基于ID的密码通信系统所使用的基于ID的密码方式的安全性进行讨论。

另外,在以下证明中,为了简单而将乘法群G1与乘法群G2设为同一乘法群G。

首先,作为本实施方式中的对比例子即基于ID的密码方式归结的数学问题,定义q-D-t…BDHE问题(q Decisional TrancatedAugmented Bilinear Diffie-Hellman Exponent Problem)。

在q-D-tABDHE问题中,解答者B被提供乘法群G的q+3个要素g’、g’q+2、g、g1、…、gq、以及乘法群GT的一个要素Z。另外,对于解答者B,作为秘密的信息,有1以上且小于乘法群G的阶数的整数α。

乘法群G的要素g以及g’是随机地选择的乘法群G的要素。

乘法群G的要素gi(i是1以上q以下的整数)是乘法群G的要素g的α^i乘方即乘法群G的要素g^(α^i),其中,将整数α的i乘方设为整数α^i。

乘法群G的要素g’q+2也同样。即,乘法群G的要素g’q+2=g’^(α^(q+2))。

解答者B对判别乘法群G的要素gq+1=g^(α^(q+1))和乘法群G的要素g’的配对值即乘法群GT的要素e(gq+1,g’)是否与所提供的乘法群GT的要素Z相等的问题进行回答。

实际上将Z=e(gq+1,g’)的分布设为P,将Z是随机地选择的乘法群GT的要素的分布设为R。

将解答者B的优势定义为Advq-d-tabdhek,G,GT(B)=|Pr[B(1k,I)=1:I←P]-P r[B(1k,I)=1:I←R]|。此处,B(1k,I)表示解答者B的判断结果,“B(1k,I)=1”表示判定为Z=e(gq+1,g’)。另外,“I←P”表示实际上是Z=e(gq+1,g’)的事件,“I←R”表示Z是随机地选择的乘法群GT的要素的事件。即,Advq-d-tabdhek、G,G T(B)是在实际上Z=e(gq+1,g’)的情况下解答者B判断为Z=e(gq+1,g’)(即,解答者B的判断正确)的概率、与在Z为随机地选择的乘法群GT的要素的情况下解答者B判断为Z=e(gq+1,g’)(即,解答者B的判断错误)的概率之差的绝对值。

另外,设为Advq-d-tabdhek、G,GT(t)=max(Advq-d-tabdhek、G,GT(B))。这表示在时间t的期间解答的解答者B中的、具有最高优势的解答者的优势。

在Advq-d-tabdhek、G,G T(t)≤ε时,在(G,GT)中(t,ε,q)-D-tABDHE假设(或者、简称为“q-D-tABDHE假设”)成立。

首先,证明成为本实施方式中的对比例子即多个接收者的基于ID的密码方式∏’的基础的单独接收者的基于ID的密码方式∏的MU-IND-ID-CCA2安全性。

攻击者A设为具有针对密码方式∏的优势Advmun,∏,Γ(A)=|Pr[T0]-1/2|。此处,T0表示在MU-IND-ID-CCA2安全性的定义中攻击者A挑战的游戏(以下称为“G0”)中成为b=b’(即,攻击者A正确解答)的事件。Pr[T0]表示发生事件T0的概率。

另外,设为q=qx+n+1。

以下,同样地,在游戏Gλ(λ为1以上6以下的整数)中,将成为b=b’的事件称为Tλ

游戏G1与游戏G0的不同点在于,攻击者A攻击的对象不是密码系统∏,而是由解答者B模拟的加密oracle OE、密钥导出oracle OX、解密oracle OD

首先,解答者B如下所述,模拟PKG用密钥生成功能S。

解答者B随机地生成1以上且小于乘法群G的阶数r的整数α。

解答者B生成具有0以上且小于r的随机的整数系数的三个q次多项式fj(x)(j是1以上3以下的整数)。

解答者B随机地生成密钥生成函数KDF和不易冲突的哈希函数HF。

解答者B随机地选择乘法群G的要素g。

解答者B计算出乘法群G的要素g1=g^α。

解答者B计算出乘法群G的三个要素h1=g^f1(α)、h2=g^f2(α)、h3=g^f3(α)。

解答者B随机地生成1以上且小于r的整数s0。

解答者B计算出乘法群G的要素g’=g^s0。

解答者B输出共用参数params=(g,g1,h1,h2,h3,KDF,HF)。

此处,由于g、α、fj(x)、s0是随机的,所以共用参数params的分布成为与实际的PKG用密钥生成功能S相同的分布。另外,解答者B如下所述,模拟密钥导出oracle OX

解答者B在输入的用户的识别信息ID(作为整数进行处理)与整数α相等的情况下,进行拒绝。这在实际的密码系统∏中也同样。

在ID≠α的情况下,解答者B计算出三个整数rID,j=fj(ID)(j是1以上3以下的整数)。

解答者B计算出(q-1)次多项式FID,j(x)=(fj(x)-fj(ID))/(x-ID)。

解答者B计算出乘法群G的三个要素hID,j=g^FID,j(α)(j是1以上3以下的整数)。

解答者B输出dID=(rID,1,rID,2,rID,3,hID,1,hID,2,hID,3)而作为秘密密钥dID

此处,h1=g^f1(α),所以hID,1=g^((f1(α)-f1(ID))/(α-ID))=(h1·g^(-f1(ID)))^(1/(α-ID))。hID,2、hID,3也同样。由于rID,j=fj(ID),所以rID,j与hID,j的关系成为与实际的密码系统∏相同的关系。

另外,解答者B如下所述模拟解密oracle OD

解答者B通过上述过程模拟密钥导出oracle OX,而生成秘密密钥dID

解答者B根据生成的秘密密钥dID,通过与实际的密码系统∏相同的过程,对密文C进行解密。

并且,解答者B如下所述模拟加密oracle OE

解答者B在输入的用户的识别信息ID*与整数α相等的情况下,通过与实际的密码系统∏相同的过程,生成密文C。

在ID*≠α的情况下,解答者B通过上述的过程模拟密钥导出oracle OX,生成秘密密钥dID*=(rID*,1,rID*,2,rID*,3,hID*,1,hID*,2,hID*,3)。

解答者B计算出乘法群GT的要素Z=e(g,g’)^(α^(q+1))。

解答者B根据(q+2)次多项式φ(x)=x^(q+2),计算出(q+1)次多项式ΦID*(x)=(φ(x)-φ(ID*))/(x-ID*)。将计算出的(q+1)次多项式ΦID*(x)的τ次系数(τ是0以上q以下的整数)设为ΦID*,τ

解答者B随机地生成1以上且小于r的整数s’*

解答者B计算出乘法群G的要素u*=(g’^(φ(α)-φ(ID*))^s’*

解答者B计算出乘法群GT的要素v*=(Z·e(g’,∏(g^(ΦID*,τ·α^τ)))^s’*

解答者B计算出密钥位串k*=KDF(e(u*,hID*,1)·v*^rID*,1)。

解答者B利用密钥位串k*,对所选择的消息进行加密。

解答者B结合表示所加密的消息的位串(第一密文C1)、表示乘法群G的要素u*的位串(第二密文C2)、以及表示乘法群G的要素v*的位串(第三密文C3),通过哈希函数HF计算出哈希值β*

解答者B计算出乘法群GT的要素y*=e(u*,hID*,2·hID*,3*)·v*^(rID*,2+rID*,3·β*)。

解答者B生成密文C并输出。

此处,设为s*=s’*·s0·ΦID*(α)。

由于g’=g^s0、φ(α)-φ(ID*)=ΦID*(α)·(α-ID*)、g1=g^α,所以u*=g^(s*·(α-ID*))=(g1·g^(-ID*))^s*

另外,由于∏(g^(ΦID,τ·α^τ))=g^∑(ΦID,τ·α^τ)=g^(ΦID(α)-α^(q+1)),所以从配对e的双线性,v*=e(g,g)^s*

并且,由于rID,j=fj(ID)、hID,1=g^((f1(α)-f1(ID))/(α-ID)),所以k*=KDF(e(g^(s*·(α-ID*)),g^((f1(α)-f1(ID))/(α-ID)))·e(g,g)^(s*·f1(ID))=KDF(e(g,g)^(s*·f1(ID)))=KDF(e(g,h1)^s*)。同样地,y*=e(g,h2)^s*·e(g,h3)^(s*·β)。

因此,各密文之间的关系也成为与实际的密码系统∏相同的关系。

另外,由于s*针对加密oracle OE的每次调用是独立随机的,所以密文的分布也具有与实际的密码系统∏相同的分布。

并且,由于q=qx+n+1,密钥导出oracle OX、加密oracleOE、解密oracle OD中使用的{fj(ID)}以及{fj(α)}全部是独立随机的,由解答者B进行的模拟是完整的。

因此,游戏G1中的攻击者A的优势与游戏G0中的优势相同,Pr[T1]=Pr[T0]。

游戏G2是将游戏G1如下所述变更而得到的游戏。

在加密oracle OE的模拟中,解答者B代替计算乘法群GT的要素Z=e(g,g’)^(α^q+1)),而通过以下过程,预先(例如在PKG用密钥生成功能S的模拟时)计算出Z。

解答者B随机地生成1以上且小于乘法群G的阶数r的整数z。其中,设为z≠α^(q+1)。

解答者B计算出乘法群GT的要素Z=e(g,g’)^z。

如果在游戏G1中的攻击者A的举动、与游戏G2中的攻击者A的举动之间存在某些差异,则解答者B可以通过判别该差异,来判断是否为Z=e(g,g’)^(α^(q+1))。

因此,解答者B考虑利用在所提供的q-D-tABDHE问题中提供的参数来进行oracle的模拟的情况。

解答者B在所提供的q-D-tABDHE问题中,代替不知道未被解答者B知道的秘密的整数α,而知道乘法群G的q+3个要素g’、g’q+2、g、g1、…、gq,所以可以利用它来进行模拟。

即,解答者B将在q-D-tABDHE问题中提供的乘法群G的要素g设为在PKG用密钥生成功能S的模拟中选择的乘法群G的要素g。

另外,解答者B代替随机地生成整数s0,而将在q-D-tABDHE问题中提供的乘法群G的要素g’设为在PKG用密钥生成功能S的模拟中计算出的乘法群G的要素g’(=g^s0)。

在将q次多项式fj(x)的τ次系数设为fj,τ(τ是0以上且q以下的整数)时,乘法群G的要素h1是h1=g^fj(α)=∏(g^(fj,τ·α^τ))=∏(gτ^fj,τ),所以解答者B即使不知道α,也可以计算出乘法群G的要素h1。关于h2、h3也相同。

因此,解答者B即使不知道α,也可以模拟PKG用密钥生成功能S。

同样地,解答者B即使不知道α,也可以模拟密钥导出oracle OX以及解密oracle OD。另外,解答者B除了乘法群GT的要素Z的计算以外,还可以模拟加密oracle OE

解答者B将在q-D-tABDHE问题中提供的乘法群GT的要素Z用作乘法群GT的要素Z,而对加密oracle OE进行模拟。

如果Z=(g,g’)^(α^(q+1)),则解答者B进行游戏G1

如果Z≠(g,g’)^(α^(q+1)),则解答者B进行游戏G2

解答者B根据游戏内的攻击者A的举动的差异来对其进行判别,判断是否为Z=(g,g’)^(α^(q+1)),而回答所提供的q-D-tABDHE问题。

因此,|Pr[T2]-Pr[T1]|≤Advq-d-tabdhek,G,GT(t1)+3/p(其中,t1=t+O(q2·tG)。tG是乘法群G中的幂乘所需的时间)成立。

游戏G3是将游戏G2如下所述变更而得到的游戏。

解答者B在PKG用密钥生成功能S的模拟中,并非使用随机地生成的q次多项式fj(x)来计算乘法群G的要素h1、h2、h3,而是随机地选择乘法群G的要素h1、h2、h3。

另外,在密钥导出oracle OX的模拟中,解答者B针对ID,随机地生成整数rID,j,计算出乘法群G的要素hID,1=(h1·g^(-rID,j))^(1/(α-I D)。关于hID,2、hID,3也相同。

解答者B通过以下过程对加密oracle OE进行模拟。

解答者B计算出整数z’*=(z-α^(q+1))/ΦID*(α)。

解答者B随机地生成1以上且小于乘法群G的阶数r的整数s*

解答者B计算出乘法群G的要素u*=g^(s*·(α-ID*))。

解答者B计算出乘法群GT的要素v*=e(g,g)^(s*·(1+z’*))。

解答者B计算出密钥位串k=KDF(e(g,h1·g^(z’*·rID,1)^s*)。

解答者B计算出乘法群GT的要素y*=e(g,h2·h3^β*)^s*·e(g,g)^(s*·z’*·(rID*,2+rID*,3·β*))。

上述以外的部分与游戏G2相同。

从攻击者A观察时,游戏G2与游戏G3看起来相同,所以Pr[T3]=Pr[T2]。

游戏G4是将游戏G3如下所述变更而得到的游戏。

在解密oracle OD的模拟中,解答者B判定v=e(u,g)^(1/(α-ID)以及y=e(u,h2·h3^β)是否成立,如果不成立则返回“拒绝”。

在成立的情况下,解答者B计算出密钥位串k’=KDF(e(u,h1)^(1/(α-ID))),对消息进行解密。

这样,解答者B在密文的匹配性判定以及密钥位串k’的生成中,不使用秘密密钥dID,而使用整数α。

在密文的匹配性判定中,在实际的密码系统∏中,判定是否为y=e(u,hID,2·hID,3^β)·v^(rID,2+rID,3·β)。

由于判定方法不同,所以有时拒绝在实际的密码系统∏中不会拒绝的密文。将该事件设为R4时,|Pr[T4]-Pr[T3]|≤Pr[R4]。

游戏G5是将游戏G4如下所述变更而得到的游戏。

在加密oracle OE中,解答者B随机地生成1以上且小于乘法群G的阶数r的整数r*

解答者B计算出密钥位串k*=KDF(e(g,g)^r*)。

解答者B与加密oracle OE输入的消息M0*、M1*无关地,将计算出的密钥位串k*原样地设为加密的消息。

由于加密oracle OE的输出与b、M0*、M1*独立,所以攻击者A没有优势。因此,Pr[T5]=1/2。

如游戏G4的说明中所述,在解密oracle OD的模拟中,解答者B不使用整数rID,1。rID*,1被初次(且唯一)使用时是在ID*被输入到加密oracle OE中的时候。

因此,在首先随机地生成rID*,1并与其匹配地计算出r*时、和首先随机地生成r*并与其匹配地计算出rID*,1的情况下,当(g,h1,z,*,s*,M*)被固定时,相对于(r*,rID*,1)提供相同的分布。

因此,从攻击者A观察时,游戏G4与游戏G5看起来相同。

另外,由于在该加密oracle OE的模拟内以外不参照rID*,1,所以无需根据r*进行计算。

如上所述,Pr[T4]=Pr[T5]=1/2、Pr[R4]=Pr[R5]成立。另外,R5表示在游戏G5中拒绝在实际的密码系统∏中不会拒绝的密文的事件。

游戏G6是将游戏G5如下所述变更而得到的游戏。

在第i个加密oracle OE的模拟中,解答者B将输入的ID*、生成的密文C*、以及计算出的哈希值β*的组his*i=(ID*i,C*i,β*i)保持在列表Clist中。

在解密oracle OD的模拟中,解答者B在密文的匹配性判定之前,进行以下判定。

解答者B判定在保持的列表Clist中是否有ID*i与输入的ID相等、并且β*i与根据输入的密文C计算出的β相等的his*i

在有相等的his*i情况下,解答者B对包含在该his*i中的密文C*i中(除了密文验证文CC*i)的相当于密文主文CB*i的部分、与输入的密文C中(除了密文验证文CC)的相当于密文主文CB的部分进行比较,如果不相等,则返回“拒绝”。

将密文通过该判定而被拒绝的事件设为C6。另外,在实际的密码系统∏中,将在该判定中未被拒绝的密文在游戏G4中变更了的判定方法中被拒绝的事件设为R6时,|Pr[R6]-Pr[R5]|≤Pr[C6]。

此处,事件C6是虽然成为哈希值计算的基础的位串不同但哈希值β相等的情况,所以Pr[C6]≤AdvcrH(t2)。另外,AdvcrH(t2)表示哈希函数HF的不易冲突性优势。

另外,为了使事件R6成立,需要针对不是0的z’,将成为y=e(g,h2·h3^β)^s·e(g,g)^(s·z’·(rID,2+rID,3·β))的y输入给解密oracle OD。(rID,2,rID,3)相对各ID是随机的,所以在ID被输入到加密oracle OE之前,选择这样的y的概率是1/r以下(r为乘法群GT的阶数)。

另外,在将ID=ID*i输入到加密oracle之后,如果β=β*i,则通过追加的判定而被拒绝。因此,选择β≠β*i且满足上述条件的y的概率仍为1/r以下。

因此,Pr[R6]≤qd/r成立。

如上所述,成为Advmun,∏,Γ(t,qe,qd,qx)≤qe·Advq-d-tabdhek,G,GT(t1)+qe·AdvcrH(t2)+qe·(qd+3)/r。

本实施方式中的对比例子即基于ID的密码方式∏’是将以上说明的单独接收者的密码方式∏通过连接方式扩展为多个接收者的方式。

如实施方式1所述,通过连接方式扩展为多个接收者的密码方式的SMMR安全性由于是Advsmmrn,∏’,Γ(t,qd,qx)≤Advmun,∏,Γ(t,1,qd,qx),所以本实施方式中的对比例子即基于ID的密码方式的SMMR的安全性是Advsmmrn,∏’,Γ(t,qd,qx)≤Advq-d-tabdhek,G,GT(t1)+AdvcrH(t2)+(qd+3)/r。

与此相对,将一般的单独接收者密码方式通过连接方式扩展为多个接收者时的SMMR安全性是Advsmmrn,∏’,Γ(t,qd,qx)≤n·Advmu1,∏,Γ(t’,1,qd,qx),所以在表示与数学上的问题的优势之间的关系的不等式中出现接收者数n。

即,本实施方式中的对比例子即基于ID的密码方式与一般的情况相比,SMMR安全性紧密地归结于数学上的问题(归结效率良好)。

这样,本实施方式中的对比例子即基于ID的密码方式可以实现更良好的安全性证明。

接下来,对本实施方式中的基于ID的密码通信系统800进行说明。

本实施方式中的基于ID的密码通信系统800的整体结构以及密码参数生成装置100的块结构由于与对比例子中说明的部分相同,所以此处省略说明。

本实施方式中的基于ID的密码通信系统800是将对比例子中说明的基于多个接收者ID的密码方式通过哈希值共用化进行高效化而得到的。

首先,对密文生成装置200进行说明。

密文生成装置200的块结构由于与对比例子中说明的部分相同,所以使用图4,对与对比例子不同的部分进行说明。

哈希值计算部244使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数。

哈希值计算部244使用CPU 911等处理装置,作为密文主文生成部240输出的n个密文主文CBi,输入第一密文生成部241输出的n个第一密文C1i、第二密文生成部242输出的n个第二密文C2i、以及第三密文生成部243输出的n个第三密文C3i

哈希值计算部244使用CPU 911等处理装置,将输入的n个第一密文C1i、n个第二密文C2i、以及n个第三密文C3i全部结合,而生成一个结合密文。

另外,哈希值计算部244也可以作为n个密文主文CBi(的一部分)而还输入接收者识别输入部232输出的n个接收者识别信息IDi,并将输入的n个接收者识别信息IDi、n个第一密文C1i、n个第二密文C2i、以及n个第三密文C3i全部结合,生成一个结合密文。

哈希值计算部244使用CPU 911等处理装置,根据输入的公开密码参数所表示的哈希函数HF、以及生成的一个结合密文,计算出将一个结合密文通过哈希函数HF进行变换后的自然数β0,并设为一个哈希值H0

哈希值计算部244使用CPU 911等处理装置,输出表示所计算出的一个自然数β0的信息、以及生成的一个结合密文。

密文验证文生成部245使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数、表示随机数生成部222输出的n个整数si的信息、以及表示哈希值计算部244输出的一个自然数β0的信息。

密文验证文生成部245使用CPU 911等处理装置,根据输入的公开密码参数所表示的配对e、乘法群G1的要素g、以及乘法群G2的要素h2,计算出乘法群G1的要素g与乘法群G2的要素h2的配对值即乘法群GT的要素e(g,h2)。

密文验证文生成部245使用CPU 911等处理装置,根据输入的公开密码参数所表示的配对e、乘法群G1的要素g、以及乘法群G2的要素h3,计算出乘法群G1的要素g与乘法群G2的要素h3的配对值即乘法群GT的要素e(g,h3)。

另外,乘法群GT的要素e(g,h2)以及乘法群GT的要素e(g,h3)由于与整数si无关而是恒定的,所以也可以事先计算出并使用磁盘装置920等存储装置进行存储。

密文验证文生成部245使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群GT、输入的信息所表示的一个自然数β0、以及计算出的乘法群GT的要素e(g,h3),计算出乘法群GT的要素e(g,h3)的β0乘方即乘法群GT的一个要素e(g,h3)^β0

密文验证文生成部245使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群GT、计算出的乘法群GT的要素e(g,h2)、以及计算出的乘法群GT的一个要素e(g,h3)^β0,计算出乘法群GT的要素e(g,h2)与乘法群GT的要素e(g,h3)^β0之积即乘法群GT的一个要素e(g,h2)·e(g,h3)^β0

密文验证文生成部245使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群GT、输入的信息所表示的n个整数si、以及计算出的乘法群GT的一个要素e(g,h2)·e(g,h3)^β0,计算出乘法群GT的要素e(g,h2)·e(g,h3)^β0的si乘方即乘法群GT的n个要素yi=(e(g,h2)·e(g,h3)^β0)^si(i是1以上n以下的整数)。

密文验证文生成部245使用CPU 911等处理装置,输出分别表示所计算出的乘法群GT的n个要素yi的n个位串,而作为n个密文验证文CCi(i是1以上n以下的整数)。

密文结合部246使用CPU 911等处理装置,输入哈希值计算部244输出的一个结合密文、以及密文验证文生成部245输出的n个密文验证文CCi

密文结合部246使用CPU 911等处理装置,将输入的一个结合密文和输入的n个密文验证文全部结合,而生成一个密钥密文C。

密文结合部246使用CPU 911等处理装置,输出所生成的一个密钥密文C。

图16是示出本实施方式中的在密文生成装置200中交换的信息的流程的一个例子的图。

接收者识别输入部232输入n个接收者识别信息ID1、ID2、…、IDn

随机数生成部222生成与接收者识别输入部232输入的接收者识别信息ID1、ID2、…、IDn的数量相同数量的n个整数s1、s2、…、sn

第一密文生成部241根据明文M与整数s1生成第一密文C11,根据明文M与整数s2生成第一密文C12,…,根据明文M与整数sn生成第一密文C1n

第二密文生成部242根据接收者识别信息ID1与整数s1生成第二密文C21,根据接收者识别信息ID2与整数s2生成第二密文C22,…,根据接收者识别信息IDn与整数sn生成第二密文C2n

第三密文生成部243根据整数s1生成第三密文C31,根据整数s2生成第三密文C32,…,根据整数sn生成第三密文C3n

到此为止的流程与对比例子相同。

哈希值计算部244将第一密文C11、第二密文C21、第三密文C31、第一密文C12、第二密文C22、第三密文C32、…、第一密文C1n、第二密文C2n、以及第三密文C3n全部结合而生成一个结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)。另外,结合的顺序也可以是与它不同的顺序。

哈希值计算部244根据生成的一个结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n),计算出一个哈希值H0

密文验证文生成部245根据整数s1与哈希值H0生成密文验证文CC1,根据整数s2与哈希值H0生成密文验证文CC2,…,根据整数sn与哈希值H0生成密文验证文CCn

密文结合部246将一个结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)、与密文验证文CC1、密文验证文CC2、…、以及密文验证文CCn全部结合,而生成一个密钥密文C=(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n|CC1|CC2|…|CCn)。

另外,在该例子中,由于将哈希值计算部244生成的结合密文原样地利用,所以密文的结合顺序与对比例子不同,但密文的结合顺序不限于该顺序。既可以是与对比例子中说明的顺序相同的顺序,也可以是其它顺序。

接下来,对密文接收装置301~303进行说明。

密文接收装置301~303的块结构也与对比例子中说明的结构相同,所以使用图6,对与对比例子不同的部分进行说明。

密文分解部346使用CPU 911等处理装置,输入密文接收部351输出的一个密钥密文C。

密文分解部346使用CPU 911等处理装置,从输入的一个密钥密文C,取得对应于自身所对应的接收者的对应第一密文C1ID、对应第二密文C2ID、对应第三密文C3ID、以及对应密文验证文CCID

密文分解部346使用CPU 911等处理装置,输出所取得的对应第一密文C1ID、对应第二密文C2ID、对应第三密文C3ID、以及对应密文验证文CCID

例如,一个密钥密文C是如图16所示,按照(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n|CC1|CC2|…|CCn)这样的顺序结合密文而得到的。

密文分解部346例如将一个密钥密文C分割为第一密文~第三密文的位长之和的n倍、和密文验证文的位长的n倍,取得验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)、以及结合密文验证文(CC1|CC2|…|CCn)。

密文分解部346将验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)进一步分割,而设为(C11|C21|C31)、(C12|C22|C32)、…、(C1n|C2n|C3n),从其中取得与自己对应的对应密文(C1ID|C2ID|C3ID)。

密文分解部346分割所取得的对应密文(C1ID|C2ID|C3ID),取得对应第一密文C1ID、对应第二密文C2ID、以及对应第三密文C3ID

另外,密文分解部346分割所取得的结合密文验证文(CC1|CC2|…|CCn)而设为CC1、CC2、…、CCn,并从其中取得与自己对应的对应密文验证文CCID

密文分解部346输出所取得的对应第一密文C1ID、对应第二密文C2ID、对应第三密文C3ID、以及对应密文验证文CCID

另外,在该例子中,为了省略验证哈希值计算部344生成验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)的工作,密文分解部346使用CPU 911等处理装置,还一并输出所取得的验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)。

验证哈希值计算部344使用CPU 911等处理装置,输入密文分解部346输出的验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)。或者,验证哈希值计算部344也可以使用CPU 911等处理装置来结合密文,生成验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)。

验证哈希值计算部344使用CPU 911等处理装置,输入公开参数存储部310存储的公开密码参数。

验证哈希值计算部344使用CPU 911等处理装置,根据输入的公开密码参数所表示的哈希函数HF、以及输入或生成的验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n),计算出将验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)通过哈希变换HF进行变换后的自然数β’,而设为哈希值H’。

验证哈希值计算部344使用CPU 911等处理装置,输出表示所计算出的自然数β’的信息。

接下来,对动作进行说明。

图17是示出本实施方式中的密文生成装置200生成密文的密文生成处理的流程的一个例子的流程图。

另外,对于与在对比例子中说明的密文生成处理的工序共同的工序,附加同一标号。

在哈希值计算工序S38中,哈希值计算部244使用CPU 911等处理装置,根据在第一密文生成工序S35中第一密文生成部241生成的与n个接收者分别对应的n个第一密文C1i、在第二密文生成工序S36中第二密文生成部242生成的与n个接收者分别对应的n个第二密文C2i、以及在第三密文生成工序S37中第三密文生成部243生成的与n个接收者分别对应的n个第三密文C3i,生成将与n个接收者分别对应的n个第一密文C1i、与n个接收者分别对应的n个第二密文C2i、以及与n个接收者分别对应的n个第三密文C3i全部结合而得到的一个结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)。

哈希值计算部244使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的哈希函数HF、以及生成的一个结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n),计算出将一个结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)通过哈希函数HF进行变换后的一个整数β0=HF(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)。

在密文验证文生成工序S39中,密文验证文生成部245使用CPU911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群GT、配对e、乘法群G1的要素g和乘法群G2的两个要素h2、h3、在随机数生成工序S34中随机数生成部222生成的与n个接收者分别对应的n个自然数si、以及在哈希值计算工序S38中哈希值计算部244计算出的一个整数β0,计算出与n个接收者分别对应的乘法群GT的n个要素yi=e(g,h2)^si·e(g,h3)^(si·β0)。

密文验证文生成部245使用CPU 911等处理装置,将分别表示计算出的与n个接收者分别对应的乘法群GT的n个要素yi的位串,设为与n个接收者分别对应的n个密文验证文CCi

图18是示出本实施方式中的密文接收装置301~303接收密文的密文接收处理的流程的一个例子的流程图。

另外,对于与在对比例子中说明的密文接收处理的工序共同的工序,附加同一标号。

在验证哈希值计算工序S53中,验证哈希值计算部344使用CPU911等处理装置,根据公开参数存储部310存储的公开密码参数所表示的哈希函数HF、以及验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n),计算出将验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)通过哈希函数HF进行变换后的一个整数β’=HF(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)。

上述说明以外的工序由于与在对比例子中说明的工序相同,所以此处省略说明。

如上所述,本实施方式中的基于ID的密码通信系统800与对比例子中说明的基于ID的密码通信系统800相比,虽然一个密钥密文C的长度不变,但密文生成处理中所需的计算量减少,所以可以削减密码通信的成本。

特别是在哈希值计算工序S38中,在对比例子中说明的方式的情况下,需要n次的哈希值计算,但在该方式的情况下,一次哈希值计算即可。

另外,在密文验证文生成工序S39中,在对比例子中说明的方式的情况下,需要2n次的乘法群GT中的幂乘算和n次的乘法群GT中的乘算,但在该方式的情况下,进行(n+1)次的乘法群GT中的幂乘算和一次的乘法群GT中的乘算即可,在接收者的人数多的情况下,可以大幅削减计算量。

接下来,对本实施方式中的基于ID的密码通信系统800使用的基于ID的密码方式的SMMR安全性进行说明。

另外,在以下说明中,设为在密文主文CBi中包含有识别与其对应的接收者的接收者识别信息IDi

本实施方式中的基于ID的密码方式的SMMR安全性的证明,可以通过与成为在对比例子中说明的ID密码方式的基础的单独接收者的基于ID的密码方式的MU安全性的证明并行的讨论来证明。

此处,省略证明中的关于共用的部分的说明,说明不同的部分。

解密oracle OD’输入用户的识别信息ID、以及与针对该ID的(分节的)密文CID

此处,(分节的)密文CID由n个密文主文CBi、表示在n个密文主文CBi中与该ID对应的对应密文主文CID是哪个的信息、以及对应密文验证文CCID构成。

解密oracle OD’结合所输入的n个密文主文CBi,生成验证结合密文,计算出哈希值β’。

解密oracle OD’根据输入的信息所表示的对应密文主文CBID、输入的对应密文验证文CCID、计算出的哈希值β’、以及通过密钥导出功能X’生成的秘密密钥dID,验证密文。

在验证失败的情况下,解密oracle OD’返回“拒绝”。

在验证成功的情况下,解密oracle OD’进行解密处理,返回所解密的消息。

游戏G6是将游戏G5如下所述变更而得到的游戏。

在加密oracle OE’的模拟中,解答者B保持所输入的ID*=(ID*1,ID*2,…,ID*n)、生成的n个密文主文CB*=(CB*1,CB*2,…,CB*n)、以及计算出的哈希值β*0

在解密oracle OD’的模拟中,解答者B判定所保持的β*0、与根据输入的n个密文主文CBi计算出的哈希值β’是否相等。

在相等的情况下,解答者B判定在保持的ID*中是否有与输入的ID相等的ID*i,在有与输入的ID相等的ID*i的情况下,在保持的n个密文主文C B*之中,比较对应于该ID*i的密文主文CB*i与输入的信息所表示的对应密文主文CBID,如果不相等则返回“拒绝”。

除了以上相异点,证明的主要部分的结构没变,所以本实施方式中的基于ID的密码方式的SMMR安全性是Advsmmrn,∏’,Γ(t,qd,qx)≤Advq-d-tabdhek,G,GT(t1)+AdvcrH(t2)+(qd+3)/r。

根据本实施方式中的基于ID的密码通信系统800,可以通过紧密地归结于数学上的问题的证明来证明SMMR-IND-ID-CCA2安全性,所以起到可以使用基于ID的密码通信系统800来实现安全的密码通信这样的效果。

本实施方式中的密文生成装置200将以下点作为特征。

密码参数存储部210的特征是,使用磁盘装置920等存储装置,作为公开密码参数而存储表示自然数r、阶数是上述自然数r的乘法群G1、阶数是上述自然数r的乘法群G2、阶数是上述自然数r的乘法群GT、根据乘法群G1的要素与乘法群G2的要素计算出乘法群GT的要素的配对e、根据乘法群GT的要素计算出规定长度的位串的密钥生成函数KDF、根据任意长度的位串计算出小于上述自然数r的自然数的哈希函数HF、乘法群G1的要素g、乘法群G1的要素g1、乘法群G2的要素g2、乘法群G2的要素h1、乘法群G2的要素h2、以及乘法群G2的要素h3的信息。

接收者识别输入部232的特征是,使用CPU 911等处理装置,作为n个接收者识别信息而输入n个整数IDi

随机数生成部222的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的自然数r,随机地生成与n个接收者对应的n个1以上且小于自然数r的整数si(i是1以上n以下的整数)。

第一密文生成部241的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G1的要素g、乘法群G2的要素h1和配对e、密钥生成函数KDF、以及随机数生成部222生成的n个整数si,计算出与n个接收者对应的n个密钥位串ki=KDF(e(g,h1)^si)(i是1以上n以下的整数),使用CPU 911等处理装置,利用所计算出的n个密钥位串ki对明文输入部231输入的明文M分别进行加密,设为与n个接收者对应的n个第一密文C1i(i是1以上n以下的整数)。

第二密文生成部242的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G1的要素g、乘法群G1的要素g1、接收者识别输入部232输入的n个整数IDi、以及随机数生成部222生成的n个整数si,计算出与n个接收者对应的乘法群G1的n个要素ui=(g1·g^-IDi)^si(i是1以上n以下的整数),将分别表示所计算出的乘法群G1的n个要素ui的位串设为与n个接收者对应的n个第二密文C2i(i是1以上n以下的整数)。

第三密文生成部243的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G1的要素g、乘法群G2的要素g2和配对e、以及随机数生成部222生成的n个整数si,计算出与n个接收者对应的乘法群GT的n个要素vi=e(g,g2)^si(i是1以上n以下的整数),将分别表示所计算出的乘法群GT的要素vi的位串设为与n个接收者对应的n个第三密文C3i(i是1以上n以下的整数)。

哈希值计算部244的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的哈希函数HF,计算出一个自然数β0,而设为哈希值H0

密文验证文生成部245的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G1的要素g、乘法群G2的要素h2、乘法群G2的要素h3和配对e、随机数生成部222生成的n个整数si、以及哈希值计算部244计算出的一个自然数β0,计算出与n个接收者对应的乘法群GT的n个要素yi=e(g,h2)^si·e(g,h3)^(si·β0)(i是1以上n以下的整数),并将分别表示计算出的乘法群GT的n个要素yi的位串设为与n个接收者分别对应的n个密文验证文CCi(i是1以上n以下的整数)。

根据本实施方式中的密文生成装置200,密码处理中所需的资源较少也可以,起到如下效果:可以实现利用了可以在数学上证明SMMR-IND-ID-CCA2安全性的基于ID的密码方式的密码通信。

本实施方式中的基于ID的密码通信系统800(密码通信系统)将以下点作为特征。

密码参数生成装置100的特征是,还具有群参数存储部111。

群参数存储部111的特征是,使用磁盘装置920等存储装置,作为群参数而存储表示自然数r、阶数是上述自然数r的乘法群G1、阶数是上述自然数r的乘法群G2、阶数是上述自然数r的乘法群GT、以及根据乘法群G1的要素与乘法群G2的要素计算出乘法群GT的要素的配对e的信息。

秘密信息生成部112的特征是,使用CPU 911等处理装置,根据群参数存储部存储的群参数所表示的自然数r,随机地生成1以上且小于自然数r的整数α。

秘密信息存储部121的特征是,使用磁盘装置920等存储装置,存储表示秘密信息生成部112生成的整数α的信息而作为秘密信息。

公开参数生成部113的特征是,使用CPU 911等处理装置,决定根据乘法群GT的要素计算出规定长度的位串的密钥生成函数KDF、以及根据任意长度的位串计算出小于上述自然数r的自然数的哈希函数HF,使用CPU 911等处理装置,根据群参数存储部111存储的群参数所表示的乘法群G1与乘法群G2,随机地选择乘法群G1的要素g、乘法群G2的要素g2、乘法群G2的要素h1、乘法群G2的要素h2以及乘法群G2的要素h3,使用CPU 911等处理装置,根据秘密信息生成部112生成的秘密信息所表示的整数α、以及选择的乘法群G1的要素g,计算出乘法群G1的要素g1=g^α,将表示群参数存储部111存储的群参数、所决定的密钥生成函数KDF与哈希函数HF、所选择的乘法群G1的要素g、乘法群G2的要素g2、乘法群G2的要素h1、乘法群G2的要素h2和乘法群G2的要素h3、以及计算出的乘法群G1的要素g1的信息,设为公开密码参数。

识别信息输入部131的特征是,使用CPU 911等处理装置,输入整数ID而作为接收者识别信息。

秘密密钥生成部132的特征是,使用CPU 911等处理装置,根据公开参数生成部113生成的公开密码参数所表示的自然数r,随机地生成1以上且小于自然数r的整数rID,1、1以上且小于自然数r的整数rID,2、以及1以上且小于自然数r的整数rID,3,使用CPU 911等处理装置,根据公开参数生成部113生成的公开密码参数所表示的乘法群G2的要素g2、乘法群G2的要素h1、乘法群G2的要素h2和乘法群G2的要素h3、秘密信息存储部121存储的整数α、识别信息输入部131输入的整数ID、以及生成的整数rID,1、整数rID,2和整数rID,3,计算出乘法群G2的要素hID,1=(h1·g2^(-rID,1))^(1/(α-ID))、乘法群G2的要素hID,2=(h2·g2^(-rID,2))^(1/(α-ID))、以及乘法群G2的要素hID,3=(h3·g2^(-rID,3))^(1/(α-ID)),将表示所生成的整数rID,1、整数rID,2和整数rID,3、以及计算出的乘法群G2的要素hID,1、乘法群G2的要素hID,2和乘法群G2的要素hID,3的信息,设为秘密密钥dID

接收者识别输入部232的特征是,使用CPU 911等处理装置,输入n个整数IDi而作为n个接收者识别信息。

随机数生成部222的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的自然数r,随机地生成与n个接收者对应的n个1以上且小于自然数r的整数si(i是1以上n以下的整数)。

第一密文生成部241的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G1的要素g、乘法群G2的要素h1和配对e、密钥生成函数KDF、以及随机数生成部222生成的n个整数si,计算出与n个接收者对应的n个密钥位串ki=KDF(e(g,h1)^si)(i是1以上n以下的整数),使用CPU 911等处理装置,利用所计算出的n个密钥位串ki,对明文输入部231输入的明文M分别进行加密,而设为与n个接收者对应的n个第一密文C1i(i是1以上n以下的整数)。

第二密文生成部242的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G1的要素g、乘法群G1的要素g1、接收者识别输入部232输入的n个整数IDi、以及随机数生成部222生成的n个整数si,计算出与n个接收者对应的乘法群G1的n个要素ui=(g1·g^-IDi)^si(i是1以上n以下的整数),并将分别表示所计算出的乘法群G1的n个要素ui的位串,设为与n个接收者对应的n个第二密文C2i(i是1以上n以下的整数)。

第三密文生成部243的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G1的要素g、乘法群G2的要素g2和配对e、以及随机数生成部222生成的n个整数si,计算出与n个接收者对应的乘法群GT的n个要素vi=e(g,g 2)^si(i是1以上n以下的整数),将分别表示所计算出的乘法群GT的要素vi的位串,设为与n个接收者对应的n个第三密文C3i(i是1以上n以下的整数)。

哈希值计算部244的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的哈希函数HF,计算出一个自然数β0而设为哈希值H0

密文验证文生成部245的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G1的要素g、乘法群G2的要素h2、乘法群G2的要素h3和配对e、随机数生成部222生成的n个整数si、以及哈希值计算部244计算出的一个自然数β0,计算出与n个接收者对应的乘法群GT的n个要素yi=e(g,h2)^si·e(g,h3)^(si·β0)(i是1以上n以下的整数),并将分别表示计算出的乘法群GT的n个要素yi的位串,设为与n个接收者对应的n个密文验证文CCi(i是1以上n以下的整数)。

验证哈希值计算部344的特征是,使用CPU 911等处理装置,根据公开参数存储部310存储的公开密码参数所表示的哈希函数HF,计算出自然数β’,而设为验证哈希值H’。

密文验证部345的特征是,使用CPU 911等处理装置,根据公开参数存储部310存储的公开密码参数所表示的配对e、秘密密钥存储部323存储的秘密密钥dID所表示的整数rID,2、整数rID,3、乘法群G2的要素hID,2和乘法群G2的要素hID,3、密文分解部346取得的一个对应第二密文C2ID所表示的乘法群G1的要素uID和一个对应第三密文C3ID所表示的乘法群GT的要素vID、以及验证哈希值计算部344计算出的自然数β’,计算出乘法群GT的要素y’=e(uID,hID,2·hID,3^β’)·vID^(rID,2+rID,3·β’),使用CPU 911等处理装置,对计算出的乘法群GT的要素y’、与密文分解部346取得的对应密文验证文CCID所表示的乘法群GT的要素yID进行比较,在乘法群GT的要素y’与乘法群GT的要素yID一致的情况下,判定为密文接收部351接收到的一个密文C(密钥密文C)中有匹配性。

密文解密部341的特征是,在密文验证部345判定为密文接收部351接收到的一个密文C中有匹配性的情况下,使用CPU 911等处理装置,根据公开参数存储部310存储的公开密码参数所表示的配对e和密钥生成函数KDF、秘密密钥存储部323存储的秘密密钥dID所表示的整数rID,1和乘法群G2的要素hID,1、上述密文分解部取得的一个对应第二密文C2ID所表示的乘法群G1的要素uID、以及对应第三密文C3ID所表示的乘法群G2的要素vID,计算出密钥位串k’=KDF(e(uID,hID,1)·vID^rID,1),使用CPU 911等处理装置,利用所计算出的密钥位串k’,对密文分解部346取得的对应第一密文C1ID进行解密,从而还原明文M。

根据本实施方式中的基于ID的密码通信系统800,密码处理中所需的资源较少也可以,起到如下效果:可以实现利用了可以在数学上证明SMMR-IND-ID-CCA2安全性的基于ID的密码方式的密码通信。

实施方式3

使用图18~图24,对实施方式3进行说明。

在说明本实施方式中的基于ID的密码通信系统800之前,首先,对作为对比例子的基于ID的密码通信系统进行说明。

本实施方式中的对比例子即基于ID的密码通信系统的整体结构由于与实施方式1中说明的部分相同,所以此处省略说明。

最初,对密码参数生成装置100进行说明。

密码参数生成装置100的块结构由于与实施方式1中说明的部分相同,所以使用图4,对与实施方式1不同的部分进行说明。

群参数存储部111使用磁盘装置920等存储装置,作为群参数而存储表示自然数r、乘法群G1、乘法群G2、乘法群GT以及配对e的信息。

自然数r是难以求解DH问题的大素数。

乘法群G1、乘法群G2以及乘法群GT是阶数为自然数r的乘法群。

另外,乘法群G1与乘法群G2既可以是相同的乘法群,也可以是不同的乘法群。在乘法群G1与乘法群G2是相同的乘法群的情况下,群参数存储部111也可以不存储表示乘法群G2的信息。

配对e是根据乘法群G1的要素与乘法群G2的要素而计算出乘法群GT的要素的映射。配对e是双线性配对,是可以使用计算机的CPU 911等处理装置在实用的时间内计算的配对。

秘密信息生成部112使用CPU 911等处理装置,输入群参数存储部111存储的群参数。

秘密信息生成部112使用CPU 911等处理装置,根据输入的群参数所表示的自然数r,随机地生成1以上且小于自然数r的整数α。

秘密信息生成部112使用CPU 911等处理装置,输出表示所生成的整数α的信息。

公开参数生成部113使用CPU 911等处理装置,输入群参数存储部111存储的群参数、以及秘密信息生成部112输出的整数α。

公开参数生成部113使用CPU 911等处理装置,根据输入的群参数所表示的乘法群GT,决定密钥生成函数KDF。

密钥生成函数KDF是根据乘法群GT的要素来计算出规定长度的位串的函数。

公开参数生成部113使用CPU 911等处理装置,决定哈希函数HF。

哈希函数HF是根据任意长度的位串来计算出规定长度的位串的函数。另外,哈希函数HF是根据不同的位串计算出相同位串的概率极低的函数。

以下,将哈希函数HF输出的位串长度设为m位。

公开参数生成部113使用CPU 911等处理装置,根据输入的群参数所表示的乘法群G2,随机地决定两个函数V1以及V2。

函数V1以及V2是根据规定长度的位串来计算出乘法群G2的要素的函数。

函数V1以及V2输入的位串的长度与哈希函数HF输出的位串的长度相等,是m位。

在该对比例子中,函数V1以及V2输入的m位的位串可以分解为m1个m2位的位串。即,设为m=m1·m2。

公开参数生成部113使用CPU 911等处理装置,根据输入的群参数所表示的乘法群G2,随机地选择乘法群G2的(m1+2)个要素h1、h2、…、hm1、h1’、h2’。

将成为函数V1以及V2的输入的m位的位串设为ID=(v1|v2|…|vm1)(vξ(ξ是1以上m1以下的整数)是m2位的位串)。

在函数V1中,将vξ解释为0以上且小于2m2的整数,根据公开参数生成部113选择的乘法群G2的(m1+1)个要素h1、h2、…、hm1、h1’,将乘法群G2的要素h1的v1乘方、乘法群G2的要素h2的v2乘方、…、乘法群G2的要素hm1的vm1乘方、和乘法群G2的要素h1’的总积即乘法群G2的要素h1’·∏(hξ^vξ)(ξ是1以上m1以下的整数),定义为函数V1输出的乘法群G2的要素V1(ID)。

在函数V2中也同样地,根据公开参数生成部113选择的乘法群G2的(m1+1)个要素h1、h2、…、hm1、h2’,将乘法群G2的要素h1的v1乘方、乘法群G2的要素h2的v2乘方、…、乘法群G2的要素hm1的vm1乘方、和乘法群G2的要素h2’的总积即乘法群G2的要素h2’·∏(hξ^vξ)(ξ是1以上m1以下的整数),定义为函数V2输出的乘法群G2的要素V2(ID)。

公开参数生成部113通过选择用于计算函数V1以及V2而所需的乘法群G2的(m1+2)个要素h1、h2、…、hm1、h1’、h2’,来决定函数V1以及V2。

另外,函数V1以及V2也可以并不是上述所说明的定义的函数。另外,函数V1与函数V2也可以是相同的函数。

公开参数生成部113使用CPU 911等处理装置,根据输入的群参数所表示的乘法群G1,随机地选择乘法群G1的要素g。

公开参数生成部113使用CPU 911等处理装置,根据输入的群参数所表示的乘法群G2,随机地选择乘法群G2的要素g2。

其中,选择乘法群G1的要素g与乘法群G2的要素g,使得乘法群G1的要素g与乘法群G2的要素g2的配对值即乘法群GT的要素e(g,g2)不会成为乘法群GT的单位元素。

另外,在乘法群G1与乘法群G2是相同的乘法群的情况下,乘法群G1的要素g与乘法群G2的要素g2选择不同的要素。

公开参数生成部113使用CPU 911等处理装置,根据输入的群参数所表示的乘法群G1、所选择的乘法群G1的要素g、以及输入的信息所表示的整数α,计算出乘法群G1的要素g的α乘方即乘法群G1的要素g1=g^α。

公开参数生成部113使用CPU 911等处理装置,输出表示所输入的群参数、决定的密钥生成函数KDF、决定的哈希函数HF、决定的两个函数V1、V2、选择的乘法群G1的要素g、计算出的乘法群G1的要素g1、以及选择的乘法群G2的要素g2的信息,作为公开密码参数。

另外,公开密码参数作为表示函数V1以及V2的信息而包括表示乘法群G2的(m1+2)个要素h1、h2、…、hm1、h1’、h2’的信息。

秘密信息生成部112使用CPU 911等处理装置,输入公开参数生成部113输出的公开密码参数。

秘密信息生成部112使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G2和乘法群G2的要素g2、以及生成的整数α,计算出乘法群G2的要素g2的α乘方即乘法群G2的要素g2^α。

秘密信息生成部112使用CPU 911等处理装置,输出表示所计算出的乘法群G2的要素g2^α的信息。

秘密信息存储部121使用CPU 911等处理装置,输入表示秘密信息生成部112输出的乘法群G2的要素g2^α的信息而作为秘密信息。

秘密信息存储部121使用磁盘装置920等存储装置,存储表示输入的乘法群G2的要素msk=g2^α的信息。

另外,秘密信息存储部121也可以代替表示秘密信息生成部112计算出的乘法群G2的要素msk的信息,而存储表示秘密信息生成部112生成的整数α的信息。

识别信息输入部131使用CPU 911等处理装置,输入接收者识别信息ID。

在以下说明中,密码参数生成装置100将接收者识别信息ID作为m位的位串进行处理。

例如,密码参数生成装置100通过对邮件地址等任意长度的位串附加填充位串,设为m位的位串,并设为接收者识别信息。

或者,密码参数生成装置100也可以将邮件地址等任意长度的位串作为哈希函数(既可以是与公开参数生成部113决定的哈希函数HF相同的哈希函数,也可以是不同的哈希函数)的输入,取得通过哈希函数计算出的m位的位串,而作为接收者识别信息。

即,识别信息输入部131使用CPU 911等处理装置,输入m位的位串ID而作为接收者识别信息。

识别信息输入部131使用CPU 911等处理装置,输出所输入的m位的位串ID。

秘密密钥生成部132使用CPU 911等处理装置,输入表示秘密信息存储部121存储的乘法群G2的要素msk的信息、参数存储部122存储的公开密码参数、以及识别信息输入部131输出的m位的位串ID。

秘密密钥生成部132使用CPU 911等处理装置,根据输入的公开密码参数所表示的自然数r,随机地生成整数rID。整数rID是1以上且小于r的整数。

秘密密钥生成部132使用CPU 911等处理装置,根据输入的公开密码参数所表示的函数V1、以及输入的长度m的位串ID,计算出将m位的位串ID通过函数V1进行变换后的乘法群G2的要素V1(ID)。

秘密密钥生成部132使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G2、计算出的乘法群G2的要素V1(ID)、以及生成的整数rID,计算出乘法群G2的要素V1(ID)的rID乘方即乘法群G2的要素V1(ID)^rID

秘密密钥生成部132使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G2、输入的信息所表示的乘法群G2的要素msk、以及计算出的乘法群G2的要素V1(ID)^rID,计算出乘法群G2的要素msk与乘法群G2的要素V1(ID)^rID之积即乘法群G2的要素d0ID=msk·V1(ID)^rID

秘密密钥生成部132使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G1与乘法群G1的要素g、以及生成的整数rID,计算出乘法群G1的要素g的rID乘方即乘法群G1的要素d1ID=g^rID

秘密密钥生成部132使用CPU 911等处理装置,输出表示计算出的乘法群G2的要素d0ID和计算出的乘法群G1的要素d1ID的信息,而作为秘密密钥dID

接下来,对密文生成装置200进行说明。

密文生成装置200的功能块的结构也与实施方式1中说明的部分相同,所以使用图5,对与实施方式1不同的部分进行说明。

密文生成装置200与密码参数生成装置100同样地,将接收者识别信息ID作为m位的位串进行处理。

接收者识别输入部232使用CPU 911等处理装置,作为分别识别n个接收者(n是1以上的整数)的n个接收者识别信息,而输入n个m位的位串IDi(i是1以上n以下的整数)。

接收者识别输入部232使用CPU 911等处理装置,输出所输入的n个m位的位串IDi

随机数生成部222使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数。

随机数生成部222使用CPU 911等处理装置,根据输入的公开密码参数所表示的自然数r,随机地生成与n个接收者分别对应的n个1以上且小于自然数r的整数si(i是1以上n以下的整数)。

随机数生成部222使用CPU 911等处理装置,输出表示所生成的n个整数si的信息。

第一密文生成部241使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数、表示随机数生成部222输出的n个整数si的信息、以及明文输入部231输出的明文M。

第一密文生成部241使用CPU 911等处理装置,根据输入的公开密码参数所表示的配对e、乘法群G1的要素g1和乘法群G2的要素g2,计算出乘法群G1的要素g1与乘法群G2的要素g2的配对值即乘法群GT的要素e(g1,g2)。

另外,乘法群GT的要素e(g1,g2)由于与整数si、明文M无关而是一定的,所以也可以事先计算出并使用磁盘装置920等存储装置进行存储。

第一密文生成部241使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群GT、计算出的乘法群GT的要素e(g1,g2)、以及输入的信息所表示的n个整数si,计算出乘法群GT的要素e(g1,g2)的si乘方即乘法群GT的n个要素e(g1,g2)^si(i是1以上n以下的整数)。

第一密文生成部241使用CPU 911等处理装置,根据输入的公开密码参数所表示的密钥生成函数KDF、以及计算出的乘法群GT的n个要素e(g1,g2)^si,计算出将乘法群GT的要素e(g1,g2)^si通过密钥生成函数KDF进行变换后的规定长度的位串即n个密钥位串ki=KDF(e(g1,g2)^si)(i是1以上n以下的整数)。

第一密文生成部241使用CPU 911等处理装置,根据输入的明文M和计算出的n个密钥位串ki,生成利用n个密钥位串ki对明文M分别进行加密得到的n个位串,设为n个第一密文C1i(i是1以上n以下的整数)。

第一密文生成部241使用CPU 911等处理装置,输出所生成的n个第一密文C1i

第二密文生成部242使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数、表示随机数生成部222输出的n个整数si的信息、以及接收者识别输入部232输出的n个m位的位串IDi

第二密文生成部242使用CPU 911等处理装置,根据输入的公开密码参数所表示的函数V1和输入的n个m位的位串IDi,计算出将m位的位串IDi通过函数V1进行变换后的乘法群G2的n个要素V1(IDi)(i是1以上n以下的整数)。

另外,函数V1的计算例如按照以下过程。

第二密文生成部242使用CPU 911等处理装置,将输入的n个m位的位串IDi分别分解为m1个m2位的位串v(i是1以上n以下的整数。ξ是1以上m1以下的整数。m=m1·m2)。作为结果,分解的m2位的位串v的全部数量成为n·m1个。在以下说明中,说明为了避免繁杂度而对于一个m位的位串IDi计算函数V1的值V1(IDi)的过程。

第二密文生成部242将分解的m2位的位串v作为0以上且小于2的m2乘方的整数而进行处理。例如,将所有的位是“0”的位串v作为整数0进行处理,将所有的位是“1”的位串v作为整数2m2-1进行处理。虽然可以将任意位串作为任意整数进行处理,但在根据CPU 911等处理装置内部中的通过整数的表现形式来决定的对应关系进行处理时,省去了变换的工作,所以是优选的。在以下记述中,“整数v”意味着将m2位的位串v作为整数进行处理时的整数。

第二密文生成部242使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G2和乘法群G2的m1个要素hξ(ξ是1以上m1以下的整数)、以及m1个整数v,计算出乘法群G2的要素hξ的v乘方即乘法群G2的m1个要素hξ^v

第二密文生成部242使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G2与乘法群G2的要素h1’、以及计算出的乘法群G2的m1个要素hξ^v,计算出将乘法群G2的要素h1’与乘法群G2的m1个要素hξ^v全部相乘的结果即乘法群G2的一个要素h1’·∏(hξ^v)(ξ是1以上m1以下的整数)。

第二密文生成部242将计算出的乘法群G2的一个要素h1’·∏(hξ^v)设为函数V1的值V1(IDi)。

为了计算出乘法群G2的n个要素V1(IDi),将以上的过程进行n次。

第二密文生成部242使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G2、计算出的乘法群G2的n个要素V1(IDi)、以及输入的信息所表示的n个整数si,计算出乘法群G2的要素V1(IDi)的si乘方即乘法群G2的n个要素ui=V1(IDi)^si(i是1以上n以下的整数)。

第二密文生成部242使用CPU 911等处理装置,输出分别表示所计算出的乘法群G2的n个要素ui的n个位串,而作为n个第二密文C2i(i是1以上n以下的整数)。

第三密文生成部243使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数、和表示随机数生成部222输出的n个整数si的信息。

第三密文生成部243使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G1与乘法群G1的要素g、以及输入的信息所表示的n个整数si,计算出乘法群G1的要素g的si乘方即乘法群G1的n个要素vi=g^si(i是1以上n以下的整数)。

第三密文生成部243使用CPU 911等处理装置,输出分别表示所计算出的乘法群G1的n个要素vi的n个位串而作为n个第三密文C3i(i是1以上n以下的整数)。

哈希值计算部244使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数。

哈希值计算部244使用CPU 911等处理装置,作为密文主文生成部240输出的n个密文主文CBi,输入第一密文生成部241输出的n个第一密文C1i、第二密文生成部242输出的n个第二密文C2i、以及第三密文生成部243输出的n个第三密文C3i

哈希值计算部244使用CPU 911等处理装置,分别结合所输入的n个第一密文C1i、n个第二密文C2i、以及n个第三密文C3i,生成n个结合密文。

另外,哈希值计算部244也可以还输入接收者识别输入部232输出的n个接收者识别信息IDi而作为n个密文主文CBi(的一部分),将输入的n个接收者识别信息IDi、n个第一密文C1i、n个第二密文C2i、以及n个第三密文C3i全部结合,而生成一个结合密文。

哈希值计算部244使用CPU 911等处理装置,根据输入的公开密码参数所表示的哈希函数HF、以及生成的n个结合密文,计算出将n个结合密文通过哈希函数HF分别进行变换后的n个m位的位串wi,设为n个哈希值Hi

哈希值计算部244使用CPU 911等处理装置,输出表示所计算出的n个m位的位串wi的信息、以及生成的n个结合密文。

密文验证文生成部245使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数、表示随机数生成部222输出的n个整数si的信息、以及表示哈希值计算部244输出的n个m位的位串wi的信息。

密文验证文生成部245使用CPU 911等处理装置,根据输入的公开密码参数所表示的函数V2、以及输入的n个m位的位串wi,计算出将m位的位串wi通过函数V2分别进行变换后的乘法群G2的n个要素V2(wi)(i是1以上n以下的整数)。

另外,函数V2的计算例如按照以下过程。

密文验证文生成部245使用CPU 911等处理装置,将输入的n个m位的位串wi分别分解为m1个m2位的位串v(i是1以上n以下的整数。ξ是1以上m1以下的整数。m=m1·m2)。作为结果,分解的m2位的位串v的全部数量成为n·m1个。在以下说明中,叙述针对一个m位的位串wi计算函数V2的值V2(wi)的过程。

密文验证文生成部245将分解的m2位的位串v作为0以上且小于2的m2乘方的整数而进行处理。

密文验证文生成部245使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G2和乘法群G2的m1个要素hξ(ξ是1以上m1以下的整数)、以及m1个整数v,计算出乘法群G2的要素hξ的v乘方即乘法群G2的m1个要素hξ^v

密文验证文生成部245使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G2与乘法群G2的要素h2’、以及计算出的乘法群G2的m1个要素hξ^v,计算出将乘法群G2的要素h2’与乘法群G2的m1个要素hξ^v全部相乘得到的结果即乘法群G2的一个要素h2’·∏(hξ^v)(ξ是1以上m1以下的整数)。

密文验证文生成部245将计算出的乘法群G2的一个要素h2’·∏(hξ^v)设为函数V2的值V2(IDi)。

为了计算出乘法群G2的n个要素V2(IDi),将以上的过程进行n次。

密文验证文生成部245使用CPU 911等处理装置,根据输入的信息所表示的n个整数si、以及计算出的乘法群G2的n个要素V2(wi),计算出乘法群G2的要素V2(wi)的si乘方即乘法群G2的n个要素yi=V2(wi)^si(i是1以上n以下的整数)。

密文验证文生成部245使用CPU 911等处理装置,输出分别表示所计算出的乘法群G2的n个要素yi的n个位串,而作为n个密文验证文CCi(i是1以上n以下的整数)。

密文结合部246使用CPU 911等处理装置,输入哈希值计算部244输出的n个结合密文、以及密文验证文生成部245输出的n个密文验证文CCi

密文结合部246使用CPU 911等处理装置,将输入的n个结合密文与输入的n个密文验证文全部结合,而生成一个密钥密文C。

密文结合部246使用CPU 911等处理装置,输出所生成的一个密钥密文C。

另外,在该例子中,密文结合部246输入哈希值计算部244输出的n个结合密文,但结合密文由于是结合第一密文C1i、第二密文C2i、以及第三密文C3i而得到的密文,所以密文结合部246输入n个第一密文C1i、n个第二密文C2i、以及n个第三密文C3i

本实施方式中的对比例子即在密文生成装置200中交换的信息的流程与实施方式2中使用图11说明的流程相同。

接下来,对密文接收装置301~303进行说明。

密文接收装置301~303的功能块的结构也与实施方式1中说明的部分相同,所以使用图6,对与实施方式1不同的部分进行说明。

密文分解部346使用CPU 911等处理装置,输入密文接收部351输出的一个密钥密文C。

密文分解部346使用CPU 911等处理装置,从输入的一个密钥密文C,取得对应于自身所对应的接收者的对应第一密文C1ID、对应第二密文C2ID、对应第三密文C3ID、以及对应密文验证文CCID

密文分解部346使用CPU 911等处理装置,输出所取得的对应第一密文C1ID、对应第二密文C2ID、对应第三密文C3ID、以及对应密文验证文CCID

另外,密文分解部346也可以使用CPU 911等处理装置,取得验证结合密文(C1ID|C2ID|C3ID)并进行输出。

验证哈希值计算部344使用CPU 911等处理装置,输入密文分解部346输出的对应第一密文C1ID、对应第二密文C2ID、以及对应第三密文C3ID

验证哈希值计算部344使用CPU 911等处理装置,结合所输入的对应第一密文C1ID、对应第二密文C2ID、以及对应第三密文C3ID,生成验证结合密文(C1ID|C2ID|C3ID)。

或者,验证哈希值计算部344也可以代替生成验证结合密文(C1ID|C2ID|C3ID),而输入密文分解部346输出的验证结合密文(C1ID|C2ID|C3ID)。

验证哈希值计算部344使用CPU 911等处理装置,输入公开参数存储部310存储的公开密码参数。

验证哈希值计算部344使用CPU 911等处理装置,根据输入的公开密码参数所表示的哈希函数HF、以及生成或输入的验证结合密文(C1ID|C2ID|C3ID),计算出将验证结合密文(C1ID|C2ID|C3ID)通过哈希变换HF进行变换后的m位的位串w’,而设为哈希值H’。

验证哈希值计算部344使用CPU 911等处理装置,输出表示所计算出的m位的位串w’的信息。

密文验证部345使用CPU 911等处理装置,输入公开参数存储部310存储的公开密码参数、密文分解部346输出的对应第二密文C2ID和对应第三密文C3ID、识别自身所对应的接收者的m位的位串ID、以及验证哈希值计算部344输出的m位的位串w’。

密文验证部345使用CPU 911等处理装置,根据输入的公开密码参数所表示的函数V1、以及输入的m位的位串ID,计算出将m位的位串ID通过函数V1进行变换后的乘法群G2的要素V1(ID)。

另外,密文验证部345计算函数V1的过程例如与上述说明的密文生成装置200的第二密文生成部242计算函数V1的过程相同,所以此处省略说明。

密文验证部345使用CPU 911等处理装置,根据输入的公开密码参数所表示的配对e、输入的对应第三密文C3ID所表示的乘法群G1的要素vID、以及计算出的乘法群G2的要素V1(ID),计算出乘法群G1的要素vID与乘法群G2的要素V1(ID)的配对值即乘法群GT的要素e(vID,V1(ID))。

密文验证部345使用CPU 911等处理装置,根据输入的公开密码参数所表示的配对e与乘法群G1的要素g、以及输入的对应第二密文C2ID所表示的乘法群G2的要素uID,计算出乘法群G1的要素g与乘法群G2的要素uID的配对值即乘法群GT的要素e(g,uID)。

密文验证部345使用CPU 911等处理装置,对计算出的乘法群GT的要素e(vID,V1(ID))和计算出的乘法群GT的要素e(g,uID)进行比较,在不一致的情况下,判定为密文接收部351输入的一个密钥密文C中无匹配性。

在计算出的乘法群GT的要素e(vID,V1(ID))与计算出的乘法群GT的要素e(g,uID)一致的情况下,密文验证部345使用CPU 911等处理装置,根据输入的公开密码参数所表示的函数V2以及输入的m位的位串w’,计算出将m位的位串w’通过函数V2进行变换后的乘法群G2的要素V2(w’)。

另外,密文验证部345计算函数V2的过程例如与上述说明的密文生成装置200的密文验证文生成部245计算函数V2的过程相同,所以此处省略说明。

密文验证部345使用CPU 911等处理装置,根据输入的公开密码参数所表示的配对e、输入的对应第三密文C3ID所表示的乘法群G1的要素vID、以及计算出的乘法群G2的要素V2(w’),计算出乘法群G1的要素vID与乘法群G2的要素V2(w’)的配对值即乘法群GT的要素e(vID,V2(w’))。

密文验证部345使用CPU 911等处理装置,输入密文分解部346输出的对应密文验证文CCID

密文验证部345使用CPU 911等处理装置,根据输入的公开密码参数所表示的配对e和乘法群G1的要素g、以及输入的对应密文验证文CCID所表示的乘法群G2的要素yID,计算出乘法群G1的要素g与乘法群G2的要素yID的配对值即乘法群GT的要素e(g,yID)。

密文验证部345使用CPU 911等处理装置,对计算出的乘法群GT的要素e(vID,V2(w’))与计算出的乘法群GT的要素e(g,yID)进行比较。在一致的情况下,密文验证部345使用CPU 911等处理装置,判定为密文接收部351输入的一个密钥密文C中有匹配性,在不一致的情况下,判定为密文接收部351输入的一个密钥密文C中无匹配性。

此处,如果在密文接收部351输入的一个密钥密文C中有匹配性,则uID=V1(ID)^sID、vID=g^sID,所以由配对e的双线性,成为e(vID,V1(ID))=e(g,uID)=e(g,V1(ID))^sID

另外,由于yID=V 2(wID)^sID,所以如果w’=wID,则成为e(vID,V2(w’)=e(g,yID)=e(g,V2(wID))^sID

在密文验证部345判定为密文接收部351输入的一个密钥密文C中有匹配性的情况下,密文解密部341为了还原明文M,进行以下处理。

密文解密部341使用CPU 911等处理装置,输入公开参数存储部310存储的公开密码参数、秘密密钥存储部323存储的秘密密钥dID、以及密文分解部346输出的对应第一密文C1ID、对应第二密文C2ID和对应第三密文C3ID

密文解密部341使用CPU 911等处理装置,根据输入的公开密码参数所表示的配对e、输入的秘密密钥dID所表示的乘法群G2的要素d0ID、以及输入的对应第三密文C3ID所表示的乘法群G1的要素vID,计算出乘法群G1的要素vID与乘法群G2的要素d0ID的配对值即乘法群GT的要素e(vID,d0ID)。

密文解密部341使用CPU 911等处理装置,根据输入的公开密码参数所表示的配对e、输入的秘密密钥dID所表示的乘法群G1的要素d1ID、以及输入的对应第二密文C2ID所表示的乘法群G2的要素uID,计算出乘法群G1的要素d1ID与乘法群G2的要素uID的配对值即乘法群GT的要素e(d1ID,uID)。

密文解密部341使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群GT、计算出的乘法群GT的要素e(vID,d0ID)、以及计算出的乘法群GT的要素e(d1ID,uID),计算出乘法群GT的要素e(vID,d0ID)与乘法群GT的要素e(d1ID,uID)的倒数之积即乘法群GT的要素e(vID,d0ID)/e(d1ID,uID)。

此处,乘法群GT的要素e(d1ID,uID)的倒数表示乘法群GT中的倒数。即,乘法群GT的要素e(dID,2,uID)的倒数是指,与乘法群GT的要素e(d1ID,uID)的积成为乘法群GT的单位元素的乘法群GT的要素。

密文解密部341使用CPU 911等处理装置,根据输入的公开密码参数所表示的密钥生成函数KDF、以及计算出的乘法群GT的要素e(vID,d0ID)/e(d1ID,uID),计算出将乘法群GT的要素e(vID,d0ID)/e(d1ID,uID)通过密钥生成函数KDF进行变换后的密钥位串k’=KDF(e(vID,d0ID)/e(d1ID,uID))。

密文解密部341使用CPU 911等处理装置,根据输入的对应第一密文C1ID、以及计算出的密钥位串k’,生成将对应第一密文C1ID通过密钥位串k’进行解密后的位串。

此处,密文生成装置200的第一密文生成部241计算出的密钥位串ki是ki=KDF(e(g1,g2)^si)。由于g1=g^α,所以由配对e的双线性,e(g1,g2)^si=e(g,g2)^(α·si)。

另一方面,密文解密部341计算出的密钥位串k’是k’=KDF(e(vID,d0ID)/e(d1ID,uID))。由于d0ID=g2^α·V1(ID)^rID、d1ID=g^rID、uID=V1(ID)^sID、vID=g^sID,所以由配对e的双线性,e(vID,d0ID)=e(g,g2)^(α·sID)·e(g,V1(ID))^(rID·sID)、e(d1ID,uID)=e(g,V1(ID))^(rID·sID)。

因此,由于k’=KDF(e(g,g2)^(α·sID)),所以k’=kID

密文解密部341利用与密文生成装置200的第一密文生成部241对明文M进行解密而得到的密钥位串相同的密钥位串k’,对对应第一密文C1ID进行解密,所以可以还原明文M。

接下来,对动作进行说明。

图19是示出本实施方式中的对比例子即密码参数生成装置100设定公开密码参数的参数设定处理的流程的一个例子的流程图。

另外,对于与实施方式1中说明的参数设定处理的工序共同的工序,附加同一标号。

在秘密信息生成工序S11中,秘密信息生成部112使用CPU 911等处理装置,根据群参数存储部111存储的群参数所表示的自然数r,随机地生成1以上且小于自然数r的整数α。

在密码参数生成工序S12中,公开参数生成部113使用CPU 911等处理装置,根据群参数存储部111存储的群参数所表示的群参数GT与自然数r,决定密钥生成函数KDF与哈希函数HF。

公开参数生成部113使用CPU 911等处理装置,根据群参数存储部111存储的群参数所表示的乘法群G2,决定函数V1与函数V2。

公开参数生成部113使用CPU 911等处理装置,根据群参数存储部111存储的群参数所表示的乘法群G1与群参数G2,随机地选择乘法群G1的要素g和乘法群G2的要素g2。

公开参数生成部113使用CPU 911等处理装置,根据群参数存储部111存储的群参数所表示的乘法群G1、在秘密信息生成工序S11中秘密信息生成部112所生成的整数α、以及选择的乘法群G1的要素g,计算出乘法群G1的要素g1=g^α。

参数存储部122使用磁盘装置920等存储装置,将表示群参数存储部111存储的群参数、决定的密钥生成函数KDF、决定的哈希函数HF、决定的函数V1、决定的函数V2、选择的乘法群G1的要素g、计算出的乘法群G1的要素g1、以及选择的乘法群G2的要素g2的信息,作为公开密码参数进行存储。

在第二秘密信息生成工序S16中,秘密信息生成部112使用CPU911等处理装置,根据群参数存储部111存储的群参数所表示的乘法群G2、在秘密信息生成工序S11中生成的整数α、以及在密码参数生成工序S12中公开参数生成部113选择的乘法群G2的要素g2,计算出乘法群G2的要素msk=g2^α。

秘密信息存储部121使用磁盘装置920等存储装置,存储表示秘密信息生成部112计算出的乘法群G2的要素msk的信息。

在密码参数公开工序S13中,公开参数公开部114使用CPU 911等处理装置,将表示群参数存储部111存储的群参数、公开参数生成部113决定的密钥生成函数KDF、哈希函数HF、函数V1和函数V2、公开参数生成部113选择的乘法群G1的要素g与乘法群G2的要素g2、以及公开参数生成部113计算出的乘法群G1的要素g1的信息,作为公开密码参数而进行公开。

关于公开参数公开部114公开的公开密码参数,由密文生成装置200以及密文接收装置301~303取得,并由密码参数存储部210以及公开参数存储部310使用磁盘装置920等存储装置来进行存储。

图20是示出本实施方式中的对比例子即密码参数生成装置100设定秘密密钥的秘密密钥设定处理的流程的一个例子的流程图。

另外,对于与实施方式1中说明的秘密密钥设定处理的工序共同的工序,附加同一标号。

在识别输入工序S21中,识别信息输入部131使用CPU 911等处理装置,输入m位的位串ID而作为接收者识别信息。

在秘密密钥生成工序S22中,秘密密钥生成部132使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的自然数r,随机地生成1以上且小于自然数r的整数rID

秘密密钥生成部132使用CPU 911等处理装置,根据参数存储部122存储的公开密码参数所表示的乘法群G2与函数V1、秘密信息存储部121存储的乘法群G2的要素msk、在识别输入工序S21中输入的m位的位串ID、以及生成的整数rID,计算出乘法群G2的要素d0ID=msk·V1(ID)^rID

秘密密钥生成部132使用CPU 911等处理装置,根据参数存储部122存储的公开密码参数所表示的乘法群G1与乘法群G1的要素g、以及生成的整数rID,计算出乘法群G1的要素d1ID=g^rID

秘密密钥通知部133使用CPU 911等处理装置,将表示在秘密密钥生成工序S22中秘密密钥生成部132计算出的乘法群G2的要素d0ID与乘法群G1的要素d1ID的信息作为秘密密钥dID,秘密地通知给所对应的密文接收装置。

关于秘密密钥通知部133通知的秘密密钥dID,由对应的密文接收装置取得,并由秘密密钥存储部323使用磁盘装置920等存储装置来进行存储。

图21是示出本实施方式中的对比例子即密文生成装置200生成密文的密文生成处理的流程的一个例子的流程图。

另外,对于与实施方式1中说明的密文生成处理的工序共同的工序,附加同一标号。

在接收者识别输入工序S32中,接收者识别输入部232使用CPU911等处理装置,作为分别识别n个接收者的n个接收者识别信息,而输入与n个接收者分别对应的n个m位的位串IDi

在随机数生成工序S34中,随机数生成部222使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的自然数r,随机地生成与n个接收者分别对应的n个1以上且小于自然数r的整数si

在第一密文生成工序S35中,第一密文生成部241使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群GT、配对e、乘法群G1的要素g1、乘法群G2的要素g2和密钥生成函数KDF、以及在随机数生成工序S34中随机数生成部222生成的与n个接收者分别对应的n个整数si,计算出与n个接收者分别对应的n个密钥位串ki=KDF(e(g1,g2)^si)。

第一密文生成部241使用CPU 911等处理装置,根据在对话密钥生成工序S33中对话密钥生成部221生成的对话密钥K(=明文M)、以及计算出的与n个接收者分别对应的n个密钥位串ki,利用与n个接收者分别对应的n个密钥位串ki对一个对话密钥K分别进行加密,而生成与n个接收者分别对应的n个第一密文C1i

在第二密文生成工序S36中,第二密文生成部242使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的函数V1、在接收者识别输入工序S32中接收者识别输入部232输入的与n个接收者分别对应的n个m位的位串IDi、以及在随机数生成工序S34中随机数生成部222生成的与n个接收者分别对应的n个整数si,计算出与n个接收者分别对应的乘法群G2的n个要素ui=V1(IDi)^si

第二密文生成部242使用CPU 911等处理装置,将分别表示计算出的与n个接收者分别对应的乘法群G2的n个要素ui的位串,设为与n个接收者分别对应的n个第二密文C2i

在第三密文生成工序S37中,第三密文生成部243使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G1和乘法群G1的要素g、以及在随机数生成工序S34中随机数生成部222生成的与n个接收者分别对应的n个整数si,计算出与n个接收者分别对应的乘法群G1的n个要素vi=g^si

第三密文生成部243使用CPU 911等处理装置,将分别表示计算出的与n个接收者分别对应的乘法群G1的n个要素vi的位串,设为与n个接收者分别对应的n个第三密文C3i

在哈希值计算工序S38中,哈希值计算部244使用CPU 911等处理装置,根据在第一密文生成工序S35中第一密文生成部241生成的与n个接收者分别对应的n个第一密文C1i、在第二密文生成工序S36中第二密文生成部242生成的与n个接收者分别对应的n个第二密文C2i、以及在第三密文生成工序S37中第三密文生成部243生成的与n个接收者分别对应的n个第三密文C3i,生成将与n个接收者分别对应的n个第一密文C1i、与n个接收者分别对应的n个第二密文C2i、以及与n个接收者分别对应的n个第三密文C3i分别结合而得到的与n个接收者分别对应的n个结合密文(C1i|C2i|C3i)。

哈希值计算部244使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的哈希函数HF、以及生成的与n个接收者分别对应的n个结合密文(C1i|C2i|C3i),计算出将与n个接收者分别对应的n个结合密文(C1i|C2i|C3i)分别通过哈希函数HF进行变换后的与n个接收者分别对应的n个m位的位串wi=HF(C1i|C2i|C3i)。

在密文验证文生成工序S39中,密文验证文生成部245使用CPU911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G2和函数V2、在随机数生成工序S34中随机数生成部222生成的与n个接收者分别对应的n个整数si、以及在哈希值计算工序S38中哈希值计算部244计算出的与n个接收者分别对应的n个m位的位串wi,计算出与n个接收者分别对应的乘法群G2的n个要素yi=V2(wi)^si

密文验证文生成部245使用CPU 911等处理装置,将分别表示计算出的与n个接收者分别对应的乘法群G2的n个要素yi的位串,设为与n个接收者分别对应的n个密文验证文CCi

图22是本实施方式中的对比例子即密文接收装置301~303接收密文的密文接收处理的流程的一个例子的流程图。

另外,对于与实施方式1中说明的密文接收处理的工序共同的工序,附加同一标号。

在密文分解工序S52中,密文分解部346使用CPU 911等处理装置,根据在通知数据接收工序中密文接收部351输出的一个密钥密文C,取得对应于密文接收装置所对应的接收者的一个对应第一密文C1ID、一个对应第二密文C2ID、一个对应第三密文C3ID、以及一个对应密文验证文CCID

在验证哈希值计算工序S53中,验证哈希值计算部344使用CPU

911等处理装置,根据公开参数存储部310存储的公开密码参数所表示的哈希函数HF、以及将在密文分解工序S52中密文分解部346取得的一个对应第一密文C1ID、一个对应第二密文C2ID和一个对应第三密文C3ID结合而得到的一个对应结合密文(C1ID|C2ID|C3ID),计算出将一个对应结合密文(C1ID|C2ID|C3ID)通过哈希函数HF进行变换后的一个m位的位串w’,而作为验证哈希值H’。

在密文验证工序S54中,密文验证部345使用CPU 911等处理装置,根据公开参数存储部310存储的公开密码参数所表示的配对e和函数V1、在密文分解工序S52中密文分解部346取得的一个对应第三密文C3ID所表示的乘法群G1的一个要素vID、以及识别自身所对应的接收者的m位的位串ID,计算出乘法群GT的一个要素e(vID,V1(ID))。

密文验证部345使用CPU 911等处理装置,根据公开参数存储部310存储的公开密码参数所表示的配对e和乘法群G1的要素g、以及在密文分解工序S52中密文分解部346取得的一个对应第二密文C2ID所表示的乘法群G2的一个要素uID,计算出乘法群GT的一个要素e(g,uID)。

密文验证部345使用CPU 911等处理装置,根据公开参数存储部310存储的公开密码参数所表示的配对e和函数V2、在密文分解工序S52中密文分解部346取得的一个对应第三密文C3ID所表示的乘法群G1的一个要素vID、以及在验证哈希值计算工序S53中验证哈希值计算部344计算出的m位的位串w’,计算出乘法群GT的一个要素e(vID,V2(w’))。

密文验证部345使用CPU 911等处理装置,根据公开参数存储部310存储的公开密码参数所表示的配对e和乘法群G1的要素g、以及在密文分解工序S52中密文分解部346取得的一个对应密文验证文CCID所表示的乘法群G2的一个要素yID,计算出乘法群GT的一个要素e(g,yID)。

密文验证部345使用CPU 911等处理装置,根据计算出的乘法群GT的一个要素e(vID,V1(ID))、计算出的乘法群GT的一个要素e(g,uID)、计算出的乘法群GT的一个要素e(vID,V2(w’))、以及计算出的乘法群GT的一个要素e(g,yID),判定是否为e(vID,V1(ID))=e(g,uID)、且e(vID,V2(w’))=e(g,yID)。

在两个等式成立的情况下,密文验证部345判定为密文接收部351接收到的一个密钥密文C中有匹配性,并进入密文解密工序S55。

在某一个或双方的等式不成立的情况下,密文验证部345判定为在密文接收部351接收到的一个密钥密文C中无匹配性,结束密文接收处理。

在密文解密工序S55中,密文解密部341使用CPU 911等处理装置,根据公开参数存储部310存储的乘法群GT、配对e和密钥生成函数KDF、秘密密钥存储部323存储的秘密密钥dID所表示的乘法群G2的要素d0ID和乘法群G1的要素d1ID、以及在密文分解工序S52中密文分解部346取得的一个对应第二密文C2ID所表示的乘法群G2的一个要素uID和一个对应第三密文C3ID所表示的乘法群G1的一个要素vID,计算出一个密钥位串k’=KDF(e(vID,d0ID)/e(d1ID,uID))。

密文解密部341使用CPU 911等处理装置,根据在密文分解工序S52中密文分解部346取得的一个对应第一密文C1ID、以及计算出的一个密钥位串k’,利用密钥位串k’对对应第一密文C1ID进行解密,生成规定长度的位串,并设为对话密钥K’(=明文M)。

如上所述,密文解密部341生成的对话密钥K’成为与密文生成装置200的对话密钥生成部221生成的对话密钥K相同的位串。

接下来,对本实施方式中的对比例子即基于ID的密码通信系统使用的基于ID的密码方式的安全性进行讨论。

本实施方式中的对比例子即多个接收者的基于ID的密码方式是将单独接收者的基于ID的密码方式通过连接方式进行了扩展的方式,所以SMMR安全性是Advsmmrn,∏’,Γ(t,qd,qx)≤n·Advmu1,∏,Γ(t’,1,qd,qx)。

此处,Advmu1,∏,Γ(t’,1,qd,qx)表示成为本实施方式中的对比例子即多个接收者的基于ID的密码方式的基础的单独接收者的基于ID的密码方式的以往的意义中的安全性。

可以证明成为本实施方式中的对比例子即多个接收者的基于ID的密码方式的基础的单独接收者的基于ID的密码方式的以往的意义中的安全性Advmu1,II,Γ(t’,1,qd,qx)归结于D-BDH问题(DecisionalBilinear Diffie-Hellman Problem)。

此处,D-BDH问题是如下定义的数学上的问题。

在D-BDH问题中,解答者B被提供乘法群G的四个要素g、g1、g2、g3、以及乘法群GT的一个要素Z。另外,作为秘密的信息,解答者B有1以上且小于乘法群G的阶数的三个整数a、b、c。

乘法群G的要素g是随机地选择的乘法群G的要素。

乘法群G的要素g1是乘法群G的要素g的a乘方即乘法群G的要素g^a。

乘法群G的要素g2是乘法群G的要素g的b乘方即乘法群G的要素g^b。

乘法群G的要素g3是乘法群G的要素g的c乘方即乘法群G的要素g^c。

解答者B回答对乘法群G的要素g彼此的配对值即乘法群GT的要素e(g,g)的、整数a、整数b和整数c的积(a·b·c)乘方即乘法群GT的要素e(g,g)^(a·b·c)是否与所提供的乘法群GT的要素Z相等进行判别的问题。

与q-D-ABDHE问题同样地,在定义Advd-bhdk,G,GT(t),且Advd-bhdk,G,GT(t)≤ε时,D-BDH假设成立

以上,可以证明本实施方式中的对比例子即基于ID的密码方式的SMMR安全性归结于D-BDH问题。

接下来,对本实施方式中的基于ID的密码通信系统800进行说明。

本实施方式中的基于ID的密码通信系统800的整体结构以及密码参数生成装置100的块结构由于与在对比例子中说明的部分相同,所以此处省略说明。

首先,对密文生成装置200进行说明。

密文生成装置200的块结构由于与对比例子中说明的部分相同,所以使用图4,对与对比例子不同的部分进行说明。

哈希值计算部244使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数、第一密文生成部241输出的n个第一密文C1i、第二密文生成部242输出的n个第二密文C2i、以及第三密文生成部243输出的n个第三密文C3i

哈希值计算部244使用CPU 911等处理装置,将所输入的n个第一密文C1i、n个第二密文C2i、和n个第三密文C3i全部结合,而生成一个结合密文。

哈希值计算部244使用CPU 911等处理装置,根据输入的公开密码参数所表示的哈希函数HF、以及生成的一个结合密文,计算出将一个结合密文通过哈希函数HF进行变换后的一个m位的位串w0,设为一个哈希值H0

哈希值计算部244使用CPU 911等处理装置,输出表示所计算出的一个m位的位串w0的信息、以及生成的一个结合密文。

密文验证文生成部245使用CPU 911等处理装置,输入密码参数存储部210存储的公开密码参数、表示随机数生成部222输出的n个整数si的信息、以及表示哈希值计算部244输出的一个m位的位串w0的信息。

密文验证文生成部245使用CPU 911等处理装置,根据输入的公开密码参数所表示的函数V2、以及输入的信息所表示的一个m位的位串w0,计算出将m位的位串w0通过函数V2进行变换后的乘法群G2的一个要素V2(w0)。

密文验证文生成部245使用CPU 911等处理装置,根据输入的公开密码参数所表示的乘法群G2、输入的信息所表示的n个整数si、以及计算出的乘法群G2的要素V2(w0),计算出乘法群G2的要素V2(w0)的si乘方即乘法群G2的n个要素yi=V2(w0)^si(i是1以上且n以下的整数)。

密文验证文生成部245使用CPU 911等处理装置,输出分别表示所计算出的乘法群G2的n个要素yi的n个位串,而作为n个密文验证文CCi(i是1以上且n以下的整数)。

密文结合部246使用CPU 911等处理装置,输入哈希值计算部244输出的一个结合密文、以及密文验证文生成部245输出的n个密文验证文CCi

密文结合部246使用CPU 911等处理装置,将输入的一个结合密文、以及输入的n个密文验证文全部结合,而生成一个密钥密文C。

密文结合部246使用CPU 911等处理装置,输出所生成的一个密钥密文C。

本实施方式中的密文生成装置200中交换的信息的流程与实施方式2中使用图16说明的流程相同,所以此处省略说明。

接下来,对密文接收装置301~303进行说明。

密文接收装置301~303的块结构也与对比例子中说明的部分相同,所以使用图6,对与对比例子不同的部分进行说明。

密文分解部346使用CPU 911等处理装置,输入密文接收部351输出的一个密钥密文C。

密文分解部346使用CPU 911等处理装置,从输入的一个密钥密文C,取得对应于自身所对应的接收者的对应第一密文C1ID、对应第二密文C2ID、对应第三密文C3ID、以及对应密文验证文CCID

密文分解部346使用CPU 911等处理装置,输出所取得的对应第一密文C1ID、对应第二密文C2ID、对应第三密文C3ID、以及对应密文验证文CCID

密文分解部346还使用CPU 911等处理装置,从一个密钥密文C,取得验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)并进行输出。

验证哈希值计算部344使用CPU 911等处理装置,输入密文分解部346输出的验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)。或者,验证哈希值计算部344也可以使用CPU 911等处理装置来结合密文,并生成验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)。

验证哈希值计算部344使用CPU 911等处理装置,输入公开参数存储部310存储的公开密码参数。

验证哈希值计算部344使用CPU 911等处理装置,根据输入的公开密码参数所表示的哈希函数HF、以及输入或生成的验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n),计算出将验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)通过哈希变换HF进行变换后的m位的位串w’,而设为哈希值H’。

验证哈希值计算部344使用CPU 911等处理装置,输出表示所计算出的m位的位串w’的信息。

接下来,对动作进行说明。

图23是示出本实施方式中的密文生成装置200生成密文的密文生成处理的流程的一个例子的流程图。

另外,对于与对比例子中说明的密文生成处理的工序共同的工序,附加同一标号。

在哈希值计算工序S38中,哈希值计算部244使用CPU 911等处理装置,根据在第一密文生成工序S35中第一密文生成部241生成的与n个接收者分别对应的n个第一密文C1i、在第二密文生成工序S36中第二密文生成部242生成的与n个接收者分别对应的n个第二密文C2i、以及在第三密文生成工序S37中第三密文生成部243生成的与n个接收者分别对应的n个第三密文C3i,生成将与n个接收者分别对应的n个第一密文C1i、与n个接收者分别对应的n个第二密文C2i、以及与n个接收者分别对应的n个第三密文C3i全部结合而得到的一个结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)。

哈希值计算部244使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的哈希函数HF、以及生成的一个结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n),计算出将一个结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)通过哈希函数HF进行变换后的一个m位的位串w0=HF(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)。

在密文验证文生成工序S39中,密文验证文生成部245使用CPU911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G2和函数V2、在随机数生成工序S34中随机数生成部222生成的与n个接收者分别对应的n个自然数si、以及在哈希值计算工序S38中哈希值计算部244计算出的一个m位的位串w0,计算出与n个接收者分别对应的乘法群GT的n个要素yi=V2(w0)^si

密文验证文生成部245使用CPU 911等处理装置,将分别表示计算出的与n个接收者分别对应的乘法群G2的n个要素yi的位串,设为与n个接收者分别对应的n个密文验证文CCi

图24是示出本实施方式中的密文接收装置301~303接收密文的密文接收处理的流程的一个例子的流程图。

另外,针对与在对比例子中说明的密文接收处理的工序共同的工序,附加同一标号。

在验证哈希值计算工序S53中,验证哈希值计算部344使用CPU

911等处理装置,根据公开参数存储部310存储的公开密码参数所表示的哈希函数HF、以及验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n),计算出将验证结合密文(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)通过哈希函数HF进行变换后的m位的位串w’=HF(C11|C21|C31|C12|C22|C32|…|C1n|C2n|C3n)。

上述说明以外的工序由于与在对比例子中说明的工序相同,所以此处省略说明。

如上所述,本实施方式中的基于ID的密码通信系统800与对比例子中说明的基于ID的密码通信系统800相比,一个密钥密文C的长度没变,但密文生成处理中所需的计算量减少,所以可以削减密码通信的成本。

特别是在哈希值计算工序S38中,在对比例子中说明的方式的情况下,需要n次哈希值计算,但在该方式的情况下,只要进行一次哈希值计算即可。

另外,在密文验证文生成工序S39中,需要进行函数V2的计算。在按照对比例子中说明的过程计算函数V2时,为了计算一次函数V2,需要m1次的乘法群G2中的幂乘以及m1次的乘法群G2中的乘算。在对比例子中说明的方式的情况下,需要计算n次函数V2,相对于此,在本方式的情况下,只要计算一次函数V2即可,在接收者的人数多的情况下,可以大幅削减计算量。

接下来,对本实施方式中的基于ID的密码通信系统800使用的基于ID的密码方式的SMMR安全性进行说明。

另外,在以下说明中,设为在密文主文CBi中,包含有识别与其对应的接收者的接收者识别信息IDi

本实施方式中的基于ID的密码通信系统800使用的基于ID的密码方式的SMMR安全性可以通过组合非专利文献18记载的证明与非专利文献6记载的证明来进行证明。

在加密oracle的模拟中,解答者B随机地生成1以上m2以下的整数j,判定ID*j是否为可以模拟的ID。

在ID*j是可以模拟的ID的情况下,解答者B针对1≤i<j的i,选择M*0而生成密文主文CBi,针对j<i≤n的i,选择M*1而生成密文主文CBi,针对i=j的i,通过使用了所提供的D-BDH问题的参数的模拟,生成密文主文CBi

解答者B结合所生成的n个密文主文CBi(i是1以上n以下的整数),计算出哈希值w*0

解答者B针对i≠j的i,使用密文主文的生成中所使用的随机数si,生成密文验证文CCi,针对i=j的i,通过使用了所提供的D-BDH问题的参数的模拟,生成密文验证文CCi

由此,在ID*j是可以模拟的ID的情况下,解答者B可以正确地解答D-BDH问题。另外,在ID*j不是可以模拟的ID的情况下,解答者B模拟的加密oracle的输出分布是与b独立的。

因此,可以证明本实施方式中的基于ID的密码方式的SMMR安全性。

根据本实施方式中的基于ID的密码通信系统800,可以在数学上证明MR-IND-ID-CCA安全性,所以起到可以使用基于ID的密码通信系统800来实现安全的密码通信这样的效果。

本实施方式中的密文生成装置200将以下点作为特征。

密码参数存储部210的特征是,使用磁盘装置920等存储装置,作为公开密码参数而存储表示自然数r、阶数是上述自然数r的乘法群G1、阶数是上述自然数r的乘法群G2、阶数是上述自然数r的乘法群GT、根据乘法群G1的要素与乘法群G2的要素计算出乘法群GT的要素的配对e、根据乘法群GT的要素计算出规定长度的位串的密钥生成函数KDF、根据规定长度的位串计算出乘法群GT的要素的两个函数V1和V2、根据任意长度的位串计算出规定长度的位串的哈希函数HF、乘法群G1的要素g、乘法群G1的要素g1、以及乘法群G2的要素g2的信息。

接收者识别输入部232的特征是,使用CPU 911等处理装置,输入n个规定长度的位串IDi作为n个接收者识别信息。

随机数生成部222的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的自然数r,随机地生成与n个接收者对应的n个1以上且小于自然数r的整数si(i是1以上n以下的整数)。

第一密文生成部241的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G1的要素g1、乘法群G2的要素g2、配对e和密钥生成函数KDF、以及随机数生成部222生成的n个整数si,计算出与n个接收者对应的n个密钥位串ki=KDF(e(g1,g2)^si)(i是1以上n以下的整数),并使用CPU 911等处理装置,利用所计算出的n个密钥位串ki,对明文输入部231输入的明文M分别进行加密,而设为与n个接收者对应的n个第一密文C1i(i是1以上n以下的整数)。

第二密文生成部242的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的函数V1、随机数生成部222生成的n个整数si、以及接收者识别输入部232输入的n个规定长度的位串IDi,计算出与n个接收者对应的乘法群G2的n个要素ui=V1(IDi)^si(i是1以上n以下的整数),并将分别表示所计算出的乘法群G2的n个要素ui的位串,设为与n个接收者对应的n个第二密文C2i(i是1以上n以下的整数)。

第三密文生成部243的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G1的要素g、以及随机数生成部222生成的n个整数si,计算出与n个接收者对应的乘法群G1的n个要素vi=g^si(i是1以上n以下的整数),并将分别表示所计算出的乘法群G1的要素vi的位串,设为与n个接收者对应的n个第三密文C3i(i是1以上n以下的整数)。

哈希值计算部244的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的哈希函数HF,计算出一个规定长度的位串w0而设为哈希值H。

密文验证文生成部245的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的函数V2、随机数生成部222生成的n个整数si、以及哈希值计算部244计算出的一个规定长度的位串w0,计算出与n个接收者对应的乘法群G2的n个要素yi=V2(w0)^si(i是1以上n以下的整数),并将分别表示计算出的乘法群G2的n个要素yi的位串,设为与n个接收者分别对应的n个密文验证文CCi(i是1以上n以下的整数)。

根据本实施方式中的密文生成装置200,起到如下效果:密码处理中所需的资源少也可以,可以实现利用了能够在数学上证明SMMR-IND-ID-CCA2安全性的基于ID的密码方式的密码通信。

本实施方式中的密文生成装置200还将以下点作为特征。

密码参数存储部210的特征是,使用磁盘装置920等存储装置,作为表示两个函数V1以及V2的信息而存储表示乘法群G2的m1个要素hξ(ξ是1以上m1以下的整数)、以及乘法群G2的两个要素h1’和h2’的信息。

第二密文生成部242的特征是,使用CPU 911等处理装置,将接收者识别输入部232输入的n个规定长度的位串IDi分别分割为m1个规定长度的位串v(ξ是1以上m1以下的整数),将分割的m1个规定长度的位串v作为m1个整数而进行处理,并使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G2的m1个要素hξ(ξ是1以上m1以下的整数)和乘法群G2的要素h1’、以及分割的m1个整数v,计算出函数V1的值即乘法群G2的要素V1(IDi)=h1’·∏(hξ^v)(ξ是1以上m1以下的整数)。

密文验证文生成部245的特征是,使用CPU 911等处理装置,将哈希值计算部244计算出的规定长度的位串w分割为m1个规定长度的位串vξ(ξ是1以上m1以下的整数),将分割的m1个规定长度的位串vξ作为m1个整数而进行处理,并使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G2的m1个要素hξ(ξ是1以上m1以下的整数)和乘法群G2的要素h2’、以及分割的m1个整数vξ,计算出函数V2的值即乘法群G2的要素V2(w)=h2’·∏(hξ^vξ)(ξ是1以上m1以下的整数)。

根据本实施方式中的密文生成装置200,起到如下效果:密码处理中所需的资源少也可以,可以实现利用了能够在数学上证明SMMR-IND-ID-CCA2安全性的基于ID的密码方式的密码通信。

本实施方式中的基于ID的密码通信系统800将以下点作为特征。

密码参数生成装置100的特征是,还具有群参数存储部111。

群参数存储部111的特征是,使用磁盘装置920等存储装置,作为群参数而存储表示自然数r、阶数是上述自然数r的乘法群G1、阶数是上述自然数r的乘法群G2、阶数是上述自然数r的乘法群GT、以及根据乘法群G1的要素与乘法群G2的要素计算出乘法群GT的要素的配对e的信息。

秘密信息生成部112的特征是,使用CPU 911等处理装置,根据群参数存储部111存储的群参数所表示的自然数r,随机地生成1以上且小于自然数r的整数α。

公开参数生成部113的特征是,使用CPU 911等处理装置,决定根据乘法群GT的要素计算出规定长度的位串的密钥生成函数KDF、根据规定长度的位串计算出乘法群GT的要素的两个函数V1和V2、以及根据任意长度的位串计算出规定长度的位串的哈希函数HF,并使用CPU 911等处理装置,根据群参数存储部111存储的群参数所表示的乘法群G1和乘法群G2,随机地选择乘法群G1的要素g和乘法群G2的要素g2,根据秘密信息生成部112生成的整数α和所选择的乘法群G1的要素g,计算出乘法群G1的要素g1=g^α,使用CPU 911等处理装置,将表示群参数存储部111存储的群参数、所决定的密钥生成函数KDF、两个函数V1及V2和哈希函数HF、所选择的乘法群G1的要素g和乘法群G2的要素g2、以及计算出的乘法群G1的要素g1的信息,设为公开密码参数。

秘密信息生成部112的特征是,还使用CPU 911等处理装置,根据生成的整数α和公开参数生成部113选择的乘法群G2的要素g2,计算出乘法群G2的要素msk=g2^α。

秘密信息存储部121的特征是,使用磁盘装置920等存储装置,将表示秘密信息生成部112计算出的乘法群G2的要素msk的信息存储为秘密信息。

识别信息输入部131的特征是,使用CPU 911等处理装置,输入规定长度的位串ID而作为接收者识别信息。

秘密密钥生成部132的特征是,使用CPU 911等处理装置,根据公开参数生成部113生成的公开密码参数所表示的自然数r,随机地生成1以上且小于自然数r的整数rID,并使用CPU 911等处理装置,根据公开参数生成部113生成的公开密码参数所表示的乘法群G1的要素g和函数V1、秘密信息存储部121存储的秘密信息所表示的乘法群G2的要素msk、以及生成的整数rID,计算出乘法群G2的要素d0ID=msk·V1(ID)^rID和乘法群G1的要素d1ID=g^rID,将表示所计算出的乘法群G2的要素d0ID和乘法群G1的要素d1ID的信息设为秘密密钥dID

接收者识别输入部232的特征是,使用CPU 911等处理装置,输入n个规定长度的位串IDi而作为n个接收者识别信息。

随机数生成部222的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的自然数r,随机地生成与n个接收者对应的n个1以上且小于自然数r的整数si(i是1以上n以下的整数)。

第一密文生成部241的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G1的要素g1、乘法群G2的要素g2、配对e和密钥生成函数KDF、以及随机数生成部222生成的n个整数si,计算出与n个接收者对应的n个密钥位串ki=KDF(e(g1,g2)^si)(i是1以上n以下的整数),并使用CPU 911等处理装置,利用所计算出的n个密钥位串ki,对明文输入部231输入的明文M分别进行加密,而设为与n个接收者对应的n个第一密文C1i(i是1以上n以下的整数)。

第二密文生成部242的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的函数V1、接收者识别输入部232输入的n个规定长度的位串IDi、以及随机数生成部222生成的n个整数si(i是1以上n以下的整数),计算出与n个接收者对应的乘法群G2的n个要素ui=V1(IDi)^si(i是1以上n以下的整数),并将分别表示所计算出的乘法群G2的n个要素ui的位串,设为与n个接收者对应的n个第二密文C2i(i是1以上n以下的整数)。

第三密文生成部243的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的乘法群G1的要素g、以及随机数生成部222生成的n个整数si,计算出与n个接收者对应的乘法群G1的n个要素vi=g^si(i是1以上n以下的整数),并将分别表示所计算出的乘法群G1的n个要素vi的位串,设为与n个接收者对应的n个第三密文C3i(i是1以上n以下的整数)。

哈希值计算部244的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的哈希函数HF,计算出一个规定长度的位串w0,而设为哈希值H。

密文验证文生成部245的特征是,使用CPU 911等处理装置,根据密码参数存储部210存储的公开密码参数所表示的函数V2、随机数生成部222生成的n个整数si、以及哈希值计算部244计算出的一个规定长度的位串w0,计算出与n个接收者对应的乘法群G2的n个要素yi=V2(w0)^si(i是1以上n以下的整数),并将分别表示计算出的乘法群G2的n个要素yi的位串,设为与n个接收者对应的n个密文验证文CCi

验证哈希值计算部344的特征是,使用CPU 911等处理装置,根据公开参数存储部310存储的公开密码参数所表示的哈希函数HF,计算出规定长度的位串w’,而设为验证哈希值H’。

密文验证部345的特征是,使用CPU 911等处理装置,根据公开参数存储部310存储的公开密码参数所表示的配对e和函数V2、密文分解部346取得的对应第三密文C3ID所表示的乘法群G1的要素vID以及验证哈希值计算部344计算出的规定长度的位串w’,计算出乘法群GT的要素e(vID,V2(w’)),并使用CPU 911等处理装置,根据公开参数存储部310存储的公开密码参数所表示的乘法群G1的要素g和配对e、以及密文分解部346取得的对应密文验证文CCID所表示的乘法群G2的要素yID,计算出乘法群GT的要素e(g,yID),并使用CPU 911等处理装置,对计算出的乘法群GT的要素e(vID,V2(w’))和计算出的乘法群GT的要素e(g,yID)进行比较,在乘法群GT的要素e(vID,V2(w’))与乘法群GT的要素e(g,yID)一致的情况下,判定为密文接收部351接收到的一个密文C(密钥密文C)中有匹配性。

密文解密部341的特征是,在密文验证部345判定为密文接收部351接收到的一个密文C中有匹配性的情况下,使用CPU 911等处理装置,根据公开参数存储部310存储的公开密码参数所表示的配对e和密钥生成函数KDF、秘密密钥存储部323存储的秘密密钥dID所表示的乘法群G2的要素d0ID和乘法群G1的要素d1ID、以及密文分解部346取得的一个对应第二密文C2ID所表示的乘法群G2的要素uID和对应第三密文C3ID所表示的乘法群G1的要素vID,计算出密钥位串k’=KDF(e(vID,d0ID)/e(d1ID,uID)),并使用CPU 911等处理装置,利用所计算出的密钥位串k’,对密文分解部346取得的对应第一密文C1ID进行解密,还原明文M。

根据本实施方式中的基于ID的密码通信系统800,起到如下效果:密码处理中所需的资源少也可以,可以实现利用了能够在数学上证明SMMR-IND-ID-CCA2安全性的基于ID的密码方式的密码通信。

实施方式4

使用图25~图28,对实施方式4进行说明。

图25是示出本实施方式中的基于ID的密码通信系统800的整体结构的一个例子的系统结构图。

基于ID的密码通信系统800具有密码参数生成装置100、密文生成装置200、密文接收装置301~密文接收装置303、以及群参数生成装置400。

其中,密码参数生成装置100、密文生成装置200以及密文接收装置301~密文接收装置303由于与实施方式2中说明的部分相同,所以此处省略说明。

群参数生成装置400生成群参数。关于群参数生成装置400生成的群参数,由密码参数生成装置100输入,并由群参数存储部11进行存储。

另外,群参数生成装置400也可以在密码参数生成装置100的内部。

图26是示出本实施方式中的群参数生成装置400的功能块的结构的一个例子的块结构图。

群参数生成装置400具有参数生成条件存储部410、群阶数候补生成部420、群阶数安全性判定部430以及参数生成部440。

参数生成条件存储部410使用磁盘装置920等存储装置,存储参数生成条件信息。

参数生成条件信息是指,表示有关群参数生成装置400生成的群参数的条件的信息。关于有关群参数生成装置400生成的群参数的条件,从使用了该群参数的基于ID的密码通信系统800的安全性等观点出发,是预先决定的。

参数生成条件存储部410存储表示整数k、整数D、整数B1和整数B2的信息而作为参数生成条件信息。

此处,整数k表示嵌入次数(embeding degree)。整数D表示判别式。整数B1表示第一阈值。整数B2表示第二阈值。

群阶数候补生成部420生成在群参数之中成为自然数r(乘法群G1、乘法群G2以及乘法群GT的阶数)的候补的自然数。

群阶数候补生成部420使用CPU 911等处理装置,输入参数生成条件存储部410存储的参数生成条件信息。

群阶数候补生成部420使用CPU 911等处理装置,根据输入的参数生成条件信息所表示的整数K与整数D,生成满足以下三个条件的自然数r。

第一条件是自然数r为充分大的素数这样的条件。此处,“充分大”意味着在将自然数r设为阶数的乘法群中难以求解DH问题。

第二条件是自然数r为整数k的倍数+1这样的条件。

第三条件是在将自然数r设为除数(modulo)时整数D为平方剩余这样的条件。

群阶数候补生成部420生成满足以上三个条件的自然数r,使用CPU 911等处理装置,输出表示所生成的自然数r的信息。

群阶数安全性判定部430从基于ID的密码通信系统800的安全性的观点出发,判定群阶数候补生成部420生成的自然数r是否合适。

在本实施方式中,在(r-1)以及(r+1)无法进行素因数分解时,认为安全性最高。

这是因为,关于q-D-tABDHE问题,存在利用(r-1)或者(r+1)的因数来求出α的算法,所以在采用归结于q-D-ABDHE问题的密码方式的情况下,优选避免这样的r。

但是,在现实中,不存在满足这样的条件的r。因为r是大的素数,所以是奇数,(r-1)以及(r+1)分别被2除尽。

另外,从上述r的选择条件,(r-1)被k除尽。

而且,(r-1)以及(r+1)中的任意一个被4除尽。因为在假设(r+1)无法被4除尽时,由于(r+1)被2除尽,所以将(r+1)除以4而得到的余数是2,因此(r-1)被4除尽。

因此,以(r-1)以及(r+1)不具有上述以外的素因数为目标,选择自然数r。

群阶数安全性判定部420具有剩余计算部431、判定值计算部432以及素因数判定部433。

剩余计算部431使用CPU 911等处理装置,输入表示群阶数候补生成部420输出的自然数r的信息。

剩余计算部431使用CPU 911等处理装置,计算出将输入的信息所表示的自然数r除以4而得到的余数。

剩余计算部431使用CPU 911等处理装置,输出表示所计算出的余数的信息。

自然数r应满足的条件根据将自然数r除以4而得到的余数是1还是3而不同。

判定值计算部432使用CPU 911等处理装置,输入参数生成条件存储部410存储的参数生成条件信息、表示群阶数候补生成部420输出的自然数r的信息、以及表示剩余计算部431输出的余数的信息。

判定值计算部432使用CPU 911等处理装置,根据输入的信息所表示的余数,判定将自然数r除以4而得到的余数是1还是3。

在将自然数r除以4而得到的余数是1的情况下,(r-1)被4除尽。因此,以将(r-1)除以整数k与4的最小公倍数而得到的商不具有比整数B1小的素因数、并且将(r+1)除以2而得到的商不具有比整数B2小的素因数的情况作为条件,而选择自然数r。

因此,在判定为将自然数r除以4而得到的余数是1的情况下,判定值计算部432使用CPU 911等处理装置,根据输入的参数生成条件信息所表示的整数k、以及输入的信息所表示的自然数r,计算出将自然数r与1之差(r-1)除以整数k与4的最小公倍数LCM(k,4)而得到的商(r-1)/CM(k,4),而设为整数r1。

另外,判定值计算部432使用CPU 911等处理装置,根据输入的信息所表示的自然数r,计算出将自然数r与1之和(r+1)除以2而得到的商(r+1)/2,而设为整数r2。

在将自然数r除以4而得到的余数是3的情况下,(r+1)被4除尽。因此,以将(r-1)除以整数k与2的最小公倍数而得到的商不具有比整数B1小的素因数、且将(r+1)除以4而得到的商不具有比整数B2小的素因数的情况作为条件,选择自然数r。

因此,在判定为将自然数r除以4而得到的余数是3的情况下,判定值计算部432使用CPU 911等处理装置,根据输入的参数生成条件信息所表示的整数k以及输入的信息所表示的自然数r,计算出将自然数r与1之差(r-1)除以整数k与2的最小公倍数LCM(k,2)而得到的商(r-1)/LCM(k,2),设为整数r1。

另外,判定值计算部432使用CPU 911等处理装置,根据输入的信息所表示的自然数r,计算出将自然数r与1之和(r+1)除以4而得到的商(r+1)/4,设为整数r2。

判定值计算部432使用CPU 911等处理装置,输出表示所计算出的整数r1与整数r2的信息。

素因数判定部433使用CPU 911等处理装置,输入参数生成条件存储部410存储的参数生成条件信息、以及表示判定值计算部432输出的整数r1与整数r2的信息。

素因数判定部433使用CPU 911等处理装置,根据输入的参数生成条件信息所表示的整数B1、以及输入的信息所表示的整数r1,判定整数r1是否具有比整数B1小的素因数。

在判定为整数r1具有比整数B1小的素因数的情况下,素因数判定部433使用CPU 911等处理装置,判定为自然数r不合适。

素因数判定部433使用CPU 911等处理装置,根据输入的参数生成条件信息所表示的整数B2、以及输入的信息所表示的整数r2,判定整数r2是否具有比整数B2小的素因数。

在判定为整数r2具有比整数B2小的素因数的情况下,素因数判定部433使用CPU 911等处理装置,判定为自然数r不合适。

仅在整数r1不具有比整数B1小的素因数、且整数r2不具有比整数B2小的素因数的情况下,素因数判定部433使用CPU 911等处理装置,判定为自然数r合适。

在群阶数安全性判定部430判定为自然数r合适的情况下,参数生成部440根据自然数r,生成群参数。

参数生成部440使用CPU 911等处理装置,输入参数生成条件存储部410存储的参数生成条件信息、以及表示群阶数候补生成部420输出的自然数r的信息。

参数生成部440使用CPU 911等处理装置,根据输入的参数生成条件信息所表示的整数k与整数D、以及输入的信息所表示的自然数r,决定乘法群G1以及乘法群G2。

参数生成部440使用CPU 911等处理装置,根据决定的乘法群G1以及乘法群G2,决定乘法群G1的要素与乘法群G2的要素的配对e、以及以配对e的值为要素的乘法群GT。

参数生成部440使用CPU 911等处理装置,输出表示所决定的群参数G1、群参数G2、群参数GT和配对e的信息,而作为群参数。

此处,乘法群G1以及乘法群G2例如是椭圆曲线E:Y2=X3+aX+b(X、Y、a、b是阶数p(p是素数)的有限域GF(p)的要素)上的点所成的群。

配对e例如是Weil配对(Weil Pairing)、Tate配对(TatePairing)。

乘法群GT例如是阶数qk(q是素数。k是2以上的整数)的有限域G F(qk)的乘法群的部分群。

作为求解将自然数r设为椭圆曲线E上的点所成的群的阶数、将整数D设为判别式、将整数k设为有限域G F(qk)的嵌入次数的、椭圆曲线E的参数的算法,例如有Cocks-Pinch(コツクスピンチ)方法。

参数生成部440使用CPU 911等处理装置,例如通过Cocks-Pinch方法,计算出有限域GF(p)的阶数p、以及p+1-t或p+1+t成为素数的整数t。

参数生成部440使用CPU 911等处理装置,计算出针对判别式D的希尔伯特类多项式HD(X)。

参数生成部440使用CPU 911等处理装置,计算出所计算出的希尔伯特类多项式HD(X)的除数p还原多项式的根即有限域GF(p)的要素j。参数生成部440例如通过Berlekamp算法,计算出有限域GF(p)的要素j。

参数生成部440使用CPU 911等处理装置,根据求出的有限域GF(p)的要素j,计算出满足j=1728a3/(a3+27b2)的有限域GF(p)的要素a以及b,设为椭圆曲线E:Y2=X3+aX+b的系数。

参数生成部440例如如上所述,决定乘法群G1、乘法群G2、乘法群GT以及配对e。

关于参数生成部440输出的群参数,由密码参数生成装置100的群参数存储部111使用CPU 911等处理装置进行输入,并使用磁盘装置920等存储装置进行存储。

图27是示出本实施方式中的群参数生成装置400生成群参数的群参数生成处理的流程的一个例子的流程图。

在自然数生成工序S61中,群阶数候补生成部420使用CPU 911等处理装置,生成自然数r。

在素数判定工序S62中,群阶数候补生成部420使用CPU 911等处理装置,根据在自然数生成工序S61中生成的自然数r,判定自然数r是否为素数。

在判定为自然数r是素数的情况下,进入倍数判定工序S63。

在判定为自然数r不是素数的情况下,返回自然数生成工序S61,生成不同的自然数r。

在倍数判定工序S63中,群阶数候补生成部420使用CPU 911等处理装置,根据参数生成条件存储部410存储的参数生成条件信息所表示的整数k、以及在自然数生成工序S61中生成的自然数r,判定自然数r是否为整数k的倍数+1。

在判定为自然数r是整数k的倍数+1的情况下,进入平方剩余判定工序S64。

在判定为自然数r不是整数k的倍数+1的情况下,返回自然数生成工序S61,生成不同的自然数r。

在平方剩余判定工序S64中,群阶数候补生成部420使用CPU911等处理装置,根据参数生成条件存储部410存储的参数生成条件信息所表示的整数D、以及在自然数生成工序S61中生成的自然数r,判定整数D是否为除数r下的平方剩余。

在判定为整数D是除数r下的平方剩余的情况下,进入第一剩余计算工序S65。

在判断为整数D不是除数r下的平方剩余的情况下,返回自然数生成工序S61,生成不同的自然数r。

在第一剩余计算工序S65中,剩余计算部431使用CPU 911等处理装置,根据在自然数生成工序S61中生成的自然数r,计算出将自然数r除以4而得到的余数。

在将自然数r除以4而得到的余数是3的情况下,进入第一判定值计算工序S66。

在将自然数r除以4而得到的余数是1的情况下,进入第三判定值计算工序S68。

在第一判定值计算工序S66中,判定值计算部432使用CPU 911等处理装置,根据在自然数生成工序S61中生成的自然数r,计算出将自然数r与1之和(r+1)除以4而得到的商(r+1)/4,设为整数r2。

在第二判定值计算工序S67中,判定值计算部432使用CPU 911等处理装置,根据在参数生成条件存储部410存储的参数生成条件信息所表示的整数k,计算出整数k与2的最小公倍数LCM(k,2)。

判定值计算部432使用CPU 911等处理装置,根据在自然数生成工序S61中生成的自然数r、以及计算出的最小公倍数LCM(k,2),计算出将自然数r与1之差(r-1)除以最小公倍数LCM(k,2)而得到的商(r-1)/LCM(k,2),并设为整数r1。

之后,进入第一素因数判定工序S70。

在第三判定值计算工序S68中,判定值计算部432使用CPU 911等处理装置,根据在自然数生成工序S61中生成的自然数r,计算出将自然数r与1之和(r+1)除以2而得到的商(r+1)/2,并设为整数r2。

在第四判定值计算工序S69中,判定值计算部432使用CPU 911等处理装置,根据在参数生成条件存储部410存储的参数生成条件信息所表示的整数k,计算出整数k与4的最小公倍数LCM(k,4)。

判定值计算部432使用CPU 911等处理装置,根据在自然数生成工序S61中生成的自然数r、以及计算出的最小公倍数LCM(k,4),计算出将自然数r与1之差(r-1)除以最小公倍数LCM(k,4)而得到的商(r-1)/LCM(k,4),设为整数r1。

在第一素因数判定工序S70中,群阶数安全性判定部430使用CPU 911等处理装置,根据参数生成条件存储部410存储的参数生成条件信息所表示的整数B1、以及在第二判定值计算工序S67或第四判定值计算工序S69中计算出的整数r1,判定整数r1是否具有小于整数B1的素因数。

在判定为整数r1具有小于整数B1的素因数的情况下,返回自然数生成工序S61,生成不同的自然数r。

在判定为整数r1不具有小于整数B1的素因数的情况下,进入第二素因数判定工序S71。

在第二素因数判定工序S71中,群阶数安全性判定部430使用CPU 911等处理装置,根据参数生成条件存储部410存储的参数生成条件信息所表示的整数B2、以及在第一判定值计算工序S66或第三判定值计算工序S68中计算出的整数r2,判定整数r2是否具有小于整数B2的素因数。

在判定为整数r2具有小于整数B2的素因数的情况下,返回自然数生成工序S61,生成不同的自然数r。

在判定为整数r2不具有小于整数B2的素因数的情况下,进入群参数生成工序S85。

这样,群阶数安全性判定部430选择安全的自然数r而作为乘法群的阶数。

在群参数生成工序S72中,参数生成部440使用CPU 911等处理装置,根据参数生成条件存储部410存储的参数生成条件信息、以及在自然数生成工序S61中生成的自然数r,计算出将自然数r设为群阶数的乘法群。

参数生成部440使用CPU 911等处理装置,生成包括表示所计算出的乘法群的信息的群参数。

如上所述,实现使用了安全的群阶数的基于ID的密码通信系统800。

图28是示出本实施方式中的群参数生成装置400生成群参数的群参数生成处理的流程的另一例子的流程图。

另外,针对与图27中说明的群参数生成处理的工序共同的工序,附加同一标号,省略说明。

在自然数生成工序S81中,群阶数候补生成部420使用CPU 911等处理装置,生成自然数n。

在嵌入次数判定工序S82中,群阶数候补生成部420使用CPU911等处理装置,根据参数生成条件存储部410存储的参数生成条件信息所表示的整数k,判定整数k是奇数还是偶数。

在判定为整数k是偶数的情况下,进入第一自然数计算工序S83。

在判定为整数k是奇数的情况下,进入第二自然数计算工序S84。

在第一自然数计算工序S83中,群阶数候补生成部420使用CPU911等处理装置,根据参数生成条件存储部410存储的参数生成条件信息所表示的整数k、以及在自然数生成工序S81中生成的自然数n,计算出对整数k与自然数n之积加上1的自然数r=n·k+1。

之后,进入素数判定工序S62。

在第二自然数计算工序S84中,群阶数候补生成部420使用CPU911等处理装置,根据参数生成条件存储部410存储的参数生成条件信息所表示的整数k、以及在自然数生成工序S81中生成的自然数n,计算出对整数k与自然数n的两倍之积加上1的自然数r=2n·k+1。

由此,在上述条件之中,满足自然数r是整数k的倍数+1这样的条件。另外,由于自然数r总是奇数,所以有可能是素数。

在第一判定值计算工序S85中,群阶数安全性判定部430使用CPU 911等处理装置,根据在第一自然数计算工序S83或第二自然数计算工序S84中计算出的自然数r,计算出将自然数r与1之和(r+1)除以4而得到的商(r+1)/4,设为整数r2。

在第二判定值计算工序S86中,群阶数安全性判定部430使用CPU 911等处理装置,根据在自然数生成工序S81中生成的自然数n,将自然数n设为整数r1。

在整数k是奇数的情况下,由于r=2n·k+1,所以n=(r-1)/2k。因此,整数r1是将(r-1)除以k与2的最小公倍数(由于整数k是奇数,所以与2k相等)而得到的商。

在整数k是偶数的情况下,由于r=n·k+1,所以n=(r-1)/k。因此,整数r1是将(r-1)除以k与2的最小公倍数(由于整数k是偶数,所以与k相等)而得到的商。

另外,在k是4的倍数的情况下,整数r1也是将(r-1)除以k与4的最小公倍数而得到的商。

之后,进入第一素因数判定工序S70。

在第三判定值计算工序S87中,群阶数安全性判定部430使用CPU 911等处理装置,根据在第一自然数计算工序S83或第二自然数计算工序S84中计算出的自然数r,计算出将自然数r与1之和(r+1)除以2而得到的商(r+1)/2,设为整数r2。

在第二剩余计算工序S88中,群阶数安全性判定部430使用CPU911等处理装置,根据参数生成条件存储部410存储的参数生成条件信息所表示的整数k,计算出将整数k除以4而得到的余数。

在计算出的余数是0的情况下,进入第二判定值计算工序S86。

在计算出的余数是0以外的情况下,进入第四判定值计算工序S89。

在第四判定值计算工序S89中,群阶数安全性判定部430使用CPU 911等处理装置,根据在自然数生成工序S81中生成的自然数n,计算出将自然数n除以2而得到的商n/2,设为整数r1。

在整数k是奇数的情况下,成为r1=(r-1)/4k。因此,自然数r1是将(r-1)除以k与4的最小公倍数而得到的商。

在整数k是偶数的情况下,将整数k除以4而得到的余数是2,成为r1=(r-1)/2k。因此,整数r1是将(r-1)除以k与4的最小公倍数而得到的商。

这样,选择满足自然数r作为乘法群的阶数而应满足的所有条件的自然数r。

另外,不限于上述两个处理的流程,也可以通过其它过程来选择自然数r。

只要能够选择满足上述自然数r应满足的条件的自然数r即可,判定的顺序、详细的过程也可以不同。

本实施方式中的基于ID的密码通信系统800(密码通信系统)的特征是,还具有群参数生成装置400。

群参数生成装置400的特征是,具有处理信息的CPU 911等处理装置、群阶数候补生成部420、群阶数安全性判定部430、以及参数生成部440。

群阶数候补生成部420的特征是,使用CPU 911等处理装置,生成素数r(自然数r)作为群阶数的候补。

群阶数安全性判定部430的特征是,使用CPU 911等处理装置,根据群阶数候补生成部420生成的素数r,计算出素数r与1之差(r-1)的因数、以及素数r与1之和(r+1)的因数,并使用CPU 911等处理装置,根据计算出的(r-1)的因数与(r+1)的因数,判定群阶数候补生成部420生成的素数r是否为安全的群阶数。

参数生成部440的特征是,在群阶数安全性判定部430判定为群阶数候补生成部420生成的素数r是安全的群阶数的情况下,使用CPU 911等处理装置,根据群阶数候补生成部420生成的素数r,计算出将素数r设为群阶数的乘法群,并使用CPU 911等处理装置,生成包括表示所计算出的乘法群的信息的群参数。

群参数存储部111的特征是,使用磁盘装置920等存储装置,存储群参数生成装置400生成的群参数。

根据本实施方式中的基于ID的密码通信系统800,起到可以根据具有安全的群阶数的乘法群来进行基于ID的密码通信这样的效果。

本实施方式中的基于ID的密码通信系统800(密码通信系统)还将以下点作为特征。

群阶数候补生成部420的特征是,使用CPU 911等处理装置,生成对规定的整数k的倍数加上1而得到的素数r(自然数r)而作为群阶数的候补。

群阶数安全性判定部430的特征是,具有剩余计算部431、判定值计算部432、以及素因数判定部433。

剩余计算部431的特征是,使用CPU 911等处理装置,根据群阶数候补生成部420生成的素数r,计算出将素数r除以4而得到的余数。

判定值计算部432的特征是,在上述剩余计算部计算出的余数是1的情况下,使用CPU 911等处理装置,根据上述规定的整数k、以及群阶数候补生成部420生成的素数r,计算出将素数r与1之差(r-1)除以整数k与4的最小公倍数LCM(k,4)而得到的商即整数r1=(r-1)/LCM(k,4),并使用CPU 911等处理装置,根据群阶数候补生成部420生成的素数r,计算出将素数r与1之和(r+1)除以2而得到的商即整数r2=(r+1)/2,在剩余计算部431计算出的余数是3的情况下,使用CPU 911等处理装置,根据上述规定的整数k、以及群阶数候补生成部420生成的素数r,计算出将素数r与1之差(r-1)除以整数k与2的最小公倍数LCM(k,2)而得到的商即整数r1=(r-1)/LCM(k,2),并使用CPU 911等处理装置,根据群阶数候补生成部420生成的素数r,计算出将素数r与1之和(r+1)除以4而得到的商即整数r2=(r+1)/4。

素因数判定部433使用CPU 911等处理装置,根据判定值计算部432计算出的整数r1,判定整数r1是否具有比规定的整数B1小的素因数,并使用CPU 911等处理装置,根据判定值计算部432计算出的整数r2,判定整数r2是否具有比规定的整数B2小的素因数,在判定为整数r1具有比规定的整数B1小的素因数的情况、以及判定为整数r2具有比规定的整数B2小的素因数的情况下,判定为群阶数候补生成部420生成的素数r不是安全的群阶数。

根据本实施方式中的基于ID的密码通信系统800,由于可以避免弄清了攻击规则的群阶数,所以起到如下效果:可以根据具有安全的群阶数的乘法群,进行基于ID的密码通信。

本实施方式中的群参数生成装置400将以下点作为特征。

一种群参数生成装置400,生成对各自具有对应的密文接收装置301~303的n个接收者(n是1以上的整数)利用一个密文C(密钥密文C)通知明文M(对话密钥K)的密码通信系统(基于ID的密码通信系统800)中的密码处理中使用的乘法群的参数,其特征在于,具有处理信息的CPU 911等处理装置、群阶数候补生成部420、群阶数安全性判定部430、以及参数生成部440。

群阶数候补生成部420的特征是,使用CPU 911等处理装置,生成素数r作为群阶数的候补。

群阶数安全性判定部430的特征是,使用CPU 911等处理装置,根据群阶数候补生成部420生成的素数r,计算出素数r与1之差(r-1)的因数、以及素数r与1之和(r+1)的因数,并使用CPU 911等处理装置,根据计算出的(r-1)的因数与(r+1)的因数,判定群阶数候补生成部420生成的素数r是否为安全的群阶数。

参数生成部440的特征是,在群阶数安全性判定部430判定为群阶数候补生成部420生成的素数r是安全的群阶数的情况下,使用CPU 911等处理装置,根据群阶数候补生成部420生成的素数r,计算出将素数r设为群阶数的乘法群,并使用CPU 911等处理装置,生成包括表示所计算出的乘法群的信息的群参数。

根据本实施方式中的群参数生成装置400,可以根据具有安全的群阶数的乘法群,生成基于ID的密码通信系统800中的密码处理中使用的群参数,所以起到如下效果:可以确保基于ID的密码通信系统800中的密码通信的安全。

本实施方式中的群参数生成装置400还将以下点作为特征。

群阶数候补生成部420的特征是,使用CPU 911等处理装置,生成对规定的整数k的倍数加上1而得到的素数r而作为群阶数的候补。

群阶数安全性判定部430的特征是,具有剩余计算部431、判定值计算部432、以及素因数判定部433。

剩余计算部431的特征是,使用CPU 911等处理装置,根据群阶数候补生成部420生成的素数r,计算出将素数r除以4而得到的余数。

判定值计算部432的特征是,在剩余计算部431计算出的余数是1的情况下,使用CPU 911等处理装置,根据上述规定的整数k、以及群阶数候补生成部420生成的素数r,计算出将素数r与1之差(r-1)除以整数k与4的最小公倍数LCM(k,4)而得到的商即整数r1=(r-1)/LCM(k,4),并使用CPU 911等处理装置,根据群阶数候补生成部420生成的素数r,计算出将素数r与1之和(r+1)除以2而得到的商即整数r2=(r+1)/2,在剩余计算部431计算出的余数是3的情况下,使用CPU 911等处理装置,根据上述规定的整数k、以及群阶数候补生成部420生成的素数r,计算出将素数r与1之差(r-1)除以整数k与2的最小公倍数LCM(k,2)而得到的商即整数r1=(r-1)/LCM(k,2),使用CPU 911等处理装置,根据群阶数候补生成部420生成的素数r,计算出将素数r与1之和(r+1)除以4而得到的商即整数r2=(r+1)/4。

素因数判定部433的特征是,使用CPU 911等处理装置,根据判定值计算部432计算出的整数r1,判定整数r1是否具有比规定的整数B1小的素因数,并使用CPU 911等处理装置,根据判定值计算部432计算出的整数r2,判定整数r2是否具有比规定的整数B2小的素因数,在判定为整数r1具有比规定的整数B1小的素因数的情况、以及判定为整数r2具有比规定的整数B2小的素因数的情况下,判定为群阶数候补生成部420生成的素数r不是安全的群阶数。

根据本实施方式中的群参数生成装置400,由于可以避免弄清了攻击规则的群阶数,所以起到如下效果:可以根据具有安全的群阶数的乘法群,生成基于ID的密码通信系统800中的密码处理中使用的群参数,可以确保基于ID的密码通信系统800中的密码通信的安全。

实施方式5

使用图29,对实施方式5进行说明。

本实施方式中的基于ID的密码通信系统800的整体结构、密码参数生成装置100、密文生成装置200以及密文接收装置301~303的块结构由于与实施方式4中说明的部分相同,所以此处省略说明。

对群参数生成装置400进行说明。

本实施方式中的群参数生成装置400的块结构由于与实施方式4中说明的部分相同,所以使用图26,对不同的部分进行说明。

参数生成条件存储部410存储表示整数k、整数D的信息而作为参数生成条件信息。

素因数判定部433使用CPU 911等处理装置,输入表示判定值计算部432输出的整数r1与整数r2的信息。

素因数判定部433使用CPU 911等处理装置,根据输入的信息所表示的整数r1,判定整数r1是否为素数。

在判定为整数r1不是素数的情况下,素因数判定部433使用CPU911等处理装置,判定为群阶数候补生成部420生成的自然数r不是安全的群阶数、作为群阶数不合适。

素因数判定部433使用CPU 911等处理装置,根据输入的信息所表示的整数r2,判定整数r2是否为素数。

在判定为整数r2不是素数的情况下,素因数判定部433使用CPU911等处理装置,判定为群阶数候补生成部420生成的自然数r不是安全的群阶数、作为群阶数不合适。

素因数判定部433仅在判定为整数r1与整数r2都是素数的情况下,判定为群阶数候补生成部420生成的自然数r是安全的群阶数、作为群阶数是合适的。

接下来,对动作进行说明。

图29是示出本实施方式中的群参数生成装置400生成群参数的群参数生成处理的流程的一个例子的流程图。

另外,针对与实施方式4中说明的群参数生成处理的工序共同的工序,附加同一标号。

在第一素因数判定工序S70中,群阶数安全性判定部430使用CPU 911等处理装置,根据在第二判定值计算工序S67或第四判定值计算工序S69中计算出的整数r1,判定整数r1是否为素数。

在判定为整数r1不是素数的情况下,返回自然数生成工序S61,生成不同的自然数r。

在判定为整数r1是素数的情况下,进入第二素因数判定工序S71。

在第二素因数判定工序S71中,群阶数安全性判定部430使用CPU 911等处理装置,根据在第一判定值计算工序S66或第二判定值计算工序S68中计算出的整数r2,判定整数r2是否为素数。

在判定为整数r2不是素数的情况下,返回自然数生成工序S61,生成不同的自然数r。

在判定为整数r2是素数的情况下,进入群参数生成工序S85。

在实施方式4中,如果整数r1以及r2不具有直到某种程度的大小的素因数就视为安全,但在本实施方式中,通过判定整数r1以及r2是否为素数,来判定自然数r是否为安全的群阶数,所以安全性进一步提高。

本实施方式中的基于ID的密码通信系统800(密码通信系统)将以下点作为特征。

群阶数候补生成部420的特征是,使用CPU 911等处理装置,生成对规定的整数k的倍数加上1而得到的素数r而作为群阶数的候补。

群阶数安全性判定部430的特征是,具有剩余计算部431、判定值计算部432、以及素因数判定部433。

剩余计算部431的特征是,使用CPU 911等处理装置,根据群阶数候补生成部420生成的素数r,计算出将素数r除以4而得到的余数。

判定值计算部432的特征是,在剩余计算部431计算出的余数是1的情况下,使用CPU 911等处理装置,根据上述规定的整数k、以及群阶数候补生成部420生成的素数r,计算出将素数r与1之差(r-1)除以整数k与4的最小公倍数LCM(k,4)而得到的商即整数r1=(r-1)/LCM(k,4),并使用CPU 911等处理装置,根据群阶数候补生成部420生成的素数r,计算出将素数r与1之和(r+1)除以2而得到的商即整数r2=(r+1)/2,在剩余计算部431计算出的余数是3的情况下,使用CPU 911等处理装置,根据上述规定的整数k、以及群阶数候补生成部420生成的素数r,计算出将素数r与1之差(r-1)除以整数k与2的最小公倍数LCM(k,2)而得到的商即整数r1=(r-1)/LCM(k,2),并使用CPU 911等处理装置,根据群阶数候补生成部420生成的素数r,计算出将素数r与1之和(r+1)除以4而得到的商即整数r2=(r+1)/4。

素因数判定部433的特征是,使用CPU 911等处理装置,根据判定值计算部432计算出的整数r1,判定整数r1是否为素数,并使用CPU 911等处理装置,根据判定值计算部432计算出的整数r2,判定整数r2是否为素数,在判定为整数r1不是素数的情况、以及判定为整数r2不是素数的情况下,判定为群阶数候补生成部420生成的素数r不是安全的群阶数。

根据本实施方式中的基于ID的密码通信系统800,由于可以可靠地避免弄清了攻击规则的群阶数,所以起到如下效果:可以根据具有安全的群阶数的乘法群,生成基于ID的密码通信系统800中的密码处理中使用的群参数,可以确保基于ID的密码通信系统800中的密码通信的安全。

本实施方式中的群参数生成装置400将以下点作为特征。

群阶数候补生成部420的特征是,使用CPU 911等处理装置,生成对规定的整数k的倍数加上1而得到的素数r而作为群阶数的候补。

群阶数安全性判定部430的特征是,具有剩余计算部431、判定值计算部432、以及素因数判定部433。

剩余计算部431的特征是,使用CPU 911等处理装置,根据群阶数候补生成部420生成的素数r,计算出将素数r除以4而得到的余数。

判定值计算部432的特征是,在剩余计算部431计算出的余数是1的情况下,使用CPU 911等处理装置,根据上述规定的整数k、以及群阶数候补生成部420生成的素数r,计算出将素数r与1之差(r-1)除以整数k与4的最小公倍数LCM(k,4)而得到的商即整数r1=(r-1)/LCM(k,4),并使用CPU 911等处理装置,根据群阶数候补生成部420生成的素数r,计算出将素数r与1之和(r+1)除以2而得到的商即整数r2=(r+1)/2,在剩余计算部431计算出的余数是3的情况下,使用CPU 911等处理装置,根据上述规定的整数k、以及群阶数候补生成部420生成的素数r,计算出将素数r与1之差(r-1)除以整数k与2的最小公倍数LCM(k,2)而得到的商即整数r1=(r-1)/LCM(k,2),并使用CPU 911等处理装置,根据群阶数候补生成部420生成的素数r,计算出将素数r与1之和(r+1)除以4而得到的商即整数r2=(r+1)/4。

素因数判定部433的特征是,使用CPU 911等处理装置,根据判定值计算部432计算出的整数r1,判定整数r1是否为素数,并使用CPU 911等处理装置,根据判定值计算部432计算出的整数r2,判定整数r2是否为素数,在判定为整数r1不是素数的情况、以及判定为整数r2不是素数的情况下,判定为群阶数候补生成部420生成的素数r不是安全的群阶数。

根据本实施方式中的群参数生成装置400,由于可以可靠地避免弄清了攻击规则的群阶数,所以起到如下效果:可以根据具有安全的群阶数的乘法群,生成基于ID的密码通信系统800中的密码处理中使用的群参数,可以确保基于ID的密码通信系统800中的密码通信的安全。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号