I would like a user to choose a point on an image which is represented by (x,y). This is meant to be a security token. When a user uses this location to login they are unlikely to to choose the exact same (x,y), rather they will choose a point nearby (x_g, y_g). The user may also be required to enter a password.
ATM I'm thinking of using a simple modulus function that will round
(x,y) => (x mod 16, y mod 16). Other ideas include:
- multiplying x,y prior to applying the modulus function,
(x,y) => x*y mod 16
- adding a salt to x and y prior to applying the modulus function,
(x,y) => (x+salt mod 16, y+salt mod 16)
- adding the numerical representation of a hashed password to x and y.
(x,y) => (x+pwordHash mod 16, y+pwordHash mod 16)
I'm also considering how this maybe extended to more than one point.
I wish to know if any of the above ideas are suitable or if there exists better better solutions for calculating a secure sketch. It is assumed that an attacker will have access to the salt and the secure sketch. The system will not store any record(i.e hash) of the actual point. The user will need to verify that the system has found the correct point.