IP Library Granted Patent US 7,096,355
Granted Patent B1
US 7,096,355 · App. 09/923,847 · Granted Aug 22, 2006

Dynamic encoding algorithms and inline message decryption

Assignee: Omniva 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,096,355
App. No.
09/923,847
Granted
Aug 22, 2006
Kind
B1
Abstract

In general, data exchanged between users is protected using any of various encoding approaches. An example of encoding is encryption, but any kind of encoding may be used. The data used to encrypt the data exchanged between the users, referred to as a “key”, is maintained only in a key repository. Users must obtain a key from the key repository to either encode or decode, encrypt or decrypt data, after which the user's copy of the key is destroyed or otherwise rendered inoperable. A key management policy is employed to control access to the keys maintained by the key repository. Encoding algorithms may be dynamically changed over time. Users may negotiate different algorithms to be used with specific users or messages. Thus, different algorithms may be used between different sets of users depending upon what the member users of those sets negotiate among themselves. The frequency at which algorithms are changed may also be separately negotiated between users. The frequency may vary depending, for example, upon the perceived risk of intrusion by unauthorized third parties, the content of the messages being transmitted, or both. According to an inline message decryption approach, an encoded message is provided to a user in a form that enables the user's client to process the encoded message using conventional client tools and obtain the cleartext message. This eliminates the need for a user's client to be aware of the particular encoding algorithm used to encode the message. Various embodiments of the inline message decryption approach include: a) in-situ decryption; b) remote decryption; and c) data uploading. An approach is also provided for exchanging data between nodes in a network using sets of associated URLs.

Claims (75)

1. A method for controlling access to a message that is communicated from a first node to a second node in a network, the method comprising the computer-implemented steps of:

generating, at the first node, an encoded message by encoding the message with a key;

generating, at the first node, a set of one or more instructions that contain address data that indicates a location from which the key may be retrieved and executable code that implements a decryption algorithm for decoding the encoded message using the key; and

providing the encoded message and the set of one or more instructions to the second node;

wherein, processing the set of one or more instructions at the second node causes the message to be recovered from the encoded message by:

retrieving the key from the location specified by the address data and decoding the encoded message using the key.

2. The method as recited in claim 1 , further comprising deleting the retrieved key.

3. The method as recited in claim 1 , wherein the set of one or more instructions comprises a set of Javascript instructions.

4. The method as recited in claim 1 , wherein the set of one or more instructions comprises a set of Java applet instructions.

5. A computer-readable medium for controlling access to a message that is communicated from a first node to a second node in a network, the computer-readable medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of:

generating, at the first node, an encoded message by encoding the message with a key;

generating, at the first node, a set of one or more instructions that contain address data that indicates a location from which the key may be retrieved and executable code that implements a decryption algorithm for decoding the encoded message using the key; and

providing the encoded message and the set of one or more instructions to the second node;

wherein, processing the set of one or more instructions at the second node causes the message to be recovered from the encoded message by:

retrieving the key from the location specified by the address data and

decoding the encoded message using the key to recover the original message.

6. The computer-readable medium as recited in claim 5 , further carrying one or more additional sequences of one or instructions which, when executed by the one or more processors, causes the one or more processors to perform the additional step of deleting the retrieved key.

7. The computer-readable medium as recited in claim 5 , wherein the set of one or more instructions comprises a set of Javascript instructions.

8. The computer-readable medium as recited in claim 5 , wherein the set of one or more instructions comprises a set of Java applet instructions.

9. A computer system comprising:

one or more processors; and

a memory communicatively coupled to the one or more processors and carrying one or more sequences of one or more instructions which, when executed by the one or more processors, cause the one or more processors to perform the steps of:

generating, at the first node, an encoded message by encoding the message with a key;

generating, at the first node, a set of one or more instructions that contain address data that indicates a location from which the key may be retrieved and executable code that implements a decryption algorithm for decoding the encoded message using the key; and

providing the encoded message and the set of one or more instructions to the second node;

wherein, processing the set of one or more instructions at the second node causes the message to be recovered from the encoded message by:

retrieving the key from the location specified by the address data and

decoding the encoded message using the key to recover the original message.

10. The computer system as recited in claim 9 , wherein the memory further carries one or more additional sequences of one or instructions which, when executed by the one or more processors, causes the one or more processors to perform the additional step of deleting the retrieved key.

11. The computer system as recited in claim 9 , wherein the set of one or more instructions comprises a set of Javascript instructions.

12. The computer system as recited in claim 9 , wherein the set of one or more instructions comprises a set of Java applet instructions.

13. A method for controlling access to a message that is communicated from a first node to a second node in a network, the method comprising the computer-implemented steps of:

generating, at the first node, an encoded message by encoding the message with a key;

generating, at the first node, a set of one or more instructions that contain instructions for transferring to a third node the encoded message and instructions for retrieving the key;

providing the encoded message and the set of one or more instructions to the second node;

wherein, processing the set of one or more instructions at the second node causes the encoded message and the instructions for retrieving the key to be transferred to the third node; and

wherein, the receiving, at the third node, of the encoded message and the instructions for retrieving the key causes:

the message to be recovered from the encoded message by retrieving the key, and

decoding the encoded message using the key, and

the recovered message to be provided from the third node to the second node.

14. The method as recited in claim 13 , wherein the receiving, at the third node, of the encoded message and the instructions for retrieving the key, further causes the key to be deleted from the third node after the encoded message is decoded.

15. The method as recited in claim 13 , wherein the encoded message and the set of one or more instructions that contain the instructions for transferring to a third node the encoded message and instructions for retrieving the key are contained in an HTML document.

16. The method as recited in claim 15 , wherein the HTML document comprises an HTML form with fields containing the encoded message and key address data, a submit button to submit the form to the third node, and JavaScript to automatically submit the form to the third node.

