I intend on monetising some large datasets. These datasets are anonymised and released to (paying) clients via a web api. Are there any standard algorithms such that if the datasets are intentionally leaked publicly, the data can be altered such that the responsible party can be identified, while at the same time the data remains practically useful?

There are certain approaches which come to mind, such as every client's data being very slightly different with known changes. For example in spatial data, every lon/lat pair is altered by the same very small vector. My worry is that if the data is anonymised again by the client before being leaked, a naive attempt might easily be circumvented.

(I am not a data scientist so I'm not really sure what the correct jargon is for what I am looking for)

  • $\begingroup$ Welcome to the site! The terms you are looking for are data anonymization and differential privacy. When it comes to security and privacy, the mantra is "don't invent your own scheme". $\endgroup$ – Emre May 4 '18 at 17:04
  • $\begingroup$ Hello, this is not so much about data anonymisation as it is about being able to track down the party which leaked a dataset $\endgroup$ – DataAnon May 4 '18 at 17:13
  • $\begingroup$ I am not familiar with this fascinating problem but it seems that you would need to introduce controlled noise or spurious data such that no two datasets have identical noise distributions or entries. The spurious data could either be introduced, or withheld -- by making sure no-one gets the entire dataset and everybody gets a different subset. $\endgroup$ – Emre May 4 '18 at 17:31
  • $\begingroup$ Interesting. I was hoping this would be a well known problem in the data-science domain and there would be literature on the problem. Spurious data seems promising, however if the party that is leaking the data is aware of this, I'm guessing may be possible to get around it by doing the same on their already spurious datasets. I was hoping for a technique which holds a mathematical guarantee of traceability, assuming the datset is not mutated so much that it loses all useful information. $\endgroup$ – DataAnon May 4 '18 at 17:54
  • $\begingroup$ As long as you can tell their dataset contains your spurious data what difference does it make if they add more? $\endgroup$ – Emre May 4 '18 at 17:56

"Digital watermarking" is a set of techniques that might be useful in this context.

From the wikipedia page:

"Watermarking" is the process of hiding digital information in a carrier signal... Digital watermarks may be used to verify the authenticity or integrity of the carrier signal or to show the identity of its owners. [Emphasis added]

To address your requirement, you would insert a unique watermark for each client that receives your data. Watermarking techniques address requirements such as robustness to modification and imperceptibility.

As an example, this paper talks about watermarking numerical data: "Watermarking Numerical Data in the Presence of Noise", pdf


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.