本發(fā)明涉及用于處理表等由行和列構(gòu)成的數(shù)據(jù)的矩陣/密鑰生成裝置、矩陣/密鑰生成系統(tǒng)、矩陣結(jié)合裝置、矩陣/密鑰生成方法、程序。
背景技術(shù):
非專(zhuān)利文獻(xiàn)1中公開(kāi)有下述技術(shù):對(duì)于要素被隱匿化的矩陣、具有與該矩陣的行的每一行對(duì)應(yīng)的被隱匿化的要素的向量,在通過(guò)隱匿計(jì)算依舊將要素隱匿化的情況下,將矩陣的行的順序和向量的要素的順序按照向量的要素進(jìn)行排序(sort)。非專(zhuān)利文獻(xiàn)2中公開(kāi)有下述技術(shù):在依舊將要素隱匿化的情況下,進(jìn)行對(duì)相同的要素出現(xiàn)的次數(shù)(重復(fù)的個(gè)數(shù))進(jìn)行計(jì)數(shù)的計(jì)算(以下,稱(chēng)為“階段計(jì)算”),輸出隱匿化的結(jié)果。圖1是用于說(shuō)明階段計(jì)算的概要的圖。此外,∥∥是表示被隱匿化的情況的記號(hào)。輸入的第1要素∥1∥第1次出現(xiàn),所以輸出的第1要素是∥1∥。輸入的第2要素∥2∥第1次出現(xiàn),所以輸出的第2要素是∥1∥。輸入的第3要素∥2∥是第2次出現(xiàn),所以輸出的第3要素是∥2∥。輸入的第6要素∥3∥是第3次出現(xiàn),所以輸出的第6要素是∥3∥。這樣,進(jìn)行階段計(jì)算時(shí),對(duì)相同的要素出現(xiàn)的次數(shù)(重復(fù)的個(gè)數(shù))進(jìn)行計(jì)數(shù),輸出其結(jié)果。非專(zhuān)利文獻(xiàn)3中公開(kāi)有下述技術(shù):以較少的通信量,基于與各矩陣對(duì)應(yīng)的向量的被隱匿化的要素將要素被隱匿化的多個(gè)矩陣進(jìn)行結(jié)合。非專(zhuān)利文獻(xiàn)4中公開(kāi)有將數(shù)據(jù)隱匿化的技術(shù)(分散處理)、恢復(fù)被隱匿化的數(shù)據(jù)的技術(shù)(恢復(fù)處理)、在將被隱匿化的數(shù)據(jù)隱匿化的狀態(tài)下進(jìn)行相加、相乘、驗(yàn)證(2個(gè)被隱匿化的數(shù)據(jù)是否相等的驗(yàn)證)而得到被隱匿化的結(jié)果的技術(shù)等。
非專(zhuān)利文獻(xiàn)1:kokihamada,daiikarashi,kojichida,andkatsumitakahashi,“obliviousradixsort:anefficientsortingalgorithmforpracticalsecuremulti-partycomputation”,iacrcryptologyeprintarchive,vol.2014,p.121,2014.
非專(zhuān)利文獻(xiàn)2:濱田浩気,五十嵐大,千田浩司,“秘匿計(jì)算上の集約関數(shù)中央値計(jì)算アルゴリズム”,incss,2012.
非專(zhuān)利文獻(xiàn)3:濱田浩気,菊池亮,五十嵐大,千田浩司,“秘匿計(jì)算上の結(jié)合アルゴリズム”,人工知能學(xué)會(huì)全國(guó)大會(huì)(第26回)論文集,june2012.
非專(zhuān)利文獻(xiàn)4:千田浩司,濱田浩気,五十嵐大,高橋克巳,“軽量検証可能3パーティ秘匿関數(shù)計(jì)算の再考”,incss,2010.
發(fā)明所要解決的課題
非專(zhuān)利文獻(xiàn)3所示的結(jié)合矩陣的技術(shù)以成為結(jié)合的密鑰的向量的要素上沒(méi)有重復(fù)的情況為前提,以少的通信量,通過(guò)隱匿計(jì)算實(shí)現(xiàn)矩陣的結(jié)合。但是,存在在向量的要素中有重復(fù)的情況下不能利用這種課題。為了能夠利用非專(zhuān)利文獻(xiàn)3的結(jié)合矩陣的技術(shù),需要將要素上有重復(fù)的向量和結(jié)合對(duì)象的矩陣轉(zhuǎn)換為在要素上無(wú)重復(fù)的向量和與該向量對(duì)應(yīng)的矩陣。
技術(shù)實(shí)現(xiàn)要素:
因此,本發(fā)明的目的在于,提供將要素中有重復(fù)的向量和結(jié)合對(duì)象的矩陣轉(zhuǎn)換為要素中無(wú)重復(fù)的向量和與該向量對(duì)應(yīng)的矩陣的技術(shù)。
用于解決課題的手段
首先,將n設(shè)為1以上的整數(shù),n設(shè)為0以上n-1以下的整數(shù),kn設(shè)為1以上的整數(shù),i和j設(shè)為整數(shù),tn設(shè)為kn行的矩陣,kn設(shè)為要素的數(shù)量為kn個(gè)的向量,tn[j]設(shè)為矩陣tn的第j行,kn[j]設(shè)為向量kn的第j個(gè)要素,mn設(shè)為向量kn的要素重復(fù)的上限數(shù)。向量kn的第j個(gè)要素為與矩陣tn的第j行對(duì)應(yīng)的要素。
本發(fā)明的第1發(fā)明是限定于隱匿計(jì)算,可以和非專(zhuān)利文獻(xiàn)3所示的矩陣結(jié)合組合的技術(shù)。第1發(fā)明中,將∥∥設(shè)為表示是被隱匿化的數(shù)據(jù)的記號(hào),mn設(shè)為將∥1∥,…,∥mn∥作為基元的集合。第1發(fā)明的矩陣/密鑰生成裝置通過(guò)由網(wǎng)絡(luò)連接的3個(gè)以上的矩陣/密鑰生成裝置構(gòu)成矩陣/密鑰生成系統(tǒng)。矩陣/密鑰生成系統(tǒng)在矩陣/密鑰生成裝置間一邊進(jìn)行數(shù)據(jù)通信一邊進(jìn)行隱匿計(jì)算。另外,矩陣tn的行和列的數(shù)量、向量kn的要素的數(shù)量、值mn是未被隱匿化的信息,矩陣tn的要素的每一個(gè)、向量kn的要素的每一個(gè)是在矩陣/密鑰生成裝置之間被隱匿化的信息。矩陣/密鑰生成裝置具備排序單元、向量生成單元、集合生成單元、矩陣生成單元、密鑰生成單元。
排序單元通過(guò)和其它矩陣/密鑰生成裝置的排序單元的隱匿計(jì)算,對(duì)于n=0,…,n-1的每一個(gè),在按照向量kn的要素依舊維持了對(duì)應(yīng)的情況下,將矩陣tn的行的順序和向量kn的要素的順序進(jìn)行排序,以排序后的矩陣和向量,更新矩陣t0,…,tn-1和向量k0,…,kn-1。向量生成單元、集合生成單元、矩陣生成單元、密鑰生成單元對(duì)排序單元更新了的矩陣t0,…,tn-1和向量k0,…,kn-1進(jìn)行處理。向量生成單元通過(guò)與其它矩陣/密鑰生成裝置的向量生成單元的隱匿計(jì)算,對(duì)于n=0,…,n-1的每一個(gè),以設(shè)定xn[1]=∥1∥,對(duì)于2≤i≤kn,如果是kn[i-1]=kn[i],則xn[i]=∥xn[i-1]+1∥,如果是kn[i-1]≠kn[i],則xn[i]=∥1∥的方式,生成要素的數(shù)量為kn個(gè),且將要素的每一個(gè)隱匿化的向量xn。集合生成單元通過(guò)與其它的矩陣/密鑰生成裝置的集合生成單元的隱匿計(jì)算,對(duì)于n=0,…,n-1的每一個(gè),且對(duì)于j=1,…,kn每一個(gè),以各基元與一個(gè)一個(gè)選自集合mn以外的集合m0,…,mn-1的n-1個(gè)基元和xn[j]的組合對(duì)應(yīng),包含全部的組合量的基元的方式,生成將基元的每一個(gè)隱匿化的集合bn,j。矩陣生成單元通過(guò)和其它的矩陣/密鑰生成裝置的矩陣生成單元的隱匿計(jì)算,對(duì)于n=0,…,n-1的每一個(gè),以對(duì)于j=1,…,kn的全部,只具有集合bn,j的基元的數(shù)量的與tn[j]相同的行的方式,生成將要素的每一個(gè)隱匿化的矩陣tn'。密鑰生成單元通過(guò)和其它的矩陣/密鑰生成裝置的密鑰生成單元的隱匿計(jì)算,對(duì)于n=0,…,n-1的每一個(gè),以在與矩陣tn'的和tn[j]相同的行對(duì)應(yīng)的要素與kn[j]和集合bn,j的基元的組合對(duì)應(yīng),且具有多個(gè)與tn[j]相同的行的情況下,集合bn,j的基元相互不同的方式,生成將要素的每一個(gè)隱匿化的向量kn'。
本發(fā)明的第2發(fā)明是不進(jìn)行隱匿計(jì)算,將要素中有重復(fù)的向量和結(jié)合對(duì)象的矩陣轉(zhuǎn)換為要素中無(wú)重復(fù)的向量和與該向量對(duì)應(yīng)的矩陣的技術(shù)。第2發(fā)明中,將mn設(shè)為由相互不同的mn個(gè)基元構(gòu)成的集合,mn[i]設(shè)為集合mn的第i個(gè)基元。另外,將矩陣t0,…,tn-1和向量k0,…,kn-1作為輸入。第2發(fā)明的矩陣/密鑰生成裝置具備向量生成單元、集合生成單元、矩陣生成單元、密鑰生成單元。向量生成單元對(duì)于n=0,…,n-1的每一個(gè),以i≠j時(shí),如果是kn[i]=kn[j],則xn[i]≠xn[j]的方式,生成將要素的數(shù)量為kn個(gè),且各要素是集合mn的基元的向量xn。集合生成單元對(duì)于n=0,…,n-1的每一個(gè),且對(duì)于j=1,…,kn的每一個(gè),以各基元與一個(gè)一個(gè)選自集合mn以外的集合m0,…,mn-1的n-1個(gè)基元和xn[j]的組合對(duì)應(yīng),包含全部的組合量的基元的方式,生成集合bn,j。矩陣生成單元對(duì)于n=0,…,n-1的每一個(gè),以對(duì)于j=1,…,kn的全部,只具有集合bn,j的基元的數(shù)量的與tn[j]相同的行的方式,生成矩陣tn'。密鑰生成單元對(duì)于n=0,…,n-1的每一個(gè),以在與矩陣tn’的和tn[j]相同的行對(duì)應(yīng)的要素與kn[j]和集合bn,j的基元的組合對(duì)應(yīng),且具有多個(gè)與tn[j]相同的行的情況下,集合bn,j的基元相互不同的方式,生成向量kn’。
發(fā)明效果
根據(jù)本發(fā)明的矩陣/密鑰生成系統(tǒng)、矩陣/密鑰生成裝置,可以將要素上有重復(fù)的向量和結(jié)合對(duì)象的矩陣轉(zhuǎn)換為要素?zé)o重復(fù)的向量和與該向量對(duì)應(yīng)的矩陣。
附圖說(shuō)明
圖1是用于說(shuō)明階段計(jì)算的概要的圖。
圖2是表示矩陣的結(jié)合的具體例的圖。
圖3是表示實(shí)施例1的矩陣/密鑰生成系統(tǒng)的構(gòu)成例的圖。
圖4是表示實(shí)施例1的矩陣/密鑰生成系統(tǒng)及實(shí)施例2的矩陣/密鑰生成裝置的處理流程的圖。
圖5是表示在按照向量k0的要素依舊維持了對(duì)應(yīng)的情況下,對(duì)隱匿計(jì)算中圖2所示的矩陣t0的行的順序和向量k0的要素的順序進(jìn)行排序的情況的圖。
圖6是表示對(duì)要素被隱匿化的狀態(tài)的圖2所示的向量k0,k1,k2進(jìn)行了階段計(jì)算的結(jié)果的向量x0,x1,x2的圖。
圖7是表示結(jié)合要素被隱匿化的狀態(tài)的圖2所示的矩陣t0和矩陣t1的情況的矩陣t0'、向量k0'和矩陣t1'、向量k1'的例子的圖。
圖8是表示實(shí)施例1變形例的矩陣結(jié)合系統(tǒng)的構(gòu)成例的圖。
圖9是表示實(shí)施例1變形例的矩陣結(jié)合系統(tǒng)的處理流程的圖。
圖10是表示結(jié)合圖7所示的矩陣t0'和矩陣t1'而得的矩陣的圖。
圖11是表示實(shí)施例2、實(shí)施例2變形例的矩陣/密鑰生成裝置的構(gòu)成例的圖。
具體實(shí)施方式
以下,詳細(xì)說(shuō)明本發(fā)明的實(shí)施方式。此外,對(duì)具有相同功能的構(gòu)成部標(biāo)注相同的序號(hào),省略重復(fù)說(shuō)明。
實(shí)施例1
實(shí)施例1的說(shuō)明中,n設(shè)為1以上的整數(shù),n設(shè)為0以上n-1以下的整數(shù),kn設(shè)為1以上的整數(shù),i和j設(shè)為整數(shù),tn設(shè)為kn行的矩陣,kn設(shè)為要素的數(shù)量為kn個(gè)的向量,tn[j]設(shè)為矩陣tn的第j行,kn[j]設(shè)為向量kn的第j個(gè)要素,mn設(shè)為向量kn的要素重復(fù)的上限數(shù),mn設(shè)為以1,…,mn為基元的集合,∥∥作為表示是被隱匿化的數(shù)據(jù)的記號(hào)。向量kn的第j個(gè)要素是與矩陣tn的第j行對(duì)應(yīng)的要素。此外,上限數(shù)mn也可以不是向量kn的要素實(shí)際上重復(fù)的數(shù),只要設(shè)定為有重復(fù)的可能性的最大值即可。
<矩陣的結(jié)合>
首先,對(duì)于表現(xiàn)表的矩陣和表現(xiàn)該矩陣的各行的密鑰的列向量及矩陣的結(jié)合進(jìn)行說(shuō)明。矩陣的結(jié)合中,在全部向量k0,…,kn-1中具有共同的要素的情況下,結(jié)合與共同的要素對(duì)應(yīng)的矩陣t0,…,tn-1的行作為1個(gè)行。圖2表示矩陣的結(jié)合的具體例。矩陣t0,t1,t2是成為結(jié)合的對(duì)象的矩陣。向量k0,k1,k2是表示密鑰的列向量。此外,在本說(shuō)明書(shū)中,“矩陣”指表現(xiàn)表的形式,“向量”指表現(xiàn)密鑰的形式,因此,矩陣tn和向量kn的各要素不需要限制在1個(gè)數(shù)值,也可以是數(shù)值的組合、字符串等。
在此,考慮矩陣t0和矩陣t1的結(jié)合。表示矩陣t0的密鑰的向量k0的第1個(gè)和第4個(gè)要素、表示矩陣t1的密鑰的向量k1第1個(gè)和第2個(gè)要素為“1”,是共同的。即,矩陣t0的第1行和第4行的密鑰、矩陣t1的第1行和第2行的密鑰為“1”,是共同的。另外,矩陣t0的第3行的密鑰(向量k0的第3個(gè)要素)、矩陣t1的第3行和第4行的密鑰(向量k1的第3個(gè)和第4個(gè)要素)為“3”,是共同的。因此,在結(jié)合矩陣t0和矩陣t1的矩陣中,將結(jié)合了矩陣t0的第1行和矩陣t1的第1行的結(jié)果作為第1行、將結(jié)合了矩陣t0的第1行和矩陣t1的第2行的結(jié)果作為第2行、將結(jié)合了矩陣t0的第4行和矩陣t1的第1行的結(jié)果作為第3行、將結(jié)合了矩陣t0的第4行和矩陣t1的第2行的結(jié)果作為第4行,將結(jié)合了矩陣t0的第3行和矩陣t1的第3行的結(jié)果作為第5行,結(jié)合了矩陣t0的第3行和矩陣t1的第4行的結(jié)果作為第6行。
接著,考慮矩陣t0和矩陣t1和矩陣t2的結(jié)合。表示密鑰的向量k0的要素、向量k1的要素、向量k2的要素共同的是要素為“1”的向量k0的第1個(gè)和第4個(gè)要素、向量k1的第1和第2的要素、向量k2的第1的要素。即,密鑰共同的是密鑰為“1”的矩陣t0的第1行和第4行、矩陣t1的第1行和第2行、矩陣t2的第1行。因此,在結(jié)合了矩陣t0和矩陣t1和矩陣t2的矩陣中,將結(jié)合了矩陣t0的第1行和矩陣t1的第1行和矩陣t2的第1行的結(jié)果設(shè)為第1行,將結(jié)合矩了陣t0的第1行和矩陣t1的第2行和矩陣t2的第1行的結(jié)果設(shè)為第2行,將結(jié)合了矩陣t0的第4行和矩陣t1的第1行和矩陣t2的第1行的結(jié)果作為第3行,將結(jié)合了矩陣t0的第4行和矩陣t1的第2行和矩陣t2的第1行的結(jié)果設(shè)為第4行。
<結(jié)構(gòu)和算法>
圖3表示矩陣/密鑰生成系統(tǒng)的構(gòu)成例,圖4表示矩陣/密鑰生成系統(tǒng)的處理流程。矩陣/密鑰生成系統(tǒng)具有由網(wǎng)絡(luò)800連接的3個(gè)以上的矩陣/密鑰生成裝置160,在矩陣/密鑰生成裝置160間可以進(jìn)行隱匿計(jì)算。各矩陣/密鑰生成裝置160具備排序單元110、向量生成單元120、集合生成單元130、矩陣生成單元140、密鑰生成單元150、記錄單元190。本實(shí)施例中,矩陣tn的行和列的數(shù)量、向量kn的要素的數(shù)量、以及值mn是未被隱匿化的信息,矩陣tn的要素每一個(gè)、向量kn的要素的每一個(gè)是在矩陣/密鑰生成裝置160之間被隱匿化的信息。即,矩陣tn的要素的每一個(gè)、向量kn的要素的每一個(gè)的斷片分散記錄于多個(gè)矩陣/密鑰生成裝置的記錄單元190。此外,“斷片”即為只要了解規(guī)定的數(shù)量的斷片,則可以恢復(fù)基元的值的數(shù)據(jù),非專(zhuān)利文獻(xiàn)4中稱(chēng)為“分散數(shù)據(jù)”。
排序單元110通過(guò)和其它矩陣/密鑰生成裝置160的排序單元110的隱匿計(jì)算,對(duì)于n=0,…,n-1每一個(gè)整數(shù),在按照向量kn的要素依舊維持對(duì)應(yīng)的情況下,將矩陣tn的行的順序和向量kn的要素的順序進(jìn)行排序,以排序后的矩陣和向量,更新矩陣t0,…,tn-1和向量k0,…,kn-1(s110)。此外,對(duì)于通過(guò)隱匿計(jì)算進(jìn)行排序處理的方法,具體在非專(zhuān)利文獻(xiàn)1所示。另外,排序即可以是升序也可以是降序。圖5表示通過(guò)隱匿計(jì)算,在按照向量k0的要素依舊維持對(duì)應(yīng)的情況下,將圖2所示的矩陣t0的行的順序和向量k0的要素的順序進(jìn)行了排序的情況。在該例中,值越小的密鑰(向量k0的要素),順序越提前(上)。向量生成單元120、集合生成單元130、矩陣生成單元140、密鑰生成單元150對(duì)排序單元110更新了的矩陣t0,…,tn-1和向量k0,…,kn-1進(jìn)行處理。
向量生成單元120通過(guò)和其它的矩陣/密鑰生成裝置160的向量生成單元120的隱匿計(jì)算,對(duì)于n=0,…,n-1的每一個(gè)整數(shù),以設(shè)定xn[1]=∥1∥,對(duì)于2≤i≤kn,如果是kn[i-1]=kn[i],則xn[i]=∥xn[i-1]+1∥,如果是kn[i-1]≠kn[i],則xn[i]=∥1∥的方式,生成要素的數(shù)量為kn個(gè)、且將要素的每一個(gè)隱匿化的向量xn(s120)。該處理與非專(zhuān)利文獻(xiàn)2所示的階段計(jì)算相同。另外,將值隱匿化的技術(shù)在非專(zhuān)利文獻(xiàn)4等中示出。圖6表示排序單元110對(duì)要素被隱匿化的狀態(tài)的圖2所示的向量k0,k1,k2排序后的向量k0,k1,k2、和向量生成單元120對(duì)排序后的向量k0,k1,k2進(jìn)行了階段計(jì)算的結(jié)果即向量x0,x1,x2。
集合生成單元130通過(guò)和其它的矩陣/密鑰生成裝置160的集合生成單元130的隱匿計(jì)算,對(duì)于n=0,…,n-1的每一個(gè)整數(shù),且對(duì)于j=1,…,kn的每一個(gè),以各基元與一個(gè)一個(gè)選自集合mn以外的集合m0,…,mn-1的n-1個(gè)基元和xn[j]的組合對(duì)應(yīng)、包含全部的組合量的基元的方式,生成將基元的每一個(gè)隱匿化的集合bn,j(s130)。例如,如(m0的基元,…,mn-1的基元,xn[j],mn+1的基元,…,mn-1的基元)那樣作出組合,只要為1個(gè)基元即可。另外,也可以將由組合決定性地計(jì)算的值(以與組合1對(duì)1對(duì)應(yīng)的值,換句話(huà)說(shuō),以在不同組合時(shí)一定成為不同的計(jì)算值的方式求出的值)作為基元。上述的“與組合對(duì)應(yīng)”即為用于表示不僅包含組合自身,而且包含由組合決定性地計(jì)算的值的表現(xiàn)。
例如,使用圖6所示的向量k0、向量k1、向量k2說(shuō)明集合生成單元130的處理。向量k0中,要素中具有2個(gè)∥1∥,其它的要素分別是一個(gè)一個(gè),所以向量k0中要素重復(fù)的上限數(shù)m0為2。同樣研究要素重復(fù)的上限數(shù),向量k1中要素重復(fù)的上限數(shù)m1為2,向量k2中要素重復(fù)上限數(shù)m2是3。因此,是集合m0={∥1∥,∥2∥}、集合m1={∥1∥,∥2∥}、集合m2={∥1∥,∥2∥,∥3∥}。首先,表示結(jié)合矩陣t0和矩陣t1的處理的例子。因x0[1]=∥1∥、集合m1={∥1∥,∥2∥},所以x0[1]和集合m1的基元的組合為(∥1∥,∥1∥)和(∥1∥,∥2∥)。因此,集合b0,1={(∥1∥,∥1∥),(∥1∥,∥2∥)}。另外,例如,x0[2]=∥2∥、集合m1={∥1∥,∥2∥},所以x0[2]和集合m1的基元的組合為(∥2∥,∥1∥)和(∥2∥,∥2∥),集合m0的基元和x1[4]的組合是(∥1∥,∥2∥)和(∥2∥,∥2∥)。對(duì)于其它的組合也同樣進(jìn)行即可。結(jié)合矩陣t0和矩陣t1和矩陣t2的處理的情況下,為3個(gè)組合。x0[1]=∥1∥、集合m1={∥1∥,∥2∥}、集合m2={∥1∥,∥2∥,∥3∥},所以x0[1]和集合m1的基元和集合m2的基元的組合為(∥1∥,∥1∥,∥1∥),(∥1∥,∥1∥,∥2∥),(∥1∥,∥1∥,∥3∥),(∥1∥,∥2∥,∥1∥),(∥1∥,∥2∥,∥2∥),(∥1∥,∥2∥,∥3∥)。因此,集合b0,1={{(∥1∥,∥1∥,∥1∥),(∥1∥,∥1∥,∥2∥),(∥1∥,∥1∥,∥3∥),(∥1∥,∥2∥,∥1∥),(∥1∥,∥2∥,∥2∥),(∥1∥,∥2∥,∥3∥)}}。
矩陣生成單元140通過(guò)和其它的矩陣/密鑰生成裝置160的矩陣生成單元140的隱匿計(jì)算,對(duì)于n=0,…,n-1的每一個(gè)整數(shù),以對(duì)于j=1,…,kn的全部,只具有集合bn,j的基元的數(shù)量的與tn[j]相同的行的方式,生成將要素的每一個(gè)隱匿化的矩陣tn'(s140)。圖7中表示結(jié)合要素被隱匿化的狀態(tài)的圖2所示的矩陣t0和矩陣t1的情況的矩陣t0',向量k0'和矩陣t1',向量k1'的例子。結(jié)合矩陣t0和矩陣t1的處理的情況下,集合b0,1的基元的數(shù)量為2,所以將與t0[1]相同的行作出2行。同樣,集合b0,2,b0,3,b0,4,b0,5的基元的數(shù)量也為2,所以分別將相同的行每個(gè)作出2行。因此,矩陣t0'為相同的行每個(gè)存在2行的10行的矩陣。另外,矩陣t1'也為相同的行每個(gè)存在2行的8行的矩陣。
密鑰生成單元150通過(guò)和其它的矩陣/密鑰生成裝置160的密鑰生成單元150的隱匿計(jì)算,對(duì)于n=0,…,n-1的每一個(gè)整數(shù),以與矩陣tn’的和tn[j]相同的行對(duì)應(yīng)的要素與kn[j]和集合bn,j的基元的組合對(duì)應(yīng)、且具有多個(gè)與tn[j]相同的行的情況下,集合bn,j的基元相互不同的方式,生成將要素的每一個(gè)隱匿化的向量kn'(s150)。矩陣t0'為10行,矩陣t1'為8行,所以向量k0'的要素是10個(gè),向量k1'的要素是8個(gè)。t0'[1]和t0'[2]均為t0[1],所以k0'[1]為(k0[1],b0,1的1個(gè)基元),k0'[2]為(k0[1],b0,1的另外的基元)。圖7中,k0'[1]=(∥1∥,(∥1∥,∥1∥))、k0'[2]=(∥1∥,(∥1∥,∥2∥))。即,與矩陣t0'的和t0[1]相同的行對(duì)應(yīng)的要素(k0'[1]和k0'[2])與k0[1]和集合b0,1的基元的組合對(duì)應(yīng)。而且,因?yàn)榫哂卸鄠€(gè)與t0[1]相同的行,所以集合b0,1的基元以相互不同的方式選擇。
此外,密鑰生成單元150的說(shuō)明中的“與組合對(duì)應(yīng)”也是用于表示不僅包含組合自身,還包含由組合決定性地計(jì)算的值(與組合1對(duì)1對(duì)應(yīng)的值)的表現(xiàn)。例如,將f作為由組合決定地計(jì)算值的函數(shù),也可以設(shè)為k0'[1]=∥f(∥1∥,(∥1∥,∥1∥))∥。但是,f是可隱匿計(jì)算的函數(shù)。
如從圖7可知,無(wú)論向量k0'還是向量k1'在向量?jī)?nèi)均無(wú)要素的重復(fù)。因此,根據(jù)實(shí)施例1的矩陣/密鑰生成裝置,可以將要素中有重復(fù)的向量和結(jié)合對(duì)象的矩陣轉(zhuǎn)換為要素中無(wú)重復(fù)的向量和與該向量對(duì)應(yīng)的矩陣。
[變形例]
圖8表示矩陣結(jié)合系統(tǒng)的構(gòu)成例,圖9表示矩陣結(jié)合系統(tǒng)的處理流程。矩陣結(jié)合系統(tǒng)具有由網(wǎng)絡(luò)800連接的3個(gè)以上的矩陣結(jié)合裝置100,在矩陣結(jié)合裝置100彼此之間進(jìn)行隱匿計(jì)算。矩陣結(jié)合裝置100具備矩陣/密鑰生成裝置160和結(jié)合部170。矩陣/密鑰生成裝置160及矩陣/密鑰生成步驟s160與實(shí)施例1中說(shuō)明的內(nèi)容相同。
結(jié)合部170通過(guò)和其它的矩陣結(jié)合裝置100的結(jié)合部170的隱匿計(jì)算,在全部向量k0',…,kn-1'中具有共同的要素的情況下,結(jié)合與共同的要素每一個(gè)對(duì)應(yīng)的矩陣t0',…,tn-1'的行作為一行,生成將要素的每一個(gè)隱匿化的矩陣(s170)。該處理只要使用非專(zhuān)利文獻(xiàn)3記載的矩陣結(jié)合的技術(shù)即可。圖10表示結(jié)合圖7所示的矩陣t0'和矩陣t1'而得的矩陣??芍獔D10所示的矩陣為將結(jié)合了圖2所示的矩陣t0和矩陣t1的矩陣的各要素隱匿化的矩陣。此外,至求出矩陣t0',…,tn-1'和向量k0',…,kn-1'的處理中,有可能知道行間的對(duì)應(yīng)關(guān)系,但隱匿計(jì)算中的矩陣的結(jié)合時(shí),只要隨機(jī)置換行,則可以不知道行間的對(duì)應(yīng)關(guān)系。
非專(zhuān)利文獻(xiàn)3的矩陣結(jié)合的技術(shù)在將輸入的表的記錄數(shù)的總和(以矩陣形式表現(xiàn)的情況為行數(shù)的總和)設(shè)為q時(shí),通信量為o(q·logq)。在本發(fā)明的矩陣/矩陣結(jié)合系統(tǒng)的情況下,在將行數(shù)的總和設(shè)為q、重復(fù)數(shù)的上限設(shè)為p時(shí),通信量可以為o(pq·logq)。在密鑰上有重復(fù)的情況下,一般處理以p的乘方的等級(jí)增加,本發(fā)明的情況因?yàn)槭莗的1次方的等級(jí),所以能夠?qū)崿F(xiàn)可以減少非專(zhuān)利文獻(xiàn)3的通信量的優(yōu)點(diǎn)。
實(shí)施例2
實(shí)施例1中研究了隱匿計(jì)算的情況,但本發(fā)明的考慮方式不限定于隱匿計(jì)算也可以利用。如果不是隱匿計(jì)算,則不需要使用多個(gè)矩陣/密鑰生成裝置。利用1臺(tái)的矩陣/密鑰生成裝置,可以將表示要素中有重復(fù)的密鑰的向量和結(jié)合對(duì)象的矩陣轉(zhuǎn)換為表示要素中無(wú)重復(fù)的密鑰的向量和與該向量對(duì)應(yīng)的矩陣。在此,實(shí)施例2說(shuō)明無(wú)隱匿化的情況。
實(shí)施例2中,設(shè)n為1以上的整數(shù),n為0以上n-1以下的整數(shù),kn為1以上的整數(shù),i和j為整數(shù),tn為kn行的矩陣,kn為要素的數(shù)量為kn個(gè)的向量,tn[j]為矩陣tn的第j行,kn[j]為向量kn的第j的要素,mn為向量kn的要素重復(fù)的上限數(shù),矩陣t0,…,tn-1和向量k0,…,kn-1作為輸入。另外,mn設(shè)為由mn[i]=i的mn個(gè)基元構(gòu)成的集合。
圖11表示實(shí)施例2的矩陣/密鑰生成裝置的構(gòu)成例,圖4表示實(shí)施例2的矩陣/密鑰生成裝置的處理流程的例子。矩陣/密鑰生成裝置260具備排序單元210、向量生成單元220、集合生成單元230、矩陣生成單元240、密鑰生成單元250。排序單元210對(duì)于n=0,…,n-1的每一個(gè)整數(shù),在按照向量kn的要素依舊維持對(duì)應(yīng)的情況下,對(duì)矩陣tn的行的順序和向量kn的要素的順序進(jìn)行排序,以排序后的矩陣和向量,更新矩陣t0,…,tn-1和向量k0,…,kn-1(s210)。向量生成單元220、集合生成單元230、矩陣生成單元240、密鑰生成單元250對(duì)排序單元210更新了的矩陣t0,…,tn-1和向量k0,…,kn-1進(jìn)行處理。
向量生成單元220對(duì)于n=0,…,n-1的每一個(gè)整數(shù),以設(shè)定xn[i]=1,對(duì)于2≤i≤kn,如果是kn[i-1]=kn[i],則xn[i]=xn[i-1]+1,如果是kn[i-1]≠kn[i],則xn[i]=1的方式,生成向量xn(s220)。集合生成單元230對(duì)于n=0,…,n-1的每一個(gè),且對(duì)于j=1,…,kn的每一個(gè),以各基元與一個(gè)一個(gè)選自集合mn以外的集合m0,…,mn-1的n-1個(gè)基元和xn[j]的組合對(duì)應(yīng)、且包含全部的組合量的基元的方式,生成集合bn,j(s230)。矩陣生成單元240對(duì)于n=0,…,n-1的每一個(gè)整數(shù),以對(duì)于j=1,…,kn的全部,僅具有集合bn,j的基元的數(shù)量的與tn[j]相同的行的方式,生成矩陣tn'(s240)。密鑰生成單元250對(duì)于n=0,…,n-1的每一個(gè)整數(shù),在與矩陣tn’的和tn[j]相同的行對(duì)應(yīng)的要素與kn[j]和集合bn,j的基元的組合對(duì)應(yīng),且具有多個(gè)與tn[j]相同的行的情況下,以集合bn,j的基元相互不同的方式,生成向量kn'(s250)。
各處理因僅不是隱匿計(jì)算這點(diǎn)與實(shí)施例1不同,所以在輸入圖2所示的矩陣t0,t1和向量k0,k1的情況下,所輸出的矩陣t0',t1'和向量k0',k1'為圖7的各要素未被隱匿化的矩陣和向量。因此,根據(jù)實(shí)施例2的矩陣/密鑰生成裝置,可以將要素中有重復(fù)的向量和結(jié)合對(duì)象的矩陣轉(zhuǎn)換為要素中無(wú)重復(fù)的向量和與該向量對(duì)應(yīng)的矩陣。
[變形例]
本變形例中,導(dǎo)出實(shí)施例2的上位概念。本變形例中,省略排序單元210,將向量生成單元220變更為向量生成單元220'。另外,本變形例中,不是將mn限定為mn[i]=i的集合,而將mn設(shè)為由相互不同的mn個(gè)的基元構(gòu)成的集合,將mn[i]作為集合mn的第i的基元。本變形例的矩陣/密鑰生成裝置的功能構(gòu)成在圖11中表示,處理流程在圖4中表示。本變形例中,向量生成單元220'、集合生成單元230、矩陣生成單元240、密鑰生成單元250對(duì)所輸入的矩陣t0,…,tn-1和向量k0,…,kn-1進(jìn)行處理(不進(jìn)行排序步驟s210)。
向量生成單元220'對(duì)于n=0,…,n-1每一個(gè)整數(shù),以在i≠j時(shí),如果是kn[i]=kn[j],則為xn[i]≠xn[j]的方式,生成要素的數(shù)量為kn個(gè),各要素為集合mn的基元的向量xn。變形例2的向量生成單元220的處理是滿(mǎn)足事先將向量kn排序的情況下可以利用的向量生成單元220'的處理的條件的一個(gè)處理。因此,本變形例的發(fā)明是實(shí)施例2的發(fā)明的上位概念。
如果這樣生成向量xn,則不存在集合生成單元230、矩陣生成單元240、密鑰生成單元250的處理是否被排序造成的不同,所以本變形例的矩陣/密鑰生成裝置也可以將要素中有重復(fù)的向量和結(jié)合對(duì)象的矩陣轉(zhuǎn)換為要素中無(wú)重復(fù)的向量和與該向量對(duì)應(yīng)的矩陣。
[程序、記錄介質(zhì)]
上述的各種處理不僅按照記載在時(shí)間序列上執(zhí)行,而且也可以根據(jù)執(zhí)行處理的裝置的處理能力或需要并列或分別執(zhí)行。另外,不言而喻在不脫離本發(fā)明的宗旨的范圍內(nèi)可適當(dāng)變更。
另外,通過(guò)計(jì)算機(jī)實(shí)現(xiàn)上述的構(gòu)成的情況下,各裝置應(yīng)該有的功能的處理內(nèi)容通過(guò)程序記述。而且,通過(guò)在計(jì)算機(jī)中執(zhí)行該程序,在計(jì)算機(jī)上實(shí)現(xiàn)上述處理功能。
記述該處理內(nèi)容的程序可以記錄在利用計(jì)算機(jī)可讀取的記錄介質(zhì)上。作為在計(jì)算機(jī)可讀取的記錄介質(zhì),例如也可以是磁記錄裝置、光盤(pán)、光磁記錄介質(zhì)、半導(dǎo)體存儲(chǔ)器等。
另外,該程序的流通例如通過(guò)出售、轉(zhuǎn)讓、借貸記錄了該程序的dvd、cd-rom等便攜型記錄介質(zhì)而進(jìn)行。另外,也可以作為通過(guò)將該程序存儲(chǔ)在服務(wù)器計(jì)算機(jī)的存儲(chǔ)裝置,經(jīng)由網(wǎng)絡(luò),從服務(wù)器計(jì)算機(jī)向其它的計(jì)算機(jī)轉(zhuǎn)發(fā)該程序,使該程序流通的構(gòu)成。
執(zhí)行這種程序的計(jì)算機(jī)例如首先暫時(shí)在本身的存儲(chǔ)裝置中存儲(chǔ)記錄于便攜型記錄介質(zhì)的程序或從服務(wù)器計(jì)算機(jī)轉(zhuǎn)發(fā)的程序。而且,在處理執(zhí)行時(shí),該計(jì)算機(jī)讀取存儲(chǔ)于自身的記錄介質(zhì)的程序,執(zhí)行遵循讀取的程序的處理。另外,作為該程序的另外的執(zhí)行方式,計(jì)算機(jī)也可以從便攜型記錄介質(zhì)直接讀取程序,執(zhí)行遵循該程序的處理,進(jìn)而也可以每次從服務(wù)器計(jì)算機(jī)對(duì)該計(jì)算機(jī)轉(zhuǎn)發(fā)程序時(shí),逐次執(zhí)行遵循獲取的程序的處理。另外,也可以作為下述構(gòu)成,即不進(jìn)行從服務(wù)器計(jì)算機(jī)到本計(jì)算機(jī)的程序的轉(zhuǎn)發(fā),而僅根據(jù)其執(zhí)行指示和結(jié)果取得實(shí)現(xiàn)處理功能的所謂asp(applicationserviceprovider)型的服務(wù),執(zhí)行上述的處理。此外,本方式的程序中包含供計(jì)算機(jī)進(jìn)行的處理之用的信息即根據(jù)程序的信息(不是對(duì)計(jì)算機(jī)的直接指令,但具有規(guī)定計(jì)算機(jī)的處理的性質(zhì)的數(shù)據(jù)等)。
另外,本方式中設(shè)為通過(guò)在計(jì)算機(jī)上執(zhí)行規(guī)定的程序來(lái)構(gòu)成本裝置,但也可以在硬件上實(shí)現(xiàn)這些處理內(nèi)容的至少一部分。
產(chǎn)業(yè)上的可利用性
本發(fā)明可以用于使用計(jì)算機(jī)的統(tǒng)計(jì)數(shù)據(jù)的處理或分析。
標(biāo)記說(shuō)明
100矩陣結(jié)合裝置110,210排序單元
120,220向量生成單元130,230集合生成單元
140,240矩陣生成單元150,250密鑰生成單元
160,260矩陣/密鑰生成裝置170結(jié)合部
190記錄單元800網(wǎng)絡(luò)