Claims
- 1. A method for assigning encryption keys from a key matrix in an encryption system to plural encryption device manufacturers, comprising:
determining a number “q” of row segments, each row segment including plural rows in the matrix; generating plural slots, each slot including a row segment from each column; and assigning device keys to manufacturers by periodically assigning a respective slot to a respective manufacturer.
- 2. The method of claim 1, wherein slots are assigned to manufacturers on an as-needed basis.
- 3. The method of claim 1, wherein the determining act includes determining the number “q” such that a survivability of the system is maximized.
- 4. The method of claim 3, wherein device keys can be revoked, wherein a device having all keys revoked establishes a revoked device, and wherein the determining act includes determining the number “q” such that a predetermined maximum number of devices can be revoked devices while ensuring that a good device remains a functional device with a probability of at least (1−Q), wherein Q is a predefined device confidence.
- 5. The method of claim 1, wherein the act of generating plural slots includes:
receiving at least one parameter representing a characteristic of the key matrix; and using the parameter and an error-correcting code, defining plural slots.
- 6. The method of claim 5, wherein the error-correcting code is a Reed-Solomon code.
- 7. The method of claim 5, wherein the receiving act includes receiving at least the number “q” and a column parameter “n” representing the number of columns in the key matrix, and the method further includes:
using an error-correcting code having a Hamming distance “d” that minimizes overlap between slots.
- 8. The method of claim 7, comprising finding a code C (n,k,q,d) such that “q” is close to an optimum number q* of rows as possible, k=logq(M+m), wherein M is a total number of manufacturers, m is equal to a number of fully activated slots, and such that there exists an error correcting code for q, k, n, with a Hamming distance d that satisfies n−K(n−d)>0.
- 9. The method of claim 8, wherein the error-correcting code defines the slots using a total number of slots derived from a predefined number “M” of manufacturers.
- 10. The method of claim 5, wherein the error-correcting code is associated with a compact generating function and the method further comprises storing the compact generating function and an index of a stored slot, whereby no slots other than the index of the stored slot need be stored in that slots can be regenerated using the compact generating function and the index of the stored slot.
- 11. The method of claim 10, wherein the compact generating function is a generating matrix G, and the method further comprises transforming the compact generating function G to have a non-systematic segment assignment.
- 12. The method of claim 5, wherein the error-correcting code generates vectors over an alphabet having symbols, and the method further comprises renaming at least one symbol based on a pseudorandom permutation.
- 13. A computer program device, comprising:
a computer program storage device including a program of instructions usable by a computer, comprising:
logic means for defining, based on at least one error-correcting code, plural slots useful by respective devices for decrypting encrypted content.
- 14. The device of claim 13, wherein each slot represents a set of device keys in a key matrix.
- 15. The device of claim 13, further comprising logic means for associating plural slots with respective device manufacturers.
- 16. The device of claim 13, wherein the error-correcting code is a Reed-Solomon code.
- 17. The device of claim 13, wherein the means for defining includes:
logic means for receiving at least a number “q” representing a number of row segments in the key matrix and a column parameter “n” representing the number of columns in the key matrix; and logic means for using the error-correcting code having a Hamming distance “d” that minimizes overlap between slots.
- 18. The device of claim 17, wherein the error-correcting code defines the slots using a total number of slots derived from a predefined number “M” of manufacturers.
- 19. The device of claim 14, wherein device keys can be revoked, wherein a device having all keys revoked establishes a revoked device, and wherein the device includes means for determining a number “q” representing a number of row segments in the key matrix such that a predetermined maximum number of devices can be revoked devices awhile ensuring that a good device remains a functional device with a probability of at least (1−Q), wherein Q is a predefined device confidence.
- 20. A computer programmed with instructions to cause the computer to execute method acts including:
from an encryption key matrix having plural columns and plural rows, two or more rows establishing a row segment, a group of row segments establishing a slot, defining at least two slots to be assigned to respective manufacturers such that an assignation of encryption keys is non-discriminatory.
- 21. The computer of claim 20, wherein the defining act undertaken by the computer further includes determining a number “q” of row segments, and the method acts undertaken by the computer further include assigning device keys to manufacturers by periodically assigning a respective slot to a respective manufacturer.
- 22. The computer of claim 21, wherein slots are assigned to manufacturers on an as-needed basis.
- 23. The computer of claim 21, wherein the determining act undertaken by the computer includes determining the number “q” such that a survivability of the system is maximized.
- 24. The computer of claim 23, wherein device keys can be revoked, wherein a device having all keys revoked establishes a revoked device, and wherein the determining act undertaken by the computer includes determining the number “q” such that a predetermined maximum number of devices can be revoked devices while ensuring that a good device remains a functional device with a probability of at least (1−Q), wherein Q is a predefined statistic.
- 25. The computer of claim 21, wherein the act of defining at least two slots undertaken by the computer includes:
receiving at least one parameter representing a characteristic of the key matrix; and using the parameter and an error-correcting code, defining plural slots.
- 26. The computer of claim 7, wherein the computer further undertakes method acts including finding a code C (n,k,q,d) such that “q” is close to an optimum number q* of rows as possible, k=logq(M+m), wherein M is a total number of manufacturers, m is equal to a number of fully activated slots, and such that there exists an error correcting code for q, k, n, with a Hamming distance d that satisfies n−K(n−d)>0.
- 27. The computer of claim 26, wherein the error-correcting code is a Reed-Solomon code.
- 28. The computer of claim 25, wherein the error-correcting code is a linear code.
- 29. The computer of claim 25, wherein the receiving act undertaken by the computer includes receiving at least the number “q” and a column parameter “n” representing the number of columns in the key matrix, and the method acts undertaken by the computer further include:
using an error-correcting code having a Hamming distance “d” that minimizes overlap between slots.
- 30. The computer of claim 29, wherein the error-correcting code defines the slots using a total number of slots derived from a predefined number “M” of manufacturers.
- 31. The computer of claim 25, wherein the error-correcting code is associated with a compact generating function and the method acts undertaken by the computer further comprise storing the compact generating function and an index of a stored slot, whereby no slots other than the index of the stored slot need be stored in that slots can be regenerated using the compact generating function and the index of the stored slot.
- 32. The computer of claim 31, wherein the compact generating function is a generating matrix G, and the method acts undertaken by the computer further comprise transforming the compact generating function G to have a non-systematic segment assignment.
- 33. The computer of claim 25, wherein the error-correcting code generates vectors over an alphabet having symbols, and the method acts undertaken by the computer further comprise renaming at least one symbol based on a pseudorandom permutation.
PRIORITY CLAIM
[0001] This application is related to co-pending U.S. patent application Ser. No. 09/379,049, filed Aug. 23, 1999, 09/065,938, which is a continuation-in-part of U.S. patent application Ser. No. filed Apr. 24, 1998, now U.S. Pat. No. 6,118,873. Priority is claimed from both of the above documents, both of which are incorporated herein by reference.