转换密钥生成装置、密文转换装置、隐匿信息处理系统、转换密钥生成方法、转换密钥生成程序、密文转换方法和密文转换程序与流程

文档序号:21789799发布日期:2020-08-07 20:43阅读:215来源:国知局
转换密钥生成装置、密文转换装置、隐匿信息处理系统、转换密钥生成方法、转换密钥生成程序、密文转换方法和密文转换程序与流程

本发明涉及同态加密中的代理重加密技术。



背景技术:

同态加密是指能够在加密的状态下运算数据的加密技术。将在密文的状态下运算数据的处理称作同态运算,可进行同态运算的运算的种类和次数根据具体方式而不同。通过使用同态加密,能够将数据保持加密地保管在云上的数据库中,并且针对保管着的加密数据,无需解密即可实施统计处理等分析。由此,能够在确保隐匿性的同时使用云。

同态加密具有如下性质:为了进行同态运算,必须用相同的公开密钥对密文进行加密。因此,在多人将数据保管在云中进而对保管着的数据进行同态运算的情况下,全员都需要使用公共密钥。此外,由于全员都使用公共密钥,因此,产生谁都能够对数据进行解密的课题。

专利文献1中记载有:使用被称作代理重加密的转换对数据进行加密的密钥的技术,将利用不同密钥加密的密文转换成利用特定的1个密钥加密的密文。由此,专利文献1中,能够在将密文转换成基于特定的相同密钥的密文后,进行同态运算。此外,专利文献1中,仅具有利用代理重加密转换后的密钥的人能够对同态运算结果密文进行解密。

即,在专利文献1记载的技术中,能够对利用不同密钥加密的多个密文进行同态运算。由此,全员需要使用公共密钥的课题得到解决。

现有技术文献

专利文献

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



技术实现要素:

发明要解决的课题

但是,在专利文献1记载的技术中,在进行同态运算前必须通过代理重加密对密文进行转换。换言之,在专利文献1记载的技术中,在对密文进行代理重加密前无法进行同态运算。因此,在进行同态运算前,需要决定转换成谁可解密的密文。因此,在决定分析负责人前无法通过同态运算进行分析。此外,为了某个分析负责人而通过同态运算进行分析的结果也无法被其他分析负责人分析。

本发明的目的在于,能够实现如下的同态加密方式:在对利用不同密钥进行加密而成的多个密文进行同态运算后,能够通过代理重加密来控制解密者。

用于解决课题的手段

本发明的转换密钥生成装置具有:密钥取得部,其取得解密密钥与公开密钥的多个对中的转换源对的解密密钥ski、和转换目标对的公开密钥pkj;以及转换密钥生成部,其利用所述公开密钥pkj对由所述密钥取得部取得的所述解密密钥ski进行加密,生成转换密钥rki→j,该转换密钥rki→j用于将利用所述转换源对的公开密钥pki进行加密而成的密文转换成能够利用所述转换目标对的解密密钥skj进行解密的转换后密文。

发明效果

在本发明中,利用转换目标对的公开密钥pkj对转换源对的解密密钥ski进行加密而生成转换密钥rki→j,该转换密钥rki→j用于将利用公开密钥pki进行加密而成的密文转换成能够利用转换目标对的解密密钥skj进行解密的转换后密文。通过使用该转换密钥rki→j,能够控制可对利用不同密钥进行加密而成的多个密文进行同态运算后的密文进行解密的解密密钥。

附图说明

图1是实施方式1的隐匿信息处理系统10的结构图。

图2是实施方式1的公共参数生成装置20的结构图。

图3是实施方式1的密钥生成装置30的结构图。

图4是实施方式1的转换密钥生成装置40的结构图。

图5是实施方式1的加密装置50的结构图。

图6是实施方式1的同态运算装置60的结构图。

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

图8是实施方式1的解密装置80的结构图。

图9是示出实施方式1的公共参数生成装置20的动作的流程图。

图10是示出实施方式1的密钥生成装置30的动作的流程图。

图11是示出实施方式1的转换密钥生成装置40的动作的流程图。

图12是示出实施方式1的加密装置50的动作的流程图。

图13是示出实施方式1的同态运算装置60的动作的流程图。

图14是示出实施方式1的密文转换装置70的动作的流程图。

图15是示出实施方式1的解密装置80的动作的流程图。

图16是变形例1的公共参数生成装置20的结构图。

图17是变形例1的密钥生成装置30的结构图。

图18是变形例1的转换密钥生成装置40的结构图。

图19是变形例1的加密装置50的结构图。

图20是变形例1的同态运算装置60的结构图。

图21是变形例1的密文转换装置70的结构图。

图22是变形例1的解密装置80的结构图。

具体实施方式

实施方式1

***结构的说明***

参照图1,说明实施方式1的隐匿信息处理系统10的结构。

隐匿信息处理系统10具有公共参数生成装置20、多个密钥生成装置30、转换密钥生成装置40、加密装置50、同态运算装置60、密文转换装置70以及多个解密装置80。

