Generating a symmetric key to secure a communication link
A symmetric key to be used to secure a communication link between a first device and a second device is generated as follows: a first symmetric key is generated; a second symmetric key is generated; packets communicated between the first device and the second device over communication link are hashed to create a hash result; the first symmetric key, the second symmetric key and the hash result are hashed to generate a third symmetric key to be used to secure the communication link.
Latest BlackBerry Limited Patents:
- Method and system for handling dynamic cybersecurity posture of a V2X entity
- Stored image privacy violation detection method and system
- Method and system for providing data security for micro-services across domains
- Method and system for low latency data management
- Method and system for sharing sensor insights based on application requests
This application is related to U.S. application Ser. No. 11/097,144 filed Apr. 4, 2005.
BACKGROUND OF THE INVENTIONIn general, wireless communication is insecure and vulnerable to attacks. Various techniques may be employed to secure a wireless communication link or to make it less vulnerable to attacks. For example, cryptographic techniques may be employed to secure a wireless communication link. In symmetric-key systems (also known as “secret-key systems”), a single, common cryptographic key is stored by two communication devices. In public-key systems (also known as “public-private pair systems”), each communication device stores its own private key and freely distributes its own public key.
Various security concerns exist with the use of cryptographic techniques. For example, secrets need to be shared between the two communication devices in a secure and authenticated manner. Especially in the case of mobile devices, it may be desirable to have only those two devices know the secret and not require the intervention/involvement of an Information Technology (IT) administrator. Also, it may be desirable to verify that the devices share a secret without exposing that secret to others, and to use the secret to generate a key to secure a communication link between the devices.
Embodiments of the invention are illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like reference numerals indicate corresponding, analogous or similar elements, and in which:
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity.
DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTIONIn the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of embodiments of the invention. However it will be understood by those of ordinary skill in the art that the embodiments of the invention may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the embodiments of the invention.
Reference is made to
A smart card 108 is shown inserted into smart card reader 104. Smart cards are personalized security devices, defined by the ISO7816 standard and its derivatives, as published by the International Organization for Standardization. A smart card may have a form factor of a credit card and may include a semiconductor device. The semiconductor device may include a memory that can be programmed with a secret key and with an authentication certificate, and may include a decryption engine, e.g., a processor and/or dedicated decryption logic. A smart card may include a connector for powering the semiconductor device and performing serial communication with an external device. Alternatively, smart card functionality may be embedded in a device having a different form factor and different communication protocol, for example a Universal Serial Bus (USB) device. The person whose security information is stored on smart card 108 may use smart card reader 104 for identification and to digitally sign and/or decrypt messages sent by device 102.
For example, mobile device 102 may be able to send and receive e-mail messages via an e-mail server (not shown). If, for example, the Secure Multipurpose Internet Mail Extensions (S/MIME) protocol is used, e-mail messages received at mobile device 102 are encrypted using a symmetric algorithm with a random session key generated by the sender of the e-mail message. The e-mail message also includes the session key, encrypted using the public key of the recipient. Upon receipt of an encrypted e-mail message, mobile device 102 may extract the encrypted session key and send it to smart card reader 104 via communication link 106. Smart card reader 104 may send the encrypted session key to smart card 108, and the decryption engine of smart card 108 may decrypt the encrypted session key using the recipient's private decryption key, which is stored in smart card 108. Smart card reader 104 may retrieve the decrypted session key from smart card 108 and forward it to mobile device 102 via communication link 106 so that mobile device 102 can decrypt the received e-mail message. The smart card 108 may prevent unauthorized use of the recipient's private decryption key by requiring that a password or personal identification number (PIN) be supplied before allowing the decryption operation to proceed.
Similarly, to add a digital signature to an e-mail message being sent by mobile device 102, mobile device 102 may send a hash of the contents of the e-mail message to smart card reader 104 over communication link 106. Smart card reader 104 may pass the hash to smart card 108, which may produce a digital signature from the hash and the sender's private signing key, which is stored in smart card 108. Smart card 108 may then pass the digital signature to smart card reader 104, which may forward it to mobile device 102 via communication link 106 so that mobile device 102 can transmit it along with the e-mail message to the e-mail server. Again, smart card 108 may prevent unauthorized use of the recipient's private signing key by requiring that a password or PIN be supplied before allowing the signing operation to proceed.
The unencrypted session key should be sent securely over communication link 106 from smart card reader 104 to mobile device 102 to prevent a third party from retrieving the session key from communication link 106. Similarly, the hash to be signed should be sent authentically over communication link 106 from smart card reader 104 to mobile device 102 to prevent a third party from modifying the hash and thereby causing smart card 108 to produce a signature using a hash different from the hash of the intended message. Smart card reader 104 and mobile device 102 may each store a common, symmetric key and use a symmetric algorithm to secure communications over communication link 106. Alternatively, smart card reader 104 and mobile device 102 may store their own private keys and each other's public keys, and use an asymmetric algorithm combined with a symmetric algorithm to secure communications over communication link 106.
In order to establish the symmetric key used to secure communications over communication link 106, mobile device 102 and smart card reader 104 may use the following method, as illustrated in the flowchart of
At 202, a link between mobile device 102 and smart card reader 104 is established. This link may be, for example, wireless communication link 106.
At 204, a short secret S is established locally at mobile device 102 and smart card reader 104. Any method to establish the short secret S securely and authentically is suitable. By “locally”, it is meant that the establishment of this secret does not require any involvement or intervention by an Information Technology (IT) administrator. Moreover, since the user of mobile device 102 and smart card reader 104 will perform the method of
Establishing the connection between mobile device 102 and smart card reader 104 may occur before, after or concurrently with establishing the short secret S locally on mobile device 102 and smart card reader 104.
Once the connection between mobile device 102 and smart card reader 104 has been established and the short secret S has been established locally on mobile device 102 and smart card reader 104, a “bootstrapping” process to generate a strong secret from the short secret S is initiated at 206. For example, the short secret S may originate at smart card reader 104, and once it has been shared with mobile device 102, mobile device 102 may initiate the bootstrapping process by sending an appropriate message (or just a packet) to smart card reader 104 over communication link 106.
The bootstrapping process involves at least one public key algorithm, at least one symmetric key algorithm, at least one hashing function, and any other security or non-security related information such as a compression algorithm. A non-exhaustive list of examples of public key algorithms includes Diffie-Hellman (DH) on a large prime-order finite group and DH on an elliptical curve (EC) group. At 208, mobile device 102 requests from smart card reader 104 a list of its supported algorithms. At 210, smart card reader 104 sends a list of its supported algorithms to mobile device 102.
At 212, mobile device 102 selects the algorithms to be used in the subsequent steps of the method and sends an indication of the selected algorithms to smart card reader 104. The selected algorithms include:
a) one or two selected public key algorithms (e.g. the parameters or the name of the elliptic curve group, or the prime and generator of the large prime-order finite group);
b) a selected symmetric key algorithm (e.g. Advanced Encryption Standard (AES) and the key size, or Triple Data Encryption Standard (DES), or the like); and
c) a selected hash function (e.g., Message Digest 5 (MD5), Secure Hashing Algorithm 1 (SHA-1), SHA-256, or the like).
At 214, mobile device 102 and smart card reader 104 each generate the same symmetric key K1 from the short secret S, as described in further detail hereinbelow with respect to
At 218, mobile device 102 and smart card reader 104 each hash all the packets sent and received during the generation of symmetric keys K1 and K2 to produce the hash result H. For example, the selected hash function may be applied to the packets as the packets are sent and received, so that this is concurrent with generating the symmetric keys K1 and K2. In another example, the packets may be stored in a buffer and then the selected hash function may be applied to the packets after the symmetric keys K1 and K2 have been generated.
Once symmetric keys K1 and K2 have been generated, and mobile device 102 and smart card reader 104 have produced the hash result H, mobile device 102 and smart card reader 104 each generate the same symmetric key K3 from K1, K2 and the hash result H. For example, the selected hash function may be used to combine keys K1 and K2 and the hash result H into K3.
Symmetric key K3 may then be used to secure communications over communication link 106.
Reference is now made to
Once the short secret S has been shown on display 110 and the appropriate application has been opened on mobile device 102, the user may copy the short secret S to the application on mobile device 102 at 308 using an input component of mobile device 102, for example a keyboard 114. As illustrated in
To protect the short secret S from prying eyes, at 312, smart card reader 104 may clear display 110 once smart card reader 104 receives the message or packet sent by mobile device 102 to initiate the bootstrapping process.
Smart card reader 104 may also implement a timeout, and if, as checked at 314, the message or packet initiating the bootstrapping process has not been received by smart card reader 104 within the predefined period of time, which may be calculated, for example, from the time that the secret S is first shown on display 110, smart card reader 104 may clear display 110.
Once smart card reader 104 has cleared display 110, smart card reader 104 may optionally show at 316 a non-confidential (possibly random) value on display 110 so that a snooper looking at display 110 will not know whether the value on display 110 is the secret or not.
Reference is now made to
The method includes a portion 400 to be implemented by mobile device 102 and a portion 410 to be implemented by smart card reader 104. At 402, mobile device 102 has possession of the secret S and one of the selected public key algorithms. For example, if the selected public key algorithm for generating symmetric key K1 is DH on a large prime-order finite group for a particular prime p, the function ƒ, when applied to the secret S, results in a generator of the group. U.S. Pat. No. 6,226,383 discusses factors to consider when selecting function ƒ. Similarly, at 412, smart card reader 104 has possession of the secret S and the selected public key algorithm for generating symmetric key K1.
At 404, mobile device 102 generates a random number RA in the range of 2 to p−1. Then at 406, mobile device 102 generates a short-term public key P1 by raising the generator ƒ(S) to the power RA within the group and sends public key P1 to smart card reader 104. In the example of DH on the large prime-order finite group for p, this is calculated as follows:
P1=ƒ(S)R
Similarly, at 414, smart card reader 104 generates a random number RB in the range of 2 to p−1. Then at 416, smart card reader 104 generates a short-term public key P2 by raising the generator ƒ(S) to the power RB within the group and sends public key P2 to mobile device 102. In the example of DH on the large prime-order finite group for p, this is calculated as follows:
P2=ƒ(S)R
Generating the random number RB at smart card reader 104 and generating public key P2 and sending it to mobile device 102 may occur before, after or concurrently with generating the random number RA at mobile device 102 and generating public key P1 and sending it to smart card reader 104.
Once mobile device 102 has generating the random number RA and has received public key P2, mobile device 102 generates a symmetric key K1 at 408. In the example of DH on the large prime-order finite group for p, the symmetric key K1 is calculated as follows:
K1=P2R
Once smart card reader 104 has generating the random number RB and has received public key P1, smart card reader 104 generates the symmetric key K1 at 418. In the example of DH on the large prime-order finite group for p, the symmetric key K1 is calculated as follows:
K1=P1R
Since the operations on the elements of the group are commutative, the two calculations (at mobile device 102 and smart card reader 104) yield the same symmetric key. Generating the symmetric key K1 at mobile device 102 may occur before, after or concurrently with generating the symmetric key K1 at smart card reader 104.
Reference is now made to
The method includes a portion 500 to be implemented by mobile device 102 and a portion 510 to be implemented by smart card reader 104. At 502, mobile device 102 has possession of one of the selected public key algorithms, which may be the same as or different from the selected public key algorithm used to generate symmetric key K1. For example, if the selected public key algorithm for generating symmetric key K2 is DH on a large prime-order finite group for a particular prime p, mobile device 102 has possession of a known, published generator T of the group. Similarly, at 512, smart card reader 104 has possession of the selected public key algorithm for generating symmetric key K2.
At 504, mobile device 102 generates a random number RC in the range of 2 to p−1. Then at 506, mobile device 102 generates a short-term public key P3 by raising the generator T to the power RC within the group and sends public key P3 to smart card reader 104. In the example of DH on the large prime-order finite group for p, this is calculated as follows:
P3=TR
Similarly, at 514, smart card reader 104 generates a random number RD in the range of 2 to p−1. Then at 516, smart card reader 104 generates a short-term public key P4 by raising the generator T to the power RD within the group and sends public key P4 to mobile device 102. In the example of DH on the large prime-order finite group for p, this is calculated as follows:
P4=TR
Generating the random number RD at smart card reader 104 and generating public key P4 and sending it to mobile device 102 may occur before, after or concurrently with generating the random number RC at mobile device 102 and generating public key P3 and sending it to smart card reader 104.
Once mobile device 102 has generating the random number RC and has received public key P4, mobile device 102 generates a symmetric key K2 at 508. In the example of DH on the large prime-order finite group for p, the symmetric key K2 is calculated as follows:
K2=P4R
Once smart card reader 104 has generating the random number RD and has received public key P3, smart card reader 104 generates the symmetric key K2 at 518. In the example of DH on the large prime-order finite group for p, the symmetric key K2 is calculated as follows:
K2=P3R
Since the operations on the elements of the group are commutative, the two calculations (at mobile device 102 and smart card reader 104) yield the same symmetric key. Generating the symmetric key K2 at mobile device 102 may occur before, after or concurrently with generating the symmetric key K2 at smart card reader 104.
Mobile device 102 includes an antenna 602 and smart card reader 104 includes an antenna 622. A non-exhaustive list of examples for antennae 602 and 622 includes dipole antennae, monopole antennae, multilayer ceramic antennae, planar inverted-F antennae, loop antennae, shot antennae, dual antennae, omnidirectionale antenna and any other suitable antennae.
Mobile device 102 also includes a communication interface 604 coupled to antenna 602. Smart card reader 104 includes a communication interface 624 coupled to antenna 604. A non-exhaustive list of examples for standards with which communication interfaces 604 and 624 may be compatible includes 802.11a, b, g and n and future related standards, the Bluetooth® standard, the Zigbee™ standard and the like.
Mobile device 102 also includes a processor 606 coupled to communication interface 604 and to keyboard 114. Mobile device 102 also includes a memory 608, which may be fixed in or removable from mobile device 102. Memory 608 may be coupled to processor 606 or partly embedded in processor 606. Communication interface 604 and processor 606 may be part of the same integrated circuit or in separate integrated circuits. Similarly, processor 606 and memory 608 may be part of the same integrated circuit or in separate integrated circuits.
Smart card reader 104 also includes a processor 626 coupled to communication interface 624, to display 110 and to button 112. Smart card reader 104 also includes a memory 628, which may be fixed in or removable from smart card reader 104. Memory 628 may be coupled to processor 626 or partly embedded in processor 626. Communication interface 624 and processor 626 may be part of the same integrated circuit or in separate integrated circuits. Similarly, processor 626 and memory 628 may be part of the same integrated circuit or in separate integrated circuits.
A non-exhaustive list of examples for processors 606 and 626 includes a central processing unit (CPU), a digital signal processor (DSP), a reduced instruction set computer (RISC), a complex instruction set computer (CISC) and the like. Furthermore, processors 606 and 626 may be part of an application specific integrated circuit (ASIC) or may be a part of an application specific standard product (ASSP).
Memory 608 may store executable code 609 which, when executed by processor 606, may cause mobile device 102 to implement relevant portions of any or a combination of the methods of
Memory 628 may store executable code 629 which, when executed by processor 626, may cause smart card reader 104 to implement relevant portions of any or a combination of the methods of
The preceding explanation uses the example of mobile device 102, smart card reader 104 and wireless communication link 106. However, embodiments of the invention are equally applicable to any two devices (not necessary mobile devices) where the security and/or authenticity of the communication link (not necessarily wireless) between the two devices are possibly unsatisfactory. Similarly, other embodiments of the invention are equally applicable to any two devices (not necessarily mobile devices) where this is a need to securely exchange information displayed on one of the devices with the other device.
While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will now occur to those of ordinary skill in the art. It is, therefore, to be understood that the appended claims are intended to cover all such modifications and changes as fall within the spirit of the invention.
Claims
1. A method for securing a communication link between a first device and a second device, the method comprising:
- the first device generating a first symmetric key, wherein generating the first symmetric key includes the first device sending to the second device a first public key in one or more first packets over the communication link and the first device receiving from the second device a second public key in one or more second packets over the communication link, the first public key and the second public key both based on a secret shared by the first device and the second device;
- the first device generating a second symmetric key, wherein generating the second symmetric key includes the first device sending to the second device a third public key in one or more third packets over the communication link and the first device receiving from the second device a fourth public key in one or more fourth packets over the communication link;
- the first device creating a hash result by hashing the one or more first packets, the one or more second packets, the one or more third packets and the one or more fourth packets;
- the first device generating a third symmetric key by hashing the first symmetric key, the second symmetric key and the hash result; and
- one or more of the following: the first device encrypting first data using a symmetric algorithm keyed by the third symmetric key to produce first encrypted data, and sending to the second device the first encrypted data over the communication link; or the first device receiving from the second device second encrypted data over the communication link, and decrypting the second encrypted data using the symmetric algorithm keyed by the third symmetric key to produce decrypted data.
2. The method of claim 1, wherein generating the first symmetric key includes:
- the first device applying a function to the secret to obtain a generator element of a mathematical group;
- the first device raising the generator element to a first random number to obtain another element of the group;
- the first device sending the other element, which is the first public key, to the second device over the communication link;
- the first device receiving from the second device over the communication link a further element of the group, which is the second public key, the further element having been created by the second device raising the generator element to a second random number; and
- the first device raising the further element to the first random number to obtain the first symmetric key.
3. The method of claim 1, wherein the third public key and the fourth public key are generated according to a Diffie-Hellman algorithm on an elliptical curve group.
4. The method of claim 1, wherein the third public key and the fourth public key are generated according to a Diffie-Hellman algorithm on a large prime-order finite group.
5. The method of claim 1, wherein generating the second symmetric key includes:
- the first device raising a known generator element of a mathematical group to a first random number to obtain another element of the group;
- the first device sending the other element, which is the third public kev, to the second device over the communication link;
- the first device receiving from the second device over the communication link a further element of the group, which is the fourth public key, the further element having been created by the second device raising the known generator element to a second random number; and
- the first device raising the further element to the first random number to obtain the second symmetric key.
6. The method of claim 1, wherein hashing the one or more first packets, the one or more second packets, the one or more third packets and the one or more fourth packets comprises hashing the one or more first packets, the one or more second packets, the one or more third packets and the one or more fourth packets according to a Secure Hashing Algorithm 2 (SHA-2).
7. The method of claim 1, wherein hashing the one or more first packets, the one or more second packets, the one or more third packets and the one or more fourth packets comprises hashing the one or more first packets, the one or more second packets, the one or more third packets and the one or more fourth packets according to a Message Digest 5 (MD5) algorithm.
8. The method of claim 1, wherein hashing the one or more first packets, the one or more second packets, the one or more third packets and the one or more fourth packets employs a first hash function and hashing the first symmetric key, the second symmetric key and the hash result employs a second hash function that differs from the first hash function.
9. The method of claim 1, wherein hashing the one or more first packets, the one or more second packets, the one or more third packets and the one or more fourth packets employs a first hash function and hashing the first symmetric key, the second symmetric key and the hash result employs the first hash function.
10. The method of claim 1, wherein the first data is a hash of contents of a message.
11. The method of claim 1, wherein the first data is a hash of contents of a message to be sent by the first device, the method further comprising:
- the first device receiving from the second device over the communication link a digital signature produced by the second device from the hash; and
- the first device transmitting the digital signature and the message to a recipient.
12. The method of claim 1, wherein the decrypted data is a session key.
13. The method of claim 12, the method further comprising: the first device decrypting a received message using a symmetric algorithm keyed by the session key.
14. A first device comprising:
- a processor;
- a communication interface through which the first device is able to establish a communication link with a second device, the communication interface coupled to the processor; and
- a memory able to store executable code which, when executed by the processor, causes the first device to: generate a first symmetric key, wherein generating the first symmetric key includes the first device sending to the second device a first public key in one or more first packets over the communication link and the first device receiving from the second device a second public key in one or more second packets over the communication link, the first public key and the second public key both based on a secret shared by the first device and the second device; generate a second symmetric key, wherein generating the second symmetric key includes the first device sending to the second device a third public key in one or more third packets over the communication link and the first device receiving from the second device a fourth public key in one or more fourth packets over the communication link; create a hash result by hashing the one or more first packets, the one or more second packets, the one or more third packets and the one or more fourth packets; generate a third symmetric key by hashing the first symmetric key, the second symmetric key and the hash result; and one or more of the following: encrypt first data using a symmetric algorithm keyed by the third symmetric key to produce first encrypted data, and send to the second device the first encrypted data over the communication link; or receive from the second device second encrypted data over the communication link, and decrypt the second encrypted data using the symmetric algorithm keyed by the third symmetric key to produce decrypted data.
15. The first device of claim 14, wherein generating the first symmetric key includes:
- the first device applying a function to the secret to obtain a generator element of a mathematical group;
- the first device raising the generator element to a first random number to obtain another element of the group;
- the first device sending the other element, which is the first public key, to the second device over the communication link;
- the first device receiving from the second device over the communication link a further element of the group, which is the second public key, the further element having been created by the second device raising the generator element to a second random number; and
- the first device raising the further element to the first random number to obtain the first symmetric key.
16. The first device of claim 14, wherein the third public key and the fourth public key are generated according to a Diffie-Hellman algorithm on an elliptical curve group.
17. The first device of claim 14, wherein the third public key and the fourth public key are generated according to a Diffie-Hellman algorithm on a large prime-order finite group.
18. The first device of claim 14, wherein generating the second symmetric key includes:
- the first device raising a known generator element of a mathematical group to a first random number to obtain another element of the group;
- the first device sending the other element, which is the third public key, to the second device over the communication link;
- the first device receiving from the second device over the communication link a further element of the group, which is the fourth public key, the further element having been created by the second device raising the known generator element to a second random number; and
- the first device raising the further element to the first random number to obtain the second symmetric key.
19. The first device of claim 14, wherein the first data is a hash of contents of a message.
20. The first device of claim 14, wherein the first data is a hash of contents of a message to be sent by the first device, and the executable code, when executed by the processor, causes the first device to:
- receive from the second device over the communication link a digital signature produced by the second device from the hash; and
- transmit the digital signature and the message to a recipient.
21. The first device of claim 14, wherein the decrypted data is a session key.
22. The first device of claim 21, wherein the executable code, when executed by the processor, causes the first device to decrypt a received message using a symmetric algorithm keyed by the session key.
23. A non-transitory computer-readable medium having stored thereon instructions which, when executed by a first device, result in:
- generating a first symmetric key, wherein generating the first symmetric key includes the first device sending to a second device a first public key in one or more first packets over a communication link and the first device receiving from the second device a second public key in one or more second packets over the communication link, the first public key and the second public key both based on a secret shared by the first device and the second device;
- generating a second symmetric key, wherein generating the second symmetric key includes the first device sending to the second device a third public key in one or more third packets over the communication link and the first device receiving from the second device a fourth public key in one or more fourth packets over the communication link;
- creating a hash result by hashing the one or more first packets, the one or more second packets, the one or more third packets and the one or more fourth packets;
- generating a third symmetric key by hashing the first symmetric key, the second symmetric key and the hash result; and
- one or more of the following: encrypting first data using a symmetric algorithm keyed by the third symmetric key to produce first encrypted data, and sending to the second device the first encrypted data over the communication link; or receiving from the second device second encrypted data over the communication link, and decrypting the second encrypted data using the symmetric algorithm keyed by the third symmetric key to produce decrypted data.
4200770 | April 29, 1980 | Hellman et al. |
5060263 | October 22, 1991 | Bosen et al. |
5450493 | September 12, 1995 | Maher |
5455862 | October 3, 1995 | Hoskinson |
5664099 | September 2, 1997 | Ozzie et al. |
5970147 | October 19, 1999 | Davis |
6002787 | December 14, 1999 | Takhar et al. |
6044470 | March 28, 2000 | Kuriyama |
6078908 | June 20, 2000 | Schmitz |
6122736 | September 19, 2000 | Vanstone et al. |
6226383 | May 1, 2001 | Jablon |
6370247 | April 9, 2002 | Takaragi et al. |
6507907 | January 14, 2003 | Takahashi et al. |
6535607 | March 18, 2003 | Chandersekaran et al. |
6711264 | March 23, 2004 | Matsumoto et al. |
6735313 | May 11, 2004 | Bleichenbacher et al. |
6870849 | March 22, 2005 | Callon et al. |
6978021 | December 20, 2005 | Chojnacki |
7013389 | March 14, 2006 | Srivastava et al. |
7035639 | April 25, 2006 | Obata et al. |
7181624 | February 20, 2007 | Asano et al. |
7387240 | June 17, 2008 | Ziegler |
8108678 | January 31, 2012 | Boyen |
20010042205 | November 15, 2001 | Vanstone et al. |
20020025042 | February 28, 2002 | Saito |
20020025045 | February 28, 2002 | Raike |
20020032911 | March 14, 2002 | Tanaka et al. |
20020076054 | June 20, 2002 | Fukutomi et al. |
20020095487 | July 18, 2002 | Day et al. |
20020122591 | September 5, 2002 | Miller et al. |
20020129247 | September 12, 2002 | Jablon |
20020187808 | December 12, 2002 | Vallstrom et al. |
20020199102 | December 26, 2002 | Carman et al. |
20030041244 | February 27, 2003 | Buttyan et al. |
20030051139 | March 13, 2003 | Kubota |
20030183691 | October 2, 2003 | Lahteenmaki et al. |
20040003234 | January 1, 2004 | Reinold et al. |
20040073795 | April 15, 2004 | Jablon |
20040123160 | June 24, 2004 | Mizrah |
20040165726 | August 26, 2004 | Yamamichi et al. |
20040184606 | September 23, 2004 | Rose |
20040228484 | November 18, 2004 | Yanagisawa |
20050044425 | February 24, 2005 | Hypponen |
20050050318 | March 3, 2005 | Alone et al. |
20050050322 | March 3, 2005 | Mizrah |
20050069137 | March 31, 2005 | Landrock |
20050125673 | June 9, 2005 | Cheng et al. |
20050138355 | June 23, 2005 | Chen et al. |
20050160479 | July 21, 2005 | Kubota |
20050171937 | August 4, 2005 | Hughes et al. |
20050251451 | November 10, 2005 | Tan et al. |
20060093138 | May 4, 2006 | Durand et al. |
20060168264 | July 27, 2006 | Baba et al. |
20060179305 | August 10, 2006 | Zhang |
20060190730 | August 24, 2006 | Iwamura |
20060224892 | October 5, 2006 | Brown et al. |
20060236117 | October 19, 2006 | Lazaridis et al. |
20070266247 | November 15, 2007 | Kirkup et al. |
1253500 | October 2002 | EP |
1286207 | February 2003 | EP |
1195036 | August 2006 | EP |
97/38530 | October 1997 | WO |
00/02358 | January 2000 | WO |
2004/049620 | June 2004 | WO |
- Selectsoft Publishing: “typing tutor7”, 1996, XP002266910, p. 8, paragraph 1.
- Cretaine, P, Exam Report for EP 05102639.1, Apr. 10, 2006.
- Cretaine, P, Extended European Search Report for EP 05102639.1, Jul. 18, 2005.
- Hayami, Jamie, First Office Action for CA 2539660, Sep. 11, 2008.
- Jablon, David P., “Strong Password-Only Authenticated Key Exchange, ACM Computer Communications Review”, pp. 1-22 Sep. 25, 1996.
- Liu, Yanping, First Office Action for CN 200610074068.X, Apr. 17, 2009.
- Liu, Yanping, Rejection Decision for CN 200610074068.X, Sep. 13, 2010.
- Liu, Yanping, Second Office Action for CN 200610074068.X, Dec. 25, 2009.
- Monjur, Rahim, Advisory Action for U.S. Appl. No. 11/097,144, Aug. 6, 2009.
- Monjur, Rahim, Fifth Office Action for U.S. Appl. No. 11/097,144, Jul. 23, 2010.
- Monjur, Rahim, Final Office Action for U.S. Appl. No. 11/097,144, May 15, 2009.
- Monjur, Rahim, First Office Action for U.S. Appl. No. 11/097,144, Nov. 7, 2008.
- Monjur, Rahim, Fourth Office Action for U.S. Appl. No. 11/097,144, Jan. 19, 2010.
- Monjur, Rahim, Sixth Office Action for U.S. Appl. No. 11/097,144, Oct. 6, 2010.
- Segura, Gustavo, First Examination Report for EP 05102636.7, Sep. 13, 2006.
- Segura, Gustavo, Second Examination Report for EP 05102636.7, Jul. 16, 2007.
- Segura, Gustavo, Extended European Search Report for EP 05102636.7, Jul. 25, 2005.
- Sigolo, Alessandro, Exam Report for EP 05102636.7, Mar. 12, 2010.
- Sigolo, Alessandro, Extended European Search Report for EP 09173559.7, Nov. 17, 2009.
- Sigolo, Alessandro, First Exam Report for EP 09173559.7, Feb. 3, 2011.
- Xueqing Li, Sara, Second Office Action for CA 2,539,660, Aug. 12, 2009.
- Yao, Yaqian, First Office Action for CN 200610074067.5, Feb. 27, 2009.
- Yao, Yaqian, Second Office Action for CN 200610074067.5, Aug. 14, 2009.
- Yao, Yaqian, Third Office Action for CN 200610074067.5, Apr. 23, 2010.
- Ziade, Francois, First Office Action for CA 2,539,658, Jan. 21, 2009.
- Rahim Monjur, Notice of Allowance for U.S. Appl. No. 11/097,144, May 20, 2015.
Type: Grant
Filed: Nov 29, 2013
Date of Patent: Jun 30, 2015
Patent Publication Number: 20140237246
Assignee: BlackBerry Limited (Waterloo, Ontario)
Inventors: Michael Kenneth Brown (Fergus), Herbert Anthony Little (Waterloo), Michael Stephen Brown (Kitchener), Neil Patrick Adams (Waterloo)
Primary Examiner: Darren B Schwartz
Application Number: 14/093,253
International Classification: H04L 9/08 (20060101); H04L 29/06 (20060101); H04W 12/04 (20090101); H04W 12/06 (20090101); H04L 9/32 (20060101); H04W 88/02 (20090101);