Stanford Security Research

Privately Calculating Location Statistics

The problem of determining popularity is the problem of, given many locations, determining how many people are currently at each location. The simple solution to this problem is to constantly ask every person where they are, and to tally these up by location to find out how many people are at each one.

Research Problem and Solution: The problem with this simple solution is that there is no privacy preserved. Essentially, the tallier knows exactly where every person is. The solution that we found to this problem is essentially to use an anonymous voting system to tally up peoples' locations instead of tallying them up directly. This way, the tallier cannot find out where any one person is, as the system guarantees anonymity.

Implementation: We implemented this protocol on the Android platform using Java for botht he client and the server.

Source Code
Note for the Android app: You need to have Orbot (Tor for Android) installed for the app to work. Also, on the first run the application should exit and ask you for google contacts permissions. If you do not accept, the application will never work and will repeat this step every time you run it. The contacts are only used to check if you are a real person - the actual contacts are never used. After this, just run the app to see how many people are where. There is no way to close the app on your own, but Android should close it at some point if it is using too many resources.

Contributors: Peter Chien, Dan Boneh