公共参数生成装置20、多个密钥生成装置30、转换密钥生成装置40、加密装置50、同态运算装置60、密文转换装置70以及解密装置80经由传输路径90连接。作为具体例子,传输路径90是互联网或lan(localareanetwork:局域网)。

参照图2,说明实施方式1的公共参数生成装置20的结构。

公共参数生成装置20具有处理器21、内存22、存储器23、通信接口24这些硬件。处理器21经由信号线与其他硬件连接,控制这些其他硬件。

作为功能结构要素,公共参数生成装置20具有取得部211、公共参数生成部212和输出部213。公共参数生成装置20的各功能结构要素的功能由软件来实现。

存储器23中存储有实现公共参数生成装置20的各功能结构要素的功能的程序。该程序被处理器21读入到内存22并由处理器21执行。由此,实现公共参数生成装置20的各功能结构要素的功能。

此外,存储器23实现参数存储部231的功能。

参照图3,说明实施方式1的密钥生成装置30的结构。

密钥生成装置30具有处理器31、内存32、存储器33、通信接口34这些硬件。处理器31经由信号线与其他硬件连接,控制这些其他硬件。

作为功能结构要素,密钥生成装置30具有取得部311、密钥生成部312和输出部313。密钥生成装置30的各功能结构要素的功能由软件来实现。

存储器33中存储有实现密钥生成装置30的各功能结构要素的功能的程序。该程序被处理器31读入到内存32并由处理器31执行。由此,实现密钥生成装置30的各功能结构要素的功能。

此外,存储器33实现密钥存储部331的功能。

参照图4,说明实施方式1的转换密钥生成装置40的结构。

转换密钥生成装置40具有处理器41、内存42、存储器43、通信接口44这些硬件。处理器41经由信号线与其他硬件连接,控制这些其他硬件。

作为功能结构要素,转换密钥生成装置40具有密钥取得部411、转换密钥生成部412和输出部413。转换密钥生成装置40的各功能结构要素的功能由软件来实现。

存储器43中存储有实现转换密钥生成装置40的各功能结构要素的功能的程序。该程序被处理器41读入到内存42并由处理器41执行。由此,实现转换密钥生成装置40的各功能结构要素的功能。

此外,存储器43实现密钥存储部431的功能。

参照图5,说明实施方式1的加密装置50的结构。

加密装置50具有处理器51、内存52、存储器53、通信接口54这些硬件。处理器51经由信号线与其他硬件连接,控制这些其他硬件。

作为功能结构要素,加密装置50具有取得部511、加密部512和输出部513。加密装置50的各功能结构要素的功能由软件来实现。

存储器53中存储有实现加密装置50的各功能结构要素的功能的程序。该程序被处理器51读入到内存52并由处理器51执行。由此,实现加密装置50的各功能结构要素的功能。

此外,存储器53实现密钥存储部531的功能。

参照图6,说明实施方式1的同态运算装置60的结构。

同态运算装置60具有处理器61、内存62、存储器63、通信接口64这些硬件。处理器61经由信号线与其他硬件连接,控制这些其他硬件。

作为功能结构要素,同态运算装置60具有取得部611、同态运算部612和输出部613。同态运算装置60的各功能结构要素的功能由软件来实现。

存储器63中存储有实现同态运算装置60的各功能结构要素的功能的程序。该程序被处理器61读入到内存62并由处理器61执行。由此,实现同态运算装置60的各功能结构要素的功能。

此外,存储器63实现密钥存储部631和密文存储部632的功能。

参照图7,说明实施方式1的密文转换装置70的结构。

密文转换装置70具有处理器71、内存72、存储器73、通信接口74这些硬件。处理器71经由信号线与其他硬件连接,控制这些其他硬件。

作为功能结构要素,密文转换装置70具有取得部711、密文转换部712和输出部713。取得部711具有密文取得部714和密钥取得部715。密文转换装置70的各功能结构要素的功能由软件来实现。

存储器73中存储有实现密文转换装置70的各功能结构要素的功能的程序。该程序被处理器71读入到内存72并由处理器71执行。由此,实现密文转换装置70的各功能结构要素的功能。

此外,存储器73实现密钥存储部731的功能。

参照图8,说明实施方式1的解密装置80的结构。

解密装置80具有处理器81、内存82、存储器83、通信接口84这些硬件。处理器81经由信号线与其他硬件连接,控制这些其他硬件。

作为功能结构要素,解密装置80具有取得部811、解密部812和输出部813。解密装置80的各功能结构要素的功能由软件来实现。

存储器83中存储有实现解密装置80的各功能结构要素的功能的程序。该程序被处理器81读入到内存82并由处理器81执行。由此,实现解密装置80的各功能结构要素的功能。

此外,存储器83实现密钥存储部831的功能。

