Abstract:
An advertising statistics collection system employs multiple peers, a signing server and a collection server to ensure peer privacy when the statistics are gathered. A peer relay system aids in providing anonymity for a given peer in a peer-to-peer network environment with little or no trust between communicating parties. Peers are additionally protected by a randomly generated identifier that can be used to globally gather statistics on the peer without revealing the peer&#39;s identity.

Description:
BACKGROUND 
       [0001]    Point-to-point (P2P) systems are playing an increasingly important role in the distribution of entertainment content. There are several business models that profitably sustain this type of content distribution. The key advantage of a P2P distribution system is that the bandwidth costs can be reduced, while at the same time both throughput and scalability can be increased. However, this has made obtaining advertising statistics even more challenging. 
         [0002]    One business model is to mimic the plain old TV model of content distribution—the content owner is compensated by advertisement revenues. Traditionally, TV stations have gained insight about advertisement placement from such companies as Nielsen that provides marketing information. The basic approach is to randomly sample the viewing population. In order to provide accurate information, it is necessary to deploy a considerable amount of resources. The advantage of a P2P system is that intermediate peer nodes that participate in the content distribution are programmable and can report statistics such as when a content was viewed, what advertisement s were displayed and the like. This data can be aggregated by a suitable entity and the information can be presented to advertisers to help them efficiently target the audience. However, many times this aggregation of data is in opposition with user data privacy policies instituted by companies. 
       SUMMARY 
       [0003]    The methods and systems relate to privacy aware collection of advertisement statistics in a peer-to-peer environment with little or no trust between communicating parties. This enables an advertiser to target specific demographics by collecting statistics while preserving a user&#39;s privacy. The approach is to relay messages in a P2P system such that it reaches a well known final destination after being relayed via a random number of intermediate peers. This ensures that the privacy of the peer that originated the message is protected. 
         [0004]    The above presents a simplified summary of the subject matter in order to provide a basic understanding of some aspects of subject matter embodiments. This summary is not an extensive overview of the subject matter. It is not intended to identify key/critical elements of the embodiments or to delineate the scope of the subject matter. Its sole purpose is to present some concepts of the subject matter in a simplified form as a prelude to the more detailed description that is presented later. 
         [0005]    To the accomplishment of the foregoing and related ends, certain illustrative aspects of embodiments are described herein in connection with the following description and the annexed drawings. These aspects are indicative, however, of but a few of the various ways in which the principles of the subject matter can be employed, and the subject matter is intended to include all such aspects and their equivalents. Other advantages and novel features of the subject matter can become apparent from the following detailed description when considered in conjunction with the drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0006]      FIG. 1  is an example of a network utilized in an embodiment. 
           [0007]      FIG. 2  shows a sequence of messages exchanged (encrypted, authentic &amp; anonymous case). 
           [0008]      FIG. 3  is an example of generating authentic anonymous messages. 
           [0009]      FIG. 4  depicts a signature server&#39;s role. 
           [0010]      FIG. 5  illustrates a relaying peer&#39;s role. 
           [0011]      FIG. 6  shows a collection server&#39;s role. 
       
    
    
     DETAILED DESCRIPTION 
       [0012]    The subject matter is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the subject matter. It can be evident, however, that subject matter embodiments can be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the embodiments. 
         [0013]    As used in this application, the term “component” is intended to refer to hardware, software, or a combination of hardware and software in execution. For example, a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable, and/or a microchip and the like. By way of illustration, both an application running on a processor and the processor can be a component. One or more components can reside within a process and a component can be localized on one system and/or distributed between two or more systems. Functions of the various components shown in the figures can be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. 
         [0014]    Most service providers have a privacy policy that they claim to follow when handling sensitive private user data. However, the burden of trust is on the user. There is no provably secure method or protocol or system that is used in order to cryptographically guarantee privacy. The systems and methods disclosed herein can be utilized to solve the advertisement statistics collection and reporting problems. 
         [0015]    In many instances, advertisers seek to find important statistics such as: How many times was a particular advertisement watched? At what times was a particular advertisement watched? What content was being watched when a certain advertisement was displayed? Unique number of people who watched a particular advertisement. These questions can be answered in any content distribution system. However, it is hard to provide this information while at the same time protect the user&#39;s privacy. Also, most of the schemes require the end user to trust a service provider with conscientiously handling this sensitive information. This is especially harder for the end user to do, in light of the increasing number of online server breaches, identity thefts and such. Thus, systems and methods are provided that are capable of gleaning all of this useful information without trusting others and not compromising privacy. 
         [0016]    The approach is to relay messages in a P2P system such that it reaches a well known final destination after being relayed via a random number of intermediate peers. This ensures that the privacy of the peer that originated the message is protected. This relaying is equivalent to an anonymous channel. However, by the nature of TCP/IP communication (or any other point-to-point protocol), the pseudo identity of the peers can be discovered by colluding. This does not disclose the real identity of the peers (like the certificate or public key). 
         [0017]    The message being relayed can be piggybacked on other messages such as advertisement and content blocks to reduce frequent communication with the peers. It is also possible to collate several such messages and relay them together and/or for the same message to be relayed multiple times by a peer to increase reliability. However, this might give rise to duplicate messages. Since two independent peers can create identical reports, it is necessary for each message to have a random number that uniquely identifies the message globally without leaking information about the originator. 
         [0018]    These systems and methods require the following to be enacted:
       Accuracy—An advertisement report cannot be changed or faked.   Privacy—An advertisement report cannot be linked back to the originator.   Verifiability—Each advertisement report can be easily verified for its authenticity.   Accountability—Peers cannot generate advertisement reports freely. In order for a report to be signed, peers should be valid and messages should conform to policy.       
 
         [0023]      FIG. 1  is an example of a network  100  utilized in one embodiment. It illustrates entities involved in the collection of advertisement data. This includes, for example, a signature server  102  which signs messages, at least one peer  104  that forms a P2P network, at least one stake holder  106  which are entities purchasing advertisement slots, content providers and such and a collection server  108  that collects and aggregates all advertisement statistics, which are presented to the stake holders  106 . 
         [0024]    Each peer  104  has to first register with a central authority to receive a unique client certificate that must be used to prove its authenticity to the signing server  102  to get any message signed. This process is a onetime thing, and the service provider ensures that this process cannot be automated by bots and also prevents multiple registrations by the same entity. Then let m represent a message that contains a statistics report and a random variable. This ensures that the message is unique without identifying a peer that generated it:
       q—a random number generated locally by a peer   m—{advertisement report, q}
 
