andrew@sask.UUCP (Derek Andrew) (04/02/88)
One problem with using passwords is their vulnerability to an eavesdropping attack. One solution is to implement a challenge and response algorithm as described here. 1. Let P(day) represent a secret permutation of the alphabet, unique every day. e.g. P(today) = zfhkgjavitclbumxpwdonyrseq 2. Let C(T,N) be a function which generates a string of N unique letters. T is the time of day (number of seconds since midnight). e.g. C(12:00:00,5) = jrmxo 3. Let M(P(day),C(T,N)) be a mapping function such that every letter in C(T,N) is replaced by the letter following it in P(day). This mapping is simple and can be applied by visual inspection. e.g. C(zfhkgjavitclbumxpwdonyrseq,jrmxo) = asxpn The permutation of the alphabet of the day P(today) is printed, then, when the user is logging in, a challenge is issued using the C(T,N) function and the user's response is compared with the result of M(P(day),C(T,N)). If they match, the user is allowed access. How does one evaluate the security of this system? What are the possible attacks assuming 100% collection of the wiretap data? How does one choose a suitable value for N? If N = 1, the attacker has a 1:26 chance getting in, but if N = 26, the attacker can derive P(today) after one observation. Does the C(T,N) function need to be secret or is it alright to allow the attacker to anticipate the challenge? I suggest using T as a parameter to eliminate the problem of the same challenge being issued twice on the same day (thus with the same P(day)). -- | Derek Andrew, 306-966-4808, 0830-1700 CST, | Computer Network and Technical Services, 35 Education, ,--|----. U of Saskatchewan, Saskatoon, Saskatchewan, Canada S7N 0W0 | | ,--| uucp: {ihnp4 | utcsri | alberta} !sask!andrew `--' `--`- BitNet/NetNorth: Andrew@Sask 52 11 23N 106 48 48W