处理器21、31、41、51、61、71、81是进行运算处理的ic(integratedcircuit:集成电路)。作为具体例子,处理器21、31、41、51、61、71、81是cpu(centralprocessingunit:中央处理单元)、dsp(digitalsignalprocessor:数字信号处理器)、gpu(graphicsprocessingunit:图形处理单元)。

内存22、32、42、52、62、72、82是临时存储数据的存储装置。作为具体例子,内存22、32、42、52、62、72、82是sram(staticrandomaccessmemory:静态随机存取存储器)、dram(dynamicrandomaccessmemory:动态随机存取存储器)。

存储器23、33、43、53、63、73、83是保管数据的存储装置。作为具体例子,存储器23、33、43、53、63、73、83是hdd(harddiskdrive:硬盘驱动器)。此外,存储器23、33、43、53、63、73、83也可以是sd(注册商标,securedigital:安全数字)存储卡、cf(compactflash,注册商标)、nand闪存、软盘、光盘、压缩盘、蓝光(注册商标)盘、dvd(digitalversatiledisk:数字多功能盘)这些移动存储介质。

通信接口24、34、44、54、64、74、84是用于与外部装置进行通信的接口。作为具体例子,通信接口24、34、44、54、64、74、84是ethernet(注册商标)、usb(universalserialbus:通用串行总线)、hdmi(注册商标,high-definitionmultimediainterface:高清晰度多媒体接口)的端口。

图2中,仅示出1个处理器21。但是,公共参数生成装置20也可以具有代替处理器21的多个处理器。同样,密钥生成装置30也可以具有代替处理器31的多个处理器。转换密钥生成装置40也可以具有代替处理器41的多个处理器。加密装置50也可以具有代替处理器51的多个处理器。同态运算装置60也可以具有代替处理器61的多个处理器。密文转换装置70也可以具有代替处理器71的多个处理器。解密装置80也可以具有代替处理器81的多个处理器。

这些多个处理器分担执行实现各功能结构要素的功能的程序。各个处理器与处理器21、31、41、51、61、71、81相同,是进行运算处理的ic。

***动作的说明***

参照图9~图15,说明实施方式1的隐匿信息处理系统10的动作。

实施方式1的隐匿信息处理系统10的动作相当于实施方式1的隐匿信息处理方法。此外,实施方式1的隐匿信息处理系统10的动作相当于实施方式1的隐匿信息处理程序的处理。

实施方式1中,隐匿信息处理系统10使用已有的多密钥同态加密。作为已有的多密钥同态加密,能够使用非专利文献1:c.peikertands.shiehian.“multi-keyfhefromlwe,revisited”.intcc,2016.和非专利文献2:z.brakerskiandr.perlman.“lattice-basedfullydynamicmulti-keyfhewithshortciphertexts”.incrypto,2016.这些文献中记载的方式。

多密钥同态加密具有setup算法、kg算法、enc算法、dec算法和eval算法。setup算法是生成公共参数的算法。kg算法是生成解密密钥与公开密钥的对的算法。enc算法是对数据进行加密而生成密文的算法。dec算法是对密文进行解密的算法。eval算法是进行同态运算的算法。

参照图9,说明实施方式1的公共参数生成装置20的动作。

实施方式1的公共参数生成装置20的动作相当于实施方式1的公共参数生成方法。此外,实施方式1的公共参数生成装置20的动作相当于实施方式1的公共参数生成程序的处理。

(步骤s11:取得处理)

取得部211受理公共参数的生成所需的参数的输入。作为具体例子,参数是非专利文献1中的安全参数λ、密钥的个数k、布尔电路的深度d。取得部211将取得的参数写入到内存22。

(步骤s12:公共参数生成处理)

公共参数生成部212从内存22读出在步骤s11中取得的参数。公共参数生成部212将读出的参数作为输入来执行多密钥同态加密中的setup算法,生成公共参数pp。公共参数生成部212将生成的公共参数pp写入到内存22。

(步骤s13:输出处理)

输出部213从内存22读出在步骤s12中生成的公共参数pp。输出部213将读出的公共参数pp写入到存储器23。

此外,输出部213经由通信接口24将公共参数pp发送到各密钥生成装置30。在各密钥生成装置30中,取得部311经由通信接口34接收公共参数pp并写入到密钥存储部331。

参照图10,说明实施方式1的密钥生成装置30的动作。

实施方式1的密钥生成装置30的动作相当于实施方式1的密钥生成方法。此外,实施方式1的密钥生成装置30的动作相当于实施方式1的密钥生成程序的处理。

(步骤s21:密钥生成处理)

密钥生成部312从密钥存储部331中读出公共参数pp。密钥生成部312将读出的公共参数pp作为输入来执行多密钥同态加密中的kg算法,生成解密密钥sk与公开密钥pk的对。密钥生成部312将生成的解密密钥sk与公开密钥pk的对写入到内存32。

(步骤s22:输出处理)

输出部313从内存32中读出在步骤s21中生成的解密密钥sk与公开密钥pk的对。输出部313将读出的解密密钥sk与公开密钥pk的对写入到密钥存储部331。

