加密装置、密文转换装置、加密程序、密文转换程序、加密方法和密文转换方法与流程

文档序号:15309637发布日期:2018-08-31 21:35阅读:380来源:国知局

本发明涉及同态加密。本发明涉及使用同态加密的加密装置、密文转换装置、加密程序、密文转换程序、加密方法和密文转换方法。



背景技术:

通常,当对数据进行加密后,如果不进行解密,则无法对内部的数据进行阅览和编集,因此,在对多个密文内的数据进行编集的情况下,需要进行一次解密而取出明文作为数据,然后进行编集,再次进行加密。与此相对,在同态加密中,能够在密文的状态下对内部的数据进行编集。此时的处理被称作同态运算,能够进行同态运算的种类、同态运算的次数根据具体方式而变化。

作为同态加密,除了elgamal加密和pailier加密等仅能进行加法运算或仅能进行乘法运算的同态加密以外,还提出了能够无限制地执行加法运算和乘法运算的gentry加密等。在这些方式中,存在如下课题:作为第一点,在进行同态运算时,必须利用相同的公开密钥生成密文;作为第二点,由于同态运算前的密文在加密后的状态下进行运算,因此,即使通过同态运算改变了明文也无法检测到。

提出了若干针对这种课题的解决方式(例如参照专利文献1和非专利文献1)。

现有技术文献

专利文献

专利文献1:国际公开第wo2014/010202a1号

非专利文献

非专利文献1:keitaemura、goichirohanaoka、goohtake、takahiromatsuda、shotayamada:chosenciphertextsecurekeyed-homomorphicpublic-keyencryption.publickeycryptography2013:32-50



技术实现要素:

发明要解决的课题

在专利文献1记载的方法中,通过被称作代理重加密的技术,使利用多个不同密钥生成的密文变化成特定的一个密钥的密文,进行同态运算。

但是,在该方法中,存在同态运算前的密文的安全性较低,明文数据能够改变这样的课题。

在非专利文献1记载的其他方法中,代替在进行同态运算时需要特别的密钥,而提高同态运算前的密文的安全性的强度。具体而言,防止明文数据的篡改。

但是,在该方法中,存在能够对同态运算后的密文进行解密的用户也能够对同态前的密文进行解密这样的课题。

这样,在专利文献1、非专利文献1的情况下,同态运算前的密文的明文内容可能被改变。

因此,本发明的目的在于,提供检测同态运算前的密文的改变的装置、程序和方法。

用于解决课题的手段

本发明的加密装置的特征在于,所述加密装置具有:加密部,其使用成对的2个密钥中的一个密钥对明文m进行加密,由此,生成对所述明文m进行加密后的能够进行同态运算的密文d;检测要素生成部,其使用所述一个密钥和所述密文d,生成在所述密文d的改变检测中使用的检测要素e;以及输出部,其输出所述密文d和所述检测要素e。

发明效果

在本发明中,在对数据加密后的状态下能够进行数据运算的同态加密技术中,采用检测密文的改变的检测要素,因此,能够检测同态运算前的密文的改变。由此,能够实现使用未被改变的真正密文的、安全的同态运算的利用。

附图说明

图1是实施方式1的图,是示出隐匿分析系统的结构的框图。

图2是实施方式1的图,是共享参数生成装置的图。

图3是实施方式1的图,是第1密钥生成装置的框图。

图4是实施方式1的图,是第2密钥生成装置的图。

图5是实施方式1的图,是加密装置的框图。

图6是实施方式1的图,是转换密钥生成装置的框图。

图7是实施方式1的图,是密文转换装置的图。

图8是实施方式1的图,是同态运算装置的框图。

图9是实施方式1的图,是第1解密装置的框图。

图10是实施方式1的图,是第2解密装置所示的框图。

图11是实施方式1的图,是示出共享参数生成装置的处理的流程图。

图12是实施方式1的图,是示出第1密钥生成装置的处理的流程图。

图13是实施方式1的图,是示出第2密钥生成装置的处理的流程图。

图14是实施方式1的图,是示出加密装置的处理的流程图。

图15是实施方式1的图,是示出转换密钥生成装置的处理的流程图。

图16是实施方式1的图,是示出密文转换装置的处理的流程图。

图17是实施方式1的图,是示出同态运算装置的处理的流程图。

图18是实施方式1的图,是示出第1解密装置的处理的流程图。

