IP Library Granted Patent US 8,375,282
Granted Patent B2
US 8,375,282 · App. 12/463,878 · Granted Feb 12, 2013

System and method for securely adding redundancy to an electronic message

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 8,375,282
App. No.
12/463,878
Granted
Feb 12, 2013
Kind
B2
Abstract

A system for adding a redundancy check to an electronic message to discourage tampering and facilitate identification of altered messages provides a communication device for composing message content, a messaging module with a formatting and encoding layer for encoding the message content with header information in a series of message blocks, and an encryption layer for calculating a redundancy check value and inserting the value in one or more locations within the series of message blocks according a rule defined by a characteristic of the message content or the header information, and encrypting the message for delivery to a recipient. Upon receipt, the recipient communication device decrypts the message, extracts the redundancy check value from the message, and compares a calculated redundancy check value with the extracted redundancy check value to determine if the message had been altered before receipt.

Claims (57)

1. A computer program product, comprising a non-transitory computer usable medium having a computer readable program code embodied therein, said computer readable program code adapted to be executed to implement a method for a sending communication device to provide redundancy to an electronic message to be sent to a recipient communication device, said method comprising:

assigning a session key to the electronic message;

determining a redundancy value for the electronic message;

determining a locating value, the locating value comprising a value of a characteristic of the electronic message and being defined such that the locating value varies for different electronic messages and may be determined by the recipient communication device for each electronic message sent to it;

placing the redundancy value in the electronic message at one or more locations determined by the locating value; and

encrypting the electronic message including the redundancy value;

wherein the value of the characteristic of the electronic message comprises a number of bits of a predetermined value in the session key.

2. The computer program product of claim 1 , wherein the locating value comprises a parity of the number of bits of the predetermined value in the session key.

3. The computer program product of claim 1 , wherein the computer readable program code is further adapted to be executed to format the electronic message as a series of message blocks, prior to placing the redundancy value in the electronic message.

4. The computer program product of claim 3 , wherein placing the redundancy value in the electronic message comprises:

identifying a location in the electronic message defined in relation to the series of message blocks using the locating value; and

inserting the redundancy value in said location.

5. The computer program product of claim 3 , wherein placing the redundancy value in the electronic message comprises:

formatting the redundancy value as a plurality of redundancy value blocks;

identifying at least one location in the electronic message defined in relation to the series of message blocks using the locating value; and

inserting at least one of the plurality of redundancy value blocks in the at least one location.

6. The computer program product of claim 5 , wherein identifying the at least one location comprises identifying a first location between two consecutive message blocks, such that the first location is located between a first and a second message block if the locating value is even, and between a third and a fourth message block if the locating value is odd.

7. The computer program product of claim 6 , wherein identifying the at least one location further comprises identifying a second location between two consecutive message blocks, such that the second location is located between a fifth and a sixth message block if the locating value is divisible by a predetermined factor, and between a seventh and an eighth message block if the locating value is not divisible by the predetermined factor.

8. A computer program product, comprising a non-transitory computer usable medium having a computer readable program code embodied therein, said computer readable program code adapted to be executed to implement a method for a sending communication device to provide redundancy to an electronic message to be sent to a recipient communication device, said method comprising

determining a redundancy value for the electronic message to be sent;

formatting the electronic message as a series of message blocks, and formatting the redundancy value as one or more redundancy value blocks;

determining a locating value, the locating value comprising a value of a characteristic of one or more predetermined message blocks and being defined such that the locating value varies for different electronic messages and may be determined by the recipient communication device for each electronic message sent to it;

placing the redundancy value in the electronic message at one or more locations determined by the locating value; and

encrypting the electronic message including the redundancy value.

9. The computer program product of claim 8 , wherein encrypting the electronic message comprises encrypting the electronic message using a session key.

10. The computer program product of claim 8 , wherein placing the redundancy value in the electronic message at one or more locations determined by the locating value comprises:

identifying at least one location in the electronic message defined in relation to the series of message blocks using the locating value; and

inserting at least one of the one or more redundancy value blocks in the at least one location.

11. The computer program product of claim 8 , wherein the characteristic of the one or more predetermined message blocks is a number of bits of a predetermined value in the one or more predetermined message blocks.

12. The computer program product of claim 8 , wherein the characteristic of the one or more predetermined message blocks is a parity of a number of bits of a predetermined value in the one or more predetermined message blocks.

13. The computer program product of claim 8 , wherein the locating value is a length of the electronic message.

14. The computer program product of claim 8 , wherein the computer readable program code is further adapted to be executed to transmit the locating value to the recipient communication device.

15. The computer program product of claim 8 , wherein the computer readable program code is further adapted to be executed to transmit a pointer to the locating value to the recipient communication device.

16. The computer program product of claim 15 , wherein the locating value is stored in a location accessible by both the sending communication device and the recipient communication device.

17. A method for decrypting an encrypted message, the message comprising a plurality of message blocks and one or more redundancy value blocks placed among the plurality of message blocks according to a locating value, the locating value being defined such that the locating value varies for different messages, the method comprising:

decrypting the encrypted message;

locating the one or more redundancy value blocks in the message based on the locating value, by:

determining or receiving the locating value,

identifying, using the locating value, the location of at least one of the one or more redundancy value blocks in relation to the plurality of message blocks;

obtaining a received redundancy value from the one or more redundancy value blocks;

determining a calculated redundancy value from the plurality of message blocks; and

comparing the received redundancy value with the calculated redundancy value,

wherein the locating value is a session key provided with the encrypted message.

18. The method of claim 17 , wherein identifying the location of the at least one of the one or more redundancy value blocks is carried out using a number of bits of a predetermined value in the locating value.

19. The method of claim 17 , wherein identifying the location of the at least one of the one or more redundancy value blocks is carried out using a parity of a number of bits of a predetermined value in the locating value.

20. The method of claim 17 , wherein determining or receiving the locating value comprises retrieving the locating value over a network connection.

21. The method of claim 17 , wherein determining or receiving the locating value comprises receiving the locating value from a sending communication device from which the encrypted message was transmitted.

22. A method for a sending communication device to provide redundancy to an electronic message to be sent to a recipient communication device, said method comprising:

determining a redundancy value for the electronic message to be sent;

formatting the electronic message as a series of message blocks, and formatting the redundancy value as one or more redundancy value blocks;

determining a locating value, the locating value comprising a value of a characteristic of one or more predetermined message blocks and being defined such that the locating value varies for different electronic messages and may be determined by the recipient communication device for each electronic message sent to it;

placing the redundancy value in the electronic message at one or more locations determined by the locating value;

encrypting the electronic message including the redundancy value; and

providing the locating value to the recipient communication device.

23. The method of claim 22 , wherein providing the locating value to the recipient communication device comprises transmitting the locating value to the recipient communication device.

24. The method of claim 22 , wherein providing the locating value to the recipient communication device comprises transmitting a pointer to the locating value to the recipient communication device.

25. The method of claim 24 , wherein the locating value is stored in a location accessible by both the sending communication device and the recipient communication device.

Assignments (4)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Nov 4, 2014
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 034161/0056 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2009
From: BROWN, MICHAEL K.; KIRKUP, MICHAEL G.; BROWN, MICHAEL S.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 022666/0751 →