此外,输出部313经由通信接口34,将公开密钥pk发送到转换密钥生成装置40、加密装置50和同态运算装置60。于是,在转换密钥生成装置40中,密钥取得部411经由通信接口44接收公开密钥pk并写入到密钥存储部431。同样,在加密装置50中,取得部511经由通信接口54接收公开密钥pk并写入到密钥存储部531。同样,在同态运算装置60中,取得部611经由通信接口64接收公开密钥pk并写入到密钥存储部631。

此外,输出部313经由通信接口34,将解密密钥sk发送到转换密钥生成装置40和对应的解密装置80。对应的解密装置80是指分配给解密密钥sk的使用者的解密装置80。这里,密钥生成装置30与解密装置80一对一对应,解密密钥sk被发送到与生成该解密密钥sk的密钥生成装置30对应的解密装置80。于是,在转换密钥生成装置40中,密钥取得部411经由通信接口44接收解密密钥sk并写入到密钥存储部431。同样,在解密装置80中,取得部811经由通信接口84接收解密密钥sk并写入到密钥存储部831。

在以下的说明中,将由多个密钥生成装置30中的第ι个密钥生成装置30生成的解密密钥sk称作解密密钥skι,将由第ι个密钥生成装置30生成的公开密钥pk称作公开密钥pkι。

参照图11,说明实施方式1的转换密钥生成装置40的动作。

实施方式1的转换密钥生成装置40的动作相当于实施方式1的转换密钥生成方法。此外,实施方式1的转换密钥生成装置40的动作相当于实施方式1的转换密钥生成程序的处理。

这里,说明生成转换密钥rki→j的情况,该转换密钥rki→j用于将利用由第i个密钥生成装置30生成的公开密钥pki进行加密而成的密文转换成能够利用由第j个密钥生成装置30生成的解密密钥skj进行解密的密文。

(步骤s31:密钥取得处理)

密钥取得部411读出密钥存储部431中存储的解密密钥与公开密钥的多个对中的转换源对的解密密钥ski、和转换目标对的公开密钥pkj。密钥取得部411将读出的解密密钥ski与公开密钥pkj写入到内存42。

(步骤s32:转换密钥生成处理)

转换密钥生成部412从内存42读出解密密钥ski与公开密钥pkj。转换密钥生成部412将读出的解密密钥ski与公开密钥pkj作为输入来执行多密钥同态加密中的rkgen算法,利用公开密钥pkj对解密密钥ski进行加密来生成转换密钥rki→j。转换密钥rki→j是用于将利用转换源对的公开密钥pki进行加密而成的密文转换成能够利用转换目标对的解密密钥skj进行解密的转换后密文的密钥。转换密钥生成部412将生成的转换密钥rki→j写入到内存42。

(步骤s33:输出生成处理)

输出部413从内存42读出在步骤s32中生成的转换密钥rki→j。输出部413经由通信接口44将读出的转换密钥rki→j发送到密文转换装置70。于是,在密文转换装置70中,取得部711经由通信接口74接收转换密钥rki→j并写入到密钥存储部731。

参照图12,说明实施方式1的加密装置50的动作。

实施方式1的加密装置50的动作相当于实施方式1的加密方法。此外,实施方式1的加密装置50的动作相当于实施方式1的加密程序的处理。

(步骤s41:取得处理)

取得部511经由通信接口54取得作为加密对象的明文m。取得部511将取得的明文m写入到内存52。

(步骤s42:加密处理)

加密部512从内存52读出在步骤s41中取得的明文m。加密部512从密钥存储部531读出公开密钥pk。加密部512将读出的明文m与公开密钥pk作为输入来执行多密钥同态加密中的enc算法,利用公开密钥pk对明文m进行加密来生成密文c。加密部512将生成的密文c写入到内存52。

(步骤s43:输出处理)

输出部513从内存52读出在步骤s42中生成的密文c。输出部513经由通信接口54将读出的密文c发送到同态运算装置60。于是,在同态运算装置60中,取得部611经由通信接口64接收密文c并写入到密文存储部632。

参照图13,说明实施方式1的同态运算装置60的动作。

实施方式1的同态运算装置60的动作相当于实施方式1的同态运算方法。此外,实施方式1的同态运算装置60的动作相当于实施方式1的同态运算程序的处理。

(步骤s51:取得处理)

取得部611从密文存储部632读出作为处理对象的密文ct。此外,取得部611经由通信接口64取得表示运算内容的运算f。例如,同态运算装置60的使用者经由输入装置输入运算f。取得部611将读出的密文tc和取得的运算f写入到内存62。

作为处理对象的密文tc可以是1个,也可以是多个。此外,作为处理对象的密文tc是由加密装置50生成的密文c、和由同态运算装置60进行同态运算后的密文ec中的至少任意一个。

(步骤s52:同态运算处理)

