WO2020184126A1 - データ置換装置、データ置換方法、プログラム - Google Patents

データ置換装置、データ置換方法、プログラム Download PDF

Info

Publication number
WO2020184126A1
WO2020184126A1 PCT/JP2020/006710 JP2020006710W WO2020184126A1 WO 2020184126 A1 WO2020184126 A1 WO 2020184126A1 JP 2020006710 W JP2020006710 W JP 2020006710W WO 2020184126 A1 WO2020184126 A1 WO 2020184126A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage device
attribute
grouped
attribute value
value
Prior art date
Application number
PCT/JP2020/006710
Other languages
English (en)
French (fr)
Inventor
長谷川 聡
Original Assignee
日本電信電話株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to EP20769038.9A priority Critical patent/EP3940571A4/en
Priority to US17/431,719 priority patent/US20220138338A1/en
Priority to CN202080019714.0A priority patent/CN113544684A/zh
Priority to JP2021504879A priority patent/JP7173282B2/ja
Publication of WO2020184126A1 publication Critical patent/WO2020184126A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification

Definitions

  • the present invention relates to a technique for concealing individual data on a database, and relates to a data replacement device, a data replacement method, and a program.
  • Non-Patent Document 1 is a technique for concealing individual data in a database by a deterministic method. In the concealment processing of Non-Patent Document 1, each value of the database is grouped and replaced with a representative value to conceal the database. This concealment process is called microaggregation.
  • this concealment processing is realized by a computer such as a personal computer, it is a prerequisite that the processing is performed after all the data is retained in the main storage device. That is, it is not possible to perform microaggregation on large-scale data that does not fit on the main storage device.
  • an object of the present invention is to provide a data replacement device capable of high-speed microaggregation of large-scale data by using only a small-capacity main storage device.
  • the data replacement device of the present invention is a data replacement device that replaces attribute values with representative values for each group, and includes an attribute value set acquisition unit, a median value calculation unit, and a division determination unit.
  • the attribute value set acquisition unit acquires the grouped attribute value set on the main memory and the grouped attribute values.
  • the attribute value set grouped on the auxiliary storage device is acquired.
  • the median calculation unit calculates the median value of the attribute value set grouped on the main storage device or the auxiliary storage device.
  • the division determination unit divides the attribute value set grouped based on the median into two, and when the size of each of the divided attribute value sets is equal to or larger than a predetermined threshold value, the divided attribute value set is divided into two. Let each of the two attribute value sets be a new group.
  • large-scale data can be micro-aggregated at high speed by using only a small-capacity main storage device.
  • FIG. 1 The block diagram which shows the structure of the data replacement apparatus of Example 1.
  • FIG. The flowchart which shows the group generation operation of the data replacement apparatus of Example 1.
  • FIG. The flowchart which shows the data replacement operation of the data replacement apparatus of Example 1.
  • FIG. The figure which illustrates the look-ahead processing.
  • a data replacement device, a data replacement method, and a program for high-speed microaggregation of large-scale data in a small-capacity main storage device are disclosed.
  • the data replacement device, data replacement method, and program of the first embodiment are characterized in that sequential access (continuous access) is faster than random access of an auxiliary storage device (for example, HDD), and the auxiliary storage device (for example, HDD) is mainly used.
  • the algorithm and data structure are devised in consideration of the feature that it is slower than the storage device (for example, memory) and the feature that the auxiliary storage device (for example, HDD) has a larger storage capacity than the main storage device (for example, memory). As a result, high-speed processing was realized.
  • the Mondrian algorithm (Non-Patent Document 1) is used as a base as a method for creating a group for microaggregation.
  • the Mondrian algorithm groups by dividing the data for each attribute, and repeatedly divides the data until the size of the group reaches the specified threshold value to create a group. After grouping, the concealment process is completed by replacing the attribute values in the group with the corresponding representative values.
  • Two approaches are used to execute the Mondrian algorithm using only small-capacity main memory.
  • One is an approach in which data is arranged in the main storage device by the LRU algorithm on the assumption that the data to be arranged on the auxiliary storage device is locally referred to when the data division is repeated.
  • the other is an approach in which sorting processing is performed and attribute values are sequentially read out so that random access does not occur when replacing with a representative value after grouping.
  • each value is written as a scalar and is written in lowercase or uppercase letters like a.
  • the attribute is expressed as a vector, and " ⁇ " is added after the character like a ⁇ .
  • this is an expression due to the convenience of the document creation software, for example, when expressing it as a ⁇ , a circumflex is attached to the bold type.
  • the i-th element of the vector is written as a i .
  • the number of elements of the vector a ⁇ is expressed as
  • r ⁇ (r 1 , r 2 , ..., r
  • ) is a positive integer.
  • Data can be represented by a matrix, with attributes as columns and records as rows. For example, let the data be X ⁇ , the l-th attribute be x ⁇ l , and the value of the i-th record of a certain attribute l be x (l) i .
  • the data replacement device 1 of this embodiment includes a main storage device 10A, an auxiliary storage device 10B, an attribute value set acquisition unit 11, a median value calculation unit 12, and a division determination unit 13.
  • the combination set generation unit 14, the rearrangement unit 15, the representative value replacement unit 16, and the rearrangement unit 17 are included.
  • the operation of each configuration requirement will be described with reference to FIGS. 2 and 3.
  • the attribute value set acquisition unit 11 acquires the grouped attribute value set.
  • the attribute value set grouped here is assumed to be an attribute value set divided and grouped by the operation of the division determination unit 13 described later. Further, when the operation of the division determination unit 13 is not executed (that is, the initial state), the entire data of the attribute value set is regarded as one group, and the entire data of the attribute value set is regarded as a grouped attribute value set. It shall be handled.
  • the attribute value set acquisition unit 11 When the size of the grouped attribute value set is less than or equal to a predetermined size (FIG. 2, conditional branch: size? ⁇ Small), the attribute value set acquisition unit 11 is grouped on the main storage device 10A. When the size of the grouped attribute value set is larger than the predetermined size (FIG. 2, conditional branch: size? ⁇ Large), the attribute value set is acquired (S11a), and is placed on the auxiliary storage device 10B. Acquire a grouped attribute value set (S11b).
  • the attribute value set acquisition unit 11 updates the grouped attribute value set acquired on the main storage device 10A based on the LRU algorithm.
  • the median value calculation unit 12 calculates the median value of the attribute value set grouped on the main storage device 10A or the auxiliary storage device 10B (S12a, S12b).
  • ⁇ Division determination unit 13 When the division determination unit 13 divides the attribute value set grouped based on the median into two, the size of each of the divided attribute value sets is equal to or larger than a predetermined threshold value (FIG. 2, condition). Branching: threshold value? ⁇ threshold value or higher), each of the two attribute value sets after division is set as a new group (S13a, S13b). If any size of the attribute value set after division is less than a predetermined threshold value (FIG. 2, conditional branch: threshold value? ⁇ less than threshold value), the loop processing in steps S11 to S13 is performed. The process after step S14 is continued for the attribute value set before the division.
  • a predetermined threshold value Fidelity
  • ⁇ Combination set generator 14> As shown in FIG. 3, the combined set generation unit 14 within the group converged by repeatedly executing the processes (S11 to S13) of the attribute value set acquisition unit 11, the median value calculation unit 12, and the division determination unit 13.
  • a combined set is generated by arranging the record numbers associated with the attribute values so that the attribute values of are continuous (S14). For example, if group P has attribute values p1, p2,..., p
  • the sorting unit 15 sorts the attribute values on the auxiliary storage device 10B based on the combined set (S15).
  • the representative value replacement unit 16 sequentially executes a process of acquiring a part of the sorted attribute values from the auxiliary storage device 10B on the main storage device 10A, and sequentially executes the process of acquiring the attribute values acquired on the main storage device 10A as the representative value. Replace with (S16).
  • the attribute value set on the auxiliary storage device 10B is sorted so that the attribute values in the group are continuous, when the attribute value is replaced with the representative value, the attribute value is changed from the auxiliary storage device 10B. It can be read sequentially, improving processing speed.
  • the rearrangement unit 17 moves the representative values to the auxiliary storage device 10B and rearranges them in the original order (S17).
  • (see Fig. 4C). [2]: Sort using b ⁇ as a key (see Fig. 4D). [3]: Sort using a ⁇ as a key (see Fig. 4E). [4]: return a ⁇ ' a ⁇
  • ⁇ Algorithm 5 Value acquisition by look-ahead algorithm ⁇
  • Input Vector a ⁇ placed on auxiliary storage 10B, position i of the element to be referenced, vector c ⁇ on main storage 10A
  • Output Value a i [1]: if the i-th element does not exist in c ⁇ then [2]: The i +
  • FIG. 5 shows an example of the look-ahead processing executed by the algorithm 5.
  • the main storage device 10A can hold up to two elements. First, as shown in FIG. 5A, when the value of the 0th index is accessed, the values of the 0th and 1st indexes are transferred to the main storage device 10A, and the value of the 0th index of the main storage device 10A is acquired. .. Next, when the value of the first index is accessed, the data is read from the main storage device 10A.
  • the values of the second and third indexes from the auxiliary storage device 10B are set to the main storage device 10A.
  • the value of the 0th index in the main storage device 10A (corresponding to the second value in the auxiliary storage device 10B) is read out. Assuming continuous access in this way, when reading data from the auxiliary storage device 10B, a look-ahead process is executed.
  • the data replacement device, data replacement method, and program of this embodiment it is possible to efficiently perform microaggregation of large-scale data. Since the algorithm of the main storage device is designed on the premise of random access, the execution speed drops as soon as the algorithm of the main storage device is directly ported to the operation of the auxiliary storage device. Therefore, in this embodiment, considering that the database is arranged on the auxiliary storage device 10B, the auxiliary storage device 10B is accessed sequentially as much as possible, and the auxiliary storage device 10B is accessed as much as possible. The algorithm was designed to reduce access.
  • the processing is changed depending on whether the data (attribute value set) fits in the designated area of the main storage device 10A, and if it does not fit, the auxiliary storage device 10B can be sequentially accessed to speed up the process. I'm trying.
  • sorting is performed in advance so that the auxiliary storage device 10B can be accessed sequentially.
  • the device of the present invention is, for example, as a single hardware entity, an input unit to which a keyboard or the like can be connected, an output unit to which a liquid crystal display or the like can be connected, and a communication device (for example, a communication cable) capable of communicating outside the hardware entity.
  • a communication device for example, a communication cable
  • Connectable communication unit CPU (Central Processing Unit, cache memory and registers may be provided), memory RAM and ROM, hard disk external storage device and their input unit, output unit, communication unit , CPU, RAM, ROM, has a connecting bus so that data can be exchanged between external storage devices.
  • the hardware entity may be provided with a device (drive) capable of reading and writing a recording medium such as a CD-ROM.
  • a general-purpose computer or the like is a physical entity equipped with such hardware resources.
  • the external storage device of the hardware entity stores the program required to realize the above-mentioned functions and the data required for processing this program (not limited to the external storage device, for example, reading a program). It may be stored in a ROM, which is a dedicated storage device). Further, the data obtained by the processing of these programs is appropriately stored in a RAM, an external storage device, or the like.
  • each program stored in the external storage device (or ROM, etc.) and the data necessary for processing each program are read into the memory as needed, and are appropriately interpreted, executed, and processed by the CPU. ..
  • the CPU realizes a predetermined function (each configuration requirement represented by the above, ... Department, ... means, etc.).
  • the present invention is not limited to the above-mentioned embodiments, and can be modified as appropriate without departing from the spirit of the present invention. Further, the processes described in the above-described embodiment are not only executed in chronological order according to the order described, but may also be executed in parallel or individually depending on the processing capacity of the device that executes the processes or if necessary. ..
  • the processing function in the hardware entity (device of the present invention) described in the above embodiment is realized by a computer
  • the processing content of the function that the hardware entity should have is described by a program. Then, by executing this program on the computer, the processing function in the hardware entity is realized on the computer.
  • the program that describes this processing content can be recorded on a computer-readable recording medium.
  • the computer-readable recording medium may be, for example, a magnetic recording device, an optical disk, a photomagnetic recording medium, a semiconductor memory, or the like.
  • a magnetic recording device a hard disk device, a flexible disk, a magnetic tape, etc.
  • an optical disc a DVD (Digital Versatile Disc), a DVD-RAM (Random Access Memory), a CD-ROM (Compact Disc Read Only).
  • CD-R Recordable
  • RW ReWritable
  • magneto-optical recording media MO (Magneto-Optical disc), etc., as semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory), etc. Can be used.
  • Distribution of this program is performed by selling, transferring, or lending a portable recording medium such as a DVD or a CD-ROM in which the program is recorded. Further, the program may be stored in the storage device of the server computer, and the program may be distributed by transferring the program from the server computer to another computer via a network.
  • a computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. Then, at the time of executing the process, the computer reads the program stored in its own recording medium and executes the process according to the read program. Further, as another execution form of this program, a computer may read the program directly from a portable recording medium and execute processing according to the program, and further, the program is transferred from the server computer to this computer. It is also possible to execute the process according to the received program one by one each time.
  • ASP Application Service Provider
  • the program in this embodiment includes information used for processing by a computer and equivalent to the program (data that is not a direct command to the computer but has a property of defining the processing of the computer, etc.).
  • the hardware entity is configured by executing a predetermined program on the computer, but at least a part of these processing contents may be realized in terms of hardware.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

