Hashing using multiple sub-hashes
First Claim
1. One or more computer readable storage media having stored thereon a plurality of instructions that, when executed by one or more processors, causes the one or more processors to perform a method including:
- generating a hash key based on an input value;
separating the hash key into a plurality of portions;
indexing into each of a plurality of sub-hashes using one of the plurality of portions, each location in each of the plurality of sub-hashes containing a multiple-bit value, each bit corresponding to one of a plurality of target values;
identifying a plurality of values from the plurality of sub-hashes based on the indexing;
combining the plurality of values to generate a hash result, wherein each bit in the hash result corresponds to one of the plurality of target values;
for each bit in the hash result that is set, comparing the input value to the corresponding target value; and
allowing access based on whether the values match.
2 Assignments
0 Petitions
Accused Products
Abstract
A hashing structure including multiple sub-hashes is used to determine whether an input value matches one or more of multiple target values. These values can be of any form, such as security identifiers in an access control system. To make the determination, a hash key is obtained from the input value and multiple sub-hash indexes (one for each of the multiple sub-hashes) are generated based on the key. Values are identified from the multiple sub-hashes by indexing into the sub-hashes using respective ones of the sub-hash indexes. These values are then combined to generate a resultant hash value. Each of the multiple target values corresponds to one of multiple portions of the resultant hash value. If the portion corresponding to one of the target values has a particular value, then that target value is a likely match and is compared to the input value to determine if indeed the two match. This comparison can then be repeated for each target value with a corresponding portion in the resultant hash value that has the particular value.
50 Citations
38 Claims
-
1. One or more computer readable storage media having stored thereon a plurality of instructions that, when executed by one or more processors, causes the one or more processors to perform a method including:
-
generating a hash key based on an input value; separating the hash key into a plurality of portions; indexing into each of a plurality of sub-hashes using one of the plurality of portions, each location in each of the plurality of sub-hashes containing a multiple-bit value, each bit corresponding to one of a plurality of target values; identifying a plurality of values from the plurality of sub-hashes based on the indexing; combining the plurality of values to generate a hash result, wherein each bit in the hash result corresponds to one of the plurality of target values; for each bit in the hash result that is set, comparing the input value to the corresponding target value; and allowing access based on whether the values match. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A hashing architecture implemented in hardware for determining whether to allow access to an access controlled object, comprising:
-
a plurality of sub-hashes; a plurality of sub-hash indexes, each index being generated from a hash key and used to index into one of the plurality of sub-hashes, each location in each of the plurality of sub-hashes containing a multiple-bit value, each bit corresponding to one of a plurality of target values; and a combiner coupled to receive values from the plurality of sub-hashes based on the plurality of sub-hash indexes, and to generate a hash result by combining the received values; and a comparator coupled to receive the hash result and to determine which of the plurality of target values to compare to an input value; compare the input value to at least one of the plurality of target values; and allowing access based on the comparison. - View Dependent Claims (9, 10, 11)
-
-
12. A method, comprising:
-
generating a plurality of sub-hash keys based on a hash key, the hash key being based on an input value; identifying a plurality of values from a plurality of sub-hashes by indexing into each of the plurality of sub-hashes using one of the plurality of sub-hash keys, each location in each of the plurality of sub-hashes containing a multiple-bit value, each bit corresponding to one of an plurality of target values; generating a hash result based on the plurality of values; determining based on the hash result which of the plurality of target values to compare to the input value; comparing the input value to at least one of the plurality of target values; and allowing access based on the comparison. - View Dependent Claims (13, 14, 15, 16)
-
-
17. One or more computer readable storage media having stored thereon a plurality of instructions that, when executed by one or more processors, cause the one or more processors to perform a method including:
-
generating a hash key based on an access control element security identifier; separating the hash key into a first portion and a second portion; indexing into a first sub-hash using the first portion to identify a first sub-hash value; indexing into a second sub-hash using the second portion to identify a second sub-hash value; combining the first sub-hash value and the second sub-hash value to generate a result value, wherein each bit in the result value corresponds to one of a plurality of security token security identifiers; and for each bit in the result value that is set, comparing the access control element security identifier to the corresponding security token security identifier; and allowing access based on whether the access control security identifier matches the corresponding security token identifier. - View Dependent Claims (18, 19, 20)
-
-
21. A method, comprising:
-
generating a plurality of sub-hash indexes based on a hash key, the hash key being based on an input security identifier; indexing into each of a plurality of sub-hashes using a respective one of a plurality of sub-hash indexes, each location in each of the plurality of sub-hashes containing a multiple-bit value, each bit corresponding to one of a plurality of target security identifiers; generating a result hash value by combining a plurality of values resulting from indexing into the plurality of sub-hashes, wherein each of the plurality of target security identifiers corresponds to a portion of the result hash value; comparing the input security identifier to at least one of the plurality of target security identifiers that corresponds to a portion of the result hash value having a particular value; and allowing access based on whether the input security identifier matches one or more of the plurality of target security identifiers. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28)
-
-
29. A computer-based system comprising:
-
a plurality of security token security identifiers corresponding to a user; a plurality of access control security identifiers corresponding to an object; a plurality of sub-hashes, each location in each of the plurality of sub-hashes containing a multiple-bit value, each bit corresponding to one of a plurality of target security identifiers; and an access controller to determine whether any of the plurality of security token security identifiers match any of the plurality of access control security identifiers by, for each of the plurality of access control security identifiers, generating a plurality of sub-hash indexes based on a hash key, indexing into each of the plurality of sub-hashes using a respective one of the plurality of sub-hash indexes, identifying a plurality of values from the plurality of sub-hashes based on the indexing, combining the plurality of values to generate a hash result value, wherein each bit in the hash result value corresponds to one of the plurality of security token security identifiers, and for each bit in the result value that is set, comparing the access control security identifier to the corresponding security token security identifier to determine whether the values match; and allowing the user access to the object based on whether the values match. - View Dependent Claims (30, 31, 32, 33, 34, 35)
-
-
36. A method, comprising:
-
for each sub-hash in a plurality of sub-hashes that can be used together to generate a hash result for determining whether an input value matches a target value, wherein each location in each of the plurality of sub-hashes contains a multiple-bit value, each bit corresponding to one of a plurality of target values, (a) identifying a bit in a location of the sub-hash, (b) identifying, in a source value, a plurality of bits corresponding to the sub-hash, (c) comparing an identifier of the location to the plurality of bits, (d) setting the bit if the identifier of the location matches the plurality of bits, and otherwise clearing the bit, and (e) repeating acts (a), (b), (c), and (d) for each of a plurality of bits in the location of the sub-hash; and allowing access based on whether the input value matches the target value. - View Dependent Claims (37, 38)
-
Specification