同态运算部612从内存62读出在步骤s51中读出的密文tc和取得的运算f。此外,同态运算部612从密钥存储部631读出密文tc的加密中使用的公开密钥pk。同态运算部612将读出的密文tc、运算f以及公开密钥pk作为输入来执行多密钥同态加密中的eval算法,生成对密文tc实施运算f而成的密文ec。同态运算部612将生成的密文ec写入内存62。

(步骤s53:输出处理)

输出部613从内存62读出在步骤s52中生成的密文ec。输出部613将读出的密文ec写入到密文存储部632。

参照图14,说明实施方式1的密文转换装置70的动作。

实施方式1的密文转换装置70的动作相当于实施方式1的密文转换方法。此外,相当于实施方式1的密文转换程序的处理。

(步骤s61:取得处理)

取得部711经由通信接口74从同态运算装置60取得作为处理对象的密文tc。具体而言,取得部711将作为处理对象的密文tc的标识符发送到同态运算装置60,取得作为响应而发送的密文tc。取得部811将取得的密文tc写入到内存72。

作为处理对象的密文tc是由加密装置50生成的密文c、和由同态运算装置60进行同态运算后的密文ec中的至少任意一个。

这里,假设作为处理对象的密文tc是对利用关于i=1,…,s的各整数i的公开密钥pki进行加密而成的密文进行同态运算而生成的密文ec。此外,假设将作为处理对象的密文tc转换成能够利用由第j个密钥生成装置30生成的解密密钥skj进行解密的密文。

(步骤s62:密文转换处理)

密文转换部712利用转换源对的解密密钥即关于i=1,…,s的各整数i的解密密钥ski,通过同态运算对作为处理对象的密文tc进行解密,生成转换后密文rc。

具体而言,密文转换部712将转换目标对的公开密钥pkj和密文tc作为输入来执行多密钥同态加密中的enc算法,通过公开密钥pkj对密文tc进行加密来生成密文c。密文转换部712将密文c、运算fdec、公开密钥pkj以及关于i=1,…,s的各整数i的转换密钥rki→j作为输入来执行多密钥同态加密中的eval算法,生成对密文c实施运算fdec而成的转换后密文rc。

这里,运算fdec是表示多密钥同态加密中的dec算法的运算。即,将密文c、运算fdec、公开密钥pkj以及关于i=1,…,s的各整数i的转换密钥rki→j作为输入来执行多密钥同态加密中的eval算法时,利用转换密钥rki→j中嵌入的解密密钥ski对密文c进行解密。即,利用解密密钥ski,通过同态运算对密文c进行解密。

(步骤s63:输出处理)

输出部713从内存72读出在步骤s62中生成的转换后密文rc。输出部713经由通信接口74将读出的转换后密文rc发送到同态运算装置60。于是,在同态运算装置60中,取得部611经由通信接口64接收转换后密文rc并写入到密文存储部632。

参照图15,说明实施方式1的解密装置80的动作。

实施方式1的解密装置80的动作相当于实施方式1的解密方法。此外,实施方式1的解密装置80的动作相当于实施方式1的解密程序的处理。

(步骤s71:取得处理)

取得部811经由通信接口84从同态运算装置60取得作为处理对象的密文tc。具体而言,取得部811将作为处理对象的密文tc的标识符发送到同态运算装置60取得作为响应而发送的密文tc。取得部811将取得的密文tc写入到内存82。

(步骤s72:解密处理)

解密部812从内存82读出在步骤s71中取得的密文tc。解密部812将读出的密文tc作为输入来执行多密钥同态加密中的dec算法,对密文tc进行解密来生成明文m’。解密部812将生成的明文m’写入到内存82。

(步骤s73:输出处理)

输出部813从内存82读出在步骤s72中生成的明文m’。输出部813经由通信接口84输出读出的明文m’。

***实施方式1的效果***

如上所述,在实施方式1的隐匿信息处理系统10中,转换密钥生成装置40利用作为转换目标的公开密钥pkj对作为转换源的解密密钥ski进行加密,由此生成转换密钥rki→j。由此,通过使用该转换密钥rki→j,能够将利用作为转换源的公开密钥pki进行加密并进行同态运算后的密文转换成能够利用解密密钥skj进行解密的密文。

在专利文献1记载的技术中,在通过代理重加密转换的目标密钥确定之前无法进行同态运算,无法事先对数据进行处理。此外,在多人想使用同态运算后的数据的情况下,必须在通过代理重加密将对同态运算前的数据进行加密的密钥转换成数据使用者各自的密钥后,进行同态运算。因此,必须对各个数据使用者的基于密钥的密文分别进行同态运算,从而无法重新使用同态运算结果。

与此相对,在实施方式1的隐匿信息处理系统10中,通过密文转换装置70对同态运算后密文进行转换,由此能够将加密后的明文保持为隐匿,并且能够在不改变明文的情况下对同态运算后密文的密钥进行转换。由此,即使在想针对多个密钥转换同态运算后密文的情况下,也不需要再次执行同态运算。此外,通过保管同态运算后密文,能够安全地重新使用运算中途的数据。

