|
Description  |
|
|
BACKGROUND OF THE INVENTION
The present invention relates to a portable, hand-held computing and
indicating device for generating and visually displaying non-predictable
codes and is adapted for use in a verification and identification system
of the type described in the application Ser. No. 676,626.
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 o 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.
Application Ser. No. 676,626 describes a system which provides a high level
of security while permitting verification to be achieved without requiring
any physical connection or electrical connection between the device in
possession of the individual and a central verification device, thus
permitting remote verification as by telephone. The system is also
relatively simple and requires only one way communication from the
individual seeking verification to the central verification computer. In
particular, this system has a first computer which generates a first
non-predictable code in response to a static variable applied to the
computer, the non-predictable code being generated in accordance with a
predetermined algorithm. The non-predictable code generated at a given
time is displayed and may be communicated to a second computer at the
verification station which computer generates a second non-predictable
code utilizing the same algorithm and in response to the fixed variable
and a second time dependent variable generated at the second computer. The
two non-predictable codes are compared and verification is signified if
the codes match. This invention relates to a portable hand held device
which may be utilized as a first computer in the above system.
SUMMARY OF THE INVENTION
The present invention relates to a hand held computing and indicating
device for use in a verification system of the type wherein a first
non-predictable code is generated at a first mechanism in accordance with
a predetermined algorithm in response to both a unique static variable and
a dynamic time dependent variable and a second non-predictable code is
generated at a second mechanism in accordance with the predetermined
algorithm in response to both the unique static variable and a second
dynamic time dependent variable which corresponds to the first variable.
The non-predictable codes are compared at the second mechanism to effect
verification. The device, which forms the first mechanism, includes a
processor having an algorithm preprogrammed therein and a means for
storing a static variable which is unique for each device. The device also
includes a means for generating a time-varying dynamic variable which is
substantially the same as that generated at the second mechanism at a
given instant of time. The stored unique static variable and the currently
generated dynamic variable are applied to the processor and the resulting
non-predictable code is visually displayed. The program for executing the
algorithm and the static variable are preferably stored in a volatile
memory which causes the program and the static variable to be erased if
any effort is made to gain access thereto. All or a portion of the static
variable may appear in visually perceptible form on the device.
BRIEF DESCRIPTION OF THE DRAWINGS
Other objects, features, and advantages will be apparent from the following
detailed description of preferred embodiments thereof taken in conjunction
with the accompanying drawings in which:
FIG. 1 is a block diagram of a basic apparatus and method according to the
invention of the application Ser. No. 676,626 for generating and comparing
non-predictable codes;
FIG. 1A is a block diagram of a preferred apparatus and method for
generating and comparing non predictable codes where a means for comparing
non predictable codes is included in a calculator which generates a
non-predictable code; and
FIG. 2 is a front isometric view of a credit card sized device of this
invention for calculating a first non-predictable code for use in gaining
clearance or access according to the invention.
DETAILED DESCRIPTION OF THE INVENTION
The following discussion describes the most preferred embodiments of the
invention.
In accordance with the invention an authorized person is provided with a
fixed secret code 10, FIGS. 1, 1A, 2, typically a number, which is unique
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 itself such that if the
authorized owner of the card forgets the number, it can be quickly
retrieved by reference to the card or other permanently printed form of
the fixed code 10. Where the fixed code 10 is provided in permanent
printed form on or in close connection with the apparatus of the invention
there is also preferably provided a additional portion of the fixed code
10 which the authorized user memorizes in order to further guard against
misappropriation of the fixed code. The fixed code may alternatively be
used to identify an authorized terminal which has been issued by the
authority presiding over the granting of clearance or access.
In order to generate a code which will ultimately give the user clearance
or access, the fixed code must be input into a predetermined algorithm
which manipulates the fixed code as a static variable. The algorithm is
typically provided to the user in the form of a first calculator which is
loaded with a program for carrying out the predetermined algorithm. With
reference to the Figures the calculator preferably comprises an electronic
computer 20 and most preferably comprises a microprocessor and a
sufficient amount of volatile dynamic memory to store and carry out the
functions of the predetermined algorithm. The computer 20 is most
preferably provided in a card 20, FIG. 2, having the appearance and
approximate size of a credit card.
Such credit card sized computer 20, FIG. 2, also preferably includes a
conventional liquid crystal display 45 for displaying the ultimate non
predictable code 40 generated by the algorithm. The non-predictable code
40 thus generated may be visually observed by the user for eventual input
into an access control means 50, FIGS. 1, 1A. As shown in FIG. 2, the
preferred form of computer 20 has a length L of about 3.3 inches, a width
W of about 2.1 inches and a depth D of less than about 0.7 inches. In
addition or as an alternative to providing microprocessor 20 with a liquid
crystal display 45 for visual observation of the first non-predictable
code 40, computer 20 may include means for machine reading the first
non-predictable code 40 to the access control means 50, FIG. 1A, or may
include sound producing or other means for personally sensing the first
non-predictable code 40.
In addition to using the fixed code 10 as a static variable the
predetermined algorithm is designed to utilize a second variable, a
dynamic variable 30, 60, FIGS. 1, 1A, to calculate the non predictable
codes 40, 70 which ultimately give access or clearance 90 to the user. The
dynamic variable may comprise any code, typically a number, which is
defined and determined by the interval of time in which the static
variable 10 is put into the algorithm. The dynamic variable is most
preferably defined by the date and the minute in which the static variable
is input into the predetermined algorithm. A dynamic variable thus defined
can be seen to change every minute. The dynamic variable could
alternatively be defined according to an interval of time, e.g., 2
minutes, 5 minutes, 1 hour and the like. A dynamic variable thus defined
would alternatively change every 1 minute, 2 minutes, 5 minutes, 1 hour or
passage of any other predetermined interval of time.
With reference to FIG. 1 the most preferred means of establishing such a
dynamic variable is via a time keeping means, such as an electronic
digital clock, which by conventional means automatically makes the dynamic
variable to a means which automatically inputs, steps a.sub.1 or c.sub.1,
the date and specific interval of time (e.g., 1 minute, 2 minutes, 5
minutes, etc.) into the predetermined algorithm in response to the input,
step a or c, of the static variable 10. The date and time thus generated
by the time keeping means may itself be independently manipulated
according to another predetermined algorithm prior to input into the first
predetermined algorithm of the dynamic variable. The fact that the dynamic
variable 30 or 60 being input into the predetermined algorithm constantly
changes in absolute value with passage of successive intervals of time of
predetermined duration means that the code 40 or 70 generated according to
the predetermined algorithm is also constantly changing with successive
intervals of time and is thereby completely non-predictable.
The non-predictability of the codes 40, 70, FIG. 1, generated in the manner
described above may be enhanced by the fact that the predetermined
algorithm (together with the static variable 10 and dynamic variable 30
input thereinto) may preferably be stored in the calculator 20 provided to
authorized users in volatile dynamic electronic memory which is
encapsulated with an energizing means which destroys the algorithm, the
static variable 10, and the dynamic variable 30 when the electronic memory
is invaded, interrupted or violated in any way. The predetermined
algorithm thus stored in such volatile electronic memory cannot be
discovered by a would-be thief because the entire memory including the
predetermined algorithm is destroyed upon invasion of the memory.
In a most preferred embodiment of the invention where the static
variable/fixed code 10 is stored in such volatile dynamic memory and by
conventional means is automatically input step a, FIGS. 1, 1A, into the
algorithm of the first computer at regular intervals of time. Such
automatic inputting of the fixed code 10 may thereby work in conjunction
with the automatic definition and inputting of the first dynamic variable
30 into the predetermined algorithm of the first computer 20 to effect
completely automatic generation of the first non-predictable code 40 at
regular intervals of time.
The invention most preferably contemplates providing authorized personnel
with a computer 20, FIGS. 1, 1A, 2, only, but not with knowledge of the
predetermined algorithm included in the computer 20. Authorized personnel
are, therefore, provided with a computer 20 capable of carrying out an
algorithm which is unknown to such authorized personnel.
In the most preferred embodiment of the invention where the predetermined
algorithm provided to authorized users is stored in a volatile dynamic
memory encapsulated with an energizing means which destroys the algorithm
upon invasion of the memory, the only means of gaining unauthorized
clearance or access 90 is to misappropriate possession of the original
computer 20 itself (and knowledge of the fixed code/static variable 10).
In an embodiment of the invention where the means for establishing the
dynamic variable 40 is not incorporated into the computers 20 themselves,
would-be unauthorized users would further require possession of an
appropriate means for defining the dynamic variable according to the
appropriate interval of time in which the fixed code/static variable 10 is
input, step a, FIGS. 1, 1A, into the predetermined algorithm of the
computer 20. The static variable/fixed code 10 is preferably stored within
volatile dynamic memory and automatically input into the predetermined
algorithm of the first computer for computation of the first
non-predictable code.
The algorithm may alternatively be designed to manipulate more than one
fixed code and/or more than one dynamic variable. Several means for
inputting each fixed code and dynamic variable may be included in the
calculator provided to users and in the access control means. Each dynamic
variable is preferably defined by the interval of time in which one or
more of the fixed codes (selected static variables) are input into the
algorithm.
It can be seen, therefore, that the predetermined algorithm can comprise
any one of an infinite variety of algorithms. The only specific
requirement for a algorithm to be suitable for use in the present
invention is that such algorithm generate a non-predictable code on the
basis of two classes of variables, static variables (the fixed codes) and
dynamic variables such as described hereinabove. A non-predictable code C
which is ultimately generated by the predetermined algorithm, f(x,y), may
be expressed mathematically as:
f(x,y)=C
where x is a static variable/fixed code and y is a dynamic variable. Where
several (n) static variables (x.sub.1 x.sub.2 . . . x.sub.n) and several
(n) dynamic variables (y.sub.1 y.sub.2 . . . y.sub.n) are intended for use
in generating non-predictable codes, a non-predictable code thus generated
may be expressed mathematically as f(x.sub.1, x.sub.2, . . . x.sub.n,
y.sub.1, y.sub.2, . . . y.sub.n,)=C.
The specific form of the algorithm only assumes special importance as part
of the invention, therefore, when the algorithm is capable of being
discovered by would be unauthorized users. In the most preferred
embodiment of the invention where the algorithm is completely
undiscoverable by virtue of its storage in a volatile dynamic electronic
memory which destroys the algorithm upon attempted invasion of the
encapsulated memory, the specific form of the algorithm comprises only an
incidental part of the invention. The mere fact of the use of some
algorithm to manipulate the fixed code and the dynamic variable does,
however, comprise a necessary part of the invention insofar as such an
algorithm generates the ultimately important non-predicable code.
With reference to FIG. 1, after a first non predictable code 40 is
generated as described above, such first non predictable code is compared
80 with another "second" non-predictable code 70 which is also generated
by the user by putting, step c, the fixed code/static variable 10 into an
access control means 50 which contains he same predetermined algorithm
used to generate the first non predictable code 40. With reference to FIG.
1A, in a preferred embodiment of the invention the first non-predictable
code 40 is put, step e.sub.2 into the access control means 50 essentially
immediately after the fixed secret code 10 is put into the access control
means 50 (i.e., step e.sub.2 is carried out essentially immediately after
step e) in order to gain clearance or access 90.
With reference to FIG. 1A, if steps e and e.sub.2 are not carried out
within the same interval of time as step a was carried out, then step c
will not generate a second dynamic variable 60 which will allow the
predetermined algorithm of the access control means 50 to generate a non
predictable code 70 which matches the 1st non-predictable code 40.
The second calculator typically comprises an access control means 50, FIG.
1, containing a program for carrying out the algorithm and a second means
for establishing a second dynamic variable 60 which is defined by the
interval of time in which the user puts, step c, the fixed code/static
variable 10 into the access control means 50. The second means for
establishing the second dynamic variable most preferably comprises a
second time-keeping means, such as a digital clock, which is synchronized
with the first time-keeping means so as to generate a dynamic variable 60
which when inputted into the access control means will generate a
non-predictable code 70 which matches code 40 only when steps b and c,
FIG. 1 (or steps e and e.sub.2, FIG. 1A) occur within the same interval of
time. Such second time keeping means preferably defines the second dynamic
variable 60 by the date and minute (or other predetermined interval of
time) in which the fixed code/static variable 10 is put, step c, into the
access control means.
The second time keeping means is preferably synchronized with the first
time keeping means such that if the fixed code 10, FIG. 1, is put into the
access control means 50 within the same predetermined interval of time
(i.e. 1 minute, 5 minutes, 1 hour, etc.) as the fixed code 10 is input
into the first computer 20, the second time keeping means generates, step
c.sub.1, the identical dynamic variable 60 as the first time keeping means
generates, step a.sub.1, and the algorithms of the first computer 10 and
the access control means 50 thereby generate, steps a.sub.2 and c.sub.2,
identical and matching non-predictable codes. As with the first time
keeping means the second time keeping means preferably puts, step c.sub.1,
the second dynamic variable 60 automatically into the access control means
50 in response to the putting, step c, of the fixed code/static variable
10 into the access control means 50. Steps a.sub.1 and c.sub.1, therefore,
preferably occur automatically upon the carrying out of steps a and c
respectively.
With reference to FIG. 1, once the second non predictable code 70 is
generated, step c.sub.2, by the second means for calculating 50, the first
non predictable code 40 is compared 80 with the second non predictable
code 70 and if they match the user is granted clearance access 90. The
means for comparing the two independently generated non-predictable codes
40, 70, typically comprises a comparison algorithm included in a computer
into which the first non-predictable code 40 and the second
non-predictable code 70 are input, steps b, c.sub.3, after they are
generated. Steps b and c.sub.3 are preferably carried out automatically in
the conventional manner.
The authorized user of the first computer 10, FIG. 1, is typically required
to personally sense the first non-predictable code 40 after steps a,
a.sub.1, and a.sub.2 are completed (e.g. by sight, sound or otherwise) and
then communicate, step c, the first non-predictable code to the means for
comparing 80. The second non-predictable code however is preferably
automatically communicated to the means for comparing 80.
Automatic communication of the second non-predictable code to the means for
comparing, step c.sub.3, is preferably accomplished by including a program
for comparing the non-predictable codes in the access control means 50
itself, whereby the comparison program communicates with the predetermined
algorithm included in the access control means 50. The second
non-predictable code 70 may alternatively by automatically communicated,
step c.sub.3, to a separate device including a conventional means for
comparing the non-predictable codes.
FIG. 1A depicts in block form the sequence of steps that would be carried
out in the most preferred form of the invention where the access control
means 50 includes the means for comparing the non-predictable codes. Fixed
code 10 is input, step a (also preferably automatic), into first computer
20 and the first dynamic variable 30 is automatically input, step a.sub.1,
into the first computer 20 in response to the carrying our of step a. The
first non predictable code 40 is then generated, step a.sub.2, essentially
automatically after the fixed code 10 is input, step a, into the first
computer 20. The first non-predictable code 40 is personally sensed by the
user and the fixed code 10 and the first non-predictable code 40 are then
input by conventional telephonic/electronic means, steps e and e.sub.2,
into the access control means 50. By conventional means step a inputs the
fixed code 10 into the predetermined algorithm and step e.sub.2
communicates the first non-predictable code 40 to the means for comparing
the first 40 and second 70 non-predictable codes. The second dynamic
variable 60 is automatically input, step e.sub.2, in response to the
carrying out of step e. The second non-predictable code 70, FIG. 1, is
automatically generated, step c.sub.2 by access control means 50 in
response to the carrying out of steps e and e.sub.1, FIG. 2. The second
non-predictable code 70, FIG. 1, is automatically communicated to the
comparison means 80 included in the access control means 50 of FIG. 1A.
Step e.sub.2 is preferably carries out essentially immediately after step
e is effected. The comparison means 80 included in the access control
means 50, FIG. 1A, thereby compares the non-predictable codes 40, 70, FIG.
1, essentially automatically upon the completion of steps e and e.sub.2.
With reference to FIG. 1A, where the access control means 50 is physically
remote from the first calculator 20, the fixed secret code 10 and the
first non-predictable code 40 are typically transmitted together (i.e. the
fixed code 10 first and the non-predictable code 40 following immediately
thereafter) to access control means 50 in the conventional manner. Such
transmission, steps e and e.sub.2, is typically effected by telephonic
transmission with or without the aid of a conventional modem. In the most
preferred embodiment of the invention, for example, where the first
calculator comprises a credit-card sized microprocessor 20, FIG. 2, having
a liquid crystal display 45, the user accomplishes step e.sub.2, FIG. 1A,
by first reading the non-predictable code 40 from the liquid crystal
display and then telephonically transmitting the fixed code 10 and the non
predictable 40 code to the access control means 50. The actual
transmission of the fixed code 10 and the non-predictable code 40 may
alternatively be effected by reading the codes 10 and/or 40 into the
access control means 50 by conventional electronic or mechanical means.
In most practical applications of the inventions the granting of clearance
or access 90, is effected automatically by conventional electronic means
if the non-predictable codes match when compared with each other.
With reference to FIG. 1, steps a and c must be performed within the same
interval of time of predetermined duration in order to generate equivalent
first 30 and second 60 dynamic variables and, a fortiori, matching first
40 and second 70 non-predictable codes.
In a preferred embodiment of the invention, step a, FIGS. 1, 1A, is carried
out automatically by suitable electronic means provided in the first
computer 20. Where step a is carried out automatically, the first non
predictable code 40 is, therefore, generated completely automatically by
first computer 20 every minute, 2 minutes or other predetermined interval
of time. In such a preferred embodiment, therefore, the invention will
generate matching non predictable codes 40, 70 is step c, alone, is
carried out by the user within the same minute or other predetermined
interval of time in which the dynamic variables 30, 60 are constantly
being established and re established by synchronized time keeping means.
With reference to FIG. 1A, in a most preferred embodiment of the invention
where step e.sub.2 occurs immediately after setp 3, the user must carry
out both of steps e and e.sub.2 within the same interval of time as the
first computer 20 has automatically generated the first non predictable
code 40.
FIG. 2 depicts the most preferred form of the calculator 20 of this
invention which is provided to authorized users for generating the first
non-predictable code 40. As shown in FIG. 2 the calculator 20 is of
substantially the same size as a conventional credit card and includes a
conventional liquid crystal display 45 for displaying the first
non-predictable code 40 to the user. The credit card/computer 20, FIG. 2,
typically bears the identity of the fixed code 10 printed on its face, and
includes both the means for generating the first dynamic variable 30,
FIGS. 1, 1A, and a microprocessor having a sufficient amount of volatile
dynamic memory to include the predetermined algorithm which generates the
first dynamic variable.
In the form of the invention where the goal is to grant access 90 to data
stored in one or more host computers remote from the first computers
issued to authorized users, an access control means 50 is typically
located in close physical proximity to such remotely located host
computers such as in a host computer room.
The access control means 50 itself typically comprises one or more master
access devices, physically remote from the first computers 20 issued to
users. Such master access control devices include a dictionary of many or
all of the unique fixed codes issued to authorized personnel (or assigned
to authorized terminals).
The access control means 50 may be portable such that it may be carried by
a security guard stationed at a central access location in a guarded
building or other facility. A security guard thus in possession of such an
access control mechanism would typically read the fixed 10 and
non-predictable code 40 appearing on the card 20, FIG. 2, of an authorized
person and input such codes 10, 40 into the portable access control
mechanism 50 to determine whether the bearer of the card is truly in
possession of a first computer 20 which was issued by the authority
establishing the secret predetermined algorithms.
As described herein protection of the secrecy of the predetermined
algorithm is preferably accomplished in the calculators provided to
authorized personnel by virtue of its storage in volatile dynamic memory
and encapsulation with a volatile dynamic energizing means. With respect
to the algorithm provided in the access control means secrecy may be
maintained in a similar manner or other conventional manner, e.g., by
physically guarding the access control means or requiring additional
access/user codes to gain direct access. Where all programs, data and
results of operation are stored in such volatile dynamic memory, the same
are similarly protected against invasion.
Although the invention contemplates some form of communication of the
result of operation carried out on the first computer 20, FIGS. 1, 1A, to
the access control means 50 (or the comprison means 80, if physically
separated from the access control means 50) in order to compare the
non-predictable codes 40, 70, the invention does not contemplate a talking
between the first computer 20 and the access control means 80 or any other
electronic device. Therefore, after the first computer 20 has calculated
the first non-predictable code 40, no other information need be
communicated to the first computer 20 from another device in order to gain
clearance or access.
It will now be apparent to those skilled in the art that other embodiments,
improvements, details, and uses can be made consistent with the letter and
spirit of the foregoing disclosure and within the scope of this patent,
which is limited only by the following claims, construed in accordance
with the patent law, including the doctrine of equivalents.
* * * * *
|
|
|
|
|
Description  |
|