IP Library Granted Patent US 7,877,597
Granted Patent B2
US 7,877,597 · App. 11/599,568 · Granted Jan 25, 2011

Anonymous peer-to-peer communication

Assignee: International Business Machines Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,877,597
App. No.
11/599,568
Granted
Jan 25, 2011
Kind
B2
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.

Claims (42)

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.

2. The method as claimed in claim 1 , wherein the received packet contains padding data between the packet header and packet data.

3. The method as claimed in claim 2 , wherein the padding data is random in length and an encrypted value of this length is contained in the packet header.

4. The method as claimed in claim 1 , wherein the addresses are decomposed into discrete values (x 1 , x 2 , . . . x n ) prior to encryption, such that each address is represented as a function of these discrete values (f(x 1 , x 2 , . . . x n )).

5. The method as claimed in claim 1 , wherein the sequence of intermediate hosts avoids a particular host.

6. The method as claimed in claim 1 , comprising:

registering by the host receiving the packet, wherein the registering includes:

sending a public key to a device accessible by the requesting host.

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.

8. The article of manufacture of claim 7 , wherein the incoming received packet contains padding data between the packet header and packet data.

9. The article of manufacture of claim 8 , wherein the padding data is random in length and an encrypted value of this length is contained in the packet header.

10. The article of manufacture of claim 7 , wherein the addresses are decomposed into discrete values (x 1 , x 2 , . . . x n ) prior to encryption, such that each address is represented as a function of these discrete values (f(x 1 , x 2 , . . . x n )).

11. The article of manufacture of claim 7 including instructions such that the executing by the computer causes the computer to implement a method comprising:

registering by the host receiving the packet, wherein the registering includes:

sending a public key to a device accessible by the requesting host.

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.

13. The computer system of claim 12 , wherein the incoming received packet contains padding data between the packet header and packet data.

14. The computer system of claim 13 , wherein the padding data is random in length and an encrypted value of this length is contained in the packet header.

15. The computer system of claim 12 , wherein the addresses are decomposed into discrete values (x 1 , x 2 , . . . x n ) prior to encryption, such that each address is represented as a function of these discrete values (f(x 1 , x 2 , . . . x n )).

16. The computer system of claim 12 , wherein the processor is operative with the program to execute the program for performing:

registering by the host receiving the packet, wherein the registering includes:

sending a public key to a device accessible by the requesting host.

Continuity (2)
Continuation 1026464800 · Oct 4, 2002
Related Publication 20070113274A1 · May 17, 2007