17. The method as recited in claim 15 , wherein the HTML document comprises a set of associated URLs embedded in multiple <img>, <ilayer>, <applet>, or <iframe> elements, wherein each URL contains fragments of the encoded message and key address data as URL query parameters, and wherein each URL specifies the location of the third node.

18. The method as recited in claim 17 , wherein the URL query parameters also contain control information, which specifies the order and number of message fragments, and enables the third node to reconstruct the complete message.

19. A computer-readable medium for controlling access to a message that is communicated from a first node to a second node in a network, the computer-readable medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of:

generating, at the first node, an encoded message by encoding the message with a key;

generating, at the first node, a set of one or more instructions that contain instructions for transferring to a third node the encoded message and instructions for retrieving the key;

providing the encoded message and the set of one or more instructions to the second node;

wherein, processing the set of one or more instructions at the second node causes the encoded message and the instructions for retrieving the key to be transferred to the third node; and

wherein, the receiving, at the third node, of the encoded message and the instructions for retrieving the key causes:

the message to be recovered from the encoded message by retrieving the key, and

decoding the encoded message using the key, and

the recovered message to be provided from the third node to the second node.

20. The computer-readable medium as recited in claim 19 , wherein the receiving, at the third node, of the encoded message and the instructions for retrieving the key, further causes the key to be deleted from the third node after the encoded message is decoded.

21. The computer-readable medium as recited in claim 19 , wherein the encoded message and the set of one or more instructions that contain the instructions for transferring to a third node the encoded message and instructions for retrieving the key are contained in an HTML document.

22. The computer-readable medium as recited in claim 21 , wherein the HTML document comprises an HTML form with fields containing the encoded message and key address data, a submit button to submit the form to the third node, and JavaScript to automatically submit the form to the third node.

23. The computer-readable medium as recited in claim 21 , wherein the HTML document comprises a set of associated URLs embedded in multiple <img>, <ilayer>, <applet>, or <iframe> elements, wherein each URL contains fragments of the encoded message and key address data as URL query parameters, and wherein each URL specifies the location of the third node.

24. The computer-readable medium as recited in claim 23 , wherein the URL query parameters also contain control information, which specifies the order and number of message fragments, and enables the third node to reconstruct the complete message.

25. A computer system for controlling access to a message that is communicated from a first node to a second node in a network, the computer system comprising:

one or more processors; and

a memory communicatively coupled to the one or more processors and carrying one or more sequences of one or more instructions which, when executed by the one or more processors, causes the one or more processors to perform the steps of:

generating, at the first node, an encoded message by encoding the message with a key;

generating, at the first node, a set of one or more instructions that contain instructions for transferring to a third node the encoded message and instructions for retrieving the key;

providing the encoded message and the set of one or more instructions to the second node;

wherein, processing the set of one or more instructions at the second node causes the encoded message and the instructions for retrieving the key to be transferred to the third node; and

wherein, the receiving, at the third node, of the encoded message and the instructions for retrieving the key causes:

the message to be recovered from the encoded message by retrieving the key, and

decoding the encoded message using the key, and

the recovered message to be provided from the third node to the second node.

26. The computer system as recited in claim 25 , wherein the receiving, at the third node, of the encoded message and the instructions for retrieving the key, further causes the key to be deleted from the third node after they encoded message is decoded.

27. The computer system as recited in claim 25 , wherein the encoded message and the set of one or more instructions that contain the instructions for transferring to a third node the encoded message and instructions for retrieving the key are contained in an HTML document.

28. The computer system as recited in claim 27 , wherein the HTML document comprises an HTML form with fields containing the encoded message and key address data, a submit button to submit the form to the third node, and JavaScript to automatically submit the form to the third node.

29. The computer system as recited in claim 27 , wherein the HTML document comprises a set of associated URLs embedded in multiple <img>, <ilayer>, <applet>, or <iframe> elements, wherein each URL contains fragments of the encoded message and key address data as URL query parameters, and wherein each URL specifies the location of the third node.

30. The computer system as recited in claim 29 , wherein the URL query parameters also contain control information, which specifies the order and number of message fragments, and enables the third node to reconstruct the complete message.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2018
From: LIQUID MACHINES, INC.
To: CHECK POINT SOFTWARE TECHNOLOGIES LTD.
Reel/Frame 045075/0448 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2018
From: LIQUID MACHINES, INC.
To: CHECK POINT SOFTWARE TECHNOLOGIES, INC.
Reel/Frame 044563/0058 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2005
From: SHERWOOD PARTNERS, INC.
To: LIQUID MACHINES, INC.
Reel/Frame 015942/0576 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2005
From: OMNIVA CORP.
To: SHERWOOD PARTNERS
Reel/Frame 015942/0570 →
SECURITY AGREEMENT Recorded Sep 9, 2004
From: LIQUID MACHINES, INC.
To: COMERICA BANK, SUCCESSOR IN INTEREST TO COMERICA BANK-CALIFORNIA
Reel/Frame 015097/0883 →
OMNIVA CORP. DOING BUSINESS AS (DBA) OMNIVA POLICY SYSTEMS, INC. Recorded Mar 16, 2004
From: OMNIVA POLICY SYSTEMS, INC.
To: OMNIVA CORP.
Reel/Frame 014434/0482 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2002
From: MARVIT, MACLEN; ROSEMA, KEITH DAVID; UBOIS, JEFFREY; MARVIT, DAVID; BRETTLE, DEAN; ZADIK, YAIR; GOODNICK, STUART
To: OMNIVA POLICY SYSTEMS, INC.
Reel/Frame 012393/0552 →
Continuity (2)
Continuation In Part 0930008500 · Apr 26, 1999
Provisional Application 6022281500 · Aug 4, 2000