考虑独立设置进行同态运算的计算机和进行代理重加密的计算机,使得对于密文的保管和针对密文的运算,使云等存储容量大且计算能力高的计算机进行处理,对于密钥的转换,由安全性高的计算机进行处理。

该情况下,在专利文献1记载的技术中,需要在将用于运算的密文全部发送到代理重加密用的计算机而对密钥进行转换后,将转换后的密文全部再次发送到云。因此,必须进行通信的密文的量增多。

与此相对,在实施方式1的隐匿信息处理系统10中,能够仅将想解密的同态运算后的密文发送到密文转换装置70,生成转换后密文。因此,即使同态运算装置60和密文转换装置70处于不同的计算机内,必须通信的密文也可以较少。

***其他结构***

<变形例1>

在实施方式1中,是用软件实现各功能结构要素。但是,作为变形例1,也可以用硬件实现各功能结构要素。对于该变形例1,说明与实施方式1的不同点。

参照图16,说明变形例1的公共参数生成装置20的结构。

在用硬件实现功能的情况下,公共参数生成装置20具有电子电路25来替代处理器21、内存22和存储器23。电子电路25是实现公共参数生成装置20的功能结构要素以及内存22和存储器23的功能的专用电路。

参照图17,说明变形例1的密钥生成装置30的结构。

在用硬件实现功能的情况下,密钥生成装置30具有电子电路35来替代处理器31、内存32和存储器33。电子电路35是实现密钥生成装置30的功能结构要素以及内存32和存储器33的功能的专用电路。

参照图18,说明变形例1的转换密钥生成装置40的结构。

在用硬件实现功能的情况下,转换密钥生成装置40具有电子电路45来替代处理器41、内存42和存储器43。电子电路45是实现转换密钥生成装置40的功能结构要素以及内存42和存储器43的功能的专用电路。

参照图19,说明变形例1的加密装置50的结构。

在用硬件实现功能的情况下,加密装置50具有电子电路55来替代处理器51、内存52和存储器53。电子电路55是实现加密装置50的功能结构要素以及内存52和存储器53的功能的专用电路。

参照图20,说明变形例1的同态运算装置60的结构。

在用硬件实现功能的情况下,同态运算装置60具有电子电路65来替代处理器61、内存62和存储器63。电子电路65是实现同态运算装置60的功能结构要素以及内存62和存储器63的功能的专用电路。

参照图21,说明变形例1的密文转换装置70的结构。

在用硬件实现功能的情况下,密文转换装置70具有电子电路75来替代处理器71、内存72和存储器73。电子电路75是实现密文转换装置70的功能结构要素以及内存72和存储器73的功能的专用电路。

参照图22,说明变形例1的解密装置80的结构。

在用硬件实现功能的情况下,解密装置80具有电子电路85来替代处理器81、内存82和存储器83。电子电路85是实现解密装置80的功能结构要素以及内存82和存储器83的功能的专用电路。

假设电子电路25、35、45、55、65、75、85为单一电路、复合电路、程序化的处理器、并行程序化的处理器、逻辑ic、ga(gatearray:门阵列)、asic(applicationspecificintegratedcircuit:面向特定用途的集成电路)、fpga(field-programmablegatearray:现场可编程门阵列)。

可以由1个电子电路25实现公共参数生成装置20的各功能结构要素的功能,也可以将各功能结构要素的功能分散到多个电子电路25中来实现。同样,针对密钥生成装置30、转换密钥生成装置40、加密装置50、同态运算装置60、密文转换装置70以及解密装置80的各个装置,可以由1个电子电路35、45、55、65、75、85实现各功能结构要素的功能,也可以将各功能结构要素的功能分散到多个电子电路35、45、55、65、75、85中来实现。

<变形例2>

作为变形例2,可以用硬件实现一部分功能,用软件实现其他功能。即,在各功能结构要素中,可以用硬件实现一部分功能,用软件实现其他功能。

将处理器21、31、41、51、61、71、81、内存22、32、42、52、62、72、82、存储器23、33、43、53、63、73、83以及电子电路25、35、45、55、65、75、85称作处理电路。即,各功能结构要素的功能通过处理电路来实现。

实施方式2

在实施方式2中,对基于非专利文献1记载的多密钥同态加密方式的具体方式进行说明。在实施方式2中,对基于非专利文献1记载的large-ciphertxtconstruction的方式进行说明。在实施方式2中,对与实施方式1不同的部分进行说明,针对相同的部分省略说明。

***符号和定义***

在a为分布时,y←a表示从a中按照该分布随机选择y。在a为集合时,y←a表示从a中同样地选择y。在a为算法时,y←a(x)表示针对输入x生成输出y。