小容量の主記憶装置のみを用いて、大規模データを高速にミクロアグリゲーションできるデータ置換装置を提供する。属性値をグループごとに代表値に置き換えるデータ置換装置であって、グループ化された属性値集合のサイズが予め定めたサイズ以下である場合には、主記憶装置上にグループ化された属性値集合を取得し、グループ化された属性値集合のサイズが予め定めたサイズよりも大きい場合には、補助記憶装置上にグループ化された属性値集合を取得する属性値集合取得部と、主記憶装置上、または補助記憶装置上でグループ化された属性値集合の中央値を算出する中央値算出部と、中央値に基づいてグループ化された属性値集合を二分割した場合に、分割後の属性値集合のそれぞれのサイズが所定のしきい値以上となる場合に、分割後の二つの属性値集合それぞれを新たなグループとする分割判定部を含む。

Description

データ置換装置、データ置換方法、プログラム
 本発明は、データベース上の個別データを秘匿する技術に関し、データ置換装置、データ置換方法、プログラムに関する。
 データベースの個別データを確定的手法により秘匿する技術として、非特許文献1がある。非特許文献1の秘匿処理では、データベースの各値をグループ化し、代表値に置き換えることで、データベースの秘匿処理を行う。この秘匿処理をミクロアグリゲーションと言う。
Kristen LeFevre, David J DeWitt, and Raghu Ramakrishnan, "Mondrian multidimensional k-anonymity" In Proceedings of the 22nd International Conference on Data Engineering, pp. 25-25, 2006.
 しかしながらこの秘匿処理をパーソナルコンピュータ等の計算機で実現する場合、主記憶装置上に全データを保持した上で処理を行うことが前提となる。すなわち、主記憶装置上に収まりきらない大規模なデータに対してミクロアグリゲーションを実行することができない。
 そこで本発明では、小容量の主記憶装置のみを用いて、大規模データを高速にミクロアグリゲーションできるデータ置換装置を提供することを目的とする。
 本発明のデータ置換装置は、属性値をグループごとに代表値に置き換えるデータ置換装置であって、属性値集合取得部と、中央値算出部と、分割判定部を含む。
 属性値集合取得部は、グループ化された属性値集合のサイズが予め定めたサイズ以下である場合には、主記憶装置上にグループ化された属性値集合を取得し、グループ化された属性値集合のサイズが予め定めたサイズよりも大きい場合には、補助記憶装置上にグループ化された属性値集合を取得する。中央値算出部は、主記憶装置上、または補助記憶装置上でグループ化された属性値集合の中央値を算出する。分割判定部は、中央値に基づいてグループ化された属性値集合を二分割した場合に、分割後の属性値集合のそれぞれのサイズが所定のしきい値以上となる場合に、分割後の二つの属性値集合それぞれを新たなグループとする。
 本発明のデータ置換装置によれば、小容量の主記憶装置のみを用いて、大規模データを高速にミクロアグリゲーションできる。
実施例1のデータ置換装置の構成を示すブロック図。 実施例1のデータ置換装置のグループ生成動作を示すフローチャート。 実施例1のデータ置換装置のデータ置換動作を示すフローチャート。 実施例1のデータ置換装置の並び替え部の動作を例示して説明する図。 先読み処理を例示する図。
 以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
<処理の概要>
 以下の実施例では、大規模データを小容量の主記憶装置で高速にミクロアグリゲーショするデータ置換装置、データ置換方法、プログラムを開示する。実施例1のデータ置換装置、データ置換方法、プログラムは、補助記憶装置(例えばHDD)のランダムアクセスと比較してシーケンシャルアクセス(連続アクセス)のほうが速いという特徴、補助記憶装置(例えばHDD)が主記憶装置(例えばメモリ)と比較して遅いという特徴、補助記憶装置(例えばHDD)が主記憶装置(例えばメモリ)と比べて記憶容量が大きいという特徴を考慮して、アルゴリズムとデータ構造を工夫することで、高速な処理を実現した。
 以下の実施例では、ミクロアグリゲーションのためのグループを作成する手法としてMondrianアルゴリズム(非特許文献1)をベースとして用いる。Mondrianアルゴリズムは、各属性ごとにデータの分割を行うことでグループ化を行い、そのグループのサイズが指定したしきい値になるまで繰り返しデータを分割して、グループを作成する。グループ化後、グループ内の属性値を対応する代表値に置き換えることで、秘匿処理を完了する。
 小容量の主記憶装置のみを用いて、Mondrianアルゴリズムを実行するにあたり、2つのアプローチを用いる。1つは、データの分割を繰り返す際に、補助記憶装置上に配置するデータが局所参照されることを想定し、LRUアルゴリズムによる主記憶装置へのデータ配置を行うアプローチである。もう1つは、グループ化後に代表値への置き換えの際にランダムアクセスにならないように、ソート処理を行い属性値をシーケンシャルに読み出すための処理を施すアプローチである。
 なお、各値をスカラとして表記することとしaのように小文字もしくは大文字のアルファベットで表記する。属性をベクトルとして表記することとしa^のように文字の後ろに「^」を付与する。なお、これは文書作成ソフトの都合による表現であり、例えばa^と表現する場合、ボールド体にサーカムフレックスを付した
Figure JPOXMLDOC01-appb-M000001
を意味する。なおベクトルのi番目の要素はaiと表記することとする。加えてベクトルa^の要素数を|a^|と表記することとする。加えて、ベクトルr^=(r1,r2,...,r|r|)の各値が正の整数の場合に限り、
Figure JPOXMLDOC01-appb-M000002
とする。行列を大文字かつ、文字の後ろに「^」を付与して表現する。なお、これは文書作成ソフトの都合による表現であり、例えばX^と表現する場合、ボールド体にサーカムフレックスを付した
Figure JPOXMLDOC01-appb-M000003
を意味する。データは行列で表現できるものとし、属性を列、レコードを行とする。例えばデータをX^とし、l番目の属性をx^l、ある属性lのi番目のレコードの値をx(l) iと表記することとする。
 以下、図1を参照して実施例1のデータ置換装置の構成を説明する。同図に示すように、本実施例のデータ置換装置1は、主記憶装置10Aと、補助記憶装置10Bと、属性値集合取得部11と、中央値算出部12と、分割判定部13と、結合集合生成部14と、並び替え部15と、代表値置換部16と、再並び替え部17を含む。以下、図2、図3を参照して、各構成要件の動作を説明する。
