`Weiss
`
`54
`
`76)
`
`21
`22
`
`63
`
`51
`52)
`
`58
`
`56
`
`METHOD AND APPARATUS FOR
`SYNCHRONZNG GENERATION OF
`SEPARATE, FREE RUNNING, TIME
`DEPENDENT EQUIPMENT
`Inventor: Kenneth P. Weiss, 15 Dwight St.,
`Boston, Mass. 02109
`Appl. No.: 802,579
`Filed:
`Nov. 27, 1985
`Related U.S. Application Data
`Continuation-in-part of Ser. No. 676,626, Nov. 30,
`1984, Pat. No. 4,720,860.
`Int. Cl'............................................... HO4L 9/OO
`U.S. C. ........................................ 380/48; 380/23;
`380/25; 380/28; 235/382; 340/825.31;
`340/825.34
`Field of Search ....................... 364/200, 900, 571;
`235/382, 380; 37.5/110; 370/104, 103; 368/46,
`47; 380/23-25, 28, 48; 178/22,08, 22.09, 22.17;
`340/825.31, 825.34
`References Cited
`U.S. PATENT DOCUMENTS
`3,764,742 10/1973 Abbott et al. ......................... 380/2.3
`3,789,653 2/1974 Brejand ................................. 368/47
`3,306,874 4/1974 Ehrat ........
`... 178/2.2.08
`3,886,451 5/1975 Chu et al............................. 364/571
`3,900,867 8/1975 Wagner ................................. 342/45
`3,995,111 11/1976 Tsuji et al. .......................... 370/104
`4,104,694 8/1978 Hargrove .....
`... 34.0/825.31
`4,126,761 11/1978 Groupe et al......................... 380/48
`4,145,568 3/1979 Ehrat ................
`... 178/2.2.17
`4,145,569 3/1979 Ehrat ....................
`... 178/2.2.17
`4,185,166 1/1980 Kinch, Jr. et al. .................... 380/43
`4,193,073 3/1980 Kohnen ................................. 342/56
`4,320,387 3/1982 Powell ............................ 340/825.34
`4,326,098 4/1982 Bouricius et al...................... 380/25
`4,494,211 1/1985 Schwartz .............................. 368/47
`4,543,657 9/1985 Wilkinson .....
`... 375/1
`4,582,434 4/1986 Plangger et al. .
`368/47
`4,589,066 5/1986 Lam et al.....
`... 364/200
`4,599,489 7/1986 Cargile.
`a
`- - 380/4
`4,609,777 9/1986 Cargile .................................... 380/4
`4,636,583 1/1987 Bidell et al............................ 380/48
`4,641,322 2/1987 Hasegawa ............................... 375/1
`4,677,617 6/1987 O'Connor et al. ................. 375/1 X
`
`11
`45
`
`Patent Number:
`Date of Patent:
`
`4.885,778
`Dec. 5, 1989
`
`4,720,860 l/1988 Weiss .................................... 380/23
`FOREIGN PATENT DOCUMENTS
`0010496 4/1980 European Pat. Off. .
`0140013 5/1985 European Pat. Off. .
`OTHER PUBLICATIONS
`IBM Tech. Discl. Bull, (vol. 26; No. 7A; 12/83; pp.
`3292-3293).
`IBM Tech. Discl. Bulli (vol. 28; No. 7A; 12/83; pp.
`3286-3288).
`Primary Examiner-Stephen C. Buczinski
`Assistant Examiner-Bernarr Earl Gregory
`Attorney, Agent, or Firm-M. Lawrence Oliverio
`57
`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 prede
`termined 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 vari
`ables 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 algo
`rithm of the second computer, the second interval of
`time comprising a central cell of time having a predeter
`mined 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-predict
`able 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.
`
`26 Claims, 5 Drawing Sheets
`
`
`
`
`
`is NON
`predictase
`o
`
`PRErase
`Oce
`
`3.
`
`s
`NAM
`WARIA
`
`ASSESS
`C&Rol
`&seats
`or Host
`c
`s o
`
`
`
`2 as
`YN a
`WaRae
`
`coMPArts
`NONrprettas
`codes
`
`80
`
`Clearance
`
`Access
`
`so
`
`APPLE 1006
`
`
`
`U.S. Patent Dec. 5, 1989
`
`Sheet 1 of 5
`
`4.885,778
`
`Fixed
`CODE - O
`
`CARD
`PN
`
`45
`
`C
`
`O
`
`2O
`
`st
`S
`COMPUTER
`
`O2
`
`St NON
`PREDCTABLE
`CODE
`
`2nd NON
`PRED CTABLE
`CODE
`
`d
`
`
`
`st
`DYNAMIC
`VARABLE
`
`ACCESS
`CONTROL
`MEANS
`OR HOST
`
`2nd
`DYNAMIC
`VARABLE
`
`
`
`COMPAR SON
`OF
`NON-PREDICTABLE
`CODES
`
`8 O
`
`
`
`CLEARANCE
`O R
`ACCESS
`
`9O
`
`FG.
`
`
`
`U.S. Patent Dec. 5, 1989
`
`Sheet 2 of 5
`
`4.885,778
`
`st
`COMPUTER
`
`
`
`
`
`st NON
`PREDCTABLE
`CODE
`
`
`
`
`
`
`
`
`
`St
`DYNAMIC
`VARABLE
`
`
`
`
`
`
`
`ACCESS
`CONTROL
`MEANS
`OR HOST
`
`
`
`
`
`2nd
`DYNAMC
`VARABLE
`
`CEARANCE
`OR
`ACCESS
`
`
`
`FG.2
`
`
`
`U.S. Patent Dec. 5, 1989
`
`Sheet 3 of 5
`
`4.885,778
`
`CARD (2O
`(2O)
`
`O
`
`CARD
`SEED / 4o
`CARD
`RESULTANT
`CODE
`
`HOST (5O)
`
`OO
`TEMPORARLY
`STORE CARD
`DATA
`
`CARD
`PN
`45
`
`
`
`DENY NO
`ACCESS
`
`O
`
`
`
`COMPARE
`CARD P N AND
`HOST PN
`MATCH
`
`DENY
`ACCESS
`
`
`
`NO
`
`COMPARE
`CARD SEED WITH
`HOST L. BRARY OF
`SEEDS, MATCH a
`
`
`
`
`
`
`
`YES
`TEMPORARLY RECORD DATE
`AND T ME OF ENTRY
`WITH USE OF HOST CLOCK
`
`
`
`
`
`
`
`ZERO
`CELLTIME
`
`PERMAN ENT
`HOST
`MEMORY
`2OO
`
`
`
`HOST LIBRARY
`OF SEEDS
`
`
`
`
`
`STORED TIME
`OFFSET PECULAR
`TO CARD SEED
`
`COMPARE TEMPORARLY STORED
`DATE WITH STORED DATE OF
`LAST ACCESS
`
`STORED DATE
`OF LAST GRANT
`OF ACCESS
`
`
`
`6 O
`COMPUTE NUMBER OF MONTHS X BETWEEN
`DATE OF LAST ACCESS AND TEMPOR
`STORED DATE
`
`FIG 3A
`
`
`
`U.S. Patent Dec. 5, 1989
`
`Sheet 4 of 5
`
`4.885,778
`
`65
`
`ADD X
`PLUS Y
`
`
`
`
`
`67
`Y S AN AUTOMATICALLY
`FIXED AND STORED
`F
`HOST CLOCK S RESET
`PROR TO PRESENT
`TRANSACON
`
`COMPUTE ZERO CELL, HOST
`RESULTANT CODE ON BASS
`OF ZERO CELL TIME
`
`
`
`COMPUTE THE LESSER OF 4 - X-Y OR O
`ADDITIONAL HOST RESULTANT CODES,
`i e THE WINDOW
`
`DENY
`ACCESS
`
`NO
`
`
`
`
`
`
`
`COMPARE
`CARD RESULIANT
`CODE WITH ALL COMPUTED
`HOST RESULTANT CODES.
`ANY MATCH
`p
`
`
`
`GRANT ACCESS
`
`
`
`PERMANENTLY STORE
`TEMPORARLY SORED DATE
`
`
`
`
`
`
`
`
`
`COMPUTE NEW T ME OFFSET PECULAR TO CARD
`SEED BY COMPARNG HOST ZERO CELLTIME WITH
`CELLTIME OF MATCH ING HOST RESULTING CODE
`AND ADD NG OR SUBTRACTING PREVIOUSLY STORED
`TME OFFSET
`
`
`
`PERMANENTLY STORE
`NEW T ME OFFSET
`
`FIG 3 B
`
`
`
`U.S. Patent Dec. 5, 1989
`
`Sheet 5 of 5
`
`4.885,778
`
`O
`(REAL TIME)
`O
`CARD CLOCK
`OOOO HOST CLOCK
`- 2 - O + +2 (REAL TIME)
`(-2)(-) (O) (+) (+2) (HOST WINDOW)
`
`O
`
`(REAL TIME)
`CARD COCK
`OOO HOST CLock
`+ i + 2 + 3 (REAL TIME)
`(-2) (-) O (+) (+2) (HOST WINDOW)
`
`FG4.
`
`FIG.5
`
`-
`
`( REAL TIME)
`CARD CLOCK
`OOD HOST CLock
`-2 - O + i + 2 (REAL TIME)
`(-2) (-) (O) (+) (+2) (HOST WINDOW)
`
`-
`
`(REAL TIME)
`CARD CLOCK
`OOO HOST CLOCK
`- 3 -2 -
`O
`(REAL TIME)
`(-2) ( - ) (O) () (2) (ADJUSTED
`WINDOW)
`
`FG.6
`
`FIG 7
`
`-3
`
`(REAL TIME)
`CARD CLOCK
`OOOOOOOO HOST CLOCK
`it
`+ 2 + 3 + 4 +5 (REAL TIME)
`(-2) (-) (O) (+) (+2) (HOST WINDOW)
`
`FG.8
`
`-3
`
`(REAL TIME)
`CARD CLOCK
`OOOOOOOOOOOOOOOOO Host cock
`5 - 4 - 3 - 2 -
`O
`2 3 4 5 6 7 8 9
`O II ( REAL TIME)
`(-8) (-7) (-6)(-5) (-4) (-3)(-2) (-) O ( ) (2) (3) (4) (5) (6) (7) (8) (OPENED
`WINDOW)
`N-y-mm-H1
`FG.9
`
`
`
`'N,
`
`1.
`
`METHOD AND APPARATUS FOR
`SYNCHRONIZING GENERATION OF SEPARATE,
`FREE RUNNING, TIME DEPENDENT
`EQUIPMENT
`
`CROSS-REFERENCE TO OTHER
`APPLICATION(S)
`This is a continuation-in-part of U.S. Ser. No. 676,626
`10
`filed Nov. 30, 1984, Applicant: Kenneth Weiss, now
`U.S. Pat. No. 4,720,860, issued Jan. 19, 1988.
`BACKGROUND OF THE INVENTION
`The present invention relates to an apparatus and
`15
`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
`20
`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,
`25
`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
`30
`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 unautho
`35
`rized users need only obtain possession of the fixed code
`or unique device to gain such clearance or access. Typi
`cal 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 synchro
`nize 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
`45
`time synchrony with each other. A further object of the
`invention is to provide a practical approach to generat
`ing identification codes which are unique to the user
`and which change periodically without user interven
`tion but which provide a readily verifiable means of
`50
`identification for providing clearance or access at any
`time.
`
`4,885,778
`2
`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 gener
`ated by separate computers on the basis of dynamic
`variables defined by separate clock mechanisms accord
`ing to time, there is provided an apparatus for synchro
`nizing the time definition of the dynamic variables com
`prising: a first computer for calculating a first non
`predictable code according to a predetermined algo
`rithm, the algorithm generating the first non-predicta
`ble code on the basis of a first dynamic variable and a
`unique static variable; a first clock mechanism for auto
`matically 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 algo
`rithm 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 mecha
`nism 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 border
`ing cell of time having a predetermined duration; a
`mechanism for comparing the first non-predictable
`code with the second non-predictable codes to deter
`mine a match; and, a mechanism for automatically syn
`chronizing 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 com
`prises: a counting mechanism for counting the differ
`ence in time between a central cell of time and a border
`ing cell of time from which a matching second non
`predictable code may be generated; a summing mecha
`nism connected to the counting mechanism for sum
`ming 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 con
`nected 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 cen
`tral cell and a selected number of cells of time immedi
`ately 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 compari
`son mechanism; a second counting mechanism con
`nected to the second storage mechanism for counting
`
`55
`
`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 ad
`ministration 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
`65
`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
`
`
`
`4,885,778
`3
`4.
`tral cell of time and a bordering cell of time from which
`the difference in time between the date stored and the
`date of present entry into the second computer; a divid
`a matching second non-predictable code may be gener
`ing mechanism connected to the second counting mech
`ated; summing successive differences in time counted
`anism for dividing the difference in time counted by the
`during the step of counting; storing the summed succes
`second counting mechanism by a selected value and
`sive differences in time; and, shifting the central and
`prescribing the output as a first window opening num
`bordering cells of time by the summed successive differ
`ber; a window opening mechanism connected to the
`ences in time.
`dividing mechanism and the comparison mechanism for
`Most preferably, the step of synchronizing further
`calculating as many extra second non-predictable codes
`comprises the steps of storing the date of the most
`on the basis of as many extra bordering cells of time
`recent comparison and determination of a match; count
`10
`immediately preceding and following the selected num
`ing the difference in time between the date stored and
`ber of bordering cells as prescribed by the first window
`the date of present entry into the second computer;
`opening number.
`dividing the difference in dates counted by a selected
`Most preferably, the mechanism for synchronizing
`value and prescribing the output as a first window open
`further comprises: a sensing mechanism connected to
`ing number; and, calculating as many extra second non
`15
`the second clock mechanism for sensing a re-setting of
`predictable codes on the basis of as many extra border
`ing cells of time immediately preceding and following
`the second clock mechanism; a third storage mechanism
`connected to the sensing mechanism prescribing and
`the selected number of bordering cells as prescribed by
`storing the occurrence of a sensed re-setting of the
`the first window opening number.
`Most preferably, the step of synchronizing further
`second clock mechanism as a selected second window
`20
`opening number; and, a second window opening mech
`comprises the steps of: sensing a re-setting of the second
`anism connected to the third storage mechanism for
`clock mechanism; prescribing and storing the occur
`calculating as many additional second non-predictable
`rence of a sensed re-setting of the second clock mecha
`codes on the basis of an many additional bordering cells
`nism as a second selected window opening number; and,
`of time immediately preceding and following the extra
`calculating as many additional second non-predictable
`25
`bordering cells of time as prescribed by the second
`codes on the basis of as many additional bordering cells
`window opening number.
`of time immediately preceding and following the extra
`The first computer typically comprises a micro
`bordering cells of time as prescribed by the second
`processor wherein the algorithm is stored in volatile
`window opening number.
`dynamic memory encapsulated with an energizing
`The volatile dynamic memory included in either or
`mechanism which when interrupted destroys all data
`both of the first computer, the access control means, the
`including at least the algorithm and the static variable.
`host computer and the means for comparing preferably
`Most preferably, the algorithm of the second com
`stores and maintains all programs such as the predeter
`puter is stored in volatile dynamic memory encapsu
`mined algorithm, system operating programs, code
`comparison and matching programs, and the like; and
`lated with an energizing mechanism which when inter
`35
`rupted destroys all data including at least the algorithm
`the volatile dynamic memory further preferably stores,
`and the static variable.
`maintains and makes available for use all data and re
`In a method for comparing non-predictable codes
`sults of operations such as fixed codes, resultant codes,
`generated by separate computers on the basis of dy
`dynamic variables and the like.
`namic variables defined by separate clock mechanisms
`BRIEF DESCRIPTION OF THE DRAWINGS
`according to time wherein the codes match when the
`dynamic variables match, there is also provided a
`Other objects, features and advantages will be appar
`method for synchronizing the time definition of the
`ent from the following detailed description of preferred
`dynamic variables comprising the steps of inputting a
`embodiments thereof taken in conjunction with the
`static variable into a first computer including a prede
`accompanying drawings in which:
`45
`termined algorithm; employing the algorithm of the
`FIG. 1 is a block diagram of a basic apparatus and
`first computer to calculate a first non-predictable code
`method according to the invention for generating and
`comparing non-predictable codes;
`on the basis of the static variable and a first dynamic
`variable defined by a first interval of time in which the
`FIG. 1A is a block diagram of a preferred apparatus
`step of inputting occurred according to a first clock
`and method for generating and comparing non-predict
`50
`mechanism; putting the static variable and the first non
`able codes where a means for comparing non-predicta
`predictable code into a second computer independently
`ble codes is included in a calculator which generates a
`including the predetermined algorithm; using the algo
`non-predictable code;
`rithm of the second computer to independently calcu
`FIG. 2 is a front isometric view of a credit card sized
`late two or more second non-predictable codes on the
`calculator for calculating a first non-predictable code
`55
`basis of the static variable and two or more second
`for use in gaining clearance or access according to the
`dynamic variables defined by two or more cells of a
`invention;
`second interval of time in which the step of putting
`FIGS. 3A and 3B are a flow chart demonstrating a
`occurred according to a second clock mechanism, the
`most preferred series of steps carried out by an appara
`second interval of time comprising a central cell of time
`tus according to the invention and/or in a method ac
`and one or more bordering cells of time; comparing the
`cording to the invention; and,
`first non-predictable code with the second non-predict
`FIGS. 4-9 are diagrammatic representations of series
`able codes to determine a match; and, synchronizing the
`of resultant code cells separately generated by separate
`computers according to exemplary situations described
`first clock mechanism and the second clock mechanism
`upon comparison and matching of the first non-predict
`herein; each diagram sets forth the relationship vis a vis
`65
`able code with one of the second non-predictable codes.
`real time between resultant codes generated on the basis
`The step of synchronizing preferably comprises the
`of time as kept by separate clock mechanisms in the
`steps of: counting the difference in time between a cen
`separate computers generating the resultant codes ac
`
`30
`
`
`
`5
`
`O
`
`4,885,778
`6
`5
`cording to the corresponding exemplary conditions
`0.07 inches. In addition or as an alternative to providing
`microprocessor 20 with a liquid crystal display 45 for
`described with reference to each figure.
`visual observation of the first non-predictable code 40,
`DETALED DESCRIPTION OF THE
`computer 20 may include means for machine reading
`INVENTION
`the first non-predictable (or card resultant) code 40
`The following discussion describes the most pre
`and/or pin 45 to the ACM or host 50, or may include
`sound producing or other means for personally sensing
`ferred embodiments of the invention.
`the first non-predictable code 40.
`In accordance with the invention an authorized per
`son is provided with a fixed secret code or card seed 10,
`With reference to FIG. 3A, after the card and host
`pins are compared and found to match, step 110, the
`FIGS. 1, 1A, 2, 3A, typically a number, which is unique
`card seed 10 is typically compared against a library of
`to that individual. In the case of a credit or bank/cash
`card 20, FIG. 2, that number 10 may be printed on the
`card seeds stored in the host or ACM memory in order
`to determine whether there is a match, step 120, FIG.
`card itself such that if the authorized owner of the card
`forgets the number, it can be quickly retrieved by refer
`3A. If the card seed 10 input into the host or ACM 50
`ence to the card or other premanently printed form of 15
`does not match up with one of the seeds stored in the
`host library, access or clearance is denied, "no' step
`the fixed code 10. Where the fixed code/card seed 10 is
`provided in permanent printed form on or in close con
`120, FIG. 3A.
`For purposes of initial explanation the discussion
`nection with the apparatus of the invention there is also
`preferably provided an additional portion of the fixed
`which follows with reference to FIGS. and 1A as
`code 10, a so-called pin 45 (personal identification num
`sumes an embodiment of the invention whereby a single
`20
`resultant code 70 is generated by the host or ACM 50.
`ber), which the authorized user memorizes in order to
`further guard against misappropriation of the fixed
`The most preferred embodiment of the invention
`wherein the clock mechanisms which generate the re
`code/card seed 10. The fixed code/card seed 10 or pin
`45 may alternatively be used to identify an authorized
`Sultant codes 40 and 70, are synchronized and wherein
`terminal which has been issued by the authority presid
`the host or ACM preferably generates a series of resul
`25
`tant, non-predictable codes, as opposed to a single code
`ing over the granting of clearance or access.
`Such a fixed and/or memorized code (commonly
`70, is described hereinafter with reference to FIGS. 49.
`referred to as a pin 45, FIG. 3A or personal identifica
`In addition to using the seed 10 and/or pin 45 as static
`variables the predetermined algorithm is designed to
`tion number) is input into an access control module
`(“ACM') or host computer 50, FIGS. 1, 1A, 3 together
`utilize a second variable, a dynamic variable 30, 60,
`30
`with the unique static variable 10 and temporarily
`FIGS. 1, 1A, to calculate the non-predictable codes 40,
`70 which may ultimately give access or clearance 90 to
`stored within the memory of the host or ACM, step 100,
`the user. A dynamic variable may comprise any code,
`FG, 3A.
`Preferably once the card seed 10 and pin 45 are input
`typically a number, which is defined and determined by
`into the host or ACM 50, each is separately compared
`the interval of time in which the card seed 10 and/or pin
`35
`against a library of authorized card pins, step 110, FIG.
`45 is put into the algorithm of either the card computer
`3A, and a library of authorized card seeds, step 120,
`20 or the host or ACM 50. A dynamic variable is most
`FIG. 3A, stored in the host or ACM memory to deter
`preferably defined by the date and the minute in which
`the static variable is input into the predetermined algo
`mine whether there is a match. If either of the pin 45 or
`card seed 10 which the user inputs into the host or
`rithm. A dynamic variable thus defined can be seen to
`change every minute. The dynamic variable could alter
`ACM does not produce a match, clearance or access is
`natively be defined according to any interval of time,
`denied and the card user must start over in order to gain
`e.g., 2 minutes, 5 minutes, 1 hour and the like. A dy
`access or clearance.
`In order to generate a non-predictable code 40,
`namic variable thus defined would alternatively change
`FIGS. 1-3, which will ultimately give the user clear
`every 1 minute, 2 minutes, 5 minutes, 1 hour or with the
`45
`passage of any other predetermined interval of time.
`ance or access, the fixed code or seed 10 and/or pin 45
`must be input into a predetermined algorithm which
`With reference to FIG. 1 the most preferred means of
`manipulates the seed 10 and/or pin 45 as a static vari
`establishing such a dynamic variable is via a time keepe
`able. The algorithm is typically provided to the user in
`ing means, such as an electronic digital clock, which by
`conventional means automatically inputs, steps a1 or c1,
`the form of a calculator 20, FIG. 2, which is loaded
`50
`with a program for carrying out the predetermined
`the date and specific interval of time (e.g., l minute, 2
`algorithm. The calculator 20 preferably comprises an
`minutes, 5 minutes, etc.) into the predetermined algo
`electronic computer and most preferably comprises a
`rithm of the card 20 or host or ACM 50 in response to
`microprocessor having a sufficient amount of volatile
`the input, step a or c, of the static variable 10 and/or pin
`dynamic memory to store and carry out the functions of 55
`45. The date and time thus generated by the time keep
`the predetermined algorithm. The computer 20 is most
`ing means may itself be independently manipulated
`preferably provided in a card 20, FIG. 2, having the
`according to another predetermined algorithm prior to
`input into the first predetermined algorithm of the dy
`appearance and approximate size of a credit card.
`Such credit card sized computer 20, FIG. 2, also
`namic variable. The fact that the dynamic variable 30 or
`preferably includes a conventional liquid crystal display
`60 being input into the predetermined algorithm con
`44 for displaying the ultimate non-predictable code 40
`stantly changes in absolute value with passage of suc
`generated by the algorithm (referred to in FIG. 3A as
`cessive intervals of time of predetermined duration
`"card resultant code'). The non-predictable code 40
`means that the card code 40 or host or ACM code 70
`thus generated may be visually observed by the user for
`generated according to the predetermined algorithm is
`eventual input into a host computer or ACM50, FIGS.
`also constantly changing with successive intervals of
`time and is thereby completely non-predictable.
`1, 1A. 3. As shown in FIG. 2, the preferred form of card
`computer 20 has a length L of about 3.3 inches, a width
`The non-predictability of the codes 40, 70, FIG. 1,
`W of about 2.1 inches and a depth D of less than about
`generated in the manner described above may be en
`
`65
`
`
`
`4,885,778
`7
`expressed mathematically as f(x1, x2, ..
`hanced by the fact that the predetermined algorithm
`yn)=C.
`(together with the static variable 10 and/or pin 45 and
`dynamic variable 30 input thereinto) are preferably
`The specific form of the algorithm only assumes spe
`cial importance as part of the invention, therefore, when
`stored in the calculator 20 (and/or host or ACM 50) in
`the algorithm is capable of being discovered by would
`volatile dynamic electronic memory which is encapsu
`lated with an energizing means which destroys the algo
`be unauthorized users. In the most preferred embodi
`ment of the invention where the algorithm is com
`rithm, the card seed 10, and the dynamic variable 30 (or
`pletely undiscoverable by virtue of its storage in a vola
`60) when the electronic memory is invaded, interrupted
`tile dynamic electronic memory which destroys the
`or violated in any way. The predetermined algorithm
`algorithm upon attempted invasion of the encapsulated
`thus stored in such volatile dynamic memory cannot be
`10
`memory, the specific form of the algorithm comprises
`discovered by a would-be thief because the entire mem
`ory including the predetermined algorithm is destroyed
`only an incidental part of the invention. The mere fact
`of the use of some algorithm to manipulate the fixed
`upon invasion of the memory.
`code and the dynamic variable does, however, comprise
`In a preferred embodiment of the invention therefor
`a necessary part of the invention insofar as such an
`15
`the card seed 10 is stored in such volatile dynamic nem
`algorithm generates the ultimately important non
`ory and by conventional means is automatically input
`predictable code.
`step a, FIGS. 1, 1A, into the algorithm of the first com
`As the term "fixed code' or "card seed' or 'seed' is
`puter 20 at regular intervals of time. Such automatic
`used herein such terms include within their meaning
`inputting of the card seed 10 may thereby work in con
`numbers, codes, or the like which are themselves ma
`20
`junction with the automatic definition and inputting of
`nipulated or changed, mathematically or otherwise, in
`the first dynamic variable 30 into the predetermined
`some non-dynamic manner prior to or during the gener
`algorithm of the first computer 20 to effect completely
`ation of a second non-predictable code 40, FIG. 3A.
`automatic generation of the first non-predictable or
`The first 20 or second computer 50 may, for example, be
`resultant code 40 at regular intervals of time.
`provided with a static program/algorithm utilizing the
`25
`The invention most preferably contemplates provid
`fixed code or seed as a variable and generating a new
`ing authorized personnel with a card computer 20, FIG.
`fixed code or seed which is ultimately input as the fixed
`2, only, but not with knowledge of the predetermined
`code or seed 10 variable in the secret algorithm which
`algorithm included in the computer 20. Authorized
`generates the non-predictable codes. For example, for
`personnel are, therefore, provided with a computer 20
`purposes of added security, a fixed code or seed 10 may
`30
`capable of carrying out an algorithm which is unknown
`be first added to another number and the result thereof
`to such authorized personnel.
`used as the fixed code or seed 10 used to generate the
`In the most preferred embodiment of the invention
`non-predictable codes. Thus, the term fixed code or
`where the predetermined algorithm provided to autho
`seed includes within its meaning the result of any non
`rized users is stored in a volatile dynamic memory en
`dynamic operation performed on any fixed code or
`35
`capsulated with an energizing means which destroys the
`seed. It can be seen, therefore, that essentially any algo
`algorithm upon invasion of the memory, the only means
`rithm or operation may be performed on the fixed code
`of gaining unauthorized clearance or access is to misap
`10 to generate another fixed code or seed, the algorithm
`propriate possession of the original computer 20 itself
`or operation most preferably comprising a static algo
`and knowledge of the fixed code/car