|
Implementation
I implemented the HB and HB Plus Protocol in Java, and wrote a variety of programs for data collection. A copy of the README, which explains the implementation, is available here. The programs are available upon request. Definitions A lot of our research this summer centered on the concept of false positives and negatives.
Clearly, a secure protocol would minimize the number of both false positives and false negatives. Recommended Parameters Our results are based on data collected in the files HB data and graphs and HB+ data and graphs. In the following explanation, I use only selected graphs to illustrate our conclusions. After implementing the protocols, we began by trying to determine the best values for four variable parameters used in both HB and HB+.
We collected data on our implementation of the HB and HB+ protocol by setting three of the parameters to the given default value, and varying the fourth parameter. Each box plot in our resulting graphs is composed from 50 percentages which were calculated from 5000 runs of the program. These graphs represent data collected from 32-bit secrets, queries, and blinding factors. For these first eight graphs, the results of HP and HP+ were nearly identical, so we've chosen to show only HP.
Incorrect Acceptances This last graph went against our hypothesis that as the number of secrets increased, more good tags would be accepted. Our implementation was written so that the reader would accept if the tag's responses were within delta of any of the possible responses of the reader's list of good tags. Logically, as the number of secrets increased, the chance grew of a tag being accepted because the reader mistook it for a different tag on the approved list. We tested our hypothesis and created the following graph.
As the number of secrets increases, HB protocol begins accepting some tags on an incorrect secret. It is interesting to note that, when the same data collection program was run for HB+ for the same values of p, HB+ identified the correct secret for the tag 100% of the time. We concluded that having two secrets and two dot products significantly increased the ability of the HB+ to match the tag to the correct secret. Predicting False Positives The full data we collected on False Positives in HB and False Positives in HB+ is available in these files. Our goal for this section of the research was to calculate the number of false positives for a reader with 1 secret, and k length queries and secrets. That is, we wish to calculate how many of the 2k possible tags will be accepted by a reader which should only accept one tag. We made the following prediction for the number of secrets of length k accepted by a reader with 1 secret using n queries:
It turned out to be surprisingly accurate. The red dots on the following graph show the value of our equation for the given number of queries
More information about the way we discovered this forumla for predicting false positives is available in the final power point presentation given by Jenn and me at DIMACS on July 20, 2006: Reasonable Security Parameters for HB and HB Plus Protocols. Our abstract is available here. Open Problems The following are open problems which we did not have time to address this summer:
|