Claims
- 1. A protection method for restricting access by a user to authorized ones of a plurality of software elements in a computer system where the computer system permanently stores an identity key, I.sub.k distinguishing the computer system from other computer systems having the same software elements, comprising,
- inputting a capability key, C.sub.k, into the computer system for unlocking a selecting one of said plurality of software elements, said capability key specifying authorization being possessed by the user with respect to said selected software element in said system,
- accessing an identity key, I.sub.k, stored in the computer system for identifying the computer system,
- transforming the capability key with the identity key to form a transformed key, T.sub.k, including,
- transforming the identity key, I.sub.k, by at least one operation to form more than one control number, B.sub.i,
- successively transforming the capability key, C.sub.k, using said control numbers, B.sub.i, and a set of reversible transformation functions F.sub.i to form the transformed capability key, T.sub.k, as follows,
- B.sub.i F.sub.i X.sub.i-1 =X.sub.i, i=1,2 . . . N
- wherein
- X.sub.0 =C.sub.k
- X.sub.N =T.sub.k,
- accessing a stored key S.sub.k, for said selected software element, said stored key defining authorization being expected for unlocking said selected software element,
- compairing said transformed key, T.sub.k, and said stored key S.sub.k,
- allowing access to said selected software element if the stored key corresponding to said selected software element matches said transformed key.
- 2. The method of claim 1 wherein the step of transforming the identity key, I.sub.k, by at least one operation consists of multiplying I.sub.k by a constant, J.sub.i, as follows,
- (I.sub.k)(J.sub.i)=B.sub.i, i=1,2 . . . N.
- 3. The method of claim 1 wherein said set of transformation functions includes a bit-by-bit EXCLUSIVE-OR operation.
- 4. The method of claim 1 wherein said set of transformation functions includes a bisecting permutation indicated by the symbol ##EQU4## as follows, ##EQU5##
- 5. The method of claim 4 wherein X.sub.i is a 32-bit number and wherein the bisecting permutation is performed in a numbers of steps, where the control number B.sub.i+1 is organized from a high-order bit to lower-order bits, as follows,
- if the high-order bit of the control number, B.sub.i+1 is "1", swap the left and right 16-bit groups of X.sub.i transform to form the first permuted value, X.sub.i1,
- if the next lower-order bit in B.sub.i+1 is "1", swap the leftmost two 8-bit groups of X.sub.il to form the left half of the next permuted value, X.sub.i2, if the next lower-order bit in B.sub.i+1 is "1", swap the rightmost two 8-bit groups of the X.sub.il value to form the right half X.sub.i2,
- if taken one at a time any of the next lower-order four bits of B.sub.i+1 are a "1" swap the left and right 4-bit halves of each of the corresponding next four 8-bit groups of X.sub.i2 to form the next permutted value, X.sub.i3, consisting of eight 4-bit groups, each 4-bit group having 2-bit left and right halves,
- if taken one at a time any of the next eight lower-order bits of B.sub.i+1 are "1" swap the corresponding left and right 2-bit halves of the eight 4-bit groups X.sub.i3 to form the next permutted value X.sub.i4 consisting of sixteen 2-bit groups, each group having a 1-bit left and 1-bit right half,
- if any one of the next sixteen lower-order bits of B.sub.i+1 is a "1" swap of the corresponding left and right 1-bit halves of the respective sixteen groups of X.sub.i4 to form the next permutted value, X.sub.i5.
- 6. A protection apparatus for restricting access by a user to authorized ones of a plurality of software elements in a computer system where the computer system permanently stores and identity key, I.sub.k distinguishing the computer system from other computer systems having the same software elements, comprising,
- means for inputting a capability key, C.sub.k, into the computer system for unlocking a selected one of said plurality of software elements said capability key specifying authorization being possessed by the user with respect to said selected software element in said system,
- means for accessing an identity key, I.sub.k, stored in the computer system for identifying the computer system,
- means for transforming the capability key with the identity key to form a transformed key, T.sub.k, including,
- means for transforming the identity key, I.sub.k, by at least one operation to form more than one control number, B.sub.i,
- means for successively transforming the capability key, C.sub.k,
- using said control numbers, B.sub.i, and a set of reversible transformation functions F.sub.i to form the transformed capability key, T.sub.k, as follows,
- B.sub.i F.sub.i C.sub.i-1 =X.sub.i, i=1,2 . . . N
- where
- X.sub.o =C.sub.k
- X.sub.n =T.sub.k.
- 7. The apparatus of claim 6 wherein means for transforming the identity key, I.sub.k, by at least one operation includes means for multiplying I.sub.k by a constant, J.sub.i, as follows,
- (I.sub.k) (J.sub.k)=B.sub.i, i=1,2 . . . N.
- 8. The apparatus of claim 6 wherein the first control number, B.sub.1, with the capability key C.sub.k, includes means for performing said set of transformation functions include a bit-by-bit EXCLUSIVE-OR operation [as follows:
- B.sub.1 .sym.C.sub.k =Y.sub.k
- wherein the operation symbol ".sym." indicates an EXCLUSIVE-OR is bit-by-bit between each pair of correspondings bits of B.sub.1 and C.sub.k and yields for corresponding bits of X.sub.k a "1" if the corresponding bits of B.sub.1 and C.sub.k are different and "0" if the corresponding bits of B.sub.1 and C.sub.k are the same.
- 9. The apparatus of claim 6 wherein the means for transforming the intermediate transform, X.sub.k, using the second control number, B.sub.2, includes means for performing a bisecting permutation indicated by the symbol ##EQU6## as follows, ##EQU7##
- 10. A protection method for restricting access by a user to authorized ones of a plurality of software elements in a computer system where the computer system permanently stores an identity key, I.sub.k distinguishing the computer system from other computer system having the same software elements, comprising,
- inputting a capability key, C.sub.k, into the computer system for unlocking a selected one of said plurality of software elements,
- accessing an identity key, I.sub.k, stored in the computer system for identifying the computer system,
- transforming the capability key with the identity key to form a transformed key, T.sub.k, including,
- transforming the identity key, I.sub.k, by at least one operation to form two numbers, B.sub.1 and B.sub.2, wherein the step of transforming the identity key, I.sub.k, by one or more operation includes multiplying I.sub.k by constants, to form B.sub.1 and B.sub.2 as follows:
- (I.sub.k)(J.sub.1)=B.sub.1
- (I.sub.k)(J.sub.2)=B.sub.2
- transforming the first control number, B.sub.1, with the capability key, C.sub.k, to yield an intermediate transform, X.sub.k, as follows:
- B.sub.1 .sym.C.sub.k =X.sub.k
- transforming the intermediate transform, X.sub.k, using the second control number, B.sub.2, to form the transformed capability key, T.sub.k, as follows:
- B.sub.2 .sym.X.sub.k =T.sub.k
- accessing a stored key, S.sub.k, for said selected software element,
- compairing said transformed key T.sub.k and said stored key, S.sub.k,
- unlocking said selected software element if the transformed key corresponding to said selected software element matches said stored key.
- 11. A protection method for restricting access by a user to authorized ones of a plurality of software elements in a computer system where said computer system includes storage for storing said software elements and for storing an element directory, said element directory having for each software element a name field for identifying the software element, having a location field for identifying the location in storage of the software element having the corresponding name in the element directory, and having a capability key field for storing a capability key and where the computer system permanently stores an identity key, I.sub.k, distinguishing the computer system from other computer systems having the same software elements, comprising,
- inputting a capability key, C.sub.k, into the computer system for unlocking a selected software element where said selected software element is one said plurability of software elements, said capability key specifying authorization being possessed by the user with respect to said selected software element in said system,
- accessing the identity key, I.sub.k, stored in the computer system for identifying the computer system,
- transforming the capability key, C.sub.k, with the identity key, I.sub.k, to form a transformed key, T.sub.k,
- accessing a stored key, S.sub.k, for said selected software element, said stored key defining authorization for unlocking said selected software element,
- compairing said transformed key, T.sub.k, and said stored key, S.sub.k,
- allowing access to said selected software element if the stored key corresponding to said selected element matches said transformed key, storing said capability key in the corresponding capability key field of the element directory if said transformed key matches said stored key corresponding to said selected one element.
- 12. The method of claim 11 further comprising, in response to a request by the computer system to access said selected software element, the steps of,
- accessing any capability key stored in the capability key field of the element directory of said selected software element,
- reaccessing the identity key,
- transforming the capability key accessed from the element directory with the identity key to reform a new transformed key,
- reaccessing the stored key for said selected software element,
- compairing said new transformed key and said stored key to determine if the transformed key and the stored key match,
- granting access to said selected software element if the transformed key and said stored key match.
- 13. The method of claim 12 further comprising the step of counting the number of unsuccessful attempts to access said selected software element,
- inhibiting further attempts to access said selected software element after the number of unsuccessful attempts reaches a predetermined number.
BACKGROUND OF THE INVENTION
This application is a continuation of application 06/725,254, filed Apr. 19, 1985, now abandoned.
US Referenced Citations (14)
Non-Patent Literature Citations (2)
Entry |
Denning, Cryptography and Data Security, p. 25; (Addison-Wesley, 1982). |
"Cipher Systems" by Beker and Piper, p. 180, 233-235, 1982. |
Continuations (1)
|
Number |
Date |
Country |
Parent |
725254 |
Apr 1985 |
|