IP Library Granted Patent US 7,865,730
Granted Patent B2
US 7,865,730 · App. 11/698,260 · Granted Jan 4, 2011

Bcencryption (BCE)—a public-key based method to encrypt a data stream

Assignee: Kronos Technology Systems Limited Partnership
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,865,730
App. No.
11/698,260
Granted
Jan 4, 2011
Kind
B2
Abstract

A system and method for a web browser to convert an unencrypted character string into a cipher-text string combines a public-key encryption algorithm with a unique and constantly changing salt key. A private “server-key”, a public “client-key” and a server session ID are generated by the server, and the client-key and the session ID are sent to the browser with the code used to encrypt the message. The session-based string can be a randomly generated set of characters which changes between established user sessions and the salt key can be formed from the server session ID string. The server contains the matching code necessary to decrypt the stream using the private key.

Claims (63)

1. A method of encrypting a data stream, comprising the steps of:

providing a web browser running on a client;

providing an application server;

providing a communication channel between the client and the server;

providing a data stream comprising an unencrypted text string m, which string is further comprised of unencrypted text characters having numerical representations, m i ;

providing a public client key (n, e) and a server session ID string, wherein at least the public client key and session ID string are generated by the server; and

converting the unencrypted text string m into a cipher-text string c using a salt key s, a public-key algorithm, and the public client-key, wherein the salt key s is formed from the server session ID string,

wherein converting the unencrypted text string m into the cipher-text string c comprises:

rolling the salt key s derived from the session ID string and determining a corresponding ASCII decimal value of a next successive alphanumeric character in the session ID string as a next salt value s i ;

encrypting each next unencrypted text character m i to a corresponding cipher-text value c i =(m′ i ) e mod n where an interim cipher-message element m′ i =m i +s i , if s i is an even value and m′ i =m i −s i , if s i is an odd value;

storing the cipher-text value c i as a next element of the cipher-text string c in memory;

skipping, during the creation of the next salt value, s i , any non-alphanumeric characters within the session ID string; and

transmitting the cipher-text string c from memory when an end of the unencrypted text string m is reached.

2. The method of claim 1 , further comprising: the server sending the public client key and the session ID string across the communication channel to the browser together with encryption programming code for encrypting the unencrypted text string m.

3. The method of claim 1 further comprising using client-side JavaScript in the browser to implement encryption.

4. The method of claim 2 , further comprising:

providing a private server key d;

maintaining the private server key d on the server; and

decrypting the cipher-text string c using a public-key algorithm, the private server key d and the salt key s.

5. The method of claim 4 , wherein the public key algorithm is the RSA public key algorithm, and wherein decrypting the cipher-text string c into the unencrypted text string m comprises:

decrypting each next encrypted cipher-text character c i to a corresponding interim text string element value m′ i =(c i ) d mod n;

rolling the salt key s derived from the session ID string and determining a corresponding ASCII decimal value of a next successive alphanumeric character in the session ID string as a next salt value s i ;

skipping, during the creation of the next salt value, s i , any non-alphanumeric characters within the session ID string;

determining the unencrypted text string element m i =m′ i +s i , if s i is an odd value, and m i =m′ i −s i , if s i is an even value; and

storing the unencrypted message element m i as a next element of the unencrypted text string m in memory.

6. The method of claim 2 , further comprising padding two leading zeros when the cipher-text element is less than 10 and one leading zero when the cipher-text element is less than 100.

7. The method of claim 1 , wherein a first salt key s 1 is an ASCII decimal representation of any alphanumeric character of the session ID and the client and server contract or exchange information to specify a starting location for the first salt key in the session ID sequence.

8. The method of claim 1 , wherein the step of providing a server session ID string further comprises generating the session ID string as a randomly generated set of characters, which session ID string changes between established user sessions.

9. The method of claim 1 , wherein the public client key is generated on the server and sent to the client.

10. The method of claim 2 , wherein the conversion of each character m i of the unencrypted text string m into a cipher-text element is unique with respect to that cipher-text element and the cipher-text element is only able to be unencrypted using a private server key, the private server key being stored on the application server.

11. The method of claim 10 , wherein the server contains the matching code necessary to decrypt the stream using the private server key.

12. The method of claim 1 further comprising, when converting the unencrypted text string m of a target message into a cipher-text string:

restarting at the first session ID character in the session ID string if the end of the session ID string is reached prior to completing the conversion of the target message.

13. The method of claim 1 , wherein the session-ID string has greater than 20 alphanumeric characters.

14. A method of encryption, comprising:

providing a client;

providing, at the client, an unencrypted text string m, which string is further comprised of unencrypted text characters having numerical representations, m i ;

receiving a public client key (n, e) and a server session ID string; and

the client converting the unencrypted text string m into a cipher-text string c by:

determining a corresponding ASCII decimal value of a next successive alphanumeric character in the session ID string as a next salt value s i ;

encrypting each next unencrypted text character m i to a corresponding cipher-text value c i =(m′ i ) e mod n where an interim cipher-message element m′ i =m i +s i , if s i is an even value and m′ i =m i −s i , if s i is an odd value;

storing the cipher-text value c i as a next element of the cipher-text string c in memory; and

transmitting the cipher-text string c from memory when an end of the unencrypted text string m is reached.

15. The method of claim 14 , further comprising:

establishing a communication channel between the client and a server.

16. The method of claim 15 , further comprising:

the client receiving the public client key from the server over the communication channel.

17. The method of claim 14 , further comprising:

the server generating and sending at least one of the public client key and the session ID string to the client over the communication channel.

18. The method of claim 14 , further comprising:

skipping, during the creation of the next salt value, s i , any non-alphanumeric character within the session ID string.

19. The method of claim 15 , further comprising:

the server sending encryption programming code for the browser to execute to implement the conversion of the unencrypted text string m into a cipher-text string c.

20. The method of claim 19 , wherein the programming code comprises client-side JavaScript code to implement encryption.

21. The method of claim 15 , further comprising:

providing, at the server, a private server key d;

maintaining the private server key d on the server; and

the server decrypting the cipher-text string c into the unencrypted text string m using a public-key algorithm, the private server key d and the salt key s by:

decrypting each next encrypted cipher-text character c i of the cipher-text string c to a corresponding interim text string element value m′ i =(c i ) d mod n;

rolling the salt key s derived from the session ID string and determining a corresponding ASCII decimal value of a next successive alphanumeric character in the session ID string as a next salt value s i ;

skipping, during the creation of the next salt value, s i , any non-alphanumeric characters within the session ID string;

determining the unencrypted text string element m i =m′ i +s i , if s i is an odd value, and m i =m′ i −s i , if s i is an even value; and

storing the unencrypted message element m i as a next element of the unencrypted text string m in memory.

Assignments (20)
RELEASE (REEL 053117 / FRAME 0158) Recorded Apr 9, 2024
From: NOMURA CORPORATE FUNDING AMERICAS, LLC
To: UKG INC. (F/K/A THE ULTIMATE SOFTWARE GROUP, INC.); KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP
Reel/Frame 067055/0814 →
NOTICE OF SUCCESSION OF AGENCY (FIRST LIEN) Recorded Feb 12, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: NOMURA CORPORATE FUNDING AMERICAS, LLC, AS SUCCESSOR AGENT
Reel/Frame 066551/0888 →
SECURITY AGREEMENT (NOTES) Recorded Feb 12, 2024
From: KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP; UKG INC.
To: COMPUTERSHARE TRUST COMPANY, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 066551/0962 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2021
From: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
To: KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP
Reel/Frame 058372/0311 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2021
From: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
To: KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP
Reel/Frame 058372/0306 →
RELEASE OF SECURITY INTEREST Recorded Jul 2, 2020
From: NOMURA CORPORATE FUNDING AMERICAS, LLC
To: KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP; KRONOS TALENT MANAGEMENT LLC
Reel/Frame 053109/0200 →
RELEASE OF SECURITY INTEREST Recorded Jul 2, 2020
From: NOMURA CORPORATE FUNDING AMERICAS, LLC
To: KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP; KRONOS TALENT MANAGEMENT LLC
Reel/Frame 053109/0185 →
SECURITY AGREEMENT(SECOND LIEN) Recorded Jul 1, 2020
From: KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP
To: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 053117/0130 →
SECURITY AGREEMENT (SECOND LIEN) Recorded Jul 1, 2020
From: THE ULTIMATE SOFTWARE GROUP, INC.; KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP
To: NOMURA CORPORATE FUNDING AMERICAS, LLC, AS COLLATERAL AGENT
Reel/Frame 053117/0158 →
SECURITY AGREEMENT(FIRST LIEN) Recorded Jul 1, 2020
From: KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 053117/0178 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 1, 2020
From: KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053349/0385 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 1, 2020
From: KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP
To: ARES CAPITAL CORPORATION
Reel/Frame 053116/0932 →
SECOND LIEN RELEASE Recorded Nov 7, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP; KRONOS TALENT MANAGEMENT LLC
Reel/Frame 040572/0954 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 7, 2016
From: KRONOS TALENT MANAGEMENT LLC; KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP
To: NOMURA CORPORATE FUNDING AMERICAS, LLC, AS COLLATERAL AGENT
Reel/Frame 040572/0981 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Nov 7, 2016
From: KRONOS TALENT MANAGEMENT LLC; KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP
To: NOMURA CORPORATE FUNDING AMERICAS, LLC, AS COLLATERAL AGENT
Reel/Frame 040572/0989 →
FIRST LIEN RELEASE Recorded Nov 7, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP; KRONOS TALENT MANAGEMENT LLC
Reel/Frame 040572/0948 →
SECOND-LIEN INTELLECTUAL PROPERTY PATENT SECURITY AGREEMENT Recorded Nov 1, 2012
From: KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP; KRONOS TALENT MANAGEMENT INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT FOR THE SECOND-LIEN SECURED PARTIES
Reel/Frame 029228/0972 →
FIRST-LIEN INTELLECTUAL PROPERTY PATENT SECURITY AGREEMENT Recorded Nov 1, 2012
From: KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP; KRONOS TALENT MANGEMENT INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT FOR THE FIRST-LIEN SECURED PARTIES
Reel/Frame 029228/0527 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ENTITY OF THE ASSIGNEE, FILED ON 03/06/2007, RECORDED ON REEL 018970 FRAME 0441, ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT OF THE ENTIRE INTEREST. Recorded Apr 6, 2007
From: CORTEZ, BRIAN KEITH
To: KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP
Reel/Frame 019139/0057 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2007
From: CORTEZ, BRIAN KEITH
To: KRONOS TECHNOLOGY SYSTEMS LIMITED PARTNERSHIP
Reel/Frame 018970/0441 →
Continuity (2)
Provisional Application 6076333200 · Jan 30, 2006
Related Publication 20070180230A1 · Aug 2, 2007