加密系统、同态签名方法和同态签名程序与流程

文档序号:14652019发布日期:2018-06-08 22:01阅读:879来源:国知局
加密系统、同态签名方法和同态签名程序与流程

本发明涉及加密系统、同态签名方法和同态签名程序。



背景技术:

电子签名是如下技术:签名者使用秘密密钥生成消息的签名,验证者使用验证密钥对签名和消息的组进行验证,由此,保证没有对消息进行篡改。为了检测针对消息的全部篡改,在通常的电子签名中,当针对消息生成签名时,在稍微对消息施加了改变的情况下就不会验证为正确的消息。由此,无法对生成了签名的消息进行任何编集。

另一方面,同态签名是指如下方式:能够针对生成了签名的消息在一定范围内进行改变,即,能够根据原来的消息的签名生成针对被改变的消息的签名。根据能够对消息进行改变的种类,提出了各种同态签名方式。例如,在专利文献1和非专利文献1中记载有如下方式:在将消息视为向量的情况下,能够从多个向量的签名改变成这些向量的线性和。并且,在非专利文献2中记载有在将消息视为集合的情况下能够改变成其部分集合的方式、以及在将消息视为字符串的情况下能够改变成其部分字符串的方式。

现有技术文献

专利文献

专利文献1:日本特开2014-158265号公报

非专利文献

非专利文献1:B.LIBERT,M.JOYE,M.YUNG“Linearly homomorphic structure-preserving signatures and their applications”Advances in Cryptology-CRYPTO 2013,LNCS 8043,289-307页,2013年

非专利文献2:N.ATTRAPADUNG,B.LIBERT,T.PETERS“Computing on Authenticated Data:New Privacy Definitions and Constructions”Advances in Cryptology-ASIACRYPT 2012,LNCS 7658,367-385页,2012年



技术实现要素:

发明要解决的课题

在同态签名中,在创造出多种应用的方面,需要使能够对消息进行改变的种类较多。在现有的任何同态签名中,都不存在作为改变的种类实现字符串的字符位置的交换的方式。这是因为,在现有方式中使用的数学构造和改变方法中,很难在确保了作为签名的安全性的前提下实现字符串的字符位置交换。即,在现有的同态签名中,存在作为改变的种类无法实现字符串的字符位置的交换这样的课题。

本发明的目的在于实现如下的同态签名方式:通过使用与此前的方式不同的数学构造,能够在确保了作为签名的安全性的前提下安全地实现字符串的字符位置的交换。

用于解决课题的手段

本发明的加密系统具有:签名生成装置,其使用签名密钥,针对包含N个(N为2以上的整数)字符的消息生成第1签名;以及同态运算装置,其使用所述第1签名和与所述签名密钥不同的同态密钥,生成在所述消息中调换位置不同的2个字符而得到的改变消息的第2签名。

发明效果

根据本发明的加密系统,能够使用签名和同态密钥生成在消息中调换位置不同的2个字符而得到的改变消息的第2签名,因此,发挥能够提供在确保了作为签名的安全性的前提下实现字符串的字符位置的交换的同态签名方式这样的效果。

附图说明

图1是实施方式1的加密系统100的系统结构图。

图2是示出实施方式1的密钥生成装置101的结构的图。

图3是示出实施方式1的签名生成装置102的结构的图。

图4是示出实施方式1的同态运算装置103的结构的图。

图5是示出实施方式1的签名验证装置104的结构的图。

图6是示出实施方式1的加密系统100的同态签名处理S100和同态签名方法500的流程的流程图。

图7是示出实施方式1的密钥生成处理S101的处理流程的流程图。

图8是实施方式1的密钥生成算法的执行处理即密钥生成算法执行处理(步骤S112)的流程图。

图9是实施方式1的密钥生成算法的执行处理即密钥生成算法执行处理(步骤S112)的流程图。

图10是示出实施方式1的签名生成处理S102的处理流程的流程图。

图11是实施方式1的签名生成算法的执行处理即签名生成算法执行处理(步骤S122)的流程图。

图12是示出实施方式1的同态运算处理S103的处理流程的流程图。

图13是实施方式1的同态运算算法的执行处理即同态运算算法执行处理(步骤S132)的流程图。

