CRYPTOGRAPHY METHOD
20180013558 · 2018-01-11
Assignee
Inventors
Cpc classification
H04L63/0428
ELECTRICITY
H04L9/0861
ELECTRICITY
H04L63/0442
ELECTRICITY
H04L9/0866
ELECTRICITY
H04L63/06
ELECTRICITY
International classification
Abstract
The embodiments provide cryptography that is performed in each of two communicating devices and is based on information known only to the devices. The information is determined in each of the devices at the time of communications. Each of the devices determines the information without communicating key information related to the encryption key with each other. Channel characteristic reciprocity between the two devices allows creation of identical keys in each device. Each of the devices sends a first setup signal to the other device, receives a second setup signal from the other device, where the second setup signal may be a looped back version of the first setup signal, samples the second setup generates sampling results, creates a key based on the sampling results, and utilizes the key to exchange one or more secure data signals with the other device.
Claims
1. 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 at least one data signal with the second device.
2. The first device of claim 1, wherein the setup signal comprises a second setup signal and the code causes 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.
3. The first device of claim 2, wherein the code further causes 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.
4. The first device of claim 2, wherein the first setup signal and the second setup signal are sent on the same frequency channel.
5. The first device of claim 2, wherein the first setup signal is sent on a first frequency channel and the second setup signal is sent on a second frequency channel that is offset from the first frequency channel.
6. The first device of claim 1, wherein the code further causes the one or more processors to control the first device to: sample the setup signal and 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 selected sets of the plurality of sets of bits having a magnitude above a threshold level.
7. The first device of claim 1, wherein the sampling results comprise one or more sets of bits and the code further causes 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.
8. The first device of claim 1, wherein the sampling results comprise one or more sets of bits and the code further causes 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.
9. 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 at least one data signal with the second device.
10. The method of claim 9, wherein the setup signal comprises a second setup signal, the method further comprises sending a first setup signal to the second device, and, the receiving the second setup signal comprises: receiving the second setup signal from the second device, wherein the second setup signal comprises a looped hack version of the first setup signal.
11. The method of claim 10, f ether comprising: 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.
12. The method of claim 9, wherein the sampling the setup signal and generating sampling results comprises 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 comprises creating the key using selected sets of the plurality of sets of bits having a magnitude above a threshold level.
13. The method of claim 9, wherein the sampling results comprise one or more sets of bits, each representing a sample in the sampling results, and the creating the key comprises inputting each of the one or more sets of bits into a decoder to generate a set of code words as the key.
14. The method of claim 9, wherein the sampling results comprise one or more sets of bits, each representing a sample in the sampling results, and the creating the key comprises 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.
15. 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.
16. The system of claim 15, wherein the first setup signal comprises a looped back setup signal initially sent by the first device, and the second setup signal comprises a looped back setup signal initially sent by the second device.
17. The system of claim 15, wherein the first device samples 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 samples 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 create the first and second keys using, respectively, first selected sets of bits of the first sets of bits and second selected sets of bits of the second sets of bits that indicate a magnitude, respectively, above a first and second threshold level.
18. The system of claim 17, wherein the first device creates 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 creates 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.
19. The system of claim 17, wherein the first device creates 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 creates 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.
20. The system of claim 15 wherein the first and second setup signals comprise analog signals sent on the same channel.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
DETAILED DESCRIPTION
[0017] 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.
[0018] 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.
[0019] 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.
[0020] 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 he 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.
[0021] The embodiments have application to provide secure communications, for example, in time division duplex networks or systems such as those operating according to the IEEE 802.11 Wi-Fi standards. In the Wi-Fi standards, 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 he 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.
[0022] 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 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 when one or both of the devices are such that the sampling results may not he identical in both devices. 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.
[0023] Referring now to
[0024]
[0025]
[0026] The process begins at 202 where device 102 sends signal S.sub.A 106 to device 104 on channel 114 using cryptography setup transceiver 116. Signal S.sub.A 106 may be an analog signal such as a sinusoidal signal sent on the frequency of channel 114. At 204, device 104 receives signal S.sub.A using cryptography setup transceiver 134 and loops back signal S.sub.A 106 to device 102 as signal S.sub.A, B 108 on channel 114. Signal S.sub.A, B 10$ may be identical to the signal S.sub.A 106 as it was received at cryptography setup transceiver 134. At 206 device 104 sends signal S.sub.B 110 to device 102 on channel 114 in the opposite direction using cryptography setup transceiver 134. Signal S.sub.B 110 may be an analog signal identical to signal S.sub.A. At 208, device 102 receives signal S.sub.B 110 using cryptography setup transceiver 116 and loops back signal S.sub.B 110 to device 104 as signal S.sub.B, A 112 on channel 114. Signal S.sub.B, A 112 may be identical to the signal S.sub.B 110 as it was received at cryptography setup transceiver 116.
[0027] At 210, device 102 samples signal S.sub.A, B 108. To perform the sampling, cryptography setup transceiver 116 provides the received signal S.sub.A, B 108 to sampler 128 as signal 126 and sampler 128 performs sampling on signal S.sub.A, B 108 to generate sampling results. Sampler 128 may perform the sampling by generating a series of samples, S.sub.1, S.sub.2 . . . S.sub.N, with each sample taken from signal S.sub.A, B 108 at a predetermined time interval. Each sample of S.sub.1, S.sub.2 . . . S.sub.N may comprise bits that represent a value of power of signal S.sub.A, B 108 at the time the sample was taken.
[0028] Next, at 212, device 102 generates a bit string from the results of the sampling on signal S.sub.A, B 108. In performing the bit string generation, sampler 128 provides the sampling results to bit string generator 130 as signal 142. Bit string generator 130 may then generate the bit string, B.sub.1, B.sub.2 . . . B.sub.M from the sampling results. In generating the bit string, bit string generator 130 may use only the samples of S.sub.1, S.sub.2 . . . S.sub.N 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 108 calculated over the time period within which the samples are taken. If the power of a sample S.sub.X is below the threshold it may be ignored. If the power of the sample S.sub.X is above the threshold the bits representing the power sample S.sub.X may be placed as a set in the bit string. The bit string generator 130 may process the complete sampling results in this manner to generate a bit string B.sub.1, B.sub.2 . . . B.sub.M for use in key creation in device 102.
[0029] At 214, device 104 may initiate the same the same sampling and bit string generation operations on the signal S.sub.B, A 112 as performed in device 102 at operations 210 and 212 on the signal S.sub.A, B 108. To perform the sampling at device 104. cryptography setup transceiver 134 provides the received signal S.sub.B, A 112 to sampler 136 as signal 146 and sampler 136 performs sampling on signal S.sub.B, A 112 to generate sampling results. Sampler 136 may perform the sampling by generating a series of samples, S′.sub.1, S′.sub.2 . . . S′.sub.N, with each sample taken from signal S.sub.B, A 112 at a predetermined time interval. Each sample of S′.sub.1, S′.sub.2 . . . S′.sub.N may comprise bits that represent a value of the power of signal S.sub.B, A 112 at the time the sample was taken. The time interval used for sampling in device 104 may be the same as the time interval used for sampling in device 102.
[0030] Next, at 216, device 104 generates a bit string from the results of the sampling on signal S.sub.B, A 112. In performing the bit string generation, sampler 136 provides the sampling results as signal 148 to bit string generator 138. Bit string generator 138 may then generate a bit string, C.sub.1, C.sub.2 . . . C.sub.M, from the sampling results. In generating the bit string, bit string generator 138 may use only the samples of S′.sub.1, S′.sub.2 . . . S′.sub.N 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 112 calculated over the time period within which the samples are taken. If the power of a sample S′.sub.X is below the threshold it may be ignored. If the power of the sample S′.sub.X is above the threshold the bits representing the power sample S′.sub.X may be placed as, a set of bits in the bit string. The bit string generator 138 may process the complete sampling results, in this manner to generate a bit string C.sub.1, C.sub.2 . . . C.sub.M for use in key creation in device 104.
[0031] Use of signals S.sub.A and S.sub.B that are the identical, and use of processes for signal sampling and bit string generation that are the same in each of the devices 102 and 104, provides a bit string, B.sub.1, B.sub.2 . . . B.sub.M, and a bit string, C.sub.1, C.sub.2 . . . C.sub.M, that are identical, or nearly identical, to one another.
[0032] At 218, device 102 creates a key based on bit string B.sub.1, B.sub.2, . . . B.sub.M. The key is created in device 102 when bit string generator 130 provides bit string B.sub.1, B.sub.2 . . . B.sub.M to key creator 132 as signal 144. Key creator 132 then creates the key from the bit string B.sub.1, B.sub.2 . . . B.sub.M. In one example implementation, key creator 132 may create the key using all of the bits in the bit string B.sub.1, B.sub.2 . . . B.sub.M taken sequentially. For example, if the bit string B.sub.1, B.sub.2 . . . B.sub.m is a string in which B.sub.1=11011011, B.sub.2=10111011 . . . B.sub.M=11111101, a key may be created as k.sub.102=1101101110111011 . . . 11111101. In another example, key creator 132 may create key k.sub.102 using a subset of bits from each of B.sub.1, B.sub.2 . . . B.sub.M. For example, if the bit string B.sub.1, B.sub.2 . . . B.sub.M is a string in which B.sub.1=11011011, B.sub.2=10111011 . . . B.sub.m=11111101, k.sub.102 may be created by taking the four most significant bits from each of B.sub.1, B.sup.2 . . . B.sub.M to create k.sub.102=11011011 . . . 1111. Keys of different lengths may be created by varying the sampling, bit string generation, and key creation operations. Key creator 132 then outputs k.sub.102 at output 152 for use by device 102 in encryption/decryption.
[0033] At 220, device 104 creates a key based on C.sub.1, C.sub.2 . . . C.sub.M using the same operations that device 102 uses to create k.sub.102 from B.sub.1, B.sub.2. . . B.sub.M. The key is created in device 104 when bit string generator 138 provides bit string C.sub.1, C.sub.2 . . . C.sub.M to key creator 140 as signal 150. Key creator 138 then creates a key, k.sub.104, from the bit string C.sub.1, C.sub.2 . . . C.sub.M. In one example implementation, key creator 138 may create k.sub.104 using all of the bits in the bit string C.sub.1, C.sub.2 . . . C.sub.M. For example, if the bit string C.sub.1, C.sub.2 . . . C.sub.M is a string in which C.sub.1=11011011, C.sub.2=10111011 . . . C.sub.M=11111101, k.sub.104, may be created as k.sub.104=1101101110111011 . . . 11111101. In another example, <key creator 132 may create k.sub.1 4 using a subset of bits from each of C.sub.1, C.sub.2 . . . C.sub.M. For example, if the bit string C.sub.1, C.sub.2 . . . C.sub.M is a string in which C.sub.1=11011011, C.sub.2=10111011 . . . C.sub.M=11111101, k.sub.104 may be created by taking the four most significant bits from each of C.sub.1, C.sub.2 . . . C.sub.M to create k.sub.104=11011011 . . . 1111. Keys of different lengths may be created by varying the sampling bit string generation, and key creation operations. The operations used tear creating k.sub.104 in device 104 may be identical to the operations used for creating k.sub.102 in device 102. Key creator 140 then outputs k.sub.104 at output 154 for use by device 104 in encryption/decryption.
[0034] In a situation in which devices 102 and 104 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 and k.sub.104 may be created directly from the sampling results by using all the hits of each of the sampling results S.sub.1, S.sub.2 . . . S.sub.M and S′.sub.1, S′.sub.2 . . . S′.sub.M, respectively. In situations in which devices 102 and 104 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 and k.sub.104 are created using only a subset of most significant hits from each of the sampling results S.sub.1, S.sub.2 . . . S.sub.M and S′.sub.1, S′.sub.2 . . . S′.sub.M, 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 and k.sub.104.
[0035] At 222, when the keys have been created in each of device 102 and 104, devices 102 and 104 may then communicate data signals with each other while encrypting and/or decrypting communications using, respectively, keys k.sub.102 and k.sub.104. If k.sub.102 and k.sub.104have not been generated identically, because of transmission or reception conditions in the network, neither of the devices 102 or 104 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
[0036] In an alternative implementation of
[0037] 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 102 to device 104 (i.e., S.sub.B, A 112 and S.sub.A 106), and one or more of the signals sent in the direction from device 104 to device 102 (i.e., S.sub.A, B 108 and 110), may be sent on one or more frequency channels that are offset from the center frequency of channel 114. 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 114. 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.
[0038]
[0039]
[0040] Referring again to
[0041] The bit string generated in operations 212 and 216 of
[0042]
[0043]
[0044]
[0045]
[0046] 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, the decoder will output code word CW.sub.X. 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 being output if the two different y-bit strings are both within the decoding space of CW.sub.X. For example, B.sub.1 and C.sub.1 may each include different bits as input into the decoder, but both may be within the decoding space of CW.sub.1 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. For example,
[0047] If the decoder used in device 102 and device 104 has an error correction capability of x bits, than B.sub.X and C.sub.X may each differ from a code word CW.sub.X by up to x bits, but each still result in CW.sub.X being output from the decoder when B.sub.X and C.sub.X are input into the decoder. Because identical signals and the same process are used in both device 102 and 104 to generate the bit strings B.sub.1, B.sub.2 . . . B.sub.M and C.sub.1, C.sub.2 . . . C.sub.M 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 102 and 104 allows bit strings B.sub.1, B.sub.2 . . . B.sub.M and C.sub.1, C.sub.2 . . . C.sub.M to be input into the decoder to generate identical sets of code words in device 102 and 104. Even when B.sub.1, B.sub.2 . . . B.sub.M and C.sub.1, C.sub.2 . . . C.sub.M are not identical. As long as the differences between B.sub.X and C.sub.X 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.
[0048] Referring now to
[0049] User interfaces 606 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 600 for performing the operations of the embodiments.
[0050] In example implementations, device 600 may he 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 600 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 600 may operate according to a timed division half-duplexed communications standard. For example, device 600 may operate using half-duplex channels specified in the IEEE 802.11 Wi-Fi standards.
[0051] Referring now to
[0052] Memory 708 may be implemented as any type of computer readable storage media, including non-volatile and volatile memory. Access point 700 connects to a network, such as the internet, over network interface 702. Processing unit 706 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 712 provide the capability for device 700 to communicate with devices, for example device 102 of
[0053] 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 608 or 708). As should he 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 608, 708, and do not include portions of the media for storing transitory propagated or modulated data communication signals.
[0054] 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.
[0055] 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.
[0056] 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.
[0057] 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 its, 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.
[0058] 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 hits 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 hits 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 hits 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 bus 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.
[0059] 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 he 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.
[0060] 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 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 he 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.