图19是实施方式1的图,是示出第2解密装置的处理的流程图。

图20是实施方式1的图,是示出隐匿分析系统的数据的输入和输出的图。

图21是实施方式1的图,是示出共享参数生成装置等的硬件结构的图。

图22是实施方式1的图,是示出共享参数生成装置等的硬件结构的另一个图。

具体实施方式

实施方式1

下面,如下所述记载密钥生成装置300等。

(1)在实施方式1中,出现生成成对的公开密钥pk和解密密钥sk(秘密密钥)的密钥生成装置300。将该密钥生成装置300记作第1密钥生成装置300。

(2)将由第1密钥生成装置300生成的公开密钥pk、解密密钥sk记作第1公开密钥pk、第1解密密钥sk。另外,有时也记作公开密钥pk、解密密钥sk。

(3)在实施方式1中,出现生成成对的公开密钥epk和解密密钥esk(秘密密钥)的同态运算后密钥生成装置400。将该同态运算后密钥生成装置400记作第2密钥生成装置。

(4)将由第2密钥生成装置生成的公开密钥epk、解密密钥esk记作第2公开密钥epk、第2解密密钥esk。另外,有时也记作公开密钥epk、解密密钥esk。

(5)在实施方式1中,出现使用第1解密密钥sk对密文进行解密的解密装置900。将该解密装置900记作第1解密装置。

(6)在实施方式1中,出现使用第2解密密钥esk对同态运算后的密文进行解密的解密装置1000。将该解密装置1000记作第2解密装置。

图1是示出隐匿分析系统100的结构的框图。如图1所示,隐匿分析系统100具有共享参数生成装置200、多个第1密钥生成装置300、多个第2密钥生成装置400、加密装置500、转换密钥生成装置600、密文转换装置700、同态运算装置800、第1解密装置900和第2解密装置1000。

在隐匿分析系统100中,共享参数生成装置200~第2解密装置1000也可以分别不经由互联网101连接,而是利用铺设于同一企业内的lan(localareanetwork:局域网)连接来实现。

互联网101是连接共享参数生成装置200、多个第1密钥生成装置300、多个第2密钥生成装置400、加密装置500、转换密钥生成装置600、密文转换装置700、同态运算装置800、第1解密装置900和第2解密装置1000的通信路径。互联网101是网络的例子。也可以代替互联网101而使用其他种类的网络。

共享参数生成装置200生成在系统中使用的共享的参数即共享参数pub,经由互联网101向多个第1密钥生成装置300、多个第2密钥生成装置400、加密装置500、转换密钥生成装置600、密文转换装置700、同态运算装置800、第1解密装置900和第2解密装置1000发送共享参数pub。另外,也可以不经由互联网101而通过邮寄、网站的公告板等提供该共享参数pub。

另外,在以下的加密装置500等的说明中,在没有共享参数pub的取得说明的情况下,设为已经取得该共享参数pub。

第1密钥生成装置300可以是个人计算机。第1密钥生成装置300是如下计算机:生成公开密钥pk和解密密钥sk,向加密装置500、密文转换装置700和第1解密装置900发送公开密钥pk,向转换密钥生成装置600和第1解密装置900发送解密密钥sk。

第2密钥生成装置400可以是个人计算机。第2密钥生成装置400是如下计算机:生成第2公开密钥epk和第2解密密钥esk,向转换密钥生成装置600和同态运算装置800发送第2公开密钥epk,向第2解密装置1000发送第2解密密钥esk。

加密装置500作为数据的加密装置发挥功能,可以是个人计算机。加密装置500是如下计算机:从第1密钥生成装置300接收公开密钥pk,并且从外部输入明文m,输出密文c。

转换密钥生成装置600可以是个人计算机。转换密钥生成装置600是如下计算机:从第1密钥生成装置300接收解密密钥sk,从第2密钥生成装置400接收第2公开密钥epk,生成转换密钥rk,并发送给密文转换装置700。

密文转换装置700可以是个人计算机。密文转换装置700是如下计算机:从转换密钥生成装置600接收转换密钥rk,输入密文c,取得公开密钥pk,生成并输出对密文c进行转换后的转换密文rc。

同态运算装置800可以是个人计算机。同态运算装置800是如下计算机:从第2密钥生成装置400接收第2公开密钥epk,输入多个转换密文rc,输出执行同态运算后的密文ec(以下为密文ec)。

第1解密装置900可以是个人计算机。第1解密装置900是如下计算机:从第1密钥生成装置300接收解密密钥sk,取得公开密钥pk,输入密文c,输出密文c的解密结果。

第2解密装置1000可以是个人计算机。第2解密装置1000是如下计算机:从第2密钥生成装置400接收第2解密密钥esk,输入密文ec,输出密文ec的解密结果。

另外,也可以在同一个人计算机内同时包含第1密钥生成装置300、解密装置900、转换密钥生成装置600中的任意2个以上。

另外,也可以在同一个人计算机内同时包含第2密钥生成装置400和第2解密装置1000。

另外,也可以在同一个人计算机内同时包含转换密钥生成装置600、密文转换装置700、同态运算装置800中的任意2个以上。

<***结构的说明***>

下面,对本实施方式的结构进行说明。

如图1所示,隐匿分析系统100具有共享参数生成装置200、多个第1密钥生成装置300、多个第2密钥生成装置400、加密装置500、转换密钥生成装置600、密文转换装置700、同态运算装置800、第1解密装置900和第2解密装置1000。

图2~图10是示出装置均为计算机的共享参数生成装置200、第1密钥生成装置300、第2密钥生成装置400、加密装置500、转换密钥生成装置600、密文转换装置700、同态运算装置800、第1解密装置900和第2解密装置1000的结构的框图。

图21是示出共享参数生成装置200~第2解密装置1000的硬件结构的图。

在本实施方式中,共享参数生成装置200、第1密钥生成装置300、第2密钥生成装置400、加密装置500、转换密钥生成装置600、密文转换装置700、同态运算装置800、第1解密装置900和第2解密装置1000是计算机。

共享参数生成装置200、第1密钥生成装置300、第2密钥生成装置400具有处理器91、输入接口93、输出接口94这样的硬件。加密装置500~第2解密装置1000具有处理器91、存储装置92、输入接口93、输出接口94这样的硬件。下面,输入接口93、输出接口94记作输入i/f93、输出i/f94。

在图2~图10中示出各功能部与硬件的关系。在图2~图10中,作为处理器91示出的“~部”由软件实现。即,作为处理器91示出的“~部”通过处理器91执行软件来实现。并且,图5~图10中的“保管部”由存储装置92实现。

处理器91经由信号线而与其它硬件连接,对这些其他硬件进行控制。处理器91是进行处理的ic(integratedcircuit:集成电路)。具体而言,处理器91是cpu(centralprocessingunit:中央处理单元)。

存储装置92包含辅助存储装置92a和存储器92b。具体而言,辅助存储装置92a是rom(readonlymemory:只读存储器)、闪存或(harddiskdrive:硬盘驱动器)。具体而言,存储器92b是ram(randomaccessmemory:随机存取存储器)。

输入i/f93是供信号输入的端口。并且,输入i/f93可以是与鼠标、键盘、触摸面板这样的输入装置连接的端口。具体而言,输入i/f93是usb(universalserialbus:通用串行总线)端子。另外,输入接口93也可以是与lan(localareanetwork:局域网)连接的端口。

输出i/f94是输出信号的端口。输出i/f94可以是usb端子。

在辅助存储装置92a中存储有实现作为处理器91示出的“~部”的功能的程序。该程序载入到存储器92b,读入到处理器91,由处理器91来执行。在辅助存储装置92a中还存储有os(operatingsystem:操作系统)。os的至少一部分载入到存储器92b,处理器91执行os,并且执行实现作为处理器91示出的“~部”的功能的程序。

共享参数生成装置200~第2解密装置1000可以仅具有一个处理器91,也可以具有多个处理器91。多个处理器91可以协作执行实现“部”的功能的程序。

表示作为处理器91示出的“部”的功能的处理结果的信息、数据、信号值和变量值存储在辅助存储装置92a、存储器92b或处理器91内的寄存器或高速缓冲存储器中。

实现作为处理器91示出的“部”的功能的程序也可以存储在磁盘、软盘、光盘、高密度盘、dvd(digitalversatiledisc:数字多功能盘)这样的移动记录介质中。

图2是示出共享参数生成装置200的结构的框图。如图2所示,共享参数生成装置200具有输入部201、共享参数生成部202和发送部203。虽然未图示,但是,共享参数生成装置200具有存储在共享参数生成装置200的各部中使用的数据的记录介质。输入部201输入在本系统中使用的密钥的比特长度lbit。接着,共享参数生成部202生成作为在本系统中使用的运算基础的共享参数pub。虽然未图示,但是,为了生成共享参数pub,共享参数生成部202也可以具有随机数生成功能。发送部203向多个第1密钥生成装置300、多个第2密钥生成装置400、加密装置500、转换密钥生成装置600、密文转换装置700、同态运算装置800、第1解密装置900和第2解密装置1000发送由共享参数生成部202生成的共享参数pub。

图3是示出第1密钥生成装置300的结构的框图。如图3所示,第1密钥生成装置300具有输入部301、密钥生成部302和密钥发送部303。虽然未图示,但是,第1密钥生成装置300具有存储在第1密钥生成装置300的各部中使用的数据的记录介质。输入部301输入共享参数pub。接着,密钥生成部302生成第1公开密钥pk与第1解密密钥sk的对。虽然未图示,但是,为了生成pk和sk,密钥生成部302也可以具有随机数生成功能。密钥发送部303向加密装置500、密文转换装置700和第1解密装置900发送由密钥生成部302生成的第1公开密钥pk,向转换密钥生成装置600和第1解密装置900发送所生成的第1解密密钥sk。

图4是示出第2密钥生成装置400的结构的框图。如图4所示,第2密钥生成装置400具有输入部401、密钥生成部402和密钥发送部403。虽然未图示,但是,第2密钥生成装置400具有存储在第2密钥生成装置400的各部中使用的数据的记录介质。输入部401输入共享参数pub。密钥生成部402生成第2公开密钥epk与第2解密密钥esk的对。虽然未图示,但是,为了生成第2公开密钥epk和第2解密密钥esk,密钥生成部402也可以具有随机数生成功能。密钥发送部403向转换密钥生成装置600和同态运算装置800发送由密钥生成部402生成的第2公开密钥epk,向第2密文解密装置1000发送所生成的第2解密密钥esk。

图5是示出加密装置500的结构的框图。如图5所示,加密装置500具有接收部501、保管部502、输入部503、加密部504、检测要素生成部505和发送部506。虽然未图示,但是,加密装置500具有存储在加密装置500的各部中使用的数据的记录介质。接收部501输入第1公开密钥pk。保管部502保管第1公开密钥pk。输入部503从外部输入明文m。加密部504根据保管部502中保存的第1公开密钥pk和由输入部503输入的明文m生成密文d。虽然未图示,但是,为了生成密文d,加密部504也可以具有随机数生成功能。检测要素生成部505根据密文d和第1公开密钥pk生成检测要素e。虽然未图示,但是,为了生成检测要素e,检测要素生成部505也可以具有随机数生成功能。发送部506输出密文c=(d、e)。即,发送部506输出密文d和检测要素e的组作为密文c。

图6是示出转换密钥生成装置600的结构的框图。如图6所示,转换密钥生成装置600具有接收部601、保管部602、输入部603、转换密钥生成部604和发送部605。虽然未图示,但是,转换密钥生成装置600具有存储在转换密钥生成装置600的各部中使用的数据的记录介质。接收部601接收解密密钥sk。接着,保管部602保管解密密钥sk。输入部603输入第2公开密钥epk。转换密钥生成部604根据保管部602中保存的第1解密密钥sk和由输入部603输入的第2公开密钥epk生成转换密钥rk。

即,rk=rkg(epk、sk)。

rkg是表示转换密钥rk的生成的运算记号。虽然未图示,但是,为了生成转换密钥rk,转换密钥生成部604也可以具有随机数生成功能。发送部605向密文转换装置700发送转换密钥rk。

图7是示出密文转换装置700的结构的框图。如图7所示,密文转换装置700具有接收部701、保管部702、输入部703、改变检测部704、密文转换部705和发送部706。虽然未图示,但是,密文转换装置700具有存储在密文转换装置700的各部中使用的数据的记录介质。

接收部701接收转换密钥rk。保管部702保管转换密钥rk。对输入部703输入密文c=(d、e)和第1公开密钥pk。改变检测部704使用第1公开密钥pk,验证由输入部703输入的密文c的明文m是否未被改变。密文转换部705根据保管部702中保存的转换密钥rk和由输入部703输入的密文c生成转换密文rc。在由改变检测部704检测到改变的情况下,作为转换密文rc,密文转换部705将表示改变的特殊记号代入转换密文rc中。在改变检测部704未检测到改变的情况下,生成转换密文rc。虽然未图示,但是,为了生成转换密文rc,密文转换部705也可以具有随机数生成功能。发送部706输出转换密文rc。

