|
|
|
| United States Patent | 4885778 |
| Link to this page | http://www.wikipatents.com/4885778.html |
| Inventor(s) | Weiss; Kenneth P. (15 Dwight St., Boston, MA 02109) |
| Abstract | An apparatus and method for synchronizing the time definition of the
dynamic variables by (a) calculating a first non-predictable code
according to a secret predetermined algorithm, the algorithm generating
the first non-predictable code on the basis of a first dynamic variable
and a unique static variable; (b) automatically defining the first dynamic
according to a first interval in which the static variable is input into
the algorithm, the first interval of time having a predetermined duration;
(c) calculating two or more second non-predictable codes according to the
predetermined algorithm, the algorithm generating the second
non-predictable codes on the basis of the two or more second dynamic
variables and the unique static variable, (d) automatically defining the
two or more second dynamic variables according to two or more cells of a
second interval of time in which the static variable is input into the
algorithm of the second computer, the second interval of time comprising a
central cell of time having a predetermined duration and one or more cells
of time bordering the central cell of time, each bordering cell of time
having a predetermined duration; (e) comparing the first non-predictable
code with the second non-predictable codes to determine a match, and (f)
automatically synchronizing the clock mechanisms which define the first
and second dynamic variables upon comparison and matching of the first
non-predictable code with one of the second non-predictable codes. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 4885778 |
|
|
Method and apparatus for synchronizing generation of separate, free
running, time dependent equipment |
|
|
|
|
|
| Publication Date |
December 5, 1989 |
|
|
|
|
|
| Filing Date |
November 27, 1985 |
|
|
|
|
|
|
|
|
|
|
|
| Parent Case |
CROSS-REFERENCE TO OTHER APPLICATION(S)
This is a continuation-in-part of U.S. Ser. No. 676,626 filed Nov. 30,
1984, Applicant: Kenneth Weiss, now U.S. Pat. No. 4,720,860, issued Jan.
19, 1988. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 4720860 Weiss 713/184 Jan,1988 |      Your vote accepted [0 after 0 votes] | | 4677617 O'Connor 370/478 Jun,1987 |      Your vote accepted [0 after 0 votes] | | 4641322 Hasegawa 375/145 Feb,1987 |      Your vote accepted [0 after 0 votes] | | 4636583 Bidell 380/260 Jan,1987 |      Your vote accepted [0 after 0 votes] | | 4609777 Cargile 713/184 Sep,1986 |      Your vote accepted [0 after 0 votes] | | 4599489 Cargile 705/52 Jul,1986 |      Your vote accepted [0 after 0 votes] | | 4589066 Lam 713/375 May,1986 |      Your vote accepted [0 after 0 votes] | | 4582434 Plangger 368/46 Apr,1986 |      Your vote accepted [0 after 0 votes] | | 4543657 Wilkinson 375/367 Sep,1985 |      Your vote accepted [0 after 0 votes] | | 4494211 Schwartz 375/356 Jan,1985 |      Your vote accepted [0 after 0 votes] | | 4326098 Bouricius 713/155 Apr,1982 |      Your vote accepted [0 after 0 votes] | | 4320387 Powell 705/39 Mar,1982 |      Your vote accepted [0 after 0 votes] | | 4193073 Kohnen 342/56 Mar,1980 |      Your vote accepted [0 after 0 votes] | | 4185166 Kinch, Jr. 380/43 Jan,1980 |      Your vote accepted [0 after 0 votes] | | 4145568 Ehrat 380/47 Mar,1979 |      Your vote accepted [0 after 0 votes] | | 4145569 Ehrat 380/262 Mar,1979 |      Your vote accepted [0 after 0 votes] | | 4126761 Graupe 380/28 Nov,1978 |      Your vote accepted [0 after 0 votes] | | 4104694 Hargrove 340/5.65 Aug,1978 |      Your vote accepted [0 after 0 votes] | | 3995111 Tsuji 375/358 Nov,1976 |      Your vote accepted [0 after 0 votes] | | 3900867 Wagner 342/45 Aug,1975 |      Your vote accepted [0 after 0 votes] | | 3886451 Chu 368/118 May,1975 |      Your vote accepted [0 after 0 votes] | | 3806874 Ehrat 713/185 Apr,1974 |      Your vote accepted [0 after 0 votes] | | 3789653 Brejaud 73/1.45 Feb,1974 |      Your vote accepted [0 after 0 votes] | | 3764742 Abbott 713/185 Oct,1973 |      Your vote accepted [0 after 0 votes] | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
| Market Size |
|
Estimate the gross annual revenues of the relevant market
sector:
|
| | |
| |
|
|
| Market Share |
|
Estimate the percentage of the relevant market sector this invention will capture:
|
| | |
| |
|
|
| Reasonable Royalty |
|
What percentage of gross sales should the inventor or assignee be paid?
|
| | |
| |
|
|
|
Public's "Guesstimation" of Royalty Value
|
| Market Size | N/A | [No votes] | | x | Market Share | N/A | [No votes] | | x | Reasonable Royalty | N/A | [No votes] |
| | N/A | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
What is claimed is:
1. In a system for comparing and matching non-predictable codes generated
by separate computers on the basis of dynamic variables defined by
separate first and second clock means according to time, an apparatus for
effectively synchronizing the first and second clock means comprising:
a first computer for calculating a first non-predictable code according to
a predetermined algorithm, the algorithm generating the first
non-predictable code on the basis of a first dynamic variable and a unique
static variable;
said first clock means automatically defining the first dynamic variable
according to a first interval of time in which the static variable is
input into the algorithm, the first interval of time having a first
predetermined duration;
a second computer for calculating two or more second non-predictable codes
according to the predetermined algorithm, the algorithm generating the
second non-predictable codes on the basis of two or more second dynamic
variables and the unique static variable;
said second clock means automatically defining the two or more second
dynamic variables according to two or more time cells for which the static
variable is input into the algorithm of the second computer, the time
cells comprising a central cell of time having a predetermined duration
and one or more cells of time bordering the central cell of time, each
bordering cell of time having a predetermined duration;
means for comparing the first non-predictable code with the second
non-predictable codes to determine a match; and
means for automatically synchronizing the first clock means and the second
clock means upon comparison and matching of the first non-predictable code
with one of the second non-predictable codes.
2. The system of claim 1 wherein the central cell of time comprises the
date and the minute in which the unique static variable is input into the
second computer as defined by the second clock means.
3. The system of claim 2 wherein the bordering cells of time comprise a
cell of time comprising the date and the minute immediately preceding the
central cell.
4. The system of claim 1 wherein the means for synchronizing comprises:
counting means for counting the difference in time between a central cell
of time and a bordering cell of time from which a matching second
non-predictable code may be generated;
summing means connected to the counting means for summing successive
differences in time counted by the counting means;
storage means connected to the summing means for storing the output of the
summing means; and,
shifting means connected to the storage means for shifting a central cell
and bordering cells of time by the summed times stored in the storage
means.
5. The system of claim 4 wherein the bordering cells of time comprise a
selected number of cells of time immediately preceding the central cell
and a selected number of cells of time immediately following the central
cell.
6. The system of claim 5 wherein the central and bordering cells of time
are selected to be one minute in duration.
7. The system of claim 5 wherein the means for synchronizing further
comprises:
second storage means connected to the comparison means for storing the date
of the most recent comparison and matching by the comparison means;
second counting means connected to the second storage means for counting
the difference in time between the date stored and the date of present
entry into the second computer;
dividing means connected to the second counting means for dividing the
difference in time counted by the second counting means by a selected
value and prescribing the output as a first window opening number;
window opening means connected to the dividing means and the comparison
means for calculating as many extra second non-predictable codes on the
basis of as many extra bordering cells of time immediately preceding and
following the selected number of bordering cells as prescribed by the
first window opening number.
8. The system of claim 7 wherein the means for synchronizing further
comprises:
sensing means connected to the second clock means for sensing a re-setting
of the second clock means;
third storagae means connected to the sensing means for prescribing and
storing the occurrence of a sensed re-setting of the second clock means as
a selected second window opening number; and
second window opening means connected to the third storage means for
calculating as many additional second non-predictable codes on the basis
of as many additional bordering cells of time immediately preceding and
following the extra bordering cells of time as prescribed by the second
window opening number.
9. The system of claim 8 wherein the first computer comprises a
microprocessor wherein the algorithm is stored in volatile dynamic memory
encapsulated with an energizing means which when interrupted destroys all
data including at least the algorithm and the static variable.
10. The system of claim 9 wherein the first computer and the first clock
means are incorporated into a card of about the same size as a credit
card.
11. The system of claim 10 wherein the algorithm of the second computer is
stored in volatile dynamic memory encapsulated with an energizing means
which when interrupted destroys all data including at least the algorithm
and the static variable.
12. In a method for comparing non-predictable codes generated by separate
computers on the basis of dynamic variables defined by separate clock
means according to time wherein the codes match when the dynamic variables
match, a method for effectively synchronizing the separate clock means
comprising the steps of:
inputting the static variable into a first computer including a
predetermined algorithm;
employing the algorithm of the first computer to calculate a first
non-predictable code on the basis of the static variable and a first
dynamic variable defined by a first interval of time in which the step of
inputting occurred according to a first clock means;
putting the static variable and the first non-predictable code into a
second computer, the second computer independently including the
predetermined algorithm;
using the algorithm of the second computer to independently calculate two
or more second non-predictable codes on the basis of the static variable
and two or more second dynamic variables defined by two or more cells of
time in which the step of inputting occurs according to a second clock
means, the cells of time comprising a central cell of time and one or more
bordering cells of time;
comparing the first non-predictable code with the second non-predictable
codes to determine a match; and
synchronizing the first clock means and the second clock means upon
comparison and matching of the first non-predictable code with one of the
second non-predictable codes.
13. The method according to claim 12 wherein the step of synchronizing
comprises the steps of:
counting the difference in time between a central cell of time and a
bordering cell of time from which a matching second non-predictable code
may be generated;
summing successive differences in time counted during the step of counting;
storing the summed successive differences in time; and,
shifting the central and bordering cells of time by the summed successive
differences in time.
14. The method according to claim 13 wherein the step of synchronizing
further comprises the steps of:
storing the date of the most recent comparison and determination of a
match;
counting the difference in time between the date stored and the date of
present entry into the second computer;
dividing the difference counted during the step of counting the difference
in dates by a selected value and prescribing the output as a first window
opening number; and,
calculating as many extra second non-predictable codes on the basis of as
many extra bordering cells of time immediately preceding and following the
selected number of bordering cells as prescribed by the first window
opening number.
15. The method according to claim 13 wherein the step of synchronizing
further comprises the steps of:
sensing a re-setting of the second clock means;
prescribing and storing the occurrence of a sensed re-setting of the second
clock means as a second selected window opening number; and,
calculating as many additional second non-predictable codes on the basis of
as many additional bordering cells of time immediately preceding and
following the extra bordering cells of time as prescribed by the second
window opening number.
16. The method of claim 12 wherein the central and bordering cells of time
are selected to be one minute in duration.
17. In an identification system utilizing a first computer means to
generate a first non-predictable code sequence as a function of a first
time dependent variable in accordance with a predetermined algorithm, a
first clock means for generating a sequence of said first time dependent
variables during successive time cells, each of which cells is of a
predetermined time interval, means for applying the output of said first
clock means to said first computer means, a second computer means to
generate a second non-predictable code sequence as a function of a second
time dependent variable in accordance with said predetermined algorithm, a
second clock means for generating a sequence of said second time dependent
variables during successive time cells, means for applying the output of
said second clock means to said second computer means and means for
comparing the first and second non-predictable codes at a selected time
cell; a means forming part of said second computer means to compensate for
loss of synchronism between the first and second clock means comprising:
means for computing the second non-predictable code for at least one
additional time cell bordering said selected time cell;
first storing means for storing the second non-predictable codes computed
during said selected time cell and during each of said at least one
additional time cells;
wherein said means for comparing includes means for comparing the first
non-predictable code for said selected time cell with each of the second
non-predictable codes stored in said first storing means; and
means for establishing identification if the first non-predictable code
matches any of the second non-predictable codes.
18. A means to compensate as claimed in claim 17 including means for
determining the number of time cells between the time cell for the second
non-predictable code which matches the first non-predictable code and said
selected time cell;
summing means for summing successively determined numbers of time cells;
second storing means for storing the output of the summing means; and
means responsive to the summed number stored in said means for summing for
shifting the time cells for which said second non-predictable codes are
generated for storing in said first storing means.
19. A means to compensate as claimed in claim 18 wherein said first storing
means normally stores the second non-predictable codes for said selected
time cell, for a selected number of time cells immediately preceding said
selected time cell and for a selected number of time cell immediately
following said selected time cell; and
wherein said means for shifting shifts the time cell for which each of the
stored second non-predictable codes are determined by the value of the
summed number stored in said means for summing.
20. A means to compensate as claimed in claim 19 including means for
storing the date of the last successful comparison by said means for
comparing;
means for determining the time between the current date and the stored date
of last successful comparison;
means for dividing the time determined by said means for determining by a
selected value and designating the output as a first window opening
number; and
first window opening means for utilizing said first window opening number
to determine a number of extra second non-predictable codes to be
determined and stored in said first storing means for time cells
immediately preceding and following time intervals for the codes otherwise
stored therein.
21. A means to compensate as claimed in claim 19 including means for
sensing a resetting of the second clock means;
means responsive to the sensing of a resetting of the second clock means
for storing a selected second window opening number; and
second window opening means for utilizing the second window opening number
to determine the number of extra second non-predictable codes to be
determined and stored in said first storing means for time cells
immediately preceding and following the time intervals for the codes
otherwise stored therein.
22. In a method for effecting identification which involves the steps of
generating a first non-predictable code sequence as a function of a first
time dependent variable in accordance with a predetermined algorithm by
use of a first computer means, utilizing a first clock means to generate a
sequence of said first time dependent variables during successive time
cells, each of which cells is of a predetermined time interval, applying
the output of the first clock means to the first computer means, utilizing
a second computer means to generate a second non-predictable code sequence
as a function of a second time dependent variable in accordance with said
predetermined algorithm, utilizing a second clock means to generate a
sequence of said second time dependent variables during seuccessive time
cells applying the output of the second clock means to the second computer
means and comparing the first and second non-predictable codes at a
selected time cell, a method for utilizing the second computer means to
compensate for loss of synchronism between the first and second clock
means, comprising the steps of:
computing the second non-predictable code for at least one additional time
cell bordering said selected time cell;
storing the second non-predictable codes computed for said selected time
cell and for each of said at least one additional time cells;
comparing the first non-predictable code for said selected time cell with
each of the stored second non-predictable codes; and
establishing identification if the first non-predictable code matches any
of the stored second non-predictable codes.
23. A method for compensating as claimed in claim 22 including the steps of
determining the number of time cells between the time cell for the second
non-predictable code which matches the first non-predictable code and said
selected time cell;
summing successively determined numbers of time cells;
storing the summed number of time cells; and
shifting the time cells for which said second non-predictable codes are
generated for storing and comparison with said first non-predictable code
by a value dependent on the summed number of time intervals.
24. A method for compensating as claimed in claim 23, wherein the second
non-predictable codes stored are for the selected time cell, a selected
number of time cells immediately preceding said selected time cell and a
selected number of time cells immediately following said selected time
cell; and
wherein during said shifting step, the time cell for which each of the
stored second non-predictable codes is determined is shifted by the value
of the number of time cells determined during said summing step.
25. A method for compensating as claimed in claim 24 including the steps of
storing the date of the last successful comparison during said comparing
step;
determining the time between the current date and the stored date of last
successful comparison;
dividing the time determined during said determining step by a selected
value and designating the output as a first window opening number; and
utilizing said first window opening number to determine a number of extra
second non-predictable codes to be determined and stored for time cells
immediately preceding and following the time cells for the codes otherwise
stored for comparison with said first non-predictable code.
26. A method for compensating as claimed in claim 24 including the steps of
sensing a resetting of the second clock means;
storing a selected second window opening number in response to the sensing
of a resetting of the second clock means; and
utilizing the second window opening number to determine a number of extra
second non-predictable codes to be determined and stored for time cells
immediately preceding and following the time cells for the codes otherwise
stored for comparison with the first non-predictable code. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
The present invention relates to an apparatus and method for the electronic
generation of variable, non-predictable codes and the validation and
comparison of such codes for the purpose of positively identifying an
authorized individual or user of an apparatus or system and thereafter
giving clearance to carry out a privileged transaction or access to a
protected system or facility.
There often arises a need to prevent all but selected authorized persons
from being able to carry out some defined transaction (such as granting of
credit) or to gain access to electronic equipment or other system,
facility or data (hereinafter "clearance or access"). Prior methods for
preventing unauthorized clearance or access typically involve devices
which limit access to the subject data, facility, or transaction to those
who possess a unique physical device, such as a key or who know a fixed or
predictable (hereinafter "fixed") secret code. The problem inherent in
relying on a fixed code or unique physical device as the means to gain
such selective clearance or access is that would-be unauthorized users
need only obtain possession of the fixed code or unique device to gain
such clearance or access. Typical instances of fixed codes include card
numbers, user numbers or passwords issued to customers of computer data
retrieval services.
The principal object of the invention is to synchronize the generation of
time-dependent non-predictable codes which are independently generated on
the basis of date and time information which are generated on separate
devices which over time may deviate out of time synchrony with each other.
A further object of the invention is to provide a practical approach to
generating identification codes which are unique to the user and which
change periodically without user intervention but which provide a readily
verifiable means of identification for providing clearance or access at
any time.
SUMMARY OF THE INVENTION
The present invention eliminates the relatively easy access afforded to
someone who copies or otherwise misappropriates a secret "fixed" code by
periodically generating identification codes by using fixed codes,
variable data, and a predetermined algorithm which is unknown in advance
and unknowable outside the administration of the security system even to
authorized users of the apparatus utilizing the fixed secret code. The
predetermined algorithm constantly generates new unique and verifiable
non-predictable codes, which are derived from the fixed data and at least
one dynamic variable, such as the time of day (including the date) by the
predetermined algorithm. The constant changes in the dynamic variables
when processed by the algorithm results in the generation of constantly
changing non-predictable codes.
In accordance with the invention, in a system for comparing and matching
non-predictable codes generated by separate computers on the basis of
dynamic variables defined by separate clock mechanisms according to time,
there is provided an apparatus for synchronizing the time definition of
the dynamic variables comprising: a first computer for calculating a first
non-predictable code according to a predetermined algorithm, the algorithm
generating the first non-predictable code on the basis of a first dynamic
variable and a unique static variable; a first clock mechanism for
automatically defining the first dynamic variable according to a first
interval of time in which the static variable is input into the algorithm,
the first interval of time having a first predetermined duration; a second
computer for calculating two or more second non-predictable codes
according to the predetermined algorithm, the algorithm generating the
second non-predictable codes on the basis of the two or more second
dynamic variables and the unique static variable; a second clock mechanism
for automatically defining the two or more second dynamic variables
according to two or more cells of a second interval of time in which the
static variable is input into the algorithm of the second computer, the
second interval of time comprising a central cell of time having a
predetermined duration and one or more cells of time bordering the central
cell of time, each bordering cell of time having a predetermined duration;
a mechanism for comparing the first non-predictable code with the second
non-predictable codes to determine a match; and, a mechanism for
automatically synchronizing the first clock mechanism and the second clock
mechanism upon comparison and matching of the first non-predictable code
with one of the second non-predictable codes.
The central cell of time typically comprises the date and the minute in
which the unique static variable is input into the second computer as
defined by the second clock mechanism; and the bordering cells of time may
comprise a cell of time comprising the date and the minute immediately
preceding the central cell.
Preferably the mechanism for synchronizing comprises: a counting mechanism
for counting the difference in time between a central cell of time and a
bordering cell of time from which a matching second non-predictable code
may be generated; a summing mechanism connected to the counting mechanism
for summing successive differences in time counted by the counting
mechanism; a storage mechanism connected to the summing mechanism for
storing the output of the summing mechanism; and, a shifting mechanism
connected to the storage mechanism for shifting a central cell and
bordering cells of time by the output of the summing mechanism stored in
the storage mechanism.
The bordering cells of time may comprise a selected number of cells of time
immediately preceding the central cell and a selected number of cells of
time immediately following the central cell; and the central and bordering
cells of time are typically selected to be one minute in duration.
Preferably, the mechanism for synchronizing further comprises: a second
storage mechanism connected to the comparison mechanism for storing the
date of the most recent comparison and matching by the comparison
mechanism; a second counting mechanism connected to the second storage
mechanism for counting the diffe | | |