Here, q is the random number that was generated that uniquely identifies m globally in the entire P2P network. There are several algorithms to generate q by using high entropy sources, so the probability of collision is ignored. It is possible for messages to get duplicated while being relayed, the collection server  108  only counts unique reports based on q. The message can be further encrypted and signed to avoid problems like spam and fake messages.
       
 
         [0027]    While the above algorithm works, it is very easy for rogue peers to abuse the system and flood it with fake messages. The following section solves the problem by applying some concepts from e-voting and electronic cash that were described originally by D. Chaum in “ Blind Signatures for Untraceable Payments. ” In order to maintain clarity and simplicity, there are several optimizations that have been left out. In the description below, it is assumed that all these algorithms and protocols are public knowledge and only some required keys are kept secret:
       d—decryption or the private key of signature server   e—encryption or the public key of signature server   k—decryption or private key of the collection server, possible to have d=k   p—encryption or public key of the collection server, possible to have p=e   n—a number that is used to derive d, e, p and k.   ENC—a secure asymmetric encrypting function   DEC—inverse of ENC   SIGN—signature function using d, it is assumed that this is to be m d  mod n in future discussions. Verification can be done by any entity possessing e.   HASH—a secure hashing function, e.g.: SHA256   r—secret blinding number; random number relatively prime to n. Independent of q.   M—m encrypted with p that can only be decrypted with k   h—hash of the encrypted message, M   h′—the blinded hash, to avoid dictionary attacks by collusion   R 1 —the report, {M, s}       
 
         [0042]    Let:
       M=ENC(m, p)   h=HASH(M)   s=SIGN(h)=h d  mod n       
 
         [0046]      FIG. 2  shows a sequence  200  of messages exchanged (encrypted, authentic &amp; anonymous case). It is referenced for the following discussion. Note that the collection server&#39;s keys are used to encrypt but the signing server&#39;s keys are used for signing. The signature can be verified by intermediate peers by processing M and e. This ensures that invalid messages are discarded at the earliest. Since it is desirable to prevent a collection server  206  and a signing server  204  from colluding and performing a dictionary attack, a peer  202  shall not provide h to the signing server  204 , instead it blinds h as follows: 
         [0000]      h′=hr e modn
 
         [0047]    The peer  202  then sends this  210  to the signing server  204 , which signs and returns it  212 ,  214 : 
         [0000]        s ′=( h ′) d mod n  
 
         [0048]    The peer  202  verifies the signature was performed correctly, to prevent server from including any other data. At this point h is destroyed and the peer  202  proceeds to derive s from s′ as follows  216 : 
         [0000]        s′r   −1 =( h ′) d   r   −1 mod n=h   d   r   ed   r   −1 mod n  
 
         [0049]    The following is true for RSA (Rivest, Shamir and Adleman encryption technique): 
         [0000]      r ed =rmodn 
         [0000]    So, we have: 
         [0000]        s′r   −1 = h   d   rr   − mod n=h   d mod n    
         [0000]      ∴ s′r   −1   =s  
 
         [0000]    This shows that it is possible to have a blinded message (h′) signed by a trusted third party and then derive the corresponding signature (s), provided r known. Furthermore, if a server decides to log this information, it is useless as there is no computationally feasible way to correlate m and h′. 
         [0050]    The peer  202  proves its identity to the server before the message is signed. This can be accomplished by an exchange of client certificates (not shown) and is done to enforce policy. It is also possible to include the blinded message and another clear message together. One example is to include a content identification (ID) in the clear along with h. This can be used to enforce a policy to restrict peers to report once per given content ID (it may sacrifice some privacy). Any such policy can be dictated by the service provider as a condition to signing messages. These policies can have important implications on privacy and accuracy, so it is important to choose a policy that ensures both privacy and accuracy. The system is stable as intermediate peers can verify validity of messages; invalid messages will be discarded thereby preventing DoS attacks. 
         [0051]    On receipt of a message  218 , the collection server  206  verifies  220  and proceeds to decrypt the message and store it for further processing. The signature is verified as follows: 
         [0052]    s e =h de modn=hmodn 
         [0000]      Where, 
         [0000]        h =HASH( M ) 
         [0000]    If the signature fails, then the mismatch can be detected and the report is discarded. It then proceeds to decrypt as follows: 
         [0000]        m =DEC( M,k ) 
         [0000]    One of the main problems in current schemes (for example, Google analytics) that collect advertisement statistics is that they are prone to extreme spamming. Spam filtering is only possible because these schemes collect a lot of information without regards to privacy. The systems and methods disclosed herein ensure that privacy is not compromised while still keeping the system spam free. 
         [0053]    In an alternative embodiment, the above scheme can be extended to sign a combination of blinded and unblinded messages. First, assume the client wishes to include a plain message so that intermediate peers are able to process it. Let this message be denoted by m 1  and let h 1  denote the hash of m 1 . It is assumed that m 1  does not strongly identify the peer in any way but may be globally unique (see TABLE 1 below). 
         [0054]    m 1 —message to be relayed (plain) 
         [0055]    h 1 —HASH(m 1 ) 
         [0056]    h 1′ —blinded h 1    
         [0057]    r 1 —random number used to blind h 1 . Possible to for r 1 =r. 
         [0058]    h 2 , h′ 2 , r 2 —corresponding values for to m 2    
         [0059]    h′ 3 —combined hash of {M, m 3 }. Note this scheme is different from above 
         [0060]    h′ 3 , r 3 —corresponding values to m 3    
         [0061]    R m —final message to relay 
         [0062]    In order to simplify the explanation, assume that m 1  is a message for which no anonymity needs to be preserved and m 2  and m 3  are messages that need to have anonymity preserved. From the previous embodiment, m denotes a message for which anonymity must be preserved as well as encrypt it (M) so that intermediate peers are unaware of the contents. In TABLE 1 below, it is outlined how different messages can be authenticated for subsequent relaying, and how they can be combined to form complex messages. 
         [0000]                                    TABLE 1                   Message                   Scheme   sent for   Blinded       description   signature   signature - s′   Signature - s   To relay                   Unencrypted   {m 1 }   SIGN(h 1 ) =   s′ =   {m 1 , s}       with no       h 1   d  mod n   h 1   d  mod n       anonymity       Unencrypted   {h′ 2 }   SIGN(h′ 2 ) =   s′r 2   −1  =   {m 2 , s}       with       h 2   d r 2   ed  mod n   h 2   d  mod n       anonymity       Encrypted   {h′}   SIGN(h′) =   s′r −1  =   {M, s}       with       h d r ed  mod n   h d  mod n       anonymity       Combination   {h′, m 1 }   SIGN (h′, h 1 ) =   s′r −1  =   {M, m 1 , s}       2a       h d r ed h 1   d  mod n   h d h 1   d  mod n       Combination   {h′, h 2 ′}   SIGN(h′, h 2 ′) =   s′r −1 r 2   −1  =   {M, m 2 , s}       2b       h d r ed h 2   d r 2   ed  mod n   h d h 2   d  mod n       Combination   {h′ 3 }   SIGN(h′ 3 ) =   s′r 3   −1  =   {M, m 3 , s}       2c       h 3   d r 3   ed  mod n   h 3   d  mod n       Combination   {h′, m 1 , h 2 ′}   SIGN(h′, h 1 , h′ 2 ) =   s′r −1 r 2   −1  =   {M, m 1 , m 2 , s}       3a       h d r ed h 1   d h 2   d r 2   ed  mod n   h d h 1   d h 2   d  mod n               TABLE 1 legend:       Message sent for signature - this is the message transmitted to the signing server       Blinded signature - s′ - This is the signature returned by the signing server       Signature - s - This is the signature derived by the peer from s′.            