图8是示出同态运算装置800的结构的框图。如图8所示,同态运算装置800具有接收部801、保管部802、输入部803、同态运算部804和发送部805。虽然未图示,但是,同态运算装置800具有存储在同态运算装置800的各部中使用的数据的记录介质。接收部801接收转换密文rc。保管部802保管多个由接收部801接收到的转换密文rc。输入部803输入第2公开密钥epk。同态运算部804根据保管部802中保存的全部转换密文rc和由输入部803输入的第2公开密钥epk生成密文ec。虽然未图示,但是,为了生成密文ec,同态运算部804也可以具有随机数生成功能等。发送部805输出密文ec。

图9是示出第1解密装置900的结构的框图。如图9所示,第1解密装置900具有接收部901、保管部902、输入部903、解密处理部904和发送部905。虽然未图示,但是,第1解密装置900具有存储在第1解密装置900的各部中使用的数据的记录介质。接收部901输入解密密钥sk。保管部902保管由接收部901接收到的解密密钥sk。对输入部903输入密文c(d、e)、公开密钥pk。解密处理部904根据保管部902中保存的解密密钥sk和由输入部903输入的密文c生成密文c的解密结果m。发送部905输出解密结果m。

图10是示出第2解密装置1000的结构的框图。如图10所示,第2解密装置1000具有接收部1001、保管部1002、输入部1003、解密处理部1004和发送部1005。虽然未图示,但是,第2解密装置1000具有存储在第2解密装置1000的各部中使用的数据的记录介质。接收部1001输入第2解密密钥esk。保管部1002保管由接收部1001接收到的第2解密密钥esk。输入部1003输入密文ec。解密处理部1004根据保管部1002中保存的第2解密密钥esk和由输入部1003输入的密文ec生成密文ec的解密结果em。发送部1005输出解密结果em。

下面,对与本实施方式的各装置的计算方法相当的各装置的动作进行说明。

还参照图20进行说明。图20是示出隐匿分析系统100的数据的输入和输出的图。

图11是示出共享参数生成装置200的动作的流程图。如图20所示,共享参数生成装置200接收密钥的比特长度lbit,生成共享参数pub,输出共享参数pub。

在步骤s201中,输入部201接收密钥的比特长度lbit。

在步骤s202中,共享参数生成部202根据密钥的比特长度lbit,生成能够进行配对运算的要素bg=(p、g、gt、e)。

这里,p表示群g和群gt的位数。

e设具有g×g→gt的映射的双线性映射。双线性映射是针对全部g∈g和a、b∈zp成为e(ga、gb)=e(g、g)ab∈gt的映射。将使用该e的运算称作配对运算。另外,zp是mod=p的整数的集合。

在步骤s203中,共享参数生成部202生成哈希函数h和哈希函数密钥k。

在步骤s204中,共享参数生成部202从群g中随机选择g,随机选择u、v、w∈zp。

在步骤s205中,共享参数生成部202计算u=gu、v=gv、w=gw、p=e(g、g),生成共享参数pub=(bg、g、u、v、w、p、k)。

在步骤s206中,发送部203输出共享参数pub。

另外,发送部203是输出部,如图1所示,假设经由互联网101进行发送,但是,也可以向内置存储介质或已安装的存储介质输出共享参数pub。这对于后述全部发送部也是同样的。

图12是示出第1密钥生成装置300的动作的流程图。如图20所示,第1密钥生成装置300接收共享参数pub,使用共享参数pub生成第1公开密钥pk、第1解密密钥sk,输出第1公开密钥pk、第1解密密钥sk。

在步骤s301中,输入部301接收共享参数pub。

在步骤s302中,密钥生成部302随机选择解密密钥sk∈zp。

在步骤s303中,密钥生成部302计算公开密钥pk=gsk

在步骤s304中,密钥发送部303发送公开密钥pk和解密密钥sk。

