最终幂计算装置、配对运算装置、加密处理装置、最终幂计算方法和最终幂计算程序与流程

文档序号:31022511发布日期:2022-08-05 20:56阅读:149来源:国知局
最终幂计算装置、配对运算装置、加密处理装置、最终幂计算方法和最终幂计算程序与流程

1.本发明涉及配对运算中的最终幂的计算技术。


背景技术:

2.配对运算是使用在函数型加密和隐匿检索这样的加密方式的内部被处理的椭圆曲线的运算。迄今为止,作为与128比特安全性相当的椭圆曲线,公知有bn(barret-naehrig)曲线。近年来,使用与安全性更高的256比特安全性相当的椭圆曲线的配对运算的需要提高。
3.配对运算大致分成miller函数的计算和最终幂的计算。miller函数的计算和最终幂的计算均需要复杂的计算过程,对函数型加密和隐匿检索这样的加密方式整体的计算量造成非常大的影响。
4.在非专利文献1、2中记载有在大量的配对友好曲线中配对运算整体的效率也良好的bls(barreto-lynn-scott)曲线。在非专利文献1、2中记载有作为嵌入次数k的k=9、15、24、27、42、48的bls曲线中的配对运算。此外,在专利文献1和非专利文献2中记载有kss(kachisa-schaefer-scott)曲线。
5.公知在任何曲线的配对运算中,最终幂的计算量都比miller函数的计算量大。
6.bls曲线是由多项式r(u)、多项式q(u)、多项式t(u)、嵌入次数k和参数u决定的椭圆曲线。但是,k≡0mod 18的椭圆曲线除外。多项式r(u)、多项式q(u)和多项式t(u)根据嵌入次数k而采取不同的形式。
7.嵌入次数k的bls曲线e是在由q=q(u)个要素构成的有限域fq上定义的椭圆曲线。r=r(u)是除以椭圆曲线e的部分部e(fq)的位数的最大素数。t=t(u)是椭圆曲线e的轨迹。
8.关于椭圆曲线e上的配对运算,在将椭圆曲线e上的某2点p、q作为输入,计算被称作miller函数的有理函数f
u,q
(p)后,计算(q(u)
k-1)/r(u)次方。
9.即,椭圆曲线e上的配对运算通过数学式11来计算。
10.【数学式11】
[0011][0012]
关于miller函数,公知有针对任何曲线都能够高效地进行计算的miller算法(参照非专利文献3)。另一方面,关于最终幂的计算,公知有通过使用分圆多项式对指数部分进行分解而高效地进行计算的方法(参照非专利文献4)。但是,即使使用非专利文献4记载的方法,最终幂的计算量也很庞大,在实用方面需要进一步高速化。
[0013]
最终幂的指数部分成为大幅依赖于曲线的多项式参数的形式。因此,指数部分的分解方法即高速化方法是按照每个曲线而特有的。
[0014]
现有技术文献
[0015]
专利文献
[0016]
专利文献1:日本特开2018-205511号公报
[0017]
非专利文献
[0018]
非专利文献1:x.zhang,d.lin,“analysis of optimum pairing products at high security levels”,indocrypt 2012,p.412~430
[0019]
非专利文献2:y.kiyomura,a.inoue,y.kawahara,m.yasuda,t.takagi,t.kobayashi,“secure and efficient pairing at 256-bit security lebel”,acns2017,p.59~79
[0020]
非专利文献3:victor s.miller,“the weil pairing,and its efficient calculation”,j.cryptology,17(4),2004,p.235~261
[0021]
非专利文献4:m.scott,n.benger,m.charlemagne,“on the final exponentiation for calculating pairings on ordinary elliptic curves”,pairing 2009,p.78~88


技术实现要素:

[0022]
发明要解决的课题
[0023]
具有以往研究的嵌入次数以外的嵌入次数的bls曲线与其他kss型等椭圆曲线相比,miller函数的计算量不是高速的,或者,不知道与最终幂的计算有关的高速化方法。
[0024]
本发明的目的在于,能够高效地计算配对运算中的最终幂。
[0025]
用于解决课题的手段
[0026]
本发明的最终幂计算装置具有:分解部,其针对由多项式r(u)、多项式q(u)、多项式t(u)、嵌入次数k和参数u表示的椭圆曲线中的配对运算的最终幂计算部分,通过分圆多项式将指数部分分解成简单部分和困难部分;以及转换部,其将由所述分解部进行分解而得到的所述困难部分转换成所述多项式q(u)的线性和。
[0027]
发明效果
[0028]
在本发明中,通过分圆多项式将指数部分分解成简单部分和困难部分,将困难部分转换成多项式q(u)的线性和。由此,能够高效地计算配对运算中的最终幂。
附图说明
[0029]
图1是实施方式1的配对运算装置10的结构图。
[0030]
图2是实施方式1的配对运算装置10的整体处理的流程图。
[0031]
图3是实施方式1的幂简化处理的说明图。
[0032]
图4是实施方式1的miller函数计算处理的流程图。
[0033]
图5是实施方式1的幂简化处理的流程图。
[0034]
图6是实施方式1的幂计算处理的流程图。
[0035]
图7是实施方式1的第1因数a1(u)的生成处理的流程图。
[0036]
图8是实施方式1的第2因数a2(u)的生成处理的流程图。
[0037]
图9是实施方式1的第3因数a3(u)的生成处理的流程图。
[0038]
图10是现有的最终幂计算部分中的指数部分的计算方法的说明图。
[0039]
图11是实施方式1的最终幂计算部分中的指数部分的计算方法的说明图。
[0040]
图12是变形例1的配对运算装置10的结构图。
[0041]
图13是变形例3的miller函数计算装置10a的结构图。
[0042]
图14是变形例3的最终幂简化装置10b的结构图。
[0043]
图15是变形例3的最终幂计算装置10c的结构图。
[0044]
图16是实施方式2的加密处理装置30的结构图。
[0045]
图17是实施方式2的加密处理装置30的整体处理的流程图。
具体实施方式
[0046]
实施方式1
[0047]
***表记的说明***
[0048]
在正文和附图中,有时使用“^”表示幂乘。作为具体例,a^b表示ab。
[0049]
***结构的说明***
[0050]
参照图1对实施方式1的配对运算装置10的结构进行说明。
[0051]
配对运算装置10是计算机。
[0052]
配对运算装置10具有处理器11、内存12、存储器13和通信接口14这样的硬件。处理器11经由信号线与其他硬件连接,对这些其他硬件进行控制。
[0053]
处理器11是进行处理的ic(integrated circuit:集成电路)。作为具体例,处理器11是cpu(central processing unit:中央处理单元)、dsp(digital signal processor:数字信号处理器)、gpu(graphics processing unit:图形处理单元)。
[0054]
内存12是临时存储数据的存储装置。作为具体例,内存12是sram(static random access memory:静态随机存取存储器)、dram(dynamic random access memory:动态随机存取存储器)。
[0055]
存储器13是保管数据的存储装置。作为具体例,存储器13是hdd(hard disk drive:硬盘驱动器)。此外,存储器13也可以是sd(注册商标,secure digital:安全数字)存储卡、cf(compactflash:致密闪存,注册商标)、nand闪存、软盘、光盘、高密度盘、蓝光(注册商标)盘、dvd(digital versatile disk:数字多功能盘)这样的移动记录介质。
[0056]
通信接口14是用于与外部的装置进行通信的接口。作为具体例,通信接口14是ethernet(注册商标)、usb(universal serial bus:通用串行总线)、hdmi(注册商标,high-definition multimedia interface:高清晰度多媒体接口)的端口。
[0057]
作为功能结构要素,配对运算装置10具有miller函数计算部21、幂简化部22和幂计算部23。miller函数计算部21具有加倍步骤计算部211和加法步骤计算部212。幂简化部22具有分解部221和转换部222。分解部221具有第1生成部223和第2生成部224。配对运算装置10的各功能结构要素的功能通过软件实现。
[0058]
在存储器13中存储有实现配对运算装置10的各功能结构要素的功能的程序。该程序由处理器11读入到内存12,由处理器11来执行。由此,实现配对运算装置10的各功能结构要素的功能。
[0059]
在图1中,仅示出1个处理器11。但是,处理器11也可以是多个,多个处理器11也可以协作执行实现各功能的程序。
[0060]
***动作的说明***
[0061]
参照图2~图9对实施方式1的配对运算装置10的动作进行说明。
[0062]
实施方式1的配对运算装置10的动作顺序相当于实施方式1的配对运算方法。此外,实现实施方式1的配对运算装置10的动作的程序相当于实施方式1的配对运算程序。
[0063]
在实施方式1中,配对运算装置10使用bls21曲线。bls21曲线是具有非专利文献1、2中未研究的嵌入次数的bls曲线。
[0064]
bls曲线是由多项式r(u)、多项式q(u)、多项式t(u)、嵌入次数k和参数u决定的椭圆曲线。但是,k≡0mod 18的椭圆曲线除外。多项式r(u)、多项式q(u)和多项式t(u)根据嵌入次数k而采取不同的形式。bls21曲线是嵌入次数k为21的bls曲线。
[0065]
嵌入次数k的bls曲线e是在由q=q(u)个要素构成的有限域fq上定义的椭圆曲线。r=r(u)是除以椭圆曲线e的部分部e(fq)的位数的最大素数。t=t(u)是椭圆曲线e的轨迹。
[0066]
多项式r(u)、多项式q(u)和多项式t(u)是由嵌入次数k决定的多项式参数。参数u是能够独立于嵌入次数k而决定的参数。
[0067]
在实施方式1中,参数u是2
43
+2
39
+2
37
+26=9483287789632。
[0068]
该参数u是根据以下的条件(1)~(3)选择出的值。条件(1):多项式r(u)和多项式q(u)同时成为素数。条件(2):多项式r(u)是512比特左右的素数。条件(3):汉明权重小。
[0069]
条件(1)是用于构成椭圆曲线的条件。条件(2)是用于满足256比特的安全性的条件。条件(3)是用于使配对运算高速化的条件。
[0070]
上述参数u满足条件(1)和条件(2),并且,汉明权重成为4。汉明权重非常小,因此,能够使配对运算高速化。
[0071]
关于作为bls21曲线的椭圆曲线e上的配对运算,在将椭圆曲线e上的某2点p、q作为输入,计算被称作miller函数的有理函数f
u,q
(p)后,计算(q(u)
21-1)/r(u)次方。
[0072]
参照图2对实施方式1的配对运算装置10的整体处理进行说明。
[0073]
(步骤s1:miller函数计算处理)
[0074]
miller函数计算部21将作为bls21曲线的椭圆曲线e上的2点p、q作为输入,通过miller算法计算有理函数f
u,q
(p)。
[0075]
(步骤s2:幂简化处理)
[0076]
幂简化部22的分解部221针对最终幂计算部分,通过分圆多项式φ
21
将指数部分分解成简单部分和困难部分。进而,幂简化部22的转换部222将由分解部221进行分解而得到的困难部分转换成多项式q(u)的线性和。
[0077]
具体而言,如图3所示,分解部221针对最终幂计算部分中的指数部分(q(u)
21-1)/r(u),分解成数学式12所示的简单部分和数学式13所示的困难部分。简单部分是由q(u)的幂乘表示的部分。困难部分是由u的幂乘表示的部分。转换部222针对困难部分,如数学式14所示,转换成q(u)的11阶的线性和。另外,数学式14中的λi(u)在后面叙述。
[0078]
但是,在简单地转换困难部分时,1/3表现为系数。即,需要计算3次方根。计算3次方根的计算量多。因此,这里,转换部222删除表现为系数的1/3。
[0079]
【数学式12】
[0080]
(q(u)
7-1)
·
(q(u)2+q(u)+1)
[0081]
【数学式13】
[0082][0083]
【数学式14】
[0084][0085]
(步骤s3:幂计算处理)
[0086]
幂计算部23针对在步骤s1中计算出的有理函数f
u,q
(p),进行在步骤s2中得到的简单部分的幂乘计算和在步骤s2中由转换部转换成线性和的困难部分的幂乘计算。由此,计算进一步对数学式15所示的配对运算进行3次方而得到的数学式16所示的配对运算。
[0087]
计算对配对运算进行3次方的结果是为了删除在步骤s2中表现为系数的1/3。
[0088]
【数学式15】
[0089][0090]
【数学式16】
[0091][0092]
参照图4对实施方式1的miller函数计算处理进行说明。
[0093]
在步骤s11中,miller函数计算部21取得作为bls21曲线的椭圆曲线e上的2点p、q。
[0094]
在步骤s12中,加倍步骤计算部211反复执行4次加倍步骤。在步骤s13中,加法步骤计算部212执行1次加法步骤。在步骤s14中,加倍步骤计算部211反复执行2次加倍步骤。在步骤s15中,加法步骤计算部212执行1次加法步骤。在步骤s16中,加倍步骤计算部211反复执行31次加倍步骤。在步骤s17中,加法步骤计算部212执行1次加法步骤。在步骤s18中,加倍步骤计算部211反复执行6次加倍步骤。由此,计算配对运算的miller函数。
[0095]
在步骤s19中,miller函数计算部21将在步骤s18中计算出的结果即函数值m0写入内存12中。
[0096]
在实施方式1中,参数u是2
43
+2
39
+2
37
+26。因此,miller函数计算部21能够如图4所示计算miller函数。
[0097]
参照图5对实施方式1的幂简化处理进行说明。
[0098]
在步骤s21中,幂简化部22取得与作为bls21曲线的椭圆曲线e有关的多项式参数即多项式r(u)和多项式q(u)。
[0099]
在步骤s22中,分解部221的第1生成部223生成(q(u)
21-1)/r(u)的第1因数a1(u)。如数学式17所示,第1因数a1(u)是简单部分的一部分。第1生成部223将第1因数a1(u)写入内存12中。
[0100]
【数学式17】
[0101]
(q(u)
7-1)
[0102]
在步骤s23中,分解部221的第2生成部224生成(q(u)
21-1)/r(u)的第2因数a2(u)。如数学式18所示,第2因数a2(u)是简单部分的其余部分。第2生成部224将第2因数a2(u)写入
内存12中。
[0103]
【数学式18】(q(u)2+q(u)+1)
[0104]
在步骤s24中,转换部222生成(q(u)
21-1)/r(u)的第3因数a3(u)。如数学式19所示,第3因数a3(u)是困难部分被转换成11阶的线性和且表现为系数的1/3被删除而得到的因数。转换部222将第3因数a3(u)写入内存12中。
[0105]
【数学式19】
[0106][0107]
参照图6对实施方式1的幂计算处理进行说明。
[0108]
在步骤s31中,幂计算部23从内存12读出在miller函数计算处理中计算出的函数值m0、在幂简化处理中生成的第1因数a1(u)、第2因数a2(u)和第3因数a3(u)。
[0109]
在步骤s32中,幂计算部23计算将函数值m0设为底且将第1因数a1(u)设为幂指数的幂乘运算,生成值m1。即,幂计算部23通过数学式20计算值m1。
[0110]
【数学式20】
[0111][0112]
在步骤s33中,幂计算部23计算将值m1设为底且将第2因数a2(u)设为幂指数的幂乘运算,生成值m2。即,幂计算部23通过数学式21计算值m2。
[0113]
【数学式21】
[0114][0115]
在步骤s34中,幂计算部23计算将值m2设为底且将第3因数a3(u)设为幂指数的幂乘运算,生成值m3。即,幂计算部23通过数学式22计算值m3。
[0116]
【数学式22】
[0117][0118]
值m3是数学式16所示的配对运算的结果。
[0119]
参照图7对实施方式1的第1因数a1(u)的生成处理进行说明。
[0120]
在步骤s41中,第1生成部223计算有理函数f
u,q
(p)的逆元f
u,q
(p)-1
。在步骤s42中,第1生成部223计算数学式23所示的要素。在步骤s43中,第1生成部223根据在步骤s41中计算出的逆元f
u,q
(p)-1
和数学式23所示的要素计算数学式24所示的要素a。
[0121]
【数学式23】
[0122][0123]
【数学式24】
[0124][0125]
要素a如数学式25所示。因此,得到指数部分的q(u)
7-1作为第1因数a1(u)。
[0126]
【数学式25】
[0127][0128]
参照图8对实施方式1的第2因数a2(u)的生成处理进行说明。
[0129]
在步骤s51中,第2生成部224取得在第1因数a1(u)的生成处理中生成的要素a。在步骤s52中,第2生成部224计算数学式26所示的要素。在步骤s53中,第2生成部224计算数学式27所示的要素。在步骤s54中,根据要素a、数学式26所示的要素和数学式27所示的要素计算数学式28所示的要素b。
[0130]
【数学式26】
[0131]aq(u)
[0132]
【数学式27】
[0133][0134]
【数学式28】
[0135][0136]
要素b如数学式29所示。因此,得到指数部分的q(u)2+q(u)+1作为第2因数a2(u)。
[0137]
【数学式29】
[0138][0139]
参照图9对实施方式1的第3因数a3(u)的生成处理进行说明。
[0140]
第3因数a3(u)的生成处理是如下处理:从困难部分中提取q(u)的项,如数学式30所示,将困难部分转换成q(u)的11阶的线性和。这里,针对数学式30中的i=0,