图14是示出实施方式1的签名验证处理S104的处理流程的流程图。

图15是实施方式1的签名验证算法的执行处理即签名验证算法执行处理(步骤S142)的流程图。

图16是示出实施方式1的变形例的密钥生成装置101的结构的图。

图17是示出实施方式1的变形例的签名生成装置102的结构的图。

图18是示出实施方式1的变形例的同态运算装置103的结构的图。

图19是示出实施方式1的变形例的签名验证装置104的结构的图。

具体实施方式

首先,下面对实施方式的说明中的记法进行说明。

(1)y←A表示在A为随机变量或分布时根据A的分布均匀随机地从A选择y,即y是A上的均匀随机数。

(2)y:=z表示y是通过z定义的集合或z被代入变量y中。

(3)Fq表示位数q的有限体。

(4)下述数学式1表示有限体Fq中的向量显示。

【数学式1】

(5)XT表示矩阵X的转置矩阵。

(6)B:=(b1、…、bN)、B*:=(b1*、…、bN*)表示由向量b1、…、bN和b1*、…、bN*构成的基B、B*

(7)下述数学式2表示基于基B和B*上的元素的系数向量的表记。

【数学式2】

(8)下述数学式3表示有限体Fq上的N维向量空间V。

【数学式3】

(9)下述数学式4表示空间V的标准基A:=(a1、…、aN)的ai

【数学式4】

(10)下述数学式5表示空间V中的配对的定义。

【数学式5】

接着,下面对实施方式的说明中的数学概念进行说明。

首先,对对称双线性配对组进行说明。

对称双线性配对组(q、G、GT、g、e)是质数q、将质数q设为位数q的加法循环组G、位数q的乘法循环组GT、g≠0∈G、能够利用多项式时间进行计算的非退化双线性配对e:G×G→GT的组。在非退化双线性配对中,e(sg、tg)=e(g、g)st,e(g、g)≠1。

接着,对对偶配对向量空间进行说明。

对偶配对向量空间(q、V、GT、A、e)可以由对称双线性配对组(q、G、GT、g、e)的直积构成。对偶配对向量空间(q、V、GT、A、e)是质数q、数学式3所示的Fq上的N维向量空间V、位数q的乘法循环组GT、空间V的标准基A:=(a1、…、aN)、配对e的组。ai如数学式4所示。

空间V中的配对由数学式5来定义。这是非退化双线性。即,e(sx、ty)=e(x、y)st,针对全部的y∈V,在e(x、y)=1的情况下,x=0。并且,针对全部的i和j,e(ai、aj)=e(g、g)δi、j。这里,如果i=j,则δi、j,如果i≠j,则δi、j=0。并且,e(g、g)≠1∈GT

另外,在本实施方式中,对通过上述对称双线性配对组构成对偶配对向量空间的情况进行说明。另外,也可以通过非对称双线性配对组构成对偶配对向量空间。能够将以下说明应用于通过非对称双线性配对组构成对偶配对向量空间的情况。

实施方式1

***结构的说明***

图1是本实施方式的加密系统100的系统结构图。

如图1所示,加密系统100具有密钥生成装置101、签名生成装置102、同态运算装置103和签名验证装置104。

首先,使用图1对加密系统100的各装置的功能的概要进行说明。

密钥生成装置101取得密钥生成参数(1k、N),执行密钥生成算法,生成验证密钥vk、签名密钥sk和同态密钥hk。

这里,为了确保加密系统100中的方式的安全性,签名密钥sk仅被交给许可执行签名生成的用户或装置。并且,同态密钥hk仅被交给许可执行同态运算的用户或装置。签名密钥sk和同态密钥hk是针对上述以外的未被许可的用户或装置隐匿的秘密密钥。验证密钥vk是公开密钥。

签名生成装置102从密钥生成装置101取得签名密钥sk,从输入装置取得消息m。签名生成装置102根据取得的签名密钥sk和消息m执行签名生成算法,输出第1签名σ。

同态运算装置103从密钥生成装置101取得同态密钥hk,从签名生成装置102取得第1签名σ,从输入装置取得参数j。同态运算装置103根据取得的同态密钥hk、第1签名σ和参数j执行同态运算算法,输出第2签名σ’。第2签名σ’是执行了同态运算算法后的签名,也称作运算后签名。