图13是示出第2密钥生成装置400的动作的流程图。如图20所示,第2密钥生成装置400接收共享参数pub,使用共享参数pub生成第2公开密钥epk、第2解密密钥esk,输出第2公开密钥epk、第2解密密钥esk。在转换密钥rk的生成、密文rc到密文ec的加密中使用第2公开密钥epk。在密文ec的解密中使用第2解密密钥esk。

在步骤s401中,输入部401接收共享参数pub。

在步骤s402中,密钥生成部402使用共享参数pub,随机选择解密密钥esk∈zp。

在步骤s403中,密钥生成部402计算公开密钥epk=gesk

在步骤s404中,密钥发送部403发送第2公开密钥epk和第2解密密钥esk。

图14是示出加密装置500的动作的流程图。根据图14对加密装置500的加密方法进行说明。如图20所示,加密装置500接收共享参数pub、公开密钥pk。并且,加密装置500取得明文m。加密装置500生成并输出密文c。

在步骤s501中,接收部501接收共享参数pub、公开密钥pk。保管部502保管共享参数pub、公开密钥pk。

输入部503接收明文m。

在步骤s502中,加密部504使用共享参数pub,随机选择随机数r、s∈zp。

在步骤s503中,加密部504使用成对的2个密钥中的一个密钥即第1公开密钥pk对明文m进行加密,由此,生成对明文m进行加密后的能够进行同态运算的密文d。

具体而言,加密部504计算下式作为密文d。

c0=m·pr(式1)

c1=pkr(式2)

d=(c0、c1)。这里,“·”表示群g内定义的乘法运算。

在式1、式2中,m是明文。

p是共享参数pub中包含的配对运算p。

随机数r是在s502中选择出的。

pk是第1公开密钥pk。

这样,加密部504选择第1随机数r和第2随机数s,除了第1公开密钥pk以外,还使用第1随机数r和共享参数pub生成密文d。

并且,检测要素生成部505使用第1公开密钥pk和密文d=(c0、c1),生成在密文d的改变检测中使用的检测要素e。

具体而言,检测要素生成部505计算下式。

t=h(k、(pk、c0、c1))(式3)

c2=(usvtw)r(式4)

在(式3)(式4)中,式3右边的h(k、(pk、c0、c1))表示通过哈希函数h、哈希密钥k对(pk、c0、c1)进行加密。哈希函数h、哈希密钥k的信息包含在共享参数pub中。式4右边的u、v、w包含在共享参数pub中。t是通过式3得到的,随机数r、随机数s是s502的随机数。随机数r记作第1随机数,随机数s记作第2随机数。如式3、式4所示,除了第1公开密钥pk和密文d以外,检测要素生成部505还使用第1随机数r、第2随机数s和共享参数pub生成检测要素e。

在步骤s504中,发送部506输出c=(c0、c1、s、c2)。

c=(c0、c1、s、c2)=(d、e)。这里,c0、c1相当于密文d,c2相当于检测要素e。

作为输出部的发送部506输出密文d和检测要素e。

图15是示出转换密钥生成装置600的动作的流程图。如图20所示,转换密钥生成装置600接收共享参数pub、第1解密密钥sk和第2公开密钥epk,生成并输出转换密钥rk。

在步骤s601中,接收部601接收解密密钥sk,保管部602保管解密密钥sk。输入部603接收第2公开密钥epk。

在步骤s602中,转换密钥生成部604计算rk=epk1/sk。根据与在对密文d实施了同态运算的情况下在同态运算的运算结果的解密中使用的第2秘密密钥esk(第2解密密钥)成对的第2公开密钥epk和第1解密密钥sk(第1秘密密钥),生成转换密钥rk。

在步骤s603中,发送部605输出转换密钥rk。

图16是示出密文转换装置700的动作的流程图。使用图16对密文转换装置700的密文转换方法进行说明。如图20所示,密文转换装置700接收共享参数pub、第1公开密钥pk、转换密钥rk、c=(d、e)=(c0、c1、s、c2),将密文c转换成密文rc,输出密文rc。

在步骤s701中,接收部701接收转换密钥rk。保管部702保管转换密钥rk、共享参数pub、第1公开密钥pk等。在向作为与密文d不同的密文的转换密文rc的转换中使用转换密钥rk。输入部703接收密文c=(d、e)和第1公开密钥pk。密文c包含对明文m进行加密后的密文d和检测要素e。密文d能够进行同态运算。这样,作为取得部的输入部703取得对明文m进行加密后的能够进行同态运算的密文d和在密文d的改变检测中使用的检测要素e。

