Anonymous peer-to-peer communication
First Claim
Patent Images
1. A method of transmitting packets, the method comprising:
- receiving a packet transmitted between a requesting host and a responding host in a network, wherein the transmitting includes transmitting via a sequence of intermediate hosts between the requesting and responding hosts, whereby intermediate hosts have respective immediately preceding and succeeding hosts in the sequence, wherein a header of the packet contains encrypted addresses for the respective hosts in the sequence, the address for each host being encrypted by a public key of an immediately preceding host in the sequence;
decrypting, by the host receiving the packet, the address in the packet header for a succeeding host in the sequence, wherein the decrypting uses a private key of the receiving host; and
forwarding the received packet to the succeeding host in the sequence at the decrypted address, wherein the received packet includes a validation flag encrypted with a public key of the responding host and an offset value, and wherein if the host receiving the packet is the responding host, the method includes;
decrypting the validation flag with the receiving hosts private key;
inserting in a response packet a value determined by the decrypting of the validation flag at a certain location in the response packet, the certain location being determined responsive to the offset value; and
forwarding the response packet.
0 Assignments
0 Petitions
Accused Products
Abstract
An anonymous peer-to-peer network has a security protocol that allows hosts in the network to determine whether data received from the network is valid. The requesting host can explicitly determine the data transfer route in packet header information. Each host address on route is encrypted with a public key of a directly preceding host. Consequently, the requesting host can exclude from the data transfer route any host through which the requesting host does not wish to route data. Error detecting codes are used to validate the transmitted data.
11 Citations
16 Claims
-
1. A method of transmitting packets, the method comprising:
-
receiving a packet transmitted between a requesting host and a responding host in a network, wherein the transmitting includes transmitting via a sequence of intermediate hosts between the requesting and responding hosts, whereby intermediate hosts have respective immediately preceding and succeeding hosts in the sequence, wherein a header of the packet contains encrypted addresses for the respective hosts in the sequence, the address for each host being encrypted by a public key of an immediately preceding host in the sequence; decrypting, by the host receiving the packet, the address in the packet header for a succeeding host in the sequence, wherein the decrypting uses a private key of the receiving host; and forwarding the received packet to the succeeding host in the sequence at the decrypted address, wherein the received packet includes a validation flag encrypted with a public key of the responding host and an offset value, and wherein if the host receiving the packet is the responding host, the method includes; decrypting the validation flag with the receiving hosts private key; inserting in a response packet a value determined by the decrypting of the validation flag at a certain location in the response packet, the certain location being determined responsive to the offset value; and forwarding the response packet. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An article of manufacturing for transmitting packets, the article having instructions for a computer stored on a tangible, computer readable storage device, wherein executing the instructions by the computer causes the computer to implement a method comprising:
-
receiving a packet transmitted between a requesting host and a responding host in a network, wherein the transmitting includes transmitting via a sequence of intermediate hosts between the requesting and responding hosts, whereby intermediate hosts have respective immediately preceding and succeeding hosts in the sequence, wherein a header of the packet contains encrypted addresses for the respective hosts in the sequence, the address for each host being encrypted by a public key of an immediately preceding host in the sequence; decrypting, by the host receiving the packet, the address in the packet header for a succeeding host in the sequence, wherein the decrypting uses a private key of the receiving host; and forwarding the received packet to the succeeding host in the sequence at the decrypted address, wherein the received packet includes a validation flag encrypted with a public key of the responding host and an offset value, and the article includes instructions such that if the host receiving the packet is the responding host, the executing by the computer causes the computer to implement a method comprising; decrypting the validation flag with the receiving hosts private key; inserting in a response packet a value determined by the decrypting of the validation flag at a certain location in the response packet, the certain location being determined responsive to the offset value; and forwarding the response packet. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A computer system comprising:
-
a processor; and a storage device connected to the processor, wherein the storage device has stored thereon a packet transmitting program for controlling the processor, and wherein the processor is operative with the program to execute the program for performing; receiving a packet transmitted between a requesting host and a responding host in a network, wherein the transmitting includes transmitting via a sequence of intermediate hosts between the requesting and responding hosts, whereby intermediate hosts have respective immediately preceding and succeeding hosts in the sequence, wherein a header of the packet contains encrypted addresses for the respective hosts in the sequence, the address for each host being encrypted by a public key of an immediately preceding host in the sequence; decrypting, by the host receiving the packet, the address in the packet header for a succeeding host in the sequence, wherein the decrypting uses a private key of the receiving host; and forwarding the received packet to the succeeding host in the sequence at the decrypted address, wherein the received packet includes a validation flag encrypted with a public key of the responding host and an offset value, and wherein the processor is operative with the program, if the host receiving the packet is the responding host, to execute the program for performing; decrypting the validation flag with the receiving hosts private key; inserting in a response packet a value determined by the decrypting of the validation flag at a certain location in the response packet, the certain location being determined responsive to the offset value; and forwarding the response packet. - View Dependent Claims (13, 14, 15, 16)
-
Specification