IP Library Granted Patent US 10,176,334
Granted Patent B2
US 10,176,334 · App. 15/157,976 · Granted Jan 8, 2019

Data security using alternative encoding

Inventors: Jeremy Alexander Nicholl (Waterloo, CA); Konrad Piascik (Oakville, CA); Rupen Chanda (San Francisco, CA); Christopher Hutten-Czapski (Waterloo, CA)
Assignee: BlackBerry Limited
G06F21/62G06F21/606
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 10,176,334
App. No.
15/157,976
Granted
Jan 8, 2019
Kind
B2
Abstract

A system and method for protecting text from unauthorized access. An original data set including a plurality of character code values is received, where each character code value corresponds to a respective character defined in a character definition standard. A new value corresponding to an undefined value within the character definition standard is determined for each character code value. An augmented code point-to-glyph mapping is created based on the new values with mappings between each new value and a glyph to render a character associated with the character code value. A new data set is created based on the data set and the augmented code point-to-glyph mapping by replacing character code values in the data with new values corresponding to the text character codes. The new data set and the augmented code point-to-glyph mapping are sent to a destination.

Claims (72)

1. A method, comprising:

receiving an original data set comprising a plurality of character code values, each respective character code value corresponding to a respective character defined in a character definition standard mapping,

wherein the original data set defines data to be displayed and wherein the plurality of character code values is a subset comprising less than all of the data to be displayed, and,

wherein the plurality of character code values is within a defined portion of a display of the data to be displayed;

determining, for each character code value within the plurality of character code values, a respective new value, each respective new value corresponding to a respective undefined value within the character definition standard mapping;

modifying, based on determining the respective new value, the character definition standard mapping to create an augmented code point-to-glyph mapping, the character definition standard mapping being created by adding, to the character definition standard mapping, mappings between each respective new value and a respective glyph to render the respective character corresponding to the character code value;

creating a new data set, based on the original data set and the augmented code point-to-glyph mapping, wherein creating the new data set comprises replacing each respective character code value in the plurality of character code values with the respective new value corresponding to the respective character corresponding to the respective character code value in the original data set, and

wherein data from the original data set is stored in the new data set for character code values displayed outside of the defined portion of the display from the original data set;

sending the augmented code point-to-glyph mapping to a destination; and

sending the new data set to the destination in order to allow proper rendering at the destination of a selected portion of the defined portion of the display of the data defined by the original data set.

2. The method of claim 1 ,

wherein the original data set comprises:

a first character code indicating a presentation of a first text character, and

a second character code indicating a presentation of a second text character at a location adjacent to the presentation of the first text character,

wherein the method further comprises:

creating, while creating the new data set, a combination glyph presenting the first text character adjacent to the second text character; and

determining a substitute glyph identifier for the combination glyph, and wherein:

the modifying the character definition standard mapping further comprises mapping the substitute glyph identifier to a substitute code point value corresponding to a respective undefined value within the character definition standard mapping, and

the creating the new data set comprises replacing the first character code and the second character code in the original data set with the substitute code point value to represent the combination of the first text character adjacent to the second text character.

3. The method of claim 1 , further comprising:

receiving, from the destination subsequent to sending the new data set, a request for data comprising the augmented code point-to-glyph mapping, and

wherein the sending the augmented code point-to-glyph mapping is based on receiving the request for the data comprising the augmented code point-to-glyph mapping from the destination.

4. The method of claim 3 , wherein the sending the data comprising the augmented code point-to-glyph mapping is further based on validating that the request for the data comprising the augmented code point-to-glyph mapping is sent from the destination to which the new data set was sent.

5. The method of claim 3 , wherein creating the new data set further comprises creating the new data set that further comprises a specification of the data comprising the augmented code point-to-glyph mapping.

6. The method of claim 5 , wherein the new data set further specifies that the data comprising the augmented code point-to-glyph mapping is not to be cached.

7. The method of claim 1 , wherein the determining, for each character code value within the plurality of character code values, a respective new value comprises calculating each of the plurality of character codes values based upon a hash function.

8. A text data processing system, comprising:

a text encoding processor that when operating:

receives an original data set comprising a plurality of character code values, each respective character code value corresponding to a respective character defined in a character definition standard mapping,

wherein the original data set defines data to be displayed and wherein the plurality of character code values is a subset comprising less than all of the data to be displayed, and,

wherein the plurality of character code values is within a defined portion of a display of the data to be displayed;

determines, for each character code value within the plurality of character code values, a respective new value, each respective new value corresponding to a respective undefined value within the character definition standard mapping;

modifies, based on a determination of the respective new value, the character definition standard mapping to create an augmented code point-to-glyph mapping, the character definition standard mapping being created by adding, to the character definition standard mapping, mappings between each respective new value and a respective glyph to render the respective character corresponding to the character code value;

creates a new data set, based on the original data set and the augmented code point-to-glyph mapping, wherein the text encoding processor creates the new data set by at least replacing each respective character code value in the plurality of character code values with the respective new value corresponding to the respective character corresponding to the respective character code value in the original data set, and

wherein data from the original data set is stored in the new data set for character code values displayed outside of the defined portion of the display from the original data set; and

a data communications processor that when operating:

sends the augmented code point-to-glyph mapping to a destination; and

