IP Library Granted Patent US 9,197,408
Granted Patent B2
US 9,197,408 · App. 13/892,030 · Granted Nov 24, 2015

Systems and methods for providing a secure data exchange

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 9,197,408
App. No.
13/892,030
Granted
Nov 24, 2015
Kind
B2
Abstract

A system, a method, and a computer program product for a data exchange are provided. A first application generates a first key for exchange of data between the first application and a second application. The first application stores the first key in a first memory location. The second application obtains the first key from the memory location. The second application generates a second key for exchange of data between the first application and the second application. The second application creates a data request that contains the second key and is encrypted using the first key. The encrypted request is provided to the first application. The first application provides the data identified in the data request to the second application. The data is encrypted by the first application using the second key prior to being provided to the second application. The second application decrypts the data using the second key.

Claims (54)

1. A computer-implemented method, comprising:

generating, using a first application, a first key for exchange of data between the first application and a second application;

storing, using the first application, the first key in a first memory location, wherein the first memory location is accessed by the second application to obtain the first key;

generating, using the second application, a second key for exchange of data between the first application and the second application;

creating, using the second application, a data request, the data request containing the second key and being encrypted using the first key, and providing the encrypted request to the first application; and

providing, using the first application, the data identified in the data request to the second application, wherein the data is encrypted by the first application using the second key prior to being provided to the second application and the second application decrypts the data using the second key;

wherein the first application stores the encrypted data created in response to the data request in a second memory location, wherein the second memory location is created by the second application for exchanging data with the first application;

wherein the data request further comprises an identification information of the second memory location;

wherein the at least one of the generating the first key, storing, the generating the second key, the creating and the providing is performed on at least one processor.

2. The method according to claim 1 , wherein the first key is a first public encryption key.

3. The method according to claim 2 , wherein the first application decrypts the data request using a first private decryption key.

4. The method according to claim 1 , wherein the first application provides the encrypted data created in response to the data request directly to the second application.

5. The method according to claim 2 , wherein the second key is a second public encryption key.

6. The method according to claim 5 , wherein the second application decrypts the data using a second private decryption key.

7. The method according to claim 6 , further comprising

storing, using the first application, the first public encryption key in the first memory location; and

storing, using the second application, the second public encryption key in a second memory location, wherein the second memory location is accessed by the first application to obtain the second public encryption key.

8. The method according to claim 7 , further comprising

creating, using the second application, a third memory location accessible by the first application and the second application;

storing, using the first application, data created in response to the data request, the data being encrypted using the second public encryption key and stored in the third memory location; obtaining, using the second application, the encrypted data from the third memory location and decrypting the obtained data using the second private decryption key; and

deleting, using the second application, the third memory location.

9. The method according to claim 7 , further comprising

providing, using the first application, the data created in response to the data request directly to the second application, wherein the data being encrypted by the first application using the second public encryption key and, upon receipt by the second application from the first application, being decrypted by the second application using second private decryption key.

10. The method according to claim 1 , further comprising

deleting, using the first or second application, the first key from the first memory location.

11. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:

generating, using a first application, a first key for exchange of data between the first application and a second application;

storing, using the first application, the first key in a first memory location, wherein the first memory location is accessed by the second application to obtain the first key;

generating, using the second application, a second key for exchange of data between the first application and the second application;

creating, using the second application, a data request, the data request containing the second key and being encrypted using the first key, and providing the encrypted request to the first application; and

providing, using the first application, the data identified in the data request to the second application, wherein the data is encrypted by the first application using the second key prior to being provided to the second application and the second application decrypts the data using the second key;

wherein the first application stores the encrypted data created in response to the data request in a second memory location, wherein the second memory location is created by the second application for exchanging data with the first application;

wherein the data request further comprises an identification information of the second memory location.

12. The computer program product according to claim 11 , wherein the first key is a first public encryption key, wherein the first application decrypts the data request using a first private decryption key.

13. The computer program product according to claim 11 , wherein the first application provides the encrypted data created in response to the data request directly to the second application.

14. The computer program product according to claim 12 , wherein the operations further comprise

storing, using the first application, the first public encryption key in the first memory location; and

storing, using the second application, a second public encryption key in a second memory location, wherein the second memory location is accessed by the first application to obtain the second public encryption key.

15. The computer program product according to claim 14 , wherein the operations further comprise

creating, using the second application, a third memory location accessible by the first application and the second application;

storing, using the first application, data created in response to the data request, the data being encrypted using the second public encryption key and stored in the third memory location; obtaining, using the second application, the encrypted data from the third memory location and decrypting the obtained data using the second private decryption key; and

deleting, using the second application, the third memory location.

16. The computer program product according to claim 14 , wherein the operations further comprise

providing, using the first application, the data created in response to the data request directly to the second application, wherein the data being encrypted by the first application using the second public encryption key and, upon receipt by the second application from the first application, being decrypted by the second application using second private decryption key.

17. A system comprising:

at least one programmable processor; and

a machine-readable medium storing instructions that, when executed by the at least one programmable processor, cause the at least one programmable processor to perform operations comprising:

generating, using a first application, a first key for exchange of data between the first application and a second application;

storing, using the first application, the first key in a first memory location, wherein the first memory location is accessed by the second application to obtain the first key;

generating, using the second application, a second key for exchange of data between the first application and the second application;

creating, using the second application, a data request, the data request containing the second key and being encrypted using the first key, and providing the encrypted request to the first application; and

providing, using the first application, the data identified in the data request to the second application, wherein the data is encrypted by the first application using the second key prior to being provided to the second application and the second application decrypts the data using the second key;

wherein the first application stores the encrypted data created in response to the data request in a second memory location, wherein the second memory location is created by the second application for exchanging data with the first application;

wherein the data request further comprises an identification information of the second memory location.

Assignments (2)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2013
From: AMATO, RICCARDO FRANCO
To: SAP AG
Reel/Frame 030397/0907 →