WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and apparatus for synchronizing generation of separate, free running, time dependent equipment    
United States Patent4885778   
Link to this pagehttp://www.wikipatents.com/4885778.html
Inventor(s)Weiss; Kenneth P. (15 Dwight St., Boston, MA 02109)
AbstractAn 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 Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 4885778
Method and apparatus for synchronizing generation of separate, free

     running, time dependent equipment - US Patent 4885778 Drawing
Method and apparatus for synchronizing generation of separate, free running, time dependent equipment
Inventor     Weiss; Kenneth P. (15 Dwight St., Boston, MA 02109)
Owner/Assignee    
Patent assignment
All assignments
Publication Date     December 5, 1989
Application Number     06/802,579
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     November 27, 1985
US Classification     713/184 235/382 340/5.54 340/5.6 380/28 713/194
Int'l Classification     H04L 009/00
Examiner     Buczinski; Stephen C.
Assistant Examiner     Gregory; Bernarr Earl
Attorney/Law Firm     Oliverio; M. Lawrence
Address
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.
Priority Data    
USPTO Field of Search     364/200 364/900 364/571 235/382 235/380 375/110 370/104 370/103 368/46 368/47 380/23 380/24 380/25 380/28 380/48 178/22.08 178/22.09 178/22.17 340/825.31 340/825.34
Patent Tags     synchronizing generation separate, free running, time dependent equipment
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4720860
Weiss
713/184
Jan,1988

[0 after 0 votes]
4677617
O'Connor
370/478
Jun,1987

[0 after 0 votes]
4641322
Hasegawa
375/145
Feb,1987

[0 after 0 votes]
4636583
Bidell
380/260
Jan,1987

[0 after 0 votes]
4609777
Cargile
713/184
Sep,1986

[0 after 0 votes]
4599489
Cargile
705/52
Jul,1986

[0 after 0 votes]
4589066
Lam
713/375
May,1986

[0 after 0 votes]
4582434
Plangger
368/46
Apr,1986

[0 after 0 votes]
4543657
Wilkinson
375/367
Sep,1985

[0 after 0 votes]
4494211
Schwartz
375/356
Jan,1985

[0 after 0 votes]
4326098
Bouricius
713/155
Apr,1982

[0 after 0 votes]
4320387
Powell
705/39
Mar,1982

[0 after 0 votes]
4193073
Kohnen
342/56
Mar,1980

[0 after 0 votes]
4185166
Kinch, Jr.
380/43
Jan,1980

[0 after 0 votes]
4145568
Ehrat
380/47
Mar,1979

[0 after 0 votes]
4145569
Ehrat
380/262
Mar,1979

[0 after 0 votes]
4126761
Graupe
380/28
Nov,1978

[0 after 0 votes]
4104694
Hargrove
340/5.65
Aug,1978

[0 after 0 votes]
3995111
Tsuji
375/358
Nov,1976

[0 after 0 votes]
3900867
Wagner
342/45
Aug,1975

[0 after 0 votes]
3886451
Chu
368/118
May,1975

[0 after 0 votes]
3806874
Ehrat
713/185
Apr,1974

[0 after 0 votes]
3789653
Brejaud
73/1.45
Feb,1974

[0 after 0 votes]
3764742
Abbott
713/185
Oct,1973

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


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.
 Description Submit all comments and votes
 


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