JP2014134732A - Method, program and apparatus for updating matrix, and method, program and apparatus for expanding matrix - Google Patents
Method, program and apparatus for updating matrix, and method, program and apparatus for expanding matrix Download PDFInfo
- Publication number
- JP2014134732A JP2014134732A JP2013003627A JP2013003627A JP2014134732A JP 2014134732 A JP2014134732 A JP 2014134732A JP 2013003627 A JP2013003627 A JP 2013003627A JP 2013003627 A JP2013003627 A JP 2013003627A JP 2014134732 A JP2014134732 A JP 2014134732A
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- mask
- mask matrix
- row
- column
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
Description
本技術は、データの秘匿化技術に関する。 The present technology relates to data concealment technology.
例えば、各支店で各商品の月別売上表をサーバで共有し、本部の集計担当者が商品別集計、月別集計などを行うというようなケースを考える。例えば図1の左に示すように、支店Aでは、商品A、商品B及び商品Cの月毎の売上を表す売上表を有し、支店Bでは、同じく商品A、商品B及び商品Cの月毎の売上を表す売上表を有する。そして、図1の右に示すように、本部では、全ての支店に関して、商品A、商品B、商品Cそれぞれについての売上合計値、全商品についての月毎の売上合計値といった集計値を算出する。場合によっては、全売上高というような集計値を計算する場合もある。 For example, consider a case where a monthly sales table for each product is shared by a server at each branch, and a person in charge of aggregation at the headquarters performs aggregation by product, monthly aggregation, and the like. For example, as shown on the left in FIG. 1, the branch A has a sales table showing the monthly sales of the products A, B, and C, and the branch B also has the same month for the products A, B, and C. It has a sales table showing sales for each. As shown on the right side of FIG. 1, the headquarters calculates total values such as the total sales value for each of the products A, B, and C and the total monthly sales value for all the products for all branches. . In some cases, an aggregate value such as total sales may be calculated.
このような場合に、各支店では細かい売上高を他の支店などに知らせたくなく、本部も細かい情報を把握できなくとも集計値を得られればよい、といった要望が出てくることがある。 In such a case, there is a demand that each branch does not want to notify the detailed sales amount to other branches, and that the head office can obtain the aggregated value even if the detailed information cannot be grasped.
これに対して、次のような技術が提案されている。例えば、各支店を情報提供者とし、本部をユーザとする。そして、ユーザとは別に、集計処理を行う集計者と、秘匿化のためのマスク行列を管理するマスタとが登場するものとする。 On the other hand, the following techniques have been proposed. For example, each branch is an information provider and the headquarters is a user. In addition to the user, a totalizer who performs a totalization process and a master that manages a mask matrix for concealment appear.
この場合、図2に示すように、マスク行列Mは、各情報提供者のためのマスク行列M1乃至M3の和となっており、マスタから、情報提供者a乃至cへ配布される。なお、ここでは、マスク行列Mと、補助行列Aとを加算すると、各行及び各列の成分の総和がゼロとなるゼロサム行列になるものとする。この補助行列Aは、ユーザに配布される。 In this case, as shown in FIG. 2, the mask matrix M is the sum of the mask matrices M1 to M3 for each information provider, and is distributed from the master to the information providers a to c. Here, it is assumed that when the mask matrix M and the auxiliary matrix A are added, a zero sum matrix is obtained in which the sum of the components in each row and each column becomes zero. This auxiliary matrix A is distributed to users.
情報提供者aは、例えば月別商品別の売上高を表す行列D1と、マスタから配布されたマスク行列M1とを加算して、マスク化行列MD1を生成すると、集計者へ送付する。同様に、情報提供者bは、例えば月別商品別の売上高を表す行列D2と、マスタから配布されたマスク行列M2とを加算して、マスク化行列MD2を生成すると、集計者へ送付する。さらに、情報提供者cは、例えば月別商品別の売上高を表す行列D3と、マスタから配布されたマスク行列M3とを加算して、マスク化行列MD3を生成すると、集計者へ送信する。集計者は、行列M1乃至M3ではなくマスク化行列MD1乃至MD3を受信するため、行列M1乃至M3を知ることはできない。集計者以外の第三者も、行列M1乃至M3を知ることはできない。 For example, the information provider a adds the matrix D1 representing the sales amount for each monthly product and the mask matrix M1 distributed from the master to generate the masked matrix MD1, and sends it to the tabulator. Similarly, the information provider b adds, for example, a matrix D2 representing sales for each monthly product and a mask matrix M2 distributed from the master to generate a masked matrix MD2, and sends it to the tabulator. Furthermore, when the information provider c adds, for example, the matrix D3 representing the sales amount for each monthly product and the mask matrix M3 distributed from the master to generate the masked matrix MD3, the information provider c transmits it to the tabulator. The tabulator receives the masked matrices MD1 to MD3 instead of the matrices M1 to M3, and therefore cannot know the matrices M1 to M3. Third parties other than the tabulator cannot know the matrices M1 to M3.
集計者は、各情報提供者a乃至cからマスク化行列MD1乃至MD3を受信すると、マスク化行列MD1乃至MD3の和を算出することで、マスク化行列MDを生成する。マスク化行列MDであるから、マスク化のために集計者以外の第三者も、行列D1乃至D3の加算結果Dを知ることはできない。 When receiving the masked matrices MD1 to MD3 from the information providers a to c, the totalizer calculates the sum of the masked matrices MD1 to MD3 to generate the masked matrix MD. Since it is the masking matrix MD, a third party other than the tabulator cannot know the addition result D of the matrices D1 to D3 for masking.
その後、例えばユーザからの要求に応じて、集計者は、マスク化行列MDを、ユーザに送信する。ユーザは、受信したマスク化行列MDと、マスタから配布された補助行列Aとを加算すると、集計行列TDが得られる。このようにすれば、ユーザは、当該集計行列TDにおける各行又は各列について成分の総和を計算すれば、情報提供者a乃至cが有していた行列D1乃至D3の加算結果Dにおける各行又は各列について成分の総和を得ることができる。すなわち、月別の売上高、商品別の売上高、売上合計といった値を得ることができるようになる。これは、M+Aがゼロサム行列だからである。 Thereafter, for example, in response to a request from the user, the tabulator transmits a masked matrix MD to the user. When the user adds the received masking matrix MD and the auxiliary matrix A distributed from the master, a total matrix TD is obtained. In this way, if the user calculates the sum of the components for each row or each column in the aggregation matrix TD, each row or each in the addition result D of the matrices D1 to D3 that the information providers a to c had The sum of the components for the column can be obtained. That is, values such as monthly sales, sales by product, and total sales can be obtained. This is because M + A is a zero sum matrix.
このような技術によれば、上で述べたような要望を満たすことはできるが、行列D1乃至D3の行列成分が0又は1しかないような場合に、何度も同じマスク行列M1乃至M3を利用すると集計者に行列D1乃至D3が漏洩してしまう問題がある。このため、できれば集計者に送信する都度マスク行列M1乃至M3を更新する方が好ましい。 According to such a technique, the above-described demand can be satisfied, but when the matrix components of the matrices D1 to D3 have only 0 or 1, the same mask matrixes M1 to M3 are repeatedly set. If used, there is a problem that the matrixes D1 to D3 are leaked to the tabulator. For this reason, if possible, it is preferable to update the mask matrices M1 to M3 each time it is transmitted to the tabulator.
しかしながら、例えば行列D1乃至D3のサイズが、3万×3万行列(およそ4GBytes)程度だとすると、マスク行列M1乃至M3を情報提供者に配布するコストは大きい。 However, for example, if the size of the matrices D1 to D3 is about 30,000 × 30,000 (about 4 GBytes), the cost of distributing the mask matrices M1 to M3 to the information provider is high.
なお、同じサイズのマスク行列だけではなく、マスク行列のサイズを大きくする場合も同様の問題がある。 The same problem occurs when the mask matrix size is increased as well as the mask matrix of the same size.
従って、本技術の目的は、一側面によれば、格納されたマスク行列を利用して新たなマスク行列を生成するための技術を提供することである。 Accordingly, an object of the present technology is, according to one aspect, to provide a technology for generating a new mask matrix using a stored mask matrix.
本技術の第1の態様に係るマスク行列更新方法は、(A)被マスク行列をマスクするための、データ格納部に格納されたマスク行列の更新タイミングを検出し、(B)マスク行列の行又は列単位の所定の更新演算式に従った演算を、マスク行列における行又は列方向にサイクリックに行うことで、新たなマスク行列を生成し、データ格納部に格納する処理を含む。 The mask matrix update method according to the first aspect of the present technology detects (A) the update timing of the mask matrix stored in the data storage unit for masking the masked matrix, and (B) the row of the mask matrix. Alternatively, it includes a process of generating a new mask matrix by cyclically performing an operation according to a predetermined update arithmetic expression in units of columns in the row or column direction of the mask matrix and storing it in the data storage unit.
本技術の第2の態様に係るマスク行列拡張方法は、(C)被マスク行列をマスクするための、データ格納部に格納されたマスク行列の拡張タイミングを検出し、(D)マスク行列の行又は列単位の所定の拡張演算式に従った演算をマスク行列における行又は列方向に行うことでマスク行列の新たな行又は列を生成し、マスク行列に付加することで新たなマスク行列を生成し、データ格納部に格納する処理を含む。 In the mask matrix expansion method according to the second aspect of the present technology, (C) the expansion timing of the mask matrix stored in the data storage unit for masking the masked matrix is detected, and (D) the row of the mask matrix is detected. Alternatively, a new row or column of the mask matrix is generated by performing an operation according to a predetermined extended arithmetic expression in units of columns in the row or column direction of the mask matrix, and a new mask matrix is generated by adding to the mask matrix. And processing to store the data in the data storage unit.
一側面によれば、格納されたマスク行列を利用して新たなマスク行列を生成する。 According to one aspect, a new mask matrix is generated using the stored mask matrix.
[実施の形態1]
図3に、本実施の形態におけるシステム構成の概要を示す。図3の例では、インターネットその他のネットワーク1には、図2に示したマスタのためのマスタサーバ3と、図2に示したユーザのためのユーザサーバ9と、図2に示した集計者のための集計者サーバ7と、図2に示した情報提供者のための情報提供者装置5a乃至5cとが接続されている。なお、ユーザサーバ9及び情報提供者装置5a乃至5cの数については図示した数に限定されるものではない。また、集計者サーバ7は、1台のコンピュータで構成される場合もあれば、複数台のコンピュータで構成される場合もある。
[Embodiment 1]
FIG. 3 shows an outline of the system configuration in the present embodiment. In the example of FIG. 3, the Internet or
集計者サーバ7は、情報提供者装置5a乃至5cから受信したマスク化行列の総和を算出する機能を有するが、これは従来と同じである。
The
マスタサーバ3は、初期的なマスク行列M1乃至M3を、情報提供者装置5a乃至5cに配布すると共に、補助行列Aを、ユーザサーバ9へ配布する処理を行う。さらに、本実施の形態では、マスタサーバ3は、情報提供者装置5a乃至5cとユーザサーバ9に対して、マスク行列又は補助行列を更新するように要求する。
The
情報提供者装置5(5a乃至5c)の構成例を、図4に示す。情報提供者装置5は、制御部51と、変更処理部52と、データ格納部53と、データ更新部54と、マスク処理部55と、マスク化データ格納部56と、送信部57とを有する。制御部51は、マスク行列の変更(更新及び後に述べる拡張)、マスク処理、マスク化行列の送信を制御する。変更処理部52は、データ格納部53に格納されているマスク行列Miを変更する処理を行い、変更後のマスク行列をデータ格納部53に格納する。データ更新部54は、例えば商品別月別の売上高のような行列Diを、例えば情報提供者装置5に接続された他の装置からのデータに応じて更新する処理を行う。マスク処理部55は、データ格納部53に格納されているマスク行列Miと行列Diとの加算を行うことで、マスク化行列MDiを生成し、マスク化データ格納部56に格納する。送信部57は、マスク化データ格納部56に格納されているマスク化行列MDiを、集計者サーバ7へ送信する。
A configuration example of the information provider device 5 (5a to 5c) is shown in FIG. The
図5に、ユーザサーバ9の構成例を示す。ユーザサーバ9は、データ受信部91と、制御部92と、変更処理部93と、データ格納部94と、集計処理部95と、集計データ格納部96と、データ出力部97とを有する。制御部92は、データ格納部94に格納されている補助行列の変更(更新及び後に述べる拡張)、マスクを解除するアンマスク処理、集計処理、データ出力処理を制御する。データ受信部91は、集計者サーバ7からマスク化行列MD(=ΣMDi)を受信して、データ格納部94に格納する。変更処理部93は、補助行列Aの更新又は拡張等の処理を行う。集計処理部95は、データ格納部94に格納されている補助行列Aとマスク化行列MDとの加算を行うことで集計行列TDを生成し、集計行列TDにおける各行及び各列の成分を加算することで集計処理を実行し、集計結果を集計データ格納部96に格納する。データ出力部97は、集計データ格納部96に格納されているデータを、ユーザサーバ9に接続されているユーザの他のコンピュータ等に出力する。
FIG. 5 shows a configuration example of the
このようなシステムの動作を説明する前に、マスク行列の更新及び補助行列の更新について、前提及び基本的な演算内容について説明しておく。 Before explaining the operation of such a system, the premise and basic calculation contents of the update of the mask matrix and the update of the auxiliary matrix will be explained.
上で述べたように、マスク行列Mと補助行列Aとの和がゼロサム行列となる。従って、以下のように表される。 As described above, the sum of the mask matrix M and the auxiliary matrix A is a zero sum matrix. Therefore, it is expressed as follows.
なお、mijは、マスク行列Mのi行j列成分を表し、aijは、補助行列Aのi行j列成分を表す。ゼロサム行列の性質から、以下が成り立つ。 Incidentally, m ij denotes the row i and column j component of the mask matrix M, a ij denotes the row i and column j component of the auxiliary matrix A. From the nature of the zero-sum matrix, the following holds:
ゼロであるから、行単位又は列単位で加算しても差し引いても、所定の係数を乗じてから加算してもゼロとなる。例えば1列目と2列目を加算した場合には、以下のように表される。 Since it is zero, it is zero even if it is added or subtracted in units of rows or columns, or it is added after being multiplied by a predetermined coefficient. For example, when the first column and the second column are added, it is expressed as follows.
このように、マスク行列Mと補助行列Aとを別々に1列目と2列目とを加算した後で加算しても同じ結果が得られる。これは、行であっても同じである。 As described above, the same result can be obtained by adding the mask matrix M and the auxiliary matrix A separately after adding the first column and the second column separately. This is the same for rows.
一方、マスク行列Mは、図2の例では3つの個別のマスク行列M1乃至M3の和である。すなわち、マスク行列Mは、以下のように表される。 On the other hand, the mask matrix M is the sum of three individual mask matrices M1 to M3 in the example of FIG. That is, the mask matrix M is expressed as follows.
ここで、mij 1は、マスク行列M1のi行j列成分を表し、mij 2は、マスク行列M2のi行j列成分を表し、mij 3は、マスク行列M3のi行j列成分を表す。 Here, m ij 1 represents the i row and j column component of the mask matrix M1, m ij 2 represents the i row and j column component of the mask matrix M2, and m ij 3 represents the i row and j column of the mask matrix M3. Represents an ingredient.
そして、同じように、例えば1列目と2列目を加算した場合には、以下のように表される。 Similarly, when the first column and the second column are added, for example, it is expressed as follows.
このように、当然ながらマスク行列M1について1列目と2列目とを加算した結果と、マスク行列M2について1列目と2列目とを加算した結果と、マスク行列M3について1列目と2列目とを加算した結果との和となる。従って、マスク行列M1乃至M3の各々について同一行又は列の演算を行った上で加算し、補助行列Aについても同一行又は列の同一演算を実施した結果と加算すれば、結果もゼロとなる。 Thus, of course, the result of adding the first column and the second column for the mask matrix M1, the result of adding the first column and the second column for the mask matrix M2, and the first column for the mask matrix M3 It is the sum of the result of adding the second column. Therefore, if the calculation is performed on the same row or column for each of the mask matrices M1 to M3 and then added, and the auxiliary matrix A is added to the result of performing the same operation on the same row or column, the result is also zero. .
このような性質をマスク行列M1乃至M3及び補助行列Aの更新に使用する。すなわち、行単位又は列単位で演算を行った結果を新たなマスク行列M1乃至M3及び補助行列Aの新たな行又は列の値として用いる。但し、演算式を、情報提供者及びユーザ(基本的にはマスタも)で共有し、同一の演算式で演算を行うものとする。 Such a property is used for updating the mask matrices M1 to M3 and the auxiliary matrix A. That is, the result of the operation performed in units of rows or columns is used as new row or column values of the new mask matrices M1 to M3 and auxiliary matrix A. However, the arithmetic expression is shared by the information provider and the user (basically the master), and the calculation is performed with the same arithmetic expression.
なお、M+Aは、各列の成分の総和がゼロというだけではなく、各行の成分の総和がゼロという要件も満たさなければならない。但し、元々M+Aの各行の成分の総和がゼロであるから、各行の総和は何倍されてもゼロのままである。従って、例えば、1列目の値と2列目の値を加算して1列目の値に採用し、2列目の値と3列目の値を加算して2列目の値に採用し、....m列目の値と1列目の値を加算してm列目の値に採用する、といったようなサイクリックな演算を行えば、行方向では成分の総和は元の2倍になっている。以下に、その結果を示すが、各成分は行方向で2回出現する。しかしながら、0を2倍しても0なので、各行の成分の総和は0になる。 Note that M + A must satisfy not only that the sum of components in each column is zero, but also that the sum of components in each row is zero. However, since the sum of the components in each row of M + A is originally zero, the sum of each row remains zero no matter how many times it is multiplied. Therefore, for example, the value of the first column and the value of the second column are added and adopted as the value of the first column, and the value of the second column and the value of the third column are added and adopted as the value of the second column. And. . . . If a cyclic operation such as adding the value of the m-th column and the value of the first column and adopting it as the value of the m-th column is performed, the sum of the components in the row direction is twice the original. . The results are shown below. Each component appears twice in the row direction. However, even if 0 is doubled, it is 0, so the sum of the components in each row is 0.
演算式については様々なものが可能であるが、例えば以下のような演算式が考えられる。 Various arithmetic expressions are possible. For example, the following arithmetic expressions are conceivable.
なお、マスク行列M1を5行5列として以下のように表すものとする。 The mask matrix M1 is expressed as follows with 5 rows and 5 columns.
そして、列ベクトルxiで表現すると、M1=(x1,x2,x3,x4,x5)であり、行ベクトルyで表現すると、M1=(y1,y2,y3,y4,y5)Tとなる。 When represented by the column vector x i , M1 = (x 1 , x 2 , x 3 , x 4 , x 5 ), and when represented by the row vector y, M 1 = (y 1 , y 2 , y 3 , y 4 , y 5 ) T
(A)隣の列の加算
xi=xi+x(i+1 mod 5)|i={1,2,3,4,5}
(A) Addition of adjacent columns x i = x i + x (i + 1 mod 5) | i = {1, 2, 3, 4, 5}
模式的に示せば、図6のように表される。図6の例では右隣の列との加算により、当該列の新たな成分が計算される。なお、右隣がない5列目については1列目の成分が加算される。 If it shows typically, it will represent like FIG. In the example of FIG. 6, a new component of the column is calculated by adding to the column on the right. Note that the component in the first column is added to the fifth column that has no right neighbor.
(B)隣の行の加算
yi=yi+y(i+1 mod 5)|i={1,2,3,4,5}
(B) Addition of adjacent rows y i = y i + y (i + 1 mod 5) | i = {1, 2, 3, 4, 5}
模式的に示せば、図7に示すように表される。図7の例では1つ下の行との加算により、当該行の新たな成分が計算される。なお、1つ下の行がない5行目については1行目の成分が加算される。 If it shows typically, it will represent as shown in FIG. In the example of FIG. 7, the new component of the row is calculated by adding to the next lower row. Note that the component of the first row is added to the fifth row that does not have the next lower row.
(C)隣の列の減算
xi=xi−x(i+1 mod 5)|i={1,2,3,4,5}
(C) Subtraction of adjacent column x i = x i −x (i + 1 mod 5) | i = {1, 2, 3, 4, 5}
模式的に示せば、図8のように表される。図8の例では右隣の列を減算することにより、当該列の新たな成分が計算される。なお、右隣がない5列目については1列目の成分が減算される。 If it shows typically, it will represent like FIG. In the example of FIG. 8, by subtracting the right adjacent column, a new component of the column is calculated. Note that the component in the first column is subtracted for the fifth column without the right neighbor.
(D)2つ隣の列の加算
xi=xi+x(i+2 mod 5)|i={1,2,3,4,5}
(D) Addition of two adjacent columns x i = x i + x (i + 2 mod 5) | i = {1, 2, 3, 4, 5}
模式的に示せば、図9のように表される。図9の例では2つ右隣の列との加算により、当該列の新たな成分が計算される。なお、2つ右隣がない4列目については1列目の成分が加算され、同じく5列目については2列目の成分が加算される。 If it shows typically, it will represent like FIG. In the example of FIG. 9, a new component of the column is calculated by adding the two adjacent columns to the right. Note that the component in the first column is added for the fourth column that is not adjacent to the right, and the component in the second column is added for the fifth column.
(E)隣の列の2倍を加算
xi=xi+2x(i+1 mod 5)|i={1,2,3,4,5}
(E) Add twice the adjacent column x i = x i + 2x (i + 1 mod 5) | i = {1, 2, 3, 4, 5}
模式的に示せば、図10のように表される。図10の例では右隣の列における成分の2倍との加算により、当該列の新たな成分が計算される。なお、右隣がない5列目については1列目の成分の2倍が加算される。 If it shows typically, it will represent like FIG. In the example of FIG. 10, a new component of the column is calculated by adding to twice the component in the column on the right. For the fifth column that does not have a right neighbor, twice the component in the first column is added.
この場合、行の値は3倍となるがマスク行列M+補助行列Aについて行の総和は上で述べたように0となるので、問題は無い。 In this case, the value of the row is tripled, but there is no problem because the sum of the rows for the mask matrix M + auxiliary matrix A is 0 as described above.
(F)複数の列の加算
xi=xi+x(i+1 mod 5)+x(i+2 mod 5)|i={1,2,3,4,5}
(F) Addition of a plurality of columns x i = x i + x (i + 1 mod 5) + x (i + 2 mod 5) | i = {1, 2, 3, 4, 5}
模式的に示せば、図11のように表される。図11の例では右隣の列と2つ右隣の列との加算により、当該列の新たな成分が計算される。なお、2つ右隣がない4列目については2つ右隣の列の代わりに1列目の成分が加算される。同様に、右隣がない5列目については1列目及び2列目の成分が加算される。 If it shows typically, it will represent like FIG. In the example of FIG. 11, a new component of the column is calculated by adding the column on the right and the column on the right of two. For the fourth column that does not have two right neighbors, the first column component is added instead of the two right neighboring columns. Similarly, the components in the first and second columns are added to the fifth column that does not have a right neighbor.
説明を省略しているが、補助行列Aについても同様の演算を行う。 Although the description is omitted, the same calculation is performed for the auxiliary matrix A.
これ以外にも上記の主旨に従った演算式をサイクリックに適用すれば、マスク行列M+補助行列Aがゼロサム行列となる。 In addition to this, if an arithmetic expression in accordance with the above-mentioned gist is applied cyclically, the mask matrix M + auxiliary matrix A becomes a zero sum matrix.
次に、図12及び図13を用いて、本実施の形態に係るシステムの動作内容について説明する。 Next, the operation content of the system according to the present embodiment will be described with reference to FIGS.
なお、既にマスク行列M1は情報提供者装置5aに配布済みであり、マスク行列M2は情報提供者装置5bに配布済みであり、マスク行列M3は情報提供者装置5cに配布済みであり、補助行列Aもユーザサーバ9に配布済みであるものとする。
Note that the mask matrix M1 has already been distributed to the information provider device 5a, the mask matrix M2 has been distributed to the
また、例えば上で述べた(A)乃至(F)の演算式については、情報提供者装置5a乃至5c及びユーザサーバ9に通知されているものとする。
In addition, for example, the arithmetic expressions (A) to (F) described above are notified to the information provider devices 5 a to 5 c and the
そして、適切なタイミングで、マスタサーバ3は、ここでは演算式の識別子を含む更新指示を各情報提供者装置5a乃至5cへ送信する(図12:ステップS1)。各情報提供者装置5a乃至5cの制御部51は、マスタサーバ3から、演算式の識別子を含む更新指示を受信する(ステップS3)。そうすると、情報提供者装置5a乃至5cは、マスク行列の更新処理を実行する(ステップS5)。マスク行列の更新処理については、図13を用いて説明する。
Then, at an appropriate timing, the
制御部51が、変更処理部52に対して、演算式の識別子を含む、マスク行列の変更指示を行うと、変更処理部52は、演算式の識別子により、更新のための演算式を特定する(図13:ステップS31)。また、変更処理部52は、カウンタiを1に初期化する(ステップS33)。そして、変更処理部52は、特定された更新のための演算式に従って、データ格納部53に格納されているマスク行列におけるi行又は列目の新たな値を生成し、データ格納部53に格納する(ステップS35)。演算式については、例えば上で述べた(A)乃至(F)のいずれかである。そして、変更処理部52は、カウンタiの値が、行又は列の最大値N以上であるか判断する(ステップS37)。iがN未満であれば、変更処理部52は、iを1インクリメントし(ステップS39)、処理はステップS35に戻る。
When the
このような処理を実行することで、新たなマスク行列M1が得られるようになる。 By executing such processing, a new mask matrix M1 can be obtained.
図12の処理の説明に戻って、変更処理部52は処理が終了すると制御部51に対して処理終了を通知する。その後、適切なタイミングで、制御部51は、マスク処理部55に処理を指示する。そうすると、マスク処理部55は、制御部51から処理の指示を受けると、マスク化処理を実行し、マスク化データ格納部56に処理結果を格納する(ステップS7)。すなわち、マスク行列M1と行列D1との和を算出することで、マスク化行列MD1が得られる。
Returning to the description of the processing in FIG. 12, the
その後、マスク処理部55は、処理終了を制御部51に通知し、制御部51は、送信部57に処理を指示する。そうすると、送信部57は、マスク化データ格納部56に格納されているマスク化行列MD1を、集計者サーバ7に送信する(ステップS9)。
Thereafter, the
この他の情報提供者装置5b及び5cについても、同様の処理を実行する。
Similar processing is executed for the other
集計者サーバ7は、情報提供者装置5a乃至5cから、マスク化行列MD1乃至MD3を受信し、データ格納部に格納する(ステップS11)。そして、集計者サーバ7は、マスク化行列MD1乃至MD3の合計であるマスク化行列MDを算出し、データ格納部に格納する(ステップS13)。
The
一方、マスタサーバ3は、演算式の識別子を含む更新指示をユーザサーバ9へも送信する(ステップS1)。ユーザサーバ9の制御部92は、演算式の識別子を含む更新指示を受信し(ステップS17)、変更処理部93に処理を指示する。変更処理部93は、データ格納部94に格納されている補助行列Aの更新処理を実行する(ステップS19)。この更新処理は、図13で示した更新処理と同様であり、詳細な説明は省略する。これによって、補助行列Aもマスク行列M1乃至M3と同様に更新される。
On the other hand, the
その後、ユーザサーバ9の制御部92は、自動的に又はユーザからの指示などに応じて集計者サーバ7へマスク化行列MDの要求を送信する。但し、要求を送信せずとも、集計者サーバ7側で自動的にマスク化行列MDを送信してくる場合もある。
Thereafter, the
自動的に又はユーザサーバ9からの要求に応じて、集計者サーバ7は、マスク化行列MD1乃至MD3の合計結果であるマスク化行列MDをユーザサーバ9へ送信する(ステップS15)。ユーザサーバ9の制御部92は、集計者サーバ7からマスク化行列MD1乃至MD3の合計結果であるマスク化行列MDを受信すると(ステップS21)、集計処理部95に出力する。
Automatically or in response to a request from the
集計処理部95は、マスク化行列MD1乃至MD3の合計結果であるマスク化行列MDと、更新後の補助行列Aとを加算して、集計行列TDを生成し、集計データ格納部96に格納する(ステップS23)。これによって図2を用いて説明された演算結果と同様の結果を得ることができるようになる。
The
さらに、集計処理部95は、集計行列TDの各行及び各列について成分を合計するという集計処理を実行し、集計結果を集計データ格納部96に格納する(ステップS25)。そして、集計処理部95は、処理終了を制御部92に通知する。制御部92は、例えばユーザサーバ9に接続された他のコンピュータからの要求等に応じて、データ出力部97に出力を指示し、データ出力部97は、集計データ格納部96に格納されている集計結果を出力する(ステップS27)。
Furthermore, the
以上のような処理を実行することで、マスタサーバ3からの指示に応じてマスク行列M1乃至M3と補助行列Aとが更新されると共に行列D1乃至D3の集計結果が算出される。
By executing the processing as described above, the mask matrices M1 to M3 and the auxiliary matrix A are updated in accordance with an instruction from the
[実施の形態1の第1の変形例]
上で述べた例では、マスタサーバ3は、演算式の識別子を含む更新指示を送信するものであったが、これは各情報提供者装置5a乃至5c及びユーザサーバ9が、使用すべき演算式を予め保持していることを前提としている。一方、各情報提供者装置5a乃至5c及びユーザサーバ9に、マスタサーバ3が、演算式を含む更新指示を送信するようにしても良い。
[First Modification of First Embodiment]
In the example described above, the
[実施の形態1の第2の変形例]
マスタサーバ3の関与を少なくすることもできる。例えば、図14に示すように、情報提供者装置5の制御部51が、情報提供者装置5の時計により予め定められている時刻や例えばステップS3の直後といったようなイベントを検出する(ステップS41)。
[Second Modification of First Embodiment]
The involvement of the
そして、制御部51は、変更処理部52に対して処理を指示し、変更処理部52は、マスク行列の更新処理を実行する(ステップS43)。この更新処理については、第1の実施の形態と同様である。但し、演算式については、ラウンドロビンなど予め定められている順番で、予め定められている演算式を順番に選択して更新を行う。
And the
図14と同様の処理にて、ユーザサーバ9においても、補助行列の更新を行うようにする。
In the same process as in FIG. 14, the
このようにすれば、マスタサーバ3は、一度マスク行列及び補助行列を配布してしまい、複数の演算式を定めておけば、その後の関与がなくても適切な更新が行われるようになる。
In this way, the
なお、マスタサーバ3が一部関与するようなやり方も考えられる。例えば、更新指示に所定回数分の演算式の選択順番を含めるようにして、情報提供者装置5a乃至5c及びユーザサーバ9が、所定回数分の更新時期においては、マスタサーバ3から指示された順番で演算式を選択するようにしても良い。
A method in which the
[実施の形態1の第3の変形例]
上で述べた例では、補助行列が存在するケースについての処理を説明した。但し、マスク行列M1乃至M3を適切に生成すれば、マスク行列M1乃至M3の加算結果であるマスク行列M自体が、ゼロサム行列となる。このような場合でも補助行列Aが無くなっただけで上で述べたようなマスク行列M1乃至M3の性質は変わらない。
[Third Modification of Embodiment 1]
In the example described above, the processing for the case where the auxiliary matrix exists has been described. However, if the mask matrices M1 to M3 are appropriately generated, the mask matrix M itself, which is the addition result of the mask matrices M1 to M3, becomes a zero sum matrix. Even in such a case, the properties of the mask matrices M1 to M3 as described above are not changed only by eliminating the auxiliary matrix A.
このようなマスク行列M1乃至M3を採用する場合には、ユーザサーバ9は、補助行列の更新を行うことはなく、アンマスク処理も行わない。
When such mask matrices M1 to M3 are employed, the
例えば、図12に示した処理フローは図15に示すような処理フローに変更される。 For example, the processing flow shown in FIG. 12 is changed to a processing flow as shown in FIG.
なお、既にマスク行列M1は情報提供者装置5aに配布済みであり、マスク行列M2は情報提供者装置5bに配布済みであり、マスク行列M3は情報提供者装置5cに配布済みであるものとする。
Note that the mask matrix M1 has already been distributed to the information provider device 5a, the mask matrix M2 has been distributed to the
また、例えば上で述べた(A)乃至(F)の演算式については、情報提供者装置5aに通知されているものとする。 Further, for example, the arithmetic expressions (A) to (F) described above are notified to the information provider device 5a.
そして、適切なタイミングで、マスタサーバ3は、ここでは演算式の識別子を含む更新指示を各情報提供者装置5a乃至5cへ送信する(図15:ステップS51)。各情報提供者装置5a乃至5cの制御部51は、マスタサーバ3から、演算式の識別子を含む更新指示を受信する(ステップS53)。そうすると、情報提供者装置5a乃至5cは、マスク行列の更新処理を実行する(ステップS55)。マスク行列の更新処理については、上で述べたものと同じであるから、説明は省略する。
Then, at an appropriate timing, the
新たなマスク行列M1が得られた後、適切なタイミングで、制御部51は、マスク処理部55に処理を指示する。そうすると、マスク処理部55は、制御部51から処理の指示を受けると、マスク化処理を実行し、マスク化データ格納部56に処理結果を格納する(ステップS57)。すなわち、マスク行列M1と行列D1との和を算出することで、マスク化行列MD1が得られる。
After the new mask matrix M1 is obtained, the
その後、マスク処理部55は、処理終了を制御部51に通知し、制御部51は、送信部57に処理を指示する。そうすると、送信部57は、マスク化データ格納部56に格納されているマスク化行列MD1を、集計者サーバ7に送信する(ステップS59)。
Thereafter, the
この他の情報提供者装置5b及び5cについても、同様の処理を実行する。
Similar processing is executed for the other
集計者サーバ7は、情報提供者装置5a乃至5cから、マスク化行列MD1乃至MD3を受信し、データ格納部に格納する(ステップS61)。そして、集計者サーバ7は、マスク化行列MD1乃至MD3の合計であるマスク化行列MDを算出し、データ格納部に格納する(ステップS63)。ここまでは、図12と同じである。
The
しかし、本実施の形態では、集計者サーバ7が、マスク化行列MD1乃至MD3の合計結果であるマスク化行列MD(=集計行列TD)の各行及び各列について成分を合計するという集計処理を実行し(ステップS67)、集計結果をデータ格納部に格納する。
However, in the present embodiment, the
その後、ユーザサーバ9からの要求に応じて又は自動的に、集計者サーバ7は、集計結果を、ユーザサーバ9に送信する(ステップS69)。これに対して、ユーザサーバ9は、集計者サーバ7から集計結果を受信して、例えば集計データ格納部96に格納する(ステップS71)。
Thereafter, in response to a request from the
このように、マスク行列M1乃至M3の加算結果であるマスク行列M自体がゼロサム行列であれば、補助行列についての処理を省略することができる。 As described above, if the mask matrix M itself, which is the addition result of the mask matrices M1 to M3, is a zero sum matrix, the process for the auxiliary matrix can be omitted.
なお、マスク化行列MDを、集計者サーバ7からユーザサーバ9に送信して、ユーザサーバ9が、集計処理から実行するようにしてもよい。
Note that the masked matrix MD may be transmitted from the
さらに、マスク行列M1乃至M3自体がゼロサム行列である場合もある。 Further, the mask matrices M1 to M3 themselves may be zero sum matrices.
また、情報提供者が多数存在している場合には、例えば情報提供者のグループ毎に、そのグループに属する情報提供者用のマスク行列の加算結果がゼロサム行列となるように変形することも可能である。 In addition, when there are a large number of information providers, for example, for each group of information providers, the addition result of the mask matrix for information providers belonging to the group can be modified to be a zero sum matrix. It is.
[実施の形態2]
第1の実施の形態では、商品別月別売上高についての行列のサイズ自体は変更がない例を示している。しかしながら、新しい商品が追加されたといった場合には、行列のサイズを変更することになる。
[Embodiment 2]
In the first embodiment, an example is shown in which the matrix size itself for the monthly sales by product does not change. However, when a new product is added, the size of the matrix is changed.
マスク行列及び補助行列の性質は上で述べたとおりであるから、行又は列を追加する場合には、特定の行又は列ベクトルの線形従属な行又は列ベクトルを生成すればよい。例えば、図16(a)に示すような3行3列の行列を3行4列の行列に拡張する場合には、図16(b)に示すように、右から1列目及び2列目のベクトルを加算して4列目に採用する。但し、図16(c)に示すように行方向の成分の総和については追加した1列分だけ総和が増加してしまう。そこで、補助行列に追加する列については、同様の演算を行った上で、図16(d)に示すように、符号を反転させた列ベクトルを、拡張された列のベクトルに加算することにする。 Since the properties of the mask matrix and the auxiliary matrix are as described above, when adding a row or column, a linearly dependent row or column vector of a specific row or column vector may be generated. For example, when a 3 × 3 matrix as shown in FIG. 16A is expanded to a 3 × 4 matrix, the first and second columns from the right are shown in FIG. 16B. Are added to the fourth column. However, as shown in FIG. 16C, the sum of the components in the row direction increases by the added one column. Therefore, for the column to be added to the auxiliary matrix, after performing the same operation, as shown in FIG. 16D, the column vector with the sign inverted is added to the expanded column vector. To do.
本実施の形態では、マスタサーバ3bは、例えば図17に示すような構成を有する。マスタサーバ3bは、制御部31と、データ格納部32と、行列拡張部33と、調整部34とを有する。
In the present embodiment, the master server 3b has a configuration as shown in FIG. 17, for example. The master server 3b includes a
制御部31は、マスク行列Mの拡張及び調整ベクトルの生成を制御する。データ格納部32は、マスク行列Mと補助行列Aとが格納されている。行列拡張部33は、所定の演算式に従ってマスク行列Mを拡張する処理を実行する。調整部34は、調整ベクトルを生成する処理を実行する。
The
情報提供者装置5a乃至5cとユーザサーバ9と集計者サーバ7とについては、異なる処理を行う部分もあるが基本的な構成は第1の実施の形態と同様である。
The information provider devices 5a to 5c, the
次に、マスク行列及び補助行列の拡張を行う場合におけるシステムの処理内容を図18に示す。 Next, FIG. 18 shows the processing contents of the system when the mask matrix and the auxiliary matrix are expanded.
なお、既にマスク行列M1は情報提供者装置5aに配布済みであり、マスク行列M2は情報提供者装置5bに配布済みであり、マスク行列M3は情報提供者装置5cに配布済みであり、補助行列Aもユーザサーバ9に配布済みであるものとする。
Note that the mask matrix M1 has already been distributed to the information provider device 5a, the mask matrix M2 has been distributed to the
また、例えば予め定められている複数の演算式については、情報提供者装置5a乃至5c及びユーザサーバ9に通知されているものとする。
For example, it is assumed that a plurality of predetermined arithmetic expressions are notified to the information provider devices 5 a to 5 c and the
そして、適切なタイミングで、マスタサーバ3bは、ここでは演算式の識別子を含む拡張指示を各情報提供者装置5a乃至5cへ送信する(図18:ステップS81)。各情報提供者装置5a乃至5cの制御部51は、マスタサーバ3bから、演算式の識別子を含む拡張指示を受信する(ステップS87)。そうすると、情報提供者装置5a乃至5cは、マスク行列の拡張処理を実行する(ステップS89)。マスク行列の拡張処理については、図19を用いて説明する。
Then, at an appropriate timing, the master server 3b transmits an extension instruction including an arithmetic expression identifier to each of the information provider devices 5a to 5c (FIG. 18: step S81). The
制御部51が、変更処理部52に対して、演算式の識別子を含む、マスク行列の拡張指示を行うと、変更処理部52は、演算式の識別子により、拡張のための演算式を特定する(図19:ステップS121)。また、変更処理部52は、特定された拡張のための演算式に従って、データ格納部53に格納されているマスク行列における追加される行又は列の新たな値(ベクトル)を生成し、データ格納部53に格納する(ステップS123)。このような行又は列が付加された新たなマスク行列が生成される。拡張のための演算式については、基本的には、上で述べた(A)乃至(F)と同様であるが、サイクリックではないので、以下のようになる。なお、マスク行列はn行m列の行列であるものとする。
When the
(A)特定の列の加算
xm+1=xi+xj|i,j={1,2,3,4,5}
(A) Addition of specific columns x m + 1 = x i + x j | i, j = {1, 2, 3, 4, 5}
i=1且つj=2であれば、図20に模式的に示すような演算で、列が追加される。 If i = 1 and j = 2, a column is added by the operation schematically shown in FIG.
(B)特定の行の加算
yn+1=yi+yj|i、j={1,2,3,4,5}
(B) Addition of specific rows y n + 1 = y i + y j | i, j = {1, 2, 3, 4, 5}
(C)特定の列の減算
xm+1=xi−xj|i,j={1,2,3,4,5}i≠j
(C) Subtraction of a specific column x m + 1 = x i −x j | i, j = {1, 2, 3, 4, 5} i ≠ j
(D)第1の列と第2の列の2倍を加算
xm+1=xi+2xj|i,j={1,2,3,4,5}
(D) Add twice the first column and the second column x m + 1 = x i + 2x j | i, j = {1, 2, 3, 4, 5}
(E)複数の列の加算
xm+1=xi+xj+xk|i,j,k={1,2,3,4,5}
(E) Addition of a plurality of columns x m + 1 = x i + x j + x k | i, j, k = {1, 2, 3, 4, 5}
このような処理を実行することで、行又は列が追加された新たなマスク行列M1が得られるようになる。 By executing such processing, a new mask matrix M1 to which rows or columns are added can be obtained.
図18の処理の説明に戻って、変更処理部52は処理が終了すると制御部51に対して処理終了を通知する。その後、適切なタイミングで、制御部51は、マスク処理部55に処理を指示する。そうすると、マスク処理部55は、制御部51から処理の指示を受けると、マスク化処理を実行し、マスク化データ格納部56に格納する(ステップS91)。すなわち、マスク行列M1と行列D1との和を算出することで、マスク化行列MD1が得られる。
Returning to the description of the processing in FIG. 18, the
その後、マスク処理部55は、処理終了を制御部51に通知し、制御部51は、送信部57に処理を指示する。そうすると、送信部57は、マスク化データ格納部56に格納されているマスク化行列MD1を、集計者サーバ7に送信する(ステップS93)。
Thereafter, the
この他の情報提供者装置5b及び5cについても、同様の処理を実行する。
Similar processing is executed for the other
集計者サーバ7は、情報提供者装置5a乃至5cから、マスク化行列MD1乃至MD3を受信し、データ格納部に格納する(ステップS95)。そして、集計者サーバ7は、マスク化行列MD1乃至MD3の合計であるマスク化行列MDを算出し、データ格納部に格納する(ステップS97)。
The
一方、マスタサーバ3の制御部31は、行列拡張部33に、データ格納部32に格納されているマスク行列Mに対して今回の拡張のための演算式に従ってマスク行列Mを拡張させてデータ格納部32に格納させ、調整部34に、拡張されたのが行であれば列方向の成分の総和をゼロにするための調整ベクトル、拡張されたのが列であれば行方向の成分の総和をゼロにするための調整ベクトル(行又は列の総和を表すベクトルの符号を反転させたベクトル)を生成させ、データ格納部32に格納させる(ステップS83)。そして、制御部31は、調整部34によって生成された調整ベクトルを、データ格納部32から読み出して、当該調整ベクトル及び拡張のための演算式の識別子を含む拡張指示を、ユーザサーバ9へ送信する(ステップS85)。
On the other hand, the
ユーザサーバ9の制御部92は、調整ベクトル及び演算式の識別子を含む拡張指示を受信し(ステップS101)、変更処理部93に処理を指示する。変更処理部93は、データ格納部94に格納されている補助行列Aに対して補助行列拡張処理を実行する(ステップS103)。補助行列拡張処理については、図21を用いて説明する。
The
制御部92が、変更処理部93に対して、調整ベクトル及び演算式の識別子を含む、マスク行列の拡張指示を行うと、変更処理部93は、演算式の識別子により、拡張のための演算式を特定する(図21:ステップS131)。また、変更処理部93は、特定された拡張のための演算式に従って、データ格納部94に格納されている補助行列における追加される行又は列の新たな値(ベクトル)を生成する(ステップS133)。さらに、変更処理部93は、追加される行又は列の新たな値(ベクトル)と調整ベクトルとを加算し、その結果をデータ格納部94に格納する(ステップS135)。このようにして得られた結果を補助行列Aに付加することで新たな補助行列Aが生成される。
When the
これによって、拡張された補助行列Aを用いても、集計行列TDを生成できるようになる。 As a result, the aggregate matrix TD can be generated even using the extended auxiliary matrix A.
その後、ユーザサーバ9の制御部92は、自動的に又はユーザからの指示などに応じて集計者サーバ7へマスク化行列MDの要求を送信する。但し、要求を送信せずとも、集計者サーバ7側で自動的にマスク化行列MDを送信してくる場合もある。
Thereafter, the
自動的に又はユーザサーバ9からの要求に応じて、集計者サーバ7は、マスク化行列MD1乃至MD3の合計結果であるマスク化行列MDをユーザサーバ9へ送信する(ステップS99)。ユーザサーバ9の制御部92は、集計者サーバ7からマスク化行列MD1乃至MD3の合計結果であるマスク化行列MDを受信すると(ステップS105)、集計処理部95に出力する。
Automatically or in response to a request from the
集計処理部95は、マスク化行列MD1乃至MD3の合計結果であるマスク化行列MDと、拡張後の補助行列Aとを加算して、集計行列TDを生成し、集計データ格納部96に格納する(ステップS107)。
The
さらに、集計処理部95は、集計行列TDの各行及び各列について成分を合計するという集計処理を実行し、集計結果を集計データ格納部96に格納する(ステップS109)。そして、集計処理部95は、処理終了を制御部92に通知する。制御部92は、例えばユーザサーバ9に接続された他のコンピュータからの要求等に応じて、データ出力部97に指示し、データ出力部97は、集計データ格納部96に格納されている集計結果を出力する(ステップS111)。
Furthermore, the
以上のような処理を実行することで、マスタサーバ3bからの指示に応じてマスク行列M1乃至M3と補助行列Aとが拡張され、適切な集計行列TDが得られるようになる。 By executing the processing as described above, the mask matrices M1 to M3 and the auxiliary matrix A are expanded in accordance with an instruction from the master server 3b, and an appropriate aggregation matrix TD can be obtained.
[実施の形態2の第1の変形例]
上で述べた例では、マスタサーバ3bは、演算式の識別子を含む拡張指示を送信するものであったが、これは各情報提供者装置5a乃至5c及びユーザサーバ9が、使用すべき演算式を予め保持していることを前提としている。一方、各情報提供者装置5a乃至5c及びユーザサーバ9が、演算式を保持していない場合には、マスタサーバ3bが、演算式を含む拡張指示を送信すればよい。
[First Modification of Second Embodiment]
In the example described above, the master server 3b transmits an extension instruction including an identifier of an arithmetic expression. This is an arithmetic expression to be used by each of the information provider devices 5a to 5c and the
[実施の形態2の第2の変形例]
マスタサーバ3bの関与を少なくすることもできる。
[Second Modification of Embodiment 2]
The involvement of the master server 3b can also be reduced.
第1の実施の形態の第2の変形例と同様に、情報提供者装置5の制御部51が、情報提供者装置5の時計により予め定められている時刻や例えばステップS87の直後といったようなイベントを検出すると、変更処理部52が、図19のような処理を実行するようにしても良い。
As in the second modification of the first embodiment, the
但し、ユーザサーバ9における補助行列Aの拡張処理については簡略化できないので、図18のとおりに行うことになる。
However, since the expansion process of the auxiliary matrix A in the
[実施の形態2の第3の変形例]
上で述べた例では、拡張された行又は列の分の調整をマスク行列M1乃至M3内部で行っていない。従って、補助行列Aについては別途調整ベクトルで調整することになっていた。
[Third Modification of Second Embodiment]
In the example described above, the adjustment for the expanded row or column is not performed inside the mask matrices M1 to M3. Therefore, the auxiliary matrix A is separately adjusted with an adjustment vector.
しかしながら、例えば、図22に模式的に示すように、xm+1=x1+x2、xm=xm−x1−x2といったような演算式を採用する場合には、マスク行列内で拡張された列の分を相殺できるようになっている。 However, for example, as shown schematically in FIG. 22, when an arithmetic expression such as x m + 1 = x 1 + x 2 or x m = x m −x 1 −x 2 is adopted, It is now possible to offset the extended column.
このように、追加する行又は列については、特定の行又は列ベクトルの線形従属のベクトルとして生成し、特定の行又は列及び追加された行又は列以外の行又は列において当該線形従属のベクトルを当該行又は列のベクトルから差し引いておくことで、調整できる。 Thus, the added row or column is generated as a linearly dependent vector of a specific row or column vector, and the linearly dependent vector is generated in a row or column other than the specific row or column and the added row or column. Can be adjusted by subtracting from the row or column vector.
このような場合には、補助行列Aについても、同様の演算式を適用すれば、調整ベクトルなしに、M+Aがゼロサム行列となる。 In such a case, if a similar arithmetic expression is applied to the auxiliary matrix A, M + A becomes a zero sum matrix without an adjustment vector.
このような場合には、例えば図23に示すような処理を実行することになる。 In such a case, for example, processing as shown in FIG. 23 is executed.
なお、既にマスク行列M1は情報提供者装置5aに配布済みであり、マスク行列M2は情報提供者装置5bに配布済みであり、マスク行列M3は情報提供者装置5cに配布済みであり、補助行列Aもユーザサーバ9に配布済みであるものとする。
Note that the mask matrix M1 has already been distributed to the information provider device 5a, the mask matrix M2 has been distributed to the
また、例えば予め定められている複数の演算式については、情報提供者装置5a乃至5c及びユーザサーバ9に通知されているものとする。
For example, it is assumed that a plurality of predetermined arithmetic expressions are notified to the information provider devices 5 a to 5 c and the
そして、適切なタイミングで、マスタサーバ3bは、ここでは演算式の識別子を含む拡張指示を各情報提供者装置5a乃至5cへ送信する(図23:ステップS141)。各情報提供者装置5a乃至5cの制御部51は、マスタサーバ3bから、演算式の識別子を含む拡張指示を受信する(ステップS143)。そうすると、情報提供者装置5a乃至5cは、マスク行列の拡張処理を実行する(ステップS145)。マスク行列の拡張処理については、図19を用いて説明した処理フローと同じであるから、ここでは説明を省略する。
Then, at an appropriate timing, the master server 3b transmits an extension instruction including an arithmetic expression identifier to each of the information provider devices 5a to 5c (FIG. 23: step S141). The
これによって、行又は列が追加された新たなマスク行列M1が得られるようになる。 As a result, a new mask matrix M1 to which rows or columns have been added can be obtained.
そして、変更処理部52は処理が終了すると制御部51に対して処理終了を通知する。その後、適切なタイミングで、制御部51は、マスク処理部55に処理を指示する。そうすると、マスク処理部55は、制御部51から処理の指示を受けると、マスク化処理を実行し、マスク化データ格納部56に格納する(ステップS147)。すなわち、マスク行列M1と行列D1との和を算出することで、マスク化行列MD1が得られる。
Then, the
その後、マスク処理部55は、処理終了を制御部51に通知し、制御部51は、送信部57に処理を指示する。そうすると、送信部57は、マスク化データ格納部56に格納されているマスク化行列MD1を、集計者サーバ7に送信する(ステップS149)。
Thereafter, the
この他の情報提供者装置5b及び5cについても、同様の処理を実行する。
Similar processing is executed for the other
集計者サーバ7は、情報提供者装置5a乃至5cから、マスク化行列MD1乃至MD3を受信し、データ格納部に格納する(ステップS151)。そして、集計者サーバ7は、マスク化行列MD1乃至MD3の合計であるマスク化行列MDを算出し、データ格納部に格納する(ステップS153)。
The
また、マスタサーバ3bの制御部31は、拡張のための演算式の識別子を含む拡張指示を、ユーザサーバ9へ送信する(ステップS141)。
Further, the
ユーザサーバ9の制御部92は、調整ベクトル及び演算式の識別子を含む拡張指示を受信し(ステップS157)、変更処理部93に処理を指示する。変更処理部93は、データ格納部94に格納されている補助行列Aに対して拡張処理を実行する(ステップS159)。補助行列の拡張処理については、本実施の形態では図21を用いて説明したものと同じである。
The
その後、ユーザサーバ9の制御部92は、自動的に又はユーザからの指示などに応じて集計者サーバ7へマスク化行列MDの要求を送信する。但し、要求を送信せずとも、集計者サーバ7側で自動的にマスク化行列MDを送信してくる場合もある。
Thereafter, the
自動的に又はユーザサーバ9からの要求に応じて、集計者サーバ7は、マスク化行列MD1乃至MD3の合計結果であるマスク化行列MDをユーザサーバ9へ送信する(ステップS155)。ユーザサーバ9の制御部92は、集計者サーバ7からマスク化行列MD1乃至MD3の合計結果であるマスク化行列MDを受信すると(ステップS161)、集計処理部95に出力する。
Automatically or in response to a request from the
集計処理部95は、マスク化行列MD1乃至MD3の合計結果であるマスク化行列MDと、拡張後の補助行列Aとを加算して、集計行列TDを生成し、集計データ格納部96に格納する(ステップS163)。
The
さらに、集計処理部95は、集計行列TDの各行及び各列について成分を合計するという集計処理を実行し、集計結果を集計データ格納部96に格納する(ステップS165)。そして、集計処理部95は、処理終了を制御部92に通知する。制御部92は、例えばユーザサーバ9に接続された他のコンピュータからの要求等に応じて、データ出力部97に指示し、データ出力部97は、集計データ格納部96に格納されている集計結果を出力する(ステップS167)。
Furthermore, the
以上のような演算式を採用することで、マスタサーバ3bからの指示に応じてマスク行列M1乃至M3と補助行列Aとが拡張され、適切な集計行列TDが得られるようになる。 By adopting the arithmetic expression as described above, the mask matrices M1 to M3 and the auxiliary matrix A are expanded in accordance with an instruction from the master server 3b, and an appropriate aggregation matrix TD can be obtained.
[実施の形態2の第4の変形例]
上で述べた例では、補助行列が存在するケースについての処理を説明した。但し、マスク行列M1乃至M3を適切に生成すれば、マスク行列M1乃至M3の加算結果であるマスク行列M自体が、ゼロサム行列となる。このような場合でも補助行列Aが無くなっただけで上で述べたようなマスク行列M1乃至M3の性質は変わらない。
[Fourth Modification of Embodiment 2]
In the example described above, the processing for the case where the auxiliary matrix exists has been described. However, if the mask matrices M1 to M3 are appropriately generated, the mask matrix M itself, which is the addition result of the mask matrices M1 to M3, becomes a zero sum matrix. Even in such a case, the properties of the mask matrices M1 to M3 as described above are not changed only by eliminating the auxiliary matrix A.
従って、第2の実施の形態における第3の変形例のような演算式を採用すれば、情報提供者装置5a乃至5cにおいて、マスク行列M1乃至M3の拡張を行うだけで良くなる。 Therefore, if an arithmetic expression such as the third modification in the second embodiment is employed, it is only necessary to expand the mask matrices M1 to M3 in the information provider devices 5a to 5c.
また、このようなマスク行列M1乃至M3を採用する場合には、ユーザサーバ9は、補助行列の更新を行うことはなく、アンマスク処理も行わない。
When such mask matrices M1 to M3 are adopted, the
例えば、図18に示した処理フローは図24に示すような処理フローに変更される。 For example, the processing flow shown in FIG. 18 is changed to a processing flow as shown in FIG.
なお、既にマスク行列M1は情報提供者装置5aに配布済みであり、マスク行列M2は情報提供者装置5bに配布済みであり、マスク行列M3は情報提供者装置5cに配布済みであるものとする。
Note that the mask matrix M1 has already been distributed to the information provider device 5a, the mask matrix M2 has been distributed to the
また、例えば第3の変形例に従った複数の拡張のための演算式については、情報提供者装置5aに通知されているものとする。 Further, for example, it is assumed that a plurality of arithmetic expressions for expansion according to the third modification are notified to the information provider device 5a.
そして、適切なタイミングで、マスタサーバ3bは、ここでは演算式の識別子を含む拡張指示を各情報提供者装置5a乃至5cへ送信する(図24:ステップS171)。各情報提供者装置5a乃至5cの制御部51は、マスタサーバ3bから、演算式の識別子を含む拡張指示を受信する(ステップS173)。そうすると、情報提供者装置5a乃至5cは、マスク行列の拡張処理を実行する(ステップS175)。マスク行列の拡張処理については、上で述べたものと同じであるから、説明は省略する。
Then, at an appropriate timing, the master server 3b transmits an extension instruction including an arithmetic expression identifier to each of the information provider devices 5a to 5c (FIG. 24: step S171). The
新たなマスク行列M1が得られた後、適切なタイミングで、制御部51は、マスク処理部55に処理を指示する。そうすると、マスク処理部55は、制御部51から処理の指示を受けると、マスク化処理を実行し、マスク化データ格納部56に格納する(ステップS177)。すなわち、マスク行列M1と行列D1との和を算出することで、マスク化行列MD1が得られる。
After the new mask matrix M1 is obtained, the
その後、マスク処理部55は、処理終了を制御部51に通知し、制御部51は、送信部57に処理を指示する。そうすると、送信部57は、マスク化データ格納部56に格納されているマスク化行列MD1を、集計者サーバ7に送信する(ステップS179)。
Thereafter, the
この他の情報提供者装置5b及び5cについても、同様の処理を実行する。
Similar processing is executed for the other
集計者サーバ7は、情報提供者装置5a乃至5cから、マスク化行列MD1乃至MD3を受信し、データ格納部に格納する(ステップS181)。そして、集計者サーバ7は、マスク化行列MD1乃至MD3の合計であるマスク化行列MDを算出し、データ格納部に格納する(ステップS183)。ここまでは、図18と同じである。
The
しかし、本実施の形態では、集計者サーバ7が、マスク化行列MD1乃至MD3の合計結果であるマスク化行列MD(=集計行列TD)の各行及び各列について成分を合計するという集計処理を実行し(ステップS185)、集計結果をデータ格納部に格納する。
However, in the present embodiment, the
その後、ユーザサーバ9からの要求に応じて又は自動的に、集計者サーバ7は、集計結果を、ユーザサーバ9に送信する(ステップS187)。これに対して、ユーザサーバ9は、集計者サーバ7から集計結果を受信して、例えば集計データ格納部96に格納する(ステップS189)。
Thereafter, in response to a request from the
このように、マスク行列M1乃至M3の加算結果であるマスク行列M自体がゼロサム行列であれば、補助行列についての処理を省略することができる。 As described above, if the mask matrix M itself, which is the addition result of the mask matrices M1 to M3, is a zero sum matrix, the process for the auxiliary matrix can be omitted.
なお、マスク化行列MDを、集計者サーバ7からユーザサーバ9に送信して、ユーザサーバ9が、集計処理から実行するようにしてもよい。
Note that the masked matrix MD may be transmitted from the
さらに、マスク行列M1乃至M3自体がゼロサム行列である場合もある。 Further, the mask matrices M1 to M3 themselves may be zero sum matrices.
また、情報提供者が多数存在している場合には、例えば情報提供者のグループ毎に、そのグループに属する情報提供者用のマスク行列の加算結果がゼロサム行列となるように変形することも可能である。 In addition, when there are a large number of information providers, for example, for each group of information providers, the addition result of the mask matrix for information providers belonging to the group can be modified to be a zero sum matrix. It is.
[実施の形態2の第5の変形例]
演算式が第2の実施の形態における第3の変形例のような形でない場合には、第4の変形例では、調整ベクトルをユーザサーバ9に送信して、調整ベクトルが行ベクトルであれば、列方向の集計結果を調整し、調整ベクトルが列ベクトルであれば、行方向の集計結果を調整することになる。
[Fifth Modification of Embodiment 2]
If the arithmetic expression is not in the form as in the third modification example in the second embodiment, in the fourth modification example, the adjustment vector is transmitted to the
[実施の形態2の第6の変形例]
拡張した上で更新するというような処理を実行する場合もある。この場合、上で述べた更新処理及び拡張処理を行う場合もあるが、拡張を簡易化して、0ベクトルを行又は列に追加することもある。この場合、(E)の演算式で更新処理を行えば、問題は発生しない。すなわち、3以上の行又は列で更新する演算式であれば、0ベクトルが演算式で用いられる場合にも問題なく更新される。
[Sixth Modification of Second Embodiment]
There is a case where processing such as updating after updating is executed. In this case, the update process and the extension process described above may be performed, but the extension may be simplified and a zero vector may be added to the row or column. In this case, there is no problem if the update process is performed using the arithmetic expression (E). That is, if an arithmetic expression is updated in three or more rows or columns, it is updated without any problem even when a zero vector is used in the arithmetic expression.
以上様々な実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で述べた変形例の組み合わせなども可能な場合がある。処理フローについても、処理結果が変わらない限りにおいて、処理順番を入れ替えたり、複数のステップを並列に実行する場合もある。 Although various embodiments have been described above, the present technology is not limited to this. For example, a combination of the modifications described above may be possible. As for the processing flow, as long as the processing result does not change, the processing order may be changed or a plurality of steps may be executed in parallel.
サーバ等の機能ブロック構成も、一例であって、プログラムモジュール構成とは一致しない場合がある。各サーバ及び装置は、複数のコンピュータで実現される場合もある。 The functional block configuration such as a server is also an example, and may not match the program module configuration. Each server and device may be realized by a plurality of computers.
なお、上で述べたマスタサーバ3及び3b、情報提供者装置5a乃至5c、集計者サーバ7及びユーザサーバ9は、コンピュータ装置であって、図25に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
Note that the
以上述べた本実施の形態をまとめると、以下のようになる。 The above-described embodiment can be summarized as follows.
本実施の形態の第1の態様に係るマスク行列更新方法は、(A)被マスク行列をマスクするための、データ格納部に格納されたマスク行列の更新タイミングを検出し、(B)マスク行列の行又は列単位の所定の更新演算式に従った演算を、マスク行列における行又は列方向にサイクリックに行うことで、新たなマスク行列を生成し、データ格納部に格納する処理を含む。このようにすれば、更新後のマスク行列を配布せずに済むので、低コストでマスク行列を更新できるようになる。 In the mask matrix update method according to the first aspect of the present embodiment, (A) the update timing of the mask matrix stored in the data storage unit for masking the masked matrix is detected, and (B) the mask matrix This includes a process of generating a new mask matrix by cyclically performing an operation according to a predetermined update arithmetic expression in units of rows or columns in the row or column direction of the mask matrix and storing it in the data storage unit. In this way, since it is not necessary to distribute the updated mask matrix, the mask matrix can be updated at a low cost.
また、上で述べた更新タイミングが、時間、他のコンピュータからの指示、又はコンピュータにおいて実施された他の所定の処理の開始又は終了である場合もある。様々な実装方法に対応できる。 In addition, the update timing described above may be the time, an instruction from another computer, or the start or end of another predetermined process performed in the computer. It can correspond to various mounting methods.
また、上で述べた更新タイミング毎に、上記所定の更新演算式が変更されるようにしても良い。秘匿化のレベルが向上する。 Further, the predetermined update arithmetic expression may be changed at each update timing described above. The level of concealment is improved.
さらに、上で述べた所定の更新演算式が、他のコンピュータから通知されるか、予め定められている複数の更新演算式から予め定められている順番にて選定される場合もある。更新演算式を切り替えて用いるようにすれば、秘匿化のレベルが向上する。 Furthermore, the predetermined update arithmetic expression described above may be notified from another computer, or may be selected in a predetermined order from a plurality of predetermined update arithmetic expressions. If the update arithmetic expression is switched and used, the level of concealment is improved.
さらに、上で述べた所定の更新演算式が、複数の行又は列の和又は差、又は第1の行又は列と第1の係数との第1の積と第2の行又は列と第2の係数との第2の積との和を含むようにしても良い。マスク行列の性質に基づく演算内容である。 Further, the predetermined update arithmetic expression described above may include a sum or difference of a plurality of rows or columns, or a first product of a first row or column and a first coefficient, a second row or column, and a first The sum of the second product and the coefficient of 2 may be included. This is a calculation content based on the nature of the mask matrix.
さらに、上で述べた所定の更新演算式が、第1の行又は列と第1の係数との第1の積と第2の行又は列と第2の係数との第2の積と第3の行又は列と第3の係数との第3の積との和である場合もある。マスク行列が0ベクトルを追加することで拡張された場合には、マスク行列における1行又は1列がゼロとなっているが、このような演算式であれば、適切に更新される。 Further, the predetermined update arithmetic expression described above includes the first product of the first row or column and the first coefficient, the second product of the second row or column and the second coefficient, and the second It may be the sum of 3 rows or columns and a third product of a third coefficient. When the mask matrix is expanded by adding a zero vector, one row or one column in the mask matrix is zero, but such an arithmetic expression is appropriately updated.
また、上で述べたマスク行列が、(a)複数の第1のマスク行列と補助行列との和により得られる行列における各行及び各列についての成分の総和がゼロとなるという性質を有する複数の第1のマスク行列のうちの1つの第1のマスク行列であるか、(b)複数の第2のマスク行列の総和における各行及び各列についての成分の総和がゼロとなるという性質を有する複数の第2のマスク行列のうちの1つの第2のマスク行列である場合もある。このようなマスク行列の性質は、秘匿集計で有用である。 The mask matrix described above has a property that (a) the sum of components for each row and each column in a matrix obtained by summing a plurality of first mask matrices and auxiliary matrices is zero. A plurality of first mask matrices, or (b) a plurality having the property that the sum of components for each row and each column in the sum of a plurality of second mask matrices is zero The second mask matrix may be one of the second mask matrices. Such a property of the mask matrix is useful for secret tabulation.
さらに、上で述べた補助行列の行又は列単位の所定の更新演算式に従った演算を、補助行列における行又は列方向にサイクリックに行うことで、新たな補助行列を生成する処理をさらに含むようにしても良い。補助行列を用いる場合にも、同様の更新演算式を用いて更新を行えば、補助行列を配布するコストを下げることができる。 Furthermore, a process for generating a new auxiliary matrix is further performed by cyclically performing an operation in accordance with a predetermined update arithmetic expression for each row or column of the auxiliary matrix described above in the row or column direction of the auxiliary matrix. It may be included. Even when an auxiliary matrix is used, the cost of distributing the auxiliary matrix can be reduced by performing an update using a similar update calculation formula.
また、本実施の形態の第2の態様に係るマスク行列拡張方法は、(C)被マスク行列をマスクするための、データ格納部に格納されたマスク行列の拡張タイミングを検出し、(D)マスク行列の行又は列単位の所定の拡張演算式に従った演算をマスク行列における行又は列方向に行うことでマスク行列の新たな行又は列を生成し、マスク行列に付加することで新たなマスク行列を生成し、データ格納部に格納する処理を含む。このようにすれば、行列の拡張であっても、低コストでマスク行列を拡張できる。 In addition, the mask matrix expansion method according to the second aspect of the present embodiment detects (C) the expansion timing of the mask matrix stored in the data storage unit for masking the masked matrix, and (D) A new row or column of the mask matrix is generated by performing an operation according to a predetermined extended arithmetic expression in units of rows or columns of the mask matrix in the row or column direction of the mask matrix, and a new one is added by adding to the mask matrix. The process includes generating a mask matrix and storing it in the data storage unit. In this way, even if the matrix is expanded, the mask matrix can be expanded at a low cost.
また、上で述べた所定の拡張演算式が、マスク行列における第1の行又は列と第2の行又は列との和又は差を含むようにしても良い。 Further, the predetermined extended arithmetic expression described above may include the sum or difference between the first row or column and the second row or column in the mask matrix.
さらに、上で述べた格納する処理が、第1の行又は列と第2の行又は列との和を、マスク行列における第1及び第2の行又は列以外の行又は列から行又は列単位で差し引くようにしても良い。このようにすれば、マスク行列内における調整がなされることになる。 Further, the storing process described above may perform the sum of the first row or column and the second row or column from the row or column other than the first and second rows or columns in the mask matrix. You may make it deduct by a unit. In this way, adjustment within the mask matrix is made.
さらに、上で述べたマスク行列が、(a)複数の第1のマスク行列と補助行列との和により得られる行列における各行及び各列についての成分の総和がゼロとなるという性質を有する複数の第1のマスク行列のうちの1つの第1のマスク行列であるか、(b)複数の第2のマスク行列の総和における各行及び各列についての成分の総和がゼロとなるという性質を有する複数の第2のマスク行列のうちの1つの第2のマスク行列であることもある。秘匿集計で有用なマスク行列の性質を表すものである。 Further, the mask matrix described above has a property that (a) the sum of components for each row and each column in a matrix obtained by summing a plurality of first mask matrices and auxiliary matrices is zero. A plurality of first mask matrices, or (b) a plurality having the property that the sum of components for each row and each column in the sum of a plurality of second mask matrices is zero The second mask matrix may be one of the second mask matrices. It represents the properties of a mask matrix useful for concealment aggregation.
また、補助行列の行又は列単位の所定の拡張演算式に従った演算を補助行列における行又は列方向に行うことで補助行列の新たな行又は列を生成する処理をさらに含むようにしても良い。拡張演算式によっては、これだけでなく調整ベクトルを用いて調整を行うことになる場合もある。 Further, it may further include a process of generating a new row or column of the auxiliary matrix by performing an operation according to a predetermined extended arithmetic expression in units of rows or columns of the auxiliary matrix in the row or column direction of the auxiliary matrix. Depending on the extended arithmetic expression, not only this but also an adjustment vector may be used for adjustment.
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROMなどの光ディスク、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。 It is possible to create a program for causing a computer to carry out the processing described above, such as a flexible disk, an optical disk such as a CD-ROM, a magneto-optical disk, and a semiconductor memory (for example, ROM). Or a computer-readable storage medium such as a hard disk or a storage device. Note that data being processed is temporarily stored in a storage device such as a RAM.
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。 The following supplementary notes are further disclosed with respect to the embodiments including the above examples.
(付記1)
被マスク行列をマスクするための、データ格納部に格納されたマスク行列の更新タイミングを検出し、
前記マスク行列の行又は列単位の所定の更新演算式に従った演算を、前記マスク行列における行又は列方向にサイクリックに行うことで、新たなマスク行列を生成し、前記データ格納部に格納する
処理を含み、コンピュータにより実行されるマスク行列更新方法。
(Appendix 1)
Detecting the update timing of the mask matrix stored in the data storage unit for masking the masked matrix;
A new mask matrix is generated by cyclically performing an operation in accordance with a predetermined update arithmetic expression for each row or column of the mask matrix in the row or column direction of the mask matrix, and stored in the data storage unit A mask matrix updating method including processing and executed by a computer.
(付記2)
前記更新タイミングが、時間、他のコンピュータからの指示、又は前記コンピュータにおいて実施された他の所定の処理の開始又は終了である
付記1記載のマスク行列更新方法。
(Appendix 2)
The mask matrix updating method according to
(付記3)
前記更新タイミング毎に、前記所定の更新演算式が変更される
付記1又は2記載のマスク行列更新方法。
(Appendix 3)
The mask matrix updating method according to
(付記4)
前記所定の更新演算式が、他のコンピュータから通知されるか、予め定められている複数の更新演算式から予め定められている順番にて選定される
付記1乃至3のいずれか1つ記載のマスク行列更新方法。
(Appendix 4)
The predetermined update arithmetic expression is notified from another computer, or is selected in a predetermined order from a plurality of predetermined update arithmetic expressions. Mask matrix update method.
(付記5)
前記所定の更新演算式が、複数の行又は列の和又は差、又は第1の行又は列と第1の係数との第1の積と第2の行又は列と第2の係数との第2の積との和を含む
付記1乃至4のいずれか1つ記載のマスク行列更新方法。
(Appendix 5)
The predetermined update arithmetic expression is a sum or difference of a plurality of rows or columns, or a first product of a first row or column and a first coefficient, a second row or column, and a second coefficient. The mask matrix update method according to any one of
(付記6)
前記所定の更新演算式が、第1の行又は列と第1の係数との第1の積と第2の行又は列と第2の係数との第2の積と第3の行又は列と第3の係数との第3の積との和である
付記1乃至4のいずれか1つ記載のマスク行列更新方法。
(Appendix 6)
The predetermined update arithmetic expression is a first product of a first row or column and a first coefficient, a second product of a second row or column and a second coefficient, and a third row or column. The mask matrix updating method according to any one of
(付記7)
前記マスク行列が、
複数の第1のマスク行列と補助行列との和により得られる行列における各行及び各列についての成分の総和がゼロとなるという性質を有する前記複数の第1のマスク行列のうちの1つの第1のマスク行列であるか、
複数の第2のマスク行列の総和における各行及び各列についての成分の総和がゼロとなるという性質を有する前記複数の第2のマスク行列のうちの1つの第2のマスク行列である、
付記1乃至6のいずれか1つ記載のマスク行列更新方法。
(Appendix 7)
The mask matrix is
The first one of the plurality of first mask matrices having the property that the sum of components for each row and each column in the matrix obtained by the sum of the plurality of first mask matrices and the auxiliary matrix is zero. Or a mask matrix of
A second mask matrix of one of the plurality of second mask matrices having a property that a sum of components for each row and each column in a sum of a plurality of second mask matrices is zero;
The mask matrix update method according to any one of
(付記8)
前記補助行列の行又は列単位の前記所定の更新演算式に従った演算を、前記補助行列における行又は列方向にサイクリックに行うことで、新たな補助行列を生成する処理
をさらに含む、請求項7記載のマスク行列更新方法。
(Appendix 8)
A process of generating a new auxiliary matrix by cyclically performing an operation according to the predetermined update arithmetic expression in units of rows or columns of the auxiliary matrix in a row or column direction of the auxiliary matrix.
(付記9)
被マスク行列をマスクするための、データ格納部に格納されたマスク行列の拡張タイミングを検出し、
前記マスク行列の行又は列単位の所定の拡張演算式に従った演算を前記マスク行列における行又は列方向に行うことで前記マスク行列の新たな行又は列を生成し、前記マスク行列に付加することで新たなマスク行列を生成し、前記データ格納部に格納する
処理を含み、コンピュータにより実行されるマスク行列拡張方法。
(Appendix 9)
Detecting the expansion timing of the mask matrix stored in the data storage unit for masking the masked matrix;
A new row or column of the mask matrix is generated by performing an operation according to a predetermined extended arithmetic expression in units of rows or columns of the mask matrix in the row or column direction of the mask matrix, and added to the mask matrix A mask matrix expansion method executed by a computer, including a process of generating a new mask matrix and storing the new mask matrix in the data storage unit.
(付記10)
前記所定の拡張演算式が、前記マスク行列における第1の行又は列と第2の行又は列との和又は差を含む
付記9記載のマスク行列拡張方法。
(Appendix 10)
The mask matrix expansion method according to
(付記11)
前記格納する処理が、
前記第1の行又は列と前記第2の行又は列との和を、前記マスク行列における前記第1及び第2の行又は列以外の行又は列から行又は列単位で差し引く
処理を含む付記10記載のマスク行列拡張方法。
(Appendix 11)
The storing process includes:
Additional remarks including a process of subtracting the sum of the first row or column and the second row or column from a row or column other than the first and second rows or columns in the mask matrix in units of rows or
(付記12)
前記マスク行列が、
複数の第1のマスク行列と補助行列との和により得られる行列における各行及び各列についての成分の総和がゼロとなるという性質を有する前記複数の第1のマスク行列のうちの1つの第1のマスク行列であるか、
複数の第2のマスク行列の総和における各行及び各列についての成分の総和がゼロとなるという性質を有する前記複数の第2のマスク行列のうちの1つの第2のマスク行列である、
付記9乃至11のいずれか1つ記載のマスク行列拡張方法。
(Appendix 12)
The mask matrix is
The first one of the plurality of first mask matrices having the property that the sum of components for each row and each column in the matrix obtained by the sum of the plurality of first mask matrices and the auxiliary matrix is zero. Or a mask matrix of
A second mask matrix of one of the plurality of second mask matrices having a property that a sum of components for each row and each column in a sum of a plurality of second mask matrices is zero;
The mask matrix expansion method according to any one of
(付記13)
前記補助行列の行又は列単位の前記所定の拡張演算式に従った演算を前記補助行列における行又は列方向に行うことで前記補助行列の新たな行又は列を生成する処理
をさらに含む、付記12記載のマスク行列拡張方法。
(Appendix 13)
The processing further includes: generating a new row or column of the auxiliary matrix by performing an operation according to the predetermined extended arithmetic expression in units of rows or columns of the auxiliary matrix in a row or column direction of the auxiliary matrix. 13. The mask matrix expansion method according to 12.
(付記14)
被マスク行列をマスクするための、データ格納部に格納されたマスク行列の更新タイミングを検出し、
前記マスク行列の行又は列単位の所定の更新演算式に従った演算を、前記マスク行列における行又は列方向にサイクリックに行うことで、新たなマスク行列を生成し、前記データ格納部に格納する
処理を、コンピュータに実行させるためのマスク行列更新プログラム。
(Appendix 14)
Detecting the update timing of the mask matrix stored in the data storage unit for masking the masked matrix;
A new mask matrix is generated by cyclically performing an operation in accordance with a predetermined update arithmetic expression for each row or column of the mask matrix in the row or column direction of the mask matrix, and stored in the data storage unit A mask matrix update program for causing a computer to execute processing.
(付記15)
被マスク行列をマスクするための、データ格納部に格納されたマスク行列の拡張タイミングを検出し、
前記マスク行列の行又は列単位の所定の拡張演算式に従った演算を前記マスク行列における行又は列方向に行うことで前記マスク行列の新たな行又は列を生成し、前記マスク行列に付加することで新たなマスク行列を生成し、前記データ格納部に格納する
処理を、コンピュータに実行させるためのマスク行列拡張プログラム。
(Appendix 15)
Detecting the expansion timing of the mask matrix stored in the data storage unit for masking the masked matrix;
A new row or column of the mask matrix is generated by performing an operation according to a predetermined extended arithmetic expression in units of rows or columns of the mask matrix in the row or column direction of the mask matrix, and added to the mask matrix A mask matrix expansion program for causing a computer to execute a process of generating a new mask matrix and storing it in the data storage unit.
(付記16)
被マスク行列をマスクするための、データ格納部に格納されたマスク行列の更新タイミングを検出する検出部と、
前記マスク行列の行又は列単位の所定の更新演算式に従った演算を、前記マスク行列における行又は列方向にサイクリックに行うことで、新たなマスク行列を生成し、前記データ格納部に格納する生成部と、
を有する情報処理装置。
(Appendix 16)
A detection unit for detecting the update timing of the mask matrix stored in the data storage unit for masking the masked matrix;
A new mask matrix is generated by cyclically performing an operation in accordance with a predetermined update arithmetic expression for each row or column of the mask matrix in the row or column direction of the mask matrix, and stored in the data storage unit A generator to
An information processing apparatus.
(付記17)
被マスク行列をマスクするための、データ格納部に格納されたマスク行列の拡張タイミングを検出する検出部と、
前記マスク行列の行又は列単位の所定の拡張演算式に従った演算を前記マスク行列における行又は列方向に行うことで前記マスク行列の新たな行又は列を生成し、前記マスク行列に付加することで新たなマスク行列を生成し、前記データ格納部に格納する生成部と、
を有する情報処理装置。
(Appendix 17)
A detection unit for detecting the expansion timing of the mask matrix stored in the data storage unit for masking the masked matrix;
A new row or column of the mask matrix is generated by performing an operation according to a predetermined extended arithmetic expression in units of rows or columns of the mask matrix in the row or column direction of the mask matrix, and added to the mask matrix Generating a new mask matrix and storing it in the data storage unit;
An information processing apparatus.
1 ネットワーク
3 マスタサーバ
5 情報提供者装置
7 集計者サーバ
9 ユーザサーバ
1
Claims (17)
前記マスク行列の行又は列単位の所定の更新演算式に従った演算を、前記マスク行列における行又は列方向にサイクリックに行うことで、新たなマスク行列を生成し、前記データ格納部に格納する
処理を含み、コンピュータにより実行されるマスク行列更新方法。 Detecting the update timing of the mask matrix stored in the data storage unit for masking the masked matrix;
A new mask matrix is generated by cyclically performing an operation in accordance with a predetermined update arithmetic expression for each row or column of the mask matrix in the row or column direction of the mask matrix, and stored in the data storage unit A mask matrix updating method including processing and executed by a computer.
請求項1記載のマスク行列更新方法。 The mask matrix update method according to claim 1, wherein the update timing is time, an instruction from another computer, or a start or end of another predetermined process executed in the computer.
請求項1又は2記載のマスク行列更新方法。 The mask matrix update method according to claim 1, wherein the predetermined update arithmetic expression is changed at each update timing.
請求項1乃至3のいずれか1つ記載のマスク行列更新方法。 The predetermined update arithmetic expression is notified from another computer, or is selected in a predetermined order from a plurality of predetermined update arithmetic expressions. Mask matrix update method.
請求項1乃至4のいずれか1つ記載のマスク行列更新方法。 The predetermined update arithmetic expression is a sum or difference of a plurality of rows or columns, or a first product of a first row or column and a first coefficient, a second row or column, and a second coefficient. The mask matrix update method according to any one of claims 1 to 4, including a sum with a second product.
請求項1乃至4のいずれか1つ記載のマスク行列更新方法。 The predetermined update arithmetic expression is a first product of a first row or column and a first coefficient, a second product of a second row or column and a second coefficient, and a third row or column. The mask matrix updating method according to any one of claims 1 to 4, wherein the mask matrix is a sum of a third product of the first coefficient and the third coefficient.
複数の第1のマスク行列と補助行列との和により得られる行列における各行及び各列についての成分の総和がゼロとなるという性質を有する前記複数の第1のマスク行列のうちの1つの第1のマスク行列であるか、
複数の第2のマスク行列の総和における各行及び各列についての成分の総和がゼロとなるという性質を有する前記複数の第2のマスク行列のうちの1つの第2のマスク行列である、
請求項1乃至6のいずれか1つ記載のマスク行列更新方法。 The mask matrix is
The first one of the plurality of first mask matrices having the property that the sum of components for each row and each column in the matrix obtained by the sum of the plurality of first mask matrices and the auxiliary matrix is zero. Or a mask matrix of
A second mask matrix of one of the plurality of second mask matrices having a property that a sum of components for each row and each column in a sum of a plurality of second mask matrices is zero;
The mask matrix update method according to any one of claims 1 to 6.
をさらに含む、請求項7記載のマスク行列更新方法。 A process of generating a new auxiliary matrix by cyclically performing an operation according to the predetermined update arithmetic expression in units of rows or columns of the auxiliary matrix in a row or column direction of the auxiliary matrix. Item 8. The mask matrix updating method according to Item 7.
前記マスク行列の行又は列単位の所定の拡張演算式に従った演算を前記マスク行列における行又は列方向に行うことで前記マスク行列の新たな行又は列を生成し、前記マスク行列に付加することで新たなマスク行列を生成し、前記データ格納部に格納する
処理を含み、コンピュータにより実行されるマスク行列拡張方法。 Detecting the expansion timing of the mask matrix stored in the data storage unit for masking the masked matrix;
A new row or column of the mask matrix is generated by performing an operation according to a predetermined extended arithmetic expression in units of rows or columns of the mask matrix in the row or column direction of the mask matrix, and added to the mask matrix A mask matrix expansion method executed by a computer, including a process of generating a new mask matrix and storing the new mask matrix in the data storage unit.
請求項9記載のマスク行列拡張方法。 The mask matrix expansion method according to claim 9, wherein the predetermined expansion arithmetic expression includes a sum or a difference between a first row or column and a second row or column in the mask matrix.
前記第1の行又は列と前記第2の行又は列との和を、前記マスク行列における前記第1及び第2の行又は列以外の行又は列から行又は列単位で差し引く
処理を含む請求項10記載のマスク行列拡張方法。 The storing process includes:
A process of subtracting the sum of the first row or column and the second row or column from a row or column other than the first and second rows or columns in the mask matrix in units of rows or columns. Item 11. The mask matrix expansion method according to Item 10.
複数の第1のマスク行列と補助行列との和により得られる行列における各行及び各列についての成分の総和がゼロとなるという性質を有する前記複数の第1のマスク行列のうちの1つの第1のマスク行列であるか、
複数の第2のマスク行列の総和における各行及び各列についての成分の総和がゼロとなるという性質を有する前記複数の第2のマスク行列のうちの1つの第2のマスク行列である、
請求項9乃至11のいずれか1つ記載のマスク行列拡張方法。 The mask matrix is
The first one of the plurality of first mask matrices having the property that the sum of components for each row and each column in the matrix obtained by the sum of the plurality of first mask matrices and the auxiliary matrix is zero. Or a mask matrix of
A second mask matrix of one of the plurality of second mask matrices having a property that a sum of components for each row and each column in a sum of a plurality of second mask matrices is zero;
12. The mask matrix expansion method according to any one of claims 9 to 11.
をさらに含む、請求項12記載のマスク行列拡張方法。 The processing further includes generating a new row or column of the auxiliary matrix by performing an operation according to the predetermined extended arithmetic expression in units of rows or columns of the auxiliary matrix in a row or column direction of the auxiliary matrix. Item 13. The mask matrix expansion method according to Item 12.
前記マスク行列の行又は列単位の所定の更新演算式に従った演算を、前記マスク行列における行又は列方向にサイクリックに行うことで、新たなマスク行列を生成し、前記データ格納部に格納する
処理を、コンピュータに実行させるためのマスク行列更新プログラム。 Detecting the update timing of the mask matrix stored in the data storage unit for masking the masked matrix;
A new mask matrix is generated by cyclically performing an operation in accordance with a predetermined update arithmetic expression for each row or column of the mask matrix in the row or column direction of the mask matrix, and stored in the data storage unit A mask matrix update program for causing a computer to execute processing.
前記マスク行列の行又は列単位の所定の拡張演算式に従った演算を前記マスク行列における行又は列方向に行うことで前記マスク行列の新たな行又は列を生成し、前記マスク行列に付加することで新たなマスク行列を生成し、前記データ格納部に格納する
処理を、コンピュータに実行させるためのマスク行列拡張プログラム。 Detecting the expansion timing of the mask matrix stored in the data storage unit for masking the masked matrix;
A new row or column of the mask matrix is generated by performing an operation according to a predetermined extended arithmetic expression in units of rows or columns of the mask matrix in the row or column direction of the mask matrix, and added to the mask matrix A mask matrix expansion program for causing a computer to execute a process of generating a new mask matrix and storing it in the data storage unit.
前記マスク行列の行又は列単位の所定の更新演算式に従った演算を、前記マスク行列における行又は列方向にサイクリックに行うことで、新たなマスク行列を生成し、前記データ格納部に格納する生成部と、
を有する情報処理装置。 A detection unit for detecting the update timing of the mask matrix stored in the data storage unit for masking the masked matrix;
A new mask matrix is generated by cyclically performing an operation in accordance with a predetermined update arithmetic expression for each row or column of the mask matrix in the row or column direction of the mask matrix, and stored in the data storage unit A generator to
An information processing apparatus.
前記マスク行列の行又は列単位の所定の拡張演算式に従った演算を前記マスク行列における行又は列方向に行うことで前記マスク行列の新たな行又は列を生成し、前記マスク行列に付加することで新たなマスク行列を生成し、前記データ格納部に格納する生成部と、
を有する情報処理装置。 A detection unit for detecting the expansion timing of the mask matrix stored in the data storage unit for masking the masked matrix;
A new row or column of the mask matrix is generated by performing an operation according to a predetermined extended arithmetic expression in units of rows or columns of the mask matrix in the row or column direction of the mask matrix, and added to the mask matrix Generating a new mask matrix and storing it in the data storage unit;
An information processing apparatus.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013003627A JP6032019B2 (en) | 2013-01-11 | 2013-01-11 | Matrix update method, program and apparatus, and matrix expansion method, program and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013003627A JP6032019B2 (en) | 2013-01-11 | 2013-01-11 | Matrix update method, program and apparatus, and matrix expansion method, program and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014134732A true JP2014134732A (en) | 2014-07-24 |
JP6032019B2 JP6032019B2 (en) | 2016-11-24 |
Family
ID=51413024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013003627A Expired - Fee Related JP6032019B2 (en) | 2013-01-11 | 2013-01-11 | Matrix update method, program and apparatus, and matrix expansion method, program and apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6032019B2 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006085506A1 (en) * | 2005-02-14 | 2006-08-17 | Seiko Epson Corporation | Image processing device, image processing method, program, and printed matter |
WO2011052215A1 (en) * | 2009-10-30 | 2011-05-05 | パナソニック株式会社 | Decoding method, decoder apparatus, encoding method, and encoder apparatus |
JP2012083536A (en) * | 2010-10-12 | 2012-04-26 | Fujitsu Ltd | Information processor and method |
-
2013
- 2013-01-11 JP JP2013003627A patent/JP6032019B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006085506A1 (en) * | 2005-02-14 | 2006-08-17 | Seiko Epson Corporation | Image processing device, image processing method, program, and printed matter |
WO2011052215A1 (en) * | 2009-10-30 | 2011-05-05 | パナソニック株式会社 | Decoding method, decoder apparatus, encoding method, and encoder apparatus |
JP2012083536A (en) * | 2010-10-12 | 2012-04-26 | Fujitsu Ltd | Information processor and method |
Also Published As
Publication number | Publication date |
---|---|
JP6032019B2 (en) | 2016-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6825138B2 (en) | Decentralized multi-party security model training framework for privacy protection | |
JP6034927B1 (en) | Secret calculation system, secret calculation device, and program | |
CN109791517B (en) | Protecting parallel multiplication operations from external monitoring attacks | |
US20160012238A1 (en) | A method and system for privacy-preserving recommendation to rating contributing users based on matrix factorization | |
KR20160041028A (en) | A method and system for privacy preserving matrix factorization | |
Ma et al. | Numerical solutions of a variable‐order fractional financial system | |
JP5668043B2 (en) | Management system, management server, management method and program | |
Delshad et al. | Synchronization of N-coupled incommensurate fractional-order chaotic systems with ring connection | |
US20220004815A1 (en) | Learning system, learning method, and computer program product | |
Elsadany et al. | Dynamic Cournot duopoly game with delay | |
Delgado et al. | Accurate computations with collocation matrices of rational bases | |
CN111492391A (en) | Client, server and client-server system for generating personalized recommendations | |
CN108028751B (en) | System, computer-readable medium, and method for mobile proactive secret sharing | |
CN114691167A (en) | Method and device for updating machine learning model | |
Soriano-Sánchez et al. | Coupling strength computation for chaotic synchronization of complex networks with multi-scroll attractors | |
JP7471425B2 (en) | Feedback Controller Using Secret Sharing | |
Li et al. | Synchronous stability of the fractional-order discrete-time dynamical network system model with impulsive couplings | |
US20100205075A1 (en) | Large-scale item affinity determination using a map reduce platform | |
TW201737069A (en) | Method and system for generating queue based applications dependencies in virtual machines | |
JP5655718B2 (en) | Conversion processing method, apparatus and program, restoration processing method, apparatus and program | |
US20160342899A1 (en) | Collaborative filtering in directed graph | |
JP6032019B2 (en) | Matrix update method, program and apparatus, and matrix expansion method, program and apparatus | |
JP2012195733A (en) | Secret analysis processing method, program and device | |
Jia et al. | Some Remarks on Estimate of Mittag‐Leffler Function | |
JP6972783B2 (en) | Distributed systems, back-end services, edge servers, and methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150903 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160624 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160726 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160905 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160927 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161010 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6032019 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |