This application claims the priority of Japanese patent application number 2012-124731, filed on May 31, 2012, now issued as Japanese Patent No. JP5137046, granted on Nov. 22, 2012, the entire contents of which are incorporated herein by reference.
The invention relates to protection of information in distributing series data.
Technologies for protecting information are known.
The invention provides protection of information communicated between plural applications.
According to one aspect of the invention, there is provided an information-processing device including: an exchanging unit configured to exchange data between a plurality of applications; a receiving unit configured to receive a plurality of data sets that are sequentially distributed, each of the plurality of data sets including at least one sub data set, a plurality of predetermined sub data sets included in a plurality of data sets forming series data; a first generating unit configured to generate, for a first target sub data set, a dummy data set according to a certain probability ratio if the receiving unit receives a data set included in the series data, the dummy data set being different from the first target sub data set, the first target sub data set being a sub data set to be processed and selected from the at least one sub data set; a second generating unit configured to generate authentication information based on a second target sub data set, the second target sub data set being a sub data set or a dummy data set to be processed and selected from among the at least one sub data set and the generated sub data set; and a first providing unit that provides data via the exchanging unit, the data including the second target sub data and the authentication information generated by the second generating unit.
Exemplary embodiments will be described with reference to the following drawings, wherein:
Sub data sets included in one data set have an attribute in common. For example, sub data sets included in a data set show market information relating to a price of a specific stock. In an example shown in
Each sub data set includes two parameters, for example, a tag and a value. The tag and value each have a value, respectively. The tag shows a category of market information (present price, opening price, highest price, lowest price, and trading volume, for example). If the tag shows “present price” and the value shows “1,000 Japanese yen”, this sub data set shows that the present price of the stock is 1,000 Japanese yen. In
In this example, plural sub data sets corresponding to a specific stock and a specific tag form a set of series data. In an example shown in
Referring to
Client application 52 is a client software program for processing data distributed from server device 10. In this example, client application 52 is a spreadsheet software program (for example, Microsoft Excel™) with an add-on program being provided. Client application 52 obtains a sub data set from data exchanging unit 53, and performs a calculation with the spreadsheet using the received data.
If data exchanging unit 53 can obtain data from any application, like the DDE, a problem may arise as follows. Some services provide market information with fees being paid, and prohibit redistribution of the market information. However, in regard to data exchanging unit 53 like the DDE, a malicious third party (acting against the data distributor) can prepare an application that obtains from data exchanging unit 53 data distributed by server device 10 and automatically redistribute the obtained data to other users. One exemplary embodiment provides protection of data in such a system.
Client device 20 receives data distributed from server device 10 and processes the received data. Client device 20 includes data exchanging unit 21, data receiving unit 22, dummy generating unit 23, authentication information generating unit 24, data providing unit 25, and processing unit 26. Data exchanging unit 21 exchanges data between plural applications. Data receiving unit 22 receives a data set including a sub data set forming a part of series data. Dummy generating unit 23 generates a dummy data set for a target sub data set. The target sub data set is a sub data set to be processed, which is sequentially selected from the at least one sub data set included in the data set received by data receiving unit 22. The generated dummy data set is different from the sub data set based on which the dummy data set is generated. Authentication information generating unit 24 generates authentication information based on a target data set. The target data set is a data set to be processed, which is sequentially selected from the at least one sub data set included in the data set received by data receiving unit 22 and the dummy data set generated by dummy generating unit 23. Data providing unit 25 provides via data exchanging unit 21 the target data set thus processed, to which the authentication information is added.
In this example, dummy generating unit 23 generates a dummy data set(s) at a certain probability ratio if the data receiving unit 22 receives a sub data set which is included in the series data. The probability ratio is determined depending on a source of the series data. It is to be noted that information distributing system 1 may include plural server device 10, although only one server device 10 is shown in
Relaying application 252 receives series data from server device 10, and provides the received data to client application 253 via data exchanging unit 2511. Relaying application 252 includes data receiving unit 2521, dummy generating unit 2522, authentication information generating unit 2523, and data providing unit 2524. Data receiving unit 2521 sequentially receives a data set from server device 10. Dummy generating unit 2522 generates, at a predetermined timing, a dummy data set in a format identical with that of the sub data set included in the series data. Authentication information generating unit 2523 generates for a data set to be processed (hereinafter, the data set is referred to as a “target data set”) authentication information using a predetermined algorithm. The target data set is sequentially selected from among sub data sets included in the data set received by data receiving unit 2521, and dummy data sets generated by dummy generating unit 2522. The authentication information shows whether the target data set is a dummy data set. Data providing unit 252 provides the target data to which the authentication information generated by authentication information generating unit 2523 is added, to data exchanging unit 2511.
Client application 253 obtains the series data from data exchanging unit 2511, and processes the obtained data. Client application 253 includes data obtaining unit 2531, data authenticating unit 2532, data providing unit 2533, and processing unit 2534. Data obtaining unit 2531 obtains a sub data set included in the series data. Data authenticating unit 2532 authenticates the data obtained by data obtaining unit 2531, with a predetermined algorithm. This algorithm corresponds to the algorithm for generating the authentication information by authentication information generating unit 2523. Data providing unit 2533 provides to processing unit 2534 a data set that is authenticated as a valid data set (not a dummy data set). Processing unit 2534 executes a predetermined process with the data provided by data providing unit 2533 (for example, calculation using a spreadsheet and displaying of the results).
Data receiving unit 2521 is an example of data receiving unit 22. Dummy generating unit 2522 is an example of dummy generating unit 23. Authentication information generating unit 2523 is an example of authentication information generating unit 24. Data providing unit 2524 is an example of data providing unit 25. Client application 253 is an example of processing unit 26.
In step S101, relaying application 252 receives a data set D (here, data sets D1 to Dn are generalized as “data set D.” Similarly, the sub data sets are generalized as “sub data set SD.”) Relaying application 252 stores at least one sub data set SD included in the received data set D, sequentially in a FIFO (First In First Out) queue.
In step S102, relaying application 252 generates for each sub data set SD a dummy data set DD if a predetermined condition is satisfied. The condition is, for example, a condition that defines probability ratio r, which is a probability ratio for generating a dummy data set DD, and which has a predetermined value. The probability ratio r corresponds to a ratio of the generated dummy data set DD with the number of sub data sets SD forming series data. For example, in a case that the series data consists of 1,000 sub data sets SD, if 100 dummy data sets DD are generated, probability r is, r=100/1000=0.1. Dummy data set DD is described in a format identical with that of the corresponding sub data set SD. If a dummy data set DD is generated, relaying application 252 stores the generated dummy data set DD in the queue.
In this example, dummy data set DD is generated under a restricted condition. Here, the description is given with an example where the series data shows prices of stocks. In such a case, the series data includes, for example, highest price, present price, and lowest price. If a dummy data set showing the present price is generated at random, the present price may be lower than the lowest price. If the present price is lower than the lowest price, a third party can easily understand that the data is dummy data. Therefore, relaying application 252 generates a dummy data set under a restricted condition, for example, the generated dummy present price should be within a range between the lowest price and the highest price. Relaying application 252 includes a database describing the restricted conditions, and generates a dummy data set with reference to the database.
In step S103, relaying application 252 generates authentication information by using a data set read out from the queue, that is, a sub data set SD or a dummy data set DD and referred to as a “target data set” hereinafter. The authentication information shows whether the target data set is a valid sub data set SD or a dummy data set DD. The algorithm used here is, for example, an algorithm using a hash function. More specifically, relaying application 252 calculates a hash value using a predetermined hash function and a flag showing whether the target data set is dummy data or not. Relaying application 252 uses the calculated hash value as the authentication information.
Referring to
In step S105, relaying application 252 transmits data to client application 253 via the DDE communication. The data transmitted here is data (shown in
In step S106, client application 253 analyzes the received data. Client application 253 generates authentication information by an algorithm identical with that used in step S103, for example. In other words, client application 253 calculates a hash value using a predetermined hash function and a flag showing that the received data set is not dummy data. Client application 253 compares one hash value added to the received data set as the authentication information and another hash value calculated by client application 253 itself. If these two hash values are identical, client application 253 determines that the data set is a valid data set (not a dummy data set). If these two hash values are not identical, client application 253 determines that the data set is a dummy data set.
In step S107, client application 253 executes a predetermined process using a data set that is determined to be a valid data set.
According to information distributing system 1, dummy data sets (data sets that are not included in the series data) are inserted into the series data. Thus, if an application program prepared by a malicious third party accesses relaying application 252 via the DDE, and transfers the obtained data to other users, the transferred data has no value as the series data. On the contrary, client application 253, a valid client application, can identify and remove the dummy data sets. Therefore, client application 253 can process only the valid data sets. Thus, according to information distributing system 1, data distributed by server device 10 can be protected.
The invention is not restricted to the exemplary embodiment described above. Various modifications may be applied to the exemplary embodiment. In the following, some modifications will be described. Two or more modifications may be combined.
In the exemplary embodiment, probability ratio r for generating dummy data set DD is a constant. However, probability ratio r may be changed in accordance with various attributes. Generally, a greater probability ratio r (in other words, a case where dummy data sets are more frequently inserted) provides stronger protection of data. For example, if data is distributed by plural server devices, probability ratio r may be changed depending on from which server device the data is distributed. More specifically, if there are server device A, which charges higher fees, and server device B, which charges lower fees, probability ratio rA for generating dummy data set DD if the data is transmitted from server device A and probability ratio rB for generating dummy data set DD if the data is transmitted from server device B may satisfy a condition of rA>rB. In another example, probability ratio r may be changed depending on an attribute(s) of a user of client device 20. According to modification 1, strength of data protection can be changed in response to various attributes.
An algorithm for generating the authentication information is not restricted to an example described in the exemplary embodiment. For example, relaying application 252 may use a flag showing whether the corresponding data set is a dummy data set encrypted with an encryption key, as the authentication information. In such a case, client application 253 uses a corresponding decryption key so as to decrypt the authentication information. Further, data communicated between relaying application 252 and client application 253 may be encrypted with an encryption key.
Information used for generating the authentication information is not restricted to an example described in the exemplary embodiment. For example, relaying application 252 may generate authentication information by using information depending on client device 20; for example, a system clock provided by OS 251. In such a case, client device 251 includes a providing unit that provides a clock. Relaying application adds clock data showing a clock, as the authentication information. If a difference between a clock shown by the clock data included in the authentication information and another clock obtained by client application 253 itself (system clock is provided from OS 251 to client application 253) is less than or equal to a predetermined threshold, information included in the authentication information and showing whether the corresponding target data set is dummy data or not, is determined to be valid.
Examples of data exchanging unit 21 and processing unit 26 are not restricted to the exemplary embodiment. A software component other than that described in the exemplary embodiment may include functions of data exchanging unit 21 and processing unit 26.
An event that triggers generation of a dummy data set is not restricted to an event of receiving data from server device 10. For example, relaying application 252 may periodically determine whether a dummy data set is to be generated. In such a case, a dummy data set is generated by using data stored in the queue. Further, although only one dummy data set DD is generated from one sub data set SD, plural dummy data sets DD may be generated from one sub data set SD.
Alternatively, generation of a dummy data set may be triggered by an event of establishing a connection between relaying application 252 and client application 253. Although, in
Relationship between data and authentication information is not restricted to an example described in the exemplary embodiment. In the exemplary embodiment, sub data set SD and an item of authentication information correspond on a one-to-one basis. For example, unique authentication information may be given for every data set D.
A method for distributing data from server device 10 is not restricted to an example described in the exemplary embodiment. In the exemplary embodiment, data is distributed using a so-called update system where data sets are distributed if market information is changed. However, server device 10 may distribute data using a so-called request/reply method where a deal data set including plural data sets is distributed if server device 10 receives a request for transmitting data from client device 20. In such a case, relaying application 252 determines whether a dummy data set is to be generated for every data set, and generates a dummy data set depending on the result of the determination. In other words, relaying application 252 may insert plural dummy data sets into a single deal data set.
Data distributed from server device 10 is not restricted to market information. A program executed by CPU 201 may be provided with a computer-readable storage medium such as a magnetic storage medium (magnetic tape, magnetic disk (HDD or FD (Flexible Disk)), and so on), an optical storage medium (optical disk (CD (Compact Disk), DVD (Digital Versatile Disk), and so on), a magnetic-optical storage medium, a semiconductor memory (flash ROM). Further, the program may be downloaded via a network such as the Internet.
Number | Date | Country | Kind |
---|---|---|---|
2012124731 | May 2012 | JP | national |