,11,按照降序确定λi(u),由此将困难部分转换成q(u)的11阶的线性和。
[0141]
在步骤s61中,转换部222取得在第2因数a2(u)的生成处理中生成的要素b。
[0142]
在步骤s62中,转换部222使用要素b生成bu。在步骤s63中,转换部222使用在步骤s62中生成的bu生成数学式31所示的要素。在步骤s64中,转换部222使用在步骤s63中生成的数学式31所示的要素生成数学式32所示的要素。在步骤s65中,转换部222使用在步骤s64中生成的数学式32所示的要素生成数学式33所示的要素。
[0143]
【数学式30】
[0144][0145]
【数学式31】
[0146][0147]
【数学式32】
[0148][0149]
【数学式33】
[0150][0151]
在步骤s66中,转换部222使用在步骤s62中生成的bu和在步骤s64中生成的数学式32所示的要素生成数学式34所示的要素。在步骤s67中,转换部222生成与在步骤s66中生成的数学式34所示的要素有关的数学式35所示的逆元。
[0152]
【数学式34】
[0153][0154]
【数学式35】
[0155][0156]
在步骤s68中,转换部222使用要素b、在步骤s65中生成的数学式33所示的要素和在步骤s67中生成的数学式35所示的要素生成数学式36所示的要素c。
[0157]
【数学式36】
[0158][0159]
要素c的指数部分的u
4-u
3-u+1对应于数学式30中的λ
11
(u)。
[0160]
在步骤s69中,转换部222生成在步骤s68中生成的要素c的逆元c-1
。在步骤s70中,转换部222使用在步骤s68中生成的要素c和在步骤s69中生成的逆元c-1
生成要素d=cu·
c-1