sends the new data set to the destination in order to allow proper rendering at the destination of a selected portion of the defined portion of the display of the data defined by the original data set.

9. The text data processing system of claim 8 ,

wherein the character code values correspond to defined code point values defined by a Unicode standard, and

wherein each respective new value is within an undefined portion of the Unicode standard.

10. The text data processing system of claim 8 ,

wherein the original data set comprises:

a first character code indicating a presentation of a first text character, and

a second character code indicating a presentation of a second text character at a location adjacent to the presentation of the first text character, wherein the text encoding processor, when operating, further:

creates, while creating the new data set, a combination glyph presenting the first text character adjacent to the second text character; and

determines a substitute glyph identifier for the combination glyph , and wherein the text encoding processor:

modifies the character definition standard mapping by mapping the substitute glyph identifier to a substitute code point value corresponding to a respective undefined value within the character definition standard mapping, and

creates the new data set by replacing the first character code and the second character code in the original data set with the substitute code point value to represent the combination of the first text character adjacent to the second text character.

11. The text data processing system of claim 8 , wherein the data communications processor, when operating:

further receives, from the destination subsequent to sending the new data set, a request for data comprising the augmented code point-to-glyph mapping,

sends the augmented code point-to-glyph mapping based on receiving the request for the data comprising the augmented code point-to-glyph mapping from the destination, and

wherein the data communications processor, when operating, sends the data comprising the augmented code point-to-glyph mapping further based on validating that the request for the data comprising the augmented code point-to-glyph mapping is sent from the destination to which the new data set was sent.

12. The text data processing system of claim 8 , wherein text encoding processor creates the new data set by creating the new data set that comprises a specification of the data comprising the augmented code point-to-glyph mapping.

13. A method comprising:

receiving a data set comprising a specification of:

data comprising an augmented code point-to-glyph mapping that comprises a standard code point-to-glyph mapping to which new code points that also correspond to characters defined in the standard code point-to-glyph mapping have been added, and

a plurality of code values corresponding to text characters to be presented on a display, each respective code value having a respective value corresponding a defined character within the augmented code point-to-glyph mapping;

requesting, based on receiving the data set, the data comprising the augmented code point-to-glyph mapping;

receiving the data comprising the augmented code point-to-glyph mapping;

presenting on the display a first presentation of the data set using the standard code point-to-glyph mapping;

receiving, subsequent to presenting on the display the first presentation, an indication of a specified location on the display; and

modifying the first presentation by modifying, based on receiving the indication and based on the augmented code point-to-glyph mapping, presentation of text character codes presented within a protected area of the first presentation to present glyphs defined by the augmented code point-to-glyph mapping in order to proper render text character codes presented within the protected area of the first presentation, where the protected area is based on the specified location, wherein the protected area is a defined portion of the first presentation that is smaller than the first presentation.

14. The method of claim 13 , wherein the standard code point-to-glyph mapping is based on a standard code point-to-glyph mapping defined by a Unicode standard, and

the augmented code point-to-glyph mapping comprises the standard code point-to-glyph mapping and the new code points are added within private use areas defined by the Unicode standard.

15. The method of claim 13 , wherein a location of the defined portion comprising the protected area is based on the specified location, and

wherein receiving the indication comprises receiving an input associated with presenting the display.

16. The method of claim 15 , wherein receiving the input comprises receiving a pointer location presented on the display, and wherein the protected area is based on the pointer location.

17. The method of claim 15 ,

wherein the display comprises a touch sensitive input,

wherein receiving the input comprises receiving a touch input at a location of the display, and

wherein the protected area is based on the location.

Assignments (9)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064271/0199 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNORS NAMES PREVIOUSLY RECORDED AT REEL: 040259 FRAME: 0709. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 13, 2018
From: NICHOLL, JEREMY ALEXANDER; PIASCIK, KONRAD
To: BLACKBERRY LIMITED
Reel/Frame 047508/0953 →
CHANGE OF NAME Recorded Dec 18, 2017
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 044906/0546 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2017
From: HUTTEN-CZAPSKI, CHRISTOPHER
To: RESEARCH IN MOTION LIMITED
Reel/Frame 044424/0845 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2016
From: CHANDA, RUPEN
To: BLACKBERRY CORPORATION
Reel/Frame 040267/0536 →
CORRECTIVE ASSIGNMENT TO CORRECT THE DELETE INCORRECT ASSIGNOR PREVIOUSLY RECORDED AT REEL: 039389 FRAME: 0570. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 26, 2016
From: NICHOLL, JEREMY ALEXANDER; PIASCIK, KONRAD; HUTTEN-CZAPSKI, CHRISTOPHER
To: BLACKBERRY CORPORATION; BLACKBERRY LIMITED
Reel/Frame 040259/0709 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2016
From: BLACKBERRY CORPORATION
To: BLACKBERRY LIMITED
Reel/Frame 039400/0499 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2016
From: NICHOLL, JEREMY ALEXANDER; PIASCIK, KONRAD; CHANDA, RUPEN; HUTTEN-CZAPSKI, CHRISTOPHER
To: BLACKBERRY LIMITED
Reel/Frame 039389/0570 →
Continuity (1)
Related Publication 20170337388A1 · Nov 23, 2017
Cited By (2)
US 12,481,778 US 12,585,811