设n、q、χ为某个lwe(learningwitherrors:带错误学习)参数。设m=o(nlogq)。设l为logq以上的最小整数。设g:=(1,2,…,2l-1)。针对任意的x∈zq,设y:=g-1[x]∈{0,1}l为满足<y,g>=x∈zq的向量。针对任意的自然数n、m,设in为n×n的单位矩阵,设0n×m为元素全部为0的n×m的矩阵,设1n×m为元素全部为1的n×m的矩阵。针对任意的i∈[n],设ei∈{0,1}n为第n元素为1且其他为0的标准基向量。[a||b]表示向量或矩阵a、b的级联。

***动作的说明***

参照图9,说明实施方式2的公共参数生成装置20的动作。

步骤s11和步骤s13的处理与实施方式1相同。

(步骤s12:公共参数生成处理)

如数式11所示,公共参数生成部212执行多密钥同态加密中的setup算法,生成公共参数pp。

【数式11】

参照图10,说明实施方式2的密钥生成装置30的动作。

步骤s22的处理与实施方式1相同。

(步骤s21:密钥生成处理)

如数式12所示,密钥生成部312执行多密钥同态加密中的kg算法,生成解密密钥sk与公开密钥pk的对。

【数式12】

参照图11,说明实施方式2的转换密钥生成装置40的动作。

步骤s31和步骤s33的处理与实施方式1相同。

(步骤s32:转换密钥生成处理)

如数式13所示,转换密钥生成部412将解密密钥ski与公开密钥pkj作为输入来执行多密钥同态加密中的rkgen算法,通过公开密钥pkj对解密密钥ski进行加密来生成转换密钥rki→j。

【数式13】

参照图12,说明实施方式2的加密装置50的动作。

步骤s41和步骤s43的处理与实施方式1相同。

(步骤s42:加密处理)

这里,设利用由第i个密钥生成装置30生成的公开密钥pki对明文m进行加密。

如数式14所示,加密部512将明文m与公开密钥pki作为输入来执行多密钥同态加密中的enc算法,利用公开密钥pk对明文m进行加密来生成密文c。

【数式14】

参照图13,说明实施方式2的同态运算装置60的动作。

步骤s51和步骤s53的处理与实施方式1相同。

(步骤s52:同态运算处理)

同态运算部612将在步骤s51中输入的各密文tc作为对象,将对象密文tc与公开密钥pki作为输入,如数式15所示,执行多密钥同态加密中的extend算法来计算密文c’。

【数式15】

在数式15中,s是index的元素数。

同态运算部612执行多密钥同态加密中的eval算法,生成对密文tc实施运算f而成的密文ec。

例如,同态运算部612如数式16所示,进行两个密文tc即c1和c2的相加。

【数式16】

eval(c1=(ct1,f1,d1,index),c2=(ct2,f2,d2,index)):

(ctadd,fadd,dadd,indexadd)

:=(ct1+ct2,f1+f2,d1+d2,index),

ec=(ctadd,fadd,dadd,indexadd).

此外,例如,同态运算部612如数式17所示,进行两个密文tc即c1和c2的相乘。

【数式17】

参照图14,说明实施方式2的密文转换装置70的动作。

步骤s61和步骤s63的处理与实施方式1相同。

(步骤s62:密文转换处理)

这里,设将利用关于i=1,…,s的各整数i的公开密钥pki进行加密而成的密文作为输入而进行同态运算后的密文ec,转换成能够利用由第j个密钥生成装置30生成的解密密钥skj进行解密的密文。即,index=[1||,…,||s]。

密文转换部712将关于i=1,…,s的各整数i的转换密钥rki→j、和进行同态运算后的密文ec即密文tc作为输入,如数式18所示执行reenc算法,生成转换后密文rc。

【数式18】

参照图15,说明实施方式2的解密装置80的动作。

步骤s71和步骤s73的处理与实施方式1相同。

(步骤s72:解密处理)

解密部812将密文tc作为输入,如数式19所示,执行多密钥同态加密中的dec算法,对密文tc进行解密来生成明文m’。

【数式19】

dec(sk,tc:=(ct,f,d,index)):

m′;="t·ct/2l-2″.

在数式19中,ct是元素ct的右侧起第2列的列向量。“t·ct/2l-2”是指最接近t·ct/2l-2的整数。即,最接近t·ct/2l-2的整数是明文m’。

***实施方式2的效果***

实施方式2的隐匿信息处理系统10能够实现如下方式:可使用具体的多密钥同态加密方式,将进行同态运算后的密文转换成能够利用解密密钥skj进行解密的密文。

另外,在实施方式1中,是密文转换装置70通过同态运算算法对密文进行转换。与此相对,在实施方式2中,密文转换装置70在不使用同态运算算法的情况下对密文进行转换。因此,能够减少计算量。

实施方式3

在实施方式3中,与实施方式2同样,对基于非专利文献1记载的多密钥同态加密方式的具体方式进行说明。在实施方式3中,对基于非专利文献1记载的smaller-ciphertxtconstruction的方式进行说明。在实施方式3中,对与实施方式2不同的部分进行说明,针对相同的部分省略说明。

***动作的说明***

参照图10,说明实施方式3的密钥生成装置30的动作。

