Hacker News new | ask | show | jobs
by ericlavigne 2256 days ago
Think of the daily key as the seed to a random number generator. If two people pass the same seed into the same random number generator, they can generate the same list of 500 random numbers. This provides a compact way for someone to say: "I just learned that I was infected. These are the 500 identifiers I broadcast on that day. If you recognize one of them, then you might also be infected."

https://tcn-coalition.org/

1 comments

I understand that aspect of it; I'm just confused as to how only having the daily key is enough to generate the identifiers. Wouldn't they also need the TimeIntervalNumber, according to the function?
If each phone generated 500 numbers per day, then TimeIntervalNumber is a number in the range of 1...500. So generate 500 codes using all of the numbers in that range. If any of those 500 codes match one of the codes that you actually saw in the wild, then you were near that person.
Thanks! I actually brainstormed with a friend later that day on how it'd work and we finally came to a similar conclusion.

According to the spec, the phone only generates a new identifier when the MAC address changes or on a new day. But since it's generated in accordance to a 10-minute time window, that means you'd try to derive their key with all 144 possible time windows for that day. And if you find one of those ID's in your list of contacts, then you know you were in contact with someone infected.