签名验证装置104从密钥生成装置101取得验证密钥vk,并且取得验证签名vσ,执行签名验证算法,输出验证签名vσ的验证结果r。这里,验证签名vσ是第1签名σ或第2签名σ’。

<密钥生成装置101的结构>

图2是示出本实施方式的密钥生成装置101的结构的图。

密钥生成装置101具有密钥生成参数接收部301、密钥生成部302和密钥发送部303。

密钥生成装置101是计算机。将密钥生成装置101中的密钥生成参数接收部301、密钥生成部302和密钥发送部303的功能也称作密钥生成装置101的“部”的功能。密钥生成装置101的“部”的功能通过软件实现。密钥生成装置101具有处理器901a、存储装置902a、输入装置903a和输出装置904a这样的硬件。

<签名生成装置102的结构>

图3是示出本实施方式的签名生成装置102的结构的图。

签名生成装置102具有签名密钥接收部304、消息接收部305、签名生成部306和签名发送部307。

签名生成装置102是计算机。将签名生成装置102中的签名密钥接收部304、消息接收部305、签名生成部306和签名发送部307的功能称作签名生成装置102的“部”的功能。签名生成装置102的“部”的功能通过软件实现。签名生成装置102具有处理器901b、存储装置902b、输入装置903b和输出装置904b这样的硬件。

<同态运算装置103的结构>

图4是示出本实施方式的同态运算装置103的结构的图。

同态运算装置103具有同态密钥接收部308、参数接收部309、签名接收部310、同态运算部311和第2签名发送部312。

同态运算装置103是计算机。将同态运算装置103中的同态密钥接收部308、参数接收部309、签名接收部310、同态运算部311和第2签名发送部312的功能称作同态运算装置103的“部”的功能。同态运算装置103的“部”的功能通过软件实现。同态运算装置103具有处理器901c、存储装置902c、输入装置903c和输出装置904c这样的硬件。

<签名验证装置104的结构>

图5是示出本实施方式的签名验证装置104的结构的图。

签名验证装置104具有验证密钥接收部313、签名接收部314、签名验证部315和验证结果发送部316。

签名验证装置104是计算机。将签名验证装置104中的验证密钥接收部313、签名接收部314、签名验证部315和验证结果发送部316的功能称作签名验证装置104的“部”的功能。签名验证装置104的“部”的功能通过软件实现。签名验证装置104具有处理器901d、存储装置902d、输入装置903d和输出装置904d这样的硬件。

这里,使用图2~图5对加密系统100具有的各装置的硬件进行说明。在以下的说明中,将处理器901a、901b、901c、901d统称作处理器901进行说明。存储装置902、输入装置903和输出装置904也是同样的。并且,将密钥生成装置101、签名生成装置102、同态运算装置103和签名验证装置104的各装置称作加密系统100的各装置。

加密系统100的各装置具有处理器901、存储装置902、输入装置903和输出装置904这样的硬件。处理器901经由信号线而与其它硬件连接,对这些其他硬件进行控制。

处理器901是进行处理的IC(Integrated Circuit:集成电路)。具体而言,处理器901是CPU(Central Processing Unit:中央处理单元)。

存储装置902包含辅助存储装置和存储器。具体而言,辅助存储装置是ROM(Read Only Memory:只读存储器)、闪存或HDD(Hard Disk Drive:硬盘驱动器)。具体而言,存储器是RAM(Random Access Memory:随机存取存储器)。

作为输入装置903的具体例,存在鼠标、键盘或触摸面板。

作为输出装置904的具体例,存在显示器。具体而言,显示器是LCD(Liquid Crystal Display:液晶显示器)。

加密系统100的各装置也可以具有通信装置。通信装置包含接收数据的接收机和发送数据的发送机。具体而言,通信装置是通信芯片或NIC(Network Interface Card:网络接口卡)。作为输入装置903和输出装置904,也可以使用通信装置。

在辅助存储装置中存储有实现“部”的功能的程序。该程序载入到存储器,读入到处理器901,由处理器901来执行。在辅助存储装置中还存储有OS(Operating System:操作系统)。OS的至少一部分载入到存储器,处理器901执行OS,并且执行实现“部”的功能的程序。