The first case is included for illustration, it does not make sense to anonymously relay m 1  when the server already knows the content! Note that the signature for multiple messages is for the combined message so it is not possible to split and uncombine messages after signature as the signature will be invalid. However, intermediate peers can still verify the authenticity of the messages by processing the message and signature appropriately provided the scheme is known.
 
         [0063]    The ENC function must be chosen carefully to prevent certain attacks. SIGN(ENC(m, p), d) will put the message in clear (if the collection server and the signing server share keys). The problem does not manifest above as we are hashing M and the blinded digest is signed. You also do not want to leak m to intermediate peers. ENC is chosen suitably. One method is to use a symmetric encryption function with a random key, then use p to encrypt this random key and include it as well. A necessary property is that if a message is encrypted with p then it can only be decrypted with k. 
         [0064]    Messages are relayed in the network until “expired.” Here the definition of expired can be defined in different ways, depending on needs. In the following section, some methods were defined to determine when a message relaying must be stopped and the report sent to the collection server. For this to work, messages should include information so that intermediate peers are able to make an appropriate decision. 
         [0065]    The following presents a very simple but insecure algorithm that ensures that the privacy of the originating peer is protected, even on the first relay hop: 
         [0066]    c—Down counter, initialized to a random value and decremented randomly every hop. 
         [0067]    R 2 —{M, s, c}, basically R 1  with a down counter. 
         [0000]    When the originating node relays the message, a random number is included with the message (suitably chosen with the maximum hop count in mind). When the message is relayed for the first time, it is impossible for the receiving peer to determine where the message originated since c is random. When the message is subsequently relayed, the counter is decremented by a small random value (again, suitably chosen so the message is relayed a few hops). If the counter reaches &lt;=0, the peer holding the message stops relaying and sends it to the collection server. This guarantees that the message origination is kept secret. 
         [0068]    A problem with the above approach is that it is easy for rogue peers to tamper with c. This can easily be exploited to cause a DoS (denial of service) attack. The following describes a method where expiry time is used instead of a decrementing counter. This expiry time is signed along with h 4 . This is an elaboration of the “Combination 2c” scheme described previously in TABLE 1. 
         [0069]    Let: 
         [0070]    t—expiry time of the message (included in the packet in the clear) 
         [0071]    h 4 —hash of {M, t} 
         [0072]    h′ 4 —blinded hash 
         [0073]    s 4 —signature of h 4    
         [0074]    s′ 4 —blinded signature 
         [0075]    R 4 —{M, t, s 4 } the report to be transmitted via relay 
         [0000]    By definition: 
         [0076]    h 4 =HASH({M,t}) 
         [0077]    h′ 4 =h 4 r e  mod n 
         [0078]    s 4 =SIGN(h 4 ) 
         [0079]    s′ 4 =SIGN(h′ 1 ) 
         [0000]    The peer generates a hash h 4  for the encrypted message and the expiry time t included together. This is then blinded (h′ 4 ) and sent to the signing server for signature. The report is constructed after unblinding s′ 4  and deriving s 4 . R 4  is then relayed. Intermediate peers keep relaying the report until the expiry time t is in the future. When the message expires, it is sent to the collection server. Some form of time synchronization between peers is needed for this to work reliably. Also, validity of the report can be checked as usual; intermediate peers can also check policy to ensure that t is valid and within bounds—they can drop non-conforming messages. 
         [0080]    The embodiments disclosed can be extended to any type of report where confidentiality needs to be maintained (for e.g., peer&#39;s log reports). A cryptographically secure method is disclosed to generate authenticated messages and subsequently report them to a central authority in an anonymous fashion. 
         [0081]    In view of the exemplary embodiments shown and described above, methodologies that can be implemented in accordance with the embodiments will be better appreciated with reference to the flow charts of  FIGS. 3-6 . While, for purposes of simplicity of explanation, the methodologies are shown and described as a series of blocks, it is to be understood and appreciated that the embodiments are not limited by the order of the blocks, as some blocks can, in accordance with an embodiment, occur in different orders and/or concurrently with other blocks from that shown and described herein. Moreover, not all illustrated blocks may be required to implement the methodologies in accordance with the embodiments. 
         [0082]      FIG. 3  is a flow diagram of a method  300  of generating anonymous messages. The method starts  302  by encrypting a report and generating a random number (usually accomplished by a peer)  304 . The encrypted report is then hashed and made blind  306 . The peer transmits the blinded has to a signing server along with a signature  308 . The signing server receives the blind signature  310  and determines if it is valid  312 . If not valid, it is discarded  314 , ending the flow  320 . If valid, an encrypted and signed advertisement (AD) report is generated  316  and then transmitted via a peer relay to a collection server  318 , ending the flow  320 . 
         [0083]      FIG. 4  is a flow diagram of a method  400  of a signature server&#39;s role in relation to an embodiment. The method starts  402  by a signing server receiving a message from a peer  404 . The signing server then determines if the message is valid  406 . If not, the message is discarded and/or an error is reported back to the peer  408 , ending the flow  412 . If valid, the message is signed and sent back to the peer  410 , ending the flow  412 . 
         [0084]      FIG. 5  is a flow diagram of a method  500  that illustrates a relaying peer&#39;s role in an embodiment. The relaying facilitates in providing privacy for a sending peer. The method  500  starts  502  by a peer receiving a message from another peer  504  and determines if the message is valid  506 . If not, the message is discarded and/or an error report is sent back to the sending peer  508 , ending the flow  518 . If valid, the peer determines if the message has expired  510 . If expired, the peer sends the message containing an advertising report to a collection server  512 , ending the flow  518 . If the message is not expired, the peer relays the advertising report to another peer and/or to a collection server,  516 , ending the flow  518 . 
         [0085]      FIG. 6  is a flow diagram of a method  600  that shows a collection server&#39;s role in an embodiment. The method  600  starts  602  by a collection server receiving a message from a peer  604 . The collection server then determines if the message is valid  606 . If not, the message is discarded and/or an error is reported to the peer  608 , ending the flow  614 . If valid, the collection server decrypts the message  610  and stores it for future processing  612 , ending the flow  614 . 
         [0086]    What has been described above includes examples of the embodiments. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the embodiments, but one of ordinary skill in the art can recognize that many further combinations and permutations of the embodiments are possible. Accordingly, the subject matter is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the term “includes” is used in either the detailed description or the claims, such term is intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim.