Claims
- 1. A computer implemented method comprising:
receiving a first resource identification of a first resource to be published, and first peer system identifications of a first plurality of peer systems to be granted access to said first resource after its publication; generating a first resource key for use to encrypt the first resource; obtaining first encryption public keys of said first peer systems to be granted access to said first resource after its publication; generating a first resource key file for said first resource, including generating for said first peer systems to be granted access to said first resource after publication, entries of said first resource key of the first resource encrypted using said retrieved first encryption public keys of said first plurality of peer systems to be granted access to said first resource after publication; and publishing the first resource encrypted with said first resource key, along with said first resource key file, for selective access by said first plurality of peer systems.
- 2. The method of claim 1, wherein said first peer system identifications of said first plurality of peer systems to be granted access to said first resource after its publication comprise a first peer system identification individually identifying a first of said first plurality of peer systems.
- 3. The method of claim 2, wherein said first of said first plurality of peer systems is a user peer system.
- 4. The method of claim 2, wherein said first of said first plurality of peer systems is a gateway separating an internal network and external networks.
- 5. The method of claim 2, wherein said first of said first plurality of peer systems comprises a search engine.
- 6. The method of claim 1, wherein said first peer system identifications of said first plurality of peer systems to be granted access to said first resource after its publication comprise a first group identification collectively identifying a first subset of said first plurality of peer systems.
- 7. The method of claim 6, wherein said first group identification comprises a first peer system identification individually identifying a first of said first plurality of peer systems.
- 8. The method of claim 6, wherein said first group identification comprises a second group identification collectively identifying a second subset of said first subset of peer systems.
- 9. The method of claim 8, wherein said second group identification comprises said first group identification.
- 10. The method of claim 9, wherein said second subset of said first subset of peer systems comprises peer systems of one user.
- 11. The method of claim 1, wherein said first resource key is randomly generated.
- 12. The method of claim 1, wherein said first resource key is a symmetric encryption key.
- 13. The method of claim 1, wherein said first resource key is deterministically generated from a seed.
- 14. The method of claim 13, wherein said deterministic generation of said first resource key comprises
randomly generating and saving a seed value; initializing one or more operational constants to one or more integer values; and applying one or more one way hash functions to the seed value for one or more series of times in view of the one or more operational constants to generate or contribute to the generation of the first resource key.
- 15. The method of claim 14, wherein
said initializing comprises initializing a first operational constant to an integer value N; and said applying comprises applying a first one way hash function to the seed value for a first series of times denoted by the first operational constant.
- 16. The method of claim 14, wherein
said initializing comprises initializing at least a first and a second operational constant to a first and a second integer values N1 and N2, that functionally map to a third integer value N; and said applying comprises applying a first one way hash function to the seed value for a first series of times in view of the first operational constant, and applying said first and a second one way hash function to said seed value for a second and a third series of times in view of said first and second operational constants.
- 17. The method of claim 1, wherein said obtaining of first encryption public keys of said first plurality of peer systems to be granted access to said first resource after its publication comprises accessing first client key files of said first plurality of peer systems.
- 18. The method of claim 17, wherein said accessing of first client key files of said first plurality of peer systems comprises accessing a first client key file of a first of said first plurality of peer systems.
- 19. The method of claim 17, wherein said accessing of first client key files of said first plurality of peer systems comprises accessing a first client key file of a first group of said first plurality of peer systems.
- 20. The method of claim 1, wherein said generating of a first resource key file for said first resource, including generating for said first plurality of peer systems to be granted access to said first resource after publication, entries of said first resource key of the first resource encrypted using the retrieved first encryption public keys of the first plurality of peer systems to be granted access to said first resource after publication comprises generating a first entry of said first resource key of the first resource encrypted using a first of the retrieved first encryption public keys corresponding to a first of the first plurality of peer systems.
- 21. The method of claim 20, wherein said first of said first plurality of peer systems is a user peer system.
- 22. The method of claim 20, wherein said first of said first plurality of peer systems is a gateway separating an internal network and external networks.
- 23. The method of claim 20, wherein said first of said first plurality of peer systems comprises a search engine.
- 24. The method of claim 1, wherein said generating of a first resource key file for said first resource, including generating for said first plurality of peer systems to be granted access to said first resource after publication, entries of said first resource key of the first resource encrypted using the retrieved first encryption public keys of the first plurality of peer systems to be granted access to said first resource after publication comprises generating a first entry of said first resource key of the first resource encrypted using a first of the retrieved first encryption public keys corresponding to a first group of the first plurality of peer systems.
- 25. The method of claim 1, wherein at least one of said generations of encrypted resource keys comprises encrypting the encrypted resource key one or more further times with a password.
- 26. The method of claim 1, wherein said publishing of the first resource comprises notifying a resource locator server of the availability of the first resource and the associated first resource key file for access by authorized grantee systems including providing said resource locator server with said first resource identification of the first resource and a second resource identification identifying the associated first resource key file.
- 27. The method of claim 1, wherein
said generating of the first resource key file further comprises generating an entry of an obfuscated identification of the first resource encrypted using the first resource key; and said publishing of the first resource comprises notifying a resource locator server of the availability of the first resource and the associated first resource key file for access by authorized grantee systems including providing said resource locator server with a first obfuscated identification of the first resource and a second resource identification identifying the associated first resource key file.
- 28. The method of claim 1, wherein the method further comprises
generating a first access control list for the first resource including said first peer system identifications of said first plurality of peer systems, and said first resource key.
- 29. The method of claim 1, wherein the method further comprises
receiving from a peer system a request for the first resource key file of the first resource; and providing in response to the requesting peer system said first resource key file of the first resource.
- 30. The method of claim 1, wherein the method further comprises
receiving from a peer system a request for the first resource, with the first resource being referenced by said first resource identification; and providing in response to the requesting peer system said first resource in an encrypted form, said first resource being published under said first resource identification.
- 31. The method of claim 1, wherein the method further comprises
receiving from a peer system a request for the first resource, with the first resource being referenced by said first resource identification; and providing in response to the requesting peer system said first resource key file of the first resource, said first resource being published under a first obfuscated identification.
- 32. The method of claim 1, wherein the method further comprises
receiving from a peer system a request for the first resource, with the first resource being referenced by a first obfuscated identification under which the first resource is published; and providing in response to the requesting peer system said first resource in an encrypted form.
- 33. The method of claim 1, wherein the method further comprises
encrypting said first resource using said first resource key.
- 34. The method of claim 1, wherein said first resource is a selected one of a directory, a sub-directory, a data file and an executable.
- 35. The method of claim 1, wherein said first resource is a selected one of a directory and a sub-directory, and the method further comprises
receiving from a peer system a request for a second resource that is a member of the first directory/sub-directory resource; and providing in response to the requesting peer system the requested second resource encrypted using said first resource key of the first resource, said second resource not having an associated resource key file, and said first resource being the closest ancestor resource having an associated resource key file.
- 36. The method of claim 1, wherein said first resource is a selected one of a directory and a sub-directory, and the method further comprises
receiving a second resource identification of a second resource to be published, and second peer system identifications of a second plurality of peer systems to be granted access to said second resource after its publication, said second resource being a member of said first directory/sub-directory resource; generating a second resource key for use to encrypt the second resource; obtaining second encryption public keys of said second peer systems to be granted access to said second resource after its publication; generating a second resource key file for said second resource, including generating for said second peer systems to be granted access to said second resource after publication, entries of said second resource key of the second resource encrypted using said retrieved second encryption public keys of said second plurality of peer systems to be granted access to said second resource after publication; and publishing the second resource, along with said second resource key file, for selective access by said second plurality of peer systems;
- 37. The method of claim 36, wherein the method further comprises
receiving from a peer system a request for the second resource key file of the second resource; and providing in response to the requesting peer system said second resource key file of the second resource.
- 38. The method of claim 36, wherein the method further comprises
receiving from a peer system a request for the second resource, with the second resource being correctly referenced; and providing in response to the requesting peer system said second resource encrypted using said second resource key.
- 39. The method of claim 1, wherein the method further comprises
generating a selected one of a first signature and a first hash value of the first resource for a first peer system using a first signing private key of the first peer system; and adding said selected one of the first signature and the first hash value to said first resource key file.
- 40. The method of claim 39, wherein
the method further comprises encrypting said selected one of the first signature and the first hash value using said first resource key of the first resource; and said adding comprises adding said encrypted selected one of the first signature and the hash value to said first resource key file.
- 41. The method of claim 1, wherein the method further comprises
generating a selected one of a first signature and a first hash value of a second resource, descendant of said first resource, for a first peer system using a first signing private key of the first peer system; and adding said selected one of the first signature and the first hash value to said first resource key file.
- 42. The method of claim 41, wherein
the method further comprises encrypting said selected one of the first signature and the first hash value using said first resource key of the first resource; and said adding comprises adding said encrypted selected one of the first signature and the first hash value to said first resource key file.
- 43. A computer implemented method to generate a resource key for a resource to be published, comprising:
randomly generating and saving a seed value; initializing one or more operational constants to one or more integer values; and applying one or more one way hash functions to the seed value for one or more series of times in view of the one or more operational constants to generate or contribute to the generation of the resource key.
- 44. The method of claim 43, wherein
said initializing comprises initializing a first operational constant to an integer value N; and said applying comprises applying a first one way hash function to the seed value for a first series of times denoted by the first operational constant.
- 45. The method of claim 43, wherein
said initializing comprises initializing at least a first and a second operational constant to a first and a second integer values N1 and N2, that functionally map to a third integer value N; and said applying comprises applying a first one way hash function to the seed value for a first series of times in view of the first operational constant, and applying said first and a second one way hash function to said seed value for a second and a third series of times in view of said first and second operational constants.
- 46. A computer implemented method for generating a resource key file for a resource to be published in an encrypted form, the method comprising
obtaining encryption public keys of a plurality of peer systems to be granted access to said resource after its publication in said encrypted form; generating a plurality of encrypted resource key entries by encrypting a resource key of said resource encrypted using corresponding ones of said obtained encryption public keys of said plurality of peer systems.
- 47. The method of claim 46, wherein said plurality of peer systems comprise a user peer system.
- 48. The method of claim 46, wherein said plurality of peer systems comprise a gateway separating an internal network and external networks.
- 49. The method of claim 46, wherein said plurality of peer systems comprise a search engine.
- 50. The method of claim 46, wherein said obtained encryption public keys comprise a group encryption public key for a subset of said plurality of peer systems which are members of a group.
- 51. The method of claim 46, wherein the method further comprises
generating a selected of a signature and a hash value of the resource for a peer system using a signing private key of the peer system; and adding said selected on of said signature and said hash value to said resource key file.
- 52. The method of claim 51, wherein the method further comprises
the method further comprises encrypting said selected one of the signature and the hash value using said resource key of the resource; and said adding comprises adding said encrypted selected one of the signature and the hash value to said resource key file.
- 53. The method of claim 46, wherein the method further comprises
generating a selected one of a signature and a hash value of a descendant resource of said resource for a peer system using a signing private key of the peer system; adding said selected one of said signature and said hash value to said resource key file.
- 54. The method of claim 53, wherein the method further comprises
the method further comprises encrypting said selected one of the signature and the hash value using said resource key of the resource; and said adding comprises adding said encrypted selected one of the signature and the hash value to said resource key file.
- 55. A computer implemented method comprising
generating an encryption private key for a group in a deterministic manner from a random seed; generating a corresponding encryption public key for the group; publishing the corresponding encryption public key in a client key file for use by resource publishers to effectively grant access to resources published by the resource publishers to members of the group; and publishing the deterministically generated encryption private key of the group for members of the group to access authorized published resources.
- 56. The method of claim 55, wherein said generating of an encryption private key for a group in a deterministic manner comprises
generating and saving a random seed value; initializing one or more operational constants to one or more integer values; and applying one or more one way hash functions to the seed value for one or more series of times in view of the one or more operational constants to generate or contribute to the generation of the encryption private key for the group.
- 57. The method of claim 56, wherein
said initializing comprises initializing a first operational constant to an integer value N; and said applying comprises applying a first one way hash function to the seed value for a first series of times denoted by the first operational constant.
- 58. The method of claim 56, wherein
said initializing comprises initializing at least a first and a second operational constant to a first and a second integer values N1 and N2, that functionally map to a third integer value N; and said applying comprises applying a first one way hash function to the seed value for a first series of times in view of the first operational constant, and applying said first and a second one way hash function to said seed value for a second and a third series of times in view of said first and second operational constants.
- 59. The method of claim 55, wherein said method further comprises
re-generating the encryption public and private keys of the group when a member is removed from the group; and re-publishing the re-generated encryption public and private keys of the group for use by resource publishers and members of the group respectively.
- 60. The method of claim 59, wherein
said initial generating of an encryption private key for a group in a deterministic manner comprises randomly generating and saving a seed value and an associated operational variable N, initialized to a constant, and applying a one way hash function to the seed value for a number of times as specified by the current value of the operational variable to generate the encryption private key of the group; and said re-generating of the encryption private key for the group comprises
decrementing the operational variable in a pre-determine manner, and applying the one way hash function to the seed value for a number of times as specified by the current value of the operational constant to re-generate the encryption private key of the group.
- 61. The method of claim 59, wherein said publishing of the deterministically generated encryption private key of the group for members of the group to access authorized published resources comprises retrieving a first encryption public key of a first member, generating a first encrypted entry of the group's encryption private key using the retrieved first encryption public key of the first member, and placing the generated first encrypted entry into a group key file.
- 62. The method of claim 61, wherein said publishing of the deterministically generated encryption private key of the group for members of the group to access authorized published resources further comprises repeating said retrieving, generating, and placing for each member.
- 63. The method of claim 61, wherein said publishing of the deterministically generated encryption private key of the group for members of the group to access authorized published resources further comprises publishing the group key file.
- 64. A computer implemented method comprising
receiving from a peer system a request for a resource published in an obfuscated manner; providing in response to the requesting peer system said requested resource in an encrypted form, if said request references said resource by its obfuscated identification.
- 65. The method of claim 64, wherein the method further comprises
providing in response to the requesting peer system a resource key file of the resource, if said request references said resource by its plain identification.
- 66. A peer system comprising:
storage medium having stored therein a plurality of programming instructions designed to enable the peer system to
receive a first resource identification of a first resource to be published, and first peer system identifications of a first plurality of other peer systems to be granted access to said first resource after its publication, generate a first resource key for use to encrypt the first resource; obtain first encryption public keys of said first other peer systems to be granted access to said first resource after its publication, generate a first resource key file for said first resource, including
generating for said first other peer systems to be granted access to said first resource after publication, entries of said first resource key of the first resource encrypted using said retrieved first encryption public keys of said first plurality of other peer systems to be granted access to said first resource after publication, and publish the first resource encrypted with said first resource key, along with said first resource key file, for selective access by said first plurality of other peer systems; and a processor coupled to the storage medium to execute the programming instructions.
- 67. The peer system of claim 66, wherein said first peer system identifications of said first plurality of other peer systems to be granted access to said first resource after its publication comprise a first peer system identification individually identifying a first of said first plurality of other peer systems.
- 68. The peer system of claim 67, wherein said first of said first plurality of other peer systems is a user peer system.
- 69. The peer system of claim 67, wherein said first of said first plurality of other peer systems is a gateway separating an internal network and external networks.
- 70. The peer system of claim 67, wherein said first of said first plurality of other peer systems comprises a search engine.
- 71. The peer system of claim 66, wherein said first peer system identifications of said first plurality of peer systems to be granted access to said first resource after its publication comprise a first group identification collectively identifying a first subset of said first plurality of other peer systems.
- 72. The peer system of claim 71, wherein said first group identification comprises a first peer system identification individually identifying a first of said first plurality of other peer systems.
- 73. The peer system of claim 71, wherein said first group identification comprises a second group identification collectively identifying a second subset of said first subset of peer systems.
- 74. The peer system of claim 73, wherein said second group identification comprises said first group identification.
- 75. The peer system of claim 74, wherein said second subset of said first subset of peer systems comprises peer systems of one user.
- 76. The peer system of claim 66, wherein said first resource key is randomly generated.
- 77. The peer system of claim 66, wherein said first resource key is a symmetric encryption key.
- 78. The peer system of claim 66, wherein said first resource key is deterministically generated from a seed.
- 79. The peer system of claim 78, wherein said programming instructions are designed to enable the peer system to perform said deterministic generation of said first resource key by
randomly generating and saving a seed value; initializing one or more operational constants to one or more integer values; and applying one or more one way hash functions to the seed value for one or more series of times in view of the one or more operational constants to generate or contribute to the generation of the first resource key.
- 80. The peer system of claim 79, wherein said programming instructions are designed to enable the peer system to perform
said initializing by initializing a first operational constant to an integer value N; and said applying by applying a first one way hash function to the seed value for a first series of times denoted by the first operational constant.
- 81. The peer system of claim 79, wherein said programming instructions are designed to enable the peer system to perform
said initializing by initializing at least a first and a second operational constant to a first and a second integer values N1 and N2, that functionally map to a third integer value N; and said applying by applying a first one way hash function to the seed value for a first series of times in view of the first operational constant, and applying said first and a second one way hash function to said seed value for a second and a third series of times in view of said first and second operational constants.
- 82. The peers system of claim 66, wherein said programming instructions are designed to enable the peer system to perform said obtaining of first encryption public keys of said first plurality of other peer systems to be granted access to said first resource after its publication by accessing first client key files of said first plurality of other peer systems.
- 83. The peer system of claim 82, wherein said programming instructions are designed to enable the peer system to perform said accessing of first client key files of said first plurality of other peer systems by accessing a first client key file of a first of said first plurality of other peer systems.
- 84. The peer system of claim 82, wherein said programming instructions are designed to enable the peer system to perform said accessing of first client key files of said first plurality of other peer systems by accessing a first client key file of a first group of said first plurality of other peer systems.
- 85. The peer system of claim 66, wherein said programming instructions are designed to enable the peer system to perform said generating of a first resource key file for said first resource, including generating for said first plurality of other peer systems to be granted access to said first resource after publication, entries of said first resource key of the first resource encrypted using the retrieved first encryption public keys of the first plurality of other peer systems to be granted access to said first resource after publication by generating a first entry of said first resource key of the first resource encrypted using a first of the retrieved first encryption public keys corresponding to a first of the first plurality of other peer systems.
- 86. The peer system of claim 85, wherein said first of said first plurality of other peer systems is a user peer system.
- 87. The peer system of claim 85, wherein said first of said first plurality of other peer systems is a gateway separating an internal network and external networks.
- 88. The peer system of claim 85, wherein said first of said first plurality of other peer systems comprises a search engine.
- 89. The peer system of claim 86, wherein said programming instructions are designed to enable the peer system to perform said generating of a first resource key file for said first resource, including generating for said first plurality of other peer systems to be granted access to said first resource after publication, entries of said first resource key of the first resource encrypted using the retrieved first encryption public keys of the first plurality of other peer systems to be granted access to said first resource after publication by generating a first entry of said first resource key of the first resource encrypted using a first of the retrieved first encryption public keys corresponding to a first group of the first plurality of other peer systems.
- 90. The peer system of claim 66, wherein said programming instructions are designed to enable the peer system to perform at least one of said generations of encrypted resource keys by encrypting the encrypted resource key one or more further times with a password.
- 91. The peer system of claim 66, wherein said programming instructions are designed to enable the peer system to perform said publishing of the first resource by notifying a resource locator server of the availability of the first resource and the associated first resource key file for access by authorized grantee systems including providing said resource locator server with said first resource identification of the first resource and a second resource identification identifying the associated first resource key file.
- 92. The peer system of claim 65, wherein said programming instructions are designed to enable the peer system to perform
said generating of the first resource key file by further generating an entry of an obfuscated identification of the first resource encrypted using the first resource key; and said publishing of the first resource by notifying a resource locator server of the availability of the first resource and the associated first resource key file for access by authorized grantee systems including providing said resource locator server with a first obfuscated identification of the first resource and a second resource identification identifying the associated first resource key file.
- 93. The peer system of claim 66, wherein said programming instructions are further designed to enable the peer system to generate a first access control list for the first resource including said first peer system identifications of said first plurality of other peer systems, and said first resource key.
- 94. The peer system of claim 66, wherein said programming instructions are further designed to enable the peer system to
receive from a first of said first plurality of other peer systems a request for the first resource key file of the first resource; and provide in response to the requesting first other peer system said first resource key file of the first resource.
- 95. The peer system of claim 66, wherein said programming instructions are further designed to enable the peer system to
receive from a first of said first plurality of other peer systems a request for the first resource, with the first resource being referenced by said first resource identification; and provide in response to the requesting first other peer system said first resource in an encrypted form, said first resource being published under said first resource identification.
- 96. The peer system of claim 66, wherein said programming instructions are further designed to enable the peer system to
receive from a first of the first plurality of other peer systems a request for the first resource, with the first resource being referenced by said first resource identification; and provide in response to the requesting first other peer system said first resource key file of the first resource, said first resource being published under a first obfuscated identification.
- 97. The peer system of claim 66, wherein said programming instructions are further designed to enable the peer system to
receive from a first of the first plurality of other peer systems a request for the first resource, with the first resource being referenced by a first obfuscated identification under which the first resource is published; and provide in response to the requesting first other peer system said first resource in an encrypted form.
- 98. The peer system of claim 66, wherein said programming instructions are further designed to enable the peer system to encrypt said first resource using said first resource key.
- 99. The peer system of claim 66, wherein said first resource is a selected one of a directory, a sub-directory, a data file and an executable.
- 100. The peer system of claim 66, wherein said first resource is a selected one of a directory and a sub-directory, and said programming instructions are further designed to enable the peer system to
receive from a first of the first plurality of other peer systems a request for a second resource that is a member of the first directory/sub-directory resource; and provide in response to the requesting the first other peer system the requested second resource encrypted using said first resource key of the first resource, said second resource not having an associated resource key file, and said first resource being the closest ancestor resource having an associated resource key file.
- 101. The peer system of claim 66, wherein said first resource is a selected one of a directory and a sub-directory, and said programming instructions are further designed to enable the peer system to
receive a second resource identification of a second resource to be published, and second peer system identifications of a second plurality of other peer systems to be granted access to said second resource after its publication, said second resource being a member of said first directory/sub-directory resource; generate a second resource key for use to encrypt the second resource; obtain second encryption public keys of said second other peer systems to be granted access to said second resource after its publication; generate a second resource key file for said second resource, including
generating for said second other peer systems to be granted access to said second resource after publication, entries of said second resource key of the second resource encrypted using said retrieved second encryption public keys of said second plurality of other peer systems to be granted access to said second resource after publication; and publish the second resource, along with said second resource key file, for selective access by said second plurality of other peer systems;
- 102. The peer system of claim 101, wherein said programming instructions are further designed to enable the peer system to
receive from a first of said first plurality of other peer systems a request for the second resource key file of the second resource; and provide in response to the requesting first other peer system said second resource key file of the second resource.
- 103. The peer system of claim 101, wherein said programming instructions are further designed to enable the peer system to
receive from a first of said first plurality of other peer systems a request for the second resource, with the second resource being correctly referenced; and provide in response to the requesting first other peer system said second resource encrypted using said second resource key.
- 104. The peer system of claim 66, wherein said programming instructions are further designed to enable the peer system to
generate a selected one of a first signature and a first hash value of the first resource for a first other peer system using a first signing private key of the first other peer system; and add said selected one of the first signature and the first hash value to said first resource key file.
- 105. The peer system of claim 104, wherein said programming instructions are further designed to enable the peer system to
encrypt said selected one of the first signature and the first hash value using said first resource key of the first resource; and perform said adding by adding said encrypted selected one of the first signature and the hash value to said first resource key file.
- 106. The peer system of claim 66, wherein said programming instructions are further designed to enable the peer system to
generate a selected one of a first signature and a first hash value of a second resource, descendant of said first resource, for a first other peer system using a first signing private key of the first other peer system; and add said selected one of the first signature and the first hash value to said first resource key file.
- 107. The peer system of claim 106, wherein said programming instructions are further designed to enable the peer system to
encrypt said selected one of the first signature and the first hash value using said first resource key of the first resource; and perform said adding by adding said encrypted selected one of the first signature and the first hash value to said first resource key file.
- 108. A peer system comprising:
storage medium having stored therein a plurality of programming instructions designed to enable the peer system to
randomly generate and saving a seed value; initialize one or more operational constants to one or more integer values; and apply one or more one way hash functions to the seed value for one or more series of times in view of the one or more operational constants to generate or contribute to the generation of the resource key; and at least one processor coupled to the storage medium to execute the programming instructions.
- 109. The peer system of claim 108, wherein said programming instructions are further designed to enable the peer system to perform
said initializing by initializing a first operational constant to an integer value N; and said applying by applying a first one way hash function to the seed value for a first series of times denoted by the first operational constant.
- 110. The peer system of claim 108, wherein said programming instructions are further designed to enable the peer system to perform
said initializing by initializing at least a first and a second operational constant to a first and a second integer values N1 and N2, that functionally map to a third integer value N; and said applying by applying a first one way hash function to the seed value for a first series of times in view of the first operational constant, and applying said first and a second one way hash function to said seed value for a second and a third series of times in view of said first and second operational constants.
- 111. A peer system comprising:
storage medium having stored therein a plurality of programming instructions designed to enable the peer system to
obtain encryption public keys of a plurality of other peer systems to be granted access to said resource after its publication in said encrypted form, and generate a plurality of encrypted resource key entries by encrypting a resource key of said resource encrypted using corresponding ones of said obtained encryption public keys of said plurality of other peer systems; and at least one processor coupled to the storage medium to execute the programming instructions.
- 112. The peer system of claim 111, wherein said plurality of other peer systems comprise a user peer system.
- 113. The peer system of claim 111, wherein said plurality of other peer systems comprise a gateway separating an internal network and external networks.
- 114. The peer system of claim 111, wherein said plurality of other peer systems comprise a search engine.
- 115. The peer system of claim 111, wherein said obtained encryption public keys comprise a group encryption public key for a subset of said plurality of other peer systems which are members of a group.
- 116. The peer system of claim 111, wherein said programming instructions are further designed to enable the peer system to
generate a selected of a signature and a hash value of the resource for a first of said other peer systems using a signing private key of the first other peer system; and add said selected on of said signature and said hash value to said resource key file.
- 117. The peer system of claim 116, wherein said programming instructions are further designed to enable the peer system to
encrypt said selected one of the signature and the hash value using said resource key of the resource; and perform said adding by adding said encrypted selected one of the signature and the hash value to said resource key file.
- 118. The peer system of claim 111, wherein said programming instructions are further designed to enable the peer system to
generate a selected one of a signature and a hash value of a descendant resource of said resource for a first of said other peer systems using a signing private key of the first other peer system; and add said selected one of said signature and said hash value to said resource key file.
- 119. The peer system of claim 118, wherein said programming instructions are further designed to enable the peer system to
encrypt said selected one of the signature and the hash value using said resource key of the resource; and perform said adding comprises adding said encrypted selected one of the signature and the hash value to said resource key file.
- 120. A peer system comprising:
storage medium having stored therein a plurality of programming instructions designed to enable the peer system to
generate an encryption private key for a group in a deterministic manner from a random seed, generate a corresponding encryption public key for the group, publish the corresponding encryption public key in a client key file for use by resource publishers to effectively grant access to resources published by the resource publishers to members of the group, and publish the deterministically generated encryption private key of the group for members of the group to access authorized published resources; at least one processor coupled to the storage medium to execute the programming instructions.
- 121. The peer system of claim 120, wherein said programming instructions are further designed to enable the peer system to perform said generating of an encryption private key for a group in a deterministic manner by
generating and saving a random seed value; initializing one or more operational constants to one or more integer values; and applying one or more one way hash functions to the seed value for one or more series of times in view of the one or more operational constants to generate or contribute to the generation of the encryption private key for the group.
- 122. The peer system of claim 121, wherein said programming instructions are further designed to enable the peer system to perform
said initializing by initializing a first operational constant to an integer value N; and said applying by applying a first one way hash function to the seed value for a first series of times denoted by the first operational constant.
- 123. The peer system of claim 121, wherein said programming instructions are further designed to enable the peer system to perform
said initializing by initializing at least a first and a second operational constant to a first and a second integer values N1 and N2, that functionally map to a third integer value N; and said applying by applying a first one way hash function to the seed value for a first series of times in view of the first operational constant, and applying said first and a second one way hash function to said seed value for a second and a third series of times in view of said first and second operational constants.
- 124. The peer system of claim 120, wherein said programming instructions are further designed to enable the peer system to
re-generate the encryption public and private keys of the group when a member is removed from the group; and re-publish the re-generated encryption public and private keys of the group for use by resource publishers and members of the group respectively.
- 125. The peer system of claim 124, wherein said programming instructions are further designed to enable the peer system to perform
said initial generating of an encryption private key for a group in a deterministic manner by randomly generating and saving a seed value and an associated operational variable N, initialized to a constant, and applying a one way hash function to the seed value for a number of times as specified by the current value of the operational variable to generate the encryption private key of the group; and said re-generating of the encryption private key for the group by decrementing the operational variable in a pre-determine manner, and applying the one way hash function to the seed value for a number of times as specified by the current value of the operational constant to re-generate the encryption private key of the group.
- 126. The peer system of claim 124, wherein said programming instructions are further designed to enable the peer system to perform said publishing of the deterministically generated encryption private key of the group for members of the group to access authorized published resources by retrieving a first encryption public key of a first member, generating a first encrypted entry of the group's encryption private key using the retrieved first encryption public key of the first member, and placing the generated first encrypted entry into a group key file.
- 127. The peer system of claim 126, wherein said programming instructions are further designed to enable the peer system to perform said publishing of the deterministically generated encryption private key of the group for members of the group to access authorized published resources by further repeating said retrieving, generating, and placing for each member.
- 128. The peer system of claim 126, wherein said programming instructions are further designed to enable the peer system to perform said publishing of the deterministically generated encryption private key of the group for members of the group to access authorized published resources further by publishing the group key file.
- 129. A peer system comprising
storage medium having stored therein a plurality of programming instructions designed to enable the peer system to
receive from another peer system a request for a resource published in an obfuscated manner; provide in response to the requesting other peer system said requested resource in an encrypted form, if said request references said resource by its obfuscated identification; and at least one processor coupled to the storage medium to execute the programming instructions.
- 130. The peer system of claim 129, wherein said programming instructions are further designed to enable the peer system to provide in response to the requesting other peer system a resource key file of the resource, if said request references said resource by its plain identification.
RELATED APPLICATION
[0001] This application claims priority to provisional applications
[0002] (a) No. 60/279,287, entitled “Scalable and Secure Access Control For Peer Resources via Encryption and Cached Keys”, filed on Mar. 27, 2001;
[0003] (b) No. 60/306,490, entitled “A Distributed Scalable Cryptographic Access Control Infrastructure”, filed on Jul. 7, 2001; and
[0004] (c) No. 60/309,340, entitled “A Distributed Scalable Cryptographic Access Control Infrastructure”, filed on Jul. 31, 2001.
[0005] The specifications of these provisional applications are hereby incorporated by reference.
PCT Information
Filing Document |
Filing Date |
Country |
Kind |
PCT/US02/10030 |
3/27/2002 |
WO |
|