加密数据运算系统、装置以及程序的制作方法_2

文档序号:9308655阅读:来源:国知局
0的功能。
[0061] 控制部26具有控制各部21~25执行图6所示的动作的功能。
[0062] 存储装置30具备密文存储部31、通信部32以及控制部33。
[0063] 这里,密文存储部31是存储密文的存储装置。
[0064] 通信部32是用于与其他装置10、20、40、50进行通信的通信接口,例如具有被控制 部33控制而将密文存储部31内的密文发送到运算装置40的功能。
[0065] 控制部33具有控制各部31、32的功能。
[0066] 运算装置40具备暂时数据存储部41、计算部42、判定部43、通信部44、控制部45 以及三次运算密钥存储部46。
[0067] 这里,暂时数据存储部41是存储计算部42、判定部43的处理中途以及处理结果等 的暂时数据的存储装置。
[0068] 计算部42计算一次运算结果以及三次运算结果。详细地说,计算部42具有以下 的各功能(f42-l)~(f42-2)。
[0069] (f42_l)通过基于各密文(各加密数据)执行一次运算处理而生成一次运算结果 (例如Xi、x2)的一次运算功能,该一次运算结果相当于将对各数值进行加减运算的式子的 运算结果加密而得的数据。例如,各加密数据Ci(i= 1,2,…,k)是通过用加密密钥(例 如a、sv)将0以上且小于N的整数的集合中的k个各数值叫、m2、…、mjp密而生成的。
[0070] (f42-2)在利用运算辅助装置50生成将一次运算结果(例如Xi、X2)随机化而成 的二次运算结果(例如t、Y2)的情况下,通过基于二次运算结果以及三次运算密钥(例如v)执行三次运算处理而生成三次运算结果W( =FR-z)的三次运算功能(例如a1是满 足amodN2的值。R是从集合{1,…,L}随机地选择的0个随机数的积。存在Le<N/2 的关系。Z是从集合{0,1,…,J}中选择的随机数。成为R<J的概率充分小。)。三次 运算结果W( =FR-z)相当于仅用随机数(例如R、z)将进行了加减运算的式子F的运算 结果秘密化后的数据。
[0071] 判定部43基于三次运算结果进行式子F(之后叙述F)的正负判定。具体而言,判 定部43基于三次运算结果W判定式子F中的被减数与减数之间的大小关系。
[0072] 通信部44是用于与其他装置10~30、50进行通信的通信接口,例如具有被控制 部45控制而将暂时数据存储部41内的一次运算结果发送到运算辅助装置50的功能。
[0073] 控制部45具有控制各部41~44、46执行图7以及图9所示的动作的功能。
[0074] 三次运算密钥存储部46是存储三次运算密钥的存储装置。
[0075] 运算辅助装置50具备二次运算处理参数生成部51、暂时数据存储部52、计算部 53、二次运算密钥存储部54、通信部55以及控制部56。
[0076] 这里,二次运算处理参数生成部51生成二次运算处理参数。二次运算处理参数生 成部51例如具有生成随机数的随机数生成功能。随机数生成功能例如是生成随机数R、z 的功能(例如R是从集合{1,…,L}随机地选择的0个随机数的积。存在Le<N/2的关 系。z是从集合{0,1,…,J}选择的随机数。成为R<J的概率充分小。)。
[0077] 暂时数据存储部52是存储二次运算处理参数生成部51、计算部53的处理中途以 及处理结果等的暂时数据的存储装置。
[0078] 计算部53计算二次运算结果。具体而言,计算部53通过基于一次运算结果(例 如&、X2)、二次运算密钥(例如a\s)以及随机数(例如R、z)执行二次运算处理,从而生 成二次运算结果(例如Yi、Y2)。
[0079] 二次运算密钥存储部54是存储二次运算密钥的存储装置。例如在客户终端(10、 20)生成各加密数据(;(1 = 1,2,…,k)之后、运算装置40基于各加密数据(;(1 = 1,2,…, k)生成一次运算结果(例如Xi、X2)的情况下,二次运算密钥存储部54存储二次运算密钥 (例如a\s)(例如a1是满足amodN2的值。)。此外,客户终端(10、20)利用加密密钥 (例如a、sv)对0以上且小于N的整数的集合中的k个各数值叫、!!!;;、…、mk进行加密而生 成各加密数据(;(1 = 1,2,…,k)。运算装置40基于各加密数据(;(1 = 1,2,…,k)生成 一次运算结果(例如&、X2),该一次运算结果相当于将对该各数值进行了加减运算的式子 F的运算结果加密而得的数据。
[0080] 通信部55是用于与其他装置10~40进行通信的通信接口,例如具有被控制部56 控制而将暂时数据存储部52内的二次运算结果发送到运算装置40的功能。
[0081] 控制部56具有控制各部51~55执行图8所示的动作的功能。
[0082] 接下来,具体地说明密钥生成处理、加密处理、一次运算处理、二次运算处理、以及 三次运算处理的各处理。
[0083] [0?密钥生成处理]
[0084] 通过密钥生成装置10,如图5以及以下的各步骤ST1~ST7所示那样执行密钥生 成处理。
[0085] 首先,密钥生成装置10的参数生成部13生成、或者从外部得到p' =(p- 1)/2、 q' =(q- 1)/2成为质数的质数p、q(STl)。这里,参数生成部13基于预先存储于密钥生 成参数存储部11的安全参数X,生成、或者外部得到合成数N=pq的比特数为A或者比 入大的值那样的质数P、q。
[0086]接下来,参数生成部13计算参数pp'qq'以及N,将参数pp'qq'以及N暂时写入 数据存储部12(ST2)。
[0087] 接下来,参数生成部13生成位数为pp'qq'的乘法群G,从G随机地选择G的元素g,并将选择的元素g写入暂时数据存储部12 (ST3)。为了生成位数为pp'qq'的乘法群G, 例如从ZN2 *随机地选择ZN2 *的元素,使得将选择的元素平方而得的值为g即可。这里, ZN2 *是和ZN2与N2互质的整数的集合(=(Z/N2Z) * ),也可以称作对于合成数N2的乘法 群ZN2 *。ZN2是0以上且小于N2的整数的集合(=(Z/N2Z)。
[0088] [式1]
[0089] 另外,在本说明书中,ZN2 *表示2^ \
[0090] 接下来,密钥生成部14获取存储于暂时数据存储部12的参数pp'qq'以及N,从 集合{1,…,pp'qq' }分别随机地选择各密钥的一部分a、s、v(ST4)。
[0091] 接着,密钥生成部14计算满足a?aimodN2= 1的a1的值和gsv的值,将加密密 钥a、gsv、g,N、二次运算密钥a\s、N、以及三次运算密钥v、N写入暂时数据存储部12。这 里,通信部15被控制部16控制而将暂时数据存储部12内的加密密钥a、gsv、g、N发送到加 密装置20 (ST5)。加密密钥a、gsv、g、N存储于加密装置20的加密密钥存储部24。
[0092] 接下来,通信部15被控制部16控制而将暂时数据存储部12内的二次运算密钥 a\s、N发送到运算辅助装置50 (ST6)。二次运算密钥a\s、N通过运算辅助装置50的控 制部56存储于二次运算密钥存储部54。
[0093] 而且,通信部15被控制部16控制而将暂时数据存储部12内的三次运算密钥v、N 发送到运算装置40 (ST7)。三次运算密钥v、N通过运算装置40的控制部45存储于三次运 算密钥存储部46。此外,加密密钥既可以是a、sv、g、N,也可以是a、s、v、g、N。
[0094] 此外,在步骤ST5、ST6、ST7中,通信部15也可以将N2也发送到加密装置20、运算 辅助装置50、运算装置40。在该情况下,在步骤ST2中,参数生成部13将N2也写入暂时数 据存储部12。另外,g、N、N2也可以不包含于加密密钥、二次运算密钥、以及三次运算密钥, 而是作为公开参数对各装置公开。若进行总结,暗号密钥包含a、s、v(或者a、sv)。二次运 算密钥包含a\s。三次运算密钥包含V。
[0095] 这些在后述的其他实施方式中也是相同的。
[0096] 根据以上,完成密钥生成处理。此外,在本说明书中,采用了将G设想为乘法群的 描述方法,但并不局限于此,也能够用将G设想为加法群的描述方法来表示。
[0097][1?加密处理]
[0098] 以下叙述的加密处理是生成密文(加密数据)的处理。
[0099] 利用加密装置20,如图6以及以下的各步骤ST11~ST14所示那样执行加密处理。 说明加密装置20将k(k自然数)个明文(加密对象的数值数据)mi、…、mk加密的例子。 各明文叫是Z啲元素。Z馮0以上且小于N的整数的集合(=(Z/NZ)。
[0100] 首先,加密装置20的加密参数生成部21WZN2 *分别随机地选择k个随机数 ri、…、rk(STll)。接下来,加密参数生成部21将生成的随机数巧、…,4写入暂时数据存 储部22 (ST12)。密文生成部23使用从暂时数据存储部22获取的随机数ri、…、rk和存储 于加密密钥存储部24的加密密钥a、gsv、g、N,通过接下来的式子对明文叫、…、mk进行加 密(ST13)。
[0101] [式2]
[0102] C;=(Cia,Ci>2)(i= 1, . . . ,k),
[0105] 密文生成部23将生成的密文Q(i= 1,…,k)写入暂时数据存储部22。通信部 25被控制部26控制而将暂时数据存储部22内的密文Q(i= 1,…,k)发送到存储装置 30(ST14)。
[0106] 此外,加密密钥a既可以如上述那样由密钥生成装置10生成,也可以由加密装置 20生成。在后者的情况下,在步骤ST5中,密钥生成装置10将加密密钥gsv、g、N发送到加 密装置20。另外,在步骤ST11中,加密装置20的加密参数生成部21生成加密密钥a,计算 a1的值,将二次运算密钥a1发送到运算辅助装置50。此外,在加密装置20不知pp'qq'的 值的情况下,从ZN2 *的中随机地选择加密密钥a即可。
[0107] 根据以上,完成加密处理。
[0108] [2?-次运算处理]
[0109] 以下叙述的一次运算处理是对密文(加密数据)进行加减运算的处理。
[0110] 利用运算装置40,如图7以及以下的各步骤ST21~ST23所示那样执行一次运算 处理。说明运算装置40 (在后述的三次运算处理中)判定下面的式子F的正负的例子。
[0111] [式 3]
[0112]
[0113] 这里,叫是任意的整数。另外,K是计算式子F所需的索引i的集合。例如,在F =211^-1112的情况下,n2,n2=- 1,K= {1,2}。另外,在希望判定加减运算的式子F 中的被减数ma与减数mb之间的大小关系的情况下,例如设为F=ma-mb= 3m2- 4m3+m5, n2=3,n3=-4
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1