Patent Publication Number: US-7596700-B2

Title: Method and system for establishing trusting environment for sharing data between mutually mistrusting entities

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to establishing a trusting environment for sharing data between mutually mistrusting entities. 
     2. Background Art 
     In a collaborative grid computing environment, entities desire to electronically share data with each other. One example of such an environment is a research environment where at least two entities desire to share electronic data collected on a research matter. Preferably, this is done so that each entity can leverage off of the research of the other entity without having to perform the research themselves. 
     In the past, the data of each research entity was made known to the other entity so that a data comparison may be made and data shared. The problem with this approach is that the other entity may not be trustworthy in the sense that it may seek only to determine the data of the other entity without divulging its own data. 
     Accordingly, a need exists to establish a trusting environment for the entities to share their data. 
     SUMMARY OF THE INVENTION 
     One aspect of the present invention relates to providing a trusting environment for entities to share data. 
     One aspect of the present invention relates to a method for establishing trust between mutually mistrusting first and second entities, wherein each entity includes an electronic data collection of data and each desires to build trust with the other so that information stored on their respective data collections may be shared in a trusting environment. The method preferably includes determining a first signature for a first data array selected from a portion of a first data element stored on the data collection of the first entity, determining a second signature for a second data array selected from a portion of a second data element stored on the data collection of the second entity, generating a signature correlation value for the first and second signatures, and establishing a level of trust based on the signature correlation value. 
     The above method preferably further includes generating a number of signature correlation values for a number of data arrays selected from a number of data elements such that the level of trust may be based on the number of signature correlation values. In particular, a high level of trust may be determined if a predefined number of signature correlations have correlations values within a predefined correlation range which defines acceptable limits on matching the signatures such that the high level of trust represents that a number of data arrays of the first and second entities have closely matching signatures. As such, it is likely that additional data of the first and second data collections having non-matching signatures is likely to be of value to the other entity. Therefrom, the method may further including sharing at least a portion of the non-matching signature data between the entities if the high level of trust is determined. 
     One aspect of the present invention preferably relates to a method for a first entity to interrogate data of a second entity without the second entity providing complete access to the data. The method may include selecting a portion of the interrogated data and applying a signature algorithm thereto to produce a data signature and determining whether the data signature matches with one or more data signatures taken from data of the first entity such that the first entity includes data matching the interrogated data if the first entity includes a matching signature. In this manner, the first entity is able to interrogate data from the second entity without being provided with complete access to the data in so far as the first entity is able to determine from the data signature whether it includes matching data. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates a system for electronically sharing data between a first entity and second entity in accordance with one aspect of the present invention; and 
         FIG. 2  illustrates a flowchart of a method for establishing trust between the entities in accordance with one aspect of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S) 
       FIG. 1  illustrates a system  10  for electronically sharing data between a first entity  12  and second entity  14 . For example, the entities  12 , 14  may be associated with research entities having research data stored on data collections  20 ,  22 , such as electronic data associated with articles, papers, calculations, and other forms of data. 
     The first and second entities  12 ,  14  may be computers, servers, or other electronic data processing devices having capabilities for communication with each other over a network  26 . The network  26  may correspond with any network, including the Internet, a wide area network (WAN), a local area network (LAN), and the like. The infrastructure of the network  26  may include any infrastructure, including public telephone switching, cable, satellite, wireless, and the like. 
     The present invention is not limited to the aforementioned research example. Rather, the present invention contemplates any environment, with any number of entities, where it is desirable to electronically share data, such as in peer-to-peer (P2P) or other grid computing systems where files, such as image, database, text, schematic, music, video, and other forms of electronic data may be transferred by computer systems, cell phones, laptop computers, PDA&#39;s, notebooks, internet servers, intelligent appliances etc. in business, personal or community collaboration environments. The types of algorithms might include any number of elements or combinations of elements including encoded data, hash against subsets of data, data attributes [e.g., word counts, generation dates, kwic index references, pixel values, schematic box counts, etc.] file attributes, placements of specific data or data types [e.g., longest sentence is in paragraph 3 page 12, image on page 47 is .gif, box in center of diagram 2 is a 3 inch oval], or a set of rules for organizing piecemeal subsets of data. 
       FIG. 2  illustrates a flowchart  40  of a method for establishing trust between the entities in accordance with one aspect of the present invention. The method preferably establishes a trusting environment whereby the entities are able to interrogate the data of the other entity without providing access to their own data until after a level of trust is established with the other entity. In this manner, the present invention is able to foster the exchange of data without the entities disclosing their own data so as to prevent theft of the data from untrustworthy entities. 
     Block  44  relates to selecting a signature algorithm for creating an identifying characteristic for data stored on the data collections. The signature algorithm may include any number of features, such as a hash algorithm; a word placement, count, or letter discovery procedure; pixel location and value tuples; and/or a combination thereof; such as a piecemeal signature that combines multiple signature techniques. In addition, the signature algorithm may specify other features, such as a context identifier for identifying a type of data that one of the entities may desire to request from the other entity for sharing, such as a specific research topic. In this manner, the entities may execute a ‘handshaking’ procedure where they converse back and forth to specify the signature algorithm and the context of the sharing. Moreover, the context identifier is advantageous because it assists the entities in locating data in their data collections, as the data collections may include numerous files. Preferably, the signature technique is selected through communication between the entities such that each entity understands the signature algorithm so that it may be applied to their own data. 
     Block  46  relates to creating a data signature for a data array from a data element stored on one of the data collections by signing the data array according to the procedures specified in the signature algorithm. The data element is preferably selected by one of the entities if the entity desires to offer the data to another entity, requested by one of the entities sending a request to another entity for sharing, and/or selected at random, such as if the entity is searching their own data collection for data elements to receive signatures. The data element preferably corresponds with a functional group of data, such as articles, files, computation results, and the like. The data array preferably correspond with a portion of the data element but not all of the data element such that it is non-functional in so far as the other entity is unable to make use of the data array without access to the data element. 
     The signature provides identifying characteristics for the data array according to the instructions in the signature algorithm. As described above, the signature algorithm may comprise any number features for creating the signature. In particular, the hash creates a unique numerical identification for the data array. The word placement, count, or letter discovery signature procedures selects one or more words or letters or number of words from the data to comprise the data array. For example, the word placement signature procedure may specify selecting the first ten words in a second paragraph of an article, wherein the second paragraph is the data array and the first ten words are the data signature associated therewith. The word count signature procedure may specify counting the number words in a third paragraph of the article, wherein the third paragraph is the data array and the number of words is the data signature associated therewith. The letter discovery signature procedure may specify selecting every other letter in a first paragraph of the article, wherein the data array is the first paragraph and every other letter is the data signature associated therewith. The piecemeal signature procedure may specify hashing a second paragraph of the article and counting the number of words in a fourth a paragraph of the article, wherein the second and fourth paragraph is the data array and the combination of the hash and number of words is the data signature associated therewith. Of course, as described above, the present invention is not limited to electronic articles or research related items. Rather, the present invention contemplates sharing files in any number environments and is not intended to be limited by the foregoing description of signing articles, data may be signed in other ways to suit the data being signed. 
     Block  48  relates to matching the signature determined in block  46  with a corresponding signature of the first entity. Preferably, the signature from block  46  is communicated over the network from the second entity to the first entity. However, the signature may be communicated to a third entity (not shown), which is separate from the first entity, such that the third entity stores the signature for further processing, as described below. For exemplary purposes, the signature is communicated from the second entity to the first entity, however, this is not intended to limit the scope of the present invention. 
     Preferably, the signature algorithm includes a context identifier to assist the first entity in locating data elements relevant to the received data signature. Once a group of the first entity&#39;s data elements are located based on the context identifier, the first entity follows the procedures specified in the signature algorithm to create a data signature from data arrays of each data element in the group. Each of these signatures is analyzed to determine whether it matches the signature received from the second entity. Once a match is found, preferably, further searching for a match is complete. However, additional searching for duplicate matches is also contemplated. As described above, the third entity may be used to determine the matching signatures, such that the first entity would provide one or more signatures to the third entity whereby the third entity would then determine whether the signature(s) matches. 
     Preferably a correlation value or other datum is generated for each signature comparison for indicating a measure of data array commonality between the data arrays associated with the compared signature. The correlation value is advantageous for determining whether the signatures match. For example, a binary or absolute correlation may be required such that the signatures must exactly match. A percentage correlation may be required such that the signatures must match within a specified percentage of accuracy, which is advantageous to permit partially matching signature to be classified as matching signatures and thus prevent the problem of discarding matches because one or two words may be different. A correlation value is preferably generated for each signature from the first entity. However, the number of signatures taken from the first entity may be limited once a sufficient number of correlations values are determined and/or if a sufficiently high correlation value is determined for one of the data arrays, i.e., a matching signature is located. 
     The determination of a matching signature may include any number of other requirements, including multiple matching determinations which may be made for a single data array, such as if the signature algorithm specifies a piece-meal signature algorithm and/or to compensate for slightly differing data elements, such as by searching different portions of the data elements for a matching signature other than the portions specified in the signature algorithm. For example, the same articles or portions of articles may be found on both entities but with different formatting such that the third paragraph of one article corresponds with the fifth paragraph on the other even though the content of the articles is the same, which is a problem if the signature algorithm only specifies the third paragraph. The multiple matching determination may override the signature algorithm and continue searching other portions of the article for a matching signature, which may be desirable if the entities expect to share this data even though the formatting is different. Preferably, the signature algorithm specifies whether the multiple matching determinations may be made for each data array. 
     Block  50  relates to establishing a level of trust between the entities based on the correlation value for the matching or partially matching signature. The level of trust is aimed at providing each entity with an indication of data commonality for use by the entity in determining whether the other entity is legitimately interested in sharing data on a particular matter. Preferably, the level of trust is based on multiple signatures taken from multiple data elements so that the entities may determine whether the other entity has more than one matching data element. Having multiple data elements with matching signatures is advantageous in that researchers and other filing sharing groups are more likely to trust and share data with another entity that has a commonality of data, as the commonality indicates that the other entity is unlikely to be feigning possession of data valued by the other entity. 
     While embodiments of the present invention have been illustrated and described, it is not intended that these embodiments illustrate and describe all possible forms of the present invention. Rather, the words used in the specification are words of description rather than limitation, and it is understood that various changes may be made without departing from the spirit and scope of the present invention.