加密系统100的各装置可以仅具有一个处理器901,也可以具有多个处理器901。多个处理器901也可以协作执行实现“部”的功能的程序。

表示“部”的处理结果的信息、数据、信号值和变量值存储在辅助存储装置、存储器或处理器901内的寄存器或高速缓冲存储器中。

实现“部”的功能的程序可以存储在磁盘、软盘、光盘、高密度盘、蓝光(注册商标)盘、DVD(Digital Versatile Disc:数字多功能盘)等移动记录介质中。

另外,同态签名程序510是实现作为加密系统100的各装置的“部”说明的功能的程序。并且,被称作同态签名程序产品的是记录有实现作为“部”说明的功能的程序的存储介质和存储装置,与外在的形式无关,载入有计算机能读取的程序。

***动作的说明***

<加密系统100的同态签名处理S100和同态签名方法500>

图6是示出本实施方式的加密系统100的同态签名处理S100和同态签名方法500的流程的流程图。

在密钥生成处理S101中,密钥生成装置101通过输入装置903a取得密钥生成参数(1k、N),生成验证密钥vk、签名密钥sk和同态密钥hk。

在签名生成处理S102中,签名生成装置102通过输入装置903b取得签名密钥sk和包含N个字符的消息m,生成消息m的第1签名σ。

在同态运算处理S103中,同态运算装置103通过输入装置903c取得参数j、第1签名σ和与签名密钥sk不同的同态密钥hk。同态运算装置103使用参数j、第1签名σ和同态密钥hk生成调换消息m的第j个字符和第j+1个字符而得到的改变消息的第2签名σ’。

在签名验证处理S104中,签名验证装置104通过输入装置903d取得验证密钥vk、第1签名σ或第2签名σ’即验证签名vσ,对验证签名vσ进行验证,输出验证结果r。

<密钥生成装置101的动作>

图7是示出本实施方式的密钥生成处理S101的处理流程的流程图。

在步骤S111中,密钥生成参数接收部301使用键盘或通信装置等输入装置903a接收密钥生成参数(1k、N)。k是表示所生成的密钥的强度的安全参数。密钥生成参数接收部301将接收到的密钥生成参数(1k、N)写入存储装置902a中。步骤S111是密钥生成参数接收处理。

在步骤S112中,密钥生成部302根据写入存储装置902a中的密钥生成参数(1k、N)执行密钥生成算法。密钥生成部302执行密钥生成算法,生成验证密钥vk、签名密钥sk和同态密钥hk。密钥生成部302将所生成的验证密钥vk、签名密钥sk和同态密钥hk写入存储装置902a中。步骤S112是密钥生成算法执行处理。

在步骤S113中,密钥发送部303使用通信装置等输出装置904a公开验证密钥vk,向签名生成装置102发送签名密钥sk,向同态运算装置103发送同态密钥hk。密钥生成装置101使用安全的通信路径向签名生成装置102发送签名密钥sk,使用安全的通信路径向同态运算装置103发送同态密钥hk。步骤S113也称作密钥发送处理。

图8和图9是本实施方式的密钥生成算法的执行处理即密钥生成算法执行处理(步骤S112)的流程图。

这里,密钥生成参数接收部301接收到的密钥生成参数(1k、N)由表示所生成的密钥的强度的安全参数k和表示生成签名的消息的字符串长度的自然数N构成。

在步骤S401中,密钥生成部302根据安全参数k,决定位数q、位数q的加法循环组G和乘法循环组GT、加法循环组G的生成元素g以及配对e作为对称双线性配对组的参数P0。这里,通过生成适合于配对的BN曲线等椭圆曲线的现有算法生成位数q、组G、组GT和生成元素g。通过选择optimal ate配对等现有的配对运算算法来决定配对e。

在步骤S402中,密钥生成部302根据对称双线性配对组的参数P0决定对偶配对向量空间的参数P1。参数P1是位数q、五维向量空间V0、七维向量空间V1、位数q的乘法循环组GT、V0的标准基A0、V1的标准基A1和配对e的组。密钥生成部302决定参数P1作为对称双线性配对组的直积及其上的配对。

在步骤S403中,密钥生成部302生成随机数ψ。