在步骤s702中,改变检测部704计算t’=h(k、(pk、c0、c1))。

t’=h(k、(pk、c0、c1))意味着使用哈希函数h和哈希密钥k对(pk、c0、c1)进行加密。c0、c1包含在密文c中。

在步骤s703中,改变检测部704验证e(c2、pk)=e(c1、(usvt’w))是否成立。在成立的情况下即未检测到改变的情况下,处理进入步骤s705,在不成立的情况下即检测到改变的情况下,处理进入步骤s704。

这样,改变检测部704根据作为检测要素e的c2生成作为密文d是否被改变的基准的基准值的e(c2、pk),根据密文d生成在与基准值之间的核对中使用的核对值的e(c1、(usvt’w))。核对值的e(c1、(usvt’w))包含t’=h(k、(pk、c0、c1))。

在t’中,c0、c1是密文d。

由此,根据密文d生成核对值的e(c1、(usvt’w))。

改变检测部704进行基准值与核对值之间的核对。

更具体而言,改变检测部704根据检测要素e和第1公开密钥pk生成基准值的e(c2、pk),根据第1公开密钥pk和密文d生成核对值的e(c1、(usvt’w))。

在步骤s704中,密文转换部705为rc=⊥。

⊥是表示转换失败的特殊符号,只要规定表示密文转换失败即可,可以是任意记号。

在步骤s705中,密文转换部705计算c’1=e(c1、rk)=e(pkr、rk),生成转换密文rc=(c0、c’1)=(m·pr、e(pkr、rk))。这样,作为转换部的密文转换部705在改变检测部704的核对结果为未检测到密文d的改变的情况下,通过使用转换密钥rk,将密文d转换成从密文d转换而成的转换密文rc。

在步骤s706中,作为输出部的发送部706输出转换密文rc=(c0、c’1)。

图17是示出同态运算装置800的动作的流程图。如图20所示,同态运算装置800接收共享参数pub、第2公开密钥epk、多个(n个)rc。将n个rc分别记作rci

在步骤s801中,接收部801接收转换后的密文rc,保管部802保管密文rc。然后,输入部803接收第2公开密钥epk。

在步骤s802中,同态运算部804选择随机数r’∈zp。

在步骤s803中,同态运算部804利用以下式子新计算左边的c0、c’1。

以下式子假设存在利用以下式子得到的同态运算结果的请求。同态运算部804响应于该请求,进行以下式子的运算。

计算c0=pr’πi∈[n]ci0、c’1=e(g、epk)r’×πi∈[n]c’i1。

在步骤s804中,发送部805输出上述同态运算后的密文ec即ec=(c0、c’1)。

图18是示出第1解密装置900的动作的流程图。

如图20所示,第1解密装置900接收共享参数pub、第1公开密钥pk、第1解密密钥sk、密文c=(c0、c1、s、c2)。第1解密装置900将密文c解密成明文m。

在步骤s901中,接收部901接收共享参数pub、第1公开密钥pk、第1解密密钥sk。保管部902保管共享参数pub、第1公开密钥pk、第1解密密钥sk。输入部903接收密文c。

在步骤s902中,解密处理部904计算t’=h(k、(pk、c0、c1))。

在步骤s903中,解密处理部904验证e(c2、pk)=e(c1、(usvt’w))是否成立,在成立的情况下进入步骤s905,在不成立的情况下进入步骤s904。

在步骤s904中,解密处理部904为m=⊥。⊥是表示转换失败的特殊符号,只要规定表示密文转换失败即可,可以是任意记号。

在步骤s905中,解密处理部904计算m=c0/e(c1、g)1/sk

在步骤s906中,发送部905输出解密结果m。

图19是示出第2解密装置1000的动作的流程图。如图20所示,第2解密装置1000接收共享参数pub、第2秘密密钥esk、密文ec=(c0、c’1)。第2解密装置1000对密文ec进行解密,输出解密结果em。

在步骤s1001中,接收部1001接收第2解密密钥esk,保管部1002保管第2解密密钥esk。输入部1003接收同态运算后的密文ec。

在步骤s1002中,解密处理部1004计算em=c0/(c’1)1/esk

在步骤s1003中,发送部1005输出解密结果em。

<***实施方式1的效果的说明***>

本实施方式发挥以下效果。