<属性値集合取得部11>
 この手順において、属性値集合取得部11は、グループ化された属性値集合を取得する。ここでグループ化された属性値集合とは、後述する分割判定部13の動作により分割されてグループ化された属性値集合であるものとする。また、分割判定部13の動作が未実行(すなわち初期状態)である場合には、属性値集合のデータ全体を一つのグループとみなし、属性値集合のデータ全体をグループ化された属性値集合として取り扱うものとする。
 属性値集合取得部11は、グループ化された属性値集合のサイズが予め定めたサイズ以下である場合(図2、条件分岐:サイズ?→小)には、主記憶装置10A上にグループ化された属性値集合を取得し(S11a)、グループ化された属性値集合のサイズが予め定めたサイズよりも大きい場合(図2、条件分岐:サイズ?→大)には、補助記憶装置10B上にグループ化された属性値集合を取得する(S11b)。
 なお、前述したように、属性値集合取得部11は、主記憶装置10A上に取得したグループ化された属性値集合をLRUアルゴリズムに基づいて更新すれば好適である。
<中央値算出部12>
 中央値算出部12は、主記憶装置10A上、または補助記憶装置10B上でグループ化された属性値集合の中央値を算出する(S12a,S12b)。
<分割判定部13>
 分割判定部13は、中央値に基づいてグループ化された属性値集合を二分割した場合に、分割後の属性値集合のそれぞれのサイズが所定のしきい値以上となる場合(図2、条件分岐:しきい値?→しきい値以上)に、分割後の二つの属性値集合それぞれを新たなグループとする(S13a,S13b)。なお、分割後の属性値集合のいずれかのサイズが所定のしきい値未満となる場合(図2、条件分岐:しきい値?→しきい値未満)は、ステップS11~S13のループ処理から外れ、分割前の属性値集合に対してステップS14以降の処理が続行される。
 グループが収束するまで、属性値集合取得部11と、中央値算出部12と、分割判定部13の処理(S11~S13)は繰り返し実行される。
<結合集合生成部14>
 図3に示すように、結合集合生成部14は、属性値集合取得部11と、中央値算出部12と、分割判定部13の処理(S11~S13)を繰り返し実行することにより収束したグループ内の属性値が連続するように属性値に紐つけられたレコード番号を配列してなる結合集合を生成する(S14)。例えばグループPに属性値p1,p2,…,p|P|があり、グループQに属性値q1,q2,…,q|Q|がある場合、「グループ内の属性値が連続するように」とは、p1,p2,…,p|P|,q1,q2,…,q|Q|、あるいは、q1,q2,…,q|Q|,p1,p2,…,p|P|のように、あるグループ内の属性値が他のグループ内の属性値と混ざらない並びにすることを意味し、結合集合生成部14は、上述した「グループ内の属性値が連続するような」並びが再現できるように、属性値に紐つけられたレコード番号を配列して結合集合を生成する。
<並び替え部15>
 並び替え部15は、結合集合に基づいて補助記憶装置10B上の属性値を並び替える(S15)。
<代表値置換部16>
 代表値置換部16は、並び替えた属性値の一部を補助記憶装置10Bから主記憶装置10A上に取得する処理をシーケンシャルに実行し、主記憶装置10A上に取得された属性値を代表値に置き換える(S16)。
 上述したように、補助記憶装置10B上の属性値集合は、グループ内の属性値が連続するように並び替えが行われているため、代表値に置き換える際に、補助記憶装置10Bから属性値をシーケンシャルに読み込むことができ、処理速度が向上する。
<再並び替え部17>
 再並び替え部17は、代表値を補助記憶装置10Bに移動して、元の順序に並び替える(S17)。
 以下、具体的なアルゴリズムの例を開示して、上述のステップについて更に説明する。