在步骤S404中,密钥生成部302生成行列式不为0的Fq上的随机矩阵即X0和X1。X0的大小为5×5,X1的大小为7×7。

在步骤S405中,密钥生成部302生成(γ0i、j):=ψ·(X0T)-1和(γ1i、j):=ψ·(X1T)-1

在步骤S406中,密钥生成部302根据标准基A0生成基B0,根据标准基A1生成基B1

在步骤S407中,密钥生成部302基于(γ0i、j),根据标准基A0生成基B0*,基于(γ1i、j),根据标准基A1生成基B1*

在步骤S404~步骤S407中,在求出X0、基B0和基B0*的式子中,i为1~5的整数,在求出X1、基B1和基B1*的式子中,i为1~7的整数。

在步骤S408中,密钥生成部302生成gT:=e(g、g)ψ

在步骤S409中,密钥生成部302生成行列式不为0的Fq上的随机矩阵作为N-1个变换矩阵W1、…、WN-1。生成的变换矩阵W1、…、WN-1的大小为7×7。在步骤S409中,Wi的i为1~N-1的整数。

在步骤S410中,密钥生成部302根据基B1、基B1*和变换矩阵W1、…、WN-1,生成基B2、B3、…、BN和基B2*、B3*、…、BN*

如上所述,密钥生成部302生成对偶配对向量空间的基B0、…、BN和基B0*、…、BN*。在基B0、…、BN中,使用N-1个变换矩阵W1、…、WN-1生成从B2起的基。并且,在基B0*、…、BN*中,使用N-1个变换矩阵W1、…、WN-1生成从B2*起的基。

在步骤S410中,i为1~N-1的整数,j为1~7的整数。

在步骤S411中,密钥生成部302根据基B0、…、BN设定部分基B0^、…、BN^

在步骤S412中,密钥生成部302根据基B0*、…、BN*设定部分基B0^*、…、BN^*

在步骤S411和步骤S412中,i为1~N的整数。

在步骤S413中,密钥生成部302生成包含对偶配对向量空间的基B0、…、BN的部分集合在内的验证密钥vk。具体而言,密钥生成部302生成包含对称双线性配对组的参数P0、对偶配对向量空间的参数P1、基B0、…、BN中的各基的部分集合B^、基B0*、…、BN*中的各基的部分集合B^*在内的验证密钥vk。

并且,密钥生成部302生成包含基B0*、…、BN*中的各基的部分集合在内的签名密钥sk。具体而言,密钥生成部302生成包含b10*和验证密钥vk的签名密钥sk。

并且,密钥生成部302设定包含变换矩阵W1、…、WN-1和基B0*、…、BN*中的各基的部分集合在内的同态密钥hk={hk1、…、hkN-1}。具体而言,密钥生成部302生成包含变换矩阵W1、…、WN-1和验证密钥vk的同态密钥hk={hk1、…、hkN-1}。

如上所述,密钥生成部302将由安全参数k和表示生成签名的消息的字符串长度的自然数N的组构成的密钥生成参数作为输入。密钥生成部302生成对称双线性配对组的参数,生成对偶配对向量空间的参数,生成随机矩阵的组,根据随机矩阵的组生成对偶配对向量空间的基的组。然后,密钥生成部302构成由随机矩阵的组、对偶配对空间的基的组的部分集合、双线性配对组的参数和对偶配对向量空间的参数构成的验证密钥vk、由对偶配对空间的基的要素和验证密钥vk构成的签名密钥sk、以及由随机矩阵的组和验证密钥vk构成的同态密钥hk。

<签名生成装置102的动作>

图10是示出本实施方式的签名生成处理S102的处理流程的流程图。

在步骤S121中,签名密钥接收部304使用通信装置等输入装置903b接收签名密钥sk。消息接收部305使用键盘或通信装置等输入装置903b接收消息m。签名密钥sk和消息m被写入存储装置902b中。步骤S121是签名密钥接收处理和消息接收处理。

在步骤S122中,签名生成部306根据写入存储装置902b中的签名密钥sk和消息m执行签名生成算法,生成第1签名σ。签名生成部306将生成的第1签名σ写入存储装置902b中。步骤S122是签名生成算法执行处理。