步骤s22的处理与实施方式2相同。

(步骤s21:密钥生成处理)

如数式20所示,密钥生成部312执行多密钥同态加密中的kg算法,生成解密密钥sk与公开密钥pk的对。

【数式20】

参照图11,说明实施方式3的转换密钥生成装置40的动作。

步骤s31和步骤s33的处理与实施方式2相同。

(步骤s32:转换密钥生成处理)

如数式21所示,转换密钥生成部412将解密密钥ski与公开密钥pkj作为输入来执行多密钥同态加密中的rkgen算法,利用公开密钥pkj对解密密钥ski进行加密来生成转换密钥rki→j。

【数式21】

参照图12,说明实施方式3的加密装置50的动作。

步骤s41和步骤s43的处理与实施方式2相同。

(步骤s42:加密处理)

这里,设利用由第i个密钥生成装置30生成的公开密钥pki对明文m进行加密。

如数式22所示,加密部512将明文m与公开密钥pki作为输入来执行多密钥同态加密中的enc算法,利用公开密钥pk对明文m进行加密来生成密文c。

【数式22】

参照图13,说明实施方式3的同态运算装置60的动作。

步骤s51和步骤s53的处理与实施方式2相同。

(步骤s52:同态运算处理)

同态运算部612将在步骤s51中输入的各密文tc作为对象,将对象密文tc与公开密钥pki作为输入,如数式23所示,执行多密钥同态加密中的extend算法来计算密文c’。

【数式23】

在数式23中,s是index的元素数。

同态运算部612执行多密钥同态加密中的eval算法,生成对密文tc实施运算f而成的密文ec。

例如,同态运算部612如数式24所示,进行两个密文tc即c1和c2的相加。

【数式24】

eval(c1=(ct1,index),c2=(ct2,index)):

(ctadd,indexadd)

:=(ct1+ct2,index),

ec=(ctadd,indexadd).

此外,例如,同态运算部612如数式25所示,进行两个密文tc即c1和c2的相乘。

【数式25】

参照图14,说明实施方式3的密文转换装置70的动作。

步骤s61和步骤s63的处理与实施方式2相同。

(步骤s62:密文转换处理)

这里,设将利用关于i=1,…,s的各整数i的公开密钥pki进行加密而成的密文作为输入而进行同态运算后的密文ec,转换成能够利用由第j个密钥生成装置30生成的解密密钥skj进行解密的密文。

密文转换部712将关于i=1,…,s的各整数i的转换密钥rki→j、和进行同态运算后的密文ec即密文tc作为输入,如数式26所示执行reenc算法,生成转换后密文rc。

【数式26】

参照图15,说明实施方式3的解密装置80的动作。

步骤s71和步骤s73的处理与实施方式2相同。

(步骤s72:解密处理)

解密部812将密文tc作为输入,如数式27所示,执行多密钥同态加密中的dec算法,对密文tc进行解密来生成明文m’。

【数式27】

dec(sk,tc:=(ct,index)):

m′:=″t·ct/2l-2″.

在数式27中,ct是元素ct的右侧起第2列的列向量。“t·ct/2l-2”是指最接近t·ct/2l-2的整数。即,最接近t·ct/2l-2的整数是明文m’。

***实施方式3的效果***

如上所述,实施方式3的隐匿信息处理系统10能够实现如下方式:可使用具体的多密钥同态加密方式,将进行同态运算后的密文转换成能够利用解密密钥skj进行解密的密文。

由实施方式3的隐匿信息处理系统10实现的方式与由实施方式3的隐匿信息处理系统10实现的方式相比,公开密钥pk的元素数增多,但密文c的元素数减少。

标号说明

10:隐匿信息处理系统;20:公共参数生成装置;21:处理器;22:内存;23:存储器;24:通信接口;25:电子电路;211:取得部;212:公共参数生成部;213:输出部;231:参数存储部;30:密钥生成装置;31:处理器;32:内存;33:存储器;34:通信接口;35:电子电路;311:取得部;312:密钥生成部;313:输出部;331:密钥存储部;40:转换密钥生成装置;41:处理器;42:内存;43:存储器;44:通信接口;45:电子电路;411:密钥取得部;412:转换密钥生成部;413:输出部;431:密钥存储部;50:加密装置;51:处理器;52:内存;53:存储器;54:通信接口;55:电子电路;511:取得部;512:加密部;513:输出部;531:密钥存储部;60:同态运算装置;61:处理器;62:内存;63:存储器;64:通信接口;65:电子电路;611:取得部;612:同态运算部;613:输出部;631:密钥存储部;632:密文存储部;70:密文转换装置;71:处理器;72:内存;73:存储器;74:通信接口;75:电子电路;711:取得部;712:密文转换部;713:输出部;731:密钥存储部;80:解密装置;81:处理器;82:内存;83:存储器;84:通信接口;85:电子电路;811:取得部;812:解密部;813:输出部;831:密钥存储部;90:传输路径。

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