≪アルゴリズム1:大規模データグループ化アルゴリズムGROUP≫
Input:レコード数N、属性数M、補助記憶装置10B上に格納されたデータD^、しきい値k、レコード番号集合r^、主記憶装置10A上で用いるM個の属性ベクトル集合A^=a^1,...,a^M(M種類の属性にそれぞれ対応)
Output:グループごとのレコード番号集合R^'=(r^1,...,r^|R^'|)
[1]:分割対象の属性lを決定する。
[2]:if |r^|≦|a^l| then(図2、条件分岐:サイズ?→小に相当)
[3]:分割対象の属性lのうち、レコード番号集合r^に該当する属性値集合d^(l) rを、アルゴリズム4(後述)により、主記憶装置10A上のベクトルa^lに取得する(S11aに相当)。
[4]:d^(l) rの中央値mを算出する(a^lから算出する、S12aに相当)。
[5]:d^(l) rのm未満のレコード番号集合をlr^、m以上のレコード番号集合をrr^とする(S13aに相当)。
[6]:else(図2、条件分岐:サイズ?→大に相当)
[7]:分割対象の属性lのうち、レコード番号集合r^に該当する属性値集合d^(l) rを、補助記憶装置10Bに連続に配置する(S11bに相当)。ここで、「連続に配置」とは他のデータを挟まないようにデータを連続に配置することを意味する。
[8]:d^(l) rの中央値mを算出する(S12bに相当)。その際、各値へのアクセスは、アルゴリズム5(後述)より行う。なお、中央値の計算は、ベクトルを外部ソート(例えばマージソート)し、ベクトルの中間の値を中央値として計算するようにする。
[9]:d^(l) rのm未満のレコード番号集合をlr^、m以上のレコード番号集合をrr^とする(S13bに相当)。
[10]:end if
[11]:if |lr^| < k OR |rr^| < k then(図2、条件分岐:しきい値?→しきい値未満に相当)
[12]:return r(図2、しきい値未満→*に相当)
[13]:else(図2、条件分岐:しきい値?→しきい値以上に相当)
[14]:return GROUP(D^,k,lr^,A^)∪GROUP(D^,k,rr^,A^)(図2、スタートに戻り、ループする処理に相当)
[15]:end if
≪アルゴリズム2:代表値置換アルゴリズム≫
Input:グループごとのレコード集合R^'、補助記憶装置10Bに格納されたデータD^
Output:代表値に置き換わったD^'
[1]:グループごとのレコード番号集合R^'={r^'1,r^'2,...}を順番に並べて結合した集合
(結合集合)をs^とする(S14に相当)。
[2]:アルゴリズム3(後述)に従い結合集合s^の順にデータD^を並び替える(S15に相当)。
[3]:j=1
[4]:for r^'i in R^' do
[5]:j番目からj + |r^'i| - 1番目のレコードを補助記憶装置10Bに格納されているD^から主記憶装置10A上に格納し、代表値(例えば平均値、中央値、利用者の指定した値など)に置き換え、D^'に順次格納する(S16に相当)。
[6]:j = j + |r^'i|
[7]:end for
[8]:D^'を元の順序に並び替える(S17に相当)。
[9]:return D^'
≪アルゴリズム3:並び順を変えるアルゴリズム≫
Input:補助記憶装置10B上に配置されたベクトルa^、並べ替えたい順番s^
Output:並び替えられたa^'
[1]:b^=1,2,...,|a^|を用意する(図4C参照)。
[2]:b^をs^をキーにしてソートを行う(図4D参照)。
[3]:a^をb^をキーにしてソートを行う(図4E参照)。
[4]:return a^' = a^
≪アルゴリズム4:LRUアルゴリズムによる値取得≫
Input:補助記憶装置10B上に配置されたデータD^、参照する属性l、レコード番号ri、主記憶装置10A上のベクトルt^
Output:
Figure JPOXMLDOC01-appb-M000004
[1]:if t^に空きがある場合 then
[2]:補助記憶装置10Bから該当する値
Figure JPOXMLDOC01-appb-M000005
をt^に格納する。
[3]:else
[4]:if
Figure JPOXMLDOC01-appb-M000006
がd^に存在しない場合 then
[5]:d^の中から最も利用されていない要素と
Figure JPOXMLDOC01-appb-M000007
を入れ替える。
[6]:end if
[7]:end if
[8]:return t^内の
Figure JPOXMLDOC01-appb-M000008
≪アルゴリズム5:先読みアルゴリズムによる値取得≫
Input:補助記憶装置10B上に配置されたベクトルa^、参照したい要素の位置i、主記憶装置10A上のベクトルc^
Output:値ai
[1]:if i番目の要素がc^に存在しない場合 then
[2]:i番目からi+|c^|番目の要素を補助記憶装置10Bから取得し、c^に格納する。
[3]:end if
[4]:return c^内のai
 図5に、アルゴリズム5で実行される先読み処理の例を示す。同図に示すように、年齢=18,23,34,13という属性値が補助記憶装置10Bに格納されている場合、それらを順次主記憶装置10A上に読み出すことを想定する。同図の例では、主記憶装置10Aは2個の要素までを保持できるものとする。まず図5Aに示すように、0番目のindexの値にアクセスした際、0及び1番目のindexの値を主記憶装置10Aに転送し、主記憶装置10Aの0番目のindexの値を取得する。次に1番目のindexの値にアクセスした場合は、主記憶装置10Aからデータを読み取る。その後2番目のindexの値にアクセスした場合は、主記憶装置10Aに該当データが存在しないため、図5Bに示すように、補助記憶装置10Bから2及び3番目のindexの値を主記憶装置10Aに転送し、主記憶装置10A中の0番目のindexの値(補助記憶装置10B中の2番目に該当)を読み出す。このように連続アクセスを想定し、補助記憶装置10Bからデータを読み出す際は、先読み処理を実行する。
<効果>
 本実施例のデータ置換装置、データ置換方法、プログラムによれば、大規模なデータのミクロアグリゲーションを効率良く実行することができる。主記憶装置は、ランダムアクセス前提でアルゴリズムが設計されているため、主記憶装置のアルゴリズムをそのまま補助記憶装置の動作に移植すると途端に実行速度が低下する。そこで本実施例では、補助記憶装置10B上にデータベースが配置されていることを考慮し、可能な限り補助記憶装置10Bにシーケンシャルにアクセスがなされるように、かつ可能な限り補助記憶装置10Bへのアクセスを減らすように、アルゴリズムを設計したことである。例えばアルゴリズム1では、主記憶装置10Aの指定領域にデータ(属性値集合)が収まるか収まらないかにより、処理を変え、収まらない場合は、補助記憶装置10Bにシーケンシャルアクセスできるようにし、高速化を図っている。アルゴリズム2では、ソートを予め実施しておくことにより、補助記憶装置10Bへシーケンシャルにアクセスできるようにしている。
<補記>
 本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD-ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
 ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
 ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成要件)を実現する。
 本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
 既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
 この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD-RAM(Random Access Memory)、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP-ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
 また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
 また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (7)

  1.  属性値をグループごとに代表値に置き換えるデータ置換装置であって、
     グループ化された属性値集合のサイズが予め定めたサイズ以下である場合には、主記憶装置上にグループ化された前記属性値集合を取得し、グループ化された前記属性値集合のサイズが予め定めたサイズよりも大きい場合には、補助記憶装置上にグループ化された前記属性値集合を取得する属性値集合取得部と、
     主記憶装置上、または補助記憶装置上でグループ化された前記属性値集合の中央値を算出する中央値算出部と、
     前記中央値に基づいてグループ化された前記属性値集合を二分割した場合に、分割後の前記属性値集合のそれぞれのサイズが所定のしきい値以上となる場合に、分割後の二つの前記属性値集合それぞれを新たな前記グループとする分割判定部を含む
     データ置換装置。
  2.  請求項1に記載のデータ置換装置であって、
     前記属性値集合取得部と、前記中央値算出部と、前記分割判定部の処理を繰り返し実行することにより収束した前記グループ内の前記属性値が連続するように前記属性値に紐つけられたレコード番号を配列してなる結合集合を生成する結合集合生成部と、
     前記結合集合に基づいて前記補助記憶装置上の前記属性値を並び替える並び替え部と、
     並び替えた前記属性値の一部を前記補助記憶装置から前記主記憶装置上に取得する処理をシーケンシャルに実行し、前記主記憶装置上に取得された前記属性値を前記代表値に置き換える代表値置換部と、
     前記代表値を前記補助記憶装置に移動して、元の順序に並び替える再並び替え部を含む
     データ置換装置。
  3.  請求項1または2に記載のデータ置換装置であって、
     前記属性値集合取得部は、
     前記主記憶装置上に取得したグループ化された前記属性値集合をLRUアルゴリズムに基づいて更新する
     データ置換装置。
  4.  属性値をグループごとに代表値に置き換えるデータ置換装置であって、
     前記グループ内の前記属性値が連続するように前記属性値に紐つけられたレコード番号を配列してなる結合集合を生成する結合集合生成部と、
     前記結合集合に基づいて補助記憶装置上の前記属性値を並び替える並び替え部と、
     並び替えた前記属性値の一部を前記補助記憶装置から主記憶装置上に取得する処理をシーケンシャルに実行し、前記主記憶装置上に取得された前記属性値を前記代表値に置き換える代表値置換部を含む
     データ置換装置。
  5.  属性値をグループごとに代表値に置き換えるデータ置換方法であって、
     グループ化された属性値集合のサイズが予め定めたサイズ以下である場合には、主記憶装置上にグループ化された前記属性値集合を取得し、グループ化された前記属性値集合のサイズが予め定めたサイズよりも大きい場合には、補助記憶装置上にグループ化された前記属性値集合を取得する属性値集合取得ステップと、
     主記憶装置上、または補助記憶装置上でグループ化された前記属性値集合の中央値を算出する中央値算出ステップと、
     前記中央値に基づいてグループ化された前記属性値集合を二分割した場合に、分割後の前記属性値集合のそれぞれのサイズが所定のしきい値以上となる場合に、分割後の二つの前記属性値集合それぞれを新たな前記グループとする分割判定ステップを含む
     データ置換方法。
  6.  属性値をグループごとに代表値に置き換えるデータ置換方法であって、
     前記グループ内の前記属性値が連続するように前記属性値に紐つけられたレコード番号を配列してなる結合集合を生成する結合集合生成ステップと、
     前記結合集合に基づいて補助記憶装置上の前記属性値を並び替える並び替えステップと、
     並び替えた前記属性値の一部を前記補助記憶装置から主記憶装置上に取得する処理をシーケンシャルに実行し、前記主記憶装置上に取得された前記属性値を前記代表値に置き換える代表値置換ステップを含む
     データ置換方法。
  7.  コンピュータを請求項1から4の何れかに記載のデータ置換装置として機能させるプログラム。
PCT/JP2020/006710 2019-03-11 2020-02-20 データ置換装置、データ置換方法、プログラム WO2020184126A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP20769038.9A EP3940571A4 (en) 2019-03-11 2020-02-20 DATA SUBSTITUTION DEVICE, DATA SUBSTITUTION METHOD AND PROGRAM
US17/431,719 US20220138338A1 (en) 2019-03-11 2020-02-20 Data replacement apparatus, data replacement method, and program
CN202080019714.0A CN113544684A (zh) 2019-03-11 2020-02-20 数据置换装置、数据置换方法、程序
JP2021504879A JP7173282B2 (ja) 2019-03-11 2020-02-20 データ置換装置、データ置換方法、プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-043663 2019-03-11
JP2019043663 2019-03-11

Publications (1)

Publication Number Publication Date
WO2020184126A1 true WO2020184126A1 (ja) 2020-09-17

Family

ID=72427951

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/006710 WO2020184126A1 (ja) 2019-03-11 2020-02-20 データ置換装置、データ置換方法、プログラム

Country Status (5)

Country Link
US (1) US20220138338A1 (ja)
EP (1) EP3940571A4 (ja)
JP (1) JP7173282B2 (ja)
CN (1) CN113544684A (ja)
WO (1) WO2020184126A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140189858A1 (en) * 2012-12-27 2014-07-03 Industrial Technology Research Institute Generation Method and Device for generating anonymous dataset, and method and device for risk evaluation

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5684165B2 (ja) * 2012-02-08 2015-03-11 株式会社日立製作所 個人情報匿名化装置および方法
WO2014006851A1 (ja) * 2012-07-02 2014-01-09 日本電気株式会社 匿名化装置、匿名化システム、匿名化方法、及び、プログラム記録媒体
JP5962472B2 (ja) * 2012-12-03 2016-08-03 富士通株式会社 匿名化データ生成方法、装置及びプログラム
JP5957095B2 (ja) * 2013-01-17 2016-07-27 日本電信電話株式会社 改ざん検知装置、改ざん検知方法、およびプログラム
JP6040320B2 (ja) * 2013-10-10 2016-12-07 日本電信電話株式会社 秘密並列処理装置、秘密並列処理方法、プログラム
JP6174002B2 (ja) * 2014-12-05 2017-08-02 株式会社東芝 匿名化装置、及びプログラム
JP2016115112A (ja) * 2014-12-15 2016-06-23 富士通株式会社 データ匿名化装置、プログラム、及び方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140189858A1 (en) * 2012-12-27 2014-07-03 Industrial Technology Research Institute Generation Method and Device for generating anonymous dataset, and method and device for risk evaluation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HASEGAWA, SATOSHI: "Design and evaluation of a practically efficient anonymization library for large scale data), non- official translation", PROCEEDINGS OF CSS2017 COMPUTER SECURITY SYMPOSIUM 2017, vol. 2017, no. 2, 16 October 2017 (2017-10-16), pages 1342 - 1349, XP055685071 *
JUNYA ABAI, MAKOTO ONIZUKA, HIROAKI SHIOKAWA: "Efficient k-anonymization by combining clustering and space partitionina", DBSJ JAPANESE JOURNAL, vol. 13, no. 1, 31 October 2014 (2014-10-31), pages 72 - 77, XP009529900, ISSN: 2189-0366 *

Also Published As

Publication number Publication date
US20220138338A1 (en) 2022-05-05
EP3940571A4 (en) 2022-12-07
JPWO2020184126A1 (ja) 2021-12-16
EP3940571A1 (en) 2022-01-19
JP7173282B2 (ja) 2022-11-16
CN113544684A (zh) 2021-10-22

Similar Documents

Publication Publication Date Title
CN110262922A (zh) 基于副本数据日志的纠删码更新方法及系统
Grossman et al. On the varieties of clouds for data intensive computing.
Gladyshev et al. Finite state machine analysis of a blackmail investigation
Silva et al. Integrating big data into the computing curricula
JP6605746B2 (ja) 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム
Chen et al. aHDFS: an erasure-coded data archival system for hadoop clusters
Liu et al. A tool for moving blockchain computations off-chain
CN103150145A (zh) 数据仓库环境中的语义分组数据的并行处理
JP7120439B2 (ja) データ一般化装置、データ一般化方法、プログラム
CN100501737C (zh) 用于内容受管制的数据的数据库方案及其创建方法和系统
WO2020184126A1 (ja) データ置換装置、データ置換方法、プログラム
Reeves et al. Propositional proof skeletons
Crema et al. Spectral projected subgradient with a momentum term for the Lagrangean dual approach
CN111444197A (zh) 一种块链式账本中数据记录的验证方法、装置及设备
Li et al. Enabling Fast 2-bit LLM on GPUs: Memory Alignment, Sparse Outlier, and Asynchronous Dequantization
US11972021B2 (en) Anonymization apparatus, anonymization method, and program
JP5875535B2 (ja) 匿名化装置、匿名化方法、プログラム
WO2023233622A1 (ja) 秘密計算装置、秘密計算方法、プログラム
US20240089085A1 (en) Fully Homomorphic Encryption Transpiler for High-level Languages
JP7290169B2 (ja) 識別推定リスク評価装置、識別推定リスク評価方法、プログラム
WO2024018504A1 (ja) クライアント装置、秘密テーブル管理システム、レコード登録要求生成方法、レコード登録方法、処理要求実行方法、プログラム
WO2023058151A1 (ja) サブグラフマッチング装置、サブグラフマッチング方法、プログラム
Liu et al. On and Off-Chain Consistency Protocol for Multi-Attribute Assets Based on Data Property Rights
Kranas et al. Simplifying and Accelerating Data Pipelines in Digital Finance and Insurance Applications
KR20210114818A (ko) 하이브리드 블록체인 생성 방법 및 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20769038

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021504879

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020769038

Country of ref document: EP

Effective date: 20211011