在步骤S123中,签名发送部307使用通信装置等输出装置904b向同态运算装置103或签名验证装置104发送写入存储装置902b中的第1签名σ。在向签名验证装置104进行发送的情况下,签名发送部307向签名验证装置104发送第1签名σ作为成为验证对象的验证签名vσ。步骤S123是签名发送处理。

图11是本实施方式的签名生成算法的执行处理即签名生成算法执行处理(步骤S122)的流程图。

这里,签名生成部306在签名生成算法执行处理中输入签名密钥接收部304接收到的签名密钥sk和消息接收部305接收到的消息m。消息m由Fq上的长度N的向量构成。

在步骤S414中,签名生成部306生成随机数δ0、…、δN、随机数η0、随机数η1、1、…、η1、N、随机数η2、1、…、η2、N、随机数θ1、…、θN

在步骤S415中,签名生成部306使用在步骤S414中生成的随机数和基B0*、…、BN*生成对偶配对向量空间上的元素σ0、…、σN。签名生成部306使用签名密钥sk中包含的基B0*、…、BN*中的各基的部分集合和消息m(m1、…、mN),生成对偶配对向量空间的元素即包含消息m中包含的各字符mi的元素的组σ0、σ1、…、σN

在步骤S416中,签名生成部306生成包含所生成的元素的组σ0、σ1、…、σN的第1签名σ。这里,签名生成部306生成并输出包含消息m1、…、mN和所生成的元素的组σ0、σ1、…、σN的第1签名σ。

<同态运算装置103的动作>

图12是示出本实施方式的同态运算处理S103的处理流程的流程图。

同态运算装置103的同态运算处理S103使用第1签名σ和与签名密钥sk不同的同态密钥hk,生成在消息m中调换位置不同的2个字符而得到的改变消息的第2签名σ’。

在步骤S131中,同态密钥接收部308使用通信装置等输入装置903c接收同态密钥hk。参数接收部309使用键盘或通信装置等输入装置903c接收参数j。签名接收部310使用通信装置等输入装置903c接收第1签名σ。同态密钥接收部308接收到的同态密钥hk、参数接收部309接收到的参数j和签名接收部310接收到的第1签名σ被写入存储装置902c中。步骤S131是同态密钥接收处理、参数接收处理和签名接收处理。

在步骤S132中,同态运算部311根据写入存储装置902c中的同态密钥hk、参数j和第1签名σ执行同态运算算法。同态运算部311执行同态运算算法,生成第2签名σ’。同态运算部311将生成的第2签名σ’写入存储装置902c中。步骤S132是同态运算算法执行处理。

在步骤S133中,第2签名发送部312使用通信装置等输出装置904c向签名验证装置104发送写入存储装置902c中的第2签名σ’。此时,第2签名发送部312向签名验证装置104发送第2签名σ’作为成为验证对象的验证签名vσ。或者,在进一步调换消息m的字符位置的情况下,第2签名发送部312向包含第2签名发送部312的同态运算装置103再次发送第2签名σ’。步骤S133是第2签名发送处理。

图13是本实施方式的同态运算算法的执行处理即同态运算算法执行处理(步骤S132)的流程图。

这里,同态运算部311在同态运算算法执行处理中输入同态密钥接收部308接收到的同态密钥hk、参数接收部309接收到的参数j和签名接收部310接收到的第1签名σ。参数j为1以上且N-1以下的整数。参数j意味着在消息m(m1、…、mN)中调换第J个mj和第J+1个mj+1。即,参数j是表示与右侧一个字符交换字符位置的字符位置的整数。

在步骤S417中,同态运算部311使用第1签名σ的要素σj和σj+1以及同态密钥hk中包含的Wj生成σj^和σj+1^。同态运算部311使用同态密钥hk中包含的变换矩阵W1、…、WN-1中的参数j的值即第j个变换矩阵Wj,在第1签名σ包含的元素的组σ1、…、σN中调换第j个σj和第j+1个σj+1。这样,同态运算部311生成σj^和σj+1^,由此,调换对消息m的第j个字符赋予的第1签名σ的要素和对消息m的第j+1个字符赋予的第1签名σ的要素,实现字符位置的调换。这里,将在第1签名σ中调换σj和σj+1而得到的签名称作调换签名cσ。

在步骤S418中,同态运算部311生成随机数δ’0、…、δ’N、随机数η’0、随机数η’1、1、…、η’1、N、随机数η’2、1、…、η’2、N和随机数θ’1、…、θ’N

在步骤S419中,同态运算部311使用同态密钥hk中包含的基B0*、…、BN*中的各基的部分集合,根据对偶配对向量空间生成元素τ0、…、τN。同态运算部311使用基B0*、…、BN*中的各基的部分集合和消息m(m1、…、mN),根据消息m中包含的各字符mi生成各元素τ0、…、τN

在步骤S420中,同态运算部311使用调换签名cσ(σ0、…、σj-1、σj^、σj+1^、σj+2、…、σN)与对偶配对向量空间的元素τ(τ0、…、τN)之积,生成对偶配对向量空间的元素σ0’、…σN’。同态运算部311使用调换签名cσ(σ0、…、σj-1、σj^、σj+1^、σj+2、…、σN)与调换第j个元素和第j+1个元素而得到的元素(τ0、…、τj-1、τj+1、τj、τj+2、…、τN)之积,生成元素σ0’、…σN’。

在步骤S421中,同态运算部311生成包含所生成的元素σ0’、…σN’的第2签名σ’。这里,同态运算部311生成并输出包含调换第j个字符和第j+1个字符而得到的改变消息m1、…、mj-1、mj+1、mj、mj+2、…、mN以及生成的元素σ0’、…σN’的第2签名σ’。即,同态运算部311使用调换签名cσ和元素τ生成第2签名σ’。

<签名验证装置104的动作>

图14是示出本实施方式的签名验证处理S104的处理流程的流程图。

在签名验证处理S104中,签名验证装置104取得第2签名σ’作为验证签名vσ,使用验证密钥vk对验证签名vσ进行验证。或者,签名验证装置104取得第1签名σ作为验证签名vσ,使用验证密钥vk对验证签名vσ进行验证。

在步骤S141中,验证密钥接收部313使用通信装置等输入装置903d接收验证密钥vk。签名接收部314使用通信装置等输入装置903d接收验证签名vσ。验证密钥vk和验证签名vσ被写入存储装置902d中。验证签名vσ是第1签名σ或第2签名σ’,但是,不管是哪个签名,都能够在同样的签名验证处理S104中进行验证。这里,设验证签名vσ为第1签名σ进行说明。步骤S141是验证密钥接收处理和签名接收处理。

在步骤S142中,签名验证部315根据写入存储装置902d中的验证密钥vk和验证签名vσ执行签名验证算法,输出0或1作为验证结果r。0或1的验证结果r被写入存储装置902d中。步骤S142是签名验证算法执行处理。

在步骤S143中,验证结果发送部316使用通信装置或显示装置等输出装置904d输出写入存储装置902d中的验证结果r。步骤S143是验证结果发送处理。

图15是本实施方式的签名验证算法的执行处理即签名验证算法执行处理(步骤S142)的流程图。

这里,签名验证部315在签名验证算法中输入验证密钥接收部313接收到的验证密钥vk和签名接收部314接收到的验证签名vσ。

在步骤S422中,签名验证部315生成随机数λ、随机数ω和随机数

在步骤S423中,签名验证部315使用验证密钥vk中包含的基B0、…、BN生成对偶配对向量空间的元素c0、…、cN。在步骤S423中,i为1~N的整数。

在步骤S424中,签名验证部315根据验证签名vσ的要素σ0、…、σN和元素c0、…、cN生成ζ。签名验证部315执行元素c0、…、cN与验证签名vσ的配对运算,生成配对运算的运算结果ζ。

在步骤S425中,签名验证部315根据随机数λ和生成元素gT生成ζ’。

在步骤S426中,签名验证部315根据配对运算的运算结果ζ以及基于随机数λ和元素gT生成的ζ’,对验证签名vσ进行验证。签名验证部315对ζ和ζ’进行比较,在相等的情况下输出1作为验证结果r,在除此以外的情况下输出0作为验证结果r。

以上,结束与本实施方式的加密系统100的同态签名处理S100和同态签名方法500有关的说明。

***本实施方式的效果的说明***

如上所述,根据本实施方式的加密系统,通过使用与此前的方式不同的数学构造,能够安全地实现字符串的字符位置的交换。

并且,根据本实施方式的加密系统,能够通过专用的同态密钥对实施改变的部分和能够改变的范围进行控制。

***其他结构***

在本实施方式中,加密系统100的各装置的功能通过软件实现,但是,作为变形例,加密系统100的各装置的功能也可以通过硬件实现。

使用图16~图19对该本实施方式的变形例进行说明。

图16是示出本实施方式的变形例的密钥生成装置101的结构的图。

图17是示出本实施方式的变形例的签名生成装置102的结构的图。

图18是示出本实施方式的变形例的同态运算装置103的结构的图。

图19是示出本实施方式的变形例的签名验证装置104的结构的图。

如图16所示,密钥生成装置101具有处理电路909a、输入装置903a和输出装置904a这样的硬件。

如图17所示,签名生成装置102具有处理电路909b、输入装置903b和输出装置904b这样的硬件。

如图18所示,同态运算装置103具有处理电路909c、输入装置903c和输出装置904c这样的硬件。

如图19所示,签名验证装置104具有处理电路909d、输入装置903d和输出装置904d这样的硬件。

在以下的说明中,将处理电路909a、909b、909c、909d统称作处理电路909进行说明。输入装置903和输出装置904也是同样的。

处理电路909是实现所述“部”的功能的专用的电子电路。具体而言,处理电路909是单一电路、复合电路、程序化的处理器、并列程序化的处理器、逻辑IC、GA(Gate Array:门阵列)、ASIC(Application Specific Integrated Circuit:面向特定用途的集成电路)或FPGA(Field-Programmable Gate Array:现场可编程门阵列)。

“部”的功能可以通过一个处理电路909实现,也可以分散在多个处理电路909中实现。

作为其他变形例,加密系统100的各装置的功能也可以通过软件与硬件的组合来实现。即,也可以是,加密系统100的各装置的一部分功能通过专用硬件实现,其余功能通过软件实现。

将处理器901、存储装置902和处理电路909统称作“处理电路系统”。即,无论加密系统100的各装置的结构是图2~图5和图16~图19中的哪个图所示的结构,“部”的功能都通过处理电路系统实现。

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

并且,在本实施方式中,对加密系统100具有密钥生成装置101、签名生成装置102、同态运算装置103和签名验证装置104且各装置为一个计算机的情况进行说明。但是,例如,密钥生成装置101和签名生成装置102也可以是一个计算机。并且,签名生成装置102和同态运算装置103也可以是一个计算机。并且,全部装置也可以通过一个计算机实现。

并且,在本实施方式中,第1签名σ和第2签名σ’是包含消息的形式,但是,也可以构成为对消息附加第1签名σ或第2签名σ’。

以上说明了本发明的实施方式,但是,也可以实施该实施方式的一部分。具体而言,可以仅采用在该实施方式的说明中作为“部”说明的部分中的任意一个部分,也可以采用若干个部分的任意组合。另外,本发明不限于该实施方式,能够根据需要进行各种变更。

标号说明

100:加密系统;101:密钥生成装置;102:签名生成装置;103:同态运算装置;104:签名验证装置;301:密钥生成参数接收部;302:密钥生成部;303:密钥发送部;304:签名密钥接收部;305:消息接收部;306:签名生成部;307:签名发送部;308:同态密钥接收部;309:参数接收部;310:签名接收部;311:同态运算部;312:第2签名发送部;313:验证密钥接收部;314:签名接收部;315:签名验证部;316:验证结果发送部;500:同态签名方法;510:同态签名程序;901、901a、901b、901c、901d:处理器;902、902a、902b、902c、902d:存储装置;903、903a、903b、903c、903d:输入装置;904、904a、904b、904c、904d:输出装置;909、909a、909b、909c、909d:处理电路;S100:同态签名处理;S101:密钥生成处理;S102:签名生成处理;S103:同态运算处理;S104:签名验证处理;sk:签名密钥;hk:同态密钥;vk:验证密钥;σ:第1签名;σ’:第2签名;cσ:调换签名;r:验证结果;m:消息;vσ:验证签名。

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