One possible solution is to use Reed-Solomon (or something like this) to build an n-of-m scheme: creating an nth degree polynomial f(x) , where n is the number of digits needed to enter the system, and generate output digits by evaluating f(x) at x=1..6 . The numbers combined will become your complete pin. Then, any three of these digits can be used (together with their x coordinate) to interpolate the constants of the polynomial. If they are equal to the source constants, the numbers are correct.
The biggest problem, of course, is to form a field of numbers 0..9 for polynomial constant arithmetic. Normal arithmetic will not cut it out in this case. And my final field is too rusty to remember, if possible. If you switch to 4 bits per digit, you can use GF(2^4) to overcome this drawback. In addition, it is not possible to select your PIN code. It should be assigned to you. Finally, assuming that you can fix all the problems, there are only 1000 different polynomials for the 3rd circuit, and it is too small for security.
In any case, I do not think that this will be a good method, but I wanted to add some ideas to the mix.
vhallac
source share