(1)在本实施方式中,即使是利用不同的公开密钥加密后的数据,通过使用转换密钥,也能够转换成相同的第2公开密钥epk的密文。由此,通过使用同态运算装置,能够在隐匿了各个密文的信息的状态下执行明文的运算。

(2)在本实施方式中,关于密文c,在解密装置的解密处理中确认使用t的验证式,因此,无法对密文c内的明文m进行变更。但是,通过使用转换密钥,能够转换成相同的第2公开密钥epk的密文,因此,通过使用同态运算装置,能够在隐匿了各个密文的信息的状态下执行明文的运算。

(3)在本实施方式中,使用公开密钥pk的密文c的安全性非常高,但是,能够在隐匿的状态下进行明文m的运算,因此,能够实现安全的隐匿分析巢统。

(4)加密装置在密文c中包含密文d和检测密文d的改变的检测要素e,因此,能够防止密文d的改变。

(5)密文转换装置使用检测要素e验证密文d有无改变后,在判断为没有改变的情况下,将密文c转换成密文rc。由此,能够对同态运算装置提供未被改变的密文c。

***其他结构***

并且,在本实施方式中,作为处理器91示出的“部”的功能通过软件实现,但是,作为变形例,作为处理器91示出的“部”的功能也可以通过硬件实现。

图22示出作为处理器91示出的“部”的功能通过作为硬件的处理电路99实现的情况。处理电路99与信号线99a连接。通过处理电路99实现所述作为处理器91示出的“部”的功能和“保管部”的功能。处理电路99是实现作为处理器91示出的“部”的功能和“保管部”的功能的专用电子电路。具体而言,处理电路99是单一电路、复合电路、程序化的处理器、并列程序化的处理器、逻辑ic、ga(gatearray:门阵列)、asic(applicationspecificintegratedcircuit:面向特定用途的集成电路)或fpga(field-programmablegatearray:现场可编程门阵列)。

作为处理器91示出的“部”的功能可以由一个处理电路99实现,也可以分散在多个处理电路99中实现。

作为另一个变形例,图2~图10所示的装置也可以由软件和硬件的组合来实现。即,也可以是,图2~图10所示的装置的一部分功能由专用硬件实现,其余功能由软件实现。

将处理器91、存储装置92和处理电路99统称作“处理电路系统”。即,图2~图10中的作为处理器91示出的“部”的功能和“保管部”由处理电路系统实现。

可以将作为处理器91示出的“部”改写成“工序”或“步骤”或“处理”。并且,也可以利用固件实现作为处理器91示出的“部”的功能。

并且,图2~图10所示的共享参数生成装置200~第2解密装置1000的动作能够作为方法、程序来理解。加密装置500通过加密程序进行动作。加密装置500的动作是加密方法。并且,密文转换装置700通过密文转换程序进行动作。密文转换装置700的动作是密文转换方法。

另外,在实施方式1中使用了公开密钥pk、解密密钥sk,但是,也可以使公开密钥pk和解密密钥的作用相反,在解密中使用公开密钥pk。这对于公开密钥epk、解密密钥esk也是同样的。

标号说明

pub:共享参数;rc:密文;pk:第1公开密钥;sk:第1解密密钥;epk:第2公开密钥;esk:第2解密密钥;rk:转换密钥;91:处理器;92:存储装置;93:输入接口;94:输出接口;99:处理电路;99a:信号线;100:隐匿分析系统;101:互联网;200:共享参数生成装置;201:输入部;202:共享参数生成部;203:发送部;300:第1密钥生成装置;301:输入部;302:密钥生成部;303:密钥发送部;400:第2密钥生成装置;401:输入部;402:密钥生成部;403:密钥发送部;500:加密装置;501:接收部;502:保管部;503:输入部;504:加密部;505:检测要素生成部;506:发送部;600:转换密钥生成装置;601:接收部;602:保管部;603:输入部;604:转换密钥生成部;605:发送部;700:密文转换装置;701:接收部;702:保管部;703:输入部;704:改变检测部;705:密文转换部;706:发送部;800:同态运算装置;801:接收部;802:保管部;803:输入部;804:同态运算部;805:发送部;900:第1解密装置;901:接收部;902:保管部;903:输入部;904:解密处理部;905:发送部;1000:第2解密装置;1001:接收部;1002:保管部;1003:输入部;1004:解密处理部;1005:发送部。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1