Claims
- 1. A method for fairly distributing an event across a network environment to at least two clients, the event having information intended to be released at a pre-determined release time, the method comprising:
sending an encrypted event from an originating server to the at least two clients prior to the release time; and sending a decryption key from a key server to the at least two clients after the release time.
- 2. The method of claim 1, wherein the sending the decryption key occurs immediately after the release time.
- 3. The method of claim 1, wherein the sending the decryption key occurs after all of the at least two clients have completed receiving the encrypted event.
- 4. The method of claim 1, wherein the event is intended to be released prior to a pre-determined end time, and wherein the sending the decryption key occurs prior to all of the at least two clients completing receipt of the encrypted event if all of the at least two clients will complete receipt of the encrypted event after a last key send time, the last key send time being a sufficient time prior to the end time to allow for transmission of the key to all of the at least two clients.
- 5. The method of claim 1 further comprising:
sending an unencrypted event from the originating server to a trusted edge server prior to the release time, wherein the trusted edge server is a server, in a communications path between the originating server and a connected client, that can be trusted not to release information prior to an appropriate time; and sending the unencrypted event to a second client at a second client send time, the second client send time allowing the unencrypted event to be received by the second client at approximately the same time as the decryption key is received by the at least two clients.
- 6. The method of claim 5 further comprising:
sending the unencrypted event to a third client at a third client send time, the third client send time allowing the unencrypted event to be received by the third client at approximately the same time as the decryption key is received by the at least two clients.
- 7. The method of claim 5, wherein the second client send time allows the unencrypted event to be received by the second client or a third client, whichever is expected to receive it first, at approximately the same time as the decryption key is received by the at least two clients, the method further comprising:
sending the unencrypted event to the third client at the second client send time.
- 8. The method of claim 1, wherein the key server comprises two or more key servers.
- 9. The method of claim 1, wherein the sending the decryption key occurs at a coordinated key send time, wherein the coordinated key send time is based on when all clients in the network environment receive the encrypted event.
- 10. The method of claim 1, wherein the sending the decryption key includes multicasting a key message comprising at least one copy of the decryption key.
- 11. A method for fairly distributing an event across a network environment to a first client, the event having information intended to be released at a pre-determined release time, the method comprising:
sending an encrypted event from an originating server to a trusted edge server, wherein the trusted edge server is a server, in a communications path between the originating server and a connected client, that can be trusted not to release information prior to an appropriate time; decrypting the encrypted event at the trusted edge server; and sending a decrypted event from the trusted edge server to the first client at a first client send time, wherein the first client send time is a function of a first expected time of transmission of the decrypted event to the first client and a first client arrival time at which the first client receives the decrypted event, and wherein the first client arrival time is after the release time.
- 12. The method of claim 11, wherein the first expected time of transmission is determined by reference to a connection history between the trusted edge sever and the first client.
- 13. The method of claim 11, wherein the first expected time of transmission is determined by reference to a result of network functions testing a first client latency between the trusted edge sever and the first client.
- 14. The method of claim 11, wherein the first client arrival time is the release time.
- 15. The method of claim 11 further comprising:
sending the decrypted event from the trusted edge server to a second client at a second client send time, wherein the second client send time is a function of a second expected time of transmission of the decrypted event to the second client and a second client arrival time at which the second client receives the decrypted event, and wherein the second client arrival time is after the release time.
- 16. The method of claim 15, wherein the first client send time is the second client send time.
- 17. The method of claim 15, wherein the first client arrival time is the second client arrival time.
- 18. The method of claim 11, wherein the first client arrival time is approximately identical to a second client key receive time, the method further comprising:
sending the encrypted event from the originating server to a second client prior to the release time; and sending a decryption key from a key server to the second client after the release time, the second client receiving the decryption key at the second client key receive time.
- 19. A method for fairly distributing an event across a network environment to at least two clients, the method comprising:
sending an encrypted event to the at least two clients; and sending a decryption key to the at least two clients after all of the at least two clients have received the encrypted event.
- 20. The method of claim 19 further comprising:
sending an unencrypted event to a trusted edge server, wherein the trusted edge server is a server in the network environment that can be trusted not to release information prior to an appropriate time; and sending the unencrypted event to a second client at a second client send time, the second client send time allowing the unencrypted event to be received by the second client at approximately the same time as the decryption key is received by the at least two clients.
- 21. The method of claim 19 further comprising:
sending the encrypted to a trusted edge server, wherein the trusted edge server is a server in the network environment that can be trusted not to release information prior to an appropriate time; decrypting the encrypted event at the trusted edge server; and sending a decrypted event from the trusted edge server to a second client at a second client send time, wherein the second client send time is a function of a second expected time of transmission of the decrypted event to the second client and a second client arrival time at which the second client receives the decrypted event, the second client arrival time approximately the same time as the decryption key is received by the at least two clients.
- 22. The method of claim 21, wherein the second expected time of transmission is determined by reference to a connection history between the trusted edge sever and the second client.
- 23. The method of claim 21, wherein the second expected time of transmission is determined by reference to a result t of network functions testing a second client latency between the trusted edge sever and the second client.
- 24. A computer-readable medium having computer-executable instructions for fairly distributing an event across a network environment to at least two clients, the event having information intended to be released at a pre-determined release time, the computer-executable instructions performing steps comprising:
sending an encrypted event from an originating server to the at least two clients prior to the release time; and sending a decryption key from a key server to the at least two clients after the release time.
- 25. The computer-readable medium of claim 24, wherein the sending the decryption key occurs after the at least two clients have completed receiving the encrypted event.
- 26. The computer-readable medium of claim 24, wherein the computer-executable instructions perform further steps comprising:
sending an unencrypted event from the originating server to a trusted edge server prior to the release time, wherein the trusted edge server is a server, in a communications path between the originating server and a connected client, that can be trusted not to release information prior to an appropriate time; and sending the unencrypted event to a second client at a second client send time, the second client send time allowing the unencrypted event to be received by the second client at approximately the same time as the decryption key is received by the at least two clients.
- 27. The computer-readable medium of claim 26, wherein the computer-executable instructions perform further steps comprising:
sending the unencrypted event to a third client at a third client send time, the third client send time allowing the unencrypted event to be received by the third client at approximately the same time as the decryption key is received by the at least two clients.
- 28. The computer-readable medium of claim 26, wherein the second client send time allows the unencrypted event to be received by the second client or a third client, whichever is expected to receive it first, at approximately the same time as the decryption key is received by the at least two clients, the computer-executable instructions further performing steps comprising:
sending the unencrypted event to the third client at the second client send time.
- 29. The computer-readable medium of claim 24, wherein the key server comprises two or more key servers.
- 30. The computer-readable medium of claim 24, wherein the sending the decryption key occurs at a coordinated key send time, wherein the coordinated key send time is based on when all clients in the network environment receive the encrypted event.
- 31. A computer-readable medium having computer-executable instructions for fairly distributing an event across a network environment to a first client, the event having information intended to be released at a pre-determined release time, the computer-executable instructions performing steps comprising:
sending an encrypted event from an originating server to a trusted edge server, wherein the trusted edge server is a server, in a communications path between the originating server and a connected client, that can be trusted not to release information prior to an appropriate time; decrypting the encrypted event at the trusted edge server; and sending a decrypted event from the trusted edge server to the first client at a first client send time, wherein the first client send time is a function of a first expected time of transmission of the decrypted event to the first client and a first client arrival time at which the first client receives the decrypted event, and wherein the first client arrival time is after the release time.
- 32. The computer-readable medium of claim 31, wherein the first expected time of transmission is determined by reference to a connection history between the trusted edge sever and the first client.
- 33. The computer-readable medium of claim 31, wherein the first expected time of transmission is determined by reference to a result of network functions testing a first client latency between the trusted edge sever and the first client.
- 34. The computer-readable medium of claim 31, wherein the computer-executable instructions perform further steps comprising:
sending the decrypted event from the trusted edge server to a second client at a second client send time, wherein the second client send time is a function of a second expected time of transmission of the decrypted event to the second client and a second client arrival time at which the second client receives the decrypted event, and wherein the second client arrival time is after the release time.
- 35. The computer-readable medium of claim 34, wherein the first client send time is the second client send time.
- 36. The computer-readable medium of claim 34, wherein the first client arrival time is the second client arrival time.
- 37. The computer-readable medium of claim 31, wherein the first client arrival time is approximately identical to a second client key receive time, and wherein the computer-executable instructions perform further steps comprising:
sending the encrypted event from the originating server to a second client prior to the release time; and sending a decryption key from a key server to the second client after the release time, the second client receiving the decryption key at the second client key receive time.
- 38. A computer-readable medium having computer-executable instructions for fairly distributing an event across a network environment to at least two clients, the computer-executable instructions performing steps comprising:
sending an encrypted event to the at least two clients; and sending a decryption key to the at least two clients after all of the at least two clients have received the encrypted event.
- 39. The computer-readable medium of claim 38, wherein the computer-executable instructions perform further steps comprising:
sending the encrypted to a trusted edge server, wherein the trusted edge server is a server in the network environment that can be trusted not to release information prior to an appropriate time; decrypting the encrypted event at the trusted edge server; and sending a decrypted event from the trusted edge server to a second client at a second client send time, wherein the second client send time is a function of a second expected time of transmission of the decrypted event to the second client and a second client arrival time at which the second client receives the decrypted event, the second client arrival time approximately the same time as the decryption key is received by the at least two clients.
- 40. A system for fairly distributing an event, the event having information intended to be released at a pre-determined release time, the system comprising:
an originating server; a trusted edge server, wherein the trusted edge server is a server, in a communications path between the originating server and a connected client, that can be trusted not to release information prior to an appropriate time; a key server; and at least two clients; wherein the originating server sends an encrypted event to the at least two clients prior to the release time, and the key server sends a decryption key to the at least two clients after the release time.
- 41. The system of claim 40, wherein the key server sends the decryption key after all of the at least two clients have completed receiving the encrypted event.
- 42. The system of claim 40, further comprising a second client, wherein the originating server sends an unencrypted event to the trusted edge server, and the trusted edge server sends the unencrypted event to the second client at a second client send time, the second client send time allowing the unencrypted event to be received by the second client at approximately the same time as the decryption key is received by the at least two clients.
- 43. The system of claim 40, wherein the originating server sending the encrypted event to the at least two clients comprises the originating server sending an unencrypted event to the trusted edge server, the trusted edge server encrypting the unencrypted event, and the trusted edge server sending the encrypted event to the at least two clients.
- 44. The system of claim 40, wherein the key server sends the decryption key at a coordinated key send time, wherein the coordinated key send time is based on when the at least two clients receive the encrypted event.
- 45. The system of claim 40, further comprising a second client, wherein the originating server sends the encrypted event to the trusted edge server, the key server sends the decryption key to the trusted edge server, the trusted edge server decrypts the encrypted event, and the trusted edge server sends the decrypted event to the second client at a second client send time, the second client send time allowing the decrypted event to be received by the second client at approximately the same time as the decryption key is received by the at least two clients.
- 46. The system of claim 40, wherein the key server multicasts a key message comprising at least one copy of the decryption key.
- 47. A system for fairly distributing an event, the event having information intended to be released at a pre-determined release time, the system comprising:
an originating server; a trusted edge server, wherein the trusted edge server is a server, in a communications path between the originating server and a connected client, that can be trusted not to release information prior to an appropriate time; and a first client; wherein the trusted edge server sends an unencrypted event to the first client at a first client send time, wherein the first client send time is a function of a first expected time of transmission of the decrypted event to the first client and a first client arrival time at which the first client receives the decrypted event, and wherein the first client arrival time is after the release time.
- 48. The system of claim 47, further comprising a second client, wherein the originating server sends an encrypted event to the trusted edge server, the trusted edge server decrypts the encrypted event, and the trusted edge server sends the decrypted event to the second client such that the second client receives the decrypted event at approximately the first client arrival time.
- 49. The system of claim 47, wherein the first expected time of transmission is determined by reference to a connection history between the trusted edge sever and the first client.
- 50. The system of claim 47, wherein the first expected time of transmission is determined by reference to a result of network functions testing a first client latency between the trusted edge sever and the first client.
- 51. The system of claim 47, wherein the trusted edge server sends the unencrypted event to a second client at a second client send time, wherein the second client send time is a function of a second expected time of transmission of the unencrypted event to the second client and a second client arrival time at which the second client receives the unencrypted event, and wherein the second client arrival time is after the release time.
- 52. The system of claim 51, wherein the first client send time is the second client send time.
- 53. The system of claim 51, wherein the first client arrival time is the second client arrival time.
- 54. The system of claim 47, further comprising a key server, wherein the originating server sends an encrypted event to a second client prior to the release time, and the key server sends a decryption key to the second client after the release time, the second client receiving the decryption key at the first client arrival time.
- 55. A system for fairly distributing an event comprising:
a server; and at least two clients; wherein the server sends an encrypted event to the at least two clients, and the server sends a decryption key to the at least two clients after all of the at least two clients have received the encrypted event.
- 56. The system of claim 55, further comprising a second client, wherein the server is a trusted edge server, the trusted edge server being a server that can be trusted not to release information prior to an appropriate time, and further wherein the trusted edge server sends an unencrypted event to the second client at a second client send time, the second client send time allowing the unencrypted event to be received by the second client at approximately the same time as the decryption key is received by the at least two clients.
- 57. The system of claim 55, further comprising a second client, wherein the server is a trusted edge server, the trusted edge server being a server that can be trusted not to release information prior to an appropriate time, and further wherein the trusted edge server receives an encrypted event, decrypts the encrypted event, and sends the decrypted event to the second client at a second client send time, the second client send time allowing the decrypted event to be received by the second client at approximately the same time as the decryption key is received by the at least two clients.
- 58. The system of claim 57, wherein the second client send time is determined by reference to a connection history between the trusted edge server and the second client.
- 59. The system of claim 57, wherein the second client send time is determined by reference to a result of network functions testing a second client latency between the trusted edge server and the second client.
- 60. A method for fairly distributing an event across a network environment to at least two clients, the event having information intended to be released at a pre-determined release time, the method comprising:
a step of sending an encrypted event from an originating server to the at least two clients prior to the release time; and a step of sending a decryption key from a key server to the at least two clients after the release time.
- 61. The method of claim 60, wherein the step of sending the decryption key occurs after all of the at least two clients have completed receiving the encrypted event.
- 62. The method of claim 60 further comprising:
a step of sending an unencrypted event from the originating server to a trusted edge server prior to the release time, wherein the trusted edge server is a server, in a communications path between the originating server and a connected client, that can be trusted not to release information prior to an appropriate time; and a step of sending the unencrypted event to a second client at a second client send time, the second client send time allowing the unencrypted event to be received by the second client at approximately the same time as the decryption key is received by the at least two clients.
- 63. A trusted edge server that is a server, in a communications path between an originating server and a connected client, that can be trusted not to release information prior to an appropriate time, the trusted edge server comprising:
means for sending an encrypted to the first client prior to a release time, wherein the event comprises information intended to be released at the release time; and means for sending a decryption key to the first client after the release time.
- 64. The trusted edge server of claim 63, wherein the sending the decryption key occurs after the first client has completed receiving the encrypted event.
- 65. The trusted edge server of claim 63 further comprising:
means for decrypting the encrypted event; and means for sending the decrypted event to a second client at a second client send time, the second client send time allowing the decrypted event to be received by the second client at approximately the same time as the decryption key is received by the first client.
- 66. The trusted edge server of claim 65, wherein the second client send time is determined by reference to a connection history between the trusted edge sever and the second client.
- 67. The trusted edge server of claim 65, wherein the second client send time is determined by reference to a result of network functions testing a second client latency between the trusted edge sever and the second client.
- 68. The trusted edge server of claim 63 further comprising:
means for sending an unencrypted event to a second client at a second client send time, the second client send time allowing the unencrypted event to be received by the second client at approximately the same time as the decryption key is received by the first client.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application is related to U.S. application Ser. No.______, entitled “Time-Window-Constrained Multicast using Connection Scheduling” (Attorney Docket Number 213530) filed concurrently with the present application, and which is incorporated herein by reference in its entirety.