Cryptography using RF power measurement
Summary by NHIP
RF Power Cryptography
The system generates identical cryptographic keys for two devices using channel characteristic reciprocity. Each device transmits a setup signal at a power level calculated to achieve a specific target receive power at the other device, then creates the key from sampled results of that signal.
Claim Score by NHIP
Abstract
The embodiments provide a cryptography key for two communicating devices that is based on information known only to the devices. The information may only be determined by the devices. Each device determines the information without communicating key information related to the encryption key with the other. Channel characteristic reciprocity between the devices allows creation of identical keys in each device. Each device sends a signal to the other device at the same power level based on the distance between the devices. The power level may be set to result in a target receive power level at the other device. Each device samples the received signal, generates sampling results, creates a key based on the sampling results and a threshold power level, and utilizes the key. The threshold power level may be based on the target receive power level, or a median power determined from the sampling results.

Term
10 yearsleft in the term
Expires 9 October 2036, including 93 days of term adjustment.
- Priority
- Filed
- Granted
- Today
- Expires
20 claims: 3 independent, 17 dependent
- 1A first device comprising:a processor;anda memory in communication with the processor, the memory comprising executable instructions that, when executed by the processor, cause the processor to control the first device to perform functions of: storing a first target receive power, at which a first setup signal is targeted to be received by a second device via a communication channel;determining, from the first target receive power, a first transmission power to send the first setup signal to the second device via the communication channel;via the communication channel, transmitting the first setup signal to the second device at the determined first transmission power;via the communication channel, receiving a second setup signal from the second device at a second target receive power, wherein the first and second target receive powers are the same;sampling the second setup signal to generate sampling results;creating a key from the sampling results;andusing the created key, encrypting or decrypting a data signal transmitted between the first and second devices via the communication channel.
- 11Broadest claimClaim Score 49, average(NHIP)A method of operating a first device, comprising:storing a first target receive power, at which a first setup signal is targeted to be received by a second device via a communication channel;determining, from the first target receive power, a first transmission power to send the first setup signal to the second device via the communication channel;via the communication channel, transmitting the first setup signal to a second device at the determined first transmission power;via the communication channel, receiving a second setup signal from the second device at a second target receive power, wherein the first and second target receive powers are the same;sampling the second setup signal to generate sampling results;creating a key from the sampling results;andusing the created key, at the first device, encrypting or decrypting a data signal transmitted between the first and second devices via the communication channel.
- 19A non-transitory computer readable medium containing instructions for causing a first device to perform functions of:storing a first target receive power, at which a first setup signal is targeted to be received by a second device via a communication channel;determining, from the first target receive power, a first transmission power to send the first setup signal to the second device via the communication channel;via the communication channel, transmitting a first setup signal to a second device at the first transmission power;via the communication channel, receiving a second setup signal from the second device at a second target receive power, wherein the first and second target receive powers are the same;sampling the second setup signal to generate sampling results;creating a key from the sampling results;andencrypting or decrypting, using the created key, a data signal transmitted between the first and second devices via the communication channel.
Independent claims3
88 paragraphs in 5 sections, as filed
CROSS-REFERENCE TO RELATED APPLICATIONS
The present application is a Continuation-in-Part application of, and takes benefit of, application Ser. No. 15/206,142 filed on 8 Jul. 2016, entitled CRYPTOGRAPHY METHOD, which is hereby incorporated in its entirety by reference.
BACKGROUND
Many cryptography methods require exchange of key information between two devices or require keys, or other information related to the encryption, to be stored in each of the two devices in order to encrypt and decrypt communications between the devices. A security concern with these methods is that the exchanged key information may be intercepted during the exchange, or the keys or other information related to the encryption that is stored on the devices may be compromised by theft or otherwise. A person in possession of the key information or other information related to the encryption may then intercept and decrypt the communications between the two devices. Key distribution is considered to be one of the most important elements in secure communications. Current methods require complex and expensive network security deployment. In most cases distribution of certificates to the devices must be performed.
SUMMARY
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to exclusively identify key features or essential features of the claimed subject matter, nor is it intended as an aid in determining the scope of the claimed subject matter.
The embodiments of the disclosure include systems, devices, and methods that provide cryptography key generation for use in communication devices. In example implementations, key generation in each of two communicating devices is based on information that is determined at, and known only, to the two devices. The information on which the key generation is based may be determined in each of the devices at the time of communications. Each of the devices may determine the information without communicating any information related to the keys with each other over a channel or having knowledge of the information beforehand. The embodiments utilize the fact that a channel comprising communication links that are on the same frequency and opposite in direction between two devices shows reciprocity by exhibiting the same channel characteristics at each device. This reciprocity holds true if the channel characteristics are determined at the antenna of each device within a time window of appropriate duration, depending on channel conditions. For example, a time window in the range of less than 1 millisecond may be used. In example implementations of the embodiments, the information used to generate the keys in each device may be based on these reciprocal channel characteristics. Only the two devices may determine these channel characteristics and the channel characteristics will be knowable only to the two devices.
The embodiments include an implementation of a first device that communicates with a second device. The first device may be configured to send a first setup signal to the second device, receive a second setup signal from the second device, where the second setup signal may be a looped back version of the first setup signal, sample the second setup signal, generate sampling results, create a key based on the sampling results, and utilize the key to exchange one or more secure data signals with the second device. The first and second setup signals may be sent on the same frequency channel. In order to allow the second device to create a key, the first device may also be configured to receive a third setup signal from the second device and send a fourth setup signal to the second device, where the fourth setup signal may be a looped back version of the third setup signal. The third and fourth setup signals may each be sent on the same frequency channel on which the first and second setup signals are sent. The second device may then create a key in an identical manner by sampling the fourth signal. Use of identical setup signals for the first and third setup signals allows the first device to create a key that is identical to the key created in the second device with which it is communicating. The key may then be used to encrypt/decrypt data signals exchanged with the second device. Because of channel reciprocity, the two setup channels are identical in both directions of the device communications. In other implementations, the two setup channels may also be offset by a selected frequency delta.
In another implementation of a first device, the first device may be configured to receive a first setup signal from a second device, send a second setup signal to the second device, sample the first setup signal, generate sampling results, create a key based on the sampling results, and utilize the key to exchange one or more secure data signals with the second device. The first and second setup signals may be sent on the same frequency channel. The second device may create a key in an identical manner by sampling the second signal. In this implementation the setup signals are sent once and not looped back to the sending device of either the first or second device. Use of identical setup signals for the first and second setup signals allows the first device to create a key that is identical to the key created in the second device with which it is communicating. The key may then be used to encrypt/decrypt data signals exchanged with the second device.
In further example implementations, the first device may sample the setup signal received from the second device at each of a plurality of time intervals and create a plurality of samples. Each of the plurality of samples may be a set of bits indicating a magnitude of a sampled power level. The first device may generate sampling results from the plurality of samples by taking only selected sets of the plurality of samples having a magnitude above a threshold power magnitude. The first device may then create the key by using all or a portion of the sampling results as the key. In other implementations, the first device may create the key by inputting the selected sets of the plurality of samples into a decoder to generate a set of code words as the key. Alternatively, the first device may create the key by inputting a set of most significant bits of each of the selected sets of the plurality of samples into a decoder to generate a set of code words as the key. The first device may use the same process of key generation as performed in the second device with which it communicates in order that the first and second devices have the same key to encrypt and decrypt data communications.
Example implementations also include a network that includes a first device and a second device each configured to implement cryptography according to the embodiments. The first device may comprise a mobile device and the second device may comprise a device or apparatus in the network infrastructure. In an alternative, the first and second devices may each be a mobile device configured to communicate with other mobile devices.
BRIEF DESCRIPTION OF THE DRAWINGS
<figref idref="DRAWINGS">FIG. 1A</figref> is a simplified diagram illustrating an example network into which an embodiment of the disclosure may be implemented;
<figref idref="DRAWINGS">FIG. 1B</figref> is a simplified block diagram illustrating portions of example devices;
<figref idref="DRAWINGS">FIG. 2</figref> is a flow diagram illustrating cryptography operations performed in example communicating devices;
<figref idref="DRAWINGS">FIGS. 3A and 3B</figref> are plots illustrating sampling operations performed in example devices;
<figref idref="DRAWINGS">FIGS. 4A and 4B</figref> are flow diagrams illustrating example key creation operations using decoders;
<figref idref="DRAWINGS">FIG. 5A</figref> is a simplified block diagram illustrating example key creation operations using decoders;
<figref idref="DRAWINGS">FIG. 5B</figref> is a diagram illustrating further example key creation operations using decoders;
<figref idref="DRAWINGS">FIG. 6</figref> illustrates an example device implemented as a mobile device;
<figref idref="DRAWINGS">FIG. 7</figref> illustrates an example device implemented as a network device;
<figref idref="DRAWINGS">FIG. 8A</figref> is a simplified diagram illustrating another example network;
<figref idref="DRAWINGS">FIG. 8B</figref> is a simplified block diagram illustrating portions of further example devices;
<figref idref="DRAWINGS">FIG. 9</figref> is a flow diagram illustrating operations performed in the example devices of <figref idref="DRAWINGS">FIG. 8B</figref>; and,
<figref idref="DRAWINGS">FIGS. 10A and 10B</figref> are flow diagrams illustrating example key creation operations that apply a function to a sequence.
DETAILED DESCRIPTION
The system, devices, and methods will now be described by use of example embodiments. The example embodiments are presented in this disclosure for illustrative purposes, and not intended to be restrictive or limiting on the scope of the disclosure or the claims presented herein.
The disclosed embodiments provide a technical advantage in that two devices may configure encryption/decryption for secure communications on a channel between the two devices without exchanging keys or key related information over any channel, or by any other exchange methods, as a part of configuring or initiating the encryption/decryption. An advantage is also provided in that keys or key related information need not be provided to, or stored on, any of the devices prior to configuring the secure communications. As compared to cryptography methods that require exchange of keys or key related information by communicating devices when setting up secure communications, the embodiments prevent the possibility of exchanged key information being intercepted when exchanged between devices. As compared to cryptography methods in which devices rely on prior knowledge of keys or key information stored in the devices, the embodiments prevent the possibility that keys or key information may be compromised by theft or other misappropriation from a device or network.
The embodiments utilize the fact that a channel comprising communication links that are on the same frequency and opposite in direction between two devices shows reciprocity by exhibiting the same unique channel characteristics at each device. In order to maintain reciprocity of the channel during key generation, the time window within which the key generation occurs at each of the two devices may be relatively short. In an example implementation, time windows on the order of less than 1 millisecond may be used. Cryptography used to send secure signals between the two devices may be based on these reciprocal unique channel characteristics. The unique channel characteristics may be determined at each of the two devices by sampling a setup signal. The embodiments allow each of the two devices to create identical keys in both devices, where the key is based on the reciprocal unique channel characteristics determined by and known only to each of the two devices. The identical keys may then be used to decrypt and encrypt data signals sent between the two devices.
Because the unique channel characteristics are based on the conditions of the channel between the two devices at the time of key generation, the unique channel characteristics may be only known to each of the two devices on that channel. Only the two devices may determine these channel characteristics. A third device that attempts to intercept communications will not be able to decode the communications. The third device cannot intercept the keys or key information because the keys or key information are not exchanged on any channel. Neither will the third device be able to determine the keys by determining the keys from the unique channel characteristics of the channel, which by the nature of the channel can be known only to each of the two communicating devices that communicate on that channel. The embodiments also provide an advantage in that the keys generated in each of two devices may be updated as appropriate to provide additional security. Because the keys are generated based on the characteristics of the channel between the two devices at the time of key generation, each time new keys are generated the keys will be based on different channel characteristics and will be different from previously generated keys.
The embodiments have application to provide secure communications, for example, in time division duplex networks or systems such as those operating according to Wi-Fi implementations based on the IEEE 802.11 Standards. In Wi-Fi variants (using 802.11a, b, g, n and c), a device may communicate with an access point of a network on a wireless bi-directional time division half-duplex frequency channel. The device and access point use the same channel frequency (i.e., same channel) for transmissions sent from the device to the access point and transmissions sent from the access point to the device. Implementations of the embodiments in a Wi-Fi network may utilize the characteristics of the bi-directional frequency channel between the device and access point to generate keys for encrypting/decrypting communications. The embodiments also have application to networks or systems using communication channels configured according to other standards. For example, setup signals sent on a single frequency setup channel between two devices may be used to create identical keys in both devices, while actual encrypted communications between the two devices may be sent over communication channels different than the setup channel.
Example implementations of the embodiments also provide advantages in that the implementations may be used in networks or systems having devices with low quality reception or transmission capability. In these situations, one or both of the two communicating devices may not be capable of precisely sampling a setup signal to determine the unique channel characteristics of a channel between the two devices. In these cases, one or more bit errors may exist in the results of setup signal measurement and sampling in one or both of the devices and the sampling results may not be identical in both devices. If the keys were created directly from the sampling results the keys may not be identical in the two devices. Implementations of the embodiments may be used in order to make the process more reliable and robust in the type of situation when one or both of the devices are not capable of providing the same measurement accuracy or resolution of the received power level. These implementations provide for the situation in which the sampling results in the two devices may differ by one or more bits. In one implementation, sets of bits representing each of the sampling results may be fed into an error correction decoder in each device to generate a set of code words for use as the key. In another implementation, sets of bits each representing one or more most significant bits (MSBs) from each of the sampling results may be fed into an error correction decoder in each device to generate a set of code words for use as the key. Depending on the capability of the decoder, use of the decoder to generate the code words from the sampling results allows bit errors and discrepancies between the sampling results in the two devices to be removed. This helps ensure that the same key is created in both devices.
Referring now to <figref idref="DRAWINGS">FIG. 1A</figref>, therein is a simplified diagram illustrating an example network <b>100</b> into which an embodiment of the disclosure may be implemented. <figref idref="DRAWINGS">FIG. 1A</figref> shows device <b>102</b> communicating with device <b>104</b> over a channel <b>114</b>. Device <b>102</b> may be a mobile device operating in the coverage area of network <b>100</b> and device <b>104</b> may be an access point of network <b>100</b>. Channel <b>114</b> may comprise a time division half-duplex frequency channel that may be used by both device <b>102</b> and device <b>104</b> for exchanging communications with each other. In an implementation of Network <b>100</b>, device <b>102</b> and device <b>104</b> may be configured to operate according to the IEEE 802.11 Wi-Fi specifications. In other implementations, device <b>102</b> and device <b>104</b> may operate according to any other wireless specification or standard that specifies channels that allow keys to be generated in communicating devices according to the embodiments.
<figref idref="DRAWINGS">FIG. 1B</figref> is a simplified block diagram illustrating example portions of devices <b>102</b> and <b>104</b> in an implementation of <figref idref="DRAWINGS">FIG. 1A</figref>. Device <b>102</b> includes a portion <b>105</b> that includes cryptography setup transceiver <b>116</b>, sampler <b>128</b>, bit string generator <b>130</b>, and key creator <b>132</b>. Device <b>104</b> includes a portion <b>107</b> that includes cryptography setup transceiver <b>134</b>, sampler <b>136</b>, bit string generator <b>138</b>, and key creator <b>140</b>. Portion <b>105</b> communicates with other functions on device <b>102</b> and portion <b>107</b> communicates with other functions on device <b>104</b> to perform operations of cryptography according to the embodiments of the disclosure. Device <b>102</b> and <b>104</b> may each include one or more processors, circuitry, and/or code comprising programs for implementing, respectively, the functions shown in portions <b>105</b> and <b>107</b>. The functions shown in portions <b>105</b> and <b>107</b> of devices <b>102</b> and <b>104</b> may be separately configured on each device, or may be configured as combined, in whole or in part, with processors, circuitry, and/or code or programs that are also in utilized for other functions on the devices. For example, cryptography setup transceivers <b>116</b> and <b>134</b> may include, respectively, the transceivers or portions of the transceivers in devices <b>102</b> and <b>104</b> that are also used for data communication.
<figref idref="DRAWINGS">FIG. 2</figref> is a flow diagram <b>200</b> illustrating cryptography operations performed in example communicating devices, such as devices <b>102</b> and <b>104</b> of <figref idref="DRAWINGS">FIGS. 1A and 1B</figref>. The operations performed in <figref idref="DRAWINGS">FIG. 2</figref> may be explained using device <b>102</b> as the first device and device <b>104</b> as the second device of <figref idref="DRAWINGS">FIG. 2</figref>.
The process begins at <b>202</b> where device <b>102</b> sends signal S<sub>A </sub><b>106</b> to device <b>104</b> on channel <b>114</b> using cryptography setup transceiver <b>116</b>. Signal S<sub>A </sub><b>106</b> may be an analog signal such as a sinusoidal signal sent on the frequency of channel <b>114</b>. At <b>204</b>, device <b>104</b> receives signal S<sub>A </sub>using cryptography setup transceiver <b>134</b> and loops back signal S<sub>A </sub><b>106</b> to device <b>102</b> as signal S<sub>A, B </sub><b>108</b> on channel <b>114</b>. Signal S<sub>A, B </sub><b>108</b> may be identical to the signal S<sub>A </sub><b>106</b> as it was received at cryptography setup transceiver <b>134</b>. At <b>206</b> device <b>104</b> sends signal S<sub>B </sub><b>110</b> to device <b>102</b> on channel <b>114</b> in the opposite direction using cryptography setup transceiver <b>134</b>. Signal S<sub>B </sub><b>110</b> may be an analog signal identical to signal S<sub>A</sub>. At <b>208</b>, device <b>102</b> receives signal S<sub>B </sub><b>110</b> using cryptography setup transceiver <b>116</b> and loops back signal S<sub>B </sub><b>110</b> to device <b>104</b> as signal S<sub>B, A </sub><b>112</b> on channel <b>114</b>. Signal S<sub>B, A </sub><b>112</b> may be identical to the signal S <b>110</b> as it was received at cryptography setup transceiver <b>116</b>.
At <b>210</b>, device <b>102</b> samples signal S<sub>A, B </sub><b>108</b>. To perform the sampling, cryptography setup transceiver <b>116</b> provides the received signal S<sub>A, B </sub><b>108</b> to sampler <b>128</b> as signal <b>126</b> and sampler <b>128</b> performs sampling on signal S<sub>A, B </sub><b>108</b> to generate sampling results. Sampler <b>128</b> may perform the sampling by generating a series of samples, S<sub>1</sub>, S<sub>2 </sub>. . . . S<sub>N</sub>, with each sample taken from signal S<sub>A, B </sub><b>108</b> at a predetermined time interval. Each sample of S<sub>1</sub>, S<sub>2 </sub>. . . S<sub>N </sub>may comprise bits that represent a value of power of signal S<sub>A, B </sub><b>108</b> at the time the sample was taken.
Next, at <b>212</b>, device <b>102</b> generates a bit string from the results of the sampling on signal S<sub>A, B </sub><b>108</b>. In performing the bit string generation, sampler <b>128</b> provides the sampling results to bit string generator <b>130</b> as signal <b>142</b>. Bit string generator <b>130</b> may then generate the bit string, B<sub>1</sub>, B<sub>2 </sub>. . . . B<sub>M</sub>, from the sampling results. In generating the bit string, bit string generator <b>130</b> may use only the samples of S<sub>1</sub>, S<sub>2 </sub>. . . S<sub>N </sub>that indicate a value of power above a threshold level. The threshold may be set to the median power level of the received signal S<sub>A, B </sub><b>108</b> calculated over the time period within which the samples are taken. If the power of a sample S<sub>X </sub>is below the threshold it may be ignored. If the power of the sample S<sub>X </sub>is above the threshold the bits representing the power sample S<sub>X </sub>may be placed as a set in the bit string. The bit string generator <b>130</b> may process the complete sampling results in this manner to generate a bit string B<sub>1</sub>, B<sub>2 </sub>. . . . B<sub>M </sub>for use in key creation in device <b>102</b>.
At <b>214</b>, device <b>104</b> may initiate the same sampling and bit string generation operations on the signal S<sub>B, A </sub><b>112</b> as performed in device <b>102</b> at operations <b>210</b> and <b>212</b> on the signal S<sub>A, B </sub><b>108</b>. To perform the sampling at device <b>104</b>, cryptography setup transceiver <b>134</b> provides the received signal S<sub>B, A </sub><b>112</b> to sampler <b>136</b> as signal <b>146</b> and sampler <b>136</b> performs sampling on signal S<sub>A, B </sub><b>112</b> to generate sampling results. Sampler <b>136</b> may perform the sampling by generating a series of samples, S′<sub>1</sub>, S′<sub>2 </sub>. . . S′<sub>N</sub>, with each sample taken from signal S<sub>B, A </sub><b>112</b> at a predetermined time interval. Each sample of S′<sub>1</sub>, S′<sub>2 </sub>. . . S′<sub>N </sub>may comprise bits that represent a value of the power of signal S<sub>B, A </sub><b>112</b> at the time the sample was taken. The time interval used for sampling in device <b>104</b> may be the same as the time interval used for sampling in device <b>102</b>.
Next, at <b>216</b>, device <b>104</b> generates a bit string from the results of the sampling on signal S<sub>B, A </sub><b>112</b>. In performing the bit string generation, sampler <b>136</b> provides the sampling results as signal <b>148</b> to bit string generator <b>138</b>. Bit string generator <b>138</b> may then generate a bit string, C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>, from the sampling results. In generating the bit string, bit string generator <b>138</b> may use only the samples of S′<sub>1</sub>, S′<sub>2 </sub>. . . S′<sub>N </sub>that indicate a value of power or amplitude above a threshold level. The threshold may be set to the median power level of the received signal S<sub>B, A </sub><b>112</b> calculated over the time period within which the samples are taken. If the power of a sample S′<sub>X </sub>is below the threshold it may be ignored. If the power of the sample S′<sub>X </sub>is above the threshold the bits representing the power sample S′<sub>X </sub>may be placed as a set of bits in the bit string. The bit string generator <b>138</b> may process the complete sampling results in this manner to generate a bit string C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>for use in key creation in device <b>104</b>.
Use of signals S<sub>A </sub>and S<sub>B </sub>that are the identical, and use of processes for signal sampling and bit string generation that are the same in each of the devices <b>102</b> and <b>104</b>, provides a bit string, B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M</sub>, and a bit string, C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>, that are identical, or nearly identical, to one another.
At <b>218</b>, device <b>102</b> creates a key based on bit string B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M</sub>. The key is created in device <b>102</b> when bit string generator <b>130</b> provides bit string B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>to key creator <b>132</b> as signal <b>144</b>. Key creator <b>132</b> then creates the key from the bit string B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M</sub>. In one example implementation, key creator <b>132</b> may create the key using all of the bits in the bit string B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>taken sequentially. For example, if the bit string B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>is a string in which B<sub>1</sub>=11011011, B<sub>2</sub>=10111011 . . . B<sub>M</sub>=11111101, a key may be created as k<sub>102</sub>=110110111011011 . . . 1111101. In another example, key creator <b>132</b> may create key k<sub>102 </sub>using a subset of bits from each of B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M</sub>. For example, if the bit string B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>is a string in which B<sub>1</sub>=11011011, B<sub>2</sub>=10111011 . . . B<sub>M</sub>=11111101, k<sub>102 </sub>may be created by taking the four most significant bits from each of B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>to create k<sub>102</sub>=11011011 . . . 1111. Keys of different lengths may be created by varying the sampling, bit string generation, and key creation operations. Key creator <b>132</b> then outputs k<sub>102 </sub>at output <b>152</b> for use by device <b>102</b> in encryption/decryption.
At <b>220</b>, device <b>104</b> creates a key based on C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>using the same operations that device <b>102</b> uses to create k<sub>102 </sub>from B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M</sub>. The key is created in device <b>104</b> when bit string generator <b>138</b> provides bit string C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>to key creator <b>140</b> as signal <b>150</b>. Key creator <b>138</b> then creates a key, k<sub>104</sub>, from the bit string C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>. In one example implementation, key creator <b>138</b> may create k<sub>104 </sub>using all of the bits in the bit string C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>. For example, if the bit string C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>is a string in which C<sub>1</sub>=11011011, C<sub>2</sub>=10111011 . . . C<sub>1</sub>=11111101, k<sub>104</sub>, may be created as k<sub>104</sub>=1101101110111011 . . . 11111101. In another example, key creator <b>132</b> may create k<sub>104 </sub>using a subset of bits from each of C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>. For example, if the bit string C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>is a string in which C<sub>1</sub>=11011011, C<sub>2</sub>=10111011 . . . C<sub>M</sub>=11111101, k<sub>104 </sub>may be created by taking the four most significant bits from each of C<sub>1</sub>, C<sub>2 </sub>. . . . C<sub>M </sub>to create k<sub>104</sub>=11011011 . . . 1111. Keys of different lengths may be created by varying the sampling, bit string generation, and key creation operations. The operations used for creating k<sub>104 </sub>in device <b>104</b> may be identical to the operations used for creating k<sub>102 </sub>in device <b>102</b>. Key creator <b>140</b> then outputs k<sub>104 </sub>at output <b>154</b> for use by device <b>104</b> in encryption/decryption.
In a situation in which devices <b>102</b> and <b>104</b> include transceivers that are capable of signal transmission at precise power levels and are also capable of precise measurement of received signals, the keys in both devices will have a high probability of being identical. In this situation, an implementation may be used in which k<sub>102 </sub>and k<sub>104 </sub>may be created directly from the sampling results by using all the bits of each of the sampling results S<sub>1</sub>, S<sub>2 </sub>. . . S<sub>M </sub>and S′<sub>1</sub>, S′<sub>2 </sub>. . . S′<sub>M</sub>, respectively. In situations in which devices <b>102</b> and <b>104</b> include lower quality transceivers that are not capable of transmitting signals at precise power levels and/or are not capable of precise measurement of received signals, the keys created in each device may have a lower probably of being identical. In this type of situation, the implementation may be used in which k<sub>102 </sub>and k<sub>104 </sub>are created using only a subset of most significant bits from each of the sampling results S<sub>1</sub>, S<sub>2 </sub>. . . S<sub>M </sub>and S′<sub>1</sub>, S′<sub>2 </sub>. . . S′<sub>M</sub>, respectively, to provide a more robust key creation process. Use of a subset of the most significant bits from each of the sampling results allows errors that occur in the less important bits of the sampling results to be removed and not cause differences between k<sub>102 </sub>and k<sub>104</sub>.
At <b>222</b>, when the keys have been created in each of device <b>102</b> and <b>104</b>, devices <b>102</b> and <b>104</b> may then communicate data signals with each other while encrypting and/or decrypting communications using, respectively, keys k<sub>102 </sub>and k<sub>104</sub>. If k<sub>102 </sub>and k<sub>104 </sub>have not been generated identically, because of transmission or reception conditions in the network, neither of the devices <b>102</b> or <b>104</b> will be capable of decrypting communications sent by the other. In this case one of the devices may determine that it cannot correctly decode transmissions and cause new keys to be created by initiating repetition of the process of <figref idref="DRAWINGS">FIG. 2</figref>.
In an alternative implementation of <figref idref="DRAWINGS">FIG. 2</figref>, the setup signal that is sampled at device <b>102</b> at operation <b>210</b> may be a setup signal that originates at device <b>104</b> rather than a setup signal that originates at device <b>102</b> and is looped back from device <b>104</b> to device <b>102</b>. Similarly, in the alternative implementation the setup signal that is sampled at device <b>104</b> at operation <b>214</b> may be a setup signal that originates at device <b>102</b> rather than a setup signal that originates at device <b>104</b> and is looped back from device <b>102</b> to device <b>104</b>. This alternative implementation may be used when devices <b>102</b> and <b>104</b> are able to transmit the setup signals at a selected transmit power level with good accuracy and the distance between devices <b>102</b> and <b>104</b> is known or determinable. In this case the error variance of transmissions in each device from the selected transmit power level must be low. If the transmit power and the distance are known, the receiving device may calculate an expected power level for the received setup signal. The expected power level may be used to set the threshold for deciding which samples of the setup signal to keep for use in generating a bit string for key generation.
Also, in another implementation, one or more of the setup signals may be sent using channels offset from one another. For example, one or more of the signals sent in the direction from device <b>102</b> to device <b>104</b> (i.e., S<sub>B, A </sub><b>112</b> and S<sub>A </sub><b>106</b>), and one or more of the signals sent in the direction from device <b>104</b> to device <b>102</b> (i.e., S<sub>A, B </sub><b>108</b> and S<sub>B </sub><b>110</b>), may be sent on one or more frequency channels that are offset from the center frequency of channel <b>114</b>. The amount of frequency offset may be chosen so that the reciprocity of the channel characteristics still allows generation of identical, or nearly identical, keys. For example, the offset may be a frequency offset of several percent of the center frequency of channel <b>114</b>. Additionally, other offsets may be used as long as the offsets are of a magnitude that allows generation of the same encryption/decryption keys in each of the devices from the setup signals.
<figref idref="DRAWINGS">FIGS. 3A and 3B</figref> are plots illustrating sampling operations performed in example devices. <figref idref="DRAWINGS">FIG. 3A</figref> shows an example sampling of S<sub>A, B </sub>at operation <b>210</b> of <figref idref="DRAWINGS">FIG. 2</figref>. S<sub>1</sub>, S<sub>2</sub>, S<sub>3 </sub>. . . S<sub>N </sub>are samples taken of S<sub>A, B </sub>by sampler <b>128</b> at intervals of time that are shown along the time axis. Each sample is a bit string that indicates the value of a power level indicated by the height of the sample relative to the power axis. Similarly, <figref idref="DRAWINGS">FIG. 3B</figref> shows an example sampling of S<sub>B, A </sub>at operation <b>214</b> of <figref idref="DRAWINGS">FIG. 2</figref>. S′<sub>1</sub>, S′<sub>2</sub>, S′<sub>3 </sub>. . . S′<sub>N </sub>are samples taken of S<sub>B, A </sub>by sampler <b>136</b> at intervals of time that are shown along the time axis. Each sample comprises a bit string that indicates the value of a power level indicated by the height of the line associated with the sample relative to the power axis.
<figref idref="DRAWINGS">FIG. 3A</figref> also shows how bit string generator <b>130</b> may generate the bit string B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>at operation <b>212</b>. Bit string generator <b>130</b> may take each sample S<sub>1</sub>, S<sub>3 </sub>. . . S<sub>N</sub>, that is above a threshold power level, PL<sub>1 </sub>(shown on the power axis), and create the bit string B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>by inserting the bits of each of samples S<sub>1</sub>, S<sub>3 </sub>. . . S<sub>N </sub>into B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M</sub>. In this example the number of samples, N, is less than the number of sets of bits, M, that are inserted into the bit string. In <figref idref="DRAWINGS">FIG. 3A</figref>, S<sub>2 </sub>may be one sample that is discarded. If the values of the samples were S<sub>1</sub>=10101010, S<sub>3</sub>=11111111 . . . S<sub>N</sub>=11001100, the generated bit string would be B<sub>1</sub>=10101010, B<sub>2</sub>=11111111 . . . B<sub>M</sub>=11001100. The threshold power level PL<sub>1 </sub>may be set to the median power level of the received signal S<sub>A, B </sub><b>108</b> calculated over the time period within which the samples S<sub>1</sub>, S<sub>3 </sub>. . . . S<sub>N </sub>are taken.
Referring again to <figref idref="DRAWINGS">FIG. 3B</figref>, bit string generator <b>138</b> of device <b>104</b> may generate the bit string C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>at operation <b>216</b> in a similar manner. Bit string generator <b>138</b> may take each sample S′<sub>1</sub>, S′<sub>3 </sub>. . . S′<sub>N </sub>that is above a threshold power level, PL<sub>2 </sub>(shown on the power axis), and create the bit string C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>by inserting the bits of each of samples S′<sub>1</sub>, S′<sub>3 </sub>. . . S′<sub>N </sub>into C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>. In the example of <figref idref="DRAWINGS">FIG. 3B</figref>, the number of samples, N, is less than the number of sets of bits, M, that are inserted into the bit string. In <figref idref="DRAWINGS">FIG. 3B</figref>, S′<sub>2 </sub>may be one sample that is discarded. If the values of the samples were S′<sub>1</sub>=10101010, S′<sub>3</sub>=11111111 . . . S′<sub>N</sub>=11001100, the bit string would be C<sub>1</sub>=10101010, C<sub>2</sub>=11111111 . . . C<sub>M</sub>=11001100. The threshold power level PL<sub>2 </sub>may be set to the median power level of the received signal S<sub>B, A </sub><b>112</b> calculated over the time period within which the samples S′, S′<sub>3 </sub>. . . S′<sub>N </sub>are taken.
The bit string generated in operations <b>212</b> and <b>216</b> of <figref idref="DRAWINGS">FIG. 2</figref> may be used to create a key as was described for operations <b>218</b> and <b>220</b> by taking all of the bits of the bit string to create the key. Subsets of the bits may also be used, for example by taking a number of most significant bits of each set of B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>or C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>to create a key. Effectively, this is taking a number of most significant bits of each sample of S<sub>1</sub>, S<sub>2</sub>, S<sub>3 </sub>. . . S<sub>N </sub>with a value above the threshold PL<sub>1</sub>, and, each sample of S′<sub>1</sub>, S′<sub>2</sub>, S′<sub>3 </sub>. . . S′<sub>N </sub>with a value above the threshold PL<sub>2</sub>. In other implementations, for a more robust key creation, and to avoid creating keys in each of devices <b>102</b> and <b>104</b> that differ, the keys may be created using an error correction decoder.
<figref idref="DRAWINGS">FIG. 4A</figref> illustrates a process <b>400</b> that may be used by devices <b>102</b> and <b>104</b> in performing the key creation operations at <b>218</b> and <b>220</b> of <figref idref="DRAWINGS">FIG. 2</figref>. In the process, at <b>402</b>, key creator <b>132</b> inputs the bit string B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>into a decoder, decoder A, in device <b>102</b>. Similarly, at <b>404</b>, key creator <b>140</b> inputs the bit string C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>into a decoder, decoder B, in device <b>104</b>. At <b>406</b>, decoder A generates a set of code words, CA<sub>1</sub>, CA<sub>2 </sub>. . . CA<sub>M</sub>, where each code word in the set corresponds to one of B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M</sub>. At <b>408</b>, decoder B generates a set of code words, CB<sub>1</sub>, CB<sub>2 </sub>. . . CB<sub>M</sub>, where each code word in the set corresponds to one of C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>. Depending on the decoder used, each code word in the set CA<sub>1</sub>, CA<sub>2 </sub>. . . CA<sub>M </sub>and each code word in the set CB<sub>1</sub>, CB<sub>2 </sub>. . . CB<sub>M </sub>may be generated by the decoder to be one of Z potential different code words, where Z=2<sup>y</sup>, and y=the number of bits in each set B<sub>X </sub>of B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M</sub>, or each set C<sub>X </sub>of C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>. In the implementation of <figref idref="DRAWINGS">FIG. 4A</figref>, y may equal the number of bits in each amplitude sample taken at operation <b>210</b> or <b>214</b>. When the sets of code words have been created in each device, at <b>410</b> devices <b>102</b> and <b>104</b> encrypt and decrypt data signal communications between the two devices using the created code words.
<figref idref="DRAWINGS">FIG. 4B</figref> illustrates an alternative implementation of a process <b>412</b> that may be used by devices <b>102</b> and <b>104</b> in performing the key creation operations at <b>218</b> and <b>220</b> of <figref idref="DRAWINGS">FIG. 2</figref>. At <b>414</b>, key creator <b>132</b> inputs y bits at a time into decoder A in device <b>102</b> from each set of the bits B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M</sub>. The y bits may comprise the y most significant bits of each set of bits in B<sub>1</sub>, B<sub>2 </sub>. . . . B<sub>M</sub>. Similarly, at <b>416</b>, key creator <b>138</b> inputs y bits at a time into decoder B in device <b>104</b> from each set of bits C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>. The y bits may comprise the y most significant bits of each set C<sub>X </sub>in C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>. At <b>418</b>, decoder A generates a set of code words, CA<sub>1</sub>, CA<sub>2 </sub>. . . CA<sub>M</sub>, where each code word in the set is generated from the y bits of one of B<sub>1</sub>, B<sub>2 </sub>. . . . B<sub>M</sub>. At <b>420</b>, decoder B similarly generates a set of code words, CB<sub>1</sub>, CB<sub>2 </sub>. . . CB<sub>M</sub>, where each code word in the set is generated from the y bits of one of C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>. Depending on the decoder used, each code word in the set CA<sub>1</sub>, CA<sub>2 </sub>. . . CA<sub>M </sub>and CB<sub>1</sub>, CB<sub>2 </sub>. . . CB<sub>M </sub>may be generated by the decoder to be one of a total number of Z potential different code words, where Z=2<sup>y</sup>. Then, at <b>422</b>, devices <b>102</b> and <b>104</b> encrypt and decrypt data communications between the two devices using the generated set of code words.
<figref idref="DRAWINGS">FIG. 5A</figref> is a simplified block diagram illustrating example key creation operations performed in the embodiment of <figref idref="DRAWINGS">FIGS. 4A and 4B</figref>. <figref idref="DRAWINGS">FIG. 4A</figref> shows decoder A and decoder B of, respectively, devices <b>102</b> and <b>104</b>. Bits of each B<sub>X </sub>of B<sub>1</sub>, B<sub>2 </sub>. . . . B<sub>M </sub><b>506</b> are separately fed into decoder A to generate a code word CA<sub>X</sub>. The bits of each B<sub>X </sub>fed into decoder A may comprise all bits of B<sub>X </sub>as described for operation <b>402</b>, or a set of y bits of B<sub>X </sub>as described for operation <b>414</b>. When all B<sub>X </sub>of B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>have been input into decoder A, a set of code words CA<sub>1</sub>, CA<sub>2 </sub>. . . C<sub>M </sub>will be generated. Each of CA<sub>1</sub>, CA<sub>2 </sub>. . . C<sub>M </sub>will correspond to one of B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>and each of CA<sub>1</sub>, CA<sub>2 </sub>. . . C<sub>M </sub>will be one of Z different code words, where Z=2<sup>y </sup>and y is the number of bits input into the decoder from each B<sub>1</sub>, B<sub>2 </sub>. . . . B<sub>M</sub>. Similarly, bits of each C<sub>X </sub>of C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub><b>508</b> are separately fed into decoder B to generate a set of code words CB<sub>1</sub>, CB<sub>2 </sub>. . . CB<sub>M </sub>in an identical manner.
<figref idref="DRAWINGS">FIG. 5B</figref> is a diagram illustrating further example operations of key creation using decoders. <figref idref="DRAWINGS">FIG. 5B</figref> shows how error code correction principles may be utilized to create identical keys in each of two communicating devices despite the presence of errors in the results of the sampling done on the setup signals. <figref idref="DRAWINGS">FIG. 5B</figref> shows use of decoders configured to use an error correction code having code words represented by the center points CW<sub>1</sub>, CW<sub>2 </sub>CW<sub>3 </sub>. . . CW<sub>Z</sub>, respectively, of each circle <b>514</b>, <b>516</b>, <b>520</b>, and <b>522</b>. Each circle may represent, respectively, the decoding space of a code word CW<sub>1</sub>, CW<sub>2</sub>, CW<sub>3 </sub>. . . CW<sub>Z</sub>. Binary values input to a decoder that fall into the decoding space of a code word CW<sub>X </sub>will be output by the decoder as CW<sub>X</sub>. In the implementations, each of the code words in the communicating devices may be correlated with a code word of CW<sub>1</sub>, CW<sub>2 </sub>. . . CW<sub>Z</sub>. For example, CA<sub>1 </sub>and CB<sub>1 </sub>may be correlated with CW<sub>1</sub>, and CA<sub>2 </sub>and CB<sub>2 </sub>may be correlated with CW<sub>2</sub>.
Because of the way in which an error correction decoder operates, when any string of y bits entered into the decoder falls within the decoding space of a code word CW<sub>X</sub>, the decoder will output code word CW<sub>X</sub>. The size of the decoding space depends on the error correction capability of the decoder. Depending on the error correction code implemented in the decoder, two y-bit strings input into the decoder may contain different bits but still result in the same code word CW<sub>X </sub>being output if the two different y-bit strings are both within the decoding space of CW<sub>X</sub>. For example, B<sub>1 </sub>and C<sub>1 </sub>may each include different bits as input into the decoder, but both may be within the decoding space of CW<sub>1 </sub>as long as the difference is within the error correction capability of the decoder. This error correction capability is commonly given in terms of capability to correct a certain number of bit errors in the decoder input as compared to an expected input for generating CW<sub>X</sub>. For example, <figref idref="DRAWINGS">FIG. 5B</figref> shows B<sub>1 </sub>and C<sub>1 </sub>having different values but both being in the space of CW<sub>1</sub>. This will result in the identical code word CW<sub>1 </sub>being generated as CA<sub>1 </sub>in device <b>102</b> and as CB<sub>1 </sub>in device <b>104</b>. Similarly, the same result will occur for B<sub>2 </sub>and C<sub>2 </sub>in the space of CW<sub>2 </sub>to generate CA<sub>2 </sub>and CB<sub>2</sub>, and, for B<sub>3 </sub>and C<sub>3 </sub>in the space of CW<sub>3 </sub>to generate CA<sub>3 </sub>and CB<sub>3</sub>.
If the decoder used in device <b>102</b> and device <b>104</b> has an error correction capability of x bits, then B<sub>X </sub>and C<sub>X </sub>may each differ from a code word CW<sub>X </sub>by up to x bits, but each still result in CW<sub>X </sub>being output from the decoder when B<sub>X </sub>and C<sub>X </sub>are input into the decoder. Because identical signals and the same process are used in both device <b>102</b> and <b>104</b> to generate the bit strings B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>and C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>, these bit strings should be identical or, allowing for differences in the devices and/or RF environment, nearly identical. Use of the same decoder configuration in both of devices <b>102</b> and <b>104</b> allows bit strings B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>and C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>to be input into the decoder to generate identical sets of code words in device <b>102</b> and <b>104</b>, even when B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>and C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>are not identical. As long as the differences between B<sub>X </sub>and C<sub>X </sub>are within a threshold that keeps them in the domain of the same code word, the same code words should be generated in each device. This provides more robust generation of identical keys in both devices.
Referring now to <figref idref="DRAWINGS">FIG. 6</figref>, therein is a simplified block diagram of an example device <b>600</b>. The functions of device <b>102</b> of <figref idref="DRAWINGS">FIG. 1B</figref> may be implemented on a device such as device <b>600</b>. In an example implementation, device <b>600</b> may be a mobile device. Device <b>600</b> may include a processor <b>604</b>, memory <b>608</b>, user interfaces (UIs) <b>606</b>, and transceiver (TRX) <b>602</b>. Memory <b>608</b> may be implemented as any type of computer readable storage media, including non-volatile and volatile memory. Memory <b>608</b> is shown as including code comprising device operating system (OS) <b>610</b>, device applications <b>612</b>, and encryption/decryption control programs <b>614</b>. Processor <b>604</b> may comprise one or more processors, or other control circuitry, or any combination of processors and control circuitry. The encryption/decryption control programs <b>614</b> may provide the functions shown in device <b>102</b> in <figref idref="DRAWINGS">FIG. 1B</figref>. When executed, the encryption/decryption control programs <b>614</b> may cause processor <b>604</b> to control device <b>600</b> to perform processes described in relation to <figref idref="DRAWINGS">FIG. 2</figref> and, <figref idref="DRAWINGS">FIGS. 4A and 4B</figref>.
User interfaces <b>606</b> may include any type of interface such as a touchscreen, a keypad, a voice controlled interface, interfaces that are gesture or motion based, an interface that receives input wirelessly, or any other type of interface that allows a user to provide appropriate control of device <b>600</b> for performing the operations of the embodiments.
In example implementations, device <b>600</b> may be any type of device that may be configured to communicate with a network or other device using encrypting/decrypting of data communications. For example, device <b>600</b> may be implemented in a smart phone, a tablet computer, a desktop computer, laptop computer device, gaming devices, media devices, smart televisions, multimedia cable/television boxes, smart phone accessory devices, tablet accessory devices, or personal digital assistants (PDAs). In an implementation, device <b>600</b> may operate according to a timed division half-duplexed communications standard. For example, device <b>600</b> may operate using half-duplex channels specified in the IEEE 802.11 Wi-Fi standards.
Referring now to <figref idref="DRAWINGS">FIG. 7</figref>, therein is a simplified block diagram of another example device <b>700</b>. Device <b>700</b> may be implemented, for example, as device <b>104</b> in the network <b>100</b> of <figref idref="DRAWINGS">FIG. 1A</figref>. In one implementation device <b>700</b> may be an access point such as a IEEE 802.11 Wi-Fi access point. Device <b>700</b> includes processing unit <b>706</b>, transceivers <b>714</b>, and memory/storage <b>708</b> that includes code comprising applications <b>712</b> and encryption control programs <b>710</b>. The encryption/decryption control programs <b>710</b> may provide the functions shown in device <b>104</b> in <figref idref="DRAWINGS">FIG. 1B</figref>. When executed, the encryption/decryption control programs <b>710</b> may cause processor <b>706</b> to control device <b>700</b> to perform processes described in relation to <figref idref="DRAWINGS">FIG. 2</figref> and, <figref idref="DRAWINGS">FIGS. 4A and 4B</figref>.
Memory <b>708</b> may be implemented as any type of computer readable storage media, including non-volatile and volatile memory. Access point <b>700</b> connects to a network, such as the internet, over network interface <b>702</b>. Processing unit <b>706</b> may comprise one or more processors, or other control circuitry or any combination of processors and control circuitry that provide overall control of the access point according to the disclosed embodiments. Transceivers <b>712</b> provide the capability for device <b>700</b> to communicate with devices, for example device <b>102</b> of <figref idref="DRAWINGS">FIG. 1A</figref>, over channels <b>716</b>, such as RF channels configured according to the Wi-Fi standards.
The example embodiments disclosed herein may be described in the general context of processor-executable code or instructions stored on memory that may comprise one or more computer readable storage media (e.g., tangible non-transitory computer-readable storage media such as memory <b>608</b> or <b>708</b>). As should be readily understood, the terms “computer-readable storage media” or “non-transitory computer-readable media” include the media for storing of data, code and program instructions, such as memory <b>608</b>, <b>708</b>, and do not include portions of the media for storing transitory propagated or modulated data communication signals.
<figref idref="DRAWINGS">FIG. 8A</figref> is a simplified diagram illustrating an example network <b>800</b> into which another implementation of the embodiments may be implemented. <figref idref="DRAWINGS">FIG. 8A</figref> shows device <b>802</b> communicating with device <b>804</b> over a channel <b>801</b>. Device <b>802</b> may be a mobile device operating in the coverage area of network <b>800</b> and device <b>804</b> may be an access point of network <b>800</b>. Channel <b>801</b> may comprise a time division half-duplex frequency channel that may be used by both device <b>802</b> and device <b>804</b> for exchanging communications with each other. In an implementation of Network <b>800</b>, device <b>802</b> and device <b>804</b> may be configured to operate according to the IEEE 802.11 Wi-Fi specifications. In other implementations, device <b>802</b> and device <b>804</b> may operate according to any other wireless specification or standard that specifies channels that allow keys to be generated in communicating devices according to the embodiments.
<figref idref="DRAWINGS">FIG. 8B</figref> is a simplified block diagram illustrating example portions of devices <b>802</b> and <b>804</b> in an implementation of <figref idref="DRAWINGS">FIG. 8A</figref>. Device <b>802</b> includes a portion <b>805</b> that includes cryptography setup transceiver <b>820</b>, sampler <b>822</b>, bit string generator <b>824</b>, key creator <b>826</b>, GPS function <b>870</b>, and power level determiner <b>819</b>. Device <b>804</b> includes a portion <b>807</b> that includes cryptography setup transceiver <b>834</b>, sampler <b>836</b>, bit string generator <b>838</b>, key creator <b>840</b>, GPS function <b>878</b>, and power level determine <b>842</b>. Portion <b>805</b> communicates with other functions on device <b>802</b> and portion <b>807</b> communicates with other functions on device <b>804</b> to perform operations of cryptography according to the embodiments of the disclosure. Device <b>802</b> and <b>804</b> may each include one or more processors, circuitry, and/or code comprising programs for implementing, respectively, the functions shown in portions <b>805</b> and <b>807</b>. The functions shown in portions <b>805</b> and <b>807</b> of devices <b>802</b> and <b>804</b> may be separately configured on each device, or may be configured as combined, in whole or in part, with processors, circuitry, and/or code or programs that are also utilized for other functions on the devices. For example, cryptography setup transceivers <b>820</b> and <b>834</b> may include, respectively, the transceivers or portions of the transceivers in devices <b>802</b> and <b>804</b> that are also used for data communication. In an example implementation, device <b>802</b> may be implemented according to device <b>600</b> of <figref idref="DRAWINGS">FIG. 6</figref>. Encryption control programs <b>614</b> in memory <b>608</b> may be then be configured to control processor <b>604</b> to provide the functions of device <b>802</b> shown in <figref idref="DRAWINGS">FIG. 8B</figref>. Also, device <b>804</b> may be implemented according to device <b>700</b> of <figref idref="DRAWINGS">FIG. 7</figref>. Encryption control programs <b>710</b> in memory <b>708</b> may then be configured to control processing unit <b>706</b> to provide the functions of device <b>804</b> shown in <figref idref="DRAWINGS">FIG. 8B</figref>.
<figref idref="DRAWINGS">FIG. 9</figref> is a flow diagram <b>900</b> illustrating cryptography operations performed in example communicating devices, such as devices <b>802</b> and <b>804</b> of <figref idref="DRAWINGS">FIGS. 8A and 8B</figref>. The operations performed in <figref idref="DRAWINGS">FIG. 9</figref> may be explained using device <b>802</b> as the first device and device <b>804</b> as the second device of <figref idref="DRAWINGS">FIG. 9</figref>.
The process begins at <b>902</b> where device <b>802</b> sends signal H<sub>1 </sub><b>806</b> to device <b>804</b> on channel <b>801</b> using cryptography setup transceiver <b>820</b>. Signal H<sub>1 </sub><b>806</b> is a handshake signal indicating to device <b>804</b> that device <b>802</b> is attempting to initiate key generation. At <b>904</b>, device <b>804</b> receives signal H<sub>1 </sub><b>806</b> using cryptography setup transceiver <b>834</b> and sends signal H<sub>A </sub><b>814</b> to device <b>802</b> on channel <b>801</b>. Signal H<sub>A </sub><b>814</b> is a handshake acceptance signal indicating to device <b>802</b> that device <b>804</b> is ready to perform key generation. As part of handshake acceptance, at <b>904</b>, device <b>804</b> also sends location information L<sub>B </sub><b>816</b> about device <b>804</b>'s location determined by GPS function <b>874</b> to device <b>802</b>. At <b>906</b>, device <b>802</b> receives signals H<sub>A </sub><b>814</b> and L<sub>B </sub><b>816</b>, and sends acceptance signal H<sub>A </sub><b>808</b> to device <b>804</b> to confirm the initiation of key generation. At <b>906</b>, device <b>802</b> also sends location information L<sub>A </sub><b>810</b> about device <b>802</b>'s location determined by GPS function <b>870</b> to device <b>804</b>.
At <b>908</b>, device <b>802</b> sends signal S<sub>A </sub><b>812</b> to device <b>804</b> at transmission power level P on channel <b>114</b>. Signal S<sub>A </sub><b>812</b> may be an analog signal such as a sinusoidal signal sent on the frequency of channel <b>114</b>. The power level P may be determined by power level determiner <b>819</b> in device <b>802</b>. Power level determiner <b>819</b> receives the location information L<sub>B </sub><b>816</b> for device <b>804</b> (sent from device <b>804</b>) and location information L<sub>A </sub><b>810</b> for device <b>802</b> (which was sent to device <b>804</b>) from cryptography setup transceiver <b>820</b> as signal <b>844</b>. Power level determiner <b>819</b> then determines P based on the relative locations of devices <b>802</b> and <b>804</b>, and a target received power level at device <b>804</b>. Power level determiner <b>819</b> then provides the power level P as signal <b>846</b> to cryptography setup transceiver <b>820</b> for use in sending S<sub>A</sub>. In one implementation, the target received power level at device <b>804</b> may be a predetermined level that is stored in device <b>802</b>. The target received power level may be stored for use in key generation upon configuration of key generation programs in device <b>802</b>. In other implementations, the target received power level may be received from/negotiated with device <b>804</b> during key generation setup. The target receive power level may also be a power level that is based on preferences of network <b>800</b> and received, for example, through device <b>804</b> implemented as an access point of network <b>800</b>.
At <b>910</b>, device <b>804</b> sends signal S<sub>B </sub><b>818</b> to device <b>802</b> at transmission power level P on channel <b>114</b>. Signal S<sub>B </sub><b>818</b> may be an analog signal identical to signal S<sub>A </sub><b>812</b> such as a sinusoidal signal sent on the frequency of channel <b>114</b>. The power level P may be determined by power level determiner <b>842</b> in device <b>804</b>. Power level determiner <b>842</b> receives the location information L<sub>A </sub><b>810</b> for device <b>802</b> (sent from device <b>802</b>) and location information L<sub>B </sub><b>816</b> for device <b>804</b> (which was sent to device <b>802</b>) from cryptography setup transceiver <b>834</b> as signal <b>856</b>. Power level determiner <b>842</b> then determines P based on the relative locations of devices <b>802</b> and <b>804</b>, and a target received power level at device <b>802</b>. The target received power level may be the same target received power level used by device <b>802</b>. Because the target received power level is the same in both devices, the transmission power level P at each device <b>802</b> and <b>804</b> should be the same. Power level determiner <b>842</b> then provides the power level P to cryptography setup transceiver <b>834</b> as signal <b>858</b> for use in sending S<sub>B </sub><b>818</b>. In one implementation, the target received power level at device <b>802</b> may be a predetermined level that is stored in device <b>804</b>. The target received power level may be stored for use in key generation upon configuration of key generation programs in device <b>804</b>. In other implementations, the target received power level may be received from/negotiated with device <b>802</b> during key generation setup. The target receive power level may also be a power level that is based on preferences of network <b>800</b> and received, for example, by device <b>804</b> from a network controller.
At <b>912</b>, device <b>102</b> samples signal S<sub>B </sub><b>818</b>. To perform the sampling, cryptography setup transceiver <b>820</b> provides the received signal Se <b>818</b> to sampler <b>822</b> as signal <b>850</b> and sampler <b>822</b> performs sampling on signal S<sub>B </sub><b>818</b> to generate sampling results. Sampler <b>822</b> may perform the sampling by generating a series of samples, S<sub>1</sub>, S<sub>2 </sub>. . . S<sub>N</sub>, with each sample taken from signal S<sub>B </sub><b>818</b> at a predetermined time interval. Each sample of S<sub>1</sub>, S<sub>2 </sub>. . . . S<sub>N </sub>may comprise bits that represent a value of power of signal S<sub>B </sub><b>818</b> at the time the sample was taken.
Next, at <b>914</b>, device <b>102</b> generates a bit string from the results of the sampling on signal S<sub>B </sub><b>818</b>. In performing the bit string generation, sampler <b>822</b> provides the sampling results to bit string generator <b>824</b> as signal <b>852</b>. Bit string generator <b>824</b> may then generate the bit string, B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M</sub>, from the sampling results. In generating the bit string, bit string generator <b>824</b> may use only the samples of S<sub>1</sub>, S<sub>2 </sub>. . . S<sub>N </sub>that indicate a value of power above a threshold level.
The threshold level used for generating the bit string in device <b>802</b> may be set by bit string generator <b>824</b> to the median power level of the samples in the received signal S<sub>B</sub><b>818</b>. The median power level may be determined over the time period within which the samples are taken. If the power of a sample S<sub>X </sub>is below the threshold it may be ignored. If the power of the sample S<sub>X </sub>is above the threshold, the bits representing the power sample S<sub>X </sub>may be placed as a set in the bit string. This may be performed as shown in <figref idref="DRAWINGS">FIG. 3A</figref> with PL<sub>1 </sub><b>302</b> set to the threshold level. The bit string generator <b>130</b> may process the complete sampling results in this manner to generate a bit string B<sub>1</sub>, B<sub>2 </sub>. . . . B<sub>M </sub>for use in key creation in device <b>102</b>.
At <b>916</b>, device <b>804</b> may initiate the same sampling and bit string generation operations on the signal S<sub>A </sub><b>812</b> as performed in device <b>802</b> at operations <b>912</b> and <b>914</b> on the signal S<sub>A </sub><b>812</b>. To perform the sampling at device <b>804</b>, cryptography setup transceiver <b>834</b> provides the received signal S<sub>A </sub><b>812</b> to sampler <b>836</b> as signal <b>862</b> and sampler <b>836</b> performs sampling on signal S<sub>A </sub><b>812</b> to generate sampling results. Sampler <b>836</b> may perform the sampling by generating a series of samples, S′<sub>1</sub>, S′<sub>2 </sub>. . . . S′<sub>N</sub>, with each sample taken from signal S<sub>A </sub><b>812</b> at a predetermined time interval. Each sample of S′<sub>1</sub>, S′<sub>2 </sub>. . . S′<sub>N </sub>may comprise bits that represent a value of the power of signal S<sub>A </sub><b>812</b> at the time the sample was taken. The time interval used for sampling in device <b>104</b> may be the same as the time interval used for sampling in device <b>802</b>.
Next, at <b>918</b>, device <b>804</b> generates a bit string from the results of the sampling on signal S<sub>A </sub><b>812</b>. In performing the bit string generation, sampler <b>836</b> provides the sampling results as signal <b>864</b> to bit string generator <b>838</b>. Bit string generator <b>838</b> may then generate a bit string, C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>, from the sampling results. In generating the bit string, bit string generator <b>838</b> may use only the samples of S′<sub>1</sub>, S′<sub>2 </sub>. . . S′<sub>N </sub>that indicate a value of power or amplitude above a threshold level.
The threshold used for generating the bit string in device <b>804</b> may be set by bit string generator <b>838</b> to the median power level of the samples in the received signal S<sub>A </sub><b>812</b>. The median power level may be determined over the time period within which the samples are taken. If the power of a sample S′<sub>X </sub>is below the threshold it may be ignored. If the power of the sample S′<sub>X </sub>is above the threshold the bits representing the power sample S′<sub>X </sub>may be placed as a set of bits in the bit string. This may be performed as shown in <figref idref="DRAWINGS">FIG. 3B</figref> with PL<sub>2 </sub><b>304</b> set to the threshold level. The bit string generator <b>824</b> may then process the complete sampling results in this manner to generate a bit string C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>for use in key creation in device <b>804</b>.
Use of signals S<sub>A </sub><b>812</b> and S<sub>B </sub><b>818</b> that are identical, and use of processes for signal sampling and bit string generation that are the same in each of the devices <b>802</b> and <b>804</b>, provides a bit string, B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M</sub>, and a bit string, C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>, that are identical, or nearly identical, to one another. Because S<sub>A </sub><b>812</b> and S<sub>B </sub><b>818</b> are sent at the same transmission power level P, the threshold levels PL<sub>1 </sub>and PL<sub>2 </sub>determined from the sampling results and used, respectively, in devices <b>802</b> and <b>804</b> should be identical or nearly identical.
At <b>920</b>, device <b>802</b> creates a key based on bit string B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M</sub>. The key is created in device <b>802</b> when bit string generator <b>824</b> provides bit string B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>to key creator <b>826</b> as signal <b>854</b>. Key creator <b>826</b> then creates the key from the bit string B<sub>1</sub>, B<sub>2 </sub>. . . . B<sub>M</sub>. In one example implementation, key creator <b>826</b> may create the key using all of the bits in the bit string B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>taken sequentially. For example, if the bit string B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>is a string in which B<sub>1</sub>=11011011, B<sub>2</sub>=10111011 . . . Bu=11111101, a key may be created as k<sub>802</sub>=1101101110111011 . . . 11111101. In another example, key creator <b>826</b> may create key k<sub>802 </sub>using a subset of bits from each of B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M</sub>. For example, if the bit string B<sub>1</sub>, B<sub>2 </sub>. . . B<sub>M </sub>is a string in which B<sub>1</sub>=11011011, B<sub>2</sub>=10111011 . . . B<sub>M</sub>=1111101, k<sub>802 </sub>may be created by taking the four most significant bits from each of B<sub>1</sub>, B<sub>2 </sub>. . . . B<sub>M </sub>to create k<sub>802</sub>=110101111 . . . 1111. Keys of different lengths may be created by varying the sampling, bit string generation, and key creation operations. Key creator <b>826</b> then outputs k<sub>802 </sub>at output <b>855</b> for use by device <b>802</b> in encryption/decryption.
At <b>922</b>, device <b>804</b> creates a key based on C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>using the same operations that device <b>802</b> uses to create k<sub>802 </sub>from B<sub>1</sub>, B<sub>2 </sub>. . . . B<sub>M</sub>. The key is created in device <b>804</b> when bit string generator <b>838</b> provides bit string C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>to key creator <b>840</b> as signal <b>866</b>. Key creator <b>840</b> then creates a key, k<sub>804</sub>, from the bit string C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>. In one example implementation, key creator <b>840</b> may create k<sub>804 </sub>using all of the bits in the bit string C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>. For example, if the bit string C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>is a string in which C<sub>1</sub>=11011011, C<sub>2</sub>=10111011 . . . C<sub>M</sub>=111101, k<sub>804</sub>, may be created as k<sub>804</sub>=1101101110111011 . . . 1111101. In another example, key creator <b>840</b> may create k<sub>804 </sub>using a subset of bits from each of C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M</sub>. For example, if the bit string C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>is a string in which C<sub>1</sub>=11011011, C<sub>2</sub>=1011011 . . . C<sub>M</sub>=11111101, k<sub>804 </sub>may be created by taking the four most significant bits from each of C<sub>1</sub>, C<sub>2 </sub>. . . C<sub>M </sub>to create k<sub>804</sub>=11011011 . . . 1111. Keys of different lengths may be created by varying the sampling, bit string generation, and key creation operations. The operations used for creating k<sub>804 </sub>in device <b>804</b> may be identical to the operations used for creating k<sub>802 </sub>in device <b>802</b>. Key creator <b>840</b> then outputs k<sub>804 </sub>at output <b>868</b> for use by device <b>804</b> in encryption/decryption.
In a situation in which devices <b>802</b> and <b>804</b> include transceivers that are capable of signal transmission at precise power levels and are also capable of precise measurement of received signals, the keys in both devices will have a high probability of being identical. In this situation, an implementation may be used in which k<sub>802 </sub>and k<sub>804 </sub>may be created directly from the sampling results by using all the bits of each of the sampling results S<sub>1</sub>, S<sub>2 </sub>. . . S<sub>M </sub>and S′<sub>1</sub>, S′<sub>2 </sub>. . . . S′<sub>M</sub>, respectively. In situations in which devices <b>802</b> and <b>804</b> include lower quality transceivers that are not capable of transmitting signals at precise power levels and/or are not capable of precise measurement of received signals, the keys created in each device may have a lower probably of being identical. In this type of situation, the implementation may be used in which k<sub>802 </sub>and k<sub>804 </sub>are created using only a subset of most significant bits from each of the sampling results S<sub>1</sub>, S<sub>2 </sub>. . . S<sub>M </sub>and S′<sub>1</sub>, S′<sub>2 </sub>. . . . S′<sub>M</sub>, respectively, to provide a more robust key creation process. Use of a subset of the most significant bits from each of the sampling results allows errors that occur in the less important bits of the sampling results to be removed and not cause differences between k<sub>802 </sub>and k<sub>804</sub>.
At <b>924</b>, when the keys have been created in each of device <b>802</b> and <b>804</b>, devices <b>802</b> and <b>804</b> may then communicate data signals with each other while encrypting and/or decrypting communications using, respectively, keys k<sub>802 </sub>and k<sub>804</sub>. If k<sub>802 </sub>and k<sub>804 </sub>have not been generated identically, because of transmission or reception conditions in the network, neither of the devices <b>802</b> or <b>804</b> will be capable of decrypting communications sent by the other. In this case one of the devices may determine that it cannot correctly decode transmissions and cause new keys to be created by initiating repetition of the process of <figref idref="DRAWINGS">FIG. 9</figref>.
In an alternative implementation, the key creation operation of <b>918</b> of <figref idref="DRAWINGS">FIG. 9</figref> may be performed by inputting the bit string B<b>1</b>, B<b>2</b> . . . BM into a decoder in device <b>802</b> to generate a set of code words, CA<b>1</b>, CA<b>2</b> . . . CAM, where each code word in the set corresponds to one of B<b>1</b>, B<b>2</b> . . . BM. Similarly, the key creation operation of <b>922</b> of <figref idref="DRAWINGS">FIG. 9</figref> may be performed by inputting the bit string C<b>1</b>, C<b>2</b> . . . CM into a decoder in device <b>804</b> to generate a set of code words, CB<b>1</b>, CB<b>2</b> . . . CBM, where each code word in the set corresponds to one of C<b>1</b>, C<b>2</b> . . . CM. The code words CA<b>1</b>, CA<b>2</b> . . . CAM, and CB<b>1</b>, CB<b>2</b> . . . CBM, may then be used, respectively, as key<sub>802 </sub>and key<sub>804 </sub>for encrypting/decrypting communications between devices <b>802</b> and <b>804</b>. This alternative implementation may use the process described for <figref idref="DRAWINGS">FIG. 4A</figref>. In a further alternative implementation, y bits at a time may be input into a decoder in device <b>802</b> from each set of the bits B<b>1</b>, B<b>2</b> . . . BM to generate a set of code words, CA<b>1</b>, CA<b>2</b> . . . CAM, and y bits at a time may be input into a decoder in device <b>804</b> from each set of the bits C<b>1</b>, C<b>2</b> . . . CM to generate a set of code words, CA<b>1</b>, CA<b>2</b> . . . CAM. These code words CA<b>1</b>, CA<b>2</b> . . . CAM, and CB<b>1</b>, CB<b>2</b> . . . CBM, may then be used, respectively, as key<sub>802 </sub>and key<sub>804 </sub>for encrypting/decrypting communications between devices <b>802</b> and <b>804</b>. This further alternative implementation may use the process described for <figref idref="DRAWINGS">FIG. 4B</figref>.
In other implementations of <figref idref="DRAWINGS">FIGS. 2 and 9</figref>, keys may be created based on a sequence of bits comprising the sets of the bits B<b>1</b>, B<b>2</b> . . . BM or C<b>1</b>, C<b>2</b> . . . CM, by using further operations/transformations in various other manners during the key creation operations. <figref idref="DRAWINGS">FIG. 10A</figref> is a simplified block diagram illustrating example key creation performed by applying functions to a sequence. <figref idref="DRAWINGS">FIG. 10A</figref> shows device <b>1002</b> in which bits of B<sub>X </sub>are input to a function F<b>1</b> to generate a key, and device <b>1004</b> in which bits of C<sub>X </sub>are input into an identical function F<b>1</b> to generate a key. Devices <b>1002</b> and <b>1004</b> may represent, respectively, the first and second devices of <figref idref="DRAWINGS">FIGS. 2 and 9</figref>. In an example, rather than creating the key directly from the bit strings as in <figref idref="DRAWINGS">FIG. 2</figref> and <figref idref="DRAWINGS">FIG. 9</figref>, each sequence of bits comprising the sets of the bits B<b>1</b>, B<b>2</b> . . . BM and C<b>1</b>, C<b>2</b> . . . CM may be transformed or operated on in each of the first and second device, respectively. This may be done by inputting the sets of bits, combinations of the sets of bits, or the y most significant bits of each set of bits, as seed values for starting a linear feedback shift register (LFBSR) implemented as F<b>1</b>. The LFSBR of F<b>1</b> may then be cycled in each of the first and second devices in an identical manner to generate an output sequence to use as encryption/decryption keys. In further implementations, the function F<b>1</b> may be implemented as any other type of process, operation, transformation or function that acts to create an encryption key based on the sequence of bits comprising the sets of the bits B<b>1</b>, B<b>2</b> . . . BM and C<b>1</b>, C<b>2</b> . . . CM.
Also, in other implementations of <figref idref="DRAWINGS">FIGS. 4A and 4B</figref>, each of the code words in the sets CA<sub>1</sub>, CA<sub>2 </sub>. . . CA<sub>M </sub>and CB<sub>1</sub>, CB<sub>2 </sub>. . . CB<sub>M </sub>may be further operated on or transformed in various other manners during the key creation operations. <figref idref="DRAWINGS">FIG. 10B</figref> is a simplified block diagram illustrating example key creation performed by applying functions to code words. <figref idref="DRAWINGS">FIG. 10B</figref> shows device <b>1002</b> in which bits of code words CA<sub>X </sub>are input to a function F<b>2</b> to generate a key, and device <b>1004</b> in which bits of code words CB<sub>X </sub>are input into an identical function F<b>2</b> to generate a key. Devices <b>1002</b> and <b>1004</b> may represent, respectively, the first and second devices of <figref idref="DRAWINGS">FIGS. 4A and 4B</figref>. In an example, rather than creating the key from the code words output from decoder A and decoder B directly, the code words in the sequence of bits comprising sets CA<sub>1</sub>, CA<sub>2 </sub>. . . CA<sub>M </sub>and CB<sub>1</sub>, CB<sub>2 </sub>. . . CB<sub>M </sub>may be transformed or operated on in each of first and second devices, respectively, to generate the keys. This may be done by inputting the code words, combinations of the code words, or y most significant bits of each of the code words, as seed values for starting a linear feedback shift register (LFBSR) implemented as F<b>2</b> in each device. This LFSBR may then be cycled in each of the first and second devices in an identical manner to generate an output sequence to use as encryption/decryption keys. In further implementations, the function F<b>2</b> may be implemented as any other type of process, operation, transformation or function that acts to create an encryption key based on the code words in the sequence of bits comprising sets CA<sub>1</sub>, CA<sub>2 </sub>. . . CA<sub>M </sub>and CB<sub>1</sub>, CB<sub>2 </sub>. . . CB<sub>M</sub>.
While implementations have been disclosed and described as having functions implemented on particular wireless devices operating in a network, one or more of the described functions for the devices may be implemented on a different one of the devices than shown in the figures, or on different types of equipment operating in different systems.
The disclosed embodiments include a first device comprising one or more processors and memory in communication with the one or more processors, the memory comprising code that, when executed, causes the one or more processors to control the first device to receive a setup signal from a second device, sample the setup signal and generate sampling results, create a key based on the sampling results, and, utilize the key to exchange secure data signals with the second device. The setup signal may comprise a second setup signal and the code may cause the one or more processors to control the first device to send a first setup signal to the second device, and, receive the second setup signal from the second device, wherein the second setup signal comprises a looped back version of the first setup signal. The code may further cause the one or more processors to control the first device to receive a third setup signal from the second device, and, send a fourth setup signal to the second device, the fourth setup signal comprising a looped back version of the third setup signal. The first setup signal and the second setup signal may be sent on the same frequency channel. The first setup signal may be sent on a first frequency channel and the second setup signal may be sent on a second frequency channel that is offset from the first frequency channel.
The code may further cause the one or more processors to control the first device to sample the setup signal and the generate sampling results by sampling the setup signal at each of a plurality of time intervals to generate a plurality of sets of bits, wherein each of the sets of bits indicates a magnitude of a sampled level, and, create the key based on the sampling results by using only selected sets of the plurality of sets of bits having a magnitude above a threshold level. The sampling results may comprise one or more sets of bits and the code further may cause the one or more processors to control the first device to create the key by inputting each of the one or more sets of bits into a decoder to generate a set of code words as the key. The sampling results may comprise one or more sets of bits and the code may further cause the one or more processors to control the first device to create the key by inputting a set of most significant bits of each of the one or more sets of bits into a decoder to generate a set of code words as the key.
The disclosed embodiments also include a method in a first device comprising receiving a setup signal from a second device, sampling the setup signal and generating sampling results, creating a key based on the sampling results, and, utilizing the key to exchange data signals with the second device. The setup signal may comprise a second setup signal, and the method may further comprise sending a first setup signal to the second device on a channel, and the receiving the second setup signal may comprise receiving the second setup signal from the second device on the channel, wherein the second setup signal comprises a looped back version of the first setup signal. The method may further comprise receiving a third setup signal from the second device, and, sending a fourth setup signal to the second device, the fourth setup signal comprising a looped back version of the third setup signal. The sampling the setup signal and generating sampling results may comprise sampling the setup signal at each of a plurality of time intervals to generate a plurality of sets of bits, wherein each of the plurality of sets of bits indicates a magnitude of a sampled level, and the creating the key from the sampling results may comprise creating the key using only selected sets of the plurality of sets of bits having a magnitude above a threshold level. The sampling results may comprise one or more sets of bits, each representing a sample in the sampling results, and the creating the key may comprise inputting each of the one or more sets of bits into a decoder to generate a set of code words as the key. The sampling results may comprise one or more sets of bits, each representing a sample in the sampling results, and the creating the key may comprise inputting a set of most significant bits of each of the one or more sets of bits into a decoder to generate a set of code words as the key.
The disclosed embodiments further include a system comprising a first device and a second device configured to communicate with one another, wherein the first device receives a first setup signal from the second device, and the second device receives a second setup signal from the first device, and, wherein the first device samples the first setup signal and creates a first key and the second device samples the second setup signal and creates a second key, and the first device encrypts and decrypts data signals communicated between the first and second device using the first key, and the second device encrypts and decrypts the data signals communicated between the first and second device using the second key. The first setup signal may comprise a looped back setup signal initially sent by the first device, and the second setup signal may comprise a looped back setup signal initially sent by the second device. The first device may sample the first setup signal at each of a plurality of time intervals to generate first sets of bits, each set of the first sets of bits indicating a magnitude sampled at the first device, and the second device may sample the second setup signal at each of the plurality of time intervals to generate second sets of bits, each set of the second sets of bits indicating a magnitude sampled at the second device, and, the first and second devices may create the first and second keys using, respectively, only first selected sets of bits of the first sets of bits and only second selected sets of bits of the second sets of bits that indicate a magnitude, respectively, above a first and second threshold level. The first device may create the first key by inputting the first selected sets of bits into a decoder to generate a first set of code words as the first key, and the second device may create the second key by inputting the second selected sets of bits into a decoder to generate a second set of code words as the second key. The first device may create the first key by inputting at least one most significant bit of each of the first selected sets of bits into a decoder to generate a first set of code words as the first key, and the second device may create the second key by inputting at least one most significant bit of each of the second selected sets of bits into a decoder to generate a second set of code words as the second key. The first and second setup signals may comprise analog signals sent on the same channel.
The disclosed embodiments further include a first device comprising one or more processors and memory in communication with the one or more processors, the memory comprising code that, when executed, causes the one or more processors to control the first device to determine a transmission power for sending a first setup signal to a second device based on a target receive power of the first setup signal at the second device, send the first setup signal to the second device using the determined transmission power, receive a second setup signal from the second device, sample the second setup signal and generate sampling results, create a key using the sampling results and a threshold power based on the target receive power, and, utilize the key to exchange at least one data signal with the second device. The code may further causes the one or more processors to control the first device to send a first location from the first device to the second device, receive a second location from the second device, and, determine the transmission power for sending the first setup signal to the second device based on the first and second location, and the target receive power. The first setup signal and the second setup signal may be sent on the same frequency channel. The first setup signal may be sent on a first frequency channel and the second setup signal may be sent on a second frequency channel that is offset from the first frequency channel. The code further causes the one or more processors to control the first device to sample the second setup signal and generate the sampling results by sampling the second setup signal at each of a plurality of time intervals to generate a plurality of sets of bits, wherein each of the sets of bits indicates a magnitude of a sampled level, and, create the key based on the sampling results by using selected bits of each of the plurality of sets of bits having a magnitude above the threshold power. The selected bits of each of the plurality of sets of bits may comprise most significant bits of each of the plurality of sets of bits. The code may further cause the one or more processors to control the first device to sample the second setup signal and generate the sampling results by sampling the second setup signal at each of a plurality of time intervals to generate a plurality of sets of bits, wherein each of the sets of bits indicates a magnitude of a sampled level, and, create the key by inputting selected bits of each of the plurality of sets of bits having a magnitude above the threshold power into a decoder to generate a set of code words as the key. The selected bits of each of the plurality of sets of bits may comprise most significant bits of each of the plurality of sets of bits.
The disclosed embodiments also disclose a first device comprising one or more processors and memory in communication with the one or more processors, the memory comprising code that, when executed, causes the one or more processors to control the first device to receive a first setup signal from a second device, sample the first setup signal and generate sampling results, determine a threshold power based on one or more power levels of the sampling results, create a key using the sampling results and the threshold power, and, utilize the key to exchange at least one data signal with the second device. The code may further cause the one or more processors to control the first device to sample the first setup signal and generate the sampling results by sampling the first setup signal at each of a plurality of time intervals to generate a plurality of sets of bits, wherein each of the sets of bits indicates a magnitude of a sampled level, determine the threshold power using the magnitudes of each of the sets of bits, and, create the key based on the sampling results by using selected bits of each of the plurality of sets of bits having a magnitude above the threshold power. The code further causes the one or more processors to control the first device to sample the first setup signal and generate the sampling results by sampling the first setup signal at each of a plurality of time intervals to generate a plurality of sets of bits, wherein each of the sets of bits indicates a magnitude of a sampled level, determine the threshold power using the magnitudes of each of the sets of bits, and, create the key by inputting selected bits of each of the plurality of sets of bits having a magnitude above the threshold power into a decoder to generate a set of code words as the key. The code may cause the one or more processors to control the first device to receive a location from the second device, and, determine a transmission power for sending a second setup signal to the second device based on the location and a target receive power of the second setup signal at the second device. The location may comprise a second location and the code may further cause the one or more processors to control the first device to send a first location to the second device and determine the transmission power for sending the second setup signal to the second device based on the first and second locations and the target receive power of the second setup signal at the second device. The first setup signal and the second setup signal may be sent on the same frequency channel.
The disclosed embodiments also include a first device comprising one or more processors and memory in communication with the one or more processors, the memory comprising code that, when executed, causes the one or more processors to control the first device to, receive a setup signal from a second device, sample the setup signal and generate sampling results, generate a first sequence based on the sampling results, transform the first sequence into a second sequence using a function, generate a key based on the second sequence, and, utilize the key to exchange at least one data signal with the second device. The function may comprise a linear feedback shift register. The sampling results may comprise a plurality of sets of bits, each of the sets of bits indicating a magnitude of a sampled level, and the first sequence may comprise selected bits of each of the plurality of sets of bits having a magnitude above a threshold power. The selected bits may comprise most significant bits. The sampling results may comprise a plurality of sets of bits, each of the sets of bits indicating a magnitude of a sampled level, and the code may causes the one or more processors to control the first device to generate the first sequence by inputting selected bits of each of the plurality of sets of bits having a magnitude above a threshold power into a decoder to generate a set of code words as the first sequence. The selected bits may comprise most significant bits.
While the functionality disclosed herein has been described by illustrative example using descriptions of the various components and devices of embodiments by referring to functional blocks and processors or processing units, controllers, and memory including instructions and code, the functions and processes of the embodiments may be implemented and performed using any appropriate functional blocks, type of processor, circuitry or combinations of processors and/or circuitry and code. This may include, at least in part, one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), system-on-a-chip systems (SOCs), complex programmable logic devices (CPLDs), etc. Use of the term processor or processing unit in this disclosure is mean to include all such implementations.
Although the subject matter has been described in language specific to structural features and/or methodological operations or acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features, operations, or acts described above. Rather, the specific features, operations, and acts described above are disclosed as example embodiments, implementations, and forms of implementing the claims and these example configurations and arrangements may be changed significantly without departing from the scope of the present disclosure. Moreover, although the example embodiments have been illustrated with reference to particular elements and operations that facilitate the processes, these elements, and operations may or combined with or, be replaced by, any suitable devices, components, architecture or process that achieves the intended functionality of the embodiment. Numerous other changes, substitutions, variations, alterations, and modifications may be ascertained to one skilled in the art and it is intended that the present disclosure encompass all such changes, substitutions, variations, alterations, and modifications as falling within the scope of the appended claims.
Contents5
10 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10
Every citation, both waysCites: the store holds 78 of 79
| Document | Relation | Office | Cited during |
|---|---|---|---|
| WO0154053A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO0209344A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| CN103167490A | Cites | China | Applicant |
| CN104584670A | Cites | China | Applicant |
| US2002158211A1 | Cites | United States of America | Applicant |
| US2005244000A1 | Cites | United States of America | Search report |
| WO2006130725A2 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2006198520A1 | Cites | United States of America | Applicant |
| US2007036353A1 | Cites | United States of America | Applicant |
| US2007058808A1 | Cites | United States of America | Applicant |
| US2007165845A1 | Cites | United States of America | Applicant |
| US2007291682A1 | Cites | United States of America | Search report |
| US2009225982A1 | Cites | United States of America | Applicant |
| US2009279700A1 | Cites | United States of America | Applicant |
| US2010085160A1 | Cites | United States of America | Applicant |
| US2010135498A1 | Cites | United States of America | Search report |
| US2011130119A1 | Cites | United States of America | Applicant |
| US2012159147A1 | Cites | United States of America | Applicant |
| US2013077789A1 | Cites | United States of America | Applicant |
| US2013236007A1 | Cites | United States of America | Applicant |
| US2015048977A1 | Cites | United States of America | Search report |
| US2015063566A1 | Cites | United States of America | Applicant |
| US2015382187A1 | Cites | United States of America | Search report |
| US2016050219A1 | Cites | United States of America | Search report |
| US2016055428A1 | Cites | United States of America | Search report |
| US2016234008A1 | Cites | United States of America | Search report |
| US2017289921A1 | Cites | United States of America | Search report |
| US2018013558A1 | Cites | United States of America | Applicant |
| US2018013559A1 | Cites | United States of America | Applicant |
| US5241597A | Cites | United States of America | Applicant |
| US5594797A | Cites | United States of America | Applicant |
| US5604806A | Cites | United States of America | Applicant |
| US6031913A | Cites | United States of America | Applicant |
| US6173005B1 | Cites | United States of America | Applicant |
| US6307882B1 | Cites | United States of America | Applicant |
| US7167562B2 | Cites | United States of America | Applicant |
| US7171552B1 | Cites | United States of America | Search report |
| US7263140B2 | Cites | United States of America | Applicant |
| US7418596B1 | Cites | United States of America | Applicant |
| US7421075B2 | Cites | United States of America | Applicant |
| US7634088B2 | Cites | United States of America | Search report |
| US7783879B2 | Cites | United States of America | Applicant |
| US7949032B1 | Cites | United States of America | Search report |
| US8270602B1 | Cites | United States of America | Applicant |
| US8873755B2 | Cites | United States of America | Applicant |
| US8909194B2 | Cites | United States of America | Applicant |
| US8964986B2 | Cites | United States of America | Applicant |
| US9008208B2 | Cites | United States of America | Applicant |
| US9031236B2 | Cites | United States of America | Applicant |
| US9042544B2 | Cites | United States of America | Applicant |
| US9130693B2 | Cites | United States of America | Applicant |
| US9319877B2 | Cites | United States of America | Applicant |
| US20020158211A1 | Cites | United States of America | Applicant |
| US20050244000A1 | Cites | United States of America | Search report |
| US20060198520A1 | Cites | United States of America | Applicant |
| US20070036353A1 | Cites | United States of America | Applicant |
| US20070058808A1 | Cites | United States of America | Applicant |
| US20070165845A1 | Cites | United States of America | Applicant |
| US20070291682A1 | Cites | United States of America | Search report |
| US20090225982A1 | Cites | United States of America | Applicant |
| US20090279700A1 | Cites | United States of America | Applicant |
| US20100085160A1 | Cites | United States of America | Applicant |
| US20100135498A1 | Cites | United States of America | Search report |
| US20110130119A1 | Cites | United States of America | Applicant |
| US20120159147A1 | Cites | United States of America | Applicant |
| US20130077789A1 | Cites | United States of America | Applicant |
| US20130236007A1 | Cites | United States of America | Applicant |
| US20150048977A1 | Cites | United States of America | Search report |
| US20150063566A1 | Cites | United States of America | Applicant |
| US20150382187A1 | Cites | United States of America | Search report |
| US20160050219A1 | Cites | United States of America | Search report |
| US20160055428A1 | Cites | United States of America | Search report |
| US20160234008A1 | Cites | United States of America | Search report |
| US20170289921A1 | Cites | United States of America | Search report |
| US20180013558A1 | Cites | United States of America | Applicant |
| US20180013559A1 | Cites | United States of America | Applicant |
| WO2001054053A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO2002009344A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
21 members in 4 offices
Priority claims6
| Document | Office | Kind | Date |
|---|---|---|---|
| 201615206142 | United States of America | A | |
| 201615206142 | United States of America | A | |
| 201615275207 | United States of America | A | |
| 15206142 | – | – | – |
| US201615206142 | – | – | – |
| US201615275207 | – | – | – |
Members21
| Document | Office | Kind | |
|---|---|---|---|
| US2018013553A1 | United States of America | A1 | |
| US2018013558A1 | United States of America | A1 | |
| US2018013559A1 | United States of America | A1 | |
| WO2018009470A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2018009472A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US2019044712A1 | United States of America | A1 | |
| CN109417473A | China | A | |
| CN109417474A | China | A | |
| EP3482522A1 | European Patent Office (EPO) | A1 | |
| EP3482523A1 | European Patent Office (EPO) | A1 | |
| US10411888B2 | United States of America | B2 | |
| US10433166B2This record | United States of America | B2 | |
| US10469260B2 | United States of America | B2 | |
| WO2019231655A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US10560264B2 | United States of America | B2 | |
| EP3482522B1 | European Patent Office (EPO) | B1 | |
| CN112166464A | China | A | |
| EP3785252A1 | European Patent Office (EPO) | A1 | |
| CN109417473B | China | B | |
| CN109417474B | China | B | |
| EP3482523B1 | European Patent Office (EPO) | B1 |
129 transactions on the USPTO file
Allowed after 2 non-final rejections, 1 final rejection and 1 RCE.
- Non-final rejections
- 2
- Final rejections
- 1
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mailing Corrected Notice of AllowabilityMCNOA | MCNOA | |
| Corrected Notice of AllowabilityCNOA | CNOA | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mailing Corrected Notice of AllowabilityMCNOA | MCNOA | |
| Corrected Notice of AllowabilityCNOA | CNOA | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mail Response to 312 Amendment (PTO-271)MN271 | MN271 | |
| Response to Amendment under Rule 312N271 | N271 | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Amendment after Notice of Allowance (Rule 312)AllowedA.NA | A.NA | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Applicant Initiated Interview SummaryMEXIA | MEXIA | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Interview Summary - Examiner Initiated - TelephonicEXET | EXET | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Applicant Initiated Interview SummaryMEXIA | MEXIA | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Response after Non-Final ActionA... | A... | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Applicant Initiated Interview SummaryMEXIA | MEXIA | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Case Docketed to Examiner in GAUDOCK | DOCK |
10 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedSTCF | STCF | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| AssignmentAS | AS |
Numbers
- Publication
- 10433166
- Publication, DOCDB
- 10433166
- Publication, EPODOC
- US10433166
- Application
- 15275207
- Application, DOCDB
- 201615275207
- Application, EPODOC
- US201615275207
Titles
- English
- Cryptography using RF power measurement
Patent term adjustment
- A delay
- +147 daysthe office missed an examination deadline
- Applicant delay
- −54 days
- Net adjustment
- 93 days
Classification
- CPC, 16
- H04L9/0866
- H04W12/0401
- H04W12/041
- H04L9/0822
- H04L9/0875
- H04L9/0861
- H04L25/0202
- H04L25/0212
- H04L2209/80
- H04L9/14
- H04W12/65
- H04L63/061
- H04W12/003
- H04W12/50
- G06F1/266
- H04W12/00504
- IPC, 7
- H04W12 04
- H04L9 08
- H04L9 14
- H04L29 06
- H04W12 00
- G06F1 26
- H04L25 02
- USPC, 1
- 713150000