[0161]
要素d中的针对要素b的指数部分的(u-1)λ
11
(u)对应于数学式30中的λ
10
(u)。
[0162]
在步骤s71中,转换部222使用在步骤s70中生成的要素d生成要素e=du。要素e中的针对要素b的指数部分的uλ
10
(u)对应于数学式30中的λ9(u)。
[0163]
在步骤s72中,转换部222使用在步骤s68中生成的要素c和在步骤s71中生成的要素e生成要素f=eu·
c。要素f中的针对要素b的指数部分的uλ9(u)+λ
11
(u)对应于数学式30中的λ8(u)。
[0164]
在步骤s73中,转换部222使用在步骤s69中生成的逆元c-1
和在步骤s72中生成的要素f生成要素g=fu·
c-1
。要素g中的针对要素b的指数部分的uλ8(u)-λ
11
(u)对应于数学式30中的λ7(u)。
[0165]
在步骤s74中,转换部222使用在步骤s73中生成的要素g生成要素h=gu。要素h中的针对要素b的指数部分的uλ7(u)对应于数学式30中的λ6(u)。
[0166]
在步骤s75中,转换部222使用在步骤s68中生成的要素c和在步骤s74中生成的要素h生成要素i=hu·
c。要素i中的针对要素b的指数部分的uλ6(u)+λ
11
(u)对应于数学式30中的λ5(u)。
[0167]
在步骤s76中,转换部222使用在步骤s75中生成的要素i生成要素j=iu。要素j中的针对要素b的指数部分的uλ5(u)对应于数学式30中的λ4(u)。
[0168]
在步骤s77中,转换部222使用在步骤s68中生成的要素c和在步骤s76中生成的要素j生成要素k=ju·
c-1
。要素k中的针对要素b的指数部分的uλ4(u)-λ
11
(u)对应于数学式30中的λ3(u)。
[0169]
在步骤s78中,转换部222使用在步骤s68中生成的要素c和在步骤s77中生成的要素k生成要素l=ju·
c。要素l中的针对要素b的指数部分的uλ3(u)+λ
11
(u)对应于数学式30中的λ2(u)。
[0170]
在步骤s79中,转换部222使用在步骤s78中生成的要素l生成要素m=lu。要素m中的针对要素b的指数部分的uλ2(u)对应于数学式30中的λ1(u)。
[0171]
在步骤s80中,转换部222使用要素b、在步骤s68中生成的要素c和在步骤s79中生成的要素m生成要素n=mu·
c-1
·
b2·
b。要素n中的针对要素b的指数部分的uλ1(u)-λ
11
(u)+3对应于数学式30中的λ0(u)。
[0172]
由此,得到数学式37所示的第3因数a3(u)。
[0173]
【数学式37】
[0174][0175]
where
[0176]
λ
11
(u)=u
4-u
3-u+1,
[0177]
λ
10
(u)=(u-1)λ
11
(u),
[0178]
λ9(u)=uλ
10
(u),
[0179]
λ8(u)=uλ9(u)+λ
11
(u),
[0180]
λ7(u)=uλ8(u)-λ
11
(u),
[0181]
λ6(u)=uλ7(u),
[0182]
λ5(u)=uλ6(u)+λ
11
(u),
[0183]
λ4(u)=uλ5(u),
[0184]
λ3(u)=uλ4(u)-λ
11
(u),
[0185]
λ3(u)=uλ3(u)+λ
11
(u),
[0186]
λ1(u)=uλ2(u),
[0187]
λ0(u)=uλ1(u)-λ
11
(u)+3,
[0188]
***实施方式1的效果***
[0189]
如上所述,实施方式1的配对运算装置10通过分圆多项式φ
21
将指数部分分解成简单部分和困难部分,将困难部分转换成多项式q(u)的线性和。由此,能够高效地计算配对运算。
[0190]
具体而言,将困难部分转换成多项式q(u)的11阶的线性和,由此,代替q(u)的幂乘运算的数量稍微增加,u的幂乘运算的数量大幅减少。公知与q(u)的幂乘运算的计算量相比,u的幂乘运算的计算量非常多。因此,实施方式1的配对运算装置10将困难部分转换成11阶的线性和,由此,能够高效地计算配对运算。
[0191]
更具体而言,在现有的使用分圆多项式φ
21
分解指数部分的方法的情况下,最终幂计算部分中的指数部分(q(u)
21-1)/r(u)如图10所示那样被分解。该情况下,在由q(u)的幂乘表示的简单部分中,q(u)的幂乘是7次。此外,在由u的幂乘表示的困难部分中,u的幂乘是212次,q(u)的幂乘是0次。
[0192]
与此相对,如图11所示,实施方式1的配对运算装置10进一步将现有的困难部分分解成由q(u)的幂乘表示的简单部分和由u的幂乘表示的困难部分。然后,将困难部分转换成q(u)的11阶的线性和。由此,u的幂乘为212次且q(u)的幂乘为0次的现有的困难部分被转换成q(u)的幂乘为2次的简单部分、以及u的幂乘为15次且q(u)的幂乘为11次的困难部分。另外,实施方式1的困难部分中的u的幂乘的次数的详细情况是λ0(u)~λ
10
(u)分别为1次且λ
11
(u)为4次这样的合计15次。
[0193]
这里,u的幂乘是q(u)的幂乘的大约200倍的计算量。因此,将q(u)的幂乘的每1次的成本设为1,将u的幂乘的每1次的成本设为200。于是,现有的最终幂计算部分的成本是1
×
7+200
×
212=42407。与此相对,实施方式1的最终幂计算部分的成本是1
×
7+1
×
2+200
×
15+1
×
11=3020。
[0194]
实施方式1的配对运算装置10不进行最终幂计算部分中的3次方根的计算,而是计
算对配对运算进行3次方的结果。不进行3次方根的计算,由此,能够减少最终幂计算部分的计算量。
[0195]
另外,如果假设得到进行3次方的结果而使用配对运算,则能够与通常的配对运算同样地利用。
[0196]
实施方式1的配对运算装置10使用bls21曲线作为椭圆曲线e。使用bls21曲线的配对运算的高速化方法是未知的。实施方式1的配对运算装置10使用bls21曲线作为椭圆曲线e,将困难部分转换成11阶的线性和,由此,与使用其他曲线的情况相比,能够高效地计算配对运算。
[0197]
实施方式1的配对运算装置10使用2
43
+2
39
+2
37
+26作为参数u。因此,配对运算装置10能够如图4所示计算miller函数。由此,能够高效地计算miller函数。其结果是,能够高效地计算配对运算。
[0198]
即,使用满足条件(1)(2)并且如条件(3)规定的那样汉明权重小的参数u。由此,能够减少miller函数的计算量。
[0199]
***其他结构***
[0200]
《变形例1》
[0201]
在实施方式1中,各功能结构要素通过软件实现。但是,作为变形例1,各功能结构要素也可以通过硬件实现。关于该变形例1,对与实施方式1不同之处进行说明。
[0202]
参照图12对变形例1的配对运算装置10的结构进行说明。
[0203]
在各功能结构要素通过硬件实现的情况下,配对运算装置10代替处理器11、内存12和存储器13而具有电子电路15。电子电路15是实现各功能结构要素、内存12和存储器13的功能的专用电路。
[0204]
作为电子电路15,假设单一电路、复合电路、程序化的处理器、并行程序化的处理器、逻辑ic、ga(gate array:门阵列)、asic(application specific integrated circuit:专用集成电路)、fpga(field-programmable gate array:现场可编程门阵列)。
[0205]
可以通过1个电子电路15实现各功能结构要素,也可以使多个电子电路15分散实现各功能结构要素。
[0206]
《变形例2》
[0207]
作为变形例2,也可以是,一部分的各功能结构要素通过硬件实现,其他的各功能结构要素通过软件实现。
[0208]
将处理器11、内存12、存储器13和电子电路15称作处理电路。即,各功能结构要素的功能通过处理电路实现。
[0209]
《变形例3》
[0210]
也可以切出配对运算装置10的功能结构要素中的一部分功能结构要素作为装置。例如,如图13所示,也可以切出miller函数计算部21作为miller函数计算装置10a。此外,如图14所示,也可以切出幂简化部22作为最终幂简化装置10b。此外,如图15所示,也可以切出幂简化部22和幂计算部23作为最终幂计算装置10c。
[0211]
实施方式2
[0212]
在实施方式1中,说明了配对运算的方法。在实施方式2中,对使用实施方式1中计算出的配对运算的结果的处理进行说明。在实施方式2中,对与实施方式1不同之处进行说
明,省略相同之处的说明。
[0213]
***结构的说明***
[0214]
参照图16对实施方式2的加密处理装置30的结构进行说明。
[0215]
加密处理装置30在实施方式1的配对运算装置10具有的功能结构要素的基础上,还具有加密处理部31。与配对运算装置10具有的功能结构要素同样,加密处理部31通过软件或硬件实现。
[0216]
***动作的说明***
[0217]
参照图17对实施方式2的加密处理装置30的动作进行说明。
[0218]
实施方式2的加密处理装置30的动作顺序相当于实施方式2的加密处理方法。此外,实现实施方式2的加密处理装置30的动作的程序相当于实施方式2的加密处理程序。
[0219]
(步骤s61:配对运算处理)
[0220]
通过实施方式1的配对运算装置10具有的功能结构要素进行配对运算。配对运算的结果被写入内存12中。
[0221]
(步骤s62:加密处理)
[0222]
加密处理部31使用在步骤s61中得到的配对运算的结果进行加密处理。加密处理是加密处理、解密处理、签名处理和验证处理这样的加密原语的处理。
[0223]
加密处理是为了对第三方隐匿数据而将平文状态的数据转换成密文的处理。解密处理是将通过加密处理而转换后的密文转换成平文状态的数据的处理。签名处理是生成数据的篡改检测和数据的出处确认中的至少任意一方用的签名的处理。验证处理是通过签名处理中生成的签名进行数据的篡改检测和数据的出处确认中的至少任意一方的处理。
[0224]
例如,考虑加密处理部31使用将密文的要素和解密密钥的要素作为输入的配对运算结果而生成对密文进行解密后的消息。
[0225]
***实施方式2的效果***
[0226]
如上所述,实施方式2的加密处理装置30使用实施方式1的配对运算装置10的功能结构要素实现加密处理。实施方式1的配对运算装置10能够高效地计算配对运算。因此,实施方式2的加密处理装置30能够高效地实施加密处理。
[0227]
标号说明
[0228]
10:配对运算装置;10a:miller函数计算装置;10b:最终幂简化装置;10c:最终幂计算装置;11:处理器;12:内存;13:存储器;14:通信接口;15:电子电路;21:miller函数计算部;22:幂简化部;221:分解部;222:转换部;223:第1生成部;224:第2生成部;23:幂计算部;30:加密处理装置;31:加密处理部。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1